
        *****************************************************
        *           GENERATED FILE, DO NOT EDIT             *
        * THIS IS NO SOURCE FILE, BUT RESULT OF COMPILATION *
        *****************************************************

This file was generated by po4a(7). Do not store it (in VCS, for example),
but store the PO file used as source file by po4a-translate.

In fact, consider this as a binary, and the PO file as a regular .c file:
If the PO get lost, keeping this translation up-to-date will be harder.

=encoding UTF-8

=head1 ИМЕ

po4a-gettextize - конверзија оригиналног фајла (и његових превода) у PO фајл

=head1 СИНОПСИС

B<po4a-gettextize> B<-f> I<fmt> B<-m> I<master.doc> B<-l> I<XX.doc> B<-p> I<XX.po>

(I<XX.po> је излаз, све остало су улази)

=head1 ОПИС

po4a (PO for anything [PO за било шта]) олакшава одржавање превода докумената употребом класичних gettext алата. Главна особина po4a је да раскида везу између садржаја превода и структуре његовог документа. Молимо да погледате страницу L<po4a(7)> у којој је изложен прости увод у овај пројекат.

Скрипта B<po4a-gettextize> вам помаже да конвертујете већ постојеће преводе у процес рада заснован на po4a. Потребно је да се ово уради једном током конверзије у po4a како би се искористио постојећи превод, а не редовно након конверзије пројекта. Овај заморан процес је детаљно објашњен у одељку 'Конвертовање ручног превода у po4a пројекат'.

Морате да наведете и мастер фајл (нпр. изворни фајл на енглеском језику) и постојећи преведени фајл (нпр. ранији покушај превода без употребе po4a). Ако наведете више од једног мастер или преведеног фајла, они ће се употребити сукцесивно, али може да буде једноставније да gettextизујете сваку страницу или поглавље посебно, па да онда употребите B<msgmerge> да спојите све добијене PO фајлове. Како год желите.

Ако мастер документ садржи не-ASCII карактере, ново генерисани PO фајл ће бити кодиран у UTF-8. У случају када је мастер документ потпуно написан ASCII карактерима, генерисани PO ће да употреби кодирање преведеног улазног документа.

=head1 ОПЦИЈЕ

=over 4

=item B<-f>, B<--format>

Формат документације који се обрађује. Да бисте видели списак доступних формата употребите опцију B<--help-format>.

=item B<-m>, B<--master>

Фајл који садржи мастер документ који се преводи. Ову опције можете да употребите више пута ако желите да gettextујете више докумената.

=item B<-M>, B<--master-charset>

Скуп карактера фајла који садржи документ који се преводи.

=item B<-l>, B<--localized>

Фајл који садржи локализовани (преведени) документ. Ако сте навели више мастер фајлова, вероватно ћете хтети да употребом ове опције наведете више локализованих фајлова.

=item B<-L>, B<--localized-charset>

Скуп карактера фајла који садржи локализовани документ.

=item B<-p>, B<--po>

Фајл у који би требало да се упише каталог порука. Ако није задат, каталог порука ће да се испише на стандардни излаз.

=item B<-o>, B<--option>

Додатна опција (или више њих) које се прослеђују додатку формата. Погледајте документацију сваког од додатака да сазнате више информација о важећим опцијама и њиховом значењу. На пример, AsciiDoc парсеру бисте могли да проследите '-o tablecells', док би текст парсер прихватио '-o tabs=split'.

=item B<-h>, B<--help>

Приказује кратку поруку помоћи.

=item B<--help-format>

Списак формата документације које програм po4a разуме.

=item B<-k> B<--keep-temps>

Задржава привремене мастер и локализоване POT фајлове изграђене пре спајања. Ово може бити корисно да се разуме зашто ови фајлови постану десинхронизовани, што доводи до проблема у gettextизацији.

=item B<-V>, B<--version>

Приказује верзију скрипте и завршава извршавање.

=item B<-v>, B<--verbose>

Увећава детаљност извештавања програма.

=item B<-d>, B<--debug>

Исписује неке информације битне за отклањање грешака.

=item B<--msgid-bugs-address> I<имејл@адреса>

Поставља адресу за пријаву msgid багова. Подразумевано, креирани POT немају Report-Msgid-Bugs-To поља.

=item B<--copyright-holder> I<стринг>

Поставља власника права умножавања у POT заглавље. Подразумевана вредност је "Free Software Foundation, Inc."

=item B<--package-name> I<стринг>

Поставља име пакета у POT заглавље. Подразумевано је "PACKAGE".

=item B<--package-version> I<стринг>

Поставља верзију пакета у POT заглавље. Подразумевано је "VERSION".

=back

=head2 Конвертовање ручног превода у po4a пројекат

