<sect1 id="manual.localization.facet.messages" xreflabel="messages">
<?dbhtml filename="messages.html"?>
 
<sect1info>
  <keywordset>
    <keyword>
      ISO C++
    </keyword>
    <keyword>
      messages
    </keyword>
  </keywordset>
</sect1info>

<title>messages</title>

<para>
The std::messages facet implements message retrieval functionality
equivalent to Java's java.text.MessageFormat .using either GNU gettext
or IEEE 1003.1-200 functions.
</para>

<sect2 id="facet.messages.req" xreflabel="facet.messages.req">
<title>Requirements</title>

<para>
The std::messages facet is probably the most vaguely defined facet in
the standard library. It's assumed that this facility was built into
the standard library in order to convert string literals from one
locale to the other. For instance, converting the "C" locale's
<code>const char* c = "please"</code> to a German-localized <code>"bitte"</code>
during program execution.
</para>

<blockquote>
<para>
22.2.7.1 - Template class messages [lib.locale.messages]
</para>
</blockquote>

<para>
This class has three public member functions, which directly
correspond to three protected virtual member functions. 
</para>

<para>
The public member functions are:
</para>

<para>
<code>catalog open(const string&amp;, const locale&amp;) const</code>
</para>

<para>
<code>string_type get(catalog, int, int, const string_type&amp;) const</code>
</para>

<para>
<code>void close(catalog) const</code>
</para>

<para>
While the virtual functions are:
</para>

<para>
<code>catalog do_open(const string&amp;, const locale&amp;) const</code>
</para>
<blockquote>
<para>
<emphasis>
-1- Returns: A value that may be passed to get() to retrieve a
message, from the message catalog identified by the string name
according to an implementation-defined mapping. The result can be used
until it is passed to close().  Returns a value less than 0 if no such
catalog can be opened.
</emphasis>
</para>
</blockquote>

<para>
<code>string_type do_get(catalog, int, int, const string_type&amp;) const</code>
</para>
<blockquote>
<para>
<emphasis>
-3- Requires: A catalog cat obtained from open() and not yet closed. 
-4- Returns: A message identified by arguments set, msgid, and dfault,
according to an implementation-defined mapping. If no such message can
be found, returns dfault.
</emphasis>
</para>
</blockquote>

<para>
<code>void do_close(catalog) const</code>
</para>
<blockquote>
<para>
<emphasis>
-5- Requires: A catalog cat obtained from open() and not yet closed. 
-6- Effects: Releases unspecified resources associated with cat. 
-7- Notes: The limit on such resources, if any, is implementation-defined. 
</emphasis>
</para>
</blockquote>


</sect2>

<sect2 id="facet.messages.design" xreflabel="facet.messages.design">
<title>Design</title>

<para>
A couple of notes on the standard. 
</para>

<para>
First, why is <code>messages_base::catalog</code> specified as a typedef
to int? This makes sense for implementations that use
<code>catopen</code>, but not for others. Fortunately, it's not heavily
used and so only a minor irritant. 
</para>

<para>
Second, by making the member functions <code>const</code>, it is
impossible to save state in them. Thus, storing away information used
in the 'open' member function for use in 'get' is impossible. This is
unfortunate.
</para>

<para>
The 'open' member function in particular seems to be oddly
designed. The signature seems quite peculiar. Why specify a <code>const
string&amp; </code> argument, for instance, instead of just <code>const
char*</code>? Or, why specify a <code>const locale&amp;</code> argument that is
to be used in the 'get' member function? How, exactly, is this locale
argument useful? What was the intent? It might make sense if a locale
argument was associated with a given default message string in the
'open' member function, for instance. Quite murky and unclear, on
reflection.
</para>

<para>
Lastly, it seems odd that messages, which explicitly require code
conversion, don't use the codecvt facet. Because the messages facet
has only one template parameter, it is assumed that ctype, and not
codecvt, is to be used to convert between character sets. 
</para>

<para>
It is implicitly assumed that the locale for the default message
string in 'get' is in the "C" locale. Thus, all source code is assumed
to be written in English, so translations are always from "en_US" to
other, explicitly named locales.
</para>

