跳转到内容

国际化要求

针对特定市场的强制语言要求见地区页面。

  • 必须FRVR.locale.get() 拿到玩家的 locale。
  • 必须不直接读 navigator.language / navigator.languages。它们在渠道 webview 里不可靠。
const locale = FRVR.locale.get();      // "en-US", "ja-JP", "pt-BR"
FRVR.locale.onChange(relayoutForLanguage);
  • 必须为每个 UI 字符串提供 en(或 en-US)的字符串作为回退。不支持的 locale 回退到英文。绝不要回退到写死的其他语言;绝不要回退到空字符串。
  • 必须不显示未翻译内容,或者裸的翻译 key(menu.play 之类)。
  • 必须用一个能覆盖你发行所有语言脚本的字体。
  • 必须支持文字扩展(德语、法语、俄语常常比英语长 30–50%)。不要把按钮宽度写死。
  • 应该为发行到的 RTL 语言(阿拉伯语、希伯来语)做镜像布局。要镜像 UI 方向,不只是对齐方式。
  • 必须对所有面向用户的数字、日期、货币用 Intl.NumberFormat / Intl.DateTimeFormat
  • 必须不自己写汇率换算或自创货币符号。用 FRVR.iap catalog 里返回的内容。
  • 必须不使用渠道发行市场内被限制的图像、文案或音频(国旗、宗教符号、政治内容是常见雷区)。