Как установить перевод ".po" в приложении django?

Я закончил несколько дней назад, создав файл перевода для Django-LFS (Lightning Fast Shop) для моего родного языка (pt_BR). Теперь, когда все готово, мне нужно установить файл.po, который я скачал после завершения перевода в Transifex.

Хорошо, я скачал файл, но теперь, когда мне нужно его установить, я просто не могу понять, как. Я попытался поместить файл в папку 'lfs-installer', используя "bin/django compilemessages -a", попробовал то же самое, но с файлом во многих разных папках, но я просто не могу заставить свою LFS использовать мой файл перевода...

Кто-нибудь знает, как заставить работать пакет перевода на lfs? Или я что-то не так делаю?

Спасибо

3 ответа

Поместите ваш.po файл в путь:

<your_django_project>/conf/locale/pt_BR/LC_MESSAGES/

и запустите django-admin makemessages -a

Если у вас его еще нет, создайте папку с именем Locale. Затем в папке settings.py вы должны указать, где искать пути к локали. Что-то вроде этого:

LOCALE_PATHS{
C:/sdalfjasd/dfalsdjkf/locale
}

Также убедитесь, что у вас есть промежуточное программное обеспечение в вашем промежуточном ПО...

Вы, вероятно, сможете эффективно отследить этот синтаксис и особенности, теперь, когда я указал вам правильное направление.

После того, как вы это настроите, вы можете запустить makemessage -a команда, которая создаст папку в вашей папке локали для -a, который вы вставили. Затем вы можете перейти к нему, внутри него должен быть файл.po (может и не быть). Если нет, просто поместите ваш.po файл, который вы там сделали.

Затем перейдите к своему проекту в CMD и запустите compilemessages -a, Это должно скомпилировать ваши.po файлы в файлы.mo, файлы, необходимые для работы переводов.

Надеюсь, я не сошел с ума от трека...

Я заставил его работать, используя следующие настройки:

import os
DIRNAME = os.path.dirname(__file__)

USE_I18N = True
USE_L10N = True

LANGUAGE_CODE = 'pt-br'
LANGUAGES = (
    ('pt-br', u"Português"),
)

LOCALE_PATHS = [
    DIRNAME + '/locale',
]

Чем создать locale в стороне от папки settings.py и следуйте официальным инструкциям Django. Желаемый путь для вашего django.po файл: locale/pt_BR/LC_MESSAGES/django.po, После этого используйте compilemessages инструмент и перезагрузите сервер.

Он должен работать.

Совет: django-lfs использует locale модуль для обработки отображения валюты, но есть ошибка для модуля локали, который заставляет его показывать 1234,00 R$ вместо R$ 1234,00, Если это кусает вас, поместите следующее в свой settings.py:

# Fix for LC_MONETARY bug: http://www.sourceware.org/bugzilla/show_bug.cgi?id=1294
import locale
locale._override_localeconv.update({'p_cs_precedes': 1, 'n_cs_precedes': 1})

Удачи.

Другие вопросы по тегам