Пример #1
0
 def test_load_file_with_strange_encoding(self):
     resource_loader.init_json_loader()
     config.set("encoding", "euc-jp")
     data = resource_loader.load_resource(
         os.path.join(RESOURCE_FOLDER, "settings", "eucjp_config.json"),
         "settings")
     self.assertIn("ほげ", data)
     self.assertEqual("ホゲ", data['ほげ'])
Пример #2
0
 def test_skip_locale_root_data_nested_json_dict__default_locale(self):
     config.set("file_format", "json")
     config.set("load_path", [os.path.join(RESOURCE_FOLDER, "translations", "nested_dict_json")])
     config.set("filename_format", "{locale}.{format}")
     config.set('skip_locale_root_data', True)
     config.set("locale", "en")
     resource_loader.init_json_loader()
     self.assertEqual(t('COMMON.START'), 'Start')
Пример #3
0
 def test_skip_locale_root_data(self):
     config.set('filename_format', '{locale}.{format}')
     config.set('file_format', 'json')
     config.set('locale', 'gb')
     config.set('skip_locale_root_data', True)
     resource_loader.init_loaders()
     self.assertEqual(t('foo'), 'Lorry')
     config.set('skip_locale_root_data', False)
Пример #4
0
 def test_skip_locale_root_data_nested_json_dict__other_locale(self):
     config.set("file_format", "json")
     config.set("load_path", [os.path.join(RESOURCE_FOLDER, "translations", "nested_dict_json")])
     config.set("filename_format", "{locale}.{format}")
     config.set('skip_locale_root_data', True)
     config.set("locale", "en")
     resource_loader.init_json_loader()
     self.assertEqual(t('COMMON.EXECUTE', locale="pl"), 'Wykonaj')
Пример #5
0
def translate(string):
    resource_loader.init_loaders()
    config.set('load_path', ['/usr/src/locale'])
    locale = 'en'
    try:
        locale = os.environ['MUTATIX_LOCALE']
    except:
        pass
    config.set('locale', locale)
    return t(string)
Пример #6
0
 def test_get_namespace_from_filepath_without_filename(self):
     tests = {
         '': 'ja.yml',
         'foo': os.path.join('foo', 'ja.yml'),
         'foo.bar': os.path.join('foo', 'bar', 'en.yml'),
     }
     config.set('filename_format', '{locale}.{format}')
     for expected, test_val in tests.items():
         namespace = resource_loader.get_namespace_from_filepath(test_val)
         self.assertEqual(expected, namespace)
Пример #7
0
 def test_get_namespace_from_filepath_without_filename(self):
     tests = {
         "": "ja.yml",
         "foo": os.path.join("foo", "ja.yml"),
         "foo.bar": os.path.join("foo", "bar", "en.yml"),
     }
     config.set("filename_format", "{locale}.{format}")
     for expected, test_val in tests.items():
         namespace = resource_loader.get_namespace_from_filepath(test_val)
         self.assertEqual(expected, namespace)
Пример #8
0
 def test_get_namespace_from_filepath_without_filename(self):
     tests = {
         '': 'ja.yml',
         'foo': os.path.join('foo', 'ja.yml'),
         'foo.bar': os.path.join('foo', 'bar', 'en.yml'),
     }
     config.set('filename_format', '{locale}.{format}')
     for expected, test_val in tests.items():
         namespace = resource_loader.get_namespace_from_filepath(test_val)
         self.assertEqual(expected, namespace)
Пример #9
0
 def test_search_translation_without_ns_nested_dict__default_locale(self):
     resource_loader.init_json_loader()
     config.set("file_format", "json")
     config.set("load_path", [
         os.path.join(RESOURCE_FOLDER, "translations", "nested_dict_json")
     ])
     config.set("filename_format", "{locale}.{format}")
     config.set('skip_locale_root_data', True)
     config.set("locale", "en")
     resource_loader.search_translation("TOP_MENU.TOP_BAR.LOGS")
     self.assertTrue(translations.has("TOP_MENU.TOP_BAR.LOGS"))
     self.assertEqual(translations.get("TOP_MENU.TOP_BAR.LOGS"), "Logs")
Пример #10
0
 def test_search_translation_without_ns_nested_dict__two_levels_neting__default_locale(
         self):
     resource_loader.init_json_loader()
     config.set("file_format", "json")
     config.set("load_path", [
         os.path.join(RESOURCE_FOLDER, "translations", "nested_dict_json")
     ])
     config.set("filename_format", "{locale}.{format}")
     config.set('skip_locale_root_data', True)
     config.set("locale", ["en", "pl"])
     resource_loader.search_translation("COMMON.VERSION")
     self.assertTrue(translations.has("COMMON.VERSION"))
     self.assertEqual(translations.get("COMMON.VERSION"), "version")
