~ubuntu-branches/ubuntu/saucy/pylons/saucy

« back to all changes in this revision

Viewing changes to tests/html_coverage/pylons.i18n.translation.html

  • Committer: Bazaar Package Importer
  • Author(s): Piotr Ożarowski
  • Date: 2010-05-29 17:39:23 UTC
  • mfrom: (1.2.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20100529173923-j5qm6pagtmr13myx
Tags: 0.10-1
* New upstream release
  - python-routes minimum version bumped to 1.12

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
</style>
15
15
<div class="stats">
16
16
Covered: 27 lines<br/>
17
 
Missed: 115 lines<br/>
18
 
Skipped 56 lines<br/>
19
 
Percent: 19 %<br/>
 
17
Missed: 117 lines<br/>
 
18
Skipped 57 lines<br/>
 
19
Percent: 18 %<br/>
20
20
 
21
21
</div>
22
22
<div class="coverage">
66
66
<div class="nocov"><span class="num"><pre> 44</pre></span><pre>    def __mod__(self, other):</pre></div>
67
67
<div class="nocov"><span class="num"><pre> 45</pre></span><pre>        return self.eval() % other</pre></div>
68
68
<div class="skip"><span class="num"><pre> 46</pre></span><pre></pre></div>
69
 
<div class="skip"><span class="num"><pre> 47</pre></span><pre></pre></div>
70
 
<div class="nocov"><span class="num"><pre> 48</pre></span><pre>def lazify(func):</pre></div>
71
 
<div class="nocov"><span class="num"><pre> 49</pre></span><pre>    &quot;&quot;&quot;Decorator to return a lazy-evaluated version of the original&quot;&quot;&quot;</pre></div>
72
 
<div class="nocov"><span class="num"><pre> 50</pre></span><pre>    def newfunc(*args, **kwargs):</pre></div>
73
 
<div class="nocov"><span class="num"><pre> 51</pre></span><pre>        return LazyString(func, *args, **kwargs)</pre></div>
74
 
<div class="nocov"><span class="num"><pre> 52</pre></span><pre>    newfunc.__name__ = 'lazy_%s' % func.__name__</pre></div>
75
 
<div class="nocov"><span class="num"><pre> 53</pre></span><pre>    newfunc.__doc__ = 'Lazy-evaluated version of the %s function\n\n%s' % \</pre></div>
76
 
<div class="nocov"><span class="num"><pre> 54</pre></span><pre>        (func.__name__, func.__doc__)</pre></div>
77
 
<div class="nocov"><span class="num"><pre> 55</pre></span><pre>    return newfunc</pre></div>
78
 
<div class="skip"><span class="num"><pre> 56</pre></span><pre></pre></div>
79
 
<div class="skip"><span class="num"><pre> 57</pre></span><pre></pre></div>
80
 
<div class="nocov"><span class="num"><pre> 58</pre></span><pre>def gettext_noop(value):</pre></div>
81
 
<div class="nocov"><span class="num"><pre> 59</pre></span><pre>    &quot;&quot;&quot;Mark a string for translation without translating it. Returns</pre></div>
82
 
<div class="nocov"><span class="num"><pre> 60</pre></span><pre>    value.</pre></div>
83
 
<div class="skip"><span class="num"><pre> 61</pre></span><pre></pre></div>
84
 
<div class="nocov"><span class="num"><pre> 62</pre></span><pre>    Used for global strings, e.g.::</pre></div>
85
 
<div class="skip"><span class="num"><pre> 63</pre></span><pre></pre></div>
86
 
<div class="nocov"><span class="num"><pre> 64</pre></span><pre>        foo = N_('Hello')</pre></div>
87
 
<div class="skip"><span class="num"><pre> 65</pre></span><pre></pre></div>
88
 
<div class="nocov"><span class="num"><pre> 66</pre></span><pre>        class Bar:</pre></div>
89
 
<div class="nocov"><span class="num"><pre> 67</pre></span><pre>            def __init__(self):</pre></div>
90
 
<div class="nocov"><span class="num"><pre> 68</pre></span><pre>                self.local_foo = _(foo)</pre></div>
91
 
<div class="skip"><span class="num"><pre> 69</pre></span><pre></pre></div>
92
 
<div class="nocov"><span class="num"><pre> 70</pre></span><pre>        h.set_lang('fr')</pre></div>
93
 
<div class="nocov"><span class="num"><pre> 71</pre></span><pre>        assert Bar().local_foo == 'Bonjour'</pre></div>
94
 
<div class="nocov"><span class="num"><pre> 72</pre></span><pre>        h.set_lang('es')</pre></div>
95
 
<div class="nocov"><span class="num"><pre> 73</pre></span><pre>        assert Bar().local_foo == 'Hola'</pre></div>
96
 
<div class="nocov"><span class="num"><pre> 74</pre></span><pre>        assert foo == 'Hello'</pre></div>
97
 
<div class="skip"><span class="num"><pre> 75</pre></span><pre></pre></div>
98
 
<div class="nocov"><span class="num"><pre> 76</pre></span><pre>    &quot;&quot;&quot;</pre></div>
99
 
<div class="nocov"><span class="num"><pre> 77</pre></span><pre>    return value</pre></div>
100
 
<div class="nocov"><span class="num"><pre> 78</pre></span><pre>N_ = gettext_noop</pre></div>
101
 
<div class="skip"><span class="num"><pre> 79</pre></span><pre></pre></div>
102
 
<div class="skip"><span class="num"><pre> 80</pre></span><pre></pre></div>
103
 
<div class="nocov"><span class="num"><pre> 81</pre></span><pre>def gettext(value):</pre></div>
104
 
<div class="nocov"><span class="num"><pre> 82</pre></span><pre>    &quot;&quot;&quot;Mark a string for translation. Returns the localized string of</pre></div>
105
 
<div class="nocov"><span class="num"><pre> 83</pre></span><pre>    value.</pre></div>
106
 
<div class="skip"><span class="num"><pre> 84</pre></span><pre></pre></div>
107
 
<div class="nocov"><span class="num"><pre> 85</pre></span><pre>    Mark a string to be localized as follows::</pre></div>
108
 
<div class="skip"><span class="num"><pre> 86</pre></span><pre></pre></div>
109
 
<div class="nocov"><span class="num"><pre> 87</pre></span><pre>        gettext('This should be in lots of languages')</pre></div>
110
 
<div class="skip"><span class="num"><pre> 88</pre></span><pre></pre></div>
111
 
<div class="nocov"><span class="num"><pre> 89</pre></span><pre>    &quot;&quot;&quot;</pre></div>
112
 
<div class="nocov"><span class="num"><pre> 90</pre></span><pre>    return pylons.translator.gettext(value)</pre></div>
113
 
<div class="nocov"><span class="num"><pre> 91</pre></span><pre>lazy_gettext = lazify(gettext)</pre></div>
114
 
<div class="skip"><span class="num"><pre> 92</pre></span><pre></pre></div>
115
 
<div class="skip"><span class="num"><pre> 93</pre></span><pre></pre></div>
116
 
<div class="nocov"><span class="num"><pre> 94</pre></span><pre>def ugettext(value):</pre></div>
117
 
<div class="nocov"><span class="num"><pre> 95</pre></span><pre>    &quot;&quot;&quot;Mark a string for translation. Returns the localized unicode</pre></div>
118
 
<div class="nocov"><span class="num"><pre> 96</pre></span><pre>    string of value.</pre></div>
119
 
<div class="skip"><span class="num"><pre> 97</pre></span><pre></pre></div>
120
 
<div class="nocov"><span class="num"><pre> 98</pre></span><pre>    Mark a string to be localized as follows::</pre></div>
121
 
<div class="skip"><span class="num"><pre> 99</pre></span><pre></pre></div>
122
 
<div class="nocov"><span class="num"><pre>100</pre></span><pre>        _('This should be in lots of languages')</pre></div>
123
 
<div class="skip"><span class="num"><pre>101</pre></span><pre>    </pre></div>
124
 
<div class="nocov"><span class="num"><pre>102</pre></span><pre>    &quot;&quot;&quot;</pre></div>
125
 
<div class="cov"><span class="num"><pre>103</pre></span><pre>    return pylons.translator.ugettext(value)</pre></div>
126
 
<div class="nocov"><span class="num"><pre>104</pre></span><pre>_ = ugettext</pre></div>
127
 
<div class="nocov"><span class="num"><pre>105</pre></span><pre>lazy_ugettext = lazify(ugettext)</pre></div>
128
 
<div class="skip"><span class="num"><pre>106</pre></span><pre></pre></div>
129
 
<div class="skip"><span class="num"><pre>107</pre></span><pre></pre></div>
130
 
<div class="nocov"><span class="num"><pre>108</pre></span><pre>def ngettext(singular, plural, n):</pre></div>
131
 
<div class="nocov"><span class="num"><pre>109</pre></span><pre>    &quot;&quot;&quot;Mark a string for translation. Returns the localized string of</pre></div>
132
 
<div class="nocov"><span class="num"><pre>110</pre></span><pre>    the pluralized value.</pre></div>
133
 
<div class="skip"><span class="num"><pre>111</pre></span><pre></pre></div>
134
 
<div class="nocov"><span class="num"><pre>112</pre></span><pre>    This does a plural-forms lookup of a message id. ``singular`` is</pre></div>
135
 
<div class="nocov"><span class="num"><pre>113</pre></span><pre>    used as the message id for purposes of lookup in the catalog, while</pre></div>
136
 
<div class="nocov"><span class="num"><pre>114</pre></span><pre>    ``n`` is used to determine which plural form to use. The returned</pre></div>
137
 
<div class="nocov"><span class="num"><pre>115</pre></span><pre>    message is a string.</pre></div>
138
 
<div class="skip"><span class="num"><pre>116</pre></span><pre></pre></div>
139
 
<div class="nocov"><span class="num"><pre>117</pre></span><pre>    Mark a string to be localized as follows::</pre></div>
140
 
<div class="skip"><span class="num"><pre>118</pre></span><pre></pre></div>
141
 
<div class="nocov"><span class="num"><pre>119</pre></span><pre>        ngettext('There is %(num)d file here', 'There are %(num)d files here',</pre></div>
142
 
<div class="nocov"><span class="num"><pre>120</pre></span><pre>                 n) % {'num': n}</pre></div>
 
69
<div class="nocov"><span class="num"><pre> 47</pre></span><pre>    def format(self, other):</pre></div>
 
70
<div class="nocov"><span class="num"><pre> 48</pre></span><pre>        return self.eval().format(other)</pre></div>
 
71
<div class="skip"><span class="num"><pre> 49</pre></span><pre></pre></div>
 
72
<div class="skip"><span class="num"><pre> 50</pre></span><pre></pre></div>
 
73
<div class="nocov"><span class="num"><pre> 51</pre></span><pre>def lazify(func):</pre></div>
 
74
<div class="nocov"><span class="num"><pre> 52</pre></span><pre>    &quot;&quot;&quot;Decorator to return a lazy-evaluated version of the original&quot;&quot;&quot;</pre></div>
 
75
<div class="nocov"><span class="num"><pre> 53</pre></span><pre>    def newfunc(*args, **kwargs):</pre></div>
 
76
<div class="nocov"><span class="num"><pre> 54</pre></span><pre>        return LazyString(func, *args, **kwargs)</pre></div>
 
77
<div class="nocov"><span class="num"><pre> 55</pre></span><pre>    newfunc.__name__ = 'lazy_%s' % func.__name__</pre></div>
 
78
<div class="nocov"><span class="num"><pre> 56</pre></span><pre>    newfunc.__doc__ = 'Lazy-evaluated version of the %s function\n\n%s' % \</pre></div>
 
79
<div class="nocov"><span class="num"><pre> 57</pre></span><pre>        (func.__name__, func.__doc__)</pre></div>
 
80
<div class="nocov"><span class="num"><pre> 58</pre></span><pre>    return newfunc</pre></div>
 
81
<div class="skip"><span class="num"><pre> 59</pre></span><pre></pre></div>
 
82
<div class="skip"><span class="num"><pre> 60</pre></span><pre></pre></div>
 
83
<div class="nocov"><span class="num"><pre> 61</pre></span><pre>def gettext_noop(value):</pre></div>
 
84
<div class="nocov"><span class="num"><pre> 62</pre></span><pre>    &quot;&quot;&quot;Mark a string for translation without translating it. Returns</pre></div>
 
85
<div class="nocov"><span class="num"><pre> 63</pre></span><pre>    value.</pre></div>
 
86
<div class="skip"><span class="num"><pre> 64</pre></span><pre></pre></div>
 
87
<div class="nocov"><span class="num"><pre> 65</pre></span><pre>    Used for global strings, e.g.::</pre></div>
 
88
<div class="skip"><span class="num"><pre> 66</pre></span><pre></pre></div>
 
89
<div class="nocov"><span class="num"><pre> 67</pre></span><pre>        foo = N_('Hello')</pre></div>
 
90
<div class="skip"><span class="num"><pre> 68</pre></span><pre></pre></div>
 
91
<div class="nocov"><span class="num"><pre> 69</pre></span><pre>        class Bar:</pre></div>
 
92
<div class="nocov"><span class="num"><pre> 70</pre></span><pre>            def __init__(self):</pre></div>
 
93
<div class="nocov"><span class="num"><pre> 71</pre></span><pre>                self.local_foo = _(foo)</pre></div>
 
94
<div class="skip"><span class="num"><pre> 72</pre></span><pre></pre></div>
 
95
<div class="nocov"><span class="num"><pre> 73</pre></span><pre>        h.set_lang('fr')</pre></div>
 
96
<div class="nocov"><span class="num"><pre> 74</pre></span><pre>        assert Bar().local_foo == 'Bonjour'</pre></div>
 
97
<div class="nocov"><span class="num"><pre> 75</pre></span><pre>        h.set_lang('es')</pre></div>
 
98
<div class="nocov"><span class="num"><pre> 76</pre></span><pre>        assert Bar().local_foo == 'Hola'</pre></div>
 
99
<div class="nocov"><span class="num"><pre> 77</pre></span><pre>        assert foo == 'Hello'</pre></div>
 
100
<div class="skip"><span class="num"><pre> 78</pre></span><pre></pre></div>
 
101
<div class="nocov"><span class="num"><pre> 79</pre></span><pre>    &quot;&quot;&quot;</pre></div>
 
102
<div class="nocov"><span class="num"><pre> 80</pre></span><pre>    return value</pre></div>
 
103
<div class="nocov"><span class="num"><pre> 81</pre></span><pre>N_ = gettext_noop</pre></div>
 
104
<div class="skip"><span class="num"><pre> 82</pre></span><pre></pre></div>
 
105
<div class="skip"><span class="num"><pre> 83</pre></span><pre></pre></div>
 
106
<div class="nocov"><span class="num"><pre> 84</pre></span><pre>def gettext(value):</pre></div>
 
107
<div class="nocov"><span class="num"><pre> 85</pre></span><pre>    &quot;&quot;&quot;Mark a string for translation. Returns the localized string of</pre></div>
 
108
<div class="nocov"><span class="num"><pre> 86</pre></span><pre>    value.</pre></div>
 
109
<div class="skip"><span class="num"><pre> 87</pre></span><pre></pre></div>
 
110
<div class="nocov"><span class="num"><pre> 88</pre></span><pre>    Mark a string to be localized as follows::</pre></div>
 
111
<div class="skip"><span class="num"><pre> 89</pre></span><pre></pre></div>
 
112
<div class="nocov"><span class="num"><pre> 90</pre></span><pre>        gettext('This should be in lots of languages')</pre></div>
 
113
<div class="skip"><span class="num"><pre> 91</pre></span><pre></pre></div>
 
114
<div class="nocov"><span class="num"><pre> 92</pre></span><pre>    &quot;&quot;&quot;</pre></div>
 
115
<div class="nocov"><span class="num"><pre> 93</pre></span><pre>    return pylons.translator.gettext(value)</pre></div>
 
116
<div class="nocov"><span class="num"><pre> 94</pre></span><pre>lazy_gettext = lazify(gettext)</pre></div>
 
117
<div class="skip"><span class="num"><pre> 95</pre></span><pre></pre></div>
 
118
<div class="skip"><span class="num"><pre> 96</pre></span><pre></pre></div>
 
119
<div class="nocov"><span class="num"><pre> 97</pre></span><pre>def ugettext(value):</pre></div>
 
120
<div class="nocov"><span class="num"><pre> 98</pre></span><pre>    &quot;&quot;&quot;Mark a string for translation. Returns the localized unicode</pre></div>
 
121
<div class="nocov"><span class="num"><pre> 99</pre></span><pre>    string of value.</pre></div>
 
122
<div class="skip"><span class="num"><pre>100</pre></span><pre></pre></div>
 
123
<div class="nocov"><span class="num"><pre>101</pre></span><pre>    Mark a string to be localized as follows::</pre></div>
 
124
<div class="skip"><span class="num"><pre>102</pre></span><pre></pre></div>
 
125
<div class="nocov"><span class="num"><pre>103</pre></span><pre>        _('This should be in lots of languages')</pre></div>
 
126
<div class="skip"><span class="num"><pre>104</pre></span><pre>    </pre></div>
 
127
<div class="nocov"><span class="num"><pre>105</pre></span><pre>    &quot;&quot;&quot;</pre></div>
 
128
<div class="cov"><span class="num"><pre>106</pre></span><pre>    return pylons.translator.ugettext(value)</pre></div>
 
129
<div class="nocov"><span class="num"><pre>107</pre></span><pre>_ = ugettext</pre></div>
 
130
<div class="nocov"><span class="num"><pre>108</pre></span><pre>lazy_ugettext = lazify(ugettext)</pre></div>
 
131
<div class="skip"><span class="num"><pre>109</pre></span><pre></pre></div>
 
132
<div class="skip"><span class="num"><pre>110</pre></span><pre></pre></div>
 
133
<div class="nocov"><span class="num"><pre>111</pre></span><pre>def ngettext(singular, plural, n):</pre></div>
 
134
<div class="nocov"><span class="num"><pre>112</pre></span><pre>    &quot;&quot;&quot;Mark a string for translation. Returns the localized string of</pre></div>
 
135
<div class="nocov"><span class="num"><pre>113</pre></span><pre>    the pluralized value.</pre></div>
 
136
<div class="skip"><span class="num"><pre>114</pre></span><pre></pre></div>
 
137
<div class="nocov"><span class="num"><pre>115</pre></span><pre>    This does a plural-forms lookup of a message id. ``singular`` is</pre></div>
 
138
<div class="nocov"><span class="num"><pre>116</pre></span><pre>    used as the message id for purposes of lookup in the catalog, while</pre></div>
 
139
<div class="nocov"><span class="num"><pre>117</pre></span><pre>    ``n`` is used to determine which plural form to use. The returned</pre></div>
 
140
<div class="nocov"><span class="num"><pre>118</pre></span><pre>    message is a string.</pre></div>
 
141
<div class="skip"><span class="num"><pre>119</pre></span><pre></pre></div>
 
142
<div class="nocov"><span class="num"><pre>120</pre></span><pre>    Mark a string to be localized as follows::</pre></div>
143
143
<div class="skip"><span class="num"><pre>121</pre></span><pre></pre></div>
144
 
<div class="nocov"><span class="num"><pre>122</pre></span><pre>    &quot;&quot;&quot;</pre></div>
145
 
<div class="nocov"><span class="num"><pre>123</pre></span><pre>    return pylons.translator.ngettext(singular, plural, n)</pre></div>
146
 
<div class="nocov"><span class="num"><pre>124</pre></span><pre>lazy_ngettext = lazify(ngettext)</pre></div>
147
 
<div class="skip"><span class="num"><pre>125</pre></span><pre></pre></div>
148
 
<div class="skip"><span class="num"><pre>126</pre></span><pre></pre></div>
149
 
<div class="nocov"><span class="num"><pre>127</pre></span><pre>def ungettext(singular, plural, n):</pre></div>
150
 
<div class="nocov"><span class="num"><pre>128</pre></span><pre>    &quot;&quot;&quot;Mark a string for translation. Returns the localized unicode</pre></div>
151
 
<div class="nocov"><span class="num"><pre>129</pre></span><pre>    string of the pluralized value.</pre></div>
152
 
<div class="skip"><span class="num"><pre>130</pre></span><pre></pre></div>
153
 
<div class="nocov"><span class="num"><pre>131</pre></span><pre>    This does a plural-forms lookup of a message id. ``singular`` is</pre></div>
154
 
<div class="nocov"><span class="num"><pre>132</pre></span><pre>    used as the message id for purposes of lookup in the catalog, while</pre></div>
155
 
<div class="nocov"><span class="num"><pre>133</pre></span><pre>    ``n`` is used to determine which plural form to use. The returned</pre></div>
156
 
<div class="nocov"><span class="num"><pre>134</pre></span><pre>    message is a Unicode string.</pre></div>
157
 
<div class="skip"><span class="num"><pre>135</pre></span><pre></pre></div>
158
 
<div class="nocov"><span class="num"><pre>136</pre></span><pre>    Mark a string to be localized as follows::</pre></div>
159
 
<div class="skip"><span class="num"><pre>137</pre></span><pre></pre></div>
160
 
<div class="nocov"><span class="num"><pre>138</pre></span><pre>        ungettext('There is %(num)d file here', 'There are %(num)d files here',</pre></div>
161
 
<div class="nocov"><span class="num"><pre>139</pre></span><pre>                  n) % {'num': n}</pre></div>
 
144
<div class="nocov"><span class="num"><pre>122</pre></span><pre>        ngettext('There is %(num)d file here', 'There are %(num)d files here',</pre></div>
 
145
<div class="nocov"><span class="num"><pre>123</pre></span><pre>                 n) % {'num': n}</pre></div>
 
146
<div class="skip"><span class="num"><pre>124</pre></span><pre></pre></div>
 
147
<div class="nocov"><span class="num"><pre>125</pre></span><pre>    &quot;&quot;&quot;</pre></div>
 
148
<div class="nocov"><span class="num"><pre>126</pre></span><pre>    return pylons.translator.ngettext(singular, plural, n)</pre></div>
 
149
<div class="nocov"><span class="num"><pre>127</pre></span><pre>lazy_ngettext = lazify(ngettext)</pre></div>
 
150
<div class="skip"><span class="num"><pre>128</pre></span><pre></pre></div>
 
151
<div class="skip"><span class="num"><pre>129</pre></span><pre></pre></div>
 
152
<div class="nocov"><span class="num"><pre>130</pre></span><pre>def ungettext(singular, plural, n):</pre></div>
 
153
<div class="nocov"><span class="num"><pre>131</pre></span><pre>    &quot;&quot;&quot;Mark a string for translation. Returns the localized unicode</pre></div>
 
154
<div class="nocov"><span class="num"><pre>132</pre></span><pre>    string of the pluralized value.</pre></div>
 
155
<div class="skip"><span class="num"><pre>133</pre></span><pre></pre></div>
 
156
<div class="nocov"><span class="num"><pre>134</pre></span><pre>    This does a plural-forms lookup of a message id. ``singular`` is</pre></div>
 
157
<div class="nocov"><span class="num"><pre>135</pre></span><pre>    used as the message id for purposes of lookup in the catalog, while</pre></div>
 
158
<div class="nocov"><span class="num"><pre>136</pre></span><pre>    ``n`` is used to determine which plural form to use. The returned</pre></div>
 
159
<div class="nocov"><span class="num"><pre>137</pre></span><pre>    message is a Unicode string.</pre></div>
 
160
<div class="skip"><span class="num"><pre>138</pre></span><pre></pre></div>
 
161
<div class="nocov"><span class="num"><pre>139</pre></span><pre>    Mark a string to be localized as follows::</pre></div>
162
162
<div class="skip"><span class="num"><pre>140</pre></span><pre></pre></div>
163
 
<div class="nocov"><span class="num"><pre>141</pre></span><pre>    &quot;&quot;&quot;</pre></div>
164
 
<div class="nocov"><span class="num"><pre>142</pre></span><pre>    return pylons.translator.ungettext(singular, plural, n)</pre></div>
165
 
<div class="nocov"><span class="num"><pre>143</pre></span><pre>lazy_ungettext = lazify(ungettext)</pre></div>
166
 
<div class="skip"><span class="num"><pre>144</pre></span><pre></pre></div>
167
 
<div class="skip"><span class="num"><pre>145</pre></span><pre></pre></div>
168
 
<div class="nocov"><span class="num"><pre>146</pre></span><pre>def _get_translator(lang, **kwargs):</pre></div>
169
 
<div class="nocov"><span class="num"><pre>147</pre></span><pre>    &quot;&quot;&quot;Utility method to get a valid translator object from a language</pre></div>
170
 
<div class="nocov"><span class="num"><pre>148</pre></span><pre>    name&quot;&quot;&quot;</pre></div>
171
 
<div class="cov"><span class="num"><pre>149</pre></span><pre>    if not lang:</pre></div>
172
 
<div class="cov"><span class="num"><pre>150</pre></span><pre>        return NullTranslations()</pre></div>
173
 
<div class="cov"><span class="num"><pre>151</pre></span><pre>    if 'pylons_config' in kwargs:</pre></div>
174
 
<div class="nocov"><span class="num"><pre>152</pre></span><pre>        conf = kwargs.pop('pylons_config')</pre></div>
175
 
<div class="cov"><span class="num"><pre>153</pre></span><pre>    else:</pre></div>
176
 
<div class="cov"><span class="num"><pre>154</pre></span><pre>        conf = pylons.config.current_conf()</pre></div>
177
 
<div class="cov"><span class="num"><pre>155</pre></span><pre>    localedir = os.path.join(conf['pylons.paths']['root'], 'i18n')</pre></div>
178
 
<div class="cov"><span class="num"><pre>156</pre></span><pre>    if not isinstance(lang, list):</pre></div>
179
 
<div class="cov"><span class="num"><pre>157</pre></span><pre>        lang = [lang]</pre></div>
180
 
<div class="cov"><span class="num"><pre>158</pre></span><pre>    try:</pre></div>
181
 
<div class="cov"><span class="num"><pre>159</pre></span><pre>        translator = translation(conf['pylons.package'], localedir,</pre></div>
182
 
<div class="cov"><span class="num"><pre>160</pre></span><pre>                                 languages=lang, **kwargs)</pre></div>
183
 
<div class="cov"><span class="num"><pre>161</pre></span><pre>    except IOError, ioe:</pre></div>
184
 
<div class="cov"><span class="num"><pre>162</pre></span><pre>        raise LanguageError('IOError: %s' % ioe)</pre></div>
185
 
<div class="cov"><span class="num"><pre>163</pre></span><pre>    translator.pylons_lang = lang</pre></div>
186
 
<div class="cov"><span class="num"><pre>164</pre></span><pre>    return translator</pre></div>
187
 
<div class="skip"><span class="num"><pre>165</pre></span><pre></pre></div>
188
 
<div class="skip"><span class="num"><pre>166</pre></span><pre></pre></div>
189
 
<div class="nocov"><span class="num"><pre>167</pre></span><pre>def set_lang(lang, **kwargs):</pre></div>
190
 
<div class="nocov"><span class="num"><pre>168</pre></span><pre>    &quot;&quot;&quot;Set the current language used for translations.</pre></div>
 
163
<div class="nocov"><span class="num"><pre>141</pre></span><pre>        ungettext('There is %(num)d file here', 'There are %(num)d files here',</pre></div>
 
164
<div class="nocov"><span class="num"><pre>142</pre></span><pre>                  n) % {'num': n}</pre></div>
 
165
<div class="skip"><span class="num"><pre>143</pre></span><pre></pre></div>
 
166
<div class="nocov"><span class="num"><pre>144</pre></span><pre>    &quot;&quot;&quot;</pre></div>
 
167
<div class="nocov"><span class="num"><pre>145</pre></span><pre>    return pylons.translator.ungettext(singular, plural, n)</pre></div>
 
168
<div class="nocov"><span class="num"><pre>146</pre></span><pre>lazy_ungettext = lazify(ungettext)</pre></div>
 
169
<div class="skip"><span class="num"><pre>147</pre></span><pre></pre></div>
 
170
<div class="skip"><span class="num"><pre>148</pre></span><pre></pre></div>
 
171
<div class="nocov"><span class="num"><pre>149</pre></span><pre>def _get_translator(lang, **kwargs):</pre></div>
 
172
<div class="nocov"><span class="num"><pre>150</pre></span><pre>    &quot;&quot;&quot;Utility method to get a valid translator object from a language</pre></div>
 
173
<div class="nocov"><span class="num"><pre>151</pre></span><pre>    name&quot;&quot;&quot;</pre></div>
 
174
<div class="cov"><span class="num"><pre>152</pre></span><pre>    if not lang:</pre></div>
 
175
<div class="cov"><span class="num"><pre>153</pre></span><pre>        return NullTranslations()</pre></div>
 
176
<div class="cov"><span class="num"><pre>154</pre></span><pre>    if 'pylons_config' in kwargs:</pre></div>
 
177
<div class="nocov"><span class="num"><pre>155</pre></span><pre>        conf = kwargs.pop('pylons_config')</pre></div>
 
178
<div class="cov"><span class="num"><pre>156</pre></span><pre>    else:</pre></div>
 
179
<div class="cov"><span class="num"><pre>157</pre></span><pre>        conf = pylons.config.current_conf()</pre></div>
 
180
<div class="cov"><span class="num"><pre>158</pre></span><pre>    localedir = os.path.join(conf['pylons.paths']['root'], 'i18n')</pre></div>
 
181
<div class="cov"><span class="num"><pre>159</pre></span><pre>    if not isinstance(lang, list):</pre></div>
 
182
<div class="cov"><span class="num"><pre>160</pre></span><pre>        lang = [lang]</pre></div>
 
183
<div class="cov"><span class="num"><pre>161</pre></span><pre>    try:</pre></div>
 
184
<div class="cov"><span class="num"><pre>162</pre></span><pre>        translator = translation(conf['pylons.package'], localedir,</pre></div>
 
185
<div class="cov"><span class="num"><pre>163</pre></span><pre>                                 languages=lang, **kwargs)</pre></div>
 
186
<div class="cov"><span class="num"><pre>164</pre></span><pre>    except IOError, ioe:</pre></div>
 
187
<div class="cov"><span class="num"><pre>165</pre></span><pre>        raise LanguageError('IOError: %s' % ioe)</pre></div>
 
188
<div class="cov"><span class="num"><pre>166</pre></span><pre>    translator.pylons_lang = lang</pre></div>
 
189
<div class="cov"><span class="num"><pre>167</pre></span><pre>    return translator</pre></div>
 
190
<div class="skip"><span class="num"><pre>168</pre></span><pre></pre></div>
191
191
<div class="skip"><span class="num"><pre>169</pre></span><pre></pre></div>
192
 
<div class="nocov"><span class="num"><pre>170</pre></span><pre>    ``lang`` should be a string or a list of strings. If a list of</pre></div>
193
 
<div class="nocov"><span class="num"><pre>171</pre></span><pre>    strings, the first language is set as the main and the subsequent</pre></div>
194
 
<div class="nocov"><span class="num"><pre>172</pre></span><pre>    languages are added as fallbacks.</pre></div>
195
 
<div class="nocov"><span class="num"><pre>173</pre></span><pre>    &quot;&quot;&quot;</pre></div>
196
 
<div class="cov"><span class="num"><pre>174</pre></span><pre>    translator = _get_translator(lang, **kwargs)</pre></div>
197
 
<div class="cov"><span class="num"><pre>175</pre></span><pre>    environ = pylons.request.environ</pre></div>
198
 
<div class="cov"><span class="num"><pre>176</pre></span><pre>    environ['pylons.pylons'].translator = translator</pre></div>
199
 
<div class="cov"><span class="num"><pre>177</pre></span><pre>    if 'paste.registry' in environ:</pre></div>
200
 
<div class="cov"><span class="num"><pre>178</pre></span><pre>        environ['paste.registry'].replace(pylons.translator, translator)</pre></div>
201
 
<div class="skip"><span class="num"><pre>179</pre></span><pre></pre></div>
202
 
<div class="skip"><span class="num"><pre>180</pre></span><pre></pre></div>
203
 
<div class="nocov"><span class="num"><pre>181</pre></span><pre>def get_lang():</pre></div>
204
 
<div class="nocov"><span class="num"><pre>182</pre></span><pre>    &quot;&quot;&quot;Return the current i18n language used&quot;&quot;&quot;</pre></div>
205
 
<div class="cov"><span class="num"><pre>183</pre></span><pre>    return getattr(pylons.translator, 'pylons_lang', None)</pre></div>
206
 
<div class="skip"><span class="num"><pre>184</pre></span><pre></pre></div>
207
 
<div class="skip"><span class="num"><pre>185</pre></span><pre></pre></div>
208
 
<div class="nocov"><span class="num"><pre>186</pre></span><pre>def add_fallback(lang, **kwargs):</pre></div>
209
 
<div class="nocov"><span class="num"><pre>187</pre></span><pre>    &quot;&quot;&quot;Add a fallback language from which words not matched in other</pre></div>
210
 
<div class="nocov"><span class="num"><pre>188</pre></span><pre>    languages will be translated to.</pre></div>
211
 
<div class="skip"><span class="num"><pre>189</pre></span><pre></pre></div>
212
 
<div class="nocov"><span class="num"><pre>190</pre></span><pre>    This fallback will be associated with the currently selected</pre></div>
213
 
<div class="nocov"><span class="num"><pre>191</pre></span><pre>    language -- that is, resetting the language via set_lang() resets</pre></div>
214
 
<div class="nocov"><span class="num"><pre>192</pre></span><pre>    the current fallbacks.</pre></div>
215
 
<div class="skip"><span class="num"><pre>193</pre></span><pre></pre></div>
216
 
<div class="nocov"><span class="num"><pre>194</pre></span><pre>    This function can be called multiple times to add multiple</pre></div>
217
 
<div class="nocov"><span class="num"><pre>195</pre></span><pre>    fallbacks.</pre></div>
218
 
<div class="nocov"><span class="num"><pre>196</pre></span><pre>    &quot;&quot;&quot;</pre></div>
219
 
<div class="nocov"><span class="num"><pre>197</pre></span><pre>    return pylons.translator.add_fallback(_get_translator(lang, **kwargs))</pre></div>
220
 
<div class="skip"><span class="num"><pre>198</pre></span><pre></pre></div>
 
192
<div class="nocov"><span class="num"><pre>170</pre></span><pre>def set_lang(lang, **kwargs):</pre></div>
 
193
<div class="nocov"><span class="num"><pre>171</pre></span><pre>    &quot;&quot;&quot;Set the current language used for translations.</pre></div>
 
194
<div class="skip"><span class="num"><pre>172</pre></span><pre></pre></div>
 
195
<div class="nocov"><span class="num"><pre>173</pre></span><pre>    ``lang`` should be a string or a list of strings. If a list of</pre></div>
 
196
<div class="nocov"><span class="num"><pre>174</pre></span><pre>    strings, the first language is set as the main and the subsequent</pre></div>
 
197
<div class="nocov"><span class="num"><pre>175</pre></span><pre>    languages are added as fallbacks.</pre></div>
 
198
<div class="nocov"><span class="num"><pre>176</pre></span><pre>    &quot;&quot;&quot;</pre></div>
 
199
<div class="cov"><span class="num"><pre>177</pre></span><pre>    translator = _get_translator(lang, **kwargs)</pre></div>
 
200
<div class="cov"><span class="num"><pre>178</pre></span><pre>    environ = pylons.request.environ</pre></div>
 
201
<div class="cov"><span class="num"><pre>179</pre></span><pre>    environ['pylons.pylons'].translator = translator</pre></div>
 
202
<div class="cov"><span class="num"><pre>180</pre></span><pre>    if 'paste.registry' in environ:</pre></div>
 
203
<div class="cov"><span class="num"><pre>181</pre></span><pre>        environ['paste.registry'].replace(pylons.translator, translator)</pre></div>
 
204
<div class="skip"><span class="num"><pre>182</pre></span><pre></pre></div>
 
205
<div class="skip"><span class="num"><pre>183</pre></span><pre></pre></div>
 
206
<div class="nocov"><span class="num"><pre>184</pre></span><pre>def get_lang():</pre></div>
 
207
<div class="nocov"><span class="num"><pre>185</pre></span><pre>    &quot;&quot;&quot;Return the current i18n language used&quot;&quot;&quot;</pre></div>
 
208
<div class="cov"><span class="num"><pre>186</pre></span><pre>    return getattr(pylons.translator, 'pylons_lang', None)</pre></div>
 
209
<div class="skip"><span class="num"><pre>187</pre></span><pre></pre></div>
 
210
<div class="skip"><span class="num"><pre>188</pre></span><pre></pre></div>
 
211
<div class="nocov"><span class="num"><pre>189</pre></span><pre>def add_fallback(lang, **kwargs):</pre></div>
 
212
<div class="nocov"><span class="num"><pre>190</pre></span><pre>    &quot;&quot;&quot;Add a fallback language from which words not matched in other</pre></div>
 
213
<div class="nocov"><span class="num"><pre>191</pre></span><pre>    languages will be translated to.</pre></div>
 
214
<div class="skip"><span class="num"><pre>192</pre></span><pre></pre></div>
 
215
<div class="nocov"><span class="num"><pre>193</pre></span><pre>    This fallback will be associated with the currently selected</pre></div>
 
216
<div class="nocov"><span class="num"><pre>194</pre></span><pre>    language -- that is, resetting the language via set_lang() resets</pre></div>
 
217
<div class="nocov"><span class="num"><pre>195</pre></span><pre>    the current fallbacks.</pre></div>
 
218
<div class="skip"><span class="num"><pre>196</pre></span><pre></pre></div>
 
219
<div class="nocov"><span class="num"><pre>197</pre></span><pre>    This function can be called multiple times to add multiple</pre></div>
 
220
<div class="nocov"><span class="num"><pre>198</pre></span><pre>    fallbacks.</pre></div>
 
221
<div class="nocov"><span class="num"><pre>199</pre></span><pre>    &quot;&quot;&quot;</pre></div>
 
222
<div class="nocov"><span class="num"><pre>200</pre></span><pre>    return pylons.translator.add_fallback(_get_translator(lang, **kwargs))</pre></div>
 
223
<div class="skip"><span class="num"><pre>201</pre></span><pre></pre></div>
221
224
</div>
222
225
</body>
223
226
</html>