J’essaie d’internationaliser mon site Django (pour l’instant en anglais), et je n’arrive pas à faire marcher les traductions… Voici ce que j’ai fait actuellement :
As-tu une erreur au lancement, ou juste pas de traduction ?
Sinon, je crois que le fichier .po doit comporter un en-tête comme celui-ci (source) (qui est ajouté automatiquement avec la commande makemessages. Est-il bien dans ton fichier ?
Je me suis toujours demandé si c’étaient les fichiers .po, éditables, qui étaient utilisés, ou leur version "compilée" .mo… Le souci ne viendrait-il pas de ce que ces fichiers .mo n’existent actuellement pas ?
Edit
Ou alors ils ne sont pas là où le système les cherche.
Salut ! J’ai trouvé d’où venait le problème. J’avais bien compilé mes messages, mais en fait il me manquait deux paramètres dans les settings. Le premier, c’était de définir le context_preprocessor de i18n :
TEMPLATES=[{'BACKEND':'django.template.backends.django.DjangoTemplates','DIRS':[os.path.join(BASE_DIR,'templates')],'APP_DIRS':True,'OPTIONS':{'context_processors':['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages','django.template.context_processors.i18n',# Cette ligne était manquante],},},]
Et dans les middelwares, il manquait le LocaleMiddleware :
MIDDLEWARE=['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.locale.LocaleMiddleware',# Cette ligne était manquante'django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware','debug_toolbar.middleware.DebugToolbarMiddleware',]
Une fois ceci fait, je n’ai plus eu de problème ! J’espère que ça pourra en aider certains
Connectez-vous pour pouvoir poster un message.
Connexion
Pas encore membre ?
Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte