2013-04-02 8 views
11

Ho alcuni strani problemi con il modulo di internazionalizzazione di django. La maggior parte delle stringhe sono tradotte come devono essere e altre no. Lascia che ti mostri un esempio:Alcune stringhe non tradotte nel modulo django i18n

<li>{% trans "Upload Score" %}</li> 
<li>{% trans "Profile" %}</li> 
<li>{% trans "Invite friends" %}</li> 
<li>{% trans "Settings" %}</li> 

Ho un elenco di 4 elementi per un menu. Corro le makemessages comando Django di tradurre il sito in francese e ho tutto come previsto:

#: templates/main.html:190 templates/main.html.py:195 
#, fuzzy 
msgid "Upload Score" 
msgstr "Publier" 

#: templates/main.html:191 templates/main.html.py:196 
msgid "Profile" 
msgstr "Profil" 

#: templates/main.html:192 templates/main.html.py:197 
#, fuzzy 
msgid "Invite Friends" 
msgstr "inviter vos amis" 

#: templates/main.html:193 templates/main.html.py:198 
msgid "Settings" 
msgstr "Préférences" 

Ma quando compilo esso, sarà Django Admin compilemessages, solo "Profilo" e "Impostazioni" vengono tradotti. Sai da dove potrebbe venire? Potrebbe essere collegato all'uso di spazi bianchi? Esiste una modalità di debug nel modulo i18n?

Grazie per il vostro aiuto! :)

EDIT: Siamo su django 1.4.

+0

come si fa le impostazioni di lingua del progetto Django assomiglia? ('LANGUAGE_CODE',' USE_I18N'). Come sono le impostazioni della lingua del tuo sistema? 'Profile' e' Settings' sono string generici, che possono essere trovati in traduzioni che appartengono a django stesso. Immagino che le tue traduzioni non vengano usate affatto, a causa di impostazioni della lingua non corrispondenti o qualcosa del genere. – yedpodtrzitko

risposta

7

È necessario rimuovere le linee fuzzy.

Fuzzy probabilmente significa che la stringa originale è stata modificata. Gettext non vuole perdere le tue traduzioni quindi lo cambierà ma lo segnerà sfocato.

Ti raccomando rosetta. Creerà la tua interfaccia come admin dove puoi tradurre stringhe e gestire fuzzy.

Acclamazioni

2

ho avuto esattamente lo stesso sintomo, ho semplicemente dimenticato di aggiungere le impostazioni LOCALE_PATHS e Django stava usando alcune stringhe di traduzione di default per alcuni dei miei corde, e non raggiungere i miei file di messaggi sviluppati personalizzati.

L'aggiunta di questa impostazione ha risolto il problema:

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

Non dovrebbe essere LOCALE_PATH (senza S) –

+1

Mi sono collegato ai documenti dove è molto chiaro che è "LOCALE_PATHS". –

Problemi correlati