GNU gettext utilities

Table of Contents


Next: Introduction, Up: (dir)   [Contents][Index]


GNU gettext utilities

This manual documents the GNU gettext tools and the GNU libintl library, version 0.21.

Introduction:

  

Introduction

Users:

  

The User’s View

PO Files:

  

The Format of PO Files

Sources:

  

Preparing Program Sources

Template:

  

Making the PO Template File

Creating:

  

Creating a New PO File

Updating:

  

Updating Existing PO Files

Editing:

  

Editing PO Files

Manipulating:

  

Manipulating PO Files

Binaries:

  

Producing Binary MO Files

Programmers:

  

The Programmer’s View

Translators:

  

The Translator’s View

Maintainers:

  

The Maintainer’s View

Installers:

  

The Installer’s and Distributor’s View

Programming Languages:

  

Other Programming Languages

Data Formats:

  

Other Data Formats

Conclusion:

  

Concluding Remarks

Language Codes:

  

ISO 639 language codes

Country Codes:

  

ISO 3166 country codes

Licenses:

  

Licenses

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

Why:

  

The Purpose of GNU gettext

Concepts:

  

I18n, L10n, and Such

Aspects:

  

Aspects in Native Language Support

Files:

  

Files Conveying Translations

Overview:

  

Overview of GNU gettext

System Installation:

  

Questions During Operating System Installation

Setting the GUI Locale:

  

How to Specify the Locale Used by GUI Programs

Setting the POSIX Locale:

  

How to Specify the Locale According to POSIX

Working in a Windows console:

  

Obtaining good output in a Windows console

Installing Localizations:

  

How to Install Additional Translations

Locale Names:

  

How a Locale Specification Looks Like

Locale Environment Variables:

  

Which Environment Variable Specfies What

The LANGUAGE variable:

  

How to Specify a Priority List of Languages

Importing:

  

Importing the gettext declaration

Triggering:

  

Triggering gettext Operations

Preparing Strings:

  

Preparing Translatable Strings

Mark Keywords:

  

How Marks Appear in Sources

Marking:

  

Marking Translatable Strings

c-format Flag:

  

Telling something about the following string

Special cases:

  

Special Cases of Translatable Strings

Bug Report Address:

  

Letting Users Report Translation Bugs

Names:

  

Marking Proper Names for Translation

Libraries:

  

Preparing Library Sources

xgettext Invocation:

  

Invoking the xgettext Program

msginit Invocation:

  

Invoking the msginit Program

Header Entry:

  

Filling in the Header Entry

msgmerge Invocation:

  

Invoking the msgmerge Program

KBabel:

  

KDE’s PO File Editor

Gtranslator:

  

GNOME’s PO File Editor

PO Mode:

  

Emacs’s PO File Editor

Compendium:

  

Using Translation Compendia

Installation:

  

Completing GNU gettext Installation

Main PO Commands:

  

Main Commands

Entry Positioning:

  

Entry Positioning

Normalizing:

  

Normalizing Strings in Entries

Translated Entries:

  

Translated Entries

Fuzzy Entries:

  

Fuzzy Entries

Untranslated Entries:

  

Untranslated Entries

Obsolete Entries:

  

Obsolete Entries

Modifying Translations:

  

Modifying Translations

Modifying Comments:

  

Modifying Comments

Subedit:

  

Mode for Editing Translations

C Sources Context:

  

C Sources Context

Auxiliary:

  

Consulting Auxiliary PO Files

Creating Compendia:

  

Merging translations for later use

Using Compendia:

  

Using older translations if they fit

msgcat Invocation:

  

Invoking the msgcat Program

msgconv Invocation:

  

Invoking the msgconv Program

msggrep Invocation:

  

Invoking the msggrep Program

msgfilter Invocation:

  

Invoking the msgfilter Program

msguniq Invocation:

  

Invoking the msguniq Program

msgcomm Invocation:

  

Invoking the msgcomm Program

msgcmp Invocation:

  

Invoking the msgcmp Program

msgattrib Invocation:

  

Invoking the msgattrib Program

msgen Invocation:

  

Invoking the msgen Program

msgexec Invocation:

  

Invoking the msgexec Program

Colorizing:

  

Highlighting parts of PO files

Other tools:

  

Other tools for manipulating PO files

libgettextpo:

  

Writing your own programs that process PO files

The --color option:

  

Triggering colorized output

The TERM variable:

  

The environment variable TERM

The --style option:

  

The --style option

