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 № 1SE 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;).