mirror of
https://github.com/louislam/uptime-kuma.git
synced 2024-11-23 23:04:04 +00:00
Merge pull request #667 from zsxeee/i18n
Missing i18n and zh-CN translation
This commit is contained in:
commit
6944b35ea7
14 changed files with 151 additions and 47 deletions
|
@ -26,10 +26,12 @@ const copyRecursiveSync = function (src, dest) {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
console.log("Arguments:", process.argv)
|
console.log("Arguments:", process.argv);
|
||||||
const baseLangCode = process.argv[2] || "en";
|
const baseLangCode = process.argv[2] || "en";
|
||||||
console.log("Base Lang: " + baseLangCode);
|
console.log("Base Lang: " + baseLangCode);
|
||||||
fs.rmdirSync("./languages", { recursive: true });
|
if (fs.existsSync("./languages")) {
|
||||||
|
fs.rmdirSync("./languages", { recursive: true });
|
||||||
|
}
|
||||||
copyRecursiveSync("../../src/languages", "./languages");
|
copyRecursiveSync("../../src/languages", "./languages");
|
||||||
|
|
||||||
const en = (await import("./languages/en.js")).default;
|
const en = (await import("./languages/en.js")).default;
|
||||||
|
@ -39,7 +41,7 @@ console.log("Files:", files);
|
||||||
|
|
||||||
for (const file of files) {
|
for (const file of files) {
|
||||||
if (!file.endsWith(".js")) {
|
if (!file.endsWith(".js")) {
|
||||||
console.log("Skipping " + file)
|
console.log("Skipping " + file);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,25 +1,25 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="homeserver-url" class="form-label">Homeserver URL (with http(s):// and optionally port)</label><span style="color: red;"><sup>*</sup></span>
|
<label for="homeserver-url" class="form-label">{{ $t("matrixHomeserverURL") }}</label><span style="color: red;"><sup>*</sup></span>
|
||||||
<input id="homeserver-url" v-model="$parent.notification.homeserverUrl" type="text" class="form-control" :required="true">
|
<input id="homeserver-url" v-model="$parent.notification.homeserverUrl" type="text" class="form-control" :required="true">
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="internal-room-id" class="form-label">Internal Room Id</label><span style="color: red;"><sup>*</sup></span>
|
<label for="internal-room-id" class="form-label">{{ $t("Internal Room Id") }}</label><span style="color: red;"><sup>*</sup></span>
|
||||||
<input id="internal-room-id" v-model="$parent.notification.internalRoomId" type="text" class="form-control" required="true">
|
<input id="internal-room-id" v-model="$parent.notification.internalRoomId" type="text" class="form-control" required="true">
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="access-token" class="form-label">Access Token</label><span style="color: red;"><sup>*</sup></span>
|
<label for="access-token" class="form-label">{{ $t("Access Token") }}</label><span style="color: red;"><sup>*</sup></span>
|
||||||
<HiddenInput id="access-token" v-model="$parent.notification.accessToken" :required="true" autocomplete="one-time-code" :maxlength="500"></HiddenInput>
|
<HiddenInput id="access-token" v-model="$parent.notification.accessToken" :required="true" autocomplete="one-time-code" :maxlength="500"></HiddenInput>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-text">
|
<div class="form-text">
|
||||||
<span style="color: red;"><sup>*</sup></span>Required
|
<span style="color: red;"><sup>*</sup></span>{{ $t("Required") }}
|
||||||
<p style="margin-top: 8px;">
|
<p style="margin-top: 8px;">
|
||||||
You can find the internal room ID by looking in the advanced section of the room settings in your Matrix client. It should look like !QMdRCpUIfLwsfjxye6:home.server.
|
{{ $t("matrixDesc1") }}
|
||||||
</p>
|
|
||||||
<p style="margin-top: 8px;">
|
|
||||||
It is highly recommended you create a new user and do not use your own Matrix user's access token as it will allow full access to your account and all the rooms you joined. Instead, create a new user and only invite it to the room that you want to receive the notification in. You can get the access token by running <code>curl -XPOST -d '{"type": "m.login.password", "identifier": {"user": "botusername", "type": "m.id.user"}, "password": "passwordforuser"}' "https://home.server/_matrix/client/r0/login"</code>.
|
|
||||||
</p>
|
</p>
|
||||||
|
<i18n-t tag="p" keypath="matrixDesc2" style="margin-top: 8px;">
|
||||||
|
<code>curl -XPOST -d '{"type": "m.login.password", "identifier": {"user": "botusername", "type": "m.id.user"}, "password": "passwordforuser"}' "https://home.server/_matrix/client/r0/login"</code>.
|
||||||
|
</i18n-t>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -30,5 +30,5 @@ export default {
|
||||||
components: {
|
components: {
|
||||||
HiddenInput,
|
HiddenInput,
|
||||||
},
|
},
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<option value="1">Legacy Octopush-DM (endpoint: www.octopush-dm.com)</option>
|
<option value="1">Legacy Octopush-DM (endpoint: www.octopush-dm.com)</option>
|
||||||
</select>
|
</select>
|
||||||
<div class="form-text">
|
<div class="form-text">
|
||||||
Do you use the legacy version of Octopush (2011-2020) or the new version?
|
{{ $t("octopushLegacyHint") }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
|
|
|
@ -13,9 +13,10 @@
|
||||||
<option value="2">{{ $t("promosmsTypeFull") }}</option>
|
<option value="2">{{ $t("promosmsTypeFull") }}</option>
|
||||||
<option value="3">{{ $t("promosmsTypeSpeed") }}</option>
|
<option value="3">{{ $t("promosmsTypeSpeed") }}</option>
|
||||||
</select>
|
</select>
|
||||||
<i18n-t tag="div" keypath="Check PromoSMS prices" class="form-text">
|
<div class="form-text">
|
||||||
|
{{ $t("checkPrice", [$t("promosms")]) }}
|
||||||
<a href="https://promosms.com/cennik/" target="_blank">https://promosms.com/cennik/</a>
|
<a href="https://promosms.com/cennik/" target="_blank">https://promosms.com/cennik/</a>
|
||||||
</i18n-t>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="promosms-phone-number" class="form-label">{{ $t("promosmsPhoneNumber") }}</label>
|
<label for="promosms-phone-number" class="form-label">{{ $t("promosmsPhoneNumber") }}</label>
|
||||||
|
@ -25,7 +26,6 @@
|
||||||
<label for="promosms-sender-name" class="form-label">{{ $t("promosmsSMSSender") }}</label>
|
<label for="promosms-sender-name" class="form-label">{{ $t("promosmsSMSSender") }}</label>
|
||||||
<input id="promosms-sender-name" v-model="$parent.notification.promosmsSenderName" type="text" minlength="3" maxlength="11" class="form-control">
|
<input id="promosms-sender-name" v-model="$parent.notification.promosmsSenderName" type="text" minlength="3" maxlength="11" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="telegram-bot-token" class="form-label">{{ $t("Bot Token") }}</label>
|
<label for="telegram-bot-token" class="form-label">{{ $t("Bot Token") }}</label>
|
||||||
<HiddenInput id="telegram-bot-token" v-model="$parent.notification.telegramBotToken" :required="true" autocomplete="one-time-code"></HiddenInput>
|
<HiddenInput id="telegram-bot-token" v-model="$parent.notification.telegramBotToken" :required="true" autocomplete="one-time-code"></HiddenInput>
|
||||||
<div class="form-text">
|
<i18n-t tag="div" keypath="wayToGetTelegramToken" class="form-text">
|
||||||
{{ $t("You can get a token from") }} <a href="https://t.me/BotFather" target="_blank">https://t.me/BotFather</a>.
|
<a href="https://t.me/BotFather" target="_blank">https://t.me/BotFather</a>
|
||||||
</div>
|
</i18n-t>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<div class="form-text">
|
<div class="form-text">
|
||||||
<p>"application/json" is good for any modern http servers such as express.js</p>
|
<p>{{ $t("webhookJsonDesc", ["\"application/json\""]) }}</p>
|
||||||
<i18n-t tag="p" keypath="webhookFormDataDesc">
|
<i18n-t tag="p" keypath="webhookFormDataDesc">
|
||||||
<template #multipart>"multipart/form-data"</template>
|
<template #multipart>"multipart/form-data"</template>
|
||||||
<template #decodeFunction>
|
<template #decodeFunction>
|
||||||
|
|
|
@ -33,6 +33,7 @@ export default {
|
||||||
Appearance: "Appearance",
|
Appearance: "Appearance",
|
||||||
Theme: "Theme",
|
Theme: "Theme",
|
||||||
General: "General",
|
General: "General",
|
||||||
|
"Primary Base URL": "Primary Base URL",
|
||||||
Version: "Version",
|
Version: "Version",
|
||||||
"Check Update On GitHub": "Check Update On GitHub",
|
"Check Update On GitHub": "Check Update On GitHub",
|
||||||
List: "List",
|
List: "List",
|
||||||
|
@ -75,6 +76,9 @@ export default {
|
||||||
"Upside Down Mode": "Upside Down Mode",
|
"Upside Down Mode": "Upside Down Mode",
|
||||||
"Max. Redirects": "Max. Redirects",
|
"Max. Redirects": "Max. Redirects",
|
||||||
"Accepted Status Codes": "Accepted Status Codes",
|
"Accepted Status Codes": "Accepted Status Codes",
|
||||||
|
"Push URL": "Push URL",
|
||||||
|
needPushEvery: "You should call this url every {0} seconds.",
|
||||||
|
pushOptionalParams: "Optional parameters: {0}",
|
||||||
Save: "Save",
|
Save: "Save",
|
||||||
Notifications: "Notifications",
|
Notifications: "Notifications",
|
||||||
"Not available, please setup.": "Not available, please setup.",
|
"Not available, please setup.": "Not available, please setup.",
|
||||||
|
@ -185,7 +189,7 @@ export default {
|
||||||
"Required": "Required",
|
"Required": "Required",
|
||||||
"telegram": "Telegram",
|
"telegram": "Telegram",
|
||||||
"Bot Token": "Bot Token",
|
"Bot Token": "Bot Token",
|
||||||
"You can get a token from": "You can get a token from",
|
wayToGetTelegramToken: "You can get a token from {0}.",
|
||||||
"Chat ID": "Chat ID",
|
"Chat ID": "Chat ID",
|
||||||
supportTelegramChatID: "Support Direct Chat / Group / Channel's Chat ID",
|
supportTelegramChatID: "Support Direct Chat / Group / Channel's Chat ID",
|
||||||
wayToGetTelegramChatID: "You can get your chat id by sending message to the bot and go to this url to view the chat_id:",
|
wayToGetTelegramChatID: "You can get your chat id by sending message to the bot and go to this url to view the chat_id:",
|
||||||
|
@ -252,6 +256,8 @@ export default {
|
||||||
"SMS Type": "SMS Type",
|
"SMS Type": "SMS Type",
|
||||||
octopushTypePremium: "Premium (Fast - recommended for alerting)",
|
octopushTypePremium: "Premium (Fast - recommended for alerting)",
|
||||||
octopushTypeLowCost: "Low Cost (Slow, sometimes blocked by operator)",
|
octopushTypeLowCost: "Low Cost (Slow, sometimes blocked by operator)",
|
||||||
|
checkPrice: "Check {0} prices:",
|
||||||
|
octopushLegacyHint: "Do you use the legacy version of Octopush (2011-2020) or the new version?",
|
||||||
"Check octopush prices": "Check octopush prices {0}.",
|
"Check octopush prices": "Check octopush prices {0}.",
|
||||||
octopushPhoneNumber: "Phone number (intl format, eg : +33612345678) ",
|
octopushPhoneNumber: "Phone number (intl format, eg : +33612345678) ",
|
||||||
octopushSMSSender: "SMS Sender Name : 3-11 alphanumeric characters and space (a-zA-Z0-9)",
|
octopushSMSSender: "SMS Sender Name : 3-11 alphanumeric characters and space (a-zA-Z0-9)",
|
||||||
|
@ -282,6 +288,10 @@ export default {
|
||||||
promosmsPhoneNumber: "Phone number (for Polish recipient You can skip area codes)",
|
promosmsPhoneNumber: "Phone number (for Polish recipient You can skip area codes)",
|
||||||
promosmsSMSSender: "SMS Sender Name : Pre-registred name or one of defaults: InfoSMS, SMS Info, MaxSMS, INFO, SMS",
|
promosmsSMSSender: "SMS Sender Name : Pre-registred name or one of defaults: InfoSMS, SMS Info, MaxSMS, INFO, SMS",
|
||||||
"Feishu WebHookUrl": "Feishu WebHookUrl",
|
"Feishu WebHookUrl": "Feishu WebHookUrl",
|
||||||
|
matrixHomeserverURL: "Homeserver URL (with http(s):// and optionally port)",
|
||||||
|
"Internal Room Id": "Internal Room Id",
|
||||||
|
matrixDesc1: "You can find the internal room ID by looking in the advanced section of the room settings in your Matrix client. It should look like !QMdRCpUIfLwsfjxye6:home.server.",
|
||||||
|
matrixDesc2: "It is highly recommended you create a new user and do not use your own Matrix user's access token as it will allow full access to your account and all the rooms you joined. Instead, create a new user and only invite it to the room that you want to receive the notification in. You can get the access token by running {0}",
|
||||||
// End notification form
|
// End notification form
|
||||||
Method: "Method",
|
Method: "Method",
|
||||||
Body: "Body",
|
Body: "Body",
|
||||||
|
|
|
@ -185,7 +185,7 @@ export default {
|
||||||
"Required": "Requis",
|
"Required": "Requis",
|
||||||
"telegram": "Telegram",
|
"telegram": "Telegram",
|
||||||
"Bot Token": "Bot Token",
|
"Bot Token": "Bot Token",
|
||||||
"You can get a token from": "Vous pouvez obtenir un token depuis",
|
wayToGetTelegramToken: "Vous pouvez obtenir un token depuis {0}.",
|
||||||
"Chat ID": "Chat ID",
|
"Chat ID": "Chat ID",
|
||||||
supportTelegramChatID: "Supporte les messages privés / en groupe / l'ID du salon",
|
supportTelegramChatID: "Supporte les messages privés / en groupe / l'ID du salon",
|
||||||
wayToGetTelegramChatID: "Vous pouvez obtenir l'ID du chat en envoyant un message avec le bot puis en récupérant l'URL pour voir l'ID du salon :",
|
wayToGetTelegramChatID: "Vous pouvez obtenir l'ID du chat en envoyant un message avec le bot puis en récupérant l'URL pour voir l'ID du salon :",
|
||||||
|
|
|
@ -184,7 +184,7 @@ export default {
|
||||||
Required: "필수",
|
Required: "필수",
|
||||||
telegram: "Telegram",
|
telegram: "Telegram",
|
||||||
"Bot Token": "봇 토큰",
|
"Bot Token": "봇 토큰",
|
||||||
"You can get a token from": "토큰은 여기서 얻을 수 있어요:",
|
wayToGetTelegramToken: "토큰은 여기서 얻을 수 있어요: {0}.",
|
||||||
"Chat ID": "채팅 ID",
|
"Chat ID": "채팅 ID",
|
||||||
supportTelegramChatID: "Direct Chat / Group / Channel's Chat ID를 지원해요.",
|
supportTelegramChatID: "Direct Chat / Group / Channel's Chat ID를 지원해요.",
|
||||||
wayToGetTelegramChatID: "봇에 메시지를 보내 채팅 ID를 얻고 밑에 URL로 이동해 chat_id를 볼 수 있어요.",
|
wayToGetTelegramChatID: "봇에 메시지를 보내 채팅 ID를 얻고 밑에 URL로 이동해 chat_id를 볼 수 있어요.",
|
||||||
|
|
|
@ -185,7 +185,7 @@ export default {
|
||||||
"Required": "Obligatorisk",
|
"Required": "Obligatorisk",
|
||||||
"telegram": "Telegram",
|
"telegram": "Telegram",
|
||||||
"Bot Token": "Bot Token",
|
"Bot Token": "Bot Token",
|
||||||
"You can get a token from": "Du kan få et token fra",
|
wayToGetTelegramToken: "Du kan få et token fra {0}.",
|
||||||
"Chat ID": "Chat ID",
|
"Chat ID": "Chat ID",
|
||||||
supportTelegramChatID: "Support Direct Chat / Group / Channel's Chat ID",
|
supportTelegramChatID: "Support Direct Chat / Group / Channel's Chat ID",
|
||||||
wayToGetTelegramChatID: "Du kan få chat-ID-en din ved å sende meldingen til boten og gå til denne nettadressen for å se chat_id:",
|
wayToGetTelegramChatID: "Du kan få chat-ID-en din ved å sende meldingen til boten og gå til denne nettadressen for å se chat_id:",
|
||||||
|
|
|
@ -185,7 +185,7 @@ export default {
|
||||||
"Required": "Wymagane",
|
"Required": "Wymagane",
|
||||||
"telegram": "Telegram",
|
"telegram": "Telegram",
|
||||||
"Bot Token": "Token Bota",
|
"Bot Token": "Token Bota",
|
||||||
"You can get a token from": "Token można uzyskać z",
|
wayToGetTelegramToken: "Token można uzyskać z {0}.",
|
||||||
"Chat ID": "Identyfikator Czatu",
|
"Chat ID": "Identyfikator Czatu",
|
||||||
supportTelegramChatID: "Czat wsprarcia technicznego / Bezpośrednia Rozmowa / Czat Grupowy",
|
supportTelegramChatID: "Czat wsprarcia technicznego / Bezpośrednia Rozmowa / Czat Grupowy",
|
||||||
wayToGetTelegramChatID: "Możesz uzyskać swój identyfikator czatu, wysyłając wiadomość do bota i przechodząc pod ten adres URL, aby wyświetlić identyfikator czatu:",
|
wayToGetTelegramChatID: "Możesz uzyskać swój identyfikator czatu, wysyłając wiadomość do bota i przechodząc pod ten adres URL, aby wyświetlić identyfikator czatu:",
|
||||||
|
|
|
@ -22,7 +22,8 @@ export default {
|
||||||
Appearance: "外观设置",
|
Appearance: "外观设置",
|
||||||
Theme: "主题",
|
Theme: "主题",
|
||||||
General: "基本设置",
|
General: "基本设置",
|
||||||
Version: "Version",
|
"Primary Base URL": "站点地址(URL)",
|
||||||
|
Version: "版本",
|
||||||
"Check Update On GitHub": "检查更新",
|
"Check Update On GitHub": "检查更新",
|
||||||
List: "列表",
|
List: "列表",
|
||||||
Add: "添加",
|
Add: "添加",
|
||||||
|
@ -43,7 +44,7 @@ export default {
|
||||||
Delete: "删除",
|
Delete: "删除",
|
||||||
Current: "当前",
|
Current: "当前",
|
||||||
Uptime: "可用率",
|
Uptime: "可用率",
|
||||||
"Cert Exp.": "证书过期",
|
"Cert Exp.": "证书有效期",
|
||||||
days: "天",
|
days: "天",
|
||||||
day: "天",
|
day: "天",
|
||||||
"-day": " 天",
|
"-day": " 天",
|
||||||
|
@ -63,6 +64,9 @@ export default {
|
||||||
"Upside Down Mode": "反向监控",
|
"Upside Down Mode": "反向监控",
|
||||||
"Max. Redirects": "重定向次数",
|
"Max. Redirects": "重定向次数",
|
||||||
"Accepted Status Codes": "有效状态码",
|
"Accepted Status Codes": "有效状态码",
|
||||||
|
"Push URL": "推送链接",
|
||||||
|
needPushEvery: "你需要每 {0} 秒调用一次。",
|
||||||
|
pushOptionalParams: "可选参数:{0}",
|
||||||
Save: "保存",
|
Save: "保存",
|
||||||
Notifications: "消息通知",
|
Notifications: "消息通知",
|
||||||
"Not available, please setup.": "无可用通道,请先设置",
|
"Not available, please setup.": "无可用通道,请先设置",
|
||||||
|
@ -103,10 +107,10 @@ export default {
|
||||||
"Certificate Info": "证书信息",
|
"Certificate Info": "证书信息",
|
||||||
"Resolver Server": "解析服务器",
|
"Resolver Server": "解析服务器",
|
||||||
"Resource Record Type": "资源记录类型",
|
"Resource Record Type": "资源记录类型",
|
||||||
"Last Result": "Last Result",
|
"Last Result": "最后结果",
|
||||||
"Create your admin account": "创建管理员账号",
|
"Create your admin account": "创建管理员账号",
|
||||||
"Repeat Password": "重复密码",
|
"Repeat Password": "重复密码",
|
||||||
respTime: "Resp. Time (ms)",
|
respTime: "响应时间(毫秒)",
|
||||||
notAvailableShort: "N/A",
|
notAvailableShort: "N/A",
|
||||||
Create: "创建",
|
Create: "创建",
|
||||||
clearEventsMsg: "确定要删除此监控项的所有事件吗?",
|
clearEventsMsg: "确定要删除此监控项的所有事件吗?",
|
||||||
|
@ -126,21 +130,21 @@ export default {
|
||||||
backupDescription3: "导出的文件中可能包含敏感信息,如消息通知的 Token 信息,请小心存放!",
|
backupDescription3: "导出的文件中可能包含敏感信息,如消息通知的 Token 信息,请小心存放!",
|
||||||
alertNoFile: "请选择一个文件导入",
|
alertNoFile: "请选择一个文件导入",
|
||||||
alertWrongFileType: "请选择一个 JSON 格式的文件",
|
alertWrongFileType: "请选择一个 JSON 格式的文件",
|
||||||
twoFAVerifyLabel: "请输入Token以验证2FA(二次验证)是否正常工作",
|
twoFAVerifyLabel: "请输入Token以验证 2FA(二次验证)是否正常工作",
|
||||||
tokenValidSettingsMsg: "Token有效!您现在可以保存2FA(二次验证)设置",
|
tokenValidSettingsMsg: "Token有效!您现在可以保存 2FA(二次验证)设置",
|
||||||
confirmEnableTwoFAMsg: "确定要启用2FA(二次验证)吗?",
|
confirmEnableTwoFAMsg: "确定要启用 2FA(二次验证)吗?",
|
||||||
confirmDisableTwoFAMsg: "确定要禁用2FA(二次验证)吗?",
|
confirmDisableTwoFAMsg: "确定要禁用 2FA(二次验证)吗?",
|
||||||
"Apply on all existing monitors": "应用到所有监控项",
|
"Apply on all existing monitors": "应用到所有监控项",
|
||||||
"Verify Token": "验证Token",
|
"Verify Token": "验证 Token",
|
||||||
"Setup 2FA": "设置2FA",
|
"Setup 2FA": "设置 2FA",
|
||||||
"Enable 2FA": "启用2FA",
|
"Enable 2FA": "启用 2FA",
|
||||||
"Disable 2FA": "禁用2FA",
|
"Disable 2FA": "禁用 2FA",
|
||||||
"2FA Settings": "2FA设置",
|
"2FA Settings": "2FA 设置",
|
||||||
"Two Factor Authentication": "双因素认证",
|
"Two Factor Authentication": "双因素认证",
|
||||||
Active: "有效",
|
Active: "生效",
|
||||||
Inactive: "无效",
|
Inactive: "未生效",
|
||||||
Token: "Token",
|
Token: "Token",
|
||||||
"Show URI": "显示URI",
|
"Show URI": "显示链接",
|
||||||
"Clear all statistics": "清除所有统计数据",
|
"Clear all statistics": "清除所有统计数据",
|
||||||
retryCheckEverySecond: "重试间隔 {0} 秒",
|
retryCheckEverySecond: "重试间隔 {0} 秒",
|
||||||
importHandleDescription: "如果想跳过同名的监控项或通知,请选择“跳过”;“覆盖”将删除所有现有的监控项和通知。",
|
importHandleDescription: "如果想跳过同名的监控项或通知,请选择“跳过”;“覆盖”将删除所有现有的监控项和通知。",
|
||||||
|
@ -167,7 +171,7 @@ export default {
|
||||||
Purple: "紫色",
|
Purple: "紫色",
|
||||||
Pink: "粉色",
|
Pink: "粉色",
|
||||||
"Search...": "搜索...",
|
"Search...": "搜索...",
|
||||||
"Avg. Ping": "平均Ping",
|
"Avg. Ping": "平均 Ping",
|
||||||
"Avg. Response": "平均响应",
|
"Avg. Response": "平均响应",
|
||||||
"Entry Page": "入口页面",
|
"Entry Page": "入口页面",
|
||||||
statusPageNothing: "这里什么也没有,请添加一个分组或一个监控项。",
|
statusPageNothing: "这里什么也没有,请添加一个分组或一个监控项。",
|
||||||
|
@ -182,7 +186,7 @@ export default {
|
||||||
"Status Page": "状态页",
|
"Status Page": "状态页",
|
||||||
telegram: "Telegram",
|
telegram: "Telegram",
|
||||||
webhook: "Webhook",
|
webhook: "Webhook",
|
||||||
smtp: "Email (SMTP)",
|
smtp: "电子邮件(SMTP)",
|
||||||
discord: "Discord",
|
discord: "Discord",
|
||||||
teams: "Microsoft Teams",
|
teams: "Microsoft Teams",
|
||||||
signal: "Signal",
|
signal: "Signal",
|
||||||
|
@ -194,9 +198,97 @@ export default {
|
||||||
octopush: "Octopush",
|
octopush: "Octopush",
|
||||||
promosms: "PromoSMS",
|
promosms: "PromoSMS",
|
||||||
lunasea: "LunaSea",
|
lunasea: "LunaSea",
|
||||||
apprise: "Apprise (Support 50+ Notification services)",
|
apprise: "Apprise (支持50+种通知服务)",
|
||||||
pushbullet: "Pushbullet",
|
pushbullet: "Pushbullet",
|
||||||
line: "Line Messenger",
|
line: "Line Messenger",
|
||||||
mattermost: "Mattermost",
|
mattermost: "Mattermost",
|
||||||
"Feishu WebHookUrl": "飞书 WebHook 地址",
|
"Feishu WebHookUrl": "飞书 WebHook 地址",
|
||||||
|
defaultNotificationName: "{notification} 通知({number})",
|
||||||
|
here: "这里",
|
||||||
|
Required: "必填",
|
||||||
|
"Bot Token": "Bot Token",
|
||||||
|
wayToGetTelegramToken: "你可以从 {0} 获取 Token。",
|
||||||
|
"Chat ID": "Chat ID",
|
||||||
|
supportTelegramChatID: "支持对话/群组/频道的 ID",
|
||||||
|
wayToGetTelegramChatID: "你可以发送一条消息给你的机器人然后到下面的链接来查看你的 chat_id:",
|
||||||
|
"YOUR BOT TOKEN HERE": "这里替换成你的 BOT TOKEN",
|
||||||
|
chatIDNotFound: "没有找到 Chat ID,请先给你的机器人发送一条消息。",
|
||||||
|
"Post URL": "目标链接",
|
||||||
|
"Content Type": "Content Type",
|
||||||
|
webhookJsonDesc: "{0} 适合现代的服务,比如 express.js",
|
||||||
|
webhookFormDataDesc: "{multipart} 适合PHP,解码使用 {decodeFunction}",
|
||||||
|
secureOptionNone: "无 / STARTTLS(25,587)",
|
||||||
|
secureOptionTLS: "TLS(465)",
|
||||||
|
"Ignore TLS Error": "忽略 TLS 错误",
|
||||||
|
"From Email": "发信人",
|
||||||
|
"To Email": "收信人",
|
||||||
|
smtpCC: "抄送",
|
||||||
|
smtpBCC: "密送",
|
||||||
|
"Discord Webhook URL": "Discord Webhook 链接",
|
||||||
|
wayToGetDiscordURL: "获取方式:服务器设置 -> 整合 -> 创建 Webhook",
|
||||||
|
"Bot Display Name": "机器人显示名称",
|
||||||
|
"Prefix Custom Message": "自定义消息前缀",
|
||||||
|
"Hello @everyone is...": "{'@'}所有人,……",
|
||||||
|
"Webhook URL": "Webhook 链接",
|
||||||
|
wayToGetTeamsURL: "你可以在 {0} 获取 Webhook 链接。",
|
||||||
|
Number: "号码",
|
||||||
|
Recipients: "收件人",
|
||||||
|
needSignalAPI: "你需要有一个带 REST API 的 Signal 客户端。",
|
||||||
|
wayToCheckSignalURL: "你可以通过下面的链接来了解如何设置:",
|
||||||
|
signalImportant: "重要:你不能混合设定收件人的分组和号码!",
|
||||||
|
"Application Token": "Application Token",
|
||||||
|
"Server URL": "服务器链接",
|
||||||
|
Priority: "优先级",
|
||||||
|
"Icon Emoji": "Emoji 图标",
|
||||||
|
"Channel Name": "频道名称",
|
||||||
|
"Uptime Kuma URL": "Uptime Kuma 链接",
|
||||||
|
aboutWebhooks: "关于 Webhook 的更多信息:{0}",
|
||||||
|
aboutChannelName: "如果你想绕过 Webhook 设定的频道,请在设定 {0} 的频道名称字段为你想要的频道。例:#other-channel",
|
||||||
|
aboutKumaURL: "如果保留 Uptime Kuma 链接为空,将会默认指向项目的 Github 页面。",
|
||||||
|
emojiCheatSheet: "Emoji 参考表:{0}",
|
||||||
|
"User Key": "User Key",
|
||||||
|
Device: "设备",
|
||||||
|
"Message Title": "消息标题",
|
||||||
|
"Notification Sound": "通知铃声",
|
||||||
|
"More info on:": "更多信息:{0}",
|
||||||
|
pushoverDesc1: "紧急优先级(2)会在一小时内每30秒重试一次。",
|
||||||
|
pushoverDesc2: "如果你想发送通知给不同的设备,请填写“设备”字段。",
|
||||||
|
"SMS Type": "短信类型",
|
||||||
|
octopushTypePremium: "Premium(快 - 推荐用于警报)",
|
||||||
|
octopushTypeLowCost: "Low Cost(慢 - 有时会被运营商屏蔽)",
|
||||||
|
"Check octopush prices": "查看 Octopush 的价格 {0}。",
|
||||||
|
octopushPhoneNumber: "电话号码(国际格式,例:+33612345678)",
|
||||||
|
octopushSMSSender: "短信发送名称:3-11位大小写字母、数字和空格(a-zA-Z0-9)",
|
||||||
|
"LunaSea Device ID": "LunaSea 设备 ID",
|
||||||
|
"Apprise URL": "Apprise 链接",
|
||||||
|
"Example:": "例:{0}",
|
||||||
|
"Read more:": "了解更多:{0}",
|
||||||
|
"Status:": "状态:{0}",
|
||||||
|
"Read more": "了解更多",
|
||||||
|
appriseInstalled: "Apprise 已安装",
|
||||||
|
appriseNotInstalled: "Apprise 未安装。{0}",
|
||||||
|
"Access Token": "Access Token",
|
||||||
|
"Channel access token": "频道 access token",
|
||||||
|
"Line Developers Console": "Line Developers Console",
|
||||||
|
lineDevConsoleTo: "Line Developers Console - {0}",
|
||||||
|
"Basic Settings": "Basic Settings",
|
||||||
|
"User ID": "User ID",
|
||||||
|
"Messaging API": "Messaging API",
|
||||||
|
wayToGetLineChannelToken: "首先访问 {0},创建一个提供者和频道(Messaging API),然后你就可以从上面提到的地方获取频道的 access token 和用户 ID。",
|
||||||
|
"Icon URL": "图标链接",
|
||||||
|
aboutIconURL: "你可以在“Icon URL”中提供一个图片地址来覆盖默认的资料图片。如果设置了 Emoji 图标此字段会被忽略。",
|
||||||
|
aboutMattermostChannelName: "如果你想覆盖 Webhook 设定的频道,请在“频道名称”字段为你想要的频道。这需要在 Mattermost 的 Webhook 设定中启用。例:#other-channel",
|
||||||
|
matrix: "Matrix",
|
||||||
|
promosmsTypeEco: "SMS ECO - 便宜但是慢,并且容易超负荷。仅限波兰地区的收件人。",
|
||||||
|
promosmsTypeFlash: "SMS FLASH - 消息会自动显示在收件人设备上。仅限波兰地区的收件人。",
|
||||||
|
promosmsTypeFull: "SMS FULL - 高等级,你可以使用你自己的发件人名称(你需要先注册一个). 对于警报来说更可靠。",
|
||||||
|
promosmsTypeSpeed: "SMS SPEED - 最高优先级。非常快速可靠,但更贵(越两倍 SMS FULL 等级的价格)。",
|
||||||
|
promosmsPhoneNumber: "电话号码(波兰地区收件人可以不填区号)",
|
||||||
|
promosmsSMSSender: "短信发件人名称:已注册的名称或以下默认值之一:InfoSMS,SMS Info,MaxSMS,INFO,SMS",
|
||||||
|
checkPrice: "查看 {0} 的价格:",
|
||||||
|
octopushLegacyHint: "你是否在使用旧版本的 Octopush(2011-2020)?",
|
||||||
|
matrixHomeserverURL: "服务器链接(开头带 http(s):// 和可能的需要的端口号)",
|
||||||
|
"Internal Room Id": "Internal Room Id",
|
||||||
|
matrixDesc1: "你可以在 Matrix 客户端房间设置的高级选项找到 Internal Room Id。格式类似于 !QMdRCpUIfLwsfjxye6:home.server。",
|
||||||
|
matrixDesc2: "请不要使用你自己的 Access Token,这将开放你所有的账户权限和你加入的房间权限。你可以创建一个新的用户并邀请它至你允许的的房间中。你可以运行以下命令来获取 Access Token:{0}",
|
||||||
};
|
};
|
||||||
|
|
|
@ -49,8 +49,8 @@
|
||||||
<label for="push-url" class="form-label">{{ $t("PushUrl") }}</label>
|
<label for="push-url" class="form-label">{{ $t("PushUrl") }}</label>
|
||||||
<CopyableInput id="push-url" v-model="pushURL" type="url" disabled="disabled" />
|
<CopyableInput id="push-url" v-model="pushURL" type="url" disabled="disabled" />
|
||||||
<div class="form-text">
|
<div class="form-text">
|
||||||
You should call this url every {{ monitor.interval }} seconds.<br />
|
{{ $t("needPushEvery", [monitor.interval]) }}<br />
|
||||||
Optional parameters: msg, ping
|
{{ $t("pushOptionalParams", ["msg, ping"]) }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -108,7 +108,7 @@
|
||||||
|
|
||||||
<!-- Primary Base URL -->
|
<!-- Primary Base URL -->
|
||||||
<div class="mb-4">
|
<div class="mb-4">
|
||||||
<label class="form-label" for="primaryBaseURL">Primary Base URL</label>
|
<label class="form-label" for="primaryBaseURL">{{ $t("Primary Base URL") }}</label>
|
||||||
|
|
||||||
<div class="input-group mb-3">
|
<div class="input-group mb-3">
|
||||||
<input id="primaryBaseURL" v-model="settings.primaryBaseURL" class="form-control" name="primaryBaseURL" placeholder="https://" pattern="https?://.+">
|
<input id="primaryBaseURL" v-model="settings.primaryBaseURL" class="form-control" name="primaryBaseURL" placeholder="https://" pattern="https?://.+">
|
||||||
|
|
Loading…
Reference in a new issue