</sect2>

<sect2 id="facet.messages.impl" xreflabel="facet.messages.impl">
<title>Implementation</title>

  <sect3 id="messages.impl.models" xreflabel="messages.impl.models">
  <title>Models</title>
  <para>
    This is a relatively simple class, on the face of it. The standard
    specifies very little in concrete terms, so generic
    implementations that are conforming yet do very little are the
    norm. Adding functionality that would be useful to programmers and
    comparable to Java's java.text.MessageFormat takes a bit of work,
    and is highly dependent on the capabilities of the underlying
    operating system.
  </para>

  <para>
    Three different mechanisms have been provided, selectable via
    configure flags:
  </para>

<itemizedlist>
   <listitem>
     <para>
       generic
     </para>
     <para>
       This model does very little, and is what is used by default.   
     </para>
   </listitem>

   <listitem>
     <para> 
       gnu
     </para>
     <para>
       The gnu model is complete and fully tested. It's based on the
       GNU gettext package, which is part of glibc. It uses the
       functions <code>textdomain, bindtextdomain, gettext</code> to
       implement full functionality. Creating message catalogs is a
       relatively straight-forward process and is lightly documented
       below, and fully documented in gettext's distributed
       documentation.
     </para>
   </listitem>

   <listitem>
     <para> 
       ieee_1003.1-200x
     </para>
     <para>
       This is a complete, though untested, implementation based on
       the IEEE standard. The functions <code>catopen, catgets,
       catclose</code> are used to retrieve locale-specific messages
       given the appropriate message catalogs that have been
       constructed for their use. Note, the script <code>
       po2msg.sed</code> that is part of the gettext distribution can
       convert gettext catalogs into catalogs that
       <code>catopen</code> can use.
   </para>
   </listitem>
</itemizedlist>

<para>
A new, standards-conformant non-virtual member function signature was
added for 'open' so that a directory could be specified with a given
message catalog. This simplifies calling conventions for the gnu
model.
</para>

  </sect3>

  <sect3 id="messages.impl.gnu" xreflabel="messages.impl.gnu">
  <title>The GNU Model</title>

  <para>
    The messages facet, because it is retrieving and converting
    between characters sets, depends on the ctype and perhaps the
    codecvt facet in a given locale. In addition, underlying "C"
    library locale support is necessary for more than just the
    <code>LC_MESSAGES</code> mask: <code>LC_CTYPE</code> is also
    necessary. To avoid any unpleasantness, all bits of the "C" mask
    (i.e. <code>LC_ALL</code>) are set before retrieving messages.
  </para>

  <para>
    Making the message catalogs can be initially tricky, but become
    quite simple with practice. For complete info, see the gettext
    documentation. Here's an idea of what is required:
  </para>

<itemizedlist>
   <listitem>
     <para>
       Make a source file with the required string literals that need
       to be translated. See <code>intl/string_literals.cc</code> for
       an example.
     </para>
   </listitem>

   <listitem>
     <para> 
       Make initial catalog (see "4 Making the PO Template File" from
       the gettext docs).</para>
   <para>
   <code> xgettext --c++ --debug string_literals.cc -o libstdc++.pot </code>
   </para>
   </listitem>
   
   <listitem>
     <para>Make language and country-specific locale catalogs.</para>
   <para>
   <code>cp libstdc++.pot fr_FR.po</code>
   </para>
   <para>
   <code>cp libstdc++.pot de_DE.po</code>
   </para>
   </listitem>

   <listitem>
     <para>
       Edit localized catalogs in emacs so that strings are
       translated.
     </para>
   <para>
   <code>emacs fr_FR.po</code>
   </para>
   </listitem>
   
   <listitem>
     <para>Make the binary mo files.</para>
   <para>
   <code>msgfmt fr_FR.po -o fr_FR.mo</code>
   </para>
   <para>
   <code>msgfmt de_DE.po -o de_DE.mo</code>
   </para>
   </listitem>

   <listitem>
     <para>Copy the binary files into the correct directory structure.</para>
   <para>
   <code>cp fr_FR.mo (dir)/fr_FR/LC_MESSAGES/libstdc++.mo</code>
   </para>
   <para>
   <code>cp de_DE.mo (dir)/de_DE/LC_MESSAGES/libstdc++.mo</code>
   </para>
   </listitem>

   <listitem>
     <para>Use the new message catalogs.</para>
   <para>
   <code>locale loc_de("de_DE");</code>
   </para>
   <para>
   <code>
   use_facet&lt;messages&lt;char&gt; &gt;(loc_de).open("libstdc++", locale(), dir);
   </code>
   </para>
   </listitem>
