1<HTML> 2<HEAD> 3<!-- This HTML file has been created by texi2html 1.52b 4 from gettext.texi on 27 November 2006 --> 5 6<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8"> 7<TITLE>GNU gettext utilities - Table of Contents</TITLE> 8</HEAD> 9<BODY> 10<H1>GNU gettext tools, version 0.16.1</H1> 11<H2>Native Language Support Library and Tools</H2> 12<H2>Edition 0.16.1, 27 November 2006</H2> 13<ADDRESS>Ulrich Drepper</ADDRESS> 14<ADDRESS>Jim Meyering</ADDRESS> 15<ADDRESS>François Pinard</ADDRESS> 16<ADDRESS>Bruno Haible</ADDRESS> 17<P> 18<P><HR><P> 19<UL> 20<LI><A NAME="TOC1" HREF="gettext_1.html#SEC1">1 Introduction</A> 21<UL> 22<LI><A NAME="TOC2" HREF="gettext_1.html#SEC2">1.1 The Purpose of GNU <CODE>gettext</CODE></A> 23<LI><A NAME="TOC3" HREF="gettext_1.html#SEC3">1.2 I18n, L10n, and Such</A> 24<LI><A NAME="TOC4" HREF="gettext_1.html#SEC4">1.3 Aspects in Native Language Support</A> 25<LI><A NAME="TOC5" HREF="gettext_1.html#SEC5">1.4 Files Conveying Translations</A> 26<LI><A NAME="TOC6" HREF="gettext_1.html#SEC6">1.5 Overview of GNU <CODE>gettext</CODE></A> 27</UL> 28<LI><A NAME="TOC7" HREF="gettext_2.html#SEC7">2 The User's View</A> 29<UL> 30<LI><A NAME="TOC8" HREF="gettext_2.html#SEC8">2.1 The Current <TT>‘ABOUT-NLS’</TT> Matrix</A> 31<LI><A NAME="TOC9" HREF="gettext_2.html#SEC9">2.2 Magic for End Users</A> 32</UL> 33<LI><A NAME="TOC10" HREF="gettext_3.html#SEC10">3 The Format of PO Files</A> 34<LI><A NAME="TOC11" HREF="gettext_4.html#SEC11">4 Preparing Program Sources</A> 35<UL> 36<LI><A NAME="TOC12" HREF="gettext_4.html#SEC12">4.1 Importing the <CODE>gettext</CODE> declaration</A> 37<LI><A NAME="TOC13" HREF="gettext_4.html#SEC13">4.2 Triggering <CODE>gettext</CODE> Operations</A> 38<LI><A NAME="TOC14" HREF="gettext_4.html#SEC14">4.3 Preparing Translatable Strings</A> 39<LI><A NAME="TOC15" HREF="gettext_4.html#SEC15">4.4 How Marks Appear in Sources</A> 40<LI><A NAME="TOC16" HREF="gettext_4.html#SEC16">4.5 Marking Translatable Strings</A> 41<LI><A NAME="TOC17" HREF="gettext_4.html#SEC17">4.6 Special Comments preceding Keywords</A> 42<LI><A NAME="TOC18" HREF="gettext_4.html#SEC18">4.7 Special Cases of Translatable Strings</A> 43<LI><A NAME="TOC19" HREF="gettext_4.html#SEC19">4.8 Marking Proper Names for Translation</A> 44<LI><A NAME="TOC20" HREF="gettext_4.html#SEC20">4.9 Preparing Library Sources</A> 45</UL> 46<LI><A NAME="TOC21" HREF="gettext_5.html#SEC21">5 Making the PO Template File</A> 47<UL> 48<LI><A NAME="TOC22" HREF="gettext_5.html#SEC22">5.1 Invoking the <CODE>xgettext</CODE> Program</A> 49<UL> 50<LI><A NAME="TOC23" HREF="gettext_5.html#SEC23">5.1.1 Input file location</A> 51<LI><A NAME="TOC24" HREF="gettext_5.html#SEC24">5.1.2 Output file location</A> 52<LI><A NAME="TOC25" HREF="gettext_5.html#SEC25">5.1.3 Choice of input file language</A> 53<LI><A NAME="TOC26" HREF="gettext_5.html#SEC26">5.1.4 Input file interpretation</A> 54<LI><A NAME="TOC27" HREF="gettext_5.html#SEC27">5.1.5 Operation mode</A> 55<LI><A NAME="TOC28" HREF="gettext_5.html#SEC28">5.1.6 Language specific options</A> 56<LI><A NAME="TOC29" HREF="gettext_5.html#SEC29">5.1.7 Output details</A> 57<LI><A NAME="TOC30" HREF="gettext_5.html#SEC30">5.1.8 Informative output</A> 58</UL> 59</UL> 60<LI><A NAME="TOC31" HREF="gettext_6.html#SEC31">6 Creating a New PO File</A> 61<UL> 62<LI><A NAME="TOC32" HREF="gettext_6.html#SEC32">6.1 Invoking the <CODE>msginit</CODE> Program</A> 63<UL> 64<LI><A NAME="TOC33" HREF="gettext_6.html#SEC33">6.1.1 Input file location</A> 65<LI><A NAME="TOC34" HREF="gettext_6.html#SEC34">6.1.2 Output file location</A> 66<LI><A NAME="TOC35" HREF="gettext_6.html#SEC35">6.1.3 Input file syntax</A> 67<LI><A NAME="TOC36" HREF="gettext_6.html#SEC36">6.1.4 Output details</A> 68<LI><A NAME="TOC37" HREF="gettext_6.html#SEC37">6.1.5 Informative output</A> 69</UL> 70<LI><A NAME="TOC38" HREF="gettext_6.html#SEC38">6.2 Filling in the Header Entry</A> 71</UL> 72<LI><A NAME="TOC39" HREF="gettext_7.html#SEC39">7 Updating Existing PO Files</A> 73<UL> 74<LI><A NAME="TOC40" HREF="gettext_7.html#SEC40">7.1 Invoking the <CODE>msgmerge</CODE> Program</A> 75<UL> 76<LI><A NAME="TOC41" HREF="gettext_7.html#SEC41">7.1.1 Input file location</A> 77<LI><A NAME="TOC42" HREF="gettext_7.html#SEC42">7.1.2 Operation mode</A> 78<LI><A NAME="TOC43" HREF="gettext_7.html#SEC43">7.1.3 Output file location</A> 79<LI><A NAME="TOC44" HREF="gettext_7.html#SEC44">7.1.4 Output file location in update mode</A> 80<LI><A NAME="TOC45" HREF="gettext_7.html#SEC45">7.1.5 Operation modifiers</A> 81<LI><A NAME="TOC46" HREF="gettext_7.html#SEC46">7.1.6 Input file syntax</A> 82<LI><A NAME="TOC47" HREF="gettext_7.html#SEC47">7.1.7 Output details</A> 83<LI><A NAME="TOC48" HREF="gettext_7.html#SEC48">7.1.8 Informative output</A> 84</UL> 85</UL> 86<LI><A NAME="TOC49" HREF="gettext_8.html#SEC49">8 Editing PO Files</A> 87<UL> 88<LI><A NAME="TOC50" HREF="gettext_8.html#SEC50">8.1 KDE's PO File Editor</A> 89<LI><A NAME="TOC51" HREF="gettext_8.html#SEC51">8.2 GNOME's PO File Editor</A> 90<LI><A NAME="TOC52" HREF="gettext_8.html#SEC52">8.3 Emacs's PO File Editor</A> 91<UL> 92<LI><A NAME="TOC53" HREF="gettext_8.html#SEC53">8.3.1 Completing GNU <CODE>gettext</CODE> Installation</A> 93<LI><A NAME="TOC54" HREF="gettext_8.html#SEC54">8.3.2 Main PO mode Commands</A> 94<LI><A NAME="TOC55" HREF="gettext_8.html#SEC55">8.3.3 Entry Positioning</A> 95<LI><A NAME="TOC56" HREF="gettext_8.html#SEC56">8.3.4 Normalizing Strings in Entries</A> 96<LI><A NAME="TOC57" HREF="gettext_8.html#SEC57">8.3.5 Translated Entries</A> 97<LI><A NAME="TOC58" HREF="gettext_8.html#SEC58">8.3.6 Fuzzy Entries</A> 98<LI><A NAME="TOC59" HREF="gettext_8.html#SEC59">8.3.7 Untranslated Entries</A> 99<LI><A NAME="TOC60" HREF="gettext_8.html#SEC60">8.3.8 Obsolete Entries</A> 100<LI><A NAME="TOC61" HREF="gettext_8.html#SEC61">8.3.9 Modifying Translations</A> 101<LI><A NAME="TOC62" HREF="gettext_8.html#SEC62">8.3.10 Modifying Comments</A> 102<LI><A NAME="TOC63" HREF="gettext_8.html#SEC63">8.3.11 Details of Sub Edition</A> 103<LI><A NAME="TOC64" HREF="gettext_8.html#SEC64">8.3.12 C Sources Context</A> 104<LI><A NAME="TOC65" HREF="gettext_8.html#SEC65">8.3.13 Consulting Auxiliary PO Files</A> 105<LI><A NAME="TOC66" HREF="gettext_8.html#SEC66">8.3.14 Using Translation Compendia</A> 106<UL> 107<LI><A NAME="TOC67" HREF="gettext_8.html#SEC67">8.3.14.1 Creating Compendia</A> 108<LI><A NAME="TOC68" HREF="gettext_8.html#SEC68">8.3.14.2 Concatenate PO Files</A> 109<LI><A NAME="TOC69" HREF="gettext_8.html#SEC69">8.3.14.3 Extract a Message Subset from a PO File</A> 110<LI><A NAME="TOC70" HREF="gettext_8.html#SEC70">8.3.14.4 Using Compendia</A> 111<LI><A NAME="TOC71" HREF="gettext_8.html#SEC71">8.3.14.5 Initialize a New Translation File</A> 112<LI><A NAME="TOC72" HREF="gettext_8.html#SEC72">8.3.14.6 Update an Existing Translation File</A> 113</UL> 114</UL> 115</UL> 116<LI><A NAME="TOC73" HREF="gettext_9.html#SEC73">9 Manipulating PO Files</A> 117<UL> 118<LI><A NAME="TOC74" HREF="gettext_9.html#SEC74">9.1 Invoking the <CODE>msgcat</CODE> Program</A> 119<UL> 120<LI><A NAME="TOC75" HREF="gettext_9.html#SEC75">9.1.1 Input file location</A> 121<LI><A NAME="TOC76" HREF="gettext_9.html#SEC76">9.1.2 Output file location</A> 122<LI><A NAME="TOC77" HREF="gettext_9.html#SEC77">9.1.3 Message selection</A> 123<LI><A NAME="TOC78" HREF="gettext_9.html#SEC78">9.1.4 Input file syntax</A> 124<LI><A NAME="TOC79" HREF="gettext_9.html#SEC79">9.1.5 Output details</A> 125<LI><A NAME="TOC80" HREF="gettext_9.html#SEC80">9.1.6 Informative output</A> 126</UL> 127<LI><A NAME="TOC81" HREF="gettext_9.html#SEC81">9.2 Invoking the <CODE>msgconv</CODE> Program</A> 128<UL> 129<LI><A NAME="TOC82" HREF="gettext_9.html#SEC82">9.2.1 Input file location</A> 130<LI><A NAME="TOC83" HREF="gettext_9.html#SEC83">9.2.2 Output file location</A> 131<LI><A NAME="TOC84" HREF="gettext_9.html#SEC84">9.2.3 Conversion target</A> 132<LI><A NAME="TOC85" HREF="gettext_9.html#SEC85">9.2.4 Input file syntax</A> 133<LI><A NAME="TOC86" HREF="gettext_9.html#SEC86">9.2.5 Output details</A> 134<LI><A NAME="TOC87" HREF="gettext_9.html#SEC87">9.2.6 Informative output</A> 135</UL> 136<LI><A NAME="TOC88" HREF="gettext_9.html#SEC88">9.3 Invoking the <CODE>msggrep</CODE> Program</A> 137<UL> 138<LI><A NAME="TOC89" HREF="gettext_9.html#SEC89">9.3.1 Input file location</A> 139<LI><A NAME="TOC90" HREF="gettext_9.html#SEC90">9.3.2 Output file location</A> 140<LI><A NAME="TOC91" HREF="gettext_9.html#SEC91">9.3.3 Message selection</A> 141<LI><A NAME="TOC92" HREF="gettext_9.html#SEC92">9.3.4 Input file syntax</A> 142<LI><A NAME="TOC93" HREF="gettext_9.html#SEC93">9.3.5 Output details</A> 143<LI><A NAME="TOC94" HREF="gettext_9.html#SEC94">9.3.6 Informative output</A> 144</UL> 145<LI><A NAME="TOC95" HREF="gettext_9.html#SEC95">9.4 Invoking the <CODE>msgfilter</CODE> Program</A> 146<UL> 147<LI><A NAME="TOC96" HREF="gettext_9.html#SEC96">9.4.1 Input file location</A> 148<LI><A NAME="TOC97" HREF="gettext_9.html#SEC97">9.4.2 Output file location</A> 149<LI><A NAME="TOC98" HREF="gettext_9.html#SEC98">9.4.3 The filter</A> 150<LI><A NAME="TOC99" HREF="gettext_9.html#SEC99">9.4.4 Useful <VAR>filter-option</VAR>s when the <VAR>filter</VAR> is <SAMP>‘sed’</SAMP></A> 151<LI><A NAME="TOC100" HREF="gettext_9.html#SEC100">9.4.5 Built-in <VAR>filter</VAR>s</A> 152<LI><A NAME="TOC101" HREF="gettext_9.html#SEC101">9.4.6 Input file syntax</A> 153<LI><A NAME="TOC102" HREF="gettext_9.html#SEC102">9.4.7 Output details</A> 154<LI><A NAME="TOC103" HREF="gettext_9.html#SEC103">9.4.8 Informative output</A> 155</UL> 156<LI><A NAME="TOC104" HREF="gettext_9.html#SEC104">9.5 Invoking the <CODE>msguniq</CODE> Program</A> 157<UL> 158<LI><A NAME="TOC105" HREF="gettext_9.html#SEC105">9.5.1 Input file location</A> 159<LI><A NAME="TOC106" HREF="gettext_9.html#SEC106">9.5.2 Output file location</A> 160<LI><A NAME="TOC107" HREF="gettext_9.html#SEC107">9.5.3 Message selection</A> 161<LI><A NAME="TOC108" HREF="gettext_9.html#SEC108">9.5.4 Input file syntax</A> 162<LI><A NAME="TOC109" HREF="gettext_9.html#SEC109">9.5.5 Output details</A> 163<LI><A NAME="TOC110" HREF="gettext_9.html#SEC110">9.5.6 Informative output</A> 164</UL> 165<LI><A NAME="TOC111" HREF="gettext_9.html#SEC111">9.6 Invoking the <CODE>msgcomm</CODE> Program</A> 166<UL> 167<LI><A NAME="TOC112" HREF="gettext_9.html#SEC112">9.6.1 Input file location</A> 168<LI><A NAME="TOC113" HREF="gettext_9.html#SEC113">9.6.2 Output file location</A> 169<LI><A NAME="TOC114" HREF="gettext_9.html#SEC114">9.6.3 Message selection</A> 170<LI><A NAME="TOC115" HREF="gettext_9.html#SEC115">9.6.4 Input file syntax</A> 171<LI><A NAME="TOC116" HREF="gettext_9.html#SEC116">9.6.5 Output details</A> 172<LI><A NAME="TOC117" HREF="gettext_9.html#SEC117">9.6.6 Informative output</A> 173</UL> 174<LI><A NAME="TOC118" HREF="gettext_9.html#SEC118">9.7 Invoking the <CODE>msgcmp</CODE> Program</A> 175<UL> 176<LI><A NAME="TOC119" HREF="gettext_9.html#SEC119">9.7.1 Input file location</A> 177<LI><A NAME="TOC120" HREF="gettext_9.html#SEC120">9.7.2 Operation modifiers</A> 178<LI><A NAME="TOC121" HREF="gettext_9.html#SEC121">9.7.3 Input file syntax</A> 179<LI><A NAME="TOC122" HREF="gettext_9.html#SEC122">9.7.4 Informative output</A> 180</UL> 181<LI><A NAME="TOC123" HREF="gettext_9.html#SEC123">9.8 Invoking the <CODE>msgattrib</CODE> Program</A> 182<UL> 183<LI><A NAME="TOC124" HREF="gettext_9.html#SEC124">9.8.1 Input file location</A> 184<LI><A NAME="TOC125" HREF="gettext_9.html#SEC125">9.8.2 Output file location</A> 185<LI><A NAME="TOC126" HREF="gettext_9.html#SEC126">9.8.3 Message selection</A> 186<LI><A NAME="TOC127" HREF="gettext_9.html#SEC127">9.8.4 Attribute manipulation</A> 187<LI><A NAME="TOC128" HREF="gettext_9.html#SEC128">9.8.5 Input file syntax</A> 188<LI><A NAME="TOC129" HREF="gettext_9.html#SEC129">9.8.6 Output details</A> 189<LI><A NAME="TOC130" HREF="gettext_9.html#SEC130">9.8.7 Informative output</A> 190</UL> 191<LI><A NAME="TOC131" HREF="gettext_9.html#SEC131">9.9 Invoking the <CODE>msgen</CODE> Program</A> 192<UL> 193<LI><A NAME="TOC132" HREF="gettext_9.html#SEC132">9.9.1 Input file location</A> 194<LI><A NAME="TOC133" HREF="gettext_9.html#SEC133">9.9.2 Output file location</A> 195<LI><A NAME="TOC134" HREF="gettext_9.html#SEC134">9.9.3 Input file syntax</A> 196<LI><A NAME="TOC135" HREF="gettext_9.html#SEC135">9.9.4 Output details</A> 197<LI><A NAME="TOC136" HREF="gettext_9.html#SEC136">9.9.5 Informative output</A> 198</UL> 199<LI><A NAME="TOC137" HREF="gettext_9.html#SEC137">9.10 Invoking the <CODE>msgexec</CODE> Program</A> 200<UL> 201<LI><A NAME="TOC138" HREF="gettext_9.html#SEC138">9.10.1 Input file location</A> 202<LI><A NAME="TOC139" HREF="gettext_9.html#SEC139">9.10.2 Input file syntax</A> 203<LI><A NAME="TOC140" HREF="gettext_9.html#SEC140">9.10.3 Informative output</A> 204</UL> 205<LI><A NAME="TOC141" HREF="gettext_9.html#SEC141">9.11 Writing your own programs that process PO files</A> 206</UL> 207<LI><A NAME="TOC142" HREF="gettext_10.html#SEC142">10 Producing Binary MO Files</A> 208<UL> 209<LI><A NAME="TOC143" HREF="gettext_10.html#SEC143">10.1 Invoking the <CODE>msgfmt</CODE> Program</A> 210<UL> 211<LI><A NAME="TOC144" HREF="gettext_10.html#SEC144">10.1.1 Input file location</A> 212<LI><A NAME="TOC145" HREF="gettext_10.html#SEC145">10.1.2 Operation mode</A> 213<LI><A NAME="TOC146" HREF="gettext_10.html#SEC146">10.1.3 Output file location</A> 214<LI><A NAME="TOC147" HREF="gettext_10.html#SEC147">10.1.4 Output file location in Java mode</A> 215<LI><A NAME="TOC148" HREF="gettext_10.html#SEC148">10.1.5 Output file location in C# mode</A> 216<LI><A NAME="TOC149" HREF="gettext_10.html#SEC149">10.1.6 Output file location in Tcl mode</A> 217<LI><A NAME="TOC150" HREF="gettext_10.html#SEC150">10.1.7 Input file syntax</A> 218<LI><A NAME="TOC151" HREF="gettext_10.html#SEC151">10.1.8 Input file interpretation</A> 219<LI><A NAME="TOC152" HREF="gettext_10.html#SEC152">10.1.9 Output details</A> 220<LI><A NAME="TOC153" HREF="gettext_10.html#SEC153">10.1.10 Informative output</A> 221</UL> 222<LI><A NAME="TOC154" HREF="gettext_10.html#SEC154">10.2 Invoking the <CODE>msgunfmt</CODE> Program</A> 223<UL> 224<LI><A NAME="TOC155" HREF="gettext_10.html#SEC155">10.2.1 Operation mode</A> 225<LI><A NAME="TOC156" HREF="gettext_10.html#SEC156">10.2.2 Input file location</A> 226<LI><A NAME="TOC157" HREF="gettext_10.html#SEC157">10.2.3 Input file location in Java mode</A> 227<LI><A NAME="TOC158" HREF="gettext_10.html#SEC158">10.2.4 Input file location in C# mode</A> 228<LI><A NAME="TOC159" HREF="gettext_10.html#SEC159">10.2.5 Input file location in Tcl mode</A> 229<LI><A NAME="TOC160" HREF="gettext_10.html#SEC160">10.2.6 Output file location</A> 230<LI><A NAME="TOC161" HREF="gettext_10.html#SEC161">10.2.7 Output details</A> 231<LI><A NAME="TOC162" HREF="gettext_10.html#SEC162">10.2.8 Informative output</A> 232</UL> 233<LI><A NAME="TOC163" HREF="gettext_10.html#SEC163">10.3 The Format of GNU MO Files</A> 234</UL> 235<LI><A NAME="TOC164" HREF="gettext_11.html#SEC164">11 The Programmer's View</A> 236<UL> 237<LI><A NAME="TOC165" HREF="gettext_11.html#SEC165">11.1 About <CODE>catgets</CODE></A> 238<UL> 239<LI><A NAME="TOC166" HREF="gettext_11.html#SEC166">11.1.1 The Interface</A> 240<LI><A NAME="TOC167" HREF="gettext_11.html#SEC167">11.1.2 Problems with the <CODE>catgets</CODE> Interface?!</A> 241</UL> 242<LI><A NAME="TOC168" HREF="gettext_11.html#SEC168">11.2 About <CODE>gettext</CODE></A> 243<UL> 244<LI><A NAME="TOC169" HREF="gettext_11.html#SEC169">11.2.1 The Interface</A> 245<LI><A NAME="TOC170" HREF="gettext_11.html#SEC170">11.2.2 Solving Ambiguities</A> 246<LI><A NAME="TOC171" HREF="gettext_11.html#SEC171">11.2.3 Locating Message Catalog Files</A> 247<LI><A NAME="TOC172" HREF="gettext_11.html#SEC172">11.2.4 How to specify the output character set <CODE>gettext</CODE> uses</A> 248<LI><A NAME="TOC173" HREF="gettext_11.html#SEC173">11.2.5 Using contexts for solving ambiguities</A> 249<LI><A NAME="TOC174" HREF="gettext_11.html#SEC174">11.2.6 Additional functions for plural forms</A> 250<LI><A NAME="TOC175" HREF="gettext_11.html#SEC175">11.2.7 Optimization of the *gettext functions</A> 251</UL> 252<LI><A NAME="TOC176" HREF="gettext_11.html#SEC176">11.3 Comparing the Two Interfaces</A> 253<LI><A NAME="TOC177" HREF="gettext_11.html#SEC177">11.4 Using libintl.a in own programs</A> 254<LI><A NAME="TOC178" HREF="gettext_11.html#SEC178">11.5 Being a <CODE>gettext</CODE> grok</A> 255<LI><A NAME="TOC179" HREF="gettext_11.html#SEC179">11.6 Temporary Notes for the Programmers Chapter</A> 256<UL> 257<LI><A NAME="TOC180" HREF="gettext_11.html#SEC180">11.6.1 Temporary - Two Possible Implementations</A> 258<LI><A NAME="TOC181" HREF="gettext_11.html#SEC181">11.6.2 Temporary - About <CODE>catgets</CODE></A> 259<LI><A NAME="TOC182" HREF="gettext_11.html#SEC182">11.6.3 Temporary - Why a single implementation</A> 260<LI><A NAME="TOC183" HREF="gettext_11.html#SEC183">11.6.4 Temporary - Notes</A> 261</UL> 262</UL> 263<LI><A NAME="TOC184" HREF="gettext_12.html#SEC184">12 The Translator's View</A> 264<UL> 265<LI><A NAME="TOC185" HREF="gettext_12.html#SEC185">12.1 Introduction 0</A> 266<LI><A NAME="TOC186" HREF="gettext_12.html#SEC186">12.2 Introduction 1</A> 267<LI><A NAME="TOC187" HREF="gettext_12.html#SEC187">12.3 Discussions</A> 268<LI><A NAME="TOC188" HREF="gettext_12.html#SEC188">12.4 Organization</A> 269<UL> 270<LI><A NAME="TOC189" HREF="gettext_12.html#SEC189">12.4.1 Central Coordination</A> 271<LI><A NAME="TOC190" HREF="gettext_12.html#SEC190">12.4.2 National Teams</A> 272<UL> 273<LI><A NAME="TOC191" HREF="gettext_12.html#SEC191">12.4.2.1 Sub-Cultures</A> 274<LI><A NAME="TOC192" HREF="gettext_12.html#SEC192">12.4.2.2 Organizational Ideas</A> 275</UL> 276<LI><A NAME="TOC193" HREF="gettext_12.html#SEC193">12.4.3 Mailing Lists</A> 277</UL> 278<LI><A NAME="TOC194" HREF="gettext_12.html#SEC194">12.5 Information Flow</A> 279<LI><A NAME="TOC195" HREF="gettext_12.html#SEC195">12.6 Prioritizing messages: How to determine which messages to translate first</A> 280</UL> 281<LI><A NAME="TOC196" HREF="gettext_13.html#SEC196">13 The Maintainer's View</A> 282<UL> 283<LI><A NAME="TOC197" HREF="gettext_13.html#SEC197">13.1 Flat or Non-Flat Directory Structures</A> 284<LI><A NAME="TOC198" HREF="gettext_13.html#SEC198">13.2 Prerequisite Works</A> 285<LI><A NAME="TOC199" HREF="gettext_13.html#SEC199">13.3 Invoking the <CODE>gettextize</CODE> Program</A> 286<LI><A NAME="TOC200" HREF="gettext_13.html#SEC200">13.4 Files You Must Create or Alter</A> 287<UL> 288<LI><A NAME="TOC201" HREF="gettext_13.html#SEC201">13.4.1 <TT>‘POTFILES.in’</TT> in <TT>‘po/’</TT></A> 289<LI><A NAME="TOC202" HREF="gettext_13.html#SEC202">13.4.2 <TT>‘LINGUAS’</TT> in <TT>‘po/’</TT></A> 290<LI><A NAME="TOC203" HREF="gettext_13.html#SEC203">13.4.3 <TT>‘Makevars’</TT> in <TT>‘po/’</TT></A> 291<LI><A NAME="TOC204" HREF="gettext_13.html#SEC204">13.4.4 Extending <TT>‘Makefile’</TT> in <TT>‘po/’</TT></A> 292<LI><A NAME="TOC205" HREF="gettext_13.html#SEC205">13.4.5 <TT>‘configure.in’</TT> at top level</A> 293<LI><A NAME="TOC206" HREF="gettext_13.html#SEC206">13.4.6 <TT>‘config.guess’</TT>, <TT>‘config.sub’</TT> at top level</A> 294<LI><A NAME="TOC207" HREF="gettext_13.html#SEC207">13.4.7 <TT>‘mkinstalldirs’</TT> at top level</A> 295<LI><A NAME="TOC208" HREF="gettext_13.html#SEC208">13.4.8 <TT>‘aclocal.m4’</TT> at top level</A> 296<LI><A NAME="TOC209" HREF="gettext_13.html#SEC209">13.4.9 <TT>‘acconfig.h’</TT> at top level</A> 297<LI><A NAME="TOC210" HREF="gettext_13.html#SEC210">13.4.10 <TT>‘config.h.in’</TT> at top level</A> 298<LI><A NAME="TOC211" HREF="gettext_13.html#SEC211">13.4.11 <TT>‘Makefile.in’</TT> at top level</A> 299<LI><A NAME="TOC212" HREF="gettext_13.html#SEC212">13.4.12 <TT>‘Makefile.in’</TT> in <TT>‘src/’</TT></A> 300<LI><A NAME="TOC213" HREF="gettext_13.html#SEC213">13.4.13 <TT>‘gettext.h’</TT> in <TT>‘lib/’</TT></A> 301</UL> 302<LI><A NAME="TOC214" HREF="gettext_13.html#SEC214">13.5 Autoconf macros for use in <TT>‘configure.in’</TT></A> 303<UL> 304<LI><A NAME="TOC215" HREF="gettext_13.html#SEC215">13.5.1 AM_GNU_GETTEXT in <TT>‘gettext.m4’</TT></A> 305<LI><A NAME="TOC216" HREF="gettext_13.html#SEC216">13.5.2 AM_GNU_GETTEXT_VERSION in <TT>‘gettext.m4’</TT></A> 306<LI><A NAME="TOC217" HREF="gettext_13.html#SEC217">13.5.3 AM_GNU_GETTEXT_NEED in <TT>‘gettext.m4’</TT></A> 307<LI><A NAME="TOC218" HREF="gettext_13.html#SEC218">13.5.4 AM_GNU_GETTEXT_INTL_SUBDIR in <TT>‘intldir.m4’</TT></A> 308<LI><A NAME="TOC219" HREF="gettext_13.html#SEC219">13.5.5 AM_PO_SUBDIRS in <TT>‘po.m4’</TT></A> 309<LI><A NAME="TOC220" HREF="gettext_13.html#SEC220">13.5.6 AM_ICONV in <TT>‘iconv.m4’</TT></A> 310</UL> 311<LI><A NAME="TOC221" HREF="gettext_13.html#SEC221">13.6 Integrating with CVS</A> 312<UL> 313<LI><A NAME="TOC222" HREF="gettext_13.html#SEC222">13.6.1 Avoiding version mismatch in distributed development</A> 314<LI><A NAME="TOC223" HREF="gettext_13.html#SEC223">13.6.2 Files to put under CVS version control</A> 315<LI><A NAME="TOC224" HREF="gettext_13.html#SEC224">13.6.3 Invoking the <CODE>autopoint</CODE> Program</A> 316<UL> 317<LI><A NAME="TOC225" HREF="gettext_13.html#SEC225">13.6.3.1 Options</A> 318<LI><A NAME="TOC226" HREF="gettext_13.html#SEC226">13.6.3.2 Informative output</A> 319</UL> 320</UL> 321<LI><A NAME="TOC227" HREF="gettext_13.html#SEC227">13.7 Creating a Distribution Tarball</A> 322</UL> 323<LI><A NAME="TOC228" HREF="gettext_14.html#SEC228">14 The Installer's and Distributor's View</A> 324<LI><A NAME="TOC229" HREF="gettext_15.html#SEC229">15 Other Programming Languages</A> 325<UL> 326<LI><A NAME="TOC230" HREF="gettext_15.html#SEC230">15.1 The Language Implementor's View</A> 327<LI><A NAME="TOC231" HREF="gettext_15.html#SEC231">15.2 The Programmer's View</A> 328<LI><A NAME="TOC232" HREF="gettext_15.html#SEC232">15.3 The Translator's View</A> 329<UL> 330<LI><A NAME="TOC233" HREF="gettext_15.html#SEC233">15.3.1 C Format Strings</A> 331<LI><A NAME="TOC234" HREF="gettext_15.html#SEC234">15.3.2 Objective C Format Strings</A> 332<LI><A NAME="TOC235" HREF="gettext_15.html#SEC235">15.3.3 Shell Format Strings</A> 333<LI><A NAME="TOC236" HREF="gettext_15.html#SEC236">15.3.4 Python Format Strings</A> 334<LI><A NAME="TOC237" HREF="gettext_15.html#SEC237">15.3.5 Lisp Format Strings</A> 335<LI><A NAME="TOC238" HREF="gettext_15.html#SEC238">15.3.6 Emacs Lisp Format Strings</A> 336<LI><A NAME="TOC239" HREF="gettext_15.html#SEC239">15.3.7 librep Format Strings</A> 337<LI><A NAME="TOC240" HREF="gettext_15.html#SEC240">15.3.8 Scheme Format Strings</A> 338<LI><A NAME="TOC241" HREF="gettext_15.html#SEC241">15.3.9 Smalltalk Format Strings</A> 339<LI><A NAME="TOC242" HREF="gettext_15.html#SEC242">15.3.10 Java Format Strings</A> 340<LI><A NAME="TOC243" HREF="gettext_15.html#SEC243">15.3.11 C# Format Strings</A> 341<LI><A NAME="TOC244" HREF="gettext_15.html#SEC244">15.3.12 awk Format Strings</A> 342<LI><A NAME="TOC245" HREF="gettext_15.html#SEC245">15.3.13 Object Pascal Format Strings</A> 343<LI><A NAME="TOC246" HREF="gettext_15.html#SEC246">15.3.14 YCP Format Strings</A> 344<LI><A NAME="TOC247" HREF="gettext_15.html#SEC247">15.3.15 Tcl Format Strings</A> 345<LI><A NAME="TOC248" HREF="gettext_15.html#SEC248">15.3.16 Perl Format Strings</A> 346<LI><A NAME="TOC249" HREF="gettext_15.html#SEC249">15.3.17 PHP Format Strings</A> 347<LI><A NAME="TOC250" HREF="gettext_15.html#SEC250">15.3.18 GCC internal Format Strings</A> 348<LI><A NAME="TOC251" HREF="gettext_15.html#SEC251">15.3.19 Qt Format Strings</A> 349<LI><A NAME="TOC252" HREF="gettext_15.html#SEC252">15.3.20 Boost Format Strings</A> 350</UL> 351<LI><A NAME="TOC253" HREF="gettext_15.html#SEC253">15.4 The Maintainer's View</A> 352<LI><A NAME="TOC254" HREF="gettext_15.html#SEC254">15.5 Individual Programming Languages</A> 353<UL> 354<LI><A NAME="TOC255" HREF="gettext_15.html#SEC255">15.5.1 C, C++, Objective C</A> 355<LI><A NAME="TOC256" HREF="gettext_15.html#SEC256">15.5.2 sh - Shell Script</A> 356<UL> 357<LI><A NAME="TOC257" HREF="gettext_15.html#SEC257">15.5.2.1 Preparing Shell Scripts for Internationalization</A> 358<LI><A NAME="TOC258" HREF="gettext_15.html#SEC258">15.5.2.2 Contents of <CODE>gettext.sh</CODE></A> 359<LI><A NAME="TOC259" HREF="gettext_15.html#SEC259">15.5.2.3 Invoking the <CODE>gettext</CODE> program</A> 360<LI><A NAME="TOC260" HREF="gettext_15.html#SEC260">15.5.2.4 Invoking the <CODE>ngettext</CODE> program</A> 361<LI><A NAME="TOC261" HREF="gettext_15.html#SEC261">15.5.2.5 Invoking the <CODE>envsubst</CODE> program</A> 362<LI><A NAME="TOC262" HREF="gettext_15.html#SEC262">15.5.2.6 Invoking the <CODE>eval_gettext</CODE> function</A> 363<LI><A NAME="TOC263" HREF="gettext_15.html#SEC263">15.5.2.7 Invoking the <CODE>eval_ngettext</CODE> function</A> 364</UL> 365<LI><A NAME="TOC264" HREF="gettext_15.html#SEC264">15.5.3 bash - Bourne-Again Shell Script</A> 366<LI><A NAME="TOC265" HREF="gettext_15.html#SEC265">15.5.4 Python</A> 367<LI><A NAME="TOC266" HREF="gettext_15.html#SEC266">15.5.5 GNU clisp - Common Lisp</A> 368<LI><A NAME="TOC267" HREF="gettext_15.html#SEC267">15.5.6 GNU clisp C sources</A> 369<LI><A NAME="TOC268" HREF="gettext_15.html#SEC268">15.5.7 Emacs Lisp</A> 370<LI><A NAME="TOC269" HREF="gettext_15.html#SEC269">15.5.8 librep</A> 371<LI><A NAME="TOC270" HREF="gettext_15.html#SEC270">15.5.9 GNU guile - Scheme</A> 372<LI><A NAME="TOC271" HREF="gettext_15.html#SEC271">15.5.10 GNU Smalltalk</A> 373<LI><A NAME="TOC272" HREF="gettext_15.html#SEC272">15.5.11 Java</A> 374<LI><A NAME="TOC273" HREF="gettext_15.html#SEC273">15.5.12 C#</A> 375<LI><A NAME="TOC274" HREF="gettext_15.html#SEC274">15.5.13 GNU awk</A> 376<LI><A NAME="TOC275" HREF="gettext_15.html#SEC275">15.5.14 Pascal - Free Pascal Compiler</A> 377<LI><A NAME="TOC276" HREF="gettext_15.html#SEC276">15.5.15 wxWidgets library</A> 378<LI><A NAME="TOC277" HREF="gettext_15.html#SEC277">15.5.16 YCP - YaST2 scripting language</A> 379<LI><A NAME="TOC278" HREF="gettext_15.html#SEC278">15.5.17 Tcl - Tk's scripting language</A> 380<LI><A NAME="TOC279" HREF="gettext_15.html#SEC279">15.5.18 Perl</A> 381<UL> 382<LI><A NAME="TOC280" HREF="gettext_15.html#SEC280">15.5.18.1 General Problems Parsing Perl Code</A> 383<LI><A NAME="TOC281" HREF="gettext_15.html#SEC281">15.5.18.2 Which keywords will xgettext look for?</A> 384<LI><A NAME="TOC282" HREF="gettext_15.html#SEC282">15.5.18.3 How to Extract Hash Keys</A> 385<LI><A NAME="TOC283" HREF="gettext_15.html#SEC283">15.5.18.4 What are Strings And Quote-like Expressions?</A> 386<LI><A NAME="TOC284" HREF="gettext_15.html#SEC284">15.5.18.5 Invalid Uses Of String Interpolation</A> 387<LI><A NAME="TOC285" HREF="gettext_15.html#SEC285">15.5.18.6 Valid Uses Of String Interpolation</A> 388<LI><A NAME="TOC286" HREF="gettext_15.html#SEC286">15.5.18.7 When To Use Parentheses</A> 389<LI><A NAME="TOC287" HREF="gettext_15.html#SEC287">15.5.18.8 How To Grok with Long Lines</A> 390<LI><A NAME="TOC288" HREF="gettext_15.html#SEC288">15.5.18.9 Bugs, Pitfalls, And Things That Do Not Work</A> 391</UL> 392<LI><A NAME="TOC289" HREF="gettext_15.html#SEC289">15.5.19 PHP Hypertext Preprocessor</A> 393<LI><A NAME="TOC290" HREF="gettext_15.html#SEC290">15.5.20 Pike</A> 394<LI><A NAME="TOC291" HREF="gettext_15.html#SEC291">15.5.21 GNU Compiler Collection sources</A> 395</UL> 396<LI><A NAME="TOC292" HREF="gettext_15.html#SEC292">15.6 Internationalizable Data</A> 397<UL> 398<LI><A NAME="TOC293" HREF="gettext_15.html#SEC293">15.6.1 POT - Portable Object Template</A> 399<LI><A NAME="TOC294" HREF="gettext_15.html#SEC294">15.6.2 Resource String Table</A> 400<LI><A NAME="TOC295" HREF="gettext_15.html#SEC295">15.6.3 Glade - GNOME user interface description</A> 401</UL> 402</UL> 403<LI><A NAME="TOC296" HREF="gettext_16.html#SEC296">16 Concluding Remarks</A> 404<UL> 405<LI><A NAME="TOC297" HREF="gettext_16.html#SEC297">16.1 History of GNU <CODE>gettext</CODE></A> 406<LI><A NAME="TOC298" HREF="gettext_16.html#SEC298">16.2 Related Readings</A> 407</UL> 408<LI><A NAME="TOC299" HREF="gettext_17.html#SEC299">A Language Codes</A> 409<UL> 410<LI><A NAME="TOC300" HREF="gettext_17.html#SEC300">A.1 Usual Language Codes</A> 411<LI><A NAME="TOC301" HREF="gettext_17.html#SEC301">A.2 Rare Language Codes</A> 412</UL> 413<LI><A NAME="TOC302" HREF="gettext_18.html#SEC302">B Country Codes</A> 414<LI><A NAME="TOC303" HREF="gettext_19.html#SEC303">C Licenses</A> 415<UL> 416<LI><A NAME="TOC304" HREF="gettext_19.html#SEC304">C.1 GNU GENERAL PUBLIC LICENSE</A> 417<UL> 418<LI><A NAME="TOC305" HREF="gettext_19.html#SEC305">Preamble</A> 419<LI><A NAME="TOC306" HREF="gettext_19.html#SEC306">Appendix: How to Apply These Terms to Your New Programs</A> 420</UL> 421<LI><A NAME="TOC307" HREF="gettext_19.html#SEC307">C.2 GNU LESSER GENERAL PUBLIC LICENSE</A> 422<UL> 423<LI><A NAME="TOC308" HREF="gettext_19.html#SEC308">Preamble</A> 424<LI><A NAME="TOC309" HREF="gettext_19.html#SEC309">How to Apply These Terms to Your New Libraries</A> 425</UL> 426<LI><A NAME="TOC310" HREF="gettext_19.html#SEC310">C.3 GNU Free Documentation License</A> 427<UL> 428<LI><A NAME="TOC311" HREF="gettext_19.html#SEC311">ADDENDUM: How to use this License for your documents</A> 429</UL> 430</UL> 431<LI><A NAME="TOC312" HREF="gettext_20.html#SEC312">Program Index</A> 432<LI><A NAME="TOC313" HREF="gettext_21.html#SEC313">Option Index</A> 433<LI><A NAME="TOC314" HREF="gettext_22.html#SEC314">Variable Index</A> 434<LI><A NAME="TOC315" HREF="gettext_23.html#SEC315">PO Mode Index</A> 435<LI><A NAME="TOC316" HREF="gettext_24.html#SEC316">Autoconf Macro Index</A> 436<LI><A NAME="TOC317" HREF="gettext_25.html#SEC317">General Index</A> 437</UL> 438<P><HR><P> 439This document was generated on 27 November 2006 using the 440<A HREF="http://wwwinfo.cern.ch/dis/texi2html/">texi2html</A> 441translator version 1.52b.</P> 442</BODY> 443</HTML> 444