1
0
forked from PGL/Clyde

Reactive Translations

Make Translated text reactive so that when switching lang, text is
reload on the fly

Fixes: #77
This commit is contained in:
Debucquoy Anthony 2024-03-09 19:14:57 +01:00
parent 8fdfb470cb
commit 84fe1df671

View File

@ -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();