{"id":53639,"date":"2021-10-17T03:01:13","date_gmt":"2021-10-16T17:01:13","guid":{"rendered":"http:\/\/www.rjmprogramming.com.au\/ITblog\/?p=53639"},"modified":"2021-10-16T09:24:00","modified_gmt":"2021-10-15T23:24:00","slug":"google-translate-landing-page-translate-update-tutorial","status":"publish","type":"post","link":"https:\/\/www.rjmprogramming.com.au\/ITblog\/google-translate-landing-page-translate-update-tutorial\/","title":{"rendered":"Google Translate Landing Page Translate Update Tutorial"},"content":{"rendered":"<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/index.htm\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Google Translate Landing Page Translate Update Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/lp_lang_ext.jpg\" title=\"Google Translate Webpage Translate Update Tutorial\"  style=\"float:left;\"   \/><\/a><p class=\"wp-caption-text\">Google Translate Landing Page Translate Update Tutorial<\/p><\/div>\n<p>The recent <a title='Google Translate Landing Page Translate Tutorial' href='#gtlptt'>Google Translate Landing Page Translate Tutorial<\/a> &#8230;<\/p>\n<ul>\n<li>updated our &#8220;interface&#8221; to the great <a target=_blank title='Google Translate' href='http:\/\/translate.google.com'>Google Translate<\/a> strategy for the RJM Programming <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/index.htm\" title=\"Click picture\">Landing Page<\/a> webpage group &#8230; but &#8230;<\/li>\n<li>did not update to the latest <a target=_blank title='Google Translate language code list' href='http:\/\/cloud.google.com\/translate\/docs\/languages'>&#8220;language code list&#8221;<\/a> to the great <a target=_blank title='Google Translate' href='http:\/\/translate.google.com'>Google Translate<\/a> for the RJM Programming <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/index.htm\" title=\"Click picture\">Landing Page<\/a> webpage group<\/li>\n<\/ul>\n<p> &#8230; and so, we are here today, with our start to remedies for this (Javascript DOM, via <a target=_blank title='Ajax info via W3schools' href='http:\/\/www.w3schools.com\/js\/js_ajax_intro.asp'>Ajax<\/a>, change below) &#8230;<\/p>\n<p><code><br \/>\nvar myxhr=null;<br \/>\n<br \/>\nfunction backin() {<br \/>\n<br \/> <br \/>\n  if (myxhr.readyState == 4) {<br \/>\n    if (myxhr.status == 200) {<br \/>\n      if (myxhr.responseText) {<br \/>\n       if (document.getElementById('language')) {<br \/>\n        \/\/alert(myxhr.responseText);<br \/>\n        var mhs=myxhr.responseText.replace(\/\\&lt;\\\/code\\&gt;\\&lt;\\\/td\\&gt;\/g,'&lt;&gt;').split('&gt;&lt;code translate=\"no\" dir=\"ltr\"&gt;');<br \/>\n        if (mhs.length &gt; 1) {<br \/>\n          var thiscodeis='', thisdescis='';<br \/>\n          var wasih=document.getElementById('language').innerHTML;<br \/>\n          var outih=wasih.split('&lt;\/option&gt;')[0] + '&lt;\/option&gt;';<br \/>\n          var origih=wasih.replace(outih, '');<br \/>\n          for (var iuh=1; iuh&lt;mhs.length; iuh++) {<br \/>\n            thisdescis=mhs[eval(-1 + iuh)].split('&lt;td&gt;')[eval(-1 + mhs[eval(-1 + iuh)].split('&lt;td&gt;').length)];<br \/>\n            \/\/console.log('first thisdescis=' + thisdescis + ' and mhs[eval(-1 + iuh)]=' + mhs[eval(-1 + iuh)].slice(-200));<br \/>\n            thisdescis=thisdescis.split('&lt;')[0];<br \/>\n            thiscodeis=mhs[iuh].split('&lt;')[0].split('(')[0].trim();<br \/>\n            \/\/console.log('thiscodeis=' + thiscodeis + ' and thisdescis=' + thisdescis + ' and mhs[eval(-1 + iuh)]=' + mhs[eval(-1 + iuh)].slice(-200));<br \/>\n            if (wasih.toLowerCase().indexOf(' value=\"' + thiscodeis.toLowerCase() + '\"') == -1 && wasih.toLowerCase().indexOf(thisdescis.toLowerCase()) == -1) {<br \/>\n            outih+='&lt;option value=\"' + thiscodeis + '\"&gt;' + thisdescis + ' &amp;#10024;&lt;\/OPTION&gt;';<br \/>\n            } else {<br \/>\n            outih+='&lt;option value=\"' + thiscodeis + '\"&gt;' + thisdescis + '&lt;\/OPTION&gt;';<br \/>\n            }<br \/>\n          }<br \/>\n          if (outih.indexOf('\/OPTION') != -1 && origih.toLowerCase() != outih.toLowerCase()) {<br \/>\n            document.getElementById('language').innerHTML=outih.replace('&lt;\/option&gt;', ' &amp;#10024;&lt;\/OPTION&gt;');<br \/>\n            document.getElementById('language').style.maxWidth='150px';<br \/>\n          }<br \/>\n        }<br \/>\n       }<br \/>\n      }<br \/>\n    }<br \/>\n  }<br \/>\n}<br \/>\n<br \/>\nfunction ajaxit() {<br \/>\n  var xurl = '\/\/cloud.google.com\/translate\/docs\/languages';<br \/>\n  \/\/alert(1);<br \/>\n  myxhr = new XMLHttpRequest();<br \/>\n  if (myxhr) {<br \/>\n  \/\/alert(2);<br \/>\n    myxhr.onreadystatechange = backin;<br \/>\n    myxhr.open('GET', 'getme.php?getme=' + encodeURIComponent(xurl), true);<br \/>\n    myxhr.send(null);<br \/>\n  }<br \/>\n}<br \/>\n<br \/>\nfunction refreshl() {<br \/>\n  if (document.getElementById('language')) {<br \/>\n    ajaxit();<br \/>\n  }<br \/>\n}<br \/>\n<br \/>\nsetTimeout(refreshl, 5000);<br \/>\n<\/code><\/p>\n<p>It&#8217;s the start that does not ingrain the webpage HTML to any great permanence, and that is for another &#8220;PHP involvement&#8221; day.<\/p>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=_blank  href='\/\/www.rjmprogramming.com.au\/ITblog\/google-translate-landing-page-translate-update-tutorial\/'>Google Translate Landing Page Translate Update Tutorial<\/a>.<\/p-->\n<hr>\n<p id='gtlptt'>Previous relevant <a target=_blank title='Google Translate Landing Page Translate Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/google-translate-landing-page-translate-tutorial\/'>Google Translate Landing Page Translate Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/index.htm\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Google Translate Landing Page Translate Tutorial\" src=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/landing_page_blog_language.gif\" title=\"Google Translate Webpage Translate Tutorial\"  style=\"float:left;\"   \/><\/a><p class=\"wp-caption-text\">Google Translate Landing Page Translate Tutorial<\/p><\/div>\n<p>Yesterday&#8217;s &#8230;<\/p>\n<ul>\n<li><a title='Google Translate Webpage Translate Tutorial' href='#gtwtt'>Google Translate Webpage Translate Tutorial<\/a> was the major part of RJM Programming&#8217;s <a target=_blank title='Google Translate' href='http:\/\/translate.google.com'>Google Translate<\/a> strategy change <font size=2>(ie. getting it working again <\/font><font size=1>&#8230; doh!<\/font><font size=1>)<\/font> &#8230; but it&#8217;s not the whole story &#8230; and another part is &#8230;<\/li>\n<li>today we extend that strategy to change the <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/\">RJM Programming Landing Page<\/a> <a target=_blank title='Google Translate' href='http:\/\/translate.google.com'>Google Translate<\/a> interfacing to change from a &#8220;Landing Page content&#8221; strategy to a &#8220;Navigate to WordPress Blog&#8221; strategy <font size=1>(feeding into yesterday&#8217;s thinking)<\/font>, our justification being that the better content of the RJM Programming domain sits within the WordPress Blog we support and maintain<\/li>\n<\/ul>\n<p> &#8230; so there, ngarrrrgh!<\/p>\n<p>But <font size=1>(growing up quickly)<\/font> we see a better arrangement here, just adding the prefix &#8220;<font color=blue>Blog<\/font>&#8221; onto the old (just) &#8220;Language&#8221; labelled dropdown to modify the &#8220;new &#8220;<font color=blue>Blog<\/font> Language&#8221; (to end up with HTML snippet &lt;option value=&#8221;&#8221;&gt;<font color=blue>Blog<\/font> Language&lt;\/option&gt;) dropdown&#8217;s Javascript &#8220;onchange&#8221; event logic &#8230;<\/p>\n<p><code><br \/>\n\/\/ To ...<br \/>\nfunction ChangeLcodeNow(){<br \/>\n\/\/&lt;![CDATA[<br \/>\n var val = document.getElementById('language');<br \/>\n if (val.value.length != 0 && val.value.indexOf('en') == (0 - 1)) {<br \/>\n    var pprefix = val[val.selectedIndex].id;<br \/>\n    var dd=new Date();<br \/>\n    window.open('\/\/www-rjmprogramming-com-au.translate.goog\/ITblog\/' + dd.getFullYear() + '\/' + ('0' + eval(1 + eval('' + dd.getMonth()))).slice(-2) + '\/' + ('0' + eval(0 + eval('' + dd.getDate()))).slice(-2) + '\/?_x_tr_sl=en&_x_tr_hl=en-GB&_x_tr_pto=nui&_x_tr_tl=' + val.value, '_blank');<br \/>\n }<br \/>\n\/\/]]&gt;<br \/>\n}<br \/>\n<br \/> <br \/>\n\/\/ ... From ...<br \/>\nfunction olderChangeLcodeNow(){<br \/>\n\/\/&lt;![CDATA[<br \/>\n var val = document.getElementById('language');<br \/>\n if (val.value.length != 0 && val.value.indexOf('en') == (0 - 1)) {<br \/>\n   var pprefix = val[val.selectedIndex].id;<br \/>\n   windowopen('http:\/\/translate.google.com\/translate?sl=en&js=n&prev=_t&hl=en&ie=UTF-8&layout=2&eotf=1&u=http%3A%2F%2Fwww.rjmprogramming.com.au%2Findex.html&tl=' + val.value, '_blank');<br \/>\n }<br \/>\n\/\/]]&gt;<br \/>\n}<br \/>\n<\/code><\/p>\n<p>Again, <a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/landing_page_blog_language.gif\">not too onerous<\/a>!<\/p>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=_blank  href='\/\/www.rjmprogramming.com.au\/ITblog\/new-google-translate-webpage-translate-tutorial\/'>Google Translate Landing Page Translate Tutorial<\/a>.<\/p-->\n<hr>\n<p id='gtwtt'>Previous relevant <a target=_blank title='Google Translate Webpage Translate Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/google-translate-webpage-translate-tutorial\/'>Google Translate Webpage Translate Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp_gt_fix.gif\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Google Translate Webpage Translate Tutorial\" src=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp_gt_fix.gif\" title=\"Google Translate Webpage Translate Tutorial\"  style=\"float:left;\"   \/><\/a><p class=\"wp-caption-text\">Google Translate Webpage Translate Tutorial<\/p><\/div>\n<p>We really like the way <a target=_blank title='Google Translate' href='http:\/\/translate.google.com'>Google Translate<\/a> can language translate whole webpages for URLs of choice, sometimes.  We use it here at this blog, but sometime into the past &#8230; we cannot recall <font size=1>(sorrrrrryyyyyyyyy!)<\/font> &#8230; the arrangements of use of this great functionality changed, and today we want to go over what we did for this blog to fix some of this interfacing.<\/p>\n<p>It was in <font size=1>good ol&#8217; WordPress TwentyTen theme&#8217;s<\/font> header.php <font color=blue>we made the change<\/font> to facilitate this &#8220;reconnection&#8221; to this great functionality &#8230;<\/p>\n<p>&lt;?php<br \/>\n<code><br \/>\nfunction ChangeLcodeNow(){<br \/>\n var val = document.getElementById('language');<br \/>\n \/\/alert(val.value);<br \/>\n if (val.value.length != 0 && val.value.indexOf('en') == (0 - 1)) {<br \/>\n \/\/alert(val.value);<br \/>\n var pprefix = val[val.selectedIndex].id;<br \/>\n&lt;?php<br \/>\n   $p316 = \"316\";<br \/>\n   $pprefix = \"\";<br \/>\n   if (strpos($_SERVER['QUERY_STRING'], \"p=0\") !== false) {<br \/>\n   $pprefix = \"\";<br \/>\n   } else {<br \/>\n   if (isset($_GET['p'])) {<br \/>\n     if (strpos($_GET['p'], \"304\") !== false) {<br \/>\n     $p316 = \"316\";<br \/>\n     } else {<br \/>\n     $p316 = $_GET['p'];<br \/>\n     }<br \/>\n   }<br \/>\n<br \/>\n$isiPad = (bool) strpos($_SERVER['HTTP_USER_AGENT'],'iPad');<br \/>\nif ($isiPad === false) {<br \/>\n  $isiPad = (bool) strpos($_SERVER['HTTP_USER_AGENT'],'iPhone');<br \/>\n}<br \/>\nif ($isiPad === false) {<br \/>\n  $isiPad = (bool) strpos($_SERVER['HTTP_USER_AGENT'],'Android');<br \/>\n}<br \/>\n<br \/>\n   <font color=blue>if (1 == 1) {    \/\/                                                                      _x_tr_sl=en&_x_tr_tl=de&_x_tr_hl=en-GB&_x_tr_pto=nui<br \/>\n   echo \"  window.open('\/\/www-rjmprogramming-com-au.translate.goog\/ITblog?p=' + pprefix + '&_x_tr_sl=en&_x_tr_hl=en-GB&_x_tr_pto=nui&_x_tr_tl=' + val.value, '_top'); \" . \"\\n\";<br \/>\n   } else {<\/font><br \/>\n   if ($isiPad) {<br \/>\n   \/\/echo \"  window.open('\/\/translate.google.com\/translate?sl=en&js=n&prev=_t&hl=en&ie=UTF-8&layout=2&eotf=1&u=http%3A%2F%2Fwww.rjmprogramming.com.au%2Fwordpress%2F%3Fp%3D' + pprefix + '\".$p316.\"&tl=' + val.value, '_top'); \" . \"\\n\";<br \/>\n   echo \"  window.open('\/\/translate.google.com\/translate?sl=en&js=n&prev=_t&hl=en&ie=UTF-8&layout=2&eotf=1&u=http%3A%2F%2Fwww.rjmprogramming.com.au%2Fwordpress%2F%3Fp%3D' + pprefix + '\".$p316.\"&tl=' + val.value, '_top'); \" . \"\\n\";<br \/>\n   } else {<br \/>\n   \/\/echo \"window.location.href = '\/\/translate.google.com\/translate?sl=en&js=n&prev=_t&hl=en&ie=UTF-8&layout=2&eotf=1&u=http%3A%2F%2Fwww.rjmprogramming.com.au%2Fwordpress%2F%3Fp%3D' + pprefix + '\".$p316.\"&tl=' + val.value; \" . \"\\n\";<br \/>\n   echo \"window.location.href = '\/\/translate.google.com\/translate?sl=en&js=n&prev=_t&hl=en&ie=UTF-8&layout=2&eotf=1&u=http%3A%2F%2Fwww.rjmprogramming.com.au%2Fwordpress%2F%3Fp%3D' + pprefix + '\".$p316.\"&tl=' + val.value; \" . \"\\n\";<br \/>\n   }<br \/>\n   }<br \/>\n   <font color=blue>}<\/font><br \/>\n?&gt;<br \/>\n   \/\/window.open('\/\/translate.google.com\/translate?sl=en&js=n&prev=_t&hl=en&ie=UTF-8&layout=2&eotf=1&u=http%3A%2F%2Fwww.rjmprogramming.com.au%2Fwordpress&tl=' + val.value, '_blank');<br \/>\n \/\/alert(\"yes\" + val.value);<br \/>\n }<br \/>\n}<br \/>\n<\/code><br \/>\n?&gt;<\/p>\n<p>Not too bruising!<\/p>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=_blank  href='\/\/www.rjmprogramming.com.au\/ITblog\/google-translate-webpage-translate-tutorial\/'>Google Translate Webpage Translate Tutorial<\/a>.<\/p-->\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d53558' onclick='var dv=document.getElementById(\"d53558\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/wordpress\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d53558' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d53564' onclick='var dv=document.getElementById(\"d53564\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/landing-page\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d53564' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d53639' onclick='var dv=document.getElementById(\"d53639\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/ajax\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d53639' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n","protected":false},"excerpt":{"rendered":"<p>The recent Google Translate Landing Page Translate Tutorial &#8230; updated our &#8220;interface&#8221; to the great Google Translate strategy for the RJM Programming Landing Page webpage group &#8230; but &#8230; did not update to the latest &#8220;language code list&#8221; to the &hellip; <a href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/google-translate-landing-page-translate-update-tutorial\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,12,14,37],"tags":[69,354,367,532,576,652,680,1560,997,1319],"class_list":["post-53639","post","type-post","status-publish","format-standard","hentry","category-ajax","category-elearning","category-event-driven-programming","category-tutorials","tag-ajax","tag-dom","tag-dropdown","tag-google-translate","tag-html","tag-javascript","tag-landing-page","tag-language","tag-programming","tag-tutorial"],"_links":{"self":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/53639"}],"collection":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/comments?post=53639"}],"version-history":[{"count":3,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/53639\/revisions"}],"predecessor-version":[{"id":53642,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/53639\/revisions\/53642"}],"wp:attachment":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/media?parent=53639"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/categories?post=53639"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/tags?post=53639"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}