2021-09-08 23:38:34 +08:00
|
|
|
|
# -------------------------------
|
|
|
|
|
# Difficult Rocket
|
2022-06-27 16:51:14 +08:00
|
|
|
|
# Copyright © 2021-2022 by shenjackyuanjie 3695888@qq.com
|
2021-09-08 23:38:34 +08:00
|
|
|
|
# All rights reserved
|
|
|
|
|
# -------------------------------
|
|
|
|
|
|
2021-09-02 22:47:10 +08:00
|
|
|
|
"""
|
|
|
|
|
writen by shenjackyuanjie
|
|
|
|
|
mail: 3695888@qq.com
|
|
|
|
|
github: @shenjackyuanjie
|
|
|
|
|
gitee: @shenjackyuanjie
|
|
|
|
|
"""
|
|
|
|
|
|
2021-09-28 22:47:19 +08:00
|
|
|
|
from typing import Union
|
2021-09-22 06:21:48 +08:00
|
|
|
|
|
|
|
|
|
from Difficult_Rocket.api.Exp import *
|
2022-04-26 22:05:58 +08:00
|
|
|
|
from Difficult_Rocket.utils import tools
|
2021-09-22 06:21:48 +08:00
|
|
|
|
|
2021-09-28 22:47:19 +08:00
|
|
|
|
"""
|
|
|
|
|
这部分代码使用了中文编程,why?
|
|
|
|
|
你觉得呢?
|
|
|
|
|
"""
|
|
|
|
|
|
2021-09-02 22:47:10 +08:00
|
|
|
|
|
|
|
|
|
class Lang:
|
|
|
|
|
"""
|
|
|
|
|
用于创建一个对应语言的翻译类
|
|
|
|
|
感谢Fallen的MCDR提供idea
|
|
|
|
|
https://github.com/Fallen-Breath/MCDReforged
|
2021-09-22 06:21:48 +08:00
|
|
|
|
可以用
|
|
|
|
|
lang['language'] = 'abc' 或
|
|
|
|
|
lang['lang'] = 'abc'
|
|
|
|
|
的方式直接更改并刷新翻译
|
2021-10-04 20:41:41 +08:00
|
|
|
|
用
|
|
|
|
|
lang.lang(xxx, xxx)来获取翻译过的值
|
2021-09-02 22:47:10 +08:00
|
|
|
|
"""
|
2021-09-05 00:50:05 +08:00
|
|
|
|
|
2022-06-06 09:21:20 +08:00
|
|
|
|
def __init__(self, language: str = 'zh-CN') -> None:
|
2021-10-22 06:36:06 +08:00
|
|
|
|
self.语言 = language
|
2022-06-06 09:21:20 +08:00
|
|
|
|
self.翻译结果 = tools.load_file(f'configs/lang/{language}.toml')
|
|
|
|
|
self.默认翻译 = tools.load_file('configs/lang/zh-CN.toml')
|
2022-06-14 20:52:03 +08:00
|
|
|
|
self.直接返回原始数据 = True
|
2021-09-02 22:47:10 +08:00
|
|
|
|
|
2021-09-22 06:21:48 +08:00
|
|
|
|
def __str__(self) -> str:
|
2021-10-22 06:36:06 +08:00
|
|
|
|
return self.语言
|
2021-09-02 22:47:10 +08:00
|
|
|
|
|
2021-10-22 06:36:06 +08:00
|
|
|
|
def __getitem__(self, item) -> Union[int, str, list, dict]:
|
2021-09-22 06:21:48 +08:00
|
|
|
|
try:
|
|
|
|
|
return self.翻译结果[item]
|
|
|
|
|
except KeyError:
|
2021-09-28 22:47:19 +08:00
|
|
|
|
try:
|
|
|
|
|
return self.默认翻译[item]
|
|
|
|
|
except KeyError:
|
2021-10-22 06:36:06 +08:00
|
|
|
|
raise LanguageError(f'there\'s no key {item} in both {self.语言} and zh-CN')
|
2021-09-02 22:47:10 +08:00
|
|
|
|
|
2022-06-06 09:21:20 +08:00
|
|
|
|
def __setitem__(self, key, value) -> None:
|
2021-09-22 06:21:48 +08:00
|
|
|
|
if key == 'language' or key == 'lang':
|
|
|
|
|
try:
|
2022-06-06 09:21:20 +08:00
|
|
|
|
self.翻译结果 = tools.load_file(f'configs/lang/{value}.toml')
|
2021-10-22 06:36:06 +08:00
|
|
|
|
self.语言 = value
|
2021-09-22 06:21:48 +08:00
|
|
|
|
except FileNotFoundError:
|
2022-06-14 20:52:03 +08:00
|
|
|
|
if self.直接返回原始数据:
|
|
|
|
|
return None
|
2022-06-06 09:21:20 +08:00
|
|
|
|
raise LanguageError(f'{value}\'s language toml file not found')
|
2021-09-22 06:21:48 +08:00
|
|
|
|
else:
|
|
|
|
|
raise NotImplementedError
|
|
|
|
|
|
2021-10-22 06:36:06 +08:00
|
|
|
|
def set_language(self, language) -> None:
|
2021-09-22 06:21:48 +08:00
|
|
|
|
try:
|
2022-06-06 09:21:20 +08:00
|
|
|
|
self.翻译结果 = tools.load_file(f'configs/lang/{language}.toml')
|
2021-10-22 06:36:06 +08:00
|
|
|
|
self.语言 = language
|
2021-09-22 06:21:48 +08:00
|
|
|
|
except FileNotFoundError:
|
2022-06-06 09:21:20 +08:00
|
|
|
|
raise LanguageError(f'{language}\'s language toml file not found')
|
2021-09-22 06:21:48 +08:00
|
|
|
|
|
2021-10-22 06:36:06 +08:00
|
|
|
|
def lang(self, *args) -> Union[int, str, list, dict]:
|
2021-09-28 22:47:19 +08:00
|
|
|
|
try:
|
|
|
|
|
结果 = self.翻译结果
|
|
|
|
|
for 选项 in args:
|
|
|
|
|
结果 = 结果[选项]
|
|
|
|
|
return 结果
|
|
|
|
|
except KeyError:
|
|
|
|
|
try:
|
|
|
|
|
结果 = self.默认翻译
|
|
|
|
|
for 选项 in args:
|
|
|
|
|
结果 = 结果[选项]
|
|
|
|
|
return 结果
|
|
|
|
|
except KeyError:
|
2022-06-14 20:52:03 +08:00
|
|
|
|
if self.直接返回原始数据:
|
|
|
|
|
return args
|
2021-10-22 06:36:06 +08:00
|
|
|
|
raise LanguageError(f'there\'s no key {args} in both {self.语言} and zh-CN')
|
2021-09-28 22:47:19 +08:00
|
|
|
|
|
2021-10-22 06:36:06 +08:00
|
|
|
|
def 翻译(self, *args) -> Union[int, str, list, dict]:
|
|
|
|
|
return self.lang(args)
|
2021-10-04 20:41:41 +08:00
|
|
|
|
|
2021-09-22 06:21:48 +08:00
|
|
|
|
|
2021-10-01 23:12:01 +08:00
|
|
|
|
tr = Lang('zh-CN')
|
|
|
|
|
|
|
|
|
|
# font's value
|
|
|
|
|
|
2021-10-06 18:36:10 +08:00
|
|
|
|
HOS = 'HarmonyOS Sans'
|
|
|
|
|
HOS_S = 'HarmonyOS Sans SC'
|
|
|
|
|
HOS_T = 'HarmonyOS Sans TC'
|
|
|
|
|
HOS_C = 'HarmonyOS Sans Condensed'
|
2021-10-01 23:12:01 +08:00
|
|
|
|
|
|
|
|
|
鸿蒙字体 = HOS
|
|
|
|
|
鸿蒙简体 = HOS_S
|
|
|
|
|
鸿蒙繁体 = HOS_T
|
|
|
|
|
鸿蒙窄体 = HOS_C
|
2021-11-06 19:07:32 +08:00
|
|
|
|
|
|
|
|
|
CC = 'Cascadia Code'
|
|
|
|
|
CM = 'Cascadia Mono'
|
|
|
|
|
CCPL = 'Cascadia Code PL'
|
|
|
|
|
CMPL = 'Cascadia Mono PL'
|
|
|
|
|
|
|
|
|
|
微软等宽 = CC
|
|
|
|
|
微软等宽无线 = CM
|
|
|
|
|
微软等宽带电线 = CCPL
|
|
|
|
|
微软等宽带电线无线 = CMPL
|