多语言指南
简介
本规范文件旨在确保项目中的多语言文本一致性和格式规范。请遵循以下内容以保持代码库中的多语言资源的统一性。
文件位置
请将语言文件放置在 /locales
目录中,并以语言代码命名为 JSON 文件。
根路径下的目录用于放置全局字符串,模块下的目录用于放置对应专用的模块字符串。
原则上,模块字符串和对应模块须对应,若模块之间存在关联则可以例外,否则请考虑转为全局字符串。
语言文件格式
请确保键名与字符串一一对应,不得嵌套。
全局字符串的命名方式:字符串类别.用途
模块字 符串的命名方式:模块名称.字符串类别.(命令名称.)用途
使用 ${变量名}
可表示变量,变量名须使用英文,不建议使用 Python 语句,禁止使用空格和特殊符号,如需分隔则请使用下划线代替。
使用例
在模块帮助中调用多语言字符串的示例:
from core.component import module
test = module('test', desc='{test.help.desc}')
@test.command('say <word> {{test.help.say}}')
...
在代码中调用多语言字符串的示例:
from core.builtins import Bot
async def test(msg: Bot.MessageSession):
...
await msg.send_message(msg.locale.t("test.message.say.prompt")) # 没有变量时可直接输出
await msg.send_message(msg.locale.t("test.message.say.reply", sender=msg.target.sender_id)) # 若存在变量,则须将变量赋值后输出,如此处在字符串内的变量为 ${sender},并被赋值为 Bot.MessageSession.target.sender_id
排版规范
info
本文部分参照中文文案排版指北,内容可能有出入。
太长不看:半角符号和全角符号(标点除外)之间用空格隔开,正确使用对应语言的标点符号和用词习惯。