Ejemplo n.º 1
0
    def actionPatchFile(self, site, inner_path, file_generator):
        content_json = site.content_manager.contents.get("content.json")
        lang_file = "languages/%s.json" % translate.lang
        lang_file_exist = False
        if site.settings.get("own"):  # My site, check if the file is exist (allow to add new lang without signing)
            if site.storage.isFile(lang_file):
                lang_file_exist = True
        else:  # Not my site the reference in content.json is enough (will wait for download later)
            if lang_file in content_json.get("files", {}):
                lang_file_exist = True

        if not lang_file_exist or inner_path not in content_json.get("translate", []):
            for part in file_generator:
                if inner_path.endswith(".html"):
                    yield part.replace(b"lang={lang}", b"lang=" + translate.lang.encode("utf8"))  # lang get parameter to .js file to avoid cache
                else:
                    yield part
        else:
            s = time.time()
            data = b"".join(list(file_generator)).decode("utf8")

            # if site.content_manager.contents["content.json"]["files"].get(lang_file):
            site.needFile(lang_file, priority=10)
            try:
                if inner_path.endswith("js"):
                    data = translate.translateData(data, site.storage.loadJson(lang_file), "js")
                else:
                    data = translate.translateData(data, site.storage.loadJson(lang_file), "html")
            except Exception as err:
                site.log.error("Error loading translation file %s: %s" % (lang_file, err))

            self.log.debug("Patched %s (%s bytes) in %.3fs" % (inner_path, len(data), time.time() - s))
            yield data.encode("utf8")
Ejemplo n.º 2
0
    def actionPatchFile(self, site, inner_path, file_generator):
        content_json = site.content_manager.contents["content.json"]
        lang_file = "languages/%s.json" % translate.lang
        lang_file_exist = False
        if site.settings.get("own"):  # My site, check if the file is exist (allow to add new lang without signing)
            if site.storage.isFile(lang_file):
                lang_file_exist = True
        else:  # Not my site the reference in content.json is enough (will wait for download later)
            if lang_file in content_json.get("files", {}):
                lang_file_exist = True

        if not lang_file_exist or inner_path not in content_json.get("translate", []):
            for part in file_generator:
                if inner_path.endswith(".html"):
                    yield part.replace("lang={lang}", "lang=" + str(translate.lang))  # lang get parameter to .js file to avoid cache
                else:
                    yield part
        else:
            s = time.time()
            data = "".join(list(file_generator))

            # if site.content_manager.contents["content.json"]["files"].get(lang_file):
            site.needFile(lang_file, priority=10)
            if inner_path.endswith("js"):
                data = translate.translateData(data, site.storage.loadJson(lang_file), "js")
            else:
                data = translate.translateData(data, site.storage.loadJson(lang_file), "html")
                data = data.replace("lang={lang}", "lang=" + str(translate.lang))  # lang get parameter to .js file to avoid cache

            self.log.debug("Patched %s (%s bytes) in %.3fs" % (inner_path, len(data), time.time() - s))
            yield data
Ejemplo n.º 3
0
 def actionUiMedia(self, path):
     file_generator = super(UiRequestPlugin, self).actionUiMedia(path)
     if translate.lang != "en" and path.endswith(".js"):
         s = time.time()
         data = b"".join(list(file_generator))
         data = translate.translateData(data.decode("utf8"))
         self.log.debug("Patched %s (%s bytes) in %.3fs" % (path, len(data), time.time() - s))
         return iter([data.encode("utf8")])
     else:
         return file_generator
Ejemplo n.º 4
0
 def actionUiMedia(self, path):
     file_generator = super(UiRequestPlugin, self).actionUiMedia(path)
     if translate.lang != "en" and path.endswith(".js"):
         s = time.time()
         data = "".join(list(file_generator))
         data = translate.translateData(data)
         self.log.debug("Patched %s (%s bytes) in %.3fs" % (path, len(data), time.time() - s))
         return iter([data])
     else:
         return file_generator