예제 #1
0
    def testSetGetLocale(self):
        translator = Translator('en')

        self.assertEquals('en', translator.locale)

        translator.locale = 'fr'
        self.assertEquals('fr', translator.locale)
예제 #2
0
    def testSetGetLocale(self):
        translator = Translator('en')

        self.assertEquals('en', translator.locale)

        translator.locale = 'fr'
        self.assertEquals('fr', translator.locale)
예제 #3
0
 def testadd_resourceInvalidLocales(self):
     for locale, in self.getInvalidLocalesTests():
         translator = Translator('fr')
         self.assertRaises(
             ValueError, lambda: translator.add_resource(
                 'dict', {
                     'foo': 'foofoo'}, locale))
예제 #4
0
    def testget_catalogue(self):
        translator = Translator('en')

        self.assertEquals(MessageCatalogue('en'), translator.get_catalogue())

        translator.locale = 'fr'
        self.assertEquals(MessageCatalogue('fr'),
                          translator.get_catalogue('fr'))
예제 #5
0
    def testTransWithFallbackLocale(self):
        translator = Translator('fr_FR')
        translator.add_loader('dict', loaders.DictLoader())
        translator.add_resource('dict', {'foo': 'foofoo'}, 'en_US')
        translator.add_resource('dict', {'bar': 'foobar'}, 'en')

        translator.set_fallback_locales(['en'])

        self.assertEquals('foobar', translator.trans('bar'))
예제 #6
0
    def testget_catalogue(self):
        translator = Translator('en')

        self.assertEquals(MessageCatalogue('en'), translator.get_catalogue())

        translator.locale = 'fr'
        self.assertEquals(
            MessageCatalogue('fr'),
            translator.get_catalogue('fr'))
예제 #7
0
    def testset_fallback_localesMultiple(self):
        translator = Translator('en')
        translator.add_loader('dict', loaders.DictLoader())
        translator.add_resource('dict', {'foo': 'foo (en)'}, 'en')
        translator.add_resource('dict', {'bar': 'bar (fr)'}, 'fr')

        # force catalogue loading
        translator.trans('bar')

        translator.set_fallback_locales(['fr_FR', 'fr'])
        self.assertEquals('bar (fr)', translator.trans('bar'))
예제 #8
0
    def testTransWithFallbackLocaleFile(self):
        for format, loader in self.getTransFileTests():
            loader_class = getattr(loaders, loader)
            translator = Translator('en_GB')
            translator.add_loader(format, loader_class())
            translator.add_resource(
                format,
                __DIR__ +
                '/fixtures/non-existing',
                'en_GB')
            translator.add_resource(
                format,
                __DIR__ +
                '/fixtures/resources.' +
                format,
                'en',
                'resources')

            self.assertRaises(
                loaders.NotFoundResourceException,
                self.assertEquals(
                    'bar',
                    translator.trans(
                        'foo',
                        {},
                        'resources')))
예제 #9
0
    def testtranschoiceValidLocale(self):
        for locale, in self.getValidLocalesTests():
            translator = Translator('en')
            translator.add_loader('dict', loaders.DictLoader())
            translator.add_resource('dict', {'foo': 'foofoo'}, 'en')

            translator.transchoice('foo', 1, {}, '', locale)
예제 #10
0
    def testtranschoiceFallbackBis(self):
        translator = Translator('ru')
        translator.set_fallback_locales(['en_US', 'en'])
        translator.add_loader('dict', loaders.DictLoader())
        translator.add_resource('dict',
                                {'some_message2': 'one thing|{count} things'},
                                'en_US')

        self.assertEquals(
            '10 things',
            translator.transchoice('some_message2', 10, {'count': 10}))
예제 #11
0
    def testSetInvalidLocale(self):
        for locale, in self.getInvalidLocalesTests():
            translator = Translator('fr')

            def set():
                translator.locale = locale

            self.assertRaises(ValueError, set)
예제 #12
0
    def testFlattenedTrans(self):
        for expected, messages, id in self.getFlattenedTransTests():
            translator = Translator('en')
            translator.add_loader('dict', loaders.DictLoader())
            translator.add_resource('dict', messages, 'fr', '')

            self.assertEquals(expected, translator.trans(id, {}, '', 'fr'))
