<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <title>ICU 52.1: messagepattern.h File Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">ICU 52.1  <span id="projectnumber">52.1</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.1.2 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="dir_bdd9a5d540de89e9fe90efdfc6973a4f.html">common</a></li><li class="navelem"><a class="el" href="dir_f59c6450ff718ff1b085cfd1c36acbd7.html">unicode</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#nested-classes">Data Structures</a> | <a href="#namespaces">Namespaces</a> | <a href="#define-members">Macros</a> | <a href="#typedef-members">Typedefs</a> | <a href="#enum-members">Enumerations</a> </div> <div class="headertitle"> <div class="title">messagepattern.h File Reference</div> </div> </div><!--header--> <div class="contents"> <p>C++ API: MessagePattern class: Parses and represents ICU MessageFormat patterns. <a href="#details">More...</a></p> <div class="textblock"><code>#include "<a class="el" href="utypes_8h_source.html">unicode/utypes.h</a>"</code><br/> <code>#include "<a class="el" href="parseerr_8h_source.html">unicode/parseerr.h</a>"</code><br/> <code>#include "<a class="el" href="unistr_8h_source.html">unicode/unistr.h</a>"</code><br/> </div> <p><a href="messagepattern_8h_source.html">Go to the source code of this file.</a></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2><a name="nested-classes"></a> Data Structures</h2></td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1MessagePattern.html">icu::MessagePattern</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Parses and represents ICU <a class="el" href="classicu_1_1MessageFormat.html">MessageFormat</a> patterns. <a href="classicu_1_1MessagePattern.html#details">More...</a><br/></td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1MessagePattern_1_1Part.html">icu::MessagePattern::Part</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">A message pattern "part", representing a pattern parsing event. <a href="classicu_1_1MessagePattern_1_1Part.html#details">More...</a><br/></td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2><a name="namespaces"></a> Namespaces</h2></td></tr> <tr class="memitem:namespaceicu"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceicu.html">icu</a></td></tr> <tr class="memdesc:namespaceicu"><td class="mdescLeft"> </td><td class="mdescRight">File <a class="el" href="coll_8h.html" title="C++ API: Collation Service.">coll.h</a>. <br/></td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2><a name="define-members"></a> Macros</h2></td></tr> <tr class="memitem:a1c4e21bee1892fbd050e55e85ac1a5c4"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="messagepattern_8h.html#a1c4e21bee1892fbd050e55e85ac1a5c4">UMSGPAT_ARG_TYPE_HAS_PLURAL_STYLE</a>(argType)   ((argType)==<a class="el" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103a7066f3f8f4176fb06e6fab5c95869ec0">UMSGPAT_ARG_TYPE_PLURAL</a> || (argType)==<a class="el" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103aaa1f61c11a6c343edc5d6b4a8d75661f">UMSGPAT_ARG_TYPE_SELECTORDINAL</a>)</td></tr> <tr class="memdesc:a1c4e21bee1892fbd050e55e85ac1a5c4"><td class="mdescLeft"> </td><td class="mdescRight">Returns TRUE if the argument type has a plural style part sequence and semantics, for example UMSGPAT_ARG_TYPE_PLURAL and UMSGPAT_ARG_TYPE_SELECTORDINAL. <a href="#a1c4e21bee1892fbd050e55e85ac1a5c4"></a><br/></td></tr> <tr class="memitem:af8a7d74f8813a30c41f063dde64e3c12"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="messagepattern_8h.html#af8a7d74f8813a30c41f063dde64e3c12">UMSGPAT_NO_NUMERIC_VALUE</a>   ((double)(-123456789))</td></tr> <tr class="memdesc:af8a7d74f8813a30c41f063dde64e3c12"><td class="mdescLeft"> </td><td class="mdescRight">Special value that is returned by getNumericValue(Part) when no numeric value is defined for a part. <a href="#af8a7d74f8813a30c41f063dde64e3c12"></a><br/></td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr class="memitem:a56aa1f898bc4cb898a0cb2facb19b258"><td class="memItemLeft" align="right" valign="top">typedef enum <br class="typebreak"/> <a class="el" href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978b">UMessagePatternApostropheMode</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="messagepattern_8h.html#a56aa1f898bc4cb898a0cb2facb19b258">UMessagePatternApostropheMode</a></td></tr> <tr class="memitem:a26bb77f47a6057af80c25d97bf2a2595"><td class="memItemLeft" align="right" valign="top">typedef enum <br class="typebreak"/> <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42">UMessagePatternPartType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="messagepattern_8h.html#a26bb77f47a6057af80c25d97bf2a2595">UMessagePatternPartType</a></td></tr> <tr class="memitem:a3f22f44bff63324c2a6591e7a7dde523"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103">UMessagePatternArgType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="messagepattern_8h.html#a3f22f44bff63324c2a6591e7a7dde523">UMessagePatternArgType</a></td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2><a name="enum-members"></a> Enumerations</h2></td></tr> <tr class="memitem:af6e0757e0eb81c980b01ee5d68a9978b"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978b">UMessagePatternApostropheMode</a> { <a class="el" href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978ba67b6ac40cab95b17ecd559d24f1066c7">UMSGPAT_APOS_DOUBLE_OPTIONAL</a>, <a class="el" href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978ba947d8779e9c59baf35a5eb82d8327d78">UMSGPAT_APOS_DOUBLE_REQUIRED</a> }</td></tr> <tr class="memdesc:af6e0757e0eb81c980b01ee5d68a9978b"><td class="mdescLeft"> </td><td class="mdescRight">Mode for when an apostrophe starts quoted literal text for MessageFormat output. <a href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978b">More...</a><br/></td></tr> <tr class="memitem:a020e83c308fc5d1b2b4a7029cc3d9b42"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42">UMessagePatternPartType</a> { <br/>   <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a4bd3165108d25c0aabaaa3715105efff">UMSGPAT_PART_TYPE_MSG_START</a>, <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a981fcd6e08cc32f6844f1ebebe735add">UMSGPAT_PART_TYPE_MSG_LIMIT</a>, <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42ae8bd3978e3b14fa1b6918946420a262d">UMSGPAT_PART_TYPE_SKIP_SYNTAX</a>, <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a0c93d5325ec8fbf16b4084e262d27c9c">UMSGPAT_PART_TYPE_INSERT_CHAR</a>, <br/>   <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42ac4387c3e4c2f1ccf8ba85c4c7ebf607f">UMSGPAT_PART_TYPE_REPLACE_NUMBER</a>, <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42aa628d48a636ed1f2e919fbbf40ef973c">UMSGPAT_PART_TYPE_ARG_START</a>, <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a6a3ee80a2a43880edda7c8e0ef40a37d">UMSGPAT_PART_TYPE_ARG_LIMIT</a>, <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a8af70d71e2c979c8d4e961681a4810de">UMSGPAT_PART_TYPE_ARG_NUMBER</a>, <br/>   <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42aa43b050de6dc11607370eced59f633cf">UMSGPAT_PART_TYPE_ARG_NAME</a>, <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a242bbe84918cbae58ebb7d092d547d6b">UMSGPAT_PART_TYPE_ARG_TYPE</a>, <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42ad33534e042bb62a80863ce5d4e3bfbbe">UMSGPAT_PART_TYPE_ARG_STYLE</a>, <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a4c5bcf896e840fe14ab96ec6883fe413">UMSGPAT_PART_TYPE_ARG_SELECTOR</a>, <br/>   <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42ad850e66569eff3e9ffef20759d93b1da">UMSGPAT_PART_TYPE_ARG_INT</a>, <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a98883b70d5ed087231e24e92fbe8c574">UMSGPAT_PART_TYPE_ARG_DOUBLE</a> <br/> }</td></tr> <tr class="memdesc:a020e83c308fc5d1b2b4a7029cc3d9b42"><td class="mdescLeft"> </td><td class="mdescRight">MessagePattern::Part type constants. <a href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42">More...</a><br/></td></tr> <tr class="memitem:a2929f87500a04fd66021e3fda6c1f103"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103">UMessagePatternArgType</a> { <br/>   <a class="el" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103a419f02d51dc27433115e3b6715fbe3cd">UMSGPAT_ARG_TYPE_NONE</a>, <a class="el" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103a83d34af9ec6acd74a3e44b32b46c760e">UMSGPAT_ARG_TYPE_SIMPLE</a>, <a class="el" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103ae9806dab1d5f2143ad7df93025173095">UMSGPAT_ARG_TYPE_CHOICE</a>, <a class="el" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103a7066f3f8f4176fb06e6fab5c95869ec0">UMSGPAT_ARG_TYPE_PLURAL</a>, <br/>   <a class="el" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103a37134f17547a6466760b723e45a2f20a">UMSGPAT_ARG_TYPE_SELECT</a>, <a class="el" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103aaa1f61c11a6c343edc5d6b4a8d75661f">UMSGPAT_ARG_TYPE_SELECTORDINAL</a> <br/> }</td></tr> <tr class="memdesc:a2929f87500a04fd66021e3fda6c1f103"><td class="mdescLeft"> </td><td class="mdescRight">Argument type constants. <a href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103">More...</a><br/></td></tr> <tr class="memitem:a99fb83031ce9923c84392b4e92f956b5"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom">{ <a class="el" href="messagepattern_8h.html#a99fb83031ce9923c84392b4e92f956b5a7b6fc83818b6e89ef39f116bfd0d9dda">UMSGPAT_ARG_NAME_NOT_NUMBER</a> = -1, <a class="el" href="messagepattern_8h.html#a99fb83031ce9923c84392b4e92f956b5a7086b0b8fe7c4867c8df719f45928a50">UMSGPAT_ARG_NAME_NOT_VALID</a> = -2 }</td></tr> </table> <a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><p>C++ API: MessagePattern class: Parses and represents ICU MessageFormat patterns. </p> <p>Definition in file <a class="el" href="messagepattern_8h_source.html">messagepattern.h</a>.</p> </div><h2>Macro Definition Documentation</h2> <a class="anchor" id="a1c4e21bee1892fbd050e55e85ac1a5c4"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define UMSGPAT_ARG_TYPE_HAS_PLURAL_STYLE</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">argType</td><td>)</td> <td>   ((argType)==<a class="el" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103a7066f3f8f4176fb06e6fab5c95869ec0">UMSGPAT_ARG_TYPE_PLURAL</a> || (argType)==<a class="el" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103aaa1f61c11a6c343edc5d6b4a8d75661f">UMSGPAT_ARG_TYPE_SELECTORDINAL</a>)</td> </tr> </table> </div><div class="memdoc"> <p>Returns TRUE if the argument type has a plural style part sequence and semantics, for example UMSGPAT_ARG_TYPE_PLURAL and UMSGPAT_ARG_TYPE_SELECTORDINAL. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000298">Stable:</a></b></dt><dd>ICU 50 </dd></dl> <p>Definition at line <a class="el" href="messagepattern_8h_source.html#l00268">268</a> of file <a class="el" href="messagepattern_8h_source.html">messagepattern.h</a>.</p> </div> </div> <a class="anchor" id="af8a7d74f8813a30c41f063dde64e3c12"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define UMSGPAT_NO_NUMERIC_VALUE   ((double)(-123456789))</td> </tr> </table> </div><div class="memdoc"> <p>Special value that is returned by getNumericValue(Part) when no numeric value is defined for a part. </p> <dl class="section see"><dt>See Also</dt><dd>MessagePattern.getNumericValue() </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000299">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> <p>Definition at line <a class="el" href="messagepattern_8h_source.html#l00295">295</a> of file <a class="el" href="messagepattern_8h_source.html">messagepattern.h</a>.</p> </div> </div> <h2>Typedef Documentation</h2> <a class="anchor" id="a56aa1f898bc4cb898a0cb2facb19b258"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef enum <a class="el" href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978b">UMessagePatternApostropheMode</a> <a class="el" href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978b">UMessagePatternApostropheMode</a></td> </tr> </table> </div><div class="memdoc"> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000293">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> <p>Definition at line <a class="el" href="messagepattern_8h_source.html#l00092">92</a> of file <a class="el" href="messagepattern_8h_source.html">messagepattern.h</a>.</p> </div> </div> <a class="anchor" id="a3f22f44bff63324c2a6591e7a7dde523"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef enum <a class="el" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103">UMessagePatternArgType</a> <a class="el" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103">UMessagePatternArgType</a></td> </tr> </table> </div><div class="memdoc"> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000297">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> <p>Definition at line <a class="el" href="messagepattern_8h_source.html#l00260">260</a> of file <a class="el" href="messagepattern_8h_source.html">messagepattern.h</a>.</p> </div> </div> <a class="anchor" id="a26bb77f47a6057af80c25d97bf2a2595"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef enum <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42">UMessagePatternPartType</a> <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42">UMessagePatternPartType</a></td> </tr> </table> </div><div class="memdoc"> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000295">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> <p>Definition at line <a class="el" href="messagepattern_8h_source.html#l00207">207</a> of file <a class="el" href="messagepattern_8h_source.html">messagepattern.h</a>.</p> </div> </div> <h2>Enumeration Type Documentation</h2> <a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">anonymous enum</td> </tr> </table> </div><div class="memdoc"> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a7b6fc83818b6e89ef39f116bfd0d9dda"></a>UMSGPAT_ARG_NAME_NOT_NUMBER</em> </td><td> <p>Return value from MessagePattern.validateArgumentName() for when the string is a valid "pattern identifier" but not a number. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000322">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a7086b0b8fe7c4867c8df719f45928a50"></a>UMSGPAT_ARG_NAME_NOT_VALID</em> </td><td> <p>Return value from MessagePattern.validateArgumentName() for when the string is invalid. </p> <p>It might not be a valid "pattern identifier", or it have only ASCII digits but there is a leading zero or the number is too large. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000323">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="messagepattern_8h_source.html#l00271">271</a> of file <a class="el" href="messagepattern_8h_source.html">messagepattern.h</a>.</p> </div> </div> <a class="anchor" id="af6e0757e0eb81c980b01ee5d68a9978b"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978b">UMessagePatternApostropheMode</a></td> </tr> </table> </div><div class="memdoc"> <p>Mode for when an apostrophe starts quoted literal text for MessageFormat output. </p> <p>The default is DOUBLE_OPTIONAL unless overridden via <a class="el" href="uconfig_8h.html" title="User-configurable settings.">uconfig.h</a> (UCONFIG_MSGPAT_DEFAULT_APOSTROPHE_MODE). </p> <p>A pair of adjacent apostrophes always results in a single apostrophe in the output, even when the pair is between two single, text-quoting apostrophes. </p> <p>The following table shows examples of desired MessageFormat.format() output with the pattern strings that yield that output. </p> <table class="doxtable"> <tr> <th>Desired output </th><th>DOUBLE_OPTIONAL </th><th>DOUBLE_REQUIRED </th></tr> <tr> <td>I see {many} </td><td>I see '{many}' </td><td>(same) </td></tr> <tr> <td>I said {'Wow!'} </td><td>I said '{''Wow!''}' </td><td>(same) </td></tr> <tr> <td>I don't know </td><td>I don't know OR<br/> I don''t know </td><td>I don''t know </td></tr> </table> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000292">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> <dl class="section see"><dt>See Also</dt><dd><a class="el" href="uconfig_8h.html#aec0a2473ec4ff7108b8bb6d0eee8188f" title="Determines the default UMessagePatternApostropheMode.">UCONFIG_MSGPAT_DEFAULT_APOSTROPHE_MODE</a> </dd></dl> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="af6e0757e0eb81c980b01ee5d68a9978ba67b6ac40cab95b17ecd559d24f1066c7"></a>UMSGPAT_APOS_DOUBLE_OPTIONAL</em> </td><td> <p>A literal apostrophe is represented by either a single or a double apostrophe pattern character. </p> <p>Within a MessageFormat pattern, a single apostrophe only starts quoted literal text if it immediately precedes a curly brace {}, or a pipe symbol | if inside a choice format, or a pound symbol # if inside a plural format. </p> <p>This is the default behavior starting with ICU 4.8. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000300">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="af6e0757e0eb81c980b01ee5d68a9978ba947d8779e9c59baf35a5eb82d8327d78"></a>UMSGPAT_APOS_DOUBLE_REQUIRED</em> </td><td> <p>A literal apostrophe must be represented by a double apostrophe pattern character. </p> <p>A single apostrophe always starts quoted literal text. </p> <p>This is the behavior of ICU 4.6 and earlier, and of the JDK. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000301">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="messagepattern_8h_source.html#l00066">66</a> of file <a class="el" href="messagepattern_8h_source.html">messagepattern.h</a>.</p> </div> </div> <a class="anchor" id="a2929f87500a04fd66021e3fda6c1f103"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103">UMessagePatternArgType</a></td> </tr> </table> </div><div class="memdoc"> <p>Argument type constants. </p> <p>Returned by Part.getArgType() for ARG_START and ARG_LIMIT parts.</p> <p>Messages nested inside an argument are each delimited by MSG_START and MSG_LIMIT, with a nesting level one greater than the surrounding message. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000296">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="a2929f87500a04fd66021e3fda6c1f103a419f02d51dc27433115e3b6715fbe3cd"></a>UMSGPAT_ARG_TYPE_NONE</em> </td><td> <p>The argument has no specified type. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000316">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a2929f87500a04fd66021e3fda6c1f103a83d34af9ec6acd74a3e44b32b46c760e"></a>UMSGPAT_ARG_TYPE_SIMPLE</em> </td><td> <p>The argument has a "simple" type which is provided by the ARG_TYPE part. </p> <p>An ARG_STYLE part might follow that. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000317">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a2929f87500a04fd66021e3fda6c1f103ae9806dab1d5f2143ad7df93025173095"></a>UMSGPAT_ARG_TYPE_CHOICE</em> </td><td> <p>The argument is a ChoiceFormat with one or more ((ARG_INT | ARG_DOUBLE), ARG_SELECTOR, message) tuples. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000318">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a2929f87500a04fd66021e3fda6c1f103a7066f3f8f4176fb06e6fab5c95869ec0"></a>UMSGPAT_ARG_TYPE_PLURAL</em> </td><td> <p>The argument is a cardinal-number PluralFormat with an optional ARG_INT or ARG_DOUBLE offset (e.g., offset:1) and one or more (ARG_SELECTOR [explicit-value] message) tuples. </p> <p>If the selector has an explicit value (e.g., =2), then that value is provided by the ARG_INT or ARG_DOUBLE part preceding the message. Otherwise the message immediately follows the ARG_SELECTOR. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000319">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a2929f87500a04fd66021e3fda6c1f103a37134f17547a6466760b723e45a2f20a"></a>UMSGPAT_ARG_TYPE_SELECT</em> </td><td> <p>The argument is a SelectFormat with one or more (ARG_SELECTOR, message) pairs. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000320">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a2929f87500a04fd66021e3fda6c1f103aaa1f61c11a6c343edc5d6b4a8d75661f"></a>UMSGPAT_ARG_TYPE_SELECTORDINAL</em> </td><td> <p>The argument is an ordinal-number PluralFormat with the same style parts sequence and semantics as UMSGPAT_ARG_TYPE_PLURAL. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000321">Stable:</a></b></dt><dd>ICU 50 </dd></dl> </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="messagepattern_8h_source.html#l00217">217</a> of file <a class="el" href="messagepattern_8h_source.html">messagepattern.h</a>.</p> </div> </div> <a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42">UMessagePatternPartType</a></td> </tr> </table> </div><div class="memdoc"> <p>MessagePattern::Part type constants. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000294">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42a4bd3165108d25c0aabaaa3715105efff"></a>UMSGPAT_PART_TYPE_MSG_START</em> </td><td> <p>Start of a message pattern (main or nested). </p> <p>The length is 0 for the top-level message and for a choice argument sub-message, otherwise 1 for the '{'. The value indicates the nesting level, starting with 0 for the main message. </p> <p>There is always a later MSG_LIMIT part. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000302">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42a981fcd6e08cc32f6844f1ebebe735add"></a>UMSGPAT_PART_TYPE_MSG_LIMIT</em> </td><td> <p>End of a message pattern (main or nested). </p> <p>The length is 0 for the top-level message and the last sub-message of a choice argument, otherwise 1 for the '}' or (in a choice argument style) the '|'. The value indicates the nesting level, starting with 0 for the main message. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000303">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42ae8bd3978e3b14fa1b6918946420a262d"></a>UMSGPAT_PART_TYPE_SKIP_SYNTAX</em> </td><td> <p>Indicates a substring of the pattern string which is to be skipped when formatting. </p> <p>For example, an apostrophe that begins or ends quoted text would be indicated with such a part. The value is undefined and currently always 0. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000304">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42a0c93d5325ec8fbf16b4084e262d27c9c"></a>UMSGPAT_PART_TYPE_INSERT_CHAR</em> </td><td> <p>Indicates that a syntax character needs to be inserted for auto-quoting. </p> <p>The length is 0. The value is the character code of the insertion character. (U+0027=APOSTROPHE) </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000305">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42ac4387c3e4c2f1ccf8ba85c4c7ebf607f"></a>UMSGPAT_PART_TYPE_REPLACE_NUMBER</em> </td><td> <p>Indicates a syntactic (non-escaped) # symbol in a plural variant. </p> <p>When formatting, replace this part's substring with the (value-offset) for the plural argument value. The value is undefined and currently always 0. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000306">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42aa628d48a636ed1f2e919fbbf40ef973c"></a>UMSGPAT_PART_TYPE_ARG_START</em> </td><td> <p>Start of an argument. </p> <p>The length is 1 for the '{'. The value is the ordinal value of the ArgType. Use getArgType(). </p> <p>This part is followed by either an ARG_NUMBER or ARG_NAME, followed by optional argument sub-parts (see UMessagePatternArgType constants) and finally an ARG_LIMIT part. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000307">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42a6a3ee80a2a43880edda7c8e0ef40a37d"></a>UMSGPAT_PART_TYPE_ARG_LIMIT</em> </td><td> <p>End of an argument. </p> <p>The length is 1 for the '}'. The value is the ordinal value of the ArgType. Use getArgType(). </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000308">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42a8af70d71e2c979c8d4e961681a4810de"></a>UMSGPAT_PART_TYPE_ARG_NUMBER</em> </td><td> <p>The argument number, provided by the value. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000309">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42aa43b050de6dc11607370eced59f633cf"></a>UMSGPAT_PART_TYPE_ARG_NAME</em> </td><td> <p>The argument name. </p> <p>The value is undefined and currently always 0. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000310">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42a242bbe84918cbae58ebb7d092d547d6b"></a>UMSGPAT_PART_TYPE_ARG_TYPE</em> </td><td> <p>The argument type. </p> <p>The value is undefined and currently always 0. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000311">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42ad33534e042bb62a80863ce5d4e3bfbbe"></a>UMSGPAT_PART_TYPE_ARG_STYLE</em> </td><td> <p>The argument style text. </p> <p>The value is undefined and currently always 0. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000312">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42a4c5bcf896e840fe14ab96ec6883fe413"></a>UMSGPAT_PART_TYPE_ARG_SELECTOR</em> </td><td> <p>A selector substring in a "complex" argument style. </p> <p>The value is undefined and currently always 0. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000313">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42ad850e66569eff3e9ffef20759d93b1da"></a>UMSGPAT_PART_TYPE_ARG_INT</em> </td><td> <p>An integer value, for example the offset or an explicit selector value in a PluralFormat style. </p> <p>The part value is the integer value. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000314">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42a98883b70d5ed087231e24e92fbe8c574"></a>UMSGPAT_PART_TYPE_ARG_DOUBLE</em> </td><td> <p>A numeric value, for example the offset or an explicit selector value in a PluralFormat style. </p> <p>The part value is an index into an internal array of numeric values; use getNumericValue(). </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000315">Stable:</a></b></dt><dd>ICU 4.8 </dd></dl> </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="messagepattern_8h_source.html#l00098">98</a> of file <a class="el" href="messagepattern_8h_source.html">messagepattern.h</a>.</p> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Fri Oct 4 2013 14:10:22 for ICU 52.1 by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.1.2 </small></address> </body> </html>