Seite 1 von 1
Zweifelsfrei die Sprache feststellen
Verfasst: Freitag 24. September 2010, 16:20
von rhersel
Wie kann ich zweifelsfrei die Sprache feststellen?
kann mir bei einem deutschen System diverse Sprachcodes liefern: de_CH, de_AT, nds_DE, ...
Ich möchte aber einfach nur wissen ob es Deutsch ist oder nicht. Dabei interessiert mich nicht ob es Niedersachsen, Schweiz oder Österreich ist. Muss ich dafür tatsächlich auf alle Möglichen "_de, de_, _DE" Varianten testen?
Re: Zweifelsfrei die Sprache feststellen
Verfasst: Freitag 24. September 2010, 17:04
von BlackJack
@rhersel: Da kann auch "german", "deutsch", "87872", oder sonstwas kommen, das ist nicht standardisiert. Also ist die Antwort auf Deine Frage "leider gar nicht".
Re: Zweifelsfrei die Sprache feststellen
Verfasst: Freitag 24. September 2010, 17:09
von gkuhl
Für mich sieht das so aus, als stehe der erste Teil für die Sprache (de: deutsch, en: englisch, nds: niederdeutsch...) und der zweite Teil für das Land (DE: Deutschland, CH: Schweiz...). Niederdeutsch ist eine eigenständige Sprache und "nds_DE" steht für in Deutschland gesprochenes niederdeutsch. Also nur den ersten Teil testen, wenn es um die Sprache geht. Ansonsten wäre "fr_DE" und "en_DE" im Test ebenfalls deutsch.
Du könntest wie folgt testen (wenn es denn standardisiert wäre, siehe BlackJacks Antwort):
Code: Alles auswählen
>>> locale = 'de_DE'
>>> locale.split('_')[0] in ['de', 'nds']
True
>>> locale = 'nds_DE'
>>> locale.split('_')[0] in ['de', 'nds']
True
Grüße
Gerrit
Re: Zweifelsfrei die Sprache feststellen
Verfasst: Freitag 24. September 2010, 17:34
von Dav1d
Code: Alles auswählen
>>> locale = 'de_DE'
>>> any(l.lower() == 'de' for l in locale.split('_'))
True
>>> locale = 'nds_DE'
>>> any(l.lower() == 'de' for l in locale.split('_'))
True
>>>
Mit any gehts IMHO schöner/besser.
//Edit: sry nicht genau genug gelesen
Re: Zweifelsfrei die Sprache feststellen
Verfasst: Samstag 25. September 2010, 12:35
von noisefloor
Hallo,
bei mir (Ubuntu 10.04.01) kommt raus: ('de_DE', 'UTF8')
Ob unter bestimmten Umständen / Konfigurationen auch nur 'UTF8' rauskommen kann weiß ich nicht... Dann wäre jeder Test auf 'de' ja so wie so sinnlos.
Was ist denn der Hintergrund der Frage? Vielleicht gibt es eine alternative Lösung.
Gruß, noisefloor
Re: Zweifelsfrei die Sprache feststellen
Verfasst: Samstag 25. September 2010, 13:14
von rhersel
Danke für die bisherigen Antworten.
Der Hintergrund der Frage ist ganz einfach: In meiner Anwendung muss ich je nach Sprache die richtige Übersetzung der Labels, Messages und der Hilfe auslösen (gettext() usw.). Dafür muss ich aber eindeutig feststellen welche Sprache der Anwender hat. Dabei ist nur von Interesse ob es DE, EN, FR usw. ist.
Ich werde wohl den Vorschlag:
Code: Alles auswählen
locale = 'nds_DE'
any(l.lower() == 'de' for l in locale.split('_'))
verwenden.
Oder besser so:
Code: Alles auswählen
loc = locale.getdefaultlocale()[0].lower().split('_')
if 'de' in loc: print 'hier wird Deutsch gesprochen'