Style rules:

  

Style rules for PO files

Customizing less:

  

Customizing less for viewing PO files

msgfmt Invocation:

  

Invoking the msgfmt Program

msgunfmt Invocation:

  

Invoking the msgunfmt Program

MO Files:

  

The Format of GNU MO Files

catgets:

  

About catgets

gettext:

  

About gettext

Comparison:

  

Comparing the two interfaces

Using libintl.a:

  

Using libintl.a in own programs

gettext grok:

  

Being a gettext grok

Temp Programmers:

  

Temporary Notes for the Programmers Chapter

Interface to catgets:

  

The interface

Problems with catgets:

  

Problems with the catgets interface?!

Interface to gettext:

  

The interface

Ambiguities:

  

Solving ambiguities

Locating Catalogs:

  

Locating message catalog files

Charset conversion:

  

How to request conversion to Unicode

Contexts:

  

Solving ambiguities in GUI programs

Plural forms:

  

Additional functions for handling plurals

Optimized gettext:

  

Optimization of the *gettext functions

Temp Implementations:

  

Temporary - Two Possible Implementations

Temp catgets:

  

Temporary - About catgets

Temp WSI:

  

Temporary - Why a single implementation

Temp Notes:

  

Temporary - Notes

Trans Intro 0:

  

Introduction 0

Trans Intro 1:

  

Introduction 1

Discussions:

  

Discussions

Organization:

  

Organization

Information Flow:

  

Information Flow

Translating plural forms:

  

How to fill in msgstr[0], msgstr[1]

Prioritizing messages:

  

How to find which messages to translate first

Central Coordination:

  

Central Coordination

National Teams:

  

National Teams

Mailing Lists:

  

Mailing Lists

Sub-Cultures:

  

Sub-Cultures

Organizational Ideas:

  

Organizational Ideas

Flat and Non-Flat:

  

Flat or Non-Flat Directory Structures

Prerequisites:

  

Prerequisite Works

gettextize Invocation:

  

Invoking the gettextize Program

Adjusting Files:

  

Files You Must Create or Alter

autoconf macros:

  

Autoconf macros for use in configure.ac

Version Control Issues:

  

Release Management:

  

Creating a Distribution Tarball

po/POTFILES.in:

  

POTFILES.in in po/

po/LINGUAS:

  

LINGUAS in po/

po/Makevars:

  

Makevars in po/

po/Rules-*:

  

Extending Makefile in po/

configure.ac:

  

configure.ac at top level

config.guess:

  

config.guess, config.sub at top level

mkinstalldirs:

  

mkinstalldirs at top level

aclocal:

  

aclocal.m4 at top level

config.h.in:

  

config.h.in at top level

Makefile:

  

Makefile.in at top level

src/Makefile:

  

Makefile.in in src/

lib/gettext.h:

  

gettext.h in lib/

AM_GNU_GETTEXT:

  

AM_GNU_GETTEXT in gettext.m4

AM_GNU_GETTEXT_VERSION:

  

AM_GNU_GETTEXT_VERSION in gettext.m4

AM_GNU_GETTEXT_NEED:

  

AM_GNU_GETTEXT_NEED in gettext.m4

AM_PO_SUBDIRS:

  

AM_PO_SUBDIRS in po.m4

AM_XGETTEXT_OPTION:

  

AM_XGETTEXT_OPTION in po.m4

AM_ICONV:

  

AM_ICONV in iconv.m4

Distributed Development:

  

Avoiding version mismatch in distributed development

Files under Version Control:

  

Files to put under version control

Translations under Version Control:

  

Put PO Files under Version Control

autopoint Invocation:

  

Invoking the autopoint Program

Language Implementors:

  

The Language Implementor’s View

Programmers for other Languages:

  

The Programmer’s View

Translators for other Languages:

  

The Translator’s View

Maintainers for other Languages:

  

The Maintainer’s View

List of Programming Languages:

  

Individual Programming Languages

c-format:

  

C Format Strings

objc-format:

  

Objective C Format Strings

python-format:

  

Python Format Strings

java-format:

  

Java Format Strings

csharp-format:

  

C# Format Strings

javascript-format:

  

JavaScript Format Strings

scheme-format:

  

Scheme Format Strings

lisp-format:

  

Lisp Format Strings

elisp-format:

  

Emacs Lisp Format Strings

librep-format:

  

librep Format Strings

ruby-format:

  

Ruby Format Strings

sh-format:

  

