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;
 | 
						|
};
 |