Windows Embedded Standard 7 Localization Language Setup and Support
Background
Windows Embedded Standard 7 adopts same localization model as the Windows 7. Basically, language resources are completely separated from the code, enabling a worldwide binary which does not require localization in all supported language. All localizable resources are packaged in the form of language pack, and Standard 7consists of language neutral image plus language packs.
Design
Footprint impact and user experiences are two key factors in embedded language localization design. The aim is that the embedded image will only have the needed language resources (minimal footprint) at any given time, and at the same time the design still provides maximum flexibility by componentizing language packs and repackaging font components. There are other components related to language support such as Locales, code pages and keyboard mappings, but they all have very small footprint impact, so they have been put in the embedded core (eCore) to mitigate the impact of choosing and switching between them. All in all, language packs are the focal point of supporting localization for end users, as they include MUI resources for feature sets and drivers, and dependencies on associated fonts and IME packages (e.g. zh-cn Chinese LP will depend on Chinese Required fonts and IME package).
Setup
Non en-US language packs must be selected and installed on the target image to support localization. Usually, they have to be installed during image setup (either unattended or interactive).For unattended setup, you need to create an answer file using ICE and resolve package dependencies to bring in the required fonts packages, then start setup with that answer file. Interactively, start the image setup and pick the desired language pack, then resolve dependencies on IBW. Alternatively, a language package is just like any other feature packages, so the installation of language packs is handled in the same manner as all other Feature Sets in Standard 7. You can add language packs using DISM (Online/Offline) or the language package setup tool LPKSETUP (when installing online), however, keep in mind that DISM or LPKSETUP installation won’t resolve package dependencies and bring in associated required font package for that language, so you would have to installation them separately using DISM. A language pack must be reapplied to a target image after any Feature Set package (including drivers) is added because the MUI resources of a feature package can only be installed after the feature package is already installed on the target image.
Some other features are related to localization support as well, such as IME, Speech and Text, and Narrator. The installation of these packages is the same as any other packages; however, Speech and Narrator functionality for non-English languages will only work when that language pack already exists on the target image.
Some Language User Scenarios
Users can configure languages through the Region and Language control panel applet, which can be launched either via the control panel window or via a command line, for example “rundll32 shell32.dll,Control_RunDLL intl.cpl”. The following can be configured:
- Switch UI language after installing non en-US language pack and associated font packages
- Change locales
- Change Keyboard and input language
- Remove language package via LPKSETUP (or command line tools DISM)
Conclusion
Standard 7 language localization aims to bring a minimal footprint impact to embedded devices, and still keep the Windows 7 localization model benefits, thereby providing good user experiences and the ability to implement simplified manufacturing and servicing as well.
Comments
Anonymous
March 08, 2010
Does Windows Embedded Standard 7 support complex scripts like Arabic Nastaleeq?Anonymous
March 15, 2010
it will be supported by Embedded Win7 as well If this is supported by Win7.Anonymous
April 10, 2010
Re: “rundll32 shell32.dll,Control_RunDLL intl.cpl” See the blog post: How to REALLY handle the unattended version of Regional and Language Options http://blogs.msdn.com/michkap/archive/2006/05/20/602745.aspx