На 03.09.07, Hristo Simenov Hristov <[EMAIL PROTECTED]> написа:
> Привет,
> ще споделя как го правя в ООо за момента, че има разни проекти евентуално да
> се минава на XLIFF и там за сега нямам идея как ще бъде :)
>
> При нас po формата се ползва като междинен формат само за превода. Основни
> формат в който се експортват и импортват стринговете е GSI. Той е като
> структура е много прост, но неевективен. Затове се конвертира до po файлове с
> които вече работим. Освен към po се експортват и към pot. Значи, по принцип
> идеята е да периодично да се изваждат стринговете от сорса в GSI и да се
> конвертира до pot файлове. Това го прави един от замотговорниците по l10n
> проекта на ООо. Качва pot фаловете архивирани на един сървър. От там ги
> свалям при мен. Паза при мен предишния архив с pot файлове. От тези 2 архива
> разархивирам pot файловете в 2 отделни директории на които им правя diff.
> После този diff файл го минавам през една моя Java програмка която маха
> излишните неща, т.е. понеже има разни дати във всеки файл кога е правен това
> се включва във diff файла и трябва да го отстраня за да видя действително в
> кои файлове има промени по стринговете. В новополучения файл гледам по кои
> файлове има промени и всеки файл вече го отварям в poEdit и от там му давам
> да си обнови каталога, като му подавам съответно новия pot файл. Има 2
> екстрени ситуации. Едната е когато има нов pot файл. Тогава копирам новия
> файл, сменям му разширението, оправям му някои свойства чрез poEdit-а или
> директно ги копирам от друг po файл чрез текстов редактор и превеждаме новия
> po файл. Друата ситуация е, когато е отпаднал някой файл. Това от онзи diff
> файл няма как да се види. Затова единия начин е да си пусна един KBabel
> Catalog Manager. Той хваща когато някой po е отпаднал защото му се подава
> къде се намират po и pot файловете. Освен чрез него мога да го хвана при
> обратното конвертиране от po до GSI. При това конвертиране освен po
> файловете, като шаблон се подава и GSI стринговете на английски (може и на
> друг някой език). Тогава интрумента вижда че има po файлове, които в шаблона
> ги няма и изписква че няма шаблон за тях.
Всички тези операции можеш да правиш с невероятно полезните, но пък
дребни gettext програмки:
* msgcmp: сравнява дали два po файла (или po и pot) съдържат същите
низове за превод -- така можеш да разбереш дали има нужда от
обновяване. Няма да ти трябва ако ползваш долната програмкa.
* msgmerge -- обновяване на po файл от зададед pot, ако няма промени
-- не прави нищо на старото po:
msgmerge -U старото-ми.po новият-или-не.pot
* msginit -- създава нов po файл по зададен pot в случай, че забележим
нов pot файл. Даже ми слага правилните настройки за множественото
число (умно е хлапето):
msginit -i новият-ми.pot -l bg_BG --no-translator -o новото-ми-bg_BG.po
Другите msg* програмки също са готини: msgcat обединява няколко
каталога като маха общите низове, msguniq маха дубликатите, msgunfmt
прави po от pot. Има още, ама айде да не ставам досаден в неделя вечер
:-)
Весело превеждане,
Николай.
_______________________________________________
Dict mailing list
[email protected]
http://zver.fsa-bg.org/cgi-bin/mailman/listinfo/dict