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['ほげ'])
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')
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)
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')
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)
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)
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)
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")
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")
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'})
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' })
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")
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")
def test_fallback(self): config.set('fallback', 'fr') self.assertEqual(t('foo.hello', name='Bob'), 'Salut Bob !')
def test_locale_change(self): config.set('locale', 'fr') self.assertEqual(t('foo.hello', name='Bob'), 'Salut Bob !')
def test_missing_translation_error(self): config.set('error_on_missing_translation', True) with self.assertRaises(KeyError): t('foo.inexistent')
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')
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"))
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)
def test_invalid_formatter(self): class MyInvalidFormatter(Template): pass config.set('translation_formatter', MyInvalidFormatter) self.assertEqual(t('try_formatter', name="bar"), "foo !name")
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'))
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"))
def test_custom_formatter(self): class MyFormatter(Template): delimiter = '!' config.set('translation_formatter', MyFormatter) self.assertEqual(t('try_formatter', name="bar"), "foo bar")
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'))
def test_fallback_from_resource(self): config.set('fallback', 'ja') self.assertEqual(t('foo.fallback_key'), 'フォールバック')
def test_missing_placeholder_error(self): config.set('error_on_missing_placeholder', True) with self.assertRaises(KeyError): t('foo.hi')
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")
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)
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['ほげ'])
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"))
def test_custom_delimiter(self): config.set('translation_formatter', None) config.set('placeholder_delimiter', '^') self.assertEqual(t('try_delimiter', name="bar"), "foo bar")
def setUpClass(cls): resource_loader.init_loaders() config.set('load_path', [os.path.join(RESOURCE_FOLDER, 'translations')]) translations.add('foo.hi', 'Hello %{name} !')