Merge remote-tracking branch 'upstream/master' into improve-translatables

pull/902/head
Ivan Bratović 3 years ago
commit d95258e7db

@ -7,12 +7,12 @@ class Pushover extends NotificationProvider {
async send(notification, msg, monitorJSON = null, heartbeatJSON = null) {
let okMsg = "Sent Successfully.";
let pushoverlink = "https://api.pushover.net/1/messages.json"
let pushoverlink = "https://api.pushover.net/1/messages.json";
try {
if (heartbeatJSON == null) {
let data = {
"message": "<b>Uptime Kuma Pushover testing successful.</b>",
"message": msg,
"user": notification.pushoveruserkey,
"token": notification.pushoverapptoken,
"sound": notification.pushoversounds,
@ -21,8 +21,8 @@ class Pushover extends NotificationProvider {
"retry": "30",
"expire": "3600",
"html": 1,
}
await axios.post(pushoverlink, data)
};
await axios.post(pushoverlink, data);
return okMsg;
}
@ -36,11 +36,11 @@ class Pushover extends NotificationProvider {
"retry": "30",
"expire": "3600",
"html": 1,
}
await axios.post(pushoverlink, data)
};
await axios.post(pushoverlink, data);
return okMsg;
} catch (error) {
this.throwGeneralAxiosError(error)
this.throwGeneralAxiosError(error);
}
}

@ -4,7 +4,7 @@
<label for="language" class="form-label">
{{ $t("Language") }}
</label>
<select id="language" v-model="$i18n.locale" class="form-select">
<select id="language" v-model="$root.language" class="form-select">
<option
v-for="(lang, i) in $i18n.availableLocales"
:key="`Lang${i}`"
@ -116,14 +116,8 @@
</template>
<script>
import { setPageLocale } from "../../util-frontend";
export default {
watch: {
"$i18n.locale"() {
localStorage.locale = this.$i18n.locale;
setPageLocale();
},
},
};
</script>

@ -122,6 +122,7 @@
<HiddenInput
id="steamAPIKey"
v-model="settings.steamAPIKey"
autocomplete="one-time-code"
/>
<div class="form-text">
{{ $t("steamApiKeyDescription") }}

@ -1,62 +1,45 @@
import { createI18n } from "vue-i18n/index";
import daDK from "./languages/da-DK";
import deDE from "./languages/de-DE";
import en from "./languages/en";
import esEs from "./languages/es-ES";
import etEE from "./languages/et-EE";
import fa from "./languages/fa";
import frFR from "./languages/fr-FR";
import hu from "./languages/hu";
import hrHR from "./languages/hr-HR";
import itIT from "./languages/it-IT";
import idID from "./languages/id-ID";
import ja from "./languages/ja";
import koKR from "./languages/ko-KR";
import nlNL from "./languages/nl-NL";
import nbNO from "./languages/nb-NO";
import pl from "./languages/pl";
import ptBR from "./languages/pt-BR";
import bgBG from "./languages/bg-BG";
import ruRU from "./languages/ru-RU";
import sr from "./languages/sr";
import srLatn from "./languages/sr-latn";
import svSE from "./languages/sv-SE";
import trTR from "./languages/tr-TR";
import vi from "./languages/vi";
import zhCN from "./languages/zh-CN";
import zhHK from "./languages/zh-HK";
import zhTW from "./languages/zh-TW";
const languageList = {
"zh-HK": "繁體中文 (香港)",
"bg-BG": "Български",
"de-DE": "Deutsch (Deutschland)",
"nl-NL": "Nederlands",
"nb-NO": "Norsk",
"es-ES": "Español",
"fa": "Farsi",
"pt-BR": "Português (Brasileiro)",
"fr-FR": "Français (France)",
"hu": "Magyar",
"hr-HR": "Hrvatski",
"it-IT": "Italiano (Italian)",
"id-ID": "Bahasa Indonesia (Indonesian)",
"ja": "日本語",
"da-DK": "Danish (Danmark)",
"sr": "Српски",
"sr-latn": "Srpski",
"sv-SE": "Svenska",
"tr-TR": "Türkçe",
"ko-KR": "한국어",
"ru-RU": "Русский",
"zh-CN": "简体中文",
"pl": "Polski",
"et-EE": "eesti",
"vi": "Vietnamese",
"zh-TW": "繁體中文 (台灣)"
};
let messages = {
en,
"zh-HK": zhHK,
"bg-BG": bgBG,
"de-DE": deDE,
"nl-NL": nlNL,
"nb-NO": nbNO,
"es-ES": esEs,
"fa": fa,
"pt-BR": ptBR,
"fr-FR": frFR,
"hu": hu,
"hr-HR": hrHR,
"it-IT": itIT,
"id-ID" : idID,
"ja": ja,
"da-DK": daDK,
"sr": sr,
"sr-latn": srLatn,
"sv-SE": svSE,
"tr-TR": trTR,
"ko-KR": koKR,
"ru-RU": ruRU,
"zh-CN": zhCN,
"pl": pl,
"et-EE": etEE,
"vi": vi,
"zh-TW": zhTW
};
for (let lang in languageList) {
messages[lang] = {
languageName: languageList[lang]
};
}
const rtlLangs = ["fa"];
export const currentLocale = () => localStorage.locale
@ -73,5 +56,5 @@ export const i18n = createI18n({
fallbackLocale: "en",
silentFallbackWarn: true,
silentTranslationWarn: true,
messages: languageList,
messages: messages,
});