B<po4a-gettextize> синхронизује мастер и локализоване фајлове да би се њихов садржај издвојио у PO фајл. Из садржаја мастер фајла се креира B<msgid>, док се из садржаја локализованог фајла креира B<msgstr>. Овај процес је донекле осетљив: Нти стринг преведеног фајла би требало да буде превод Нтог стринга у оригиналу.

Gettextизација најбоље функционише ако успете да дођете до потпуно исте верзије оригиналног документа која је коришћена за прављење превода. Чак и онда, ако је оригинални преводилац променио структуру превода, може бити неопходно да преправљате и мастер и локализоване фајлове тако да се њихове структуре поравнају. Стога се саветује да радите са копијама оригиналних фајлова.

Интерно, сваки po4a парсер пријављује синтактични тип сваког издвојеног стринга. На тај начин се откривају десинхронизације током gettextизације. У примеру датом испод, мало је вероватно да је 4ти стринг у преводу (типа 'chapter') превод 4тог стринга у оригиналу (типа 'paragraph'). Вероватније је да је оригиналу додат нови пасус, или да су у преводу два пасуса из оригинала спојена у један.

    Оригинал         Превод

  поглавље           поглавље
    пасус              пасус
    пасус              пасус
    пасус            поглавље
  поглавље             пасус
    пасус              пасус

B<po4a-gettextize> ће детаљно да дијагностицира било какву десинхронизацију структуре. Када се то догоди, требало би ручно да уредите фајлове и да додате лажне пасусе или да ту и тамо уклоните неки садржај, све док се структуре оба документа саршено не поклопе. Испод су наведени неки од трикова којима се спашава већина постојећег превода док се ово ради.

Ако имате довољно среће да вам се структуре фајлова савршено поклапају без било какве интервенције, изградња исправног PO фајла траје неколико секунди. У супротном, врло брзо ћете схватити зашто овај процес има тако ружно име :) Чак и онда, gettextизација је често бржа од поновног превођења свега. Ја сам gettextизовао комплетну Perl документацију у једном дану упркос I<великом броју> проблема са синхронизацијом. Узевши у обзир количину текста (2МB оригиналног текста), поновно превођење без спашавања постојећег превода би захтевало неколико месеци рада. Уз то, овај гломазан посао је цена која мора да се плати како би се дошло до комфора који пружа програм po4a. Једном када се обави конверзија, синхронизација између мастер докумената и превода ће увек бити потпуно аутоматска.

Након успешне gettextизације, произведене документе би требало ручно прегледати да би се уочили диспаритети и тихе грешке, као што је објашњено испод.

=head3 Савети и трикови за процес gettextизације

gettextизација се прекида чим се детектује десинхронизација. B<po4a-gettextize> је прилично детаљан када ствари не иду како треба. Он пријављује стрингове који се не подударају, њихове позиције у тексту, и тип сваког од њих. Уз то, PO фајл који је до тада генерисан се избацује као F<gettextization.failed.po> како бисте могли даље да истражујете.

Ево неких трикова који могу да вам помогну у овом заморном процесу и који обезбеђују да спасите већи део преходног превода:

=over 

=item 

Уклоните сав додатни садржај превода, као што је одељак у коме се одаје признање преводиоцима. Они би требало да се у B<po4a> уметну одвојено као додаци (погледајте L<po4a(7)>).

=item 

Када уређујете фајлове како бисте им поравнали структуре, боље је да уређујте превод ако је то могуће. Заиста, ако измене оригинала нису суптилне, стара и нова верзија неће да се подударају приликом првог покретања програма po4a након gettextизације (погледајте испод). Неупарени превед ће свакако да се одбаци. Упркос томе, ипак ћете морати да уређујете оригинални документ ако је сувише компликовано да се омогући наставак gettextизације, чак и ако то значи да се један пасус превода одбацује. Важна ствар је да за почетак добијете први PO фајл.

=item 

Не оклевајте да уконите било какав оригинални садржај који не постоји у преведеној верзији. Тај садржај ће касније аутоматски да се врати, када се PO фајл буде синхронизовао са документом.

=item 

Вероватно ћете морати да обавестите оригиналног аутора о било каквим променама структуре у превпду које се чине оправданим. Проблеми у оригиналном документу би требало да се пријаве аутору. Ако се поправе у само у вашем преводу, само део заједнице ће знати за то. А и иначе је немогуће да се тако нешто уради када се користи po4a ;) Али највероватније ћете сачекати до краја конверзије у B<po4a> пре него што измените оригиналне фајлове.

=item 

Понекад се садржаји пасуса подударају, али не и њихови типови. Исправљање овог проблема је углавном зависно од формата. Често се догађа у POD и man због чињенице да један од пасуса садржи линију која почиње празним простором док други не. У тим форматима, такви пасуси не могу да се обавију и стога постају други тип. Једноставно уклоните размак и биће како треба. Узрок такође може да буде и грешка у куцању имена ознаке у XML.

