Хороший вопрос! Официальный справочник по созданию модулей локализации OpenERP — эта страница документации а>. Однако в нем не объясняется, как переводить модуль локализации, поскольку по иронии судьбы модули локализации редко нуждаются в переводе.
Немного контекста: в отличие от того, как пишутся универсальные модули OpenERP, в модулях локализации одноязычных стран названия налогов, основных счетов и т. д. определяются непосредственно на языке страны, а не чем определено на английском языке, а затем переведено в файлы .po. На самом деле в моделях OpenERP для данных локализации (налоговые шаблоны, шаблоны счетов и т. д.) флажок перевода отключен добровольно. Причина проста: если бы названия этих элементов всегда были переводимыми, они бы появились в списке терминов для перевода для всех переводов OpenERP! Представьте себе беспорядок, если бы каждую команду переводчиков попросили перевести на свой язык названия всех налогов и основных счетов мира, что-то совершенно бесполезное.
Бельгия — одна из удачливых многоязычных стран, однако существует (экспериментальный) способ сделать ваш план счетов переводимым.
Решение состоит из трех частей:
Ваш модуль l10n_xx должен зависеть от модуля l10n_multilang
. Этот небольшой модуль включает флаг перевода для большинства полей, которые вы хотели бы перевести в план счетов. Он также добавляет специальное поле spoken_languages
в модель шаблона плана счетов и будет автоматически пытаться загрузить соответствующие переводы при установке этого плана счетов (при условии, что эти языки были ранее установлены в той же базе данных).
Вы должны добавить поле spoken_languages
в декларацию XML вашего плана счетов. Его значение должно быть списком кодов языков, разделенных точкой с запятой, где каждый код является значением поля code
этого языка, когда он установлен в OpenERP. Вы можете просмотреть список всех доступных языковых кодов в источнике. Например, если вы хотите добавить перевод своего Плана счетов на французский и немецкий языки, вы можете использовать следующее поле значения XML:
<field name="spoken_languages">fr_FR;de_DE</field>
И последнее, но не менее важное: вам необходимо создать файлы перевода, как это делается для любого другого модуля OpenERP. В идеале вы должны использовать английские имена в файлах основных данных, что, возможно, неудобно, если английский не является одним из официальных языков страны, поэтому использование одного из официальных языков вашей страны также будет работать. Затем экспортируйте файл шаблона l10n_xx.pot
PO с помощью мастера экспорта переводов внутри OpenERP (выберите свой модуль и не язык в мастере экспорта) и поместите его в каталог l10n_xx/i18n/
вашего модуля. Наконец, вы можете создать исходные переводы, продублировав l10n_xx.pot
для каждого желаемого языка (например, fr.po
для французского и т. д.) и заполнив переводы с помощью редактора PO, такого как Poedit.
Ознакомьтесь с документацией по Переводы OpenERP для получения более подробной информации о формате и организации файла PO/POT, а также связанный с DReispt вопрос (уже упомянутый).
После выполнения вышеуказанных шагов переводы должны автоматически загружаться в каждую базу данных, где вы устанавливаете свой модуль локализации (но не забудьте установить все соответствующие языки до установки Плана счетов).
Этот метод все еще немного экспериментальный, поэтому не стесняйтесь сообщать об ошибках, если вам кажется, что он работает не так, как описано.
PS: Очевидно, все это должно быть упомянуто в официальной локализации OpenERP, так что если кто-то захочет это сделать, помните, что документация открыта, и любой может напрямую поучаствовать в этом ;-)
18.10.2012