* Localization help need: national symbols are not displayed on BIOS screen after adding a new language
@ 2017-05-31 0:03 Nikolay Bodunov
2017-05-31 0:35 ` Kinney, Michael D
0 siblings, 1 reply; 2+ messages in thread
From: Nikolay Bodunov @ 2017-05-31 0:03 UTC (permalink / raw)
To: edk2-devel
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
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Localization help need: national symbols are not displayed on BIOS screen after adding a new language
2017-05-31 0:03 Localization help need: national symbols are not displayed on BIOS screen after adding a new language Nikolay Bodunov
@ 2017-05-31 0:35 ` Kinney, Michael D
0 siblings, 0 replies; 2+ messages in thread
From: Kinney, Michael D @ 2017-05-31 0:35 UTC (permalink / raw)
To: Nikolay Bodunov, edk2-devel@lists.01.org, Kinney, Michael D
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:edk2-devel-bounces@lists.01.org] On Behalf Of Nikolay Bodunov
Sent: Tuesday, May 30, 2017 5:04 PM
To: edk2-devel@lists.01.org
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
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-05-31 0:34 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-05-31 0:03 Localization help need: national symbols are not displayed on BIOS screen after adding a new language Nikolay Bodunov
2017-05-31 0:35 ` Kinney, Michael D
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox