<?xml version="1.0" encoding="iso-8859-1"?> <!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" xml:lang="en" lang="en"> <head> <title>Module: GetText</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" /> <script type="text/javascript"> // <![CDATA[ function popupCode( url ) { window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400") } function toggleCode( id ) { if ( document.getElementById ) elem = document.getElementById( id ); else if ( document.all ) elem = eval( "document.all." + id ); else return false; elemStyle = elem.style; if ( elemStyle.display != "block" ) { elemStyle.display = "block" } else { elemStyle.display = "none" } return true; } // Make codeblocks hidden by default document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" ) // ]]> </script> </head> <body> <div id="classHeader"> <table class="header-table"> <tr class="top-aligned-row"> <td><strong>Module</strong></td> <td class="class-name-in-header">GetText</td> </tr> <tr class="top-aligned-row"> <td><strong>In:</strong></td> <td> <a href="../files/lib/gettext/poparser_rb.html"> lib/gettext/poparser.rb </a> <br /> <a href="../files/lib/gettext/textdomain_rb.html"> lib/gettext/textdomain.rb </a> <br /> <a href="../files/lib/gettext/utils_rb.html"> lib/gettext/utils.rb </a> <br /> <a href="../files/lib/gettext/rails_rb.html"> lib/gettext/rails.rb </a> <br /> <a href="../files/lib/gettext/version_rb.html"> lib/gettext/version.rb </a> <br /> <a href="../files/lib/gettext/rgettext_rb.html"> lib/gettext/rgettext.rb </a> <br /> <a href="../files/lib/gettext/rmsgfmt_rb.html"> lib/gettext/rmsgfmt.rb </a> <br /> <a href="../files/lib/gettext/container_rb.html"> lib/gettext/container.rb </a> <br /> <a href="../files/lib/gettext/textdomainmanager_rb.html"> lib/gettext/textdomainmanager.rb </a> <br /> <a href="../files/lib/gettext/cgi_rb.html"> lib/gettext/cgi.rb </a> <br /> <a href="../files/lib/gettext/rmsgmerge_rb.html"> lib/gettext/rmsgmerge.rb </a> <br /> <a href="../files/lib/gettext/parser/glade_rb.html"> lib/gettext/parser/glade.rb </a> <br /> <a href="../files/lib/gettext/parser/ruby_rb.html"> lib/gettext/parser/ruby.rb </a> <br /> <a href="../files/lib/gettext/parser/active_record_rb.html"> lib/gettext/parser/active_record.rb </a> <br /> <a href="../files/lib/gettext/parser/erb_rb.html"> lib/gettext/parser/erb.rb </a> <br /> <a href="../files/lib/gettext/erb_rb.html"> lib/gettext/erb.rb </a> <br /> <a href="../files/lib/gettext_rb.html"> lib/gettext.rb </a> <br /> </td> </tr> </table> </div> <!-- banner header --> <div id="bodyContent"> <div id="contextContent"> </div> <div id="method-list"> <h3 class="section-bar">Methods</h3> <div class="name-list"> <a href="#M000093">N_</a> <a href="#M000094">Nn_</a> <a href="#M000107">_</a> <a href="#M000103">add_default_locale_path</a> <a href="#M000084">bindtextdomain</a> <a href="#M000085">bindtextdomain_to</a> <a href="#M000081">cached=</a> <a href="#M000082">cached?</a> <a href="#M000079">cgi</a> <a href="#M000078">cgi=</a> <a href="#M000083">clear_cache</a> <a href="#M000073">create_mofiles</a> <a href="#M000104">current_textdomain_info</a> <a href="#M000088">gettext</a> <a href="#M000102">locale</a> <a href="#M000098">locale=</a> <a href="#M000072">msgmerge</a> <a href="#M000108">n_</a> <a href="#M000091">ngettext</a> <a href="#M000111">np_</a> <a href="#M000092">npgettext</a> <a href="#M000110">ns_</a> <a href="#M000095">nsgettext</a> <a href="#M000101">output_charset</a> <a href="#M000100">output_charset=</a> <a href="#M000112">p_</a> <a href="#M000090">pgettext</a> <a href="#M000105">remove_all_textdomains</a> <a href="#M000075">rgettext</a> <a href="#M000076">rmsgfmt</a> <a href="#M000080">rmsgmerge</a> <a href="#M000109">s_</a> <a href="#M000077">set_cgi</a> <a href="#M000096">set_locale</a> <a href="#M000097">set_locale_all</a> <a href="#M000099">set_output_charset</a> <a href="#M000106">setlocale</a> <a href="#M000089">sgettext</a> <a href="#M000086">textdomain</a> <a href="#M000087">textdomain_to</a> <a href="#M000074">update_pofiles</a> </div> </div> </div> <!-- if includes --> <div id="includes"> <h3 class="section-bar">Included Modules</h3> <div id="includes-list"> <span class="include-name"><a href="GetText.html">GetText</a></span> <span class="include-name"><a href="GetText.html">GetText</a></span> </div> </div> <div id="section"> <div id="class-list"> <h3 class="section-bar">Classes and Modules</h3> Module <a href="GetText/ActiveRecordParser.html" class="link">GetText::ActiveRecordParser</a><br /> Module <a href="GetText/Container.html" class="link">GetText::Container</a><br /> Module <a href="GetText/ErbContainer.html" class="link">GetText::ErbContainer</a><br /> Module <a href="GetText/ErbParser.html" class="link">GetText::ErbParser</a><br /> Module <a href="GetText/GladeParser.html" class="link">GetText::GladeParser</a><br /> Module <a href="GetText/Rails.html" class="link">GetText::Rails</a><br /> Module <a href="GetText/RubyParser.html" class="link">GetText::RubyParser</a><br /> Class <a href="GetText/NoboundTextDomainError.html" class="link">GetText::NoboundTextDomainError</a><br /> Class <a href="GetText/PoParser.html" class="link">GetText::PoParser</a><br /> Class <a href="GetText/TextDomain.html" class="link">GetText::TextDomain</a><br /> Class <a href="GetText/TextDomainManager.html" class="link">GetText::TextDomainManager</a><br /> </div> <div id="constants-list"> <h3 class="section-bar">Constants</h3> <div class="name-list"> <table summary="Constants"> <tr class="top-aligned-row context-row"> <td class="context-item-name">BOM_UTF8</td> <td>=</td> <td class="context-item-value">[0xef, 0xbb, 0xbf].pack("c3")</td> </tr> <tr class="top-aligned-row context-row"> <td class="context-item-name">VERSION</td> <td>=</td> <td class="context-item-value">"1.93.0"</td> </tr> </table> </div> </div> <!-- if method_list --> <div id="methods"> <h3 class="section-bar">Public Instance methods</h3> <div id="method-M000093" class="method-detail"> <a name="M000093"></a> <div class="method-heading"> <a href="#M000093" class="method-signature"> <span class="method-name">N_</span><span class="method-args">(msgid)</span> </a> </div> <div class="method-description"> <p> This function does nothing. But it is required in order to recognize the msgid by <a href="GetText.html#M000075">rgettext</a>. </p> <ul> <li>msgid: the message id. </li> <li>Returns: msgid. </li> </ul> <p><a class="source-toggle" href="#" onclick="toggleCode('M000093-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000093-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext.rb, line 383</span> 383: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">N_</span>(<span class="ruby-identifier">msgid</span>) 384: <span class="ruby-identifier">msgid</span> 385: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000094" class="method-detail"> <a name="M000094"></a> <div class="method-heading"> <a href="#M000094" class="method-signature"> <span class="method-name">Nn_</span><span class="method-args">(msgid, msgid_plural)</span> </a> </div> <div class="method-description"> <p> This is same function as <a href="GetText.html#M000093">N_</a> but for <a href="GetText.html#M000091">ngettext</a>. </p> <ul> <li>msgid: the message id. </li> <li>msgid_plural: the plural message id. </li> <li>Returns: msgid. </li> </ul> <p><a class="source-toggle" href="#" onclick="toggleCode('M000094-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000094-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext.rb, line 391</span> 391: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Nn_</span>(<span class="ruby-identifier">msgid</span>, <span class="ruby-identifier">msgid_plural</span>) 392: [<span class="ruby-identifier">msgid</span>, <span class="ruby-identifier">msgid_plural</span>] 393: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000107" class="method-detail"> <a name="M000107"></a> <div class="method-heading"> <span class="method-name">_</span><span class="method-args">(msgid)</span> </div> <div class="method-description"> <p> Alias for <a href="GetText.html#M000088">gettext</a> </p> </div> </div> <div id="method-M000103" class="method-detail"> <a name="M000103"></a> <div class="method-heading"> <a href="#M000103" class="method-signature"> <span class="method-name">add_default_locale_path</span><span class="method-args">(path)</span> </a> </div> <div class="method-description"> <p> Add default <a href="GetText.html#M000102">locale</a> path. </p> <ul> <li>path: a new <a href="GetText.html#M000102">locale</a> path. (e.g.) "/usr/share/locale/%{<a href="GetText.html#M000102">locale</a>}/LC_MESSAGES/%{name}.mo" (‘<a href="GetText.html#M000102">locale</a>’ => "ja_JP", ‘name’ => "<a href="GetText.html#M000086">textdomain</a>") </li> <li>Returns: the new DEFAULT_LOCALE_PATHS </li> </ul> <p><a class="source-toggle" href="#" onclick="toggleCode('M000103-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000103-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext.rb, line 565</span> 565: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_default_locale_path</span>(<span class="ruby-identifier">path</span>) 566: <span class="ruby-constant">TextDomain</span>.<span class="ruby-identifier">add_default_locale_path</span>(<span class="ruby-identifier">path</span>) 567: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000084" class="method-detail"> <a name="M000084"></a> <div class="method-heading"> <a href="#M000084" class="method-signature"> <span class="method-name">bindtextdomain(domainname, options = {})<br /> </span> </a> </div> <div class="method-description"> <p> Bind a <a href="GetText.html#M000086">textdomain</a>(%{path}/%{<a href="GetText.html#M000102">locale</a>}/LC_MESSAGES/%{domainname}.mo) to your program. Normally, the texdomain scope becomes a ruby-script-file. So you need to call this function each ruby-script-files. On the other hand, if you call this function under <a href="GetText/Container.html">GetText::Container</a> (gettext/container, gettext/erb, gettext/rails), the <a href="GetText.html#M000086">textdomain</a> scope becomes a Class/<a href="Module.html">Module</a>. </p> <ul> <li>domainname: the <a href="GetText.html#M000086">textdomain</a> name. </li> <li>options: options as an Hash. <ul> <li>:path - the path to the mo-files. When the value is nil, it will search default paths such as /usr/share/locale, /usr/local/share/locale) </li> <li>:<a href="GetText.html#M000102">locale</a> - the <a href="GetText.html#M000102">locale</a> string such as "ja_JP.UTF-8". Generally, you should use <a href="GetText.html#M000096">GetText.set_locale</a> instead. The value is searched order by: the value of this value > System default language. </li> <li>:charset - output charset. This affect the current <a href="GetText.html#M000086">textdomain</a> only. Generally, you should use <a href="GetText.html#M000099">GetText.set_output_charset</a> instead. The value is searched order by: the value of Locale.set_output_charset > ENV["OUTPUT_CHARSET"] > this value > System default charset. </li> </ul> </li> <li>Returns: the <a href="GetText/TextDomainManager.html">GetText::TextDomainManager</a>. </li> </ul> <p> Note: Don‘t use locale_, charset argument(not in options). They are remained for backward compatibility. </p> <p><a class="source-toggle" href="#" onclick="toggleCode('M000084-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000084-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext.rb, line 85</span> 85: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">bindtextdomain</span>(<span class="ruby-identifier">domainname</span>, <span class="ruby-identifier">options</span> = {}, <span class="ruby-identifier">locale_</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">charset</span> = <span class="ruby-keyword kw">nil</span>) 86: <span class="ruby-identifier">opt</span> = {} 87: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">String</span> 88: <span class="ruby-comment cmt"># For backward compatibility</span> 89: <span class="ruby-identifier">opt</span> = {<span class="ruby-identifier">:path</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">options</span>, <span class="ruby-identifier">:locale</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">locale_</span>, <span class="ruby-identifier">:charset</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">charset</span>} 90: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">options</span> 91: <span class="ruby-identifier">opt</span> = <span class="ruby-identifier">options</span> 92: <span class="ruby-keyword kw">end</span> 93: <span class="ruby-identifier">opt</span>[<span class="ruby-identifier">:locale</span>] = <span class="ruby-identifier">opt</span>[<span class="ruby-identifier">:locale</span>] <span class="ruby-operator">?</span> <span class="ruby-constant">Locale</span><span class="ruby-operator">::</span><span class="ruby-constant">Object</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">opt</span>[<span class="ruby-identifier">:locale</span>]) <span class="ruby-operator">:</span> <span class="ruby-constant">Locale</span>.<span class="ruby-identifier">get</span> 94: <span class="ruby-identifier">opt</span>[<span class="ruby-identifier">:charset</span>] = <span class="ruby-constant">TextDomainManager</span>.<span class="ruby-identifier">output_charset</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">TextDomainManager</span>.<span class="ruby-identifier">output_charset</span> 95: <span class="ruby-identifier">opt</span>[<span class="ruby-identifier">:locale</span>].<span class="ruby-identifier">charset</span> = <span class="ruby-identifier">opt</span>[<span class="ruby-identifier">:charset</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">opt</span>[<span class="ruby-identifier">:charset</span>] 96: <span class="ruby-constant">Locale</span>.<span class="ruby-identifier">set_current</span>(<span class="ruby-identifier">opt</span>[<span class="ruby-identifier">:locale</span>]) 97: <span class="ruby-identifier">target_key</span> = <span class="ruby-identifier">bound_target</span> 98: <span class="ruby-identifier">manager</span> = <span class="ruby-ivar">@@__textdomainmanagers</span>[<span class="ruby-identifier">target_key</span>] 99: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">manager</span> 100: <span class="ruby-identifier">manager</span>.<span class="ruby-identifier">set_locale</span>(<span class="ruby-identifier">opt</span>[<span class="ruby-identifier">:locale</span>]) 101: <span class="ruby-keyword kw">else</span> 102: <span class="ruby-identifier">manager</span> = <span class="ruby-constant">TextDomainManager</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">target_key</span>, <span class="ruby-identifier">opt</span>[<span class="ruby-identifier">:locale</span>]) 103: <span class="ruby-ivar">@@__textdomainmanagers</span>[<span class="ruby-identifier">target_key</span>] = <span class="ruby-identifier">manager</span> 104: <span class="ruby-keyword kw">end</span> 105: <span class="ruby-identifier">manager</span>.<span class="ruby-identifier">add_textdomain</span>(<span class="ruby-identifier">domainname</span>, <span class="ruby-identifier">opt</span>) 106: <span class="ruby-identifier">manager</span> 107: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000085" class="method-detail"> <a name="M000085"></a> <div class="method-heading"> <a href="#M000085" class="method-signature"> <span class="method-name">bindtextdomain_to</span><span class="method-args">(klass, domainname, options = {})</span> </a> </div> <div class="method-description"> <p> Includes <a href="GetText.html">GetText</a> module and bind a <a href="GetText.html#M000086">textdomain</a> to a class. </p> <ul> <li>klass: the target ruby class. </li> <li>domainname: the <a href="GetText.html#M000086">textdomain</a> name. </li> <li>options: options as an Hash. See <a href="GetText.html#M000084">GetText.bindtextdomain</a>. </li> </ul> <p><a class="source-toggle" href="#" onclick="toggleCode('M000085-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000085-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext.rb, line 113</span> 113: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">bindtextdomain_to</span>(<span class="ruby-identifier">klass</span>, <span class="ruby-identifier">domainname</span>, <span class="ruby-identifier">options</span> = {}) 114: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">nil</span> 115: <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">module_eval</span> { 116: <span class="ruby-identifier">include</span> <span class="ruby-constant">GetText</span> 117: <span class="ruby-identifier">ret</span> = <span class="ruby-identifier">bindtextdomain</span>(<span class="ruby-identifier">domainname</span>, <span class="ruby-identifier">options</span>) 118: } 119: <span class="ruby-identifier">ret</span> 120: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000081" class="method-detail"> <a name="M000081"></a> <div class="method-heading"> <a href="#M000081" class="method-signature"> <span class="method-name">cached=</span><span class="method-args">(val)</span> </a> </div> <div class="method-description"> <p> Set the value whether cache messages or not. true to cache messages, otherwise false. </p> <p> Default is true. If $DEBUG is false, messages are not checked even if this value is true. </p> <p><a class="source-toggle" href="#" onclick="toggleCode('M000081-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000081-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext.rb, line 42</span> 42: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cached=</span>(<span class="ruby-identifier">val</span>) 43: <span class="ruby-ivar">@@__cached</span> = <span class="ruby-identifier">val</span> 44: <span class="ruby-constant">GetText</span><span class="ruby-operator">::</span><span class="ruby-constant">TextDomain</span>.<span class="ruby-identifier">check_mo</span> = <span class="ruby-operator">!</span> <span class="ruby-identifier">val</span> 45: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000082" class="method-detail"> <a name="M000082"></a> <div class="method-heading"> <a href="#M000082" class="method-signature"> <span class="method-name">cached?</span><span class="method-args">()</span> </a> </div> <div class="method-description"> <p> Return the cached value. </p> <p><a class="source-toggle" href="#" onclick="toggleCode('M000082-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000082-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext.rb, line 48</span> 48: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cached?</span> 49: <span class="ruby-ivar">@@__cached</span> 50: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000079" class="method-detail"> <a name="M000079"></a> <div class="method-heading"> <a href="#M000079" class="method-signature"> <span class="method-name">cgi</span><span class="method-args">()</span> </a> </div> <div class="method-description"> <p> Gets the CGI object. If it is nil, returns new CGI object. </p> <ul> <li>Returns: the CGI object </li> </ul> <p><a class="source-toggle" href="#" onclick="toggleCode('M000079-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000079-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext/cgi.rb, line 36</span> 36: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cgi</span> 37: <span class="ruby-constant">Locale</span>.<span class="ruby-identifier">cgi</span> 38: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000078" class="method-detail"> <a name="M000078"></a> <div class="method-heading"> <a href="#M000078" class="method-signature"> <span class="method-name">cgi=</span><span class="method-args">(cgi_)</span> </a> </div> <div class="method-description"> <p> Same as <a href="GetText.html#M000077">GetText.set_cgi</a>. </p> <ul> <li>cgi_: CGI object </li> <li>Returns: cgi_ </li> </ul> <p><a class="source-toggle" href="#" onclick="toggleCode('M000078-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000078-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext/cgi.rb, line 29</span> 29: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cgi=</span>(<span class="ruby-identifier">cgi_</span>) 30: <span class="ruby-identifier">set_cgi</span>(<span class="ruby-identifier">cgi_</span>) 31: <span class="ruby-identifier">cgi_</span> 32: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000083" class="method-detail"> <a name="M000083"></a> <div class="method-heading"> <a href="#M000083" class="method-signature"> <span class="method-name">clear_cache</span><span class="method-args">()</span> </a> </div> <div class="method-description"> <p> Clear the cached messages. </p> <p><a class="source-toggle" href="#" onclick="toggleCode('M000083-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000083-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext.rb, line 53</span> 53: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clear_cache</span> 54: <span class="ruby-ivar">@@__cache_msgids</span> = {} 55: <span class="ruby-ivar">@@__cache_nmsgids</span> = {} 56: <span class="ruby-ivar">@@__cache_target_classes</span> = {} 57: <span class="ruby-ivar">@@__cache_bound_target</span> = {} 58: <span class="ruby-ivar">@@__cache_bound_targets</span> = {} 59: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000073" class="method-detail"> <a name="M000073"></a> <div class="method-heading"> <a href="#M000073" class="method-signature"> <span class="method-name">create_mofiles</span><span class="method-args">(verbose = false, podir = "./po", targetdir = "./data/locale", targetpath_rule = "%s/LC_MESSAGES")</span> </a> </div> <div class="method-description"> <p> Creates mo-files using #{po_root}/#{lang}/*.po an put them to #{targetdir}/#{targetpath_rule}/. </p> <p> This is a convenience function of <a href="GetText.html#M000076">GetText.rmsgfmt</a> for plural target files. </p> <ul> <li>verbose: true if verbose mode, otherwise false </li> <li>po_root: the root directory of po-files. </li> <li>targetdir: the target root directory where the mo-files are stored. </li> <li>targetpath_rule: the target directory for each mo-files. "%s" becomes "#{lang}" under po_root. </li> </ul> <p><a class="source-toggle" href="#" onclick="toggleCode('M000073-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000073-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext/utils.rb, line 110</span> 110: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create_mofiles</span>(<span class="ruby-identifier">verbose</span> = <span class="ruby-keyword kw">false</span>, 111: <span class="ruby-identifier">podir</span> = <span class="ruby-value str">"./po"</span>, <span class="ruby-identifier">targetdir</span> = <span class="ruby-value str">"./data/locale"</span>, 112: <span class="ruby-identifier">targetpath_rule</span> = <span class="ruby-value str">"%s/LC_MESSAGES"</span>) 113: 114: <span class="ruby-identifier">modir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">targetdir</span>, <span class="ruby-identifier">targetpath_rule</span>) 115: <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">glob</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">podir</span>, <span class="ruby-value str">"*/*.po"</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span> 116: <span class="ruby-identifier">lang</span>, <span class="ruby-identifier">basename</span> = <span class="ruby-regexp re">/\/([^\/]+?)\/(.*)\.po/</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">file</span>[<span class="ruby-identifier">podir</span>.<span class="ruby-identifier">size</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>]).<span class="ruby-identifier">to_a</span>[<span class="ruby-value">1</span>,<span class="ruby-value">2</span>] 117: <span class="ruby-identifier">outdir</span> = <span class="ruby-identifier">modir</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">lang</span> 118: <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">mkdir_p</span>(<span class="ruby-identifier">outdir</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">outdir</span>) 119: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">print</span> <span class="ruby-node">%Q[#{file} -> #{File.join(outdir, "#{basename}.mo")} ... ]</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">verbose</span> 120: <span class="ruby-keyword kw">begin</span> 121: <span class="ruby-identifier">rmsgfmt</span>(<span class="ruby-identifier">file</span>, <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">outdir</span>, <span class="ruby-node">"#{basename}.mo"</span>)) 122: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span> 123: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">"Error."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">verbose</span> 124: <span class="ruby-identifier">raise</span> <span class="ruby-identifier">e</span> 125: <span class="ruby-keyword kw">end</span> 126: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">"Done."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">verbose</span> 127: <span class="ruby-keyword kw">end</span> 128: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000104" class="method-detail"> <a name="M000104"></a> <div class="method-heading"> <a href="#M000104" class="method-signature"> <span class="method-name">current_textdomain_info</span><span class="method-args">(options = {})</span> </a> </div> <div class="method-description"> <p> Show the current <a href="GetText.html#M000086">textdomain</a> information. This function is for debugging. </p> <ul> <li>options: options as a Hash. <ul> <li>:with_messages - show informations with messages of the current mo file. Default is false. </li> <li>:out - An output target. Default is STDOUT. </li> <li>:with_paths - show the load paths for mo-files. </li> </ul> </li> </ul> <p><a class="source-toggle" href="#" onclick="toggleCode('M000104-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000104-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext.rb, line 574</span> 574: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">current_textdomain_info</span>(<span class="ruby-identifier">options</span> = {}) 575: <span class="ruby-identifier">opts</span> = {<span class="ruby-identifier">:with_messages</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">:with_paths</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">:out</span> =<span class="ruby-operator">></span> <span class="ruby-constant">STDOUT</span>}.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>) 576: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">nil</span> 577: <span class="ruby-identifier">each_textdomain</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">textdomain</span><span class="ruby-operator">|</span> 578: <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:out</span>].<span class="ruby-identifier">puts</span> <span class="ruby-node">"TextDomain name: \"#{textdomain.name}\""</span> 579: <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:out</span>].<span class="ruby-identifier">puts</span> <span class="ruby-node">"TextDomain current locale: \"#{textdomain.current_locale}\""</span> 580: <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:out</span>].<span class="ruby-identifier">puts</span> <span class="ruby-node">"TextDomain current mo filename: \"#{textdomain.current_mo.filename}\""</span> 581: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:with_paths</span>] 582: <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:out</span>].<span class="ruby-identifier">puts</span> <span class="ruby-value str">"TextDomain locale file paths:"</span> 583: <span class="ruby-identifier">textdomain</span>.<span class="ruby-identifier">locale_paths</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> 584: <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:out</span>].<span class="ruby-identifier">puts</span> <span class="ruby-node">" #{v}"</span> 585: <span class="ruby-keyword kw">end</span> 586: <span class="ruby-keyword kw">end</span> 587: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:with_messages</span>] 588: <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:out</span>].<span class="ruby-identifier">puts</span> <span class="ruby-value str">"The messages in the mo file:"</span> 589: <span class="ruby-identifier">textdomain</span>.<span class="ruby-identifier">current_mo</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">k</span>, <span class="ruby-identifier">v</span><span class="ruby-operator">|</span> 590: <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:out</span>].<span class="ruby-identifier">puts</span> <span class="ruby-node">" \"#{k}\": \"#{v}\""</span> 591: } 592: <span class="ruby-keyword kw">end</span> 593: } 594: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000088" class="method-detail"> <a name="M000088"></a> <div class="method-heading"> <a href="#M000088" class="method-signature"> <span class="method-name">gettext(msgid)<br /> _(msgid)<br /> </span> </a> </div> <div class="method-description"> <p> Translates msgid and return the message. This doesn‘t make a copy of the message. </p> <p> You need to use String#dup if you want to modify the return value with destructive functions. </p> <p> (e.g.1) <a href="GetText.html#M000107">_</a>("Hello ").dup << "world" </p> <p> But e.g.1 should be rewrite to: </p> <p> (e.g.2) <a href="GetText.html#M000107">_</a>("Hello %{val}") % {:val => "world"} </p> <p> Because the translator may want to change the position of "world". </p> <ul> <li>msgid: the message id. </li> <li>Returns: localized text by msgid. If there are not binded mo-file, it will return msgid. </li> </ul> <p><a class="source-toggle" href="#" onclick="toggleCode('M000088-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000088-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext.rb, line 263</span> 263: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">gettext</span>(<span class="ruby-identifier">msgid</span>) 264: <span class="ruby-identifier">sgettext</span>(<span class="ruby-identifier">msgid</span>, <span class="ruby-keyword kw">nil</span>) 265: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000102" class="method-detail"> <a name="M000102"></a> <div class="method-heading"> <a href="#M000102" class="method-signature"> <span class="method-name">locale</span><span class="method-args">()</span> </a> </div> <div class="method-description"> <p> Gets the current <a href="GetText.html#M000102">locale</a>. </p> <ul> <li>Returns: a current <a href="Locale/Object.html">Locale::Object</a> </li> </ul> <p><a class="source-toggle" href="#" onclick="toggleCode('M000102-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000102-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext.rb, line 557</span> 557: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">locale</span> 558: <span class="ruby-constant">Locale</span>.<span class="ruby-identifier">current</span> 559: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000098" class="method-detail"> <a name="M000098"></a> <div class="method-heading"> <a href="#M000098" class="method-signature"> <span class="method-name">locale=</span><span class="method-args">(locale)</span> </a> </div> <div class="method-description"> <p> Sets the default/current <a href="GetText.html#M000102">locale</a>. This method haves the strongest infulence. All of the Textdomains are set the new <a href="GetText.html#M000102">locale</a>. </p> <p> Note that you shouldn‘t use this for your own Libraries. </p> <ul> <li><a href="GetText.html#M000102">locale</a>: a <a href="GetText.html#M000102">locale</a> string or <a href="Locale/Object.html">Locale::Object</a> </li> <li>Returns: a <a href="GetText.html#M000102">locale</a> string </li> </ul> <p><a class="source-toggle" href="#" onclick="toggleCode('M000098-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000098-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext.rb, line 527</span> 527: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">locale=</span>(<span class="ruby-identifier">locale</span>) 528: <span class="ruby-constant">Locale</span>.<span class="ruby-identifier">default</span> = <span class="ruby-identifier">locale</span> 529: <span class="ruby-identifier">set_locale_all</span>(<span class="ruby-identifier">locale</span>) 530: <span class="ruby-constant">Locale</span>.<span class="ruby-identifier">default</span> 531: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000072" class="method-detail"> <a name="M000072"></a> <div class="method-heading"> <a href="#M000072" class="method-signature"> <span class="method-name">msgmerge</span><span class="method-args">(defpo, refpo, app_version)</span> </a> </div> <div class="method-description"> <p> Merges two Uniforum style .po files together. </p> <p> <b>Note</b> This function requires "<a href="GetText.html#M000072">msgmerge</a>" tool included in GNU <a href="GetText.html">GetText</a>. So you need to install GNU <a href="GetText.html">GetText</a>. </p> <p> The def.po file is an existing PO file with translations which will be taken over to the newly created file as long as they still match; comments will be preserved, but extracted comments and file positions will be discarded. </p> <p> The ref.pot file is the last created PO file with up-to-date source references but old translations, or a PO Template file (generally created by <a href="GetText.html#M000075">rgettext</a>); any translations or comments in the file will be discarded, however dot comments and file positions will be preserved. Where an exact match cannot be found, fuzzy matching is used to produce better results. </p> <p> Usually you don‘t need to call this function directly. Use <a href="GetText.html#M000074">GetText.update_pofiles</a> instead. </p> <ul> <li>defpo: a po-file. translations referring to old sources </li> <li>refpo: a po-file. references to new sources </li> <li>app_version: the application information which appears "Project-Id-Version: #{app_version}" in the pot/po-files. </li> <li>Returns: self </li> </ul> <p><a class="source-toggle" href="#" onclick="toggleCode('M000072-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000072-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext/utils.rb, line 60</span> 60: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">msgmerge</span>(<span class="ruby-identifier">defpo</span>, <span class="ruby-identifier">refpo</span>, <span class="ruby-identifier">app_version</span>) 61: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">print</span> <span class="ruby-identifier">defpo</span> <span class="ruby-operator">+</span> <span class="ruby-value str">" "</span> 62: <span class="ruby-identifier">cmd</span> = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">"MSGMERGE_PATH"</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">"msgmerge"</span> 63: 64: <span class="ruby-identifier">cont</span> = <span class="ruby-value str">""</span> 65: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">FileTest</span>.<span class="ruby-identifier">exist?</span> <span class="ruby-identifier">defpo</span> 66: <span class="ruby-node">`#{cmd} --help`</span> 67: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">$?</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">$?</span>.<span class="ruby-identifier">success?</span> 68: <span class="ruby-identifier">raise</span> <span class="ruby-identifier">_</span>(<span class="ruby-value str">"`%{cmd}' may not be found. \nInstall GNU Gettext then set PATH or MSGMERGE_PATH correctly."</span>) <span class="ruby-operator">%</span> {<span class="ruby-identifier">:cmd</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">cmd</span>} 69: <span class="ruby-keyword kw">end</span> 70: <span class="ruby-identifier">remove_bom</span>(<span class="ruby-identifier">defpo</span>) 71: <span class="ruby-identifier">cont</span> = <span class="ruby-node">`#{cmd} #{defpo} #{refpo}`</span> 72: <span class="ruby-keyword kw">else</span> 73: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">refpo</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">io</span><span class="ruby-operator">|</span> 74: <span class="ruby-identifier">cont</span> = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span> 75: <span class="ruby-keyword kw">end</span> 76: <span class="ruby-keyword kw">end</span> 77: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cont</span>.<span class="ruby-identifier">empty?</span> 78: <span class="ruby-identifier">failed_filename</span> = <span class="ruby-identifier">refpo</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"~"</span> 79: <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">cp</span>(<span class="ruby-identifier">refpo</span>, <span class="ruby-identifier">failed_filename</span>) 80: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">_</span>(<span class="ruby-value str">"Failed to merge with %{defpo}"</span>) <span class="ruby-operator">%</span> {<span class="ruby-identifier">:defpo</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">defpo</span>} 81: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">_</span>(<span class="ruby-value str">"New .pot was copied to %{failed_filename}"</span>) <span class="ruby-operator">%</span>{<span class="ruby-identifier">:failed_filename</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">failed_filename</span>} 82: <span class="ruby-identifier">raise</span> <span class="ruby-identifier">_</span>(<span class="ruby-value str">"Check these po/pot-files. It may have syntax errors or something wrong."</span>) 83: <span class="ruby-keyword kw">else</span> 84: <span class="ruby-identifier">cont</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/(Project-Id-Version\:).*$/</span>, <span class="ruby-node">"\\1 #{app_version}\\n\""</span>) 85: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">defpo</span>, <span class="ruby-value str">"w"</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">out</span><span class="ruby-operator">|</span> 86: <span class="ruby-identifier">out</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">cont</span>) 87: <span class="ruby-keyword kw">end</span> 88: <span class="ruby-keyword kw">end</span> 89: <span class="ruby-keyword kw">self</span> 90: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000108" class="method-detail"> <a name="M000108"></a> <div class="method-heading"> <span class="method-name">n_</span><span class="method-args">(arg1, arg2, arg3 = nil)</span> </div> <div class="method-description"> <p> Alias for <a href="GetText.html#M000091">ngettext</a> </p> </div> </div> <div id="method-M000091" class="method-detail"> <a name="M000091"></a> <div class="method-heading"> <a href="#M000091" class="method-signature"> <span class="method-name">ngettext(msgid, msgid_plural, n)<br /> ngettext(msgids, n) # msgids = [msgid, msgid_plural]<br /> n_(msgid, msgid_plural, n)<br /> n_(msgids, n) # msgids = [msgid, msgid_plural]<br /> </span> </a> </div> <div class="method-description"> <p> The <a href="GetText.html#M000091">ngettext</a> is similar to the <a href="GetText.html#M000088">gettext</a> function as it finds the message catalogs in the same way. But it takes two extra arguments for plural form. </p> <ul> <li>msgid: the singular form. </li> <li>msgid_plural: the plural form. </li> <li>n: a number used to determine the plural form. </li> <li>Returns: the localized text which key is msgid_plural if n is plural(follow plural-rule) or msgid. "plural-rule" is defined in po-file. </li> </ul> <p><a class="source-toggle" href="#" onclick="toggleCode('M000091-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000091-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext.rb, line 340</span> 340: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ngettext</span>(<span class="ruby-identifier">arg1</span>, <span class="ruby-identifier">arg2</span>, <span class="ruby-identifier">arg3</span> = <span class="ruby-keyword kw">nil</span>) 341: <span class="ruby-identifier">nsgettext</span>(<span class="ruby-identifier">arg1</span>, <span class="ruby-identifier">arg2</span>, <span class="ruby-identifier">arg3</span>, <span class="ruby-keyword kw">nil</span>) 342: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000111" class="method-detail"> <a name="M000111"></a> <div class="method-heading"> <span class="method-name">np_</span><span class="method-args">(msgctxt, arg1, arg2 = nil, arg3 = nil)</span> </div> <div class="method-description"> <p> Alias for <a href="GetText.html#M000092">npgettext</a> </p> </div> </div> <div id="method-M000092" class="method-detail"> <a name="M000092"></a> <div class="method-heading"> <a href="#M000092" class="method-signature"> <span class="method-name">npgettext(msgctxt, msgid, msgid_plural, n)<br /> npgettext(msgctxt, msgids, n) # msgids = [msgid, msgid_plural]<br /> np_(msgctxt, msgid, msgid_plural, n)<br /> np_(msgctxt, msgids, n) # msgids = [msgid, msgid_plural]<br /> </span> </a> </div> <div class="method-description"> <p> The <a href="GetText.html#M000092">npgettext</a> is similar to the <a href="GetText.html#M000095">nsgettext</a> function. </p> <pre> e.g.) np_("Special", "An apple", "%{num} Apples", num) == ns_("Special|An apple", "%{num} Apples", num) </pre> <ul> <li>msgctxt: the message context. </li> <li>msgid: the singular form. </li> <li>msgid_plural: the plural form. </li> <li>n: a number used to determine the plural form. </li> <li>Returns: the localized text which key is msgid_plural if n is plural(follow plural-rule) or msgid. "plural-rule" is defined in po-file. </li> </ul> <p><a class="source-toggle" href="#" onclick="toggleCode('M000092-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000092-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext.rb, line 358</span> 358: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">npgettext</span>(<span class="ruby-identifier">msgctxt</span>, <span class="ruby-identifier">arg1</span>, <span class="ruby-identifier">arg2</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">arg3</span> = <span class="ruby-keyword kw">nil</span>) 359: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg1</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Array</span>) 360: <span class="ruby-identifier">msgid</span> = <span class="ruby-identifier">arg1</span>[<span class="ruby-value">0</span>] 361: <span class="ruby-identifier">msgid_ctxt</span> = <span class="ruby-node">"#{msgctxt}\004#{msgid}"</span> 362: <span class="ruby-identifier">msgid_plural</span> = <span class="ruby-identifier">arg1</span>[<span class="ruby-value">1</span>] 363: <span class="ruby-identifier">opt1</span> = <span class="ruby-identifier">arg2</span> 364: <span class="ruby-identifier">opt2</span> = <span class="ruby-identifier">arg3</span> 365: <span class="ruby-keyword kw">else</span> 366: <span class="ruby-identifier">msgid</span> = <span class="ruby-identifier">arg1</span> 367: <span class="ruby-identifier">msgid_ctxt</span> = <span class="ruby-node">"#{msgctxt}\004#{msgid}"</span> 368: <span class="ruby-identifier">msgid_plural</span> = <span class="ruby-identifier">arg2</span> 369: <span class="ruby-identifier">opt1</span> = <span class="ruby-identifier">arg3</span> 370: <span class="ruby-identifier">opt2</span> = <span class="ruby-keyword kw">nil</span> 371: <span class="ruby-keyword kw">end</span> 372: <span class="ruby-identifier">ret</span> = <span class="ruby-identifier">nsgettext</span>(<span class="ruby-identifier">msgid_ctxt</span>, <span class="ruby-identifier">msgid_plural</span>, <span class="ruby-identifier">opt1</span>, <span class="ruby-identifier">opt2</span>) 373: 374: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ret</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">msgid_ctxt</span> 375: <span class="ruby-identifier">ret</span> = <span class="ruby-identifier">msgid</span> 376: <span class="ruby-keyword kw">end</span> 377: <span class="ruby-identifier">ret</span> 378: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000110" class="method-detail"> <a name="M000110"></a> <div class="method-heading"> <span class="method-name">ns_</span><span class="method-args">(arg1, arg2, arg3 = "|", arg4 = "|")</span> </div> <div class="method-description"> <p> Alias for <a href="GetText.html#M000095">nsgettext</a> </p> </div> </div> <div id="method-M000095" class="method-detail"> <a name="M000095"></a> <div class="method-heading"> <a href="#M000095" class="method-signature"> <span class="method-name">nsgettext(msgid, msgid_plural, n, div = "|")<br /> nsgettext(msgids, n, div = "|") # msgids = [msgid, msgid_plural]<br /> n_(msgid, msgid_plural, n, div = "|")<br /> n_(msgids, n, div = "|") # msgids = [msgid, msgid_plural]<br /> </span> </a> </div> <div class="method-description"> <p> The <a href="GetText.html#M000095">nsgettext</a> is similar to the <a href="GetText.html#M000091">ngettext</a>. But if there are no localized text, it returns a last part of msgid separeted "div". </p> <ul> <li>msgid: the singular form with "div". (e.g. "Special|An apple") </li> <li>msgid_plural: the plural form. (e.g. "%{num} Apples") </li> <li>n: a number used to determine the plural form. </li> <li>Returns: the localized text which key is msgid_plural if n is plural(follow plural-rule) or msgid. "plural-rule" is defined in po-file. </li> </ul> <p><a class="source-toggle" href="#" onclick="toggleCode('M000095-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000095-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext.rb, line 411</span> 411: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nsgettext</span>(<span class="ruby-identifier">arg1</span>, <span class="ruby-identifier">arg2</span>, <span class="ruby-identifier">arg3</span> = <span class="ruby-value str">"|"</span>, <span class="ruby-identifier">arg4</span> = <span class="ruby-value str">"|"</span>) 412: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg1</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Array</span>) 413: <span class="ruby-identifier">msgid</span> = <span class="ruby-identifier">arg1</span>[<span class="ruby-value">0</span>] 414: <span class="ruby-identifier">msgid_plural</span> = <span class="ruby-identifier">arg1</span>[<span class="ruby-value">1</span>] 415: <span class="ruby-identifier">n</span> = <span class="ruby-identifier">arg2</span> 416: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg3</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">arg3</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Numeric</span> 417: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-identifier">_</span>(<span class="ruby-value str">"3rd parmeter is wrong: value = %{number}"</span>) <span class="ruby-operator">%</span> {<span class="ruby-identifier">:number</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">arg3</span>} 418: <span class="ruby-keyword kw">end</span> 419: <span class="ruby-identifier">div</span> = <span class="ruby-identifier">arg3</span> 420: <span class="ruby-keyword kw">else</span> 421: <span class="ruby-identifier">msgid</span> = <span class="ruby-identifier">arg1</span> 422: <span class="ruby-identifier">msgid_plural</span> = <span class="ruby-identifier">arg2</span> 423: <span class="ruby-identifier">n</span> = <span class="ruby-identifier">arg3</span> 424: <span class="ruby-identifier">div</span> = <span class="ruby-identifier">arg4</span> 425: <span class="ruby-keyword kw">end</span> 426: 427: <span class="ruby-identifier">cached_key</span> = [<span class="ruby-identifier">bound_target</span>, <span class="ruby-constant">Locale</span>.<span class="ruby-identifier">current</span>, <span class="ruby-identifier">msgid</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"\000"</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">msgid_plural</span>] 428: <span class="ruby-identifier">msgs</span> = <span class="ruby-keyword kw">nil</span> 429: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@@__cached</span> 430: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@@__cache_nmsgids</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">cached_key</span>) 431: <span class="ruby-identifier">msgs</span> = <span class="ruby-ivar">@@__cache_nmsgids</span>[<span class="ruby-identifier">cached_key</span>] <span class="ruby-comment cmt"># [msgstr, cond_as_string]</span> 432: <span class="ruby-keyword kw">end</span> 433: <span class="ruby-keyword kw">end</span> 434: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">msgs</span> 435: <span class="ruby-comment cmt"># Use "for"(not "each") to support JRuby 1.1.0.</span> 436: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">target</span> <span class="ruby-keyword kw">in</span> <span class="ruby-identifier">bound_targets</span>(<span class="ruby-keyword kw">self</span>) 437: <span class="ruby-identifier">manager</span> = <span class="ruby-ivar">@@__textdomainmanagers</span>[<span class="ruby-identifier">target</span>] 438: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">textdomain</span> <span class="ruby-keyword kw">in</span> <span class="ruby-identifier">manager</span>.<span class="ruby-identifier">textdomains</span> 439: <span class="ruby-identifier">msgs</span> = <span class="ruby-identifier">textdomain</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">ngettext_data</span>(<span class="ruby-identifier">msgid</span>, <span class="ruby-identifier">msgid_plural</span>) 440: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">msgs</span> 441: <span class="ruby-keyword kw">end</span> 442: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">msgs</span> 443: <span class="ruby-keyword kw">end</span> 444: <span class="ruby-identifier">msgs</span> = [[<span class="ruby-identifier">msgid</span>, <span class="ruby-identifier">msgid_plural</span>], <span class="ruby-value str">"n != 1"</span>] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">msgs</span> 445: <span class="ruby-ivar">@@__cache_nmsgids</span>[<span class="ruby-identifier">cached_key</span>] = <span class="ruby-identifier">msgs</span> 446: <span class="ruby-keyword kw">end</span> 447: <span class="ruby-identifier">msgstrs</span> = <span class="ruby-identifier">msgs</span>[<span class="ruby-value">0</span>] 448: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">div</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">msgstrs</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">msgid</span> 449: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">index</span> = <span class="ruby-identifier">msgstrs</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">rindex</span>(<span class="ruby-identifier">div</span>) 450: <span class="ruby-identifier">msgstrs</span>[<span class="ruby-value">0</span>] = <span class="ruby-identifier">msgstrs</span>[<span class="ruby-value">0</span>][(<span class="ruby-identifier">index</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)<span class="ruby-operator">..</span><span class="ruby-value">-1</span>] 451: <span class="ruby-keyword kw">end</span> 452: <span class="ruby-keyword kw">end</span> 453: <span class="ruby-identifier">plural</span> = <span class="ruby-identifier">eval</span>(<span class="ruby-identifier">msgs</span>[<span class="ruby-value">1</span>]) 454: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">plural</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Numeric</span>) 455: <span class="ruby-identifier">ret</span> = <span class="ruby-identifier">msgstrs</span>[<span class="ruby-identifier">plural</span>] 456: <span class="ruby-keyword kw">else</span> 457: <span class="ruby-identifier">ret</span> = <span class="ruby-identifier">plural</span> <span class="ruby-value">? </span><span class="ruby-identifier">msgstrs</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">:</span> <span class="ruby-identifier">msgstrs</span>[<span class="ruby-value">0</span>] 458: <span class="ruby-keyword kw">end</span> 459: <span class="ruby-identifier">ret</span> 460: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000101" class="method-detail"> <a name="M000101"></a> <div class="method-heading"> <a href="#M000101" class="method-signature"> <span class="method-name">output_charset</span><span class="method-args">()</span> </a> </div> <div class="method-description"> <p> Gets the current <a href="GetText.html#M000101">output_charset</a> which is set using <a href="GetText.html#M000099">GetText.set_output_charset</a>. </p> <ul> <li>Returns: <a href="GetText.html#M000101">output_charset</a>. </li> </ul> <p><a class="source-toggle" href="#" onclick="toggleCode('M000101-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000101-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext.rb, line 551</span> 551: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">output_charset</span> 552: <span class="ruby-constant">TextDomainManager</span>.<span class="ruby-identifier">output_charset</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">locale</span>.<span class="ruby-identifier">charset</span> 553: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000100" class="method-detail"> <a name="M000100"></a> <div class="method-heading"> <a href="#M000100" class="method-signature"> <span class="method-name">output_charset=</span><span class="method-args">(charset)</span> </a> </div> <div class="method-description"> <p> Same as <a href="GetText.html#M000099">GetText.set_output_charset</a> </p> <ul> <li>charset: an <a href="GetText.html#M000101">output_charset</a> </li> <li>Returns: charset </li> </ul> <p><a class="source-toggle" href="#" onclick="toggleCode('M000100-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000100-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext.rb, line 545</span> 545: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">output_charset=</span>(<span class="ruby-identifier">charset</span>) 546: <span class="ruby-constant">TextDomainManager</span>.<span class="ruby-identifier">output_charset</span> = <span class="ruby-identifier">charset</span> 547: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000112" class="method-detail"> <a name="M000112"></a> <div class="method-heading"> <span class="method-name">p_</span><span class="method-args">(msgctxt, msgid)</span> </div> <div class="method-description"> <p> Alias for <a href="GetText.html#M000090">pgettext</a> </p> </div> </div> <div id="method-M000090" class="method-detail"> <a name="M000090"></a> <div class="method-heading"> <a href="#M000090" class="method-signature"> <span class="method-name">pgettext(msgctxt, msgid)<br /> p_(msgctxt, msgid)<br /> </span> </a> </div> <div class="method-description"> <p> Translates msgid with msgctxt. This methods is similer with <a href="GetText.html#M000109">s_</a>(). </p> <pre> e.g.) p_("File", "New") == s_("File|New") p_("File", "Open") == s_("File|Open") </pre> <ul> <li>msgctxt: the message context. </li> <li>msgid: the message id. </li> <li>Returns: the localized text by msgid. If there are no localized text, it returns msgid. </li> </ul> <p> See: <a href="http://www.gnu.org/software/autoconf/manual/gettext/Contexts.html">www.gnu.org/software/autoconf/manual/gettext/Contexts.html</a> </p> <p><a class="source-toggle" href="#" onclick="toggleCode('M000090-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000090-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext.rb, line 320</span> 320: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pgettext</span>(<span class="ruby-identifier">msgctxt</span>, <span class="ruby-identifier">msgid</span>) 321: <span class="ruby-identifier">sgettext</span>(<span class="ruby-identifier">msgctxt</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"\004"</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">msgid</span>, <span class="ruby-value str">"\004"</span>) 322: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000105" class="method-detail"> <a name="M000105"></a> <div class="method-heading"> <a href="#M000105" class="method-signature"> <span class="method-name">remove_all_textdomains</span><span class="method-args">()</span> </a> </div> <div class="method-description"> <p> for testing. </p> <p><a class="source-toggle" href="#" onclick="toggleCode('M000105-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000105-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext.rb, line 597</span> 597: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">remove_all_textdomains</span> 598: <span class="ruby-identifier">clear_cache</span> 599: <span class="ruby-ivar">@@__textdomainmanagers</span> = {} 600: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000075" class="method-detail"> <a name="M000075"></a> <div class="method-heading"> <a href="#M000075" class="method-signature"> <span class="method-name">rgettext</span><span class="method-args">(targetfiles = nil, out = STDOUT)</span> </a> </div> <div class="method-description"> <p> Creates a po-file from targetfiles(ruby-script-files, ActiveRecord, .rhtml files, glade-2 XML files), then output the result to out. If no parameter is set, it behaves same as command line tools(rgettet). </p> <p> This function is a part of GetText.create_pofiles. Usually you don‘t need to call this function directly. </p> <p> <b>Note</b> for ActiveRecord, you need to run your database server and configure the config/database.xml correctly before execute this function. </p> <ul> <li>targetfiles: An Array of po-files or nil. </li> <li>out: output IO or output path. </li> <li>Returns: self </li> </ul> <p><a class="source-toggle" href="#" onclick="toggleCode('M000075-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000075-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext/rgettext.rb, line 265</span> 265: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rgettext</span>(<span class="ruby-identifier">targetfiles</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">out</span> = <span class="ruby-constant">STDOUT</span>) 266: <span class="ruby-constant">RGetText</span>.<span class="ruby-identifier">run</span>(<span class="ruby-identifier">targetfiles</span>, <span class="ruby-identifier">out</span>) 267: <span class="ruby-keyword kw">self</span> 268: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000076" class="method-detail"> <a name="M000076"></a> <div class="method-heading"> <a href="#M000076" class="method-signature"> <span class="method-name">rmsgfmt</span><span class="method-args">(targetfile = nil, output_path = nil)</span> </a> </div> <div class="method-description"> <p> Creates a mo-file from a targetfile(po-file), then output the result to out. If no parameter is set, it behaves same as command line tools(<a href="GetText.html#M000076">rmsgfmt</a>). </p> <ul> <li>targetfile: An Array of po-files or nil. </li> <li>output_path: output path. </li> <li>Returns: the <a href="MOFile.html">MOFile</a> object. </li> </ul> <p><a class="source-toggle" href="#" onclick="toggleCode('M000076-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000076-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext/rmsgfmt.rb, line 79</span> 79: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rmsgfmt</span>(<span class="ruby-identifier">targetfile</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">output_path</span> = <span class="ruby-keyword kw">nil</span>) 80: <span class="ruby-constant">RMsgfmt</span>.<span class="ruby-identifier">run</span>(<span class="ruby-identifier">targetfile</span>, <span class="ruby-identifier">output_path</span>) 81: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000080" class="method-detail"> <a name="M000080"></a> <div class="method-heading"> <a href="#M000080" class="method-signature"> <span class="method-name">rmsgmerge</span><span class="method-args">(reference = nil, definition = nil, out = STDOUT)</span> </a> </div> <div class="method-description"> <p> Experimental </p> <p><a class="source-toggle" href="#" onclick="toggleCode('M000080-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000080-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext/rmsgmerge.rb, line 489</span> 489: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rmsgmerge</span>(<span class="ruby-identifier">reference</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">definition</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">out</span> = <span class="ruby-constant">STDOUT</span>) 490: <span class="ruby-constant">RMsgMerge</span>.<span class="ruby-identifier">run</span>(<span class="ruby-identifier">reference</span>, <span class="ruby-identifier">definition</span>, <span class="ruby-identifier">out</span>) 491: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000109" class="method-detail"> <a name="M000109"></a> <div class="method-heading"> <span class="method-name">s_</span><span class="method-args">(msgid, div = '|')</span> </div> <div class="method-description"> <p> Alias for <a href="GetText.html#M000089">sgettext</a> </p> </div> </div> <div id="method-M000077" class="method-detail"> <a name="M000077"></a> <div class="method-heading"> <a href="#M000077" class="method-signature"> <span class="method-name">set_cgi</span><span class="method-args">(cgi_)</span> </a> </div> <div class="method-description"> <p> Sets a CGI object. </p> <ul> <li>cgi_: CGI object </li> <li>Returns: self </li> </ul> <p><a class="source-toggle" href="#" onclick="toggleCode('M000077-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000077-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext/cgi.rb, line 22</span> 22: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_cgi</span>(<span class="ruby-identifier">cgi_</span>) 23: <span class="ruby-constant">Locale</span>.<span class="ruby-identifier">set_cgi</span>(<span class="ruby-identifier">cgi_</span>) 24: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000096" class="method-detail"> <a name="M000096"></a> <div class="method-heading"> <a href="#M000096" class="method-signature"> <span class="method-name">set_locale</span><span class="method-args">(locale, this_target_only = false)</span> </a> </div> <div class="method-description"> <p> Sets the current <a href="GetText.html#M000102">locale</a> to the current class/module </p> <p> Notice that you shouldn‘t use this for your own Libraries. </p> <ul> <li><a href="GetText.html#M000102">locale</a>: a <a href="GetText.html#M000102">locale</a> string or <a href="Locale/Object.html">Locale::Object</a>. </li> <li>this_target_only: true if you want to change the current class/module only. </li> </ul> <p> Otherwise, this changes the <a href="GetText.html#M000102">locale</a> of the current class/module and its ancestors. Default is false. </p> <ul> <li>Returns: self </li> </ul> <p><a class="source-toggle" href="#" onclick="toggleCode('M000096-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000096-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext.rb, line 470</span> 470: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_locale</span>(<span class="ruby-identifier">locale</span>, <span class="ruby-identifier">this_target_only</span> = <span class="ruby-keyword kw">false</span>) 471: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">nil</span> 472: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">locale</span> 473: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">locale</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Locale</span><span class="ruby-operator">::</span><span class="ruby-constant">Object</span> 474: <span class="ruby-identifier">ret</span> = <span class="ruby-identifier">locale</span> 475: <span class="ruby-keyword kw">else</span> 476: <span class="ruby-identifier">ret</span> = <span class="ruby-constant">Locale</span><span class="ruby-operator">::</span><span class="ruby-constant">Object</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">locale</span>.<span class="ruby-identifier">to_s</span>) 477: <span class="ruby-keyword kw">end</span> 478: <span class="ruby-identifier">ret</span>.<span class="ruby-identifier">charset</span> = <span class="ruby-constant">TextDomainManager</span>.<span class="ruby-identifier">output_charset</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">TextDomainManager</span>.<span class="ruby-identifier">output_charset</span> 479: <span class="ruby-constant">Locale</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">ret</span>) 480: <span class="ruby-keyword kw">else</span> 481: <span class="ruby-constant">Locale</span>.<span class="ruby-identifier">set</span>(<span class="ruby-keyword kw">nil</span>) 482: <span class="ruby-identifier">ret</span> = <span class="ruby-constant">Locale</span>.<span class="ruby-identifier">get</span> 483: <span class="ruby-keyword kw">end</span> 484: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">this_target_only</span> 485: <span class="ruby-identifier">manager</span> = <span class="ruby-ivar">@@__textdomainmanagers</span>[<span class="ruby-identifier">bound_target</span>] 486: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">manager</span> 487: <span class="ruby-identifier">manager</span>.<span class="ruby-identifier">set_locale</span>(<span class="ruby-identifier">ret</span>, <span class="ruby-operator">!</span> <span class="ruby-identifier">cached?</span>) 488: <span class="ruby-keyword kw">end</span> 489: <span class="ruby-keyword kw">else</span> 490: <span class="ruby-identifier">each_textdomain</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">textdomain</span><span class="ruby-operator">|</span> 491: <span class="ruby-identifier">textdomain</span>.<span class="ruby-identifier">set_locale</span>(<span class="ruby-identifier">ret</span>, <span class="ruby-operator">!</span> <span class="ruby-identifier">cached?</span>) 492: } 493: <span class="ruby-keyword kw">end</span> 494: <span class="ruby-keyword kw">self</span> 495: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000097" class="method-detail"> <a name="M000097"></a> <div class="method-heading"> <a href="#M000097" class="method-signature"> <span class="method-name">set_locale_all</span><span class="method-args">(locale)</span> </a> </div> <div class="method-description"> <p> Sets current <a href="GetText.html#M000102">locale</a> to the all textdomains. </p> <p> Note that you shouldn‘t use this for your own Libraries. </p> <ul> <li><a href="GetText.html#M000102">locale</a>: a <a href="GetText.html#M000102">locale</a> string or <a href="Locale/Object.html">Locale::Object</a>, otherwise nil to use default <a href="GetText.html#M000102">locale</a>. </li> <li>Returns: self </li> </ul> <p><a class="source-toggle" href="#" onclick="toggleCode('M000097-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000097-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext.rb, line 502</span> 502: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_locale_all</span>(<span class="ruby-identifier">locale</span>) 503: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">nil</span> 504: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">locale</span> 505: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">locale</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Locale</span><span class="ruby-operator">::</span><span class="ruby-constant">Object</span> 506: <span class="ruby-identifier">ret</span> = <span class="ruby-identifier">locale</span> 507: <span class="ruby-keyword kw">else</span> 508: <span class="ruby-identifier">ret</span> = <span class="ruby-constant">Locale</span><span class="ruby-operator">::</span><span class="ruby-constant">Object</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">locale</span>.<span class="ruby-identifier">to_s</span>) 509: <span class="ruby-keyword kw">end</span> 510: <span class="ruby-keyword kw">else</span> 511: <span class="ruby-identifier">ret</span> = <span class="ruby-constant">Locale</span>.<span class="ruby-identifier">default</span> 512: <span class="ruby-keyword kw">end</span> 513: <span class="ruby-identifier">ret</span>.<span class="ruby-identifier">charset</span> = <span class="ruby-constant">TextDomainManager</span>.<span class="ruby-identifier">output_charset</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">TextDomainManager</span>.<span class="ruby-identifier">output_charset</span> 514: <span class="ruby-constant">Locale</span>.<span class="ruby-identifier">set_current</span>(<span class="ruby-identifier">ret</span>) 515: <span class="ruby-constant">TextDomainManager</span>.<span class="ruby-identifier">each_all</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">textdomain</span><span class="ruby-operator">|</span> 516: <span class="ruby-identifier">textdomain</span>.<span class="ruby-identifier">set_locale</span>(<span class="ruby-identifier">ret</span>, <span class="ruby-operator">!</span> <span class="ruby-identifier">cached?</span>) 517: } 518: <span class="ruby-keyword kw">self</span> 519: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000099" class="method-detail"> <a name="M000099"></a> <div class="method-heading"> <a href="#M000099" class="method-signature"> <span class="method-name">set_output_charset</span><span class="method-args">(charset)</span> </a> </div> <div class="method-description"> <p> Sets charset(<a href="String.html">String</a>) such as "euc-jp", "sjis", "CP932", "utf-8", … You shouldn‘t use this in your own Libraries. </p> <ul> <li>charset: an <a href="GetText.html#M000101">output_charset</a> </li> <li>Returns: charset </li> </ul> <p><a class="source-toggle" href="#" onclick="toggleCode('M000099-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000099-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext.rb, line 537</span> 537: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_output_charset</span>(<span class="ruby-identifier">charset</span>) 538: <span class="ruby-constant">TextDomainManager</span>.<span class="ruby-identifier">output_charset</span> = <span class="ruby-identifier">charset</span> 539: <span class="ruby-keyword kw">self</span> 540: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000106" class="method-detail"> <a name="M000106"></a> <div class="method-heading"> <span class="method-name">setlocale</span><span class="method-args">(locale)</span> </div> <div class="method-description"> <p> Alias for <a href="GetText.html#M000102">locale</a>= </p> </div> </div> <div id="method-M000089" class="method-detail"> <a name="M000089"></a> <div class="method-heading"> <a href="#M000089" class="method-signature"> <span class="method-name">sgettext(msgid, div = '|')<br /> s_(msgid, div = '|')<br /> </span> </a> </div> <div class="method-description"> <p> Translates msgid, but if there are no localized text, it returns a last part of msgid separeted "div". </p> <ul> <li>msgid: the message id. </li> <li>div: separator or nil. </li> <li>Returns: the localized text by msgid. If there are no localized text, it returns a last part of msgid separeted "div". </li> </ul> <p> See: <a href="http://www.gnu.org/software/gettext/manual/html_mono/gettext.html#SEC151">www.gnu.org/software/gettext/manual/html_mono/gettext.html#SEC151</a> </p> <p><a class="source-toggle" href="#" onclick="toggleCode('M000089-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000089-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext.rb, line 279</span> 279: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sgettext</span>(<span class="ruby-identifier">msgid</span>, <span class="ruby-identifier">div</span> = <span class="ruby-value str">'|'</span>) 280: <span class="ruby-identifier">cached_key</span> = [<span class="ruby-identifier">bound_target</span>, <span class="ruby-constant">Locale</span>.<span class="ruby-identifier">current</span>, <span class="ruby-identifier">msgid</span>] 281: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cached?</span> 282: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@@__cache_msgids</span>[<span class="ruby-identifier">cached_key</span>] 283: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@@__cache_msgids</span>[<span class="ruby-identifier">cached_key</span>] 284: <span class="ruby-keyword kw">end</span> 285: <span class="ruby-keyword kw">end</span> 286: <span class="ruby-identifier">msg</span> = <span class="ruby-keyword kw">nil</span> 287: 288: <span class="ruby-comment cmt"># Use "for"(not "each") to support JRuby 1.1.0.</span> 289: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">target</span> <span class="ruby-keyword kw">in</span> <span class="ruby-identifier">bound_targets</span>(<span class="ruby-keyword kw">self</span>) 290: <span class="ruby-identifier">manager</span> = <span class="ruby-ivar">@@__textdomainmanagers</span>[<span class="ruby-identifier">target</span>] 291: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">textdomain</span> <span class="ruby-keyword kw">in</span> <span class="ruby-identifier">manager</span>.<span class="ruby-identifier">textdomains</span> 292: <span class="ruby-identifier">msg</span> = <span class="ruby-identifier">textdomain</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">gettext</span>(<span class="ruby-identifier">msgid</span>) 293: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">msg</span> 294: <span class="ruby-keyword kw">end</span> 295: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">msg</span> 296: <span class="ruby-keyword kw">end</span> 297: 298: <span class="ruby-identifier">msg</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">msgid</span> 299: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">div</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">msg</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">msgid</span> 300: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">index</span> = <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">rindex</span>(<span class="ruby-identifier">div</span>) 301: <span class="ruby-identifier">msg</span> = <span class="ruby-identifier">msg</span>[(<span class="ruby-identifier">index</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)<span class="ruby-operator">..</span><span class="ruby-value">-1</span>] 302: <span class="ruby-keyword kw">end</span> 303: <span class="ruby-keyword kw">end</span> 304: <span class="ruby-ivar">@@__cache_msgids</span>[<span class="ruby-identifier">cached_key</span>] = <span class="ruby-identifier">msg</span> 305: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000086" class="method-detail"> <a name="M000086"></a> <div class="method-heading"> <a href="#M000086" class="method-signature"> <span class="method-name">textdomain</span><span class="method-args">(domainname)</span> </a> </div> <div class="method-description"> <p> Binds a existed <a href="GetText.html#M000086">textdomain</a> to your program. This is the same function with <a href="GetText.html#M000084">GetText.bindtextdomain</a> but simpler(and faster) than <a href="GetText.html#M000084">bindtextdomain</a>. Notice that you need to call <a href="GetText.html#M000084">GetText.bindtextdomain</a> first. If the domainname hasn‘t bound yet, raises <a href="GetText/NoboundTextDomainError.html">GetText::NoboundTextDomainError</a>. </p> <ul> <li>domainname: a <a href="GetText.html#M000086">textdomain</a> name. </li> <li>Returns: the <a href="GetText/TextDomainManager.html">GetText::TextDomainManager</a>. </li> </ul> <p><a class="source-toggle" href="#" onclick="toggleCode('M000086-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000086-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext.rb, line 128</span> 128: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">textdomain</span>(<span class="ruby-identifier">domainname</span>) 129: <span class="ruby-identifier">domain</span> = <span class="ruby-constant">TextDomainManager</span>.<span class="ruby-identifier">textdomain</span>(<span class="ruby-identifier">domainname</span>) 130: <span class="ruby-identifier">raise</span> <span class="ruby-constant">NoboundTextDomainError</span>, <span class="ruby-node">"#{domainname} is not bound."</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">domain</span> 131: <span class="ruby-identifier">target_key</span> = <span class="ruby-identifier">bound_target</span> 132: <span class="ruby-identifier">manager</span> = <span class="ruby-ivar">@@__textdomainmanagers</span>[<span class="ruby-identifier">target_key</span>] 133: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">manager</span> 134: <span class="ruby-identifier">manager</span> = <span class="ruby-constant">TextDomainManager</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">target_key</span>, <span class="ruby-constant">Locale</span>.<span class="ruby-identifier">get</span>) 135: <span class="ruby-ivar">@@__textdomainmanagers</span>[<span class="ruby-identifier">target_key</span>] = <span class="ruby-identifier">manager</span> 136: <span class="ruby-keyword kw">end</span> 137: <span class="ruby-identifier">manager</span>.<span class="ruby-identifier">set_locale</span>(<span class="ruby-constant">Locale</span>.<span class="ruby-identifier">get</span>) 138: <span class="ruby-identifier">manager</span>.<span class="ruby-identifier">add_textdomain</span>(<span class="ruby-identifier">domainname</span>) 139: <span class="ruby-identifier">manager</span> 140: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000087" class="method-detail"> <a name="M000087"></a> <div class="method-heading"> <a href="#M000087" class="method-signature"> <span class="method-name">textdomain_to</span><span class="method-args">(klass, domainname)</span> </a> </div> <div class="method-description"> <p> Includes <a href="GetText.html">GetText</a> module and bind an exsited <a href="GetText.html#M000086">textdomain</a> to a class. See <a href="GetText.html#M000086">textdomain</a> for more detail. </p> <ul> <li>klass: the target ruby class. </li> <li>domainname: the <a href="GetText.html#M000086">textdomain</a> name. </li> </ul> <p><a class="source-toggle" href="#" onclick="toggleCode('M000087-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000087-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext.rb, line 146</span> 146: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">textdomain_to</span>(<span class="ruby-identifier">klass</span>, <span class="ruby-identifier">domainname</span>) 147: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">nil</span> 148: <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">module_eval</span> { 149: <span class="ruby-identifier">include</span> <span class="ruby-constant">GetText</span> 150: <span class="ruby-identifier">ret</span> = <span class="ruby-identifier">textdomain</span>(<span class="ruby-identifier">domainname</span>) 151: } 152: <span class="ruby-identifier">ret</span> 153: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000074" class="method-detail"> <a name="M000074"></a> <div class="method-heading"> <a href="#M000074" class="method-signature"> <span class="method-name">update_pofiles</span><span class="method-args">(textdomain, files, app_version, po_root = "po", refpot = "tmp.pot")</span> </a> </div> <div class="method-description"> <p> At first, this creates the #{po_root}/#{domainname}.pot file using <a href="GetText.html#M000075">GetText.rgettext</a>. Since 2nd time, this updates(merges) the #{po_root}/#{domainname}.pot and all of the #{po_root}/#{lang}/#{domainname}.po files under "po_root" using "<a href="GetText.html#M000072">msgmerge</a>". </p> <p> <b>Note</b> "<a href="GetText.html#M000072">msgmerge</a>" tool is included in GNU <a href="GetText.html">GetText</a>. So you need to install GNU <a href="GetText.html">GetText</a>. </p> <p> See <HOWTO maintain po/mo files(<a href="http://www.yotabanana.com/hiki/ruby-gettext-howto-manage.html">www.yotabanana.com/hiki/ruby-gettext-howto-manage.html</a>)> for more detals. </p> <ul> <li>domainname: the <a href="GetText.html#M000086">textdomain</a> name. </li> <li>targetfiles: An Array of target files or nil (See <a href="GetText.html#M000075">GetText.rgettext</a> for more details). </li> <li>app_version: the application information which appears "Project-Id-Version: #{app_version}" in the pot/po-files. </li> <li>po_root: the root directory of po-files. </li> <li>refpot: set the temporary file name. You shouldn‘t use this(It will be removed). </li> </ul> <pre> (e.g.) GetText.update_pofiles("myapp", Dir.glob("lib/*.rb"), "myapp 1.0.0") </pre> <p><a class="source-toggle" href="#" onclick="toggleCode('M000074-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000074-source"> <pre> <span class="ruby-comment cmt"># File lib/gettext/utils.rb, line 145</span> 145: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">update_pofiles</span>(<span class="ruby-identifier">textdomain</span>, <span class="ruby-identifier">files</span>, <span class="ruby-identifier">app_version</span>, <span class="ruby-identifier">po_root</span> = <span class="ruby-value str">"po"</span>, <span class="ruby-identifier">refpot</span> = <span class="ruby-value str">"tmp.pot"</span>) 146: <span class="ruby-identifier">rgettext</span>(<span class="ruby-identifier">files</span>, <span class="ruby-identifier">refpot</span>) 147: <span class="ruby-identifier">msgmerge_all</span>(<span class="ruby-identifier">textdomain</span>, <span class="ruby-identifier">app_version</span>, <span class="ruby-identifier">po_root</span>, <span class="ruby-identifier">refpot</span>) 148: <span class="ruby-constant">File</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">refpot</span>) 149: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> </div> </div> <div id="validator-badges"> <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p> </div> </body> </html>