예제 #13
0
    def testtranschoiceValidLocale(self):
        for locale, in self.getValidLocalesTests():
            translator = Translator('en')
            translator.add_loader('dict', loaders.DictLoader())
            translator.add_resource('dict', {'foo': 'foofoo'}, 'en')

            translator.transchoice('foo', 1, {}, '', locale)
예제 #14
0
    def testTransWithoutFallbackLocaleFile(self):
        for format, loader in self.getTransFileTests():
            loader_class = getattr(loaders, loader)
            translator = Translator('en')
            translator.add_loader(format, loader_class())
            translator.add_resource(format, __DIR__ + '/fixtures/non-existing',
                                    'en')
            translator.add_resource(format,
                                    __DIR__ + '/fixtures/resources.' + format,
                                    'en')

            # force catalogue loading
            self.assertRaises(loaders.NotFoundResourceException,
                              lambda: translator.trans('foo'))
예제 #15
0
    def testTransWithFallbackLocaleFile(self):
        for format, loader in self.getTransFileTests():
            loader_class = getattr(loaders, loader)
            translator = Translator('en_GB')
            translator.add_loader(format, loader_class())
            translator.add_resource(format, __DIR__ + '/fixtures/non-existing',
                                    'en_GB')
            translator.add_resource(format,
                                    __DIR__ + '/fixtures/resources.' + format,
                                    'en', 'resources')

            self.assertRaises(
                loaders.NotFoundResourceException,
                self.assertEquals('bar',
                                  translator.trans('foo', {}, 'resources')))
예제 #16
0
    def testTransInvalidLocale(self):
        for locale, in self.getInvalidLocalesTests():
            translator = Translator('en')
            translator.add_loader('dict', loaders.DictLoader())
            translator.add_resource('dict', {'foo': 'foofoo'}, 'en')

            self.assertRaises(ValueError,
                              lambda: translator.trans('foo', {}, '', locale))
예제 #17
0
    def testtranschoiceFallbackBis(self):
        translator = Translator('ru')
        translator.set_fallback_locales(['en_US', 'en'])
        translator.add_loader('dict', loaders.DictLoader())
        translator.add_resource(
            'dict', {
                'some_message2': 'one thing|{count} things'}, 'en_US')

        self.assertEquals(
            '10 things', translator.transchoice(
                'some_message2', 10, {
                    'count': 10}))
예제 #18
0
    def testGetMessages(self):
        for resources, locale, expected in self.dataProviderGetMessages():
            locales = list(resources.keys())
            _locale = locale if locale is not None else locales[0]
            locales = locales[0:locales.index(_locale, )]

            translator = Translator(_locale)
            translator.set_fallback_locales(locales[::-1])
            translator.add_loader('dict', loaders.DictLoader())
            for _locale, domainMessages in list(resources.items()):
                for domain, messages in list(domainMessages.items()):
                    translator.add_resource('dict', messages, _locale, domain)

            result = translator.get_messages(locale)

            self.assertEquals(expected, result)
예제 #19
0
    def testtranschoiceFallbackWithNoTranslation(self):
        translator = Translator('ru')
        translator.set_fallback_locales(['en'])
        translator.add_loader('dict', loaders.DictLoader())

        # consistent behavior with Translator::trans(), which returns the string
        # unchanged if it can't be found
        self.assertEquals(
            'some_message2',
            translator.transchoice('some_message2', 10, {'count': 10}))
예제 #20
0
    def testTrans(self):
        for expected, id, translation, parameters, locale, domain in self.getTransTests(
        ):
            translator = Translator('en')
            translator.add_loader('dict', loaders.DictLoader())
            translator.add_resource('dict', {str(id): translation}, locale,
                                    domain)

            self.assertEquals(expected,
                              translator.trans(id, parameters, domain, locale))
예제 #21
0
    def testFlattenedTrans(self):
        for expected, messages, id in self. getFlattenedTransTests():
            translator = Translator('en')
            translator.add_loader('dict', loaders.DictLoader())
            translator.add_resource('dict', messages, 'fr', '')

            self.assertEquals(expected, translator.trans(id, {}, '', 'fr'))
