Экспорт переводимых терминов
Ряд терминов в модулях "косвенно переводимые", даже если Вы специально не выделяли какие-нибудь термины для перевода можно экспортировать переводимые термины модуля. В файле экспорта будут все слова и выражения, которые можно перевести.
Экспорт переводов осуществляется через интерфейс администрирования путем входа в интерфейс бэкэнда и открытия
Оставьте язык по умолчанию (новый язык / пустой шаблон)
Выберите формат PO File
Выберите свой модуль
Нажмите Export и загрузите файл

Это даст вам файл с именем ваш_модуль.pot
, который должен быть перемещен в каталог ваш_модуль/i18n/
. Файл представляет собой Шаблон PO, который просто перечисляет переводимые строки и из которых могут быть созданы фактические переводы (PO-файлы). PO-файлы могут быть созданы с помощью msginit, с помощью специального инструмента перевода, такого как POEdit, или путем простого копирования шаблона в новый файл с именем language.po
. Файлы перевода должны быть перенесены в директорию ваш_модуль/i18n/
, рядом с файлом ваш_модуль.pot
, и они будут автоматически загружены Odoo при установке соответствующего языка (через )
Примечание
Переводы для всех загруженных языков также устанавливаются или обновляются при установке или обновлении модуля
Неявный экспорт
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, обертывающая функция openerp._()
:
title = _("Bank Accounts")
В JavaScript функция обертывания обычно openerp.web._t()
:
title = _t("Bank Accounts")
Предупреждение
Для экспорта могут быть отмечены только строки, а не выражения или переменные. В ситуациях, когда строки форматируются, это означает, что помечать необходимо только строку, которую форматируете, а не результат форматирования:
# 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