Provided by: po4a_0.41-1ubuntu1_all bug

po4a ?

       po4a

        po4a  po4a

        master.doc  translation.doc  .pod, .xml, .sgml

                                          master.doc
                                              |
                                              V
            +<-----<----+<-----<-----<--------+------->-------->-------+
            :           |                     |                        :
          {}        |            { master.doc  }             :
            :           |                     |                        :
          XX.doc        |                     V                        V
       ()     |                 master.doc ->-------->------>+
            :           |                    ()                      |
            V           V                     |                        |
         [po4a-gettextize]   doc.XX.po--->+   |                        |
                 |             ()       |   |                        |
                 |              ^         V   V                        |
                 |              |     [po4a-updatepo]                  |
                 V              |           |                          V
          translation.pot       ^           V                          |
                 |              |         doc.XX.po                    |
                 |              |         (fuzzy)                      |
              {  }          |           |                          |
                 |              ^           V                          V
                 |              |       {}                     |
                 |              |           |                          |
                 V              |           V                          V
             doc.XX.po --->---->+<---<---- doc.XX.po   addendum     master.doc
               ()                      ()  ()    ()
                 :                          |            |             |
                 :                          V            |             |
                 +----->----->----->------> +            |             |
                                            |            |             |
                                            V            V             V
                                            +------>-----+------<------+
                                                         |
                                                         V
                                                  [po4a-translate]
                                                         |
                                                         V
                                                       XX.doc
                                                      ()

       po4a  ()  po4a

       {} po4a

   ?
       po4a

       po4a

       -  <master.doc> <translation.pot>  (gettext ) po4a-gettextize

           $ po4a-gettextize -f <format> -m <master.doc> -p <translation.pot>

         <format>  master.doc translation.pot po4a-gettextize(1)

       -  POT  doc.XX.po (XX  ISO639 :  fr) XX.po PO

         Emacs  PO mode  Lokalize (KDE )Gtranslator (GNOME ) vi

         gettext-doc  gettext

   ?
        po4a-translate(1)  (XX )

         $ po4a-translate -f <format> -m <master.doc> -p <doc.XX.po> -l <XX.doc>

       <format>  master.doc -p  PO XX.doc

        po4a-translate(1)

   po4a ?
        master.doc  po4a-updatepo(1)

         $ po4a-updatepo -f <format> -m <new_master.doc> -p <old_doc.XX.po>

       ( po4a-updatepo(1) )

        PO PO "fuzzy" po4a-translate  PO

        fuzzy PO

    po4a ?
        master.doc diff po4a  po4a gettext

        ()po4a

        VCS

        gettext ( ;)

        Perl  gettext   1  2MB

        XX.doc  master.doc translation.pot PO  doc.XX.po  gettext

        $ po4a-gettextize -f <format> -m <old_master.doc> -l <XX.doc> -p <doc.XX.po>

        po4a  PO

        po4a  "fuzzy"

        gettext : ?  po4a-gettextize PO gettextization.failed.po

       -

       -    PO  gettext

       -    PO

       -    (2 1 ) po4a  ;)

       -   POD  man

           POD =item  item 2  1

       -   gettextization.failed.po

       -   po4a gettextization.failed.po  gettext po4a

           PO

            2 2

           2 ("I'm different" )gettext (fuzzy gettext  fuzzy )

        tips  gettext  PO

        Perl  (5.5 MB  PO )  po4a-updatepo 1GHz G5  2 48 PO  msgid  POT
       gettext

    () ?
       gettext po4a

        (1 Perl)

       PO4A-HEADER:  (;) key=value  (;)

       "About this document"  "About this translation"

       position ()
            ()

            position point  insertion point position point po4a  (position
           point )

           position point  insertion point  mode, beginboundary, endboundary

                position=<title>About this document</title>

       mode ()
           before  after position point

                mode=after

       beginboundary (mode=after )
       endboundary ()

           mode=after insertion point  position point ! position point
           ???boundary  () beginboundary  endboundary

              endboundary=</section>

              beginboundary=<section>

           </section> <section>

            ( </section> ) (man ) boundary   insertion point boundary
           insertion point

       SGML  "About this document"  "About this translation"
          PO4A-HEADER: mode=after; position=About this document; endboundary=</section>
          PO4A-HEADER: mode=after; position=About this document; beginboundary=<section>

        nroff
           .SH "AUTHORS"

         position beginboundary  ( ^\.SH)  position point   beginboundary

          PO4A-HEADER:mode=after;position=AUTHORS;beginboundary=\.SH

        ("Copyright Big Dude" ) position beginboundary
          PO4A-HEADER:mode=after;position=Copyright Big Dude, 2004;beginboundary=^

       position  ( 1  po4a ) endboundary "EOF"
          PO4A-HEADER:mode=after;position=<title>About</title>;beginboundary=FakePo4aBoundary

       nroff

         .fi

       .fi  endboundary "the[ fi]le"  endboundary   ^\.fi$

       -vv

        (POD )

        |=head1 NAME
        |
        |dummy - a dummy program
        |
        |=head1 AUTHOR
        |
        |me

       ()( "TRADUCTEUR" "TRANSLATOR""moi"  "me" )

        |PO4A-HEADER:mode=after;position=AUTEUR;beginboundary=^=head
        |
        |=head1 TRADUCTEUR
        |
        |moi

       AUTHOR

        PO4A-HEADER:mode=after;position=NOM;beginboundary=^=head1

       "NAME"  ( "NOM") beginboundary /^=head1/

   ?
       po4a  3  2  (po4a-updatepo po4a-translate) PO

       po4a(1)  (PO POT)? ? ? ?

        po4a(1) PO PO

   po4a
       po4a  (-o )

        /  /  lib/Locale/Po4a/ PERLLIB  PERL5LIB lib

          PERLLIB=$PWD/lib po4a --previous po4a/po4a.cfg

       : lib

