From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 3A87D21A6F108 for ; Tue, 30 May 2017 17:34:08 -0700 (PDT) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 30 May 2017 17:35:07 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.38,420,1491289200"; d="scan'208";a="108457390" Received: from orsmsx108.amr.corp.intel.com ([10.22.240.6]) by fmsmga005.fm.intel.com with ESMTP; 30 May 2017 17:35:07 -0700 Received: from orsmsx112.amr.corp.intel.com ([169.254.3.182]) by ORSMSX108.amr.corp.intel.com ([169.254.2.100]) with mapi id 14.03.0319.002; Tue, 30 May 2017 17:35:07 -0700 From: "Kinney, Michael D" To: Nikolay Bodunov , "edk2-devel@lists.01.org" , "Kinney, Michael D" Thread-Topic: [edk2] Localization help need: national symbols are not displayed on BIOS screen after adding a new language Thread-Index: AQHS2aFhQGesNa9L+U2jQT3Q/zyMB6INlghw Date: Wed, 31 May 2017 00:35:05 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_IC x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZGNiNjlhYjEtNTMyYy00NWE2LThkOTEtYjIxYTc4ZTM4NTJmIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6ImV0dHdoTHIrRmN1XC9reThBS3h3TFBVM1wvOWFueUhZSlwvTVltNnpWQ0JtWmM9In0= dlp-product: dlpe-windows dlp-version: 10.0.102.7 dlp-reaction: no-action x-originating-ip: [10.22.254.139] MIME-Version: 1.0 Subject: Re: Localization help need: national symbols are not displayed on BIOS screen after adding a new language X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 May 2017 00:34:08 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable 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 Niko= lay 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