<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<phpdoc:classref xml:id="class.messageformatter" xmlns:phpdoc="http://php.net/ns/phpdoc" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
 <title>The MessageFormatter class</title>
 <titleabbrev>MessageFormatter</titleabbrev>

 <partintro>

  <!-- {{{ MessageFormatter intro -->
  <section xml:id="messageformatter.intro">
   &reftitle.intro;
   <simpara>
    MessageFormatter is a concrete class that enables users to produce
    concatenated, language-neutral messages. The methods supplied in this
    class are used to build all the messages that are seen by end users.
   </simpara>
   <simpara>
    The MessageFormatter class assembles messages from various fragments (such
    as text fragments, numbers, and dates) supplied by the program. Because of
    the MessageFormatter class, the program does not need to know the order of
    the fragments. The class uses the formatting specifications for the
    fragments to assemble them into a message that is contained in a single
    string within a resource bundle. For example, MessageFormatter enables you
    to print the phrase "Finished printing x out of y files..." in a manner
    that still allows for flexibility in translation.
   </simpara>
   <simpara>
    Previously, an end user message was created as a sentence and handled as a
    string. This procedure created problems for localizers because the
    sentence structure, word order, number format and so on are very different
    from language to language. The language-neutral way to create messages
    keeps each part of the message separate and provides keys to the data.
    Using these keys, the MessageFormatter class can concatenate the parts of
    the message, localize them, and display a well-formed string to the end
    user.
   </simpara>
   <simpara>
    MessageFormatter takes a set of objects, formats them, and then inserts
    the formatted strings into the pattern at the appropriate places. Choice
    formats can be used in conjunction with MessageFormatter to handle
    plurals, match numbers, and select from an array of items. Typically, the
    message format will come from resources and the arguments will be
    dynamically set at runtime.
   </simpara>
  </section>
  <!-- }}} -->

  <section xml:id="messageformatter.synopsis">
   &reftitle.classsynopsis;

   <!-- {{{ Synopsis -->
   <classsynopsis class="class">
    <ooclass>
     <classname>MessageFormatter</classname>
    </ooclass>

    <classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
    <xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.messageformatter')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[@role='MessageFormatter'])">
     <xi:fallback/>
    </xi:include>
    <xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.messageformatter')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[@role='MessageFormatter'])">
     <xi:fallback/>
    </xi:include>
   </classsynopsis>
   <!-- }}} -->

  </section>

  <section xml:id="messageformatter.seealso">
   &reftitle.seealso;
   <para>
    <simplelist>
     <member>
      <link xlink:href="&url.icu.formatparse;">
       ICU formatting documentation
      </link>
     </member>
     <member>
      <link xlink:href="&url.icu.formatmsg;">
       ICU message formatting description
      </link>
     </member>
     <member>
      <link xlink:href="&url.icu.msgformat;">ICU message formatters</link>
     </member>
     <member>
      <link xlink:href="&url.icu.choiceformat;">ICU choice formatters</link>
     </member>
    </simplelist>
   </para>
  </section>
 </partintro>

 &reference.intl.entities.messageformatter;

</phpdoc:classref>
<!-- Keep this comment at the end of the file
 Local variables:
 mode: sgml
 sgml-omittag:t
 sgml-shorttag:t
 sgml-minimize-attributes:nil
 sgml-always-quote-attributes:t
 sgml-indent-step:1
 sgml-indent-data:t
 indent-tabs-mode:nil
 sgml-parent-document:nil
 sgml-default-dtd-file:"~/.phpdoc/manual.ced"
 sgml-exposed-tags:nil
 sgml-local-catalogs:nil
 sgml-local-ecat-files:nil
 End:
 vim600: syn=xml fen fdm=syntax fdl=2 si
 vim: et tw=78 syn=sgml
 vi: ts=1 sw=1
-->
