返回博客

Telegram 多语言机器人:语言选择、回退与界面文案

区分客户端语言、用户偏好和消息语种,设计 Telegram 机器人私聊与群组语言政策、缺失文案回退、按钮和单复数验收。

发布于 2026年10月14日

多语言机器人不只是给 /help 加一份英文翻译。用户手动选了中文后,下一条消息是否仍用中文?群里一名英文用户发消息,会不会改变所有人的界面?没有翻译的错误提示会显示什么?这些规则决定机器人能否稳定地服务不同语言的用户。

本文讨论固定界面文案的本地化,不是翻译群聊内容,也不要求机器人在运行时调用语言模型。菜单范围的设计可另读命令菜单指南。

分开三个语言信号

客户端语言是一个初始提示,用户明确选择的语言是偏好,而用户输入文字的语种是内容属性。三者不应该被混成一个“自动语言”字段。

grammY 的 i18n 文档 给出了从保存的选择、客户端 language_code 和默认语言协商语言的机制。它也提醒,客户端语言可能不可见。这里借用的是设计模式,不要求安装该插件。

为私聊机器人定义一条可解释的优先级:

  1. 已保存且受支持的用户选择。
  2. 客户端语言映射到受支持语言后的结果。
  3. 固定默认语言。

例如,界面只支持中文与英文时,不应简单截取前两个字母就宣布支持所有语言。明确 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 查阅。

相关文章

继续阅读具有相同产品标签的内容。

Telegram 文件收集机器人:文件标识、限制与验收

区分附件登记、转交与内容解析,明确 Telegram 文件标识、上传规则、资料权限和发布后的验收条件。

Telegram 机器人生成或发布失败:分阶段定位错误

区分需求排队、生成校验、发布与真实 Telegram 运行故障,用最小输入、阶段证据和安全支持说明定位问题。

Telegram 机器人群发怎么设计:订阅、限流与失败重试

把通知群发写成可暂停、可恢复且不重复的任务,处理用户授权、429 限流、重试、退订、失败分类与进度统计。

Telegram 机器人按钮怎么避免重复执行:回调、权限与过期状态

为确认、审批和状态切换按钮定义快速响应、服务端校验、幂等、过期处理与失败反馈,避免重复扣减或越权操作。

Telegram 多步骤机器人怎么设计:状态、取消与超时

把报名、报修和资料收集机器人拆成可恢复的步骤,明确会话状态、输入校验、取消、超时、并发与发布后的兼容规则。

Telegram 机器人深链怎么设计:启动参数、群组安装与来源识别

说明 Telegram 机器人 start 与 startgroup 深链的设计方式、64 字符限制、来源归因、安全边界和可验收的首次使用流程。