mirror of
https://github.com/LiteyukiStudio/LiteyukiBot.git
synced 2024-11-22 22:37:37 +08:00
commit
605dd035d4
@ -22,7 +22,7 @@ if get_config("debug", False):
|
|||||||
"resources",
|
"resources",
|
||||||
)
|
)
|
||||||
|
|
||||||
nonebot.logger.info("Liteyuki Reload is enable, watching for file changes...")
|
nonebot.logger.info("Liteyuki Reload enabled, watching for file changes...")
|
||||||
|
|
||||||
|
|
||||||
class CodeModifiedHandler(FileSystemEventHandler):
|
class CodeModifiedHandler(FileSystemEventHandler):
|
||||||
|
@ -23,12 +23,12 @@ from nonebot_plugin_apscheduler import scheduler
|
|||||||
commit_hash = Repo(".").head.commit.hexsha
|
commit_hash = Repo(".").head.commit.hexsha
|
||||||
|
|
||||||
protocol_names = {
|
protocol_names = {
|
||||||
0: "iPad",
|
0: "iPad",
|
||||||
1: "Android Phone",
|
1: "Android Phone",
|
||||||
2: "Android Watch",
|
2: "Android Watch",
|
||||||
3: "Mac",
|
3: "Mac",
|
||||||
5: "iPad",
|
5: "iPad",
|
||||||
6: "Android Pad",
|
6: "Android Pad",
|
||||||
}
|
}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@ -67,73 +67,74 @@ status_card_cache = {} # lang -> bytes
|
|||||||
|
|
||||||
|
|
||||||
# 60s刷新一次
|
# 60s刷新一次
|
||||||
|
# 之前写的什么鬼玩意,这么重要的功能这样写???
|
||||||
@scheduler.scheduled_job("cron", second="*/40")
|
@scheduler.scheduled_job("cron", second="*/40")
|
||||||
async def refresh_status_card():
|
async def refresh_status_card():
|
||||||
nonebot.logger.debug("Refreshing status card cache...")
|
nonebot.logger.debug("Refreshing status card cache.")
|
||||||
global status_card_cache
|
global status_card_cache
|
||||||
bot_data = await get_bots_data()
|
status_card_cache = {}
|
||||||
hardware_data = await get_hardware_data()
|
# bot_data = await get_bots_data()
|
||||||
liteyuki_data = await get_liteyuki_data()
|
# hardware_data = await get_hardware_data()
|
||||||
for lang in status_card_cache.keys():
|
# liteyuki_data = await get_liteyuki_data()
|
||||||
status_card_cache[lang] = await generate_status_card(
|
# for lang in status_card_cache.keys():
|
||||||
bot_data,
|
# status_card_cache[lang] = await generate_status_card(
|
||||||
hardware_data,
|
# bot_data,
|
||||||
liteyuki_data,
|
# hardware_data,
|
||||||
lang=lang,
|
# liteyuki_data,
|
||||||
use_cache=False
|
# lang=lang,
|
||||||
)
|
# use_cache=False
|
||||||
|
# )
|
||||||
|
|
||||||
|
|
||||||
async def generate_status_card(bot: dict, hardware: dict, liteyuki: dict, lang="zh-CN", bot_id="0",
|
# 获取状态卡片
|
||||||
use_cache=False
|
# bot_id 参数已经是bot参数的一部分了,不需要保留,但为了“兼容性”……
|
||||||
) -> bytes:
|
async def generate_status_card(
|
||||||
if not use_cache:
|
bot: dict,
|
||||||
return await template2image(
|
hardware: dict,
|
||||||
get_path("templates/status.html", abs_path=True),
|
liteyuki: dict,
|
||||||
{
|
lang="zh-CN",
|
||||||
"data": {
|
bot_id="0",
|
||||||
"bot" : bot,
|
) -> bytes:
|
||||||
"hardware" : hardware,
|
return await template2image(
|
||||||
"liteyuki" : liteyuki,
|
get_path("templates/status.html", abs_path=True),
|
||||||
"localization": get_local_data(lang)
|
{
|
||||||
}
|
"data": {
|
||||||
},
|
"bot": bot,
|
||||||
)
|
"hardware": hardware,
|
||||||
else:
|
"liteyuki": liteyuki,
|
||||||
if lang not in status_card_cache:
|
"localization": get_local_data(lang),
|
||||||
status_card_cache[lang] = await generate_status_card(bot, hardware, liteyuki, lang=lang, bot_id=bot_id)
|
}
|
||||||
return status_card_cache[lang]
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def get_local_data(lang_code) -> dict:
|
def get_local_data(lang_code) -> dict:
|
||||||
lang = Language(lang_code)
|
lang = Language(lang_code)
|
||||||
return {
|
return {
|
||||||
"friends" : lang.get("status.friends"),
|
"friends": lang.get("status.friends"),
|
||||||
"groups" : lang.get("status.groups"),
|
"groups": lang.get("status.groups"),
|
||||||
"plugins" : lang.get("status.plugins"),
|
"plugins": lang.get("status.plugins"),
|
||||||
"bots" : lang.get("status.bots"),
|
"bots": lang.get("status.bots"),
|
||||||
"message_sent" : lang.get("status.message_sent"),
|
"message_sent": lang.get("status.message_sent"),
|
||||||
"message_received": lang.get("status.message_received"),
|
"message_received": lang.get("status.message_received"),
|
||||||
"cpu" : lang.get("status.cpu"),
|
"cpu": lang.get("status.cpu"),
|
||||||
"memory" : lang.get("status.memory"),
|
"memory": lang.get("status.memory"),
|
||||||
"swap" : lang.get("status.swap"),
|
"swap": lang.get("status.swap"),
|
||||||
"disk" : lang.get("status.disk"),
|
"disk": lang.get("status.disk"),
|
||||||
|
"usage": lang.get("status.usage"),
|
||||||
"usage" : lang.get("status.usage"),
|
"total": lang.get("status.total"),
|
||||||
"total" : lang.get("status.total"),
|
"used": lang.get("status.used"),
|
||||||
"used" : lang.get("status.used"),
|
"free": lang.get("status.free"),
|
||||||
"free" : lang.get("status.free"),
|
"days": lang.get("status.days"),
|
||||||
|
"hours": lang.get("status.hours"),
|
||||||
"days" : lang.get("status.days"),
|
"minutes": lang.get("status.minutes"),
|
||||||
"hours" : lang.get("status.hours"),
|
"seconds": lang.get("status.seconds"),
|
||||||
"minutes" : lang.get("status.minutes"),
|
"runtime": lang.get("status.runtime"),
|
||||||
"seconds" : lang.get("status.seconds"),
|
"threads": lang.get("status.threads"),
|
||||||
"runtime" : lang.get("status.runtime"),
|
"cores": lang.get("status.cores"),
|
||||||
"threads" : lang.get("status.threads"),
|
"process": lang.get("status.process"),
|
||||||
"cores" : lang.get("status.cores"),
|
"resources": lang.get("status.resources"),
|
||||||
"process" : lang.get("status.process"),
|
"description": lang.get("status.description"),
|
||||||
"resources" : lang.get("status.resources"),
|
|
||||||
"description" : lang.get("status.description"),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -142,8 +143,8 @@ async def get_bots_data(self_id: str = "0") -> dict:
|
|||||||
Returns:
|
Returns:
|
||||||
"""
|
"""
|
||||||
result = {
|
result = {
|
||||||
"self_id": self_id,
|
"self_id": self_id,
|
||||||
"bots" : [],
|
"bots": [],
|
||||||
}
|
}
|
||||||
for bot_id, bot in nonebot.get_bots().items():
|
for bot_id, bot in nonebot.get_bots().items():
|
||||||
groups = 0
|
groups = 0
|
||||||
@ -181,15 +182,25 @@ async def get_bots_data(self_id: str = "0") -> dict:
|
|||||||
else:
|
else:
|
||||||
icon = None
|
icon = None
|
||||||
bot_data = {
|
bot_data = {
|
||||||
"name" : bot_name,
|
"name": bot_name,
|
||||||
"icon" : icon,
|
"icon": icon,
|
||||||
"id" : bot_id,
|
"id": bot_id,
|
||||||
"protocol_name" : protocol_names.get(version_info.get("protocol_name"), "Online"),
|
"protocol_name": protocol_names.get(
|
||||||
"groups" : groups,
|
version_info.get("protocol_name"), "Online"
|
||||||
"friends" : friends,
|
),
|
||||||
"message_sent" : satori_counter.msg_sent if isinstance(bot, satori.Bot) else statistics.get("message_sent", 0),
|
"groups": groups,
|
||||||
"message_received": satori_counter.msg_received if isinstance(bot, satori.Bot) else statistics.get("message_received", 0),
|
"friends": friends,
|
||||||
"app_name" : app_name
|
"message_sent": (
|
||||||
|
satori_counter.msg_sent
|
||||||
|
if isinstance(bot, satori.Bot)
|
||||||
|
else statistics.get("message_sent", 0)
|
||||||
|
),
|
||||||
|
"message_received": (
|
||||||
|
satori_counter.msg_received
|
||||||
|
if isinstance(bot, satori.Bot)
|
||||||
|
else statistics.get("message_received", 0)
|
||||||
|
),
|
||||||
|
"app_name": app_name,
|
||||||
}
|
}
|
||||||
result["bots"].append(bot_data)
|
result["bots"].append(bot_data)
|
||||||
|
|
||||||
@ -221,27 +232,27 @@ async def get_hardware_data() -> dict:
|
|||||||
else:
|
else:
|
||||||
brand = "Unknown"
|
brand = "Unknown"
|
||||||
result = {
|
result = {
|
||||||
"cpu" : {
|
"cpu": {
|
||||||
"percent": psutil.cpu_percent(),
|
"percent": psutil.cpu_percent(),
|
||||||
"name" : f"{brand} {cpuinfo.get_cpu_info().get('arch', 'Unknown')}",
|
"name": f"{brand} {cpuinfo.get_cpu_info().get('arch', 'Unknown')}",
|
||||||
"cores" : psutil.cpu_count(logical=False),
|
"cores": psutil.cpu_count(logical=False),
|
||||||
"threads": psutil.cpu_count(logical=True),
|
"threads": psutil.cpu_count(logical=True),
|
||||||
"freq" : psutil.cpu_freq().current # MHz
|
"freq": psutil.cpu_freq().current, # MHz
|
||||||
},
|
},
|
||||||
"memory": {
|
"memory": {
|
||||||
"percent" : mem.percent,
|
"percent": mem.percent,
|
||||||
"total" : mem.total,
|
"total": mem.total,
|
||||||
"used" : mem.used,
|
"used": mem.used,
|
||||||
"free" : mem.free,
|
"free": mem.free,
|
||||||
"usedProcess": mem_used_process,
|
"usedProcess": mem_used_process,
|
||||||
},
|
},
|
||||||
"swap" : {
|
"swap": {
|
||||||
"percent": swap.percent,
|
"percent": swap.percent,
|
||||||
"total" : swap.total,
|
"total": swap.total,
|
||||||
"used" : swap.used,
|
"used": swap.used,
|
||||||
"free" : swap.free
|
"free": swap.free,
|
||||||
},
|
},
|
||||||
"disk" : [],
|
"disk": [],
|
||||||
}
|
}
|
||||||
|
|
||||||
for disk in psutil.disk_partitions(all=True):
|
for disk in psutil.disk_partitions(all=True):
|
||||||
@ -249,13 +260,15 @@ async def get_hardware_data() -> dict:
|
|||||||
disk_usage = psutil.disk_usage(disk.mountpoint)
|
disk_usage = psutil.disk_usage(disk.mountpoint)
|
||||||
if disk_usage.total == 0:
|
if disk_usage.total == 0:
|
||||||
continue # 虚拟磁盘
|
continue # 虚拟磁盘
|
||||||
result["disk"].append({
|
result["disk"].append(
|
||||||
"name" : disk.mountpoint,
|
{
|
||||||
|
"name": disk.mountpoint,
|
||||||
"percent": disk_usage.percent,
|
"percent": disk_usage.percent,
|
||||||
"total" : disk_usage.total,
|
"total": disk_usage.total,
|
||||||
"used" : disk_usage.used,
|
"used": disk_usage.used,
|
||||||
"free" : disk_usage.free
|
"free": disk_usage.free,
|
||||||
})
|
}
|
||||||
|
)
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -265,14 +278,15 @@ async def get_hardware_data() -> dict:
|
|||||||
async def get_liteyuki_data() -> dict:
|
async def get_liteyuki_data() -> dict:
|
||||||
temp_data: TempConfig = common_db.where_one(TempConfig(), default=TempConfig())
|
temp_data: TempConfig = common_db.where_one(TempConfig(), default=TempConfig())
|
||||||
result = {
|
result = {
|
||||||
"name" : list(get_config("nickname", [__NAME__]))[0],
|
"name": list(get_config("nickname", [__NAME__]))[0],
|
||||||
"version" : f"{__VERSION__}{'-' + commit_hash[:7] if (commit_hash and len(commit_hash) > 8) else ''}",
|
"version": f"{__VERSION__}{'-' + commit_hash[:7] if (commit_hash and len(commit_hash) > 8) else ''}",
|
||||||
"plugins" : len(nonebot.get_loaded_plugins()),
|
"plugins": len(nonebot.get_loaded_plugins()),
|
||||||
"resources": len(get_loaded_resource_packs()),
|
"resources": len(get_loaded_resource_packs()),
|
||||||
"nonebot" : f"{nonebot.__version__}",
|
"nonebot": f"{nonebot.__version__}",
|
||||||
"python" : f"{platform.python_implementation()} {platform.python_version()}",
|
"python": f"{platform.python_implementation()} {platform.python_version()}",
|
||||||
"system" : f"{platform.system()} {platform.release()}",
|
"system": f"{platform.system()} {platform.release()}",
|
||||||
"runtime" : time.time() - temp_data.data.get("start_time", time.time()), # 运行时间秒数
|
"runtime": time.time()
|
||||||
"bots" : len(nonebot.get_bots())
|
- temp_data.data.get("start_time", time.time()), # 运行时间秒数
|
||||||
|
"bots": len(nonebot.get_bots()),
|
||||||
}
|
}
|
||||||
return result
|
return result
|
||||||
|
@ -17,7 +17,7 @@ status_alc = on_alconna(
|
|||||||
Subcommand(
|
Subcommand(
|
||||||
"process",
|
"process",
|
||||||
alias={"proc", "p", "进程"},
|
alias={"proc", "p", "进程"},
|
||||||
)
|
),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -25,17 +25,15 @@ status_alc = on_alconna(
|
|||||||
@status_alc.handle()
|
@status_alc.handle()
|
||||||
async def _(event: T_MessageEvent, bot: T_Bot):
|
async def _(event: T_MessageEvent, bot: T_Bot):
|
||||||
ulang = get_user_lang(event_utils.get_user_id(event))
|
ulang = get_user_lang(event_utils.get_user_id(event))
|
||||||
if ulang.lang_code in status_card_cache:
|
if ulang.lang_code not in status_card_cache.keys():
|
||||||
image = status_card_cache[ulang.lang_code]
|
status_card_cache[ulang.lang_code] = await generate_status_card(
|
||||||
else:
|
|
||||||
image = await generate_status_card(
|
|
||||||
bot=await get_bots_data(),
|
bot=await get_bots_data(),
|
||||||
hardware=await get_hardware_data(),
|
hardware=await get_hardware_data(),
|
||||||
liteyuki=await get_liteyuki_data(),
|
liteyuki=await get_liteyuki_data(),
|
||||||
lang=ulang.lang_code,
|
lang=ulang.lang_code,
|
||||||
bot_id=bot.self_id,
|
bot_id=bot.self_id,
|
||||||
use_cache=True
|
|
||||||
)
|
)
|
||||||
|
image = status_card_cache[ulang.lang_code]
|
||||||
await status_alc.finish(UniMessage.image(raw=image))
|
await status_alc.finish(UniMessage.image(raw=image))
|
||||||
|
|
||||||
|
|
||||||
|
@ -103,7 +103,6 @@ npm.update_index=Plugin-Index aktualisieren
|
|||||||
npm.list_plugins=Plugin-Liste
|
npm.list_plugins=Plugin-Liste
|
||||||
npm.disable_session=Plugin für aktuelle Sitzung deaktivieren
|
npm.disable_session=Plugin für aktuelle Sitzung deaktivieren
|
||||||
npm.enable_session=Plugin für aktuelle Sitzung aktivieren
|
npm.enable_session=Plugin für aktuelle Sitzung aktivieren
|
||||||
npm.help=Hilfe
|
|
||||||
npm.search=Suche
|
npm.search=Suche
|
||||||
|
|
||||||
user.profile.edit=Bearbeiten
|
user.profile.edit=Bearbeiten
|
||||||
|
@ -103,7 +103,6 @@ npm.update_index=Update Plugin Index
|
|||||||
npm.list_plugins=Plugin List
|
npm.list_plugins=Plugin List
|
||||||
npm.disable_session=Disable plugin for current session
|
npm.disable_session=Disable plugin for current session
|
||||||
npm.enable_session=Enable plugin for current session
|
npm.enable_session=Enable plugin for current session
|
||||||
npm.help=Help
|
|
||||||
npm.search=Search
|
npm.search=Search
|
||||||
|
|
||||||
user.profile.edit=Edit
|
user.profile.edit=Edit
|
||||||
|
@ -103,7 +103,6 @@ npm.update_index=Actualizar el Índice del Plugin
|
|||||||
npm.list_plugins=Lista de Plugins
|
npm.list_plugins=Lista de Plugins
|
||||||
npm.disable_session=Desactivar sesión actual
|
npm.disable_session=Desactivar sesión actual
|
||||||
npm.enable_session=Activar sesión actual
|
npm.enable_session=Activar sesión actual
|
||||||
npm.help=Ayuda
|
|
||||||
npm.search=Búsqueda
|
npm.search=Búsqueda
|
||||||
|
|
||||||
user.profile.edit=Editar
|
user.profile.edit=Editar
|
||||||
|
@ -103,7 +103,6 @@ npm.update_index=Mise à jour de l'index des plugins
|
|||||||
npm.list_plugins=Liste des plugins
|
npm.list_plugins=Liste des plugins
|
||||||
npm.disable_session=Désactivation des plugins pour cette session
|
npm.disable_session=Désactivation des plugins pour cette session
|
||||||
npm.enable_session=Activation des plugins pour cette session
|
npm.enable_session=Activation des plugins pour cette session
|
||||||
npm.help=Aide
|
|
||||||
npm.search=Recherche
|
npm.search=Recherche
|
||||||
|
|
||||||
user.profile.edit=Modifier
|
user.profile.edit=Modifier
|
||||||
|
@ -103,7 +103,6 @@ npm.update_index=プラグインインデックスを更新
|
|||||||
npm.list_plugins=プラグイン一覧
|
npm.list_plugins=プラグイン一覧
|
||||||
npm.disable_session=セッション中にプラグインを無効にしました
|
npm.disable_session=セッション中にプラグインを無効にしました
|
||||||
npm.enable_session=セッション中にプラグインを有効にしました
|
npm.enable_session=セッション中にプラグインを有効にしました
|
||||||
npm.help=ヘルプ
|
|
||||||
npm.search=検索
|
npm.search=検索
|
||||||
|
|
||||||
user.profile.edit=編集
|
user.profile.edit=編集
|
||||||
|
@ -103,7 +103,6 @@ npm.update_index=플러그인 인덱스 업데이트
|
|||||||
npm.list_plugins=플러그인 목록
|
npm.list_plugins=플러그인 목록
|
||||||
npm.disable_session=현재 세션에서 플러그인을 비활성화합니다.
|
npm.disable_session=현재 세션에서 플러그인을 비활성화합니다.
|
||||||
npm.enable_session=현재 세션에서 플러그인을 활성화합니다.
|
npm.enable_session=현재 세션에서 플러그인을 활성화합니다.
|
||||||
npm.help=도움말
|
|
||||||
npm.search=검색
|
npm.search=검색
|
||||||
|
|
||||||
user.profile.edit=수정
|
user.profile.edit=수정
|
||||||
|
@ -103,7 +103,6 @@ npm.update_index=Обновить индекс плагинов
|
|||||||
npm.list_plugins=Список плагинов
|
npm.list_plugins=Список плагинов
|
||||||
npm.disable_session=Отключить плагины для текущей сессии
|
npm.disable_session=Отключить плагины для текущей сессии
|
||||||
npm.enable_session=Включить плагины для текущей сессии
|
npm.enable_session=Включить плагины для текущей сессии
|
||||||
npm.help=Помощь
|
|
||||||
npm.search=Поиск
|
npm.search=Поиск
|
||||||
|
|
||||||
user.profile.edit=Редактировать
|
user.profile.edit=Редактировать
|
||||||
|
@ -103,7 +103,6 @@ npm.update_index=更新插件索引
|
|||||||
npm.list_plugins=插件列表
|
npm.list_plugins=插件列表
|
||||||
npm.disable_session=当前会话停用插件
|
npm.disable_session=当前会话停用插件
|
||||||
npm.enable_session=当前会话启用插件
|
npm.enable_session=当前会话启用插件
|
||||||
npm.help=帮助
|
|
||||||
npm.search=搜索
|
npm.search=搜索
|
||||||
|
|
||||||
user.profile.edit=修改
|
user.profile.edit=修改
|
||||||
|
@ -103,7 +103,6 @@ npm.update_index=更新插件索引
|
|||||||
npm.list_plugins=插件列表
|
npm.list_plugins=插件列表
|
||||||
npm.disable_session=當前會話停用插件
|
npm.disable_session=當前會話停用插件
|
||||||
npm.enable_session=當前會話啟用插件
|
npm.enable_session=當前會話啟用插件
|
||||||
npm.help=幫助
|
|
||||||
npm.search=搜索
|
npm.search=搜索
|
||||||
|
|
||||||
user.profile.edit=修改
|
user.profile.edit=修改
|
||||||
|
@ -103,7 +103,6 @@ npm.update_index=更新插件索引
|
|||||||
npm.list_plugins=插件列表
|
npm.list_plugins=插件列表
|
||||||
npm.disable_session=当前会话停用插件
|
npm.disable_session=当前会话停用插件
|
||||||
npm.enable_session=当前会话启用插件
|
npm.enable_session=当前会话启用插件
|
||||||
npm.help=帮助
|
|
||||||
npm.search=搜索
|
npm.search=搜索
|
||||||
|
|
||||||
user.profile.edit=修改
|
user.profile.edit=修改
|
||||||
|
@ -7,10 +7,10 @@ log.error=错误错了
|
|||||||
log.success=成功达成
|
log.success=成功达成
|
||||||
|
|
||||||
liteyuki.restart=重新开始
|
liteyuki.restart=重新开始
|
||||||
liteyuki.restart_now=立即重启
|
liteyuki.restart_now=立即重开
|
||||||
liteyuki.update_restart=更新完成,你可以{RESTART}或稍后手动重启以应用这些更新
|
liteyuki.update_restart=更完成,你可以{RESTART}或稍后手动重开来开启这些新的法术
|
||||||
liteyuki.current_config=当前构建来袭
|
liteyuki.current_config=当前构建来袭
|
||||||
liteyuki.static_config=静态设置
|
liteyuki.static_config=规则设置
|
||||||
liteyuki.stored_config=存储的神秘宝藏
|
liteyuki.stored_config=存储的神秘宝藏
|
||||||
liteyuki.config_set_success=配置项 {KEY}={VAL} 非常有趣地设定成功
|
liteyuki.config_set_success=配置项 {KEY}={VAL} 非常有趣地设定成功
|
||||||
liteyuki.stats.group=群组
|
liteyuki.stats.group=群组
|
||||||
@ -54,23 +54,23 @@ main.monitor.cpu=中国药科大学
|
|||||||
main.monitor.memory=回忆
|
main.monitor.memory=回忆
|
||||||
main.monitor.swap=换个地方
|
main.monitor.swap=换个地方
|
||||||
main.monitor.disk=神秘碟片
|
main.monitor.disk=神秘碟片
|
||||||
main.monitor.usage=使用率
|
main.monitor.usage=使用
|
||||||
main.monitor.total=总计
|
main.monitor.total=满计
|
||||||
main.monitor.used=已经被用掉了
|
main.monitor.used=已经被用光了
|
||||||
main.monitor.free=魔法保护中
|
main.monitor.free=魔法保护中
|
||||||
|
|
||||||
data_manager.migrate_success=数据模型{NAME}成功变身
|
data_manager.migrate_success=数据模型{NAME}成功变身
|
||||||
|
|
||||||
npm.loaded_plugins=魔法插件已经装载
|
npm.loaded_plugins=魔法插件已经装载
|
||||||
npm.total=总计 {TOTAL} 件奇怪的魔法
|
npm.total=总统 {TOTAL} 件奇怪的魔法
|
||||||
npm.help=帮助
|
npm.help=助我一臂之力
|
||||||
npm.usage=使用法术
|
npm.usage=使用法术
|
||||||
npm.description=描述
|
npm.description=说一说
|
||||||
npm.disable=关闭
|
npm.disable=停一停
|
||||||
npm.disable_global=全球关闭
|
npm.disable_global=全球都停
|
||||||
npm.enable=开启
|
npm.enable=用一用
|
||||||
npm.enable_global=全球开启
|
npm.enable_global=全球都用
|
||||||
npm.install=安装
|
npm.install=装一装
|
||||||
npm.uninstall=解除魔法
|
npm.uninstall=解除魔法
|
||||||
npm.installing=正在释放{name}的魔力
|
npm.installing=正在释放{name}的魔力
|
||||||
npm.cannot_uninstall=无法解除
|
npm.cannot_uninstall=无法解除
|
||||||
@ -91,9 +91,9 @@ npm.plugin_already_installed={NAME}已经附身,请勿重复释放
|
|||||||
npm.author=法师
|
npm.author=法师
|
||||||
npm.homepage=魔法门
|
npm.homepage=魔法门
|
||||||
npm.pypi=PyPI
|
npm.pypi=PyPI
|
||||||
npm.next_page=前进
|
npm.next_page==进!
|
||||||
npm.prev_page=后退
|
npm.prev_page=撤!
|
||||||
npm.update=更新
|
npm.update=新术
|
||||||
npm.plugin_cannot_be_toggled={NAME}咒语无法变化状态
|
npm.plugin_cannot_be_toggled={NAME}咒语无法变化状态
|
||||||
npm.plugin_already={NAME}已经是{STATUS}状态,无需再次操作
|
npm.plugin_already={NAME}已经是{STATUS}状态,无需再次操作
|
||||||
npm.toggle_failed=咒语 {NAME} {STATUS} 失败:{ERROR}
|
npm.toggle_failed=咒语 {NAME} {STATUS} 失败:{ERROR}
|
||||||
@ -103,7 +103,6 @@ npm.update_index=更新法术索引
|
|||||||
npm.list_plugins=咒语列表
|
npm.list_plugins=咒语列表
|
||||||
npm.disable_session=当前会话中的咒语被屏蔽
|
npm.disable_session=当前会话中的咒语被屏蔽
|
||||||
npm.enable_session=当前会话中的咒语被解除屏蔽
|
npm.enable_session=当前会话中的咒语被解除屏蔽
|
||||||
npm.help=帮助
|
|
||||||
npm.search=寻找黑暗中的宝藏
|
npm.search=寻找黑暗中的宝藏
|
||||||
|
|
||||||
user.profile.edit=改变命运
|
user.profile.edit=改变命运
|
||||||
@ -145,15 +144,16 @@ status.cpu=中国药科大学
|
|||||||
status.memory=回忆
|
status.memory=回忆
|
||||||
status.swap=换个地方
|
status.swap=换个地方
|
||||||
status.disk=神秘碟片
|
status.disk=神秘碟片
|
||||||
status.usage=使用率
|
status.usage=使用
|
||||||
status.total=总计
|
status.total=满计
|
||||||
status.used=已经被用掉了
|
status.used=已经被用掉了
|
||||||
status.free=魔法保护中
|
status.free=魔法保护中
|
||||||
status.runtime=时间流逝
|
status.runtime=时间流逝
|
||||||
status.days=天
|
status.days=日天
|
||||||
status.hours=小时
|
status.hours=小时
|
||||||
status.minutes=分钟
|
status.minutes=分钟
|
||||||
status.seconds=秒
|
status.seconds=秒钟
|
||||||
status.cores=核心
|
status.cores=精髓
|
||||||
status.threads=线程
|
status.threads=螺纹
|
||||||
status.process=进程
|
status.process=工序
|
||||||
|
status.description=轻雪秘法展示塔
|
@ -1,159 +1,159 @@
|
|||||||
language.name=文言
|
language.name=文言
|
||||||
|
|
||||||
log.debug=觀其調
|
log.debug=试言
|
||||||
log.info=見其訊
|
log.info=讯文
|
||||||
log.warning=告之懼
|
log.warning=警示
|
||||||
log.error=惡之誤
|
log.error=查误
|
||||||
log.success=喜之成
|
log.success=名成
|
||||||
|
|
||||||
liteyuki.restart=復其初
|
liteyuki.restart=复启
|
||||||
liteyuki.restart_now=即其初
|
liteyuki.restart_now=即复启
|
||||||
liteyuki.update_restart=更新既成,可{RESTART}或稍後手動復始以行是更新
|
liteyuki.update_restart=新服既成,或{RESTART}于此,或待后躬行
|
||||||
liteyuki.current_config=當前設之如左
|
liteyuki.current_config=今规制如左
|
||||||
liteyuki.static_config=靜態設之
|
liteyuki.static_config=机置规制
|
||||||
liteyuki.stored_config=存之設也
|
liteyuki.stored_config=所贮规制
|
||||||
liteyuki.config_set_success=設之 {KEY}={VAL} 成焉
|
liteyuki.config_set_success=乃令规制 {KEY} 为 {VAL} 而成焉
|
||||||
liteyuki.stats.group=群
|
liteyuki.stats.group=羣
|
||||||
liteyuki.stats.user=友
|
liteyuki.stats.user=友
|
||||||
liteyuki.stats.plugin=插
|
liteyuki.stats.plugin=件
|
||||||
liteyuki.stats.sent=遣
|
liteyuki.stats.sent=即传
|
||||||
liteyuki.stats.received=受
|
liteyuki.stats.received=所受
|
||||||
liteyuki.stats.run_time=進行時
|
liteyuki.stats.run_time=所启时分
|
||||||
liteyuki.stats.groups=羣
|
liteyuki.stats.groups=羣
|
||||||
liteyuki.stats.friends=友
|
liteyuki.stats.friends=友
|
||||||
liteyuki.stats.plugins=插
|
liteyuki.stats.plugins=件
|
||||||
liteyuki.image_mode_on=開云標示式圖之術
|
liteyuki.image_mode_on=展圖之術
|
||||||
liteyuki.image_mode_off=閉云標示式圖之術
|
liteyuki.image_mode_off=收圖之術
|
||||||
liteyuki.invalid_command=無其可爲之語也 {TEXT}
|
liteyuki.invalid_command=彼 {TEXT} 之言无所指
|
||||||
liteyuki.reload_resources=重載資
|
liteyuki.reload_resources=复誊件资
|
||||||
liteyuki.list_resources=資列表
|
liteyuki.list_resources=件资
|
||||||
liteyuki.reload_resources_success=資重載成,資數 {NUM} 也
|
liteyuki.reload_resources_success=件资所誊即成,其数有 {NUM}
|
||||||
liteyuki.loaded_resources=載資 {NUM},優先之次是
|
liteyuki.loaded_resources=誊件资 {NUM} 而循优先之次
|
||||||
liteyuki.unloaded_resources=資未載
|
liteyuki.unloaded_resources=件资已去
|
||||||
liteyuki.load_resource_success=資 {NAME} 載
|
liteyuki.load_resource_success=件资曰 {NAME} 者,方誊成
|
||||||
liteyuki.unload_resource_success=資 {NAME} 拔
|
liteyuki.unload_resource_success=件资曰 {NAME} 者,方去也
|
||||||
liteyuki.load_resource_failed=資 {NAME} 載失
|
liteyuki.load_resource_failed=件资曰 {NAME} 者,无以誊
|
||||||
liteyuki.unload_resource_failed=資 {NAME} 拔失
|
liteyuki.unload_resource_failed=件资曰 {NAME} 者,无以去
|
||||||
liteyuki.resource_not_found=資 {NAME} 不存或無爲
|
liteyuki.resource_not_found=件资曰 {NAME} 者,不可求
|
||||||
liteyuki.resource_already_loaded=資 {NAME} 已載,勿復
|
liteyuki.resource_already_loaded=件资曰 {NAME} 者,方誊
|
||||||
liteyuki.resource_already_unloaded=資 {NAME} 已拔,勿復
|
liteyuki.resource_already_unloaded=件资曰 {NAME} ,方去
|
||||||
liteyuki.need_reload=請{BTN}以行是更新
|
liteyuki.need_reload=谨{BTN}复誊以新
|
||||||
liteyuki.dont_repeat=勿復行
|
liteyuki.dont_repeat=勿复行
|
||||||
liteyuki.change_priority_success=資 {NAME} 優先成
|
liteyuki.change_priority_success=方变件资曰 {NAME} 者优先之次
|
||||||
liteyuki.change_priority_failed=資 {NAME} 優先不成
|
liteyuki.change_priority_failed=件资曰 {NAME} 者优先之次无以变
|
||||||
liteyuki.group_already=羣 {GROUP} 之狀已是 {STATUS} ,勿再行
|
liteyuki.group_already=羣号曰 {GROUP} 者,已 {STATUS} ,勿复行
|
||||||
liteyuki.group_success=羣 {GROUP} {STATUS} 成
|
liteyuki.group_success=羣号曰 {GROUP} 者,方 {STATUS} 成
|
||||||
liteyuki.permission_denied=權不及也
|
liteyuki.permission_denied=权不及也
|
||||||
liteyuki.config_remove_success=設 {KEY} 移
|
liteyuki.config_remove_success=规制 {KEY} 方去也
|
||||||
|
|
||||||
main.current_language=當前言 {LANG} 爲是
|
main.current_language=往复四海皆蛮夷,惟我华夏泱泱。行见闻之广,无可匹敌。故而此番作 {LANG} 之文,以彰圣朝大德。
|
||||||
main.enable_webdash=啟網监塔: {URL}
|
main.enable_webdash=令 {URL} 为遥讯监司
|
||||||
main.monitor.title=輕雪監塔
|
main.monitor.title=轻雪监司
|
||||||
main.monitor.description=輕雪機之監塔
|
main.monitor.description=工造机巧曰轻雪者,今有司赏监察之大德,为其置一新衙,曰:轻雪监司
|
||||||
main.monitor.cpu=中药科大学
|
main.monitor.cpu=央核之机
|
||||||
main.monitor.memory=懷
|
main.monitor.memory=机置所存
|
||||||
main.monitor.swap=易
|
main.monitor.swap=变易之区
|
||||||
main.monitor.disk=磁
|
main.monitor.disk=贮形长存
|
||||||
main.monitor.usage=用之
|
main.monitor.usage=计用
|
||||||
main.monitor.total=總
|
main.monitor.total=合
|
||||||
main.monitor.used=所用
|
main.monitor.used=占
|
||||||
main.monitor.free=閑也
|
main.monitor.free=余
|
||||||
|
|
||||||
data_manager.migrate_success=模{NAME}易
|
data_manager.migrate_success=卷型曰 {NAME} 者,方易成
|
||||||
|
|
||||||
npm.loaded_plugins=載插
|
npm.loaded_plugins=所誊件
|
||||||
npm.total=总 {TOTAL}
|
npm.total=合 {TOTAL}
|
||||||
npm.help=救
|
npm.help=师
|
||||||
npm.usage=法用
|
npm.usage=问
|
||||||
npm.description=其形
|
npm.description=答
|
||||||
npm.disable=斷
|
npm.disable=去
|
||||||
npm.disable_global=宇斷
|
npm.disable_global=皆去
|
||||||
npm.enable=啟
|
npm.enable=用
|
||||||
npm.enable_global=宇啟
|
npm.enable_global=皆用
|
||||||
npm.install=法
|
npm.install=置
|
||||||
npm.uninstall=遣
|
npm.uninstall=消
|
||||||
npm.installing=法 {NAME} 裝中
|
npm.installing=乃置 {NAME}
|
||||||
npm.cannot_uninstall=法遣
|
npm.cannot_uninstall=未消
|
||||||
npm.no_description=无形
|
npm.no_description=无答
|
||||||
npm.store_update_success=插庫成
|
npm.store_update_success=件阁方新
|
||||||
npm.store_update_failed=插庫敗
|
npm.store_update_failed=件阁无以新
|
||||||
npm.search_result=索所
|
npm.search_result=索得
|
||||||
npm.search_no_result=無索
|
npm.search_no_result=未果
|
||||||
npm.too_many_results=之多,{HIDE_NUM} 無現,審爲
|
npm.too_many_results=所得之多,为数 {HIDE_NUM} 尽隐,求则号精
|
||||||
npm.install_success={NAME} 成
|
npm.install_success={NAME} 方置
|
||||||
npm.install_failed={NAME} 敗,語目以知,不知求于{HOMEPAGE}
|
npm.install_failed={NAME} 无以置,求讯文观其始末,未解则取 {HOMEPAGE} 而从师
|
||||||
npm.uninstall_success={NAME} 遣,明{HOMEPAGE}
|
npm.uninstall_success={NAME} 方消,次复启以毕功
|
||||||
npm.uninstall_failed={NAME} 遣
|
npm.uninstall_failed={NAME} 无以消
|
||||||
npm.load_failed={NAME} 載,求于{HOMEPAGE}
|
npm.load_failed={NAME} 无以誊,或求讯文观始末,或查所依偏离否,未解则取{HOMEPAGE} 而从师
|
||||||
npm.plugin_not_found=無 {NAME} ,揭揭庫爲
|
npm.plugin_not_found=阁内无件曰 {NAME} 者
|
||||||
npm.plugin_not_installed={NAME} 未
|
npm.plugin_not_installed={NAME} 未置
|
||||||
npm.plugin_already_installed={NAME} 已,勿復法
|
npm.plugin_already_installed={NAME} 已置,勿复行
|
||||||
npm.author=主
|
npm.author=上
|
||||||
npm.homepage=揭
|
npm.homepage=揭
|
||||||
npm.pypi=PyPI
|
npm.pypi=磐蛇件阁
|
||||||
npm.next_page=後
|
npm.next_page=进
|
||||||
npm.prev_page=前
|
npm.prev_page=返
|
||||||
npm.update=兵
|
npm.update=新
|
||||||
npm.plugin_cannot_be_toggled={NAME} 不兵
|
npm.plugin_cannot_be_toggled=不可变易件曰 {NAME} 者
|
||||||
npm.plugin_already=插 {NAME} 之狀已是 {STATUS} ,勿再行
|
npm.plugin_already=件曰 {NAME} 者,乃 {STATUS} ,勿复行
|
||||||
npm.toggle_failed=插 {NAME} {STATUS} 敗:{ERROR}
|
npm.toggle_failed=因 {ERROR} 所误,良机尽失,{NAME} 无以 {STATUS}
|
||||||
npm.toggle_success=插 {NAME} {STATUS} 成
|
npm.toggle_success=件曰 {NAME} 者,方 {STATUS} 成
|
||||||
npm.page=第{PAGE}/{TOTAL} 節
|
npm.page=页第 {PAGE} 之于 {TOTAL}
|
||||||
npm.update_index=兵索
|
npm.update_index=阁引
|
||||||
npm.list_plugins=插目
|
npm.list_plugins=件目
|
||||||
npm.disable_session=在次斷
|
npm.disable_session=是处去
|
||||||
npm.enable_session=在次啟
|
npm.enable_session=是处用
|
||||||
npm.help=救
|
|
||||||
npm.search=索
|
npm.search=索
|
||||||
|
|
||||||
user.profile.edit=改
|
user.profile.edit=易
|
||||||
user.profile.set=設
|
user.profile.set=设
|
||||||
user.profile_manager.query=汝之訊 {ATTR} 爲 {VALUE} 也
|
user.profile_manager.query=君 {ATTR} 为 {VALUE}
|
||||||
user.profile_manager.set=汝之訊 {ATTR} 已設 {VALUE} 也
|
user.profile_manager.set=君 {ATTR} 設为 {VALUE} 也
|
||||||
user.profile.settings=設
|
user.profile.settings=設
|
||||||
user.profile.info=訊
|
user.profile.info=私讯
|
||||||
user.profile.lang=言
|
user.profile.lang=语文
|
||||||
user.profile.lang.desc=言設
|
user.profile.lang.desc=凡语者,乃语言之所谓,掌人之音及思之习;凡文者,乃文字之所指,操人之德及行之法
|
||||||
user.profile.timezone=時
|
user.profile.timezone=时区
|
||||||
user.profile.timezone.desc=時設
|
user.profile.timezone.desc=所谓时区者,郑和西洋之学所成,乃由英吉利某天监司衙始,分天下为十二时辰之区,以令四海之时得以各循所便
|
||||||
user.profile.theme=題
|
user.profile.theme=色泽
|
||||||
user.profile.theme.desc=題設
|
user.profile.theme.desc=昔《周易》乃传阴阳之术,各色纷发而共赏诸方,乃决次色之设,为爱一方也
|
||||||
user.profile.location=所
|
user.profile.location=居所
|
||||||
user.profile.location.desc=所設
|
user.profile.location.desc=君子之所常居,道合山水之学。昔孟母三迁择邻里,为人有道成功名。
|
||||||
user.profile.nickname=名
|
user.profile.nickname=字号
|
||||||
user.profile.nickname.desc=設之之名
|
user.profile.nickname.desc=无名之辈无登大雅之堂,王侯将相皆各有名号,见此字号而辨君子。
|
||||||
user.profile.input_value=求輸 {ATTR} 之量
|
user.profile.input_value=求 {ATTR} 之量
|
||||||
user.profile.set_success={ATTR} 成 {VALUE} 也
|
user.profile.set_success=君 {ATTR} 方设 {VALUE} 而成
|
||||||
user.profile.set_failed={ATTR} 失,問求也
|
user.profile.set_failed={ATTR} 无以设,子阙否
|
||||||
|
|
||||||
rpm.move_up=上
|
rpm.move_up=右移
|
||||||
rpm.move_down=下
|
rpm.move_down=左移
|
||||||
rpm.move_top=初
|
rpm.move_top=归首
|
||||||
|
|
||||||
weather.city_not_found=城 {CITY} 不存也
|
weather.city_not_found=无城谓 {CITY} 者
|
||||||
weather.weather_not_found=城 {CITY} 之氣也不存也
|
weather.weather_not_found=无{CITY}城之天象
|
||||||
weather.no_key=未設氣金鑰也,爲請增于設也
|
weather.no_key=无天监司遥讯之玥,请于设增
|
||||||
|
|
||||||
status.friends=友
|
status.friends=友
|
||||||
status.groups=羣
|
status.groups=羣
|
||||||
status.plugins=插
|
status.plugins=件
|
||||||
status.resources=資
|
status.resources=件资
|
||||||
status.bots=機
|
status.bots=工造机巧
|
||||||
status.message_sent=遣訊
|
status.message_sent=方传
|
||||||
status.message_received=受訊
|
status.message_received=方受
|
||||||
status.cpu=中药科大学
|
status.cpu=央核之机
|
||||||
status.memory=懷
|
status.memory=机置所存
|
||||||
status.swap=易
|
status.swap=变易之区
|
||||||
status.disk=磁
|
status.disk=贮形长存
|
||||||
status.usage=用
|
status.usage=计用
|
||||||
status.total=總
|
status.total=合
|
||||||
status.used=所用
|
status.used=占
|
||||||
status.free=閑
|
status.free=余
|
||||||
status.runtime=時
|
status.runtime=所启时分
|
||||||
status.days=日
|
status.days=日
|
||||||
status.hours=時
|
status.hours=小时
|
||||||
status.minutes=分
|
status.minutes=分
|
||||||
status.seconds=秒
|
status.seconds=秒
|
||||||
status.cores=核
|
status.cores=机轮核数
|
||||||
status.threads=縷
|
status.threads=机线条量
|
||||||
status.process=程
|
status.process=机行轨度
|
||||||
|
status.description=轻雪端司
|
@ -1,3 +1,3 @@
|
|||||||
name: 轻雪语言资源包
|
name: 轻雪语言资源包
|
||||||
description: 全局的语言资源包,不可卸载
|
description: 全局的语言资源包,不可卸载
|
||||||
version: 2024.4.26
|
version: 2024.7.14
|
Loading…
Reference in New Issue
Block a user