.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Locale::Po4a::Po 3pm" .TH Locale::Po4a::Po 3pm "2020-08-19" "Po4a Алати" "Po4a Алати" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "ИМЕ" .IX Header "ИМЕ" Locale::Po4a::Po \- модул за манипулацију \s-1PO\s0 фајла .SH "СИНОПСИС" .IX Header "СИНОПСИС" .Vb 2 \& use Locale::Po4a::Po; \& my $pofile=Locale::Po4a::Po\->new(); \& \& # Читање PO фајла \& $pofile\->read(\*(Aqфајл.po\*(Aq); \& \& # Уметање ставке \& $pofile\->push(\*(Aqmsgid\*(Aq => \*(AqHello\*(Aq, \*(Aqmsgstr\*(Aq => \*(Aqbonjour\*(Aq, \& \*(Aqflags\*(Aq => "wrap", \*(Aqreference\*(Aq=>\*(Aqfile.c:46\*(Aq); \& \& # Издвајање превода \& $pofile\->gettext("Hello"); # враћа \*(Aqbonjour\*(Aq \& \& # Уписивање назад у фајл \& $pofile\->write(\*(Aqдругифајл.po\*(Aq); .Ve .SH "ОПИС" .IX Header "ОПИС" Locale::Po4a::Po који вам омогућава да манипулишете каталозима порука. Можете да учитате и уписујете у фајл (чија екстензија је обично \&\fIpo\fR), можете у лету да градите нове ставке или да захтевате превод стринга. .PP За потпунији опис каталога порука у \s-1PO\s0 формату, као и начин њихове употребе, молимо да погледате info документацију програма gettext (чвор \*(L"`\s-1PO\s0 Files\*(R"'). .PP Овај модуле је део пројекта po4a, чији је циљ да се \s-1PO\s0 фајлови (изворно направљених за олакшавање превода порука неког програма) користе за превођење свега, укључујући и документацију (man страница, info упутство), описе пакета, debconf шаблоне, као и све оно што може да има користи од овога. .SH "ОПЦИЈЕ КОЈЕ ПРИХВАТА ОВАЈ МОДУЛ" .IX Header "ОПЦИЈЕ КОЈЕ ПРИХВАТА ОВАЈ МОДУЛ" .IP "\fB\-\-porefs\fR \fIтип\fR" 4 .IX Item "--porefs тип" Наводи форамт референци. Аргумент \fIтип\fR може да буде једно од: \fBnever\fR да се не креирају никакве референце, \fBfile\fR да се наведе само фајл без броја линије, \fBcounter\fR да се број линије замени растућим бројачем, и \fBfull\fR да се креирају комплетне референце (подразумевано: full). .IP "\fB\-\-wrap\-po\fR \fBno\fR|\fBnewlines\fR|\fIброј\fR (подразумевано: 76)" 4 .IX Item "--wrap-po no|newlines|број (подразумевано: 76)" Наводи како би po фајл требало да се обавија. Овим вам се даје избор између фајлова који су лепо обавијени али би могли да доведу до git конфликата, или фајлова који се лакше обрађују аутоматски, али су компликованији за читање. .Sp Раније је gettext свита програма реформатирала po фајлове на 77ој колони ради лепшег изгледа. Ова опција одрешује понашање програма po4a. Ако се постави на нумеричку вредност, po4a ће да обавије po након колоне под тим бројем и након прелома линија у садржају. Ако се постави на \fBnewlines\fR, po4a ће само да раздели msgid и msgstr након прелома линија у садржају. Ако се постави на \fBno\fR, po4a уопште неће да обавија po фајл. gettext алати које интерно користимо увек обавијају референтне коментаре. .Sp Имајте на уму да ова опција не утиче на то како се msgid и msgstr обавијају, тј. на то како се додају преломи линија у садржај ових стрингова. .IP "\fB\-\-msgid\-bugs\-address\fR \fIимејл@адреса\fR" 4 .IX Item "--msgid-bugs-address имејл@адреса" Поставља адресу за пријаву msgid багова. Подразумевано, креирани \s-1POT\s0 немају Report-Msgid-Bugs-To поља. .IP "\fB\-\-copyright\-holder\fR \fIстринг\fR" 4 .IX Item "--copyright-holder стринг" Поставља власника права умножавања у \s-1POT\s0 заглавље. Подразумевана вредност је \&\*(L"Free Software Foundation, Inc.\*(R" .IP "\fB\-\-package\-name\fR \fIстринг\fR" 4 .IX Item "--package-name стринг" Поставља име пакета у \s-1POT\s0 заглавље. Подразумевано је \*(L"\s-1PACKAGE\*(R".\s0 .IP "\fB\-\-package\-version\fR \fIстринг\fR" 4 .IX Item "--package-version стринг" Поставља верзију пакета у \s-1POT\s0 заглавље. Подразумевано је \*(L"\s-1VERSION\*(R".\s0 .SH "Функције које се тичу каталога порука у целини" .IX Header "Функције које се тичу каталога порука у целини" .IP "\fBnew()\fR" 4 .IX Item "new()" Креира нови каталог порука. Ако се наведе аргумент, то ће бити име \s-1PO\s0 фајла који би требало да се учита. .IP "read($)" 4 .IX Item "read($)" Чита \s-1PO\s0 фајл (чије име је дато аргументом). Претходно постојеће ставке у објекту се не уклањају, нове се додају на крај каталога. .IP "write($)" 4 .IX Item "write($)" Уписује текући каталог у дати фајл. .IP "write_if_needed($$)" 4 .IX Item "write_if_needed($$)" Као write, али у случају да \s-1PO\s0 или \s-1POT\s0 фајл већ постоји, објекат ће да се упише у привремени фајл који ће затим да се упореди са постојећим како би се проверило да ли је неопходно ажурирање (на овај начин се избегава измена \s-1POT\s0 фајла само да би се ажурирала линија референце, или поље POT-Creation-Date). .IP "gettextize($$)" 4 .IX Item "gettextize($$)" Ова функција из два каталога, оригинала и превода, креира један каталог са преведеним порукама. Процес је описан у \fBpo4a\fR\|(7), одељак \fIНа који начин програм функционише?\fR. .IP "filter($)" 4 .IX Item "filter($)" Ова функција издваја каталог из постојећег. У излазни каталог се смештају само оне ставке које имају референцу у датом фајлу. .Sp Ова функција парсира свој аргумент, конвертује га у дефиницију Perl функције, одређује вредност ове дефиниције и филтрира поља за коју функција враћа истиниту вредност. .Sp Понекад волим Perl ;) .IP "\fBto_utf8()\fR" 4 .IX Item "to_utf8()" Поново кодира msgstr стрингове из \s-1PO\s0 фајла у \s-1UTF\-8.\s0 Не ради ништа у случају да скуп карактера није наведен у \s-1PO\s0 фајлу (вредност \*(L"\s-1CHARSET\*(R"\s0), или је већ \&\s-1UTF\-8\s0 или \s-1ASCII.\s0 .SH "Функције за коришћење каталога порука у преводима" .IX Header "Функције за коришћење каталога порука у преводима" .IP "gettext($%)" 4 .IX Item "gettext($%)" Захтева из текућег каталога превод за стринг који је дат као аргумент. У случају да се превод не пронађе, функција враћа оригинални (непреведени) стринг. .Sp Након стринга који треба да се преведе, можете да наведете хеш додатних аргумената. Ево важећих ставки: .RS 4 .IP "\fBwrap\fR" 4 .IX Item "wrap" логичка вредност која указује на то да ли се празни карактери у стрингу сматрају за битне карактере. Ако је тачно, функција канонизује стринг пре тражења превода, и обавија резултат. .IP "\fBwrapcol\fR" 4 .IX Item "wrapcol" колона око које се врши обавијање (подразумевано: 76). .RE .RS 4 .RE .IP "\fBstats_get()\fR" 4 .IX Item "stats_get()" Враћа статистику у вези успешности програма gettext у проналажења превода од тренутка када је последњи пут позвана функција \fBstats_clear()\fR. Молимо имајте на уму да ово није иста статистика коју приказује msgfmt \-\-statistic. Овде је то статистика о недавном коришћењу \s-1PO\s0 фајла, док msgfmt пријављује статус фајла. Пример употребе: .Sp .Vb 1 \& [нека употреба PO фајла за превођење нечега] \& \& ($percent,$hit,$queries) = $pofile\->stats_get(); \& print "До сада, пронашли смо преводе за $percent\e% ($hit од $queries) стрингова.\en"; .Ve .IP "\fBstats_clear()\fR" 4 .IX Item "stats_clear()" Брише статистику и вези успешности програма gettext. .SH "Функције за изградњу каталога порука" .IX Header "Функције за изградњу каталога порука" .IP "push(%)" 4 .IX Item "push(%)" Додаје нову ставку не крај текућег каталога. Аргумент би требало да буде у форми хеш табеле. Важећи кључеви су: .RS 4 .IP "\fBmsgid\fR" 4 .IX Item "msgid" стринг на оригиналном језику. .IP "\fBmsgstr\fR" 4 .IX Item "msgstr" превод. .IP "\fBreference\fR" 4 .IX Item "reference" указује на то где је стринг пронађен. Пример: file.c:46 (значи у 'file.c' на линији 46). У случају вишеструког појављивања, може да буде листа раздвојена размацима. .IP "\fBcomment\fR" 4 .IX Item "comment" коментар који (преводиоци) овде ручно додају. Формат је потпуно слободан. .IP "\fBautomatic\fR" 4 .IX Item "automatic" коментар који аутоматски додаје програм за издвајање стрингова. За више информација, погледајте опцију \fB\-\-add\-comments\fR програма \fBxgettext\fR. .IP "\fBflags\fR" 4 .IX Item "flags" листа свих заставица дефинисаних за ову ставку, раздвојених размацима. .Sp Важеће заставице су: \fBc\-text\fR, \fBpython-text\fR, \fBlisp-text\fR, \fBelisp-text\fR, \&\fBlibrep-text\fR, \fBsmalltalk-text\fR, \fBjava-text\fR, \fBawk-text\fR, \&\fBobject-pascal-text\fR, \fBycp-text\fR, \fBtcl-text\fR, \fBwrap\fR, \fBno-wrap\fR и \&\fBfuzzy\fR. .Sp За њихово значење, погледајте gettext документацију. .IP "\fBtype\fR" 4 .IX Item "type" ово је углавном интерни аргумент: користи се током gettextизације докумената. Идеја је да се у \s-1PO\s0 објекат парсирају и оригинал и превод, да се споје у нови каталог користећи msgid једног као msgid, а msgid другог као msgstr. Да би се обезбедило да све буде како треба, сваком msgid у \s-1PO\s0 објектима се даје тип, заснован на његовој структури (као \*(L"chapt\*(R", \*(L"sect1\*(R", \&\*(L"p\*(R" и тако даље у DocBook). Ако типови стрингова нису исти, то значи да два фајла немају исту структуру, па процес пријављује грешку. .Sp Ова информација се у \s-1PO\s0 фајл уписује као аутоматски коментар јер се на тај начин преводиоцима приказује нешто од контекста у вези стрингова који треба да преведу. .IP "\fBwrap\fR" 4 .IX Item "wrap" логичка вредност која говори да ли је код козметичких реформатирања дозвољено да се претумбају празни карактери. Ако је истинита, стринг се канонизује пре употребе. .Sp Ова информација се у \s-1PO\s0 уписује помоћу заставица \fBwrap\fR или \fBno-wrap\fR. .IP "\fBwrapcol\fR" 4 .IX Item "wrapcol" колона око које се врши обавијање (подразумевано: 76). .Sp Ова информација се не уписује у \s-1PO\s0 фајл. .RE .RS 4 .RE .SH "Разне функције" .IX Header "Разне функције" .IP "\fBcount_entries()\fR" 4 .IX Item "count_entries()" Враћа број ставки у каталогу (не узимајући у обзир заглавље). .IP "\fBcount_entries_doc()\fR" 4 .IX Item "count_entries_doc()" Враћа број ставки у документу. Ако се стринг у документу појављује више пута, бројаће се више пута. .IP "equals_msgid(po)" 4 .IX Item "equals_msgid(po)" Враћа ($uptodate, \f(CW$diagnostic\fR) где \f(CW$uptodate\fR назначава да ли су сви msgid текућег po фајла такође присутни и у једном од прослеђених параметара (при поређењу фајлова, сва остала поља се игноришу). Неформално, ако \f(CW$uptodate\fR врати нетачну вредност, онда би po фајлови требало да се измене када се иде кроз \fBpo4a\-updatepo\fR. .Sp Када је \f(CW$uptodate\fR нетачно, \f(CW$diagnostic\fR садржи дијагностику која објашњава зашто је то тако. .IP "msgid($)" 4 .IX Item "msgid($)" Враћа msgid датог броја. .IP "msgid_doc($)" 4 .IX Item "msgid_doc($)" Враћа msgid са датом позицијом у документу. .IP "\fBget_charset()\fR" 4 .IX Item "get_charset()" Враћа скуп карактера који је наведен у \s-1PO\s0 заглављу. Ако није било постављено, вратиће „UTF\-8”. .IP "set_charset($)" 4 .IX Item "set_charset($)" Ово поставља скуп карактера \s-1PO\s0 заглавља на вредност наведену у свом аргументу. Ако никада не позовете ову функцију (и ниједан фајл са наведеним скупом карактера се не чита), подразумевана вредност се оставља на „UTF\-8”. Ова вредност не мења понашање модула, користи се само за попуњавање заглавља, и да се врати функцијом \fBget_charset()\fR. .SH "АУТОРИ" .IX Header "АУТОРИ" .Vb 2 \& Дени Барбије \& Мартин Квинсон (mquinson#debian.org) .Ve