多语言指南
简介
本规范文件旨在确保项目中的多语言文本一致性和格式规范。请遵循以下内容以保持代码库中的多语言资源的统一性。
文件位置
请将语言文件放置在 /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
排版规范
本文部分参照中文文案排版指北,内容可能有出入。
太长不看:半角符号和全角符号(标点除外)之间用空格隔开,正确使用对应语言的标点符号和用词习惯。
空格
中英文之间需要增加空格
正确:
在 IBM 的研究中,他们利用 AI 技术开发了一种先进的语音识别系统。
错误:
在IBM的研究中,他们利用AI技术开发了一种先进的语音识别系统。
例外:专有名词、商品名等词语,按照约定俗成的格式书写。
中文与数字之间需要增加空格
正确:
今年的全球汽车销售量达到了 8000 万辆。
错误:
今年的全球汽车销售量达到了8000万辆。
数字与单位之间不加空格
正确:
我家的光纤入户宽带有 10Gbps,SSD 一共有 10TB。
这个城市每年平均降雨量为 1200mm。
角度为 90° 的角,就是直角。
错误:
我家的光纤入户宽带有 10 Gbps,SSD 一共有 20 TB。
这个城市每年平均降雨量为 1200 mm。
角度为 90 ° 的角,就是直角。
变量与中文之间需要增加空格
变量的输入一般为英文或数字,故变量与中文之间须加入空格。
正确:
你扔了一块石头,漂了 ${count} 下。
错误:
你扔了一块石头,漂了${count}下。
例外:如果变量的输入确保为中文,则可以不加空格。
全角标点与其他字符之间不加空格
正确:
刚刚买了一部 iPhone,好开心!
错误:
刚刚买了一部 iPhone ,好开心!
半角标点相关的空格
在半角标点(左引号、左括号等引用标点除外)之后如果有其他字符,请增加空格隔开。
左引号、左括号等引用标点如果其之前有其他字符,请增加空格隔开。
撇号和连接号(hyphen)前后不加空格。破折号(dash)前后需增加空格。
多个半角标点连在一起需看成一个标点,不要用空格将它们分开。
正确:
The sun set over the horizon, casting a warm glow on the city. As night fell, the lights began to twinkle, creating a captivating skyline.
The mysterious treasure was said to be hidden deep within the ancient cavern... guarded by mythical creatures and protected by an ancient spell.
The storm — with its strong winds, torrential rain, and relentless thunder — lasted for hours, leaving behind a trail of destruction.
"Life is what happens when you're busy making other plans." people always said.
I went to the bookstore yesterday and bought a new novel (the one I've been wanting to read for months).
错误:
The sun set over the horizon,casting a warm glow on the city.As night fell,the lights began to twinkle,creating a captivating skyline.
The mysterious treasure was said to be hidden deep within the ancient cavern . . . guarded by mythical creatures and protected by an ancient spell.
The storm—with its strong winds,torrential rain,and relentless thunder—lasted for hours,leaving behind a trail of destruction.
" Life is what happens when you' re busy making other plans. " people always said.
I went to the bookstore yesterday and bought a new novel( the one I' ve been wanting to read for months) .
标点符号
不要重复使用标点符号
虽然重复使用标点符号在规范中是被允许的行为,但是这样会破坏句子的严肃性和美观性,请不要这样做。
正确:
德国队竟然战胜了巴西队!
错误:
德国队竟然战胜了巴西队!!!
简体中文不要使用直角引号
直角引号并不符合简体中文使用者的使用习惯。
正确:
“老师,‘有条不紊’的‘紊’是什么意思?”
错误:
「老师,『有条不紊』的『紊』是什么意思?」
英文不要使用弯引号
中文弯引号和英文弯引号属于同一个字符,如果使用弯引号反而会造成阅读问题。请使用直引号 "
。
正确:
"Success is not final, failure is not fatal: It is the courage to continue that counts."
错误:
“Success is not final, failure is not fatal: It is the courage to continue that counts.”
英文省略号使用三个点
原因同上。请使用三个点 ...
。
正确:
In the serene moonlit night, whispers of ancient tales lingered, echoing through the stillness of time...
错误:
In the serene moonlit night, whispers of ancient tales lingered, echoing through the stillness of time…
全角和半角
使用全角中文标点
正确:
嗨!你知道嘛?今天前台的小妹跟我说“喵”了哎!
错误:
嗨! 你知道嘛? 今天前台的小妹跟我说 "喵" 了哎!
嗨!你知道嘛?今天前台的小妹跟我说"喵"了哎!
数字和英文使用半角字符
正确:
这件蛋糕只卖 200 元。
错误:
这件蛋糕只卖 200 元。
完整的英文成句内容中使用半角标点
正确:
乔布斯那句话是怎么说的?“Stay hungry, stay foolish.”
错误:
乔布斯那句话是怎么说的?“Stay hungry,stay foolish。”
名词
专有名词使用正确的大小写
正确:
使用 GitHub 登录
错误:
使用 Github 登录
使用 gitHub 登录
使用 github 登录
使用 GITHUB 登录
不要使用非正式的缩写
正确:
我们需要一位熟悉 JavaScript、HTML5,至少理解一种框架(如 Backbone.js、AngularJS、React 等)的前端开发者。
错误:
我们需要一位熟悉 Js、h5,至少理解一种框架(如 backbone、angular、RJS 等)的 FED。
不同地区的中文使用对应的地区词
不要在繁体中文中使用“视频”等错误的地区词,这不是玩笑。
正确:
輸入影片編號取得對應資訊。
错误:
輸入視頻編號獲得相應信息。
例外:专有名词、商品名等词语,按照约定俗成的格式书写。
报告问题
与简体中文相关的问题可直接使用 Issue 报告。
简体中文以外的所有语言由机器人 @Hldbot 维护,相关问题请移步 Crowdin 报告。