Пример #1
0
 def translate_folder(path, language, path_trans, lang_trans):
     ob = portal.unrestrictedTraverse(path, None)
     ob_trans = portal.unrestrictedTraverse(path_trans, None)
     for item in ob.objectIds():
         subob = ob.unrestrictedTraverse(item, None)
         subob_trans = ob_trans.unrestrictedTraverse(item, None)
         if not subob_trans:
             log.warning('Object %s not found. No translation for %s '
                         'will be set' % (
                             "/".join(path_trans + [item]), lang_trans))
         else:
             if not subob.hasTranslation(lang_trans):
                 linkTranslations(
                     portal,
                     [[(path + [item], language),
                       (path_trans + [item], lang_trans)]])
                 log.debug('Setting translation for %s (%s): %s (%s)'
                           '' % (path + [item],
                                 language,
                                 path_trans + [item],
                                 lang_trans))
             else:
                 log.warning('%s is already translated into %s!' % (
                     "/".join(path + [item]), lang_trans))
             if subob and subob.portal_type == 'Folder':
                 translate_folder(
                     path + [item],
                     language,
                     path_trans + [item],
                     lang_trans)
Пример #2
0
 def testSubFolderLinking(self):
     todo=[[(["images", "logo"], "en"), (["plaatjes", "logo"], "nl")]]
     linkTranslations(self.folder, todo)
     self.assertEqual(self.folder.images.logo.getLanguage(), "en")
     self.assertEqual(self.folder.plaatjes.logo.getLanguage(), "nl")
     self.assertEqual(self.folder.images.logo.getTranslation("nl"),
             self.folder.plaatjes.logo)
     self.assertEqual(self.folder.plaatjes.logo.getTranslation("en"),
             self.folder.images.logo)
     self.assertEqual(self.folder.images.logo.isCanonical(), True)
Пример #3
0
 def testSubFolderLinking(self):
     todo = [[(["images", "logo"], "en"), (["plaatjes", "logo"], "nl")]]
     linkTranslations(self.folder, todo)
     self.assertEqual(self.folder.images.logo.getLanguage(), "en")
     self.assertEqual(self.folder.plaatjes.logo.getLanguage(), "nl")
     self.assertEqual(self.folder.images.logo.getTranslation("nl"),
                      self.folder.plaatjes.logo)
     self.assertEqual(self.folder.plaatjes.logo.getTranslation("en"),
                      self.folder.images.logo)
     self.assertEqual(self.folder.images.logo.isCanonical(), True)
Пример #4
0
 def testSameFolderLinking(self):
     todo=[[(["frontpage"], "en"), (["voorpagina"], "nl")]]
     linkTranslations(self.folder, todo)
     self.assertEqual(self.folder.frontpage.getLanguage(), "en")
     self.assertEqual(self.folder.voorpagina.getLanguage(), "nl")
     self.assertEqual(self.folder.frontpage.isTranslation(), True)
     self.assertEqual(self.folder.voorpagina.isTranslation(), True)
     self.assertEqual(self.folder.voorpagina.getTranslation("en"),
             self.folder.frontpage)
     self.assertEqual(self.folder.frontpage.getTranslation("nl"),
             self.folder.voorpagina)
     self.assertEqual(self.folder.frontpage.isCanonical(), True)
Пример #5
0
 def testSameFolderLinking(self):
     todo = [[(["frontpage"], "en"), (["voorpagina"], "nl")]]
     linkTranslations(self.folder, todo)
     self.assertEqual(self.folder.frontpage.getLanguage(), "en")
     self.assertEqual(self.folder.voorpagina.getLanguage(), "nl")
     self.assertEqual(self.folder.frontpage.isTranslation(), True)
     self.assertEqual(self.folder.voorpagina.isTranslation(), True)
     self.assertEqual(self.folder.voorpagina.getTranslation("en"),
                      self.folder.frontpage)
     self.assertEqual(self.folder.frontpage.getTranslation("nl"),
                      self.folder.voorpagina)
     self.assertEqual(self.folder.frontpage.isCanonical(), True)
Пример #6
0
 def linkTranslations(self, PID):
     articles = self.portal_catalog(Type='Volume', getPID=PID)
     LOG('DIPP', INFO, PID)
     LOG('DIPP', INFO, len(articles))
     lang = self.Language()
     path = self.getPhysicalPath()
     todo = []
     translation = [(path, lang)]
     for article in articles:
         obj = article.getObject()
         lang = obj.Language()
         path = obj.getPhysicalPath()
         translation.append((path, lang))
         todo.append(translation)
     LOG('DIPP', INFO, todo)
     utils.linkTranslations(self, todo)
Пример #7
0
def setImportedContentLanguages(context):
    portal = context.getSite()
    for id in imported_content:
        language = 'de'
        ob = portal.unrestrictedTraverse(id, None)
        if not ob:
            log.warning('Object %s not found. Please run import step "Recensio'
                        ' initial content"' % (id))
            continue
        if id in ['images']:
            language = ''
            doSetLanguage(ob, language)

        def translate_folder(path, language, path_trans, lang_trans):
            ob = portal.unrestrictedTraverse(path, None)
            ob_trans = portal.unrestrictedTraverse(path_trans, None)
            for item in ob.objectIds():
                subob = ob.unrestrictedTraverse(item, None)
                subob_trans = ob_trans.unrestrictedTraverse(item, None)
                if not subob_trans:
                    log.warning('Object %s not found. No translation for %s '
                                'will be set' % (
                                    "/".join(path_trans + [item]), lang_trans))
                else:
                    if not subob.hasTranslation(lang_trans):
                        linkTranslations(
                            portal,
                            [[(path + [item], language),
                              (path_trans + [item], lang_trans)]])
                        log.debug('Setting translation for %s (%s): %s (%s)'
                                  '' % (path + [item],
                                        language,
                                        path_trans + [item],
                                        lang_trans))
                    else:
                        log.warning('%s is already translated into %s!' % (
                            "/".join(path + [item]), lang_trans))
                    if subob and subob.portal_type == 'Folder':
                        translate_folder(
                            path + [item],
                            language,
                            path_trans + [item],
                            lang_trans)

        if language:
            for lang_trans in ['en', 'fr']:
                id_trans = id + '-' + lang_trans
                ob_trans = portal.unrestrictedTraverse(id_trans, None)
                if ob_trans:
                    if not ob.hasTranslation(lang_trans):
                        linkTranslations(
                            portal,
                            [[([id], language), ([id_trans], lang_trans)]])
                    else:
                        log.warning('%s is already translated into %s!' % (
                            id, lang_trans))
                    if ob.portal_type == 'Folder':
                        translate_folder(
                            [id], language, [id_trans], lang_trans)
                else:
                    log.warning('Object %s not found. No translation for %s '
                                'will be set' % (id_trans, lang_trans))
    portal.setLanguage('de')