Пример #11
0
 def setUpClass(cls):
     resource_loader.init_loaders()
     config.set('load_path',
                [os.path.join(RESOURCE_FOLDER, 'translations')])
     translations.add('foo.hi', 'Hello %{name} !')
     translations.add('foo.hello', 'Salut %{name} !', locale='fr')
     translations.add('foo.basic_plural', {
         'one': '1 elem',
         'other': '%{count} elems'
     })
     translations.add(
         'foo.plural', {
             'zero': 'no mail',
             'one': '1 mail',
             'few': 'only %{count} mails',
             'other': '%{count} mails'
         })
     translations.add('foo.bad_plural', {'bar': 'foo elems'})
Пример #12
0
 def setUpClass(cls):
     resource_loader.init_loaders()
     config.set('load_path', [os.path.join(RESOURCE_FOLDER, 'translations')])
     translations.add('foo.hi', 'Hello %{name} !')
     translations.add('foo.hello', 'Salut %{name} !', locale='fr')
     translations.add('foo.basic_plural', {
         'one': '1 elem',
         'other': '%{count} elems'
     })
     translations.add('foo.plural', {
         'zero': 'no mail',
         'one': '1 mail',
         'few': 'only %{count} mails',
         'other': '%{count} mails'
     })
     translations.add('foo.bad_plural', {
         'bar': 'foo elems'
     })
Пример #13
0
 def setUp(self):
     resource_loader.loaders = {}
     translations.container = {}
     config.set('load_path',
                [os.path.join(RESOURCE_FOLDER, 'translations')])
     config.set('filename_format', '{namespace}.{locale}.{format}')
     config.set("encoding", "utf-8")
Пример #14
0
 def setUp(self):
     resource_loader.loaders = {}
     translations.container = {}
     config.set("load_path",
                [os.path.join(RESOURCE_FOLDER, "translations")])
     config.set("filename_format", "{namespace}.{locale}.{format}")
     config.set("encoding", "utf-8")
Пример #15
0
 def test_fallback(self):
     config.set('fallback', 'fr')
     self.assertEqual(t('foo.hello', name='Bob'), 'Salut Bob !')
Пример #16
0
 def test_locale_change(self):
     config.set('locale', 'fr')
     self.assertEqual(t('foo.hello', name='Bob'), 'Salut Bob !')
Пример #17
0
 def test_missing_translation_error(self):
     config.set('error_on_missing_translation', True)
     with self.assertRaises(KeyError):
         t('foo.inexistent')
Пример #18
0
 def setUp(self):
     config.set('error_on_missing_translation', False)
     config.set('error_on_missing_placeholder', False)
     config.set('fallback', 'en')
     config.set('locale', 'en')
Пример #19
0
 def test_search_translation_yaml(self):
     resource_loader.init_yaml_loader()
     config.set('file_format', 'yml')
     resource_loader.search_translation('foo.normal_key')
     self.assertTrue(translations.has("foo.normal_key"))
Пример #20
0
 def setUp(self):
     resource_loader.loaders = {}
     translations.container = {}
     config.set('load_path', [os.path.join(RESOURCE_FOLDER, 'translations')])
     config.set('filename_format', '{namespace}.{locale}.{format}')
     config.set("encoding", "utf-8")
Пример #21
0
 def test_bad_pluralization(self):
     self.assertEqual(t('foo.normal_key', count=5), 'normal_value')
     config.set('error_on_missing_plural', True)
     with self.assertRaises(KeyError):
         t('foo.bad_plural', count=0)
Пример #22
0
    def test_invalid_formatter(self):
        class MyInvalidFormatter(Template):
            pass

        config.set('translation_formatter', MyInvalidFormatter)
        self.assertEqual(t('try_formatter', name="bar"), "foo !name")
Пример #23
0
    def test_search_translation_json(self):
        resource_loader.init_json_loader()
        config.set('file_format', 'json')

        resource_loader.search_translation('bar.baz.qux')
        self.assertTrue(translations.has('bar.baz.qux'))
Пример #24
0
    def test_search_translation_json(self):
        resource_loader.init_json_loader()
        config.set("file_format", "json")

        resource_loader.search_translation("bar.baz.qux")
        self.assertTrue(translations.has("bar.baz.qux"))
