Использование интерфейса переводов Rosetta

Rosetta — это приложение стороннего производителя, позволяющее редактировать переводы с помощью того же интерфейса, что и сайт администрирования Джанго. Rosetta упрощает редактирование файлов .po и обновляет скомпилированные файлы переводов. Давайте добавим его в наш проект.

Установите Rosetta через pip с помощью этой команды:

pip install django-rosetta==0.7.6

Затем добавьте 'rosetta' к параметрам INSTALLED_APPS в файле settings.py.

Необходимо добавить URL-адреса Rosetta в конфигурацию основного URL. Измените основной файл urls.py проекта и добавьте в него следующий шаблон URL-адреса:

url(r'^rosetta/', include('rosetta.urls')),

Убедитесь, что вы поместите его перед шаблоном shop.urls.

Откройте http://127.0.0.1:8000/admin/ и войдите в систему с помощью суперпользователя. Затем перейдите к http://127.0.0.1:8000/rosetta/ . Вы увидите список существующих языков:

В разделе Filter выберите All, чтобы отобразить все доступные файлы сообщений, в том числе те, которые принадлежат приложению orders. Кликните по ссылке Myshop в разделе Spanish, чтобы изменить переводы на Испанский язык. Вы увидите список строк перевода:

Можно ввести переводы в колонке Spanish. В столбце Occurrences отображаются файлы и строки кода, в которых была найдена каждая строка перевода.

Переводы, включающие placeholders, будут выглядеть следующим образом:

Росетта использует заполнение другим цветом фона для отображения placeholders. При переводе содержимого убедитесь, что placeholders не переведены. Например, переведите следующую строку:

%(total_items)s item%(total_items_plural)s, $%(total_price)s

Она переводится на Испанский язык следующим образом:

%(total_items)s producto%(total_items_plural)s, $%(total_price)s

Можно взглянуть на исходный код, который поставляется вместе с этой главой, чтобы использовать те же переводы на Испанский язык для проекта.

По завершении редактирования переводов нажмите кнопку Save and translate next block, чтобы сохранить переводы в файл .po. Rosetta компилирует файл сообщения при сохранении переводов, поэтому нет необходимости запускать команду compilemessages. Однако для записи файлов сообщений Rosetta требуется доступ на запись в каталоги locale/. Убедитесь, что каталоги имеют допустимые разрешения.

Если требуется, чтобы другие пользователи могли редактировать переводы, откройте в браузере http://127.0.0.1:8000/admin/auth/group/add/ и создайте новую группу с именем translators. Затем пройдите к http://127.0.0.1:8000/admin/auth/user/ для редактирования пользователей, которым требуется предоставить разрешения, чтобы они могли редактировать переводы. При редактировании пользователя в разделе Permissions добавьте группу translators в выбранные группы для каждого пользователя. Росетта доступен только для суперпользователей или пользователей, принадлежащих к группе translators.

Вы можете ознакомиться с документацией к Rosetta здесь: http://django-rosetta.readthedocs.org/en/latest/

При добавлении в продакшн новых переводов, если вы работаете с реальным веб-сервером, вам придется перезагрузить сервер после запуска команды compilemessages или после сохранения переводов с Росетта, чтобы изменения вступили в силу.

results matching ""

    No results matching ""