(function($) { var lang_input_options = { lang: 'en', local_storage: false }; $.langInputInit = function(data) { data = $.extend(lang_input_options, data); lang_input_options = data; // Events $('.lang-input-selector li a').on('click', function() { var $this = $(this).parent(), this_lang = $this.attr('data-lang'); $this.parent().find('li.active').removeClass('active'); $this.addClass('active'); $.langInputChange(null, this_lang); return false; }); }; $.fn.langInputVal = function(val) { var $this = $(this); if (typeof val == 'string' || typeof val == 'object') { if (typeof val == 'string') { val = $.parseJSON(val); } $this.prop('langInputData', val); return true; } var input_data = $this.prop('langInputData'); if (!$this.prop('langInputData')) { input_data = {}; } input_data[lang_input_options.lang] = $this.val(); // return JSON.stringify(input_data); }; $.fn.langInputValSetup = function() { var lang_current = lang_input_options.lang; $(this).find('[data-lang-value]').each(function() { var $this = $(this), this_lang_value = $this.attr('data-lang-value'); this_lang_value = $.parseJSON(this_lang_value); if (!this_lang_value) { this_lang_value = {}; } // $this.prop('langInputData', this_lang_value); if (this_lang_value[lang_current]) { $this.val(this_lang_value[lang_current]); } }); }; $.langInputChange = function(lang_from, lang_to) { if (lang_from == lang_to) { return false; } if (!lang_from) { lang_from = lang_input_options.lang; } var lang_id = lang_input_options.lang; $('.input-lang').each(function() { var $this = $(this), this_lang_data = $this.prop('langInputData'); if (!this_lang_data) { this_lang_data = {}; } if (!this_lang_data[lang_from]) { this_lang_data[lang_from] = this.value } if (!this_lang_data[lang_to]) { this_lang_data[lang_to] = ''; } $this.val(this_lang_data[lang_to]); // $this.prop('langInputData', this_lang_data); }); lang_input_options.lang = lang_to; }; }(jQuery)); $(document).ready(function() { $.langInputInit({ lang: 'en', local_storage: true }); });