Как установить перевод ".po" в приложении django? - PullRequest
2 голосов
/ 07 сентября 2011

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

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

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

Спасибо

Ответы [ 3 ]

1 голос
/ 07 сентября 2011

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

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

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

0 голосов
/ 23 февраля 2013

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

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})

Удачи.

0 голосов
/ 07 сентября 2011

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

LOCALE_PATHS{
C:/sdalfjasd/dfalsdjkf/locale
}

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

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

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

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

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

...