Перевод Модулей - Odoo 10.0

Экспорт переводимых терминов

Ряд терминов в ваших модулях «переводится неявно», даже если вы не выполнили какую-либо конкретную работу по переводу, то после экспорта терминов вашего модуля вы, скорее всего, найдете контент над которым надо еще поработать.

Экспорт переводов осуществляется через интерфейс администратора(нужно войти в режим отладки) и открытия Settings ‣ Translations ‣ Import / Export ‣ Export Translations

  • Оставьте язык по умолчанию (новый язык/пустой шаблон)

  • Выберите формат PO File

  • выберите свой модуль

  • нажмите Export и загрузите файл

This gives you a file called yourmodule.pot which should be moved to the yourmodule/i18n/ directory. The file is a PO Template which simply lists translatable strings and from which actual translations (PO files) can be created. PO files can be created using msginit, with a dedicated translation tool like POEdit or by simply copying the template to a new file called language.po. Translation files should be put in yourmodule/i18n/, next to yourmodule.pot, and will be automatically loaded by Odoo when the corresponding language is installed (via Settings ‣ Translations ‣ Load a Translation)

Экспорт неявных терминов

Odoo автоматически экспортирует переводимые строки из содержимого типа «data»:

  • В представлениях, отличных от QWeb, экспортируются все текстовые узлы, а также атрибуты string, help, sum, confirm и placeholder

  • Шаблоны QWeb (как на стороне сервера, так и на стороне клиента), все текстовые узлы экспортируются, кроме блоков t-translation = "off", также экспортируются содержимое атрибутов title, alt , label и placeholder

  • для Field, если их модель не отмечена _translate = False:

    • экспортируются атрибуты string и help

    • если selection присутствует и его список (или кортеж) экспортируется

    • если их атрибут translate установлен в True, все их существующие значения (во всех записях) экспортируются

  • сообщения о помощи и об ошибках _constraints и _sql_constraints экспортируются

Экспорт очевидных терминов

Когда дело доходит до более "императивных" ситуаций в коде Python или коде Javascript, Odoo не может автоматически экспортировать термины для перевода, поэтому для экспорта они должны быть отмечены явно. Это делается путем обертки литеральной строки в вызов функции.

В Python функция враппер - odoo._():

title = _("Bank Accounts")

В JavaScript функция враппер обычно odoo.web._t():

title = _t("Bank Accounts")