Kibana 仓库外部插件的本地化
编辑Kibana 仓库外部插件的本地化编辑
要为您的插件引入本地化,请使用我们的 i18n 工具创建 ID 和默认消息。然后,您可以将这些 ID 及其对应的默认消息提取到本地化 JSON 文件中,以便 Kibana 在运行您的插件时使用。
向插件添加本地化编辑
您必须在插件的根目录下添加一个 translations
目录。此目录将包含 Kibana 使用的翻译文件。
. ├── translations │ ├── en.json │ ├── ja-JP.json │ └── zh-CN.json └── .i18nrc.json
使用 Kibana i18n 工具编辑
为了简化本地化过程,Kibana 为以下功能提供了工具
- 验证所有翻译是否都有可翻译的字符串,并从模板中提取默认消息。
- 验证翻译文件并将其集成到 Kibana 中。
要使用 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 消息编辑
检查 i18n 会执行以下操作
- 检查所有现有标签是否存在违规行为。
-
从
.i18nrc.json
中获取翻译,并将它们与提取和验证的消息进行比较。- 检查未使用的翻译。如果您删除了具有相应翻译的标签,则还必须从翻译文件中删除该标签。
- 检查不兼容的翻译。如果您添加或删除了现有字符串中的新参数,则还必须从翻译文件中删除该标签。
要检查您的 i18n 翻译,请运行以下命令
node scripts/i18n_check --fix --include-config ../kibana-extra/myPlugin/.i18nrc.json
在 UI 中实现 i18n编辑
Kibana 依赖于 ReactJS,并且需要在不同的环境(浏览器和 NodeJS)中进行本地化。国际化引擎与框架无关,并且可以在 Kibana 的所有部分(ReactJS 和 NodeJS)中使用。
为了简化 React 中的国际化,使用 React-intl 为 React 围绕 I18n 引擎构建了一个额外的抽象层。
用于 Vanilla JavaScript 的 i18n编辑
import { i18n } from '@kbn/i18n'; export const HELLO_WORLD = i18n.translate('hello.wonderful.world', { defaultMessage: 'Greetings, planet Earth!', });
完整详细信息 在此处。
用于 React 的 i18n编辑
要在 React 中本地化字符串,请使用 FormattedMessage
或 i18n.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 的更多信息,请使用以下链接