@ -5,10 +5,7 @@
3. Run `npm run update-language-files`. You can also use this command to check if there are new strings to translate for your language.
4. Your language file should be filled in. You can translate now.
5. Translate `src/components/settings/Security.vue` (search for a `Confirm` component with `rel="confirmDisableAuth"`).
6. Import your language file in `src/i18n.js` and add it to `languageList` constant.
6. Add it into `languageList` constant.
7. 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. 😏

@ -89,7 +89,7 @@ export default {
Timezone: "Часова зона",
"Search Engine Visibility": "Видимост за търсачки",
"Allow indexing": "Разреши индексиране",
"Discourage search engines from indexing site": "Обезкуражи индексирането на сайта от търсачките",
"Discourage search engines from indexing site": "Не позволявай на търсачките да индексират този сайт",
"Change Password": "Промени парола",
"Current Password": "Текуща парола",
"New Password": "Нова парола",
@ -307,4 +307,5 @@ export default {
PasswordsDoNotMatch: "Паролите не съвпадат.",
"Current User": "Текущ потребител",
recent: "Скорошни",
shrinkDatabaseDescription: "Инициира \"VACUUM\" за \"SQLite\" база данни. Ако Вашата база данни е създадена след версия 1.10.0, \"AUTO_VACUUM\" функцията е активна и това действие не нужно.",
};

@ -12,6 +12,7 @@ import mobile from "./mixins/mobile";
import publicMixin from "./mixins/public";
import socket from "./mixins/socket";
import theme from "./mixins/theme";
import lang from "./mixins/lang";
import { router } from "./router";
import { appName } from "./util.ts";
@ -22,6 +23,7 @@ const app = createApp({
mobile,
datetime,
publicMixin,
lang,
],
data() {
return {

@ -0,0 +1,33 @@
import { currentLocale } from "../i18n";
import { setPageLocale } from "../util-frontend";
const langModules = import.meta.glob("../languages/*.js");
export default {
data() {
return {
language: currentLocale(),
};
},
async created() {
if (this.language !== "en") {
await this.changeLang(this.language);
}
},
watch: {
async language(lang) {
await this.changeLang(lang);
},
},
methods: {
async changeLang(lang) {
let message = (await langModules["../languages/" + lang + ".js"]()).default;
this.$i18n.setLocaleMessage(lang, message);
this.$i18n.locale = lang;
localStorage.locale = lang;
setPageLocale();
}
}
};

@ -44,8 +44,20 @@ export default {
settings: {},
settingsLoaded: false,
};
},
computed: {
currentPage() {
let pathEnd = useRoute().path.split("/").at(-1);
if (pathEnd == "settings" || pathEnd == null) {
return "general";
}
return pathEnd;
},
subMenus: {
subMenus() {
return {
general: {
title: this.$t("General"),
},
@ -67,17 +79,7 @@ export default {
about: {
title: this.$t("About"),
},
},
};
},
computed: {
currentPage() {
let pathEnd = useRoute().path.split("/").at(-1);
if (pathEnd == "settings" || pathEnd == null) {
return "general";
}
return pathEnd;
};
},
},

@ -83,6 +83,7 @@ describe("Init", () => {
});
// Settings Page
/*
describe("Settings", () => {
beforeEach(async () => {
await page.goto(baseURL + "/settings");
@ -261,6 +262,7 @@ describe("Init", () => {
// }, { timeout: 3000 });
// });
});
*/
/*
* TODO

Loading…
Cancel
Save