<html lang="en">
<head>
<title>Message catalogs a la X/Open - The GNU C Library</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="The GNU C Library">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Message-Translation.html#Message-Translation" title="Message Translation">
<link rel="next" href="The-Uniforum-approach.html#The-Uniforum-approach" title="The Uniforum approach">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU C library.

This is Edition 0.12, last updated 2007-10-27,
of `The GNU C Library Reference Manual', for version
2.8 (Sourcery G++ Lite 2011.03-41).

Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
2003, 2007, 2008, 2010 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``Free Software Needs Free Documentation''
and ``GNU Lesser General Public License'', the Front-Cover texts being
``A GNU Manual'', and with the Back-Cover Texts as in (a) below.  A
copy of the license is included in the section entitled "GNU Free
Documentation License".

(a) The FSF's Back-Cover Text is: ``You have the freedom to
copy and modify this GNU manual.  Buying copies from the FSF
supports it in developing GNU and promoting software freedom.''-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
--></style>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="Message-catalogs-a-la-X%2fOpen"></a>
<a name="Message-catalogs-a-la-X_002fOpen"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="The-Uniforum-approach.html#The-Uniforum-approach">The Uniforum approach</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Message-Translation.html#Message-Translation">Message Translation</a>
<hr>
</div>

<h3 class="section">8.1 X/Open Message Catalog Handling</h3>

<p>The <code>catgets</code> functions are based on the simple scheme:

   <blockquote>
Associate every message to translate in the source code with a unique
identifier.  To retrieve a message from a catalog file solely the
identifier is used. 
</blockquote>

   <p>This means for the author of the program that s/he will have to make
sure the meaning of the identifier in the program code and in the
message catalogs are always the same.

   <p>Before a message can be translated the catalog file must be located. 
The user of the program must be able to guide the responsible function
to find whatever catalog the user wants.  This is separated from what
the programmer had in mind.

   <p>All the types, constants and functions for the <code>catgets</code> functions
are defined/declared in the <samp><span class="file">nl_types.h</span></samp> header file.

<ul class="menu">
<li><a accesskey="1" href="The-catgets-Functions.html#The-catgets-Functions">The catgets Functions</a>:       The <code>catgets</code> function family. 
<li><a accesskey="2" href="The-message-catalog-files.html#The-message-catalog-files">The message catalog files</a>:   Format of the message catalog files. 
<li><a accesskey="3" href="The-gencat-program.html#The-gencat-program">The gencat program</a>:          How to generate message catalogs files which
                                can be used by the functions. 
<li><a accesskey="4" href="Common-Usage.html#Common-Usage">Common Usage</a>:                How to use the <code>catgets</code> interface. 
</ul>

   </body></html>

