Экспорт переводимых терминов
Ряд терминов в модулях "косвенно переводимые", даже если Вы специально не выделяли какие-нибудь термины для перевода можно экспортировать переводимые термины модуля. В файле экспорта будут все слова и выражения, которые можно перевести.
Экспорт переводов осуществляется через интерфейс администрирования путем входа в интерфейс бэкэнда и открытия
Оставьте язык по умолчанию (новый язык / пустой шаблон)
Выберите формат 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.For
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")
Предупреждение
Для экспорта могут быть отмечены только строки, а не выражения или переменные. В ситуациях, когда строки форматируются, это означает, что помечать необходимо только строку, которую форматируете, а не результат форматирования:
# 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