Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Schweizer SystemLanguageID


4 replies to this topic

Majue

Majue
  • Full Members
  • 185 posts

Posted 03 September 2010 - 08:18

Hallo,

mein Setup installiert - zusätzlich zu unserer eigenen Software - den MS SQL Server 2005 Express Edition mit Hilfe der entsprechenden Template.ini. Das funktioniert soweit ohne Probleme, wenn es sich um ein deutsches (SystemLanguageID = 1031) oder englisches (SystemLanguageID = 1033) Betriebssystem handelt. Es wird je nach installierter Sprache wird die richtige Template.ini zur Installation verwendet.
Nun haben wir aber einen Kunden in der Schweiz. Lt. InstallShield-Hilfethema "Sprachkennziffern" gibt es keine eigene SystemLanguageID für die Schweiz. Ein Test auf dem Kundensystem hat aber ergeben, dass vom Setup SystemLanguageID = 2055 ermittelt wird.
Mein Problem ist, dass ich nicht herausfinden kann, ob es sich dabei um ein deutschsprachiges (deutsche Template.ini) oder um ein englischsprachiges (englische Template.ini) System handelt. Bei Verwendung der falschen Template.ini funktioniert die Installation des SQL Server nicht richtig.
Hoffentlich gibt es jemandem hier im Forum, der sich damit auskennt.

Gruß
Jürgen Markert

(Anwender von InstallShield 2016 - Professional Edition)


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 06 September 2010 - 21:19

Die SystemLanguageID wird über einen Aufruf der Betriebsssystemfunktion GetSystemDefaultLangID ermittelt. Die Werte für die verschiedenen Sprachen stehen hier:
http://msdn.microsof...3(v=VS.85).aspx

Er besteht aus einer Hauptsprache und einer Subsprache.
So steht 0x0407 (= dezimal 1031) für Deutsch (Deutschland) und 0x0807 (= 2055) für Deutsch (Schweiz), d.h. 0x0007 bedeutet Sprachgruppe Deutsch und das höherwerttige Byte gibt die Sub-Sprache an. 0x0009 steht für Sprachgruppe Englisch kit z.B. 0x0409 Englisch (USA), 0x0809 Engisch (GB) usw.

Majue

Majue
  • Full Members
  • 185 posts

Posted 07 September 2010 - 09:09

Schon einmal vielen Dank für die Antwort, aber wie kann ich denn die Hauptsprache ermitteln? Die Variable "SystemLanguageID" gibt ja den dezimalen Wert zurück, zur eindeutigen Prüfung würde ich aber die letzten beiden Stellen von z. B. "0x0407" benötigen.

Gruß
Jürgen Markert

(Anwender von InstallShield 2016 - Professional Edition)


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 07 September 2010 - 14:51

Durch bitweises UND mit 0x00FF (= 255)

Wenn ich die Doku richtig interpretiere (getestet habe ich es nicht) dann müsste die Condition
(SystemLanguageID >< 255) = 7
bei allen Sprachen der Gruppe Deutsch TRUE ergeben.

Majue

Majue
  • Full Members
  • 185 posts

Posted 08 September 2010 - 12:41

Vielen Dank, ich werde das bei Gelegenheit einmal testen. Bis dahin frage ich einfach ab, ob die SystemLanguageID = 1031 oder 1033 ist, alles andere ist dann der ELSE-Fall, der zum Glück nicht allzu oft vorkommt!

Gruß
Jürgen Markert

(Anwender von InstallShield 2016 - Professional Edition)