PO4A.7(1) User Contributed Perl Documentation PO4A.7(1) po4a -- po4a (<> < >>) gettext po4a . po4a. , , . po4a? . , : , . , , . -- , . , , . , , gettext. ( PO ). ' , PO. gettext . , . , , . , , . , . , . , . , , . , , , . , , , . po4a . , . gettext. , gettext , PO. gettext , . , po4a , , . - , . . , , , . , . , , . : man ( ) , . po4a , . Locale::Po4a::Man(3pm) mdoc, BSD ( Linux). AsciiDoc ( ) , . , , git. po4a. . Locale::Po4a::AsciiDoc, . pod ( ) - Perl (Perl Online Documentation). , Perl. , , . , , , , po4a. . Locale::Po4a::Pod, . sgml ( ) XML, . . . diff , . , po4a. DebianDoc DocBook DTD, . po4a DTD SGML , . . Locale::Po4a::Sgml(3pm), . TeX / LaTeX ( ) LaTeX , . Locale::Po4a::LaTeX(3pm) Python, . text ( ) , , Markdown, fortune-, YAML, debian/changelog debian/control. , README . . Locale::Po4a::Text(3pm), . xml XHMTL (, ) XML . po4a DocBook DTD ( . Locale::Po4a::Docbook(3pm)) XHTML. BibTex (, ) BibTex LaTex (). . Locale::Po4a::BibTex, . Docbook (, ) XML , . . Locale::Po4a:Docbook, . Guide XML (, ) XML. , Gentoo Linux, 2016 ( Wayback Machine). Gentoo XML DevBook. . Locale::Po4a:Guide, . Wml (, ) (Web Markup Language), WML WAP, '. Xhtml, XML. . Locale::Po4a::Wml, . Yaml (, ) JSON. YAML . YAML Ansible Red Hat. . Locale::Po4a::Yaml, . RubyDoc (, ) Ruby (RD), Ruby Ruby RDoc 2002 . , - Ruby RD. . Locale::Po4a::RubyDoc, . Halibut (, ) , TeX, debiandoc-sgml, TeXinfo . (Simon Tatham), PuTTY. . Locale::Po4a:Halibut, . Ini (, ) , MS-DOS. . Locale::Po4a::Ini, . texinfo ( ) GNU ( GNU). Locale::Po4a::Texinfo(3pm) po4a . , . gemtext (very highly experimental parser) The native plain text format of the Gemini protocol. The extension ".gmi" is commonly used. Support for this module in po4a is still in its infancy. If you find anything, please file a bug or feature request. , po4a , Linux 2.4+ (Locale::Po4a::KernelHelp) , Dia (Locale::Po4a:Dia). . . Locale::Po4a::TransTractor(3pm). , po4a . po4a. , , (deb rpm), , , , wine. po4a po4a . , po4a(1). po4a, . po4a po4a(1), po4a. , . . -- , ; XX. -- XX, doc.XX.po -- XX. , . ( (man), XML, AsciiDoc ); , , PO, XX.. , "[po4a po]", po4a, , "{ .}", . . | V +<-----<----+<-----<-----<--------+------->-------->-------+ : | | : {} | { .} : : | | : XX. | V V (') | . ->------>---->+ : | () | V V | | [po4a-gettextize] .XX.po>+ | | | () | | | | ^ V V | | | [po4a po] | V | | V .pot ^ V | | | .XX.po | | | () | {} | | | | ^ V V | | { } | | | | | V | V V .XX.po --->---->+<---<-.XX.po . () () (')() : | | | : V | | +----->----->----->------> + | | | | | V V V +------>-----+------<------+ | V [po4a ] | V XX. () , . po4a(1), . po4a-gettextize(1) po4a. PO. ( po4a-gettextize(1)), -- . , . ( ). . . , , -- . , ' , , , . . Then, the manual editing block depicts the action of the translators, that modify the PO files to provide translations to every original string and paragraph. This can be done using either a specific editor such as the GNOME Translation Editor, KDE's Lokalize or poedit, or using an online localization platform such as weblate or pootle. The translation result is a set of PO files, one per language. Please refer to the gettext documentation for more details. , po4a . .XX.po, . , . , . . . po4a . , po4a, . , . , po4a(1), . , , , po4a po4a-gettextize. ( ), po4a . po4a, PO , . "--no-translations" po4a, ( PO) "--no-update", PO ( ). po4a-updatepo po4a-translate, (. << >> ). , , , , :). , , . , , ' . po4a , , . , , , . , (, , -- . ), . PO4A-HEADER:, =. , , . PO4A-HEADER: mode=eof , . , XML, " ". PO4A-HEADER: position= ; mode=after; endboundary= , po4a , "position" ( ). , po4a . , , , . PO4A-HEADER: position=A propos de ce document; mode=after; endboundary= "position" , po4a "position", , "endboundary". ( endboundary -- ). , : PO4A-HEADER: position= ; mode=after; beginboundary=
po4a , "
" " " , , beginboundary, . , , " ", po4a, , "
". , "
", "
". You can also set the insertion mode to the value "before", with a similar semantic: combining "mode=before" with an "endboundary" will put the addendum just after the matched boundary, that is the last potential boundary line before the "position". Combining "mode=before" with an "beginboundary" will put the addendum just before the matched boundary, that is the last potential boundary line before the "position". | | | ========|===============|==========================|======================================= 'before'| 'endboundary' | 'position' | 'before'|'beginboundary'| 'position' | 'after' | 'endboundary' | 'position' | 'after' |'beginboundary'| 'position' | 'eof' | () | / | o ', . , nroff, ".fi", ".fi" endboundary, , , , "the[ fi]le", , , . endboundary : "^\.fi$". o "position" . , . , . PO4A-HEADER: position= ; mode=after; beginboundary=
PO4A-HEADER: position= ; mode=after; beginboundary=
o , , , . XML. . o , , po4a "-vv". po4a , , . o nroff: .SH "AUTHORS" mode=after. , AUTHORS position. , (, ^\.SH) beginboundary. , : PO4A-HEADER:mode=after;position=AUTHORS;beginboundary=\.SH o (, <>), position , mode=after, beginboundary - . PO4A-HEADER:mode=after;position=Copyright Big Dude, 2004;beginboundary=^ o , position - ( , po4a , ), endboundary , . , "EOF", -- , . PO4A-HEADER:mode=after;position= ;beginboundary=FakePo4aBoundary ( POD): |=head1 NAME | |dummy - a dummy program | |=head1 AUTHOR | |me , () . |PO4A-HEADER:mode=after;position=;beginboundary=^=head | |=head1 | | | , : PO4A-HEADER:mode=after;position=';beginboundary=^=head1 , beginboundary "/^=head1/" <> ( <<'>> ) . , . , NAME AUTHOR , po4a . , mode=before: PO4A-HEADER:mode=before;position=^=head1 ? po4a, , . , , , . TransTractor- po4a Locale::Po4a::TransTractor(3pm) po4a. , (translator) (extractor). , PO : PO ( ) ( , , PO). : --\ /---> \ TransTractor:: / () +-->-- parse() --------+ / \ PO --------/ \---> PO () po4a. PO, po4a-translate. , po4a-updatepo. po4a TransTractor, POT ( ), msgmerge -U, PO , TransTractor PO . , po4a , , . po4a-gettextize TransTractor-, : TransTractor , PO, msgid msgid, msgid msgstr. , , , , po4a-gettextize(1). po4a TransTractor. , Text, Markdown AsciiDoc. TransTractor::shiftline(), . TransTractor::translate(), (1) PO (2) PO. TransTractor::pushline(). , . Xml, HTML, SGML Pod SAX. , << >>, POT TransTractor::translate() "TransTractor::pushline ()". Yaml , : , YAML::Tiny. Yaml po4a : , "$_:1" . SAX- , . One specific issue arises from file encodings and BOM markers. Simple parsers can forget about this issue, that is handled by TransTractor::read() (used internally to get the lines of an input document), but the modules relying on an external parser must ensure that all files are read with an appropriate PerlIO decoding layer. The easiest is to open the file yourself, and provide an filehandle or directly the full string to your external parser. Check on Pod::read() and Pod::parse() for an example. The content read by the TransTractor is ignored, but a fresh filehandle is passed to the external parser. The important part is the "<:encoding($charset)" mode that is passed to the open() perl function. ' PO Locale::Po4a::Po(3pm) PO POT. , , , gettext(), PO . , ' PO POT , msgmerge msgfmt . po4a , : . po4a . , , , . CONTRIBUTING.md. , po4a , po4a . , ( ' ). o adduser (man): . o apt (man, docbook): Debian. o aptitude (docbook, svg): Debian o F-Droid (markdown): Android. o git (asciidoc): . o Linux (man) . (Arch Linux, Debian , Fedora). o Stellarium (HTML): '. po4a . o Jamulus (markdown, yaml, HTML): - . po4a. o : po4a? pouah , -- <<!>> :) , :) ? , po4a-updatepo po4a-translate , po4a. , po4a , . 150 , po4a 1200 , . , . 1022216 Debian 442 GitHub, , po4a, -- po4a-updatepo. , . , , po4a . , . 2030 . po4a-updatepo po4a-translate 2030 , . , . ( : ), . , gettext? . . . poxml , KDE XML DocBook. , , PO . XML DTD. , msgid. , . po-debiandoc (Denis Barbier) SGML po4a, . , DTD DebianDoc, DTD. xml2po.py GIMP 2004 . , , , , XML make. Sphinx Sphinx gettext . , , rest markdown, , , , . po4a ( ) gettext. gettext o , , . o , . o gettext ( po4a , , ). , , gettext , . o ( ). . o , (, PO Emacs, Lokalize Gtranslator) . o gettext , , , . : - https://docs.kde.org/stable5/uk/kdesdk/lokalize/project-view.html - http://www.debian.org/intl/l10n/ , . , . o . o , ' . , , , -- . o , , , . po4a Gtranslator Lokalize. , po . MS Wordtm ( RTF), . o , : po4a(1). o po4a: po4a-gettextize(1), po4a-updatepo(1), po4a-translate(1), po4a-normalize(1). o : msguntypot(1), po4a-display-man(1), po4a-display-pod(1). o , , : Locale::Po4a::AsciiDoc(3pm) Locale::Po4a::Dia(3pm), Locale::Po4a::Guide(3pm), Locale::Po4a::Ini(3pm), Locale::Po4a::KernelHelp(3pm), Locale::Po4a::Man(3pm), Locale::Po4a::RubyDoc(3pm), Locale::Po4a::Texinfo(3pm), Locale::Po4a::Text(3pm), Locale::Po4a::Xhtml(3pm), Locale::Po4a::Yaml(3pm), Locale::Po4a::BibTeX(3pm), Locale::Po4a::Docbook(3pm), Locale::Po4a::Halibut(3pm), Locale::Po4a::LaTeX(3pm), Locale::Po4a::Pod(3pm), Locale::Po4a::Sgml(3pm), Locale::Po4a::TeX(3pm), Locale::Po4a::Wml(3pm), Locale::Po4a::Xml(3pm). o : Locale::Po4a::TransTractor(3pm) ( ), Locale::Po4a::Chooser(3pm), Locale::Po4a::Po(3pm), Locale::Po4a::Common(3pm). , CONTRIBUTING.md . Denis Barbier Martin Quinson (mquinson#debian.org) perl v5.38.2 2024-06-26 PO4A.7(1)