2011-03-03 3 views
1

J'essaie de définir la langue par défaut et uniquement la boutique d'une installation de Satchmo 0.9.2 en néerlandais.Impossible de définir la langue de la boutique dans Satchmo

Je suis en suivant les instructions sur translating content:

A partir du répertoire /home/myusername/webapps/myshop/lib/python2.7/Satchmo-0.9.2-py2.7.egg I émis la commande suivante pour compiler les fichiers langauge néerlandais:

find . -name locale -exec sh -c 'cd $0 && cd ../ && python2.7 
/home/myusername/webapps/myshop/lib/python2.7/django/bin/django-admin.py 
makemessages -l nl -e html,txt,rml' {} \; 

Je peux voir maintenant plusieurs fichiers .../locale/nl/LC_MESSAGES/django.po Wich contiennent messagestrings traduit en néerlandais.

Mon fichier local_settings.py a une variable LOCALE_PATHS définie:

LOCALE_PATHS = "" 

J'ai compilé les avec .po fichiers .mo fichiers:

find . -name locale -exec sh -c 'cd $0 && cd ../ && python2.7 
/home/myusername/webapps/myshop/lib/python2.7/django/bin/django-admin.py 
compilemessages' {} \; 

Je veux que le texte apparaisse en néerlandais, donc mon local_settings.py contient seulement:

LANGUAGE_CODE = 'nl' 
LANGUAGES = (
    ('nl', "Nederlands"), 
) 

Les utilisateurs ne doivent pas être ABLO de choisir d'autres traductions, donc allow_translation_choice est réglé sur False dans settings.py:

L10N_SETTINGS = { 
    'currency_formats' : { 
    'EURO' : {'symbol': u'€', 'positive' : u"€%(val)0.2f", 'negative': 
u"€(%(val)0.2f)", 
       'decimal' : ','}, 
    }, 
    'default_currency' : 'EURO', 
    'show_admin_translations': True, 
    'allow_translation_choice': False, 
} 

et dans le même fichier j'ai permis à mon i18n urls:

SATCHMO_SETTINGS = { 
    'SHOP_BASE' : '', 
    'MULTISHOP' : False, 
    'SHOP_URLS' : patterns('', (r'^i18n/', include('l10n.urls')),) 
} 

Pour vous assurer que mes modèles utilisent le code de langue correcte, je pense aussi à settings.py:

TEMPLATE_CONTEXT_PROCESSORS = (
    'satchmo_store.shop.context_processors.settings', 
    'django.core.context_processors.auth', 
    'django.core.context_processors.i18n', 
) 

Après j En passant par tous ces cerceaux, la langue de ma boutique apparaît toujours en anglais et a toujours le 'Changer la langue' avec un bouton déroulant vide dans le coin inférieur droit.

Quelqu'un at-il une idée de ce qui s'est passé?

Merci d'avance.

+0

Si vous trouvez des répertoires selon votre pays dans Satchmo (c'est-à-dire 'nl' pour le néerlandais) cela signifie que votre langue est supportée et ** vous pouvez passer la traduction du contenu ** pour le moment. (ne pas faire de messages, écrire une nouvelle traduction, compilemessages) Le néerlandais est pris en charge depuis août 2010. Vous pouvez revenir plus tard pour améliorer une traduction obsolète incomplète. Sans écrire une ligne dans votre langue, les premières étapes ne sont pas utiles. – hynekcer

Répondre

2

J'ai aussi dû installer le magasin dans une "presque" nouvelle langue espagnole. Je vais donc mettre ici des différences dans notre installation:

Dans mes paramètres je dois aussi:

LC_CTYPE = 'es_ES.utf8' 
TIME_ZONE = 'Europe/Madrid' 

'allow_translation_choice': False, < - ce qui est étrange, qui a travaillé très bien pour moi ... est-ce peut-être remplacé dans votre fichier de paramètres locaux?

J'ai aussi changé cela sur settings.py

#### Satchmo unique variables #### 
from django.conf.urls.defaults import patterns, include 
SATCHMO_SETTINGS = { 
    'SHOP_BASE' : '', 
    'MULTISHOP' : False, 
    #'SHOP_URLS' : patterns('satchmo_store.shop.views',) 
    'SHOP_URLS' : patterns('', (r'^i18n/', include('l10n.urls')),), 
    'CUSTOM_SHIPPING_MODULES': ['FLAT_SHIPPING_NORMAL',], 
    #'SSL': True 
} 

Si tout ne fonctionne pas, avez-vous essayé d'ajouter d'autres langues, comme de, en et d'activer le sélecteur de langue pour voir si elle change d'exemple allemand? De cette façon, vous pouvez savoir si c'est juste un problème avec la traduction néerlandaise.

Avez-vous traduit des messages manquants ...Je viens de regarder dans mon installation, et il a déjà des fichiers po pour nl. Et au moins le produit-po semble bien. Vous n'avez donc probablement pas besoin de lancer makemessages/compilemessages ... uniquement pour les "nouvelles" langues, ou lorsque vous voulez mettre à jour les po-files (au cas où les fichiers sources changeraient) ...

Mais si vous avez besoin de mettre à jour des traductions, je vous recommande de jeter un oeil à Rosetta ... c'est génial! J'ai parfois des bugs avec de nouveaux fichiers de traduction générés (seulement avec les en-têtes, j'ai dû les mettre manuellement, basé sur les fichiers existants du django-src: "Content-Type: text/plain; charset=UTF-8\n" and "Content-Transfer-Encoding: 8bit\n") mais après avoir ajouté les en-têtes à de nouveaux fichiers, ça marche très bien. Et vous n'avez pas à compiler vous-même les po-files, comme le fait Rosetta quand vous économisez.

2

Les seules mesures nécessaires pour permettre aux langues de commutation sont:

1) Changer de langue dans local_settings.py:

LANGUAGE_CODE = 'nl'  # not as important as would expected 
LANGUAGES = (
    ('nl', "Nederlands"), # languages supported by you 
) 

2) de commutation en ajoutant Activer la ligne suivante dans le dictionnaire SATCHMO_SETTINGS dans les paramètres. py:

'SHOP_URLS' : patterns('', (r'^i18n/', include('l10n.urls')),), 

Sélectionnez votre langue sur la page Web.

Notes:

J'ai vérifié maintenant la précédente avec une nouvelle installation ancienne Satchmo valide à la date de votre rapport. (dernière modification à la fin de février 2011)

Vérifiez bien qu'aucune valeur précédente n'est définie ultérieurement pour une valeur différente dans settings.py ou local_settings.py.

Je ne suis pas sûr que LANGUAGE_CODE fait ce qui est attendu par la plupart des gens. Il est utilisé uniquement si l'utilisateur n'a pas sélectionné de langue manuellement et si la langue préférée par le navigateur de l'utilisateur n'est pas activée par le site. Par conséquent, je désactive généralement l'anglais.

Si vous ajoutez une nouvelle langue à Satchmo, vérifiez qu'elle est au django/conf/locale. (il y a plus de 50 langues) Sinon, utilisez FORMAT_MODULE_PATH et lisez la documentation de Django à ce sujet.

Questions connexes