Не могу установить язык магазина в Satchmo - PullRequest
1 голос
/ 04 марта 2011

Я пытаюсь установить язык по умолчанию и только магазин для установки Satchmo 0.9.2 на голландский язык.

Я следую инструкциям по переводу контента :

Из каталога /home/myusername/webapps/myshop/lib/python2.7/Satchmo-0.9.2-py2.7.egg я сгенерировал следующую команду для компиляции файлов голландского языка:

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' {} \;

Теперь я вижу несколько файлов .../locale/nl/LC_MESSAGES/django.po, которые содержат строки сообщений, переведенные на голландский язык.

В моем local_settings.py файле определена переменная LOCALE_PATHS:

LOCALE_PATHS = ""

Я скомпилировал файлы .po в .mo файлы с:

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

Я хочу толькотекст должен отображаться на голландском языке, поэтому мой local_settings.py содержит только:

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

Пользователи не должны иметь права выбирать другие переводы, поэтому allow_translation_choice имеет значение False в 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,
}

и в том же файле я включил свои URL-адреса i18n:

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

Чтобы убедиться, что в моих шаблонах используется правильный языковой код, я также добавил в settings.py:

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

Прыгнув через все эти обручи, мой язык в магазине все еще отображается на английском и прочем.У вас будет «Изменить язык» с пустой раскрывающейся кнопкой в ​​правом нижнем углу.

У кого-нибудь есть подсказка, где я ошибся?

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 21 апреля 2012

Единственные необходимые шаги для включения переключения языков:

1) Изменить языки в local_settings.py:

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

2) Включить переключение, добавив следующую строку в словарь SATCHMO_SETTINGSin settings.py:

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

Выберите ваш язык на веб-странице.

Примечания:

Теперь я проверил предыдущее с новым установленным старым Satchmo, действующим надата вашего отчета.(последнее изменение в конце февраля 2011 г.)

Обязательно посмотрите, что никакое предыдущее значение не будет установлено позже для другого значения в settings.py или local_settings.py.

Я не уверен, что LANGUAGE_CODEделает то, что ожидается большинством людей.Он используется только в том случае, если пользователь не выбрал какой-либо язык вручную, а язык, выбранный браузером пользователя, не включен сайтом.Поэтому я обычно отключаю английский.

Если вы добавляете новый язык в Satchmo, убедитесь, что он находится в django/conf/locale.(существует более 50 языков). В противном случае используйте FORMAT_MODULE_PATH и прочитайте документацию Django об этом.

2 голосов
/ 05 октября 2011

Мне также пришлось настроить магазин на "почти" новый язык испанского. Поэтому я просто добавлю здесь любые отличия от нашей установки:

В моих настройках у меня также есть:

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

'allow_translation_choice': False, <- это странно, это прекрасно сработало для меня ... это может быть переопределено в вашем файле локальных настроек? </p>

Я также изменил это на 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
}

Если это не помогло, попытались ли вы добавить больше языков, таких как de, en и включить селектор языка, чтобы увидеть, изменится ли он, например, на. Немецкий? Таким образом, вы можете узнать, если это просто проблема с голландским переводом.

Вы перевели какие-либо пропущенные сообщения ... Я только что посмотрел мою установку, и в ней уже есть po-файлы для nl. И, по крайней мере, продукт ПО выглядит нормально. Таким образом, вам, вероятно, не нужно запускать makemessages / compilemessages ... это необходимо только для "новых" языков или когда вы хотите обновить po-файлы (в случае, если исходные файлы изменились) ...

Но если вам нужно обновить переводы, я бы порекомендовал вам взглянуть на Розетту ... это здорово! Иногда возникают ошибки в новых сгенерированных файлах перевода (только с заголовками, некоторые из них мне приходилось ставить вручную, основываясь на существующих файлах из django-src: "Content-Type: text/plain; charset=UTF-8\n" and "Content-Transfer-Encoding: 8bit\n"), но после добавления заголовков в новые файлы это работает отличный. И вам не нужно самим компилировать po-файлы, как это делает rosetta при сохранении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...