mirror of
https://github.com/louislam/uptime-kuma.git
synced 2024-11-28 01:04:05 +00:00
Merge remote-tracking branch 'origin/master' into squadcast-notification-support
# Conflicts: # src/languages/en.js
This commit is contained in:
commit
3e85893bdd
10 changed files with 92 additions and 36 deletions
|
@ -27,7 +27,7 @@ The frontend code build into "dist" directory. The server (express.js) exposes t
|
||||||
|
|
||||||
## Can I create a pull request for Uptime Kuma?
|
## Can I create a pull request for Uptime Kuma?
|
||||||
|
|
||||||
Yes or no, it depends on what you will try to do. Since I don't want to waste your time, be sure to **create empty draft pull request or open an issue, so we can discuss first**. Especially for a large pull request or you don't know it will be merged or not.
|
Yes or no, it depends on what you will try to do. Since I don't want to waste your time, be sure to **create an empty draft pull request or open an issue, so we can discuss first**. Especially for a large pull request or you don't know it will be merged or not.
|
||||||
|
|
||||||
Here are some references:
|
Here are some references:
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ Here are some references:
|
||||||
- UI/UX is not close to Uptime Kuma
|
- UI/UX is not close to Uptime Kuma
|
||||||
- Existing logic is completely modified or deleted for no reason
|
- Existing logic is completely modified or deleted for no reason
|
||||||
- A function that is completely out of scope
|
- A function that is completely out of scope
|
||||||
- Unnesscary large code changes (Hard to review, casuse code conflicts to other pull requests)
|
- Unnecessary large code changes (Hard to review, causes code conflicts to other pull requests)
|
||||||
|
|
||||||
I will mark your pull request in the [milestones](https://github.com/louislam/uptime-kuma/milestones), if I am plan to review and merge it.
|
I will mark your pull request in the [milestones](https://github.com/louislam/uptime-kuma/milestones), if I am plan to review and merge it.
|
||||||
|
|
||||||
|
@ -183,7 +183,7 @@ By default, the Chromium window will be shown up during the test. Specifying `HE
|
||||||
|
|
||||||
## Dependencies
|
## Dependencies
|
||||||
|
|
||||||
Both frontend and backend share the same package.json. However, the frontend dependencies are eventually not be used in production environment, because it is usually also baked into dist files. So:
|
Both frontend and backend share the same package.json. However, the frontend dependencies are eventually not used in the production environment, because it is usually also baked into dist files. So:
|
||||||
|
|
||||||
- Frontend dependencies = "devDependencies"
|
- Frontend dependencies = "devDependencies"
|
||||||
- Examples: vue, chart.js
|
- Examples: vue, chart.js
|
||||||
|
|
|
@ -8,12 +8,19 @@ class Ntfy extends NotificationProvider {
|
||||||
async send(notification, msg, monitorJSON = null, heartbeatJSON = null) {
|
async send(notification, msg, monitorJSON = null, heartbeatJSON = null) {
|
||||||
let okMsg = "Sent Successfully.";
|
let okMsg = "Sent Successfully.";
|
||||||
try {
|
try {
|
||||||
await axios.post(`${notification.ntfyserverurl}`, {
|
let headers = {};
|
||||||
|
if (notification.ntfyusername.length > 0) {
|
||||||
|
headers = {
|
||||||
|
"Authorization": "Basic " + Buffer.from(notification.ntfyusername + ":" + notification.ntfypassword).toString("base64"),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
let data = {
|
||||||
"topic": notification.ntfytopic,
|
"topic": notification.ntfytopic,
|
||||||
"message": msg,
|
"message": msg,
|
||||||
"priority": notification.ntfyPriority || 4,
|
"priority": notification.ntfyPriority || 4,
|
||||||
"title": "Uptime-Kuma",
|
"title": "Uptime-Kuma",
|
||||||
});
|
};
|
||||||
|
await axios.post(`${notification.ntfyserverurl}`, data, { headers: headers });
|
||||||
|
|
||||||
return okMsg;
|
return okMsg;
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ class Octopush extends NotificationProvider {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Default - V2
|
// Default - V2
|
||||||
if (notification.octopushVersion === 2 || !notification.octopushVersion) {
|
if (notification.octopushVersion === "2" || !notification.octopushVersion) {
|
||||||
let config = {
|
let config = {
|
||||||
headers: {
|
headers: {
|
||||||
"api-key": notification.octopushAPIKey,
|
"api-key": notification.octopushAPIKey,
|
||||||
|
@ -31,7 +31,7 @@ class Octopush extends NotificationProvider {
|
||||||
"sender": notification.octopushSenderName
|
"sender": notification.octopushSenderName
|
||||||
};
|
};
|
||||||
await axios.post("https://api.octopush.com/v1/public/sms-campaign/send", data, config);
|
await axios.post("https://api.octopush.com/v1/public/sms-campaign/send", data, config);
|
||||||
} else if (notification.octopushVersion === 1) {
|
} else if (notification.octopushVersion === "1") {
|
||||||
let data = {
|
let data = {
|
||||||
"user_login": notification.octopushDMLogin,
|
"user_login": notification.octopushDMLogin,
|
||||||
"api_key": notification.octopushDMAPIKey,
|
"api_key": notification.octopushDMAPIKey,
|
||||||
|
@ -49,7 +49,15 @@ class Octopush extends NotificationProvider {
|
||||||
},
|
},
|
||||||
params: data
|
params: data
|
||||||
};
|
};
|
||||||
await axios.post("https://www.octopush-dm.com/api/sms/json", {}, config);
|
|
||||||
|
// V1 API returns 200 even on error so we must check
|
||||||
|
// response data
|
||||||
|
let response = await axios.post("https://www.octopush-dm.com/api/sms/json", {}, config);
|
||||||
|
if ("error_code" in response.data) {
|
||||||
|
if (response.data.error_code !== "000") {
|
||||||
|
this.throwGeneralAxiosError(`Octopush error ${JSON.stringify(response.data)}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
throw new Error("Unknown Octopush version!");
|
throw new Error("Unknown Octopush version!");
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,7 +63,7 @@ class Teams extends NotificationProvider {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (monitorUrl) {
|
if (monitorUrl && monitorUrl !== "https://") {
|
||||||
facts.push({
|
facts.push({
|
||||||
name: "URL",
|
name: "URL",
|
||||||
value: monitorUrl,
|
value: monitorUrl,
|
||||||
|
@ -127,13 +127,17 @@ class Teams extends NotificationProvider {
|
||||||
|
|
||||||
let url;
|
let url;
|
||||||
|
|
||||||
if (monitorJSON["type"] === "port") {
|
switch (monitorJSON["type"]) {
|
||||||
url = monitorJSON["hostname"];
|
case "http":
|
||||||
if (monitorJSON["port"]) {
|
case "keywork":
|
||||||
url += ":" + monitorJSON["port"];
|
url = monitorJSON["url"];
|
||||||
}
|
break;
|
||||||
} else {
|
case "docker":
|
||||||
url = monitorJSON["url"];
|
url = monitorJSON["docker_host"];
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
url = monitorJSON["hostname"];
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
const payload = this._notificationPayloadFactory({
|
const payload = this._notificationPayloadFactory({
|
||||||
|
|
|
@ -11,15 +11,31 @@
|
||||||
<input id="ntfy-server-url" v-model="$parent.notification.ntfyserverurl" type="text" class="form-control" required>
|
<input id="ntfy-server-url" v-model="$parent.notification.ntfyserverurl" type="text" class="form-control" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="ntfy-priority" class="form-label">{{ $t("Priority") }}</label>
|
<label for="ntfy-priority" class="form-label">{{ $t("Priority") }}</label>
|
||||||
<input id="ntfy-priority" v-model="$parent.notification.ntfyPriority" type="number" class="form-control" required min="1" max="5" step="1">
|
<input id="ntfy-priority" v-model="$parent.notification.ntfyPriority" type="number" class="form-control" required min="1" max="5" step="1">
|
||||||
</div>
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="ntfy-username" class="form-label">{{ $t("Username") }} ({{ $t("Optional") }})</label>
|
||||||
|
<div class="input-group mb-3">
|
||||||
|
<input id="ntfy-username" v-model="$parent.notification.ntfyusername" type="text" class="form-control" required>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="ntfy-password" class="form-label">{{ $t("Password") }} ({{ $t("Optional") }})</label>
|
||||||
|
<div class="input-group mb-3">
|
||||||
|
<HiddenInput id="ntfy-password" v-model="$parent.notification.ntfypassword" autocomplete="new-password"></HiddenInput>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import HiddenInput from "../HiddenInput.vue";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
components: {
|
||||||
|
HiddenInput,
|
||||||
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
if (typeof this.$parent.notification.ntfyPriority === "undefined") {
|
if (typeof this.$parent.notification.ntfyPriority === "undefined") {
|
||||||
this.$parent.notification.ntfyserverurl = "https://ntfy.sh";
|
this.$parent.notification.ntfyserverurl = "https://ntfy.sh";
|
||||||
|
|
|
@ -562,4 +562,24 @@ export default {
|
||||||
"Docker Host": "Docker хост",
|
"Docker Host": "Docker хост",
|
||||||
"Docker Hosts": "Docker хостове",
|
"Docker Hosts": "Docker хостове",
|
||||||
trustProxyDescription: "Trust 'X-Forwarded-*' headers. Ако искате да получавате правилния IP адрес на клиента, а Uptime Kuma е зад системи като Nginx или Apache, трябва да разрешите тази опция.",
|
trustProxyDescription: "Trust 'X-Forwarded-*' headers. Ако искате да получавате правилния IP адрес на клиента, а Uptime Kuma е зад системи като Nginx или Apache, трябва да разрешите тази опция.",
|
||||||
|
Examples: "Примери",
|
||||||
|
"Home Assistant URL": "Home Assistant URL адрес",
|
||||||
|
"Long-Lived Access Token": "Long-Lived Access Token",
|
||||||
|
"Long-Lived Access Token can be created by clicking on your profile name (bottom left) and scrolling to the bottom then click Create Token. ": "Long-Lived Access Token можете да създадете, като кликнете върху името на профила си (долу ляво) и превъртите до най-долу, след това кликнете върху Създаване на токен. ",
|
||||||
|
"Notification Service": "Услуга за известяване",
|
||||||
|
"default: notify all devices": "по подразбиране: извести всички устройства",
|
||||||
|
"A list of Notification Services can be found in Home Assistant under \"Developer Tools > Services\" search for \"notification\" to find your device/phone name.": "Списък с услугите за известяване може да бъде намерен в Home Assistant под \"Developer Tools > Services\", там потърсете \"notification\", за да намерите името на вашето устройство/телефон.",
|
||||||
|
"Automations can optionally be triggered in Home Assistant:": "Автоматизациите могат да се задействат при нужда в Home Assistant:",
|
||||||
|
"Trigger type:": "Задействане тип:",
|
||||||
|
"Event type:": "Събитие тип:",
|
||||||
|
"Event data:": "Събитие данни:",
|
||||||
|
"Then choose an action, for example switch the scene to where an RGB light is red.": "След което изберете действие, например да превключите сцената, където RGB светлината е червена.",
|
||||||
|
"Frontend Version": "Фронтенд версия",
|
||||||
|
"Frontend Version do not match backend version!": "Фронтенд версията не съвпада с Бекенд версията!",
|
||||||
|
"Base URL": "Базов URL адрес",
|
||||||
|
goAlertInfo: "GoAlert е приложение с отворен код за планиране на повиквания, автоматизирани ескалации и известия (като SMS или гласови повиквания). Автоматично ангажирайте точния човек, по точния начин и в точното време! {0}",
|
||||||
|
goAlertIntegrationKeyInfo: "Вземете общ API интеграционен ключ за услугата във формат \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\" обикновено стойността на параметъра token на копирания URL адрес.",
|
||||||
|
goAlert: "GoAlert",
|
||||||
|
backupOutdatedWarning: "Отпаднало: Тъй като са добавени много функции, тази опция за архивиране не е достатъчно поддържана и не може да генерира или възстанови пълен архив.",
|
||||||
|
backupRecommend: "Моля, архивирайте дяла или папката (./data/) директно вместо това.",
|
||||||
};
|
};
|
||||||
|
|
|
@ -68,7 +68,7 @@ export default {
|
||||||
Timezone: "Zeitzone",
|
Timezone: "Zeitzone",
|
||||||
"Search Engine Visibility": "Sichtbarkeit für Suchmaschinen",
|
"Search Engine Visibility": "Sichtbarkeit für Suchmaschinen",
|
||||||
"Allow indexing": "Indizierung zulassen",
|
"Allow indexing": "Indizierung zulassen",
|
||||||
"Discourage search engines from indexing site": "Halte Suchmaschinen von der Indexierung der Seite ab",
|
"Discourage search engines from indexing site": "Suchmaschinen darum bitten, die Seite nicht zu indizieren",
|
||||||
"Change Password": "Passwort ändern",
|
"Change Password": "Passwort ändern",
|
||||||
"Current Password": "Aktuelles Passwort",
|
"Current Password": "Aktuelles Passwort",
|
||||||
"New Password": "Neues Passwort",
|
"New Password": "Neues Passwort",
|
||||||
|
@ -78,7 +78,7 @@ export default {
|
||||||
"Disable Auth": "Authentifizierung deaktivieren",
|
"Disable Auth": "Authentifizierung deaktivieren",
|
||||||
"Enable Auth": "Authentifizierung aktivieren",
|
"Enable Auth": "Authentifizierung aktivieren",
|
||||||
"disableauth.message1": "Bist du sicher das du die <strong>Authentifizierung deaktivieren</strong> möchtest?",
|
"disableauth.message1": "Bist du sicher das du die <strong>Authentifizierung deaktivieren</strong> möchtest?",
|
||||||
"disableauth.message2": "Es ist für <strong>jemanden der eine externe Authentifizierung</strong> vor Uptime Kuma geschaltet hat, wie z.B. Cloudflare Access.",
|
"disableauth.message2": "Dies ist für Szenarien gedacht, <strong>in denen man eine externe Authentifizierung</strong> vor Uptime Kuma geschaltet hat, wie z.B. Cloudflare Access, Authelia oder andere Authentifizierungsmechanismen.",
|
||||||
"Please use this option carefully!": "Bitte mit Vorsicht nutzen.",
|
"Please use this option carefully!": "Bitte mit Vorsicht nutzen.",
|
||||||
Logout: "Ausloggen",
|
Logout: "Ausloggen",
|
||||||
notificationDescription: "Benachrichtigungen müssen einem Monitor zugewiesen werden, damit diese funktionieren.",
|
notificationDescription: "Benachrichtigungen müssen einem Monitor zugewiesen werden, damit diese funktionieren.",
|
||||||
|
@ -559,7 +559,7 @@ export default {
|
||||||
"ntfy Topic": "ntfy Thema",
|
"ntfy Topic": "ntfy Thema",
|
||||||
Domain: "Domain",
|
Domain: "Domain",
|
||||||
Workstation: "Workstation",
|
Workstation: "Workstation",
|
||||||
disableCloudflaredNoAuthMsg: "Du bist im nicht-authentifizieren modus, ein Passwort wird nicht benötigt.",
|
disableCloudflaredNoAuthMsg: "Du bist im nicht-authentifizieren Modus, ein Passwort wird nicht benötigt.",
|
||||||
trustProxyDescription: "Vertraue 'X-Forwarded-*' headern. Wenn man die richtige client IP haben möchte und Uptime Kuma hinter einem Proxy wie Nginx or Apache läuft, wollte dies aktiviert werden.",
|
trustProxyDescription: "Vertraue 'X-Forwarded-*' headern. Wenn man die richtige client IP haben möchte und Uptime Kuma hinter einem Proxy wie Nginx or Apache läuft, wollte dies aktiviert werden.",
|
||||||
wayToGetLineNotifyToken: "Du kannst hier ein Token erhalten: {0}",
|
wayToGetLineNotifyToken: "Du kannst hier ein Token erhalten: {0}",
|
||||||
Examples: "Beispiele",
|
Examples: "Beispiele",
|
||||||
|
|
|
@ -582,5 +582,6 @@ export default {
|
||||||
goAlert: "GoAlert",
|
goAlert: "GoAlert",
|
||||||
backupOutdatedWarning: "Deprecated: Since a lot of features added and this backup feature is a bit unmaintained, it cannot generate or restore a complete backup.",
|
backupOutdatedWarning: "Deprecated: Since a lot of features added and this backup feature is a bit unmaintained, it cannot generate or restore a complete backup.",
|
||||||
backupRecommend: "Please backup the volume or the data folder (./data/) directly instead.",
|
backupRecommend: "Please backup the volume or the data folder (./data/) directly instead.",
|
||||||
|
"Optional": "Optional",
|
||||||
squadcast: "Squadcast",
|
squadcast: "Squadcast",
|
||||||
};
|
};
|
||||||
|
|
|
@ -130,7 +130,7 @@ export default {
|
||||||
"Repeat Password": "Ulangi Sandi",
|
"Repeat Password": "Ulangi Sandi",
|
||||||
"Import Backup": "Impor Cadangan",
|
"Import Backup": "Impor Cadangan",
|
||||||
"Export Backup": "Expor Cadangan",
|
"Export Backup": "Expor Cadangan",
|
||||||
Export: "Expor",
|
Export: "Ekspor",
|
||||||
Import: "Impor",
|
Import: "Impor",
|
||||||
respTime: "Tanggapan. Waktu (milidetik)",
|
respTime: "Tanggapan. Waktu (milidetik)",
|
||||||
notAvailableShort: "N/A",
|
notAvailableShort: "N/A",
|
||||||
|
@ -192,7 +192,7 @@ export default {
|
||||||
"Status Pages": "Halaman Status",
|
"Status Pages": "Halaman Status",
|
||||||
defaultNotificationName: "{notification} saya Peringatan ({number})",
|
defaultNotificationName: "{notification} saya Peringatan ({number})",
|
||||||
here: "di sini",
|
here: "di sini",
|
||||||
Required: "Dibutuhkan",
|
Required: "Wajib",
|
||||||
telegram: "Telegram",
|
telegram: "Telegram",
|
||||||
"Bot Token": "Bot Token",
|
"Bot Token": "Bot Token",
|
||||||
wayToGetTelegramToken: "Anda dapat mendapatkan token dari {0}.",
|
wayToGetTelegramToken: "Anda dapat mendapatkan token dari {0}.",
|
||||||
|
@ -210,9 +210,9 @@ export default {
|
||||||
secureOptionNone: "None / STARTTLS (25, 587)",
|
secureOptionNone: "None / STARTTLS (25, 587)",
|
||||||
secureOptionTLS: "TLS (465)",
|
secureOptionTLS: "TLS (465)",
|
||||||
"Ignore TLS Error": "Abaikan Kesalahan TLS",
|
"Ignore TLS Error": "Abaikan Kesalahan TLS",
|
||||||
"From Email": "Dari Surel",
|
"From Email": "Dari Email",
|
||||||
emailCustomSubject: "Subjek",
|
emailCustomSubject: "Subjek",
|
||||||
"To Email": "Ke Surel",
|
"To Email": "Ke Email",
|
||||||
smtpCC: "CC",
|
smtpCC: "CC",
|
||||||
smtpBCC: "BCC",
|
smtpBCC: "BCC",
|
||||||
discord: "Discord",
|
discord: "Discord",
|
||||||
|
@ -232,7 +232,7 @@ export default {
|
||||||
signalImportant: "PENTING: Anda tidak dapat mencampur grup dan nomor di penerima!",
|
signalImportant: "PENTING: Anda tidak dapat mencampur grup dan nomor di penerima!",
|
||||||
gotify: "Gotify",
|
gotify: "Gotify",
|
||||||
"Application Token": "Token Aplikasi",
|
"Application Token": "Token Aplikasi",
|
||||||
"Server URL": "URL Peladen",
|
"Server URL": "URL Server",
|
||||||
Priority: "Prioritas",
|
Priority: "Prioritas",
|
||||||
slack: "Slack",
|
slack: "Slack",
|
||||||
"Icon Emoji": "Ikon Emoji",
|
"Icon Emoji": "Ikon Emoji",
|
||||||
|
@ -274,9 +274,9 @@ export default {
|
||||||
"LunaSea Device ID": "LunaSea Device ID",
|
"LunaSea Device ID": "LunaSea Device ID",
|
||||||
"Apprise URL": "Apprise URL",
|
"Apprise URL": "Apprise URL",
|
||||||
"Example:": "Contoh: {0}",
|
"Example:": "Contoh: {0}",
|
||||||
"Read more:": "Baca lebih lajut: {0}",
|
"Read more:": "Baca lebih lanjut: {0}",
|
||||||
"Status:": "Status: {0}",
|
"Status:": "Status: {0}",
|
||||||
"Read more": "Baca lebih lajut",
|
"Read more": "Baca lebih lanjut",
|
||||||
appriseInstalled: "Apprise diinstall.",
|
appriseInstalled: "Apprise diinstall.",
|
||||||
appriseNotInstalled: "Apprise tidak diinstall. {0}",
|
appriseNotInstalled: "Apprise tidak diinstall. {0}",
|
||||||
"Access Token": "Token Akses",
|
"Access Token": "Token Akses",
|
||||||
|
@ -310,7 +310,7 @@ export default {
|
||||||
BodyInvalidFormat: "Request Body memiliki format JSON yang tidak sesuai: ",
|
BodyInvalidFormat: "Request Body memiliki format JSON yang tidak sesuai: ",
|
||||||
"Monitor History": "Riyawat Monitor",
|
"Monitor History": "Riyawat Monitor",
|
||||||
clearDataOlderThan: "Simpan data riwayat monitoring selama {0} hari.",
|
clearDataOlderThan: "Simpan data riwayat monitoring selama {0} hari.",
|
||||||
PasswordsDoNotMatch: "Passwords tidak sama.",
|
PasswordsDoNotMatch: "Password tidak sama.",
|
||||||
records: "catatan",
|
records: "catatan",
|
||||||
"One record": "Satu catatan",
|
"One record": "Satu catatan",
|
||||||
steamApiKeyDescription: "Untuk monitoring Steam Game Server Anda membutuhkan kunci Steam Web-API. Anda dapat mendaftarkan Kunci API Anda melalui: ",
|
steamApiKeyDescription: "Untuk monitoring Steam Game Server Anda membutuhkan kunci Steam Web-API. Anda dapat mendaftarkan Kunci API Anda melalui: ",
|
||||||
|
@ -322,7 +322,7 @@ export default {
|
||||||
recent: "Baru saja",
|
recent: "Baru saja",
|
||||||
Done: "Selesai",
|
Done: "Selesai",
|
||||||
Info: "Info",
|
Info: "Info",
|
||||||
Security: "Keamaan",
|
Security: "Keamanan",
|
||||||
"Steam API Key": "Steam API Key",
|
"Steam API Key": "Steam API Key",
|
||||||
"Shrink Database": "Shrink Database",
|
"Shrink Database": "Shrink Database",
|
||||||
"Pick a RR-Type...": "Pilih RR-Type...",
|
"Pick a RR-Type...": "Pilih RR-Type...",
|
||||||
|
@ -393,7 +393,7 @@ export default {
|
||||||
alertaAlertState: "Status Siaga",
|
alertaAlertState: "Status Siaga",
|
||||||
alertaRecoverState: "Status Pemulihan",
|
alertaRecoverState: "Status Pemulihan",
|
||||||
deleteStatusPageMsg: "Apakah Anda yakin untuk menghapus halaman status berikut?",
|
deleteStatusPageMsg: "Apakah Anda yakin untuk menghapus halaman status berikut?",
|
||||||
Proxies: "Proxies",
|
Proxies: "Proxy",
|
||||||
default: "Bawaan",
|
default: "Bawaan",
|
||||||
enabled: "Diaktifkan",
|
enabled: "Diaktifkan",
|
||||||
setAsDefault: "Tetapkan sebagai bawaan",
|
setAsDefault: "Tetapkan sebagai bawaan",
|
||||||
|
@ -403,7 +403,7 @@ export default {
|
||||||
setAsDefaultProxyDescription: "Proxy berikut akan diaktifkan sebagai bawaan untuk monitor baru. Anda masih dapat menonaktifkan proxy secara terpisah untuk setiap monitor.",
|
setAsDefaultProxyDescription: "Proxy berikut akan diaktifkan sebagai bawaan untuk monitor baru. Anda masih dapat menonaktifkan proxy secara terpisah untuk setiap monitor.",
|
||||||
"Certificate Chain": "Certificate Chain",
|
"Certificate Chain": "Certificate Chain",
|
||||||
Valid: "Sahih",
|
Valid: "Sahih",
|
||||||
Invalid: "Tidak Sahih",
|
Invalid: "Tidak Valid",
|
||||||
AccessKeyId: "AccessKey ID",
|
AccessKeyId: "AccessKey ID",
|
||||||
SecretAccessKey: "AccessKey Secret",
|
SecretAccessKey: "AccessKey Secret",
|
||||||
PhoneNumbers: "Nomor Telepon",
|
PhoneNumbers: "Nomor Telepon",
|
||||||
|
@ -433,7 +433,7 @@ export default {
|
||||||
Installed: "Terpasang",
|
Installed: "Terpasang",
|
||||||
"Not installed": "Tidak terpasang",
|
"Not installed": "Tidak terpasang",
|
||||||
Running: "Berlari",
|
Running: "Berlari",
|
||||||
"Not running": "Tidak berlari",
|
"Not running": "Tidak berjalan",
|
||||||
"Remove Token": "Hapus Token",
|
"Remove Token": "Hapus Token",
|
||||||
Start: "Mulai",
|
Start: "Mulai",
|
||||||
Stop: "Berhenti",
|
Stop: "Berhenti",
|
||||||
|
@ -444,7 +444,7 @@ export default {
|
||||||
startOrEndWithOnly: "Mulai atau akhiri hanya dengan {0}",
|
startOrEndWithOnly: "Mulai atau akhiri hanya dengan {0}",
|
||||||
"No consecutive dashes": "Tanda hubung tidak berurutan",
|
"No consecutive dashes": "Tanda hubung tidak berurutan",
|
||||||
Next: "Selanjutnya",
|
Next: "Selanjutnya",
|
||||||
"The slug is already taken. Please choose another slug.": "Slug is telah digunakan. Silakan pilih slug lain.",
|
"The slug is already taken. Please choose another slug.": "Slug telah digunakan. Silakan pilih slug lain.",
|
||||||
"No Proxy": "TIdak ada Proxy",
|
"No Proxy": "TIdak ada Proxy",
|
||||||
Authentication: "Autentikasi",
|
Authentication: "Autentikasi",
|
||||||
"HTTP Basic Auth": "HTTP Basic Auth",
|
"HTTP Basic Auth": "HTTP Basic Auth",
|
||||||
|
|
|
@ -224,7 +224,7 @@ export default {
|
||||||
teams: "Microsoft Teams",
|
teams: "Microsoft Teams",
|
||||||
"Webhook URL": "Webhook URL",
|
"Webhook URL": "Webhook URL",
|
||||||
wayToGetTeamsURL: "Bir webhook URL'sinin nasıl oluşturulacağını öğrenebilirsiniz {0}.",
|
wayToGetTeamsURL: "Bir webhook URL'sinin nasıl oluşturulacağını öğrenebilirsiniz {0}.",
|
||||||
signal: "Signal",
|
signal: "Sinyal",
|
||||||
Number: "Numara",
|
Number: "Numara",
|
||||||
Recipients: "Alıcılar",
|
Recipients: "Alıcılar",
|
||||||
needSignalAPI: "REST API ile bir signal istemciniz olması gerekiyor.",
|
needSignalAPI: "REST API ile bir signal istemciniz olması gerekiyor.",
|
||||||
|
@ -552,14 +552,14 @@ export default {
|
||||||
deleteDockerHostMsg: "Bu docker ana bilgisayarını tüm monitörler için silmek istediğinizden emin misiniz?",
|
deleteDockerHostMsg: "Bu docker ana bilgisayarını tüm monitörler için silmek istediğinizden emin misiniz?",
|
||||||
socket: "Soket",
|
socket: "Soket",
|
||||||
tcp: "TCP / HTTP",
|
tcp: "TCP / HTTP",
|
||||||
"Docker Container": "Docker Konteyneri",
|
"Docker Container": "Docker Konteyner",
|
||||||
"Container Name / ID": "Konteyner Adı / Kimliği",
|
"Container Name / ID": "Konteyner Adı / Kimliği",
|
||||||
"Docker Host": "Docker Ana Bilgisayarı",
|
"Docker Host": "Docker Ana Bilgisayarı",
|
||||||
"Docker Hosts": "Docker Ana Bilgisayarları",
|
"Docker Hosts": "Docker Ana Bilgisayarları",
|
||||||
"ntfy Topic": "ntfy Konu",
|
"ntfy Topic": "ntfy Konu",
|
||||||
Domain: "Domain",
|
Domain: "Domain",
|
||||||
Workstation: "İş İstasyonu",
|
Workstation: "İş İstasyonu",
|
||||||
disableCloudflaredNoAuthMsg: "Yetki Yok modundasınız, şifre gerekli değil.",
|
disableCloudflaredNoAuthMsg: "Yetki yok modundasınız, şifre gerekli değil.",
|
||||||
trustProxyDescription: "'X-Forwarded-*' başlıklarına güvenin. Doğru istemci IP'sini almak istiyorsanız ve Uptime Kuma'nız Nginx veya Apache'nin arkasındaysa, bunu etkinleştirmelisiniz.",
|
trustProxyDescription: "'X-Forwarded-*' başlıklarına güvenin. Doğru istemci IP'sini almak istiyorsanız ve Uptime Kuma'nız Nginx veya Apache'nin arkasındaysa, bunu etkinleştirmelisiniz.",
|
||||||
wayToGetLineNotifyToken: "{0} adresinden bir erişim jetonu alabilirsiniz.",
|
wayToGetLineNotifyToken: "{0} adresinden bir erişim jetonu alabilirsiniz.",
|
||||||
Examples: "Örnekler",
|
Examples: "Örnekler",
|
||||||
|
|
Loading…
Reference in a new issue