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
