perf: 国际化翻译

This commit is contained in:
feng
2023-11-22 18:22:51 +08:00
parent efc7ca1164
commit 18f6ffe0ce
14 changed files with 150 additions and 56 deletions

View File

@@ -5,20 +5,21 @@ from django.conf import settings
from jinja2 import Environment
def translate(key, i18n):
lang = settings.LANGUAGE_CODE[:2]
def translate(key, i18n, lang):
lang = settings.LANGUAGE_CODE if lang is None else lang
lang = lang[:2]
lang_data = i18n.get(key, {})
return lang_data.get(lang, key)
def yaml_load_with_i18n(stream):
def yaml_load_with_i18n(stream, lang):
ori_text = stream.read()
stream = io.StringIO(ori_text)
yaml_data = yaml.safe_load(stream)
i18n = yaml_data.get('i18n', {})
env = Environment()
env.filters['trans'] = lambda key: translate(key, i18n)
env.filters['trans'] = lambda key: translate(key, i18n, lang)
template = env.from_string(ori_text)
yaml_data = template.render()
yaml_f = io.StringIO(yaml_data)