如果一个节点被打包成一个合适的模块,它可以包含一个消息目录,以便在编辑器和运行时提供翻译后的内容。
对于模块的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": "This is my first message",
"message2": "This is my second message"
}
}
目录在节点特定的命名空间下加载。对于上面定义的节点,此目录将在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 商标列表中指明的商标和徽标是其各自持有者的商标™ 或注册®商标。使用它们不表示与它们有任何关联或得到它们的认可。
The OpenJS Foundation | 使用条款 | 隐私政策 | OpenJS Foundation 章程 | 商标政策 | 商标列表 | Cookie 政策