Lv100版本源码上传
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
from ctypes import sizeof
|
||||
from operator import le
|
||||
import os
|
||||
import json
|
||||
|
||||
|
||||
class Language():
|
||||
def __init__(self):
|
||||
self.dicts = {}
|
||||
self.dicts[""] = ""
|
||||
pass
|
||||
|
||||
def load_json(self, path):
|
||||
if os.path.exists(path):
|
||||
with open(path, encoding='utf-8') as fp:
|
||||
self.dicts.update(json.load(fp))
|
||||
fp.close()
|
||||
|
||||
def __getitem__(self, key):
|
||||
return self.dicts.get(key, key)
|
||||
|
||||
## key: 原始文本 使用{word}的格式 可以格式化为对应的值
|
||||
## **kwargs: 键值对可变参数 在{word} 之前 将#key转换为对应的value
|
||||
def trans(self, text, **kwargs):
|
||||
if isinstance(text, list):
|
||||
return list(map(lambda i: self.trans(i, **kwargs), text))
|
||||
text = str(text)
|
||||
value = text
|
||||
if self.dicts.__contains__(text):
|
||||
value = self.dicts.get(text)
|
||||
if value == '':
|
||||
value = text
|
||||
else:
|
||||
for kw in kwargs.keys():
|
||||
_old = "${}".format(kw)
|
||||
_new = str(kwargs.get(kw))
|
||||
text = text.replace(_old, _new)
|
||||
try:
|
||||
value = text.format_map(self)
|
||||
except Exception:
|
||||
# 后续待完善
|
||||
return value
|
||||
value = value.replace("$", "{}")
|
||||
return value
|
||||
Reference in New Issue
Block a user