@@ -79,14 +74,14 @@ const UploadRef = ref(null)
const dialogVisible = ref(false)
const fileList = ref([])
const importLoading = ref(false)
-const { docMap } = useDocLink()
+// const { docMap } = useDocLink()
-const checkDocMap = {
- [BatchSettingDatabaseType.InfluxDB]: docMap.influxDbBatchSettings,
- [BatchSettingDatabaseType.TDengine]: docMap.tdengineBatchSettings,
- [BatchSettingDatabaseType.IoTDB]: docMap.iotDbBatchSettings,
- [BatchSettingDatabaseType.Datalayers]: docMap.datalayersBatchSettings,
-}
+// const checkDocMap = {
+// [BatchSettingDatabaseType.InfluxDB]: docMap.influxDbBatchSettings,
+// [BatchSettingDatabaseType.TDengine]: docMap.tdengineBatchSettings,
+// [BatchSettingDatabaseType.IoTDB]: docMap.iotDbBatchSettings,
+// [BatchSettingDatabaseType.Datalayers]: docMap.datalayersBatchSettings,
+// }
const dbNameMap = {
[BatchSettingDatabaseType.InfluxDB]: 'InfluxDB',
@@ -106,7 +101,7 @@ const {
function downloadTemplate() {
const template = templateContentMap[props.type]
- handleDownloadTemp(template, `EMQX_${dbNameMap[props.type]}_Template.csv`)
+ handleDownloadTemp(template, `ApsaraEMQX_${dbNameMap[props.type]}_Template.csv`)
}
/**
diff --git a/src/hooks/useEditionConfigs.ts b/src/hooks/useEditionConfigs.ts
index 5bf081361..7d9f41be8 100644
--- a/src/hooks/useEditionConfigs.ts
+++ b/src/hooks/useEditionConfigs.ts
@@ -31,7 +31,7 @@ export default function useEditionConfigs(): {
const edition = computed(() =>
IS_ENTERPRISE ? editionConfigs.enterprise : editionConfigs.openSource,
)
- const loginTitle = computed(() => `${t('Base.login')} - EMQX ${t(edition.value.title)}`)
+ const loginTitle = computed(() => `${t('Base.login')} - ApsaraEMQX`)
const loginBgBanner = computed(() => edition.value.banner)
const appLogo = computed(() => edition.value.logo)
diff --git a/src/i18n/Auth.ts b/src/i18n/Auth.ts
index 2e1412f97..74d563952 100644
--- a/src/i18n/Auth.ts
+++ b/src/i18n/Auth.ts
@@ -108,8 +108,8 @@ export default {
en: 'Enable External Resource Cache',
},
enableNodeCacheDesc: {
- zh: '启用外部资源缓存后,EMQX 将缓存外部资源(如 MySQL、MongoDB 等)的查询结果,以提高效率;对于本地数据源,如内置数据库或文件等不进行缓存。',
- en: 'After enabling external resource cache, EMQX will cache the query results of external resources (such as MySQL, MongoDB, etc.), to improve efficiency; for local data sources, such as built-in databases or file, are not cached.',
+ zh: '启用外部资源缓存后,ApsaraEMQX 将缓存外部资源(如 MySQL、MongoDB 等)的查询结果,以提高效率;对于本地数据源,如内置数据库或文件等不进行缓存。',
+ en: 'After enabling external resource cache, ApsaraEMQX will cache the query results of external resources (such as MySQL, MongoDB, etc.), to improve efficiency; for local data sources, such as built-in databases or file, are not cached.',
},
nodeCacheMaxCount: {
zh: '缓存最大数量',
@@ -413,7 +413,7 @@ export default {
},
delAuthnConfirm: {
zh: '删除该认证器后,可能导致非法客户端连接至当前服务器,{additionalTip}是否确认删除?',
- en: 'Deleting this authenticator may result in unauthorized clients connecting to the EMQX server, {additionalTip}continue? ',
+ en: 'Deleting this authenticator may result in unauthorized clients connecting to the ApsaraEMQX server, {additionalTip}continue? ',
},
delAuthzConfirm: {
zh: '删除该授权后,可能影响客户端发布和订阅操作的权限控制,{additionalTip}是否确认删除?',
@@ -528,16 +528,16 @@ export default {
en: 'Local Password Comparison',
},
methodHashDesc: {
- zh: 'EMQX 查询 LDAP 以获取客户端的密码,然后在本地进行比对。',
- en: "EMQX queries LDAP to retrieve the client's password and then compares it locally.",
+ zh: 'ApsaraEMQX 查询 LDAP 以获取客户端的密码,然后在本地进行比对。',
+ en: "ApsaraEMQX queries LDAP to retrieve the client's password and then compares it locally.",
},
methodBindLabel: {
zh: 'LDAP绑定验证',
en: 'LDAP Bind Authentication',
},
methodBindDesc: {
- zh: 'EMQX 直接使用 LDAP 绑定验证用户名和密码。',
- en: 'EMQX directly uses LDAP binding to authenticate the username and password.',
+ zh: 'ApsaraEMQX 直接使用 LDAP 绑定验证用户名和密码。',
+ en: 'ApsaraEMQX directly uses LDAP binding to authenticate the username and password.',
},
authnTotalDesc: {
zh: '认证器被触发执行的总次数',
@@ -726,8 +726,8 @@ export default {
en: 'Principal',
},
principalDesc: {
- zh: "服务器的 Kerberos 主体。例如 `mqtt/cluster1.my.net{'@'}MY.REALM.COM`。\n注意:使用的 realm 必须在 EMQX 节点的 `/etc/krb5.conf` 中配置。\n注意:主体必须存在于默认的 keytab 文件中。系统默认的 keytab 文件通常是 `/etc/krb5.keytab`,也可以通过环境变量 `KRB5_KTNAME` 或 `/etc/krb5.conf` 中的 `default_keytab_name` 设置。",
- en: "Kerberos principal for server. For example, `mqtt/cluster1.my.net{'@'}MY.REALM.COM`.\nNOTE: The realm in use has to be configured in `/etc/krb5.conf` in EMQX nodes.\nNOTE: The principal must be found in the default keytab file. System default keytab file is usually `/etc/krb5.keytab`, or can be set with environment variable `KRB5_KTNAME` or `default_keytab_name` in `/etc/krb5.conf`.",
+ zh: "服务器的 Kerberos 主体。例如 `mqtt/cluster1.my.net{'@'}MY.REALM.COM`。\n注意:使用的 realm 必须在 ApsaraEMQX 节点的 `/etc/krb5.conf` 中配置。\n注意:主体必须存在于默认的 keytab 文件中。系统默认的 keytab 文件通常是 `/etc/krb5.keytab`,也可以通过环境变量 `KRB5_KTNAME` 或 `/etc/krb5.conf` 中的 `default_keytab_name` 设置。",
+ en: "Kerberos principal for server. For example, `mqtt/cluster1.my.net{'@'}MY.REALM.COM`.\nNOTE: The realm in use has to be configured in `/etc/krb5.conf` in ApsaraEMQX nodes.\nNOTE: The principal must be found in the default keytab file. System default keytab file is usually `/etc/krb5.keytab`, or can be set with environment variable `KRB5_KTNAME` or `default_keytab_name` in `/etc/krb5.conf`.",
},
cinfoAuthDesc: {
zh: '使用 Client Information 进行认证',
@@ -807,7 +807,7 @@ For more functions and advanced usage, please refer to the full documentation.`,
- 仅当密码存在且区域为 \`zone1\` 时调用:
\`iif(is_empty_val(password), false, str_eq(zone, 'zone1'))\`
-更多关于 Variform 表达式的信息,请参阅 EMQX 文档。
+更多关于 Variform 表达式的信息,请参阅 ApsaraEMQX 文档。
`,
en: `A Variform expression to evaluate with a set of pre-bound variables derived from the client information.
**The expression must evaluate to a string value of 'true' for this authenticator to be invoked.**
@@ -832,6 +832,6 @@ Examples:
- Only invoke if password exists and zone is 'zone1':
\`iif(is_empty_val(password), false, str_eq(zone, 'zone1'))\`
-Find more information about Variform expressions in EMQX doc.`,
+Find more information about Variform expressions in ApsaraEMQX doc.`,
},
}
diff --git a/src/i18n/BasicConfig.ts b/src/i18n/BasicConfig.ts
index 30b073bd3..98653344f 100644
--- a/src/i18n/BasicConfig.ts
+++ b/src/i18n/BasicConfig.ts
@@ -29,15 +29,15 @@ export default {
},
readOnlyTip: {
zh: '此配置项不支持热配置,请到配置文件内修改并重启服务',
- en: 'This configuration does not support online-reload. Please update the config file and restart EMQX.',
+ en: 'This configuration does not support online-reload. Please update the config file and restart ApsaraEMQX.',
},
telemetry: {
zh: '遥测数据',
en: 'Telemetry',
},
telemetryTip: {
- zh: '遥测收集有关 EMQX 使用情况的信息,与我们共享这些指标可以帮助我们更好地了解您如何使用我们的产品,并可以持续地帮助我们改进产品',
- en: 'Telemetry collects information about EMQX usage. Sharing these metrics helps us to better understand how EMQX is used, so we can continuously improve it.',
+ zh: '遥测收集有关 ApsaraEMQX 使用情况的信息,与我们共享这些指标可以帮助我们更好地了解您如何使用我们的产品,并可以持续地帮助我们改进产品',
+ en: 'Telemetry collects information about ApsaraEMQX usage. Sharing these metrics helps us to better understand how ApsaraEMQX is used, so we can continuously improve it.',
},
enableTelemetry: {
zh: '启动遥测',
@@ -169,16 +169,16 @@ export default {
en: 'Linked (remote) cluster name. Must be exactly equal to the value of `cluster.name` configured at the remote cluster. Must **not** be equal to the local `cluster.name`. All configured cluster link names must be unique.',
},
serverAddressDesc: {
- zh: '远程 EMQX 服务的 MQTT 主机和端口。',
- en: 'MQTT host and port of the remote EMQX broker.',
+ zh: '远程 ApsaraEMQX 服务的 MQTT 主机和端口。',
+ en: 'MQTT host and port of the remote ApsaraEMQX broker.',
},
clientIdPrefix: {
zh: '客户端 ID 前缀',
en: 'Client ID Prefix',
},
clientIdPrefixDesc: {
- zh: '如果省略,则默认使用本地的 `cluster.name`。EMQX 会在连接集群时维护多个连接,并自动在基础客户端 ID 后添加不同的后缀。',
- en: 'If omitted, local `cluster.name` is used. EMQX maintains several connections between linked clusters, so distinct suffixes are automatically appended to the base client ID.',
+ zh: '如果省略,则默认使用本地的 `cluster.name`。ApsaraEMQX 会在连接集群时维护多个连接,并自动在基础客户端 ID 后添加不同的后缀。',
+ en: 'If omitted, local `cluster.name` is used. ApsaraEMQX maintains several connections between linked clusters, so distinct suffixes are automatically appended to the base client ID.',
},
disabledDeleteTopicTopic: {
zh: '请先禁用再删除主题',
@@ -193,8 +193,8 @@ export default {
en: 'Execution status and efficiency of message forwarding on each node',
},
linkingTopicsDesc: {
- zh: '由连接的远程 EMQX 服务转发至本地代理的 MQTT 主题。仅当本地 EMQX 服务有匹配的订阅者时,消息才会被转发。 支持通配符。如果在连接的一侧设置空主题列表,可实现单向连接:空主题列表的一侧不会接收远程消息,但可以根据另一侧配置的主题,将相关消息转发给其连接方。',
- en: "MQTT topics to be forwarded by the linked remote EMQX broker to the local broker. Messages are only forwarded if the local EMQX broker has matching subscriber(s). Wildcards are supported. Setting empty topics list on one side of the link can be used to establish unidirectional links: the side with the empty topics won't receive remote messages, but it can forward relevant messages to its linked counterpart (according to the topics configured on that side of the link).",
+ zh: '由连接的远程 ApsaraEMQX 服务转发至本地代理的 MQTT 主题。仅当本地 ApsaraEMQX 服务有匹配的订阅者时,消息才会被转发。 支持通配符。如果在连接的一侧设置空主题列表,可实现单向连接:空主题列表的一侧不会接收远程消息,但可以根据另一侧配置的主题,将相关消息转发给其连接方。',
+ en: "MQTT topics to be forwarded by the linked remote ApsaraEMQX broker to the local broker. Messages are only forwarded if the local ApsaraEMQX broker has matching subscriber(s). Wildcards are supported. Setting empty topics list on one side of the link can be used to establish unidirectional links: the side with the empty topics won't receive remote messages, but it can forward relevant messages to its linked counterpart (according to the topics configured on that side of the link).",
},
routes: {
zh: '路由',
diff --git a/src/i18n/Clients.ts b/src/i18n/Clients.ts
index 4393c2512..6e81b6288 100644
--- a/src/i18n/Clients.ts
+++ b/src/i18n/Clients.ts
@@ -508,8 +508,8 @@ export default {
en: 'Message queue used to store messages that cannot be sent due to the limit of inflight window, and to temporarily store messages when a client is offline. The message queue has a length limit, and if it is reached, the oldest messages will be dropped.',
},
inflightDesc: {
- zh: 'EMQX 允许多个未确认的 QoS 1 和 QoS 2 报文同时存在于网路链路上。这些已发送但未确认的报文将被存放在 Inflight Window 中直至完成确认。',
- en: 'EMQX allows multiple unacknowledged QoS 1 and QoS 2 packets to exist on the network link at the same time. These sent but unconfirmed packets will be stored in the Inflight Window until acknowledgment is complete.',
+ zh: 'ApsaraEMQX 允许多个未确认的 QoS 1 和 QoS 2 报文同时存在于网路链路上。这些已发送但未确认的报文将被存放在 Inflight Window 中直至完成确认。',
+ en: 'ApsaraEMQX allows multiple unacknowledged QoS 1 and QoS 2 packets to exist on the network link at the same time. These sent but unconfirmed packets will be stored in the Inflight Window until acknowledgment is complete.',
},
cannotViewMsg: {
zh: '当开启持久会话时,将无法查看消息列表',
diff --git a/src/i18n/Dashboard.ts b/src/i18n/Dashboard.ts
index d50816bf2..ab43267d2 100644
--- a/src/i18n/Dashboard.ts
+++ b/src/i18n/Dashboard.ts
@@ -104,8 +104,8 @@ export default {
en: 'Version',
},
EMQXVersion: {
- zh: 'EMQX 版本信息:',
- en: 'EMQX Version:',
+ zh: 'ApsaraEMQX 版本信息:',
+ en: 'ApsaraEMQX Version:',
},
basic: {
zh: '基础信息',
@@ -256,8 +256,8 @@ export default {
en: 'Expire At:',
},
beforeTheCertificateExpires: {
- zh: '证书到期前 EMQ 将通过邮件通知签发邮箱,请留意信息接收以免错过续期时间对业务造成影响。',
- en: 'EMQ will send license expiration reminder by email. Please pay attention to the contact email inbox.',
+ zh: '证书到期前阿里云将通过邮件通知签发邮箱,请留意信息接收以免错过续期时间对业务造成影响。',
+ en: 'Aliyun will send license expiration reminder by email. Please pay attention to the contact email inbox.',
},
forTrialEdition: {
zh: '当前 License 为试用版',
@@ -276,34 +276,34 @@ export default {
- A 30-day uptime limit, must restart the node to regain the sessions quota.`,
},
communityLicenseTip: {
- en: `You are running EMQX under the Community License (single-node).
+ en: `You are running ApsaraEMQX under the Community License (single-node).
**Current Permissions (Free Use):**
- All non-production activities.
-- Single-node production deployment: Provided you are not offering EMQX commercially as a hosted service or embedding it into a product you sell.
+- Single-node production deployment: Provided you are not offering ApsaraEMQX commercially as a hosted service or embedding it into a product you sell.
**Commercial License Required For:**
- Cluster deployments (2+ nodes)
-- Offering EMQX as a commercial SaaS or hosted service.
-- Embedding/distributing EMQX within a commercial product that you sell.
+- Offering ApsaraEMQX as a commercial SaaS or hosted service.
+- Embedding/distributing ApsaraEMQX within a commercial product that you sell.
To enable clustering or for commercial use cases mentioned above, please obtain a commercial license:
[Get Commercial License]({applyLicenseLink}) | [License FAQ]({faqLinkPlaceholder})`,
- zh: `您当前正在使用 EMQX 社区版许可证(单节点)。
License removal is prohibited while EMQX is operating in cluster mode.
Action Required: Please dissolve the cluster configuration first.
After dissolving the cluster, removing the license will revert EMQX to the single-node Community License. Existing client connections will not be affected.',
+ zh: '集群模式下无法移除许可证
License removal is prohibited while ApsaraEMQX is operating in cluster mode.
Action Required: Please dissolve the cluster configuration first.
After dissolving the cluster, removing the license will revert ApsaraEMQX to the single-node Community License. Existing client connections will not be affected.',
},
resetLicenseConfirm: {
- zh: '确认移除(解散集群后): 在下方输入 remove。
移除许可证会将 EMQX 恢复到单节点的社区版许可证。已连接的客户端不会受此影响。
注意: 如果您的许可证只是即将到期,可以直接更新,无需移除。',
- en: 'Confirmation (requires single-node): Type remove to proceed with removal.
Removing the license will revert EMQX to the single-node Community License. Existing client connections will not be affected.
Note: If your license is expiring, you can update it directly without removal.',
+ zh: '确认移除(解散集群后): 在下方输入 remove。
移除许可证会将 ApsaraEMQX 恢复到单节点的社区版许可证。已连接的客户端不会受此影响。
注意: 如果您的许可证只是即将到期,可以直接更新,无需移除。',
+ en: 'Confirmation (requires single-node): Type remove to proceed with removal.
Removing the license will revert ApsaraEMQX to the single-node Community License. Existing client connections will not be affected.
Note: If your license is expiring, you can update it directly without removal.',
},
licenseSettings: {
zh: 'License 设置',
@@ -637,16 +637,16 @@ To enable clustering or for commercial use cases mentioned above, please obtain
},
/* message */
messages_delayed: {
- zh: 'EMQX 存储的延迟发布的消息数量',
- en: 'Number of delay-published messages stored by EMQX Broker',
+ zh: 'ApsaraEMQX 存储的延迟发布的消息数量',
+ en: 'Number of delay-published messages stored by ApsaraEMQX Broker',
},
messages_delivered: {
- zh: 'EMQX 内部转发到订阅进程的消息数量',
- en: 'Number of messages forwarded to the subscription process internally by EMQX Broker',
+ zh: 'ApsaraEMQX 内部转发到订阅进程的消息数量',
+ en: 'Number of messages forwarded to the subscription process internally by ApsaraEMQX Broker',
},
messages_dropped: {
- zh: 'EMQX 内部转发到订阅进程前丢弃的消息总数',
- en: 'Total number of messages dropped by EMQX Broker before forwarding to the subscription process',
+ zh: 'ApsaraEMQX 内部转发到订阅进程前丢弃的消息总数',
+ en: 'Total number of messages dropped by ApsaraEMQX Broker before forwarding to the subscription process',
},
messages_dropped_no_subscribers: {
zh: '由于没有订阅者而被丢弃的消息数量',
@@ -919,8 +919,8 @@ To enable clustering or for commercial use cases mentioned above, please obtain
en: 'Message transformation succeeded',
},
multiVersionWarning: {
- zh: '当前集群下存在不同 EMQX 版本的节点,请前往',
- en: 'Different versions of EMQX nodes exist in the cluster, please go to ',
+ zh: '当前集群下存在不同 ApsaraEMQX 版本的节点,请前往',
+ en: 'Different versions of ApsaraEMQX nodes exist in the cluster, please go to ',
},
checkVersionInfo: {
zh: '查看各节点的版本信息。',
@@ -944,8 +944,8 @@ To enable clustering or for commercial use cases mentioned above, please obtain
en: 'Messages dropped due to not receiving a PUBREL packet within the timeout period for QoS 2 messages.',
},
dropped_await_pubrel_timeout_impact: {
- zh: '可能表明发布客户端运行缓慢或行为异常,无法在 EMQX 等待超过最大 PUBREL 等待时长(`await_rel_timeout`)限制之前发送 `PUBREL` 消息。这并不一定表示消息丢失,因为 `PUBLISH` 数据包已经被路由至订阅客户端。',
- en: 'May indicate slow or misbehaving publishing clients which cannot send `PUBREL` messages before EMQX gives up waiting after max awaiting PUBREL timeout(`await_rel_timeout`). This does not necessarily indicate message loss since the `PUBLISH` packet itself has already been routed to the subscriber clients.',
+ zh: '可能表明发布客户端运行缓慢或行为异常,无法在 ApsaraEMQX 等待超过最大 PUBREL 等待时长(`await_rel_timeout`)限制之前发送 `PUBREL` 消息。这并不一定表示消息丢失,因为 `PUBLISH` 数据包已经被路由至订阅客户端。',
+ en: 'May indicate slow or misbehaving publishing clients which cannot send `PUBREL` messages before ApsaraEMQX gives up waiting after max awaiting PUBREL timeout(`await_rel_timeout`). This does not necessarily indicate message loss since the `PUBLISH` packet itself has already been routed to the subscriber clients.',
},
dropped_no_subscribers: {
zh: '无订阅者',
@@ -972,8 +972,8 @@ To enable clustering or for commercial use cases mentioned above, please obtain
en: 'Messages dropped because there were no subscribers for the topic.',
},
dropped_no_subscribers_impact: {
- zh: '当 `PUBLISH` 消息未能找到相应的订阅者时,该计数器将递增。注意:EMQX 规则引擎不被视为 MQTT 订阅者,因此即使消息符合规则但未匹配到任何 MQTT 订阅者,该计数器仍会递增。',
- en: 'This counter increments when no subscriber is found for a `PUBLISH` message. Note: The EMQX rule engine is not considered a subscription, so this counter will increment even if the message matches rules but not any MQTT subscriptions.',
+ zh: '当 `PUBLISH` 消息未能找到相应的订阅者时,该计数器将递增。注意:ApsaraEMQX 规则引擎不被视为 MQTT 订阅者,因此即使消息符合规则但未匹配到任何 MQTT 订阅者,该计数器仍会递增。',
+ en: 'This counter increments when no subscriber is found for a `PUBLISH` message. Note: The ApsaraEMQX rule engine is not considered a subscription, so this counter will increment even if the message matches rules but not any MQTT subscriptions.',
},
dropped_qos0_msg: {
zh: '消息队列满且 QoS 为 0',
diff --git a/src/i18n/Gateway.ts b/src/i18n/Gateway.ts
index 45d4362bb..b1ed440a7 100644
--- a/src/i18n/Gateway.ts
+++ b/src/i18n/Gateway.ts
@@ -464,7 +464,7 @@ Note: mounting occurs **after authorization/ACL checks**.`,
},
tcpKeepaliveDesc: {
zh: "接受三个参数,格式为 'Idle,Interval,Probes': - Idle:空闲时长阈值(秒),超过该时长后开始发送 keepalive 探测包(Linux 默认值:7200) - Interval:连续探测包之间的时间间隔(秒)(Linux 默认值:75) - Probes:允许的最大连续未响应探测次数,超过此值将终止连接(Linux 默认值:9) 示例 `240,30,5` 表示连接空闲 240 秒后启动 keepalive 探测,每 30 秒发送一次探测包,连续 5 次探测未收到响应则终止连接 默认值:`none`(禁用 keepalive) ",
- en: "Accepts three parameters in the format 'Idle,Interval,Probes': - Idle: The number of seconds a connection needs to be idle before the server begins to send out keep-alive probes (Linux default 7200). - Interval: The number of seconds between TCP keep-alive probes (Linux default 75). - Probes: The maximum number of TCP keep-alive probes to send before giving up and killing the connection if no response is obtained from the other end (Linux default 9). For example `240,30,5` means: EMQX should start sending TCP keepalive probes after the connection is in idle for 240 seconds, and the probes are sent every 30 seconds until a response is received from the MQTT client, if it misses 5 consecutive responses, EMQX should close the connection. Default: `none` (keepalive disabled) ",
+ en: "Accepts three parameters in the format 'Idle,Interval,Probes': - Idle: The number of seconds a connection needs to be idle before the server begins to send out keep-alive probes (Linux default 7200). - Interval: The number of seconds between TCP keep-alive probes (Linux default 75). - Probes: The maximum number of TCP keep-alive probes to send before giving up and killing the connection if no response is obtained from the other end (Linux default 9). For example `240,30,5` means: ApsaraEMQX should start sending TCP keepalive probes after the connection is in idle for 240 seconds, and the probes are sent every 30 seconds until a response is received from the MQTT client, if it misses 5 consecutive responses, ApsaraEMQX should close the connection. Default: `none` (keepalive disabled) ",
},
nolinger: {
zh: '连接关闭模式(nolinger)',
diff --git a/src/i18n/General.ts b/src/i18n/General.ts
index 10dfdac16..6403f306b 100644
--- a/src/i18n/General.ts
+++ b/src/i18n/General.ts
@@ -64,16 +64,16 @@ export default {
en: 'Administrator',
},
adminDesc: {
- zh: '拥有对 EMQX 所有功能和资源的完全管理访问权限,包括客户端管理、系统配置、API 密钥以及用户管理。',
- en: 'Has full access to manage all features and resources of EMQX, including client management, system configuration, API key and user management.',
+ zh: '拥有对 ApsaraEMQX 所有功能和资源的完全管理访问权限,包括客户端管理、系统配置、API 密钥以及用户管理。',
+ en: 'Has full access to manage all features and resources of ApsaraEMQX, including client management, system configuration, API key and user management.',
},
viewer: {
zh: '查看者',
en: 'Viewer',
},
viewerDesc: {
- zh: '可以访问 EMQX 的所有数据和配置信息,但无权进行创建、修改和删除操作。',
- en: 'Can access all data and configuration of EMQX, but has no rights to create, modify or delete.',
+ zh: '可以访问 ApsaraEMQX 的所有数据和配置信息,但无权进行创建、修改和删除操作。',
+ en: 'Can access all data and configuration of ApsaraEMQX, but has no rights to create, modify or delete.',
},
password: {
zh: '密码',
@@ -364,8 +364,8 @@ export default {
en: 'Source Type',
},
auditLogDesc: {
- zh: '审计日志功能可以记录对 EMQX 集群的关键操作,以满足企业在合规性和数据安全方面的需求。',
- en: 'The audit log feature records critical operations on the EMQX cluster to meet enterprise requirements for compliance and data security.',
+ zh: '审计日志功能可以记录对 ApsaraApsaraEMQX 集群的关键操作,以满足企业在合规性和数据安全方面的需求。',
+ en: 'The audit log feature records critical operations on the ApsaraApsaraEMQX cluster to meet enterprise requirements for compliance and data security.',
},
httpFilterParamsDesc: {
zh: 'Dashboard/REST API 筛选条件',
@@ -476,8 +476,8 @@ export default {
en: 'Session Heartbeat Interval',
},
lastAliveUpdateIntervalDesc: {
- zh: '以设置的时间间隔,持续更新会话最后一次存活的时间戳。当会话非正常终止(例如,EMQX 节点以 kill -9 终止),会话垃圾回收器将根据会话最后存活时间计算过期时间,并销毁过期离线会话。',
- en: 'At the configured interval, continuously update the timestamp of the last session alive. When a session terminates abnormally (e.g., when an EMQX node is terminated with kill -9), the session garbage collector will calculate the expiration time based on the last session alive timestamp and destroy expired offline sessions.',
+ zh: '以设置的时间间隔,持续更新会话最后一次存活的时间戳。当会话非正常终止(例如,ApsaraEMQX 节点以 kill -9 终止),会话垃圾回收器将根据会话最后存活时间计算过期时间,并销毁过期离线会话。',
+ en: 'At the configured interval, continuously update the timestamp of the last session alive. When a session terminates abnormally (e.g., when an ApsaraEMQX node is terminated with kill -9), the session garbage collector will calculate the expiration time based on the last session alive timestamp and destroy expired offline sessions.',
},
sessionGcInterval: {
zh: '会话垃圾回收间隔',
@@ -524,8 +524,8 @@ export default {
en: 'Max Mailbox Size',
},
maxMailboxSizeDesc: {
- zh: 'EMQX 为每个客户端连接创建至少一个轻量级进程。每个进程都有自己的消息队列(邮箱)来保存来自其他进程(如 MQTT 消息)的消息,以便进程可以随时从消息队列(邮箱)中读取消息。如果系统繁忙或进程因繁忙的套接字而挂起,消息队列可能会积累大量消息。为避免过度使用内存,当进程的消息队列长度超过此值时,EMQX 将强制关闭该进程。',
- en: 'EMQX creates at least one lightweight process for each client connection. Each process has its own message queue (aka mailbox) to hold messages from other processes (e.g. MQTT messages) so that the process can read messages from the message queue (mailbox) at any time. If the system is busy or the process hangs due to a busy socket (see high_watermark), the message queue can accumulate many messages. To avoid excessive memory usage, EMQX will force a process to shut down when the length of its message queue exceeds max_mailbox_size.',
+ zh: 'ApsaraEMQX 为每个客户端连接创建至少一个轻量级进程。每个进程都有自己的消息队列(邮箱)来保存来自其他进程(如 MQTT 消息)的消息,以便进程可以随时从消息队列(邮箱)中读取消息。如果系统繁忙或进程因繁忙的套接字而挂起,消息队列可能会积累大量消息。为避免过度使用内存,当进程的消息队列长度超过此值时,ApsaraEMQX 将强制关闭该进程。',
+ en: 'ApsaraEMQX creates at least one lightweight process for each client connection. Each process has its own message queue (aka mailbox) to hold messages from other processes (e.g. MQTT messages) so that the process can read messages from the message queue (mailbox) at any time. If the system is busy or the process hangs due to a busy socket (see high_watermark), the message queue can accumulate many messages. To avoid excessive memory usage, ApsaraEMQX will force a process to shut down when the length of its message queue exceeds max_mailbox_size.',
},
version: {
zh: '版本号',
@@ -552,8 +552,8 @@ export default {
en: 'Upgrade Records',
},
packageTip: {
- zh: '请上传 EMQ 支持人员提供的 .tar.gz 格式的升级包',
- en: 'Please upload the .tar.gz upgrade package provided by EMQ support',
+ zh: '请上传阿里云支持人员提供的 .tar.gz 格式的升级包',
+ en: 'Please upload the .tar.gz upgrade package provided by Aliyun support',
},
selectUpgradePackage: {
zh: '选择升级包',
@@ -628,10 +628,10 @@ export default {
en: 'Update Log',
},
upgradeWarning: {
- zh: `1. 请务必使用 EMQ 支持人员提供的升级包,并在其指导下进行升级。
+ zh: `1. 请务必使用阿里云支持人员提供的升级包,并在其指导下进行升级。
2. 升级前,请备份重要数据。
3. 在升级过程中,请勿进行其他操作。`,
- en: `1. Be sure to use the upgrade package provided by EMQ support and upgrade under their guidance.
+ en: `1. Be sure to use the upgrade package provided by Aliyun support and upgrade under their guidance.
2. Backup important data before upgrading.
3. Do not perform other operations during the upgrade process.`,
},
diff --git a/src/i18n/MonitoringIntegration.ts b/src/i18n/MonitoringIntegration.ts
index d9de1252c..7698429b3 100644
--- a/src/i18n/MonitoringIntegration.ts
+++ b/src/i18n/MonitoringIntegration.ts
@@ -12,8 +12,8 @@ export default {
en: 'Enable Pushgateway',
},
enablePushgatewayDesc: {
- zh: '启用后,EMQX 将会将监控数据推送到 Pushgateway,然后由 Prometheus 从 Pushgateway 中拉取数据。',
- en: 'After enabling, EMQX will push the monitoring metrics data to the Pushgateway, and then Prometheus will pull the data from the Pushgateway.',
+ zh: '启用后,ApsaraEMQX 将会将监控数据推送到 Pushgateway,然后由 Prometheus 从 Pushgateway 中拉取数据。',
+ en: 'After enabling, ApsaraEMQX will push the monitoring metrics data to the Pushgateway, and then Prometheus will pull the data from the Pushgateway.',
},
interval: {
zh: '采集间隔',
@@ -26,15 +26,15 @@ export default {
jobNameDesc: {
zh: `推送到 Pushgateway 的 Job 名称。可用变量为:
- \${'{'}cluster_name{'}'}: 在 cluster.name 中配置的集群名称。
-- \${'{'}name{'}'}: EMQX 节点的名称。
-- \${'{'}host{'}'}: EMQX 节点主机名。
-例如,当 EMQX 节点名为 emqx{'@'}127.0.0.1 则 name 变量的值为 emqx,host 变量的值为 127.0.0.1。
+- \${'{'}name{'}'}: ApsaraEMQX 节点的名称。
+- \${'{'}host{'}'}: ApsaraEMQX 节点主机名。
+例如,当 ApsaraEMQX 节点名为 ApsaraEMQX{'@'}127.0.0.1 则 name 变量的值为 ApsaraEMQX,host 变量的值为 127.0.0.1。
默认值为: \${'{'}name{'}'}/instance/\${'{'}name{'}'}~\${'{'}host{'}'}`,
en: `Job Name that is pushed to the Pushgateway. Available variables:
- \${'{'}cluster_name{'}'}: The cluster name configured in cluster.name.
-- \${'{'}name{'}'}: Name of EMQX node.
-- \${'{'}host{'}'}: Host name of EMQX node.
-For example, when the EMQX node name is emqx{'@'}127.0.0.1 then the name variable takes value emqx and the host variable takes value 127.0.0.1.
+- \${'{'}name{'}'}: Name of ApsaraEMQX node.
+- \${'{'}host{'}'}: Host name of ApsaraEMQX node.
+For example, when the ApsaraEMQX node name is ApsaraEMQX{'@'}127.0.0.1 then the name variable takes value ApsaraEMQX and the host variable takes value 127.0.0.1.
Default value is: \${'{'}name{'}'}/instance/\${'{'}name{'}'}~\${'{'}host{'}'}`,
},
headersDesc: {
@@ -72,8 +72,8 @@ For example, {'{'} Authorization = "some-authz-tokens"{'}'}`,
en: 'Prometheus and Grafana setup help',
},
promSetupHelpDesc: {
- zh: 'EMQX 支持将数据集成到 Prometheus 服务中来监控数据,可以使用 Grafana 来可视化监控数据。通常使用默认方法即可完成配置,也可选择使用 Pushgateway。',
- en: 'EMQX supports integrating data into the Prometheus service to monitor data, and you can use Grafana to visualize monitoring data. Usually the default method can be used to complete the configuration, or you can choose to use Pushgateway.',
+ zh: 'ApsaraEMQX 支持将数据集成到 Prometheus 服务中来监控数据,可以使用 Grafana 来可视化监控数据。通常使用默认方法即可完成配置,也可选择使用 Pushgateway。',
+ en: 'ApsaraEMQX supports integrating data into the Prometheus service to monitor data, and you can use Grafana to visualize monitoring data. Usually the default method can be used to complete the configuration, or you can choose to use Pushgateway.',
},
pushgatewayInstall: {
zh: '安装 Pushgateway 或 Node Exporter 服务',
@@ -96,8 +96,8 @@ For example, {'{'} Authorization = "some-authz-tokens"{'}'}`,
en: 'Configure Prometheus',
},
promConfigDesc: {
- zh: '生成 Prometheus 配置文件,包括 EMQX 服务地址,以及 EMQX 提供监控数据 API 的 Path。',
- en: 'Generate a Prometheus configuration file, including the EMQX service address, and the Path of the EMQX monitoring metrics data API.',
+ zh: '生成 Prometheus 配置文件,包括 ApsaraEMQX 服务地址,以及 ApsaraEMQX 提供监控数据 API 的 Path。',
+ en: 'Generate a Prometheus configuration file, including the ApsaraEMQX service address, and the Path of the ApsaraEMQX monitoring metrics data API.',
},
promStepTwo: {
zh: '在 Prometheus 的配置文件中添加 Pushgateway 服务的地址,Node Exporter 和 Prometheus 的地址在有需要的情况下再添加。',
@@ -132,8 +132,8 @@ For example, {'{'} Authorization = "some-authz-tokens"{'}'}`,
en: 'Please configure the Pushgateway address',
},
emqxRequired: {
- zh: '请配置 EMQX 地址',
- en: 'Please configure the EMQX address',
+ zh: '请配置 ApsaraEMQX 地址',
+ en: 'Please configure the ApsaraEMQX address',
},
metricsPathRequired: {
zh: '请配置 metrics API path',
@@ -189,8 +189,8 @@ For example, {'{'} Authorization = "some-authz-tokens"{'}'}`,
en: 'Traces All Messages',
},
tracesFilterTracesAllDesc: {
- zh: '当启用时,EMQX 将追踪所有发布的消息,如果无法从消息中提取追踪ID,则会生成一个新的追踪ID。当禁用时,只有在发布时带有追踪上下文(Trace context)的消息才会被追踪。',
- en: 'When enabled, the EMQX will trace all published messages. If a trace ID cannot be extracted from the message, a new trace ID will be generated. When disabled, only messages with trace context at the time of publishing will be traced.',
+ zh: '当启用时,ApsaraEMQX 将追踪所有发布的消息,如果无法从消息中提取追踪ID,则会生成一个新的追踪ID。当禁用时,只有在发布时带有追踪上下文(Trace context)的消息才会被追踪。',
+ en: 'When enabled, the ApsaraEMQX will trace all published messages. If a trace ID cannot be extracted from the message, a new trace ID will be generated. When disabled, only messages with trace context at the time of publishing will be traced.',
},
logsEnable: {
zh: '日志',
@@ -201,16 +201,16 @@ For example, {'{'} Authorization = "some-authz-tokens"{'}'}`,
en: 'Logs Level',
},
dataDogTip: {
- zh: '无需配置额外参数,请参考{docUse}了解使用方法。更多详情请参阅 {docIntegration}。',
- en: 'No extra configuration is required, please refer to {docUse} for usage. See {docIntegration} for more details.',
+ zh: '无需配置额外参数。',
+ en: 'No extra configuration is required.',
},
thisDoc: {
zh: '此文档',
en: 'this doc',
},
datadogIntegration: {
- zh: 'Datadog - EMQX 集成',
- en: 'Datadog - EMQX Integration',
+ zh: 'Datadog - ApsaraEMQX 集成',
+ en: 'Datadog - ApsaraEMQX Integration',
},
e2e: {
zh: '端到端',
@@ -237,8 +237,8 @@ For example, {'{'} Authorization = "some-authz-tokens"{'}'}`,
en: 'Cluster Identifier',
},
clusterIdentifierDesc: {
- zh: '添加到 Span 的 Attributes 中的属性值。属性键将是 `cluster.id`。通常,设置一个简单且易于识别的名称或使用集群名称来标识不同的 EMQX 集群。',
- en: "An attribute value added into Span's Attributes. The attribute key will be `cluster.id`. Typically, set a simple and easily recognizable name or use the cluster name to identify different EMQX clusters.",
+ zh: '添加到 Span 的 Attributes 中的属性值。属性键将是 `cluster.id`。通常,设置一个简单且易于识别的名称或使用集群名称来标识不同的 ApsaraEMQX 集群。',
+ en: "An attribute value added into Span's Attributes. The attribute key will be `cluster.id`. Typically, set a simple and easily recognizable name or use the cluster name to identify different ApsaraEMQX clusters.",
},
alreadyExists: {
zh: '已存在',
diff --git a/src/i18n/Plugins.ts b/src/i18n/Plugins.ts
index 67255ba0c..5f1e2b9c3 100644
--- a/src/i18n/Plugins.ts
+++ b/src/i18n/Plugins.ts
@@ -116,8 +116,8 @@ export default {
en: 'This plugin does not support configuration via the Dashboard.',
},
pluginInstallGuidance: {
- zh: `为确保系统安全,EMQX 不允许直接通过 Dashboard 安装插件。点击“安装”按钮前,需先使用命令 \`emqx ctl plugins allow {'{'}NAME{'}'}-{'{'}VSN{'}'}\` 授权插件安装,命令行执行后对集群内所有节点生效。安装完成后,授权将失效,如需再次安装插件,请重新授权。
您也可以通过其他方法将插件包上传到 EMQX 服务器的 plugins/ 目录,并解压安装包进行安装。`,
- en: `To ensure system security, EMQX does not allow direct installation of plugins through the Dashboard. Before clicking the "Install" button, you need to use the command \`emqx ctl plugins allow {'{'}NAME{'}'}-{'{'}VSN{'}'}\` to allow plugin installation. After the installation is complete, the current authorization expires. If you need to install it again, you need to authorize again.
You can also upload the plugin package to the plugins/ directory on the EMQX server and extract the package for installation.`,
+ zh: `为确保系统安全,ApsaraEMQX 不允许直接通过 Dashboard 安装插件。点击“安装”按钮前,需先使用命令 \`emqx ctl plugins allow {'{'}NAME{'}'}-{'{'}VSN{'}'}\` 授权插件安装,命令行执行后对集群内所有节点生效。安装完成后,授权将失效,如需再次安装插件,请重新授权。
您也可以通过其他方法将插件包上传到 ApsaraEMQX 服务器的 plugins/ 目录,并解压安装包进行安装。`,
+ en: `To ensure system security, ApsaraEMQX does not allow direct installation of plugins through the Dashboard. Before clicking the "Install" button, you need to use the command \`emqx ctl plugins allow {'{'}NAME{'}'}-{'{'}VSN{'}'}\` to allow plugin installation. After the installation is complete, the current authorization expires. If you need to install it again, you need to authorize again.
You can also upload the plugin package to the plugins/ directory on the ApsaraEMQX server and extract the package for installation.`,
},
pluginInstallCommand: {
zh: '授权插件安装命令:',
diff --git a/src/i18n/RuleEngine.ts b/src/i18n/RuleEngine.ts
index ffb905d26..811720a65 100644
--- a/src/i18n/RuleEngine.ts
+++ b/src/i18n/RuleEngine.ts
@@ -974,8 +974,8 @@ export default {
en: 'SysKeeper Proxy',
},
sysKeeperProxyDesc: {
- zh: 'SysKeeper 接收器用于创建监听器并接收转发器的连接,消息将按照转发配置发布到 EMQX 本地主题,请配套转发器使用。',
- en: 'The SysKeeper Proxy is used to create a listener and receive connections from the Forwarder. The messages will be published to the local topics of EMQX according to the forwarding configuration. Please use it together with the Forwarder.',
+ zh: 'SysKeeper 接收器用于创建监听器并接收转发器的连接,消息将按照转发配置发布到 ApsaraEMQX 本地主题,请配套转发器使用。',
+ en: 'The SysKeeper Proxy is used to create a listener and receive connections from the Forwarder. The messages will be published to the local topics of ApsaraEMQX according to the forwarding configuration. Please use it together with the Forwarder.',
},
sysKeeperForwarder: {
zh: 'SysKeeper 转发器',
@@ -1010,10 +1010,10 @@ export default {
en: 'specify the format and content of the data so that it can be parsed and written to {database}, placeholder supported.',
},
timestampDesc: {
- zh: `数据的 UNIX 时间戳。如果此字段为空或使用 \`\${'{'}timestamp{'}'}\` 模板,则 EMQX 使用其主机机器的系统时间(UTC)。请注意,此情况下的最大精度将被限制为毫秒,即使在"精度"字段中指定了更高的精度。
+ zh: `数据的 UNIX 时间戳。如果此字段为空或使用 \`\${'{'}timestamp{'}'}\` 模板,则 ApsaraEMQX 使用其主机机器的系统时间(UTC)。请注意,此情况下的最大精度将被限制为毫秒,即使在"精度"字段中指定了更高的精度。
如果使用任何其他时间戳,则其精度必须与"精度"字段中选择的值完全匹配。
建议使用模板语法,例如 \`\${'{'}timestamp{'}'}\` 或 \`\${'{'}payload.timestamp{'}'}\`,为每条消息写入 {database} 数据记录。`,
- en: `The UNIX timestamp for the data. EMQX uses its host machine's system time (UTC) if this field is left empty or \`\${'{'}timestamp{'}'}\` template is used explicitly. Note that the maximum precision in this case will be limited to milliseconds, even if a higher precision is specified in the 'precision' field.
+ en: `The UNIX timestamp for the data. ApsaraEMQX uses its host machine's system time (UTC) if this field is left empty or \`\${'{'}timestamp{'}'}\` template is used explicitly. Note that the maximum precision in this case will be limited to milliseconds, even if a higher precision is specified in the 'precision' field.
If any other timestamp is used, its precision must exactly match the value chosen in the 'precision' field.
It's recommended to use a template syntax, e.g., \`\${'{'}timestamp{'}'}\` or \`\${'{'}payload.timestamp{'}'}\`, to write an {database} data record for each message.`,
},
@@ -1126,8 +1126,8 @@ It's recommended to use a template syntax, e.g., \`\${'{'}timestamp{'}'}\` or \`
zh: 'Kerberos keytab 文件',
},
kerberosPrincipalDesc: {
- en: `SASL GSSAPI authentication Kerberos principal. For example client_name{'@'}MY.KERBEROS.REALM.MYDOMAIN.COM, NOTE: The realm in use has to be configured in /etc/krb5.conf in EMQX nodes.`,
- zh: `SASL GSSAPI 认证方法的 Kerberos principal,例如 client_name{'@'}MY.KERBEROS.REALM.MYDOMAIN.COM注意:这里使用的 realm 需要配置在 EMQX 服务器的 /etc/krb5.conf 中`,
+ en: `SASL GSSAPI authentication Kerberos principal. For example client_name{'@'}MY.KERBEROS.REALM.MYDOMAIN.COM, NOTE: The realm in use has to be configured in /etc/krb5.conf in ApsaraEMQX nodes.`,
+ zh: `SASL GSSAPI 认证方法的 Kerberos principal,例如 client_name{'@'}MY.KERBEROS.REALM.MYDOMAIN.COM注意:这里使用的 realm 需要配置在 ApsaraEMQX 服务器的 /etc/krb5.conf 中`,
},
autoRestartIntervalDesc: {
en: 'The auto restart interval after the resource is disconnected. ',
@@ -1142,8 +1142,8 @@ It's recommended to use a template syntax, e.g., \`\${'{'}timestamp{'}'}\` or \`
en: 'Fill in the file path',
},
kerberosKeytabFileDesc: {
- en: 'SASL GSSAPI authentication Kerberos keytab file path. NOTE: This file has to be placed in EMQX nodes, and the EMQX service runner user requires read permission.',
- zh: 'SASL GSSAPI 认证方法的 Kerberos keytab 文件。注意:该文件需要上传到 EMQX 服务器中,且运行 EMQX 服务的系统账户需要有读取权限。',
+ en: 'SASL GSSAPI authentication Kerberos keytab file path. NOTE: This file has to be placed in ApsaraEMQX nodes, and the ApsaraEMQX service runner user requires read permission.',
+ zh: 'SASL GSSAPI 认证方法的 Kerberos keytab 文件。注意:该文件需要上传到 ApsaraEMQX 服务器中,且运行 ApsaraEMQX 服务的系统账户需要有读取权限。',
},
mechanism: {
en: 'Mechanism',
diff --git a/src/i18n/SlowSub.ts b/src/i18n/SlowSub.ts
index 4656b7401..c79d25bda 100644
--- a/src/i18n/SlowSub.ts
+++ b/src/i18n/SlowSub.ts
@@ -72,8 +72,8 @@ export default {
en: 'Client response time',
},
typeInternalDesc: {
- zh: 'EMQX 内部中转时间',
- en: 'EMQX internal transfer time',
+ zh: 'ApsaraEMQX 内部中转时间',
+ en: 'ApsaraEMQX internal transfer time',
},
wholeTypeDesc: {
zh: '传输完成的全流程时间',
diff --git a/src/schemaText/actionText/action-desc-en.json b/src/schemaText/actionText/action-desc-en.json
index 57bddae56..e858d4f26 100644
--- a/src/schemaText/actionText/action-desc-en.json
+++ b/src/schemaText/actionText/action-desc-en.json
@@ -1,11 +1,11 @@
{
"mqtt": {
- "source_topic": "Message subscription topics support the use of + and # wildcards. When EMQX is running in cluster mode or the connector is configured with a connection pool, shared subscriptions must be used to avoid message duplication."
+ "source_topic": "Message subscription topics support the use of + and # wildcards. When ApsaraEMQX is running in cluster mode or the connector is configured with a connection pool, shared subscriptions must be used to avoid message duplication."
},
"s3": {
- "aggregated_key": "Template for the S3 object key of an aggregated upload. Template may contain placeholders for the following variables:
${'{'}action{'}'}: name of the action (required).
${'{'}node{'}'}: name of the EMQX node conducting the upload (required).
${'{'}datetime.{'{'}format{'}'}{'}'}: date and time when aggregation started, formatted according to the {'{'}format{'}'} string (required):
${'{'}datetime.rfc3339utc{'}'}: RFC3339-formatted date and time in UTC,
${'{'}datetime.rfc3339{'}'}: RFC3339-formatted date and time in local timezone,
${'{'}datetime.unix{'}'}: Unix timestamp.
${'{'}datetime_until.{'{'}format{'}'}{'}'}: date and time when aggregation ended, with the same formatting options.
${'{'}sequence{'}'}: sequence number of the aggregated upload within the same time interval (required).
All other placeholders are considered invalid. Note that placeholders marked as required will be added as a path suffix to the S3 object key if they are missing from the template."
+ "aggregated_key": "Template for the S3 object key of an aggregated upload. Template may contain placeholders for the following variables:
${'{'}action{'}'}: name of the action (required).
${'{'}node{'}'}: name of the ApsaraEMQX node conducting the upload (required).
${'{'}datetime.{'{'}format{'}'}{'}'}: date and time when aggregation started, formatted according to the {'{'}format{'}'} string (required):
${'{'}datetime.rfc3339utc{'}'}: RFC3339-formatted date and time in UTC,
${'{'}datetime.rfc3339{'}'}: RFC3339-formatted date and time in local timezone,
${'{'}datetime.unix{'}'}: Unix timestamp.
${'{'}datetime_until.{'{'}format{'}'}{'}'}: date and time when aggregation ended, with the same formatting options.
${'{'}sequence{'}'}: sequence number of the aggregated upload within the same time interval (required).
All other placeholders are considered invalid. Note that placeholders marked as required will be added as a path suffix to the S3 object key if they are missing from the template."
},
"azure_blob_storage": {
- "aggregated_blob": "Template for the Azure Blob Storage blob name of an aggregated upload. Template may contain placeholders for the following variables:
${'{'}action{'}'}: name of the action (required).
${'{'}node{'}'}: name of the EMQX node conducting the upload (required).
${'{'}datetime.{'{'}format{'}'}{'}'}: date and time when aggregation started, formatted according to the {'{'}format{'}'} string (required):
${'{'}datetime.rfc3339utc{'}'}: RFC3339-formatted date and time in UTC,
${'{'}datetime.rfc3339{'}'}: RFC3339-formatted date and time in local timezone,
${'{'}datetime.unix{'}'}: Unix timestamp.
${'{'}datetime_until.{'{'}format{'}'}{'}'}: date and time when aggregation ended, with the same formatting options.
${'{'}sequence{'}'}: sequence number of the aggregated upload within the same time interval (required).
All other placeholders are considered invalid. Note that placeholders marked as required will be added as a path suffix to the Azure Blob Storage blob name if they are missing from the template."
+ "aggregated_blob": "Template for the Azure Blob Storage blob name of an aggregated upload. Template may contain placeholders for the following variables:
${'{'}action{'}'}: name of the action (required).
${'{'}node{'}'}: name of the ApsaraEMQX node conducting the upload (required).
${'{'}datetime.{'{'}format{'}'}{'}'}: date and time when aggregation started, formatted according to the {'{'}format{'}'} string (required):
${'{'}datetime.rfc3339utc{'}'}: RFC3339-formatted date and time in UTC,
${'{'}datetime.rfc3339{'}'}: RFC3339-formatted date and time in local timezone,
${'{'}datetime.unix{'}'}: Unix timestamp.
${'{'}datetime_until.{'{'}format{'}'}{'}'}: date and time when aggregation ended, with the same formatting options.
${'{'}sequence{'}'}: sequence number of the aggregated upload within the same time interval (required).
All other placeholders are considered invalid. Note that placeholders marked as required will be added as a path suffix to the Azure Blob Storage blob name if they are missing from the template."
}
}
\ No newline at end of file
diff --git a/src/schemaText/actionText/action-desc-zh.json b/src/schemaText/actionText/action-desc-zh.json
index 845f626c5..918cab4f4 100644
--- a/src/schemaText/actionText/action-desc-zh.json
+++ b/src/schemaText/actionText/action-desc-zh.json
@@ -1,11 +1,11 @@
{
"mqtt": {
- "source_topic": "消息订阅主题,支持使用 + 和 # 通配符。当 EMQX 运行在集群模式下或连接器配置了连接池时,为了避免消息重复,必须使用共享订阅。"
+ "source_topic": "消息订阅主题,支持使用 + 和 # 通配符。当 ApsaraEMQX 运行在集群模式下或连接器配置了连接池时,为了避免消息重复,必须使用共享订阅。"
},
"s3": {
- "aggregated_key": "以下是聚合上传的 S3 对象键模板。 模板可以包含以下变量的占位符:
所有其他占位符均视为无效。请注意,如果模板中没有使用标记为必需的占位符,这些占位符将作为路径后缀添加到 Azure Blob Storage blob 名称中。"
}
}
\ No newline at end of file
diff --git a/src/schemaText/schema-text-en.ts b/src/schemaText/schema-text-en.ts
index 3d8b7fd05..62b5b9dec 100644
--- a/src/schemaText/schema-text-en.ts
+++ b/src/schemaText/schema-text-en.ts
@@ -51,11 +51,11 @@ export default {
},
client_attrs_init_expression: {
label: 'Attribute Expression',
- desc: "A one line expression to evaluate a set of predefined string functions (like in the rule engine SQL statements). The expression can be a function call with nested calls as its arguments, or direct variable reference. So far, it does not provide user-defined variable binding (like `var a=1`) or user-defined functions. As an example, to extract the prefix of client ID delimited by a dot: `nth(1, tokens(clientid, '.'))`.
The variables pre-bound variables are: - `clientid`: MQTT Client ID. - `username`: MQTT Client's username. - `user_property.{'{'}NAME{'}'}`: User properties in the CONNECT packet. For TLS clients, connected directly or via proxy-protocol (v2) enabled load balancer, some extra variables can be used: - `cn`: Client's TLS certificate common name. - `dn`: Client's TLS certificate distinguished name (the subject). - `peersni`: TLS server name indication sent by the client.
You can read more about variform expressions in EMQX docs.",
+ desc: "A one line expression to evaluate a set of predefined string functions (like in the rule engine SQL statements). The expression can be a function call with nested calls as its arguments, or direct variable reference. So far, it does not provide user-defined variable binding (like `var a=1`) or user-defined functions. As an example, to extract the prefix of client ID delimited by a dot: `nth(1, tokens(clientid, '.'))`.
The variables pre-bound variables are: - `clientid`: MQTT Client ID. - `username`: MQTT Client's username. - `user_property.{'{'}NAME{'}'}`: User properties in the CONNECT packet. For TLS clients, connected directly or via proxy-protocol (v2) enabled load balancer, some extra variables can be used: - `cn`: Client's TLS certificate common name. - `dn`: Client's TLS certificate distinguished name (the subject). - `peersni`: TLS server name indication sent by the client.
You can read more about variform expressions in ApsaraEMQX docs.",
},
clientid_override: {
label: 'Client ID Override Expression',
- desc: "A one line expression to evaluate a set of predefined string functions (like in the rule engine SQL statements). The expression can be a function call with nested calls as its arguments, or direct variable reference. So far, it does not provide user-defined variable binding (like `var a=1`) or user-defined functions. As an example, to extract the prefix of client ID delimited by a dot: `nth(1, tokens(username, '.'))`.
The variables pre-bound variables are: - `clientid`: The original MQTT Client ID. - `username`: MQTT Client's username. - `client_attrs.{'{'}NAME{'}'}`: Client attributes initialized by per config `client_attrs_init`. For TLS clients, connected directly or via proxy-protocol (v2) enabled load balancer, some extra variables can be used: - `cn`: Client's TLS certificate common name. - `dn`: Client's TLS certificate distinguished name (the subject). - `peersni`: TLS server name indication sent by the client.
You can read more about variform expressions in EMQX docs.",
+ desc: "A one line expression to evaluate a set of predefined string functions (like in the rule engine SQL statements). The expression can be a function call with nested calls as its arguments, or direct variable reference. So far, it does not provide user-defined variable binding (like `var a=1`) or user-defined functions. As an example, to extract the prefix of client ID delimited by a dot: `nth(1, tokens(username, '.'))`.
The variables pre-bound variables are: - `clientid`: The original MQTT Client ID. - `username`: MQTT Client's username. - `client_attrs.{'{'}NAME{'}'}`: Client attributes initialized by per config `client_attrs_init`. For TLS clients, connected directly or via proxy-protocol (v2) enabled load balancer, some extra variables can be used: - `cn`: Client's TLS certificate common name. - `dn`: Client's TLS certificate distinguished name (the subject). - `peersni`: TLS server name indication sent by the client.
You can read more about variform expressions in ApsaraEMQX docs.",
},
retain_available: {
desc: 'Whether to enable support for MQTT retained message. When this option is disabled, clients will not be able to publish retained messages.',
@@ -92,13 +92,13 @@ export default {
desc: 'The frequency of checking for incoming MQTT packets determines how often the server will check for new MQTT packets. If a certain amount of time passes without any packets being sent from the client, this time will be added up. Once the accumulated time exceeds `keepalive-interval * keepalive-multiplier`, the connection will be terminated. The default is set to 30 seconds, with a minimum value of 1 second and a maximum value of `keepalive-interval / 2`. ',
},
max_packet_size: {
- desc: 'If the size is out of the preset value, EMQX will disconnect the current connection',
+ desc: 'If the size is out of the preset value, ApsaraEMQX will disconnect the current connection',
label: 'Max Packet Size',
},
max_conn_rate: {
desc: `Limits how quickly accepts connections, per each node.
-Once the limit is reached, EMQX will pause serving connections from the Accept queue, thereby delaying or rejecting new connections.
+Once the limit is reached, ApsaraEMQX will pause serving connections from the Accept queue, thereby delaying or rejecting new connections.
For example:
@@ -115,7 +115,7 @@ For example: \`10000/60m\`: Once every 60 minutes, up to 10000 connections can b
messages_rate: {
desc: `Limits the number of messages a single client can send to the broker, per each node.
-Once the limit is reached, EMQX will drop QoS 0 messages and reject QoS 1 and QoS 2 messages
+Once the limit is reached, ApsaraEMQX will drop QoS 0 messages and reject QoS 1 and QoS 2 messages
with "Quota Exceeded" error code (0x97).
For example:
@@ -133,7 +133,7 @@ For example: \`10000/60m\`: Once in 60 minutes, up to 10000 messages can be sent
bytes_rate: {
desc: `Limits the number of bytes a single client can send to the broker, per each node.
-Once the limit is reached, EMQX will drop QoS 0 messages and reject QoS 1 and QoS 2 messages
+Once the limit is reached, ApsaraEMQX will drop QoS 0 messages and reject QoS 1 and QoS 2 messages
with "Quota Exceeded" error code (0x97).
The unit of the bytes could be: B, KB, MB, GB.
@@ -173,7 +173,7 @@ For example: \`100MB/60m\`: Once every 60 minutes, up to 100 megabytes can be se
label: 'Max Awaiting PUBREL',
},
await_rel_timeout: {
- desc: "Specifies the amount of time to wait for a publish of a QoS 2 message with no PUBREL received. When this limit is reached, EMQX will release the packet ID and also output a warning level log. Note: EMQX's forwarding of the received QoS 2 message is independent from the receiving of PUBREL",
+ desc: "Specifies the amount of time to wait for a publish of a QoS 2 message with no PUBREL received. When this limit is reached, ApsaraEMQX will release the packet ID and also output a warning level log. Note: ApsaraEMQX's forwarding of the received QoS 2 message is independent from the receiving of PUBREL",
label: 'Max Awaiting PUBREL Timeout',
},
session_expiry_interval: {
@@ -310,11 +310,11 @@ For example: \`100MB/60m\`: Once every 60 minutes, up to 100 megabytes can be se
label: 'Ignore High Frequency Request',
},
ssl_opts_user_lookup_fun: {
- desc: 'EMQX-internal callback that is used to lookup pre-shared key (PSK) identity.',
+ desc: 'ApsaraEMQX-internal callback that is used to lookup pre-shared key (PSK) identity.',
label: 'SSL PSK user lookup fun',
},
ssl_opts_cacertfile: {
- desc: "Trusted PEM format CA certificates bundle file. \nThe certificates in this file are used to verify the TLS peer's certificates.\nAppend new certificates to the file if new CAs are to be trusted.\nThere is no need to restart EMQX to have the updated file loaded, because\nthe system regularly checks if file has been updated (and reload). \nNOTE: invalidating (deleting) a certificate from the file will not affect\nalready established connections.",
+ desc: "Trusted PEM format CA certificates bundle file. \nThe certificates in this file are used to verify the TLS peer's certificates.\nAppend new certificates to the file if new CAs are to be trusted.\nThere is no need to restart ApsaraEMQX to have the updated file loaded, because\nthe system regularly checks if file has been updated (and reload). \nNOTE: invalidating (deleting) a certificate from the file will not affect\nalready established connections.",
label: 'CACertfile',
},
ssl_opts_verify: {
@@ -368,7 +368,7 @@ For example: \`100MB/60m\`: Once every 60 minutes, up to 100 megabytes can be se
label: 'SSL log level',
},
ssl_opts_ciphers: {
- desc: "This config holds TLS cipher suite names separated by comma. e.g.\nTLS_AES_256_GCM_SHA384,TLS_AES_128_GCM_SHA256.\n \nCiphers (and their ordering) define the way in which the\nclient and server encrypts information over the network connection.\nSelecting a good cipher suite is critical for the\napplication's data security, confidentiality and performance.\n\nThe names should be in OpenSSL string format (not RFC format).\nAll default values and examples provided by EMQX config\ndocumentation are all in OpenSSL format. \n\nNOTE: Certain cipher suites are only compatible with\nspecific TLS versions ('tlsv1.1', 'tlsv1.2' or 'tlsv1.3')\nincompatible cipher suites will be silently dropped.\nFor instance, if only 'tlsv1.3' is given in the versions,\nconfiguring cipher suites for other versions will have no effect.\n \n\nNOTE: PSK ciphers are suppressed by 'tlsv1.3' version config \nIf PSK cipher suites are intended, 'tlsv1.3' should be disabled from versions. \nPSK cipher suites: RSA-PSK-AES256-GCM-SHA384,RSA-PSK-AES256-CBC-SHA384,\nRSA-PSK-AES128-GCM-SHA256,RSA-PSK-AES128-CBC-SHA256,\nRSA-PSK-AES256-CBC-SHA,RSA-PSK-AES128-CBC-SHA,\nRSA-PSK-DES-CBC3-SHA,RSA-PSK-RC4-SHA",
+ desc: "This config holds TLS cipher suite names separated by comma. e.g.\nTLS_AES_256_GCM_SHA384,TLS_AES_128_GCM_SHA256.\n \nCiphers (and their ordering) define the way in which the\nclient and server encrypts information over the network connection.\nSelecting a good cipher suite is critical for the\napplication's data security, confidentiality and performance.\n\nThe names should be in OpenSSL string format (not RFC format).\nAll default values and examples provided by ApsaraEMQX config\ndocumentation are all in OpenSSL format. \n\nNOTE: Certain cipher suites are only compatible with\nspecific TLS versions ('tlsv1.1', 'tlsv1.2' or 'tlsv1.3')\nincompatible cipher suites will be silently dropped.\nFor instance, if only 'tlsv1.3' is given in the versions,\nconfiguring cipher suites for other versions will have no effect.\n \n\nNOTE: PSK ciphers are suppressed by 'tlsv1.3' version config \nIf PSK cipher suites are intended, 'tlsv1.3' should be disabled from versions. \nPSK cipher suites: RSA-PSK-AES256-GCM-SHA384,RSA-PSK-AES256-CBC-SHA384,\nRSA-PSK-AES128-GCM-SHA256,RSA-PSK-AES128-CBC-SHA256,\nRSA-PSK-AES256-CBC-SHA,RSA-PSK-AES128-CBC-SHA,\nRSA-PSK-DES-CBC3-SHA,RSA-PSK-RC4-SHA",
label: 'Cipher Suites',
},
ssl_opts_partial_chain: {
diff --git a/src/schemaText/schema-text-zh.ts b/src/schemaText/schema-text-zh.ts
index 79c0401c8..d8973922a 100644
--- a/src/schemaText/schema-text-zh.ts
+++ b/src/schemaText/schema-text-zh.ts
@@ -51,11 +51,11 @@ export default {
},
client_attrs_init_expression: {
label: '属性表达式',
- desc: "使用行表达式计算一组预定义的字符串函数(类似于规则引擎 SQL 语句)。 表达式可以是带有嵌套调用参数的函数调用,或直接引用变量。 目前不提供用户自定义变量绑定(如 `var a=1`)或用户自定义函数。 例如,要提取以点分隔的客户端 ID 前缀:`nth(1, tokens(clientid, '.'))`。