import requests
import re
from homepagebuilder.interfaces import require
from homepagebuilder.interfaces import Logger
logger= Logger('AutoTranslation')
parsers_module = require('markdown_parsers')
handles = parsers_module.handles
Text = parsers_module.Text
PATTERN = re.compile(r"
([a-zA-Z\d\s\-]+) | \s*([^\(<]+)\s* | \s*(?:(?:[^<]+)\s* | )?")
EXTRA_TRANSLATIONS ={
"data value": "数据值",
"block state": "方块状态",
"argument": "参数",
"parameter": "参数",
"sprite": "精灵图",
"variant": "变种",
"job site": "工作站点",
"workplace": "工作站点"
}
content = requests.get('https://zh.minecraft.wiki/w/Minecraft_Wiki:译名标准化').content.decode("utf-8")
TRANSLATIONS = {}
for en,zh in re.findall(PATTERN,content):
en = en.lower()
zh = zh.replace("\n","")
if zh == '-':
TRANSLATIONS[en] = en
else:
TRANSLATIONS[en] = zh
logger.info(f"译名标准化已载入 {len(TRANSLATIONS)} 条标准译名。")
TRANSLATIONS.update(EXTRA_TRANSLATIONS)
@handles('n')
class AutoText(Text):
def convert(self):
name = self.content
if translation := TRANSLATIONS.get(name):
return translation
else:
return f'{name}'