cancel
Showing results for 
Search instead for 
Did you mean: 

Cyrillic language on touch gxf on stm32f7

SGasp.1
Senior

Hi community.. I am doing an application to display some text in a display 5 inches..

I am using stm32cubeide and touch gfx..

They are asking me to support the cyrillic and hebrew language.

When i Set the text on the gui and i try to watch it statically it is working..


_legacyfs_online_stmicro_images_0693W00000biVUNQA2.png 

But when i try to do somethin shown below with the code i see ony question marks ?? in the display...

textArea4.setColor(touchgfx::Color::getColorFrom24BitRGB(236, 209, 18));//extra time?
				Unicode::strncpy(textArea4Buffer, parArea4[tipolingua][5], Unicode::strlen(parArea4[tipolingua][5])+1);
				textArea4.invalidate();

where parArea4 it is the following and it is giving problems when the language is cyrillic or hebrew..

const char* parArea4[5][6] = {
    		                     { "Preheating",
    								"Ready",
									"      ",
									"Baking",
									"Extra time",
									"Extra time?"
                                 },
    						     { 	"Preriscaldo",
    							     "Pronto",
								     "      ",
									 "Cottura",
									 "Extra time",
									"Extra time?"
    							 },
								 { 	"Prechauffage",
								     "Pret",
						              "      ",
									  "Cuisson",
									  "Extra time",
									"Extra time?"
								 },
								 { 	"Предварительный нагрев",
									"Готовый",
								     "      ",
									 "Выпечка",
									 "дополнительное врем�?",
									 "дополнительное врем�??"
								 },
								 { 	"חימו�? מוקד�?",
									"מוּכָן",
						            "      ",
									"�?ֲפִיָה",
								    "זמן נוסף",
									"זמן נוסף"
								 }
    };

Any idea why about this strange behaviour ?

Thanks a lot

This discussion has been locked for participation. If you have a question, please start a new topic in order to ask your question
1 ACCEPTED SOLUTION

Accepted Solutions

Hello SGasp.1,

For the range, based on this website the range should be something like this: Ѐ-ԯ (0x0400 to 0x052F)

So you can put this as a wildcard range value (either in letters or the Unicode).

Also, you can't use the Cyrillic letters in your code directly without converting it into Unicode because your C++ code is encoded in UTF-8.

To use them, you can convert your string like this :

void Screen1View::fillText(){
    const uint8_t* Mystring = (const uint8_t*)"�?БВГДЕЖЗИ";
    Unicode::fromUTF8(Mystring, textArea1Buffer, TEXTAREA1_SIZE);
    textArea1.invalidate();
}


_legacyfs_online_stmicro_images_0693W00000bjhGtQAI.png 

/Osman

Osman SOYKURT
ST Software Developer | TouchGFX

View solution in original post

5 REPLIES 5
Yoann KLEIN
ST Employee

Hello @SGasp.1​,

Since you are using wildcards in your TextArea, you also need to specify the characters and data you wanna pass to your wildcard. For that, go to TouchGFXDesigner > Texts > Typography, then select the typography you are using for your wildcards and fill the Wildcard Ranges section.

E.g. if I want to pass both latin alphabet letters, and numbers to the wildcard :


_legacyfs_online_stmicro_images_0693W00000biqWFQAY.png 

I'm not sure that will resolve all the problems, but could be something that you forgot to do.

Hope it helps,

/Yoann

Yoann KLEIN
ST Software Developer | TouchGFX
SGasp.1
Senior

Hi @yoann KLEIN​ ..

Thanks for your answer..

My situation is the following for the textArea4


_legacyfs_online_stmicro_images_0693W00000biqmmQAA.png 

So if i am understanding right i have to check arial_bold_20..

This is my situation


_legacyfs_online_stmicro_images_0693W00000biqnkQAA.png 

Is it correct ?

Shall I change something here ?

Thanks for the support

Hello,

I think that you have to put your cyrillic alphabet "first letter-last letter" in the Wildcard Ranges pane.

You also have to ensure that the font you use (here Arial Bold) supports the characters you want to display.

/Yoann

Yoann KLEIN
ST Software Developer | TouchGFX
SGasp.1
Senior

Hi @Yoann KLEIN​ .. can you make an example about how to put cyrillic alphabet "first letter-last letter" ?

Did you check and can you check also please this post ?

https://community.st.com/s/question/0D53W000007Vy0TSAS/cyrillic-symbos-utf8-and-touchgfx

In any case I have tried to change the first letter last letter in cyrillic but nothing happened.

Thanks a lot

Hello SGasp.1,

For the range, based on this website the range should be something like this: Ѐ-ԯ (0x0400 to 0x052F)

So you can put this as a wildcard range value (either in letters or the Unicode).

Also, you can't use the Cyrillic letters in your code directly without converting it into Unicode because your C++ code is encoded in UTF-8.

To use them, you can convert your string like this :

void Screen1View::fillText(){
    const uint8_t* Mystring = (const uint8_t*)"�?БВГДЕЖЗИ";
    Unicode::fromUTF8(Mystring, textArea1Buffer, TEXTAREA1_SIZE);
    textArea1.invalidate();
}


_legacyfs_online_stmicro_images_0693W00000bjhGtQAI.png 

/Osman

Osman SOYKURT
ST Software Developer | TouchGFX