Kategorien

Adobe Indesign & Incopy Sprache wechseln Powershell Script

Version 1.1: Adobe Indesign and Incopy Language Select “language_selector_v1.1.ps1″

  • Choise: all languages​except SDK
  • Simply to use on Xenapp Citrix Terminal Server,
  • Microsoft Windows Terminal Server 2008 R2 Sp1 and Windows 7 Sp1

Language Use Inventory (LUI), Multilingual User Interface (MUI)

Die Sprache der Benutzeroberfläche von Adobe InDesign and Incopy unter Windows 7, Vista und Windows Server 2008 einfach mit einen Script wechseln.

Die Windows-Registry enthält eine DWord Wert “User Interface Locale Setting” der die aktuelle Anwendung Sprache kodiert.

Für die Betriebsystemversionen 32/64 Bit gibt es eigene Registry Zweige:

Windows OS 32 Bit unter HKLMSOFTWAREAdobeInDesign7.0
Windows OS 64 Bit unter HKLMSOFTWAREWow6432NodeInCopy6.0

Ein kleines Powershell Script hilft beim Umstellen der Sprache. Dieses Script ist hilfreich wenn auf einem Arbeitsplatz alle Einstellungen für verschiedenen Sprachen vorbereitet werden müssen. Das Profil wird anschliessend gespeichert und anderen Benutzern zur Verfügung gestellt.

  • 1. Save Script in File “language_selector_v1.1.ps1″
  • 2. make a Desktop link:

powershell.exe -WindowStyle Hidden „language_selector_v1.1.ps1“

Script : language_selector_v1.1.ps1

# Version 1.1 - language_selector_v1.1.ps1
# 64 Bit OS - 7.0 ist CS5 / 6.0 is CS4
$argIC = "HKLMSOFTWAREWow6432NodeAdobeInCopy7.0"
#$argIC = "HKLMSOFTWAREWow6432NodeAdobeInCopy6.0"
$argID = "HKLMSOFTWAREWow6432NodeAdobeInDesign7.0"
#$argID = "HKLMSOFTWAREWow6432NodeAdobeInDesign6.0"

# 32 Bit OS - 7.0 ist CS5 / 6.0 is CS4
#$argIC = "HKLMSOFTWAREAdobeInCopy7.0"
#$argIC = "HKLMSOFTWAREAdobeInCopy6.0"
#$argID = "HKLMSOFTWAREAdobeInDesign7.0"
#$argID = "HKLMSOFTWAREAdobeInDesign6.0"

$argLS = "User Interface Locale Setting"

$DropDownArray = @{
"English (US)" = "en_US,00000001,English (US)";
"English (UK)" = "en_GB,00000002 English (UK)";
"German"  = "de_DE,00000003,German";
"French"  = "fr_FR,00000004,French";
"Japanese" = "ja_JP,00000005,Japanese";
"Spanish" = "es_ES,00000006,Spanish";
"Portuguese (Brazil)" = "pt_BR,00000007,Portuguese (Brazil)";
"Swedish" = "sv_SE,00000008,Swedish";
"Danish"  = "da_DK,00000009,Danish";
"Dutch (Netherlands)" = "nl_NL,0000000a,Dutch (Netherlands)";
"Italian" = "it_IT,0000000b,Italian";
"Norwegian Bokmål" = "nb_NO,0000000c,Norwegian Bokmål";
"Finnish" = "fi_FI,0000000d,Finnish";
"Modern Greek" = "el_GR,0000000e,Modern Greek";
"Czech" = "cs_CZ,0000000f,Czech";
"Polish" = "pl_PL,00000010,Polish";
"Hungarian" = "hu_HU,00000012,Hungarian";
"Russian" = "ru_RU,00000013,Russian";
"Turkish" = "tr_TR,00000016,Turkish";
"Romanian" = "ro_RO,00000017,Romanian";
"Ukrainian" = "uk_UA,0000001e,Ukrainian";
"Hebrew (Israel)" = "he_IL,0000001f,Hebrew (Israel)";
"Arabic (UAE)" = "ar_AE,00000020,Arabic (UAE)";
"Chinese (China)" = "zh_CN,00000021,Chinese (China)";
"Chinese (Taiwan)" = "zh_TW,00000022,Chinese (Taiwan)";
"Korean"  = "ko_KR,00000023,Korean"
}

