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 引擎的额外抽象层。
用于原生 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 的更多信息,请使用以下链接