ADD MULTILINGUAL SUPPORT TO WINDOWS 8.1 SETUP DVD - AUTOMATED BATCH SCRIPT A mostly automated way to add one or more language packs to Windows 8.1 DVD, with the end result being a fully multilingual ISO, including: - Choice of language at setup - Language packs preinstalled so that you can switch between them in Windows 8.1 - Multilingual Windows 8.1 Recovery Environment (with a choice of language at boot) Requirements: - Working Windows 8.1 or 8 or 7 system (x86 or x64) with at least 15GB of free space. - Windows 8.1 x86 or x64 installation DVD / USB or ISO mounted as a virtual drive. - Windows Assessment and Deployment Kit (Windows ADK ) for Windows 8.1 installed. - Language pack (CAB) files for the languages you want to add. you can get them from the Repository , or see the Bonus in 2nd post. How To: Step 1 Create a directory on a partition with enough space on it - at least 15GB of free space required, depending on the number of LPs you are adding! (e.g. C:\MUIDVD) To spare yourself absolutely pointless trouble, keep the path short, do not use stupid paths with spaces and do not use non- ASCII chars anywhere in the path. Step 2 Get the script and save the script to the directory your created, (E.g. save as C:\MUIDVD\MUI.cmd) Step 3 Copy the language pack(s) CAB(s) to the above directory as well. Suggest to use a subdirectory for each language (e.g. C:\ MUIDVD\langpacks\de-de\lp.cab).
33
Embed
Add Multilingual Support to Windows 8_1 Setup DVD - Automated Batch Script
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
ADD MULTILINGUAL SUPPORT TO WINDOWS 8.1 SETUP DVD - AUTOMATED BATCH SCRIPT
A mostly automated way to add one or more language packs to Windows 8.1 DVD, with the end result being a fully multilingual ISO, including:- Choice of language at setup- Language packs preinstalled so that you can switch between them in Windows 8.1- Multilingual Windows 8.1 Recovery Environment (with a choice of language at boot)
Requirements:- Working Windows 8.1 or 8 or 7 system (x86 or x64) with at least 15GB of free space.- Windows 8.1 x86 or x64 installation DVD / USB or ISO mounted as a virtual drive.- Windows Assessment and Deployment Kit (Windows ADK) for Windows 8.1 installed.- Language pack (CAB) files for the languages you want to add.you can get them from the Repository, or see the Bonus in 2nd post.
How To:
Step 1Create a directory on a partition with enough space on it - at least 15GB of free space required, depending on the number of LPs you are adding! (e.g. C:\MUIDVD)To spare yourself absolutely pointless trouble, keep the path short, do not use stupid paths with spaces and do not use non-ASCII chars anywhere in the path.
Step 2Get the script and save the script to the directory your created, (E.g. save as C:\MUIDVD\MUI.cmd)
Step 3Copy the language pack(s) CAB(s) to the above directory as well. Suggest to use a subdirectory for each language (e.g. C:\MUIDVD\langpacks\de-de\lp.cab).Note: Do not forget to adjust LPFILEn path(s) accordingly in the script!
Step 4You will need to adjust the following variables as required at the top of the script:Mandatory to set:ARCH - the iso image architecture, "x86" for 32 bit or "amd64" for 64 bitLANGUAGES - Number of language packs to add (it's not recommended to exceed 10 languages!).LPFILEn - Path and file names of the language packs without quotation marks (e.g. C:\MUIDVD\langpacks\de-de\lp.cab)LANGUAGEn - code of the language packs (e.g. de-de, fr-fr), see the list here (culture name)DEFAULTLANGUAGE - Default system UI language, the language for non-Unicode programs, the "standards and formats" language, the input locales, the keyboard layouts and time zone values to the specified languageDEFAULTTIMEZONE - Default time zone in the Windows image, see the list hereSETUPLANGUAGE - Default language that will be used by setupOptional: (do not mess with this unless you know what you are doing)DVDDIR - Temporary directory to store the DVD contentsDVDISO - Path and filename for the ISO output file
DVDLABEL - The ISO labelDVDBOOT - The ISO support for BIOS only or both BIOS and UEFI, set "bios" or "uefi"TEMPDIR - Root directory for other temporary working directories
Note: Do NOT mess with anything after the following lines!
Code:
rem ##################################################################
rem # NORMALY THERE IS NO NEED TO CHANGE ANYTHING BELOW THIS COMMENT #
rem ##################################################################
Step 5Mount Windows 8.1 iso as virtual drive, or insert its DVD, USB (make sure you mounted/inserted only one dvd).
Step 6Double/triple-check that all your settings are correct and that the LPs CAB file(s) are in the proper location.After that, execute the script as Administrator
Step 7This process will take quite some time to finish, depending on number of LPs to add. Get some beer/coffee/joint and WAIT.
If all went OK:You will get the following message after all is finished:
The new multilingual ISO can be found in the same directory where you stored the script - e.g. C:\MUIDVD\mu_windows_8_1_x86_dvd.iso or C:\MUIDVD\mu_windows_8_1_x64_dvd.iso.
If you customized DVDISO variable, you need to look there instead.
Important Note:
The script is ment for localizing the Untouched original Windows 8.1 ISO's.
but it's still supports the custom-made ISO's (such as Core/Pro/WMC/Enterprise AIO), with one condition: all the images in install.wim must be for one same architecture (x86 or x64).
and if you already enabled .NET 3.5, don't forget to remark/remove its lines from the script accordingly.
MUI.cmd
@echo off
pushd "%~dp0"
set WORKDIR=%~dp0
set ARCH=amd64
set LANGUAGES=2
set LPFILE1=%WORKDIR%langpacks\de-de\lp.cab
set LPFILE2=%WORKDIR%langpacks\fr-fr\lp.cab
set LPFILE3=
set LPFILE4=
set LPFILE5=
set LPFILE6=
set LPFILE7=
set LPFILE8=
set LPFILE9=
set LANGUAGE1=de-de
set LANGUAGE2=fr-fr
set LANGUAGE3=
set LANGUAGE4=
set LANGUAGE5=
set LANGUAGE6=
set LANGUAGE7=
set LANGUAGE8=
set LANGUAGE9=
set DEFAULTLANGUAGE=de-de
set DEFAULTTIMEZONE="Central Europe Standard Time"
set SETUPLANGUAGE=de-de
set DVDDIR=%WORKDIR%DVD
set DVDISO=%WORKDIR%mu_windows_8_1_x86_dvd.iso
if "%ARCH%"=="amd64" set DVDISO=%WORKDIR%mu_windows_8_1_x64_dvd.iso
set DVDLABEL=IRM_CCSA_X86FRE_MUI_DV5
if "%ARCH%"=="amd64" set DVDLABEL=IRM_CCSA_X64FRE_MUI_DV5
set DVDBOOT=uefi
set TEMPDIR=%WORKDIR%TEMP
set EXTRACTDIR=%TEMPDIR%\extract
set LPEXTRACTDIR=%EXTRACTDIR%\langpack
set PEEXTRACTDIR=%EXTRACTDIR%\winpe
set MOUNTDIR=%WORKDIR%MOUNT
set INSTALLMOUNTDIR=%MOUNTDIR%\install
set WINREMOUNTDIR=%MOUNTDIR%\winre
set BOOTMOUNTDIR=%MOUNTDIR%\boot
rem ##################################################################
rem # NORMALY THERE IS NO NEED TO CHANGE ANYTHING BELOW THIS COMMENT #
rem ##################################################################
for %%A in (D E F G H I J K L M N O P Q R S T U V W X) do (if exist %%A:\sources\install.wim set DVDDRIVE=%%A:)
IF /I %PROCESSOR_ARCHITECTURE%==x86 (
IF NOT "%PROCESSOR_ARCHITEW6432%"=="" (
SET PROCESSOR_ARCHITECTURE=%PROCESSOR_ARCHITEW6432%
)
) ELSE IF /I NOT %PROCESSOR_ARCHITECTURE%==amd64 (
@echo Not implemented for PROCESSOR_ARCHITECTURE of %PROCESSOR_ARCHITECTURE%.
dir /b /s "%LPEXTRACTDIR%\!LANGUAGE%%j!\credits.rtf" > "%TEMPDIR%\search.txt"
for /f "delims=" %%a in (%TEMPDIR%\search.txt) do xcopy "%%a" "%DVDDIR%\sources\!LANGUAGE%%j!\" /chrkyi >nul
dir /b /s "%LPEXTRACTDIR%\!LANGUAGE%%j!\erofflps.txt" > "%TEMPDIR%\search.txt"
for /f "delims=" %%a in (%TEMPDIR%\search.txt) do xcopy "%%a" "%DVDDIR%\sources\!LANGUAGE%%j!\" /chrkyi >nul
dir /b /s "%LPEXTRACTDIR%\!LANGUAGE%%j!\oobe_help_opt_in_details.rtf" > "%TEMPDIR%\search.txt"
for /f "delims=" %%a in (%TEMPDIR%\search.txt) do xcopy "%%a" "%DVDDIR%\sources\!LANGUAGE%%j!\" /chrkyi >nul
dir /b /s "%LPEXTRACTDIR%\!LANGUAGE%%j!\privacy.rtf" > "%TEMPDIR%\search.txt"
for /f "delims=" %%a in (%TEMPDIR%\search.txt) do xcopy "%%a" "%DVDDIR%\sources\!LANGUAGE%%j!\" /chrkyi >nul
dir /b /s "%PEEXTRACTDIR%\!LANGUAGE%%j!\setup_help_upgrade_or_custom.rtf" > "%TEMPDIR%\search.txt"
for /f "delims=" %%a in (%TEMPDIR%\search.txt) do xcopy "%%a" "%DVDDIR%\sources\!LANGUAGE%%j!\" /chrkyi >nul
dir /b /s "%PEEXTRACTDIR%\!LANGUAGE%%j!\vofflps.rtf" > "%TEMPDIR%\search.txt"
for /f "delims=" %%a in (%TEMPDIR%\search.txt) do xcopy "%%a" "%DVDDIR%\sources\!LANGUAGE%%j!\" /chrkyi >nul
if "!LANGUAGE%%j!"=="ar-sa" if "%ARCH%"=="x86" xcopy "%PEEXTRACTDIR%\!LANGUAGE%%j!\x86_microsoft-windows-i..edia-base.resources_31bf3856ad364e35_6.3.9600.16384_ar-sa_a15b161a718b1963\*.rtf" "%DVDDIR%\sources\!LANGUAGE%%j!\" /chrkyi >nul
if "!LANGUAGE%%j!"=="bg-bg" if "%ARCH%"=="x86" xcopy "%PEEXTRACTDIR%\!LANGUAGE%%j!\x86_microsoft-windows-i..edia-base.resources_31bf3856ad364e35_6.3.9600.16384_bg-bg_479af7a3620b6aba\*.rtf" "%DVDDIR%\sources\!LANGUAGE%%j!\" /chrkyi >nul
if "!LANGUAGE%%j!"=="el-gr" if "%ARCH%"=="x86" xcopy "%PEEXTRACTDIR%\!LANGUAGE%%j!\x86_microsoft-windows-i..edia-base.resources_31bf3856ad364e35_6.3.9600.16384_el-gr_35a0113436c5000c\*.rtf" "%DVDDIR%\sources\!LANGUAGE%%j!\" /chrkyi >nul
if "!LANGUAGE%%j!"=="ar-sa" if "%ARCH%"=="amd64" xcopy "%PEEXTRACTDIR%\!LANGUAGE%%j!\amd64_microsoft-windows-i..edia-base.resources_31bf3856ad364e35_6.3.9600.16384_ar-sa_fd79b19e29e88a99\*.rtf" "%DVDDIR%\sources\!LANGUAGE%%j!\" /chrkyi >nul
if "!LANGUAGE%%j!"=="bg-bg" if "%ARCH%"=="amd64" xcopy "%PEEXTRACTDIR%\!LANGUAGE%%j!\amd64_microsoft-windows-i..edia-base.resources_31bf3856ad364e35_6.3.9600.16384_bg-bg_a3b993271a68dbf0\*.rtf" "%DVDDIR%\sources\!LANGUAGE%%j!\" /chrkyi >nul
if "!LANGUAGE%%j!"=="el-gr" if "%ARCH%"=="amd64" xcopy "%PEEXTRACTDIR%\!LANGUAGE%%j!\amd64_microsoft-windows-i..edia-base.resources_31bf3856ad364e35_6.3.9600.16384_el-gr_91beacb7ef227142\*.rtf" "%DVDDIR%\sources\!LANGUAGE%%j!\" /chrkyi >nul