如果一个节点被打包为一个合适的模块,它可以包含一个消息目录,以便在编辑器和运行时提供翻译内容。
对于模块的 package.json
中标识的每个节点,可以包含一组相应的消息目录和帮助文件,这些文件与节点的 .js
文件一起存在。
给定一个被标识为:
"name": "my-node-module",
"node-red": {
"myNode": "myNode/my-node.js"
}
以下消息目录可能存在:
myNode/locales/__language__/my-node.json
myNode/locales/__language__/my-node.html
locales
目录必须与节点的 .js
文件位于同一目录中。
路径中的 __language__
部分标识相应文件提供的语言。默认情况下,Node-RED 使用 en-US
。
消息目录是一个 JSON 文件,包含节点在编辑器中显示或在运行时日志中记录的任何文本片段。
例如:
{
"myNode" : {
"message1": "这是我的第一条消息",
"message2": "这是我的第二条消息"
}
}
该目录在特定于节点的命名空间下加载。对于上面定义的节点,该目录将在 my-node-module/myNode
命名空间下可用。
核心节点使用 node-red
命名空间。
帮助文件提供节点帮助文本的翻译版本,这些文本会显示在编辑器的信息侧边栏选项卡中。
在运行时和编辑器中,节点提供的函数可以从目录中查找消息。这些函数已经预先作用于节点自己的命名空间,因此不需要在消息标识符中包含命名空间。
节点的运行时部分可以使用 RED._()
函数访问消息。例如:
console.log(RED._("myNode.message1"));
如果节点向编辑器发送状态消息,它应该将状态的 text
设置为消息标识符。
this.status({fill:"green",shape:"dot",text:"myNode.status.ready"});
核心 node-red 目录中有许多常用的状态消息。通过在消息标识符中包含命名空间,可以使用这些消息:
this.status({fill:"green",shape:"dot",text:"node-red:common.status.connected"});
节点模板中提供的任何 HTML 元素可以指定 data-i18n
属性,以提供要使用的消息标识。例如:
<span data-i18n="myNode.label.foo"></span>
默认情况下,元素的文本内容将被消息标识替换。也可以设置元素的属性,例如 <input>
的 placeholder
:
<input type="text" data-i18n="[placeholder]myNode.placeholder.foo">
可以组合这些以指定多个替换。例如,要同时设置标题属性和显示的文本:
<a href="#" data-i18n="[title]myNode.label.linkTitle;myNode.label.linkText"></a>
除了 HTML 元素的 data-i18n
属性外,所有节点定义函数(例如 oneditprepare
)都可以使用 this._()
来检索消息。
版权所有 OpenJS Foundation 和 Node-RED 贡献者。保留所有权利。OpenJS Foundation 拥有并使用注册商标。有关 OpenJS Foundation 的商标列表,请参阅我们的 商标政策 和 商标列表。未在 OpenJS Foundation 商标列表 中列出的商标和徽标是其各自持有者的商标™或注册商标®。使用它们并不意味着与它们有任何关联或认可。
OpenJS Foundation | 使用条款 | 隐私政策 | OpenJS Foundation 章程 | 商标政策 | 商标列表 | Cookie 政策