</itemizedlist>

  </sect3>
</sect2>

<sect2 id="facet.messages.use" xreflabel="facet.messages.use">
<title>Use</title>
 <para>
   A simple example using the GNU model of message conversion.
 </para>

<programlisting>
#include &lt;iostream&gt;
#include &lt;locale&gt;
using namespace std;

void test01()
{
  typedef messages&lt;char&gt;::catalog catalog;
  const char* dir =
  "/mnt/egcs/build/i686-pc-linux-gnu/libstdc++/po/share/locale";  
  const locale loc_de("de_DE");
  const messages&lt;char&gt;&amp; mssg_de = use_facet&lt;messages&lt;char&gt; &gt;(loc_de); 

  catalog cat_de = mssg_de.open("libstdc++", loc_de, dir);
  string s01 = mssg_de.get(cat_de, 0, 0, "please");
  string s02 = mssg_de.get(cat_de, 0, 0, "thank you");
  cout &lt;&lt; "please in german:" &lt;&lt; s01 &lt;&lt; '\n';
  cout &lt;&lt; "thank you in german:" &lt;&lt; s02 &lt;&lt; '\n';
  mssg_de.close(cat_de);
}
</programlisting>

</sect2>

<sect2 id="facet.messages.future" xreflabel="facet.messages.future">
<title>Future</title>

<itemizedlist>
<listitem>
  <para>
    Things that are sketchy, or remain unimplemented:
  </para>
   <itemizedlist>
      <listitem>
	<para>
	  _M_convert_from_char, _M_convert_to_char are in flux,
	  depending on how the library ends up doing character set
	  conversions. It might not be possible to do a real character
	  set based conversion, due to the fact that the template
	  parameter for messages is not enough to instantiate the
	  codecvt facet (1 supplied, need at least 2 but would prefer
	  3).
	</para>
      </listitem>

      <listitem>
	<para> 
	  There are issues with gettext needing the global locale set
	  to extract a message. This dependence on the global locale
	  makes the current "gnu" model non MT-safe. Future versions
	  of glibc, i.e. glibc 2.3.x will fix this, and the C++ library
	  bits are already in place.
	</para>
      </listitem>
   </itemizedlist>
</listitem>

<listitem>
  <para>  
    Development versions of the GNU "C" library, glibc 2.3 will allow
    a more efficient, MT implementation of std::messages, and will
    allow the removal of the _M_name_messages data member. If this is
    done, it will change the library ABI. The C++ parts to support
    glibc 2.3 have already been coded, but are not in use: once this
    version of the "C" library is released, the marked parts of the
    messages implementation can be switched over to the new "C"
    library functionality.
  </para>
</listitem>
<listitem>
  <para>
    At some point in the near future, std::numpunct will probably use
    std::messages facilities to implement truename/falsename
    correctly. This is currently not done, but entries in
    libstdc++.pot have already been made for "true" and "false" string
    literals, so all that remains is the std::numpunct coding and the
    configure/make hassles to make the installed library search its
    own catalog. Currently the libstdc++.mo catalog is only searched
    for the testsuite cases involving messages members.
  </para>
</listitem>

