64 lines
1.4 KiB
JavaScript
64 lines
1.4 KiB
JavaScript
(function() {
|
|
// globals
|
|
MyApp.Utils = {};
|
|
|
|
// utility functions
|
|
|
|
// app functions
|
|
|
|
// events
|
|
|
|
// app startup
|
|
|
|
//configure noty
|
|
Noty.overrideDefaults({
|
|
layout: 'topRight',
|
|
theme: 'bootstrap-v4',
|
|
closeWith: ['click', 'button']
|
|
});
|
|
|
|
// set language
|
|
i18next
|
|
.use(i18nextBrowserLanguageDetector)
|
|
.use(i18nextXHRBackend)
|
|
.init({
|
|
detection: {
|
|
order: ['querystring', 'cookie', 'navigator'],
|
|
lookupQuerystring: 'lang',
|
|
lookupCookie: 'current-language',
|
|
caches: ['cookie'],
|
|
cookieMinutes: 5256000,
|
|
cookieOptions: {samesite: 'lax'}
|
|
},
|
|
whitelist: ['en', 'de', 'it'],
|
|
load: 'languageOnly',
|
|
fallbackLng: 'it',
|
|
backend: {
|
|
loadPath: '/i18n/{{lng}}.json'
|
|
}
|
|
})
|
|
.then(function() {
|
|
// language initialized
|
|
// if there is a lang query string parameter, remove it and reload: we save the language in a cookie so the url stays nice
|
|
var urlQueryString = new URLSearchParams(window.location.search);
|
|
if (urlQueryString.has('lang')) {
|
|
urlQueryString.delete('lang');
|
|
var newUrl = [location.protocol, '//', location.host, location.pathname].join('') +
|
|
(urlQueryString.toString() !== '' ? '?' + urlQueryString.toString() : '') +
|
|
window.location.hash;
|
|
window.location = newUrl;
|
|
return;
|
|
}
|
|
|
|
// render main shell
|
|
MyApp.Shell.renderShell()
|
|
.then(function() {
|
|
//setup routing
|
|
page({
|
|
hashbang: true
|
|
});
|
|
});
|
|
});
|
|
|
|
})();
|