64 lines
1.5 KiB
JavaScript
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);
|
|
}
|
|
}
|