如何在不使用组合框更改语言的情况下在网站上使用谷歌翻译器



我想在我的网站上添加多语言功能,所以我添加了谷歌翻译工具(翻译工具),但我想只当用户点击页面中的按钮而不是使用组合时翻译网站!有没有办法在单击按钮时自动更改组合的值?

这是翻译工具的代码:

 <div id="google_translate_element"></div><script type="text/javascript">
      function googleTranslateElementInit() {
      new google.translate.TranslateElement({ pageLanguage: 'it', autoDisplay: false },'google_translate_element');
                                         }
 </script>
 <script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>

我正在尝试更改包含语言的值。

<script>
window.onclick = function() {
    var container = document.getElementById('google_translate_element');
    var select = container.getElementsByTagName('select')[0];
    select.value="en";
}
</script>

代码有效,所选值会更改,但仅此而已!页面未翻译。我认为我必须验证此操作!有人知道我该怎么做吗?

我为一个开源项目创建了一个PHP类:

---//google_translate.php//---- 的源代码

<?php
class google_translate{
    public $original_language;
    public $translate;
    public $domain;

    function __construct ($original_language, $translate, $domain){
        $this->original_language = $original_language;      
        $this->translate = $translate;
        $this->domain = $domain;
    }   
    function translate(){

        $url = "http://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=" . $this->original_language;
        $url .= "&ie=UTF8&prev=_t&rurl=translate.google.com&sl=" .  $this->original_language;
        $url .= "&tl=". $this->translate;
        $url .= "&u=" . $this->domain;

        echo "<script language="javascript">document.location="$url"</script>";             

    }

}
?>

---//google_translate.php//---- 的源代码

此脚本与另一个名为 translate.php 的脚本结合使用。

---//翻译的源代码.php//----

<?php

include_once("include/google_translate.php");
?>
<form method="post">
<table width="640" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><img src="images/language/choose_your_language.jpg" width="640" height="360" /></td>
  </tr>
    <tr>
    <td valign="top" align="left">
    <select name="language">
    <?php echo $default_language; ?>
        <option value="ar">Arabic</option>
        <option value="be">Belarusian</option>
        <option value="bn">Bengali</option>
        <option value="bs">Bosnian</option>
        <option value="bg">Bulgarian</option>
        <option value="ca">Catalan</option>
        <option value="zh-CN">Chinese (China)</option>
        <option value="zh-TW">Chinese (Taiwan)</option>
        <option value="hr">Croatian</option>
        <option value="cs">Czech</option>
        <option value="da">Danish</option>
        <option value="nl">Dutch</option>
        <option value="en">English</option>
        <option value="fil">Filipino</option>
        <option value="fi">Finnish</option>
        <option value="fr">French</option>
        <option value="de">German</option>
        <option value="el">Greek</option>
        <option value="gu">Gujarati</option>
        <option value="he">Hebrew</option>
        <option value="hi">Hindi</option>
        <option value="hu">Hungarian</option>
        <option value="id">Indonesian</option>
        <option value="it">Italian</option>
        <option value="ja">Japanese</option>
        <option value="kn">Kannada</option>
        <option value="ko">Korean</option>
        <option value="lv">Latvian</option>
        <option value="lt">Lithuanian</option>
       <option value="mr">Marathi</option>       
        <option value="no">Norwegian</option>
        <option value="fa">Persian</option>
        <option value="pl">Polish</option>
        <option value="pt-BR">Portuguese (Brazil)</option>
        <option value="pt-PT">Portuguese (Portugal)</option>
        <option value="ro">Romanian</option>
        <option value="ru">Russian</option>
        <option value="sr">Serbian</option>
        <option value="sk">Slovak</option>
        <option value="sl">Slovenian</option>
        <option value="es">Spanish</option>
        <option value="sv">Swedish</option>
        <option value="sw">Swahili</option>
        <option value="ta">Tamil</option>
        <option value="te">Telugu</option>
        <option value="th">Thai</option>
        <option value="tr">Turkish</option>
        <option value="uk">Ukrainian</option>
        <option value="vi">Vietnamese</option>
      </select>
    </td>   
    </tr>
    <tr>
     <td valign="top" align="left">
      <input name="submit" type="submit" value="Translate" /></td>
  </tr>
 </table>
</form>

---//翻译的源代码.php//----

下面您将看到如何在 Horizon QCMS 中使用代码的示例:

---//如何使用代码//----

<?php
include_once('translate.php');
# Google translator
# script generated with Horizon QCMS 4

if(isset($_POST['submit'])){
    $language='en';
    $translate = new google_translate('en', $_POST['language'], 'http://www.hnqcms.com/wiki/');
    $translate->translate();
}

---//如何使用代码//----

可以在这里找到一个工作示例:http://www.hnqcms.com/wiki/index-page-28-category-28.html

附言您当然可以稍微调整脚本,以便用户不必单击"提交"按钮。

手动

重定向至谷歌翻译翻译按钮示例只能在线工作这里代码 JSFIDDLE

否则

我希望这就是你想要的

我发布了这个答案,可能会对你有所帮助。它使用两个javascript函数来设置和获取cookie'googtrans'。如果存在,Google 网站翻译器将获取其值并相应地翻译页面。答案中的情况仅适用于更改语言的链接中的一个标志,但它可以很容易地扩展。

相关内容

最新更新