コード例 #1
0
ファイル: __init__.py プロジェクト: hfeeki/transifex
 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')
     handler.compile()
     lines_iterator = handler.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)
コード例 #2
0
ファイル: __init__.py プロジェクト: hfeeki/transifex
 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)
     handler.compile()
     self.assertTrue("AB" in handler.compiled_template)
コード例 #3
0
ファイル: __init__.py プロジェクト: hfeeki/transifex
    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)

        handler.compile()

        exported_file = polib.pofile(handler.compiled_template)

        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')))
コード例 #4
0
ファイル: __init__.py プロジェクト: hfeeki/transifex
 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)
コード例 #5
0
 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)
     self.assertNotIn("FIRST AUTHOR", handler.compile())
     handler = POTHandler(
         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)
     self.assertIn("FIRST AUTHOR", handler.compile())
コード例 #6
0
 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)
コード例 #7
0
 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())
コード例 #8
0
    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')))