12
votes

Certaines chaînes ne sont pas traduites dans le module Django I18N

J'ai des problèmes étranges avec le module d'internationalisation de Django. La plupart des cordes sont traduites comme elles doivent être et d'autres ne sont pas. Laissez-moi vous montrer et exemple: xxx

J'ai une liste de 4 éléments pour un menu. Je gère les makemessages de commandement de Django pour traduire le site en français et je reçois tout comme prévu: xxx

mais quand je le compile, les compilemessages Django-admin, uniquement "profil" et "paramètres" sont traduits. Savez-vous d'où cela pourrait venir? Pourrait-il être lié à l'utilisation d'espaces blancs? Existe-t-il un mode de débogage dans le module I18N?

Merci pour votre aide! :)

Edit: Nous sommes sur Django 1.4.


1 commentaires

Comment ressemble vos paramètres de langue de projet Django? ( Language_Code , UTILISE_I18N ). Comment ressemblent vos paramètres de langue système? Profil et Paramètres sont une chaîne générique, qui peut être trouvée dans les traductions appartenant à Django même. Je suppose que vos traductions ne sont pas utilisées du tout, en raison de l'inadéquation des paramètres de langue ou de quelque chose comme ça.


3 Réponses :


7
votes

Vous devez supprimer des lignes floues.

FUZZY signifie probablement que la chaîne d'origine a été modifiée. GetText ne veut pas perdre vos traductions afin que cela le changera mais le marquez-le flou.

Je vous recommande Rosetta . Il vous créera une interface administratrice comme une interface où vous pouvez traduire des chaînes et gérer FUZZY.

acclamations


0 commentaires

4
votes

J'avais exactement le même symptôme, j'ai simplement oublié d'ajouter le Locale_Paths Paramètres et Django utilise des chaînes de traduction par défaut pour certaines de mes chaînes, et n'atteignez pas mes fichiers de messages développés personnalisés.

Ajout de ce paramètre résolu le problème: P >

LOCALE_PATHS = (
    PROJECT_DIR.child('locale'),  # assuming PROJECT_DIR is set to project root (using unipath)
)


2 commentaires

Ne devrait-il pas être locale_path (Sans S)


J'ai lié aux docs où il est très clair que c'est locale_paths .



1
votes

Dans mon cas, il s'agissait que le répertoire tenant mon répertoire lc_mesages a été nommé d'après le code de langue que je voulais (par exemple, en-nous ) plutôt que la locale ( EN_US ). Le renommer au format local format des choses fixes.


0 commentaires