diff options
author | Bruno Haible <bruno@clisp.org> | 2002-03-12 20:30:44 +0000 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2009-06-23 12:07:49 +0200 |
commit | dbfb2155e1d62ac1d59f1a49f95c111181fe9f2c (patch) | |
tree | c7380d4d6feebeb04212695cf60719a49aa77ddb /doc | |
parent | c4caaffb18481d0bb0dafbb44d0f16cdefc7a88b (diff) | |
download | external_gettext-dbfb2155e1d62ac1d59f1a49f95c111181fe9f2c.zip external_gettext-dbfb2155e1d62ac1d59f1a49f95c111181fe9f2c.tar.gz external_gettext-dbfb2155e1d62ac1d59f1a49f95c111181fe9f2c.tar.bz2 |
Regenerated.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/Makefile.in | 26 | ||||
-rw-r--r-- | doc/gettext.info | 304 | ||||
-rw-r--r-- | doc/gettext.info-1 | 20 | ||||
-rw-r--r-- | doc/gettext.info-2 | 7 | ||||
-rw-r--r-- | doc/gettext.info-3 | 24 | ||||
-rw-r--r-- | doc/gettext.info-4 | 74 | ||||
-rw-r--r-- | doc/gettext.info-5 | 39 | ||||
-rw-r--r-- | doc/gettext.info-6 | 39 | ||||
-rw-r--r-- | doc/gettext.info-7 | 120 | ||||
-rw-r--r-- | doc/gettext_1.html | 67 | ||||
-rw-r--r-- | doc/gettext_10.html | 139 | ||||
-rw-r--r-- | doc/gettext_11.html | 28 | ||||
-rw-r--r-- | doc/gettext_12.html | 146 | ||||
-rw-r--r-- | doc/gettext_13.html | 244 | ||||
-rw-r--r-- | doc/gettext_14.html | 19 | ||||
-rw-r--r-- | doc/gettext_15.html | 12 | ||||
-rw-r--r-- | doc/gettext_16.html | 12 | ||||
-rw-r--r-- | doc/gettext_2.html | 83 | ||||
-rw-r--r-- | doc/gettext_3.html | 45 | ||||
-rw-r--r-- | doc/gettext_4.html | 75 | ||||
-rw-r--r-- | doc/gettext_5.html | 46 | ||||
-rw-r--r-- | doc/gettext_6.html | 247 | ||||
-rw-r--r-- | doc/gettext_7.html | 325 | ||||
-rw-r--r-- | doc/gettext_8.html | 175 | ||||
-rw-r--r-- | doc/gettext_9.html | 34 | ||||
-rw-r--r-- | doc/gettext_foot.html | 8 | ||||
-rw-r--r-- | doc/gettext_toc.html | 214 | ||||
-rw-r--r-- | doc/version.texi | 8 |
28 files changed, 2028 insertions, 552 deletions
diff --git a/doc/Makefile.in b/doc/Makefile.in index 41c9258..14e4613 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -106,6 +106,7 @@ LD = @LD@ LEX = @LEX@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIB = @LIB@ +LIBEXPAT = @LIBEXPAT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ @@ -113,6 +114,7 @@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTALLOCA = @LTALLOCA@ LTLIB = @LTLIB@ +LTLIBEXPAT = @LTLIBEXPAT@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ @@ -172,6 +174,22 @@ EXTRA_DIST = iso-639.sed iso-3166.sed ISO_639 ISO_3166 nls.texi matrix.texi texi CLEANFILES = gettext.pdf gettext.html # gettext.dvi and gettext.ps are already known to automake. MAINTAINERCLEANFILES = gettext_*.html + +# Temporary index files. automake doesn't remove them reliably by itself. +MOSTLYCLEANFILES = \ + gettext.am gettext.ams \ + gettext.cp gettext.cps \ + gettext.ef gettext.efs \ + gettext.em gettext.ems \ + gettext.ev gettext.evs \ + gettext.fn gettext.fns \ + gettext.kw gettext.kws \ + gettext.ky gettext.kys \ + gettext.op gettext.ops \ + gettext.pg gettext.pgs \ + gettext.tp gettext.tps \ + gettext.vr gettext.vrs + SUFFIXES = .pdf @@ -281,9 +299,10 @@ dist-info: $(INFO_DEPS) done mostlyclean-aminfo: - -rm -f gettext.aux gettext.cp gettext.cps gettext.dvi gettext.fn gettext.fns \ - gettext.ky gettext.log gettext.pg gettext.ps gettext.toc \ - gettext.tp gettext.vr + -rm -f gettext.am gettext.aux gettext.cp gettext.cps gettext.dvi gettext.ef \ + gettext.em gettext.ems gettext.ev gettext.fn gettext.kw \ + gettext.ky gettext.log gettext.op gettext.pg gettext.pgs \ + gettext.ps gettext.toc gettext.tp gettext.vr gettext.vrs maintainer-clean-aminfo: cd $(srcdir) && \ @@ -339,6 +358,7 @@ install-strip: `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) diff --git a/doc/gettext.info b/doc/gettext.info index d99d02f..8c3de9e 100644 --- a/doc/gettext.info +++ b/doc/gettext.info @@ -33,156 +33,166 @@ translation approved by the Foundation. Indirect: gettext.info-1: 1417 -gettext.info-2: 46928 -gettext.info-3: 93218 -gettext.info-4: 142279 -gettext.info-5: 191750 -gettext.info-6: 240311 -gettext.info-7: 289557 +gettext.info-2: 47468 +gettext.info-3: 93845 +gettext.info-4: 142783 +gettext.info-5: 192140 +gettext.info-6: 241816 +gettext.info-7: 291614 +gettext.info-8: 340947 +gettext.info-9: 376830 Tag Table: (Indirect) Node: Top1417 -Node: Introduction10024 -Node: Why11882 -Ref: Why-Footnote-114989 -Node: Concepts15145 -Node: Aspects18558 -Node: Files24340 -Node: Overview26235 -Node: Basics37029 -Node: Installation37859 -Node: PO Files39801 -Ref: PO Files-Footnote-146801 -Node: Main PO Commands46928 -Node: Entry Positioning51998 -Node: Normalizing57452 -Node: Sources61905 -Node: Triggering63175 -Node: Mark Keywords66191 -Node: Marking69739 -Node: c-format77455 -Node: Special cases81357 -Node: Template84085 -Node: xgettext Invocation84437 -Node: Creating90707 -Node: msginit Invocation91598 -Node: Header Entry93218 -Node: Updating99375 -Node: msgmerge Invocation100130 -Node: Translated Entries103982 -Node: Fuzzy Entries105340 -Node: Untranslated Entries108510 -Node: Obsolete Entries110432 -Node: Modifying Translations113647 -Node: Modifying Comments121604 -Node: Subedit126017 -Node: C Sources Context129896 -Node: Auxiliary134999 -Node: Compendium138224 -Node: Creating Compendia138834 -Node: Using Compendia141391 -Node: Manipulating142279 -Node: msgcat Invocation145758 -Node: msgconv Invocation148987 -Node: msggrep Invocation151147 -Node: msgfilter Invocation154715 -Node: msguniq Invocation158563 -Node: msgcomm Invocation161433 -Node: msgcmp Invocation164457 -Node: msgattrib Invocation165687 -Node: msgen Invocation168802 -Node: msgexec Invocation171152 -Node: Binaries173203 -Node: msgfmt Invocation173535 -Node: msgunfmt Invocation178778 -Node: MO Files180972 -Node: Users189063 -Node: Matrix190546 -Node: Installers191750 -Node: End Users192920 -Node: Programmers193569 -Node: catgets194742 -Node: Interface to catgets196145 -Node: Problems with catgets198149 -Node: gettext199049 -Node: Interface to gettext200507 -Node: Ambiguities202849 -Node: Locating Catalogs205542 -Ref: Locating Catalogs-Footnote-1206689 -Ref: Locating Catalogs-Footnote-2206914 -Node: Charset conversion207063 -Node: Plural forms209505 -Ref: Plural forms-Footnote-1220098 -Node: GUI program problems220190 -Node: Optimized gettext225294 -Node: Comparison226627 -Node: Using libintl.a230897 -Node: gettext grok231330 -Node: Temp Programmers233962 -Node: Temp Implementations234402 -Node: Temp catgets235768 -Node: Temp WSI237455 -Node: Temp Notes239443 -Node: Translators239932 -Node: Trans Intro 0240311 -Node: Trans Intro 1242960 -Node: Discussions244824 -Node: Organization248326 -Node: Central Coordination250307 -Node: National Teams251435 -Node: Sub-Cultures253947 -Node: Organizational Ideas254866 -Node: Mailing Lists255869 -Node: Information Flow257672 -Node: Maintainers259805 -Node: Flat and Non-Flat261649 -Node: Prerequisites263132 -Node: gettextize Invocation267271 -Node: Adjusting Files271719 -Node: po/POTFILES.in273321 -Node: po/LINGUAS274263 -Node: po/Makevars275045 -Node: configure.in276631 -Node: config.guess278606 -Node: aclocal279719 -Node: acconfig280998 -Node: Makefile281481 -Node: src/Makefile283869 -Node: lib/gettext.h286852 -Node: autoconf macros289077 -Node: AM_GNU_GETTEXT289557 -Node: AM_ICONV292859 -Node: Programming Languages295045 -Node: Language Implementors295866 -Node: Programmers for other Languages300687 -Node: Translators for other Languages301253 -Node: Maintainers for other Languages301690 -Node: List of Programming Languages302917 -Node: C303978 -Node: sh304959 -Node: bash305585 -Node: Python306270 -Node: Common Lisp307334 -Node: clisp C308048 -Node: Emacs Lisp308770 -Node: librep309476 -Node: Smalltalk310127 -Node: Java311200 -Node: gawk313870 -Node: Pascal314647 -Node: wxWindows315863 -Node: YCP316597 -Node: Perl317257 -Node: PHP317875 -Node: Pike318578 -Node: List of Data Formats319204 -Node: POT319590 -Node: RST319834 -Node: Conclusion320032 -Node: History320532 -Node: References324634 -Node: Language Codes326189 -Node: Country Codes330092 +Node: Introduction10502 +Node: Why12360 +Ref: Why-Footnote-115467 +Node: Concepts15623 +Node: Aspects19036 +Node: Files24874 +Node: Overview26775 +Node: Basics37569 +Node: Installation38399 +Node: PO Files40341 +Ref: PO Files-Footnote-147341 +Node: Main PO Commands47468 +Node: Entry Positioning52538 +Node: Normalizing57992 +Node: Sources62445 +Node: Triggering63715 +Node: Mark Keywords66742 +Node: Marking70290 +Node: c-format78006 +Node: Special cases81908 +Node: Template84636 +Node: xgettext Invocation84988 +Node: Creating91334 +Node: msginit Invocation92225 +Node: Header Entry93845 +Node: Updating100002 +Node: msgmerge Invocation100757 +Node: Translated Entries104609 +Node: Fuzzy Entries105963 +Node: Untranslated Entries109133 +Node: Obsolete Entries111053 +Node: Modifying Translations114266 +Node: Modifying Comments122223 +Node: Subedit126636 +Node: C Sources Context130518 +Node: Auxiliary135621 +Node: Compendium138846 +Node: Creating Compendia139456 +Node: Using Compendia141895 +Node: Manipulating142783 +Node: msgcat Invocation146263 +Node: msgconv Invocation149492 +Node: msggrep Invocation151652 +Node: msgfilter Invocation155333 +Node: msguniq Invocation159181 +Node: msgcomm Invocation162051 +Node: msgcmp Invocation165075 +Node: msgattrib Invocation166305 +Node: msgen Invocation169420 +Node: msgexec Invocation171770 +Node: Binaries173821 +Node: msgfmt Invocation174153 +Node: msgunfmt Invocation179885 +Node: MO Files182566 +Node: Users190657 +Node: Matrix192140 +Node: Installers193344 +Node: End Users194514 +Node: Programmers195163 +Node: catgets196336 +Node: Interface to catgets197739 +Node: Problems with catgets199743 +Node: gettext200644 +Node: Interface to gettext202102 +Node: Ambiguities204441 +Node: Locating Catalogs207134 +Ref: Locating Catalogs-Footnote-1208281 +Ref: Locating Catalogs-Footnote-2208506 +Node: Charset conversion208655 +Node: Plural forms211097 +Ref: Plural forms-Footnote-1221690 +Node: GUI program problems221782 +Node: Optimized gettext226886 +Node: Comparison228219 +Node: Using libintl.a232489 +Node: gettext grok232922 +Node: Temp Programmers235467 +Node: Temp Implementations235907 +Node: Temp catgets237273 +Node: Temp WSI238960 +Node: Temp Notes240948 +Node: Translators241437 +Node: Trans Intro 0241816 +Node: Trans Intro 1244465 +Node: Discussions246329 +Node: Organization249831 +Node: Central Coordination251812 +Node: National Teams252940 +Node: Sub-Cultures255452 +Node: Organizational Ideas256371 +Node: Mailing Lists257374 +Node: Information Flow259177 +Node: Maintainers261310 +Node: Flat and Non-Flat263154 +Node: Prerequisites264637 +Node: gettextize Invocation268778 +Node: Adjusting Files273226 +Node: po/POTFILES.in274830 +Node: po/LINGUAS275772 +Node: po/Makevars276554 +Node: configure.in278140 +Node: config.guess280230 +Node: aclocal281340 +Node: acconfig282865 +Node: Makefile283348 +Node: src/Makefile285926 +Node: lib/gettext.h288909 +Node: autoconf macros291134 +Node: AM_GNU_GETTEXT291614 +Node: AM_ICONV294916 +Node: Programming Languages297102 +Node: Language Implementors297923 +Node: Programmers for other Languages302744 +Node: Translators for other Languages303310 +Node: Maintainers for other Languages303747 +Node: List of Programming Languages304974 +Node: C306097 +Node: sh307078 +Node: bash307704 +Node: Python308389 +Node: Common Lisp309451 +Node: clisp C310165 +Node: Emacs Lisp310887 +Node: librep311593 +Node: Smalltalk312244 +Node: Java313317 +Node: gawk315987 +Node: Pascal316814 +Node: wxWindows318030 +Node: YCP318764 +Node: Tcl319423 +Node: Perl320726 +Node: PHP321344 +Node: Pike322047 +Node: List of Data Formats322673 +Node: POT323132 +Node: RST323376 +Node: Glade323588 +Node: Conclusion323866 +Node: History324366 +Node: References328468 +Node: Language Codes330023 +Node: Country Codes333926 +Node: Program Index339646 +Node: Option Index340947 +Node: Variable Index366112 +Node: PO Mode Index367214 +Node: Autoconf Macro Index376572 +Node: Index376830 End Tag Table diff --git a/doc/gettext.info-1 b/doc/gettext.info-1 index 18d354b..13e9c91 100644 --- a/doc/gettext.info-1 +++ b/doc/gettext.info-1 @@ -56,6 +56,13 @@ GNU `gettext' utilities * Language Codes:: ISO 639 language codes * Country Codes:: ISO 3166 country codes +* Program Index:: Index of Programs +* Option Index:: Index of Command-Line Options +* Variable Index:: Index of Environment Variables +* PO Mode Index:: Index of Emacs PO Mode Commands +* Autoconf Macro Index:: Index of Autoconf Macros +* Index:: General Index + --- The Detailed Node Listing --- Introduction @@ -236,6 +243,7 @@ Individual Programming Languages * Pascal:: Pascal - Free Pascal Compiler * wxWindows:: wxWindows library * YCP:: YCP - YaST2 scripting language +* Tcl:: Tcl - Tk's scripting language * Perl:: Perl * PHP:: PHP Hypertext Preprocessor * Pike:: Pike @@ -244,6 +252,7 @@ Internationalizable Data * POT:: POT - Portable Object Template * RST:: Resource String Table +* Glade:: Glade - GNOME user interface description Concluding Remarks @@ -499,9 +508,10 @@ _Characters and Codesets_ within this codeset. The 8-bit ISO 8859-1 code set has most of the special characters needed to handle the major European languages. However, in many cases, the ISO 8859-1 font is not - adequate. Hence each locale will need to specify which codeset - they need to use and will need to have the appropriate character - handling routines to cope with the codeset. + adequate: it doesn't even handle the major European currency. + Hence each locale will need to specify which codeset they need to + use and will need to have the appropriate character handling + routines to cope with the codeset. _Currency_ The symbols used vary from country to country as does the position @@ -552,8 +562,8 @@ Files Conveying Translations The letters PO in `.po' files means Portable Object, to distinguish it from `.mo' files, where MO stands for Machine Object. This paradigm, as well as the PO file format, is inspired by the NLS -standard developed by Uniforum, and implemented by Sun in their Solaris -system. +standard developed by Uniforum, and first implemented by Sun in their +Solaris system. PO files are meant to be read and edited by humans, and associate each original, translatable string of a given package with its diff --git a/doc/gettext.info-2 b/doc/gettext.info-2 index c205e31..9cbd92a 100644 --- a/doc/gettext.info-2 +++ b/doc/gettext.info-2 @@ -401,8 +401,8 @@ the same code in every program, as demonstrated below: } PACKAGE and LOCALEDIR should be provided either by `config.h' or by -the Makefile. For now consult the `gettext' sources for more -information. +the Makefile. For now consult the `gettext' or `hello' sources for +more information. The use of `LC_ALL' might not be appropriate for you. `LC_ALL' includes all locale categories and especially `LC_CTYPE'. This later @@ -894,7 +894,8 @@ Choice of input file language `-L NAME' `--language=NAME' Specifies the language of the input files. The supported languages - are `C', `C++', `ObjectiveC', `PO', `Java', `YCP'. + are `C', `C++', `ObjectiveC', `PO', `Python', `Lisp', `EmacsLisp', + `librep', `Java', `awk', `YCP', `Tcl', `RST', `Glade'. `-C' `--c++' diff --git a/doc/gettext.info-3 b/doc/gettext.info-3 index af27d53..0524b6e 100644 --- a/doc/gettext.info-3 +++ b/doc/gettext.info-3 @@ -365,9 +365,9 @@ Translated Entries Each PO file entry for which the `msgstr' field has been filled with a translation, and which is not marked as fuzzy (*note Fuzzy Entries::), -is a said to be a "translated" entry. Only translated entries will -later be compiled by GNU `msgfmt' and become usable in programs. Other -entry types will be excluded; translation will not occur for them. +is said to be a "translated" entry. Only translated entries will later +be compiled by GNU `msgfmt' and become usable in programs. Other entry +types will be excluded; translation will not occur for them. Some commands are more specifically related to translated entry processing. @@ -379,7 +379,7 @@ processing. Find the previous translated entry (`po-previous-translated-entry'). - The commands `t' (`po-next-translated-entry') and `M-t' + The commands `t' (`po-next-translated-entry') and `T' (`po-previous-translated-entry') move forwards or backwards, chasing for an translated entry. If none is found, the search is extended and wraps around in the PO file buffer. @@ -493,7 +493,7 @@ processing. `k' Turn the current entry into an untranslated one (`po-kill-msgstr'). - The commands `u' (`po-next-untranslated-entry') and `M-u' + The commands `u' (`po-next-untranslated-entry') and `U' (`po-previous-untransted-entry') move forwards or backwards, chasing for an untranslated entry. If none is found, the search is extended and wraps around in the PO file buffer. @@ -541,7 +541,7 @@ entry processing. Make an active entry obsolete, or zap out an obsolete entry (`po-fade-out-entry'). - The commands `o' (`po-next-obsolete-entry') and `M-o' + The commands `o' (`po-next-obsolete-entry') and `O' (`po-previous-obsolete-entry') move forwards or backwards, chasing for an obsolete entry. If none is found, the search is extended and wraps around in the PO file buffer. @@ -837,7 +837,7 @@ editing set of Emacs, which are described below. The window's contents represents a translation for a given message, or a translator comment. The translator may modify this window to her -heart's content. Once this done, the command `C-c C-c' +heart's content. Once this is done, the command `C-c C-c' (`po-subedit-exit') may be used to return the edited translation into the PO file, replacing the original translation, even if it moved out of sight or if buffers were switched. @@ -1089,7 +1089,7 @@ Creating Compendia ------------------ Basically every PO file consisting of translated entries only can be -declared as a valid compendium. Often the translater wants to have +declared as a valid compendium. Often the translator wants to have special compendia; let's consider two cases: `concatenating PO files' and `extracting a message subset from a PO file'. @@ -1140,11 +1140,9 @@ message is always the best translation she can make use to the msgcat --use-first -o compendium.po file1.po file2.po A good compendium file must not contain `fuzzy' or untranslated -entries. If input files are "dirty" you must use the -`--translated-only' switch (FIXME: TBI) or a manual way to pre- or -postprocess. (FIXME: Handling of obsolete entries at this point? -Proposal: By default, make them valid entries. -`--no-obsolete-entries'.) +entries. If input files are "dirty" you must preprocess the input +files or postprocess the result using `msgattrib --translated +--no-fuzzy'. Extract a Message Subset from a PO File ....................................... diff --git a/doc/gettext.info-4 b/doc/gettext.info-4 index a51b5d7..3c2f6bf 100644 --- a/doc/gettext.info-4 +++ b/doc/gettext.info-4 @@ -59,8 +59,8 @@ way to do this is through `msggrep', another is to create a POT file for that source file and use `msgmerge'. When a translator wants to adjust some translation catalog for a -special dialect or orthography - for example, German as written in -Switzerland versus German as written in Germany -, she needs to apply +special dialect or orthography -- for example, German as written in +Switzerland versus German as written in Germany -- she needs to apply some text processing to every message in the catalog. The tool for doing this is `msgfilter'. @@ -358,7 +358,8 @@ specified or if it is `-'. Message selection ----------------- - [-N SOURCEFILE]... [-M DOMAINNAME]... [-K MSGID-PATTERN] [-T MSGSTR-PATTERN] + [-N SOURCEFILE]... [-M DOMAINNAME]... + [-K MSGID-PATTERN] [-T MSGSTR-PATTERN] [-C COMMENT-PATTERN] A message is selected if * it comes from one of the specified source files, @@ -369,7 +370,10 @@ Message selection MSGID-PATTERN, * or if `-T' is given and its translation (msgstr) matches - MSGSTR-PATTERN. + MSGSTR-PATTERN, + + * or if `-C' is given and the translator's comment matches + COMMENT-PATTERN. When more than one selection criterion is specified, the set of selected messages is the union of the selected messages of each @@ -1190,6 +1194,9 @@ Operation mode `--java2' Like -java, and assume Java2 (JDK 1.2 or higher). +`--tcl' + Tcl mode: generate a tcl/msgcat `.msg' file. + Output file location -------------------- @@ -1230,6 +1237,21 @@ Output file location in Java mode resource name, separated with an underscore. The `-d' option is mandatory. The class is written under the specified directory. +Output file location in Tcl mode +-------------------------------- + +`-l LOCALE' +`--locale=LOCALE' + Specify the locale name, either a language specification of the + form LL or a combined language and country specification of the + form LL_CC. + +`-d DIRECTORY' + Specify the base directory of `.msg' message catalogs. + + The `-l' and `-d' options are mandatory. The `.msg' file is written +in the specified directory. + Input file interpretation ------------------------- @@ -1338,7 +1360,10 @@ Operation mode `-j' `--java' - Java mode: generate a Java `ResourceBundle' class. + Java mode: input is a Java `ResourceBundle' class. + +`--tcl' + Tcl mode: input is a tcl/msgcat `.msg' file. Input file location ------------------- @@ -1365,6 +1390,21 @@ Input file location in Java mode resource name, separated with an underscore. The class is located using the `CLASSPATH'. +Input file location in Tcl mode +------------------------------- + +`-l LOCALE' +`--locale=LOCALE' + Specify the locale name, either a language specification of the + form LL or a combined language and country specification of the + form LL_CC. + +`-d DIRECTORY' + Specify the base directory of `.msg' message catalogs. + + The `-l' and `-d' options are mandatory. The `.msg' file is located +in the specified directory. + Output file location -------------------- @@ -1588,27 +1628,3 @@ installers and end users. * Installers:: Magic for Installers * End Users:: Magic for End Users - -File: gettext.info, Node: Matrix, Next: Installers, Prev: Users, Up: Users - -The Current `ABOUT-NLS' Matrix -============================== - - Languages are not equally supported in all packages using GNU -`gettext'. To know if some package uses GNU `gettext', one may check -the distribution for the `ABOUT-NLS' information file, for some `LL.po' -files, often kept together into some `po/' directory, or for an `intl/' -directory. Internationalized packages have usually many `LL.po' files, -where LL represents the language. *Note End Users:: for a complete -description of the format for LL. - - More generally, a matrix is available for showing the current state -of the Translation Project, listing which packages are prepared for -multi-lingual messages, and which languages are supported by each. -Because this information changes often, this matrix is not kept within -this GNU `gettext' manual. This information is often found in file -`ABOUT-NLS' from various distributions, but is also as old as the -distribution itself. A recent copy of this `ABOUT-NLS' file, -containing up-to-date information, should generally be found on the -Translation Project sites, and also on most GNU archive sites. - diff --git a/doc/gettext.info-5 b/doc/gettext.info-5 index 60d99e8..ba3c338 100644 --- a/doc/gettext.info-5 +++ b/doc/gettext.info-5 @@ -31,6 +31,30 @@ versions, except that this permission notice may be stated in a translation approved by the Foundation. +File: gettext.info, Node: Matrix, Next: Installers, Prev: Users, Up: Users + +The Current `ABOUT-NLS' Matrix +============================== + + Languages are not equally supported in all packages using GNU +`gettext'. To know if some package uses GNU `gettext', one may check +the distribution for the `ABOUT-NLS' information file, for some `LL.po' +files, often kept together into some `po/' directory, or for an `intl/' +directory. Internationalized packages have usually many `LL.po' files, +where LL represents the language. *Note End Users:: for a complete +description of the format for LL. + + More generally, a matrix is available for showing the current state +of the Translation Project, listing which packages are prepared for +multi-lingual messages, and which languages are supported by each. +Because this information changes often, this matrix is not kept within +this GNU `gettext' manual. This information is often found in file +`ABOUT-NLS' from various distributions, but is also as old as the +distribution itself. A recent copy of this `ABOUT-NLS' file, +containing up-to-date information, should generally be found on the +Translation Project sites, and also on most GNU archive sites. + + File: gettext.info, Node: Installers, Next: End Users, Prev: Matrix, Up: Users Magic for Installers @@ -184,7 +208,7 @@ Problems with the `catgets' Interface?! --------------------------------------- Now that this description seemed to be really easy -- where are the -problem we speak of? In fact the interface could be used in a +problems we speak of? In fact the interface could be used in a reasonable way, but constructing the message catalogs is a pain. The reason for this lies in the third argument of `catgets': the unique message ID. This has to be a numeric value for all messages in a single @@ -260,7 +284,7 @@ To use a domain set by `textdomain' the function char *gettext (const char *msgid); - is to be used. This is the simplest reasonable form one can imagine. +is to be used. This is the simplest reasonable form one can imagine. The translation of the string MSGID is returned if it is available in the current domain. If not available the argument itself is returned. If the argument is `NULL' the result is undefined. @@ -465,7 +489,7 @@ Maszkowski `<rzm@mat.uni.torun.pl>' reports: There are two things which can differ between languages (and even inside language families); - * The form how plural forms are build differs. This is a problem + * The form how plural forms are built differs. This is a problem with languages which have many irregularities. German, for instance, is a drastic case. Though English and German are part of the same language family (Germanic), the almost regular forming @@ -1019,11 +1043,10 @@ is a list comments: ++_nl_msg_cat_cntr; } - The variable `_nl_msg_cat_cntr' is defined in `loadmsgcat.c'. The - programmer will find himself in need for a construct like this only - when developing programs which do run longer and provide the user - to select the language at runtime. Non-interactive programs (like - all these little Unix tools) should never need this. + The variable `_nl_msg_cat_cntr' is defined in `loadmsgcat.c'. You + don't need to know what this is for. But it can be used to detect + whether a `gettext' implementation is GNU gettext and not non-GNU + system's native gettext implementation. diff --git a/doc/gettext.info-6 b/doc/gettext.info-6 index a81762d..905c431 100644 --- a/doc/gettext.info-6 +++ b/doc/gettext.info-6 @@ -532,7 +532,7 @@ chapter. So, we describe them here. * Before attempting to use `gettextize' you should install some other packages first. Ensure that recent versions of GNU `m4', GNU Autoconf and GNU `gettext' are already installed at your site, - and if not, proceed to do this first. If you got to install these + and if not, proceed to do this first. If you get to install these things, beware that GNU `m4' must be fully installed before GNU Autoconf is even _configured_. @@ -542,7 +542,7 @@ chapter. So, we describe them here. about all the goals necessary for using `automake' and `libintl' in one project. - Those four packages are only needed to you, as a maintainer; the + Those four packages are only needed by you, as a maintainer; the installers of your own package and end users do not really need any of GNU `m4', GNU Autoconf, GNU `gettext', or GNU `automake' for successfully installing and running your package, with messages @@ -570,7 +570,7 @@ chapter. So, we describe them here. It is worth adding here a few words about how the maintainer should ideally behave with PO files submissions. As a maintainer, your role is -to authentify the origin of the submission as being the representative +to authenticate the origin of the submission as being the representative of the appropriate translating teams of the Translation Project (forward the submission to `translation@iro.umontreal.ca' in case of doubt), to ensure that the PO file format is not severely broken and does not @@ -667,7 +667,7 @@ specified. with the files it contains, and only `Makefile.in.in' and the auxiliary files will be overwritten. - 3. Only of `--intl' has been specified: A `intl/' directory is + 3. Only if `--intl' has been specified: A `intl/' directory is created and filled with most of the files originally in the `intl/' directory of the GNU `gettext' distribution. Also, if option `--force' (`-f') is given, the `intl/' directory is emptied @@ -710,7 +710,7 @@ each. So, here comes a list of files, each one followed by a description of all alterations it needs. Many examples are taken out from the GNU -`gettext' 0.11 distribution itself, or from the GNU `hello' +`gettext' 0.11.1 distribution itself, or from the GNU `hello' distribution (`http://www.franken.de/users/gnu/ke/hello' or `http://www.gnu.franken.de/ke/hello/') You may indeed refer to the source code of the GNU `gettext' and GNU `hello' packages, as they are @@ -822,16 +822,20 @@ File: gettext.info, Node: configure.in, Next: config.guess, Prev: po/Makevars This is done by a set of lines like these: PACKAGE=gettext - VERSION=0.11 + VERSION=0.11.1 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE") AC_DEFINE_UNQUOTED(VERSION, "$VERSION") AC_SUBST(PACKAGE) AC_SUBST(VERSION) + or, if you are using GNU `automake', by a line like this: + + AM_INIT_AUTOMAKE(gettext, 0.11.1) + Of course, you replace `gettext' with the name of your package, - and `0.11' by its version numbers, exactly as they should appear + and `0.11.1' by its version numbers, exactly as they should appear in the packaged `tar' file name of your distribution - (`gettext-0.11.tar.gz', here). + (`gettext-0.11.1.tar.gz', here). 2. Check for internationalization support. @@ -872,8 +876,8 @@ File: gettext.info, Node: config.guess, Next: aclocal, Prev: configure.in, U `config.guess', `config.sub' at top level ----------------------------------------- - If you don't have suppressed the `intl/' subdirectory, you need to -add the GNU `config.guess' and `config.sub' files to your distribution. + If you haven't suppressed the `intl/' subdirectory, you need to add +the GNU `config.guess' and `config.sub' files to your distribution. They are needed because the `intl/' directory has platform dependent support for determining the locale's character encoding and therefore needs to identify the platform. @@ -902,8 +906,8 @@ simplest is to concatenate the files `codeset.m4', `gettext.m4', `glibc21.m4', `iconv.m4', `isc-posix.m4', `lcmessage.m4', `lib-ld.m4', `lib-link.m4', `lib-prefix.m4', `progtest.m4' from GNU `gettext''s `m4/' directory into a single file. If you have suppressed the `intl/' -directory, only `gettext.m4', `iconv.m4', `progtest.m4' need to be -concatenated. +directory, only `gettext.m4', `iconv.m4', `lib-ld.m4', `lib-link.m4', +`lib-prefix.m4', `progtest.m4' need to be concatenated. If you already have an `aclocal.m4' file, then you will have to merge the said macro files into your `aclocal.m4'. Note that if you @@ -913,6 +917,13 @@ change a little from one release of GNU `gettext' to the next. Their contents may vary as we get more experience with strange systems out there. + If you are using GNU `automake' 1.5 or newer, it is enough to put +these macro files into a subdirectory named `m4/' and add the line + + ACLOCAL_AMFLAGS = -I m4 + +to your top level `Makefile.am'. + These macros check for the internationalization support functions and related informations. Hopefully, once stabilized, these macros might be integrated in the standard Autoconf set, because this piece of @@ -992,6 +1003,10 @@ File: gettext.info, Node: Makefile, Next: src/Makefile, Prev: acconfig, Up: rm -fr $(distdir) + Note that if you are using GNU `automake', `Makefile.in' is +automatically generated from `Makefile.am', and all needed changes to +`Makefile.am' are already made by running `gettextize'. + File: gettext.info, Node: src/Makefile, Next: lib/gettext.h, Prev: Makefile, Up: Adjusting Files diff --git a/doc/gettext.info-7 b/doc/gettext.info-7 index 414eecd..e0d9c0f 100644 --- a/doc/gettext.info-7 +++ b/doc/gettext.info-7 @@ -329,6 +329,7 @@ Individual Programming Languages * Pascal:: Pascal - Free Pascal Compiler * wxWindows:: wxWindows library * YCP:: YCP - YaST2 scripting language +* Tcl:: Tcl - Tk's scripting language * Perl:: Perl * PHP:: PHP Hypertext Preprocessor * Pike:: Pike @@ -524,7 +525,7 @@ Use or emulate GNU gettext emulate. Bug: uses only the first found .mo file, not all of them Extractor - pygettext.py + `xgettext' Formatting with positions `'...%(ident)d...' % { 'ident': value }' @@ -893,7 +894,7 @@ gettext shorthand `_"abc"' gettext/ngettext functions - `dcgettext' + `dcgettext', missing `dcngettext' in gawk-3.1.0 textdomain `TEXTDOMAIN' variable @@ -911,14 +912,15 @@ Use or emulate GNU gettext use Extractor - `gawk --gen-po' + `xgettext' Formatting with positions `printf "%2$d %1$d"' (GNU awk only) Portability On platforms without gettext, no translation. On non-GNU awks, - you must define `dcgettext' and `bindtextdomain' yourself. + you must define `dcgettext', `dcngettext' and `bindtextdomain' + yourself. po-mode marking -- @@ -1028,7 +1030,7 @@ po-mode marking yes -File: gettext.info, Node: YCP, Next: Perl, Prev: wxWindows, Up: List of Programming Languages +File: gettext.info, Node: YCP, Next: Tcl, Prev: wxWindows, Up: List of Programming Languages YCP - YaST2 scripting language ------------------------------ @@ -1076,7 +1078,65 @@ po-mode marking -- -File: gettext.info, Node: Perl, Next: PHP, Prev: YCP, Up: List of Programming Languages +File: gettext.info, Node: Tcl, Next: Perl, Prev: YCP, Up: List of Programming Languages + +Tcl - Tk's scripting language +----------------------------- + +RPMs + tcl + +File extension + `tcl' + +String syntax + `"abc"' + +gettext shorthand + `[_ "abc"]' + +gettext/ngettext functions + `::msgcat::mc' + +textdomain + -- + +bindtextdomain + --, use `::msgcat::mcload' instead + +setlocale + automatic, uses LANG, but ignores LC_MESSAGES and LC_ALL + +Prerequisite + `package require msgcat' + `proc _ {s} {return [::msgcat::mc $s]}' + +Use or emulate GNU gettext + --, uses a Tcl specific message catalog format + +Extractor + `xgettext -k_' + +Formatting with positions + `format "%2\$d %1\$d"' + +Portability + fully portable + +po-mode marking + -- + + Before marking strings as internationalizable, substitutions of +variables into the string need to be converted to `format' +applications. For example, `"file $filename not found"' becomes +`[format "file %s not found" $filename]'. Only after this is done, can +the strings be marked and extracted. After marking, this example +becomes `[format [_ "file %s not found"] $filename]' or `[msgcat::mc +"file %s not found" $filename]'. Note that the `msgcat::mc' function +implicitly calls `format' when more than one argument is given. + + +File: gettext.info, Node: Perl, Next: PHP, Prev: Tcl, Up: List of Programming Languages Perl ---- @@ -1233,6 +1293,7 @@ using GNU gettext. * POT:: POT - Portable Object Template * RST:: Resource String Table +* Glade:: Glade - GNOME user interface description File: gettext.info, Node: POT, Next: RST, Prev: List of Data Formats, Up: List of Data Formats @@ -1250,7 +1311,7 @@ Extractor `xgettext' -File: gettext.info, Node: RST, Prev: POT, Up: List of Data Formats +File: gettext.info, Node: RST, Next: Glade, Prev: POT, Up: List of Data Formats Resource String Table --------------------- @@ -1265,6 +1326,21 @@ Extractor `xgettext', `rstconv' +File: gettext.info, Node: Glade, Prev: RST, Up: List of Data Formats + +Glade - GNOME user interface description +---------------------------------------- + +RPMs + glade, libglade, xml-i18n-tools + +File extension + `glade' + +Extractor + `xgettext', `libglade-xgettext' + + File: gettext.info, Node: Conclusion, Next: Language Codes, Prev: Programming Languages, Up: Top Concluding Remarks @@ -1900,7 +1976,7 @@ come from this standard. Zulu. -File: gettext.info, Node: Country Codes, Prev: Language Codes, Up: Top +File: gettext.info, Node: Country Codes, Next: Program Index, Prev: Language Codes, Up: Top Country Codes ************* @@ -2626,4 +2702,32 @@ Translation Project should come from this standard. `ZW' Zimbabwe. + +File: gettext.info, Node: Program Index, Next: Option Index, Prev: Country Codes, Up: Top + +Program Index +************* + +* Menu: + +* gettext <1>: bash. +* gettext: sh. +* gettextize: gettextize Invocation. +* msgattrib: msgattrib Invocation. +* msgcat: msgcat Invocation. +* msgcmp: msgcmp Invocation. +* msgcomm: msgcomm Invocation. +* msgconv: msgconv Invocation. +* msgen: msgen Invocation. +* msgexec: msgexec Invocation. +* msgfilter: msgfilter Invocation. +* msgfmt: msgfmt Invocation. +* msggrep: msggrep Invocation. +* msginit: msginit Invocation. +* msgmerge: msgmerge Invocation. +* msgunfmt: msgunfmt Invocation. +* msguniq: msguniq Invocation. +* ngettext <1>: bash. +* ngettext: sh. +* xgettext: xgettext Invocation. diff --git a/doc/gettext_1.html b/doc/gettext_1.html index b5365db..3e96db0 100644 --- a/doc/gettext_1.html +++ b/doc/gettext_1.html @@ -1,12 +1,12 @@ <HTML> <HEAD> <!-- This HTML file has been created by texi2html 1.52a - from gettext.texi on 31 January 2002 --> + from gettext.texi on 7 March 2002 --> <TITLE>GNU gettext utilities - 1 Introduction</TITLE> </HEAD> <BODY> -Go to the first, previous, <A HREF="gettext_2.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the first, previous, <A HREF="gettext_2.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. <P><HR><P> @@ -22,6 +22,9 @@ material is delayed. </BLOCKQUOTE> <P> +<A NAME="IDX1"></A> +<A NAME="IDX2"></A> +<A NAME="IDX3"></A> In this manual, we use <EM>he</EM> when speaking of the programmer or maintainer, <EM>she</EM> when speaking of the translator, and <EM>they</EM> when speaking of the installers or end users of the translated program. @@ -45,6 +48,7 @@ cycle should usually operate. </P> <P> +<A NAME="IDX4"></A> Please send suggestions and corrections to: </P> @@ -77,6 +81,7 @@ a lot less of English, and far more of their own language. </P> <P> +<A NAME="IDX5"></A> However, to many people, this dream might appear so far fetched that they may believe it is not even worth spending time thinking about it. They have no confidence at all that the dream might ever @@ -148,6 +153,8 @@ Project, and consequently, have a glimpse at the <EM>big picture</EM>. <H2><A NAME="SEC3" HREF="gettext_toc.html#TOC3">1.2 I18n, L10n, and Such</A></H2> <P> +<A NAME="IDX6"></A> +<A NAME="IDX7"></A> Two long words appear all the time when we discuss support of native language in programs, and these words have a precise meaning, worth being explained here, once and for all in this document. The words are @@ -161,6 +168,7 @@ the names in full, each time... </P> <P> +<A NAME="IDX8"></A> By <EM>internationalization</EM>, one refers to the operation by which a program, or a set of programs turned into a package, is made aware of and able to support multiple languages. This is a generalization process, @@ -168,10 +176,11 @@ by which the programs are untied from calling only English strings or other English specific habits, and connected to generic ways of doing the same, instead. Program developers may use various techniques to internationalize their programs. Some of these have been standardized. -GNU <CODE>gettext</CODE> offers one of these standards. See section <A HREF="gettext_10.html#SEC138">10 The Programmer's View</A>. +GNU <CODE>gettext</CODE> offers one of these standards. See section <A HREF="gettext_10.html#SEC140">10 The Programmer's View</A>. </P> <P> +<A NAME="IDX9"></A> By <EM>localization</EM>, one means the operation by which, in a set of programs already internationalized, one gives the program all needed information so that it can adapt itself to handle its input @@ -201,6 +210,9 @@ complete suite of routines that access all of the locale's information. </P> <P> +<A NAME="IDX10"></A> +<A NAME="IDX11"></A> +<A NAME="IDX12"></A> One uses the expression <EM>Native Language Support</EM>, or merely NLS, for speaking of the overall activity or feature encompassing both internationalization and localization, allowing for multi-lingual @@ -220,6 +232,7 @@ localization is usually taken care of by translators. <H2><A NAME="SEC4" HREF="gettext_toc.html#TOC4">1.3 Aspects in Native Language Support</A></H2> <P> +<A NAME="IDX13"></A> For a totally multi-lingual distribution, there are many things to translate beyond output messages. @@ -295,6 +308,7 @@ needed to support the country's native attributes. </P> <P> +<A NAME="IDX14"></A> There are a few major areas which may vary between countries and hence, define what a locale must describe. The following list helps putting multi-lingual messages into the proper context of other tasks @@ -305,24 +319,36 @@ related to locales. See the GNU <CODE>libc</CODE> manual for details. <DT><EM>Characters and Codesets</EM> <DD> +<A NAME="IDX15"></A> +<A NAME="IDX16"></A> +<A NAME="IDX17"></A> +<A NAME="IDX18"></A> + The codeset most commonly used through out the USA and most English speaking parts of the world is the ASCII codeset. However, there are many characters needed by various locales that are not found within this codeset. The 8-bit ISO 8859-1 code set has most of the special characters needed to handle the major European languages. However, in -many cases, the ISO 8859-1 font is not adequate. Hence each locale +many cases, the ISO 8859-1 font is not adequate: it doesn't even +handle the major European currency. Hence each locale will need to specify which codeset they need to use and will need to have the appropriate character handling routines to cope with the codeset. <DT><EM>Currency</EM> <DD> +<A NAME="IDX19"></A> +<A NAME="IDX20"></A> + The symbols used vary from country to country as does the position used by the symbol. Software needs to be able to transparently display currency figures in the native mode for each locale. <DT><EM>Dates</EM> <DD> +<A NAME="IDX21"></A> +<A NAME="IDX22"></A> + The format of date varies between locales. For example, Christmas day in 1994 is written as 12/25/94 in the USA and as 25/12/94 in Australia. Other countries might use ISO 8061 dates, etc. @@ -334,6 +360,9 @@ of the Daylight Saving correction vary widely between countries. <DT><EM>Numbers</EM> <DD> +<A NAME="IDX23"></A> +<A NAME="IDX24"></A> + Numbers can be represented differently in different locales. For example, the following numbers are all written correctly for their respective locales: @@ -352,6 +381,9 @@ about how numbers are spelled in full. <DT><EM>Messages</EM> <DD> +<A NAME="IDX25"></A> +<A NAME="IDX26"></A> + The most obvious area is the language support within a locale. This is where GNU <CODE>gettext</CODE> provides the means for developers and users to easily change the language that the software uses to communicate to @@ -360,6 +392,7 @@ the user. </DL> <P> +<A NAME="IDX27"></A> Components of locale outside of message handling are standardized in the ISO C standard and the SUSV2 specification. GNU <CODE>libc</CODE> fully implements this, and most other modern systems provide a more @@ -371,11 +404,12 @@ or less reasonable support for at least some of the missing components. <H2><A NAME="SEC5" HREF="gettext_toc.html#TOC5">1.4 Files Conveying Translations</A></H2> <P> +<A NAME="IDX28"></A> The letters PO in <TT>`.po´</TT> files means Portable Object, to distinguish it from <TT>`.mo´</TT> files, where MO stands for Machine Object. This paradigm, as well as the PO file format, is inspired -by the NLS standard developed by Uniforum, and implemented by Sun -in their Solaris system. +by the NLS standard developed by Uniforum, and first implemented by +Sun in their Solaris system. </P> <P> @@ -412,6 +446,9 @@ the GNU format. <H2><A NAME="SEC6" HREF="gettext_toc.html#TOC6">1.5 Overview of GNU <CODE>gettext</CODE></A></H2> <P> +<A NAME="IDX29"></A> +<A NAME="IDX30"></A> +<A NAME="IDX31"></A> The following diagram summarizes the relation between the files handled by GNU <CODE>gettext</CODE> and the tools acting on these files. It is followed by somewhat detailed explanations, which you should @@ -459,6 +496,7 @@ with easy repositioning to PO file lines showing errors. </P> <P> +<A NAME="IDX32"></A> As a programmer, the first step to bringing GNU <CODE>gettext</CODE> into your package is identifying, right in the C sources, those strings which are meant to be translatable, and those which are untranslatable. @@ -490,6 +528,8 @@ Later when you feel ready for the step to use the <CODE>gettext</CODE> library simply replace these definitions by the following: </P> +<P> +<A NAME="IDX33"></A> <PRE> #include <libintl.h> @@ -499,6 +539,8 @@ simply replace these definitions by the following: </PRE> <P> +<A NAME="IDX34"></A> +<A NAME="IDX35"></A> and link against <TT>`libintl.a´</TT> or <TT>`libintl.so´</TT>. Note that on GNU systems, you don't need to link with <CODE>libintl</CODE> because the <CODE>gettext</CODE> library functions are already contained in GNU libc. @@ -506,6 +548,8 @@ That is all you have to change. </P> <P> +<A NAME="IDX36"></A> +<A NAME="IDX37"></A> Once the C sources have been modified, the <CODE>xgettext</CODE> program is used to find and extract all translatable strings, and create a PO template file out of all these. This <TT>`<VAR>package</VAR>.pot´</TT> file @@ -516,7 +560,7 @@ a Template PO file, not yet oriented towards any particular language. See section <A HREF="gettext_4.html#SEC20">4.1 Invoking the <CODE>xgettext</CODE> Program</A>, for more details about how one calls the <CODE>xgettext</CODE> program. If you are <EM>really</EM> lazy, you might be interested at working a lot more right away, and preparing the -whole distribution setup (see section <A HREF="gettext_12.html#SEC169">12 The Maintainer's View</A>). By doing so, you +whole distribution setup (see section <A HREF="gettext_12.html#SEC171">12 The Maintainer's View</A>). By doing so, you spare yourself typing the <CODE>xgettext</CODE> command, as <CODE>make</CODE> should now generate the proper things automatically for you! @@ -533,7 +577,7 @@ Then comes the initial translation of messages. Translation in itself is a whole matter, still exclusively meant for humans, and whose complexity far overwhelms the level of this manual. Nevertheless, a few hints are given in some other chapter of this -manual (see section <A HREF="gettext_11.html#SEC158">11 The Translator's View</A>). You will also find there indications +manual (see section <A HREF="gettext_11.html#SEC160">11 The Translator's View</A>). You will also find there indications about how to contact translating teams, or becoming part of them, for sharing your translating concerns with others who target the same native language. @@ -585,6 +629,7 @@ are slowly fading out of date. </P> <P> +<A NAME="IDX38"></A> It is important for translators (and even maintainers) to understand that package translation is a continuous process in the lifetime of a package, and not something which is done once and for all at the start. @@ -633,7 +678,7 @@ distribution. Once the PO file is complete and dependable, the <CODE>msgfmt</CODE> program is used for turning the PO file into a machine-oriented format, which may yield efficient retrieval of translations by the programs of the -package, whenever needed at runtime (see section <A HREF="gettext_8.html#SEC133">8.3 The Format of GNU MO Files</A>). See section <A HREF="gettext_8.html#SEC118">8.1 Invoking the <CODE>msgfmt</CODE> Program</A>, for more information about all modes of execution +package, whenever needed at runtime (see section <A HREF="gettext_8.html#SEC135">8.3 The Format of GNU MO Files</A>). See section <A HREF="gettext_8.html#SEC118">8.1 Invoking the <CODE>msgfmt</CODE> Program</A>, for more information about all modes of execution for the <CODE>msgfmt</CODE> program. </P> @@ -643,7 +688,7 @@ with the GNU <CODE>gettext</CODE> library, usually through the operation of <CODE>make</CODE>, given a suitable <TT>`Makefile´</TT> exists for the project, and the resulting executable is installed somewhere users will find it. The MO files themselves should also be properly installed. Given the -appropriate environment variables are set (see section <A HREF="gettext_9.html#SEC137">9.3 Magic for End Users</A>), the +appropriate environment variables are set (see section <A HREF="gettext_9.html#SEC139">9.3 Magic for End Users</A>), the program should localize itself automatically, whenever it executes. </P> @@ -653,6 +698,6 @@ steps outlined above. </P> <P><HR><P> -Go to the first, previous, <A HREF="gettext_2.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the first, previous, <A HREF="gettext_2.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. </BODY> </HTML> diff --git a/doc/gettext_10.html b/doc/gettext_10.html index 81861b6..9015f50 100644 --- a/doc/gettext_10.html +++ b/doc/gettext_10.html @@ -1,16 +1,16 @@ <HTML> <HEAD> <!-- This HTML file has been created by texi2html 1.52a - from gettext.texi on 31 January 2002 --> + from gettext.texi on 7 March 2002 --> <TITLE>GNU gettext utilities - 10 The Programmer's View</TITLE> </HEAD> <BODY> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_9.html">previous</A>, <A HREF="gettext_11.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_9.html">previous</A>, <A HREF="gettext_11.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. <P><HR><P> -<H1><A NAME="SEC138" HREF="gettext_toc.html#TOC138">10 The Programmer's View</A></H1> +<H1><A NAME="SEC140" HREF="gettext_toc.html#TOC140">10 The Programmer's View</A></H1> <P> One aim of the current message catalog implementation provided by @@ -28,8 +28,11 @@ later explain our solution of this dilemma. -<H2><A NAME="SEC139" HREF="gettext_toc.html#TOC139">10.1 About <CODE>catgets</CODE></A></H2> +<H2><A NAME="SEC141" HREF="gettext_toc.html#TOC141">10.1 About <CODE>catgets</CODE></A></H2> +<P> +<A NAME="IDX798"></A> +</P> <P> The <CODE>catgets</CODE> implementation is defined in the X/Open Portability Guide, Volume 3, XSI Supplementary Definitions, Chapter 5. But the @@ -60,8 +63,11 @@ therefore part of all Unix implementation (implementations, which are -<H3><A NAME="SEC140" HREF="gettext_toc.html#TOC140">10.1.1 The Interface</A></H3> +<H3><A NAME="SEC142" HREF="gettext_toc.html#TOC142">10.1.1 The Interface</A></H3> +<P> +<A NAME="IDX799"></A> +</P> <P> The interface to the <CODE>catgets</CODE> implementation consists of three functions which correspond to those used in file access: <CODE>catopen</CODE> @@ -72,6 +78,7 @@ for the functions and the needed definitions are in the </P> <P> +<A NAME="IDX800"></A> <CODE>catopen</CODE> is used like in this: </P> @@ -90,6 +97,7 @@ message catalog, equivalent to handles to file returned by <CODE>open</CODE>. </P> <P> +<A NAME="IDX801"></A> This handle is of course used in the <CODE>catgets</CODE> function which can be used like this: @@ -121,6 +129,7 @@ should better be <CODE>const char *</CODE>, but the standard is published in </P> <P> +<A NAME="IDX802"></A> The last of these function functions is used and behaves as expected: </P> @@ -135,11 +144,14 @@ After this no <CODE>catgets</CODE> call using the descriptor is legal anymore. </P> -<H3><A NAME="SEC141" HREF="gettext_toc.html#TOC141">10.1.2 Problems with the <CODE>catgets</CODE> Interface?!</A></H3> +<H3><A NAME="SEC143" HREF="gettext_toc.html#TOC143">10.1.2 Problems with the <CODE>catgets</CODE> Interface?!</A></H3> +<P> +<A NAME="IDX803"></A> +</P> <P> Now that this description seemed to be really easy -- where are the -problem we speak of? In fact the interface could be used in a +problems we speak of? In fact the interface could be used in a reasonable way, but constructing the message catalogs is a pain. The reason for this lies in the third argument of <CODE>catgets</CODE>: the unique message ID. This has to be a numeric value for all messages in a single @@ -153,8 +165,11 @@ more easy to manage. </P> -<H2><A NAME="SEC142" HREF="gettext_toc.html#TOC142">10.2 About <CODE>gettext</CODE></A></H2> +<H2><A NAME="SEC144" HREF="gettext_toc.html#TOC144">10.2 About <CODE>gettext</CODE></A></H2> +<P> +<A NAME="IDX804"></A> +</P> <P> The definition of the <CODE>gettext</CODE> interface comes from a Uniforum proposal and it is followed by at least one major Unix vendor @@ -167,7 +182,7 @@ The main points about this solution is that it does not follow the method of normal file handling (open-use-close) and that it does not burden the programmer so many task, especially the unique key handling. Of course here also a unique key is needed, but this key is the message -itself (how long or short it is). See section <A HREF="gettext_10.html#SEC150">10.3 Comparing the Two Interfaces</A> for a more +itself (how long or short it is). See section <A HREF="gettext_10.html#SEC152">10.3 Comparing the Two Interfaces</A> for a more detailed comparison of the two methods. </P> @@ -181,8 +196,11 @@ in using this library will be interested in this description. -<H3><A NAME="SEC143" HREF="gettext_toc.html#TOC143">10.2.1 The Interface</A></H3> +<H3><A NAME="SEC145" HREF="gettext_toc.html#TOC145">10.2.1 The Interface</A></H3> +<P> +<A NAME="IDX805"></A> +</P> <P> The minimal functionality an interface must have is a) to select a domain the strings are coming from (a single domain for all programs is @@ -249,8 +267,13 @@ your language. </P> -<H3><A NAME="SEC144" HREF="gettext_toc.html#TOC144">10.2.2 Solving Ambiguities</A></H3> +<H3><A NAME="SEC146" HREF="gettext_toc.html#TOC146">10.2.2 Solving Ambiguities</A></H3> +<P> +<A NAME="IDX806"></A> +<A NAME="IDX807"></A> +<A NAME="IDX808"></A> +</P> <P> While this single name domain works well for most applications there might be the need to get translations from more than one domain. Of @@ -322,8 +345,11 @@ unreliabilities. </P> -<H3><A NAME="SEC145" HREF="gettext_toc.html#TOC145">10.2.3 Locating Message Catalog Files</A></H3> +<H3><A NAME="SEC147" HREF="gettext_toc.html#TOC147">10.2.3 Locating Message Catalog Files</A></H3> +<P> +<A NAME="IDX809"></A> +</P> <P> Because many different languages for many different packages have to be stored we need some way to add these information to file message catalog @@ -359,8 +385,12 @@ The value of the locale is determined through </P> -<H3><A NAME="SEC146" HREF="gettext_toc.html#TOC146">10.2.4 How to specify the output character set <CODE>gettext</CODE> uses</A></H3> +<H3><A NAME="SEC148" HREF="gettext_toc.html#TOC148">10.2.4 How to specify the output character set <CODE>gettext</CODE> uses</A></H3> +<P> +<A NAME="IDX810"></A> +<A NAME="IDX811"></A> +</P> <P> <CODE>gettext</CODE> not only looks up a translation in a message catalog. It also converts the translation on the fly to the desired output character @@ -390,7 +420,7 @@ recommended that all <VAR>msgid</VAR>s be US-ASCII strings. <P> <DL> <DT><U>Function:</U> char * <B>bind_textdomain_codeset</B> <I>(const char *<VAR>domainname</VAR>, const char *<VAR>codeset</VAR>)</I> -<DD><A NAME="IDX1"></A> +<DD><A NAME="IDX812"></A> The <CODE>bind_textdomain_codeset</CODE> function can be used to specify the output character set for message catalogs for domain <VAR>domainname</VAR>. The <VAR>codeset</VAR> argument must be a valid codeset name which can be used @@ -422,8 +452,11 @@ global variable <VAR>errno</VAR> is set accordingly. </P> -<H3><A NAME="SEC147" HREF="gettext_toc.html#TOC147">10.2.5 Additional functions for plural forms</A></H3> +<H3><A NAME="SEC149" HREF="gettext_toc.html#TOC149">10.2.5 Additional functions for plural forms</A></H3> +<P> +<A NAME="IDX813"></A> +</P> <P> The functions of the <CODE>gettext</CODE> family described so far (and all the <CODE>catgets</CODE> functions as well) have one problem in the real world @@ -493,7 +526,7 @@ language families); <UL> <LI> -The form how plural forms are build differs. This is a problem with +The form how plural forms are built differs. This is a problem with languages which have many irregularities. German, for instance, is a drastic case. Though English and German are part of the same language family (Germanic), the almost regular forming of plural noun forms @@ -541,7 +574,7 @@ purpose. <P> <DL> <DT><U>Function:</U> char * <B>ngettext</B> <I>(const char *<VAR>msgid1</VAR>, const char *<VAR>msgid2</VAR>, unsigned long int <VAR>n</VAR>)</I> -<DD><A NAME="IDX2"></A> +<DD><A NAME="IDX814"></A> The <CODE>ngettext</CODE> function is similar to the <CODE>gettext</CODE> function as it finds the message catalogs in the same way. But it takes two extra arguments. The <VAR>msgid1</VAR> parameter must contain the singular @@ -571,7 +604,7 @@ Please note that the numeric value <VAR>n</VAR> has to be passed to the <P> <DL> <DT><U>Function:</U> char * <B>dngettext</B> <I>(const char *<VAR>domain</VAR>, const char *<VAR>msgid1</VAR>, const char *<VAR>msgid2</VAR>, unsigned long int <VAR>n</VAR>)</I> -<DD><A NAME="IDX3"></A> +<DD><A NAME="IDX815"></A> The <CODE>dngettext</CODE> is similar to the <CODE>dgettext</CODE> function in the way the message catalog is selected. The difference is that it takes two extra parameter to provide the correct plural form. These two @@ -582,7 +615,7 @@ parameters are handled in the same way <CODE>ngettext</CODE> handles them. <P> <DL> <DT><U>Function:</U> char * <B>dcngettext</B> <I>(const char *<VAR>domain</VAR>, const char *<VAR>msgid1</VAR>, const char *<VAR>msgid2</VAR>, unsigned long int <VAR>n</VAR>, int <VAR>category</VAR>)</I> -<DD><A NAME="IDX4"></A> +<DD><A NAME="IDX816"></A> The <CODE>dcngettext</CODE> is similar to the <CODE>dcgettext</CODE> function in the way the message catalog is selected. The difference is that it takes two extra parameter to provide the correct plural form. These two @@ -607,6 +640,9 @@ possibility of extensions to not prevent the use of new languages). </P> <P> +<A NAME="IDX817"></A> +<A NAME="IDX818"></A> +<A NAME="IDX819"></A> The information about the plural form selection has to be stored in the header entry of the PO file (the one with the empty <CODE>msgid</CODE> string). The plural form information looks like this: @@ -632,6 +668,7 @@ value of <CODE>nplurals</CODE>. </P> <P> +<A NAME="IDX820"></A> The following rules are known at this point. The language with families are listed. But this does not necessarily mean the information can be generalized for the whole family (as can be easily seen in the table @@ -839,8 +876,13 @@ Slovenian -<H3><A NAME="SEC148" HREF="gettext_toc.html#TOC148">10.2.6 How to use <CODE>gettext</CODE> in GUI programs</A></H3> +<H3><A NAME="SEC150" HREF="gettext_toc.html#TOC150">10.2.6 How to use <CODE>gettext</CODE> in GUI programs</A></H3> +<P> +<A NAME="IDX821"></A> +<A NAME="IDX822"></A> +<A NAME="IDX823"></A> +</P> <P> One place where the <CODE>gettext</CODE> functions, if used normally, have big problems is within programs with graphical user interfaces (GUIs). The @@ -915,7 +957,7 @@ fine: </P> <P> -<A NAME="IDX5"></A> +<A NAME="IDX824"></A> <PRE> char * @@ -990,8 +1032,11 @@ quite some memory and disk space by doing this. </P> -<H3><A NAME="SEC149" HREF="gettext_toc.html#TOC149">10.2.7 Optimization of the *gettext functions</A></H3> +<H3><A NAME="SEC151" HREF="gettext_toc.html#TOC151">10.2.7 Optimization of the *gettext functions</A></H3> +<P> +<A NAME="IDX825"></A> +</P> <P> At this point of the discussion we should talk about an advantage of the GNU <CODE>gettext</CODE> implementation. Some readers might have pointed out @@ -1042,7 +1087,12 @@ find the result through a single cache lookup. </P> -<H2><A NAME="SEC150" HREF="gettext_toc.html#TOC150">10.3 Comparing the Two Interfaces</A></H2> +<H2><A NAME="SEC152" HREF="gettext_toc.html#TOC152">10.3 Comparing the Two Interfaces</A></H2> +<P> +<A NAME="IDX826"></A> +<A NAME="IDX827"></A> + +</P> <P> The following discussion is perhaps a little bit colored. As said @@ -1089,6 +1139,8 @@ the definition by </P> +<P> +<A NAME="IDX828"></A> <PRE> #include <libintl.h> @@ -1103,6 +1155,7 @@ can use any that becomes available. </P> <P> +<A NAME="IDX829"></A> The same procedure can be done for the <CODE>gettext_noop</CODE> invocations (see section <A HREF="gettext_3.html#SEC18">3.5 Special Cases of Translatable Strings</A>). One usually defines <CODE>gettext_noop</CODE> as a no-op macro. So you should consider the following code for your project: @@ -1181,12 +1234,12 @@ little bit. But it is not impossible to overcome. <P> <CODE>catgets</CODE> allows same original entry to have different translations, but <CODE>gettext</CODE> has another, scalable approach for solving ambiguities -of this kind: See section <A HREF="gettext_10.html#SEC144">10.2.2 Solving Ambiguities</A>. +of this kind: See section <A HREF="gettext_10.html#SEC146">10.2.2 Solving Ambiguities</A>. </P> -<H2><A NAME="SEC151" HREF="gettext_toc.html#TOC151">10.4 Using libintl.a in own programs</A></H2> +<H2><A NAME="SEC153" HREF="gettext_toc.html#TOC153">10.4 Using libintl.a in own programs</A></H2> <P> Starting with version 0.9.4 the library <CODE>libintl.h</CODE> should be @@ -1197,7 +1250,7 @@ and the library in directories selected using the <CODE>$(prefix)</CODE>. </P> -<H2><A NAME="SEC152" HREF="gettext_toc.html#TOC152">10.5 Being a <CODE>gettext</CODE> grok</A></H2> +<H2><A NAME="SEC154" HREF="gettext_toc.html#TOC154">10.5 Being a <CODE>gettext</CODE> grok</A></H2> <P> To fully exploit the functionality of the GNU <CODE>gettext</CODE> library it @@ -1210,6 +1263,8 @@ is a list comments: <UL> <LI>Changing the language at runtime +<A NAME="IDX830"></A> + For interactive programs it might be useful to offer a selection of the used language at runtime. To understand how to do this one need to know how the used language is determined while executing the <CODE>gettext</CODE> @@ -1225,10 +1280,20 @@ priority: <OL> <LI><CODE>LANGUAGE</CODE> +<A NAME="IDX831"></A> + +<A NAME="IDX832"></A> <LI><CODE>LC_ALL</CODE> +<A NAME="IDX833"></A> +<A NAME="IDX834"></A> +<A NAME="IDX835"></A> +<A NAME="IDX836"></A> +<A NAME="IDX837"></A> +<A NAME="IDX838"></A> <LI><CODE>LC_xxx</CODE>, according to selected locale +<A NAME="IDX839"></A> <LI><CODE>LANG</CODE> </OL> @@ -1246,7 +1311,7 @@ But there is one little hook. The code for gcc-2.7.0 and up provides some optimization. This optimization normally prevents the calling of the <CODE>dcgettext</CODE> function as long as no new catalog is loaded. But if <CODE>dcgettext</CODE> is not called the program also cannot find the -<CODE>LANGUAGE</CODE> variable be changed (see section <A HREF="gettext_10.html#SEC149">10.2.7 Optimization of the *gettext functions</A>). A +<CODE>LANGUAGE</CODE> variable be changed (see section <A HREF="gettext_10.html#SEC151">10.2.7 Optimization of the *gettext functions</A>). A solution for this is very easy. Include the following code in the language switching function. @@ -1262,21 +1327,21 @@ language switching function. } </PRE> +<A NAME="IDX840"></A> The variable <CODE>_nl_msg_cat_cntr</CODE> is defined in <TT>`loadmsgcat.c´</TT>. -The programmer will find himself in need for a construct like this only -when developing programs which do run longer and provide the user to -select the language at runtime. Non-interactive programs (like all -these little Unix tools) should never need this. +You don't need to know what this is for. But it can be used to detect +whether a <CODE>gettext</CODE> implementation is GNU gettext and not non-GNU +system's native gettext implementation. </UL> -<H2><A NAME="SEC153" HREF="gettext_toc.html#TOC153">10.6 Temporary Notes for the Programmers Chapter</A></H2> +<H2><A NAME="SEC155" HREF="gettext_toc.html#TOC155">10.6 Temporary Notes for the Programmers Chapter</A></H2> -<H3><A NAME="SEC154" HREF="gettext_toc.html#TOC154">10.6.1 Temporary - Two Possible Implementations</A></H3> +<H3><A NAME="SEC156" HREF="gettext_toc.html#TOC156">10.6.1 Temporary - Two Possible Implementations</A></H3> <P> There are two competing methods for language independent messages: @@ -1308,7 +1373,7 @@ see the Programming for Internationalization FAQ. </P> -<H3><A NAME="SEC155" HREF="gettext_toc.html#TOC155">10.6.2 Temporary - About <CODE>catgets</CODE></A></H3> +<H3><A NAME="SEC157" HREF="gettext_toc.html#TOC157">10.6.2 Temporary - About <CODE>catgets</CODE></A></H3> <P> There have been a few discussions of late on the use of @@ -1353,7 +1418,7 @@ of all Unix systems. </P> -<H3><A NAME="SEC156" HREF="gettext_toc.html#TOC156">10.6.3 Temporary - Why a single implementation</A></H3> +<H3><A NAME="SEC158" HREF="gettext_toc.html#TOC158">10.6.3 Temporary - Why a single implementation</A></H3> <P> Now it seems kind of wasteful to me to have two different systems @@ -1398,7 +1463,7 @@ the future. </P> -<H3><A NAME="SEC157" HREF="gettext_toc.html#TOC157">10.6.4 Temporary - Notes</A></H3> +<H3><A NAME="SEC159" HREF="gettext_toc.html#TOC159">10.6.4 Temporary - Notes</A></H3> <P> X/Open agreed very late on the standard form so that many @@ -1413,6 +1478,6 @@ Solaris is not the only system having <CODE>gettext</CODE>. </P> <P><HR><P> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_9.html">previous</A>, <A HREF="gettext_11.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_9.html">previous</A>, <A HREF="gettext_11.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. </BODY> </HTML> diff --git a/doc/gettext_11.html b/doc/gettext_11.html index e709244..eec39cd 100644 --- a/doc/gettext_11.html +++ b/doc/gettext_11.html @@ -1,20 +1,20 @@ <HTML> <HEAD> <!-- This HTML file has been created by texi2html 1.52a - from gettext.texi on 31 January 2002 --> + from gettext.texi on 7 March 2002 --> <TITLE>GNU gettext utilities - 11 The Translator's View</TITLE> </HEAD> <BODY> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_10.html">previous</A>, <A HREF="gettext_12.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_10.html">previous</A>, <A HREF="gettext_12.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. <P><HR><P> -<H1><A NAME="SEC158" HREF="gettext_toc.html#TOC158">11 The Translator's View</A></H1> +<H1><A NAME="SEC160" HREF="gettext_toc.html#TOC160">11 The Translator's View</A></H1> -<H2><A NAME="SEC159" HREF="gettext_toc.html#TOC159">11.1 Introduction 0</A></H2> +<H2><A NAME="SEC161" HREF="gettext_toc.html#TOC161">11.1 Introduction 0</A></H2> <P> Free software is going international! The Translation Project is a way @@ -92,7 +92,7 @@ you can work on. </P> -<H2><A NAME="SEC160" HREF="gettext_toc.html#TOC160">11.2 Introduction 1</A></H2> +<H2><A NAME="SEC162" HREF="gettext_toc.html#TOC162">11.2 Introduction 1</A></H2> <P> This is now official, GNU is going international! Here is the @@ -142,7 +142,7 @@ document, please e-mail to <TT>`translation@iro.umontreal.ca´</TT>. </P> -<H2><A NAME="SEC161" HREF="gettext_toc.html#TOC161">11.3 Discussions</A></H2> +<H2><A NAME="SEC163" HREF="gettext_toc.html#TOC163">11.3 Discussions</A></H2> <P> Facing this internationalization effort, a few users expressed their @@ -219,7 +219,7 @@ software. -<H2><A NAME="SEC162" HREF="gettext_toc.html#TOC162">11.4 Organization</A></H2> +<H2><A NAME="SEC164" HREF="gettext_toc.html#TOC164">11.4 Organization</A></H2> <P> On a larger scale, the true solution would be to organize some kind of @@ -263,7 +263,7 @@ reaches the Translation Project coordinator. -<H3><A NAME="SEC163" HREF="gettext_toc.html#TOC163">11.4.1 Central Coordination</A></H3> +<H3><A NAME="SEC165" HREF="gettext_toc.html#TOC165">11.4.1 Central Coordination</A></H3> <P> I also think GNU will need sooner than it thinks, that someone setup @@ -288,7 +288,7 @@ overwhelming task, the time to put delegations in place. </P> -<H3><A NAME="SEC164" HREF="gettext_toc.html#TOC164">11.4.2 National Teams</A></H3> +<H3><A NAME="SEC166" HREF="gettext_toc.html#TOC166">11.4.2 National Teams</A></H3> <P> I suggest we look for volunteer coordinators/editors for individual @@ -351,7 +351,7 @@ consistent. -<H4><A NAME="SEC165" HREF="gettext_toc.html#TOC165">11.4.2.1 Sub-Cultures</A></H4> +<H4><A NAME="SEC167" HREF="gettext_toc.html#TOC167">11.4.2.1 Sub-Cultures</A></H4> <P> Taking French for example, there are a few sub-cultures around computers @@ -373,7 +373,7 @@ means soon! </P> -<H4><A NAME="SEC166" HREF="gettext_toc.html#TOC166">11.4.2.2 Organizational Ideas</A></H4> +<H4><A NAME="SEC168" HREF="gettext_toc.html#TOC168">11.4.2.2 Organizational Ideas</A></H4> <P> I expect the next big changes after the official release. Please note @@ -410,7 +410,7 @@ this also seems to work). -<H3><A NAME="SEC167" HREF="gettext_toc.html#TOC167">11.4.3 Mailing Lists</A></H3> +<H3><A NAME="SEC169" HREF="gettext_toc.html#TOC169">11.4.3 Mailing Lists</A></H3> <P> If we get any inquiries about GNU <CODE>gettext</CODE>, send them on to: @@ -464,7 +464,7 @@ subscribe as they see fit, as long as each team is represented in it. </P> -<H2><A NAME="SEC168" HREF="gettext_toc.html#TOC168">11.5 Information Flow</A></H2> +<H2><A NAME="SEC170" HREF="gettext_toc.html#TOC170">11.5 Information Flow</A></H2> <P> There will surely be some discussion about this messages after the @@ -512,6 +512,6 @@ have more information about this. </P> <P><HR><P> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_10.html">previous</A>, <A HREF="gettext_12.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_10.html">previous</A>, <A HREF="gettext_12.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. </BODY> </HTML> diff --git a/doc/gettext_12.html b/doc/gettext_12.html index e90d4cd..d05ce12 100644 --- a/doc/gettext_12.html +++ b/doc/gettext_12.html @@ -1,21 +1,24 @@ <HTML> <HEAD> <!-- This HTML file has been created by texi2html 1.52a - from gettext.texi on 31 January 2002 --> + from gettext.texi on 7 March 2002 --> <TITLE>GNU gettext utilities - 12 The Maintainer's View</TITLE> </HEAD> <BODY> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_11.html">previous</A>, <A HREF="gettext_13.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_11.html">previous</A>, <A HREF="gettext_13.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. <P><HR><P> -<H1><A NAME="SEC169" HREF="gettext_toc.html#TOC169">12 The Maintainer's View</A></H1> +<H1><A NAME="SEC171" HREF="gettext_toc.html#TOC171">12 The Maintainer's View</A></H1> +<P> +<A NAME="IDX841"></A> +</P> <P> The maintainer of a package has many responsibilities. One of them is ensuring that the package will install easily on many platforms, -and that the magic we described earlier (see section <A HREF="gettext_9.html#SEC134">9 The User's View</A>) will work +and that the magic we described earlier (see section <A HREF="gettext_9.html#SEC136">9 The User's View</A>) will work for installers and end users. </P> @@ -49,7 +52,7 @@ for changes. -<H2><A NAME="SEC170" HREF="gettext_toc.html#TOC170">12.1 Flat or Non-Flat Directory Structures</A></H2> +<H2><A NAME="SEC172" HREF="gettext_toc.html#TOC172">12.1 Flat or Non-Flat Directory Structures</A></H2> <P> Some free software packages are distributed as <CODE>tar</CODE> files which unpack @@ -82,8 +85,13 @@ use this as an opportunity to unflatten their package structure. </P> -<H2><A NAME="SEC171" HREF="gettext_toc.html#TOC171">12.2 Prerequisite Works</A></H2> +<H2><A NAME="SEC173" HREF="gettext_toc.html#TOC173">12.2 Prerequisite Works</A></H2> +<P> +<A NAME="IDX842"></A> +<A NAME="IDX843"></A> +<A NAME="IDX844"></A> +</P> <P> There are some works which are required for using GNU <CODE>gettext</CODE> in one of your package. These works have some kind of generality @@ -99,7 +107,7 @@ Before attempting to use <CODE>gettextize</CODE> you should install some other packages first. Ensure that recent versions of GNU <CODE>m4</CODE>, GNU Autoconf and GNU <CODE>gettext</CODE> are already installed at your site, and if not, proceed -to do this first. If you got to install these things, beware that +to do this first. If you get to install these things, beware that GNU <CODE>m4</CODE> must be fully installed before GNU Autoconf is even <EM>configured</EM>. @@ -109,7 +117,7 @@ tool and the <TT>`Makefile´</TT>s in the <TT>`intl/´</TT> and <TT>`p therefore know about all the goals necessary for using <CODE>automake</CODE> and <TT>`libintl´</TT> in one project. -Those four packages are only needed to you, as a maintainer; the +Those four packages are only needed by you, as a maintainer; the installers of your own package and end users do not really need any of GNU <CODE>m4</CODE>, GNU Autoconf, GNU <CODE>gettext</CODE>, or GNU <CODE>automake</CODE> for successfully installing and running your package, with messages @@ -146,7 +154,7 @@ translator teams get interested in your package, and submit PO files. <P> It is worth adding here a few words about how the maintainer should ideally behave with PO files submissions. As a maintainer, your role is -to authentify the origin of the submission as being the representative +to authenticate the origin of the submission as being the representative of the appropriate translating teams of the Translation Project (forward the submission to <TT>`translation@iro.umontreal.ca´</TT> in case of doubt), to ensure that the PO file format is not severely broken and does not @@ -178,7 +186,7 @@ never try to <EM>solve</EM> a team's problem on your own. </P> -<H2><A NAME="SEC172" HREF="gettext_toc.html#TOC172">12.3 Invoking the <CODE>gettextize</CODE> Program</A></H2> +<H2><A NAME="SEC174" HREF="gettext_toc.html#TOC174">12.3 Invoking the <CODE>gettextize</CODE> Program</A></H2> <P> Some files are consistently and identically needed in every package @@ -187,6 +195,9 @@ convenience, the <CODE>gettextize</CODE> program puts all these files right in your package. This program has the following synopsis: </P> +<P> +<A NAME="IDX845"></A> +<A NAME="IDX846"></A> <PRE> gettextize [ <VAR>option</VAR>... ] [ <VAR>directory</VAR> ] @@ -202,6 +213,8 @@ and accepts the following options: <DD> <DT><SAMP>`--copy´</SAMP> <DD> +<A NAME="IDX847"></A> +<A NAME="IDX848"></A> Copy the needed files instead of making symbolic links. Using links would allow the package to always use the latest <CODE>gettext</CODE> code available on the system, but it might disturb some mechanism the @@ -212,10 +225,13 @@ maintainer is used to apply to the sources. Because running <DD> <DT><SAMP>`--force´</SAMP> <DD> +<A NAME="IDX849"></A> +<A NAME="IDX850"></A> Force replacement of files which already exist. <DT><SAMP>`--intl´</SAMP> <DD> +<A NAME="IDX851"></A> Install the libintl sources in a subdirectory named <TT>`intl/´</TT>. This libintl will be used to provide internationalization on systems that don't have GNU libintl installed. If this option is omitted, @@ -225,16 +241,19 @@ be enabled on systems lacking GNU gettext. <DT><SAMP>`--no-changelog´</SAMP> <DD> +<A NAME="IDX852"></A> Don't update or create ChangeLog files. By default, <CODE>gettextize</CODE> logs all changes (file additions, modifications ans removals) in a file called <SAMP>`ChangeLog´</SAMP> in each affected directory. <DT><SAMP>`--help´</SAMP> <DD> +<A NAME="IDX853"></A> Display this help and exit. <DT><SAMP>`--version´</SAMP> <DD> +<A NAME="IDX854"></A> Output version information and exit. </DL> @@ -277,7 +296,7 @@ the auxiliary files will be overwritten. <LI> -Only of <SAMP>`--intl´</SAMP> has been specified: +Only if <SAMP>`--intl´</SAMP> has been specified: A <TT>`intl/´</TT> directory is created and filled with most of the files originally in the <TT>`intl/´</TT> directory of the GNU <CODE>gettext</CODE> distribution. Also, if option <CODE>--force</CODE> (<CODE>-f</CODE>) is given, @@ -316,8 +335,11 @@ it can be identical in all packages. </P> -<H2><A NAME="SEC173" HREF="gettext_toc.html#TOC173">12.4 Files You Must Create or Alter</A></H2> +<H2><A NAME="SEC175" HREF="gettext_toc.html#TOC175">12.4 Files You Must Create or Alter</A></H2> +<P> +<A NAME="IDX855"></A> +</P> <P> Besides files which are automatically added through <CODE>gettextize</CODE>, there are many files needing revision for properly interacting with @@ -330,7 +352,7 @@ changes needed in each. <P> So, here comes a list of files, each one followed by a description of all alterations it needs. Many examples are taken out from the GNU -<CODE>gettext</CODE> 0.11 distribution itself, or from the GNU +<CODE>gettext</CODE> 0.11.1 distribution itself, or from the GNU <CODE>hello</CODE> distribution (<A HREF="http://www.franken.de/users/gnu/ke/hello">http://www.franken.de/users/gnu/ke/hello</A> or <A HREF="http://www.gnu.franken.de/ke/hello/">http://www.gnu.franken.de/ke/hello/</A>) You may indeed refer to the source code of the GNU <CODE>gettext</CODE> and GNU <CODE>hello</CODE> @@ -341,8 +363,11 @@ gettext functionality. -<H3><A NAME="SEC174" HREF="gettext_toc.html#TOC174">12.4.1 <TT>`POTFILES.in´</TT> in <TT>`po/´</TT></A></H3> +<H3><A NAME="SEC176" HREF="gettext_toc.html#TOC176">12.4.1 <TT>`POTFILES.in´</TT> in <TT>`po/´</TT></A></H3> +<P> +<A NAME="IDX856"></A> +</P> <P> The <TT>`po/´</TT> directory should receive a file named <TT>`POTFILES.in´</TT>. This file tells which files, among all program @@ -376,8 +401,11 @@ of your whole distribution, rather than the location of the </P> -<H3><A NAME="SEC175" HREF="gettext_toc.html#TOC175">12.4.2 <TT>`LINGUAS´</TT> in <TT>`po/´</TT></A></H3> +<H3><A NAME="SEC177" HREF="gettext_toc.html#TOC177">12.4.2 <TT>`LINGUAS´</TT> in <TT>`po/´</TT></A></H3> +<P> +<A NAME="IDX857"></A> +</P> <P> The <TT>`po/´</TT> directory should also receive a file named <TT>`LINGUAS´</TT>. This file contains the list of available translations. @@ -397,13 +425,16 @@ that these languages are currently supported by your package. If you want to further restrict, at installation time, the set of installed languages, this should not be done by modifying the <TT>`LINGUAS´</TT> file, but rather by using the <CODE>LINGUAS</CODE> environment variable -(see section <A HREF="gettext_9.html#SEC136">9.2 Magic for Installers</A>). +(see section <A HREF="gettext_9.html#SEC138">9.2 Magic for Installers</A>). </P> -<H3><A NAME="SEC176" HREF="gettext_toc.html#TOC176">12.4.3 <TT>`Makefile´</TT> pieces in <TT>`po/´</TT></A></H3> +<H3><A NAME="SEC178" HREF="gettext_toc.html#TOC178">12.4.3 <TT>`Makefile´</TT> pieces in <TT>`po/´</TT></A></H3> +<P> +<A NAME="IDX858"></A> +</P> <P> The <TT>`po/´</TT> directory also has a file named <TT>`Makevars´</TT>. It can be left unmodified if your package has a single message domain @@ -421,6 +452,8 @@ needing to mess with <TT>`po/Makefile.in.in´</TT>. </P> <P> +<A NAME="IDX859"></A> +<A NAME="IDX860"></A> GNU gettext comes with a <TT>`Rules-quot´</TT> file, containing rules for building catalogs <TT>`en@quot.po´</TT> and <TT>`en@boldquot.po´</TT>. The effect of <TT>`en@quot.po´</TT> is that people who set their <CODE>LANGUAGE</CODE> @@ -438,7 +471,7 @@ GUI programs. To enable it, similarly add <CODE>en@boldquot</CODE> to the </P> -<H3><A NAME="SEC177" HREF="gettext_toc.html#TOC177">12.4.4 <TT>`configure.in´</TT> at top level</A></H3> +<H3><A NAME="SEC179" HREF="gettext_toc.html#TOC179">12.4.4 <TT>`configure.in´</TT> at top level</A></H3> <P> <TT>`configure.in´</TT> or <TT>`configure.ac´</TT> - this is the source from which @@ -449,22 +482,31 @@ GUI programs. To enable it, similarly add <CODE>en@boldquot</CODE> to the <OL> <LI>Declare the package and version. +<A NAME="IDX861"></A> + This is done by a set of lines like these: <PRE> PACKAGE=gettext -VERSION=0.11 +VERSION=0.11.1 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE") AC_DEFINE_UNQUOTED(VERSION, "$VERSION") AC_SUBST(PACKAGE) AC_SUBST(VERSION) </PRE> +or, if you are using GNU <CODE>automake</CODE>, by a line like this: + + +<PRE> +AM_INIT_AUTOMAKE(gettext, 0.11.1) +</PRE> + Of course, you replace <SAMP>`gettext´</SAMP> with the name of your package, -and <SAMP>`0.11´</SAMP> by its version numbers, exactly as they +and <SAMP>`0.11.1´</SAMP> by its version numbers, exactly as they should appear in the packaged <CODE>tar</CODE> file name of your distribution -(<TT>`gettext-0.11.tar.gz´</TT>, here). +(<TT>`gettext-0.11.1.tar.gz´</TT>, here). <LI>Check for internationalization support. @@ -511,10 +553,10 @@ add <CODE>intl/Makefile</CODE> to the <CODE>AC_OUTPUT</CODE> line. -<H3><A NAME="SEC178" HREF="gettext_toc.html#TOC178">12.4.5 <TT>`config.guess´</TT>, <TT>`config.sub´</TT> at top level</A></H3> +<H3><A NAME="SEC180" HREF="gettext_toc.html#TOC180">12.4.5 <TT>`config.guess´</TT>, <TT>`config.sub´</TT> at top level</A></H3> <P> -If you don't have suppressed the <TT>`intl/´</TT> subdirectory, +If you haven't suppressed the <TT>`intl/´</TT> subdirectory, you need to add the GNU <TT>`config.guess´</TT> and <TT>`config.sub´</TT> files to your distribution. They are needed because the <TT>`intl/´</TT> directory has platform dependent support for determining the locale's character @@ -545,8 +587,11 @@ AC_CONFIG_AUX_DIR([<VAR>subdir</VAR>]) -<H3><A NAME="SEC179" HREF="gettext_toc.html#TOC179">12.4.6 <TT>`aclocal.m4´</TT> at top level</A></H3> +<H3><A NAME="SEC181" HREF="gettext_toc.html#TOC181">12.4.6 <TT>`aclocal.m4´</TT> at top level</A></H3> +<P> +<A NAME="IDX862"></A> +</P> <P> If you do not have an <TT>`aclocal.m4´</TT> file in your distribution, the simplest is to concatenate the files <TT>`codeset.m4´</TT>, @@ -555,6 +600,7 @@ the simplest is to concatenate the files <TT>`codeset.m4´</TT>, <TT>`lib-prefix.m4´</TT>, <TT>`progtest.m4´</TT> from GNU <CODE>gettext</CODE>'s <TT>`m4/´</TT> directory into a single file. If you have suppressed the <TT>`intl/´</TT> directory, only <TT>`gettext.m4´</TT>, <TT>`iconv.m4´</TT>, +<TT>`lib-ld.m4´</TT>, <TT>`lib-link.m4´</TT>, <TT>`lib-prefix.m4´</TT>, <TT>`progtest.m4´</TT> need to be concatenated. </P> @@ -570,6 +616,20 @@ out there. </P> <P> +If you are using GNU <CODE>automake</CODE> 1.5 or newer, it is enough to put +these macro files into a subdirectory named <TT>`m4/´</TT> and add the line + +</P> + +<PRE> +ACLOCAL_AMFLAGS = -I m4 +</PRE> + +<P> +to your top level <TT>`Makefile.am´</TT>. + +</P> +<P> These macros check for the internationalization support functions and related informations. Hopefully, once stabilized, these macros might be integrated in the standard Autoconf set, because this @@ -579,8 +639,11 @@ piece of <CODE>m4</CODE> code will be the same for all projects using GNU </P> -<H3><A NAME="SEC180" HREF="gettext_toc.html#TOC180">12.4.7 <TT>`acconfig.h´</TT> at top level</A></H3> +<H3><A NAME="SEC182" HREF="gettext_toc.html#TOC182">12.4.7 <TT>`acconfig.h´</TT> at top level</A></H3> +<P> +<A NAME="IDX863"></A> +</P> <P> Earlier GNU <CODE>gettext</CODE> releases required to put definitions for <CODE>ENABLE_NLS</CODE>, <CODE>HAVE_GETTEXT</CODE> and <CODE>HAVE_LC_MESSAGES</CODE>, @@ -592,7 +655,7 @@ independently from the <TT>`intl/´</TT> directory. </P> -<H3><A NAME="SEC181" HREF="gettext_toc.html#TOC181">12.4.8 <TT>`Makefile.in´</TT> at top level</A></H3> +<H3><A NAME="SEC183" HREF="gettext_toc.html#TOC183">12.4.8 <TT>`Makefile.in´</TT> at top level</A></H3> <P> Here are a few modifications you need to make to your main, top-level @@ -671,9 +734,15 @@ dist: Makefile </OL> +<P> +Note that if you are using GNU <CODE>automake</CODE>, <TT>`Makefile.in´</TT> is +automatically generated from <TT>`Makefile.am´</TT>, and all needed changes +to <TT>`Makefile.am´</TT> are already made by running <SAMP>`gettextize´</SAMP>. + +</P> -<H3><A NAME="SEC182" HREF="gettext_toc.html#TOC182">12.4.9 <TT>`Makefile.in´</TT> in <TT>`src/´</TT></A></H3> +<H3><A NAME="SEC184" HREF="gettext_toc.html#TOC184">12.4.9 <TT>`Makefile.in´</TT> in <TT>`src/´</TT></A></H3> <P> Some of the modifications made in the main <TT>`Makefile.in´</TT> will @@ -793,8 +862,13 @@ dist: Makefile $(DISTFILES) -<H3><A NAME="SEC183" HREF="gettext_toc.html#TOC183">12.4.10 <TT>`gettext.h´</TT> in <TT>`lib/´</TT></A></H3> +<H3><A NAME="SEC185" HREF="gettext_toc.html#TOC185">12.4.10 <TT>`gettext.h´</TT> in <TT>`lib/´</TT></A></H3> +<P> +<A NAME="IDX864"></A> +<A NAME="IDX865"></A> +<A NAME="IDX866"></A> +</P> <P> Internationalization of packages, as provided by GNU <CODE>gettext</CODE>, is optional. It can be turned off in two situations: @@ -829,6 +903,7 @@ to 0 in C preprocessor expressions. </P> <P> +<A NAME="IDX867"></A> <TT>`gettext.h´</TT> is a convenience header file for conditional use of <TT>`<libintl.h>´</TT>, depending on the <CODE>ENABLE_NLS</CODE> macro. If <CODE>ENABLE_NLS</CODE> is set, it includes <TT>`<libintl.h>´</TT>; otherwise it @@ -867,8 +942,11 @@ package that needs it should contain a copy of it on its own. </P> -<H2><A NAME="SEC184" HREF="gettext_toc.html#TOC184">12.5 Autoconf macros for use in <TT>`configure.in´</TT></A></H2> +<H2><A NAME="SEC186" HREF="gettext_toc.html#TOC186">12.5 Autoconf macros for use in <TT>`configure.in´</TT></A></H2> +<P> +<A NAME="IDX868"></A> +</P> <P> GNU <CODE>gettext</CODE> installs macros for use in a package's <TT>`configure.in´</TT> or <TT>`configure.ac´</TT>. @@ -879,9 +957,10 @@ The primary macro is, of course, <CODE>AM_GNU_GETTEXT</CODE>. -<H3><A NAME="SEC185" HREF="gettext_toc.html#TOC185">12.5.1 AM_GNU_GETTEXT in <TT>`gettext.m4´</TT></A></H3> +<H3><A NAME="SEC187" HREF="gettext_toc.html#TOC187">12.5.1 AM_GNU_GETTEXT in <TT>`gettext.m4´</TT></A></H3> <P> +<A NAME="IDX869"></A> The <CODE>AM_GNU_GETTEXT</CODE> macro tests for the presence of the GNU gettext function family in either the C library or a separate <CODE>libintl</CODE> library (shared or static libraries are both supported) or in the package's @@ -944,6 +1023,7 @@ The complexities that <CODE>AM_GNU_GETTEXT</CODE> deals with are the following: <UL> <LI> +<A NAME="IDX870"></A> Some operating systems have <CODE>gettext</CODE> in the C library, for example glibc. Some have it in a separate library <CODE>libintl</CODE>. GNU <CODE>libintl</CODE> might have been installed as part of the GNU <CODE>gettext</CODE> package. @@ -979,9 +1059,10 @@ and <CODE>LTLIBINTL</CODE> variables. -<H3><A NAME="SEC186" HREF="gettext_toc.html#TOC186">12.5.2 AM_ICONV in <TT>`iconv.m4´</TT></A></H3> +<H3><A NAME="SEC188" HREF="gettext_toc.html#TOC188">12.5.2 AM_ICONV in <TT>`iconv.m4´</TT></A></H3> <P> +<A NAME="IDX871"></A> The <CODE>AM_ICONV</CODE> macro tests for the presence of the POSIX <CODE>iconv</CODE> function family in either the C library or a separate <CODE>libiconv</CODE> library. If found, it sets the <CODE>am_cv_func_iconv</CODE> @@ -1005,6 +1086,7 @@ The complexities that <CODE>AM_ICONV</CODE> deals with are the following: <UL> <LI> +<A NAME="IDX872"></A> Some operating systems have <CODE>iconv</CODE> in the C library, for example glibc. Some have it in a separate library <CODE>libiconv</CODE>, for example OSF/1 or FreeBSD. Regardless of the operating system, GNU <CODE>libiconv</CODE> @@ -1040,6 +1122,6 @@ library support, like SCO. </P> <P><HR><P> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_11.html">previous</A>, <A HREF="gettext_13.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_11.html">previous</A>, <A HREF="gettext_13.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. </BODY> </HTML> diff --git a/doc/gettext_13.html b/doc/gettext_13.html index 43ab331..5d09046 100644 --- a/doc/gettext_13.html +++ b/doc/gettext_13.html @@ -1,16 +1,16 @@ <HTML> <HEAD> <!-- This HTML file has been created by texi2html 1.52a - from gettext.texi on 31 January 2002 --> + from gettext.texi on 7 March 2002 --> <TITLE>GNU gettext utilities - 13 Other Programming Languages</TITLE> </HEAD> <BODY> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_12.html">previous</A>, <A HREF="gettext_14.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_12.html">previous</A>, <A HREF="gettext_14.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. <P><HR><P> -<H1><A NAME="SEC187" HREF="gettext_toc.html#TOC187">13 Other Programming Languages</A></H1> +<H1><A NAME="SEC189" HREF="gettext_toc.html#TOC189">13 Other Programming Languages</A></H1> <P> While the presentation of <CODE>gettext</CODE> focuses mostly on C and @@ -23,8 +23,12 @@ approach. -<H2><A NAME="SEC188" HREF="gettext_toc.html#TOC188">13.1 The Language Implementor's View</A></H2> +<H2><A NAME="SEC190" HREF="gettext_toc.html#TOC190">13.1 The Language Implementor's View</A></H2> +<P> +<A NAME="IDX873"></A> +<A NAME="IDX874"></A> +</P> <P> All programming and scripting languages that have the notion of strings are eligible to supporting <CODE>gettext</CODE>. Supporting <CODE>gettext</CODE> @@ -120,7 +124,7 @@ different effects on portability and copyright: <LI> You may integrate the GNU <CODE>gettext</CODE>'s <TT>`intl/´</TT> directory in -your package, as described in section <A HREF="gettext_12.html#SEC169">12 The Maintainer's View</A>. This allows you to +your package, as described in section <A HREF="gettext_12.html#SEC171">12 The Maintainer's View</A>. This allows you to have internationalization on all kinds of platforms. Note that when you then distribute your package, it legally falls under the GNU General Public License, and the GNU project will be glad about your contribution @@ -146,7 +150,7 @@ and plural handling). -<H2><A NAME="SEC189" HREF="gettext_toc.html#TOC189">13.2 The Programmer's View</A></H2> +<H2><A NAME="SEC191" HREF="gettext_toc.html#TOC191">13.2 The Programmer's View</A></H2> <P> For the programmer, the general procedure is the same as for the C @@ -159,7 +163,7 @@ underlying language runtime. </P> -<H2><A NAME="SEC190" HREF="gettext_toc.html#TOC190">13.3 The Translator's View</A></H2> +<H2><A NAME="SEC192" HREF="gettext_toc.html#TOC192">13.3 The Translator's View</A></H2> <P> The translator works exactly as in the C language case. The only @@ -170,7 +174,7 @@ strings. </P> -<H2><A NAME="SEC191" HREF="gettext_toc.html#TOC191">13.4 The Maintainer's View</A></H2> +<H2><A NAME="SEC193" HREF="gettext_toc.html#TOC193">13.4 The Maintainer's View</A></H2> <P> For the maintainer, the general procedure differs from the C language @@ -190,7 +194,7 @@ invokes the <CODE>AM_GNU_GETTEXT</CODE> autoconf macro via <LI> If only a single programming language is used, the <CODE>XGETTEXT_OPTIONS</CODE> -variable in <TT>`po/Makevars´</TT> (see section <A HREF="gettext_12.html#SEC176">12.4.3 <TT>`Makefile´</TT> pieces in <TT>`po/´</TT></A>) should be adjusted to +variable in <TT>`po/Makevars´</TT> (see section <A HREF="gettext_12.html#SEC178">12.4.3 <TT>`Makefile´</TT> pieces in <TT>`po/´</TT></A>) should be adjusted to match the <CODE>xgettext</CODE> options for that particular programming language. If the package uses more than one programming language with <CODE>gettext</CODE> support, it becomes necessary to change the POT file construction rule @@ -201,12 +205,15 @@ that language, and to combine the resulting files using <CODE>msgcat</CODE>. -<H2><A NAME="SEC192" HREF="gettext_toc.html#TOC192">13.5 Individual Programming Languages</A></H2> +<H2><A NAME="SEC194" HREF="gettext_toc.html#TOC194">13.5 Individual Programming Languages</A></H2> -<H3><A NAME="SEC193" HREF="gettext_toc.html#TOC193">13.5.1 C, C++, Objective C</A></H3> +<H3><A NAME="SEC195" HREF="gettext_toc.html#TOC195">13.5.1 C, C++, Objective C</A></H3> +<P> +<A NAME="IDX875"></A> +</P> <DL COMPACT> <DT>RPMs @@ -273,8 +280,11 @@ yes -<H3><A NAME="SEC194" HREF="gettext_toc.html#TOC194">13.5.2 sh - Shell Script</A></H3> +<H3><A NAME="SEC196" HREF="gettext_toc.html#TOC196">13.5.2 sh - Shell Script</A></H3> +<P> +<A NAME="IDX876"></A> +</P> <DL COMPACT> <DT>RPMs @@ -295,14 +305,18 @@ bash, gettext <DT>gettext/ngettext functions <DD> +<A NAME="IDX877"></A> +<A NAME="IDX878"></A> <CODE>gettext</CODE>, <CODE>ngettext</CODE> programs <DT>textdomain <DD> +<A NAME="IDX879"></A> environment variable <CODE>TEXTDOMAIN</CODE> <DT>bindtextdomain <DD> +<A NAME="IDX880"></A> environment variable <CODE>TEXTDOMAINDIR</CODE> <DT>setlocale @@ -336,8 +350,11 @@ use -<H3><A NAME="SEC195" HREF="gettext_toc.html#TOC195">13.5.3 bash - Bourne-Again Shell Script</A></H3> +<H3><A NAME="SEC197" HREF="gettext_toc.html#TOC197">13.5.3 bash - Bourne-Again Shell Script</A></H3> +<P> +<A NAME="IDX881"></A> +</P> <DL COMPACT> <DT>RPMs @@ -358,14 +375,18 @@ bash 2.0 or newer, gettext <DT>gettext/ngettext functions <DD> +<A NAME="IDX882"></A> +<A NAME="IDX883"></A> <CODE>gettext</CODE>, <CODE>ngettext</CODE> programs <DT>textdomain <DD> +<A NAME="IDX884"></A> environment variable <CODE>TEXTDOMAIN</CODE> <DT>bindtextdomain <DD> +<A NAME="IDX885"></A> environment variable <CODE>TEXTDOMAINDIR</CODE> <DT>setlocale @@ -399,8 +420,11 @@ use -<H3><A NAME="SEC196" HREF="gettext_toc.html#TOC196">13.5.4 Python</A></H3> +<H3><A NAME="SEC198" HREF="gettext_toc.html#TOC198">13.5.4 Python</A></H3> +<P> +<A NAME="IDX886"></A> +</P> <DL COMPACT> <DT>RPMs @@ -450,7 +474,7 @@ emulate. Bug: uses only the first found .mo file, not all of them <DT>Extractor <DD> -pygettext.py +<CODE>xgettext</CODE> <DT>Formatting with positions <DD> @@ -467,8 +491,13 @@ fully portable -<H3><A NAME="SEC197" HREF="gettext_toc.html#TOC197">13.5.5 GNU clisp - Common Lisp</A></H3> +<H3><A NAME="SEC199" HREF="gettext_toc.html#TOC199">13.5.5 GNU clisp - Common Lisp</A></H3> +<P> +<A NAME="IDX887"></A> +<A NAME="IDX888"></A> +<A NAME="IDX889"></A> +</P> <DL COMPACT> <DT>RPMs @@ -530,8 +559,11 @@ On platforms without gettext, no translation. -<H3><A NAME="SEC198" HREF="gettext_toc.html#TOC198">13.5.6 GNU clisp C sources</A></H3> +<H3><A NAME="SEC200" HREF="gettext_toc.html#TOC200">13.5.6 GNU clisp C sources</A></H3> +<P> +<A NAME="IDX890"></A> +</P> <DL COMPACT> <DT>RPMs @@ -595,8 +627,11 @@ On platforms without gettext, no translation. -<H3><A NAME="SEC199" HREF="gettext_toc.html#TOC199">13.5.7 Emacs Lisp</A></H3> +<H3><A NAME="SEC201" HREF="gettext_toc.html#TOC201">13.5.7 Emacs Lisp</A></H3> +<P> +<A NAME="IDX891"></A> +</P> <DL COMPACT> <DT>RPMs @@ -658,8 +693,11 @@ Only XEmacs. Without <CODE>I18N3</CODE> defined at build time, no translation. -<H3><A NAME="SEC200" HREF="gettext_toc.html#TOC200">13.5.8 librep</A></H3> +<H3><A NAME="SEC202" HREF="gettext_toc.html#TOC202">13.5.8 librep</A></H3> +<P> +<A NAME="IDX892"></A> +</P> <DL COMPACT> <DT>RPMs @@ -721,8 +759,11 @@ On platforms without gettext, no translation. -<H3><A NAME="SEC201" HREF="gettext_toc.html#TOC201">13.5.9 GNU Smalltalk</A></H3> +<H3><A NAME="SEC203" HREF="gettext_toc.html#TOC203">13.5.9 GNU Smalltalk</A></H3> +<P> +<A NAME="IDX893"></A> +</P> <DL COMPACT> <DT>RPMs @@ -790,8 +831,11 @@ fully portable -<H3><A NAME="SEC202" HREF="gettext_toc.html#TOC202">13.5.10 Java</A></H3> +<H3><A NAME="SEC204" HREF="gettext_toc.html#TOC204">13.5.10 Java</A></H3> +<P> +<A NAME="IDX894"></A> +</P> <DL COMPACT> <DT>RPMs @@ -903,14 +947,19 @@ a translation is missing, the <VAR>msgid</VAR> argument is returned unchanged. This has the advantage of having the <CODE>ngettext</CODE> function for plural handling. +<A NAME="IDX895"></A> To use this API, one needs the <CODE>libintl.jar</CODE> file which is part of the GNU gettext package and distributed under the LGPL. </OL> -<H3><A NAME="SEC203" HREF="gettext_toc.html#TOC203">13.5.11 GNU awk</A></H3> +<H3><A NAME="SEC205" HREF="gettext_toc.html#TOC205">13.5.11 GNU awk</A></H3> +<P> +<A NAME="IDX896"></A> +<A NAME="IDX897"></A> +</P> <DL COMPACT> <DT>RPMs @@ -931,7 +980,7 @@ gawk 3.1 or newer <DT>gettext/ngettext functions <DD> -<CODE>dcgettext</CODE> +<CODE>dcgettext</CODE>, missing <CODE>dcngettext</CODE> in gawk-3.1.0 <DT>textdomain <DD> @@ -955,7 +1004,7 @@ use <DT>Extractor <DD> -<CODE>gawk --gen-po</CODE> +<CODE>xgettext</CODE> <DT>Formatting with positions <DD> @@ -964,7 +1013,8 @@ use <DT>Portability <DD> On platforms without gettext, no translation. On non-GNU awks, you must -define <CODE>dcgettext</CODE> and <CODE>bindtextdomain</CODE> yourself. +define <CODE>dcgettext</CODE>, <CODE>dcngettext</CODE> and <CODE>bindtextdomain</CODE> +yourself. <DT>po-mode marking <DD> @@ -973,8 +1023,13 @@ define <CODE>dcgettext</CODE> and <CODE>bindtextdomain</CODE> yourself. -<H3><A NAME="SEC204" HREF="gettext_toc.html#TOC204">13.5.12 Pascal - Free Pascal Compiler</A></H3> +<H3><A NAME="SEC206" HREF="gettext_toc.html#TOC206">13.5.12 Pascal - Free Pascal Compiler</A></H3> +<P> +<A NAME="IDX898"></A> +<A NAME="IDX899"></A> +<A NAME="IDX900"></A> +</P> <DL COMPACT> <DT>RPMs @@ -1044,8 +1099,11 @@ using the <CODE>TranslateResourceStrings</CODE> function in the <CODE>gettext</C </P> -<H3><A NAME="SEC205" HREF="gettext_toc.html#TOC205">13.5.13 wxWindows library</A></H3> +<H3><A NAME="SEC207" HREF="gettext_toc.html#TOC207">13.5.13 wxWindows library</A></H3> +<P> +<A NAME="IDX901"></A> +</P> <DL COMPACT> <DT>RPMs @@ -1107,8 +1165,12 @@ yes -<H3><A NAME="SEC206" HREF="gettext_toc.html#TOC206">13.5.14 YCP - YaST2 scripting language</A></H3> +<H3><A NAME="SEC208" HREF="gettext_toc.html#TOC208">13.5.14 YCP - YaST2 scripting language</A></H3> +<P> +<A NAME="IDX902"></A> +<A NAME="IDX903"></A> +</P> <DL COMPACT> <DT>RPMs @@ -1170,8 +1232,92 @@ fully portable -<H3><A NAME="SEC207" HREF="gettext_toc.html#TOC207">13.5.15 Perl</A></H3> +<H3><A NAME="SEC209" HREF="gettext_toc.html#TOC209">13.5.15 Tcl - Tk's scripting language</A></H3> +<P> +<A NAME="IDX904"></A> +<A NAME="IDX905"></A> + +</P> +<DL COMPACT> + +<DT>RPMs +<DD> +tcl + +<DT>File extension +<DD> +<CODE>tcl</CODE> + +<DT>String syntax +<DD> +<CODE>"abc"</CODE> + +<DT>gettext shorthand +<DD> +<CODE>[_ "abc"]</CODE> + +<DT>gettext/ngettext functions +<DD> +<CODE>::msgcat::mc</CODE> + +<DT>textdomain +<DD> +--- + +<DT>bindtextdomain +<DD> +---, use <CODE>::msgcat::mcload</CODE> instead + +<DT>setlocale +<DD> +automatic, uses LANG, but ignores LC_MESSAGES and LC_ALL + +<DT>Prerequisite +<DD> +<CODE>package require msgcat</CODE> +<BR><CODE>proc _ {s} {return [::msgcat::mc $s]}</CODE> + +<DT>Use or emulate GNU gettext +<DD> +---, uses a Tcl specific message catalog format + +<DT>Extractor +<DD> +<CODE>xgettext -k_</CODE> + +<DT>Formatting with positions +<DD> +<CODE>format "%2\$d %1\$d"</CODE> + +<DT>Portability +<DD> +fully portable + +<DT>po-mode marking +<DD> +--- +</DL> + +<P> +Before marking strings as internationalizable, substitutions of variables +into the string need to be converted to <CODE>format</CODE> applications. For +example, <CODE>"file $filename not found"</CODE> becomes +<CODE>[format "file %s not found" $filename]</CODE>. +Only after this is done, can the strings be marked and extracted. +After marking, this example becomes +<CODE>[format [_ "file %s not found"] $filename]</CODE> or +<CODE>[msgcat::mc "file %s not found" $filename]</CODE>. Note that the +<CODE>msgcat::mc</CODE> function implicitly calls <CODE>format</CODE> when more than one +argument is given. + +</P> + +<H3><A NAME="SEC210" HREF="gettext_toc.html#TOC210">13.5.16 Perl</A></H3> +<P> +<A NAME="IDX906"></A> + +</P> <DL COMPACT> <DT>RPMs @@ -1234,8 +1380,11 @@ use -<H3><A NAME="SEC208" HREF="gettext_toc.html#TOC208">13.5.16 PHP Hypertext Preprocessor</A></H3> +<H3><A NAME="SEC211" HREF="gettext_toc.html#TOC211">13.5.17 PHP Hypertext Preprocessor</A></H3> +<P> +<A NAME="IDX907"></A> +</P> <DL COMPACT> <DT>RPMs @@ -1297,8 +1446,11 @@ On platforms without gettext, the functions are not available. -<H3><A NAME="SEC209" HREF="gettext_toc.html#TOC209">13.5.17 Pike</A></H3> +<H3><A NAME="SEC212" HREF="gettext_toc.html#TOC212">13.5.18 Pike</A></H3> +<P> +<A NAME="IDX908"></A> +</P> <DL COMPACT> <DT>RPMs @@ -1360,7 +1512,7 @@ On platforms without gettext, the functions are not available. -<H2><A NAME="SEC210" HREF="gettext_toc.html#TOC210">13.6 Internationalizable Data</A></H2> +<H2><A NAME="SEC213" HREF="gettext_toc.html#TOC213">13.6 Internationalizable Data</A></H2> <P> Here is a list of other data formats which can be internationalized @@ -1370,7 +1522,7 @@ using GNU gettext. -<H3><A NAME="SEC211" HREF="gettext_toc.html#TOC211">13.6.1 POT - Portable Object Template</A></H3> +<H3><A NAME="SEC214" HREF="gettext_toc.html#TOC214">13.6.1 POT - Portable Object Template</A></H3> <DL COMPACT> @@ -1389,8 +1541,11 @@ gettext -<H3><A NAME="SEC212" HREF="gettext_toc.html#TOC212">13.6.2 Resource String Table</A></H3> +<H3><A NAME="SEC215" HREF="gettext_toc.html#TOC215">13.6.2 Resource String Table</A></H3> +<P> +<A NAME="IDX909"></A> +</P> <DL COMPACT> <DT>RPMs @@ -1406,7 +1561,26 @@ fpk <CODE>xgettext</CODE>, <CODE>rstconv</CODE> </DL> + + +<H3><A NAME="SEC216" HREF="gettext_toc.html#TOC216">13.6.3 Glade - GNOME user interface description</A></H3> + +<DL COMPACT> + +<DT>RPMs +<DD> +glade, libglade, xml-i18n-tools + +<DT>File extension +<DD> +<CODE>glade</CODE> + +<DT>Extractor +<DD> +<CODE>xgettext</CODE>, <CODE>libglade-xgettext</CODE> +</DL> + <P><HR><P> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_12.html">previous</A>, <A HREF="gettext_14.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_12.html">previous</A>, <A HREF="gettext_14.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. </BODY> </HTML> diff --git a/doc/gettext_14.html b/doc/gettext_14.html index 2bd6f3b..15fe7aa 100644 --- a/doc/gettext_14.html +++ b/doc/gettext_14.html @@ -1,16 +1,16 @@ <HTML> <HEAD> <!-- This HTML file has been created by texi2html 1.52a - from gettext.texi on 31 January 2002 --> + from gettext.texi on 7 March 2002 --> <TITLE>GNU gettext utilities - 14 Concluding Remarks</TITLE> </HEAD> <BODY> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_13.html">previous</A>, <A HREF="gettext_15.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_13.html">previous</A>, <A HREF="gettext_15.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. <P><HR><P> -<H1><A NAME="SEC213" HREF="gettext_toc.html#TOC213">14 Concluding Remarks</A></H1> +<H1><A NAME="SEC217" HREF="gettext_toc.html#TOC217">14 Concluding Remarks</A></H1> <P> We would like to conclude this GNU <CODE>gettext</CODE> manual by presenting @@ -22,8 +22,11 @@ about Native Language Support matters. -<H2><A NAME="SEC214" HREF="gettext_toc.html#TOC214">14.1 History of GNU <CODE>gettext</CODE></A></H2> +<H2><A NAME="SEC218" HREF="gettext_toc.html#TOC218">14.1 History of GNU <CODE>gettext</CODE></A></H2> +<P> +<A NAME="IDX910"></A> +</P> <P> Internationalization concerns and algorithms have been informally and casually discussed for years in GNU, sometimes around GNU @@ -118,8 +121,12 @@ manipulating PO files. </P> -<H2><A NAME="SEC215" HREF="gettext_toc.html#TOC215">14.2 Related Readings</A></H2> +<H2><A NAME="SEC219" HREF="gettext_toc.html#TOC219">14.2 Related Readings</A></H2> +<P> +<A NAME="IDX911"></A> +<A NAME="IDX912"></A> +</P> <P> Eugene H. Dorr (<TT>`dorre@well.com´</TT>) maintains an interesting bibliography on internationalization matters, called @@ -174,6 +181,6 @@ together with French translations of many Linux-related documents. </P> <P><HR><P> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_13.html">previous</A>, <A HREF="gettext_15.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_13.html">previous</A>, <A HREF="gettext_15.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. </BODY> </HTML> diff --git a/doc/gettext_15.html b/doc/gettext_15.html index 66140b7..c5e280c 100644 --- a/doc/gettext_15.html +++ b/doc/gettext_15.html @@ -1,17 +1,21 @@ <HTML> <HEAD> <!-- This HTML file has been created by texi2html 1.52a - from gettext.texi on 31 January 2002 --> + from gettext.texi on 7 March 2002 --> <TITLE>GNU gettext utilities - A Language Codes</TITLE> </HEAD> <BODY> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_14.html">previous</A>, <A HREF="gettext_16.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_14.html">previous</A>, <A HREF="gettext_16.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. <P><HR><P> -<H1><A NAME="SEC216" HREF="gettext_toc.html#TOC216">A Language Codes</A></H1> +<H1><A NAME="SEC220" HREF="gettext_toc.html#TOC220">A Language Codes</A></H1> +<P> +<A NAME="IDX913"></A> +<A NAME="IDX914"></A> +</P> <P> The ISO 639 standard defines two character codes for many languages. All abbreviations for languages used in the Translation Project should @@ -518,6 +522,6 @@ Zulu. </DL> <P><HR><P> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_14.html">previous</A>, <A HREF="gettext_16.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_14.html">previous</A>, <A HREF="gettext_16.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. </BODY> </HTML> diff --git a/doc/gettext_16.html b/doc/gettext_16.html index 06c902d..6ac89be 100644 --- a/doc/gettext_16.html +++ b/doc/gettext_16.html @@ -1,17 +1,21 @@ <HTML> <HEAD> <!-- This HTML file has been created by texi2html 1.52a - from gettext.texi on 31 January 2002 --> + from gettext.texi on 7 March 2002 --> <TITLE>GNU gettext utilities - B Country Codes</TITLE> </HEAD> <BODY> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_15.html">previous</A>, next, last section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_15.html">previous</A>, <A HREF="gettext_17.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. <P><HR><P> -<H1><A NAME="SEC217" HREF="gettext_toc.html#TOC217">B Country Codes</A></H1> +<H1><A NAME="SEC221" HREF="gettext_toc.html#TOC221">B Country Codes</A></H1> +<P> +<A NAME="IDX915"></A> +<A NAME="IDX916"></A> +</P> <P> The ISO 3166 standard defines two character codes for many countries and territories. All abbreviations for countries used in the Translation @@ -740,6 +744,6 @@ Zimbabwe. </DL> <P><HR><P> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_15.html">previous</A>, next, last section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_15.html">previous</A>, <A HREF="gettext_17.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. </BODY> </HTML> diff --git a/doc/gettext_2.html b/doc/gettext_2.html index 699dfc5..c419d89 100644 --- a/doc/gettext_2.html +++ b/doc/gettext_2.html @@ -1,12 +1,12 @@ <HTML> <HEAD> <!-- This HTML file has been created by texi2html 1.52a - from gettext.texi on 31 January 2002 --> + from gettext.texi on 7 March 2002 --> <TITLE>GNU gettext utilities - 2 PO Files and PO Mode Basics</TITLE> </HEAD> <BODY> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_1.html">previous</A>, <A HREF="gettext_3.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_1.html">previous</A>, <A HREF="gettext_3.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. <P><HR><P> @@ -27,6 +27,8 @@ in one place. Here we present only the basics of PO mode. <H2><A NAME="SEC8" HREF="gettext_toc.html#TOC8">2.1 Completing GNU <CODE>gettext</CODE> Installation</A></H2> <P> +<A NAME="IDX39"></A> +<A NAME="IDX40"></A> Once you have received, unpacked, configured and compiled the GNU <CODE>gettext</CODE> distribution, the <SAMP>`make install´</SAMP> command puts in place the programs <CODE>xgettext</CODE>, <CODE>msgfmt</CODE>, <CODE>gettext</CODE>, and @@ -36,6 +38,8 @@ PO mode available to your Emacs users. </P> <P> +<A NAME="IDX41"></A> +<A NAME="IDX42"></A> During the installation of the PO mode, you might want to modify your file <TT>`.emacs´</TT>, once and for all, so it contains a few lines looking like: @@ -83,7 +87,11 @@ button 1). <H2><A NAME="SEC9" HREF="gettext_toc.html#TOC9">2.2 The Format of PO Files</A></H2> +<P> +<A NAME="IDX43"></A> +<A NAME="IDX44"></A> +</P> <P> A PO file is made up of many entries, each entry holding the relation between an original untranslated string and its corresponding @@ -123,6 +131,8 @@ All comments, of either kind, are optional. </P> <P> +<A NAME="IDX45"></A> +<A NAME="IDX46"></A> After white space and comments, entries show two strings, namely first the untranslated string as it appears in the original program sources, and then, the translation of this string. The original @@ -156,6 +166,7 @@ there are two forms of flags defined: <DT><KBD>fuzzy</KBD> <DD> +<A NAME="IDX47"></A> This flag can be generated by the <CODE>msgmerge</CODE> program or it can be inserted by the translator herself. It shows that the <CODE>msgstr</CODE> string might not be a correct translation (anymore). Only the translator @@ -167,8 +178,10 @@ search only. See section <A HREF="gettext_6.html#SEC45">6.3 Fuzzy Entries</A>. <DT><KBD>c-format</KBD> <DD> +<A NAME="IDX48"></A> <DT><KBD>no-c-format</KBD> <DD> +<A NAME="IDX49"></A> These flags should not be added by a human. Instead only the <CODE>xgettext</CODE> program adds them. In an automated PO file processing system as proposed here the user changes would be thrown away again as @@ -181,6 +194,7 @@ See section <A HREF="gettext_8.html#SEC118">8.1 Invoking the <CODE>msgfmt</CODE </DL> <P> +<A NAME="IDX50"></A> A different kind of entries is used for translations which involve plural forms. @@ -200,6 +214,7 @@ msgstr[N] <VAR>translated-string-case-n</VAR> </PRE> <P> +<A NAME="IDX51"></A> It happens that some lines, usually whitespace or comments, follow the very last entry of a PO file. Such lines are not part of any entry, and PO mode is unable to take action on those lines. By using the @@ -249,6 +264,7 @@ other character, we just did it this way because it is neater. </P> <P> +<A NAME="IDX52"></A> One should carefully distinguish between end of lines marked as <SAMP>`\n´</SAMP> <EM>inside</EM> quotes, which are part of the represented string, and end of lines in the PO file itself, outside string quotes, @@ -256,6 +272,7 @@ which have no incidence on the represented string. </P> <P> +<A NAME="IDX53"></A> Outside strings, white lines and comments may be used freely. Comments start at the beginning of a line with <SAMP>`#´</SAMP> and extend until the end of the PO file line. Comments written by translators @@ -271,6 +288,8 @@ file is given to <CODE>msgmerge</CODE>. <H2><A NAME="SEC10" HREF="gettext_toc.html#TOC10">2.3 Main PO mode Commands</A></H2> <P> +<A NAME="IDX54"></A> +<A NAME="IDX55"></A> After setting up Emacs with something similar to the lines in section <A HREF="gettext_2.html#SEC8">2.1 Completing GNU <CODE>gettext</CODE> Installation</A>, PO mode is activated for a window when Emacs finds a PO file in that window. This puts the window read-only and establishes a @@ -302,37 +321,47 @@ in special ways. <DT><KBD>_</KBD> <DD> +<A NAME="IDX56"></A> Undo last modification to the PO file (<CODE>po-undo</CODE>). <DT><KBD>Q</KBD> <DD> +<A NAME="IDX57"></A> Quit processing and save the PO file (<CODE>po-quit</CODE>). <DT><KBD>q</KBD> <DD> +<A NAME="IDX58"></A> Quit processing, possibly after confirmation (<CODE>po-confirm-and-quit</CODE>). <DT><KBD>0</KBD> <DD> +<A NAME="IDX59"></A> Temporary leave the PO file window (<CODE>po-other-window</CODE>). <DT><KBD>?</KBD> <DD> <DT><KBD>h</KBD> <DD> +<A NAME="IDX60"></A> +<A NAME="IDX61"></A> Show help about PO mode (<CODE>po-help</CODE>). <DT><KBD>=</KBD> <DD> +<A NAME="IDX62"></A> Give some PO file statistics (<CODE>po-statistics</CODE>). <DT><KBD>V</KBD> <DD> +<A NAME="IDX63"></A> Batch validate the format of the whole PO file (<CODE>po-validate</CODE>). </DL> <P> +<A NAME="IDX64"></A> +<A NAME="IDX65"></A> The command <KBD>_</KBD> (<CODE>po-undo</CODE>) interfaces to the Emacs <EM>undo</EM> facility. See section `Undoing Changes' in <CITE>The Emacs Editor</CITE>. Each time <KBD>U</KBD> is typed, modifications which the translator did to the PO file are undone a little more. For the purpose of @@ -344,6 +373,10 @@ can undo the edition work quite parsimoniously. </P> <P> +<A NAME="IDX66"></A> +<A NAME="IDX67"></A> +<A NAME="IDX68"></A> +<A NAME="IDX69"></A> The commands <KBD>Q</KBD> (<CODE>po-quit</CODE>) and <KBD>q</KBD> (<CODE>po-confirm-and-quit</CODE>) are used when the translator is done with the PO file. The former is a bit less verbose than the latter. If the file @@ -356,6 +389,8 @@ of an Emacs PO file buffer. Merely killing it through the usual command </P> <P> +<A NAME="IDX70"></A> +<A NAME="IDX71"></A> The command <KBD>0</KBD> (<CODE>po-other-window</CODE>) is another, softer way, to leave PO mode, temporarily. It just moves the cursor to some other Emacs window, and pops one if necessary. For example, if the translator @@ -369,6 +404,9 @@ PO mode is then recovered. </P> <P> +<A NAME="IDX72"></A> +<A NAME="IDX73"></A> +<A NAME="IDX74"></A> The command <KBD>h</KBD> (<CODE>po-help</CODE>) displays a summary of all available PO mode commands. The translator should then type any character to resume normal PO mode operations. The command <KBD>?</KBD> has the same effect @@ -376,6 +414,8 @@ as <KBD>h</KBD>. </P> <P> +<A NAME="IDX75"></A> +<A NAME="IDX76"></A> The command <KBD>=</KBD> (<CODE>po-statistics</CODE>) computes the total number of entries in the PO file, the ordinal of the current entry (counted from 1), the number of untranslated entries, the number of obsolete entries, @@ -383,6 +423,8 @@ and displays all these numbers. </P> <P> +<A NAME="IDX77"></A> +<A NAME="IDX78"></A> The command <KBD>V</KBD> (<CODE>po-validate</CODE>) launches <CODE>msgfmt</CODE> in checking and verbose mode over the current PO file. This command first offers to save the @@ -393,6 +435,7 @@ as well as all individual entries. </P> <P> +<A NAME="IDX79"></A> The program <CODE>msgfmt</CODE> runs asynchronously with Emacs, so the translator regains control immediately while her PO file is being studied. Error output is collected in the Emacs <SAMP>`*compilation*´</SAMP> buffer, @@ -408,6 +451,7 @@ any PO mode action which would help correcting the error. <H2><A NAME="SEC11" HREF="gettext_toc.html#TOC11">2.4 Entry Positioning</A></H2> <P> +<A NAME="IDX80"></A> The cursor in a PO file window is almost always part of an entry. The only exceptions are the special case when the cursor is after the last entry in the file, or when the PO file is @@ -418,6 +462,7 @@ the PO file, this also selects on which entry commands operate. </P> <P> +<A NAME="IDX81"></A> Some PO mode commands alter the position of the cursor in a specialized way. A few of those special purpose positioning are described here, the others are described in following sections (for a complete list try @@ -428,41 +473,51 @@ the others are described in following sections (for a complete list try <DT><KBD>.</KBD> <DD> +<A NAME="IDX82"></A> Redisplay the current entry (<CODE>po-current-entry</CODE>). <DT><KBD>n</KBD> <DD> +<A NAME="IDX83"></A> Select the entry after the current one (<CODE>po-next-entry</CODE>). <DT><KBD>p</KBD> <DD> +<A NAME="IDX84"></A> Select the entry before the current one (<CODE>po-previous-entry</CODE>). <DT><KBD><</KBD> <DD> +<A NAME="IDX85"></A> Select the first entry in the PO file (<CODE>po-first-entry</CODE>). <DT><KBD>></KBD> <DD> +<A NAME="IDX86"></A> Select the last entry in the PO file (<CODE>po-last-entry</CODE>). <DT><KBD>m</KBD> <DD> +<A NAME="IDX87"></A> Record the location of the current entry for later use (<CODE>po-push-location</CODE>). <DT><KBD>r</KBD> <DD> +<A NAME="IDX88"></A> Return to a previously saved entry location (<CODE>po-pop-location</CODE>). <DT><KBD>x</KBD> <DD> +<A NAME="IDX89"></A> Exchange the current entry location with the previously saved one (<CODE>po-exchange-location</CODE>). </DL> <P> +<A NAME="IDX90"></A> +<A NAME="IDX91"></A> Any Emacs command able to reposition the cursor may be used to select the current entry in PO mode, including commands which move by characters, lines, paragraphs, screens or pages, and search @@ -491,6 +546,10 @@ how <EM>others</EM> should do translation. </P> <P> +<A NAME="IDX92"></A> +<A NAME="IDX93"></A> +<A NAME="IDX94"></A> +<A NAME="IDX95"></A> The commands <KBD>n</KBD> (<CODE>po-next-entry</CODE>) and <KBD>p</KBD> (<CODE>po-previous-entry</CODE>) move the cursor the entry following, or preceding, the current one. If <KBD>n</KBD> is given while the @@ -499,6 +558,10 @@ is given while the cursor is on the first entry, no move is done. </P> <P> +<A NAME="IDX96"></A> +<A NAME="IDX97"></A> +<A NAME="IDX98"></A> +<A NAME="IDX99"></A> The commands <KBD><</KBD> (<CODE>po-first-entry</CODE>) and <KBD>></KBD> (<CODE>po-last-entry</CODE>) move the cursor to the first entry, or last entry, of the PO file. When the cursor is located past the last @@ -521,6 +584,10 @@ register for getting back, or else, use the location ring. </P> <P> +<A NAME="IDX100"></A> +<A NAME="IDX101"></A> +<A NAME="IDX102"></A> +<A NAME="IDX103"></A> PO mode offers another approach, by which cursor locations may be saved onto a special stack. The command <KBD>m</KBD> (<CODE>po-push-location</CODE>) merely adds the location of current entry to the stack, pushing @@ -540,6 +607,8 @@ ought to use <KBD>m</KBD> immediately after <KBD>r</KBD>. </P> <P> +<A NAME="IDX104"></A> +<A NAME="IDX105"></A> The command <KBD>x</KBD> (<CODE>po-exchange-location</CODE>) simultaneously repositions the cursor to the entry associated with the top element of the stack of saved locations, and replaces that top element with the @@ -553,7 +622,10 @@ merely use <KBD>x</KBD> for making the switch. <H2><A NAME="SEC12" HREF="gettext_toc.html#TOC12">2.5 Normalizing Strings in Entries</A></H2> +<P> +<A NAME="IDX106"></A> +</P> <P> There are many different ways for encoding a particular string into a PO file entry, because there are so many different ways to split and @@ -584,10 +656,13 @@ PO file needing a canonical representation, the following PO mode command is available: </P> +<P> +<A NAME="IDX107"></A> <DL COMPACT> <DT><KBD>M-x po-normalize</KBD> <DD> +<A NAME="IDX108"></A> Tidy the whole PO file by making entries more uniform. </DL> @@ -619,6 +694,7 @@ for continued lines. </P> <P> +<A NAME="IDX109"></A> Having such an explicit normalizing command allows for importing PO files from other sources, but also eases the evolution of the current convention, evolution driven mostly by aesthetic concerns, as of now. @@ -631,6 +707,7 @@ their PO files in nice ways. </P> <P> +<A NAME="IDX110"></A> Right now, in PO mode, strings are single line or multi-line. A string goes multi-line if and only if it has <EM>embedded</EM> newlines, that is, if it matches <SAMP>`[^\n]\n+[^\n]´</SAMP>. So, we would have: @@ -680,6 +757,6 @@ to be documented in this manual, once these questions settle. </P> <P><HR><P> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_1.html">previous</A>, <A HREF="gettext_3.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_1.html">previous</A>, <A HREF="gettext_3.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. </BODY> </HTML> diff --git a/doc/gettext_3.html b/doc/gettext_3.html index 1dd531e..3b8903a 100644 --- a/doc/gettext_3.html +++ b/doc/gettext_3.html @@ -1,16 +1,20 @@ <HTML> <HEAD> <!-- This HTML file has been created by texi2html 1.52a - from gettext.texi on 31 January 2002 --> + from gettext.texi on 7 March 2002 --> <TITLE>GNU gettext utilities - 3 Preparing Program Sources</TITLE> </HEAD> <BODY> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_2.html">previous</A>, <A HREF="gettext_4.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_2.html">previous</A>, <A HREF="gettext_4.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. <P><HR><P> <H1><A NAME="SEC13" HREF="gettext_toc.html#TOC13">3 Preparing Program Sources</A></H1> +<P> +<A NAME="IDX111"></A> + +</P> <P> For the programmer, changes to the C source code fall into three @@ -25,10 +29,12 @@ needing translation. <P> Presuming that your set of programs, or package, has been adjusted so all needed GNU <CODE>gettext</CODE> files are available, and your -<TT>`Makefile´</TT> files are adjusted (see section <A HREF="gettext_12.html#SEC169">12 The Maintainer's View</A>), each C module +<TT>`Makefile´</TT> files are adjusted (see section <A HREF="gettext_12.html#SEC171">12 The Maintainer's View</A>), each C module having translated C strings should contain the line: </P> +<P> +<A NAME="IDX112"></A> <PRE> #include <libintl.h> @@ -45,6 +51,7 @@ sections of this chapter. <H2><A NAME="SEC14" HREF="gettext_toc.html#TOC14">3.1 Triggering <CODE>gettext</CODE> Operations</A></H2> <P> +<A NAME="IDX113"></A> The initialization of locale data should be done with more or less the same code in every program, as demonstrated below: @@ -67,10 +74,12 @@ main (argc, argv) <P> <VAR>PACKAGE</VAR> and <VAR>LOCALEDIR</VAR> should be provided either by <TT>`config.h´</TT> or by the Makefile. For now consult the <CODE>gettext</CODE> -sources for more information. +or <CODE>hello</CODE> sources for more information. </P> <P> +<A NAME="IDX114"></A> +<A NAME="IDX115"></A> The use of <CODE>LC_ALL</CODE> might not be appropriate for you. <CODE>LC_ALL</CODE> includes all locale categories and especially <CODE>LC_CTYPE</CODE>. This later category is responsible for determining @@ -111,6 +120,13 @@ code above by a sequence of <CODE>setlocale</CODE> lines </PRE> <P> +<A NAME="IDX116"></A> +<A NAME="IDX117"></A> +<A NAME="IDX118"></A> +<A NAME="IDX119"></A> +<A NAME="IDX120"></A> +<A NAME="IDX121"></A> +<A NAME="IDX122"></A> On all POSIX conformant systems the locale categories <CODE>LC_CTYPE</CODE>, <CODE>LC_COLLATE</CODE>, <CODE>LC_MONETARY</CODE>, <CODE>LC_NUMERIC</CODE>, and <CODE>LC_TIME</CODE> are available. On some modern systems there is also a @@ -139,7 +155,10 @@ is not multithread-safe. <H2><A NAME="SEC15" HREF="gettext_toc.html#TOC15">3.2 How Marks Appear in Sources</A></H2> +<P> +<A NAME="IDX123"></A> +</P> <P> All strings requiring translation should be marked in the C sources. Marking is done in such a way that each translatable string appears to be @@ -188,6 +207,7 @@ sources for those trying to keep them within 79 or 80 columns. </P> <P> +<A NAME="IDX124"></A> Many packages use <SAMP>`_´</SAMP> (a simple underline) as a keyword, and write <SAMP>`_("Translatable string")´</SAMP> instead of <SAMP>`gettext ("Translatable string")´</SAMP>. Further, the coding rule, from GNU standards, @@ -222,7 +242,10 @@ an example of string <EM>not</EM> requiring translation! <H2><A NAME="SEC16" HREF="gettext_toc.html#TOC16">3.3 Marking Translatable Strings</A></H2> +<P> +<A NAME="IDX125"></A> +</P> <P> In PO mode, one set of features is meant more for the programmer than for the translator, and allows him to interactively mark which strings, @@ -237,6 +260,7 @@ translation in some language, for the package being internationalized. </P> <P> +<A NAME="IDX126"></A> The set of program sources, targetted by the PO mode commands describe here, should have an Emacs tags table constructed for your project, prior to using these PO file commands. This is easy to do. In any @@ -258,6 +282,7 @@ format Emacs can understand. </P> <P> +<A NAME="IDX127"></A> For packages following the GNU coding standards, there is a make goal <CODE>tags</CODE> or <CODE>TAGS</CODE> which constructs the tag files in all directories and for all files containing source code. @@ -277,15 +302,18 @@ fill in while you mark strings as translatable in your program sources. <DT><KBD>,</KBD> <DD> +<A NAME="IDX128"></A> Search through program sources for a string which looks like a candidate for translation (<CODE>po-tags-search</CODE>). <DT><KBD>M-,</KBD> <DD> +<A NAME="IDX129"></A> Mark the last string found with <SAMP>`_()´</SAMP> (<CODE>po-mark-translatable</CODE>). <DT><KBD>M-.</KBD> <DD> +<A NAME="IDX130"></A> Mark the last string found with a keyword taken from a set of possible keywords. This command with a prefix allows some management of these keywords (<CODE>po-select-mark-and-mark</CODE>). @@ -293,6 +321,7 @@ keywords (<CODE>po-select-mark-and-mark</CODE>). </DL> <P> +<A NAME="IDX131"></A> The <KBD>,</KBD> (<CODE>po-tags-search</CODE>) command searches for the next occurrence of a string which looks like a possible candidate for translation, and displays the program source in another Emacs window, @@ -344,6 +373,8 @@ first tags file, this reinitialization might be considered spurious. </P> <P> +<A NAME="IDX132"></A> +<A NAME="IDX133"></A> The <KBD>M-,</KBD> (<CODE>po-mark-translatable</CODE>) command will mark the recently found string with the <SAMP>`_´</SAMP> keyword. The <KBD>M-.</KBD> (<CODE>po-select-mark-and-mark</CODE>) command will request that you type @@ -404,6 +435,7 @@ prefer <SAMP>`_´</SAMP>, as this one is already built in the <KBD>M-,</KBD <H2><A NAME="SEC17" HREF="gettext_toc.html#TOC17">3.4 Special Comments preceding Keywords</A></H2> <P> +<A NAME="IDX134"></A> In C programs strings are often used within calls of functions from the <CODE>printf</CODE> family. The special thing about these format strings is that they can contain format specifiers introduced with <KBD>%</KBD>. Assume @@ -471,6 +503,8 @@ only a heuristic. In the <TT>`.po´</TT> file the entry is marked using th </P> <P> +<A NAME="IDX135"></A> +<A NAME="IDX136"></A> The careful reader now might say that this again can cause problems. The heuristic might guess it wrong. This is true and therefore <CODE>xgettext</CODE> knows about special kind of comment which lets @@ -516,6 +550,7 @@ used for solving this problem. <H2><A NAME="SEC18" HREF="gettext_toc.html#TOC18">3.5 Special Cases of Translatable Strings</A></H2> <P> +<A NAME="IDX137"></A> The attentive reader might now point out that it is not always possible to mark translatable string with <CODE>gettext</CODE> or something like this. Consider the following case: @@ -616,6 +651,6 @@ use this second method in this situation. </P> <P><HR><P> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_2.html">previous</A>, <A HREF="gettext_4.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_2.html">previous</A>, <A HREF="gettext_4.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. </BODY> </HTML> diff --git a/doc/gettext_4.html b/doc/gettext_4.html index bc39311..2b7f289 100644 --- a/doc/gettext_4.html +++ b/doc/gettext_4.html @@ -1,17 +1,20 @@ <HTML> <HEAD> <!-- This HTML file has been created by texi2html 1.52a - from gettext.texi on 31 January 2002 --> + from gettext.texi on 7 March 2002 --> <TITLE>GNU gettext utilities - 4 Making the PO Template File</TITLE> </HEAD> <BODY> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_3.html">previous</A>, <A HREF="gettext_5.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_3.html">previous</A>, <A HREF="gettext_5.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. <P><HR><P> <H1><A NAME="SEC19" HREF="gettext_toc.html#TOC19">4 Making the PO Template File</A></H1> +<P> +<A NAME="IDX138"></A> +</P> <P> After preparing the sources, the programmer creates a PO template file. This section explains how to use <CODE>xgettext</CODE> for this purpose. @@ -22,6 +25,9 @@ This section explains how to use <CODE>xgettext</CODE> for this purpose. <H2><A NAME="SEC20" HREF="gettext_toc.html#TOC20">4.1 Invoking the <CODE>xgettext</CODE> Program</A></H2> +<P> +<A NAME="IDX139"></A> +<A NAME="IDX140"></A> <PRE> xgettext [<VAR>option</VAR>] [<VAR>inputfile</VAR>] ... @@ -46,6 +52,8 @@ Input files. <DD> <DT><SAMP>`--files-from=<VAR>file</VAR>´</SAMP> <DD> +<A NAME="IDX141"></A> +<A NAME="IDX142"></A> Read the names of the input files from <VAR>file</VAR> instead of getting them from the command line. @@ -53,6 +61,8 @@ them from the command line. <DD> <DT><SAMP>`--directory=<VAR>directory</VAR>´</SAMP> <DD> +<A NAME="IDX143"></A> +<A NAME="IDX144"></A> Add <VAR>directory</VAR> to the list of directories. Source files are searched relative to this list of directories. The resulting <TT>`.po´</TT> file will be written relative to the current directory, though. @@ -73,12 +83,16 @@ If <VAR>inputfile</VAR> is <SAMP>`-´</SAMP>, standard input is read. <DD> <DT><SAMP>`--default-domain=<VAR>name</VAR>´</SAMP> <DD> +<A NAME="IDX145"></A> +<A NAME="IDX146"></A> Use <TT>`<VAR>name</VAR>.po´</TT> for output (instead of <TT>`messages.po´</TT>). <DT><SAMP>`-o <VAR>file</VAR>´</SAMP> <DD> <DT><SAMP>`--output=<VAR>file</VAR>´</SAMP> <DD> +<A NAME="IDX147"></A> +<A NAME="IDX148"></A> Write output to specified file (instead of <TT>`<VAR>name</VAR>.po´</TT> or <TT>`messages.po´</TT>). @@ -86,11 +100,14 @@ Write output to specified file (instead of <TT>`<VAR>name</VAR>.po´</TT> o <DD> <DT><SAMP>`--output-dir=<VAR>dir</VAR>´</SAMP> <DD> +<A NAME="IDX149"></A> +<A NAME="IDX150"></A> Output files will be placed in directory <VAR>dir</VAR>. </DL> <P> +<A NAME="IDX151"></A> If the output <VAR>file</VAR> is <SAMP>`-´</SAMP> or <SAMP>`/dev/stdout´</SAMP>, the output is written to standard output. @@ -105,14 +122,20 @@ is written to standard output. <DD> <DT><SAMP>`--language=<VAR>name</VAR>´</SAMP> <DD> +<A NAME="IDX152"></A> +<A NAME="IDX153"></A> +<A NAME="IDX154"></A> Specifies the language of the input files. The supported languages -are <CODE>C</CODE>, <CODE>C++</CODE>, <CODE>ObjectiveC</CODE>, <CODE>PO</CODE>, <CODE>Java</CODE>, -<CODE>YCP</CODE>. +are <CODE>C</CODE>, <CODE>C++</CODE>, <CODE>ObjectiveC</CODE>, <CODE>PO</CODE>, <CODE>Python</CODE>, +<CODE>Lisp</CODE>, <CODE>EmacsLisp</CODE>, <CODE>librep</CODE>, <CODE>Java</CODE>, <CODE>awk</CODE>, +<CODE>YCP</CODE>, <CODE>Tcl</CODE>, <CODE>RST</CODE>, <CODE>Glade</CODE>. <DT><SAMP>`-C´</SAMP> <DD> <DT><SAMP>`--c++´</SAMP> <DD> +<A NAME="IDX155"></A> +<A NAME="IDX156"></A> This is a shorthand for <CODE>--language=C++</CODE>. </DL> @@ -132,12 +155,16 @@ extension. <DD> <DT><SAMP>`--join-existing´</SAMP> <DD> +<A NAME="IDX157"></A> +<A NAME="IDX158"></A> Join messages with existing file. <DT><SAMP>`-x <VAR>file</VAR>´</SAMP> <DD> <DT><SAMP>`--exclude-file=<VAR>file</VAR>´</SAMP> <DD> +<A NAME="IDX159"></A> +<A NAME="IDX160"></A> Entries from <VAR>file</VAR> are not extracted. <VAR>file</VAR> should be a PO or POT file. @@ -145,6 +172,8 @@ POT file. <DD> <DT><SAMP>`--add-comments[=<VAR>tag</VAR>]´</SAMP> <DD> +<A NAME="IDX161"></A> +<A NAME="IDX162"></A> Place comment block with <VAR>tag</VAR> (or those preceding keyword lines) in output file. @@ -160,15 +189,20 @@ in output file. <DD> <DT><SAMP>`--extract-all´</SAMP> <DD> +<A NAME="IDX163"></A> +<A NAME="IDX164"></A> Extract all strings. <DT><SAMP>`-k <VAR>keywordspec</VAR>´</SAMP> <DD> <DT><SAMP>`--keyword[=<VAR>keywordspec</VAR>]´</SAMP> <DD> +<A NAME="IDX165"></A> +<A NAME="IDX166"></A> Additional keyword to be looked for (without <VAR>keywordspec</VAR> means not to use default keywords). +<A NAME="IDX167"></A> If <VAR>keywordspec</VAR> is a C identifer <VAR>id</VAR>, <CODE>xgettext</CODE> looks for strings in the first argument of each call to the function or macro <VAR>id</VAR>. If <VAR>keywordspec</VAR> is of the form @@ -188,10 +222,15 @@ explicitly disabled, are <CODE>gettext</CODE>, <CODE>dgettext:2</CODE>, <DD> <DT><SAMP>`--trigraphs´</SAMP> <DD> +<A NAME="IDX168"></A> +<A NAME="IDX169"></A> +<A NAME="IDX170"></A> Understand ANSI C trigraphs for input. <DT><SAMP>`--debug´</SAMP> <DD> +<A NAME="IDX171"></A> +<A NAME="IDX172"></A> Use the flags <KBD>c-format</KBD> and <KBD>possible-c-format</KBD> to show who was responsible for marking a message as a format string. The latter form is used if the <CODE>xgettext</CODE> program decided, the format form is used if @@ -216,26 +255,33 @@ adjacent strings, and escaped end of lines for continued strings. <DT><SAMP>`--force-po´</SAMP> <DD> +<A NAME="IDX173"></A> Always write an output file even if no message is defined. <DT><SAMP>`-i´</SAMP> <DD> <DT><SAMP>`--indent´</SAMP> <DD> +<A NAME="IDX174"></A> +<A NAME="IDX175"></A> Write the .po file using indented style. <DT><SAMP>`--no-location´</SAMP> <DD> +<A NAME="IDX176"></A> Do not write <SAMP>`#: <VAR>filename</VAR>:<VAR>line</VAR>´</SAMP> lines. <DT><SAMP>`-n´</SAMP> <DD> <DT><SAMP>`--add-location´</SAMP> <DD> +<A NAME="IDX177"></A> +<A NAME="IDX178"></A> Generate <SAMP>`#: <VAR>filename</VAR>:<VAR>line</VAR>´</SAMP> lines (default). <DT><SAMP>`--strict´</SAMP> <DD> +<A NAME="IDX179"></A> Write out a strict Uniforum conforming PO file. Note that this Uniforum format should be avoided because it doesn't support the GNU extensions. @@ -244,6 +290,8 @@ GNU extensions. <DD> <DT><SAMP>`--width=<VAR>number</VAR>´</SAMP> <DD> +<A NAME="IDX180"></A> +<A NAME="IDX181"></A> Set the output page width. Long strings in the output files will be split across multiple lines in order to ensure that each line's width (= number of screen columns) is less or equal to the given <VAR>number</VAR>. @@ -252,6 +300,9 @@ split across multiple lines in order to ensure that each line's width <DD> <DT><SAMP>`--sort-output´</SAMP> <DD> +<A NAME="IDX182"></A> +<A NAME="IDX183"></A> +<A NAME="IDX184"></A> Generate sorted output. Note that using this option makes it much harder for the translator to understand each message's context. @@ -259,12 +310,16 @@ for the translator to understand each message's context. <DD> <DT><SAMP>`--sort-by-file´</SAMP> <DD> +<A NAME="IDX185"></A> +<A NAME="IDX186"></A> Sort output by file location. <DT><SAMP>`--omit-header´</SAMP> <DD> +<A NAME="IDX187"></A> Don't write header with <SAMP>`msgid ""´</SAMP> entry. +<A NAME="IDX188"></A> This is useful for testing purposes because it eliminates a source of variance for generated <CODE>.gmo</CODE> files. With <CODE>--omit-header</CODE>, two invocations of <CODE>xgettext</CODE> on the same files with the same @@ -272,6 +327,7 @@ options at different times are guaranteed to produce the same results. <DT><SAMP>`--copyright-holder=<VAR>string</VAR>´</SAMP> <DD> +<A NAME="IDX189"></A> Set the copyright holder in the output. <VAR>string</VAR> should be the copyright holder of the surrounding package. (Note that the msgstr strings, extracted from the package's sources, belong to the copyright @@ -287,6 +343,7 @@ simply because <CODE>xgettext</CODE> was first used in the GNU project. <DT><SAMP>`--foreign-user´</SAMP> <DD> +<A NAME="IDX190"></A> Omit FSF copyright in output. This option is equivalent to <SAMP>`--copyright-holder="´</SAMP>. It can be useful for packages outside the GNU project that want their translations to be in the public domain. @@ -295,12 +352,16 @@ project that want their translations to be in the public domain. <DD> <DT><SAMP>`--msgstr-prefix[=<VAR>string</VAR>]´</SAMP> <DD> +<A NAME="IDX191"></A> +<A NAME="IDX192"></A> Use <VAR>string</VAR> (or "" if not specified) as prefix for msgstr entries. <DT><SAMP>`-M [<VAR>string</VAR>]´</SAMP> <DD> <DT><SAMP>`--msgstr-suffix[=<VAR>string</VAR>]´</SAMP> <DD> +<A NAME="IDX193"></A> +<A NAME="IDX194"></A> Use <VAR>string</VAR> (or "" if not specified) as suffix for msgstr entries. </DL> @@ -315,17 +376,21 @@ Use <VAR>string</VAR> (or "" if not specified) as suffix for msgstr entries. <DD> <DT><SAMP>`--help´</SAMP> <DD> +<A NAME="IDX195"></A> +<A NAME="IDX196"></A> Display this help and exit. <DT><SAMP>`-V´</SAMP> <DD> <DT><SAMP>`--version´</SAMP> <DD> +<A NAME="IDX197"></A> +<A NAME="IDX198"></A> Output version information and exit. </DL> <P><HR><P> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_3.html">previous</A>, <A HREF="gettext_5.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_3.html">previous</A>, <A HREF="gettext_5.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. </BODY> </HTML> diff --git a/doc/gettext_5.html b/doc/gettext_5.html index 9eb39af..9757850 100644 --- a/doc/gettext_5.html +++ b/doc/gettext_5.html @@ -1,17 +1,20 @@ <HTML> <HEAD> <!-- This HTML file has been created by texi2html 1.52a - from gettext.texi on 31 January 2002 --> + from gettext.texi on 7 March 2002 --> <TITLE>GNU gettext utilities - 5 Creating a New PO File</TITLE> </HEAD> <BODY> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_4.html">previous</A>, <A HREF="gettext_6.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_4.html">previous</A>, <A HREF="gettext_6.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. <P><HR><P> <H1><A NAME="SEC28" HREF="gettext_toc.html#TOC28">5 Creating a New PO File</A></H1> +<P> +<A NAME="IDX199"></A> +</P> <P> When starting a new translation, the translator creates a file called <TT>`<VAR>LANG</VAR>.po´</TT>, as a copy of the <TT>`<VAR>package</VAR>.pot´</TT> template @@ -43,12 +46,17 @@ the header entry of this file. <H2><A NAME="SEC29" HREF="gettext_toc.html#TOC29">5.1 Invoking the <CODE>msginit</CODE> Program</A></H2> +<P> +<A NAME="IDX200"></A> +<A NAME="IDX201"></A> <PRE> msginit [<VAR>option</VAR>] </PRE> <P> +<A NAME="IDX202"></A> +<A NAME="IDX203"></A> The <CODE>msginit</CODE> program creates a new PO file, initializing the meta information with values from the user's environment. @@ -63,6 +71,8 @@ information with values from the user's environment. <DD> <DT><SAMP>`--input=<VAR>inputfile</VAR>´</SAMP> <DD> +<A NAME="IDX204"></A> +<A NAME="IDX205"></A> Input POT file. </DL> @@ -82,6 +92,8 @@ POT file. If it is <SAMP>`-´</SAMP>, standard input is read. <DD> <DT><SAMP>`--output-file=<VAR>file</VAR>´</SAMP> <DD> +<A NAME="IDX206"></A> +<A NAME="IDX207"></A> Write output to specified PO file. </DL> @@ -102,12 +114,15 @@ standard output. <DD> <DT><SAMP>`--locale=<VAR>ll_CC</VAR>´</SAMP> <DD> +<A NAME="IDX208"></A> +<A NAME="IDX209"></A> Set target locale. <VAR>ll</VAR> should be a language code, and <VAR>CC</VAR> should be a country code. The command <SAMP>`locale -a´</SAMP> can be used to output a list of all installed locales. The default is the user's locale setting. <DT><SAMP>`--no-translator´</SAMP> <DD> +<A NAME="IDX210"></A> Declares that the PO file will not have a human translator and is instead automatically generated. @@ -115,6 +130,8 @@ automatically generated. <DD> <DT><SAMP>`--width=<VAR>number</VAR>´</SAMP> <DD> +<A NAME="IDX211"></A> +<A NAME="IDX212"></A> Set the output page width. Long strings in the output files will be split across multiple lines in order to ensure that each line's width (= number of screen columns) is less or equal to the given <VAR>number</VAR>. @@ -131,12 +148,16 @@ split across multiple lines in order to ensure that each line's width <DD> <DT><SAMP>`--help´</SAMP> <DD> +<A NAME="IDX213"></A> +<A NAME="IDX214"></A> Display this help and exit. <DT><SAMP>`-V´</SAMP> <DD> <DT><SAMP>`--version´</SAMP> <DD> +<A NAME="IDX215"></A> +<A NAME="IDX216"></A> Output version information and exit. </DL> @@ -144,7 +165,10 @@ Output version information and exit. <H2><A NAME="SEC34" HREF="gettext_toc.html#TOC34">5.2 Filling in the Header Entry</A></H2> +<P> +<A NAME="IDX217"></A> +</P> <P> The initial comments "SOME DESCRIPTIVE TITLE", "YEAR" and "FIRST AUTHOR <EMAIL@ADDRESS>, YEAR" ought to be replaced by sensible @@ -187,18 +211,22 @@ Before starting a translation, it is a good idea to get in touch with your translation team, not only to make sure you don't do duplicated work, but also to coordinate difficult linguistic issues. +<A NAME="IDX218"></A> In the Free Translation Project, each translation team has its own mailing list. The up-to-date list of teams can be found at the Free Translation -Project's homepage, <TT>`http://www.iro.umontreal.ca/contrib/po/HTML/´</TT>, +Project's homepage, <A HREF="http://www.iro.umontreal.ca/contrib/po/HTML/">http://www.iro.umontreal.ca/contrib/po/HTML/</A>, in the "National teams" area. <DT>Content-Type <DD> +<A NAME="IDX219"></A> +<A NAME="IDX220"></A> Replace <SAMP>`CHARSET´</SAMP> with the character encoding used for your language, in your locale, or UTF-8. This field is needed for correct operation of the <CODE>msgmerge</CODE> and <CODE>msgfmt</CODE> programs, as well as for users whose -locale's character encoding differs from yours (see section <A HREF="gettext_10.html#SEC146">10.2.4 How to specify the output character set <CODE>gettext</CODE> uses</A>). +locale's character encoding differs from yours (see section <A HREF="gettext_10.html#SEC148">10.2.4 How to specify the output character set <CODE>gettext</CODE> uses</A>). +<A NAME="IDX221"></A> You get the character encoding of your locale by running the shell command <SAMP>`locale charmap´</SAMP>. If the result is <SAMP>`C´</SAMP> or <SAMP>`ANSI_X3.4-1968´</SAMP>, which is equivalent to <SAMP>`ASCII´</SAMP> (= <SAMP>`US-ASCII´</SAMP>), it means that your @@ -206,6 +234,7 @@ locale is not correctly configured. In this case, ask your translation team which charset to use. <SAMP>`ASCII´</SAMP> is not usable for any language except Latin. +<A NAME="IDX222"></A> Because the PO files must be portable to operating systems with less advanced internationalization facilities, the character encodings that can be used are limited to those supported by both GNU <CODE>libc</CODE> and GNU @@ -220,9 +249,11 @@ are limited to those supported by both GNU <CODE>libc</CODE> and GNU <CODE>BIG5</CODE>, <CODE>BIG5-HKSCS</CODE>, <CODE>GBK</CODE>, <CODE>GB18030</CODE>, <CODE>SHIFT_JIS</CODE>, <CODE>JOHAB</CODE>, <CODE>TIS-620</CODE>, <CODE>VISCII</CODE>, <CODE>UTF-8</CODE>. +<A NAME="IDX223"></A> In the GNU system, the following encodings are frequently used for the corresponding languages. +<A NAME="IDX224"></A> <UL> <LI><CODE>ISO-8859-1</CODE> for @@ -273,6 +304,8 @@ corresponding languages. </UL> +<A NAME="IDX225"></A> +<A NAME="IDX226"></A> When single quote characters or double quote characters are used in translations for your language, and your locale's encoding is one of the ISO-8859-* charsets, it is best if you create your PO files in UTF-8 @@ -284,6 +317,7 @@ real quote characters, whereas users in ISO-8859-* locales will see the vertical apostrophe and the vertical double quote instead (because that's what the character set conversion will transliterate them to). +<A NAME="IDX227"></A> To enter such quote characters under X11, you can change your keyboard mapping using the <CODE>xmodmap</CODE> program. The X11 names of the quote characters are "leftsinglequotemark", "rightsinglequotemark", @@ -305,10 +339,10 @@ Set this to <CODE>8bit</CODE>. <DD> This field is optional. It is only needed if the PO file has plural forms. You can find them by searching for the <SAMP>`msgid_plural´</SAMP> keyword. The -format of the plural forms field is described in section <A HREF="gettext_10.html#SEC147">10.2.5 Additional functions for plural forms</A>. +format of the plural forms field is described in section <A HREF="gettext_10.html#SEC149">10.2.5 Additional functions for plural forms</A>. </DL> <P><HR><P> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_4.html">previous</A>, <A HREF="gettext_6.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_4.html">previous</A>, <A HREF="gettext_6.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. </BODY> </HTML> diff --git a/doc/gettext_6.html b/doc/gettext_6.html index b901927..23fad19 100644 --- a/doc/gettext_6.html +++ b/doc/gettext_6.html @@ -1,12 +1,12 @@ <HTML> <HEAD> <!-- This HTML file has been created by texi2html 1.52a - from gettext.texi on 31 January 2002 --> + from gettext.texi on 7 March 2002 --> <TITLE>GNU gettext utilities - 6 Updating Existing PO Files</TITLE> </HEAD> <BODY> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_5.html">previous</A>, <A HREF="gettext_7.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_5.html">previous</A>, <A HREF="gettext_7.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. <P><HR><P> @@ -16,6 +16,9 @@ Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_5.html">previous< <H2><A NAME="SEC36" HREF="gettext_toc.html#TOC36">6.1 Invoking the <CODE>msgmerge</CODE> Program</A></H2> +<P> +<A NAME="IDX228"></A> +<A NAME="IDX229"></A> <PRE> msgmerge [<VAR>option</VAR>] <VAR>def</VAR>.po <VAR>ref</VAR>.pot @@ -52,6 +55,8 @@ References to the new sources. <DD> <DT><SAMP>`--directory=<VAR>directory</VAR>´</SAMP> <DD> +<A NAME="IDX230"></A> +<A NAME="IDX231"></A> Add <VAR>directory</VAR> to the list of directories. Source files are searched relative to this list of directories. The resulting <TT>`.po´</TT> file will be written relative to the current directory, though. @@ -60,6 +65,8 @@ file will be written relative to the current directory, though. <DD> <DT><SAMP>`--compendium=<VAR>file</VAR>´</SAMP> <DD> +<A NAME="IDX232"></A> +<A NAME="IDX233"></A> Specify an additional library of message translations. See section <A HREF="gettext_6.html#SEC53">6.11 Using Translation Compendia</A>. This option may be specified more than once. @@ -75,6 +82,8 @@ This option may be specified more than once. <DD> <DT><SAMP>`--update´</SAMP> <DD> +<A NAME="IDX234"></A> +<A NAME="IDX235"></A> Update <VAR>def</VAR>.po. Do nothing if <VAR>def</VAR>.po is already up to date. </DL> @@ -89,11 +98,14 @@ Update <VAR>def</VAR>.po. Do nothing if <VAR>def</VAR>.po is already up to date <DD> <DT><SAMP>`--output-file=<VAR>file</VAR>´</SAMP> <DD> +<A NAME="IDX236"></A> +<A NAME="IDX237"></A> Write output to specified file. </DL> <P> +<A NAME="IDX238"></A> The results are written to standard output if no output file is specified or if it is <SAMP>`-´</SAMP>. @@ -110,15 +122,19 @@ The result is written back to <VAR>def</VAR>.po. <DT><SAMP>`--backup=<VAR>control</VAR>´</SAMP> <DD> +<A NAME="IDX239"></A> +<A NAME="IDX240"></A> Make a backup of <VAR>def</VAR>.po <DT><SAMP>`--suffix=<VAR>suffix</VAR>´</SAMP> <DD> +<A NAME="IDX241"></A> Override the usual backup suffix. </DL> <P> +<A NAME="IDX242"></A> The version control method may be selected via the <CODE>--backup</CODE> option or through the <CODE>VERSION_CONTROL</CODE> environment variable. Here are the values: @@ -168,6 +184,8 @@ The backup suffix is <SAMP>`~´</SAMP>, unless set with <CODE>--suffix</COD <DD> <DT><SAMP>`--multi-domain´</SAMP> <DD> +<A NAME="IDX243"></A> +<A NAME="IDX244"></A> Apply <VAR>ref</VAR>.pot to each of the domains in <VAR>def</VAR>.po. </DL> @@ -180,24 +198,30 @@ Apply <VAR>ref</VAR>.pot to each of the domains in <VAR>def</VAR>.po. <DT><SAMP>`--force-po´</SAMP> <DD> +<A NAME="IDX245"></A> Always write an output file even if it contains no message. <DT><SAMP>`-i´</SAMP> <DD> <DT><SAMP>`--indent´</SAMP> <DD> +<A NAME="IDX246"></A> +<A NAME="IDX247"></A> Write the .po file using indented style. <DT><SAMP>`--no-location´</SAMP> <DD> +<A NAME="IDX248"></A> Do not write <SAMP>`#: <VAR>filename</VAR>:<VAR>line</VAR>´</SAMP> lines. <DT><SAMP>`--add-location´</SAMP> <DD> +<A NAME="IDX249"></A> Generate <SAMP>`#: <VAR>filename</VAR>:<VAR>line</VAR>´</SAMP> lines (default). <DT><SAMP>`--strict´</SAMP> <DD> +<A NAME="IDX250"></A> Write out a strict Uniforum conforming PO file. Note that this Uniforum format should be avoided because it doesn't support the GNU extensions. @@ -206,6 +230,8 @@ GNU extensions. <DD> <DT><SAMP>`--width=<VAR>number</VAR>´</SAMP> <DD> +<A NAME="IDX251"></A> +<A NAME="IDX252"></A> Set the output page width. Long strings in the output files will be split across multiple lines in order to ensure that each line's width (= number of screen columns) is less or equal to the given <VAR>number</VAR>. @@ -214,6 +240,9 @@ split across multiple lines in order to ensure that each line's width <DD> <DT><SAMP>`--sort-output´</SAMP> <DD> +<A NAME="IDX253"></A> +<A NAME="IDX254"></A> +<A NAME="IDX255"></A> Generate sorted output. Note that using this option makes it much harder for the translator to understand each message's context. @@ -221,6 +250,8 @@ for the translator to understand each message's context. <DD> <DT><SAMP>`--sort-by-file´</SAMP> <DD> +<A NAME="IDX256"></A> +<A NAME="IDX257"></A> Sort output by file location. </DL> @@ -235,18 +266,24 @@ Sort output by file location. <DD> <DT><SAMP>`--help´</SAMP> <DD> +<A NAME="IDX258"></A> +<A NAME="IDX259"></A> Display this help and exit. <DT><SAMP>`-V´</SAMP> <DD> <DT><SAMP>`--version´</SAMP> <DD> +<A NAME="IDX260"></A> +<A NAME="IDX261"></A> Output version information and exit. <DT><SAMP>`-v´</SAMP> <DD> <DT><SAMP>`--verbose´</SAMP> <DD> +<A NAME="IDX262"></A> +<A NAME="IDX263"></A> Increase verbosity level. <DT><SAMP>`-q´</SAMP> @@ -255,6 +292,9 @@ Increase verbosity level. <DD> <DT><SAMP>`--silent´</SAMP> <DD> +<A NAME="IDX264"></A> +<A NAME="IDX265"></A> +<A NAME="IDX266"></A> Suppress progress indicators. </DL> @@ -262,16 +302,20 @@ Suppress progress indicators. <H2><A NAME="SEC44" HREF="gettext_toc.html#TOC44">6.2 Translated Entries</A></H2> +<P> +<A NAME="IDX267"></A> +</P> <P> Each PO file entry for which the <CODE>msgstr</CODE> field has been filled with a translation, and which is not marked as fuzzy (see section <A HREF="gettext_6.html#SEC45">6.3 Fuzzy Entries</A>), -is a said to be a <EM>translated</EM> entry. Only translated entries will +is said to be a <EM>translated</EM> entry. Only translated entries will later be compiled by GNU <CODE>msgfmt</CODE> and become usable in programs. Other entry types will be excluded; translation will not occur for them. </P> <P> +<A NAME="IDX268"></A> Some commands are more specifically related to translated entry processing. </P> @@ -279,22 +323,29 @@ Some commands are more specifically related to translated entry processing. <DT><KBD>t</KBD> <DD> +<A NAME="IDX269"></A> Find the next translated entry (<CODE>po-next-translated-entry</CODE>). <DT><KBD>T</KBD> <DD> +<A NAME="IDX270"></A> Find the previous translated entry (<CODE>po-previous-translated-entry</CODE>). </DL> <P> -The commands <KBD>t</KBD> (<CODE>po-next-translated-entry</CODE>) and <KBD>M-t</KBD> +<A NAME="IDX271"></A> +<A NAME="IDX272"></A> +<A NAME="IDX273"></A> +<A NAME="IDX274"></A> +The commands <KBD>t</KBD> (<CODE>po-next-translated-entry</CODE>) and <KBD>T</KBD> (<CODE>po-previous-translated-entry</CODE>) move forwards or backwards, chasing for an translated entry. If none is found, the search is extended and wraps around in the PO file buffer. </P> <P> +<A NAME="IDX275"></A> Translated entries usually result from the translator having edited in a translation for them, section <A HREF="gettext_6.html#SEC48">6.6 Modifying Translations</A>. However, if the variable <CODE>po-auto-fuzzy-on-edit</CODE> is not <CODE>nil</CODE>, the entry having @@ -306,8 +357,13 @@ See section <A HREF="gettext_6.html#SEC45">6.3 Fuzzy Entries</A>. <H2><A NAME="SEC45" HREF="gettext_toc.html#TOC45">6.3 Fuzzy Entries</A></H2> +<P> +<A NAME="IDX276"></A> +</P> <P> +<A NAME="IDX277"></A> +<A NAME="IDX278"></A> Each PO file entry may have a set of <EM>attributes</EM>, which are qualities given a name and explicitely associated with the translation, using a special system comment. One of these attributes @@ -330,6 +386,7 @@ might mark some entries as being fuzzy. </P> <P> +<A NAME="IDX279"></A> Also, the translator may decide herself to mark an entry as fuzzy for her own convenience, when she wants to remember that the entry has to be later revisited. So, some commands are more specifically @@ -340,19 +397,26 @@ related to fuzzy entry processing. <DT><KBD>z</KBD> <DD> +<A NAME="IDX280"></A> Find the next fuzzy entry (<CODE>po-next-fuzzy-entry</CODE>). <DT><KBD>Z</KBD> <DD> +<A NAME="IDX281"></A> Find the previous fuzzy entry (<CODE>po-previous-fuzzy-entry</CODE>). <DT><KBD><KBD>TAB</KBD></KBD> <DD> +<A NAME="IDX282"></A> Remove the fuzzy attribute of the current entry (<CODE>po-unfuzzy</CODE>). </DL> <P> +<A NAME="IDX283"></A> +<A NAME="IDX284"></A> +<A NAME="IDX285"></A> +<A NAME="IDX286"></A> The commands <KBD>z</KBD> (<CODE>po-next-fuzzy-entry</CODE>) and <KBD>Z</KBD> (<CODE>po-previous-fuzzy-entry</CODE>) move forwards or backwards, chasing for a fuzzy entry. If none is found, the search is extended and wraps @@ -360,6 +424,9 @@ around in the PO file buffer. </P> <P> +<A NAME="IDX287"></A> +<A NAME="IDX288"></A> +<A NAME="IDX289"></A> The command <KBD><KBD>TAB</KBD></KBD> (<CODE>po-unfuzzy</CODE>) removes the fuzzy attribute associated with an entry, usually leaving it translated. Further, if the variable <CODE>po-auto-select-on-unfuzzy</CODE> has not @@ -381,6 +448,8 @@ to chase another entry, leaving the entry fuzzy. </P> <P> +<A NAME="IDX290"></A> +<A NAME="IDX291"></A> The translator may also use the <KBD><KBD>DEL</KBD></KBD> command (<CODE>po-fade-out-entry</CODE>) over any translated entry to mark it as being fuzzy, when she wants to easily leave a trace she wants to later return @@ -396,7 +465,10 @@ still exists. <H2><A NAME="SEC46" HREF="gettext_toc.html#TOC46">6.4 Untranslated Entries</A></H2> +<P> +<A NAME="IDX292"></A> +</P> <P> When <CODE>xgettext</CODE> originally creates a PO file, unless told otherwise, it initializes the <CODE>msgid</CODE> field with the untranslated @@ -414,6 +486,7 @@ are easily recognizable by the fact they end with <SAMP>`msgstr ""´</SAMP> </P> <P> +<A NAME="IDX293"></A> The work of the translator might be (quite naively) seen as the process of seeking for an untranslated entry, editing a translation for it, and repeating these actions until no untranslated entries remain. @@ -425,26 +498,35 @@ processing. <DT><KBD>u</KBD> <DD> +<A NAME="IDX294"></A> Find the next untranslated entry (<CODE>po-next-untranslated-entry</CODE>). <DT><KBD>U</KBD> <DD> +<A NAME="IDX295"></A> Find the previous untranslated entry (<CODE>po-previous-untransted-entry</CODE>). <DT><KBD>k</KBD> <DD> +<A NAME="IDX296"></A> Turn the current entry into an untranslated one (<CODE>po-kill-msgstr</CODE>). </DL> <P> -The commands <KBD>u</KBD> (<CODE>po-next-untranslated-entry</CODE>) and <KBD>M-u</KBD> +<A NAME="IDX297"></A> +<A NAME="IDX298"></A> +<A NAME="IDX299"></A> +<A NAME="IDX300"></A> +The commands <KBD>u</KBD> (<CODE>po-next-untranslated-entry</CODE>) and <KBD>U</KBD> (<CODE>po-previous-untransted-entry</CODE>) move forwards or backwards, chasing for an untranslated entry. If none is found, the search is extended and wraps around in the PO file buffer. </P> <P> +<A NAME="IDX301"></A> +<A NAME="IDX302"></A> An entry can be turned back into an untranslated entry by merely emptying its translation, using the command <KBD>k</KBD> (<CODE>po-kill-msgstr</CODE>). See section <A HREF="gettext_6.html#SEC48">6.6 Modifying Translations</A>. @@ -459,7 +541,10 @@ if some untranslated string still exists. <H2><A NAME="SEC47" HREF="gettext_toc.html#TOC47">6.5 Obsolete Entries</A></H2> +<P> +<A NAME="IDX303"></A> +</P> <P> By <EM>obsolete</EM> PO file entries, we mean those entries which are commented out, usually by <CODE>msgmerge</CODE> when it found that the @@ -483,6 +568,7 @@ after the fact. </P> <P> +<A NAME="IDX304"></A> Moreover, some commands are more specifically related to obsolete entry processing. @@ -491,21 +577,28 @@ entry processing. <DT><KBD>o</KBD> <DD> +<A NAME="IDX305"></A> Find the next obsolete entry (<CODE>po-next-obsolete-entry</CODE>). <DT><KBD>O</KBD> <DD> +<A NAME="IDX306"></A> Find the previous obsolete entry (<CODE>po-previous-obsolete-entry</CODE>). <DT><KBD><KBD>DEL</KBD></KBD> <DD> +<A NAME="IDX307"></A> Make an active entry obsolete, or zap out an obsolete entry (<CODE>po-fade-out-entry</CODE>). </DL> <P> -The commands <KBD>o</KBD> (<CODE>po-next-obsolete-entry</CODE>) and <KBD>M-o</KBD> +<A NAME="IDX308"></A> +<A NAME="IDX309"></A> +<A NAME="IDX310"></A> +<A NAME="IDX311"></A> +The commands <KBD>o</KBD> (<CODE>po-next-obsolete-entry</CODE>) and <KBD>O</KBD> (<CODE>po-previous-obsolete-entry</CODE>) move forwards or backwards, chasing for an obsolete entry. If none is found, the search is extended and wraps around in the PO file buffer. @@ -520,6 +613,10 @@ introducing useless <CODE>msgid</CODE> values. </P> <P> +<A NAME="IDX312"></A> +<A NAME="IDX313"></A> +<A NAME="IDX314"></A> +<A NAME="IDX315"></A> However, it is possible to comment out an active entry, so making it obsolete. GNU <CODE>gettext</CODE> utilities will later react to the disappearance of a translation by using the untranslated string. @@ -548,7 +645,11 @@ merely tries to provide handy tools for helping her to do so. <H2><A NAME="SEC48" HREF="gettext_toc.html#TOC48">6.6 Modifying Translations</A></H2> +<P> +<A NAME="IDX316"></A> +<A NAME="IDX317"></A> +</P> <P> PO mode prevents direct modification of the PO file, by the usual means Emacs gives for altering a buffer's contents. By doing so, @@ -572,32 +673,40 @@ using the following commands for modifying the translations. <DT><KBD><KBD>RET</KBD></KBD> <DD> +<A NAME="IDX318"></A> Interactively edit the translation (<CODE>po-edit-msgstr</CODE>). <DT><KBD><KBD>LFD</KBD></KBD> <DD> <DT><KBD>C-j</KBD> <DD> +<A NAME="IDX319"></A> +<A NAME="IDX320"></A> Reinitialize the translation with the original, untranslated string (<CODE>po-msgid-to-msgstr</CODE>). <DT><KBD>k</KBD> <DD> +<A NAME="IDX321"></A> Save the translation on the kill ring, and delete it (<CODE>po-kill-msgstr</CODE>). <DT><KBD>w</KBD> <DD> +<A NAME="IDX322"></A> Save the translation on the kill ring, without deleting it (<CODE>po-kill-ring-save-msgstr</CODE>). <DT><KBD>y</KBD> <DD> +<A NAME="IDX323"></A> Replace the translation, taking the new from the kill ring (<CODE>po-yank-msgstr</CODE>). </DL> <P> +<A NAME="IDX324"></A> +<A NAME="IDX325"></A> The command <KBD><KBD>RET</KBD></KBD> (<CODE>po-edit-msgstr</CODE>) opens a new Emacs window meant to edit in a new translation, or to modify an already existing translation. The new window contains a copy of the translation taken from @@ -610,6 +719,9 @@ for more information. </P> <P> +<A NAME="IDX326"></A> +<A NAME="IDX327"></A> +<A NAME="IDX328"></A> The command <KBD><KBD>LFD</KBD></KBD> (<CODE>po-msgid-to-msgstr</CODE>) initializes, or reinitializes the translation with the original string. This command is normally used when the translator wants to redo a fresh translation of @@ -617,6 +729,7 @@ the original string, disregarding any previous work. </P> <P> +<A NAME="IDX329"></A> It is possible to arrange so, whenever editing an untranslated entry, the <KBD><KBD>LFD</KBD></KBD> command be automatically executed. If you set <CODE>po-auto-edit-with-msgid</CODE> to <CODE>t</CODE>, the translation gets @@ -625,6 +738,7 @@ The default value for <CODE>po-auto-edit-with-msgid</CODE> is <CODE>nil</CODE>. </P> <P> +<A NAME="IDX330"></A> In fact, whether it is best to start a translation with an empty string, or rather with a copy of the original string, is a matter of taste or habit. Sometimes, the source language and the @@ -638,6 +752,11 @@ if this requires some extra editing work to get rid of the original. </P> <P> +<A NAME="IDX331"></A> +<A NAME="IDX332"></A> +<A NAME="IDX333"></A> +<A NAME="IDX334"></A> +<A NAME="IDX335"></A> The command <KBD>k</KBD> (<CODE>po-kill-msgstr</CODE>) merely empties the translation string, so turning the entry into an untranslated one. But while doing so, its previous contents is put apart in @@ -669,6 +788,8 @@ entries, the translation is also uncommented prior to saving. </P> <P> +<A NAME="IDX336"></A> +<A NAME="IDX337"></A> The command <KBD>y</KBD> (<CODE>po-yank-msgstr</CODE>) completely replaces the translation of the current entry by a string taken from the kill ring. Following Emacs terminology, we then say that the replacement @@ -702,6 +823,7 @@ yanking commands themselves. </P> <P> +<A NAME="IDX338"></A> To better illustrate the operation of killing and yanking, let's use an actual example, taken from a common situation. When the programmer slightly modifies some string right in the program, his @@ -740,7 +862,11 @@ See section `Keyboard Macros' in <CITE>The Emacs Editor</CITE>. <H2><A NAME="SEC49" HREF="gettext_toc.html#TOC49">6.7 Modifying Comments</A></H2> +<P> +<A NAME="IDX339"></A> +<A NAME="IDX340"></A> +</P> <P> Any translation work done seriously will raise many linguistic difficulties, for which decisions have to be made, and the choices @@ -767,20 +893,24 @@ so the general indications given for those apply here. See section <A HREF="get <DT><KBD>#</KBD> <DD> +<A NAME="IDX341"></A> Interactively edit the translator comments (<CODE>po-edit-comment</CODE>). <DT><KBD>K</KBD> <DD> +<A NAME="IDX342"></A> Save the translator comments on the kill ring, and delete it (<CODE>po-kill-comment</CODE>). <DT><KBD>W</KBD> <DD> +<A NAME="IDX343"></A> Save the translator comments on the kill ring, without deleting it (<CODE>po-kill-ring-save-comment</CODE>). <DT><KBD>Y</KBD> <DD> +<A NAME="IDX344"></A> Replace the translator comments, taking the new from the kill ring (<CODE>po-yank-comment</CODE>). @@ -796,6 +926,8 @@ See section <A HREF="gettext_6.html#SEC48">6.6 Modifying Translations</A>. </P> <P> +<A NAME="IDX345"></A> +<A NAME="IDX346"></A> The command <KBD>#</KBD> (<CODE>po-edit-comment</CODE>) opens a new Emacs window containing a copy of the translator comments on the current PO file entry. If there are no such comments, PO mode understands that the translator wants @@ -809,11 +941,18 @@ See section <A HREF="gettext_6.html#SEC50">6.8 Details of Sub Edition</A>, for </P> <P> +<A NAME="IDX347"></A> Functions found on <CODE>po-subedit-mode-hook</CODE>, if any, are executed after the string has been inserted in the edit buffer. </P> <P> +<A NAME="IDX348"></A> +<A NAME="IDX349"></A> +<A NAME="IDX350"></A> +<A NAME="IDX351"></A> +<A NAME="IDX352"></A> +<A NAME="IDX353"></A> The command <KBD>K</KBD> (<CODE>po-kill-comment</CODE>) gets rid of all translator comments, while saving those comments on the kill ring. The command <KBD>W</KBD> (<CODE>po-kill-ring-save-comment</CODE>) takes @@ -853,7 +992,10 @@ regular Emacs commands <KBD>C-y</KBD> (<CODE>yank</CODE>) and <KBD>M-y</KBD> <H2><A NAME="SEC50" HREF="gettext_toc.html#TOC50">6.8 Details of Sub Edition</A></H2> +<P> +<A NAME="IDX354"></A> +</P> <P> The PO subedit minor mode has a few peculiarities worth being described in fuller detail. It installs a few commands over the usual editing set @@ -864,28 +1006,36 @@ of Emacs, which are described below. <DT><KBD>C-c C-c</KBD> <DD> +<A NAME="IDX355"></A> Complete edition (<CODE>po-subedit-exit</CODE>). <DT><KBD>C-c C-k</KBD> <DD> +<A NAME="IDX356"></A> Abort edition (<CODE>po-subedit-abort</CODE>). <DT><KBD>C-c C-a</KBD> <DD> +<A NAME="IDX357"></A> Consult auxiliary PO files (<CODE>po-subedit-cycle-auxiliary</CODE>). </DL> <P> +<A NAME="IDX358"></A> +<A NAME="IDX359"></A> +<A NAME="IDX360"></A> The window's contents represents a translation for a given message, or a translator comment. The translator may modify this window to -her heart's content. Once this done, the command <KBD>C-c C-c</KBD> +her heart's content. Once this is done, the command <KBD>C-c C-c</KBD> (<CODE>po-subedit-exit</CODE>) may be used to return the edited translation into the PO file, replacing the original translation, even if it moved out of sight or if buffers were switched. </P> <P> +<A NAME="IDX361"></A> +<A NAME="IDX362"></A> If the translator becomes unsatisfied with her translation or comment, to the extent she prefers keeping what was existent prior to the <KBD><KBD>RET</KBD></KBD> or <KBD>#</KBD> command, she may use the command <KBD>C-c C-k</KBD> @@ -896,6 +1046,8 @@ whole effect of last edition. </P> <P> +<A NAME="IDX363"></A> +<A NAME="IDX364"></A> The command <KBD>C-c C-a</KBD> (<CODE>po-subedit-cycle-auxiliary</CODE>) allows for glancing through translations already achieved in other languages, directly while editing the current @@ -929,6 +1081,7 @@ in the editing window, as ending with two <KBD><</KBD> in a row. </P> <P> +<A NAME="IDX365"></A> When a translation (or a comment) is being edited, the translator may move the cursor back into the PO file buffer and freely move to other entries, browsing at will. If, with an edition pending, the translator wanders in the @@ -941,6 +1094,7 @@ the translator should better be comfortable at handling many Emacs windows! </P> <P> +<A NAME="IDX366"></A> Pending subedits may be completed or aborted in any order, regardless of how or when they were started. When many subedits are pending and the translator asks for quitting the PO file (with the <KBD>q</KBD> command), subedits @@ -950,7 +1104,12 @@ are automatically resumed one at a time, so she may decide for each of them. <H2><A NAME="SEC51" HREF="gettext_toc.html#TOC51">6.9 C Sources Context</A></H2> +<P> +<A NAME="IDX367"></A> +<A NAME="IDX368"></A> +<A NAME="IDX369"></A> +</P> <P> PO mode is particularily powerful when used with PO files created through GNU <CODE>gettext</CODE> utilities, as those utilities @@ -985,6 +1144,7 @@ overall organization, than to programmation itself. </P> <P> +<A NAME="IDX370"></A> The following commands are meant to help the translator at getting program source context for a PO file entry. @@ -993,27 +1153,35 @@ program source context for a PO file entry. <DT><KBD>s</KBD> <DD> +<A NAME="IDX371"></A> Resume the display of a program source context, or cycle through them (<CODE>po-cycle-source-reference</CODE>). <DT><KBD>M-s</KBD> <DD> +<A NAME="IDX372"></A> Display of a program source context selected by menu (<CODE>po-select-source-reference</CODE>). <DT><KBD>S</KBD> <DD> +<A NAME="IDX373"></A> Add a directory to the search path for source files (<CODE>po-consider-source-path</CODE>). <DT><KBD>M-S</KBD> <DD> +<A NAME="IDX374"></A> Delete a directory from the search path for source files (<CODE>po-ignore-source-path</CODE>). </DL> <P> +<A NAME="IDX375"></A> +<A NAME="IDX376"></A> +<A NAME="IDX377"></A> +<A NAME="IDX378"></A> The commands <KBD>s</KBD> (<CODE>po-cycle-source-reference</CODE>) and <KBD>M-s</KBD> (<CODE>po-select-source-reference</CODE>) both open another window displaying some source program file, and already positioned in such a way that @@ -1058,6 +1226,10 @@ available for a single string to translate. </P> <P> +<A NAME="IDX379"></A> +<A NAME="IDX380"></A> +<A NAME="IDX381"></A> +<A NAME="IDX382"></A> Program source files are usually found relative to where the PO file stands. As a special provision, when this fails, the file is also looked for, but relative to the directory immediately above it. @@ -1076,7 +1248,10 @@ one of the directories she does not want anymore on the search path. <H2><A NAME="SEC52" HREF="gettext_toc.html#TOC52">6.10 Consulting Auxiliary PO Files</A></H2> +<P> +<A NAME="IDX383"></A> +</P> <P> PO mode is able to help the knowledgeable translator, being fluent in many languages, at taking advantage of translations already achieved @@ -1087,6 +1262,8 @@ at once, for translators preferring to work in this way. </P> <P> +<A NAME="IDX384"></A> +<A NAME="IDX385"></A> An <EM>auxiliary</EM> PO file is an existing PO file meant for the same package the translator is working on, but targeted to a different mother tongue language. Commands exist for declaring and handling auxiliary @@ -1101,31 +1278,41 @@ Here are the auxiliary file commands available in PO mode. <DT><KBD>a</KBD> <DD> +<A NAME="IDX386"></A> Seek auxiliary files for another translation for the same entry (<CODE>po-cycle-auxiliary</CODE>). <DT><KBD>C-c C-a</KBD> <DD> +<A NAME="IDX387"></A> Switch to a particular auxiliary file (<CODE>po-select-auxiliary</CODE>). <DT><KBD>A</KBD> <DD> +<A NAME="IDX388"></A> Declare this PO file as an auxiliary file (<CODE>po-consider-as-auxiliary</CODE>). <DT><KBD>M-A</KBD> <DD> +<A NAME="IDX389"></A> Remove this PO file from the list of auxiliary files (<CODE>po-ignore-as-auxiliary</CODE>). </DL> <P> +<A NAME="IDX390"></A> +<A NAME="IDX391"></A> +<A NAME="IDX392"></A> +<A NAME="IDX393"></A> Command <KBD>A</KBD> (<CODE>po-consider-as-auxiliary</CODE>) adds the current PO file to the list of auxiliary files, while command <KBD>M-A</KBD> (<CODE>po-ignore-as-auxiliary</CODE> just removes it. </P> <P> +<A NAME="IDX394"></A> +<A NAME="IDX395"></A> The command <KBD>a</KBD> (<CODE>po-cycle-auxiliary</CODE>) seeks all auxiliary PO files, round-robin, searching for a translated entry in some other language having an <CODE>msgid</CODE> field identical as the one for the current entry. @@ -1137,6 +1324,8 @@ so repeating <KBD>a</KBD> will eventually yield back the original PO file. </P> <P> +<A NAME="IDX396"></A> +<A NAME="IDX397"></A> The command <KBD>C-c C-a</KBD> (<CODE>po-select-auxiliary</CODE>) asks the translator for her choice of a particular auxiliary file, with completion, and then switches to that selected PO file. The command also checks if @@ -1156,6 +1345,7 @@ their <CODE>msgid</CODE> entries written by the same GNU <CODE>gettext</CODE> to </P> <P> +<A NAME="IDX398"></A> However, PO files initially created by PO mode itself, while marking strings in source files, are normalised differently. So are PO files resulting of the the <SAMP>`M-x normalize´</SAMP> command. Until these @@ -1166,8 +1356,12 @@ fully resolved, the translator should stay aware of normalisation issues. <H2><A NAME="SEC53" HREF="gettext_toc.html#TOC53">6.11 Using Translation Compendia</A></H2> +<P> +<A NAME="IDX399"></A> +</P> <P> +<A NAME="IDX400"></A> A <EM>compendium</EM> is a special PO file containing a set of translations recurring in many different packages. The translator can use gettext tools to build a new compendium, to add entries to her @@ -1179,10 +1373,14 @@ already translated entries, from translations kept in the compendium. <H3><A NAME="SEC54" HREF="gettext_toc.html#TOC54">6.11.1 Creating Compendia</A></H3> +<P> +<A NAME="IDX401"></A> +<A NAME="IDX402"></A> +</P> <P> Basically every PO file consisting of translated entries only can be -declared as a valid compendium. Often the translater wants to have +declared as a valid compendium. Often the translator wants to have special compendia; let's consider two cases: <CITE>concatenating PO files</CITE> and <CITE>extracting a message subset from a PO file</CITE>. @@ -1192,8 +1390,10 @@ files</CITE> and <CITE>extracting a message subset from a PO file</CITE>. <H4><A NAME="SEC55" HREF="gettext_toc.html#TOC55">6.11.1.1 Concatenate PO Files</A></H4> <P> +<A NAME="IDX403"></A> +<A NAME="IDX404"></A> To concatenate several valid PO files into one compendium file you can -use @command{msgcomm} or @command{msgcat} (the latter preferred): +use <SAMP>`msgcomm´</SAMP> or <SAMP>`msgcat´</SAMP> (the latter preferred): </P> @@ -1202,9 +1402,9 @@ msgcat -o compendium.po file1.po file2.po </PRE> <P> -By default, @command{msgcat} will accumulate divergent translations +By default, <CODE>msgcat</CODE> will accumulate divergent translations for the same string. Those occurences will be marked as <CODE>fuzzy</CODE> -and highly visible decorated; calling @command{msgcat} on +and highly visible decorated; calling <CODE>msgcat</CODE> on <TT>`file1.po´</TT>: </P> @@ -1254,7 +1454,7 @@ finally to remove the <CODE>fuzzy</CODE> mark. <P> If the translator knows in advance the first found translation of a message is always the best translation she can make use to the -@option{--use-first} switch: +<SAMP>`--use-first´</SAMP> switch: </P> @@ -1264,17 +1464,17 @@ msgcat --use-first -o compendium.po file1.po file2.po <P> A good compendium file must not contain <CODE>fuzzy</CODE> or untranslated -entries. If input files are "dirty" you must use the -@option{--translated-only} switch (FIXME: TBI) or a manual way to pre- -or postprocess. (FIXME: Handling of obsolete entries at this point? -Proposal: By default, make them valid entries. -@option{--no-obsolete-entries}.) +entries. If input files are "dirty" you must preprocess the input +files or postprocess the result using <SAMP>`msgattrib --translated --no-fuzzy´</SAMP>. </P> <H4><A NAME="SEC56" HREF="gettext_toc.html#TOC56">6.11.1.2 Extract a Message Subset from a PO File</A></H4> +<P> +<A NAME="IDX405"></A> +</P> <P> Nobody wants to translate the same messages again and again; thus you may wish to have a compendium file containing <TT>`getopt.c´</TT> messages. @@ -1282,8 +1482,7 @@ may wish to have a compendium file containing <TT>`getopt.c´</TT> messages </P> <P> To extract a message subset (e.g., all <TT>`getopt.c´</TT> messages) from an -existing PO file into one compendium file you can use -@command{msggrep}: +existing PO file into one compendium file you can use <SAMP>`msggrep´</SAMP>: </P> @@ -1303,7 +1502,10 @@ or to update an already existing translation. <H4><A NAME="SEC58" HREF="gettext_toc.html#TOC58">6.11.2.1 Initialize a New Translation File</A></H4> +<P> +<A NAME="IDX406"></A> +</P> <P> Since a PO file with translations does not exist the translator can merely use <TT>`/dev/null´</TT> to fake the "old" translation file. @@ -1317,11 +1519,14 @@ msgmerge --compendium compendium.po -o file.po /dev/null file.pot <H4><A NAME="SEC59" HREF="gettext_toc.html#TOC59">6.11.2.2 Update an Existing Translation File</A></H4> +<P> +<A NAME="IDX407"></A> +</P> <P> Concatenate the compendium file(s) and the existing PO, merge the result with the POT file and remove the obsolete entries (optional, -here done using @command{sed}): +here done using <SAMP>`sed´</SAMP>): </P> @@ -1331,6 +1536,6 @@ msgmerge update.po file.pot | sed -e '/^#~/d' > file.po </PRE> <P><HR><P> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_5.html">previous</A>, <A HREF="gettext_7.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_5.html">previous</A>, <A HREF="gettext_7.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. </BODY> </HTML> diff --git a/doc/gettext_7.html b/doc/gettext_7.html index e837d53..0de9a89 100644 --- a/doc/gettext_7.html +++ b/doc/gettext_7.html @@ -1,17 +1,20 @@ <HTML> <HEAD> <!-- This HTML file has been created by texi2html 1.52a - from gettext.texi on 31 January 2002 --> + from gettext.texi on 7 March 2002 --> <TITLE>GNU gettext utilities - 7 Manipulating PO Files</TITLE> </HEAD> <BODY> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_6.html">previous</A>, <A HREF="gettext_8.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_6.html">previous</A>, <A HREF="gettext_8.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. <P><HR><P> <H1><A NAME="SEC60" HREF="gettext_toc.html#TOC60">7 Manipulating PO Files</A></H1> +<P> +<A NAME="IDX408"></A> +</P> <P> Sometimes it is necessary to manipulate PO files in a way that is better performed automatically than by hand. GNU <CODE>gettext</CODE> includes a @@ -19,6 +22,7 @@ complete set of tools for this purpose. </P> <P> +<A NAME="IDX409"></A> When merging two packages into a single package, the resulting POT file will be the concatenation of the two packages' POT files. Thus the maintainer must concatenate the two existing package translations into @@ -28,6 +32,7 @@ possible conflicts that arose during the merge. </P> <P> +<A NAME="IDX410"></A> When a translator takes over the translation job from another translator, but she uses a different character encoding in her locale, she will convert the catalog to her character encoding. This is best done through @@ -43,9 +48,11 @@ that source file and use <SAMP>`msgmerge´</SAMP>. </P> <P> +<A NAME="IDX411"></A> +<A NAME="IDX412"></A> When a translator wants to adjust some translation catalog for a special -dialect or orthography - for example, German as written in Switzerland -versus German as written in Germany -, she needs to apply some text +dialect or orthography -- for example, German as written in Switzerland +versus German as written in Germany -- she needs to apply some text processing to every message in the catalog. The tool for doing this is <SAMP>`msgfilter´</SAMP>. @@ -59,12 +66,14 @@ that's why it's better to use the original POT file if available. </P> <P> +<A NAME="IDX413"></A> When a translator wants to check her translations, for example according to orthography rules or using a non-interactive spell checker, she can do so using the <SAMP>`msgexec´</SAMP> program. </P> <P> +<A NAME="IDX414"></A> When third party tools create PO or POT files, sometimes duplicates cannot be avoided. But the GNU <CODE>gettext</CODE> tools give an error when they encounter duplicate msgids in the same file and in the same domain. @@ -82,6 +91,7 @@ completely translated. </P> <P> +<A NAME="IDX415"></A> <SAMP>`msgattrib´</SAMP> can be used to select and extract only the fuzzy or untranslated messages of a translation catalog. @@ -96,12 +106,17 @@ catalogs. It copies each message's msgid to its msgstr. <H2><A NAME="SEC61" HREF="gettext_toc.html#TOC61">7.1 Invoking the <CODE>msgcat</CODE> Program</A></H2> +<P> +<A NAME="IDX416"></A> +<A NAME="IDX417"></A> <PRE> msgcat [<VAR>option</VAR>] [<VAR>inputfile</VAR>]... </PRE> <P> +<A NAME="IDX418"></A> +<A NAME="IDX419"></A> The <CODE>msgcat</CODE> program concatenates and merges the specified PO files. It finds messages which are common to two or more of the specified PO files. By using the <CODE>--more-than</CODE> option, greater commonality may be requested @@ -127,6 +142,8 @@ Input files. <DD> <DT><SAMP>`--files-from=<VAR>file</VAR>´</SAMP> <DD> +<A NAME="IDX420"></A> +<A NAME="IDX421"></A> Read the names of the input files from <VAR>file</VAR> instead of getting them from the command line. @@ -134,6 +151,8 @@ them from the command line. <DD> <DT><SAMP>`--directory=<VAR>directory</VAR>´</SAMP> <DD> +<A NAME="IDX422"></A> +<A NAME="IDX423"></A> Add <VAR>directory</VAR> to the list of directories. Source files are searched relative to this list of directories. The resulting <TT>`.po´</TT> file will be written relative to the current directory, though. @@ -154,11 +173,14 @@ If <VAR>inputfile</VAR> is <SAMP>`-´</SAMP>, standard input is read. <DD> <DT><SAMP>`--output-file=<VAR>file</VAR>´</SAMP> <DD> +<A NAME="IDX424"></A> +<A NAME="IDX425"></A> Write output to specified file. </DL> <P> +<A NAME="IDX426"></A> The results are written to standard output if no output file is specified or if it is <SAMP>`-´</SAMP>. @@ -173,6 +195,8 @@ or if it is <SAMP>`-´</SAMP>. <DD> <DT><SAMP>`--less-than=<VAR>number</VAR>´</SAMP> <DD> +<A NAME="IDX427"></A> +<A NAME="IDX428"></A> Print messages with less than <VAR>number</VAR> definitions, defaults to infinite if not set. @@ -180,6 +204,8 @@ if not set. <DD> <DT><SAMP>`--more-than=<VAR>number</VAR>´</SAMP> <DD> +<A NAME="IDX429"></A> +<A NAME="IDX430"></A> Print messages with more than <VAR>number</VAR> definitions, defaults to 0 if not set. @@ -187,6 +213,8 @@ set. <DD> <DT><SAMP>`--unique´</SAMP> <DD> +<A NAME="IDX431"></A> +<A NAME="IDX432"></A> Shorthand for <SAMP>`--less-than=2´</SAMP>. Requests that only unique messages be printed. @@ -202,35 +230,45 @@ printed. <DD> <DT><SAMP>`--to-code=<VAR>name</VAR>´</SAMP> <DD> +<A NAME="IDX433"></A> +<A NAME="IDX434"></A> Specify encoding for output. <DT><SAMP>`--use-first´</SAMP> <DD> +<A NAME="IDX435"></A> Use first available translation for each message. Don't merge several translations into one. <DT><SAMP>`--force-po´</SAMP> <DD> +<A NAME="IDX436"></A> Always write an output file even if it contains no message. <DT><SAMP>`-i´</SAMP> <DD> <DT><SAMP>`--indent´</SAMP> <DD> +<A NAME="IDX437"></A> +<A NAME="IDX438"></A> Write the .po file using indented style. <DT><SAMP>`--no-location´</SAMP> <DD> +<A NAME="IDX439"></A> Do not write <SAMP>`#: <VAR>filename</VAR>:<VAR>line</VAR>´</SAMP> lines. <DT><SAMP>`-n´</SAMP> <DD> <DT><SAMP>`--add-location´</SAMP> <DD> +<A NAME="IDX440"></A> +<A NAME="IDX441"></A> Generate <SAMP>`#: <VAR>filename</VAR>:<VAR>line</VAR>´</SAMP> lines (default). <DT><SAMP>`--strict´</SAMP> <DD> +<A NAME="IDX442"></A> Write out a strict Uniforum conforming PO file. Note that this Uniforum format should be avoided because it doesn't support the GNU extensions. @@ -239,6 +277,8 @@ GNU extensions. <DD> <DT><SAMP>`--width=<VAR>number</VAR>´</SAMP> <DD> +<A NAME="IDX443"></A> +<A NAME="IDX444"></A> Set the output page width. Long strings in the output files will be split across multiple lines in order to ensure that each line's width (= number of screen columns) is less or equal to the given <VAR>number</VAR>. @@ -247,6 +287,9 @@ split across multiple lines in order to ensure that each line's width <DD> <DT><SAMP>`--sort-output´</SAMP> <DD> +<A NAME="IDX445"></A> +<A NAME="IDX446"></A> +<A NAME="IDX447"></A> Generate sorted output. Note that using this option makes it much harder for the translator to understand each message's context. @@ -254,6 +297,8 @@ for the translator to understand each message's context. <DD> <DT><SAMP>`--sort-by-file´</SAMP> <DD> +<A NAME="IDX448"></A> +<A NAME="IDX449"></A> Sort output by file location. </DL> @@ -268,12 +313,16 @@ Sort output by file location. <DD> <DT><SAMP>`--help´</SAMP> <DD> +<A NAME="IDX450"></A> +<A NAME="IDX451"></A> Display this help and exit. <DT><SAMP>`-V´</SAMP> <DD> <DT><SAMP>`--version´</SAMP> <DD> +<A NAME="IDX452"></A> +<A NAME="IDX453"></A> Output version information and exit. </DL> @@ -282,12 +331,16 @@ Output version information and exit. <H2><A NAME="SEC67" HREF="gettext_toc.html#TOC67">7.2 Invoking the <CODE>msgconv</CODE> Program</A></H2> +<P> +<A NAME="IDX454"></A> +<A NAME="IDX455"></A> <PRE> msgconv [<VAR>option</VAR>] [<VAR>inputfile</VAR>] </PRE> <P> +<A NAME="IDX456"></A> The <CODE>msgconv</CODE> program converts a translation catalog to a different character encoding. @@ -306,6 +359,8 @@ Input PO file. <DD> <DT><SAMP>`--directory=<VAR>directory</VAR>´</SAMP> <DD> +<A NAME="IDX457"></A> +<A NAME="IDX458"></A> Add <VAR>directory</VAR> to the list of directories. Source files are searched relative to this list of directories. The resulting <TT>`.po´</TT> file will be written relative to the current directory, though. @@ -326,6 +381,8 @@ If no <VAR>inputfile</VAR> is given or if it is <SAMP>`-´</SAMP>, standard <DD> <DT><SAMP>`--output-file=<VAR>file</VAR>´</SAMP> <DD> +<A NAME="IDX459"></A> +<A NAME="IDX460"></A> Write output to specified file. </DL> @@ -345,6 +402,8 @@ or if it is <SAMP>`-´</SAMP>. <DD> <DT><SAMP>`--to-code=<VAR>name</VAR>´</SAMP> <DD> +<A NAME="IDX461"></A> +<A NAME="IDX462"></A> Specify encoding for output. </DL> @@ -361,24 +420,30 @@ The default encoding is the current locale's encoding. <DT><SAMP>`--force-po´</SAMP> <DD> +<A NAME="IDX463"></A> Always write an output file even if it contains no message. <DT><SAMP>`-i´</SAMP> <DD> <DT><SAMP>`--indent´</SAMP> <DD> +<A NAME="IDX464"></A> +<A NAME="IDX465"></A> Write the .po file using indented style. <DT><SAMP>`--no-location´</SAMP> <DD> +<A NAME="IDX466"></A> Do not write <SAMP>`#: <VAR>filename</VAR>:<VAR>line</VAR>´</SAMP> lines. <DT><SAMP>`--add-location´</SAMP> <DD> +<A NAME="IDX467"></A> Generate <SAMP>`#: <VAR>filename</VAR>:<VAR>line</VAR>´</SAMP> lines (default). <DT><SAMP>`--strict´</SAMP> <DD> +<A NAME="IDX468"></A> Write out a strict Uniforum conforming PO file. Note that this Uniforum format should be avoided because it doesn't support the GNU extensions. @@ -387,6 +452,8 @@ GNU extensions. <DD> <DT><SAMP>`--width=<VAR>number</VAR>´</SAMP> <DD> +<A NAME="IDX469"></A> +<A NAME="IDX470"></A> Set the output page width. Long strings in the output files will be split across multiple lines in order to ensure that each line's width (= number of screen columns) is less or equal to the given <VAR>number</VAR>. @@ -395,6 +462,8 @@ split across multiple lines in order to ensure that each line's width <DD> <DT><SAMP>`--sort-output´</SAMP> <DD> +<A NAME="IDX471"></A> +<A NAME="IDX472"></A> Generate sorted output. Note that using this option makes it much harder for the translator to understand each message's context. @@ -402,6 +471,8 @@ for the translator to understand each message's context. <DD> <DT><SAMP>`--sort-by-file´</SAMP> <DD> +<A NAME="IDX473"></A> +<A NAME="IDX474"></A> Sort output by file location. </DL> @@ -416,12 +487,16 @@ Sort output by file location. <DD> <DT><SAMP>`--help´</SAMP> <DD> +<A NAME="IDX475"></A> +<A NAME="IDX476"></A> Display this help and exit. <DT><SAMP>`-V´</SAMP> <DD> <DT><SAMP>`--version´</SAMP> <DD> +<A NAME="IDX477"></A> +<A NAME="IDX478"></A> Output version information and exit. </DL> @@ -430,12 +505,16 @@ Output version information and exit. <H2><A NAME="SEC73" HREF="gettext_toc.html#TOC73">7.3 Invoking the <CODE>msggrep</CODE> Program</A></H2> +<P> +<A NAME="IDX479"></A> +<A NAME="IDX480"></A> <PRE> msggrep [<VAR>option</VAR>] [<VAR>inputfile</VAR>] </PRE> <P> +<A NAME="IDX481"></A> The <CODE>msggrep</CODE> program extracts all messages of a translation catalog that match a given pattern or belong to some given source files. @@ -454,6 +533,8 @@ Input PO file. <DD> <DT><SAMP>`--directory=<VAR>directory</VAR>´</SAMP> <DD> +<A NAME="IDX482"></A> +<A NAME="IDX483"></A> Add <VAR>directory</VAR> to the list of directories. Source files are searched relative to this list of directories. The resulting <TT>`.po´</TT> file will be written relative to the current directory, though. @@ -474,6 +555,8 @@ If no <VAR>inputfile</VAR> is given or if it is <SAMP>`-´</SAMP>, standard <DD> <DT><SAMP>`--output-file=<VAR>file</VAR>´</SAMP> <DD> +<A NAME="IDX484"></A> +<A NAME="IDX485"></A> Write output to specified file. </DL> @@ -489,7 +572,8 @@ or if it is <SAMP>`-´</SAMP>. <PRE> - [-N <VAR>sourcefile</VAR>]... [-M <VAR>domainname</VAR>]... [-K <VAR>msgid-pattern</VAR>] [-T <VAR>msgstr-pattern</VAR>] + [-N <VAR>sourcefile</VAR>]... [-M <VAR>domainname</VAR>]... + [-K <VAR>msgid-pattern</VAR>] [-T <VAR>msgstr-pattern</VAR>] [-C <VAR>comment-pattern</VAR>] </PRE> <P> @@ -505,7 +589,10 @@ A message is selected if <VAR>msgid-pattern</VAR>, <LI>or if <SAMP>`-T´</SAMP> is given and its translation (msgstr) matches - <VAR>msgstr-pattern</VAR>. + <VAR>msgstr-pattern</VAR>, +<LI>or if <SAMP>`-C´</SAMP> is given and the translator's comment matches + + <VAR>comment-pattern</VAR>. </UL> <P> @@ -531,6 +618,8 @@ expressions if -E is given, or fixed strings if -F is given. <DD> <DT><SAMP>`--location=<VAR>sourcefile</VAR>´</SAMP> <DD> +<A NAME="IDX486"></A> +<A NAME="IDX487"></A> Select messages extracted from <VAR>sourcefile</VAR>. <VAR>sourcefile</VAR> can be either a literal file name or a wildcard pattern. @@ -538,48 +627,64 @@ either a literal file name or a wildcard pattern. <DD> <DT><SAMP>`--domain=<VAR>domainname</VAR>´</SAMP> <DD> +<A NAME="IDX488"></A> +<A NAME="IDX489"></A> Select messages belonging to domain <VAR>domainname</VAR>. <DT><SAMP>`-K´</SAMP> <DD> <DT><SAMP>`--msgid´</SAMP> <DD> +<A NAME="IDX490"></A> +<A NAME="IDX491"></A> Start of patterns for the msgid. <DT><SAMP>`-T´</SAMP> <DD> <DT><SAMP>`--msgstr´</SAMP> <DD> +<A NAME="IDX492"></A> +<A NAME="IDX493"></A> Start of patterns for the msgstr. <DT><SAMP>`-E´</SAMP> <DD> <DT><SAMP>`--extended-regexp´</SAMP> <DD> +<A NAME="IDX494"></A> +<A NAME="IDX495"></A> Specify that <VAR>pattern</VAR> is an extended regular expression. <DT><SAMP>`-F´</SAMP> <DD> <DT><SAMP>`--fixed-strings´</SAMP> <DD> +<A NAME="IDX496"></A> +<A NAME="IDX497"></A> Specify that <VAR>pattern</VAR> is a set of newline-separated strings. <DT><SAMP>`-e <VAR>pattern</VAR>´</SAMP> <DD> <DT><SAMP>`--regexp=<VAR>pattern</VAR>´</SAMP> <DD> +<A NAME="IDX498"></A> +<A NAME="IDX499"></A> Use <VAR>pattern</VAR> as a regular expression. <DT><SAMP>`-f <VAR>file</VAR>´</SAMP> <DD> <DT><SAMP>`--file=<VAR>file</VAR>´</SAMP> <DD> +<A NAME="IDX500"></A> +<A NAME="IDX501"></A> Obtain <VAR>pattern</VAR> from <VAR>file</VAR>. <DT><SAMP>`-i´</SAMP> <DD> <DT><SAMP>`--ignore-case´</SAMP> <DD> +<A NAME="IDX502"></A> +<A NAME="IDX503"></A> Ignore case distinctions. </DL> @@ -592,22 +697,27 @@ Ignore case distinctions. <DT><SAMP>`--force-po´</SAMP> <DD> +<A NAME="IDX504"></A> Always write an output file even if it contains no message. <DT><SAMP>`--indent´</SAMP> <DD> +<A NAME="IDX505"></A> Write the .po file using indented style. <DT><SAMP>`--no-location´</SAMP> <DD> +<A NAME="IDX506"></A> Do not write <SAMP>`#: <VAR>filename</VAR>:<VAR>line</VAR>´</SAMP> lines. <DT><SAMP>`--add-location´</SAMP> <DD> +<A NAME="IDX507"></A> Generate <SAMP>`#: <VAR>filename</VAR>:<VAR>line</VAR>´</SAMP> lines (default). <DT><SAMP>`--strict´</SAMP> <DD> +<A NAME="IDX508"></A> Write out a strict Uniforum conforming PO file. Note that this Uniforum format should be avoided because it doesn't support the GNU extensions. @@ -616,17 +726,21 @@ GNU extensions. <DD> <DT><SAMP>`--width=<VAR>number</VAR>´</SAMP> <DD> +<A NAME="IDX509"></A> +<A NAME="IDX510"></A> Set the output page width. Long strings in the output files will be split across multiple lines in order to ensure that each line's width (= number of screen columns) is less or equal to the given <VAR>number</VAR>. <DT><SAMP>`--sort-output´</SAMP> <DD> +<A NAME="IDX511"></A> Generate sorted output. Note that using this option makes it much harder for the translator to understand each message's context. <DT><SAMP>`--sort-by-file´</SAMP> <DD> +<A NAME="IDX512"></A> Sort output by file location. </DL> @@ -641,12 +755,16 @@ Sort output by file location. <DD> <DT><SAMP>`--help´</SAMP> <DD> +<A NAME="IDX513"></A> +<A NAME="IDX514"></A> Display this help and exit. <DT><SAMP>`-V´</SAMP> <DD> <DT><SAMP>`--version´</SAMP> <DD> +<A NAME="IDX515"></A> +<A NAME="IDX516"></A> Output version information and exit. </DL> @@ -655,12 +773,16 @@ Output version information and exit. <H2><A NAME="SEC79" HREF="gettext_toc.html#TOC79">7.4 Invoking the <CODE>msgfilter</CODE> Program</A></H2> +<P> +<A NAME="IDX517"></A> +<A NAME="IDX518"></A> <PRE> msgfilter [<VAR>option</VAR>] <VAR>filter</VAR> [<VAR>filter-option</VAR>] </PRE> <P> +<A NAME="IDX519"></A> The <CODE>msgfilter</CODE> program applies a filter to all translations of a translation catalog. @@ -675,12 +797,16 @@ translation catalog. <DD> <DT><SAMP>`--input=<VAR>inputfile</VAR>´</SAMP> <DD> +<A NAME="IDX520"></A> +<A NAME="IDX521"></A> Input PO file. <DT><SAMP>`-D <VAR>directory</VAR>´</SAMP> <DD> <DT><SAMP>`--directory=<VAR>directory</VAR>´</SAMP> <DD> +<A NAME="IDX522"></A> +<A NAME="IDX523"></A> Add <VAR>directory</VAR> to the list of directories. Source files are searched relative to this list of directories. The resulting <TT>`.po´</TT> file will be written relative to the current directory, though. @@ -701,6 +827,8 @@ If no <VAR>inputfile</VAR> is given or if it is <SAMP>`-´</SAMP>, standard <DD> <DT><SAMP>`--output-file=<VAR>file</VAR>´</SAMP> <DD> +<A NAME="IDX524"></A> +<A NAME="IDX525"></A> Write output to specified file. </DL> @@ -721,6 +849,7 @@ used filter is <SAMP>`sed´</SAMP>. </P> <P> +<A NAME="IDX526"></A> Note: It is your responsibility to ensure that the <VAR>filter</VAR> can cope with input encoded in the translation catalog's encoding. If the <VAR>filter</VAR> wants input in a particular encoding, you can in a first step @@ -733,6 +862,7 @@ locale, by using the <CODE>LC_ALL</CODE> environment variable. </P> <P> +<A NAME="IDX527"></A> Note: Most translations in a translation catalog don't end with a newline character. For this reason, it is important that the <VAR>filter</VAR> recognizes its last input line even if it ends without a newline, and that @@ -752,12 +882,16 @@ does not have this limitation. <DD> <DT><SAMP>`--expression=<VAR>script</VAR>´</SAMP> <DD> +<A NAME="IDX528"></A> +<A NAME="IDX529"></A> Add <VAR>script</VAR> to the commands to be executed. <DT><SAMP>`-f <VAR>scriptfile</VAR>´</SAMP> <DD> <DT><SAMP>`--file=<VAR>scriptfile</VAR>´</SAMP> <DD> +<A NAME="IDX530"></A> +<A NAME="IDX531"></A> Add the contents of <VAR>scriptfile</VAR> to the commands to be executed. <DT><SAMP>`-n´</SAMP> @@ -766,6 +900,9 @@ Add the contents of <VAR>scriptfile</VAR> to the commands to be executed. <DD> <DT><SAMP>`--silent´</SAMP> <DD> +<A NAME="IDX532"></A> +<A NAME="IDX533"></A> +<A NAME="IDX534"></A> Suppress automatic printing of pattern space. </DL> @@ -778,28 +915,34 @@ Suppress automatic printing of pattern space. <DT><SAMP>`--force-po´</SAMP> <DD> +<A NAME="IDX535"></A> Always write an output file even if it contains no message. <DT><SAMP>`--indent´</SAMP> <DD> +<A NAME="IDX536"></A> Write the .po file using indented style. <DT><SAMP>`--keep-header´</SAMP> <DD> +<A NAME="IDX537"></A> Keep the header entry, i.e. the message with <SAMP>`msgid ""´</SAMP>, unmodified, instead of filtering it. By default, the header entry is subject to filtering like any other message. <DT><SAMP>`--no-location´</SAMP> <DD> +<A NAME="IDX538"></A> Do not write <SAMP>`#: <VAR>filename</VAR>:<VAR>line</VAR>´</SAMP> lines. <DT><SAMP>`--add-location´</SAMP> <DD> +<A NAME="IDX539"></A> Generate <SAMP>`#: <VAR>filename</VAR>:<VAR>line</VAR>´</SAMP> lines (default). <DT><SAMP>`--strict´</SAMP> <DD> +<A NAME="IDX540"></A> Write out a strict Uniforum conforming PO file. Note that this Uniforum format should be avoided because it doesn't support the GNU extensions. @@ -808,6 +951,8 @@ GNU extensions. <DD> <DT><SAMP>`--width=<VAR>number</VAR>´</SAMP> <DD> +<A NAME="IDX541"></A> +<A NAME="IDX542"></A> Set the output page width. Long strings in the output files will be split across multiple lines in order to ensure that each line's width (= number of screen columns) is less or equal to the given <VAR>number</VAR>. @@ -816,6 +961,8 @@ split across multiple lines in order to ensure that each line's width <DD> <DT><SAMP>`--sort-output´</SAMP> <DD> +<A NAME="IDX543"></A> +<A NAME="IDX544"></A> Generate sorted output. Note that using this option makes it much harder for the translator to understand each message's context. @@ -823,6 +970,8 @@ for the translator to understand each message's context. <DD> <DT><SAMP>`--sort-by-file´</SAMP> <DD> +<A NAME="IDX545"></A> +<A NAME="IDX546"></A> Sort output by file location. </DL> @@ -837,12 +986,16 @@ Sort output by file location. <DD> <DT><SAMP>`--help´</SAMP> <DD> +<A NAME="IDX547"></A> +<A NAME="IDX548"></A> Display this help and exit. <DT><SAMP>`-V´</SAMP> <DD> <DT><SAMP>`--version´</SAMP> <DD> +<A NAME="IDX549"></A> +<A NAME="IDX550"></A> Output version information and exit. </DL> @@ -851,12 +1004,17 @@ Output version information and exit. <H2><A NAME="SEC86" HREF="gettext_toc.html#TOC86">7.5 Invoking the <CODE>msguniq</CODE> Program</A></H2> +<P> +<A NAME="IDX551"></A> +<A NAME="IDX552"></A> <PRE> msguniq [<VAR>option</VAR>] [<VAR>inputfile</VAR>] </PRE> <P> +<A NAME="IDX553"></A> +<A NAME="IDX554"></A> The <CODE>msguniq</CODE> program unifies duplicate translations in a translation catalog. It finds duplicate translations of the same message ID. Such duplicates are invalid input for other programs like <CODE>msgfmt</CODE>, @@ -883,6 +1041,8 @@ Input PO file. <DD> <DT><SAMP>`--directory=<VAR>directory</VAR>´</SAMP> <DD> +<A NAME="IDX555"></A> +<A NAME="IDX556"></A> Add <VAR>directory</VAR> to the list of directories. Source files are searched relative to this list of directories. The resulting <TT>`.po´</TT> file will be written relative to the current directory, though. @@ -903,6 +1063,8 @@ If no <VAR>inputfile</VAR> is given or if it is <SAMP>`-´</SAMP>, standard <DD> <DT><SAMP>`--output-file=<VAR>file</VAR>´</SAMP> <DD> +<A NAME="IDX557"></A> +<A NAME="IDX558"></A> Write output to specified file. </DL> @@ -922,12 +1084,16 @@ or if it is <SAMP>`-´</SAMP>. <DD> <DT><SAMP>`--repeated´</SAMP> <DD> +<A NAME="IDX559"></A> +<A NAME="IDX560"></A> Print only duplicates. <DT><SAMP>`-u´</SAMP> <DD> <DT><SAMP>`--unique´</SAMP> <DD> +<A NAME="IDX561"></A> +<A NAME="IDX562"></A> Print only unique messages, discard duplicates. </DL> @@ -942,35 +1108,45 @@ Print only unique messages, discard duplicates. <DD> <DT><SAMP>`--to-code=<VAR>name</VAR>´</SAMP> <DD> +<A NAME="IDX563"></A> +<A NAME="IDX564"></A> Specify encoding for output. <DT><SAMP>`--use-first´</SAMP> <DD> +<A NAME="IDX565"></A> Use first available translation for each message. Don't merge several translations into one. <DT><SAMP>`--force-po´</SAMP> <DD> +<A NAME="IDX566"></A> Always write an output file even if it contains no message. <DT><SAMP>`-i´</SAMP> <DD> <DT><SAMP>`--indent´</SAMP> <DD> +<A NAME="IDX567"></A> +<A NAME="IDX568"></A> Write the .po file using indented style. <DT><SAMP>`--no-location´</SAMP> <DD> +<A NAME="IDX569"></A> Do not write <SAMP>`#: <VAR>filename</VAR>:<VAR>line</VAR>´</SAMP> lines. <DT><SAMP>`-n´</SAMP> <DD> <DT><SAMP>`--add-location´</SAMP> <DD> +<A NAME="IDX570"></A> +<A NAME="IDX571"></A> Generate <SAMP>`#: <VAR>filename</VAR>:<VAR>line</VAR>´</SAMP> lines (default). <DT><SAMP>`--strict´</SAMP> <DD> +<A NAME="IDX572"></A> Write out a strict Uniforum conforming PO file. Note that this Uniforum format should be avoided because it doesn't support the GNU extensions. @@ -979,6 +1155,8 @@ GNU extensions. <DD> <DT><SAMP>`--width=<VAR>number</VAR>´</SAMP> <DD> +<A NAME="IDX573"></A> +<A NAME="IDX574"></A> Set the output page width. Long strings in the output files will be split across multiple lines in order to ensure that each line's width (= number of screen columns) is less or equal to the given <VAR>number</VAR>. @@ -987,6 +1165,8 @@ split across multiple lines in order to ensure that each line's width <DD> <DT><SAMP>`--sort-output´</SAMP> <DD> +<A NAME="IDX575"></A> +<A NAME="IDX576"></A> Generate sorted output. Note that using this option makes it much harder for the translator to understand each message's context. @@ -994,6 +1174,8 @@ for the translator to understand each message's context. <DD> <DT><SAMP>`--sort-by-file´</SAMP> <DD> +<A NAME="IDX577"></A> +<A NAME="IDX578"></A> Sort output by file location. </DL> @@ -1008,12 +1190,16 @@ Sort output by file location. <DD> <DT><SAMP>`--help´</SAMP> <DD> +<A NAME="IDX579"></A> +<A NAME="IDX580"></A> Display this help and exit. <DT><SAMP>`-V´</SAMP> <DD> <DT><SAMP>`--version´</SAMP> <DD> +<A NAME="IDX581"></A> +<A NAME="IDX582"></A> Output version information and exit. </DL> @@ -1022,12 +1208,16 @@ Output version information and exit. <H2><A NAME="SEC92" HREF="gettext_toc.html#TOC92">7.6 Invoking the <CODE>msgcomm</CODE> Program</A></H2> +<P> +<A NAME="IDX583"></A> +<A NAME="IDX584"></A> <PRE> msgcomm [<VAR>option</VAR>] [<VAR>inputfile</VAR>]... </PRE> <P> +<A NAME="IDX585"></A> The <CODE>msgcomm</CODE> program finds messages which are common to two or more of the specified PO files. By using the <CODE>--more-than</CODE> option, greater commonality may be requested @@ -1053,6 +1243,8 @@ Input files. <DD> <DT><SAMP>`--files-from=<VAR>file</VAR>´</SAMP> <DD> +<A NAME="IDX586"></A> +<A NAME="IDX587"></A> Read the names of the input files from <VAR>file</VAR> instead of getting them from the command line. @@ -1060,6 +1252,8 @@ them from the command line. <DD> <DT><SAMP>`--directory=<VAR>directory</VAR>´</SAMP> <DD> +<A NAME="IDX588"></A> +<A NAME="IDX589"></A> Add <VAR>directory</VAR> to the list of directories. Source files are searched relative to this list of directories. The resulting <TT>`.po´</TT> file will be written relative to the current directory, though. @@ -1080,6 +1274,8 @@ If <VAR>inputfile</VAR> is <SAMP>`-´</SAMP>, standard input is read. <DD> <DT><SAMP>`--output-file=<VAR>file</VAR>´</SAMP> <DD> +<A NAME="IDX590"></A> +<A NAME="IDX591"></A> Write output to specified file. </DL> @@ -1099,6 +1295,8 @@ or if it is <SAMP>`-´</SAMP>. <DD> <DT><SAMP>`--less-than=<VAR>number</VAR>´</SAMP> <DD> +<A NAME="IDX592"></A> +<A NAME="IDX593"></A> Print messages with less than <VAR>number</VAR> definitions, defaults to infinite if not set. @@ -1106,6 +1304,8 @@ if not set. <DD> <DT><SAMP>`--more-than=<VAR>number</VAR>´</SAMP> <DD> +<A NAME="IDX594"></A> +<A NAME="IDX595"></A> Print messages with more than <VAR>number</VAR> definitions, defaults to 1 if not set. @@ -1113,6 +1313,8 @@ set. <DD> <DT><SAMP>`--unique´</SAMP> <DD> +<A NAME="IDX596"></A> +<A NAME="IDX597"></A> Shorthand for <SAMP>`--less-than=2´</SAMP>. Requests that only unique messages be printed. @@ -1126,26 +1328,33 @@ printed. <DT><SAMP>`--force-po´</SAMP> <DD> +<A NAME="IDX598"></A> Always write an output file even if it contains no message. <DT><SAMP>`-i´</SAMP> <DD> <DT><SAMP>`--indent´</SAMP> <DD> +<A NAME="IDX599"></A> +<A NAME="IDX600"></A> Write the .po file using indented style. <DT><SAMP>`--no-location´</SAMP> <DD> +<A NAME="IDX601"></A> Do not write <SAMP>`#: <VAR>filename</VAR>:<VAR>line</VAR>´</SAMP> lines. <DT><SAMP>`-n´</SAMP> <DD> <DT><SAMP>`--add-location´</SAMP> <DD> +<A NAME="IDX602"></A> +<A NAME="IDX603"></A> Generate <SAMP>`#: <VAR>filename</VAR>:<VAR>line</VAR>´</SAMP> lines (default). <DT><SAMP>`--strict´</SAMP> <DD> +<A NAME="IDX604"></A> Write out a strict Uniforum conforming PO file. Note that this Uniforum format should be avoided because it doesn't support the GNU extensions. @@ -1154,6 +1363,8 @@ GNU extensions. <DD> <DT><SAMP>`--width=<VAR>number</VAR>´</SAMP> <DD> +<A NAME="IDX605"></A> +<A NAME="IDX606"></A> Set the output page width. Long strings in the output files will be split across multiple lines in order to ensure that each line's width (= number of screen columns) is less or equal to the given <VAR>number</VAR>. @@ -1162,6 +1373,8 @@ split across multiple lines in order to ensure that each line's width <DD> <DT><SAMP>`--sort-output´</SAMP> <DD> +<A NAME="IDX607"></A> +<A NAME="IDX608"></A> Generate sorted output. Note that using this option makes it much harder for the translator to understand each message's context. @@ -1169,10 +1382,13 @@ for the translator to understand each message's context. <DD> <DT><SAMP>`--sort-by-file´</SAMP> <DD> +<A NAME="IDX609"></A> +<A NAME="IDX610"></A> Sort output by file location. <DT><SAMP>`--omit-header´</SAMP> <DD> +<A NAME="IDX611"></A> Don't write header with <SAMP>`msgid ""´</SAMP> entry. </DL> @@ -1187,12 +1403,16 @@ Don't write header with <SAMP>`msgid ""´</SAMP> entry. <DD> <DT><SAMP>`--help´</SAMP> <DD> +<A NAME="IDX612"></A> +<A NAME="IDX613"></A> Display this help and exit. <DT><SAMP>`-V´</SAMP> <DD> <DT><SAMP>`--version´</SAMP> <DD> +<A NAME="IDX614"></A> +<A NAME="IDX615"></A> Output version information and exit. </DL> @@ -1201,12 +1421,16 @@ Output version information and exit. <H2><A NAME="SEC98" HREF="gettext_toc.html#TOC98">7.7 Invoking the <CODE>msgcmp</CODE> Program</A></H2> +<P> +<A NAME="IDX616"></A> +<A NAME="IDX617"></A> <PRE> msgcmp [<VAR>option</VAR>] <VAR>def</VAR>.po <VAR>ref</VAR>.pot </PRE> <P> +<A NAME="IDX618"></A> The <CODE>msgcmp</CODE> program compares two Uniforum style .po files to check that both contain the same set of msgid strings. The <VAR>def</VAR>.po file is an existing PO file with the translations. The <VAR>ref</VAR>.pot file is the last @@ -1234,6 +1458,8 @@ References to the sources. <DD> <DT><SAMP>`--directory=<VAR>directory</VAR>´</SAMP> <DD> +<A NAME="IDX619"></A> +<A NAME="IDX620"></A> Add <VAR>directory</VAR> to the list of directories. Source files are searched relative to this list of directories. @@ -1249,6 +1475,8 @@ searched relative to this list of directories. <DD> <DT><SAMP>`--multi-domain´</SAMP> <DD> +<A NAME="IDX621"></A> +<A NAME="IDX622"></A> Apply <VAR>ref</VAR>.pot to each of the domains in <VAR>def</VAR>.po. </DL> @@ -1263,12 +1491,16 @@ Apply <VAR>ref</VAR>.pot to each of the domains in <VAR>def</VAR>.po. <DD> <DT><SAMP>`--help´</SAMP> <DD> +<A NAME="IDX623"></A> +<A NAME="IDX624"></A> Display this help and exit. <DT><SAMP>`-V´</SAMP> <DD> <DT><SAMP>`--version´</SAMP> <DD> +<A NAME="IDX625"></A> +<A NAME="IDX626"></A> Output version information and exit. </DL> @@ -1277,12 +1509,17 @@ Output version information and exit. <H2><A NAME="SEC102" HREF="gettext_toc.html#TOC102">7.8 Invoking the <CODE>msgattrib</CODE> Program</A></H2> +<P> +<A NAME="IDX627"></A> +<A NAME="IDX628"></A> <PRE> msgattrib [<VAR>option</VAR>] [<VAR>inputfile</VAR>] </PRE> <P> +<A NAME="IDX629"></A> +<A NAME="IDX630"></A> The <CODE>msgattrib</CODE> program filters the messages of a translation catalog according to their attributes, and manipulates the attributes. @@ -1301,6 +1538,8 @@ Input PO file. <DD> <DT><SAMP>`--directory=<VAR>directory</VAR>´</SAMP> <DD> +<A NAME="IDX631"></A> +<A NAME="IDX632"></A> Add <VAR>directory</VAR> to the list of directories. Source files are searched relative to this list of directories. The resulting <TT>`.po´</TT> file will be written relative to the current directory, though. @@ -1321,6 +1560,8 @@ If no <VAR>inputfile</VAR> is given or if it is <SAMP>`-´</SAMP>, standard <DD> <DT><SAMP>`--output-file=<VAR>file</VAR>´</SAMP> <DD> +<A NAME="IDX633"></A> +<A NAME="IDX634"></A> Write output to specified file. </DL> @@ -1338,26 +1579,32 @@ or if it is <SAMP>`-´</SAMP>. <DT><SAMP>`--translated´</SAMP> <DD> +<A NAME="IDX635"></A> Keep translated messages, remove untranslated messages. <DT><SAMP>`--untranslated´</SAMP> <DD> +<A NAME="IDX636"></A> Keep untranslated messages, remove translated messages. <DT><SAMP>`--no-fuzzy´</SAMP> <DD> +<A NAME="IDX637"></A> Remove `fuzzy' marked messages. <DT><SAMP>`--only-fuzzy´</SAMP> <DD> +<A NAME="IDX638"></A> Keep `fuzzy' marked messages, remove all other messsages. <DT><SAMP>`--no-obsolete´</SAMP> <DD> +<A NAME="IDX639"></A> Remove obsolete #~ messages. <DT><SAMP>`--only-obsolete´</SAMP> <DD> +<A NAME="IDX640"></A> Keep obsolete #~ messages, remove all other messages. </DL> @@ -1367,6 +1614,7 @@ Keep obsolete #~ messages, remove all other messages. <H3><A NAME="SEC106" HREF="gettext_toc.html#TOC106">7.8.4 Attribute manipulation</A></H3> <P> +<A NAME="IDX641"></A> Attributes are modified after the message selection/removal has been performed. @@ -1375,27 +1623,33 @@ performed. <DT><SAMP>`--set-fuzzy´</SAMP> <DD> +<A NAME="IDX642"></A> Set all messages `fuzzy'. <DT><SAMP>`--clear-fuzzy´</SAMP> <DD> +<A NAME="IDX643"></A> Set all messages non-`fuzzy'. <DT><SAMP>`--set-obsolete´</SAMP> <DD> +<A NAME="IDX644"></A> Set all messages obsolete. <DT><SAMP>`--clear-obsolete´</SAMP> <DD> +<A NAME="IDX645"></A> Set all messages non-obsolete. <DT><SAMP>`--fuzzy´</SAMP> <DD> +<A NAME="IDX646"></A> Synonym for <SAMP>`--only-fuzzy --clear-fuzzy´</SAMP>: It keeps only the fuzzy messages and removes their `fuzzy' mark. <DT><SAMP>`--obsolete´</SAMP> <DD> +<A NAME="IDX647"></A> Synonym for <SAMP>`--only-obsolete --clear-obsolete´</SAMP>: It keeps only the obsolete messages and makes them non-obsolete. @@ -1409,26 +1663,33 @@ obsolete messages and makes them non-obsolete. <DT><SAMP>`--force-po´</SAMP> <DD> +<A NAME="IDX648"></A> Always write an output file even if it contains no message. <DT><SAMP>`-i´</SAMP> <DD> <DT><SAMP>`--indent´</SAMP> <DD> +<A NAME="IDX649"></A> +<A NAME="IDX650"></A> Write the .po file using indented style. <DT><SAMP>`--no-location´</SAMP> <DD> +<A NAME="IDX651"></A> Do not write <SAMP>`#: <VAR>filename</VAR>:<VAR>line</VAR>´</SAMP> lines. <DT><SAMP>`-n´</SAMP> <DD> <DT><SAMP>`--add-location´</SAMP> <DD> +<A NAME="IDX652"></A> +<A NAME="IDX653"></A> Generate <SAMP>`#: <VAR>filename</VAR>:<VAR>line</VAR>´</SAMP> lines (default). <DT><SAMP>`--strict´</SAMP> <DD> +<A NAME="IDX654"></A> Write out a strict Uniforum conforming PO file. Note that this Uniforum format should be avoided because it doesn't support the GNU extensions. @@ -1437,6 +1698,8 @@ GNU extensions. <DD> <DT><SAMP>`--width=<VAR>number</VAR>´</SAMP> <DD> +<A NAME="IDX655"></A> +<A NAME="IDX656"></A> Set the output page width. Long strings in the output files will be split across multiple lines in order to ensure that each line's width (= number of screen columns) is less or equal to the given <VAR>number</VAR>. @@ -1445,6 +1708,8 @@ split across multiple lines in order to ensure that each line's width <DD> <DT><SAMP>`--sort-output´</SAMP> <DD> +<A NAME="IDX657"></A> +<A NAME="IDX658"></A> Generate sorted output. Note that using this option makes it much harder for the translator to understand each message's context. @@ -1452,6 +1717,8 @@ for the translator to understand each message's context. <DD> <DT><SAMP>`--sort-by-file´</SAMP> <DD> +<A NAME="IDX659"></A> +<A NAME="IDX660"></A> Sort output by file location. </DL> @@ -1466,12 +1733,16 @@ Sort output by file location. <DD> <DT><SAMP>`--help´</SAMP> <DD> +<A NAME="IDX661"></A> +<A NAME="IDX662"></A> Display this help and exit. <DT><SAMP>`-V´</SAMP> <DD> <DT><SAMP>`--version´</SAMP> <DD> +<A NAME="IDX663"></A> +<A NAME="IDX664"></A> Output version information and exit. </DL> @@ -1480,12 +1751,16 @@ Output version information and exit. <H2><A NAME="SEC109" HREF="gettext_toc.html#TOC109">7.9 Invoking the <CODE>msgen</CODE> Program</A></H2> +<P> +<A NAME="IDX665"></A> +<A NAME="IDX666"></A> <PRE> msgen [<VAR>option</VAR>] <VAR>inputfile</VAR> </PRE> <P> +<A NAME="IDX667"></A> The <CODE>msgen</CODE> program creates an English translation catalog. The input file is the last created English PO file, or a PO Template file (generally created by xgettext). Untranslated entries are assigned a @@ -1512,6 +1787,8 @@ Input PO or POT file. <DD> <DT><SAMP>`--directory=<VAR>directory</VAR>´</SAMP> <DD> +<A NAME="IDX668"></A> +<A NAME="IDX669"></A> Add <VAR>directory</VAR> to the list of directories. Source files are searched relative to this list of directories. The resulting <TT>`.po´</TT> file will be written relative to the current directory, though. @@ -1532,6 +1809,8 @@ If <VAR>inputfile</VAR> is <SAMP>`-´</SAMP>, standard input is read. <DD> <DT><SAMP>`--output-file=<VAR>file</VAR>´</SAMP> <DD> +<A NAME="IDX670"></A> +<A NAME="IDX671"></A> Write output to specified file. </DL> @@ -1549,24 +1828,30 @@ or if it is <SAMP>`-´</SAMP>. <DT><SAMP>`--force-po´</SAMP> <DD> +<A NAME="IDX672"></A> Always write an output file even if it contains no message. <DT><SAMP>`-i´</SAMP> <DD> <DT><SAMP>`--indent´</SAMP> <DD> +<A NAME="IDX673"></A> +<A NAME="IDX674"></A> Write the .po file using indented style. <DT><SAMP>`--no-location´</SAMP> <DD> +<A NAME="IDX675"></A> Do not write <SAMP>`#: <VAR>filename</VAR>:<VAR>line</VAR>´</SAMP> lines. <DT><SAMP>`--add-location´</SAMP> <DD> +<A NAME="IDX676"></A> Generate <SAMP>`#: <VAR>filename</VAR>:<VAR>line</VAR>´</SAMP> lines (default). <DT><SAMP>`--strict´</SAMP> <DD> +<A NAME="IDX677"></A> Write out a strict Uniforum conforming PO file. Note that this Uniforum format should be avoided because it doesn't support the GNU extensions. @@ -1575,6 +1860,8 @@ GNU extensions. <DD> <DT><SAMP>`--width=<VAR>number</VAR>´</SAMP> <DD> +<A NAME="IDX678"></A> +<A NAME="IDX679"></A> Set the output page width. Long strings in the output files will be split across multiple lines in order to ensure that each line's width (= number of screen columns) is less or equal to the given <VAR>number</VAR>. @@ -1583,6 +1870,8 @@ split across multiple lines in order to ensure that each line's width <DD> <DT><SAMP>`--sort-output´</SAMP> <DD> +<A NAME="IDX680"></A> +<A NAME="IDX681"></A> Generate sorted output. Note that using this option makes it much harder for the translator to understand each message's context. @@ -1590,6 +1879,8 @@ for the translator to understand each message's context. <DD> <DT><SAMP>`--sort-by-file´</SAMP> <DD> +<A NAME="IDX682"></A> +<A NAME="IDX683"></A> Sort output by file location. </DL> @@ -1604,12 +1895,16 @@ Sort output by file location. <DD> <DT><SAMP>`--help´</SAMP> <DD> +<A NAME="IDX684"></A> +<A NAME="IDX685"></A> Display this help and exit. <DT><SAMP>`-V´</SAMP> <DD> <DT><SAMP>`--version´</SAMP> <DD> +<A NAME="IDX686"></A> +<A NAME="IDX687"></A> Output version information and exit. </DL> @@ -1618,12 +1913,16 @@ Output version information and exit. <H2><A NAME="SEC114" HREF="gettext_toc.html#TOC114">7.10 Invoking the <CODE>msgexec</CODE> Program</A></H2> +<P> +<A NAME="IDX688"></A> +<A NAME="IDX689"></A> <PRE> msgexec [<VAR>option</VAR>] <VAR>command</VAR> [<VAR>command-option</VAR>] </PRE> <P> +<A NAME="IDX690"></A> The <CODE>msgexec</CODE> program applies a command to all translations of a translation catalog. The <VAR>command</VAR> can be any program that reads a translation from standard @@ -1633,12 +1932,15 @@ across all invocations. </P> <P> +<A NAME="IDX691"></A> A special builtin command called <SAMP>`0´</SAMP> outputs the translation, followed by a null byte. The output of <SAMP>`msgexec 0´</SAMP> is suitable as input for <SAMP>`xargs -0´</SAMP>. </P> <P> +<A NAME="IDX692"></A> +<A NAME="IDX693"></A> During each <VAR>command</VAR> invocation, the environment variable <CODE>MSGEXEC_MSGID</CODE> is bound to the message's msgid, and the environment variable <CODE>MSGEXEC_LOCATION</CODE> is bound to the location in the PO file @@ -1646,6 +1948,7 @@ of the message. </P> <P> +<A NAME="IDX694"></A> Note: It is your responsibility to ensure that the <VAR>command</VAR> can cope with input encoded in the translation catalog's encoding. If the <VAR>command</VAR> wants input in a particular encoding, you can in a first step @@ -1667,12 +1970,16 @@ locale, by using the <CODE>LC_ALL</CODE> environment variable. <DD> <DT><SAMP>`--input=<VAR>inputfile</VAR>´</SAMP> <DD> +<A NAME="IDX695"></A> +<A NAME="IDX696"></A> Input PO file. <DT><SAMP>`-D <VAR>directory</VAR>´</SAMP> <DD> <DT><SAMP>`--directory=<VAR>directory</VAR>´</SAMP> <DD> +<A NAME="IDX697"></A> +<A NAME="IDX698"></A> Add <VAR>directory</VAR> to the list of directories. Source files are searched relative to this list of directories. The resulting <TT>`.po´</TT> file will be written relative to the current directory, though. @@ -1693,17 +2000,21 @@ If no <VAR>inputfile</VAR> is given or if it is <SAMP>`-´</SAMP>, standard <DD> <DT><SAMP>`--help´</SAMP> <DD> +<A NAME="IDX699"></A> +<A NAME="IDX700"></A> Display this help and exit. <DT><SAMP>`-V´</SAMP> <DD> <DT><SAMP>`--version´</SAMP> <DD> +<A NAME="IDX701"></A> +<A NAME="IDX702"></A> Output version information and exit. </DL> <P><HR><P> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_6.html">previous</A>, <A HREF="gettext_8.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_6.html">previous</A>, <A HREF="gettext_8.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. </BODY> </HTML> diff --git a/doc/gettext_8.html b/doc/gettext_8.html index fa253f5..5bc1047 100644 --- a/doc/gettext_8.html +++ b/doc/gettext_8.html @@ -1,12 +1,12 @@ <HTML> <HEAD> <!-- This HTML file has been created by texi2html 1.52a - from gettext.texi on 31 January 2002 --> + from gettext.texi on 7 March 2002 --> <TITLE>GNU gettext utilities - 8 Producing Binary MO Files</TITLE> </HEAD> <BODY> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_7.html">previous</A>, <A HREF="gettext_9.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_7.html">previous</A>, <A HREF="gettext_9.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. <P><HR><P> @@ -16,12 +16,16 @@ Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_7.html">previous< <H2><A NAME="SEC118" HREF="gettext_toc.html#TOC118">8.1 Invoking the <CODE>msgfmt</CODE> Program</A></H2> +<P> +<A NAME="IDX703"></A> +<A NAME="IDX704"></A> <PRE> msgfmt [<VAR>option</VAR>] <VAR>filename</VAR>.po ... </PRE> <P> +<A NAME="IDX705"></A> The <CODE>msgfmt</CODE> programs generates a binary message catalog from a textual translation description. @@ -38,6 +42,8 @@ translation description. <DD> <DT><SAMP>`--directory=<VAR>directory</VAR>´</SAMP> <DD> +<A NAME="IDX706"></A> +<A NAME="IDX707"></A> Add <VAR>directory</VAR> to the list of directories. Source files are searched relative to this list of directories. The resulting <TT>`.po´</TT> file will be written relative to the current directory, though. @@ -58,12 +64,22 @@ If an input file is <SAMP>`-´</SAMP>, standard input is read. <DD> <DT><SAMP>`--java´</SAMP> <DD> +<A NAME="IDX708"></A> +<A NAME="IDX709"></A> +<A NAME="IDX710"></A> Java mode: generate a Java <CODE>ResourceBundle</CODE> class. <DT><SAMP>`--java2´</SAMP> <DD> +<A NAME="IDX711"></A> Like --java, and assume Java2 (JDK 1.2 or higher). +<DT><SAMP>`--tcl´</SAMP> +<DD> +<A NAME="IDX712"></A> +<A NAME="IDX713"></A> +Tcl mode: generate a tcl/msgcat <TT>`.msg´</TT> file. + </DL> @@ -76,10 +92,13 @@ Like --java, and assume Java2 (JDK 1.2 or higher). <DD> <DT><SAMP>`--output-file=<VAR>file</VAR>´</SAMP> <DD> +<A NAME="IDX714"></A> +<A NAME="IDX715"></A> Write output to specified file. <DT><SAMP>`--strict´</SAMP> <DD> +<A NAME="IDX716"></A> Direct the program to work strictly following the Uniforum/Sun implementation. Currently this only affects the naming of the output file. If this option is not given the name of the output file is the @@ -106,17 +125,22 @@ If the output <VAR>file</VAR> is <SAMP>`-´</SAMP>, output is written to st <DD> <DT><SAMP>`--resource=<VAR>resource</VAR>´</SAMP> <DD> +<A NAME="IDX717"></A> +<A NAME="IDX718"></A> Specify the resource name. <DT><SAMP>`-l <VAR>locale</VAR>´</SAMP> <DD> <DT><SAMP>`--locale=<VAR>locale</VAR>´</SAMP> <DD> +<A NAME="IDX719"></A> +<A NAME="IDX720"></A> Specify the locale name, either a language specification of the form <VAR>ll</VAR> or a combined language and country specification of the form <VAR>ll_CC</VAR>. <DT><SAMP>`-d <VAR>directory</VAR>´</SAMP> <DD> +<A NAME="IDX721"></A> Specify the base directory of classes directory hierarchy. </DL> @@ -129,7 +153,34 @@ is written under the specified directory. </P> -<H3><A NAME="SEC123" HREF="gettext_toc.html#TOC123">8.1.5 Input file interpretation</A></H3> +<H3><A NAME="SEC123" HREF="gettext_toc.html#TOC123">8.1.5 Output file location in Tcl mode</A></H3> + +<DL COMPACT> + +<DT><SAMP>`-l <VAR>locale</VAR>´</SAMP> +<DD> +<DT><SAMP>`--locale=<VAR>locale</VAR>´</SAMP> +<DD> +<A NAME="IDX722"></A> +<A NAME="IDX723"></A> +Specify the locale name, either a language specification of the form <VAR>ll</VAR> +or a combined language and country specification of the form <VAR>ll_CC</VAR>. + +<DT><SAMP>`-d <VAR>directory</VAR>´</SAMP> +<DD> +<A NAME="IDX724"></A> +Specify the base directory of <TT>`.msg´</TT> message catalogs. + +</DL> + +<P> +The <SAMP>`-l´</SAMP> and <SAMP>`-d´</SAMP> options are mandatory. The <TT>`.msg´</TT> file is +written in the specified directory. + +</P> + + +<H3><A NAME="SEC124" HREF="gettext_toc.html#TOC124">8.1.6 Input file interpretation</A></H3> <DL COMPACT> @@ -137,11 +188,15 @@ is written under the specified directory. <DD> <DT><SAMP>`--check´</SAMP> <DD> +<A NAME="IDX725"></A> +<A NAME="IDX726"></A> Perform all the checks implied by <CODE>--check-format</CODE>, <CODE>--check-header</CODE>, <CODE>--check-domain</CODE>. <DT><SAMP>`--check-format´</SAMP> <DD> +<A NAME="IDX727"></A> +<A NAME="IDX728"></A> Check language dependent format strings. If the string represents a format string used in a @@ -166,11 +221,13 @@ reversed again as soon as <CODE>msgmerge</CODE> is called the next time. <DT><SAMP>`--check-header´</SAMP> <DD> +<A NAME="IDX729"></A> Verify presence and contents of the header entry. See section <A HREF="gettext_5.html#SEC34">5.2 Filling in the Header Entry</A>, for a description of the various fields in the header entry. <DT><SAMP>`--check-domain´</SAMP> <DD> +<A NAME="IDX730"></A> Check for conflicts between domain directives and the <CODE>--output-file</CODE> option @@ -178,11 +235,18 @@ option <DD> <DT><SAMP>`--check-compatibility´</SAMP> <DD> +<A NAME="IDX731"></A> +<A NAME="IDX732"></A> +<A NAME="IDX733"></A> Check that GNU msgfmt behaves like X/Open msgfmt. This will give an error when attempting to use the GNU extensions. <DT><SAMP>`--check-accelerators[=<VAR>char</VAR>]´</SAMP> <DD> +<A NAME="IDX734"></A> +<A NAME="IDX735"></A> +<A NAME="IDX736"></A> +<A NAME="IDX737"></A> Check presence of keyboard accelerators for menu items. This is based on the convention used in some GUIs that a keyboard accelerator in a menu item string is designated by an immediately preceding <SAMP>`&´</SAMP> character. @@ -197,6 +261,9 @@ instead of <SAMP>`&´</SAMP>. <DD> <DT><SAMP>`--use-fuzzy´</SAMP> <DD> +<A NAME="IDX738"></A> +<A NAME="IDX739"></A> +<A NAME="IDX740"></A> Use fuzzy entries in output. Note that using this option is usually wrong, because fuzzy messages are exactly those which have not been validated by a human translator. @@ -205,7 +272,7 @@ a human translator. -<H3><A NAME="SEC124" HREF="gettext_toc.html#TOC124">8.1.6 Output details</A></H3> +<H3><A NAME="SEC125" HREF="gettext_toc.html#TOC125">8.1.7 Output details</A></H3> <DL COMPACT> @@ -213,10 +280,13 @@ a human translator. <DD> <DT><SAMP>`--alignment=<VAR>number</VAR>´</SAMP> <DD> +<A NAME="IDX741"></A> +<A NAME="IDX742"></A> Align strings to <VAR>number</VAR> bytes (default: 1). <DT><SAMP>`--no-hash´</SAMP> <DD> +<A NAME="IDX743"></A> Don't include a hash table in the binary file. Lookup will be more expensive at run time (binary search instead of hash table lookup). @@ -224,7 +294,7 @@ at run time (binary search instead of hash table lookup). -<H3><A NAME="SEC125" HREF="gettext_toc.html#TOC125">8.1.7 Informative output</A></H3> +<H3><A NAME="SEC126" HREF="gettext_toc.html#TOC126">8.1.8 Informative output</A></H3> <DL COMPACT> @@ -232,43 +302,54 @@ at run time (binary search instead of hash table lookup). <DD> <DT><SAMP>`--help´</SAMP> <DD> +<A NAME="IDX744"></A> +<A NAME="IDX745"></A> Display this help and exit. <DT><SAMP>`-V´</SAMP> <DD> <DT><SAMP>`--version´</SAMP> <DD> +<A NAME="IDX746"></A> +<A NAME="IDX747"></A> Output version information and exit. <DT><SAMP>`--statistics´</SAMP> <DD> +<A NAME="IDX748"></A> Print statistics about translations. <DT><SAMP>`-v´</SAMP> <DD> <DT><SAMP>`--verbose´</SAMP> <DD> +<A NAME="IDX749"></A> +<A NAME="IDX750"></A> Increase verbosity level. </DL> -<H2><A NAME="SEC126" HREF="gettext_toc.html#TOC126">8.2 Invoking the <CODE>msgunfmt</CODE> Program</A></H2> +<H2><A NAME="SEC127" HREF="gettext_toc.html#TOC127">8.2 Invoking the <CODE>msgunfmt</CODE> Program</A></H2> +<P> +<A NAME="IDX751"></A> +<A NAME="IDX752"></A> <PRE> msgunfmt [<VAR>option</VAR>] [<VAR>file</VAR>]... </PRE> <P> +<A NAME="IDX753"></A> The <CODE>msgunfmt</CODE> program converts a binary message catalog to a Uniforum style .po file. </P> -<H3><A NAME="SEC127" HREF="gettext_toc.html#TOC127">8.2.1 Operation mode</A></H3> +<H3><A NAME="SEC128" HREF="gettext_toc.html#TOC128">8.2.1 Operation mode</A></H3> <DL COMPACT> @@ -276,13 +357,22 @@ Uniforum style .po file. <DD> <DT><SAMP>`--java´</SAMP> <DD> -Java mode: generate a Java <CODE>ResourceBundle</CODE> class. +<A NAME="IDX754"></A> +<A NAME="IDX755"></A> +<A NAME="IDX756"></A> +Java mode: input is a Java <CODE>ResourceBundle</CODE> class. + +<DT><SAMP>`--tcl´</SAMP> +<DD> +<A NAME="IDX757"></A> +<A NAME="IDX758"></A> +Tcl mode: input is a tcl/msgcat <TT>`.msg´</TT> file. </DL> -<H3><A NAME="SEC128" HREF="gettext_toc.html#TOC128">8.2.2 Input file location</A></H3> +<H3><A NAME="SEC129" HREF="gettext_toc.html#TOC129">8.2.2 Input file location</A></H3> <DL COMPACT> @@ -298,7 +388,7 @@ If no input <VAR>file</VAR> is given or if it is <SAMP>`-´</SAMP>, standar </P> -<H3><A NAME="SEC129" HREF="gettext_toc.html#TOC129">8.2.3 Input file location in Java mode</A></H3> +<H3><A NAME="SEC130" HREF="gettext_toc.html#TOC130">8.2.3 Input file location in Java mode</A></H3> <DL COMPACT> @@ -306,12 +396,16 @@ If no input <VAR>file</VAR> is given or if it is <SAMP>`-´</SAMP>, standar <DD> <DT><SAMP>`--resource=<VAR>resource</VAR>´</SAMP> <DD> +<A NAME="IDX759"></A> +<A NAME="IDX760"></A> Specify the resource name. <DT><SAMP>`-l <VAR>locale</VAR>´</SAMP> <DD> <DT><SAMP>`--locale=<VAR>locale</VAR>´</SAMP> <DD> +<A NAME="IDX761"></A> +<A NAME="IDX762"></A> Specify the locale name, either a language specification of the form <VAR>ll</VAR> or a combined language and country specification of the form <VAR>ll_CC</VAR>. @@ -324,7 +418,34 @@ separated with an underscore. The class is located using the <CODE>CLASSPATH</C </P> -<H3><A NAME="SEC130" HREF="gettext_toc.html#TOC130">8.2.4 Output file location</A></H3> +<H3><A NAME="SEC131" HREF="gettext_toc.html#TOC131">8.2.4 Input file location in Tcl mode</A></H3> + +<DL COMPACT> + +<DT><SAMP>`-l <VAR>locale</VAR>´</SAMP> +<DD> +<DT><SAMP>`--locale=<VAR>locale</VAR>´</SAMP> +<DD> +<A NAME="IDX763"></A> +<A NAME="IDX764"></A> +Specify the locale name, either a language specification of the form <VAR>ll</VAR> +or a combined language and country specification of the form <VAR>ll_CC</VAR>. + +<DT><SAMP>`-d <VAR>directory</VAR>´</SAMP> +<DD> +<A NAME="IDX765"></A> +Specify the base directory of <TT>`.msg´</TT> message catalogs. + +</DL> + +<P> +The <SAMP>`-l´</SAMP> and <SAMP>`-d´</SAMP> options are mandatory. The <TT>`.msg´</TT> file is +located in the specified directory. + +</P> + + +<H3><A NAME="SEC132" HREF="gettext_toc.html#TOC132">8.2.5 Output file location</A></H3> <DL COMPACT> @@ -332,6 +453,8 @@ separated with an underscore. The class is located using the <CODE>CLASSPATH</C <DD> <DT><SAMP>`--output-file=<VAR>file</VAR>´</SAMP> <DD> +<A NAME="IDX766"></A> +<A NAME="IDX767"></A> Write output to specified file. </DL> @@ -343,22 +466,26 @@ or if it is <SAMP>`-´</SAMP>. </P> -<H3><A NAME="SEC131" HREF="gettext_toc.html#TOC131">8.2.5 Output details</A></H3> +<H3><A NAME="SEC133" HREF="gettext_toc.html#TOC133">8.2.6 Output details</A></H3> <DL COMPACT> <DT><SAMP>`--force-po´</SAMP> <DD> +<A NAME="IDX768"></A> Always write an output file even if it contains no message. <DT><SAMP>`-i´</SAMP> <DD> <DT><SAMP>`--indent´</SAMP> <DD> +<A NAME="IDX769"></A> +<A NAME="IDX770"></A> Write the .po file using indented style. <DT><SAMP>`--strict´</SAMP> <DD> +<A NAME="IDX771"></A> Write out a strict Uniforum conforming PO file. Note that this Uniforum format should be avoided because it doesn't support the GNU extensions. @@ -367,6 +494,8 @@ GNU extensions. <DD> <DT><SAMP>`--width=<VAR>number</VAR>´</SAMP> <DD> +<A NAME="IDX772"></A> +<A NAME="IDX773"></A> Set the output page width. Long strings in the output files will be split across multiple lines in order to ensure that each line's width (= number of screen columns) is less or equal to the given <VAR>number</VAR>. @@ -375,6 +504,9 @@ split across multiple lines in order to ensure that each line's width <DD> <DT><SAMP>`--sort-output´</SAMP> <DD> +<A NAME="IDX774"></A> +<A NAME="IDX775"></A> +<A NAME="IDX776"></A> Generate sorted output. Note that using this option makes it much harder for the translator to understand each message's context. @@ -382,7 +514,7 @@ for the translator to understand each message's context. -<H3><A NAME="SEC132" HREF="gettext_toc.html#TOC132">8.2.6 Informative output</A></H3> +<H3><A NAME="SEC134" HREF="gettext_toc.html#TOC134">8.2.7 Informative output</A></H3> <DL COMPACT> @@ -390,32 +522,43 @@ for the translator to understand each message's context. <DD> <DT><SAMP>`--help´</SAMP> <DD> +<A NAME="IDX777"></A> +<A NAME="IDX778"></A> Display this help and exit. <DT><SAMP>`-V´</SAMP> <DD> <DT><SAMP>`--version´</SAMP> <DD> +<A NAME="IDX779"></A> +<A NAME="IDX780"></A> Output version information and exit. <DT><SAMP>`-v´</SAMP> <DD> <DT><SAMP>`--verbose´</SAMP> <DD> +<A NAME="IDX781"></A> +<A NAME="IDX782"></A> Increase verbosity level. </DL> -<H2><A NAME="SEC133" HREF="gettext_toc.html#TOC133">8.3 The Format of GNU MO Files</A></H2> +<H2><A NAME="SEC135" HREF="gettext_toc.html#TOC135">8.3 The Format of GNU MO Files</A></H2> +<P> +<A NAME="IDX783"></A> +<A NAME="IDX784"></A> +</P> <P> The format of the generated MO files is best described by a picture, which appears below. </P> <P> +<A NAME="IDX785"></A> The first two words serve the identification of the file. The magic number will always signal GNU MO files. The number is stored in the byte order of the generating machine, so the magic number really is @@ -463,6 +606,7 @@ translated tables, making the system information very easy to find. </P> <P> +<A NAME="IDX786"></A> The size <VAR>S</VAR> of the hash table can be zero. In this case, the hash table itself is not contained in the MO file. Some people might prefer this because a precomputed hashing table takes disk space, and @@ -483,6 +627,7 @@ machines, a correct alignment will speed things up. </P> <P> +<A NAME="IDX787"></A> Plural forms are stored by letting the plural of the original string follow the singular of the original string, separated through a <KBD>NUL</KBD> byte. The length which appears in the string descriptor @@ -568,6 +713,6 @@ T + ((N-1)*8)| length & offset (N-1)th translation | | | | | </PRE> <P><HR><P> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_7.html">previous</A>, <A HREF="gettext_9.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_7.html">previous</A>, <A HREF="gettext_9.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. </BODY> </HTML> diff --git a/doc/gettext_9.html b/doc/gettext_9.html index dc0e0f4..fc78215 100644 --- a/doc/gettext_9.html +++ b/doc/gettext_9.html @@ -1,16 +1,16 @@ <HTML> <HEAD> <!-- This HTML file has been created by texi2html 1.52a - from gettext.texi on 31 January 2002 --> + from gettext.texi on 7 March 2002 --> <TITLE>GNU gettext utilities - 9 The User's View</TITLE> </HEAD> <BODY> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_8.html">previous</A>, <A HREF="gettext_10.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_8.html">previous</A>, <A HREF="gettext_10.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. <P><HR><P> -<H1><A NAME="SEC134" HREF="gettext_toc.html#TOC134">9 The User's View</A></H1> +<H1><A NAME="SEC136" HREF="gettext_toc.html#TOC136">9 The User's View</A></H1> <P> When GNU <CODE>gettext</CODE> will truly have reached its goal, average users @@ -43,8 +43,13 @@ for both installers and end users. -<H2><A NAME="SEC135" HREF="gettext_toc.html#TOC135">9.1 The Current <TT>`ABOUT-NLS´</TT> Matrix</A></H2> +<H2><A NAME="SEC137" HREF="gettext_toc.html#TOC137">9.1 The Current <TT>`ABOUT-NLS´</TT> Matrix</A></H2> +<P> +<A NAME="IDX788"></A> +<A NAME="IDX789"></A> +<A NAME="IDX790"></A> +</P> <P> Languages are not equally supported in all packages using GNU <CODE>gettext</CODE>. To know if some package uses GNU <CODE>gettext</CODE>, one @@ -52,7 +57,7 @@ may check the distribution for the <TT>`ABOUT-NLS´</TT> information file, some <TT>`<VAR>ll</VAR>.po´</TT> files, often kept together into some <TT>`po/´</TT> directory, or for an <TT>`intl/´</TT> directory. Internationalized packages have usually many <TT>`<VAR>ll</VAR>.po´</TT> files, where <VAR>ll</VAR> represents -the language. section <A HREF="gettext_9.html#SEC137">9.3 Magic for End Users</A> for a complete description of the format +the language. section <A HREF="gettext_9.html#SEC139">9.3 Magic for End Users</A> for a complete description of the format for <VAR>ll</VAR>. </P> @@ -70,8 +75,12 @@ Translation Project sites, and also on most GNU archive sites. </P> -<H2><A NAME="SEC136" HREF="gettext_toc.html#TOC136">9.2 Magic for Installers</A></H2> +<H2><A NAME="SEC138" HREF="gettext_toc.html#TOC138">9.2 Magic for Installers</A></H2> +<P> +<A NAME="IDX791"></A> +<A NAME="IDX792"></A> +</P> <P> By default, packages fully using GNU <CODE>gettext</CODE>, internally, are installed in such a way that they to allow translation of @@ -88,6 +97,7 @@ produces programs totally unable to translate messages. </P> <P> +<A NAME="IDX793"></A> Internationalized packages have usually many <TT>`<VAR>ll</VAR>.po´</TT> files. Unless translations are disabled, all those available are installed together @@ -99,14 +109,20 @@ codes, stating which languages are allowed. </P> -<H2><A NAME="SEC137" HREF="gettext_toc.html#TOC137">9.3 Magic for End Users</A></H2> +<H2><A NAME="SEC139" HREF="gettext_toc.html#TOC139">9.3 Magic for End Users</A></H2> +<P> +<A NAME="IDX794"></A> +<A NAME="IDX795"></A> +<A NAME="IDX796"></A> +</P> <P> +<A NAME="IDX797"></A> We consider here those packages using GNU <CODE>gettext</CODE> internally, and for which the installers did not disable translation at <EM>configure</EM> time. Then, users only have to set the <CODE>LANG</CODE> environment variable to the appropriate <SAMP>`<VAR>ll</VAR>_<VAR>CC</VAR>´</SAMP> -combination prior to using the programs in the package. See section <A HREF="gettext_9.html#SEC135">9.1 The Current <TT>`ABOUT-NLS´</TT> Matrix</A>. +combination prior to using the programs in the package. See section <A HREF="gettext_9.html#SEC137">9.1 The Current <TT>`ABOUT-NLS´</TT> Matrix</A>. For example, let's presume a German site. At the shell prompt, users merely have to execute <SAMP>`setenv LANG de_DE´</SAMP> (in <CODE>csh</CODE>) or <SAMP>`export LANG; LANG=de_DE´</SAMP> (in <CODE>sh</CODE>). They could even do @@ -114,6 +130,6 @@ this from their <TT>`.login´</TT> or <TT>`.profile´</TT> file. </P> <P><HR><P> -Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_8.html">previous</A>, <A HREF="gettext_10.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_8.html">previous</A>, <A HREF="gettext_10.html">next</A>, <A HREF="gettext_22.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. </BODY> </HTML> diff --git a/doc/gettext_foot.html b/doc/gettext_foot.html index 7d59a83..9e75451 100644 --- a/doc/gettext_foot.html +++ b/doc/gettext_foot.html @@ -1,14 +1,14 @@ <HTML> <HEAD> <!-- This HTML file has been created by texi2html 1.52a - from gettext.texi on 31 January 2002 --> + from gettext.texi on 7 March 2002 --> <TITLE>GNU gettext utilities - Footnotes</TITLE> </HEAD> <BODY> -<H1>GNU gettext tools, version 0.11</H1> +<H1>GNU gettext tools, version 0.11.1</H1> <H2>Native Language Support Library and Tools</H2> -<H2>Edition 0.11, 30 January 2002</H2> +<H2>Edition 0.11.1, 5 March 2002</H2> <ADDRESS>Ulrich Drepper</ADDRESS> <ADDRESS>Jim Meyering</ADDRESS> <ADDRESS>François Pinard</ADDRESS> @@ -36,7 +36,7 @@ variables. <P>Additions are welcome. Send appropriate information to <A HREF="mailto:bug-glibc-manual@gnu.org">bug-glibc-manual@gnu.org</A>. <P><HR><P> -This document was generated on 31 January 2002 using the +This document was generated on 7 March 2002 using the <A HREF="http://wwwinfo.cern.ch/dis/texi2html/">texi2html</A> translator version 1.52a.</P> </BODY> diff --git a/doc/gettext_toc.html b/doc/gettext_toc.html index 02b1455..c272ae2 100644 --- a/doc/gettext_toc.html +++ b/doc/gettext_toc.html @@ -1,14 +1,14 @@ <HTML> <HEAD> <!-- This HTML file has been created by texi2html 1.52a - from gettext.texi on 31 January 2002 --> + from gettext.texi on 7 March 2002 --> <TITLE>GNU gettext utilities - Table of Contents</TITLE> </HEAD> <BODY> -<H1>GNU gettext tools, version 0.11</H1> +<H1>GNU gettext tools, version 0.11.1</H1> <H2>Native Language Support Library and Tools</H2> -<H2>Edition 0.11, 30 January 2002</H2> +<H2>Edition 0.11.1, 5 March 2002</H2> <ADDRESS>Ulrich Drepper</ADDRESS> <ADDRESS>Jim Meyering</ADDRESS> <ADDRESS>François Pinard</ADDRESS> @@ -186,138 +186,148 @@ <LI><A NAME="TOC120" HREF="gettext_8.html#SEC120">8.1.2 Operation mode</A> <LI><A NAME="TOC121" HREF="gettext_8.html#SEC121">8.1.3 Output file location</A> <LI><A NAME="TOC122" HREF="gettext_8.html#SEC122">8.1.4 Output file location in Java mode</A> -<LI><A NAME="TOC123" HREF="gettext_8.html#SEC123">8.1.5 Input file interpretation</A> -<LI><A NAME="TOC124" HREF="gettext_8.html#SEC124">8.1.6 Output details</A> -<LI><A NAME="TOC125" HREF="gettext_8.html#SEC125">8.1.7 Informative output</A> +<LI><A NAME="TOC123" HREF="gettext_8.html#SEC123">8.1.5 Output file location in Tcl mode</A> +<LI><A NAME="TOC124" HREF="gettext_8.html#SEC124">8.1.6 Input file interpretation</A> +<LI><A NAME="TOC125" HREF="gettext_8.html#SEC125">8.1.7 Output details</A> +<LI><A NAME="TOC126" HREF="gettext_8.html#SEC126">8.1.8 Informative output</A> </UL> -<LI><A NAME="TOC126" HREF="gettext_8.html#SEC126">8.2 Invoking the <CODE>msgunfmt</CODE> Program</A> +<LI><A NAME="TOC127" HREF="gettext_8.html#SEC127">8.2 Invoking the <CODE>msgunfmt</CODE> Program</A> <UL> -<LI><A NAME="TOC127" HREF="gettext_8.html#SEC127">8.2.1 Operation mode</A> -<LI><A NAME="TOC128" HREF="gettext_8.html#SEC128">8.2.2 Input file location</A> -<LI><A NAME="TOC129" HREF="gettext_8.html#SEC129">8.2.3 Input file location in Java mode</A> -<LI><A NAME="TOC130" HREF="gettext_8.html#SEC130">8.2.4 Output file location</A> -<LI><A NAME="TOC131" HREF="gettext_8.html#SEC131">8.2.5 Output details</A> -<LI><A NAME="TOC132" HREF="gettext_8.html#SEC132">8.2.6 Informative output</A> +<LI><A NAME="TOC128" HREF="gettext_8.html#SEC128">8.2.1 Operation mode</A> +<LI><A NAME="TOC129" HREF="gettext_8.html#SEC129">8.2.2 Input file location</A> +<LI><A NAME="TOC130" HREF="gettext_8.html#SEC130">8.2.3 Input file location in Java mode</A> +<LI><A NAME="TOC131" HREF="gettext_8.html#SEC131">8.2.4 Input file location in Tcl mode</A> +<LI><A NAME="TOC132" HREF="gettext_8.html#SEC132">8.2.5 Output file location</A> +<LI><A NAME="TOC133" HREF="gettext_8.html#SEC133">8.2.6 Output details</A> +<LI><A NAME="TOC134" HREF="gettext_8.html#SEC134">8.2.7 Informative output</A> </UL> -<LI><A NAME="TOC133" HREF="gettext_8.html#SEC133">8.3 The Format of GNU MO Files</A> -</UL> -<LI><A NAME="TOC134" HREF="gettext_9.html#SEC134">9 The User's View</A> +<LI><A NAME="TOC135" HREF="gettext_8.html#SEC135">8.3 The Format of GNU MO Files</A> +</UL> +<LI><A NAME="TOC136" HREF="gettext_9.html#SEC136">9 The User's View</A> <UL> -<LI><A NAME="TOC135" HREF="gettext_9.html#SEC135">9.1 The Current <TT>`ABOUT-NLS´</TT> Matrix</A> -<LI><A NAME="TOC136" HREF="gettext_9.html#SEC136">9.2 Magic for Installers</A> -<LI><A NAME="TOC137" HREF="gettext_9.html#SEC137">9.3 Magic for End Users</A> +<LI><A NAME="TOC137" HREF="gettext_9.html#SEC137">9.1 The Current <TT>`ABOUT-NLS´</TT> Matrix</A> +<LI><A NAME="TOC138" HREF="gettext_9.html#SEC138">9.2 Magic for Installers</A> +<LI><A NAME="TOC139" HREF="gettext_9.html#SEC139">9.3 Magic for End Users</A> </UL> -<LI><A NAME="TOC138" HREF="gettext_10.html#SEC138">10 The Programmer's View</A> +<LI><A NAME="TOC140" HREF="gettext_10.html#SEC140">10 The Programmer's View</A> <UL> -<LI><A NAME="TOC139" HREF="gettext_10.html#SEC139">10.1 About <CODE>catgets</CODE></A> +<LI><A NAME="TOC141" HREF="gettext_10.html#SEC141">10.1 About <CODE>catgets</CODE></A> <UL> -<LI><A NAME="TOC140" HREF="gettext_10.html#SEC140">10.1.1 The Interface</A> -<LI><A NAME="TOC141" HREF="gettext_10.html#SEC141">10.1.2 Problems with the <CODE>catgets</CODE> Interface?!</A> +<LI><A NAME="TOC142" HREF="gettext_10.html#SEC142">10.1.1 The Interface</A> +<LI><A NAME="TOC143" HREF="gettext_10.html#SEC143">10.1.2 Problems with the <CODE>catgets</CODE> Interface?!</A> </UL> -<LI><A NAME="TOC142" HREF="gettext_10.html#SEC142">10.2 About <CODE>gettext</CODE></A> +<LI><A NAME="TOC144" HREF="gettext_10.html#SEC144">10.2 About <CODE>gettext</CODE></A> <UL> -<LI><A NAME="TOC143" HREF="gettext_10.html#SEC143">10.2.1 The Interface</A> -<LI><A NAME="TOC144" HREF="gettext_10.html#SEC144">10.2.2 Solving Ambiguities</A> -<LI><A NAME="TOC145" HREF="gettext_10.html#SEC145">10.2.3 Locating Message Catalog Files</A> -<LI><A NAME="TOC146" HREF="gettext_10.html#SEC146">10.2.4 How to specify the output character set <CODE>gettext</CODE> uses</A> -<LI><A NAME="TOC147" HREF="gettext_10.html#SEC147">10.2.5 Additional functions for plural forms</A> -<LI><A NAME="TOC148" HREF="gettext_10.html#SEC148">10.2.6 How to use <CODE>gettext</CODE> in GUI programs</A> -<LI><A NAME="TOC149" HREF="gettext_10.html#SEC149">10.2.7 Optimization of the *gettext functions</A> +<LI><A NAME="TOC145" HREF="gettext_10.html#SEC145">10.2.1 The Interface</A> +<LI><A NAME="TOC146" HREF="gettext_10.html#SEC146">10.2.2 Solving Ambiguities</A> +<LI><A NAME="TOC147" HREF="gettext_10.html#SEC147">10.2.3 Locating Message Catalog Files</A> +<LI><A NAME="TOC148" HREF="gettext_10.html#SEC148">10.2.4 How to specify the output character set <CODE>gettext</CODE> uses</A> +<LI><A NAME="TOC149" HREF="gettext_10.html#SEC149">10.2.5 Additional functions for plural forms</A> +<LI><A NAME="TOC150" HREF="gettext_10.html#SEC150">10.2.6 How to use <CODE>gettext</CODE> in GUI programs</A> +<LI><A NAME="TOC151" HREF="gettext_10.html#SEC151">10.2.7 Optimization of the *gettext functions</A> </UL> -<LI><A NAME="TOC150" HREF="gettext_10.html#SEC150">10.3 Comparing the Two Interfaces</A> -<LI><A NAME="TOC151" HREF="gettext_10.html#SEC151">10.4 Using libintl.a in own programs</A> -<LI><A NAME="TOC152" HREF="gettext_10.html#SEC152">10.5 Being a <CODE>gettext</CODE> grok</A> -<LI><A NAME="TOC153" HREF="gettext_10.html#SEC153">10.6 Temporary Notes for the Programmers Chapter</A> +<LI><A NAME="TOC152" HREF="gettext_10.html#SEC152">10.3 Comparing the Two Interfaces</A> +<LI><A NAME="TOC153" HREF="gettext_10.html#SEC153">10.4 Using libintl.a in own programs</A> +<LI><A NAME="TOC154" HREF="gettext_10.html#SEC154">10.5 Being a <CODE>gettext</CODE> grok</A> +<LI><A NAME="TOC155" HREF="gettext_10.html#SEC155">10.6 Temporary Notes for the Programmers Chapter</A> <UL> -<LI><A NAME="TOC154" HREF="gettext_10.html#SEC154">10.6.1 Temporary - Two Possible Implementations</A> -<LI><A NAME="TOC155" HREF="gettext_10.html#SEC155">10.6.2 Temporary - About <CODE>catgets</CODE></A> -<LI><A NAME="TOC156" HREF="gettext_10.html#SEC156">10.6.3 Temporary - Why a single implementation</A> -<LI><A NAME="TOC157" HREF="gettext_10.html#SEC157">10.6.4 Temporary - Notes</A> +<LI><A NAME="TOC156" HREF="gettext_10.html#SEC156">10.6.1 Temporary - Two Possible Implementations</A> +<LI><A NAME="TOC157" HREF="gettext_10.html#SEC157">10.6.2 Temporary - About <CODE>catgets</CODE></A> +<LI><A NAME="TOC158" HREF="gettext_10.html#SEC158">10.6.3 Temporary - Why a single implementation</A> +<LI><A NAME="TOC159" HREF="gettext_10.html#SEC159">10.6.4 Temporary - Notes</A> </UL> </UL> -<LI><A NAME="TOC158" HREF="gettext_11.html#SEC158">11 The Translator's View</A> +<LI><A NAME="TOC160" HREF="gettext_11.html#SEC160">11 The Translator's View</A> <UL> -<LI><A NAME="TOC159" HREF="gettext_11.html#SEC159">11.1 Introduction 0</A> -<LI><A NAME="TOC160" HREF="gettext_11.html#SEC160">11.2 Introduction 1</A> -<LI><A NAME="TOC161" HREF="gettext_11.html#SEC161">11.3 Discussions</A> -<LI><A NAME="TOC162" HREF="gettext_11.html#SEC162">11.4 Organization</A> +<LI><A NAME="TOC161" HREF="gettext_11.html#SEC161">11.1 Introduction 0</A> +<LI><A NAME="TOC162" HREF="gettext_11.html#SEC162">11.2 Introduction 1</A> +<LI><A NAME="TOC163" HREF="gettext_11.html#SEC163">11.3 Discussions</A> +<LI><A NAME="TOC164" HREF="gettext_11.html#SEC164">11.4 Organization</A> <UL> -<LI><A NAME="TOC163" HREF="gettext_11.html#SEC163">11.4.1 Central Coordination</A> -<LI><A NAME="TOC164" HREF="gettext_11.html#SEC164">11.4.2 National Teams</A> +<LI><A NAME="TOC165" HREF="gettext_11.html#SEC165">11.4.1 Central Coordination</A> +<LI><A NAME="TOC166" HREF="gettext_11.html#SEC166">11.4.2 National Teams</A> <UL> -<LI><A NAME="TOC165" HREF="gettext_11.html#SEC165">11.4.2.1 Sub-Cultures</A> -<LI><A NAME="TOC166" HREF="gettext_11.html#SEC166">11.4.2.2 Organizational Ideas</A> +<LI><A NAME="TOC167" HREF="gettext_11.html#SEC167">11.4.2.1 Sub-Cultures</A> +<LI><A NAME="TOC168" HREF="gettext_11.html#SEC168">11.4.2.2 Organizational Ideas</A> </UL> -<LI><A NAME="TOC167" HREF="gettext_11.html#SEC167">11.4.3 Mailing Lists</A> +<LI><A NAME="TOC169" HREF="gettext_11.html#SEC169">11.4.3 Mailing Lists</A> </UL> -<LI><A NAME="TOC168" HREF="gettext_11.html#SEC168">11.5 Information Flow</A> +<LI><A NAME="TOC170" HREF="gettext_11.html#SEC170">11.5 Information Flow</A> </UL> -<LI><A NAME="TOC169" HREF="gettext_12.html#SEC169">12 The Maintainer's View</A> +<LI><A NAME="TOC171" HREF="gettext_12.html#SEC171">12 The Maintainer's View</A> <UL> -<LI><A NAME="TOC170" HREF="gettext_12.html#SEC170">12.1 Flat or Non-Flat Directory Structures</A> -<LI><A NAME="TOC171" HREF="gettext_12.html#SEC171">12.2 Prerequisite Works</A> -<LI><A NAME="TOC172" HREF="gettext_12.html#SEC172">12.3 Invoking the <CODE>gettextize</CODE> Program</A> -<LI><A NAME="TOC173" HREF="gettext_12.html#SEC173">12.4 Files You Must Create or Alter</A> +<LI><A NAME="TOC172" HREF="gettext_12.html#SEC172">12.1 Flat or Non-Flat Directory Structures</A> +<LI><A NAME="TOC173" HREF="gettext_12.html#SEC173">12.2 Prerequisite Works</A> +<LI><A NAME="TOC174" HREF="gettext_12.html#SEC174">12.3 Invoking the <CODE>gettextize</CODE> Program</A> +<LI><A NAME="TOC175" HREF="gettext_12.html#SEC175">12.4 Files You Must Create or Alter</A> <UL> -<LI><A NAME="TOC174" HREF="gettext_12.html#SEC174">12.4.1 <TT>`POTFILES.in´</TT> in <TT>`po/´</TT></A> -<LI><A NAME="TOC175" HREF="gettext_12.html#SEC175">12.4.2 <TT>`LINGUAS´</TT> in <TT>`po/´</TT></A> -<LI><A NAME="TOC176" HREF="gettext_12.html#SEC176">12.4.3 <TT>`Makefile´</TT> pieces in <TT>`po/´</TT></A> -<LI><A NAME="TOC177" HREF="gettext_12.html#SEC177">12.4.4 <TT>`configure.in´</TT> at top level</A> -<LI><A NAME="TOC178" HREF="gettext_12.html#SEC178">12.4.5 <TT>`config.guess´</TT>, <TT>`config.sub´</TT> at top level</A> -<LI><A NAME="TOC179" HREF="gettext_12.html#SEC179">12.4.6 <TT>`aclocal.m4´</TT> at top level</A> -<LI><A NAME="TOC180" HREF="gettext_12.html#SEC180">12.4.7 <TT>`acconfig.h´</TT> at top level</A> -<LI><A NAME="TOC181" HREF="gettext_12.html#SEC181">12.4.8 <TT>`Makefile.in´</TT> at top level</A> -<LI><A NAME="TOC182" HREF="gettext_12.html#SEC182">12.4.9 <TT>`Makefile.in´</TT> in <TT>`src/´</TT></A> -<LI><A NAME="TOC183" HREF="gettext_12.html#SEC183">12.4.10 <TT>`gettext.h´</TT> in <TT>`lib/´</TT></A> +<LI><A NAME="TOC176" HREF="gettext_12.html#SEC176">12.4.1 <TT>`POTFILES.in´</TT> in <TT>`po/´</TT></A> +<LI><A NAME="TOC177" HREF="gettext_12.html#SEC177">12.4.2 <TT>`LINGUAS´</TT> in <TT>`po/´</TT></A> +<LI><A NAME="TOC178" HREF="gettext_12.html#SEC178">12.4.3 <TT>`Makefile´</TT> pieces in <TT>`po/´</TT></A> +<LI><A NAME="TOC179" HREF="gettext_12.html#SEC179">12.4.4 <TT>`configure.in´</TT> at top level</A> +<LI><A NAME="TOC180" HREF="gettext_12.html#SEC180">12.4.5 <TT>`config.guess´</TT>, <TT>`config.sub´</TT> at top level</A> +<LI><A NAME="TOC181" HREF="gettext_12.html#SEC181">12.4.6 <TT>`aclocal.m4´</TT> at top level</A> +<LI><A NAME="TOC182" HREF="gettext_12.html#SEC182">12.4.7 <TT>`acconfig.h´</TT> at top level</A> +<LI><A NAME="TOC183" HREF="gettext_12.html#SEC183">12.4.8 <TT>`Makefile.in´</TT> at top level</A> +<LI><A NAME="TOC184" HREF="gettext_12.html#SEC184">12.4.9 <TT>`Makefile.in´</TT> in <TT>`src/´</TT></A> +<LI><A NAME="TOC185" HREF="gettext_12.html#SEC185">12.4.10 <TT>`gettext.h´</TT> in <TT>`lib/´</TT></A> </UL> -<LI><A NAME="TOC184" HREF="gettext_12.html#SEC184">12.5 Autoconf macros for use in <TT>`configure.in´</TT></A> +<LI><A NAME="TOC186" HREF="gettext_12.html#SEC186">12.5 Autoconf macros for use in <TT>`configure.in´</TT></A> <UL> -<LI><A NAME="TOC185" HREF="gettext_12.html#SEC185">12.5.1 AM_GNU_GETTEXT in <TT>`gettext.m4´</TT></A> -<LI><A NAME="TOC186" HREF="gettext_12.html#SEC186">12.5.2 AM_ICONV in <TT>`iconv.m4´</TT></A> +<LI><A NAME="TOC187" HREF="gettext_12.html#SEC187">12.5.1 AM_GNU_GETTEXT in <TT>`gettext.m4´</TT></A> +<LI><A NAME="TOC188" HREF="gettext_12.html#SEC188">12.5.2 AM_ICONV in <TT>`iconv.m4´</TT></A> </UL> </UL> -<LI><A NAME="TOC187" HREF="gettext_13.html#SEC187">13 Other Programming Languages</A> +<LI><A NAME="TOC189" HREF="gettext_13.html#SEC189">13 Other Programming Languages</A> <UL> -<LI><A NAME="TOC188" HREF="gettext_13.html#SEC188">13.1 The Language Implementor's View</A> -<LI><A NAME="TOC189" HREF="gettext_13.html#SEC189">13.2 The Programmer's View</A> -<LI><A NAME="TOC190" HREF="gettext_13.html#SEC190">13.3 The Translator's View</A> -<LI><A NAME="TOC191" HREF="gettext_13.html#SEC191">13.4 The Maintainer's View</A> -<LI><A NAME="TOC192" HREF="gettext_13.html#SEC192">13.5 Individual Programming Languages</A> +<LI><A NAME="TOC190" HREF="gettext_13.html#SEC190">13.1 The Language Implementor's View</A> +<LI><A NAME="TOC191" HREF="gettext_13.html#SEC191">13.2 The Programmer's View</A> +<LI><A NAME="TOC192" HREF="gettext_13.html#SEC192">13.3 The Translator's View</A> +<LI><A NAME="TOC193" HREF="gettext_13.html#SEC193">13.4 The Maintainer's View</A> +<LI><A NAME="TOC194" HREF="gettext_13.html#SEC194">13.5 Individual Programming Languages</A> <UL> -<LI><A NAME="TOC193" HREF="gettext_13.html#SEC193">13.5.1 C, C++, Objective C</A> -<LI><A NAME="TOC194" HREF="gettext_13.html#SEC194">13.5.2 sh - Shell Script</A> -<LI><A NAME="TOC195" HREF="gettext_13.html#SEC195">13.5.3 bash - Bourne-Again Shell Script</A> -<LI><A NAME="TOC196" HREF="gettext_13.html#SEC196">13.5.4 Python</A> -<LI><A NAME="TOC197" HREF="gettext_13.html#SEC197">13.5.5 GNU clisp - Common Lisp</A> -<LI><A NAME="TOC198" HREF="gettext_13.html#SEC198">13.5.6 GNU clisp C sources</A> -<LI><A NAME="TOC199" HREF="gettext_13.html#SEC199">13.5.7 Emacs Lisp</A> -<LI><A NAME="TOC200" HREF="gettext_13.html#SEC200">13.5.8 librep</A> -<LI><A NAME="TOC201" HREF="gettext_13.html#SEC201">13.5.9 GNU Smalltalk</A> -<LI><A NAME="TOC202" HREF="gettext_13.html#SEC202">13.5.10 Java</A> -<LI><A NAME="TOC203" HREF="gettext_13.html#SEC203">13.5.11 GNU awk</A> -<LI><A NAME="TOC204" HREF="gettext_13.html#SEC204">13.5.12 Pascal - Free Pascal Compiler</A> -<LI><A NAME="TOC205" HREF="gettext_13.html#SEC205">13.5.13 wxWindows library</A> -<LI><A NAME="TOC206" HREF="gettext_13.html#SEC206">13.5.14 YCP - YaST2 scripting language</A> -<LI><A NAME="TOC207" HREF="gettext_13.html#SEC207">13.5.15 Perl</A> -<LI><A NAME="TOC208" HREF="gettext_13.html#SEC208">13.5.16 PHP Hypertext Preprocessor</A> -<LI><A NAME="TOC209" HREF="gettext_13.html#SEC209">13.5.17 Pike</A> +<LI><A NAME="TOC195" HREF="gettext_13.html#SEC195">13.5.1 C, C++, Objective C</A> +<LI><A NAME="TOC196" HREF="gettext_13.html#SEC196">13.5.2 sh - Shell Script</A> +<LI><A NAME="TOC197" HREF="gettext_13.html#SEC197">13.5.3 bash - Bourne-Again Shell Script</A> +<LI><A NAME="TOC198" HREF="gettext_13.html#SEC198">13.5.4 Python</A> +<LI><A NAME="TOC199" HREF="gettext_13.html#SEC199">13.5.5 GNU clisp - Common Lisp</A> +<LI><A NAME="TOC200" HREF="gettext_13.html#SEC200">13.5.6 GNU clisp C sources</A> +<LI><A NAME="TOC201" HREF="gettext_13.html#SEC201">13.5.7 Emacs Lisp</A> +<LI><A NAME="TOC202" HREF="gettext_13.html#SEC202">13.5.8 librep</A> +<LI><A NAME="TOC203" HREF="gettext_13.html#SEC203">13.5.9 GNU Smalltalk</A> +<LI><A NAME="TOC204" HREF="gettext_13.html#SEC204">13.5.10 Java</A> +<LI><A NAME="TOC205" HREF="gettext_13.html#SEC205">13.5.11 GNU awk</A> +<LI><A NAME="TOC206" HREF="gettext_13.html#SEC206">13.5.12 Pascal - Free Pascal Compiler</A> +<LI><A NAME="TOC207" HREF="gettext_13.html#SEC207">13.5.13 wxWindows library</A> +<LI><A NAME="TOC208" HREF="gettext_13.html#SEC208">13.5.14 YCP - YaST2 scripting language</A> +<LI><A NAME="TOC209" HREF="gettext_13.html#SEC209">13.5.15 Tcl - Tk's scripting language</A> +<LI><A NAME="TOC210" HREF="gettext_13.html#SEC210">13.5.16 Perl</A> +<LI><A NAME="TOC211" HREF="gettext_13.html#SEC211">13.5.17 PHP Hypertext Preprocessor</A> +<LI><A NAME="TOC212" HREF="gettext_13.html#SEC212">13.5.18 Pike</A> </UL> -<LI><A NAME="TOC210" HREF="gettext_13.html#SEC210">13.6 Internationalizable Data</A> +<LI><A NAME="TOC213" HREF="gettext_13.html#SEC213">13.6 Internationalizable Data</A> <UL> -<LI><A NAME="TOC211" HREF="gettext_13.html#SEC211">13.6.1 POT - Portable Object Template</A> -<LI><A NAME="TOC212" HREF="gettext_13.html#SEC212">13.6.2 Resource String Table</A> -</UL> +<LI><A NAME="TOC214" HREF="gettext_13.html#SEC214">13.6.1 POT - Portable Object Template</A> +<LI><A NAME="TOC215" HREF="gettext_13.html#SEC215">13.6.2 Resource String Table</A> +<LI><A NAME="TOC216" HREF="gettext_13.html#SEC216">13.6.3 Glade - GNOME user interface description</A> </UL> -<LI><A NAME="TOC213" HREF="gettext_14.html#SEC213">14 Concluding Remarks</A> -<UL> -<LI><A NAME="TOC214" HREF="gettext_14.html#SEC214">14.1 History of GNU <CODE>gettext</CODE></A> -<LI><A NAME="TOC215" HREF="gettext_14.html#SEC215">14.2 Related Readings</A> </UL> -<LI><A NAME="TOC216" HREF="gettext_15.html#SEC216">A Language Codes</A> -<LI><A NAME="TOC217" HREF="gettext_16.html#SEC217">B Country Codes</A> +<LI><A NAME="TOC217" HREF="gettext_14.html#SEC217">14 Concluding Remarks</A> +<UL> +<LI><A NAME="TOC218" HREF="gettext_14.html#SEC218">14.1 History of GNU <CODE>gettext</CODE></A> +<LI><A NAME="TOC219" HREF="gettext_14.html#SEC219">14.2 Related Readings</A> +</UL> +<LI><A NAME="TOC220" HREF="gettext_15.html#SEC220">A Language Codes</A> +<LI><A NAME="TOC221" HREF="gettext_16.html#SEC221">B Country Codes</A> +<LI><A NAME="TOC222" HREF="gettext_17.html#SEC222">Program Index</A> +<LI><A NAME="TOC223" HREF="gettext_18.html#SEC223">Option Index</A> +<LI><A NAME="TOC224" HREF="gettext_19.html#SEC224">Variable Index</A> +<LI><A NAME="TOC225" HREF="gettext_20.html#SEC225">PO Mode Index</A> +<LI><A NAME="TOC226" HREF="gettext_21.html#SEC226">Autoconf Macro Index</A> +<LI><A NAME="TOC227" HREF="gettext_22.html#SEC227">General Index</A> </UL> <P><HR><P> -This document was generated on 31 January 2002 using the +This document was generated on 7 March 2002 using the <A HREF="http://wwwinfo.cern.ch/dis/texi2html/">texi2html</A> translator version 1.52a.</P> </BODY> diff --git a/doc/version.texi b/doc/version.texi index e4687f9..450d73e 100644 --- a/doc/version.texi +++ b/doc/version.texi @@ -1,4 +1,4 @@ -@set UPDATED 30 January 2002 -@set UPDATED-MONTH January 2002 -@set EDITION 0.11 -@set VERSION 0.11 +@set UPDATED 5 March 2002 +@set UPDATED-MONTH March 2002 +@set EDITION 0.11.1 +@set VERSION 0.11.1 |