Lines Matching +full:- +full:gettext
3 import gettext
12 # - Add new tests, for example for "dgettext"
13 # - Remove dummy tests, for example testing for single and double quotes
15 # - Tests should have only one assert.
112 MOFILE = os.path.join(LOCALEDIR, 'gettext.mo')
120 gettext._localedirs.clear()
121 gettext._current_domain = 'messages'
122 gettext._translations.clear()
161 gettext.install('gettext', self.localedir, names=['pgettext'])
168 eq(_(r'Raymond Luxury Yach-t'), 'Throatwobbler Mangrove')
183 eq(_(r"Raymond Luxury Yach-t"), 'Throatwobbler Mangrove')
191 eq(_(r'''Raymond Luxury Yach-t'''), 'Throatwobbler Mangrove')
199 eq(_(r"""Raymond Luxury Yach-t"""), 'Throatwobbler Mangrove')
207 gettext message catalog library.'''),
217 t = gettext.GNUTranslations(fp)
226 t.install(names=["gettext", "ngettext"])
227 eq(_, t.gettext)
228 eq(builtins.gettext, t.gettext)
231 del builtins.gettext
240 gettext.bindtextdomain('gettext', self.localedir)
241 gettext.textdomain('gettext')
243 self._ = gettext.gettext
246 self.assertEqual(gettext.bindtextdomain('gettext'), self.localedir)
249 self.assertEqual(gettext.textdomain(), 'gettext')
254 gettext.GNUTranslations(fp)
264 gettext.GNUTranslations(fp)
271 eq(self._(r'Raymond Luxury Yach-t'), 'Throatwobbler Mangrove')
276 eq(gettext.pgettext('my context', 'nudge nudge'),
278 eq(gettext.pgettext('my other context', 'nudge nudge'),
283 eq(gettext.dpgettext('gettext', 'my context', 'nudge nudge'),
285 eq(gettext.dpgettext('gettext', 'my other context', 'nudge nudge'),
293 eq(self._(r"Raymond Luxury Yach-t"), 'Throatwobbler Mangrove')
301 eq(self._(r'''Raymond Luxury Yach-t'''), 'Throatwobbler Mangrove')
309 eq(self._(r"""Raymond Luxury Yach-t"""), 'Throatwobbler Mangrove')
317 gettext message catalog library.'''),
325 def _test_plural_forms(self, ngettext, gettext, argument
332 x = gettext(singular)
357 self.ngettext, self.gettext,
361 self.ngettext, self.gettext,
367 gettext = partial(self.pgettext, 'With context')
369 ngettext, gettext,
373 ngettext, gettext,
389 gettext.bindtextdomain('gettext', os.curdir)
390 gettext.textdomain('gettext')
392 self.gettext = gettext.gettext
393 self.ngettext = gettext.ngettext
394 self.pgettext = gettext.pgettext
395 self.npgettext = gettext.npgettext
402 gettext.bindtextdomain('gettext', os.curdir)
404 self.gettext = partial(gettext.dgettext, 'gettext')
405 self.ngettext = partial(gettext.dngettext, 'gettext')
406 self.pgettext = partial(gettext.dpgettext, 'gettext')
407 self.npgettext = partial(gettext.dnpgettext, 'gettext')
411 partial(gettext.dngettext, 'unknown'),
412 partial(gettext.dgettext, 'unknown'),
419 partial(gettext.dnpgettext, 'unknown', 'With context'),
420 partial(gettext.dpgettext, 'unknown', 'With context'),
430 t = gettext.GNUTranslations(fp)
432 self.gettext = t.gettext
438 t = gettext.NullTranslations()
440 t.ngettext, t.gettext,
446 t = gettext.NullTranslations()
456 # Examples from http://www.gnu.org/software/gettext/manual/gettext.html
460 f = gettext.c2py('0')
466 f = gettext.c2py('n != 1')
472 f = gettext.c2py('n>1')
478 f = gettext.c2py('n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2')
484 f = gettext.c2py('n==1 ? 0 : n==2 ? 1 : 2')
491 f = gettext.c2py('n==1 ? 0 : (n==2 ? 1 : 2)')
497 f = gettext.c2py('n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2')
503 f = gettext.c2py('n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2')
509 …f = gettext.c2py('n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2…
515 f = gettext.c2py('(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2')
521 f = gettext.c2py('n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2')
527 f = gettext.c2py('n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3')
533 … f = gettext.c2py('n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5')
540 raises(ValueError, gettext.c2py, "os.chmod('/etc/passwd',0777)")
542 raises(ValueError, gettext.c2py, '"(eval(foo) && ""')
543 raises(ValueError, gettext.c2py, 'f"{os.system(\'sh\')}"')
545 raises(ValueError, gettext.c2py, 'n+'*10000 + 'n')
546 self.assertEqual(gettext.c2py('n+'*100 + 'n')(1), 101)
548 raises(ValueError, gettext.c2py, '('*100 + 'n' + ')'*100)
550 raises(ValueError, gettext.c2py, '('*10000 + 'n' + ')'*10000)
551 self.assertEqual(gettext.c2py('('*20 + 'n' + ')'*20)(1), 1)
555 f = gettext.c2py('n == n == n')
557 f = gettext.c2py('1 < n == n')
559 f = gettext.c2py('n == n < 2')
561 f = gettext.c2py('0 < n < 2')
565 self.assertEqual(gettext.c2py('0123')(1), 123)
570 'n>0x1', '+n', '-n', 'n()', 'n(1)', '1+', 'nn', 'n n',
574 gettext.c2py(expr)
577 self.assertEqual(gettext.c2py('n?1?2:3:4')(0), 4)
578 self.assertEqual(gettext.c2py('n?1?2:3:4')(1), 2)
579 self.assertEqual(gettext.c2py('n?1:3?4:5')(0), 4)
580 self.assertEqual(gettext.c2py('n?1:3?4:5')(1), 1)
583 f = gettext.c2py('2/n*3')
587 self.assertEqual(f(-1), -6)
591 f = gettext.c2py('n != 1')
612 t = gettext.GNUTranslations(fp)
617 #-#-#-#-# messages.po (EdX Studio) #-#-#-#-#
624 t = gettext.GNUTranslations(fp)
625 self.assertEqual(t.info()["plural-forms"], "nplurals=2; plural=(n != 1);")
632 self.t = gettext.GNUTranslations(fp)
633 self._ = self.t.gettext
652 self.t = gettext.GNUTranslations(fp)
695 self.t = gettext.GNUTranslations(fp)
703 self.assertEqual(info['last-translator'],
707 class DummyGNUTranslations(gettext.GNUTranslations):
717 self.assertEqual(len(gettext._translations), 0)
719 t = gettext.translation('gettext', self.localedir)
721 self.assertEqual(len(gettext._translations), 1)
723 t = gettext.translation('gettext', self.localedir,
726 self.assertEqual(len(gettext._translations), 2)
731 t = gettext.translation('gettext', self.localedir,
734 self.assertEqual(len(gettext._translations), 2)
740 support.check__all__(self, gettext,
760 "Project-Id-Version: 2.0\n"
761 "PO-Revision-Date: 2003-04-11 14:32-0400\n"
762 "Last-Translator: J. David Ibanez <j-david@noos.fr>\n"
763 "Language-Team: XX <python-dev@python.org>\n"
764 "MIME-Version: 1.0\n"
765 "Content-Type: text/plain; charset=iso-8859-1\n"
766 "Content-Transfer-Encoding: 8bit\n"
767 "Generated-By: pygettext.py 1.1\n"
768 "Plural-Forms: nplurals=2; plural=n!=1;\n"
791 msgid "Raymond Luxury Yach-t"
804 "gettext message catalog library."
827 # containing utf-8 encoded Unicode strings
836 "Project-Id-Version: 2.0\n"
837 "PO-Revision-Date: 2003-04-11 12:42-0400\n"
838 "Last-Translator: Barry A. WArsaw <barry@python.org>\n"
839 "Language-Team: XX <python-dev@python.org>\n"
840 "MIME-Version: 1.0\n"
841 "Content-Type: text/plain; charset=utf-8\n"
842 "Content-Transfer-Encoding: 7bit\n"
843 "Generated-By: manually\n"
860 "Project-Id-Version: No Project 0.0\n"
861 "POT-Creation-Date: Wed Dec 11 07:44:15 2002\n"
862 "PO-Revision-Date: 2002-08-14 01:18:58+00:00\n"
863 "Last-Translator: John Doe <jdoe@example.com>\n"
865 "Language-Team: xx <xx@example.com>\n"
866 "MIME-Version: 1.0\n"
867 "Content-Type: text/plain; charset=iso-8859-15\n"
868 "Content-Transfer-Encoding: quoted-printable\n"
869 "Generated-By: pygettext.py 1.3\n"
880 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
881 "#-#-#-#-# messages.po (EdX Studio) #-#-#-#-#\n"
882 "Content-Type: text/plain; charset=UTF-8\n"