Nikolay, I suspect you do not have the glyphs to support the Unicode characters you are attempting to display.
The default HII Font Package is produced by the module: MdeModulePkg\Universal\Console\GraphicsConsoleDxe The file LaffStd.c contains the glyphs required for some Unicode characters. You can either extend that file or produce the additional glyphs you require from a different module that produces an additional HII Font Package. Best regards, Mike -----Original Message----- From: edk2-devel [mailto:[email protected]] On Behalf Of Nikolay Bodunov Sent: Tuesday, May 30, 2017 5:04 PM To: [email protected] Subject: [edk2] Localization help need: national symbols are not displayed on BIOS screen after adding a new language Hello I added 3 new languages in MdeModulePks/Application/UiApp example from EDK2 and I got a problem with strings output. Using Nt32Pkg emulator with Win 7. My problem is: when I add Russian language, I also add new string on that language to existing token, but I can't see that string shown on screen. Specifically, I can see English part of the string only. I mean, if I write the first half of the string on English and the second half on Russian, I can see only English half of the string on BIOS screen. Here are my problem on the screenshot: https://yadi.sk/i/mgh_-dBH3JbYtp I didn't added corresponding Russian strings to any other tokens, so displaying "!" instead for them is ok. If I switch back to English or French, correct strings are shown again. What I did: 1. Added new languages in MdePkg.dec: gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatform LangCodes|"en;fr;en-US;fr-FR;ru;de;zh-cn"|VOID*|0x0000001e 2. Opened UNI file in Notepad++ and added new languages, after English and French: #langdef en-US "English" #langdef fr-FR "Francais" #langdef en "Standard English" #langdef fr "Standard Francais" #langdef ru "Russian" //#langdef ru-RU "Russian" #langdef de "German" #langdef zh-cn "Chinese (PRC)" 3. Switched (in Windows 7) on Russian codepage and added new string for "ru" locale that token "STR_LANGUAGE_SELECT" https://yadi.sk/i/quf2Gd003JbZez I also located my string in .efi output file in HEX to investigate what could be wrong, but I see exactly what I expected: codepage 04 and symbol codes which conforms corresponding Russian symbols in UCS-2: 2004 4304 4104 4104 3A04 3804 3904 (and English symbols, too): https://yadi.sk/i/QIEqcqKg3JbaiL >From the other side, I got support for German locale in that way, having typical German symbols in string attached ot that token. Any suggestions, what I did wrong or what I should do else? I suppose there should be some "magical" function call that adds more than one locale, but I don't know what it is. Maybe default font just does not support Russian locale? Which font should I use instead and where I can read about it? Text search in EDK2 source tree does't find string "ru-RU" I cannot diagnose it in programming way: when I add non-existing locale "xz" to MdePkg.dec, I have no error during compilation and I can see this pseudo-locale in PlatformLangCodes variable then. With best regards, Nikolay Bodunov _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

