|
|
| (4 intermediate revisions by the same user not shown) |
| Line 1: |
Line 1: |
| /* Any JavaScript here will be loaded for all users on every page load. */ | | /* Any JavaScript here will be loaded for all users on every page load. */ |
|
| |
|
| | /* Widget de Tradução GTranslate */ |
| $(document).ready(function() { | | $(document).ready(function() { |
| if ($('#p-navigation').length && !$('#custom-lang-selector').length) { | | if ($('#p-navigation').length) { |
|
| | if (!$('.gtranslate_wrapper').length) { |
| // Lista de idiomas suportados
| | $('#p-navigation').prepend('<div class="gtranslate_wrapper"></div>'); |
| var languages = [
| | } |
| { code: 'en', name: 'English' }, | |
| { code: 'pt', name: 'Portuguese' },
| |
| { code: 'es', name: 'Spanish' },
| |
| { code: 'fr', name: 'French' },
| |
| { code: 'de', name: 'German' },
| |
| { code: 'it', name: 'Italian' },
| |
| { code: 'nl', name: 'Dutch' },
| |
| { code: 'pl', name: 'Polish' },
| |
| { code: 'ja', name: 'Japanese' }
| |
| ];
| |
|
| |
|
| // Identificar idioma atual pela cookie do GTranslate (ou 'en' por defeito) | | window.gtranslateSettings = { |
| var currentLangCode = (document.cookie.match(/googtrans=\/en\/([a-z]{2})/) || [])[1] || 'en';
| | "default_language": "en", |
| var currentLangObj = languages.find(l => l.code === currentLangCode) || languages[0];
| | "languages": ["en", "pt", "es", "fr", "de", "it", "nl", "pl", "ja"], |
| | | "wrapper_selector": ".gtranslate_wrapper" |
| // Construir HTML do Dropdown Customizado
| |
| var optionsHtml = '';
| |
| languages.forEach(function(lang) {
| |
| var isSelected = lang.code === currentLangObj.code ? ' selected' : ''; | |
| optionsHtml += '<div class="custom-lang-option' + isSelected + '" data-code="' + lang.code + '">' + lang.name + '</div>'; | |
| });
| |
| | |
| var dropdownHtml =
| |
| '<div class="gtranslate_wrapper" id="custom-lang-selector">' +
| |
| '<div class="custom-lang-trigger">' +
| |
| '<span class="custom-lang-current">' + currentLangObj.name + '</span>' +
| |
| '<span class="custom-lang-arrow"></span>' +
| |
| '</div>' +
| |
| '<div class="custom-lang-menu">' + optionsHtml + '</div>' +
| |
| '<div id="google_translate_element" style="display:none;"></div>' +
| |
| '</div>'; | |
| | |
| $('#p-navigation').prepend(dropdownHtml);
| |
| | |
| // Carregar o Widget Google Translate Base
| |
| window.googleTranslateElementInit = function() {
| |
| new google.translate.TranslateElement({pageLanguage: 'en'}, 'google_translate_element');
| |
| }; | | }; |
| $.getScript('//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit');
| |
|
| |
| // Eventos de Abrir/Fechar e Selecionar
| |
| var $wrapper = $('#custom-lang-selector');
| |
| var $trigger = $wrapper.find('.custom-lang-trigger');
| |
| var $menu = $wrapper.find('.custom-lang-menu');
| |
|
| |
| $trigger.on('click', function(e) {
| |
| e.stopPropagation();
| |
| $wrapper.toggleClass('open');
| |
| });
| |
|
| |
|
| $(document).on('click', function() { | | $.getScript('https://cdn.gtranslate.net/widgets/latest/dropdown.js'); |
| $wrapper.removeClass('open');
| |
| });
| |
| | |
| $wrapper.on('click', '.custom-lang-option', function() {
| |
| var code = $(this).data('code');
| |
| var name = $(this).text();
| |
| | |
| $('.custom-lang-option').removeClass('selected');
| |
| $(this).addClass('selected');
| |
| $('.custom-lang-current').text(name);
| |
| $wrapper.removeClass('open');
| |
| | |
| // Aplicar tradução
| |
| document.cookie = "googtrans=/en/" + code + "; path=/; domain=" + location.hostname;
| |
| document.cookie = "googtrans=/en/" + code + "; path=/;";
| |
| location.reload();
| |
| });
| |
| } | | } |
| }); | | }); |
|
| |
|
| |
|
|
| |
|