Skip to content

Commit

Permalink
Load Google Translate on-demand
Browse files Browse the repository at this point in the history
  • Loading branch information
Kristoffer Svanmark committed Aug 9, 2016
1 parent 063ac32 commit 8f108b6
Show file tree
Hide file tree
Showing 4 changed files with 91 additions and 1 deletion.
44 changes: 44 additions & 0 deletions assets/dist/js/packaged.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
var Municipio = {};

var googleTranslateLoaded = false;

if (location.href.indexOf('translate=true') > -1) {
loadGoogleTranslate();
}

$('[href="#translate"]').on('click', function (e) {
loadGoogleTranslate();
});

function googleTranslateElementInit() {
new google.translate.TranslateElement({
pageLanguage: "sv",
Expand All @@ -9,6 +19,40 @@ function googleTranslateElementInit() {
}, "google-translate-element");
}

function loadGoogleTranslate() {
if (googleTranslateLoaded) {
return;
}

$.getScript('//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit', function() {
$('a').each(function () {
var hrefUrl = $(this).attr('href');

// Check if external or non valid url (do not add querystring)
if (hrefUrl.indexOf(location.origin) === -1 || hrefUrl.substr(0, 1) === '#') {
return;
}

hrefUrl = updateQueryStringParameter(hrefUrl, 'translate', 'true');

$(this).attr('href', hrefUrl);
});

googleTranslateLoaded = true;
});
}

function updateQueryStringParameter(uri, key, value) {
var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
var separator = uri.indexOf('?') !== -1 ? "&" : "?";

if (uri.match(re)) {
return uri.replace(re, '$1' + key + "=" + value + '$2');
}

return uri + separator + key + "=" + value;
}

var Municipio = {};

jQuery('.index-php #screen-meta-links').append('\
Expand Down
2 changes: 1 addition & 1 deletion assets/dist/js/packaged.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

44 changes: 44 additions & 0 deletions assets/source/js/app.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
var Municipio = {};

var googleTranslateLoaded = false;

if (location.href.indexOf('translate=true') > -1) {
loadGoogleTranslate();
}

$('[href="#translate"]').on('click', function (e) {
loadGoogleTranslate();
});

function googleTranslateElementInit() {
new google.translate.TranslateElement({
pageLanguage: "sv",
Expand All @@ -8,3 +18,37 @@ function googleTranslateElementInit() {
gaId: HbgPrimeArgs.googleTranslate.gaUA
}, "google-translate-element");
}

function loadGoogleTranslate() {
if (googleTranslateLoaded) {
return;
}

$.getScript('//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit', function() {
$('a').each(function () {
var hrefUrl = $(this).attr('href');

// Check if external or non valid url (do not add querystring)
if (hrefUrl.indexOf(location.origin) === -1 || hrefUrl.substr(0, 1) === '#') {
return;
}

hrefUrl = updateQueryStringParameter(hrefUrl, 'translate', 'true');

$(this).attr('href', hrefUrl);
});

googleTranslateLoaded = true;
});
}

function updateQueryStringParameter(uri, key, value) {
var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
var separator = uri.indexOf('?') !== -1 ? "&" : "?";

if (uri.match(re)) {
return uri.replace(re, '$1' + key + "=" + value + '$2');
}

return uri + separator + key + "=" + value;
}
2 changes: 2 additions & 0 deletions library/Theme/Enqueue.php
Original file line number Diff line number Diff line change
Expand Up @@ -92,10 +92,12 @@ public function script()
wp_register_script('municipio', get_template_directory_uri() . '/assets/dist/js/packaged.min.js', '', '1.0.0', true);
wp_enqueue_script('municipio');

/*
if (get_field('show_google_translate', 'option') !== false && get_field('show_google_translate', 'option') != 'false') {
wp_register_script('google-translate', '//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit', '', '1.0.0', true);
wp_enqueue_script('google-translate');
}
*/
}

public function moveScriptsToFooter()
Expand Down

0 comments on commit 8f108b6

Please sign in to comment.