Selaa lähdekoodia

feat: add emqx_plugins i18n

Zhongwen Deng 3 vuotta sitten
vanhempi
commit
985f83d231

+ 2 - 2
apps/emqx/src/emqx_schema.erl

@@ -128,7 +128,7 @@ roots(high) ->
         {"mqtt",
             sc(
                 ref("mqtt"),
-                #{ desc => ?DESC(mqtt)}
+                #{desc => ?DESC(mqtt)}
             )},
         {?EMQX_AUTHENTICATION_CONFIG_ROOT_NAME,
             authentication(
@@ -1268,7 +1268,7 @@ fields("sys_topics") ->
         {"sys_event_messages",
             sc(
                 ref("event_names"),
-                #{ desc => ?DESC(sys_event_messages) }
+                #{desc => ?DESC(sys_event_messages)}
             )}
     ];
 fields("event_names") ->

+ 93 - 0
apps/emqx_plugins/i18n/emqx_plugins_schema.conf

@@ -0,0 +1,93 @@
+emqx_plugins_schema {
+  plugins {
+    desc {
+      en: """
+Manage EMQX plugins.<br>
+Plugins can be pre-built as a part of EMQX package,
+or installed as a standalone package in a location specified by
+<code>install_dir</code> config key<br>
+The standalone-installed plugins are referred to as 'external' plugins.
+"""
+      zh: """管理EMQX插件。<br>
+插件可以是EMQX安装包中的一部分,也可以是一个独立的安装包。<br>
+独立安装的插件称为“外部插件”。
+           """
+    }
+    label {
+      en: "Plugins"
+      zh: "插件"
+    }
+  }
+  state {
+    desc {
+      en: "A per-plugin config to describe the desired state of the plugin."
+      zh: "描述插件的状态"
+    }
+    label {
+      en: "State"
+      zh: "插件状态"
+    }
+  }
+  name_vsn {
+    desc {
+      en: """The {name}-{version} of the plugin.<br>
+It should match the plugin application name-version as the for the plugin release package name<br>
+For example: my_plugin-0.1.0.
+"""
+      zh: """插件的名称{name}-{version}。<br>
+它应该与插件的发布包名称一致,如my_plugin-0.1.0。"""
+    }
+    label {
+      en: "Name-Version"
+      zh: "名称-版本"
+    }
+  }
+  enable {
+    desc {
+      en: "Set to 'true' to enable this plugin"
+      zh: "设置为“true”以启用此插件"
+    }
+    label {
+      en: "Enable"
+      zh: "启用"
+    }
+  }
+  states {
+    desc {
+      en: """An array of plugins in the desired states.<br>
+The plugins are started in the defined order"""
+      zh: """一组插件的状态。插件将按照定义的顺序启动"""
+    }
+    label {
+      en: "States"
+      zh: "插件启动顺序及状态"
+    }
+  }
+  install_dir {
+    desc {
+      en: """
+The installation directory for the external plugins.
+The plugin beam files and configuration files should reside in
+the subdirectory named as <code>emqx_foo_bar-0.1.0</code>.
+<br>
+NOTE: For security reasons, this directory should **NOT** be writable
+by anyone except <code>emqx</code> (or any user which runs EMQX).
+"""
+      zh: "插件安装包的目录, 不要自己创建, 只能由emqx用户创建与修改"
+    }
+    label {
+      en: "Install Directory"
+      zh: "安装目录"
+    }
+  }
+  check_interval {
+    desc {
+      en: """Check interval: check if the status of the plugins in the cluster is consistent, <br>
+if the results of 3 consecutive checks are not consistent, then alarm.
+"""
+      zh: """检查间隔:检查集群中插件的状态是否一致,<br>
+如果连续3次检查结果不一致,则报警。
+"""
+    }
+  }
+}

+ 8 - 30
apps/emqx_plugins/src/emqx_plugins_schema.erl

@@ -23,7 +23,7 @@
         , namespace/0
         ]).
 
--include_lib("typerefl/include/types.hrl").
+-include_lib("hocon/include/hoconsc.hrl").
 -include("emqx_plugins.hrl").
 
 namespace() -> "plugin".
@@ -32,33 +32,22 @@ roots() -> [?CONF_ROOT].
 
 fields(?CONF_ROOT) ->
     #{fields => root_fields(),
-      desc => """
-Manage EMQX plugins.
-<br>
-Plugins can be pre-built as a part of EMQX package,
-or installed as a standalone package in a location specified by
-<code>install_dir</code> config key
-<br>
-The standalone-installed plugins are referred to as 'external' plugins.
-"""
+      desc => ?DESC(?CONF_ROOT)
      };
 fields(state) ->
     #{ fields => state_fields(),
-       desc => "A per-plugin config to describe the desired state of the plugin."
+       desc => ?DESC(state)
      }.
 
 state_fields() ->
     [ {name_vsn,
        hoconsc:mk(string(),
-                  #{ desc => "The {name}-{version} of the plugin.<br>"
-                             "It should match the plugin application name-version as the "
-                             "for the plugin release package name<br>"
-                             "For example: my_plugin-0.1.0."
+                  #{ desc =>  ?DESC(name_vsn)
                    , required => true
                    })}
     , {enable,
        hoconsc:mk(boolean(),
-                  #{ desc => "Set to 'true' to enable this plugin"
+                  #{ desc => ?DESC(enable)
                    , required => true
                    })}
     ].
@@ -72,27 +61,16 @@ root_fields() ->
 states(type) -> hoconsc:array(hoconsc:ref(?MODULE, state));
 states(required) -> false;
 states(default) -> [];
-states(desc) -> "An array of plugins in the desired states.<br>"
-                "The plugins are started in the defined order";
+states(desc) -> ?DESC(states);
 states(_) -> undefined.
 
 install_dir(type) -> string();
 install_dir(required) -> false;
 install_dir(default) -> "plugins"; %% runner's root dir
 install_dir(T) when T =/= desc -> undefined;
-install_dir(desc) -> """
-The installation directory for the external plugins.
-The plugin beam files and configuration files should reside in
-the subdirectory named as <code>emqx_foo_bar-0.1.0</code>.
-<br>
-NOTE: For security reasons, this directory should **NOT** be writable
-by anyone except <code>emqx</code> (or any user which runs EMQX).
-""".
+install_dir(desc) -> ?DESC(install_dir).
 
 check_interval(type) -> emqx_schema:duration();
 check_interval(default) -> "5s";
 check_interval(T) when T =/= desc -> undefined;
-check_interval(desc) -> """
-Check interval: check if the status of the plugins in the cluster is consistent, <br>
-if the results of 3 consecutive checks are not consistent, then alarm.
-""".
+check_interval(desc) -> ?DESC(check_interval).