Nano Hash - криптовалюты, майнинг, программирование

как перевести содержимое модуля локализации OpenERP

Я хочу создать модуль OpenERP l10n (план счетов) для своей страны. Мне нужно перевести это на два языка. В account_chart.xml я вставил слова на английском языке. Итак, слова статичны. Как я могу перевести значение для name учетной записи в следующем примере:

<record id="chart01" model="account.account.template">
     <field name="code">01</field>
     <field name="parent_id" ref="chart0"/>
     <field name="type">view</field>
     <field name="user_type" ref="account.data_account_type_view"/>
     <field name="name">Expenses</field>
  </record>

Например, я хочу перевести слово Расходы. Я не знаю, как настроить это в файлах *.po. Может ли кто-нибудь показать мне пример? Ваше здоровье


Ответы:


1

Хороший вопрос! Официальный справочник по созданию модулей локализации OpenERP — эта страница документации. Однако в нем не объясняется, как переводить модуль локализации, поскольку по иронии судьбы модули локализации редко нуждаются в переводе.

Немного контекста: в отличие от того, как пишутся универсальные модули OpenERP, в модулях локализации одноязычных стран названия налогов, основных счетов и т. д. определяются непосредственно на языке страны, а не чем определено на английском языке, а затем переведено в файлы .po. На самом деле в моделях OpenERP для данных локализации (налоговые шаблоны, шаблоны счетов и т. д.) флажок перевода отключен добровольно. Причина проста: если бы названия этих элементов всегда были переводимыми, они бы появились в списке терминов для перевода для всех переводов OpenERP! Представьте себе беспорядок, если бы каждую команду переводчиков попросили перевести на свой язык названия всех налогов и основных счетов мира, что-то совершенно бесполезное.

Бельгия — одна из удачливых многоязычных стран, однако существует (экспериментальный) способ сделать ваш план счетов переводимым.

Решение состоит из трех частей:

  1. Ваш модуль l10n_xx должен зависеть от модуля l10n_multilang. Этот небольшой модуль включает флаг перевода для большинства полей, которые вы хотели бы перевести в план счетов. Он также добавляет специальное поле spoken_languages в модель шаблона плана счетов и будет автоматически пытаться загрузить соответствующие переводы при установке этого плана счетов (при условии, что эти языки были ранее установлены в той же базе данных).

  2. Вы должны добавить поле spoken_languages в декларацию XML вашего плана счетов. Его значение должно быть списком кодов языков, разделенных точкой с запятой, где каждый код является значением поля code этого языка, когда он установлен в OpenERP. Вы можете просмотреть список всех доступных языковых кодов в источнике. Например, если вы хотите добавить перевод своего Плана счетов на французский и немецкий языки, вы можете использовать следующее поле значения XML:
    <field name="spoken_languages">fr_FR;de_DE</field>

  3. И последнее, но не менее важное: вам необходимо создать файлы перевода, как это делается для любого другого модуля 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
  • Работает, но не хватает одной важной вещи. l10n_multilang создает перевод только для account.account.template, но не для account.account. Возможно проблема в источнике. В строке 128 _process_accounts_translations вызывает process_translations с force_write=True. Поскольку нет в строке 68, перевод account.account никогда не создавался. Я удаляю не и получаю переводы для account.account. Есть ли негативные последствия для этих изменений в l10n_multilang.py? 19.10.2012

  • 2

    По моему опыту, файл .po, экспортируемый OpenERP, включает в себя текст XML-файлов данных. Я думаю, что для того, чтобы значения поля name были включены в файл .po, он должен быть переводимым, то есть иметь translated=True в своей модели (в данном случае account.account.template).

    Вы также можете найти полезным вопрос Как перевести модуль OpenERP?.

    17.10.2012
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

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