Telegram 多语言机器人:语言选择、回退与界面文案
区分客户端语言、用户偏好和消息语种,设计 Telegram 机器人私聊与群组语言政策、缺失文案回退、按钮和单复数验收。
多语言机器人不只是给 /help 加一份英文翻译。用户手动选了中文后,下一条消息是否仍用中文?群里一名英文用户发消息,会不会改变所有人的界面?没有翻译的错误提示会显示什么?这些规则决定机器人能否稳定地服务不同语言的用户。
本文讨论固定界面文案的本地化,不是翻译群聊内容,也不要求机器人在运行时调用语言模型。菜单范围的设计可另读命令菜单指南。
分开三个语言信号
客户端语言是一个初始提示,用户明确选择的语言是偏好,而用户输入文字的语种是内容属性。三者不应该被混成一个“自动语言”字段。
grammY 的 i18n 文档 给出了从保存的选择、客户端 language_code 和默认语言协商语言的机制。它也提醒,客户端语言可能不可见。这里借用的是设计模式,不要求安装该插件。
为私聊机器人定义一条可解释的优先级:
- 已保存且受支持的用户选择。
- 客户端语言映射到受支持语言后的结果。
- 固定默认语言。
例如,界面只支持中文与英文时,不应简单截取前两个字母就宣布支持所有语言。明确 zh、zh-CN、zh-TW 等值分别落到什么界面;缺失或未知值使用默认,并提供可发现的语言切换入口。
用户输入一句英语,不应自动覆盖此前选择的中文。内容翻译是另一个功能,要单独定义范围和费用。
群组消息不能让语言偏好互相覆盖
私聊回复通常适合按用户选择。群组的共享公告、公共列表或管理员面板,则可能需要按群组设置一种语言或固定双语格式。
| 消息位置 | 建议的语言规则 |
|---|---|
| 私聊帮助与错误 | 当前用户的已保存选择 |
| 群组公开公告 | 管理员设定的群组语言 |
| 公共记录或共享列表 | 群组语言,必要时固定双语 |
| 向管理员私聊反馈 | 管理员自己的语言偏好 |
这是一种可选政策,不是 Telegram 强制规则。重要的是为每类消息固定归属:成员更改个人设置,不应悄悄修改群组设置;切换文案,也不应改变已保存的业务内容。
保存偏好需要当前环境实际支持的持久化机制。一次回复临时切换语言,与后续更新继续记住选择,是两个不同验收结果。
翻译完整消息,而不是拼接词语
“你有”加数字再加“个任务”在中文里可能可用,但英文、复数和其他语言往往需要不同结构。Project Fluent 的 Selectors 文档 演示了按数字或字符串选择整句变体,并要求默认分支。
不一定要使用 Fluent,需求可以直接写行为:英文 1 个任务使用单数,0 个和多个任务使用合适复数;中文使用对应整句。任务名称、姓名和备注作为值传入,不把用户内容当成界面翻译键。
另外明确日期、时区和数字显示。切换语言不应改变活动原本的开始时间,也不应重新解释已保存日期。让每种语言显示同一时间含义,并标明业务时区。
缺失文案要有回退,不要暴露内部键
至少为开始、帮助、空列表、权限不足、输入错误、成功、取消和暂时失败准备文案。新功能只补了英文成功提示,中文错误路径却输出内部键,仍然是上线缺陷。
区分两种回退:没有这种语言时切到默认语言;选中语言缺少某条文案时,对该消息使用默认版本并记录缺失键。日志只需文案键与版本等必要信息,不需要用户正文。
按钮显示文字也不能作为稳定业务标识。中文“完成”和英文“Done”应指向同一个动作,语言变化不应让旧按钮失去含义;旧消息是否更新,应作为单独政策写清。
一份可修改的需求
创建中文与英文的个人清单机器人。私聊语言按保存的用户选择、受支持的客户端语言、英文默认依次确定。/language 可切换并保存,立即用新语言确认;重新打开聊天后仍有效。切换语言只改变界面,不改变任务内容、编号或日期。群组公告由管理员配置群组语言,成员的个人选择不影响公告。开始、帮助、成功、空列表、无权限、错误和取消文案都需要完整版本;缺失键使用英文回退并记录键名。按钮使用稳定动作标识,英文任务数正确处理单复数;日期显示标注相同业务时区。
上线前验收
- 两个用户选择不同语言,交叉操作时互不覆盖。
- 缺少客户端语言或客户端使用未知语种时,得到默认界面。
- 手动选择后改变客户端语言,偏好仍按约定生效。
- 切换后立即回复、下一条更新和重新进入聊天都符合规则。
- 英文分别检查 0、1、2 个任务;中文检查同一组数据。
- 故意缺少一个错误文案,确认不会显示内部键或空白。
- 检查群组公告、旧按钮、日期与用户原始内容不被误改。
BotFatherV2 支持用 AI 对话创建和修改 Telegram Serverless 机器人。可以把语言政策、完整文案和测试用例写进需求,但固定 SDK 不等于支持任意 i18n 插件、npm 模块或 Node/Bun API。当前首版不新增依赖付费 AI 的机器人运行能力;固定文案本地化不需要自动变成运行时 AI 翻译。
BotFatherV2 独立运营,与 Telegram 官方 BotFather 无隶属关系。产品边界核验于 2026-10-14。
来源
- grammY,Internationalization (i18n),英文一手框架文档,未标注明确发布日期;2026-10-14 查阅,并交叉检查官方中文版本。
- Project Fluent,Selectors,英文一手语言规范指南,未标注发布日期;2026-10-14 查阅。