예제 #22
0
    def testGetMessages(self):
        for resources, locale, expected in self.dataProviderGetMessages():
            locales = list(resources.keys())
            _locale = locale if locale is not None else locales[0]
            locales = locales[0:locales.index(_locale,)]

            translator = Translator(_locale)
            translator.set_fallback_locales(locales[::-1])
            translator.add_loader('dict', loaders.DictLoader())
            for _locale, domainMessages in list(resources.items()):
                for domain, messages in list(domainMessages.items()):
                    translator.add_resource('dict', messages, _locale, domain)

            result = translator.get_messages(locale)

            self.assertEquals(expected, result)
예제 #23
0
    def testtranschoiceFallbackWithNoTranslation(self):
        translator = Translator('ru')
        translator.set_fallback_locales(['en'])
        translator.add_loader('dict', loaders.DictLoader())

        # consistent behavior with Translator::trans(), which returns the string
        # unchanged if it can't be found
        self.assertEquals(
            'some_message2', translator.transchoice(
                'some_message2', 10, {
                    'count': 10}))
예제 #24
0
    def testTransInvalidLocale(self):
        for locale, in self.getInvalidLocalesTests():
            translator = Translator('en')
            translator.add_loader('dict', loaders.DictLoader())
            translator.add_resource('dict', {'foo': 'foofoo'}, 'en')

            self.assertRaises(
                ValueError,
                lambda: translator.trans(
                    'foo',
                    {},
                    '',
                    locale))
예제 #25
0
    def testTransWithoutFallbackLocaleFile(self):
        for format, loader in self.getTransFileTests():
            loader_class = getattr(loaders, loader)
            translator = Translator('en')
            translator.add_loader(format, loader_class())
            translator.add_resource(
                format,
                __DIR__ +
                '/fixtures/non-existing',
                'en')
            translator.add_resource(
                format,
                __DIR__ +
                '/fixtures/resources.' +
                format,
                'en')

            # force catalogue loading
            self.assertRaises(
                loaders.NotFoundResourceException,
                lambda: translator.trans('foo'))
예제 #26
0
    def testTrans(self):
        for expected, id, translation, parameters, locale, domain in self.getTransTests(
        ):
            translator = Translator('en')
            translator.add_loader('dict', loaders.DictLoader())
            translator.add_resource(
                'dict', {
                    str(id): translation}, locale, domain)

            self.assertEquals(
                expected,
                translator.trans(
                    id,
                    parameters,
                    domain,
                    locale))
예제 #27
0
 def testConstructorInvalidLocale(self):
     for locale, in self.getInvalidLocalesTests():
         self.assertRaises(ValueError, lambda: Translator(locale))
예제 #28
0
    def testWhenAResourceHasNoRegisteredLoader(self):
        translator = Translator('en')
        translator.add_resource('dict', {'foo': 'foofoo'}, 'en')

        self.assertRaises(RuntimeError, lambda: translator.trans('foo'))
예제 #29
0
    def testSetValidLocale(self):
        for locale, in self.getValidLocalesTests():
            translator = Translator(locale)
            translator.locale = locale

            self.assertEquals(locale, translator.locale)
예제 #30
0
 def testSetFallbackInvalidLocales(self):
     for locale, in self.getInvalidLocalesTests():
         translator = Translator('fr')
         self.assertRaises(
             ValueError, lambda: translator.set_fallback_locales(['fr', locale]))
예제 #31
0
    def testset_fallback_localesMultiple(self):
        translator = Translator('en')
        translator.add_loader('dict', loaders.DictLoader())
        translator.add_resource('dict', {'foo': 'foo (en)'}, 'en')
        translator.add_resource('dict', {'bar': 'bar (fr)'}, 'fr')

        # force catalogue loading
        translator.trans('bar')

        translator.set_fallback_locales(['fr_FR', 'fr'])
        self.assertEquals('bar (fr)', translator.trans('bar'))
예제 #32
0
    def testadd_resourceAfterTrans(self):
        translator = Translator('fr')
        translator.add_loader('dict', loaders.DictLoader())

        translator.set_fallback_locales(['en'])

        translator.add_resource('dict', {'foo': 'foofoo'}, 'en')
        self.assertEquals('foofoo', translator.trans('foo'))

        translator.add_resource('dict', {'bar': 'foobar'}, 'en')
        self.assertEquals('foobar', translator.trans('bar'))
