本文整理汇总了Python中transifex.resources.formats.pofile.POHandler类的典型用法代码示例。如果您正苦于以下问题:Python POHandler类的具体用法?Python POHandler怎么用?Python POHandler使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了POHandler类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_wrong_po
def test_wrong_po(self):
handler = POHandler(os.path.join(
os.path.dirname(__file__), 'wrong.pot')
)
handler.bind_resource(self.resource)
handler.set_language(self.resource.source_language)
self.assertRaises(PoParseError, handler.parse_file, is_source=True)
示例2: test_pot_parser
def test_pot_parser(self):
"""POT file tests."""
# Parsing POT file
handler = POHandler('%s/tests.pot' %
os.path.split(__file__)[0])
handler.set_language(self.resource.source_language)
handler.parse_file(is_source=True)
self.stringset = handler.stringset
entities = 0
# POT has no associated language
self.assertEqual(self.stringset.target_language, None)
for s in self.stringset.strings:
# Testing if source entity and translation are the same
if not s.pluralized:
self.assertEqual(s.source_entity, s.translation)
# Testing plural number
if s.source_entity == '{0} results':
self.assertEqual(s.rule, 5)
# Counting number of entities
if s.rule == 5:
entities += 1
# Asserting number of entities - POT file has 3 entries.
self.assertEqual(entities, 6)
示例3: test_order
def test_order(self):
handler = POHandler(os.path.join(
os.path.dirname(__file__), 'copyright.po')
)
handler.bind_resource(self.resource)
handler.set_language(self.resource.source_language)
handler.parse_file(is_source=True)
handler.save2db(is_source=True)
cr = Copyright.objects.assign(
language=self.language_en, resource=self.resource,
owner='CC', year='2014')
cr = Copyright.objects.assign(
language=self.language_en, resource=self.resource,
owner='ZZ', year='2014')
cr = Copyright.objects.assign(
language=self.language_en, resource=self.resource,
owner='BA', year='2015')
compiled_template = handler.compile()
lines_iterator = compiled_template.split("\n")
for n, line in enumerate(lines_iterator):
if line == "# Translators:":
break
line = lines_iterator[n + 1]
self.assertTrue('AB' in line)
line = lines_iterator[n + 3]
self.assertTrue('BA' in line)
line = lines_iterator[n + 4]
self.assertTrue('CC' in line)
line = lines_iterator[n + 6]
self.assertTrue('ZZ' in line)
示例4: test_po_parser_ar
def test_po_parser_ar(self):
"""Tests for ar PO file."""
handler = POHandler('%s/ar.po' %
os.path.split(__file__)[0])
handler.set_language(self.language_ar)
handler.parse_file()
self.stringset = handler.stringset
nplurals = 0
for s in self.stringset.strings:
# Testing if source entity and translation are NOT the same
self.assertNotEqual(s.source_entity, s.translation)
# Testing plural number
if s.source_entity == '{0} results':
self.assertEqual(s.rule, 5)
if s.source_entity == '{0} result' and s.pluralized:
nplurals += 1
# Asserting nplurals based on the number of plurals of the
# '{0 results}' entity - ar has nplurals=6.
self.assertEqual(nplurals, 6)
示例5: test_po_parser_pt_BR_with_warning_messages
def test_po_parser_pt_BR_with_warning_messages(self):
"""
Tests if nplural warning is raised for 'pt_BR' PO file loaded as an
'ar' language.
"""
handler = POHandler('%s/pt_BR.po' % os.path.split(__file__)[0])
handler.set_language(self.language_ar)
handler.parse_file()
self.assertTrue('nplural' in handler.warning_messages.keys())
示例6: test_copyright_on_save
def test_copyright_on_save(self):
handler = POHandler(os.path.join(
os.path.dirname(__file__), 'copyright.po')
)
handler.bind_resource(self.resource)
handler.set_language(self.resource.source_language)
handler.parse_file(is_source=True)
handler.save2db(is_source=True)
self.assertIn("AB", handler.compile())
示例7: test_string_freeze_breakage_outsourced
def test_string_freeze_breakage_outsourced(self):
"""Check string breakage for outsourced projects."""
timestamp = datetime.datetime.now() - datetime.timedelta(hours=1)
timestamp2 = datetime.datetime.now() + datetime.timedelta(hours=1)
self.release.stringfreeze_date = timestamp
self.release.develfreeze_date = timestamp2
self.release.save()
## Loading POT (en_US) into the self.resource3
handler = POHandler('%s/tests.pot' % self.pofile_path)
handler.set_language(self.language_en)
handler.parse_file(is_source=True)
# Resource 3 - Outsourced
handler.bind_resource(self.resource3)
# We are listing to the post_save_translation signal raised in
# _post_save2db method.
handler.save2db(is_source=True)
# Sorted mails list
mails = key_sort(mail.outbox, 'to')
self.assertEqual(len(mails), 3)
self.assertEqual(mails[0].subject, self._gen_assert_msg(
'[localhost] Release string '
'freeze breakage: Release1'))
self.assertEqual(mails[0].to, ['[email protected]'])
self.assertEqual(mails[1].to, ['[email protected]'])
self.assertEqual(mails[2].to, ['[email protected]'])
示例8: test_general_po
def test_general_po(self):
"""
Test with a PO file containing multiple different 'breakable'
cases.
"""
# Empty our resource
SourceEntity.objects.filter(resource=self.resource).delete()
# Import file with two senteces
handler = POHandler('%s/general/test.pot' %
os.path.split(__file__)[0])
handler.bind_resource(self.resource)
handler.set_language(self.resource.source_language)
handler.parse_file(is_source=True)
handler.save2db(is_source=True)
exported_file = polib.pofile(handler.compile())
for entry in exported_file:
se = SourceEntity.objects.get(
string = entry.msgid,
context = entry.msgctxt or 'None',
resource = self.resource
)
if se.pluralized:
plurals = Translation.objects.filter(
source_entity__resource = self.resource,
language = self.resource.source_language,
source_entity__string = entry.msgid
).order_by('rule')
plural_keys = {}
# last rule excluding other(5)
lang_rules = self.resource.source_language.get_pluralrules_numbers()
# Initialize all plural rules up to the last
for p,n in enumerate(lang_rules):
plural_keys[str(p)] = ""
for n,p in enumerate(plurals):
plural_keys[str(n)] = p.string
self.assertEqual(entry.msgstr_plural, plural_keys)
else:
trans = se.get_translation(
self.resource.source_language.code, rule=5
)
self.assertEqual(entry.msgstr, trans.string.encode('utf-8'), "Source '%s'"\
" differs from translation %s" % (entry.msgstr,
trans.string.encode('utf-8')))
示例9: _load_pot
def _load_pot(self):
test_file = os.path.join(TEST_FILES_PATH, 'test.pot')
# First empty our resource
self.resource.entities.all().delete()
# Load file
handler = POHandler(test_file)
handler.bind_resource(self.resource)
handler.set_language(self.resource.source_language)
handler.parse_file(is_source=True)
handler.save2db(is_source=True)
return handler
示例10: test_poheader_load_soureclang
def test_poheader_load_soureclang(self):
"""Test load of existing PO file with copyright headers."""
test_file = os.path.join(settings.TX_ROOT,
'./resources/tests/lib/pofile/copyright.po')
handler = POHandler(test_file)
handler.bind_resource(self.resource)
handler.set_language(self.resource.source_language)
handler.parse_file(is_source=True)
handler.save2db(is_source=True)
c = Copyright.objects.filter(
resource=self.resource, language=self.resource.source_language
)
self.assertEquals(len(c), 3)
示例11: test_po_parser_pt_BR
def test_po_parser_pt_BR(self):
"""Tests for pt_BR PO file."""
handler = POHandler('%s/pt_BR.po' %
os.path.split(__file__)[0])
handler.set_language(self.language)
handler.parse_file()
self.stringset = handler.stringset
nplurals = 0
for s in self.stringset.strings:
# Testing plural number
if s.source_entity == '{0} results':
self.assertEqual(s.rule, 5)
if s.source_entity == '{0} result' and s.pluralized:
nplurals += 1
# Asserting nplurals based on the number of plurals of the
# '{0 results}' entity - pt_BR has nplurals=2
self.assertEqual(nplurals, 2)
示例12: setUp
def setUp(self):
self.handler = POHandler("test.po")
self.matched_lines = [
'# John Doe, 2011.',
'# John Doe <[email protected]>, 2011.',
'# John Doe <[email protected]>, 2011, 2012.',
'# Jogn Doe, 2011',
]
self.unmatched_lines = [
'#John Doe, 2011',
'# John <john>, 20123',
'# Copyright, 2011, John Doe.',
'asdas, 2011',
]
super(TestPOFileCopyright, self).setUp()
示例13: test_string_freeze_breakage
def test_string_freeze_breakage(self):
"""Check string breakage for non-outsourced projects."""
timestamp = datetime.datetime.now() - datetime.timedelta(hours=1)
timestamp2 = datetime.datetime.now() + datetime.timedelta(hours=1)
self.release.stringfreeze_date = timestamp
self.release.develfreeze_date = timestamp2
self.release.save()
## Loading POT (en_US) into the self.resource4
handler = POHandler('%s/tests.pot' % self.pofile_path)
handler.set_language(self.language_en)
handler.parse_file(is_source=True)
# Resource 4 - Not outsourced
handler.bind_resource(self.resource4)
# We are listing to the post_save_translation signal raised in
# _post_save2db method.
handler.save2db(is_source=True)
# Should not send any notification once the project do not outsources
# its teams
self.assertEqual(len(mail.outbox), 0)
示例14: test_logical_ids
def test_logical_ids(self):
"""Test po files with logical ids instead of normal strings"""
# Empty our resource
SourceEntity.objects.filter(resource=self.resource).delete()
# Make sure that we have no suggestions to begin with
self.assertEqual(Suggestion.objects.filter(source_entity__in=
SourceEntity.objects.filter(resource=self.resource).values('id')).count(), 0)
# Import file with two senteces
handler = POHandler('%s/logical_ids/tests.pot' %
os.path.split(__file__)[0])
handler.bind_resource(self.resource)
handler.set_language(self.resource.source_language)
handler.parse_file(is_source=True)
handler.save2db(is_source=True)
# import pt_BR translation
handler = POHandler('%s/logical_ids/pt_BR.po' %
os.path.split(__file__)[0])
handler.bind_resource(self.resource)
handler.set_language(self.language)
handler.parse_file()
handler.save2db()
# Make sure that we have all translations in the db
self.assertEqual(Translation.objects.filter(source_entity__in=
SourceEntity.objects.filter(resource=self.resource).values('id')).count(), 2)
source = SourceEntity.objects.get(resource=self.resource)
en_trans = Translation.objects.get(source_entity__resource=self.resource,
language = self.resource.source_language)
pt_trans = Translation.objects.get(source_entity__resource=self.resource,
language = self.language)
# Check to see that the correct strings appear as the translations and
# not the logical id
self.assertEqual(en_trans.string, "Hello, World!")
self.assertEqual(pt_trans.string, "Holas, Amigos!")
self.assertEqual(source.string, "source_1")
示例15: test_headers_on_pot
def test_headers_on_pot(self):
handler = POHandler(os.path.join(
os.path.dirname(__file__), 'tests.pot')
)
handler.bind_resource(self.resource)
handler.set_language(self.resource.source_language)
handler.parse_file(is_source=True)
handler.save2db(is_source=True)
handler.compile()
self.assertFalse("FIRST AUTHOR" in handler.compiled_template)
handler.compile_pot()
self.assertTrue("FIRST AUTHOR" in handler.compiled_template)