2016-06-28 8 views
1

Ich habe eine Web-Anwendung mit Python 2.7.6, Kolben entwickelt und auf einem Apache Ubuntu-Server bereitgestellt.Internationalisierung (i18n) nicht gerendert mit Flask-Babel und Apache mit mod_wsgi auf Ubuntu-Instanz

Für die Internationalisierung verwendet die App das flask-babel Paket, um in Thai zu übersetzen. Es scheint jedoch, dass meine translations/th/LC_messages/messages.po Datei ignoriert wird.

Es funktioniert perfekt in meinem localhost, aber nicht auf dem Server. Um die Auswahl des Lokals zu erzwingen, verwende ich den Code unten:

@babel.localeselector 
def get_locale(): 
    return 'th' 

Es scheint, es ist etwas, das in meiner Konfigurationsdatei fehlen könnte, aber könnte es nicht herausgefunden.

Wenn Sie irgendwelche Ideen haben, zögern Sie nicht. Vielen Dank.

Antwort

0

Ich stieß auf genau dieses gleiche Problem! Meine Babel-Übersetzungen funktionierten gut, als ich die App lokal ausführte, aber auf meinem Apache-Server wurde der Text nicht wie erwartet übersetzt.

Nach dem Versuch, eine Reihe von verschiedenen Korrekturen, habe ich herausgefunden, dass (aus welchen Gründen auch immer), meine benutzerdefinierte get_locale Localeselector Override-Funktion wurde nicht von der App verwendet, wenn es auf dem Apache-Server ausgeführt wurde.

Ich endete beim expliziten Importieren der get_locale-Funktion in die relevante View-Datei, die das Problem behoben.

+0

Danke @CaptainPlanet für den Vorschlag! –