<listitem>
  <para> The following member functions:</para>

   <para>
   <code>
        catalog 
        open(const basic_string&lt;char&gt;&amp; __s, const locale&amp; __loc) const
   </code>
   </para>

   <para>
   <code>
   catalog 
   open(const basic_string&lt;char&gt;&amp;, const locale&amp;, const char*) const;
   </code>
   </para>

   <para>
   Don't actually return a "value less than 0 if no such catalog
   can be opened" as required by the standard in the "gnu"
   model. As of this writing, it is unknown how to query to see
   if a specified message catalog exists using the gettext
   package.
   </para>
</listitem>
</itemizedlist>

</sect2>

<bibliography id="facet.messages.biblio" xreflabel="facet.messages.biblio">
<title>Bibliography</title>

  <biblioentry>
    <title>
      The GNU C Library
    </title>

    <author>
      <surname>McGrath</surname>
      <firstname>Roland</firstname>
    </author>
    <author>
      <surname>Drepper</surname>
      <firstname>Ulrich</firstname>
    </author>

    <copyright>
      <year>2007</year>
      <holder>FSF</holder>
    </copyright>
    <pagenums>Chapters 6 Character Set Handling, and 7 Locales and Internationalization
    </pagenums>

  </biblioentry> 

  <biblioentry>
    <title>
      Correspondence
    </title>

    <author>
      <surname>Drepper</surname>
      <firstname>Ulrich</firstname>
    </author>

    <copyright>
      <year>2002</year>
      <holder></holder>
    </copyright>
  </biblioentry> 

  <biblioentry>
    <title>
      ISO/IEC 14882:1998 Programming languages - C++
    </title>

    <copyright>
      <year>1998</year>
      <holder>ISO</holder>
    </copyright>
  </biblioentry> 

  <biblioentry>
    <title>
      ISO/IEC 9899:1999 Programming languages - C
    </title>

    <copyright>
      <year>1999</year>
      <holder>ISO</holder>
    </copyright>
  </biblioentry> 

  <biblioentry>
    <title>
      System Interface Definitions, Issue 6 (IEEE Std. 1003.1-200x)
    </title>

    <copyright>
      <year>1999</year>
      <holder>
      The Open Group/The Institute of Electrical and Electronics Engineers, Inc.</holder>
    </copyright>

    <biblioid>
      <ulink url="http://www.opennc.org/austin/docreg.html">
      </ulink>
    </biblioid>

  </biblioentry> 

  <biblioentry>
    <title>
      The C++ Programming Language, Special Edition
    </title>
    
    <author>
      <surname>Stroustrup</surname>
      <firstname>Bjarne</firstname>
    </author>

    <copyright>
      <year>2000</year>
      <holder>Addison Wesley, Inc.</holder>
    </copyright>
    <pagenums>Appendix D</pagenums>

    <publisher>
      <publishername>
	Addison Wesley
      </publishername>
    </publisher>

  </biblioentry> 


  <biblioentry>
    <title>
      Standard C++ IOStreams and Locales
    </title>
    <subtitle>
      Advanced Programmer's Guide and Reference
    </subtitle>
    
    <author>
      <surname>Langer</surname>
      <firstname>Angelika</firstname>
    </author>

    <author>
      <surname>Kreft</surname>
      <firstname>Klaus</firstname>
    </author>

    <copyright>
      <year>2000</year>
      <holder>Addison Wesley Longman, Inc.</holder>
    </copyright>

    <publisher>
      <publishername>
	Addison Wesley Longman
      </publishername>
    </publisher>

  </biblioentry> 

  <biblioentry>
    <title>
      Java 2 Platform, Standard Edition, v 1.3.1 API Specification
    </title>
    <pagenums>java.util.Properties, java.text.MessageFormat,
java.util.Locale, java.util.ResourceBundle</pagenums>
    <biblioid>
      <ulink url="http://java.sun.com/j2se/1.3/docs/api">
      </ulink>
    </biblioid>
  </biblioentry> 

  <biblioentry>
    <title>
       GNU gettext tools, version 0.10.38, Native Language Support
Library and Tools.
    </title>
    <biblioid>
      <ulink url="http://sources.redhat.com/gettext">
      </ulink>
    </biblioid>
  </biblioentry> 

</bibliography>

</sect1>
