Как установить перевод ".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})
Удачи.