#!/usr/bin/env python3 import os import json import re import jinja2 default_lang_dict = {} lang_dict = {} def load_lang(lang): with open("../lang/" + lang + ".json", "r") as f: return json.load(f) def tr(option): try: if option in lang_dict['web'] and lang_dict['web'][option]: string = lang_dict['web'][option] else: string = default_lang_dict['web'][option] return string except KeyError: raise KeyError("Missed strings in language file: '{string}'. ".format(string=option)) if __name__ == "__main__": html_files = os.listdir('.') for html_file in html_files: match = re.search("(.+)\.template\.html", html_file) if match is None: continue print("Populating " + html_file + " with translations...") basename = match[1] with open(html_file, "r") as f: html = f.read() lang_files = os.listdir('../lang') lang_list = [] default_lang_dict = load_lang("en_US") for lang_file in lang_files: match = re.search("([a-z]{2}_[A-Z]{2})\.json", lang_file) if match: lang_list.append(match[1]) template = jinja2.Template(html) for lang in lang_list: print(" - Populating " + lang + "...") lang_dict = load_lang(lang) with open(basename + "." + lang + ".html", "w") as f: f.write(template.render(tr=tr)) print("Done.")