Provided by: po4a_0.40-1_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  kbabel (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 use the 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

        cvs

       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"

         .Sp
          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 cvs,
        | 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 kbabelgtranslator )

       o gettext

          - http://kbabel.kde.org/img/previewKonq.png
          - http://www.debian.org/intl/l10n/

       o

       o

       o

          gtranslator  kbabel sgml
          sgml MS Word (TM) ( RTF)

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