【问题标题】:Writing a dropdown form to translate current page; Google thinks I'm translating from English to English编写一个下拉表单来翻译当前页面;谷歌认为我正在从英语翻译成英语
【发布时间】:2009-09-14 10:06:22
【问题描述】:

我正在尝试编写一个带有提交按钮的下拉表单,该按钮使用 Google 翻译来翻译我所在的当前页面。这是我目前拥有的(有人帮助我):

<form action="http://www.google.com/translate_c" method="get">
  <input type="hidden" name="hl" value="en" />
  <input type="hidden" name="u" value="<?php echo curPageURL(); ?>" />
  <select name="langpair">
    <option value="en%7Cafr">English to Afrikaans</option>
    <option value="en%7Calb">English to Albanian</option>
    ...
  </select>
  <input type="submit" value="Submit" />
</form>

(Echo调用当前页面的URL:)

<?php
function curPageURL() {
 $pageURL = 'http';
 if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
 $pageURL .= "://";
 if ($_SERVER["SERVER_PORT"] != "80") {
  $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
 } else {
  $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
 }
 return $pageURL;
}
?>

为什么 Google 认为我正在尝试使用此代码将英语翻译成英语?

【问题讨论】:

  • 当您到达谷歌翻译网站时,查询字符串是什么样的?
  • 我不知道,但是英语和英语都不遵循任何逻辑模式。这是一个非常困难的转换。 ;)
  • 它在浏览器中显示为:translate.google.com/translate?hl=en&u=http://domain.com/…(并且谷歌错误页面是:不支持从英文到英文的谷歌错误翻译。请从以下选择:*返回翻译*见原始页面等)
  • 那个链接被砍掉了,但基本上结尾是当前页面的 URL。

标签: html forms


【解决方案1】:

我将您的代码修改为以下内容,并且运行良好:

<form action="http://www.google.com/translate_c" method="get">
  <input type="hidden" name="hl" value="en" />
  <input type="hidden" name="sl" value="en" />
  <input type="hidden" name="u" value="http://www.stackoverflow.com/" />
  <select name="tl">
    <option value="af">English to Afrikaans</option>
    <option value="sq">English to Albanian</option>
  </select>
  <input type="submit" value="Submit" />
</form>

我会重新检查curPageURL 函数并为每个选择框项输入正确的值。

【讨论】:

    猜你喜欢
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-12
    • 1970-01-01
    相关资源
    最近更新 更多