Files
amipro-home/files/amipro_utils.js
2025-12-25 21:59:44 +09:00

64 lines
1.5 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 && lang && lang.indexOf('-') > -1) msg = elem.get(lang.split('-')[0]);
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 && lang && lang.indexOf('-') > -1) msg = elem.get(lang.split('-')[0]);
if(!msg) msg = elem.get('en-US');
}
if(!msg)msg = key+"-"+lang
return msg
}
function initRevealAnimations(){
const animated = document.querySelectorAll('.reveal, [data-animate]');
if(!animated || animated.length === 0){
return;
}
if(!('IntersectionObserver' in globalThis)){
for (const el of animated) {
el.classList.add('is-visible');
}
return;
}
const observer = new IntersectionObserver(function(entries){
for (const entry of entries) {
if(entry.isIntersecting){
entry.target.classList.add('is-visible');
observer.unobserve(entry.target);
}
}
}, {threshold: 0.18});
for (const el of animated) {
el.classList.add('reveal');
observer.observe(el);
}
}