Files
sisai-world/views/files/amipro_utils.js
2025-10-06 21:31:13 +09:00

57 lines
1.3 KiB
JavaScript

/**
* amiPro utils
*/
'use strict';
function setI18NText(i18n_map){
for (const key of i18n_map.keys()) {
const elm = $("#"+key);
if(elm){
const lang = window.navigator.language;
var elem = i18n_map.get(key)
var msg = null
if(elem){
msg = elem.get(lang)
if(!msg)msg=elem.get('en-US');
}
if(!msg)msg = key+"-"+lang
$("#"+key).html(msg);
}
}
}
function getI18NText(i18n_map, key){
const lang = window.navigator.language;
var elem = i18n_map.get(key)
var msg = null
if(elem){
msg = elem.get(lang)
if(!msg)msg=elem.get('en-US');
}
if(!msg)msg = key+"-"+lang
return msg
}
function getI18NJsonText(json_text){
const lang = window.navigator.language;
var msg = null
try {
var parsedJson = (typeof json_text == "object")?json_text:JSON.parse(json_text);
msg = parsedJson[lang] || parsedJson['en-US'];
if(!msg && 0<Object.keys(parsedJson).length)msg = parsedJson[Object.keys(parsedJson)[0]];
//TODO: Translate to lang by AI call
} catch (e) {
msg=json_text;
}
return msg
}
function buildI18NJson(text, lang=window.navigator.language) {
//const lang = window.navigator.language;
var json = {};
json[lang] = text;
return JSON.stringify(json);
}