?

        po4a

   ?
       po4a  (Perl ?)TransTractor

        PO  2  PO  ()  ( PO )

          -\                             /--->
                            \      TransTractor::       /          ()
                             +-->--   parse()  --------+
                            /                           \
           PO ---------/                             \--->  PO
                                                                ()

       po4a  PO po4a-gettextize  PO po4a-translate

       TransTractor::parse()  <p>

         1 sub parse {
         2   PARAGRAPH: while (1) {
         3     $my ($paragraph,$pararef,$line,$lref)=("","","","");
         4     $my $first=1;
         5     while (($line,$lref)=$document->shiftline() && defined($line)) {
         6       if ($line =~ m/<p>/ && !$first--; ) {
         7         $document->unshiftline($line,$lref);
         8
         9         $paragraph =~ s/^<p>//s;
        10         $document->pushline("<p>".$document->translate($paragraph,$pararef));
        11
        12         next PARAGRAPH;
        13       } else {
        14         $paragraph .= $line;
        15         $pararef = $lref unless(length($pararef));
        16       }
        17     }
        18     return; # Did not got a defined line? End of input file.
        19   }
        20 }

       6 2  <p>  (7 ) paragraph  push 9  <p>  push

       translate()  PO  ()  PO  () pushline()

       ?  po4a  20

       Locale::Po4a::TransTractor(3pm)

   gettext : ?
        N  N 4  ()  4  ()

       po4a PO  PO  PO  PO po4a ()4

        ( diff )

        fuzzy

   : ?
       position mode=before boundary  endboundary beginboundary

FAQ

       ?  po4a <po4a-devel@lists.alioth.debian.org>

   ?
       po4a ()

       o

       o

       o KDE

       o PO po4a

       o

    () ?

        ()

        Locale::Maketext::TPJ13(3pm)  man  (Perl )  ( 10  5 )

    () ?
       gettext debconf ( Debian ) ( 1 )

        debconf XML

        <section>
         <title lang="en">My title</title>
         <title lang="fr">Mon titre</title>

         <para>
          <text lang="en">My text.</text>
          <text lang="fr">Mon texte.</text>
         </para>
        </section>

        PO  PO ()

       o

           ?diff PO  ;)

       o

            (: ) UTF

            ()

       gettext

   gettext !

   gettext ?
        2

       poxml
           KDE DocBook XML  PO

            XML  DTD  msgid

       po-debiandoc
           Denis Barbier  po4a SGML  DTD  DebianDoc DTD

        po4a  () gettext

       3  ( 2 ) (po4a )po4a

       po4a SGML

        |       *****************************************************
        |       *           GENERATED FILE, DO NOT EDIT             *
        |       * THIS IS NO SOURCE FILE, BUT RESULT OF COMPILATION *
        |       *****************************************************
        |
        | This file was generated by po4a-translate(1). 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 source file:
        | If the PO gets lost, keeping this translation up-to-date will be harder ;)

       gettext  PO po/  po4a ( PO  mo )po-debiandoc  PO

        #
        #  ADVISES TO DEVELOPERS:
        #    - you do not need to manually edit POT or PO files.
        #    - this file contains the translation of your debconf templates.
        #      Do not replace the translation of your program with this !!
        #        (or your translators will get very upset)
        #
        #  ADVISES TO TRANSLATORS:
        #    If you are not familiar with the PO format, gettext documentation
        #     is worth reading, especially sections dedicated to this format.
        #    For example, run:
        #         info -n '(gettext)PO Files'
        #         info -n '(gettext)Header Entry'
        #
        #    Some information specific to po-debconf are available at
        #            /usr/share/doc/po-debconf/README-trans
        #         or http://www.debian.org/intl/l10n/po-debconf/README-trans
        #

   gettext
       o

       o

       o  gettext  (po4a )

       o  ( :)

       o  PO  (Emacs  PO mode LokalizeGtranslator )

       o gettext

          - http://kv-53.narod.ru/kaider1.png
          - http://www.debian.org/intl/l10n/

       o

       o

       o

          Gtranslator  Lokalize SGML  SGML MS Word (TM) ( RTF)

        Denis Barbier <barbier,linuxfr.org>
        Martin Quinson (mquinson#debian.org)