Browse Source
# Conflicts: # README.md # dockerfile # package-lock.json # package.json # server/server.js # src/assets/app.scss # src/assets/vars.scss # src/pages/EditMonitor.vue # src/pages/Settings.vueremotes/philippdormann/main
59 changed files with 5688 additions and 1908 deletions
@ -1,146 +0,0 @@ |
|||
# Project Info |
|||
|
|||
First of all, thank you everyone who made pull requests for Uptime Kuma, I never thought GitHub Community can be that nice! And also because of this, I also never thought other people actually read my code and edit my code. It is not structed and commented so well, lol. Sorry about that. |
|||
|
|||
The project was created with vite.js (vue3). Then I created a sub-directory called "server" for server part. Both frontend and backend share the same package.json. |
|||
|
|||
The frontend code build into "dist" directory. The server uses "dist" as root. This is how production is working. |
|||
|
|||
# Can I create a pull request for Uptime Kuma? |
|||
|
|||
Generally, if the pull request is working fine and it do not affect any existing logic, workflow and perfomance, I will merge to the master branch once it is tested. |
|||
|
|||
If you are not sure, feel free to create an empty pull request draft first. |
|||
|
|||
## Pull Request Examples |
|||
|
|||
### ✅ High - Medium Priority |
|||
|
|||
- Add a new notification |
|||
- Add a chart |
|||
- Fix a bug |
|||
|
|||
### *️⃣ Requires one more reviewer |
|||
|
|||
I do not have such knowledge to test it |
|||
|
|||
- Add k8s supports |
|||
|
|||
### *️⃣ Low Priority |
|||
|
|||
It chnaged my current workflow and require further studies. |
|||
|
|||
- Change my release approach |
|||
|
|||
### ❌ Won't Merge |
|||
|
|||
- Duplicated pull request |
|||
- Buggy |
|||
- Existing logic is completely modified or deleted |
|||
- A function that is completely out of scope |
|||
|
|||
# Project Styles |
|||
|
|||
I personally do not like something need to learn so much and need to config so much before you can finally start the app. |
|||
|
|||
For example, recently, because I am not a python expert, I spent a 2 hours to resolve all problems in order to install and use the Apprise cli. Apprise requires so many hidden requirements, I have to figure out myself how to solve the problems by Google search for my OS. That is painful. I do not want Uptime Kuma to be like this way, so: |
|||
|
|||
- Easy to install for non-Docker users, no native build dependency is needed (at least for x86_64), no extra config, no extra effort to get it run |
|||
- Single container for Docker users, no very complex docker-composer file. Just map the volume and expose the port, then good to go |
|||
- All settings in frontend. |
|||
- Easy to use |
|||
|
|||
# Coding Styles |
|||
|
|||
- Follow .editorconfig |
|||
- Follow eslint |
|||
|
|||
## Name convention |
|||
|
|||
- Javascript/Typescript: camelCaseType |
|||
- SQLite: underscore_type |
|||
- CSS/SCSS: dash-type |
|||
|
|||
# Tools |
|||
- Node.js >= 14 |
|||
- Git |
|||
- IDE that supports .editorconfig and eslint (I am using Intellji Idea) |
|||
- A SQLite tool (I am using SQLite Expert Personal) |
|||
|
|||
# Install dependencies |
|||
|
|||
```bash |
|||
npm install --dev |
|||
``` |
|||
|
|||
# Backend Dev |
|||
|
|||
```bash |
|||
npm run start-server |
|||
|
|||
# Or |
|||
|
|||
node server/server.js |
|||
``` |
|||
|
|||
It binds to 0.0.0.0:3001 by default. |
|||
|
|||
|
|||
## Backend Details |
|||
|
|||
It is mainly a socket.io app + express.js. |
|||
|
|||
express.js is just used for serving the frontend built files (index.html, .js and .css etc.) |
|||
|
|||
# Frontend Dev |
|||
|
|||
Start frontend dev server. Hot-reload enabled in this way. It binds to 0.0.0.0:3000. |
|||
|
|||
```bash |
|||
npm run dev |
|||
``` |
|||
|
|||
PS: You can ignore those scss warnings, those warnings are from Bootstrap that I cannot fix. |
|||
|
|||
You can use Vue Devtool Chrome extension for debugging. |
|||
|
|||
After the frontend server started. It cannot connect to the websocket server even you have started the server. You need to tell the frontend that is a dev env by running this in DevTool console and refresh: |
|||
|
|||
```javascript |
|||
localStorage.dev = "dev"; |
|||
``` |
|||
|
|||
So that the frontend will try to connect websocket server in 3001. |
|||
|
|||
Alternately, you can specific NODE_ENV to "development". |
|||
|
|||
|
|||
## Build the frontend |
|||
|
|||
```bash |
|||
npm run build |
|||
``` |
|||
|
|||
## Frontend Details |
|||
|
|||
Uptime Kuma Frontend is a single page application (SPA). Most paths are handled by Vue Router. |
|||
|
|||
The router in "src/main.js" |
|||
|
|||
As you can see, most data in frontend is stored in root level, even though you changed the current router to any other pages. |
|||
|
|||
The data and socket logic in "src/mixins/socket.js" |
|||
|
|||
# Database Migration |
|||
|
|||
1. create `patch{num}.sql` in `./db/` |
|||
1. update `latestVersion` in `./server/database.js` |
|||
|
|||
# Unit Test |
|||
|
|||
Yes, no unit test for now. I know it is very important, but at the same time my spare time is very limited. I want to implement my ideas first. I will go back to this in some points. |
|||
|
|||
|
|||
|
|||
|
|||
|
Binary file not shown.
@ -0,0 +1,10 @@ |
|||
-- You should not modify if this have pushed to Github, unless it does serious wrong with the db. |
|||
BEGIN TRANSACTION; |
|||
|
|||
ALTER TABLE monitor |
|||
ADD dns_resolve_type VARCHAR(5); |
|||
|
|||
ALTER TABLE monitor |
|||
ADD dns_resolve_server VARCHAR(255); |
|||
|
|||
COMMIT; |
@ -0,0 +1,7 @@ |
|||
-- You should not modify if this have pushed to Github, unless it does serious wrong with the db. |
|||
BEGIN TRANSACTION; |
|||
|
|||
ALTER TABLE monitor |
|||
ADD dns_last_result VARCHAR(255); |
|||
|
|||
COMMIT; |
@ -1,19 +1,31 @@ |
|||
let http = require("http"); |
|||
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; |
|||
|
|||
let client; |
|||
|
|||
if (process.env.SSL_KEY && process.env.SSL_CERT) { |
|||
client = require("https"); |
|||
} else { |
|||
client = require("http"); |
|||
} |
|||
|
|||
let options = { |
|||
host: "localhost", |
|||
port: "3001", |
|||
timeout: 2000, |
|||
host: process.env.HOST || "127.0.0.1", |
|||
port: parseInt(process.env.PORT) || 3001, |
|||
timeout: 120 * 1000, |
|||
}; |
|||
let request = http.request(options, (res) => { |
|||
console.log(`STATUS: ${res.statusCode}`); |
|||
if (res.statusCode == 200) { |
|||
|
|||
let request = client.request(options, (res) => { |
|||
console.log(`Health Check OK [Res Code: ${res.statusCode}]`); |
|||
if (res.statusCode === 200) { |
|||
process.exit(0); |
|||
} else { |
|||
process.exit(1); |
|||
} |
|||
}); |
|||
|
|||
request.on("error", function (err) { |
|||
console.log("ERROR"); |
|||
console.error("Health Check ERROR"); |
|||
process.exit(1); |
|||
}); |
|||
|
|||
request.end(); |
|||
|
@ -0,0 +1,144 @@ |
|||
/* |
|||
* Simple DNS Server |
|||
* For testing DNS monitoring type, dev only |
|||
*/ |
|||
const dns2 = require("dns2"); |
|||
|
|||
const { Packet } = dns2; |
|||
|
|||
const server = dns2.createServer({ |
|||
udp: true |
|||
}); |
|||
|
|||
server.on("request", (request, send, rinfo) => { |
|||
for (let question of request.questions) { |
|||
console.log(question.name, type(question.type), question.class); |
|||
|
|||
const response = Packet.createResponseFromRequest(request); |
|||
|
|||
if (question.name === "existing.com") { |
|||
|
|||
if (question.type === Packet.TYPE.A) { |
|||
response.answers.push({ |
|||
name: question.name, |
|||
type: question.type, |
|||
class: question.class, |
|||
ttl: 300, |
|||
address: "1.2.3.4" |
|||
}); |
|||
} if (question.type === Packet.TYPE.AAAA) { |
|||
response.answers.push({ |
|||
name: question.name, |
|||
type: question.type, |
|||
class: question.class, |
|||
ttl: 300, |
|||
address: "fe80::::1234:5678:abcd:ef00", |
|||
}); |
|||
} else if (question.type === Packet.TYPE.CNAME) { |
|||
response.answers.push({ |
|||
name: question.name, |
|||
type: question.type, |
|||
class: question.class, |
|||
ttl: 300, |
|||
domain: "cname1.existing.com", |
|||
}); |
|||
} else if (question.type === Packet.TYPE.MX) { |
|||
response.answers.push({ |
|||
name: question.name, |
|||
type: question.type, |
|||
class: question.class, |
|||
ttl: 300, |
|||
exchange: "mx1.existing.com", |
|||
priority: 5 |
|||
}); |
|||
} else if (question.type === Packet.TYPE.NS) { |
|||
response.answers.push({ |
|||
name: question.name, |
|||
type: question.type, |
|||
class: question.class, |
|||
ttl: 300, |
|||
ns: "ns1.existing.com", |
|||
}); |
|||
} else if (question.type === Packet.TYPE.SOA) { |
|||
response.answers.push({ |
|||
name: question.name, |
|||
type: question.type, |
|||
class: question.class, |
|||
ttl: 300, |
|||
primary: "existing.com", |
|||
admin: "admin@existing.com", |
|||
serial: 2021082701, |
|||
refresh: 300, |
|||
retry: 3, |
|||
expiration: 10, |
|||
minimum: 10, |
|||
}); |
|||
} else if (question.type === Packet.TYPE.SRV) { |
|||
response.answers.push({ |
|||
name: question.name, |
|||
type: question.type, |
|||
class: question.class, |
|||
ttl: 300, |
|||
priority: 5, |
|||
weight: 5, |
|||
port: 8080, |
|||
target: "srv1.existing.com", |
|||
}); |
|||
} else if (question.type === Packet.TYPE.TXT) { |
|||
response.answers.push({ |
|||
name: question.name, |
|||
type: question.type, |
|||
class: question.class, |
|||
ttl: 300, |
|||
data: "#v=spf1 include:_spf.existing.com ~all", |
|||
}); |
|||
} else if (question.type === Packet.TYPE.CAA) { |
|||
response.answers.push({ |
|||
name: question.name, |
|||
type: question.type, |
|||
class: question.class, |
|||
ttl: 300, |
|||
flags: 0, |
|||
tag: "issue", |
|||
value: "ca.existing.com", |
|||
}); |
|||
} |
|||
|
|||
} |
|||
|
|||
if (question.name === "4.3.2.1.in-addr.arpa") { |
|||
if (question.type === Packet.TYPE.PTR) { |
|||
response.answers.push({ |
|||
name: question.name, |
|||
type: question.type, |
|||
class: question.class, |
|||
ttl: 300, |
|||
domain: "ptr1.existing.com", |
|||
}); |
|||
} |
|||
} |
|||
|
|||
send(response); |
|||
} |
|||
}); |
|||
|
|||
server.on("listening", () => { |
|||
console.log("Listening"); |
|||
console.log(server.addresses()); |
|||
}); |
|||
|
|||
server.on("close", () => { |
|||
console.log("server closed"); |
|||
}); |
|||
|
|||
server.listen({ |
|||
udp: 5300 |
|||
}); |
|||
|
|||
function type(code) { |
|||
for (let name in Packet.TYPE) { |
|||
if (Packet.TYPE[name] === code) { |
|||
return name; |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,3 @@ |
|||
package-lock.json |
|||
test.js |
|||
languages/ |
@ -0,0 +1,78 @@ |
|||
// Need to use es6 to read language files
|
|||
|
|||
import fs from "fs"; |
|||
import path from "path"; |
|||
import util from "util"; |
|||
|
|||
// https://stackoverflow.com/questions/13786160/copy-folder-recursively-in-node-js
|
|||
/** |
|||
* Look ma, it's cp -R. |
|||
* @param {string} src The path to the thing to copy. |
|||
* @param {string} dest The path to the new copy. |
|||
*/ |
|||
const copyRecursiveSync = function (src, dest) { |
|||
let exists = fs.existsSync(src); |
|||
let stats = exists && fs.statSync(src); |
|||
let isDirectory = exists && stats.isDirectory(); |
|||
if (isDirectory) { |
|||
fs.mkdirSync(dest); |
|||
fs.readdirSync(src).forEach(function (childItemName) { |
|||
copyRecursiveSync(path.join(src, childItemName), |
|||
path.join(dest, childItemName)); |
|||
}); |
|||
} else { |
|||
fs.copyFileSync(src, dest); |
|||
} |
|||
}; |
|||
console.log(process.argv) |
|||
const baseLangCode = process.argv[2] || "zh-HK"; |
|||
console.log("Base Lang: " + baseLangCode); |
|||
fs.rmdirSync("./languages", { recursive: true }); |
|||
copyRecursiveSync("../../src/languages", "./languages"); |
|||
|
|||
const en = (await import("./languages/en.js")).default; |
|||
const baseLang = (await import(`./languages/${baseLangCode}.js`)).default; |
|||
const files = fs.readdirSync("./languages"); |
|||
console.log(files); |
|||
for (const file of files) { |
|||
if (file.endsWith(".js")) { |
|||
console.log("Processing " + file); |
|||
const lang = await import("./languages/" + file); |
|||
|
|||
let obj; |
|||
|
|||
if (lang.default) { |
|||
console.log("is js module"); |
|||
obj = lang.default; |
|||
} else { |
|||
console.log("empty file"); |
|||
obj = { |
|||
languageName: "<Your Language name in your language (not in English)>" |
|||
}; |
|||
} |
|||
|
|||
// En first
|
|||
for (const key in en) { |
|||
if (! obj[key]) { |
|||
obj[key] = en[key]; |
|||
} |
|||
} |
|||
|
|||
// Base second
|
|||
for (const key in baseLang) { |
|||
if (! obj[key]) { |
|||
obj[key] = key; |
|||
} |
|||
} |
|||
|
|||
const code = "export default " + util.inspect(obj, { |
|||
depth: null, |
|||
}); |
|||
|
|||
fs.writeFileSync(`../../src/languages/${file}`, code); |
|||
|
|||
} |
|||
} |
|||
|
|||
fs.rmdirSync("./languages", { recursive: true }); |
|||
console.log("Done, fix the format by eslint now"); |
@ -0,0 +1,12 @@ |
|||
{ |
|||
"name": "update-language-files", |
|||
"type": "module", |
|||
"version": "1.0.0", |
|||
"description": "", |
|||
"main": "index.js", |
|||
"scripts": { |
|||
"test": "echo \"Error: no test specified\" && exit 1" |
|||
}, |
|||
"author": "", |
|||
"license": "ISC" |
|||
} |
@ -0,0 +1,91 @@ |
|||
/* |
|||
* For Client Socket |
|||
*/ |
|||
const { TimeLogger } = require("../src/util"); |
|||
const { R } = require("redbean-node"); |
|||
const { io } = require("./server"); |
|||
|
|||
async function sendNotificationList(socket) { |
|||
const timeLogger = new TimeLogger(); |
|||
|
|||
let result = []; |
|||
let list = await R.find("notification", " user_id = ? ", [ |
|||
socket.userID, |
|||
]); |
|||
|
|||
for (let bean of list) { |
|||
result.push(bean.export()) |
|||
} |
|||
|
|||
io.to(socket.userID).emit("notificationList", result) |
|||
|
|||
timeLogger.print("Send Notification List"); |
|||
|
|||
return list; |
|||
} |
|||
|
|||
/** |
|||
* Send Heartbeat History list to socket |
|||
* @param toUser True = send to all browsers with the same user id, False = send to the current browser only |
|||
* @param overwrite Overwrite client-side's heartbeat list |
|||
*/ |
|||
async function sendHeartbeatList(socket, monitorID, toUser = false, overwrite = false) { |
|||
const timeLogger = new TimeLogger(); |
|||
|
|||
let list = await R.find("heartbeat", ` |
|||
monitor_id = ? |
|||
ORDER BY time DESC |
|||
LIMIT 100 |
|||
`, [
|
|||
monitorID, |
|||
]) |
|||
|
|||
let result = []; |
|||
|
|||
for (let bean of list) { |
|||
result.unshift(bean.toJSON()); |
|||
} |
|||
|
|||
if (toUser) { |
|||
io.to(socket.userID).emit("heartbeatList", monitorID, result, overwrite); |
|||
} else { |
|||
socket.emit("heartbeatList", monitorID, result, overwrite); |
|||
} |
|||
|
|||
timeLogger.print(`[Monitor: ${monitorID}] sendHeartbeatList`); |
|||
} |
|||
|
|||
/** |
|||
* Important Heart beat list (aka event list) |
|||
* @param socket |
|||
* @param monitorID |
|||
* @param toUser True = send to all browsers with the same user id, False = send to the current browser only |
|||
* @param overwrite Overwrite client-side's heartbeat list |
|||
*/ |
|||
async function sendImportantHeartbeatList(socket, monitorID, toUser = false, overwrite = false) { |
|||
const timeLogger = new TimeLogger(); |
|||
|
|||
let list = await R.find("heartbeat", ` |
|||
monitor_id = ? |
|||
AND important = 1 |
|||
ORDER BY time DESC |
|||
LIMIT 500 |
|||
`, [
|
|||
monitorID, |
|||
]) |
|||
|
|||
timeLogger.print(`[Monitor: ${monitorID}] sendImportantHeartbeatList`); |
|||
|
|||
if (toUser) { |
|||
io.to(socket.userID).emit("importantHeartbeatList", monitorID, list, overwrite); |
|||
} else { |
|||
socket.emit("importantHeartbeatList", monitorID, list, overwrite); |
|||
} |
|||
|
|||
} |
|||
|
|||
module.exports = { |
|||
sendNotificationList, |
|||
sendImportantHeartbeatList, |
|||
sendHeartbeatList, |
|||
} |
@ -1,32 +1,20 @@ |
|||
$primary: #5cdd8b; |
|||
$danger: #dc3545; |
|||
$warning: #dca235; |
|||
$warning: #f8a306; |
|||
$link-color: #111; |
|||
$border-radius: .25rem; |
|||
$border-radius: 50rem; |
|||
|
|||
$highlight: #7ce8a4; |
|||
$highlight-white: #e7faec; |
|||
|
|||
:root { |
|||
color-scheme: light dark; |
|||
// |
|||
--page-background: #fafafa; |
|||
--background-secondary: #d0d3d5; |
|||
--background-4: #d0d3d5; |
|||
--background-ternary: #8e8e8e; |
|||
--background-sidebar-active: #e4e4e4; |
|||
--background-navbar: #FFF; |
|||
--main-font-color: #212529; |
|||
} |
|||
$dark-font-color: #b1b8c0; |
|||
$dark-font-color2: #020b05; |
|||
$dark-bg: #0d1117; |
|||
$dark-bg2: #070a10; |
|||
$dark-border-color: #1d2634; |
|||
|
|||
@media (prefers-color-scheme: dark) { |
|||
:root { |
|||
--page-background: #0a0a0a; |
|||
--background-secondary: #656565; |
|||
--background-4: #313131; |
|||
--background-ternary: #a7a7a7; |
|||
--background-sidebar-active: #777777; |
|||
--background-navbar: #333333; |
|||
--main-font-color: #e4e4e4; |
|||
} |
|||
} |
|||
$easing-in: cubic-bezier(0.54, 0.78, 0.55, 0.97); |
|||
$easing-out: cubic-bezier(0.25, 0.46, 0.45, 0.94); |
|||
$easing-in-out: cubic-bezier(0.79, 0.14, 0.15, 0.86); |
|||
|
|||
$dropdown-border-radius: 0.5rem; |
|||
|
@ -0,0 +1,102 @@ |
|||
<template> |
|||
<div class="input-group mb-3"> |
|||
<!-- |
|||
Hack - Disable Chrome save password |
|||
readonly + onfocus |
|||
https://stackoverflow.com/questions/41217019/how-to-prevent-a-browser-from-storing-passwords |
|||
--> |
|||
<input |
|||
v-model="model" |
|||
:type="visibility" |
|||
class="form-control" |
|||
:placeholder="placeholder" |
|||
:maxlength="maxlength" |
|||
:autocomplete="autocomplete" |
|||
:required="required" |
|||
:readonly="isReadOnly" |
|||
@focus="removeReadOnly" |
|||
> |
|||
|
|||
<a v-if="visibility == 'password'" class="btn btn-outline-primary" @click="showInput()"> |
|||
<font-awesome-icon icon="eye" /> |
|||
</a> |
|||
<a v-if="visibility == 'text'" class="btn btn-outline-primary" @click="hideInput()"> |
|||
<font-awesome-icon icon="eye-slash" /> |
|||
</a> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
props: { |
|||
modelValue: { |
|||
type: String, |
|||
default: "" |
|||
}, |
|||
placeholder: { |
|||
type: String, |
|||
default: "" |
|||
}, |
|||
maxlength: { |
|||
type: Number, |
|||
default: 255 |
|||
}, |
|||
autocomplete: { |
|||
type: Boolean, |
|||
}, |
|||
required: { |
|||
type: Boolean |
|||
}, |
|||
readonly: { |
|||
type: Boolean, |
|||
default: false, |
|||
}, |
|||
}, |
|||
data() { |
|||
return { |
|||
visibility: "password", |
|||
readOnlyValue: false, |
|||
} |
|||
}, |
|||
computed: { |
|||
model: { |
|||
get() { |
|||
return this.modelValue |
|||
}, |
|||
set(value) { |
|||
this.$emit("update:modelValue", value) |
|||
} |
|||
}, |
|||
isReadOnly() { |
|||
// Actually readonly from prop |
|||
if (this.readonly) { |
|||
return true; |
|||
} |
|||
|
|||
// Hack - Disable Chrome save password |
|||
return this.readOnlyValue; |
|||
} |
|||
}, |
|||
created() { |
|||
// Hack - Disable Chrome save password |
|||
if (this.autocomplete) { |
|||
this.readOnlyValue = "readonly"; |
|||
} |
|||
}, |
|||
methods: { |
|||
showInput() { |
|||
this.visibility = "text"; |
|||
}, |
|||
hideInput() { |
|||
this.visibility = "password"; |
|||
}, |
|||
|
|||
// Hack - Disable Chrome save password |
|||
removeReadOnly() { |
|||
if (this.autocomplete) { |
|||
this.readOnlyValue = false; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</script> |
@ -1,10 +1,10 @@ |
|||
import { library } from "@fortawesome/fontawesome-svg-core" |
|||
import { faCog, faEdit, faPlus, faPause, faPlay, faTachometerAlt, faTrash, faList, faArrowAltCircleUp } from "@fortawesome/free-solid-svg-icons" |
|||
import { faCog, faEdit, faPlus, faPause, faPlay, faTachometerAlt, faTrash, faList, faArrowAltCircleUp, faEye, faEyeSlash } from "@fortawesome/free-solid-svg-icons" |
|||
//import { fa } from '@fortawesome/free-regular-svg-icons'
|
|||
import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome" |
|||
|
|||
// Add Free Font Awesome Icons here
|
|||
// https://fontawesome.com/v5.15/icons?d=gallery&p=2&s=solid&m=free
|
|||
library.add(faCog, faEdit, faPlus, faPause, faPlay, faTachometerAlt, faTrash, faList, faArrowAltCircleUp); |
|||
library.add(faCog, faEdit, faPlus, faPause, faPlay, faTachometerAlt, faTrash, faList, faArrowAltCircleUp, faEye, faEyeSlash); |
|||
|
|||
export { FontAwesomeIcon } |
|||
|
@ -0,0 +1,18 @@ |
|||
# How to translate |
|||
|
|||
1. Fork this repo. |
|||
2. Create a language file. (e.g. `zh-TW.js`) The filename must be ISO language code: http://www.lingoes.net/en/translator/langcode.htm |
|||
3. `npm run update-language-files --base-lang=de-DE` |
|||
6. Your language file should be filled in. You can translate now. |
|||
7. Translate `src/pages/Settings.vue` (search for a `Confirm` component with `rel="confirmDisableAuth"`). |
|||
8. Import your language file in `src/main.js` and add it to `languageList` constant. |
|||
9. Make a [pull request](https://github.com/louislam/uptime-kuma/pulls) when you have done. |
|||
|
|||
|
|||
|
|||
One of good examples: |
|||
https://github.com/louislam/uptime-kuma/pull/316/files |
|||
|
|||
|
|||
If you do not have programming skills, let me know in [Issues section](https://github.com/louislam/uptime-kuma/issues). I will assist you. 😏 |
|||
|
@ -0,0 +1,119 @@ |
|||
export default { |
|||
languageName: "Danish", |
|||
Settings: "Indstillinger", |
|||
Dashboard: "Dashboard", |
|||
"New Update": "Opdatering tilgængelig", |
|||
Language: "Sprog", |
|||
Appearance: "Udseende", |
|||
Theme: "Tema", |
|||
General: "Generelt", |
|||
Version: "Version", |
|||
"Check Update On GitHub": "Tjek efter opdateringer på Github", |
|||
List: "Liste", |
|||
Add: "Tilføj", |
|||
"Add New Monitor": "Tilføj ny Overvåger", |
|||
"Quick Stats": "Oversigt", |
|||
Up: "Aktiv", |
|||
Down: "Inaktiv", |
|||
Pending: "Afventer", |
|||
Unknown: "Ukendt", |
|||
Pause: "Pause", |
|||
pauseDashboardHome: "Pauset", |
|||
Name: "Navn", |
|||
Status: "Status", |
|||
DateTime: "Dato / Tid", |
|||
Message: "Beskeder", |
|||
"No important events": "Inden vigtige begivenheder", |
|||
Resume: "Fortsæt", |
|||
Edit: "Rediger", |
|||
Delete: "Slet", |
|||
Current: "Aktuelt", |
|||
Uptime: "Oppetid", |
|||
"Cert Exp.": "Certifikatets udløb", |
|||
days: "Dage", |
|||
day: "Dag", |
|||
"-day": "-Dage", |
|||
hour: "Timer", |
|||
"-hour": "-Timer", |
|||
checkEverySecond: "Tjek hvert {0} sekund", |
|||
"Avg.": "Gennemsnit", |
|||
Response: " Respons", |
|||
Ping: "Ping", |
|||
"Monitor Type": "Overvåger Type", |
|||
Keyword: "Nøgleord", |
|||
"Friendly Name": "Visningsnavn", |
|||
URL: "URL", |
|||
Hostname: "Hostname", |
|||
Port: "Port", |
|||
"Heartbeat Interval": "Taktinterval", |
|||
Retries: "Gentagelser", |
|||
retriesDescription: "Maksimalt antal gentagelser, før tjenesten markeres som inaktiv og sender en meddelelse.", |
|||
Advanced: "Avanceret", |
|||
ignoreTLSError: "Ignorere TLS/SSL web fejl", |
|||
"Upside Down Mode": "Omvendt tilstand", |
|||
upsideDownModeDescription: "Håndter tilstanden omvendt. Hvis tjenesten er tilgængelig, vises den som inaktiv.", |
|||
"Max. Redirects": "Maks. Omdirigeringer", |
|||
maxRedirectDescription: "Maksimalt antal omdirigeringer, der skal følges. Indstil til 0 for at deaktivere omdirigeringer.", |
|||
"Accepted Status Codes": "Tilladte HTTP-Statuskoder", |
|||
acceptedStatusCodesDescription: "Vælg de statuskoder, der stadig skal vurderes som vellykkede.", |
|||
Save: "Gem", |
|||
Notifications: "Underretninger", |
|||
"Not available, please setup.": "Ikke tilgængelige, opsæt venligst.", |
|||
"Setup Notification": "Opsæt underretninger", |
|||
Light: "Lys", |
|||
Dark: "Mørk", |
|||
Auto: "Auto", |
|||
"Theme - Heartbeat Bar": "Tema - Tidslinje", |
|||
Normal: "Normal", |
|||
Bottom: "Bunden", |
|||
None: "Ingen", |
|||
Timezone: "Tidszone", |
|||
"Search Engine Visibility": "Søgemaskine synlighed", |
|||
"Allow indexing": "Tillad indeksering", |
|||
"Discourage search engines from indexing site": "Frabed søgemaskiner at indeksere webstedet", |
|||
"Change Password": "Ændre adgangskode", |
|||
"Current Password": "Nuværende adgangskode", |
|||
"New Password": "Ny adgangskode", |
|||
"Repeat New Password": "Gentag den nye adgangskode", |
|||
passwordNotMatchMsg: "Adgangskoderne er ikke ens.", |
|||
"Update Password": "Opdater adgangskode", |
|||
"Disable Auth": "Deaktiver autentificering", |
|||
"Enable Auth": "Aktiver autentificering", |
|||
Logout: "Log ud", |
|||
notificationDescription: "Tildel underretninger til Overvåger(e), så denne funktion træder i kraft.", |
|||
Leave: "Verlassen", |
|||
"I understand, please disable": "Jeg er indforstået, deaktiver venligst", |
|||
Confirm: "Bekræft", |
|||
Yes: "Ja", |
|||
No: "Nej", |
|||
Username: "Brugernavn", |
|||
Password: "Adgangskode", |
|||
"Remember me": "Husk mig", |
|||
Login: "Log ind", |
|||
"No Monitors, please": "Ingen Overvågere", |
|||
"add one": "tilføj en", |
|||
"Notification Type": "Underretningstype", |
|||
Email: "E-Mail", |
|||
Test: "Test", |
|||
"Certificate Info": "Certifikatoplysninger", |
|||
keywordDescription: "Søg efter et søgeord i almindelig HTML- eller JSON -output. Bemærk, at der skelnes mellem store og små bogstaver.", |
|||
deleteMonitorMsg: "Er du sikker på, at du vil slette overvågeren?", |
|||
deleteNotificationMsg: "Er du sikker på, at du vil slette denne underretning for alle overvågere? ", |
|||
resoverserverDescription: "Cloudflare er standardserveren, den kan til enhver tid ændres.", |
|||
"Resolver Server": "Navne-server", |
|||
rrtypeDescription: "Vælg den type RR, du vil overvåge.", |
|||
"Last Result": "Seneste resultat", |
|||
pauseMonitorMsg: "Er du sikker på, at du vil pause Overvågeren?", |
|||
"Create your admin account": "Opret din administratorkonto", |
|||
"Repeat Password": "Gentag adgangskoden", |
|||
"Resource Record Type": "Resource Record Type", |
|||
respTime: "Resp. Time (ms)", |
|||
notAvailableShort: "N/A", |
|||
Create: "Create", |
|||
clearEventsMsg: "Are you sure want to delete all events for this monitor?", |
|||
clearHeartbeatsMsg: "Are you sure want to delete all heartbeats for this monitor?", |
|||
confirmClearStatisticsMsg: "Are you sure want to delete ALL statistics?", |
|||
"Clear Data": "Clear Data", |
|||
Events: "Events", |
|||
Heartbeats: "Heartbeats" |
|||
} |
@ -0,0 +1,119 @@ |
|||
export default { |
|||
languageName: "German", |
|||
Settings: "Einstellungen", |
|||
Dashboard: "Dashboard", |
|||
"New Update": "Update Verfügbar", |
|||
Language: "Sprache", |
|||
Appearance: "Erscheinung", |
|||
Theme: "Thema", |
|||
General: "Allgemein", |
|||
Version: "Version", |
|||
"Check Update On GitHub": "Überprüfen von Updates auf Github", |
|||
List: "Liste", |
|||
Add: "Hinzufügen", |
|||
"Add New Monitor": "Neuer Monitor", |
|||
"Quick Stats": "Übersicht", |
|||
Up: "Aktiv", |
|||
Down: "Inaktiv", |
|||
Pending: "Ausstehend", |
|||
Unknown: "Unbekannt", |
|||
Pause: "Pausieren", |
|||
pauseDashboardHome: "Pausiert", |
|||
Name: "Name", |
|||
Status: "Status", |
|||
DateTime: "Datum / Uhrzeit", |
|||
Message: "Nachricht", |
|||
"No important events": "Keine wichtigen Ereignisse", |
|||
Resume: "Fortsetzen", |
|||
Edit: "Bearbeiten", |
|||
Delete: "Löschen", |
|||
Current: "Aktuell", |
|||
Uptime: "Verfügbarkeit", |
|||
"Cert Exp.": "Zertifikatsablauf", |
|||
days: "Tage", |
|||
day: "Tag", |
|||
"-day": "-Tage", |
|||
hour: "Stunde", |
|||
"-hour": "-Stunden", |
|||
checkEverySecond: "Überprüfe alle {0} Sekunden", |
|||
"Avg.": "Durchschn. ", |
|||
Response: " Antwortzeit", |
|||
Ping: "Ping", |
|||
"Monitor Type": "Monitor Typ", |
|||
Keyword: "Schlüsselwort", |
|||
"Friendly Name": "Anzeigename", |
|||
URL: "URL", |
|||
Hostname: "Hostname", |
|||
Port: "Port", |
|||
"Heartbeat Interval": "Taktintervall", |
|||
Retries: "Wiederholungen", |
|||
retriesDescription: "Maximale Anzahl von Wiederholungen, bevor der Dienst als inaktiv markiert und eine Benachrichtigung gesendet wird.", |
|||
Advanced: "Erweitert", |
|||
ignoreTLSError: "Ignoriere TLS/SSL Fehler von Webseiten", |
|||
"Upside Down Mode": "Umgedrehter Modus", |
|||
upsideDownModeDescription: "Drehe den Modus um, ist der Dienst erreichbar, wird er als Inaktiv angezeigt.", |
|||
"Max. Redirects": "Max. Weiterleitungen", |
|||
maxRedirectDescription: "Maximale Anzahl von Weiterleitungen, denen gefolgt werden soll. Setzte auf 0, um Weiterleitungen zu deaktivieren.", |
|||
"Accepted Status Codes": "Erlaubte HTTP-Statuscodes", |
|||
acceptedStatusCodesDescription: "Wähle die Statuscodes aus, welche trotzdem als erfolgreich gewertet werden sollen.", |
|||
Save: "Speichern", |
|||
Notifications: "Benachrichtigungen", |
|||
"Not available, please setup.": "Keine verfügbar, bitte einrichten.", |
|||
"Setup Notification": "Benachrichtigung einrichten", |
|||
Light: "Hell", |
|||
Dark: "Dunkel", |
|||
Auto: "Auto", |
|||
"Theme - Heartbeat Bar": "Thema - Taktleiste", |
|||
Normal: "Normal", |
|||
Bottom: "Unten", |
|||
None: "Keine", |
|||
Timezone: "Zeitzone", |
|||
"Search Engine Visibility": "Suchmaschinensichtbarkeit", |
|||
"Allow indexing": "Indizierung zulassen", |
|||
"Discourage search engines from indexing site": "Halte Suchmaschinen von der Indexierung der Seite ab", |
|||
"Change Password": "Passwort ändern", |
|||
"Current Password": "Dezeitiges Passwort", |
|||
"New Password": "Neues Passwort", |
|||
"Repeat New Password": "Wiederhole neues Passwort", |
|||
passwordNotMatchMsg: "Passwörter stimmen nicht überein. ", |
|||
"Update Password": "Ändere Passwort", |
|||
"Disable Auth": "Authentifizierung deaktivieren", |
|||
"Enable Auth": "Authentifizierung aktivieren", |
|||
Logout: "Ausloggen", |
|||
notificationDescription: "Weise den Monitor(en) eine Benachrichtigung zu, damit diese Funktion greift.", |
|||
Leave: "Verlassen", |
|||
"I understand, please disable": "Ich verstehe, bitte deaktivieren", |
|||
Confirm: "Bestätige", |
|||
Yes: "Ja", |
|||
No: "Nein", |
|||
Username: "Benutzername", |
|||
Password: "Passwort", |
|||
"Remember me": "Passwort merken", |
|||
Login: "Einloggen", |
|||
"No Monitors, please": "Keine Monitore, bitte", |
|||
"add one": "hinzufügen", |
|||
"Notification Type": "Benachrichtigungs Dienst", |
|||
Email: "E-Mail", |
|||
Test: "Test", |
|||
"Certificate Info": "Zertifikatsinfo", |
|||
keywordDescription: "Suche nach einem Schlüsselwort in der HTML oder JSON Ausgabe. Bitte beachte, es wird in der Groß-/Kleinschreibung unterschieden.", |
|||
deleteMonitorMsg: "Bist du sicher das du den Monitor löschen möchtest?", |
|||
deleteNotificationMsg: "Möchtest du diese Benachrichtigung wirklich für alle Monitore löschen?", |
|||
resoverserverDescription: "Cloudflare ist als der Standardserver festgelegt, dieser kann jederzeit geändern werden.", |
|||
"Resolver Server": "Auflösungsserver", |
|||
rrtypeDescription: "Wähle den RR-Typ aus, welchen du überwachen möchtest.", |
|||
"Last Result": "Letztes Ergebnis", |
|||
pauseMonitorMsg: "Bist du sicher das du den Monitor pausieren möchtest?", |
|||
clearEventsMsg: "Bist du sicher das du alle Ereignisse für diesen Monitor löschen möchtest?", |
|||
clearHeartbeatsMsg: "Bist du sicher das du alle Statistiken für diesen Monitor löschen möchtest?", |
|||
"Clear Data": "Lösche Daten", |
|||
Events: "Ereignisse", |
|||
Heartbeats: "Statistiken", |
|||
confirmClearStatisticsMsg: "Bist du sicher das du ALLE Statistiken löschen möchtest?", |
|||
"Create your admin account": "Erstelle dein Admin Konto", |
|||
"Repeat Password": "Wiederhole das Passwort", |
|||
"Resource Record Type": "Resource Record Type", |
|||
respTime: "Antw. Zeit (ms)", |
|||
notAvailableShort: "N/A", |
|||
Create: "Erstellen", |
|||
} |
@ -0,0 +1,119 @@ |
|||
export default { |
|||
languageName: "Español", |
|||
checkEverySecond: "Comprobar cada {0} segundos.", |
|||
"Avg.": "Media. ", |
|||
retriesDescription: "Número máximo de intentos antes de que el servicio se marque como CAÍDO y una notificación sea enviada.", |
|||
ignoreTLSError: "Ignorar error TLS/SSL para sitios web HTTPS", |
|||
upsideDownModeDescription: "Invertir el estado. Si el servicio es alcanzable, está CAÍDO.", |
|||
maxRedirectDescription: "Número máximo de direcciones a seguir. Establecer a 0 para deshabilitar.", |
|||
acceptedStatusCodesDescription: "Seleccionar los códigos de estado que se consideran como respuesta exitosa.", |
|||
passwordNotMatchMsg: "La contraseña repetida no coincide.", |
|||
notificationDescription: "Por favor asigne una notificación a el/los monitor(es) para hacerlos funcional(es).", |
|||
keywordDescription: "Palabra clave en HTML plano o respuesta JSON y es sensible a mayúsculas", |
|||
pauseDashboardHome: "Pausar", |
|||
deleteMonitorMsg: "¿Seguro que quieres eliminar este monitor?", |
|||
deleteNotificationMsg: "¿Seguro que quieres eliminar esta notificación para todos los monitores?", |
|||
resoverserverDescription: "Cloudflare es el servidor por defecto, puedes cambiar el servidor de resolución en cualquier momento.", |
|||
rrtypeDescription: "Selecciona el tipo de registro que quieres monitorizar", |
|||
pauseMonitorMsg: "¿Seguro que quieres pausar?", |
|||
Settings: "Ajustes", |
|||
Dashboard: "Panel", |
|||
"New Update": "Vueva actualización", |
|||
Language: "Idioma", |
|||
Appearance: "Apariencia", |
|||
Theme: "Tema", |
|||
General: "General", |
|||
Version: "Versión", |
|||
"Check Update On GitHub": "Comprobar actualizaciones en GitHub", |
|||
List: "Lista", |
|||
Add: "Añadir", |
|||
"Add New Monitor": "Añadir nuevo monitor", |
|||
"Quick Stats": "Estadísticas rápidas", |
|||
Up: "Funcional", |
|||
Down: "Caído", |
|||
Pending: "Pendiente", |
|||
Unknown: "Desconociso", |
|||
Pause: "Pausa", |
|||
Name: "Nombre", |
|||
Status: "Estado", |
|||
DateTime: "Fecha y Hora", |
|||
Message: "Mensaje", |
|||
"No important events": "No hay eventos importantes", |
|||
Resume: "Reanudar", |
|||
Edit: "Editar", |
|||
Delete: "Eliminar", |
|||
Current: "Actual", |
|||
Uptime: "Tiempo activo", |
|||
"Cert Exp.": "Caducidad cert.", |
|||
days: "días", |
|||
day: "día", |
|||
"-day": "-día", |
|||
hour: "hora", |
|||
"-hour": "-hora", |
|||
Response: "Respuesta", |
|||
Ping: "Ping", |
|||
"Monitor Type": "Tipo de Monitor", |
|||
Keyword: "Palabra clave", |
|||
"Friendly Name": "Nombre sencillo", |
|||
URL: "URL", |
|||
Hostname: "Nombre del host", |
|||
Port: "Puerto", |
|||
"Heartbeat Interval": "Intervalo de latido", |
|||
Retries: "Reintentos", |
|||
Advanced: "Avanzado", |
|||
"Upside Down Mode": "Modo invertido", |
|||
"Max. Redirects": "Máx. redirecciones", |
|||
"Accepted Status Codes": "Códigos de estado aceptados", |
|||
Save: "Guardar", |
|||
Notifications: "Notificaciones", |
|||
"Not available, please setup.": "No disponible, por favor configurar.", |
|||
"Setup Notification": "Configurar notificación", |
|||
Light: "Claro", |
|||
Dark: "Oscuro", |
|||
Auto: "Auto", |
|||
"Theme - Heartbeat Bar": "Tema - Barra de intervalo de latido", |
|||
Normal: "Normal", |
|||
Bottom: "Abajo", |
|||
None: "Ninguno", |
|||
Timezone: "Zona horaria", |
|||
"Search Engine Visibility": "Visibilidad motor de búsqueda", |
|||
"Allow indexing": "Permitir indexación", |
|||
"Discourage search engines from indexing site": "Disuadir a los motores de búsqueda de indexar el sitio", |
|||
"Change Password": "Cambiar contraseña", |
|||
"Current Password": "Contraseña actual", |
|||
"New Password": "Nueva contraseña", |
|||
"Repeat New Password": "Repetir nueva contraseña", |
|||
"Update Password": "Actualizar contraseña", |
|||
"Disable Auth": "Deshabilitar Autenticación ", |
|||
"Enable Auth": "Habilitar Autenticación ", |
|||
Logout: "Cerrar sesión", |
|||
Leave: "Salir", |
|||
"I understand, please disable": "Lo comprendo, por favor deshabilitar", |
|||
Confirm: "Confirmar", |
|||
Yes: "Sí", |
|||
No: "No", |
|||
Username: "Usuario", |
|||
Password: "Contraseña", |
|||
"Remember me": "Recordarme", |
|||
Login: "Acceso", |
|||
"No Monitors, please": "Sin monitores, por favor", |
|||
"add one": "añade uno", |
|||
"Notification Type": "Tipo de notificación", |
|||
Email: "Email", |
|||
Test: "Test", |
|||
"Certificate Info": "Información del certificado ", |
|||
"Resolver Server": "Servidor de resolución", |
|||
"Resource Record Type": "Tipo de Registro", |
|||
"Last Result": "Último resultado", |
|||
"Create your admin account": "Crea tu cuenta de administrador", |
|||
"Repeat Password": "Repetir contraseña", |
|||
respTime: "Tiempo de resp. (ms)", |
|||
notAvailableShort: "N/A", |
|||
Create: "Create", |
|||
clearEventsMsg: "Are you sure want to delete all events for this monitor?", |
|||
clearHeartbeatsMsg: "Are you sure want to delete all heartbeats for this monitor?", |
|||
confirmClearStatisticsMsg: "Are you sure want to delete ALL statistics?", |
|||
"Clear Data": "Clear Data", |
|||
Events: "Events", |
|||
Heartbeats: "Heartbeats" |
|||
} |
@ -0,0 +1,119 @@ |
|||
export default { |
|||
languageName: "Français (France)", |
|||
Settings: "Paramètres", |
|||
Dashboard: "Tableau de bord", |
|||
"New Update": "Mise à jour disponible", |
|||
Language: "Langue", |
|||
Appearance: "Apparence", |
|||
Theme: "Thème", |
|||
General: "Général", |
|||
Version: "Version", |
|||
"Check Update On GitHub": "Consulter les mises à jour sur Github", |
|||
List: "Lister", |
|||
Add: "Ajouter", |
|||
"Add New Monitor": "Ajouter une nouvelle sonde", |
|||
"Quick Stats": "Résumé", |
|||
Up: "En ligne", |
|||
Down: "Hors ligne", |
|||
Pending: "En attente", |
|||
Unknown: "Inconnu", |
|||
Pause: "En Pause", |
|||
pauseDashboardHome: "Éléments mis en pause", |
|||
Name: "Nom", |
|||
Status: "État", |
|||
DateTime: "Heure", |
|||
Message: "Messages", |
|||
"No important events": "Pas d'évènements important", |
|||
Resume: "Reprendre", |
|||
Edit: "Modifier", |
|||
Delete: "Supprimer", |
|||
Current: "Actuellement", |
|||
Uptime: "Uptime", |
|||
"Cert Exp.": "Certificat expiré", |
|||
days: "Jours", |
|||
day: "Jour", |
|||
"-day": "Journée", |
|||
hour: "Heure", |
|||
"-hour": "Heures", |
|||
checkEverySecond: "Vérifier toutes les {0} secondes", |
|||
"Avg.": "Moyen", |
|||
Response: "Temps de réponse", |
|||
Ping: "Ping", |
|||
"Monitor Type": "Type de Sonde", |
|||
Keyword: "Mot-clé", |
|||
"Friendly Name": "Nom d'affichage", |
|||
URL: "URL", |
|||
Hostname: "Nom d'hôte", |
|||
Port: "Port", |
|||
"Heartbeat Interval": "Intervale de vérification", |
|||
Retries: "Essais", |
|||
retriesDescription: "Nombre d'essais avant que le service soit déclaré hors-ligne.", |
|||
Advanced: "Avancé", |
|||
ignoreTLSError: "Ignorer les erreurs liées au certificat SSL/TLS", |
|||
"Upside Down Mode": "Mode inversé", |
|||
upsideDownModeDescription: "Si le service est en ligne, il sera alors noté hors-ligne et vice-versa.", |
|||
"Max. Redirects": "Nombre maximum de redirections", |
|||
maxRedirectDescription: "Nombre maximal de redirections avant que le service soit noté hors-ligne.", |
|||
"Accepted Status Codes": "Codes HTTP", |
|||
acceptedStatusCodesDescription: "Codes HTTP considérés comme en ligne", |
|||
Save: "Sauvegarder", |
|||
Notifications: "Notifications", |
|||
"Not available, please setup.": "Pas de système de notification disponible, merci de le configurer", |
|||
"Setup Notification": "Créer une notification", |
|||
Light: "Clair", |
|||
Dark: "Sombre", |
|||
Auto: "Automatique", |
|||
"Theme - Heartbeat Bar": "Voir les services surveillés", |
|||
Normal: "Général", |
|||
Bottom: "En dessous", |
|||
None: "Rien", |
|||
Timezone: "Fuseau Horaire", |
|||
"Search Engine Visibility": "Visibilité par les moteurs de recherche", |
|||
"Allow indexing": "Autoriser l'indexation par des moteurs de recherche", |
|||
"Discourage search engines from indexing site": "Refuser l'indexation par des moteurs de recherche", |
|||
"Change Password": "Changer le mot de passe", |
|||
"Current Password": "Mot de passe actuel", |
|||
"New Password": "Nouveau mot de passe", |
|||
"Repeat New Password": "Répéter votre nouveau mot de passe", |
|||
passwordNotMatchMsg: "Les mots de passe ne correspondent pas", |
|||
"Update Password": "Mettre à jour le mot de passe", |
|||
"Disable Auth": "Désactiver l'authentification", |
|||
"Enable Auth": "Activer l'authentification", |
|||
Logout: "Se déconnecter", |
|||
notificationDescription: "Une fois ajoutée, vous devez l'activer manuellement dans les paramètres de vos hôtes.", |
|||
Leave: "Quitter", |
|||
"I understand, please disable": "J'ai compris, désactivez-le", |
|||
Confirm: "Confirmer", |
|||
Yes: "Oui", |
|||
No: "Non", |
|||
Username: "Nom d'utilisateur", |
|||
Password: "Mot de passe", |
|||
"Remember me": "Se souvenir de moi", |
|||
Login: "Se connecter", |
|||
"No Monitors, please": "Pas de sondes, veuillez ", |
|||
"add one": "en ajouter une.", |
|||
"Notification Type": "Type de notification", |
|||
Email: "Email", |
|||
Test: "Tester", |
|||
keywordDescription: "Le mot clé sera recherché dans la réponse HTML/JSON reçue du site internet.", |
|||
"Certificate Info": "Informations sur le certificat SSL", |
|||
deleteMonitorMsg: "Êtes-vous sûr de vouloir supprimer cette sonde ?", |
|||
deleteNotificationMsg: "Êtes-vous sûr de vouloir supprimer ce type de notifications ? Une fois désactivée, les services qui l'utilisent ne pourront plus envoyer de notifications.", |
|||
"Resolver Server": "Serveur DNS utilisé", |
|||
"Resource Record Type": "Type d'enregistrement DNS recherché", |
|||
resoverserverDescription: "Le DNS de cloudflare est utilisé par défaut, mais vous pouvez le changer si vous le souhaitez.", |
|||
rrtypeDescription: "Veuillez séléctionner un type d'enregistrement DNS", |
|||
pauseMonitorMsg: "Etes vous sur de vouloir mettre en pause cette sonde ?", |
|||
"Last Result": "Dernier résultat", |
|||
"Create your admin account": "Créez votre compte administrateur", |
|||
"Repeat Password": "Répéter le mot de passe", |
|||
respTime: "Temps de réponse (ms)", |
|||
notAvailableShort: "N/A", |
|||
Create: "Créer", |
|||
clearEventsMsg: "Are you sure want to delete all events for this monitor?", |
|||
clearHeartbeatsMsg: "Are you sure want to delete all heartbeats for this monitor?", |
|||
confirmClearStatisticsMsg: "Are you sure want to delete ALL statistics?", |
|||
"Clear Data": "Clear Data", |
|||
Events: "Events", |
|||
Heartbeats: "Heartbeats" |
|||
} |
@ -0,0 +1,119 @@ |
|||
export default { |
|||
languageName: "日本語", |
|||
checkEverySecond: "{0}秒ごとにチェックします。", |
|||
"Avg.": "平均 ", |
|||
retriesDescription: "サービスがダウンとしてマークされ、通知が送信されるまでの最大リトライ数", |
|||
ignoreTLSError: "HTTPS ウェブサイトの TLS/SSL エラーを無視する", |
|||
upsideDownModeDescription: "ステータスの扱いを逆にします。サービスに到達可能な場合は、DOWNとなる。", |
|||
maxRedirectDescription: "フォローするリダイレクトの最大数。リダイレクトを無効にするには0を設定する。", |
|||
acceptedStatusCodesDescription: "成功した応答とみなされるステータスコードを選択する。", |
|||
passwordNotMatchMsg: "繰り返しのパスワードが一致しません。", |
|||
notificationDescription: "監視を機能させるには、監視に通知を割り当ててください。", |
|||
keywordDescription: "プレーンHTMLまたはJSON応答でキーワードを検索し、大文字と小文字を区別します", |
|||
pauseDashboardHome: "一時停止", |
|||
deleteMonitorMsg: "この監視を削除してよろしいですか?", |
|||
deleteNotificationMsg: "全ての監視のこの通知を削除してよろしいですか?", |
|||
resoverserverDescription: "Cloudflareがデフォルトのサーバーですが、いつでもリゾルバサーバーを変更できます。", |
|||
rrtypeDescription: "監視するRRタイプを選択します", |
|||
pauseMonitorMsg: "一時停止しますか?", |
|||
Settings: "設定", |
|||
Dashboard: "ダッシュボード", |
|||
"New Update": "New Update", |
|||
Language: "言語", |
|||
Appearance: "外観", |
|||
Theme: "テーマ", |
|||
General: "General", |
|||
Version: "バージョン", |
|||
"Check Update On GitHub": "GitHubでアップデートを確認する", |
|||
List: "一覧", |
|||
Add: "追加", |
|||
"Add New Monitor": "監視の追加", |
|||
"Quick Stats": "統計", |
|||
Up: "Up", |
|||
Down: "Down", |
|||
Pending: "中止", |
|||
Unknown: "不明", |
|||
Pause: "一時停止", |
|||
Name: "名前", |
|||
Status: "ステータス", |
|||
DateTime: "日時", |
|||
Message: "メッセージ", |
|||
"No important events": "重要なイベントなし", |
|||
Resume: "再開", |
|||
Edit: "編集", |
|||
Delete: "削除", |
|||
Current: "現在", |
|||
Uptime: "起動時間", |
|||
"Cert Exp.": "証明書有効期限", |
|||
days: "日間", |
|||
day: "日", |
|||
"-day": "-日", |
|||
hour: "時間", |
|||
"-hour": "-時間", |
|||
Response: "レスポンス", |
|||
Ping: "Ping", |
|||
"Monitor Type": "監視タイプ", |
|||
Keyword: "キーワード", |
|||
"Friendly Name": "Friendly Name", |
|||
URL: "URL", |
|||
Hostname: "ホスト名", |
|||
Port: "ポート", |
|||
"Heartbeat Interval": "監視間隔", |
|||
Retries: "Retries", |
|||
Advanced: "Advanced", |
|||
"Upside Down Mode": "Upside Down Mode", |
|||
"Max. Redirects": "最大リダイレクト数", |
|||
"Accepted Status Codes": "承認されたステータスコード", |
|||
Save: "保存", |
|||
Notifications: "通知", |
|||
"Not available, please setup.": "利用できません。設定してください。", |
|||
"Setup Notification": "通知設定", |
|||
Light: "Light", |
|||
Dark: "Dark", |
|||
Auto: "Auto", |
|||
"Theme - Heartbeat Bar": "Theme - Heartbeat Bar", |
|||
Normal: "通常", |
|||
Bottom: "下部", |
|||
None: "なし", |
|||
Timezone: "タイムゾーン", |
|||
"Search Engine Visibility": "検索エンジンでの表示", |
|||
"Allow indexing": "インデックス作成を許可する", |
|||
"Discourage search engines from indexing site": "検索エンジンにインデックスさせないようにする", |
|||
"Change Password": "パスワード変更", |
|||
"Current Password": "現在のパスワード", |
|||
"New Password": "新しいパスワード", |
|||
"Repeat New Password": "確認のため新しいパスワードをもう一度", |
|||
"Update Password": "パスワードの更新", |
|||
"Disable Auth": "認証の無効化", |
|||
"Enable Auth": "認証の有効化", |
|||
Logout: "ログアウト", |
|||
Leave: "作業を中止する", |
|||
"I understand, please disable": "理解した上で無効化する", |
|||
Confirm: "確認", |
|||
Yes: "はい", |
|||
No: "いいえ", |
|||
Username: "ユーザー名", |
|||
Password: "パスワード", |
|||
"Remember me": "パスワードを忘れた場合", |
|||
Login: "ログイン", |
|||
"No Monitors, please": "監視がありません", |
|||
"add one": "add one", |
|||
"Notification Type": "通知タイプ", |
|||
Email: "Eメール", |
|||
Test: "テスト", |
|||
"Certificate Info": "証明書情報", |
|||
"Resolver Server": "問い合わせ先DNSサーバ", |
|||
"Resource Record Type": "DNSレコード設定", |
|||
"Last Result": "最終結果", |
|||
"Create your admin account": "Create your admin account", |
|||
"Repeat Password": "Repeat Password", |
|||
respTime: "Resp. Time (ms)", |
|||
notAvailableShort: "N/A", |
|||
Create: "Create", |
|||
clearEventsMsg: "Are you sure want to delete all events for this monitor?", |
|||
clearHeartbeatsMsg: "Are you sure want to delete all heartbeats for this monitor?", |
|||
confirmClearStatisticsMsg: "Are you sure want to delete ALL statistics?", |
|||
"Clear Data": "Clear Data", |
|||
Events: "Events", |
|||
Heartbeats: "Heartbeats" |
|||
} |
@ -0,0 +1,119 @@ |
|||
export default { |
|||
languageName: "한국어", |
|||
checkEverySecond: "{0} 초마다 체크해요.", |
|||
"Avg.": "평균 ", |
|||
retriesDescription: "서비스가 중단된 후 알림을 보내기 전 최대 재시도 횟수", |
|||
ignoreTLSError: "HTTPS 웹사이트에서 TLS/SSL 에러 무시하기", |
|||
upsideDownModeDescription: "서버 상태를 반대로 표시해요. 서버가 작동하면 오프라인으로 표시할 거에요.", |
|||
maxRedirectDescription: "최대 리다이렉트 횟수에요. 0을 입력하면 리다이렉트를 꺼요.", |
|||
acceptedStatusCodesDescription: "응답 성공으로 간주할 상태 코드를 정해요.", |
|||
passwordNotMatchMsg: "비밀번호 재입력이 일치하지 않아요.", |
|||
notificationDescription: "모니터링에 알림을 설정할 수 있어요.", |
|||
keywordDescription: "Html 이나 JSON에서 대소문자를 구분해 키워드를 검색해요.", |
|||
pauseDashboardHome: "일시 정지", |
|||
deleteMonitorMsg: "정말 이 모니터링을 삭제할까요?", |
|||
deleteNotificationMsg: "정말 이 알림을 모든 모니터링에서 삭제할까요?", |
|||
resoverserverDescription: "Cloudflare가 기본 서버에요, 원한다면 언제나 다른 resolver 서버로 변경할 수 있어요.", |
|||
rrtypeDescription: "모니터링할 RR-Type을 선택해요.", |
|||
pauseMonitorMsg: "정말 이 모니터링을 일시 정지 할까요?", |
|||
Settings: "설정", |
|||
Dashboard: "대시보드", |
|||
"New Update": "새로운 업데이트", |
|||
Language: "언어", |
|||
Appearance: "외형", |
|||
Theme: "테마", |
|||
General: "일반", |
|||
Version: "버전", |
|||
"Check Update On GitHub": "깃허브에서 업데이트 확인", |
|||
List: "목록", |
|||
Add: "추가", |
|||
"Add New Monitor": "새로운 모니터링 추가하기", |
|||
"Quick Stats": "간단한 정보", |
|||
Up: "온라인", |
|||
Down: "오프라인", |
|||
Pending: "대기 중", |
|||
Unknown: "알 수 없음", |
|||
Pause: "일시 정지", |
|||
Name: "이름", |
|||
Status: "상태", |
|||
DateTime: "날짜", |
|||
Message: "메시지", |
|||
"No important events": "중요 이벤트 없음", |
|||
Resume: "재개", |
|||
Edit: "수정", |
|||
Delete: "삭제", |
|||
Current: "현재", |
|||
Uptime: "업타임", |
|||
"Cert Exp.": "인증서 만료", |
|||
days: "일", |
|||
day: "일", |
|||
"-day": "-일", |
|||
hour: "시간", |
|||
"-hour": "-시간", |
|||
Response: "응답", |
|||
Ping: "핑", |
|||
"Monitor Type": "모니터링 종류", |
|||
Keyword: "키워드", |
|||
"Friendly Name": "이름", |
|||
URL: "URL", |
|||
Hostname: "호스트네임", |
|||
Port: "포트", |
|||
"Heartbeat Interval": "하트비트 주기", |
|||
Retries: "재시도", |
|||
Advanced: "고급", |
|||
"Upside Down Mode": "상태 반전 모드", |
|||
"Max. Redirects": "최대 리다이렉트", |
|||
"Accepted Status Codes": "응답 성공 상태 코드", |
|||
Save: "저장", |
|||
Notifications: "알림", |
|||
"Not available, please setup.": "존재하지 않아요, 새로운거 하나 만드는건 어때요?", |
|||
"Setup Notification": "알림 설정", |
|||
Light: "라이트", |
|||
Dark: "다크", |
|||
Auto: "자동", |
|||
"Theme - Heartbeat Bar": "테마 - 하트비트 바", |
|||
Normal: "기본값", |
|||
Bottom: "가운데", |
|||
None: "제거", |
|||
Timezone: "시간대", |
|||
"Search Engine Visibility": "검색 엔진 활성화", |
|||
"Allow indexing": "인덱싱 허용", |
|||
"Discourage search engines from indexing site": "검색 엔진 인덱싱 거부", |
|||
"Change Password": "비밀번호 변경", |
|||
"Current Password": "기존 비밀번호", |
|||
"New Password": "새로운 비밀번호", |
|||
"Repeat New Password": "새로운 비밀번호 재입력", |
|||
"Update Password": "비밀번호 변경", |
|||
"Disable Auth": "인증 끄기", |
|||
"Enable Auth": "인증 켜기", |
|||
Logout: "로그아웃", |
|||
Leave: "나가기", |
|||
"I understand, please disable": "기능에 대해 이해했으니 꺼주세요.", |
|||
Confirm: "확인", |
|||
Yes: "확인", |
|||
No: "취소", |
|||
Username: "이름", |
|||
Password: "비밀번호", |
|||
"Remember me": "비밀번호 기억하기", |
|||
Login: "로그인", |
|||
"No Monitors, please": "모니터링이 없어요,", |
|||
"add one": "하나 추가해봐요", |
|||
"Notification Type": "알림 종류", |
|||
Email: "이메일", |
|||
Test: "테스트", |
|||
"Certificate Info": "인증서 정보", |
|||
"Resolver Server": "Resolver 서버", |
|||
"Resource Record Type": "자원 레코드 유형", |
|||
"Last Result": "최근 결과", |
|||
"Create your admin account": "관리자 계정 만들기", |
|||
"Repeat Password": "비밀번호 재입력", |
|||
respTime: "응답 시간 (ms)", |
|||
notAvailableShort: "N/A", |
|||
Create: "Create", |
|||
clearEventsMsg: "Are you sure want to delete all events for this monitor?", |
|||
clearHeartbeatsMsg: "Are you sure want to delete all heartbeats for this monitor?", |
|||
confirmClearStatisticsMsg: "Are you sure want to delete ALL statistics?", |
|||
"Clear Data": "Clear Data", |
|||
Events: "Events", |
|||
Heartbeats: "Heartbeats" |
|||
} |
@ -0,0 +1,119 @@ |
|||
export default { |
|||
languageName: "Nederlands", |
|||
checkEverySecond: "Controleer elke {0} seconden.", |
|||
"Avg.": "Gem. ", |
|||
retriesDescription: "Maximum aantal nieuwe pogingen voordat de service wordt gemarkeerd als niet beschikbaar en er een melding wordt verzonden", |
|||
ignoreTLSError: "Negeer TLS/SSL-fout voor HTTPS-websites", |
|||
upsideDownModeDescription: "Draai de status om. Als de service bereikbaar is, is deze OFFLINE.", |
|||
maxRedirectDescription: "Maximaal aantal te volgen omleidingen. Stel in op 0 om omleidingen uit te schakelen.", |
|||
acceptedStatusCodesDescription: "Selecteer statuscodes die als een succesvol antwoord worden beschouwd.", |
|||
passwordNotMatchMsg: "Het herhaalwachtwoord komt niet overeen.", |
|||
notificationDescription: "Wijs a.u.b. een melding toe aan de monitor(s) om het te laten werken.", |
|||
keywordDescription: "Zoek trefwoord in gewone html of JSON-response en het is hoofdlettergevoelig", |
|||
pauseDashboardHome: "Gepauzeerd", |
|||
deleteMonitorMsg: "Weet u zeker dat u deze monitor wilt verwijderen?", |
|||
deleteNotificationMsg: "Weet u zeker dat u deze melding voor alle monitoren wilt verwijderen?", |
|||
resoverserverDescription: "Cloudflare is de standaardserver, u kunt de resolver server op elk moment wijzigen.", |
|||
rrtypeDescription: "Selecteer het RR-type dat u wilt monitoren", |
|||
pauseMonitorMsg: "Weet je zeker dat je wilt pauzeren?", |
|||
Settings: "Instellingen", |
|||
Dashboard: "Dashboard", |
|||
"New Update": "Nieuwe update", |
|||
Language: "Taal", |
|||
Appearance: "Weergave", |
|||
Theme: "Thema", |
|||
General: "Algemeen", |
|||
Version: "Versie", |
|||
"Check Update On GitHub": "Controleer voor updates op GitHub", |
|||
List: "Lijst", |
|||
Add: "Toevoegen", |
|||
"Add New Monitor": "Nieuwe monitor toevoegen", |
|||
"Quick Stats": "Snelle statistieken", |
|||
Up: "Online", |
|||
Down: "Offline", |
|||
Pending: "In afwachting", |
|||
Unknown: "Onbekend", |
|||
Pause: "Pauze", |
|||
Name: "Naam", |
|||
Status: "Status", |
|||
DateTime: "Datum Tijd", |
|||
Message: "Bericht", |
|||
"No important events": "Geen belangrijke gebeurtenissen", |
|||
Resume: "Hervat", |
|||
Edit: "Wijzigen", |
|||
Delete: "Verwijderen", |
|||
Current: "Huidig", |
|||
Uptime: "Uptime", |
|||
"Cert Exp.": "Cert. verl.", |
|||
days: "dagen", |
|||
day: "dag", |
|||
"-day": "-dag", |
|||
hour: "uur", |
|||
"-hour": "-uur", |
|||
Response: "Antwoord", |
|||
Ping: "Ping", |
|||
"Monitor Type": "Monitortype:", |
|||
Keyword: "Trefwoord", |
|||
"Friendly Name": "Vriendelijke naam", |
|||
URL: "URL", |
|||
Hostname: "Hostnaam", |
|||
Port: "Poort", |
|||
"Heartbeat Interval": "Hartslaginterval", |
|||
Retries: "Pogingen", |
|||
Advanced: "Geavanceerd", |
|||
"Upside Down Mode": "Ondersteboven modus", |
|||
"Max. Redirects": "Max. Omleidingen", |
|||
"Accepted Status Codes": "Geaccepteerde statuscodes", |
|||
Save: "Opslaan", |
|||
Notifications: "Meldingen", |
|||
"Not available, please setup.": "Niet beschikbaar, stel a.u.b. in.", |
|||
"Setup Notification": "Melding instellen", |
|||
Light: "Licht", |
|||
Dark: "Donker", |
|||
Auto: "Auto", |
|||
"Theme - Heartbeat Bar": "Thema - Hartslagbalk", |
|||
Normal: "Normaal", |
|||
Bottom: "Onderkant", |
|||
None: "Geen", |
|||
Timezone: "Tijdzone", |
|||
"Search Engine Visibility": "Zichtbaarheid voor zoekmachines", |
|||
"Allow indexing": "Indexering toestaan", |
|||
"Discourage search engines from indexing site": "Ontmoedig zoekmachines om de site te indexeren", |
|||
"Change Password": "Verander wachtwoord", |
|||
"Current Password": "Huidig wachtwoord", |
|||
"New Password": "Nieuw wachtwoord", |
|||
"Repeat New Password": "Herhaal nieuw wachtwoord", |
|||
"Update Password": "Vernieuw wachtwoord", |
|||
"Disable Auth": "Autorisatie uitschakelen", |
|||
"Enable Auth": "Autorisatie inschakelen", |
|||
Logout: "Uitloggen", |
|||
Leave: "Vertrekken", |
|||
"I understand, please disable": "Ik begrijp het, schakel a.u.b. uit", |
|||
Confirm: "Bevestigen", |
|||
Yes: "Ja", |
|||
No: "Nee", |
|||
Username: "Gebruikersnaam", |
|||
Password: "Wachtwoord", |
|||
"Remember me": "Wachtwoord onthouden", |
|||
Login: "Inloggen", |
|||
"No Monitors, please": "Geen monitoren, ", |
|||
"add one": "voeg een toe", |
|||
"Notification Type": "Melding type", |
|||
Email: "E-mail", |
|||
Test: "Testen", |
|||
"Certificate Info": "Certificaat informatie", |
|||
"Resolver Server": "Resolver Server", |
|||
"Resource Record Type": "Type bronrecord", |
|||
"Last Result": "Laatste resultaat", |
|||
"Create your admin account": "Maak uw beheerdersaccount aan", |
|||
"Repeat Password": "Herhaal wachtwoord", |
|||
respTime: "resp. tijd (ms)", |
|||
notAvailableShort: "N.v.t.", |
|||
Create: "Create", |
|||
clearEventsMsg: "Are you sure want to delete all events for this monitor?", |
|||
clearHeartbeatsMsg: "Are you sure want to delete all heartbeats for this monitor?", |
|||
confirmClearStatisticsMsg: "Are you sure want to delete ALL statistics?", |
|||
"Clear Data": "Clear Data", |
|||
Events: "Events", |
|||
Heartbeats: "Heartbeats" |
|||
} |
@ -0,0 +1,113 @@ |
|||
export default { |
|||
languageName: "Polski", |
|||
checkEverySecond: "Sprawdzaj co {0} sekund.", |
|||
"Avg.": "Średnia ", |
|||
retriesDescription: "Maksymalna liczba powtórzeń, zanim usługa zostanie oznaczona jako wyłączona i zostanie wysłane powiadomienie", |
|||
ignoreTLSError: "Ignoruj błąd TLS/SSL dla stron HTTPS", |
|||
upsideDownModeDescription: "Odwróć status do góry nogami. Jeśli usługa jest osiągalna, to jest oznaczona jako niedostępna.", |
|||
maxRedirectDescription: "Maksymalna liczba przekierowań do wykonania. Ustaw na 0, aby wyłączyć przekierowania.", |
|||
acceptedStatusCodesDescription: "Wybierz kody stanu, które są uważane za udaną odpowiedź.", |
|||
passwordNotMatchMsg: "Powtórzone hasło nie pasuje.", |
|||
notificationDescription: "Proszę przypisać powiadomienie do monitora(ów), aby zadziałało.", |
|||
keywordDescription: "Wyszukiwanie słów kluczowych w zwykłym html lub odpowiedzi JSON. Wielkość liter ma znaczenie.", |
|||
pauseDashboardHome: "Pauza", |
|||
deleteMonitorMsg: "Czy na pewno chcesz usunąć ten monitor?", |
|||
deleteNotificationMsg: "Czy na pewno chcesz usunąć to powiadomienie dla wszystkich monitorów?", |
|||
resoverserverDescription: "Cloudflare jest domyślnym serwerem, możesz zmienić serwer resolver w każdej chwili.", |
|||
rrtypeDescription: "Wybierz RR-Type który chcesz monitorować", |
|||
pauseMonitorMsg: "Czy na pewno chcesz wstrzymać?", |
|||
Settings: "Ustawienia", |
|||
Dashboard: "Panel", |
|||
"New Update": "Nowa aktualizacja", |
|||
Language: "Język", |
|||
Appearance: "Wygląd", |
|||
Theme: "Motyw", |
|||
General: "Ogólne", |
|||
Version: "Wersja", |
|||
"Check Update On GitHub": "Sprawdź aktualizację na GitHub.", |
|||
List: "Lista", |
|||
Add: "Dodaj", |
|||
"Add New Monitor": "Dodaj nowy monitor", |
|||
"Quick Stats": "Szybkie statystyki", |
|||
Up: "Online", |
|||
Down: "Offline", |
|||
Pending: "Oczekujący", |
|||
Unknown: "Nieznane", |
|||
Pause: "Pauza", |
|||
Name: "Nazwa", |
|||
Status: "Status", |
|||
DateTime: "Data i godzina", |
|||
Message: "Wiadomość", |
|||
"No important events": "Brak ważnych wydarzeń", |
|||
Resume: "Wznów", |
|||
Edit: "Edytuj", |
|||
Delete: "Usuń", |
|||
Current: "aktualny", |
|||
Uptime: "Czas pracy", |
|||
"Cert Exp.": "Wygaśnięcie certyfikatu", |
|||
days: "dni", |
|||
day: "dzień", |
|||
"-day": " dni", |
|||
hour: "godzina", |
|||
"-hour": " godziny", |
|||
Response: "Odpowiedź", |
|||
Ping: "Ping", |
|||
"Monitor Type": "Typ monitora", |
|||
Keyword: "Słowo kluczowe", |
|||
"Friendly Name": "Przyjazna nazwa", |
|||
URL: "URL", |
|||
Hostname: "Nazwa hosta", |
|||
Port: "Port", |
|||
"Heartbeat Interval": "Interwał bicia serca", |
|||
Retries: "Prób", |
|||
Advanced: "Zaawansowane", |
|||
"Upside Down Mode": "Tryb do góry nogami", |
|||
"Max. Redirects": "Maks. przekierowania", |
|||
"Accepted Status Codes": "Akceptowane kody statusu", |
|||
Save: "Zapisz", |
|||
Notifications: "Powiadomienia", |
|||
"Not available, please setup.": "Niedostępne, proszę skonfigurować.", |
|||
"Setup Notification": "Konfiguracja powiadomień", |
|||
Light: "Jasny", |
|||
Dark: "Ciemny", |
|||
Auto: "Automatyczny", |
|||
"Theme - Heartbeat Bar": "Motyw - pasek bicia serca", |
|||
Normal: "Normalne", |
|||
Bottom: "Na dole", |
|||
None: "Brak", |
|||
Timezone: "Strefa czasowa", |
|||
"Search Engine Visibility": "Widoczność w wyszukiwarce", |
|||
"Allow indexing": "Pozwól na indeksowanie", |
|||
"Discourage search engines from indexing site": "Zniechęcaj wyszukiwarki do indeksowania strony", |
|||
"Change Password": "Zmień hasło", |
|||
"Current Password": "Aktualne hasło", |
|||
"New Password": "Nowe hasło", |
|||
"Repeat New Password": "Powtórz nowe hasło", |
|||
"Update Password": "Zaktualizuj hasło", |
|||
"Disable Auth": "Wyłącz autoryzację", |
|||
"Enable Auth": "Włącz autoryzację ", |
|||
Logout: "Wyloguj się", |
|||
Leave: "Zostaw", |
|||
"I understand, please disable": "Rozumiem, proszę wyłączyć", |
|||
Confirm: "Potwierdź", |
|||
Yes: "Tak", |
|||
No: "Nie", |
|||
Username: "Nazwa użytkownika", |
|||
Password: "Hasło", |
|||
"Remember me": "Zapamiętaj mnie", |
|||
Login: "Zaloguj się", |
|||
"No Monitors, please": "Brak monitorów, proszę", |
|||
"add one": "dodaj jeden", |
|||
"Notification Type": "Typ powiadomienia", |
|||
Email: "Email", |
|||
Test: "Test", |
|||
"Certificate Info": "Informacje o certyfikacie", |
|||
"Resolver Server": "Server resolver", |
|||
"Resource Record Type": "Typ rekordu zasobów", |
|||
"Last Result": "Ostatni wynik", |
|||
"Create your admin account": "Utwórz swoje konto administratora", |
|||
"Repeat Password": "Powtórz hasło", |
|||
respTime: "Czas odp. (ms)", |
|||
notAvailableShort: "N/A", |
|||
Create: "Stwórz" |
|||
} |
@ -0,0 +1,119 @@ |
|||
export default { |
|||
languageName: "Русский", |
|||
checkEverySecond: "Проверять каждые {0} секунд.", |
|||
"Avg.": "Средн. ", |
|||
retriesDescription: "Максимальное количество попыток перед пометкой сервиса как недоступного и отправкой уведомления", |
|||
ignoreTLSError: "Игнорировать ошибку TLS/SSL для HTTPS сайтов", |
|||
upsideDownModeDescription: "Реверс статуса сервиса. Если сервис доступен, то он помечается как НЕДОСТУПНЫЙ.", |
|||
maxRedirectDescription: "Максимальное количество перенаправлений. Поставьте 0, чтобы отключить перенаправления.", |
|||
acceptedStatusCodesDescription: "Выберите коды статусов, которые должны считаться за успешный ответ.", |
|||
passwordNotMatchMsg: "Повтор пароля не совпадает.", |
|||
notificationDescription: "Привяжите уведомления к мониторам.", |
|||
keywordDescription: "Поиск слова в чистом HTML или в JSON-ответе (чувствительно к регистру)", |
|||
pauseDashboardHome: "Пауза", |
|||
deleteMonitorMsg: "Вы действительно хотите удалить данный монитор?", |
|||
deleteNotificationMsg: "Вы действительно хотите удалить это уведомление для всех мониторов?", |
|||
resoverserverDescription: "Cloudflare является сервером по умолчанию. Вы всегда можете сменить данный сервер.", |
|||
rrtypeDescription: "Выберите тип ресурсной записи, который вы хотите отслеживать", |
|||
pauseMonitorMsg: "Вы действительно хотите поставить на паузу?", |
|||
Settings: "Настройки", |
|||
Dashboard: "Панель", |
|||
"New Update": "Обновление", |
|||
Language: "Язык", |
|||
Appearance: "Внешний вид", |
|||
Theme: "Тема", |
|||
General: "Общее", |
|||
Version: "Версия", |
|||
"Check Update On GitHub": "Проверить обновления на GitHub", |
|||
List: "Список", |
|||
Add: "Добавить", |
|||
"Add New Monitor": "Новый монитор", |
|||
"Quick Stats": "Статистика", |
|||
Up: "Доступно", |
|||
Down: "Недоступно", |
|||
Pending: "Ожидание", |
|||
Unknown: "Неизвестно", |
|||
Pause: "Пауза", |
|||
Name: "Имя", |
|||
Status: "Статус", |
|||
DateTime: "Дата и время", |
|||
Message: "Сообщение", |
|||
"No important events": "Важных событий нет", |
|||
Resume: "Возобновить", |
|||
Edit: "Изменить", |
|||
Delete: "Удалить", |
|||
Current: "Текущий", |
|||
Uptime: "Аптайм", |
|||
"Cert Exp.": "Сертификат просрочен", |
|||
days: "дней", |
|||
day: "день", |
|||
"-day": " дней", |
|||
hour: "час", |
|||
"-hour": " часа", |
|||
Response: "Ответ", |
|||
Ping: "Пинг", |
|||
"Monitor Type": "Тип монитора", |
|||
Keyword: "Слово", |
|||
"Friendly Name": "Имя", |
|||
URL: "URL", |
|||
Hostname: "Имя хоста", |
|||
Port: "Порт", |
|||
"Heartbeat Interval": "Частота опроса", |
|||
Retries: "Попыток", |
|||
Advanced: "Дополнительно", |
|||
"Upside Down Mode": "Режим реверса статуса", |
|||
"Max. Redirects": "Макс. перенаправлений", |
|||
"Accepted Status Codes": "Допустимые коды статуса", |
|||
Save: "Сохранить", |
|||
Notifications: "Уведомления", |
|||
"Not available, please setup.": "Доступных уведомлений нет, необходима настройка.", |
|||
"Setup Notification": "Настроить уведомления", |
|||
Light: "Светлая", |
|||
Dark: "Тёмная", |
|||
Auto: "Авто", |
|||
"Theme - Heartbeat Bar": "Тема - Полоса частоты опроса", |
|||
Normal: "Обычный", |
|||
Bottom: "Снизу", |
|||
None: "Отсутствует", |
|||
Timezone: "Часовой пояс", |
|||
"Search Engine Visibility": "Видимость поисковым движком", |
|||
"Allow indexing": "Разрешить индексирование", |
|||
"Discourage search engines from indexing site": "Не позволять индексировать сайт", |
|||
"Change Password": "Сменить пароль", |
|||
"Current Password": "Текущий пароль", |
|||
"New Password": "Новый пароль", |
|||
"Repeat New Password": "Повтор нового пароля", |
|||
"Update Password": "Обновить пароль", |
|||
"Disable Auth": "Отключить авторизацию", |
|||
"Enable Auth": "Включить авторизацию", |
|||
Logout: "Выйти", |
|||
Leave: "Отмена", |
|||
"I understand, please disable": "Я понимаю, всё равно отключить", |
|||
Confirm: "Подтвердить", |
|||
Yes: "Да", |
|||
No: "Нет", |
|||
Username: "Логин", |
|||
Password: "Пароль", |
|||
"Remember me": "Запомнить меня", |
|||
Login: "Вход в систему", |
|||
"No Monitors, please": "Мониторов нет, пожалуйста", |
|||
"add one": "создайте новый", |
|||
"Notification Type": "Тип уведомления", |
|||
Email: "Почта", |
|||
Test: "Проверка", |
|||
"Certificate Info": "Информация о сертификате", |
|||
"Resolver Server": "DNS сервер", |
|||
"Resource Record Type": "Тип ресурсной записи", |
|||
"Last Result": "Последний результат", |
|||
"Create your admin account": "Создайте аккаунт администратора", |
|||
"Repeat Password": "Повторите пароль", |
|||
respTime: "Resp. Time (ms)", |
|||
notAvailableShort: "N/A", |
|||
Create: "Create", |
|||
clearEventsMsg: "Are you sure want to delete all events for this monitor?", |
|||
clearHeartbeatsMsg: "Are you sure want to delete all heartbeats for this monitor?", |
|||
confirmClearStatisticsMsg: "Are you sure want to delete ALL statistics?", |
|||
"Clear Data": "Clear Data", |
|||
Events: "Events", |
|||
Heartbeats: "Heartbeats" |
|||
} |
@ -0,0 +1,119 @@ |
|||
export default { |
|||
languageName: "Srpski", |
|||
checkEverySecond: "Proveri svakih {0} sekundi.", |
|||
"Avg.": "Prosečni ", |
|||
retriesDescription: "Maksimum pokušaja pre nego što se servis obeleži kao neaktivan i pošalje se obaveštenje.", |
|||
ignoreTLSError: "Ignoriši TLS/SSL greške za HTTPS veb stranice.", |
|||
upsideDownModeDescription: "Obrnite status. Ako je servis dostupan, onda je obeležen kao neaktivan.", |
|||
maxRedirectDescription: "Maksimani broj preusmerenja da se prate. Postavite na 0 da bi se isključila preusmerenja.", |
|||
acceptedStatusCodesDescription: "Odaberite statusne kodove koji se smatraju uspešnim odgovorom.", |
|||
passwordNotMatchMsg: "Ponovljena lozinka se ne poklapa.", |
|||
notificationDescription: "Molim Vas postavite obaveštenje za masmatrače da bise aktivirali.", |
|||
keywordDescription: "Pretraži ključnu reč u čistom html ili JSON odgovoru sa osetljivim velikim i malim slovima", |
|||
pauseDashboardHome: "Pauziraj", |
|||
deleteMonitorMsg: "Da li ste sigurni da želite da obrišete ovog posmatrača?", |
|||
deleteNotificationMsg: "Da li ste sigurni d aželite da uklonite ovo obaveštenje za sve posmatrače?", |
|||
resoverserverDescription: "Cloudflare je podrazumevani server. Možete promeniti server za raszrešavanje u bilo kom trenutku.", |
|||
rrtypeDescription: "Odaberite RR-Type koji želite da posmatrate", |
|||
pauseMonitorMsg: "Da li ste sigurni da želite da pauzirate?", |
|||
Settings: "Podešavanja", |
|||
Dashboard: "Komandna tabla", |
|||
"New Update": "Nova verzija", |
|||
Language: "Jezik", |
|||
Appearance: "Izgled", |
|||
Theme: "Tema", |
|||
General: "Opšte", |
|||
Version: "Verzija", |
|||
"Check Update On GitHub": "Proverite novu verziju na GitHub-u", |
|||
List: "Lista", |
|||
Add: "Dodaj", |
|||
"Add New Monitor": "Dodaj novog posmatrača", |
|||
"Quick Stats": "Brze statistike", |
|||
Up: "Aktivno", |
|||
Down: "Neaktivno", |
|||
Pending: "Nerešeno", |
|||
Unknown: "Nepoznato", |
|||
Pause: "Pauziraj", |
|||
Name: "Ime", |
|||
Status: "Status", |
|||
DateTime: "Datum i vreme", |
|||
Message: "Poruka", |
|||
"No important events": "Nema bitnih događaja", |
|||
Resume: "Nastavi", |
|||
Edit: "Izmeni", |
|||
Delete: "Ukloni", |
|||
Current: "Trenutno", |
|||
Uptime: "Vreme rada", |
|||
"Cert Exp.": "Istek sert.", |
|||
days: "dana", |
|||
day: "dan", |
|||
"-day": "-dana", |
|||
hour: "sat", |
|||
"-hour": "-sata", |
|||
Response: "Odgovor", |
|||
Ping: "Ping", |
|||
"Monitor Type": "Tip posmatrača", |
|||
Keyword: "Ključna reč", |
|||
"Friendly Name": "Prijateljsko ime", |
|||
URL: "URL", |
|||
Hostname: "Hostname", |
|||
Port: "Port", |
|||
"Heartbeat Interval": "Interval otkucaja srca", |
|||
Retries: "Pokušaji", |
|||
Advanced: "Napredno", |
|||
"Upside Down Mode": "Naopak mod", |
|||
"Max. Redirects": "Maks. preusmerenja", |
|||
"Accepted Status Codes": "Prihvaćeni statusni kodovi", |
|||
Save: "Sačuvaj", |
|||
Notifications: "Obaveštenja", |
|||
"Not available, please setup.": "Nije dostupno, molim Vas podesite.", |
|||
"Setup Notification": "Postavi obaveštenje", |
|||
Light: "Svetlo", |
|||
Dark: "Tamno", |
|||
Auto: "Automatsko", |
|||
"Theme - Heartbeat Bar": "Tema - Traka otkucaja srca", |
|||
Normal: "Normalno", |
|||
Bottom: "Dole", |
|||
None: "Isključeno", |
|||
Timezone: "Vremenska zona", |
|||
"Search Engine Visibility": "Vidljivost pretraživačima", |
|||
"Allow indexing": "Dozvoli indeksiranje", |
|||
"Discourage search engines from indexing site": "Odvraćajte pretraživače od indeksiranja sajta", |
|||
"Change Password": "Promeni lozinku", |
|||
"Current Password": "Trenutna lozinka", |
|||
"New Password": "Nova lozinka", |
|||
"Repeat New Password": "Ponovi novu lozinku", |
|||
"Update Password": "Izmeni lozinku", |
|||
"Disable Auth": "Isključi autentifikaciju", |
|||
"Enable Auth": "Uključi autentifikaciju", |
|||
Logout: "Odloguj se", |
|||
Leave: "Izađi", |
|||
"I understand, please disable": "Razumem, molim te isključi", |
|||
Confirm: "Potvrdi", |
|||
Yes: "Da", |
|||
No: "Ne", |
|||
Username: "Korisničko ime", |
|||
Password: "Lozinka", |
|||
"Remember me": "Zapamti me", |
|||
Login: "Uloguj se", |
|||
"No Monitors, please": "Bez posmatrača molim", |
|||
"add one": "dodaj jednog", |
|||
"Notification Type": "Tip obaveštenja", |
|||
Email: "E-pošta", |
|||
Test: "Test", |
|||
"Certificate Info": "Informacije sertifikata", |
|||
"Resolver Server": "Razrešivački server", |
|||
"Resource Record Type": "Tip zapisa resursa", |
|||
"Last Result": "Poslednji rezultat", |
|||
"Create your admin account": "Naprivi administratorski nalog", |
|||
"Repeat Password": "Ponovite lozinku", |
|||
respTime: "Vreme odg. (ms)", |
|||
notAvailableShort: "N/A", |
|||
Create: "Create", |
|||
clearEventsMsg: "Are you sure want to delete all events for this monitor?", |
|||
clearHeartbeatsMsg: "Are you sure want to delete all heartbeats for this monitor?", |
|||
confirmClearStatisticsMsg: "Are you sure want to delete ALL statistics?", |
|||
"Clear Data": "Clear Data", |
|||
Events: "Events", |
|||
Heartbeats: "Heartbeats" |
|||
} |
@ -0,0 +1,119 @@ |
|||
export default { |
|||
languageName: "Српски", |
|||
checkEverySecond: "Провери сваких {0} секунди.", |
|||
"Avg.": "Просечни ", |
|||
retriesDescription: "Максимум покушаја пре него што се сервис обележи као неактиван и пошаље се обавештење.", |
|||
ignoreTLSError: "Игнориши TLS/SSL грешке за HTTPS веб странице.", |
|||
upsideDownModeDescription: "Обрните статус. Ако је сервис доступан, онда је обележен као неактиван.", |
|||
maxRedirectDescription: "Максимани број преусмерења да се прате. Поставите на 0 да би се искључила преусмерења.", |
|||
acceptedStatusCodesDescription: "Одаберите статусне кодове који се сматрају успешним одговором.", |
|||
passwordNotMatchMsg: "Поновљена лозинка се не поклапа.", |
|||
notificationDescription: "Молим Вас поставите обавештење за масматраче да бисе активирали.", |
|||
keywordDescription: "Претражи кључну реч у чистом html или JSON одговору са осетљивим великим и малим словима", |
|||
pauseDashboardHome: "Паузирај", |
|||
deleteMonitorMsg: "Да ли сте сигурни да желите да обришете овог посматрача?", |
|||
deleteNotificationMsg: "Да ли сте сигурни д ажелите да уклоните ово обавештење за све посматраче?", |
|||
resoverserverDescription: "Cloudflare је подразумевани сервер. Можете променити сервер за расзрешавање у било ком тренутку.", |
|||
rrtypeDescription: "Одаберите RR-Type који желите да посматрате", |
|||
pauseMonitorMsg: "Да ли сте сигурни да желите да паузирате?", |
|||
Settings: "Подешавања", |
|||
Dashboard: "Командна табла", |
|||
"New Update": "Нова верзија", |
|||
Language: "Језик", |
|||
Appearance: "Изглед", |
|||
Theme: "Тема", |
|||
General: "Опште", |
|||
Version: "Верзија", |
|||
"Check Update On GitHub": "Проверите нову верзију на GitHub-у", |
|||
List: "Листа", |
|||
Add: "Додај", |
|||
"Add New Monitor": "Додај новог посматрача", |
|||
"Quick Stats": "Брзе статистике", |
|||
Up: "Активно", |
|||
Down: "Неактивно", |
|||
Pending: "Нерешено", |
|||
Unknown: "Непознато", |
|||
Pause: "Паузирај", |
|||
Name: "Име", |
|||
Status: "Статус", |
|||
DateTime: "Датум и време", |
|||
Message: "Порука", |
|||
"No important events": "Нема битних догађаја", |
|||
Resume: "Настави", |
|||
Edit: "Измени", |
|||
Delete: "Уклони", |
|||
Current: "Тренутно", |
|||
Uptime: "Време рада", |
|||
"Cert Exp.": "Истек серт.", |
|||
days: "дана", |
|||
day: "дан", |
|||
"-day": "-дана", |
|||
hour: "сат", |
|||
"-hour": "-сата", |
|||
Response: "Одговор", |
|||
Ping: "Пинг", |
|||
"Monitor Type": "Тип посматрача", |
|||
Keyword: "Кључна реч", |
|||
"Friendly Name": "Пријатељско име", |
|||
URL: "URL", |
|||
Hostname: "Hostname", |
|||
Port: "Порт", |
|||
"Heartbeat Interval": "Интервал откуцаја срца", |
|||
Retries: "Покушаји", |
|||
Advanced: "Напредно", |
|||
"Upside Down Mode": "Наопак мод", |
|||
"Max. Redirects": "Макс. преусмерења", |
|||
"Accepted Status Codes": "Прихваћени статусни кодови", |
|||
Save: "Сачувај", |
|||
Notifications: "Обавештења", |
|||
"Not available, please setup.": "Није доступно, молим Вас подесите.", |
|||
"Setup Notification": "Постави обавештење", |
|||
Light: "Светло", |
|||
Dark: "Тамно", |
|||
Auto: "Аутоматско", |
|||
"Theme - Heartbeat Bar": "Тема - Трака откуцаја срца", |
|||
Normal: "Нормално", |
|||
Bottom: "Доле", |
|||
None: "Искључено", |
|||
Timezone: "Временска зона", |
|||
"Search Engine Visibility": "Видљивост претраживачима", |
|||
"Allow indexing": "Дозволи индексирање", |
|||
"Discourage search engines from indexing site": "Одвраћајте претраживаче од индексирања сајта", |
|||
"Change Password": "Промени лозинку", |
|||
"Current Password": "Тренутна лозинка", |
|||
"New Password": "Нова лозинка", |
|||
"Repeat New Password": "Понови нову лозинку", |
|||
"Update Password": "Измени лозинку", |
|||
"Disable Auth": "Искључи аутентификацију", |
|||
"Enable Auth": "Укључи аутентификацију", |
|||
Logout: "Одлогуј се", |
|||
Leave: "Изађи", |
|||
"I understand, please disable": "Разумем, молим те искључи", |
|||
Confirm: "Потврди", |
|||
Yes: "Да", |
|||
No: "Не", |
|||
Username: "Корисничко име", |
|||
Password: "Лозинка", |
|||
"Remember me": "Запамти ме", |
|||
Login: "Улогуј се", |
|||
"No Monitors, please": "Без посматрача молим", |
|||
"add one": "додај једног", |
|||
"Notification Type": "Тип обавештења", |
|||
Email: "Е-пошта", |
|||
Test: "Тест", |
|||
"Certificate Info": "Информације сертификата", |
|||
"Resolver Server": "Разрешивачки сервер", |
|||
"Resource Record Type": "Тип записа ресурса", |
|||
"Last Result": "Последњи резултат", |
|||
"Create your admin account": "Наприви администраторски налог", |
|||
"Repeat Password": "Поновите лозинку", |
|||
respTime: "Време одг. (мс)", |
|||
notAvailableShort: "N/A", |
|||
Create: "Create", |
|||
clearEventsMsg: "Are you sure want to delete all events for this monitor?", |
|||
clearHeartbeatsMsg: "Are you sure want to delete all heartbeats for this monitor?", |
|||
confirmClearStatisticsMsg: "Are you sure want to delete ALL statistics?", |
|||
"Clear Data": "Clear Data", |
|||
Events: "Events", |
|||
Heartbeats: "Heartbeats" |
|||
} |
@ -0,0 +1,119 @@ |
|||
export default { |
|||
languageName: "Svenska", |
|||
checkEverySecond: "Uppdatera var {0} sekund.", |
|||
"Avg.": "Genomsnittligt ", |
|||
retriesDescription: "Max antal försök innan tjänsten markeras som nere och en notis skickas", |
|||
ignoreTLSError: "Ignorera TLS/SSL-fel för webbsidor med HTTPS", |
|||
upsideDownModeDescription: "Vänd upp och ner på statusen. Om tjänsten är nåbar visas den som NERE.", |
|||
maxRedirectDescription: "Max antal omdirigeringar att följa. Välj 0 för att avaktivera omdirigeringar.", |
|||
acceptedStatusCodesDescription: "Välj statuskoder som räknas som lyckade.", |
|||
passwordNotMatchMsg: "Det bekräftade lösenordet stämmer ej överens.", |
|||
notificationDescription: "Vänligen lägg till en notistjänst till dina övervakare.", |
|||
keywordDescription: "Sök efter nyckelord i ren HTML eller JSON-svar. Sökningen är skiftkänslig.", |
|||
pauseDashboardHome: "Pausa", |
|||
deleteMonitorMsg: "Är du säker på att du vill ta bort den här övervakningen?", |
|||
deleteNotificationMsg: "Är du säker på att du vill ta bort den här notisen för alla övervakare?", |
|||
resoverserverDescription: "Cloudflare är den förvalda servern. Du kan byta resolver när som helst.", |
|||
rrtypeDescription: "Välj den RR-typ du vill övervaka", |
|||
pauseMonitorMsg: "Är du säker på att du vill pausa?", |
|||
Settings: "Inställningar", |
|||
Dashboard: "Infopanel", |
|||
"New Update": "Ny uppdatering", |
|||
Language: "Språk", |
|||
Appearance: "Utseende", |
|||
Theme: "Tema", |
|||
General: "Allmänt", |
|||
Version: "Version", |
|||
"Check Update On GitHub": "Sök efter uppdatering på GitHub", |
|||
List: "Lista", |
|||
Add: "Lägg till", |
|||
"Add New Monitor": "Lägg Till Ny Övervakare", |
|||
"Quick Stats": "Snabbstatistik", |
|||
Up: "Uppe", |
|||
Down: "Nere", |
|||
Pending: "Pågående", |
|||
Unknown: "Okänt", |
|||
Pause: "Pausa", |
|||
Name: "Namn", |
|||
Status: "Status", |
|||
DateTime: "Datum & Tid", |
|||
Message: "Meddelande", |
|||
"No important events": "Inga viktiga händelser", |
|||
Resume: "Återuppta", |
|||
Edit: "Redigera", |
|||
Delete: "Ta bort", |
|||
Current: "Nuvarande", |
|||
Uptime: "Drifttid", |
|||
"Cert Exp.": "Certifikat utgår", |
|||
days: "dagar", |
|||
day: "dag", |
|||
"-day": " dagar", |
|||
hour: "timme", |
|||
"-hour": " timmar", |
|||
Response: "Svar", |
|||
Ping: "Ping", |
|||
"Monitor Type": "Övervakningstyp", |
|||
Keyword: "Nyckelord", |
|||
"Friendly Name": "Namn", |
|||
URL: "URL", |
|||
Hostname: "Värdnamn", |
|||
Port: "Port", |
|||
"Heartbeat Interval": "Hjärtslagsintervall", |
|||
Retries: "Försök", |
|||
Advanced: "Avancerat", |
|||
"Upside Down Mode": "Upp och ner-läge", |
|||
"Max. Redirects": "Max antal omdirigeringar", |
|||
"Accepted Status Codes": "Tillåtna statuskoder", |
|||
Save: "Spara", |
|||
Notifications: "Notiser", |
|||
"Not available, please setup.": "Ej tillgänglig, vänligen konfigurera.", |
|||
"Setup Notification": "Ny Notistjänst", |
|||
Light: "Ljust", |
|||
Dark: "Mörkt", |
|||
Auto: "Automatiskt", |
|||
"Theme - Heartbeat Bar": "Tema - Heartbeat Bar", |
|||
Normal: "Normal", |
|||
Bottom: "Botten", |
|||
None: "Tomt", |
|||
Timezone: "Tidszon", |
|||
"Search Engine Visibility": "Synlighet på Sökmotorer", |
|||
"Allow indexing": "Tillåt indexering", |
|||
"Discourage search engines from indexing site": "Hindra sökmotorer från att indexera sidan", |
|||
"Change Password": "Byt Lösenord", |
|||
"Current Password": "Nuvarande Lösenord", |
|||
"New Password": "Nytt Lösenord", |
|||
"Repeat New Password": "Upprepa Nytt Lösenord", |
|||
"Update Password": "Uppdatera Lösenord", |
|||
"Disable Auth": "Avaktivera Autentisering", |
|||
"Enable Auth": "Aktivera Autentisering", |
|||
Logout: "Logga ut", |
|||
Leave: "Lämna", |
|||
"I understand, please disable": "Jag förstår, vänligen avaktivera", |
|||
Confirm: "Bekräfta", |
|||
Yes: "Ja", |
|||
No: "Nej", |
|||
Username: "Användarnamn", |
|||
Password: "Lösenord", |
|||
"Remember me": "Kom ihåg mig", |
|||
Login: "Logga in", |
|||
"No Monitors, please": "Inga Övervakare, tack", |
|||
"add one": "lägg till en", |
|||
"Notification Type": "Notistyp", |
|||
Email: "Email", |
|||
Test: "Test", |
|||
"Certificate Info": "Certifikatsinfo", |
|||
"Resolver Server": "Resolverserver", |
|||
"Resource Record Type": "RR-typ", |
|||
"Last Result": "Senaste resultat", |
|||
"Create your admin account": "Skapa ditt administratörskonto", |
|||
"Repeat Password": "Upprepa Lösenord", |
|||
respTime: "Svarstid (ms)", |
|||
notAvailableShort: "Ej Tillg.", |
|||
Create: "Create", |
|||
clearEventsMsg: "Are you sure want to delete all events for this monitor?", |
|||
clearHeartbeatsMsg: "Are you sure want to delete all heartbeats for this monitor?", |
|||
confirmClearStatisticsMsg: "Are you sure want to delete ALL statistics?", |
|||
"Clear Data": "Clear Data", |
|||
Events: "Events", |
|||
Heartbeats: "Heartbeats" |
|||
} |
@ -0,0 +1,119 @@ |
|||
export default { |
|||
languageName: "简体中文", |
|||
checkEverySecond: "检测频率 {0} 秒", |
|||
"Avg.": "平均", |
|||
retriesDescription: "最大重试失败次数", |
|||
ignoreTLSError: "忽略HTTPS站点的证书错误", |
|||
upsideDownModeDescription: "反向状态监控(状态码范围外为有效状态,反之为无效)", |
|||
maxRedirectDescription: "最大重定向次数,设置为 0 禁止重定向", |
|||
acceptedStatusCodesDescription: "选择被视为成功响应的状态码", |
|||
passwordNotMatchMsg: "两次密码输入不一致", |
|||
notificationDescription: "请为监控项配置消息通知", |
|||
keywordDescription: "检测响应内容中的关键字,区分大小写", |
|||
pauseDashboardHome: "暂停", |
|||
deleteMonitorMsg: "确定要删除此监控吗?", |
|||
deleteNotificationMsg: "确定要删除此消息通知吗?这将对所有监控生效。", |
|||
resoverserverDescription: "默认服务器 Cloudflare,可以修改为任意你想要使用的DNS服务器", |
|||
rrtypeDescription: "选择要监控的资源记录类型", |
|||
pauseMonitorMsg: "确定要暂停吗?", |
|||
Settings: "设置", |
|||
Dashboard: "仪表盘", |
|||
"New Update": "有新版本更新", |
|||
Language: "语言", |
|||
Appearance: "外观设置", |
|||
Theme: "主题", |
|||
General: "基本设置", |
|||
Version: "Version", |
|||
"Check Update On GitHub": "检查更新", |
|||
List: "列表", |
|||
Add: "添加", |
|||
"Add New Monitor": "创建监控项", |
|||
"Quick Stats": "状态速览", |
|||
Up: "正常", |
|||
Down: "故障", |
|||
Pending: "检测失败", |
|||
Unknown: "未知", |
|||
Pause: "暂停", |
|||
Name: "名称", |
|||
Status: "状态", |
|||
DateTime: "时间", |
|||
Message: "事件", |
|||
"No important events": "暂无重要事件", |
|||
Resume: "恢复", |
|||
Edit: "修改", |
|||
Delete: "删除", |
|||
Current: "当前", |
|||
Uptime: "可用率", |
|||
"Cert Exp.": "证书过期", |
|||
days: "天", |
|||
day: "天", |
|||
"-day": " 天", |
|||
hour: "小时", |
|||
"-hour": " 小时", |
|||
Response: "响应时长", |
|||
Ping: "Ping", |
|||
"Monitor Type": "监控类型", |
|||
Keyword: "关键字", |
|||
"Friendly Name": "自定义名称", |
|||
URL: "网址URL", |
|||
Hostname: "主机名", |
|||
Port: "端口号", |
|||
"Heartbeat Interval": "心跳间隔", |
|||
Retries: "重试次数", |
|||
Advanced: "高级选项", |
|||
"Upside Down Mode": "反向监控", |
|||
"Max. Redirects": "重定向次数", |
|||
"Accepted Status Codes": "有效状态码", |
|||
Save: "保存", |
|||
Notifications: "消息通知", |
|||
"Not available, please setup.": "无可用通道,请先设置", |
|||
"Setup Notification": "设置通知", |
|||
Light: "明亮", |
|||
Dark: "黑暗", |
|||
Auto: "自动", |
|||
"Theme - Heartbeat Bar": "状态显示", |
|||
Normal: "正常显示", |
|||
Bottom: "靠下显示", |
|||
None: "不显示", |
|||
Timezone: "时区", |
|||
"Search Engine Visibility": "搜索引擎设置", |
|||
"Allow indexing": "允许索引", |
|||
"Discourage search engines from indexing site": "阻止搜索引擎索引网站", |
|||
"Change Password": "修改密码", |
|||
"Current Password": "当前密码", |
|||
"New Password": "新的密码", |
|||
"Repeat New Password": "重复新的密码", |
|||
"Update Password": "更新密码", |
|||
"Disable Auth": "禁用身份验证", |
|||
"Enable Auth": "启用身份验证", |
|||
Logout: "退出", |
|||
Leave: "离开", |
|||
"I understand, please disable": "我已了解,继续禁用", |
|||
Confirm: "确认", |
|||
Yes: "确定", |
|||
No: "取消", |
|||
Username: "用户名", |
|||
Password: "密码", |
|||
"Remember me": "记住登录", |
|||
Login: "登录", |
|||
"No Monitors, please": "还没有监控项,", |
|||
"add one": "点击新增", |
|||
"Notification Type": "消息类型", |
|||
Email: "邮件", |
|||
Test: "测试一下", |
|||
"Certificate Info": "证书信息", |
|||
"Resolver Server": "解析服务器", |
|||
"Resource Record Type": "资源记录类型", |
|||
"Last Result": "Last Result", |
|||
"Create your admin account": "创建管理员账号", |
|||
"Repeat Password": "重复密码", |
|||
respTime: "Resp. Time (ms)", |
|||
notAvailableShort: "N/A", |
|||
Create: "Create", |
|||
clearEventsMsg: "Are you sure want to delete all events for this monitor?", |
|||
clearHeartbeatsMsg: "Are you sure want to delete all heartbeats for this monitor?", |
|||
confirmClearStatisticsMsg: "Are you sure want to delete ALL statistics?", |
|||
"Clear Data": "Clear Data", |
|||
Events: "Events", |
|||
Heartbeats: "Heartbeats" |
|||
} |
File diff suppressed because it is too large
Loading…
Reference in new issue