Django L10N: создание плоской модели файла 'po' не плоской

64
7

Проблема в том, что файлы.po являются плоскими. Итак, у нас нет удобной иерархии.

Пример:

msgid "SITE_TITLE"
msgstr "This is a title of my site"

msgid "ABOUT_SITE_TITLE"
msgstr "And now... about the site"

Проблема возникает, когда у нас много сообщений в нашем файле.po. Трудно найти конкретное сообщение, которое мы хотим изменить.

Нам также необходимо связать наши сообщения.po с конкретными шаблонами (html-шаблонами).

Очевидным решением является использование пользовательского префикса (например, имя файла шаблона). Тогда, если у нас есть home.html и about.html, наши строки сообщений будут:

msgid "HOME:SITE_TITLE"
msgstr "This is a title of my site"

msgid "ABOUT:SITE_TITLE"
msgstr "And now... about the site"

Могли бы вы предложить более удобное решение, пожалуйста?

спросил(а) 2021-01-19T19:25:37+03:00 6 месяцев, 2 недели назад
1
Решение
64

В основном файлы.po - это обычные текстовые файлы с элементами, разделенными пустой строкой. Написание простого синтаксического анализатора, который будет разделять один файл.po на несколько файлов на основе префикса, например, msgid "SOMETHING: похоже на решение без проблем для работы с огромными файлами переводов. Организация в несколько файлов po упрощает процесс перевода (но вы должны сохранять msgstr "уникально, поэтому префиксы должны оставаться).

Следующий инструмент, который я рекомендую, называется django-rosetta. Он обеспечивает веб-доступ к файлам po, обрабатывает выпуск и отображает вхождения строк перевода в файлы (например, шаблоны).

ответил(а) 2021-01-19T19:25:37+03:00 6 месяцев, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема