Skip to content

Commit

Permalink
⬆️ update
Browse files Browse the repository at this point in the history
  • Loading branch information
RF-Tar-Railt committed Aug 28, 2024
1 parent 0c37271 commit 3ae6171
Show file tree
Hide file tree
Showing 11 changed files with 96 additions and 71 deletions.
92 changes: 46 additions & 46 deletions pdm.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ dev = [
"nonebot-adapter-feishu>=2.6.0",
"nonebot-adapter-kaiheila>=0.3.4",
"nonebot-adapter-mirai>=2.3.2",
"nonebot-adapter-minecraft>=1.2.2",
"nonebot-adapter-minecraft>=1.3.0",
"nonebot-adapter-onebot>=2.4.3",
"nonebot-adapter-qq>=1.4.4",
"nonebot-adapter-red>=0.9.0",
Expand Down
27 changes: 17 additions & 10 deletions src/nonebot_plugin_alconna/builtins/plugins/lang.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from arclet.alconna import Args, Field, Option, Alconna, CommandMeta, namespace

from nonebot_plugin_alconna.i18n import Lang, lang
from nonebot_plugin_alconna import UniMessage, on_alconna
from nonebot_plugin_alconna import Match, UniMessage, on_alconna

__plugin_meta__ = PluginMetadata(
name="lang",
Expand All @@ -20,29 +20,36 @@
cmd = on_alconna(
Alconna(
"lang",
Option("list", help_text="查看支持的语言列表"),
Option("switch", Args["locale", str, Field("NONE", completion=lambda: "比如 zh-CN")], help_text="切换语言"),
Option("list", Args["name?", str], help_text="查看支持的语言列表"),
Option("switch", Args["locale?", str, Field(completion=lambda: "比如 zh-CN")], help_text="切换语言"),
meta=CommandMeta("i18n配置相关功能", compact=True),
),
use_cmd_start=True,
)


@cmd.assign("list")
async def _():
await cmd.finish(Lang.nbp_alc_builtin.lang.list() + "\n" + "\n".join(f" * {locale}" for locale in lang.locales))
async def _(name: Match[str]):
try:
locales = lang.locales_in(name.result) if name.available else lang.locales
except KeyError:
await cmd.finish(Lang.nbp_alc_builtin.lang.config_name_error(name=name.result))
else:
await cmd.finish(Lang.nbp_alc_builtin.lang.list() + "\n" + "\n".join(f" * {locale}" for locale in locales))


@cmd.assign("switch")
async def _(locale: str):
if locale == "NONE":
async def _(locale: Match[str]):
if not locale.available:
resp = await cmd.prompt(UniMessage.i18n(Lang.nbp_alc_builtin.lang.locale_missing), timeout=30)
if resp is None:
await UniMessage.i18n(Lang.nbp_alc_builtin.lang.locale_timeout).finish()
locale = str(resp)
_locale = str(resp)
else:
_locale = locale.result
try:
lang.select(locale)
lang.select(_locale)
except ValueError as e:
await cmd.finish(str(e))
else:
await UniMessage.i18n(Lang.nbp_alc_builtin.lang.switch, locale=locale).finish()
await UniMessage.i18n(Lang.nbp_alc_builtin.lang.switch, locale=_locale).finish()
3 changes: 2 additions & 1 deletion src/nonebot_plugin_alconna/i18n/.config.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@
"require": [
"completion.nonebot",
"nbp-alc"
]
],
"name": "nonebot_plugin_alconna"
}
5 changes: 5 additions & 0 deletions src/nonebot_plugin_alconna/i18n/.lang.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,11 @@
"title": "locale_timeout",
"description": "value of lang item type 'locale_timeout'",
"type": "string"
},
"config_name_error": {
"title": "config_name_error",
"description": "value of lang item type 'config_name_error'",
"type": "string"
}
}
},
Expand Down
3 changes: 2 additions & 1 deletion src/nonebot_plugin_alconna/i18n/.template.json
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,8 @@
"list",
"switch",
"locale_missing",
"locale_timeout"
"locale_timeout",
"config_name_error"
]
},
{
Expand Down
3 changes: 2 additions & 1 deletion src/nonebot_plugin_alconna/i18n/en-US.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@
"list": "Following languages are supported:",
"switch": "Switch to '{locale}' successfully.",
"locale_missing": "{:At(user, $event.get_user_id())}Missing locale argument, please input:",
"locale_timeout": "{:At(user, $event.get_user_id())}Timeout for waiting locale input."
"locale_timeout": "{:At(user, $event.get_user_id())}Timeout for waiting locale input.",
"config_name_error": "{:At(user, $event.get_user_id())}Invalid name of i18n parent dir: {name}"
},
"help": {
"plugin_name_unknown": "Unknown plugin",
Expand Down
1 change: 1 addition & 0 deletions src/nonebot_plugin_alconna/i18n/model.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ class NbpAlcBuiltinLang:
switch: LangItem = LangItem("nbp-alc/builtin", "lang.switch")
locale_missing: LangItem = LangItem("nbp-alc/builtin", "lang.locale_missing")
locale_timeout: LangItem = LangItem("nbp-alc/builtin", "lang.locale_timeout")
config_name_error: LangItem = LangItem("nbp-alc/builtin", "lang.config_name_error")


class NbpAlcBuiltinHelp:
Expand Down
3 changes: 2 additions & 1 deletion src/nonebot_plugin_alconna/i18n/zh-CN.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@
"list": "支持的语言列表:",
"switch": "切换语言成功: '{locale}'。",
"locale_missing": "{:At(user, $event.get_user_id())}缺少语言参数,请输入:",
"locale_timeout": "{:At(user, $event.get_user_id())}等待语言参数输入超时。"
"locale_timeout": "{:At(user, $event.get_user_id())}等待语言参数输入超时。",
"config_name_error": "{:At(user, $event.get_user_id())} 未能找到 {name} 所属的 i18n 目录"
},
"help": {
"plugin_name_unknown": "未知插件",
Expand Down
Loading

0 comments on commit 3ae6171

Please sign in to comment.