Files
UnrealEngine/Engine/Source/Programs/Enterprise/Datasmith/DatasmithARCHICADExporter/Installer/CreateMultilanguageInstaller.py
2025-05-18 13:04:45 +08:00

42 lines
1.3 KiB
Python

import sys
import os
import shutil
import subprocess
from pathlib import Path
engine_path = Path(__file__).resolve().parents[6]
assert (engine_path/'Binaries').is_dir()
build_dir = Path(sys.argv[1]).resolve()
# scripts_dir = sys.argv[2]
scripts_dir = (engine_path/'Restricted/NotForLicensees/Programs/UnrealEngineInstaller/UnrealEngineInstaller/Localization/Scripts').resolve()
msi_name = 'UnrealDatasmithArchicadExporter.msi'
en_msi_dir = build_dir/'en-us'
en_msi_path = en_msi_dir/msi_name
assert en_msi_path.is_file(), f"Expected to see 'en-us' msi in {en_msi_path}"
final_msi_dir = build_dir/'Final'
final_msi_path = final_msi_dir/msi_name
final_msi_dir.mkdir(parents=True, exist_ok=True)
shutil.copy(en_msi_dir/msi_name, final_msi_path)
assert final_msi_path.is_file(), f"Expected to see final msi copied from root culture msi '{final_msi_path}'"
def add_language(culture_name, culture_code):
cmd = [
str(scripts_dir/'CreateAndEmbedLangTransform.bat'),
str(en_msi_dir), msi_name,
culture_name, str(culture_code),
str(final_msi_dir)]
subprocess.check_call(cmd)
for l in 'de-de:1031, ko-kr:1042, es-es:1034, fr-fr:1036, ja-jp:1041, pt-pt:2070, zh-cn:2052'.split(', '):
culture_name, culture_code = l.split(':')
add_language(culture_name, culture_code)