add locale config field
This commit is contained in:
parent
90052c2951
commit
bd918c83b1
5 changed files with 21 additions and 14 deletions
|
@ -29,6 +29,7 @@ langsmith_api_key =
|
|||
[cfg]
|
||||
base_superuser = "QQ|2596322644"
|
||||
debug = false
|
||||
locale = "zh_cn"
|
||||
cache_path = "./cache/"
|
||||
command_prefix = ["~", "~"]
|
||||
confirm_command = ["是", "对", "對", "yes", "Yes", "YES", "y", "Y"]
|
||||
|
|
|
@ -6,7 +6,7 @@ from typing import Union, Dict
|
|||
|
||||
from core.exceptions import InvalidCommandFormatError
|
||||
from core.types import MessageSession, Module
|
||||
from core.utils.i18n import Locale
|
||||
from core.utils.i18n import Locale, default_locale
|
||||
from .args import parse_argv, Template, templates_to_str, DescPattern
|
||||
from ..logger import Logger
|
||||
|
||||
|
@ -21,7 +21,7 @@ class CommandParser:
|
|||
self.origin_template = args
|
||||
self.msg: Union[MessageSession, None] = msg
|
||||
self.options_desc = []
|
||||
self.lang = self.msg.locale if self.msg is not None else Locale('zh_cn')
|
||||
self.lang = self.msg.locale if self.msg is not None else Locale(default_locale)
|
||||
help_docs = {}
|
||||
for match in (
|
||||
args.command_list.set if self.msg is None else args.command_list.get(
|
||||
|
|
|
@ -10,13 +10,18 @@ from config import Config
|
|||
from .text import remove_suffix
|
||||
|
||||
|
||||
default_locale = Config('locale')
|
||||
if not default_locale:
|
||||
default_locale = 'zh_cn'
|
||||
|
||||
|
||||
# Load all locale files into memory
|
||||
|
||||
# We might change this behavior in the future and read them on demand as
|
||||
# locale files get too large
|
||||
|
||||
class LocaleNode():
|
||||
'''本地化树节点'''
|
||||
class LocaleNode:
|
||||
"""本地化树节点"""
|
||||
value: str
|
||||
children: dict
|
||||
|
||||
|
@ -25,11 +30,11 @@ class LocaleNode():
|
|||
self.children = {}
|
||||
|
||||
def query_node(self, path: str):
|
||||
'''查询本地化树节点'''
|
||||
"""查询本地化树节点"""
|
||||
return self._query_node(path.split('.'))
|
||||
|
||||
def _query_node(self, path: list):
|
||||
'''通过路径队列查询本地化树节点'''
|
||||
"""通过路径队列查询本地化树节点"""
|
||||
if len(path) == 0:
|
||||
return self
|
||||
nxt_node = path[0]
|
||||
|
@ -39,11 +44,11 @@ class LocaleNode():
|
|||
return None
|
||||
|
||||
def update_node(self, path: str, write_value: str):
|
||||
'''更新本地化树节点'''
|
||||
"""更新本地化树节点"""
|
||||
return self._update_node(path.split('.'), write_value)
|
||||
|
||||
def _update_node(self, path: list, write_value: str):
|
||||
'''通过路径队列更新本地化树节点'''
|
||||
"""通过路径队列更新本地化树节点"""
|
||||
if len(path) == 0:
|
||||
self.value = write_value
|
||||
return
|
||||
|
@ -115,7 +120,7 @@ class Locale:
|
|||
return key in self.data
|
||||
|
||||
def t(self, key: Union[str, dict], fallback_failed_prompt=True, *args, **kwargs) -> str:
|
||||
'''获取本地化字符串'''
|
||||
"""获取本地化字符串"""
|
||||
if isinstance(key, dict):
|
||||
if (ft := key.get(self.locale)) is not None:
|
||||
return ft
|
||||
|
@ -128,7 +133,7 @@ class Locale:
|
|||
return Template(localized).safe_substitute(*args, **kwargs)
|
||||
|
||||
def get_locale_node(self, path: str):
|
||||
'''获取本地化节点'''
|
||||
"""获取本地化节点"""
|
||||
return self.data.query_node(path)
|
||||
|
||||
def get_string_with_fallback(self, key: str, fallback_failed_prompt) -> str:
|
||||
|
@ -166,4 +171,4 @@ def tl_str(locale: Locale, text: str, fallback_failed_prompt=False) -> str:
|
|||
return text
|
||||
|
||||
|
||||
__all__ = ['Locale', 'load_locale_file', 'get_available_locales', 'tl_str']
|
||||
__all__ = ['Locale', 'load_locale_file', 'get_available_locales', 'tl_str', 'default_locale']
|
||||
|
|
|
@ -3,6 +3,7 @@ from sqlalchemy.dialects.mysql import LONGTEXT
|
|||
|
||||
from database.orm import Session, DB_LINK
|
||||
from database.orm_base import Base
|
||||
from core.utils.i18n import default_locale
|
||||
|
||||
is_mysql = DB_LINK.startswith('mysql')
|
||||
|
||||
|
@ -25,7 +26,7 @@ class TargetInfo(Base):
|
|||
options = Column(LONGTEXT if is_mysql else Text, default='{}')
|
||||
custom_admins = Column(LONGTEXT if is_mysql else Text, default='[]')
|
||||
muted = Column(Boolean, default=False)
|
||||
locale = Column(String(512), default='zh_cn')
|
||||
locale = Column(String(512), default=default_locale)
|
||||
petal = Column(Integer, default=0)
|
||||
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ from core.builtins import Url
|
|||
from core.dirty_check import check
|
||||
from core.logger import Logger
|
||||
from core.utils.http import get_url
|
||||
from core.utils.i18n import Locale
|
||||
from core.utils.i18n import Locale, default_locale
|
||||
from modules.wiki.utils.dbutils import WikiSiteInfo as DBSiteInfo, Audit
|
||||
|
||||
|
||||
|
@ -43,7 +43,7 @@ class QueryInfo:
|
|||
self.headers = headers if headers is not None else {
|
||||
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6'}
|
||||
self.prefix = prefix
|
||||
self.locale = Locale(locale if locale is not None else 'zh_cn')
|
||||
self.locale = Locale(locale if locale is not None else default_locale)
|
||||
|
||||
|
||||
class WikiInfo:
|
||||
|
|
Reference in a new issue