You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

78 lines
2.8 KiB

/*=========================================================================================
File Name: fallback.js
Description: internationalization library that fallbacks to default languauge.
--------------------------------------------------------------------------------------
Item Name: Modern Admin - Clean Bootstrap 4 Dashboard HTML Template
Version: 1.0
Author: PIXINVENT
Author URL: http://www.themeforest.net/user/pixinvent
==========================================================================================*/
$(document).ready(function(){
/**************************************
* Fallback Language *
**************************************/
// Initialize
i18next
.use(window.i18nextXHRBackend)
.init({
debug: true,
fallbackLng: 'en',
backend: {
loadPath: "../../../app-assets/data/locales/{{lng}}/{{ns}}.json",
},
returnObjects: true
},
function (err, t) {
// resources have been loaded
jqueryI18next.init(i18next, $);
});
// Navbar Language Click Event
$('#lng-fallback').on('click', '.lng-nav li a', function(){
var $this = $(this);
var selected_lng = $this.data('lng');
// Change language
i18next.changeLanguage(selected_lng, function (err, t){
// resources have been loaded
$('.main-menu').localize();
});
// Set Active Class in navigation
$this.parent('li').siblings('li').children('a').removeClass('active');
$this.addClass('active');
// Change lang in dropdown
$('#lng-fallback').find('.lng-dropdown .dropdown-menu a').removeClass('active');
var drop_lng = $('#lng-fallback').find('.lng-dropdown .dropdown-menu a[data-lng="'+selected_lng+'"]').addClass('active');
$('#lng-fallback #dropdown-active-item').html(drop_lng.html());
});
// Dropdown Language Change Event
$('#lng-fallback').on('click', '.lng-dropdown .dropdown-menu a', function(){
var $this = $(this);
var selected_lng = $this.data('lng');
// Change language
i18next.changeLanguage(selected_lng, function (err, t){
// resources have been loaded
$('.main-menu').localize();
});
// Set Active Class in navigation
$('#lng-fallback .lng-nav li a').removeClass('active');
$('#lng-fallback .lng-nav li a[data-lng="'+selected_lng+'"]').addClass('active');
// Change lang in dropdown
$('#lng-fallback').find('.lng-dropdown .dropdown-menu a').removeClass('active');
$this.addClass('active');
$('#lng-fallback #dropdown-active-item').html($this.html());
});
});