S1.06.3Complete-message formatting设计
应使用带占位符的完整句模板
别名: 完整消息模板 · 参数化消息 · whole-message translation
概念解释
完整消息格式化(complete-message formatting)是把一次用户可感知的语言行为作为一个可翻译模板,动态的人名、数量、日期或对象以占位符嵌入其中。完整指译者能看到并改写整句的词、标点和语法依赖范围,不一定要求视觉上一整段文字只能由一个组件渲染。
机制
模板把固定语言与动态数据分开:译者控制句子结构,运行时只提供有类型的参数。这样,目标语言可以移动变量、改变关系词、让动词与数量分支一致,或在不改变业务代码的情况下重写表达。若固定词仍散落在代码或多个资源中,占位符只替代了拼接符号,并没有恢复完整翻译单位。数值和日期应由实现支持的 locale formatter 处理;只有平台与数据模型提供结构化姓名字段时才使用 person-name formatter,否则把完整姓名作为一个语义值插入,不自行拆分或重排。
边界
完整模板不是把整个页面合成一条巨型字符串。独立标题、字段标签和按钮拥有各自言语行为、可访问名称和更新生命周期,应保持独立。富文本占位符若允许任意标记,会带来转义、安全和不可翻译结构问题;组件插槽也只有在其语义边界不会切断目标语言句法时才可用。开发者不可假定模板引擎会自动生成所有词形。
怎么落地
- 以一次通知、错误说明、确认问题或动作标签为单位建立消息,确保所有固定词和标点都在同一翻译资源内。
- 使用语义化、有类型的占位符,如
{fileName}、{count}、{dueDate};在注释中说明来源、示例和可用格式化选项。 - 让消息系统负责 plural/select 分支和 locale formatter,应用只传原始语义值,不传已经拼好词尾的源语言片段。
- 枚举每个分支与参数极值,按参数出现策略检查占位符遗漏、未经授权的重复与类型变化,并由母语者在最终界面确认整句语法、转义和可访问朗读。