Shell Format Strings

awk-format:

  

awk Format Strings

lua-format:

  

Lua Format Strings

object-pascal-format:

  

Object Pascal Format Strings

smalltalk-format:

  

Smalltalk Format Strings

qt-format:

  

Qt Format Strings

qt-plural-format:

  

Qt Plural Format Strings

kde-format:

  

KDE Format Strings

kde-kuit-format:

  

KUIT Format Strings

boost-format:

  

Boost Format Strings

tcl-format:

  

Tcl Format Strings

perl-format:

  

Perl Format Strings

php-format:

  

PHP Format Strings

gcc-internal-format:

  

GCC internal Format Strings

gfc-internal-format:

  

GFC internal Format Strings

ycp-format:

  

YCP Format Strings

C:

  

C, C++, Objective C

Python:

  

Python

Java:

  

Java

C#:

  

C#

JavaScript:

  

JavaScript

Scheme:

  

GNU guile - Scheme

Common Lisp:

  

GNU clisp - Common Lisp

clisp C:

  

GNU clisp C sources

Emacs Lisp:

  

Emacs Lisp

librep:

  

librep

Ruby:

  

Ruby

sh:

  

sh - Shell Script

bash:

  

bash - Bourne-Again Shell Script

gawk:

  

GNU awk

Lua:

  

Lua

Pascal:

  

Pascal - Free Pascal Compiler

Smalltalk:

  

GNU Smalltalk

Vala:

  

Vala

wxWidgets:

  

wxWidgets library

Tcl:

  

Tcl - Tk’s scripting language

Perl:

  

Perl

PHP:

  

PHP Hypertext Preprocessor

Pike:

  

Pike

GCC-source:

  

GNU Compiler Collection sources

YCP:

  

YCP - YaST2 scripting language

Preparing Shell Scripts:

  

Preparing Shell Scripts for Internationalization

gettext.sh:

  

Contents of gettext.sh

gettext Invocation:

  

Invoking the gettext program

ngettext Invocation:

  

Invoking the ngettext program

envsubst Invocation:

  

Invoking the envsubst program

eval_gettext Invocation:

  

Invoking the eval_gettext function

eval_ngettext Invocation:

  

Invoking the eval_ngettext function

eval_pgettext Invocation:

  

Invoking the eval_pgettext function

eval_npgettext Invocation:

  

Invoking the eval_npgettext function

General Problems:

  

General Problems Parsing Perl Code

Default Keywords:

  

Which Keywords Will xgettext Look For?

Special Keywords:

  

How to Extract Hash Keys

Quote-like Expressions:

  

What are Strings And Quote-like Expressions?

Interpolation I:

  

Invalid String Interpolation

Interpolation II:

  

Valid String Interpolation

Parentheses:

  

When To Use Parentheses

Long Lines:

  

How To Grok with Long Lines

Perl Pitfalls:

  

Bugs, Pitfalls, and Things That Do Not Work

Internationalizable Data:

  

Internationalizable Data Formats

Localized Data:

  

Localized Data Formats

POT:

  

POT - Portable Object Template

RST:

  

Resource String Table

Glade:

  

Glade - GNOME user interface description

GSettings:

  

GSettings - GNOME user configuration schema

AppData:

  

AppData - freedesktop.org application description

Preparing ITS Rules:

  

Preparing Rules for XML Internationalization

Editable Message Catalogs:

  

Editable Message Catalogs

Compiled Message Catalogs:

  

Compiled Message Catalogs

Desktop Entry:

  

Desktop Entry files

XML:

  

XML files

PO:

  

PO - Portable Object

Java .properties:

  

Java .properties

GNUstep .strings:

  

NeXTstep/GNUstep .strings

MO:

  

MO - Machine Object

Java ResourceBundle:

  

Java ResourceBundle

C# Satellite Assembly:

  

C# Satellite Assembly

C# Resource:

  

C# Resource

Tcl message catalog:

  

Tcl message catalog

Qt message catalog:

  

Qt message catalog

History:

  

History of GNU gettext

The original ABOUT-NLS:

  

Historical introduction

References:

  

Related Readings

Usual Language Codes:

  

Two-letter ISO 639 language codes

Rare Language Codes:

  

Three-letter ISO 639 language codes

GNU GPL:

  

GNU General Public License

GNU LGPL:

  

GNU Lesser General Public License

GNU FDL:

  

GNU Free Documentation License

Next: Introduction, Up: (dir)   [Contents][Index]