Tutorial: Localize Your Windows 8.1 RTM ISO/Distribution

Discussion in 'Windows 8' started by sevenacids, Aug 31, 2013.

  1. sevenacids

    sevenacids MDL Addicted

    Aug 17, 2012
    635
    190
    30
    #1 sevenacids, Aug 31, 2013
    Last edited by a moderator: Apr 20, 2017
    THIS IS OBSOLETE! I RELEASED A MUCH SIMPLER SOLUTION - CLICK HERE

    This tutorial is a step-by-step manual on how to localize the English Windows 8.1 RTM ISO/distribution with a single standalone language pack. It is targeted at the retail client versions of Windows (Core and Pro), it would work in a similar way for Enterprise and Server editions but this is not covered here.

    1. Prerequisites

    a) Download Windows 8.1 RTM ISO (en-US, Retail - x86 or x64)
    b) Download Windows 8.1 RTM Language Pack ISO (x86 or x64)
    c) Download Windows 8.1 RTM ADK ISO (x86 or x64) and install the ADK*
    d) Open an elevated (run as Admin) command-prompt

    *) This includes the language packs for Windows PE and is only needed if you want to localize the setup and recovery environment, too. This tutorial includes localization of the recovery environment, but not the setup as this is not really necessary. Some of the language packs have been uploaded to MEGA - check out the posting after the tutorial for more information. You don't need to download the ADK ISO if you find your language there, just grab the language pack you want (8/11 MB compared to 2+GB download) instead.

    2. Create Directory Structure

    Create the following directories. I use "C:" as the default throughout this tutorial, you can change that as you wish, of course.

    C:\Win81\Dist
    C:\Win81\Iso
    C:\Win81\Lp\Install
    C:\Win81\Lp\Recovery
    C:\Win81\Mount\Boot
    C:\Win81\Mount\Install
    C:\Win81\Mount\Recovery

    You can use the following command-lines to create the directories:
    Code:
    mkdir C:\Win81\Dist
    mkdir C:\Win81\Iso
    mkdir C:\Win81\Lp\Install
    mkdir C:\Win81\Lp\Recovery
    mkdir C:\Win81\Mount\Boot
    mkdir C:\Win81\Mount\Install
    mkdir C:\Win81\Mount\Recovery
    3. Extract ISO and Copy Language Packs

    First, set an environment variable for the language you want:
    Code:
    set lplang=de-de
    Where "de-de" represents the German language. Change that to the one of your choice (es-es, fr-fr, etc.)

    Right-click on the Windows 8.1 ISO and select "Mount" to mount it in File Explorer and copy all its contents to the C:\Win81\Dist directory. You can use the following command-line:
    Code:
    xcopy X:\ C:\Win81\Dist /s /e
    Where "X:" represents the drive letter of the mounted ISO. After copying is finished, you can unmount the ISO by right-clicking the drive and select "Eject".

    After that, right-click on the Language Pack ISO and select "Mount" to mount it and copy the language pack to the C:\Win81\Lp\Install directory. You can use the following command-line:
    Code:
    xcopy X:\langpacks\%lplang%\lp.cab C:\Win81\Lp\Install\%lplang%\
    Where "X:" represents the drive letter of the mounted ISO. After copying is finished, you can unmount the ISO by right-clicking the drive and select "Eject".

    After that, copy the language pack for the recovery environment to the C:\Win81\Lp\Recovery directory. If you installed the Windows 8.1 ADK, you can find them in these directories:
    Code:
    For x64:
    C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs
    For x86:
    C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs
    You can use the following command-line (x64 in this case):
    Code:
    xcopy "C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\%lplang%" C:\Win81\Lp\Recovery\%lplang%\ /s /e
    If you downloaded the language pack from MEGA or somewhere else, just extract it there.

    4. Update the Windows Installation and Recovery Images (install.wim and winre.wim)

    Change the working directory as follows:
    Code:
    cd C:\Win81\Dist\sources
    Run the following commands in order to mount the installation and recovery image files:
    Code:
    dism /mount-image /imagefile:C:\Win81\Dist\sources\install.wim /Index:1 /mountdir:C:\Win81\Mount\Install
    dism /mount-image /imagefile:C:\Win81\Mount\Install\Windows\System32\recovery\winre.wim /Index:1 /mountdir:C:\Win81\Mount\Recovery
    This will mount the Windows 8.1 Pro image. To integrate language packs into the Core version, change the index on the first command from 1 to 2. If you want to integrate the language pack in both images, you have to work through this section twice.

    After that, run the following command to integrate the language pack into the installation image:
    Code:
    dism /add-package /image:C:\Win81\Mount\Install /packagepath:C:\Win81\Lp\Install\%lplang%\lp.cab
    After that, run the following command to integrate the language pack into the recovery image:
    Code:
    dism /add-package /image:C:\Win81\Mount\Recovery /packagepath:C:\Win81\Lp\Recovery\%lplang%\lp.cab /packagepath:C:\Win81\Lp\Recovery\%lplang%\WinPE-EnhancedStorage_%lplang%.cab /packagepath:C:\Win81\Lp\Recovery\%lplang%\WinPE-Rejuv_%lplang%.cab /packagepath:C:\Win81\Lp\Recovery\%lplang%\WinPE-Scripting_%lplang%.cab /packagepath:C:\Win81\Lp\Recovery\%lplang%\WinPE-SecureStartup_%lplang%.cab /packagepath:C:\Win81\Lp\Recovery\%lplang%\WinPE-SRT_%lplang%.cab /packagepath:C:\Win81\Lp\Recovery\%lplang%\WinPE-StorageWMI_%lplang%.cab /packagepath:C:\Win81\Lp\Recovery\%lplang%\WinPE-WDS-Tools_%lplang%.cab /packagepath:C:\Win81\Lp\Recovery\%lplang%\WinPE-WMI_%lplang%.cab
    After that, run the following command to configure the default language settings for both images. If you want to keep en-US, you can skip this step.
    Code:
    dism /image:C:\Win81\Mount\Install /set-allintl:%lplang%
    dism /image:C:\Win81\Mount\Recovery /set-allintl:%lplang%
    After that, run the following command to recreate the lang.ini file.
    Code:
    dism /image:C:\Win81\Mount\Install /gen-langini /distribution:C:\Win81\Dist
    After that, run the following commands in order to unmount the images and commit the changes you made:
    Code:
    dism /unmount-image /mountdir:C:\Win81\Mount\Recovery /commit
    dism /unmount-image /mountdir:C:\Win81\Mount\Install /commit
    4. Update the Boot Image File (boot.wim)

    In order to be able to choose between the languages when Windows setup welcomes you, you have to update the lang.ini file in the boot image file as well.

    Run the following command to mount the boot image file:
    Code:
    dism /mount-image /imagefile:C:\Win81\Dist\sources\boot.wim /Index:2 /mountdir:C:\Win81\Mount\Boot
    After that, run the following command to copy the lang.ini from the distribution sources to the mounted boot image:
    Code:
    xcopy C:\Win81\Dist\sources\lang.ini C:\Win81\Mount\Boot\sources\lang.ini
    After that, run the following command to unmount the image and commit the changes you made:
    Code:
    dism /unmount-image /mountdir:C:\Win81\Mount\Boot /commit
    5. That's it - for USB

    Voilà - you just created your localized Windows 8.1 distribution!

    If you're going to install Windows 8.1 from an USB drive, just make it bootable (there are many tutorials out there on how to do this) and copy the contents of the C:\Win81\Dist directory to it.

    6. ISO recreation

    If you're going to install Windows 8.1 from an ISO, you have to download and install the Windows 8.1 ADK (only available in Preview until Windows 8.1 is generally available, the final version has been leaked but is not necessary to use for just creating the ISO) - you don't need the full package, select only the deployment tools during setup - and run the deployment tools command-prompt.

    Run the following command to create a bootable ISO from the C:\Win81\Dist directory:
    Code:
    oscdimg -bC:\Win81\Dist\boot\etfsboot.com -lWIN81 -u2 C:\Win81\Dist C:\Win81\Iso\WIN81.ISO
    7. Clean-up

    After you finished and everything went well, you can clean up all the mess except for the ISO and maybe the C:\Win81\Dist directory, you might need it later to recreate USB etc.

    If you find any errors in this procedure, please let me know.

    Release History

    [1.01]
    • Updated the tutorial to make it a step-by-step manual for a single language (because that's what I think most people would like to do).
    • Updated the tutorial to include localization of the recovery environment with the leaked ADK bits.
    • Added Appendix with Windows PE language pack download links from MEGA.

    [1.00]
    • Initial release.
     
  2. sevenacids

    sevenacids MDL Addicted

    Aug 17, 2012
    635
    190
    30
    #2 sevenacids, Aug 31, 2013
    Last edited by a moderator: Apr 20, 2017
    (OP)
  3. OldMX

    OldMX MDL Senior Member

    Jul 30, 2009
    426
    143
    10
    Pure gold brother, thanks a lot!!
     
  4. murphy78

    murphy78 MDL DISM Enthusiast

    Nov 18, 2012
    6,686
    10,145
    210
    Correct me if I'm wrong, but don't you also need to add the lp stuff to the boot.wim from the win81 adk?
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  5. sevenacids

    sevenacids MDL Addicted

    Aug 17, 2012
    635
    190
    30
    #7 sevenacids, Sep 1, 2013
    Last edited: Sep 1, 2013
    (OP)
    Yes, that's right, but we don't have the RTM version of the ADK yet, and mixing the final bits with the preview stuff might cause problems. It's not really needed for the boot.wim - it will only change the language during setup. You would like to edit the recovery image inside the install.wim, though (same Windows PE). I will update the tutorial when we have the final ADK.
     
  6. s1ave77

    s1ave77 MDL Guide Dog/Dev

    Aug 15, 2012
    15,690
    22,568
    340
    #8 s1ave77, Sep 1, 2013
    Last edited by a moderator: Apr 29, 2017
    As this code is very sensitive for errors, better use [code=rich][/code], it´s the '#' symbol in post editor. (used the [noparse] feature of BBCode to show :D.)
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  7. VelleX

    VelleX MDL Member

    Jul 14, 2009
    203
    26
    10
  8. sevenacids

    sevenacids MDL Addicted

    Aug 17, 2012
    635
    190
    30
  9. VelleX

    VelleX MDL Member

    Jul 14, 2009
    203
    26
    10
    #11 VelleX, Sep 1, 2013
    Last edited by a moderator: Apr 20, 2017
    I tried a much easier way to install localized Windows.
    Just add Languagepacks to an "Langpacks" Folder in the Root of the DVD (like: x:\langpacks\de-de\lp.cab) and edit the "lang.ini" in the sources folder to add the language.
    eg:

    Code:
    [Available UI Languages]
    de-de = 0
    en-US = 3
    
    [Fallback Languages]
    en-US = en-us
    
    I think the "0" should state that the Language Pack isn't installed yet. Then it will be installed after Installation files has been expanded.
    Of course installation may take a little longer, because LP has to be installed.
     
  10. kastrel

    kastrel MDL Member

    Mar 7, 2013
    247
    48
    10
    I used the tool WINDOWS DOWNLOADER INTEGRATOR 3.5 in the WINDOWS 8.1 RTM and integrated the LP in the isos WINDOWS 8.1 using this tool,this method also works well.
     
  11. luky

    luky MDL Addicted

    Dec 21, 2008
    721
    31
    30
    Windows Downloader Integrator v3.5 not OK integrate LP the ISO Windows 8.1.
     
  12. Boops

    Boops MDL Addicted

    Jan 5, 2008
    692
    627
    30
    Yes, it does. I've tested, and working correctly. It does Wim image directly.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  13. Larson

    Larson MDL Junior Member

    Jul 30, 2009
    57
    12
    0
    Great guide, can't wait for you to update it with ADK but please add commands lines to completely remove en-US as well and make not just a multilanguage iso but a localized one.
     
  14. Sliden

    Sliden MDL Junior Member

    May 20, 2009
    90
    51
    0
    #16 Sliden, Sep 1, 2013
    Last edited by a moderator: Apr 20, 2017
    To remove LanguagePack en-US for W8.1 X64 :

    Code:
    DISM.exe /Image:C:\Win81\Mount\Install /remove-package /packagename:Microsoft-Windows-Client-LanguagePack-Package~31bf3856ad364e35~amd64~en-US~6.3.9600.16384
     
  15. Boops

    Boops MDL Addicted

    Jan 5, 2008
    692
    627
    30
    #17 Boops, Sep 1, 2013
    Last edited by a moderator: Apr 20, 2017
    I'm not sure we want to do, because in my case, some Apps not correctly translated to my language.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  16. murphy78

    murphy78 MDL DISM Enthusiast

    Nov 18, 2012
    6,686
    10,145
    210
    #18 murphy78, Sep 1, 2013
    Last edited by a moderator: Apr 20, 2017
    I'm sure he'll cover it tomorrow, but for people who are new to adding languages to Windows install files,
    here's some small bits of advice.

    First:
    -Add language pack cabs (lp.cab) from the appropriate languages to your mounted dism install.wim index
    -You should make all indexes identical with regards to which language packs you add because of the limitations of the lang.ini

    Second:
    -Run the /Gen-LangINI dism option to generate a new lang.ini with appropriate settings for your index.
    Code:
    DISM.exe /image:c:\mount\windows /Gen-LangINI /distribution:c:\my_distribution
    -This will re-create the lang.ini

    Third:
    -Mount the boot.wim index 2
    -Add the winPE lp and component language additions using /add-package
    -You can do a dism /image:c:\mount /get-packages to find out which ones are being used by the primary language, and add ones for the secondary language
    Here's an example of the /get-packages from the win81x86 boot.wim:
    Code:
    Deployment Image Servicing and Management toolVersion: 6.3.9600.16384
    
    
    Image Version: 6.3.9600.16384
    
    
    Packages listing:
    
    
    Package Identity : Microsoft-Windows-Common-Foundation-Package~31bf3856ad364e35~
    x86~~6.3.9600.16384
    State : Install Pending
    Release Type : Feature Pack
    Install Time : 8/22/2013 6:29 AM
    
    
    Package Identity : Microsoft-Windows-WinPE-LanguagePack-Package~31bf3856ad364e35
    ~x86~en-US~6.3.9600.16384
    State : Install Pending
    Release Type : Language Pack
    Install Time : 8/22/2013 6:47 AM
    
    
    Package Identity : Microsoft-Windows-WinPE-Package~31bf3856ad364e35~x86~~6.3.960
    0.16384
    State : Install Pending
    Release Type : Foundation
    Install Time : 8/22/2013 6:29 AM
    
    
    Package Identity : WinPE-EnhancedStorage-Package~31bf3856ad364e35~x86~en-US~6.3.
    9600.16384
    State : Install Pending
    Release Type : Language Pack
    Install Time : 8/22/2013 6:56 AM
    
    
    Package Identity : WinPE-EnhancedStorage-Package~31bf3856ad364e35~x86~~6.3.9600.
    16384
    State : Install Pending
    Release Type : Feature Pack
    Install Time : 8/22/2013 6:56 AM
    
    
    Package Identity : WinPE-IbsProvider-Package~31bf3856ad364e35~x86~en-US~6.3.9600
    .16384
    State : Install Pending
    Release Type : Language Pack
    Install Time : 8/22/2013 6:55 AM
    
    
    Package Identity : WinPE-IbsProvider-Package~31bf3856ad364e35~x86~~6.3.9600.1638
    4
    State : Install Pending
    Release Type : Feature Pack
    Install Time : 8/22/2013 6:55 AM
    
    
    Package Identity : WinPE-Scripting-Package~31bf3856ad364e35~x86~en-US~6.3.9600.1
    6384
    State : Install Pending
    Release Type : Language Pack
    Install Time : 8/22/2013 6:55 AM
    
    
    Package Identity : WinPE-Scripting-Package~31bf3856ad364e35~x86~~6.3.9600.16384
    State : Install Pending
    Release Type : Feature Pack
    Install Time : 8/22/2013 6:54 AM
    
    
    Package Identity : WinPE-SecureStartup-Package~31bf3856ad364e35~x86~en-US~6.3.96
    00.16384
    State : Install Pending
    Release Type : Language Pack
    Install Time : 8/22/2013 6:56 AM
    
    
    Package Identity : WinPE-SecureStartup-Package~31bf3856ad364e35~x86~~6.3.9600.16
    384
    State : Install Pending
    Release Type : Feature Pack
    Install Time : 8/22/2013 6:55 AM
    
    
    Package Identity : WinPE-Setup-Client-Package~31bf3856ad364e35~x86~en-US~6.3.960
    0.16384
    State : Install Pending
    Release Type : Language Pack
    Install Time : 8/22/2013 6:58 AM
    
    
    Package Identity : WinPE-Setup-Client-Package~31bf3856ad364e35~x86~~6.3.9600.163
    84
    State : Install Pending
    Release Type : Feature Pack
    Install Time : 8/22/2013 6:58 AM
    
    
    Package Identity : WinPE-Setup-Package~31bf3856ad364e35~x86~en-US~6.3.9600.16384
    
    
    State : Install Pending
    Release Type : Language Pack
    Install Time : 8/22/2013 6:58 AM
    
    
    Package Identity : WinPE-Setup-Package~31bf3856ad364e35~x86~~6.3.9600.16384
    State : Install Pending
    Release Type : Feature Pack
    Install Time : 8/22/2013 6:57 AM
    
    
    Package Identity : WinPE-SRT-Package~31bf3856ad364e35~x86~en-US~6.3.9600.16384
    State : Install Pending
    Release Type : Language Pack
    Install Time : 8/22/2013 6:54 AM
    
    
    Package Identity : WinPE-SRT-Package~31bf3856ad364e35~x86~~6.3.9600.16384
    State : Install Pending
    Release Type : Feature Pack
    Install Time : 8/22/2013 6:54 AM
    
    
    Package Identity : WinPE-WDS-Tools-Package~31bf3856ad364e35~x86~en-US~6.3.9600.1
    6384
    State : Install Pending
    Release Type : Language Pack
    Install Time : 8/22/2013 6:55 AM
    
    
    Package Identity : WinPE-WDS-Tools-Package~31bf3856ad364e35~x86~~6.3.9600.16384
    State : Install Pending
    Release Type : Feature Pack
    Install Time : 8/22/2013 6:55 AM
    
    
    Package Identity : WinPE-WMI-Package~31bf3856ad364e35~x86~en-US~6.3.9600.16384
    State : Install Pending
    Release Type : Language Pack
    Install Time : 8/22/2013 6:54 AM
    
    
    Package Identity : WinPE-WMI-Package~31bf3856ad364e35~x86~~6.3.9600.16384
    State : Install Pending
    Release Type : Feature Pack
    Install Time : 8/22/2013 6:54 AM
    
    You can see that there are a few localized features other than just the language pack.
    Microsoft-Windows-WinPE-LanguagePack-Package~31bf3856ad364e35~x86~en-US~6.3.9600.16384
    WinPE-EnhancedStorage-Package~31bf3856ad364e35~x86~en-US~6.3.9600.16384
    WinPE-IbsProvider-Package~31bf3856ad364e35~x86~en-US~6.3.9600.16384
    WinPE-Scripting-Package~31bf3856ad364e35~x86~en-US~6.3.9600.16384
    WinPE-SecureStartup-Package~31bf3856ad364e35~x86~en-US~6.3.9600.16384
    WinPE-Setup-Client-Package~31bf3856ad364e35~x86~en-US~6.3.9600.16384
    WinPE-Setup-Package~31bf3856ad364e35~x86~en-US~6.3.9600.16384
    WinPE-SRT-Package~31bf3856ad364e35~x86~en-US~6.3.9600.16384
    WinPE-WDS-Tools-Package~31bf3856ad364e35~x86~en-US~6.3.9600.16384
    WinPE-WMI-Package~31bf3856ad364e35~x86~en-US~6.3.9600.16384

    You need to add all of these packages for each language. es-es, fr-fr, de-de or whatever.
    If you add Korean, you should know that you also need to add the Korean language support and that it will change the version and add a K to the SKU.
    I believe there is also a Chinese and Japanese font package requirement.

    Fourth:
    -You need to extract the lp.cab to a directory and navigate to the setup directory till you find the lang code of your desired language addition. You need to copy the folder to your distro\sources folder.
    Ex: es-es or fr-fr, etc.
    -This has setup files that will be used for people who install by running setup while in another Windows, rather than installing from boot

    Lastly:
    -Make sure you copy the lang.ini that you generated from your mounted install.wim index /gen-langini command to the boot.wim's mounted sources\ directory.

    Minor notes:
    -Removing a language pack does not reduce the size of the boot.wim as it sets the package removal as a pending removal.
    -Failure to copy the lang.ini to boot.wim index 2 will not give you a choice to install in a different language, and though you might be able to change your language and locale option, the entire setup will be in the primary language. If you do copy the lang.ini to the mounted boot.wim index 2 sources\ directory, it will change the entire setup language.
    -Install any Windows features such as NetFX3 or Hyper-V or anything else you are going to add BEFORE adding the language packs to the install.wim. You will have issues if you try to install them afterwards.
    -Don't add too many languages. It will increase the duration of your setup by approximately 1 minute per language and adds a lot of small files that can bog down the hard drive. Also, you will not be able to boot if you run out of memory from adding too many boot.wim languages. I once tried to do a full 38lang boot.wim with even zh-tw rare lang pack.
    It simply crashed my computer.

    That's about all I remember from when I used to do my lang-addition stuff last october-november.
    Hope it helps someone. Feel free to PM me if you get stuck on something.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  17. Sliden

    Sliden MDL Junior Member

    May 20, 2009
    90
    51
    0
    Thanck for this.
     
  18. Boops

    Boops MDL Addicted

    Jan 5, 2008
    692
    627
    30
    Fantastic, thank you very much murphy78. :worthy:
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...