ConfigMgr 2012 : Creating a Multi-Regional / Multi-Lingual Windows Image

You can use this language pack deployment method to integrate many languages at once into a Windows Image during Build and Capture, or even Image Deployment, the primary display and input language are set by the Unattend file.

1. Create the Unattend Files

2. Create a Unattend File Package for Each Architecture

3. Create Language Pack Package for Each Architecture

4. Create Task Sequence Variables on Collections

5. Modify Your Operating System Deployment Task Sequence

 

Please note this guide assumes you have integrated MDT2012 with System Center 2012 Configuration Manager.

 

1. Create the Unattend Files

64-bit unattend file:

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="oobeSystem">
        <component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

            <TimeZone>%OSDTimeZone%</TimeZone>
            <InputLocale>%OSDInputLocale%</InputLocale>
            <SystemLocale>%OSDSystemLocale%</SystemLocale>
            <UILanguage>%OSDUILanguage%</UILanguage>
            <UILanguageFallback>%OSDUILanguageFallback%</UILanguageFallback>
            <UserLocale>%OSDUserLocale%</UserLocale>
        </component>
    </settings>
</unattend>

32-bit unattend file:

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="oobeSystem">
        <component name="Microsoft-Windows-International-Core" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

            <TimeZone>%OSDTimeZone%</TimeZone>
            <InputLocale>%OSDInputLocale%</InputLocale>
            <SystemLocale>%OSDSystemLocale%</SystemLocale>
            <UILanguage>%OSDUILanguage%</UILanguage>
            <UILanguageFallback>%OSDUILanguageFallback%</UILanguageFallback>
            <UserLocale>%OSDUserLocale%</UserLocale>
        </component>
    </settings>
</unattend>

2. Create a Unattend File Package for Each Architecture

Name ‘Unattend x86 Regional’ source folder: \<server fqdn>\<share>UnattendXMLx86Regional
Do not create a program

Name ‘Unattend x64 Regional’ source folder: \<server fqdn>\<share>UnattendXMLx64Regional
Do not create a program

Distribute the new package to your DP’s.
Add Unattend File to your Build Capture / Deploy Image task

3. Create Language Pack Package for Each Architecture

Copy the lp.cab files into a share, the folder structure should be as follows – the lp.cab file for each language should be in the releavant subfolder, if you fail to do this correctly the Language Pack will not install…

\<server fqdn>\<share>Win7-SP1-LanguagePack\x64
 de-DE
 fr-FR
 etc...

\<server fqdn>\<share>Win7-SP1-LanguagePack\x86
 de-DE
 fr-FR
 etc...

Now create a Package for each processor architecture:

Win7-SP1-LanguagePackX64 - source \<server fqdn>\<share>Win7-SP1-LanguagePack\x64
Win7-SP1-LanguagePackX86- source \<server fqdn>\<share>Win7-SP1-LanguagePack\x86

4. Create Task Sequence Variables on Collections

Now on the collection containing your devices set the following variables:

OSDInputLocale
value=de-DE
OSDSystemLocale
value=de-DE
OSDUserLocale
value=de-DE
OSDUILanguageFallback
value=en-US
OSDUILanguage
value=de-DE
OSDTimeZone
value=Central European Standard Time

5. Modify Your Operating System Deployment Task Sequence

Create a new Group in your Task Sequence, add a condition to the group of Task Sequence Variable ‘OSDUILanguage’ equals “de-DE”

Add the following tasks under the group:

  1. Use Toolkit Package
  2. Gather
  3. Install Language Packs Offline -[select the correct Language Pack Package for the Windows Deployment Architecture)