[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
[System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")

$Form = New-Object System.Windows.Forms.Form

$Form.width = 300
$Form.height = 150
$Form.Text = "InDesign und InCopy"

$DropDown = new-object System.Windows.Forms.ComboBox
$DropDown.Location = new-object System.Drawing.Size(100,40)
$DropDown.Size = new-object System.Drawing.Size(130,30)

ForEach ($Item in $DropDownArray.GetEnumerator()) {
	$DropDown.Items.Add($Item.Key)
}

$Form.Controls.Add($DropDown)
$DropDownLabel = new-object System.Windows.Forms.Label
$DropDownLabel.Location = new-object System.Drawing.Size(10,40)
$DropDownLabel.size = new-object System.Drawing.Size(100,20)
$DropDownLabel.Text = "select Language"
$Form.Controls.Add($DropDownLabel)

$Button = new-object System.Windows.Forms.Button
$Button.Location = new-object System.Drawing.Size(100,70)
$Button.Size = new-object System.Drawing.Size(60,20)
$Button.Text = "select"
$Button.Add_Click({
	$Choice = $DropDown.SelectedItem.ToString()
	if($Choice)
	{
		$Id = $DropDownArray[$Choice].split(",")[1]
		$argIC,$argID | foreach {
			reg add $_ /v Language /t REG_SZ /d $choice /f | Out-Default
			reg add $_ /v $argLS /t REG_DWORD /d $Id /f | Out-Default
		}
	}
})
$form.Controls.Add($Button)

$Button = new-object System.Windows.Forms.Button
$Button.Location = new-object System.Drawing.Size(170,70)
$Button.Size = new-object System.Drawing.Size(60,20)
$Button.Text = "quit"
$Button.Add_Click({$Cancel=$True;$form.Close()})
$form.Controls.Add($Button)

$Form.Add_Shown({$Form.Activate()})
$Form.ShowDialog()
# End

 

read adobe documentation …, possible values are:

LOCALE DEC. DWORD (hexa) LANGUAGE
en_US 01 00000001 English (US)
en_GB 02 00000002 English (UK)
de_DE 03 00000003 German
fr_FR 04 00000004 French
ja_JP 05 00000005 Japanese
es_ES 06 00000006 Spanish
pt_BR 07 00000007 Portuguese (Brazil)
sv_SE 08 00000008 Swedish
da_DK 09 00000009 Danish
nl_NL 10 0000000a Dutch (Netherlands)
it_IT 11 0000000b Italian
nb_NO 12 0000000c Norwegian Bokmål
fi_FI 13 0000000d Finnish
el_GR 14 0000000e Modern Greek
cs_CZ 15 0000000f Czech
pl_PL 16 00000010 Polish
hu_HU 18 00000012 Hungarian
ru_RU 19 00000013 Russian
tr_TR 22 00000016 Turkish
ro_RO 23 00000017 Romanian
uk_UA 30 0000001e Ukrainian
he_IL 31 0000001f Hebrew (Israel)
ar_AE 32 00000020 Arabic (UAE)
zh_CN 33 00000021 Chinese (China)
zh_TW 34 00000022 Chinese (Taiwan)
ko_KR 35 00000023 Korean

SDK file ‘WLocaleIds.h’ are few more values, i hope any of these work:

hr_HR 0x0011 //Croatian
sk_SK 0x0014 //Slovak
sq_AL 0x0015 //Albanian
tr_TR 0x0016 //Turkish
bg_BG 0x0018 //Bulgarian
be_BY 0x0019 //Belarussian
et_EE 0x001a //Estonian
lv_LV 0x001b //Latvian
lt_LT 0x001c //Lithuanian
sl_SL 0x001d //Slovenian
ta_IN 0x0024 // Tamil
th_TH 0x0025 // Thai
vi_VN 0x0026 // Vietnamese

Quelle: http://www.brauckmann.ch/adobe-indesign-incopy-sprache-wechseln-powershell-script