Php 从谷歌翻译网页链接回原始语言

Php 从谷歌翻译网页链接回原始语言,php,google-translate,Php,Google Translate,我有一个客户的网站,我们通过标志图标提供谷歌翻译的链接。我想提供一个链接,从翻译结果返回到原始语言(英语) 你可以在任何一页的右上角看到我到目前为止所做的工作 如果单击其中一个标志,页面将被翻译,标志图标将替换为英文版本。我希望这个标志链接回来,但正如你所看到的,它没有,因为谷歌翻译正在重写我给它的URL。有人知道怎么避开这件事吗 这是我的密码: <?php echo "<ul class=\"breadcrumb pull-right\">\n"; if (stripos

我有一个客户的网站,我们通过标志图标提供谷歌翻译的链接。我想提供一个链接,从翻译结果返回到原始语言(英语)

你可以在任何一页的右上角看到我到目前为止所做的工作

如果单击其中一个标志,页面将被翻译,标志图标将替换为英文版本。我希望这个标志链接回来,但正如你所看到的,它没有,因为谷歌翻译正在重写我给它的URL。有人知道怎么避开这件事吗

这是我的密码:

<?php

echo "<ul class=\"breadcrumb pull-right\">\n";

if (stripos($_SERVER['HTTP_REFERER'], "translate.google") !== false) { // page has been translated

  if (empty($_SESSION['return_url'])) $_SESSION['return_url'] = "tesselaar.com";

  echo "<li>View page in English:</li>\n";
  echo "<li><a target=\"_top\" href=\"http://" . $_SESSION['return_url'] . "\"><img src=\"/assets/img/flags/gb.gif\" width=\"16\" height=\"11\" title=\"English\" alt=\"English\"></a></li>\n";

} else { // regular site (not translated)

  $_SESSION['return_url'] = $_SERVER['REQUEST_URI'];

  echo "<li>Translate this page:</li>\n";
  echo "<li><a href=\"http://translate.google.com/translate?sl=en&tl=fr&u=tesselaar.com". $_SERVER['REQUEST_URI'] . "\"><img src=\"/assets/img/flags/fr.gif\" width=\"16\" height=\"11\" alt=\"French\"></a></li>\n";
  echo "<li><a href=\"http://translate.google.com/translate?sl=en&tl=de&u=tesselaar.com". $_SERVER['REQUEST_URI'] . "\"><img src=\"/assets/img/flags/de.gif\" width=\"16\" height=\"11\" alt=\"German\"></a></li>\n";
  echo "<li><a href=\"http://translate.google.com/translate?sl=en&tl=nl&u=tesselaar.com". $_SERVER['REQUEST_URI'] . "\"><img src=\"/assets/img/flags/nl.gif\" width=\"16\" height=\"11\" alt=\"Dutch\"></a></li>\n";
  echo "<li><a href=\"http://translate.google.com/translate?sl=en&tl=es&u=tesselaar.com". $_SERVER['REQUEST_URI'] . "\"><img src=\"/assets/img/flags/es.gif\" width=\"16\" height=\"11\" alt=\"Spanish\"></a></li>\n";
  echo "<li><a href=\"http://translate.google.com/translate?sl=en&tl=el&u=tesselaar.com". $_SERVER['REQUEST_URI'] . "\"><img src=\"/assets/img/flags/gr.gif\" width=\"16\" height=\"11\" alt=\"Greek\"></a></li>\n";

}

echo "</ul>\n\n";

?>

编辑:自发布后,我尝试过但未成功的事情:

  • 在“非翻译”范围内包装各种东西
  • 使用jQuery尝试重写“链接回”URL
  • 使用jQuery截取“链接回”单击并重写父帧

    • 所以我可以用jQuery解决您的问题。这就是我所做的:

      <!-- inside your <head></head -->
      <script src="http://code.jquery.com/jquery-1.10.0.min.js"></script>
      
      <!-- inside your <body></body> -->
      <?php $requestUri = str_replace('untranslate', '', $_SERVER['REQUEST_URI']); ?>
      <ul class="breadcrumb pull-right">
          <?php if (stripos($_SERVER['HTTP_REFERER'], "translate.google") !== false && !isset($_GET['untranslate'])) : ?>
              <li class="notranslate">View page in English:</li>
              <li>
                  <a class="untranslate" href="#">
                      <img src="/assets/img/flags/gb.gif" width="16" height="11" alt="English" />
                  </a>
              </li>
          <?php else: ?>
              <?php $uri = "http://translate.google.com/translate?sl=en&u=" . $_SERVER['HTTP_HOST']; ?>
              <li>Translate this page:</li>
              <li><a href="<?php echo $uri . $requestUri ?>&tl=fr"><img src="/assets/img/flags/fr.gif" width="16" height="11" alt="French" /></a></li>
              <li><a href="<?php echo $uri . $requestUri ?>&tl=de"><img src="/assets/img/flags/ed.gif" width="16" height="11" alt="German" /></a></li>
              <li><a href="<?php echo $uri . $requestUri ?>&tl=nl"><img src="/assets/img/flags/nl.gif" width="16" height="11" alt="Dutch" /></a></li>
              <li><a href="<?php echo $uri . $requestUri ?>&tl=es"><img src="/assets/img/flags/es.gif" width="16" height="11" alt="Spanish" /></a></li>
              <li><a href="<?php echo $uri . $requestUri ?>&tl=el"><img src="/assets/img/flags/gr.gif" width="16" height="11" alt="Greek" /></a></li>
          <?php endif; ?>
      </ul>
      
      <!-- right before your </body> or remove <script></script> and place in different js file -->
      <script>
          $('.untranslate').click(function() {
              window.top.location = 'http://<?php echo $_SERVER['HTTP_HOST'] . $requestUri ?>?untranslate';
          });
      </script>
      
      
      
      • 查看英文页面:
      • 翻译本页:
      $('.untranslate')。单击(函数(){ window.top.location='http://?untranslate'; });

      因此,基本上有一个没有url的链接,其类为
      。untranslate
      ,然后jQuery等待单击该链接。单击后,它会将页面重定向到站点的原始页面未翻译版本。它还传递了一个名为
      untranslate
      的get参数,因为重定向会传递translate.google HTTP\u REFERER.

      以防有人查看该站点并对差异产生疑问:在尝试了各种jQuery解决方案(均无效)后,我现在已经放弃并禁用了标志和返回链接。