Evolution е клиентът за е-поща и календари на GNOME. Той е голям модул
— над 4500 низа и поддръжката при редакцията и проверката след
поемането му от нов преводачи са трудни.

По-долу описвам стратегията, която приложих и смятам, че ме помогна да
свърша това по-бързо.

1. Изтегляме хранилищата на gtp и evolution:
git clone git://git.gnome.org/evolution
svn co http://fsa-bg.org/repos/gtp/

2. Обновяваме стария и новия преводи и гледаме за разлики:

cd evolution/po
cp ../gtp/gnome/master/evolution.master.bg.po new.po

intltool-update bg
4003 translated messages, 535 fuzzy translations, 124 untranslated messages.

intltool-update new
4614 translated messages, 27 fuzzy translations, 21 untranslated messages.

Виждаме, че има страшно много промени и нови низове — примерно 100
преведени низа + 500 коригирани неясни (fuzzy) и това на фона на 4000 стари
низа. Затова ще отделим различно време и внимание на съдбата на
старите преведени низове, неясните и новопреведените низове.

3. Нека първо видим какво е станало с вече преведените низове между
двете редакции:

# 2-те редакции са обновени към новия код на evolution
# от стария превод взимаме преведените, махаме остарелите и неясните
msgattrib --translated  --no-obsolete --no-fuzzy bg.po > bg-translated.po
# от тях произвеждаме pot-файл като махаме превода, първо махаме новите
редове, за
# да бъде на 1 ред, след това махаме всички знаци
# работи, ако няма екзотики като \r в превода, но това съм го срещал само
в bash
msgfilter -i bg-translated.po tr -d '\n' | msgfilter sed -e 's/.//g' >
bg-translated-empty.pot

Операцията е бавна, и 2-та филтъра се викат по веднъж за всеки низ,
идва към 8000 fork-а Не използвах варианта с msghack, защото ми даде
проблем с повтарящи се съобщения.

Внимавайте — в процеса преводът на празния низ, който съдържа
информация за кодирането и множествените форми, се счупва и може да се
наложи да го коригирате на ръка. Това се отнася за файловете
bg-translated.po и bg-translated-empty.pot.

# взимаме новия превод на избраните низове, махаме остарелите и получаваме
новия превод.
msgmerge new.po bg-translated-empty.pot  | msgattrib --translated
--no-obsolete > new-translated.po

Ще сравняваме bg-translated.po и new-translated.po

4. След това да прегледаме съдбата на неясните низове:

#от стария превод взимаме неясните с превода им, правим ги преведени,
махаме остарелите
msgattrib --fuzzy --no-obsolete bg.po  > bg-fuzzy.po
# пак същата процедура за махане на превод и пак важи предупреждението за
кодирането и мн.ч.
msgfilter -i bg-fuzzy.po tr -d '\n' | msgfilter sed -e 's/.//g' >
bg-fuzzy-empty.pot

# взимаме новия превод на избраните низове, махаме остарелите и получаваме
новия превод.
msgmerge new.po bg-fuzzy-empty.pot  | msgattrib --translated --no-obsolete
> new-fuzzy.po

Ще сравняваме bg-fuzzy.po и new-fuzzy.po

5. За непреведените низове стратегията е по-лесна:

# взимаме новопреведените, махаме неясните и остарелите
msgattrib  --untranslated --no-fuzzy --no-obsolete bg.po  >
bg-unstranslated.po
# взимаме новия превод на избраните низове, махаме остарелите и получаваме
новия превод.
msgmerge new.po bg-unstranslated.pot  | msgattrib --translated
--no-obsolete > new-untranslated.po

Преглеждаме само new-done.po

6. Накрая трябва да слеем редактираните преводи
msgcat new-translated.po new-fuzzy.po new-untranslated.po > new-done.po

Коригираме превоза на празния низ за кодиране и множествени форми

7. Равносметка:
intltool-update new
4614 translated messages, 27 fuzzy translations, 21 untranslated messages.
intltool-update new-done
4625 translated messages, 25 fuzzy translations, 12 untranslated messages.

Завършваме прегледа на new-done.po като сме работили със съответното
внимание и сравнения при вече преведените низове, неясните и
новопреведените низове.

ал_шопов

_______________________________________________
Dict mailing list
[email protected]
http://zver.fsa-bg.org/cgi-bin/mailman/listinfo/dict

Raspunde prin e-mail lui