Esempio n. 1
0
    def po_catalog_export(self):
        """
        Export a catalog from a project into a PO file
        """
        toast_path = "/home/django/Emencia/po_headquarter/dummy_po/"

        project = Project.objects.get(slug='dummy')
        catalog = Catalog.objects.get(project=project, locale='fr')

        #mime_dict = json.loads(catalog.mime_headers)

        forged_catalog = BabelCatalog(locale=catalog.locale,
                                      header_comment=catalog.header_comment,
                                      project=project.name,
                                      version="0.2.0")

        print("before add:", len(forged_catalog))

        for entry in catalog.translationmsg_set.all().order_by('id'):
            locations = [
                tuple(item) for item in json.loads(entry.template.locations)
            ]
            forged_catalog.add(entry.template.message,
                               string=entry.message,
                               locations=locations,
                               flags=entry.template.flags)

        print("after add:", len(forged_catalog))
        print("errors:", [item for item in forged_catalog.check()])

        print()
        print("---------------- Original")
        fpw = StringIO()
        write_po(fpw,
                 forged_catalog,
                 sort_by_file=False,
                 ignore_obsolete=True,
                 include_previous=False)
        print(fpw.getvalue())
        fpw.close()

        print()
        print("---------------- Updated")
        fp3 = open(os.path.join(toast_path, '0-3-0.pot'), 'r')
        template_catalog_3 = read_po(fp3)
        forged_catalog.update(template_catalog_3)

        fpw = StringIO()
        write_po(fpw,
                 forged_catalog,
                 sort_by_file=False,
                 ignore_obsolete=True,
                 include_previous=False)
        print(fpw.getvalue())
        fpw.close()
Esempio n. 2
0
 def po_catalog_export(self):
     """
     Export a catalog from a project into a PO file
     """
     toast_path = "/home/django/Emencia/po_headquarter/dummy_po/"
     
     project = Project.objects.get(slug='dummy')
     catalog = Catalog.objects.get(project=project, locale='fr')
     
     #mime_dict = json.loads(catalog.mime_headers)
     
     forged_catalog = BabelCatalog(
         locale=catalog.locale, 
         header_comment=catalog.header_comment,
         project=project.name,
         version="0.2.0"
     )
     
     print "before add:", len(forged_catalog)
     
     for entry in catalog.translationmsg_set.all().order_by('id'):
         locations = [tuple(item) for item in json.loads(entry.template.locations)]
         forged_catalog.add(entry.template.message, string=entry.message, locations=locations, flags=entry.template.flags)
     
     print "after add:", len(forged_catalog)
     print "errors:", [item for item in forged_catalog.check()]
     
     print
     print "---------------- Original"
     fpw = StringIO()
     write_po(fpw, forged_catalog, sort_by_file=False, ignore_obsolete=True, include_previous=False)
     print fpw.getvalue()
     fpw.close()
     
     print
     print "---------------- Updated"
     fp3 = open(os.path.join(toast_path, '0-3-0.pot'), 'r')
     template_catalog_3 = read_po(fp3)
     forged_catalog.update(template_catalog_3)
     
     fpw = StringIO()
     write_po(fpw, forged_catalog, sort_by_file=False, ignore_obsolete=True, include_previous=False)
     print fpw.getvalue()
     fpw.close()