Ubuntu 14.04.4 LTS Python 3.5.1 Django 1.9.7
--Django fonctionne dans un environnement japonais
En suivant les étapes ci-dessous, si vous préparez un fichier de traduction, la langue sera automatiquement sélectionnée en fonction de l'environnement linguistique du navigateur.
--Dans MIDDLEWARE_CLASSES
'django.middleware.locale.LocaleMiddleware',
Ajoutée
--Ajoutez ce qui suit au fichier
```python:settings.py
LOCALE_PATHS = (
os.path.join(BASE_DIR, 'locale'),
)
```
--Ajout de "{% load i18n%}"
--Changez la partie que vous voulez traduire en {% trans'hoge '%}
--S'il n'y a pas de données de traduction, hoge
sera affiché.
Exécutez ce qui suit sur la ligne de commande (de l'anglais au japonais)
mkdir /DJANGO_BASE_DIR/locale
django-admin.py makemessages -l ja
--Lorsqu'il est exécuté, / DJANGO_BASE_DIR / locale / ja / LC_MESSAGES / django.po
est créé.
--Modification du django.po généré
```python:django.po
#: path/to/template/index.html:4
msgid "hoge"
msgstr ""
```
De cette façon, un fichier comprenant le nom de fichier et le numéro de ligne de la partie spécifiée comme {% trans'hoge '%}
etc. dans le modèle est préparé, spécifiez donc la chaîne de caractères traduite dans msgid.
Exécutez ce qui suit sur la ligne de commande
python manage.py compilemessages
--Lorsqu'il est exécuté, le fichier compilé / DJANGO_BASE_DIR / locale / ja / LC_MESSAGES / django.mo
est créé.
Tout d'abord, recherchez le préfixe de langue dans l'URL demandée. Ceci n'est fait que lors de l'utilisation de la fonction ʻi18n_patterns dans la racine ʻURLconf
. Référence: Changer la langue affichée dans Django 1.9
Recherchez la clé django_language
dans la session de l'utilisateur actuel.
Recherchez les cookies. Le nom du cookie est défini sur la valeur du paramètre LANGUAGE_COOKIE_NAME
. (Le nom par défaut est django_language
.)
Regardez l'en-tête HTTP Accept-Language. Cet en-tête est envoyé depuis le navigateur et indique la langue souhaitée par l'utilisateur par ordre de priorité. Django cherchera dans toutes les langues transmises jusqu'à ce qu'il trouve une traduction disponible.
Si cela échoue également, utilisez le paramètre global LANGUAGE_CODE
.
Recommended Posts