Пример #25
0
 def test_missing_translation_error(self):
     config.set('error_on_missing_translation', True)
     with self.assertRaises(KeyError):
         t('foo.inexistent')
Пример #26
0
 def setUp(self):
     config.set('error_on_missing_translation', False)
     config.set('error_on_missing_placeholder', False)
     config.set('fallback', 'en')
     config.set('locale', 'en')
Пример #27
0
    def test_custom_formatter(self):
        class MyFormatter(Template):
            delimiter = '!'

        config.set('translation_formatter', MyFormatter)
        self.assertEqual(t('try_formatter', name="bar"), "foo bar")
Пример #28
0
 def test_search_translation_without_ns(self):
     resource_loader.init_json_loader()
     config.set('file_format', 'json')
     config.set('filename_format', '{locale}.{format}')
     resource_loader.search_translation('foo')
     self.assertTrue(translations.has('foo'))
Пример #29
0
 def test_fallback_from_resource(self):
     config.set('fallback', 'ja')
     self.assertEqual(t('foo.fallback_key'), 'フォールバック')
Пример #30
0
 def test_missing_placeholder_error(self):
     config.set('error_on_missing_placeholder', True)
     with self.assertRaises(KeyError):
         t('foo.hi')
Пример #31
0
 def setUpClass(cls):
     resource_loader.init_loaders()
     reload(config)
     config.set('error_on_missing_placeholder', True)
     translations.add("try_formatter", "foo !name")
     translations.add('try_delimiter', "foo ^name")
Пример #32
0
 def test_bad_pluralization(self):
     config.set('error_on_missing_plural', False)
     self.assertEqual(t('foo.normal_key', count=5), 'normal_value')
     config.set('error_on_missing_plural', True)
     with self.assertRaises(KeyError):
         t('foo.bad_plural', count=0)
Пример #33
0
 def test_load_file_with_strange_encoding(self):
     resource_loader.init_json_loader()
     config.set("encoding", "euc-jp")
     data = resource_loader.load_resource(os.path.join(RESOURCE_FOLDER, "settings", "eucjp_config.json"), "settings")
     self.assertIn("ほげ", data)
     self.assertEqual("ホゲ", data['ほげ'])
Пример #34
0
 def test_search_translation_without_ns(self):
     resource_loader.init_json_loader()
     config.set("file_format", "json")
     config.set("filename_format", "{locale}.{format}")
     resource_loader.search_translation("foo")
     self.assertTrue(translations.has("foo"))
Пример #35
0
    def test_search_translation_json(self):
        resource_loader.init_json_loader()
        config.set('file_format', 'json')

        resource_loader.search_translation('bar.baz.qux')
        self.assertTrue(translations.has('bar.baz.qux'))
Пример #36
0
 def test_locale_change(self):
     config.set('locale', 'fr')
     self.assertEqual(t('foo.hello', name='Bob'), 'Salut Bob !')
Пример #37
0
 def test_custom_delimiter(self):
     config.set('translation_formatter', None)
     config.set('placeholder_delimiter', '^')
     self.assertEqual(t('try_delimiter', name="bar"), "foo bar")
Пример #38
0
 def test_search_translation_yaml(self):
     resource_loader.init_yaml_loader()
     config.set('file_format', 'yml')
     resource_loader.search_translation('foo.normal_key')
     self.assertTrue(translations.has("foo.normal_key"))
Пример #39
0
 def test_fallback(self):
     config.set('fallback', 'fr')
     self.assertEqual(t('foo.hello', name='Bob'), 'Salut Bob !')
Пример #40
0
 def test_search_translation_without_ns(self):
     resource_loader.init_json_loader()
     config.set('file_format', 'json')
     config.set('filename_format', '{locale}.{format}')
     resource_loader.search_translation('foo')
     self.assertTrue(translations.has('foo'))
Пример #41
0
 def test_missing_placeholder_error(self):
     config.set('error_on_missing_placeholder', True)
     with self.assertRaises(KeyError):
         t('foo.hi')
Пример #42
0
 def test_fallback_from_resource(self):
     config.set('fallback', 'ja')
     self.assertEqual(t('foo.fallback_key'), 'フォールバック')
Пример #43
0
 def setUpClass(cls):
     resource_loader.init_loaders()
     config.set('load_path', [os.path.join(RESOURCE_FOLDER, 'translations')])
     translations.add('foo.hi', 'Hello %{name} !')