Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/translate-toolkit-1.5.1/translate/doc/api/translate.lang.data-pysrc.html
diff options
context:
space:
mode:
Diffstat (limited to 'translate-toolkit-1.5.1/translate/doc/api/translate.lang.data-pysrc.html')
-rw-r--r--translate-toolkit-1.5.1/translate/doc/api/translate.lang.data-pysrc.html477
1 files changed, 477 insertions, 0 deletions
diff --git a/translate-toolkit-1.5.1/translate/doc/api/translate.lang.data-pysrc.html b/translate-toolkit-1.5.1/translate/doc/api/translate.lang.data-pysrc.html
new file mode 100644
index 0000000..d90eb9c
--- /dev/null
+++ b/translate-toolkit-1.5.1/translate/doc/api/translate.lang.data-pysrc.html
@@ -0,0 +1,477 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>translate.lang.data</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="translate-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Tree link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Index link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Help link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ ><a class="navbar" target="_top" href="http://translate.sourceforge.net/wiki/toolkit/index">Translate Toolkit</a></th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="translate-module.html">Package&nbsp;translate</a> ::
+ <a href="translate.lang-module.html">Package&nbsp;lang</a> ::
+ Module&nbsp;data
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >]&nbsp;|&nbsp;<a href="translate.lang.data-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="translate.lang.data-module.html">Module translate.lang.data</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># -*- coding: utf-8 -*-</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># </tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright 2007-2009 Zuza Software Foundation</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># </tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of translate.</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># translate is free software; you can redistribute it and/or modify</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the Free Software Foundation; either version 2 of the License, or</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (at your option) any later version.</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># </tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># translate is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with translate; if not, write to the Free Software</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt> <tt class="py-line"><tt class="py-docstring">"""This module stores information and functionality that relates to plurals."""</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">unicodedata</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package translate=translate-module.html,Method translate.storage.base.TranslationStore.translate()=translate.storage.base.TranslationStore-class.html#translate,Method translate.storage.placeables.strelem.StringElem.translate()=translate.storage.placeables.strelem.StringElem-class.html#translate,Method translate.storage.placeables.terminology.TerminologyPlaceable.translate()=translate.storage.placeables.terminology.TerminologyPlaceable-class.html#translate,Method translate.storage.tmx.tmxfile.translate()=translate.storage.tmx.tmxfile-class.html#translate"><a title="translate
+translate.storage.base.TranslationStore.translate
+translate.storage.placeables.strelem.StringElem.translate
+translate.storage.placeables.terminology.TerminologyPlaceable.translate
+translate.storage.tmx.tmxfile.translate" class="py-name" href="#" onclick="return doclink('link-0', 'translate', 'link-0');">translate</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package translate.storage=translate.storage-module.html"><a title="translate.storage" class="py-name" href="#" onclick="return doclink('link-1', 'storage', 'link-1');">storage</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Package translate.storage.placeables=translate.storage.placeables-module.html,Variable translate.storage.xml_extract.extract.Translatable.placeables=translate.storage.xml_extract.extract.Translatable-class.html#placeables"><a title="translate.storage.placeables
+translate.storage.xml_extract.extract.Translatable.placeables" class="py-name" href="#" onclick="return doclink('link-2', 'placeables', 'link-2');">placeables</a></tt> <tt class="py-keyword">import</tt> <tt id="link-3" class="py-name" targets="Class translate.storage.placeables.strelem.StringElem=translate.storage.placeables.strelem.StringElem-class.html"><a title="translate.storage.placeables.strelem.StringElem" class="py-name" href="#" onclick="return doclink('link-3', 'StringElem', 'link-3');">StringElem</a></tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"><tt id="link-4" class="py-name" targets="Variable translate.lang.data.languages=translate.lang.data-module.html#languages"><a title="translate.lang.data.languages" class="py-name" href="#" onclick="return doclink('link-4', 'languages', 'link-4');">languages</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"><tt class="py-string">'af'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Afrikaans'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"><tt class="py-string">'ak'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Akan'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'n &gt; 1'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt class="py-string">'am'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Amharic'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'n &gt; 1'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"><tt class="py-string">'ar'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Arabic'</tt><tt class="py-op">,</tt> <tt class="py-number">6</tt><tt class="py-op">,</tt> <tt class="py-string">'n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100&gt;=3 &amp;&amp; n%100&lt;=10 ? 3 : n%100&gt;=11 &amp;&amp; n%100&lt;=99 ? 4 : 5'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-string">'arn'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Mapudungun; Mapuche'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'n &gt; 1'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-string">'az'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Azerbaijani'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-string">'be'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Belarusian'</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-string">'n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; n%10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"><tt class="py-string">'bg'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Bulgarian'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"><tt class="py-string">'bn'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Bengali'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"><tt class="py-string">'bn_IN'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Bengali (India)'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"><tt class="py-string">'bo'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Tibetan'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-string">'0'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"><tt class="py-string">'br'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Breton'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'n &gt; 1'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"><tt class="py-string">'bs'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Bosnian'</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-string">'n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; n%10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"><tt class="py-string">'ca'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Catalan; Valencian'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"><tt class="py-string">'cs'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Czech'</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-string">'(n==1) ? 0 : (n&gt;=2 &amp;&amp; n&lt;=4) ? 1 : 2'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"><tt class="py-string">'csb'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Kashubian'</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-string">'n==1 ? 0 : n%10&gt;=2 &amp;&amp; n%10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt class="py-string">'cy'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Welsh'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n==2) ? 1 : 0'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"><tt class="py-string">'da'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Danish'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"><tt class="py-string">'de'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'German'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"><tt class="py-string">'dz'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Dzongkha'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-string">'0'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"><tt class="py-string">'el'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Greek'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"><tt class="py-string">'en'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'English'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"><tt class="py-string">'en_GB'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'English (United Kingdom)'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"><tt class="py-string">'en_ZA'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'English (South Africa)'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"><tt class="py-string">'eo'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Esperanto'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"><tt class="py-string">'es'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Spanish; Castilian'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"><tt class="py-string">'et'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Estonian'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"><tt class="py-string">'eu'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Basque'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"><tt class="py-string">'fa'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Persian'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-string">'0'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"><tt class="py-string">'fi'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Finnish'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"><tt class="py-string">'fil'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Filipino; Pilipino'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n &gt; 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"><tt class="py-string">'fo'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Faroese'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"><tt class="py-string">'fr'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'French'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n &gt; 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"><tt class="py-string">'fur'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Friulian'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"><tt class="py-string">'fy'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Frisian'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"><tt class="py-string">'ga'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Irish'</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-string">'n==1 ? 0 : n==2 ? 1 : 2'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"><tt class="py-string">'gl'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Galician'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"><tt class="py-string">'gu'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Gujarati'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"><tt class="py-string">'gun'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Gun'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n &gt; 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"><tt class="py-string">'ha'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Hausa'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"><tt class="py-string">'he'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Hebrew'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"><tt class="py-string">'hi'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Hindi'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"><tt class="py-string">'hy'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Armenian'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-string">'0'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"><tt class="py-string">'hr'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Croatian'</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-string">'(n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; n%10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"><tt class="py-string">'hu'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Hungarian'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"><tt class="py-string">'id'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Indonesian'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-string">'0'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"><tt class="py-string">'is'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Icelandic'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"><tt class="py-string">'it'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Italian'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"><tt class="py-string">'ja'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Japanese'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-string">'0'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"><tt class="py-string">'jv'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Javanese'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"><tt class="py-string">'ka'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Georgian'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-string">'0'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"><tt class="py-string">'km'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Khmer'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-string">'0'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"><tt class="py-string">'kn'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Kannada'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"><tt class="py-string">'ko'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Korean'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-string">'0'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"><tt class="py-string">'ku'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Kurdish'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"><tt class="py-string">'kw'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Cornish'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'(n==1) ? 0 : (n==2) ? 1 : (n == 3) ? 2 : 3'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"><tt class="py-string">'ky'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Kirghiz; Kyrgyz'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-string">'0'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"><tt class="py-string">'lb'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Luxembourgish; Letzeburgesch'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"><tt class="py-string">'ln'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Lingala'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n &gt; 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"><tt class="py-string">'lo'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Lao'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-string">'0'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"><tt class="py-string">'lt'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Lithuanian'</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-string">'(n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"><tt class="py-string">'lv'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Latvian'</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-string">'(n%10==1 &amp;&amp; n%100!=11 ? 0 : n != 0 ? 1 : 2)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"><tt class="py-string">'mg'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Malagasy'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n &gt; 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"><tt class="py-string">'mi'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Maori'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n &gt; 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"><tt class="py-string">'mk'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Macedonian'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'n==1 || n%10==1 ? 0 : 1'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"><tt class="py-string">'ml'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Malayalam'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"><tt class="py-string">'mn'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Mongolian'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"><tt class="py-string">'mr'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Marathi'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"><tt class="py-string">'ms'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Malay'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-string">'0'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"><tt class="py-string">'mt'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Maltese'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'(n==1 ? 0 : n==0 || ( n%100&gt;1 &amp;&amp; n%100&lt;11) ? 1 : (n%100&gt;10 &amp;&amp; n%100&lt;20 ) ? 2 : 3)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"><tt class="py-string">'nah'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Nahuatl languages'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"><tt class="py-string">'nap'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Neapolitan'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"><tt class="py-string">'nb'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Norwegian Bokmal'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"><tt class="py-string">'ne'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Nepali'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"><tt class="py-string">'nl'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Dutch; Flemish'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"><tt class="py-string">'nn'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Norwegian Nynorsk'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"><tt class="py-string">'nso'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Pedi; Sepedi; Northern Sotho'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n &gt; 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"><tt class="py-string">'or'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Oriya'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"><tt class="py-string">'pa'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Panjabi; Punjabi'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"><tt class="py-string">'pap'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Papiamento'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"><tt class="py-string">'pl'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Polish'</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-string">'(n==1 ? 0 : n%10&gt;=2 &amp;&amp; n%10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"><tt class="py-string">'pms'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Piemontese'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"><tt class="py-string">'ps'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Pushto; Pashto'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"><tt class="py-string">'pt'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Portuguese'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"><tt class="py-string">'pt_BR'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Portuguese (Brazil)'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n &gt; 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"><tt class="py-string">'ro'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Romanian'</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-string">'(n==1 ? 0 : (n==0 || (n%100 &gt; 0 &amp;&amp; n%100 &lt; 20)) ? 1 : 2);'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"><tt class="py-string">'ru'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Russian'</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-string">'(n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; n%10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"><tt class="py-string">'sco'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Scots'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"><tt class="py-string">'sk'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Slovak'</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-string">'(n==1) ? 0 : (n&gt;=2 &amp;&amp; n&lt;=4) ? 1 : 2'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"><tt class="py-string">'sl'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Slovenian'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"><tt class="py-string">'so'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Somali'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"><tt class="py-string">'sq'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Albanian'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"><tt class="py-string">'sr'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Serbian'</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-string">'(n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; n%10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"><tt class="py-string">'st'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Sotho, Southern'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"><tt class="py-string">'su'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Sundanese'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-string">'0'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"><tt class="py-string">'sv'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Swedish'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"><tt class="py-string">'sw'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Swahili'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"><tt class="py-string">'ta'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Tamil'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"><tt class="py-string">'te'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Telugu'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"><tt class="py-string">'tg'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Tajik'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"><tt class="py-string">'ti'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Tigrinya'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n &gt; 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"><tt class="py-string">'th'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Thai'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-string">'0'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"><tt class="py-string">'tk'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Turkmen'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"><tt class="py-string">'tr'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Turkish'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-string">'0'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"><tt class="py-string">'uk'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Ukrainian'</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-string">'(n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; n%10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"><tt class="py-string">'vi'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Vietnamese'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-string">'0'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"><tt class="py-string">'wa'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Walloon'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n &gt; 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"><tt class="py-comment"># Chinese is difficult because the main divide is on script, not really </tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"><tt class="py-comment"># country. Simplified Chinese is used mostly in China, Singapore and Malaysia.</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"><tt class="py-comment"># Traditional Chinese is used mostly in Hong Kong, Taiwan and Macau.</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"><tt class="py-string">'zh_CN'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Chinese (China)'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-string">'0'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"><tt class="py-string">'zh_HK'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Chinese (Hong Kong)'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-string">'0'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"><tt class="py-string">'zh_TW'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Chinese (Taiwan)'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-string">'0'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"><tt class="py-string">'zu'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'Zulu'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'(n != 1)'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"><tt class="py-op">}</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"><tt class="py-string">"""Dictionary of language data.</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"><tt class="py-string">The language code is the dictionary key (which may contain country codes and modifiers).</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"><tt class="py-string">The value is a tuple: (Full name in English, nplurals, plural equation)"""</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> </tt>
+<a name="simplercode"></a><div id="simplercode-def"><a name="L149"></a><tt class="py-lineno">149</tt> <a class="py-toggle" href="#" id="simplercode-toggle" onclick="return toggle('simplercode');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="translate.lang.data-module.html#simplercode">simplercode</a><tt class="py-op">(</tt><tt class="py-param">code</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="simplercode-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="simplercode-expanded"><a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"> <tt class="py-docstring">"""This attempts to simplify the given language code by ignoring country </tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"><tt class="py-docstring"> codes, for example.</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"><tt class="py-docstring"> @see:</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"><tt class="py-docstring"> - U{http://www.rfc-editor.org/rfc/bcp/bcp47.txt}</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"><tt class="py-docstring"> - U{http://www.rfc-editor.org/rfc/rfc4646.txt}</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"><tt class="py-docstring"> - U{http://www.rfc-editor.org/rfc/rfc4647.txt}</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"><tt class="py-docstring"> - U{http://www.w3.org/International/articles/language-tags/}</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-5" class="py-name" targets="Variable translate.lang.common.Common.code=translate.lang.common.Common-class.html#code"><a title="translate.lang.common.Common.code" class="py-name" href="#" onclick="return doclink('link-5', 'code', 'link-5');">code</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-6" class="py-name"><a title="translate.lang.common.Common.code" class="py-name" href="#" onclick="return doclink('link-6', 'code', 'link-5');">code</a></tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"> <tt class="py-name">normalized</tt> <tt class="py-op">=</tt> <tt class="py-name">normalize_code</tt><tt class="py-op">(</tt><tt id="link-7" class="py-name"><a title="translate.lang.common.Common.code" class="py-name" href="#" onclick="return doclink('link-7', 'code', 'link-5');">code</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"> <tt class="py-name">separator</tt> <tt class="py-op">=</tt> <tt class="py-name">normalized</tt><tt class="py-op">.</tt><tt class="py-name">rfind</tt><tt class="py-op">(</tt><tt class="py-string">'-'</tt><tt class="py-op">)</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">separator</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-8" class="py-name"><a title="translate.lang.common.Common.code" class="py-name" href="#" onclick="return doclink('link-8', 'code', 'link-5');">code</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">separator</tt><tt class="py-op">]</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">""</tt> </tt>
+</div><a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"><tt id="link-9" class="py-name" targets="Variable translate.lang.data.expansion_factors=translate.lang.data-module.html#expansion_factors"><a title="translate.lang.data.expansion_factors" class="py-name" href="#" onclick="return doclink('link-9', 'expansion_factors', 'link-9');">expansion_factors</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-string">'af'</tt><tt class="py-op">:</tt> <tt class="py-number">0.1</tt><tt class="py-op">,</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> <tt class="py-string">'ar'</tt><tt class="py-op">:</tt> <tt class="py-op">-</tt><tt class="py-number">0.09</tt><tt class="py-op">,</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> <tt class="py-string">'es'</tt><tt class="py-op">:</tt> <tt class="py-number">0.21</tt><tt class="py-op">,</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-string">'fr'</tt><tt class="py-op">:</tt> <tt class="py-number">0.28</tt><tt class="py-op">,</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt class="py-string">'it'</tt><tt class="py-op">:</tt> <tt class="py-number">0.2</tt><tt class="py-op">,</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"><tt class="py-op">}</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"><tt class="py-string">"""Source to target string length expansion factors."""</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-10" class="py-name" targets="Method translate.misc.xmlwrapper.XMLWrapper.gettext()=translate.misc.xmlwrapper.XMLWrapper-class.html#gettext,Method translate.storage.oo.ooline.gettext()=translate.storage.oo.ooline-class.html#gettext"><a title="translate.misc.xmlwrapper.XMLWrapper.gettext
+translate.storage.oo.ooline.gettext" class="py-name" href="#" onclick="return doclink('link-10', 'gettext', 'link-10');">gettext</a></tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">locale</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">re</tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"><tt id="link-11" class="py-name" targets="Variable translate.lang.data.iso639=translate.lang.data-module.html#iso639"><a title="translate.lang.data.iso639" class="py-name" href="#" onclick="return doclink('link-11', 'iso639', 'link-11');">iso639</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"><tt class="py-string">"""ISO 639 language codes"""</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"><tt id="link-12" class="py-name" targets="Variable translate.lang.data.iso3166=translate.lang.data-module.html#iso3166"><a title="translate.lang.data.iso3166" class="py-name" href="#" onclick="return doclink('link-12', 'iso3166', 'link-12');">iso3166</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"><tt class="py-string">"""ISO 3166 country codes"""</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"><tt id="link-13" class="py-name" targets="Variable translate.lang.data.langcode_re=translate.lang.data-module.html#langcode_re"><a title="translate.lang.data.langcode_re" class="py-name" href="#" onclick="return doclink('link-13', 'langcode_re', 'link-13');">langcode_re</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">"^[a-z]{2,3}([_-][A-Z]{2,3}|)(@[a-zA-Z0-9]+|)$"</tt><tt class="py-op">)</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"><tt id="link-14" class="py-name" targets="Variable translate.lang.data.variant_re=translate.lang.data-module.html#variant_re"><a title="translate.lang.data.variant_re" class="py-name" href="#" onclick="return doclink('link-14', 'variant_re', 'link-14');">variant_re</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">"^[_-][A-Z]{2,3}(@[a-zA-Z0-9]+|)$"</tt><tt class="py-op">)</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> </tt>
+<a name="languagematch"></a><div id="languagematch-def"><a name="L192"></a><tt class="py-lineno">192</tt> <a class="py-toggle" href="#" id="languagematch-toggle" onclick="return toggle('languagematch');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="translate.lang.data-module.html#languagematch">languagematch</a><tt class="py-op">(</tt><tt class="py-param">languagecode</tt><tt class="py-op">,</tt> <tt class="py-param">otherlanguagecode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="languagematch-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="languagematch-expanded"><a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"> <tt class="py-docstring">"""matches a languagecode to another, ignoring regions in the second"""</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">languagecode</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-15" class="py-name"><a title="translate.lang.data.langcode_re" class="py-name" href="#" onclick="return doclink('link-15', 'langcode_re', 'link-13');">langcode_re</a></tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Module translate.search.match=translate.search.match-module.html"><a title="translate.search.match" class="py-name" href="#" onclick="return doclink('link-16', 'match', 'link-16');">match</a></tt><tt class="py-op">(</tt><tt class="py-name">otherlanguagecode</tt><tt class="py-op">)</tt> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">languagecode</tt> <tt class="py-op">==</tt> <tt class="py-name">otherlanguagecode</tt> <tt class="py-keyword">or</tt> \ </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">otherlanguagecode</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-name">languagecode</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt id="link-17" class="py-name"><a title="translate.lang.data.variant_re" class="py-name" href="#" onclick="return doclink('link-17', 'variant_re', 'link-14');">variant_re</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="translate.search.match" class="py-name" href="#" onclick="return doclink('link-18', 'match', 'link-16');">match</a></tt><tt class="py-op">(</tt><tt class="py-name">otherlanguagecode</tt><tt class="py-op">[</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">languagecode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"><tt id="link-19" class="py-name" targets="Variable translate.lang.data.dialect_name_re=translate.lang.data-module.html#dialect_name_re"><a title="translate.lang.data.dialect_name_re" class="py-name" href="#" onclick="return doclink('link-19', 'dialect_name_re', 'link-19');">dialect_name_re</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r"(.+)\s\(([^)]+)\)$"</tt><tt class="py-op">)</tt> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"> </tt>
+<a name="tr_lang"></a><div id="tr_lang-def"><a name="L201"></a><tt class="py-lineno">201</tt> <a class="py-toggle" href="#" id="tr_lang-toggle" onclick="return toggle('tr_lang');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="translate.lang.data-module.html#tr_lang">tr_lang</a><tt class="py-op">(</tt><tt class="py-param">langcode</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="tr_lang-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="tr_lang-expanded"><a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> <tt class="py-docstring">"""Gives a function that can translate a language name, even in the form C{"language (country)"},</tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"><tt class="py-docstring"> into the language with iso code langcode, or the system language if no language is specified."""</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"> <tt class="py-name">langfunc</tt> <tt class="py-op">=</tt> <tt class="py-name">gettext_lang</tt><tt class="py-op">(</tt><tt class="py-name">langcode</tt><tt class="py-op">)</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"> <tt class="py-name">countryfunc</tt> <tt class="py-op">=</tt> <tt class="py-name">gettext_country</tt><tt class="py-op">(</tt><tt class="py-name">langcode</tt><tt class="py-op">)</tt> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">handlelanguage</tt><tt class="py-op">(</tt><tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"> <tt id="link-20" class="py-name"><a title="translate.search.match" class="py-name" href="#" onclick="return doclink('link-20', 'match', 'link-16');">match</a></tt> <tt class="py-op">=</tt> <tt id="link-21" class="py-name"><a title="translate.lang.data.dialect_name_re" class="py-name" href="#" onclick="return doclink('link-21', 'dialect_name_re', 'link-19');">dialect_name_re</a></tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="translate.search.match" class="py-name" href="#" onclick="return doclink('link-22', 'match', 'link-16');">match</a></tt><tt class="py-op">(</tt><tt id="link-23" class="py-name" targets="Variable translate.misc.ini.LineContainer.name=translate.misc.ini.LineContainer-class.html#name,Variable translate.misc.typecheck.And.name=translate.misc.typecheck.And-class.html#name,Variable translate.misc.typecheck.Any.name=translate.misc.typecheck.Any-class.html#name,Variable translate.misc.typecheck.Dict.name=translate.misc.typecheck.Dict-class.html#name,Variable translate.misc.typecheck.Empty.name=translate.misc.typecheck.Empty-class.html#name,Variable translate.misc.typecheck.List.name=translate.misc.typecheck.List-class.html#name,Variable translate.misc.typecheck.Not.name=translate.misc.typecheck.Not-class.html#name,Variable translate.misc.typecheck.Or.name=translate.misc.typecheck.Or-class.html#name,Variable translate.misc.typecheck.Single.name=translate.misc.typecheck.Single-class.html#name,Variable translate.misc.typecheck.Tuple.name=translate.misc.typecheck.Tuple-class.html#name,Variable translate.misc.typecheck.Xor.name=translate.misc.typecheck.Xor-class.html#name,Method translate.storage.xml_name.XmlNamer.name()=translate.storage.xml_name.XmlNamer-class.html#name,Method translate.storage.xml_name.XmlNamespace.name()=translate.storage.xml_name.XmlNamespace-class.html#name"><a title="translate.misc.ini.LineContainer.name
+translate.misc.typecheck.And.name
+translate.misc.typecheck.Any.name
+translate.misc.typecheck.Dict.name
+translate.misc.typecheck.Empty.name
+translate.misc.typecheck.List.name
+translate.misc.typecheck.Not.name
+translate.misc.typecheck.Or.name
+translate.misc.typecheck.Single.name
+translate.misc.typecheck.Tuple.name
+translate.misc.typecheck.Xor.name
+translate.storage.xml_name.XmlNamer.name
+translate.storage.xml_name.XmlNamespace.name" class="py-name" href="#" onclick="return doclink('link-23', 'name', 'link-23');">name</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-24" class="py-name"><a title="translate.search.match" class="py-name" href="#" onclick="return doclink('link-24', 'match', 'link-16');">match</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt> <tt class="py-line"> <tt class="py-name">language</tt><tt class="py-op">,</tt> <tt class="py-name">country</tt> <tt class="py-op">=</tt> <tt id="link-25" class="py-name"><a title="translate.search.match" class="py-name" href="#" onclick="return doclink('link-25', 'match', 'link-16');">match</a></tt><tt class="py-op">.</tt><tt class="py-name">groups</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">u"%s (%s)"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">langfunc</tt><tt class="py-op">(</tt><tt class="py-name">language</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">countryfunc</tt><tt class="py-op">(</tt><tt class="py-name">country</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">langfunc</tt><tt class="py-op">(</tt><tt id="link-26" class="py-name"><a title="translate.misc.ini.LineContainer.name
+translate.misc.typecheck.And.name
+translate.misc.typecheck.Any.name
+translate.misc.typecheck.Dict.name
+translate.misc.typecheck.Empty.name
+translate.misc.typecheck.List.name
+translate.misc.typecheck.Not.name
+translate.misc.typecheck.Or.name
+translate.misc.typecheck.Single.name
+translate.misc.typecheck.Tuple.name
+translate.misc.typecheck.Xor.name
+translate.storage.xml_name.XmlNamer.name
+translate.storage.xml_name.XmlNamespace.name" class="py-name" href="#" onclick="return doclink('link-26', 'name', 'link-23');">name</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">handlelanguage</tt> </tt>
+</div><a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"> </tt>
+<a name="gettext_lang"></a><div id="gettext_lang-def"><a name="L217"></a><tt class="py-lineno">217</tt> <a class="py-toggle" href="#" id="gettext_lang-toggle" onclick="return toggle('gettext_lang');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="translate.lang.data-module.html#gettext_lang">gettext_lang</a><tt class="py-op">(</tt><tt class="py-param">langcode</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="gettext_lang-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="gettext_lang-expanded"><a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"> <tt class="py-docstring">"""Returns a gettext function to translate language names into the given</tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"><tt class="py-docstring"> language, or the system language if no language is specified."""</tt> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">langcode</tt> <tt class="py-keyword">in</tt> <tt id="link-27" class="py-name"><a title="translate.lang.data.iso639" class="py-name" href="#" onclick="return doclink('link-27', 'iso639', 'link-11');">iso639</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">langcode</tt><tt class="py-op">:</tt> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-name">langcode</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name"><a title="translate.misc.ini.LineContainer.name
+translate.misc.typecheck.And.name
+translate.misc.typecheck.Any.name
+translate.misc.typecheck.Dict.name
+translate.misc.typecheck.Empty.name
+translate.misc.typecheck.List.name
+translate.misc.typecheck.Not.name
+translate.misc.typecheck.Or.name
+translate.misc.typecheck.Single.name
+translate.misc.typecheck.Tuple.name
+translate.misc.typecheck.Xor.name
+translate.storage.xml_name.XmlNamer.name
+translate.storage.xml_name.XmlNamespace.name" class="py-name" href="#" onclick="return doclink('link-28', 'name', 'link-23');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"nt"</tt><tt class="py-op">:</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> <tt class="py-comment"># On Windows the default locale is not used for some reason</tt> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-29" class="py-name"><a title="translate.misc.xmlwrapper.XMLWrapper.gettext
+translate.storage.oo.ooline.gettext" class="py-name" href="#" onclick="return doclink('link-29', 'gettext', 'link-10');">gettext</a></tt><tt class="py-op">.</tt><tt class="py-name">translation</tt><tt class="py-op">(</tt><tt class="py-string">'iso_639'</tt><tt class="py-op">,</tt> <tt id="link-30" class="py-name"><a title="translate.lang.data.languages" class="py-name" href="#" onclick="return doclink('link-30', 'languages', 'link-4');">languages</a></tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-name">locale</tt><tt class="py-op">.</tt><tt class="py-name">getdefaultlocale</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">fallback</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-31" class="py-name"><a title="translate.misc.xmlwrapper.XMLWrapper.gettext
+translate.storage.oo.ooline.gettext" class="py-name" href="#" onclick="return doclink('link-31', 'gettext', 'link-10');">gettext</a></tt><tt class="py-op">.</tt><tt class="py-name">translation</tt><tt class="py-op">(</tt><tt class="py-string">'iso_639'</tt><tt class="py-op">,</tt> <tt class="py-name">fallback</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-32" class="py-name"><a title="translate.misc.xmlwrapper.XMLWrapper.gettext
+translate.storage.oo.ooline.gettext" class="py-name" href="#" onclick="return doclink('link-32', 'gettext', 'link-10');">gettext</a></tt><tt class="py-op">.</tt><tt class="py-name">translation</tt><tt class="py-op">(</tt><tt class="py-string">'iso_639'</tt><tt class="py-op">,</tt> <tt id="link-33" class="py-name"><a title="translate.lang.data.languages" class="py-name" href="#" onclick="return doclink('link-33', 'languages', 'link-4');">languages</a></tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-name">langcode</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">fallback</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"> <tt id="link-34" class="py-name"><a title="translate.lang.data.iso639" class="py-name" href="#" onclick="return doclink('link-34', 'iso639', 'link-11');">iso639</a></tt><tt class="py-op">[</tt><tt class="py-name">langcode</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt class="py-name">ugettext</tt> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-35" class="py-name"><a title="translate.lang.data.iso639" class="py-name" href="#" onclick="return doclink('link-35', 'iso639', 'link-11');">iso639</a></tt><tt class="py-op">[</tt><tt class="py-name">langcode</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"> </tt>
+<a name="gettext_country"></a><div id="gettext_country-def"><a name="L233"></a><tt class="py-lineno">233</tt> <a class="py-toggle" href="#" id="gettext_country-toggle" onclick="return toggle('gettext_country');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="translate.lang.data-module.html#gettext_country">gettext_country</a><tt class="py-op">(</tt><tt class="py-param">langcode</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="gettext_country-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="gettext_country-expanded"><a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"> <tt class="py-docstring">"""Returns a gettext function to translate country names into the given</tt> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"><tt class="py-docstring"> language, or the system language if no language is specified."""</tt> </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">langcode</tt> <tt class="py-keyword">in</tt> <tt id="link-36" class="py-name"><a title="translate.lang.data.iso3166" class="py-name" href="#" onclick="return doclink('link-36', 'iso3166', 'link-12');">iso3166</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">langcode</tt><tt class="py-op">:</tt> </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"> <tt class="py-name">langcode</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt> </tt>
+<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="translate.misc.ini.LineContainer.name
+translate.misc.typecheck.And.name
+translate.misc.typecheck.Any.name
+translate.misc.typecheck.Dict.name
+translate.misc.typecheck.Empty.name
+translate.misc.typecheck.List.name
+translate.misc.typecheck.Not.name
+translate.misc.typecheck.Or.name
+translate.misc.typecheck.Single.name
+translate.misc.typecheck.Tuple.name
+translate.misc.typecheck.Xor.name
+translate.storage.xml_name.XmlNamer.name
+translate.storage.xml_name.XmlNamespace.name" class="py-name" href="#" onclick="return doclink('link-37', 'name', 'link-23');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"nt"</tt><tt class="py-op">:</tt> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"> <tt class="py-comment"># On Windows the default locale is not used for some reason</tt> </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-38" class="py-name"><a title="translate.misc.xmlwrapper.XMLWrapper.gettext
+translate.storage.oo.ooline.gettext" class="py-name" href="#" onclick="return doclink('link-38', 'gettext', 'link-10');">gettext</a></tt><tt class="py-op">.</tt><tt class="py-name">translation</tt><tt class="py-op">(</tt><tt class="py-string">'iso_3166'</tt><tt class="py-op">,</tt> <tt id="link-39" class="py-name"><a title="translate.lang.data.languages" class="py-name" href="#" onclick="return doclink('link-39', 'languages', 'link-4');">languages</a></tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-name">locale</tt><tt class="py-op">.</tt><tt class="py-name">getdefaultlocale</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">fallback</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-40" class="py-name"><a title="translate.misc.xmlwrapper.XMLWrapper.gettext
+translate.storage.oo.ooline.gettext" class="py-name" href="#" onclick="return doclink('link-40', 'gettext', 'link-10');">gettext</a></tt><tt class="py-op">.</tt><tt class="py-name">translation</tt><tt class="py-op">(</tt><tt class="py-string">'iso_3166'</tt><tt class="py-op">,</tt> <tt class="py-name">fallback</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-41" class="py-name"><a title="translate.misc.xmlwrapper.XMLWrapper.gettext
+translate.storage.oo.ooline.gettext" class="py-name" href="#" onclick="return doclink('link-41', 'gettext', 'link-10');">gettext</a></tt><tt class="py-op">.</tt><tt class="py-name">translation</tt><tt class="py-op">(</tt><tt class="py-string">'iso_3166'</tt><tt class="py-op">,</tt> <tt id="link-42" class="py-name"><a title="translate.lang.data.languages" class="py-name" href="#" onclick="return doclink('link-42', 'languages', 'link-4');">languages</a></tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-name">langcode</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">fallback</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"> <tt id="link-43" class="py-name"><a title="translate.lang.data.iso3166" class="py-name" href="#" onclick="return doclink('link-43', 'iso3166', 'link-12');">iso3166</a></tt><tt class="py-op">[</tt><tt class="py-name">langcode</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt class="py-name">ugettext</tt> </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-44" class="py-name"><a title="translate.lang.data.iso3166" class="py-name" href="#" onclick="return doclink('link-44', 'iso3166', 'link-12');">iso3166</a></tt><tt class="py-op">[</tt><tt class="py-name">langcode</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"> </tt>
+<a name="normalize"></a><div id="normalize-def"><a name="L249"></a><tt class="py-lineno">249</tt> <a class="py-toggle" href="#" id="normalize-toggle" onclick="return toggle('normalize');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="translate.lang.data-module.html#normalize">normalize</a><tt class="py-op">(</tt><tt class="py-param">string</tt><tt class="py-op">,</tt> <tt class="py-param">normal_form</tt><tt class="py-op">=</tt><tt class="py-string">"NFC"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="normalize-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="normalize-expanded"><a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"> <tt class="py-docstring">"""Return a unicode string in its normalized form</tt> </tt>
+<a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"><tt class="py-docstring"> @param string: The string to be normalized</tt> </tt>
+<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"><tt class="py-docstring"> @param normal_form: NFC (default), NFD, NFCK, NFDK</tt> </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"><tt class="py-docstring"> @return: Normalized string</tt> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">string</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">unicodedata</tt><tt class="py-op">.</tt><tt class="py-name">normalize</tt><tt class="py-op">(</tt><tt class="py-name">normal_form</tt><tt class="py-op">,</tt> <tt class="py-name">string</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"> </tt>
+<a name="forceunicode"></a><div id="forceunicode-def"><a name="L261"></a><tt class="py-lineno">261</tt> <a class="py-toggle" href="#" id="forceunicode-toggle" onclick="return toggle('forceunicode');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="translate.lang.data-module.html#forceunicode">forceunicode</a><tt class="py-op">(</tt><tt class="py-param">string</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="forceunicode-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="forceunicode-expanded"><a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"> <tt class="py-docstring">"""Ensures that the string is in unicode.</tt> </tt>
+<a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"><tt class="py-docstring"> @param string: A text string</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"><tt class="py-docstring"> @type string: Unicode, String</tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"><tt class="py-docstring"> @return: String converted to Unicode and normalized as needed.</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: Unicode</tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">string</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">string</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"> <tt class="py-name">encoding</tt> <tt class="py-op">=</tt> <tt id="link-45" class="py-name" targets="Method translate.misc.xmlwrapper.XMLWrapper.getattr()=translate.misc.xmlwrapper.XMLWrapper-class.html#getattr"><a title="translate.misc.xmlwrapper.XMLWrapper.getattr" class="py-name" href="#" onclick="return doclink('link-45', 'getattr', 'link-45');">getattr</a></tt><tt class="py-op">(</tt><tt class="py-name">string</tt><tt class="py-op">,</tt> <tt class="py-string">"encoding"</tt><tt class="py-op">,</tt> <tt class="py-string">"utf-8"</tt><tt class="py-op">)</tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"> <tt class="py-name">string</tt> <tt class="py-op">=</tt> <tt class="py-name">string</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name" targets="Method translate.storage.poparser.ParseState.decode()=translate.storage.poparser.ParseState-class.html#decode,Method translate.storage.pypo.pofile.decode()=translate.storage.pypo.pofile-class.html#decode"><a title="translate.storage.poparser.ParseState.decode
+translate.storage.pypo.pofile.decode" class="py-name" href="#" onclick="return doclink('link-46', 'decode', 'link-46');">decode</a></tt><tt class="py-op">(</tt><tt class="py-name">encoding</tt><tt class="py-op">)</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">string</tt><tt class="py-op">,</tt> <tt id="link-47" class="py-name"><a title="translate.storage.placeables.strelem.StringElem" class="py-name" href="#" onclick="return doclink('link-47', 'StringElem', 'link-3');">StringElem</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"> <tt class="py-name">string</tt> <tt class="py-op">=</tt> <tt class="py-name">unicode</tt><tt class="py-op">(</tt><tt class="py-name">string</tt><tt class="py-op">)</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">string</tt> </tt>
+</div><a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"> </tt>
+<a name="normalized_unicode"></a><div id="normalized_unicode-def"><a name="L278"></a><tt class="py-lineno">278</tt> <a class="py-toggle" href="#" id="normalized_unicode-toggle" onclick="return toggle('normalized_unicode');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="translate.lang.data-module.html#normalized_unicode">normalized_unicode</a><tt class="py-op">(</tt><tt class="py-param">string</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="normalized_unicode-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="normalized_unicode-expanded"><a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"> <tt class="py-docstring">"""Forces the string to unicode and does normalization."""</tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">normalize</tt><tt class="py-op">(</tt><tt class="py-name">forceunicode</tt><tt class="py-op">(</tt><tt class="py-name">string</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"> </tt>
+<a name="normalize_code"></a><div id="normalize_code-def"><a name="L282"></a><tt class="py-lineno">282</tt> <a class="py-toggle" href="#" id="normalize_code-toggle" onclick="return toggle('normalize_code');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="translate.lang.data-module.html#normalize_code">normalize_code</a><tt class="py-op">(</tt><tt class="py-param">code</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="normalize_code-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="normalize_code-expanded"><a name="L283"></a><tt class="py-lineno">283</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-48" class="py-name"><a title="translate.lang.common.Common.code" class="py-name" href="#" onclick="return doclink('link-48', 'code', 'link-5');">code</a></tt><tt class="py-op">.</tt><tt id="link-49" class="py-name" targets="Method translate.misc.multistring.multistring.replace()=translate.misc.multistring.multistring-class.html#replace"><a title="translate.misc.multistring.multistring.replace" class="py-name" href="#" onclick="return doclink('link-49', 'replace', 'link-49');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"_"</tt><tt class="py-op">,</tt> <tt class="py-string">"-"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="translate.misc.multistring.multistring.replace" class="py-name" href="#" onclick="return doclink('link-50', 'replace', 'link-49');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"@"</tt><tt class="py-op">,</tt> <tt class="py-string">"-"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"> </tt>
+<a name="simplify_to_common"></a><div id="simplify_to_common-def"><a name="L285"></a><tt class="py-lineno">285</tt> <a class="py-toggle" href="#" id="simplify_to_common-toggle" onclick="return toggle('simplify_to_common');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="translate.lang.data-module.html#simplify_to_common">simplify_to_common</a><tt class="py-op">(</tt><tt class="py-param">language_code</tt><tt class="py-op">,</tt> <tt class="py-param">languages</tt><tt class="py-op">=</tt><tt id="link-51" class="py-name"><a title="translate.lang.data.languages" class="py-name" href="#" onclick="return doclink('link-51', 'languages', 'link-4');">languages</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="simplify_to_common-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="simplify_to_common-expanded"><a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"> <tt class="py-docstring">"""Simplify language code to the most commonly used form for the</tt> </tt>
+<a name="L287"></a><tt class="py-lineno">287</tt> <tt class="py-line"><tt class="py-docstring"> language, stripping country information for languages that tend</tt> </tt>
+<a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"><tt class="py-docstring"> not to be localized differently for different countries"""</tt> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"> <tt class="py-name">simpler</tt> <tt class="py-op">=</tt> <tt class="py-name">simplercode</tt><tt class="py-op">(</tt><tt class="py-name">language_code</tt><tt class="py-op">)</tt> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">normalize_code</tt><tt class="py-op">(</tt><tt class="py-name">language_code</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-name">normalize_code</tt><tt class="py-op">(</tt><tt id="link-52" class="py-name" targets="Variable translate.lang.poedit.key=translate.lang.poedit-module.html#key"><a title="translate.lang.poedit.key" class="py-name" href="#" onclick="return doclink('link-52', 'key', 'link-52');">key</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt id="link-53" class="py-name"><a title="translate.lang.poedit.key" class="py-name" href="#" onclick="return doclink('link-53', 'key', 'link-52');">key</a></tt> <tt class="py-keyword">in</tt> <tt id="link-54" class="py-name"><a title="translate.lang.data.languages" class="py-name" href="#" onclick="return doclink('link-54', 'languages', 'link-4');">languages</a></tt><tt class="py-op">.</tt><tt id="link-55" class="py-name" targets="Method translate.misc.dictutils.ordereddict.keys()=translate.misc.dictutils.ordereddict-class.html#keys,Variable translate.storage.statsdb.FileTotals.keys=translate.storage.statsdb.FileTotals-class.html#keys"><a title="translate.misc.dictutils.ordereddict.keys
+translate.storage.statsdb.FileTotals.keys" class="py-name" href="#" onclick="return doclink('link-55', 'keys', 'link-55');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> <tt class="py-keyword">or</tt> <tt class="py-name">simpler</tt> <tt class="py-op">==</tt> <tt class="py-string">""</tt><tt class="py-op">:</tt> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">language_code</tt> </tt>
+<a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">simplify_to_common</tt><tt class="py-op">(</tt><tt class="py-name">simpler</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="translate-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Tree link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Index link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Help link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ ><a class="navbar" target="_top" href="http://translate.sourceforge.net/wiki/toolkit/index">Translate Toolkit</a></th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Wed Nov 25 17:19:21 2009
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>