Django i18n finde unterstützte Sprachen

8

Ich ermittle die Sprachpräferenz eines Benutzers durch einen Drittanbieter-Dienst, bei dem er auch registriert ist. Dieser Dienst stellt mir einen Ländercode zur Verfügung (z. B. en_US ). Wenn ich nicht den entsprechenden Sprachcode in settings.LANGUAGES habe, bietet Django einen integrierten (einfachen) Weg, um die beste Fallback-Auswahl aus settings.languages (z. B. en-gb ) zu bestimmen.

Natürlich weiß ich, dass ich ein paar String-Vergleiche des Locale-Codes usw. selbst machen könnte, nur neugierig, ob es eine bessere Lösung gibt!

    
Bernhard Vallant 04.04.2011, 12:50
quelle

1 Antwort

5

Sie können den Code sehen, den Django verwendet, um die Sprache basierend auf einer Anfrage zu bestimmen: hier . Leider scheint es keine nützliche Dienstprogrammfunktion für das zu geben, was Sie tun. Die verwendete Logik ist jedoch trivial - nur lop das Ende aus Wenn die Untersprache nicht unterstützt wird und suchen Sie nach der Hauptsprache als Fallback. Dies würde Sie jedoch nicht von en-us zu en-gb bringen.

Übrigens, die to_locale und to_language Funktionen in dieser Datei könnten für Sie von Interesse sein.

    
DrMeers 04.04.2011, 23:13
quelle