Shop

InstallShield
Advanced Installer
AdminStudio
more / weitere

InstallShield und AdminStudio Schulungen

weitere Infos

Mehrsprachige MSI-Pakete ohne Setup.exe

Zusammenfassung: Durch eingebettete Sprach-Transformationen kann man ein Windows Installer Paket erstellen, das automatisch in der Betriebssystem-Sprache ausgeführt wird, ohne dafür ein setup.exe Startprogramm zu benötigen. Es handelt sich hierbei um eine undokumentierte Funktion des Windows Installer (funktioniert mit MSI 2 und MSI 3). Obwohl die Funktion ist nicht dokumentiert ist, weil sie von Microsoft nicht ausgiebig getetstet wurde, wird sie intern vom MSI Runtime Paket (instmsi.exe) verwendet. Dieser Artikel beschreibt, wie man diese Funktion einfach in sein eigenes Setup einbauen kann.

ENGLISCH: English version of this article
RUSSISCH: Перевод на русский язык доступен по ссылке: http://www.installsite.ru/go/embeddedlang.htm

Eingebettete Sprach-Transformationen

Bei der Verwendung von eingebetteten Sprach-Transformationen handelt es sich um ein nicht dokumentiertes Feature im Windows Installer. Bei einer sprachspezifischen Transformation handelt es sich um eine Transformation die im Substorage eines Windows Installer-Paketes unter der LangId gespeichert wird. Der Summary Information Stream (Property: PID_TEMPLATE) enthält eine Liste der Sprachen, die vom Paket unterstützt werden. Der Windows Installer wählt die Sprache automatisch aus, die der voreingestellten Sprache des Betriebssystems am nächsten kommt.

Vorgehensweise

Die Schritte 1 und 2 entsprechen dem üblichen Vorgehen. Viele Setup-Tools erledigen das automatisch.

  1. Installationspaket (Deutsch) erstellen. Eigenschaft "ProductLanguage" auf "1031" setzen.
  2. Transformation erstellen, die die UI-Elemente etc. in Englisch darstellt und die "ProductLanguage" auf "1033" setzt.
  3. Transformation in das Paket einbetten. Hierzu eignet sich das Skript "wisubstg.vbs" aus dem Windows Installer-SDK, dass mit folgender Befehlszeile verwendet werden kann:
    wisubstg.vbs <Pfad zu .msi> <Pfad zur Transformation> <Name des Sub-Storage>
    Als Namen des Sub-Storages die LanguageId (hier 1033 für Englisch) vergeben.
  4. Im Summary Information Stream die Sprache ergänzen. Falls Ihr MSI Tool zusätzlich eine 0 als Sprachcode eingetragen hat, diese entfernen.
    Richtig: "1031,1033"
    Falsch: "0,1031,1033"
    Hierzu eignet sich das Skript WiLangId.vbs aus dem Windows Installer-SDK, das mit folgender Befehlszeile verwendet werden kann:
    WiLangId.vbs <Pfad zu .msi> Package 1031,1033

Test

Wählen Sie "Regions- und Sprachoptionen" in der Systemsteuerung und stellen Sie auf der Registerkarte "Regionale Einstellungen" die Sprache auf "Englisch" (siehe Bildschirmkopie unten) und klicken Sie auf "Übernehmen". Die Installation wird mit englischem UI ausgeführt. Nach dem Zurücksetzen auf "Deutsch" wird die Installation wieder in Deutsch ausgeführt.

Über den Autor

Geschrieben von Andreas Kerl.

Andreas Kerl arbeitet als Application Development Consultant bei Microsoft Deutschland. Er hat das MS Press Buch "Inside Windows Installer" (in deutsch) geschrieben und arbeitet zur Zeit an einem neuen Buch über Windows Installer 3.1.

Bearbeiter

Bearbeitet von Stefan Krüger mit einer Ergänzung von Sascha Patzwaldt.

Stefan Krüger arbeitet als freiberuflicher Setup-Berater und betreibt die Webseite InstallSite.de, auf der Setup-Entwickler Ressourcen und Informationen untereinander austauschen. Stefan wurde von Microsoft als MVP (Most Valuable Professional) für Windows Installer ausgezeichnet.

 

  

English News Discussions Windows Installer Related Tools More Help InstallScript About InstallSite Shop Site Search
deutsch Neuigkeiten Diskussionsgruppen Windows Installer MSI FAQ Artikel     Shop Suche

Copyright © by InstallSite Stefan Krueger. All rights reserved. Legal information.
Impressum/Imprint Datenschutzerklärung/Privacy Policy
By using this site you agree to the license agreement. Webmaster contact.