如何在网站上使用谷歌翻译而不使用组合框更改语言?

问题描述 投票:0回答:3

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

这是翻译工具的代码:

 <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>

此代码有效,所选值发生变化,但仅此而已!该页面未翻译。我想我必须验证这个操作!有人知道我该怎么做吗?

javascript html translation google-translate
3个回答
4
投票

我为一个开源项目创建了一个 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 的脚本结合使用。

---//translate.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>

---//translate.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

P.s.您当然可以稍微调整脚本,以便用户不必单击“提交”按钮。


0
投票

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


0
投票

手动:网址重定向到谷歌翻译

http://translate.google.com/translate?hl=en&sl=de&tl=es&u=www.google.de&sandbox=1

只能在线使用

这里代码jsfiddle

否则

© www.soinside.com 2019 - 2024. All rights reserved.