Caputchin
游戏自定义

自定义一个游戏的语言

一个游戏带着它作者把它翻译成的那些语言交付。在游戏编辑器的 语言 标签页上,你可以覆盖那些字符串、修一处翻译、调整措辞以匹配你的产品,或添加一个游戏没交付的语言,而这个改动应用到渲染出的游戏上。

语言自定义从 Alpha 套餐起可用(Alpha、Troop、Apex)。

设置语言字符串

在一个站点密钥(或团队)的 游戏 页上打开游戏,然后是 语言 标签页。游戏提供的每种语言是一个预设,每个预设是一组命名的字符串(游戏内的标签和消息)。编辑你想改的那些字符串;其余的留着,它们就保持游戏的内置措辞。

语言字段始终是纯文本。除了词语,没有别的可挑。

一种语言在运行时如何被选中

每个语言预设携带一个 语言标签enesfr 等等),预设按那个标签分组。挑一个分两个阶段发生。

先是组件决定要请求哪种语言:

  1. 组件的 locale 属性,如果页面设了一个(明确的作者意图)。
  2. 否则,访客的浏览器语言(他们偏好语言中的第一个)。
  3. 否则什么都没有,服务器回退到游戏的默认。

然后服务器在合并你的覆盖之后(站点密钥盖过团队、团队盖过游戏的内置集合),按这个顺序把那种语言与预设匹配:

  1. 一个精确的标签匹配(pt-BR 找到 pt-BR 预设)。
  2. 基础语言(pt-BR 回退到一个 pt 预设)。
  3. 你标为 默认 的那个预设。
  4. 游戏的第一个预设。

所以一个带任何预设的游戏总是渲染出真实文本,绝不渲染原始的键。你在编辑器里把每种语言里的一个预设标为默认。

<caputchin-game> 元素上你还可以传一个内联的 locale 对象:一个写作属性值的 JSON 对象,例如 locale='{"start":"Go!"}'。组件把它作为那次挂载的语言信号发给服务器,服务器解析它并把它叠在解析出的预设之上,于是你的内联字符串胜过上面的一切(包括你的团队和站点密钥覆盖)。它是你自己标记的一个属性,所以它在任何套餐上都能用。复选框式的 <caputchin-widget> 不接受一个内联 locale;它的 locale 属性只接受一个语言标签或预设名。这种逐嵌入的撰写为什么免费,见 我们的理念

文本方向(从左到右或从右到左)自动从语言标签派生,所以一种从右到左的语言无需额外设置就能正确渲染。

添加或扩展一种语言

你可以扩展游戏交付的任何语言:新预设从你扩展的那个继承每一个字符串,而你只覆盖你改的那些。要添加一个游戏没交付的语言,就用那种语言的标签创建一个预设并填入字符串。

什么适用,以及在哪里

语言覆盖在服务器上解析,最具体者胜:一个站点密钥的预设胜过团队的预设,团队的预设又胜过游戏的内置语言。访客的浏览器语言选中他们看到哪个解析出的预设。

另见

本页内容