/ / Localizzazione Django: come usare una lingua diversa dall'inglese come lingua "da tradurre" - django

Localizzazione di Django: come usare una lingua diversa dall'inglese come lingua di "traduzione" - django

Il problema è: se imposto la lingua inglese come lingua principale ( LANGUAGE_CODE = "en" ) poi tutto funziona bene. Se chiediamo il sito da un browser con impostazioni internazionali inglesi, vediamo la variante inglese e analogicamente per un browser con impostazioni locali russe.

Ma se io set LANGUAGE_CODE = "ru" quindi vediamo la variante russa in ogni caso.

Quindi, perché la lingua inglese è predefinita e utilizzata da Django come msgid?

Si prega di vedere le impostazioni del mio progetto qui sotto.


Nel mio settings.py Provo a impostare non la lingua inglese come lingua principale:

LANGUAGE_CODE = "ru"
LANGUAGES = ( ( "en", "English", ), ( "ru", "Russian", ), )

Quindi ho en / LC_MESSAGES / django.po:

msgid "SITE_MAIN_TITLE"
msgstr "D"argent: Cosmetics, Hair Care, Parfume"

E ru / LC_MESSAGES / django.po:

msgid "SITE_MAIN_TITLE"
msgstr "D"argent – косметика, средства по уходу за волосами, парфюмерия"

Nel modello HTML:

...
<title>{% block title %}{% trans "SITE_MAIN_TITLE" %}{% endblock %}</title>
...

risposte:

1 per risposta № 1

SE si utilizza questo middleware "django.middleware.locale.LocaleMiddleware".

https://github.com/django/django/blob/master/django/utils/translation/trans_real.py#L366

vedi la funzione get_language_from_request. Comprendere come scegliere il codice lingua predefinito. Potrebbe non essere mai usato come impostazioni. LINK_CODE;).