Понравилась статья - поделись ею в соцсетях)

Print Friendly, PDF & Email

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

Очень часто со стороны будущих пользователей звучит вопрос: «А будет ли интерфейс переведен на нужный мне язык?» или «Почему так много английских слов в украинском переводе?». Перевод интерфейса очень трудозатратный и порой неблагодарный труд, особенно если ведется активная кастомизация системы.

Давайте сейчас пройдемся по основным настройкам языка в системе и рассмотрим способы перевода интерфейса системы непосредственно самим пользователем.

Языки

Для активации дополнительных языков в системе нам надо зайти в меню «Настройки» и зайти в подменю «Переводы/Языки».

Как видно сейчас у нас в системе активировано три языка: английский, русский и украинский. Активация нового языка происходи просто: для этого нужно найти необходимый язык и нажать кнопку «Activate». Если для этого языка в модулях был доступен перевод он автоматически подтянется. В некоторых случаях необходимо запустить функцию синхронизации переводов. Для этого нужно зайти в меню Насторойки/Переводы/Генерировать пропущенные термины. Дальше в окне необходимо выбрать язык и нажать кнопку «Обновить». После выполнения данного действия пользователь может самостоятельно заняться переводом системы (об этом ниже).

В настройках языка мы можем задать формат разделителя и то как у нас будет выглядеть десятичный разделитель и разделитель тысяч (как правило выбирается точка или запятая). Также здесь мы задаем формат даты (например день, месяц, год), формат времени и первый день недели для календаря (как правило Воскресенье или понедельник). Такие настройки могут быть установлены для каждого языка индивидуально.

Модуля и экспорт(импорт) переводов

Все переводы зашиваются на уровне соответствующих модулей. Если на уровне модуля нет переводов, то после установки модуля добавляемый им функционал будет на английском языке.

Все файлы перевода помещаются в папку i18n вашего модуля. Будет основной шаблон перевода и отдельные файлы перевода для каждого языка.

Для того чтобы перевод автоматически подтягивался при установке модуля его нужно поместить в эту папку. Если этого не было сделано и вы сделали перевод этого модуля в системе самостоятельно — вы можете выгрузить (экспортировать ) перевод конкретного модуля (или модулей) и загрузить (импортировать) его в другую базу.

Делается это просто. Для этого нужно зайти в Настройки/Переводы/Экспорт перевода. Выбрать необходимый нам язык и формат выгружаемого файла и нажать на кнопку «Экспорт».

После чего сформируется файл с переводами, который мы можем скачать.

Если мы зайдем в сам выгруженный файл то мы увидим, что в файлах PO будет два термина: msgid и msgstr.

#. module: account_analytic_parent
#: code:addons/account_analytic_parent/models/account_analytic_account.py:0
#, python-format
msgid "Please activate first parent account %s"
msgstr ""

#. module: account_analytic_parent
#: code:addons/account_analytic_parent/models/account_analytic_account.py:0
#, python-format
msgid "You can not create recursive analytic accounts."
msgstr ""

#. module: account_analytic_parent
#: code:addons/account_analytic_parent/models/account_analytic_account.py:0
#, python-format
msgid "[%(code)s] %(name)s"
msgstr ""

#~ msgid "Created by"
#~ msgstr "Автор"

msgid представляет фактическую строку, которую необходимо перевести, а msgstr представляет соответствующую переведенную строку (для соответствующего языка). Мы можем добавить соответствующие переведенные строки в msgstr для всех msgids.

Импорт выгруженного файла делается через меню Настройка/Переводы/Импорт переводов:

Как перевести элементы интерфейса самостоятельно

* Перед тем как начать перевод элементов интерфейса системы сделайте синхронизацию отсутствующих терминов.

Существует два способа сделать это самостоятельно: через настройки системы и через режим разработчика (технический перевод). В том или ином случае у вашего пользователя должны быть соответствующие права.

Режим разработчика (технический перевод)

Для активации режима разработчика мы должны либо зайти в Настройки/ Общие настройки и там выбрать «Активируйте режим разработчика»

либо нам для нашего браузера нужно установить расширение Odoo Debug или Odoo Debug PRO (для Хрома)

После активации данного режима у нас в системном трее появится иконка «жучка», после нажатия на нее нам нужно выбрать пункт «Технический перевод», но перед этим нам нужно зайти непосредственно в то место которое мы хотим перевести (на скрине ниже — инвойс).

В появившемся окне мы можем отфильтровать те языки на которые мы хотим сделать перевод

В колонке «Внутренний источник» мы видим название первоисточник (как правило на английском), в колонке «Значение перевода» мы указываем непосредственно сам перевод. Если там пусто, то для объекта будет показываться перевод из колонки «Внутренний источник».  Также здесь мы можем сделать фильтр по конкретному модуля или группировку по модулям. Тут же мы можем поменять перевод, который нас не устраивает.

Перевод через настройки (переведенные термины)

Указанный выше способ подходит если нам нужно сделать перевод какого-то конкретного объекта. В случае если модуль добавляет функционал в несколько объектов, то практичней будет воспользоваться вторым способом, этот же способ лучше если нам нужно сделать массовый перевод какого-нибудь слова(термина) в системе.

Для того чтобы перейти во все переводы в системе нужно зайти в пункт меню «Настройки/Переводы/Переведенные термины».

Тут мы можем совершить поиск по конкретной модели (моделям) либо модулю (модулям)

Здесь мы по сути попадаем в точно такое же окно как и при первом варианте (только здесь уже нет автоматического фильтра по объекту).

Как сделать поля объектов переводимыми?

В некоторых объектах системы можно возле некоторых полей заметить значок языка:

Это значит что это поле вы можете перевести на другие языки.

В принципе практически любое поле практически любого объекта в системе можно сделать переводимым. Для этого нужно для этого поля дописать свойство «translate=True», в большинстве случаев для того чтобы это сделать нужна будет помощь разработчика.

product_description = fields.Text(string='Description', translate=True)

Как вы уже поняли ODOO является мультиязычной системой, в которой можно активировать несколько языков и под каждый язык можно перевести интерфейс системы. Если перевод не зашит на уровне модулей (а для русского и украинского языка такая ситуация будет практически 100%), то вы можете сделать такой перевод самостоятельно.


Понравилась статья - поделись ею в соцсетях)