Вход:  Пароль:  
FreeSource: Локализация/ПереводОписанийПакетов ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |
Это старая версия Локализация/ПереводОписанийПакетов за 2005-02-28 19:41:17..

Перевод описаний пакетов


К сожалению, большое количество добавленного материала пропало вместе с упавшим браузером. Придётся ещё раз смотреть в рассылке devel. Ключевые слова: specpot,


О проблеме переводов описаний пакетов и способе её решения.
Вот отголоски темы:
http://lists.altlinux.ru/pipermail/devel/2002-November/007826.html
http://www.fedora.us/pipermail/fedora-devel/2003-July/001763.html
http://lists.altlinux.ru/pipermail/devel/2004-March/011434.html
http://lists.altlinux.ru/pipermail/devel/2004-August/012844.html


Вводное слово


В настоящий момент имеется пять основных систем упаковки пакетов и управления ими,
применяемые в различных свободных дистрибутивах и системах:

Пакет является атомарной величиной дистрибутива, и имеет название (Summary в RPM) и описание (Description в RPM).

Текущие проблемы


В настоящий момент сложилась ситуация, когда описание пакета либо не переводится на другие языки вообще, либо
перевод указывается в самом пакете (спеке в RPM). Как правило, имеется перевод на один язык, в зависимости от
региональной принадлежности производителя дистрибутива. Так Su Se? пишет описание на немецком, PDL – на польском, ALT – на русском, Mandrake – на французском.


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

Что имеется


Некие наработки на тему specpot/specpo (Vital Khilko?)
Переводы в имеющихся спеках

Что предлагается


Создать общую для всех дистрибутивов базу переводов для пакетов всех дистрибутивов и исключить всяческие переводы из спеков.
Для этого необходима координированная интеграционная работа между разработчиками дистрибутивов.
Для хранения и работы с переводами предлагаются po-файлы, со всем сопутствующим инструментарием. Кодировка – UTF-8.
Возможно также хранения переводов для Groups (хотя бы и как эталонных).


Примерный цикл жизни описания


На основании пакета (спека и пр) дистрибутивозависимой программой типа rpm2po формируется pot-файл,
который передаётся в базу переводов, с указанием группы, к которой он принадлежит (Video и д.т.)
Название po-файла должно соответствовать официальному названию проекта (из mainstream) и обычно должно получаться
из текстового домена проекта (то название, которое используется для mo-файлов проекта при установке в систему).
В случае, если установить такой невозможно, названием принимается название пакета.


Примерная структура хранилища базы переводов:
C
C / Video?
ru_RU
ru_RU/Video
en_US
uk_UA


pot-файл отправляется в каталог C, как шаблон для перевода.
Сами переводы располагаются в соответствующем локали каталоге.
Для каждой локали есть файл all.po, который содержит строки, которые встречаются в нескольких пакетах.


При объединении переводов с pot-файлами применяется следующий алгоритм:
**в po-файл отправляются только те строки, которые уникальны в рамках всей локали. Если строки повторяются для разных пакетов,
они помещаются в all.po**. Это также снимет остроту проблемы разных названий для пакетов.


Далее мантейнер пакета или переводчик переводит описания.


Возможно это уже решено в rpm лучшим способом:
Далее переводы объединяются в один большой ru.po файл, (возможно будет и разбиение по названиям),
который надлежит упаковке в пакет package-info-i18n-локаль.


Программы, работающие с переводами, должны использовать текстовый домен package-info,
а лучше подключить библиотеку libpackage-info, возвращающую нужное описание
для указанной локали и оригинала на английском.


 
Файлов нет. [Показать файлы/форму]
Много комментариев (5). [Показать комментарии/форму]