Экспорт переводимых терминов
Ряд терминов в ваших модулях «переводится неявно», даже если вы не выполнили какую-либо конкретную работу по переводу, то после экспорта терминов вашего модуля вы, скорее всего, найдете контент над которым надо еще поработать.
Экспорт переводов осуществляется через интерфейс администратора(нужно войти в режим отладки) и открытия
Оставьте язык по умолчанию (новый язык/пустой шаблон)
Выберите формат 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
)
Примечание
переводы для всех загруженных языков также устанавливаются или обновляются при установке или обновлении модуля
Экспорт неявных терминов
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")
Предупреждение
Only literal strings can be marked for exports, not expressions or variables. For situations where strings are formatted, this means the format string must be marked, not the formatted string:
# bad, the extract may work but it will not translate the text correctly
_("Scheduled meeting with %s" % invitee.name)
# good
_("Scheduled meeting with %s") % invitee.name