You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
957 B
JavaScript
43 lines
957 B
JavaScript
const path = require("path");
|
|
const electron = require("electron");
|
|
const fs = require("fs");
|
|
let loadedLanguage;
|
|
let userSelectedLanguage = false;
|
|
let locale;
|
|
if (electron.app) {
|
|
locale = electron.app.getLocale();
|
|
} else {
|
|
locale = navigator.language
|
|
}
|
|
|
|
// Check localstorage for language
|
|
if (localStorage.getItem("language")){
|
|
locale = localStorage.getItem("language")
|
|
userSelectedLanguage = true;
|
|
}
|
|
else{
|
|
localStorage.setItem("language", locale.slice(0, 2))
|
|
}
|
|
|
|
module.exports = i18n;
|
|
|
|
function i18n() {
|
|
if (fs.existsSync(path.join(__dirname, locale + ".json"))) {
|
|
loadedLanguage = JSON.parse(
|
|
fs.readFileSync(path.join(__dirname, locale + ".json"), "utf8")
|
|
);
|
|
} else {
|
|
loadedLanguage = JSON.parse(
|
|
fs.readFileSync(path.join(__dirname, "en.json"), "utf8")
|
|
);
|
|
}
|
|
}
|
|
|
|
i18n.prototype.__ = function (phrase) {
|
|
let translation = loadedLanguage[phrase];
|
|
if (translation === undefined) {
|
|
translation = phrase;
|
|
}
|
|
return translation;
|
|
};
|