예제 #33
0
    def testConstructorWithoutLocale(self):
        translator = Translator(None)

        self.assertIsNone(translator.locale)
예제 #34
0
 def testTransNonExistentWithFallback(self):
     translator = Translator('fr')
     translator.set_fallback_locales(['en'])
     translator.add_loader('dict', loaders.DictLoader())
     self.assertEquals('non-existent', translator.trans('non-existent'))
예제 #35
0
    def testadd_resourceAfterTrans(self):
        translator = Translator('fr')
        translator.add_loader('dict', loaders.DictLoader())

        translator.set_fallback_locales(['en'])

        translator.add_resource('dict', {'foo': 'foofoo'}, 'en')
        self.assertEquals('foofoo', translator.trans('foo'))

        translator.add_resource('dict', {'bar': 'foobar'}, 'en')
        self.assertEquals('foobar', translator.trans('bar'))
예제 #36
0
 def testConstructorValidLocale(self):
     for locale, in self.getValidLocalesTests():
         translator = Translator(locale)
         self.assertEquals(locale, translator.locale)
예제 #37
0
 def testTransWithFallbackLocaleBis(self):
     translator = Translator('en_US')
     translator.add_loader('dict', loaders.DictLoader())
     translator.add_resource('dict', {'foo': 'foofoo'}, 'en_US')
     translator.add_resource('dict', {'bar': 'foobar'}, 'en')
     self.assertEquals('foobar', translator.trans('bar'))
예제 #38
0
    def testTransWithFallbackLocaleTer(self):
        translator = Translator('fr_FR')
        translator.add_loader('dict', loaders.DictLoader())
        translator.add_resource('dict', {'foo': 'foo (en_US)'}, 'en_US')
        translator.add_resource('dict', {'bar': 'bar (en)'}, 'en')

        translator.set_fallback_locales(['en_US', 'en'])

        self.assertEquals('foo (en_US)', translator.trans('foo'))
        self.assertEquals('bar (en)', translator.trans('bar'))
예제 #39
0
 def testTransNonExistentWithFallback(self):
     translator = Translator('fr')
     translator.set_fallback_locales(['en'])
     translator.add_loader('dict', loaders.DictLoader())
     self.assertEquals('non-existent', translator.trans('non-existent'))
예제 #40
0
 def testadd_resourceValidLocales(self):
     for locale, in self.getValidLocalesTests():
         translator = Translator('fr')
         translator.add_resource('dict', {'foo': 'foofoo'}, locale)
예제 #41
0
    def testWhenAResourceHasNoRegisteredLoader(self):
        translator = Translator('en')
        translator.add_resource('dict', {'foo': 'foofoo'}, 'en')

        self.assertRaises(RuntimeError, lambda: translator.trans('foo'))
예제 #42
0
 def testSetFallbackValidLocales(self):
     for locale, in self.getValidLocalesTests():
         translator = Translator(locale)
         translator.set_fallback_locales(['fr', locale])
예제 #43
0
    def testSetValidLocale(self):
        for locale, in self.getValidLocalesTests():
            translator = Translator(locale)
            translator.locale = locale

            self.assertEquals(locale, translator.locale)
예제 #44
0
 def testadd_resourceInvalidLocales(self):
     for locale, in self.getInvalidLocalesTests():
         translator = Translator('fr')
         self.assertRaises(
             ValueError, lambda: translator.add_resource(
                 'dict', {'foo': 'foofoo'}, locale))
예제 #45
0
 def testadd_resourceValidLocales(self):
     for locale, in self.getValidLocalesTests():
         translator = Translator('fr')
         translator.add_resource('dict', {'foo': 'foofoo'}, locale)
예제 #46
0
 def testSetFallbackInvalidLocales(self):
     for locale, in self.getInvalidLocalesTests():
         translator = Translator('fr')
         self.assertRaises(
             ValueError,
             lambda: translator.set_fallback_locales(['fr', locale]))
예제 #47
0
 def testSetFallbackValidLocales(self):
     for locale, in self.getValidLocalesTests():
         translator = Translator(locale)
         translator.set_fallback_locales(['fr', locale])