Слично, два пасуса могу у POD фајлу да се споје у један када раздвајајућа линија садржи неке размаке, или када нема празне линије између B<=item> линије и садржаја ставке.

=item 

Понекад се чини да је порука о десинхронизацији необична јер је превод придружен погрешном оригиналном пасусу. То је знак неоткривеног проблема раније у процесу. Потражите стварну тачку десинхронизације испитивањем генерисаног фајла F<gettextization.failed.po>, и исправите проблем тамо где се он заиста и налази.

=item 

Дуплирани стрингови било у оригиналу или преводу могу да проузрокују и друге проблеме. Дуплирани стрингови се спајају у PO фајлове са две референце. То представља тешкоћу за алгоритам gettextизације, који користи просто један на један упаривање B<msgid> стрингова у мастер и локализованим фајловима. Међутим, сматра се да се скорашње верзије po4a исправно носе са дуплираним стринговима, тако да би требало да пријавите евентуални преостали проблем на који наиђете.

=back

=head2 Преглед фајлова које је генерисала скрипта B<po4a-gettextize>

Сваки фајл који је генерисала скрипта B<po4a-gettextize> би требало ручно прегледати, чак и када је скрипта успешно завршила извршавање. Требало би да прелетите преко PO фајла и проверите да се B<msgid> и B<msgstr> заиста подударају. Још увек није неопходно да је превод савршен, пошто су све ставке ионако означене као несигурни преводи. Потребно је само да уочите очигледне проблеме са упаривањем јер ће се у наредним корацима лоше упарени преводи одбацити, а ви желите да их сачувате.

Срећом, овај корак не захтева да владате циљним језицима јер само желите да препознате сличне елементе у сваком B<msgid> и одговарајућем B<msgstr>. Ја као говорник француског, енглеског и помало немачког, ово могу да урадим барем за све европске језике, чак и ако на већини њих не могу да изговорим ни реч. Понекад успем да откријем проблем у упаривању на језицима који нису на латиници тако што посматрам дужину стринга, структуру фразе (да ли се поклапа број знакова питања?) као и остале трагове, али више волим да неко други провери те језике.

Ако откријете неподударање, уредите фајлове оригинала и превода као да је скрипта B<po4a-gettextize> пријавила грешку, па покушајте поново. Једном када за свој претходни превод добијете солидан PO фајл, направите његову резервну копију све док po4a не почне исправно да функционише.

=head2 Прво покретање програма B<po4a>

Најједноставнији начин да се подеси po4a систем је да напишете B<po4a.conf> конфигурациони фајл и да користите интегрисани B<po4a> програм (B<po4a-updatepo> и B<po4a-translate> су застарели). За више детаља, молимо вас да погледате одељак „КОНФИГУРАЦИОНИ ФАЈЛ” у L<po4a(1)> документацији.

Када се B<po4a> покрене по први пут, за ажурирање PO фајлова који садрже старе преводе спашене кроз gettextизацију ће се употребити текућа верзија мастер докумената. Ово може да потраје доста дуго јер се многи B<msgid> стрингови из gettextизације не подударају у потпуности са елементима POT фајла изграђеног из скорашњих мастер фајлова. Због тога програм gettext мора да тражи најближи стринг употребом скупог алгоритма удаљености стрингова. На пример, прво извршавање над француским преводом Perl документације (PO фајл величине 5.5 MB) је трајало око 48 сати (тако је, два цела дана), док накнадна трају само неколико секунди.

=head2 Пренос ваших превода у продукцију

Након првог извршавања, преводиоци могу да провере PO фајлове. B<po4a-gettextization> је све ставке у PO фајлу означио као несигурне (fuzzy), чиме се обезбеђује темељна провера пре употребе. Преводиоци би требало да погледају сваку ставку и потврде да се спашени превод заиста подудара са текућим оригиналним текстом, по потреби ажурирају превод, и уклоне маркере несигурног превода.

Онда када се уклони довољно маркера несигурног превода, B<po4a> ће почети да генерише фајлове превода на диск и спремни сте да свој процес превода преместите у продукцију. Неки пројекти сматрају корисним да се ослоне на веблејт за координацију преводилаца и одржаваоца, али то је ван опсега система B<po4a>'.

=head1 ПОГЛЕДАЈТЕ ТАКОЂЕ

L<po4a(1)>, L<po4a-normalize(1)>, L<po4a-translate(1)>, L<po4a-updatepo(1)>, L<po4a(7)>.

=head1 АУТОРИ

 Дени Барбије <barbier@linuxfr.org>
 Никола Франсоа <nicolas.francois@centraliens.net>
 Мартин Квинсон (mquinson#debian.org)

=head1 ПРАВА УМНОЖАВАЊА И ЛИЦЕНЦА

Ауторска права 2002-2023 SPI, inc.

Овај програм је слободан софтвер; можете да га редистрибуирате и/или мењате под условима GPL v2.0 или новије (погледајте фајл COPYING).

