blob: f2fab3abf2132a9b5d3f2c0b6a9720ac3daf8856 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
const fs = require("fs");
const enLang = JSON.parse(fs.readFileSync(__dirname + `/lang/en.json`, "utf8"));
let lang = "";
var langObj = {};
function _loadTranslation(forcedlang) {
if (fs.existsSync("viper.json")) {
// Validate viper.json
let opts = {
lang: "en",
autolang: true,
}
try {
opts = JSON.parse(fs.readFileSync("viper.json", "utf8"));
}catch (e) {}
lang = opts.lang;
if (! lang) {lang = "en"}
if (forcedlang) {lang = forcedlang}
if (opts.autolang == false) {
lang = opts.forcedlang;
if (! lang) {lang = "en"}
}
if (! fs.existsSync(__dirname + `/lang/${lang}.json`)) {
if (fs.existsSync(__dirname + `/lang/${lang.replace(/-.*$/, "")}.json`)) {
lang = lang.replace(/-.*$/, "");
} else {
lang = "en";
}
}
} else {
lang = "en";
}
langObj = JSON.parse(fs.readFileSync(__dirname + `/lang/${lang}.json`, "utf8"));
}
module.exports = (string, forcedlang) => {
if (lang === "") {
_loadTranslation();
}
if (forcedlang) {
_loadTranslation(forcedlang);
}
if (langObj[string]) {
return langObj[string];
} else {
if (enLang[string]) {
return enLang[string];
} else {
// If it's not in the default lang either, it returns the
// string, this is absolute fallback.
return string;
}
}
}
|