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