mirror of
https://github.com/louislam/uptime-kuma.git
synced 2024-11-23 01:46:09 +03:00
Merge pull request #1450 from AnnAngela/1.14.0-zh_cn
1.14.0 translation improvement
This commit is contained in:
commit
2e50ef0e8f
7 changed files with 172 additions and 23 deletions
|
@ -4,7 +4,10 @@ const fs = require("fs");
|
||||||
* to avoid the runtime deprecation warning triggered for using `fs.rmdirSync` with `{ recursive: true }` in Node.js v16,
|
* to avoid the runtime deprecation warning triggered for using `fs.rmdirSync` with `{ recursive: true }` in Node.js v16,
|
||||||
* or the `recursive` property removing completely in the future Node.js version.
|
* or the `recursive` property removing completely in the future Node.js version.
|
||||||
* See the link below.
|
* See the link below.
|
||||||
* @link https://nodejs.org/docs/latest-v16.x/api/deprecations.html#dep0147-fsrmdirpath--recursive-true-
|
*
|
||||||
|
* @todo Once we drop the support for Node.js v14 (or at least versions before v14.14.0), we can safely replace this function with `fs.rmSync`, since `fs.rmSync` was add in Node.js v14.14.0 and currently we supports all the Node.js v14 versions that include the versions before the v14.14.0, and this function have almost the same signature with `fs.rmSync`.
|
||||||
|
* @link https://nodejs.org/docs/latest-v16.x/api/deprecations.html#dep0147-fsrmdirpath--recursive-true- the deprecation infomation of `fs.rmdirSync`
|
||||||
|
* @link https://nodejs.org/docs/latest-v16.x/api/fs.html#fsrmsyncpath-options the document of `fs.rmSync`
|
||||||
* @param {fs.PathLike} path Valid types for path values in "fs".
|
* @param {fs.PathLike} path Valid types for path values in "fs".
|
||||||
* @param {fs.RmDirOptions} [options] options for `fs.rmdirSync`, if `fs.rmSync` is available and property `recursive` is true, it will automatically have property `force` with value `true`.
|
* @param {fs.RmDirOptions} [options] options for `fs.rmdirSync`, if `fs.rmSync` is available and property `recursive` is true, it will automatically have property `force` with value `true`.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -11,23 +11,23 @@
|
||||||
<table class="text-start">
|
<table class="text-start">
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr class="my-3">
|
<tr class="my-3">
|
||||||
<td class="px-3">Subject:</td>
|
<td class="px-3">{{ $t("Subject:") }}</td>
|
||||||
<td>{{ formatSubject(cert.subject) }}</td>
|
<td>{{ formatSubject(cert.subject) }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="my-3">
|
<tr class="my-3">
|
||||||
<td class="px-3">Valid To:</td>
|
<td class="px-3">{{ $t("Valid To:") }}</td>
|
||||||
<td><Datetime :value="cert.validTo" /></td>
|
<td><Datetime :value="cert.validTo" /></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="my-3">
|
<tr class="my-3">
|
||||||
<td class="px-3">Days Remaining:</td>
|
<td class="px-3">{{ $t("Days Remaining:") }}</td>
|
||||||
<td>{{ cert.daysRemaining }}</td>
|
<td>{{ cert.daysRemaining }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="my-3">
|
<tr class="my-3">
|
||||||
<td class="px-3">Issuer:</td>
|
<td class="px-3">{{ $t("Issuer:") }}</td>
|
||||||
<td>{{ formatSubject(cert.issuer) }}</td>
|
<td>{{ formatSubject(cert.issuer) }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="my-3">
|
<tr class="my-3">
|
||||||
<td class="px-3">Fingerprint:</td>
|
<td class="px-3">{{ $t("Fingerprint:") }}</td>
|
||||||
<td>{{ cert.fingerprint }}</td>
|
<td>{{ cert.fingerprint }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
@ -20,11 +20,16 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="errorMessage" class="mt-3">
|
<div v-if="errorMessage" class="mt-3">
|
||||||
Message:
|
{{ $t("Message:") }}
|
||||||
<textarea v-model="errorMessage" class="form-control" readonly></textarea>
|
<textarea v-model="errorMessage" class="form-control" readonly></textarea>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p v-if="installed === false">(Download cloudflared from <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/installation/">Cloudflare Website</a>)</p>
|
<i18n-t v-if="installed === false" tag="p" keypath="wayToGetCloudflaredURL">
|
||||||
|
<a
|
||||||
|
href="https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/installation/"
|
||||||
|
target="_blank"
|
||||||
|
>{{ $t("cloudflareWebsite") }}</a>
|
||||||
|
</i18n-t>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- If installed show token input -->
|
<!-- If installed show token input -->
|
||||||
|
@ -44,7 +49,7 @@
|
||||||
<span v-if="!running" class="remove-token" @click="removeToken">{{ $t("Remove Token") }}</span>
|
<span v-if="!running" class="remove-token" @click="removeToken">{{ $t("Remove Token") }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
Don't know how to get the token? Please read the guide:<br />
|
{{ $t("Don't know how to get the token? Please read the guide:") }}<br />
|
||||||
<a href="https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy-with-Cloudflare-Tunnel" target="_blank">
|
<a href="https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy-with-Cloudflare-Tunnel" target="_blank">
|
||||||
https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy-with-Cloudflare-Tunnel
|
https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy-with-Cloudflare-Tunnel
|
||||||
</a>
|
</a>
|
||||||
|
@ -61,7 +66,7 @@
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<Confirm ref="confirmStop" btn-style="btn-danger" :yes-text="$t('Stop') + ' cloudflared'" :no-text="$t('Cancel')" @yes="stop">
|
<Confirm ref="confirmStop" btn-style="btn-danger" :yes-text="$t('Stop') + ' cloudflared'" :no-text="$t('Cancel')" @yes="stop">
|
||||||
The current connection may be lost if you are currently connecting via Cloudflare Tunnel. Are you sure want to stop it? Type your current password to confirm it.
|
{{ $t("The current connection may be lost if you are currently connecting via Cloudflare Tunnel. Are you sure want to stop it? Type your current password to confirm it.") }}
|
||||||
|
|
||||||
<div class="mt-3">
|
<div class="mt-3">
|
||||||
<label for="current-password2" class="form-label">
|
<label for="current-password2" class="form-label">
|
||||||
|
@ -79,10 +84,10 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h4 class="mt-4">Other Software</h4>
|
<h4 class="mt-4">{{ $t("Other Software") }}</h4>
|
||||||
<div>
|
<div>
|
||||||
For example: nginx, Apache and Traefik. <br />
|
{{ $t("For example: nginx, Apache and Traefik.") }} <br />
|
||||||
Please read <a href="https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy" target="_blank">https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy</a>.
|
{{ $t("Please read") }} <a href="https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy" target="_blank">https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy</a>.
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -331,21 +331,21 @@ export default {
|
||||||
dark: "dark",
|
dark: "dark",
|
||||||
Post: "Post",
|
Post: "Post",
|
||||||
"Please input title and content": "Please input title and content",
|
"Please input title and content": "Please input title and content",
|
||||||
"Created": "Created",
|
Created: "Created",
|
||||||
"Last Updated": "Last Updated",
|
"Last Updated": "Last Updated",
|
||||||
"Unpin": "Unpin",
|
Unpin: "Unpin",
|
||||||
"Switch to Light Theme": "Switch to Light Theme",
|
"Switch to Light Theme": "Switch to Light Theme",
|
||||||
"Switch to Dark Theme": "Switch to Dark Theme",
|
"Switch to Dark Theme": "Switch to Dark Theme",
|
||||||
"Show Tags": "Show Tags",
|
"Show Tags": "Show Tags",
|
||||||
"Hide Tags": "Hide Tags",
|
"Hide Tags": "Hide Tags",
|
||||||
"Description": "Description",
|
Description: "Description",
|
||||||
"No monitors available.": "No monitors available.",
|
"No monitors available.": "No monitors available.",
|
||||||
"Add one": "Add one",
|
"Add one": "Add one",
|
||||||
"No Monitors": "No Monitors",
|
"No Monitors": "No Monitors",
|
||||||
"Untitled Group": "Untitled Group",
|
"Untitled Group": "Untitled Group",
|
||||||
"Services": "Services",
|
Services: "Services",
|
||||||
"Discard": "Discard",
|
Discard: "Discard",
|
||||||
"Cancel": "Cancel",
|
Cancel: "Cancel",
|
||||||
"Powered by": "Powered by",
|
"Powered by": "Powered by",
|
||||||
shrinkDatabaseDescription: "Trigger database VACUUM for SQLite. If your database is created after 1.10.0, AUTO_VACUUM is already enabled and this action is not needed.",
|
shrinkDatabaseDescription: "Trigger database VACUUM for SQLite. If your database is created after 1.10.0, AUTO_VACUUM is already enabled and this action is not needed.",
|
||||||
serwersms: "SerwerSMS.pl",
|
serwersms: "SerwerSMS.pl",
|
||||||
|
@ -379,4 +379,67 @@ export default {
|
||||||
proxyDescription: "Proxies must be assigned to a monitor to function.",
|
proxyDescription: "Proxies must be assigned to a monitor to function.",
|
||||||
enableProxyDescription: "This proxy will not effect on monitor requests until it is activated. You can control temporarily disable the proxy from all monitors by activation status.",
|
enableProxyDescription: "This proxy will not effect on monitor requests until it is activated. You can control temporarily disable the proxy from all monitors by activation status.",
|
||||||
setAsDefaultProxyDescription: "This proxy will be enabled by default for new monitors. You can still disable the proxy separately for each monitor.",
|
setAsDefaultProxyDescription: "This proxy will be enabled by default for new monitors. You can still disable the proxy separately for each monitor.",
|
||||||
|
"Certificate Chain": "Certificate Chain",
|
||||||
|
Valid: "Valid",
|
||||||
|
Invalid: "Invalid",
|
||||||
|
AccessKeyId: "AccessKey ID",
|
||||||
|
SecretAccessKey: "AccessKey Secret",
|
||||||
|
PhoneNumbers: "PhoneNumbers",
|
||||||
|
TemplateCode: "TemplateCode",
|
||||||
|
SignName: "SignName",
|
||||||
|
"Sms template must contain parameters: ": "Sms template must contain parameters: ",
|
||||||
|
"Bark Endpoint": "Bark Endpoint",
|
||||||
|
WebHookUrl: "WebHookUrl",
|
||||||
|
SecretKey: "SecretKey",
|
||||||
|
"For safety, must use secret key": "For safety, must use secret key",
|
||||||
|
"Device Token": "Device Token",
|
||||||
|
Platform: "Platform",
|
||||||
|
iOS: "iOS",
|
||||||
|
Android: "Android",
|
||||||
|
Huawei: "Huawei",
|
||||||
|
High: "High",
|
||||||
|
Retry: "Retry",
|
||||||
|
Topic: "Topic",
|
||||||
|
"WeCom Bot Key": "WeCom Bot Key",
|
||||||
|
"Setup Proxy": "Setup Proxy",
|
||||||
|
"Proxy Protocol": "Proxy Protocol",
|
||||||
|
"Proxy Server": "Proxy Server",
|
||||||
|
"Proxy server has authentication": "Proxy server has authentication",
|
||||||
|
User: "User",
|
||||||
|
Installed: "Installed",
|
||||||
|
"Not installed": "Not installed",
|
||||||
|
Running: "Running",
|
||||||
|
"Not running": "Not running",
|
||||||
|
"Remove Token": "Remove Token",
|
||||||
|
Start: "Start",
|
||||||
|
Stop: "Stop",
|
||||||
|
"Uptime Kuma": "Uptime Kuma",
|
||||||
|
"Add New Status Page": "Add New Status Page",
|
||||||
|
Slug: "Slug",
|
||||||
|
"Accept characters:": "Accept characters:",
|
||||||
|
"startOrEndWithOnly": "Start or end with {0} only",
|
||||||
|
"No consecutive dashes": "No consecutive dashes",
|
||||||
|
Next: "Next",
|
||||||
|
"The slug is already taken. Please choose another slug.": "The slug is already taken. Please choose another slug.",
|
||||||
|
"No Proxy": "No Proxy",
|
||||||
|
"HTTP Basic Auth": "HTTP Basic Auth",
|
||||||
|
"New Status Page": "New Status Page",
|
||||||
|
"Page Not Found": "Page Not Found",
|
||||||
|
"Reverse Proxy": "Reverse Proxy",
|
||||||
|
Backup: "Backup",
|
||||||
|
About: "About",
|
||||||
|
wayToGetCloudflaredURL: "(Download cloudflared from {0})",
|
||||||
|
cloudflareWebsite: "Cloudflare Website",
|
||||||
|
"Message:": "Message:",
|
||||||
|
"Don't know how to get the token? Please read the guide:": "Don't know how to get the token? Please read the guide:",
|
||||||
|
"The current connection may be lost if you are currently connecting via Cloudflare Tunnel. Are you sure want to stop it? Type your current password to confirm it.": "The current connection may be lost if you are currently connecting via Cloudflare Tunnel. Are you sure want to stop it? Type your current password to confirm it.",
|
||||||
|
"Other Software": "Other Software",
|
||||||
|
"For example: nginx, Apache and Traefik.": "For example: nginx, Apache and Traefik.",
|
||||||
|
"Please read": "Please read",
|
||||||
|
"Subject:": "Subject:",
|
||||||
|
"Valid To:": "Valid To:",
|
||||||
|
"Days Remaining:": "Days Remaining:",
|
||||||
|
"Issuer:": "Issuer:",
|
||||||
|
"Fingerprint:": "Fingerprint:",
|
||||||
|
"No status pages": "No status pages",
|
||||||
};
|
};
|
||||||
|
|
|
@ -88,8 +88,8 @@ export default {
|
||||||
Dark: "黑暗",
|
Dark: "黑暗",
|
||||||
Auto: "自动",
|
Auto: "自动",
|
||||||
"Theme - Heartbeat Bar": "主题 - 心跳栏",
|
"Theme - Heartbeat Bar": "主题 - 心跳栏",
|
||||||
Normal: "正常显示",
|
Normal: "正常", // 此处还供 Gorush 的通知优先级功能使用,不应翻译为“正常显示”
|
||||||
Bottom: "靠下显示",
|
Bottom: "靠下",
|
||||||
None: "不显示",
|
None: "不显示",
|
||||||
Timezone: "时区",
|
Timezone: "时区",
|
||||||
"Search Engine Visibility": "搜索引擎可见性",
|
"Search Engine Visibility": "搜索引擎可见性",
|
||||||
|
@ -373,4 +373,80 @@ export default {
|
||||||
"For safety, must use secret key": "出于安全考虑,必须使用加签密钥",
|
"For safety, must use secret key": "出于安全考虑,必须使用加签密钥",
|
||||||
WeCom: "企业微信群机器人",
|
WeCom: "企业微信群机器人",
|
||||||
"WeCom Bot Key": "企业微信群机器人 Key",
|
"WeCom Bot Key": "企业微信群机器人 Key",
|
||||||
|
PushByTechulus: "Push by Techulus",
|
||||||
|
gorush: "Gorush",
|
||||||
|
alerta: "Alerta",
|
||||||
|
alertaApiEndpoint: "API 接入点",
|
||||||
|
alertaEnvironment: "环境参数",
|
||||||
|
alertaApiKey: "API Key",
|
||||||
|
alertaAlertState: "报警时的严重性",
|
||||||
|
alertaRecoverState: "恢复后的严重性",
|
||||||
|
deleteStatusPageMsg: "您确认要删除此状态页吗?",
|
||||||
|
Proxies: "代理",
|
||||||
|
default: "默认",
|
||||||
|
enabled: "启用",
|
||||||
|
setAsDefault: "设为默认",
|
||||||
|
deleteProxyMsg: "您确认要在所有监控项中删除此代理吗?",
|
||||||
|
proxyDescription: "代理必须配置到至少一个监控项后才会工作。",
|
||||||
|
enableProxyDescription: "此代理必须启用才能对监控项的网络请求起作用。您可以通过修改激活状态,临时在所有监控项中禁用此代理。",
|
||||||
|
setAsDefaultProxyDescription: "此代理会对新创建的监控项默认激活,您仍可以在监控项配置中单独禁用此代理。",
|
||||||
|
"Proxy Protocol": "代理协议",
|
||||||
|
"Proxy Server": "代理服务器",
|
||||||
|
"Server Address": "服务器地址",
|
||||||
|
"Certificate Chain": "证书链",
|
||||||
|
Valid: "有效",
|
||||||
|
Invalid: "无效",
|
||||||
|
AccessKeyId: "AccessKey ID",
|
||||||
|
SecretAccessKey: "AccessKey Secret",
|
||||||
|
/* 以下为阿里云短信服务 API Dysms#SendSms 的参数 */
|
||||||
|
PhoneNumbers: "PhoneNumbers",
|
||||||
|
TemplateCode: "TemplateCode",
|
||||||
|
SignName: "SignName",
|
||||||
|
/* 以上为阿里云短信服务 API Dysms#SendSms 的参数 */
|
||||||
|
"Bark Endpoint": "Bark 接入点",
|
||||||
|
"Device Token": "Apple Device Token",
|
||||||
|
Platform: "平台",
|
||||||
|
iOS: "iOS",
|
||||||
|
Android: "Android",
|
||||||
|
Huawei: "华为",
|
||||||
|
High: "高",
|
||||||
|
Retry: "重试次数",
|
||||||
|
Topic: "Gorush Topic",
|
||||||
|
"Setup Proxy": "设置代理",
|
||||||
|
"Proxy server has authentication": "代理服务器启用了身份验证功能",
|
||||||
|
User: "用户名",
|
||||||
|
Installed: "已安装",
|
||||||
|
"Not installed": "未安装",
|
||||||
|
Running: "运行中",
|
||||||
|
"Not running": "未运行",
|
||||||
|
"Message:": "信息:",
|
||||||
|
wayToGetCloudflaredURL: "(可从 {0} 下载 cloudflared)",
|
||||||
|
cloudflareWebsite: "Cloudflare 网站",
|
||||||
|
"Don't know how to get the token? Please read the guide:": "不知道如何获取 Token?请阅读指南:",
|
||||||
|
"The current connection may be lost if you are currently connecting via Cloudflare Tunnel. Are you sure want to stop it? Type your current password to confirm it.": "如果您正在通过 Cloudflare Tunnel 访问网站,则停止可能会导致当前连接断开。您确定要停止吗?请输入密码以确认。",
|
||||||
|
"Other Software": "其他软件",
|
||||||
|
"For example: nginx, Apache and Traefik.": "例如:nginx、Apache 和 Traefik。",
|
||||||
|
"Please read": "请阅读",
|
||||||
|
"Remove Token": "移除 Token",
|
||||||
|
Start: "启动",
|
||||||
|
Stop: "停止",
|
||||||
|
"Uptime Kuma": "Uptime Kuma",
|
||||||
|
"Add New Status Page": "添加新的状态页",
|
||||||
|
Slug: "路径",
|
||||||
|
"Accept characters:": "可接受的字符:",
|
||||||
|
"startOrEndWithOnly": "开头和结尾必须为 {0}",
|
||||||
|
"No consecutive dashes": "不能有连续的破折号",
|
||||||
|
Next: "下一步",
|
||||||
|
"The slug is already taken. Please choose another slug.": "该路径已被使用。请选择其他路径。",
|
||||||
|
"No Proxy": "无代理",
|
||||||
|
"HTTP Basic Auth": "HTTP 基础身份验证",
|
||||||
|
"New Status Page": "新的状态页",
|
||||||
|
"Page Not Found": "状态页未找到",
|
||||||
|
"Reverse Proxy": "反向代理",
|
||||||
|
"Subject:": "颁发给:",
|
||||||
|
"Valid To:": "有效期至:",
|
||||||
|
"Days Remaining:": "剩余有效天数:",
|
||||||
|
"Issuer:": "颁发者:",
|
||||||
|
"Fingerprint:": "指纹:",
|
||||||
|
"No status pages": "无状态页",
|
||||||
};
|
};
|
||||||
|
|
|
@ -21,7 +21,9 @@
|
||||||
<div class="form-text">
|
<div class="form-text">
|
||||||
<ul>
|
<ul>
|
||||||
<li>{{ $t("Accept characters:") }} <mark>a-z</mark> <mark>0-9</mark> <mark>-</mark></li>
|
<li>{{ $t("Accept characters:") }} <mark>a-z</mark> <mark>0-9</mark> <mark>-</mark></li>
|
||||||
<li>{{ $t("Start or end with") }} <mark>a-z</mark> <mark>0-9</mark> only</li>
|
<i18n-t tag="li" keypath="startOrEndWithOnly">
|
||||||
|
<mark>a-z</mark> <mark>0-9</mark>
|
||||||
|
</i18n-t>
|
||||||
<li>{{ $t("No consecutive dashes") }} <mark>--</mark></li>
|
<li>{{ $t("No consecutive dashes") }} <mark>--</mark></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
<div class="shadow-box">
|
<div class="shadow-box">
|
||||||
<template v-if="$root.statusPageListLoaded">
|
<template v-if="$root.statusPageListLoaded">
|
||||||
<span v-if="Object.keys($root.statusPageList).length === 0" class="d-flex align-items-center justify-content-center my-3">
|
<span v-if="Object.keys($root.statusPageList).length === 0" class="d-flex align-items-center justify-content-center my-3">
|
||||||
No status pages
|
{{ $t("No status pages") }}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<!-- use <a> instead of <router-link>, because the heartbeat won't load. -->
|
<!-- use <a> instead of <router-link>, because the heartbeat won't load. -->
|
||||||
|
|
Loading…
Reference in a new issue