Reactive Translations
Make Translated text reactive so that when switching lang, text is reload on the fly Fixes: #77
This commit is contained in:
		@ -10,9 +10,10 @@
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
import { getCookie, setCookie } from './utils.js';
 | 
			
		||||
import { reactive } from 'vue';
 | 
			
		||||
 | 
			
		||||
const default_lang = "EN";
 | 
			
		||||
let langs;
 | 
			
		||||
const langs = reactive({});
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@ -27,8 +28,8 @@ let langs;
 | 
			
		||||
export default function i18n(key, options) {
 | 
			
		||||
	let ret = langs[key];
 | 
			
		||||
	if(options != null){
 | 
			
		||||
		for (let key in options) {
 | 
			
		||||
			ret = ret.replaceAll("$" + key, options[key]);
 | 
			
		||||
		for (let option in options) {
 | 
			
		||||
			ret = ret.replaceAll("$" + option, options[option]);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return ret;
 | 
			
		||||
@ -47,14 +48,12 @@ export async function loadLangs(lang){
 | 
			
		||||
	const content = await (await fetch(filename)).text();
 | 
			
		||||
	const lines = content.split("\n");
 | 
			
		||||
 | 
			
		||||
	let filteredLines = {};
 | 
			
		||||
	for (let line of lines) {
 | 
			
		||||
		if(!line.trim().startsWith("#") && line.trim() != ""){
 | 
			
		||||
			let split = line.indexOf("=")
 | 
			
		||||
			filteredLines[line.substr(0, split)] = line.substr(split+1, line.length);
 | 
			
		||||
			langs[line.substr(0, split)] = line.substr(split+1, line.length);
 | 
			
		||||
		};
 | 
			
		||||
	}
 | 
			
		||||
	langs = filteredLines;
 | 
			
		||||
}
 | 
			
		||||
await loadLangs();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user