正在加载

Kibana 仓库之外插件的本地化

要为您的插件引入本地化,请使用我们的 i18n 工具来创建 ID 和默认消息。 然后,您可以将这些带有相应默认消息的 ID 提取到本地化 JSON 文件中,供 Kibana 在运行您的插件时使用。

您必须在插件的根目录添加一个 translations 目录。 此目录将包含 Kibana 使用的翻译文件。

.
├── translations
│   ├── en.json
│   ├── ja-JP.json
│   └── zh-CN.json
└── .i18nrc.json

为了简化本地化过程,Kibana 提供了以下功能的工具

  • 验证所有翻译是否具有可翻译的字符串,并从模板中提取默认消息
  • 验证翻译文件并将它们集成到 {kib} 中

要使用 Kibana i18n 工具,请创建一个包含以下配置的 .i18nrc.json 文件

  • paths。 从中提取 i18n 翻译 ID 的目录。
  • exclude。 在解析路径时要排除的文件列表。
  • translations。 可以在其中找到 JSON 本地化的翻译列表。
{
  "paths": {
    "myPlugin": "src/ui",
  },
  "exclude": [
  ],
  "translations": [
    "translations/zh-CN.json",
    "translations/ja-JP.json"
  ]
}

一个 Kibana .i18nrc.json 示例是 这里

有关 i18n 工具的完整文档,请参见这里

要从您的插件中提取默认消息,请运行以下命令

node scripts/i18n_extract --output-dir ./translations --include-config ../kibana-extra/myPlugin/.i18nrc.json

这会在 translations 目录中输出一个 en.json 文件。 要本地化其他语言,请克隆该文件并翻译每个字符串。

检查 i18n 会执行以下操作

  • 检查所有现有标签是否存在违规。

  • .i18nrc.json 获取翻译,并将它们与提取和验证的消息进行比较。

    • 检查未使用的翻译。 如果您删除具有相应翻译的标签,则还必须从翻译文件中删除该标签。
    • 检查不兼容的翻译。 如果您从现有字符串添加或删除新参数,则还必须从翻译文件中删除该标签。

要检查您的 i18n 翻译,请运行以下命令

node scripts/i18n_check --fix --include-config ../kibana-extra/myPlugin/.i18nrc.json

Kibana 依赖于 ReactJS,并且需要在不同的环境(浏览器和 NodeJS)中进行本地化。 国际化引擎与框架无关,可以在 Kibana 的所有部分(ReactJS 和 NodeJS)中使用。

为了简化 React 中的国际化,使用 React-intl 为 React 构建了 I18n 引擎的附加抽象。

import { i18n } from '@kbn/i18n';

export const HELLO_WORLD = i18n.translate('hello.wonderful.world', {
  defaultMessage: 'Greetings, planet Earth!',
});

完整详细信息请参见这里

要在 React 中本地化字符串,请使用 FormattedMessagei18n.translate

import { i18n } from '@kbn/i18n';
import { FormattedMessage } from '@kbn/i18n-react';

export const Component = () => {
  return (
    <div>
      {i18n.translate('xpack.someText', { defaultMessage: 'Some text' })}
      <FormattedMessage id="xpack.someOtherText" defaultMessage="Some other text">
      </FormattedMessage>
    </div>
  );
};

完整详细信息请参见这里

要了解有关 i18n 工具的更多信息,请参见i18n 开发工具

要了解有关在 UI 中实现 i18n 的更多信息,请使用以下链接

© . All rights reserved.