Skip to main content
Nayax Core 会以多种语言向用户提供您的扩展。要参与此系统,您的应用需要在启动时调用 Nayax 翻译 API,获取当前用户语言对应的翻译字符串,并在整个 UI 中使用这些字符串。您无需管理语言文件:Nayax 会集中管理所有已注册应用的翻译。

先决条件

  • 您的 Core Extension 已在 Nayax 注册,并拥有一个型号名称(例如 Apps/YourAppName)
  • Your app is served through the Nayax Core reverse proxy (required for the translation API to be reachable; see Reverse proxy requirement)
1

在启动时调用翻译 API

当您的应用加载时,从 Nayax Core 翻译端点获取翻译:
该端点返回一个 JSON 对象,将原始英文字符串映射到用户语言对应的翻译:
如果某个字符串不存在翻译,则该键会被省略。在这种情况下,您的应用将回退使用原始字符串。以下是一个在启动时获取并存储翻译的示例实现:
即使您的原始字符串包含大小写混合,Nayax 后端也会以小写形式存储翻译键。请始终将存储的键和查找操作规范化为小写,否则翻译将无法匹配。
2

实现一个翻译函数

创建一个函数,在已加载的翻译中查找字符串,如果未找到翻译则回退使用原始字符串:
在应用启动时调用 loadTranslations,并存储结果以便 t 可以使用它:
3

包装您的 UI 字符串

您 UI 中每一个用户可见的字符串都必须经过 t() 处理。这包括标签、按钮、表格标题、占位符、空状态以及错误消息。
需要包装:
  • 标签和标题:t('Welcome')、t('No data available')
  • 按钮文本:t('Save')、t('Cancel')
  • 占位符、空状态和错误消息:t('Search...')
无需包装:
  • 用于代码比较的状态值:if (status === 'completed')
  • CSS 类名:className="bg-green-500"
  • 控制台或调试消息:console.log('Debug info')
  • 带变量的模板字符串:t(\Machine $id`)` — 动态键无法被可靠匹配
4

始终保持模型名称一致

您 API 调用中的模型名称必须与在 Nayax 注册的模型完全一致。如果不一致,API 仍会返回 HTTP 200,但会返回一个空对象——不会有错误提示、没有翻译,也没有任何说明问题所在的指示。
常见错误:如果您的应用加载后所有文本仍显示为英文,请确认您的模型名称与 Nayax 注册的名称完全一致,包括大小写。
5

向 Nayax 提供您的字符串

Nayax 需要获取您应用中所有可翻译字符串的列表,以便为每种支持的语言添加翻译。请在注册应用或添加新字符串时向 Nayax 提供此列表。

反向代理要求

翻译端点使用相对于您应用来源(origin)解析的绝对路径。您的应用必须通过 Nayax Core 反向代理提供服务,此功能才能正常工作。 如果翻译端点返回 404,最可能的原因是您的应用是被直接访问,而不是通过 Nayax Core 反向代理访问的。请联系 Nayax 以核实您的反向代理配置。

故障排除

如果翻译未按预期工作,请使用下表来查明原因:

后续步骤

基于角色的可见性

声明管理员可以按角色显示或隐藏哪些 UI 元素。

验证

了解您的应用如何从 Nayax 接收 JWT 令牌。