We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 13137
    • 204 Posts
    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.
      • 4310
      • 2,310 Posts
      I take it you didn’t see this Google Translate snippet laugh
      Can’t have too many snippets wink
        • 24104
        • 1 Posts
        Thanks a lot for the "DropList" variant. wink