This is my first contribution so don’t be to hard on me.
I wanted to have a Google translator on a site with flags or drop list, so here is what I came up with...
<?php
/************************
* Google Translate with Flags v.01
*
* AUTHOR
* Islander (Eric Montgomery)
*
* INSTALLATION
* Create a snippet called GoogleTranslateFlags.
* Copy the GoogleTranslateFlags.snippet.php code into it.
* Call snippet with [[GoogleTranslateFlags]] where you want it to appear.
*
* CREDITS
* Based on code from GoogleTranslator by AmazingDiscoveries.
*
************************/
$imgfolder = 'assets/images/languages/';
$sitelink = $modx->config['site_url'].'index.php?id='.$modx->documentIdentifier;
$content = "";
?>
<form action='http://www.google.com/translate'>
<script language='javascript' type='text/javascript'>
<!--
document.write ("<input name=u value="+location.href+" type=hidden>")
// -->
</script><?php
$content .= '<input type="hidden" name="u" value="'.$sitelink.'">';
?>
<noscript><?php
$content .= '<input type="hidden" name="u" value="'.$sitelink.'">';
?></noscript>
<input name='hl' type='hidden' value='en'/>
<input name='ie' type='hidden' value='UTF8'/>
<input name='langpair' type='hidden' value=''/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/Andorra-Catalan-ad_flag.png' title='Andorran / Catalan' type='image' value='en|ca' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/gse_multipart12399.png' title='العربية / Arabic' type='image' value='en|ar' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/Bulgaria-bg_flag.png' title=' България / Bulgaria' type='image' value='en|bg' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/gse_multipart12397.png' title='中文(简体) / Chinese (Simplified)' type='image' value='en|zh-CN' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/gse_multipart12398.png' title='中文(繁体) / Chinese (Traditional)' type='image' value='en|zh-TW' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/Croatia-hr_flag.png' title='Hrvatska / Croatian' type='image' value='en|hr' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/CzechRepublic-cs_flag.png' title='Česká Republika / Czech Republic ' type='image' value='en|cs' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/Denmark-da_flag.png' title='Danmark / Denmark' type='image' value='en|da' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/Finland-fi_flag.png' title='Suomi / Finnish' type='image' value='en|fi' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/gse_multipart12413.png' title='Français / French' type='image' value='en|fr' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/gse_multipart12400.png' title='Deutsch / German' type='image' value='en|de' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/GreekFlag36x24.png' title='Ελλάς / Greek' type='image' value='en|el' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/Israel-il_flag.png' title='ישראל / Hebrew' type='image' value='en|iw' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/India-hi_flag.png' title='Hindi / India' type='image' value='en|hi' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/Indonesia-id_flag.png' title='Bahasa / Indonesian' type='image' value='en|id' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/gse_multipart12401.png' title='Italiano / Italian' type='image' value='en|it' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/gse_multipart12402.png' title='日本語 / Japanese' type='image' value='en|ja' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/gse_multipart12403.png' title='한국어 / Korean' type='image' value='en|ko' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/Latvia-lv_flag.png' title='Latvija / Latvian' type='image' value='en|lv' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/Lithuania-lt_flag.png' title='Lietuvos / Lithuania' type='image' value='en|lt' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/Netherlands-nl_flag.png' title='Nederland / Dutch' type='image' value='en|nl' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/Norway-no_flag.png' title='Norge / Norwegian' type='image' value='en|no' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/Pilipnas-ph_flag.png' title='Pilipinas / Philipines' type='image' value='en|tl' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/PolishFlag36x24.png' title='Polska / Polish' type='image' value='en|pl' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/gse_multipart12404.png' title='Português / Portuguese' type='image' value='en|pt' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/RomainianFlag36x24.png' title='România / Romanian' type='image' value='en|ro' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/gse_multipart12405.png' title='Русский / Russian' type='image' value='en|ru' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/Serbia-si_flag.png' title='Србија / Serbia' type='image' value='en|sr' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/Slovak-sk_flag.png' title='Slovenčina / Slovak' type='image' value='en|sk' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/Slovenia-si_flag.png' title='Slovenija / Slovenia' type='image' value='en|sl' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/gse_multipart12407.png' title='Español / Spanish' type='image' value='en|es' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/Sweden-se_flag.png' title='Sverige / Swedish' type='image' value='en|sv' width='30'/>
<input height='20' name='langpair2' onclick='this.form.langpair.value=this.value' src='assets/images/flags/Ukraine-ua_flag.png' title='Україна / Ukraine' type='image' value='en|uk' width='30'/>
<input height='20' name='langpair' onclick='this.form.langpair.value=this.value' src='assets/images/flags/Vietnam-vn_flag.png' title='tiếng Việt / Vietnam' type='image' value='en|vi' width='30'/>
<?php
$content .= '</form>';
return $content;
?>
or with a droplist...
<?php
/************************
* Google Translate DropList v.01
*
* AUTHOR
* Islander (Eric Montgomery)
*
* INSTALLATION
* Create a snippet called GoogleTranslateDropList.
* Copy the GoogleTranslateFlags.snippet.php code into it.
* Call snippet with [[GoogleTranslateDropList]] where you want it to appear.
*
* CREDITS
* Based on code from GoogleTranslator by AmazingDiscoveries.
*
************************/
$imgfolder = 'assets/images/languages/';
$sitelink = $modx->config['site_url'].'index.php?id='.$modx->documentIdentifier;
$content = "";
?>
<div style="color:#3B541B; font-size:15px; font-weight:800; margin:10px 7px 5px -6px;">Translate Website</div>
<form action="http://translate.google.com/translate" method="get" name="translate_form" target="_top">
<select style="FONT-SIZE: 8pt; WIDTH: 115px; left: 20px;" name="hl" onchange="this.form.submit();">
<option value="de">deutsch</option>
<option value="pt">português</option>
<option value="fr">français</option>
<option value="ja">日本語</option>
<option value="ar">عَرَبيْ</option>
<option value="it">italiano</option>
<option value="ru">pусский</option>
<option value="po">polski</option>
<option value="zh-CN">中文</option>
<option value="es">español</option>
<option value="ko">한국어</option>
<option value="nl">nederlands</option>
<option value="hi">हिन्दी </option>
<option value="el">Ελληνική</option>
<option value="ro">română</option>
</select>
<input type="hidden" value="en" name="sl" />
<?php
$content .= '<input type="hidden" name="u" value="'.$sitelink.'">';
$content .= '</form>';
return $content;
?>
I’m sure these could use some cleanup, but seem to work fine as is.
If anyone wants to add to it, please do.
Flags in .zip below.