【问题标题】:Auto Detect Language of a User IP address and select for google translator自动检测用户 IP 地址的语言并选择谷歌翻译器
【发布时间】:2018-12-28 02:21:25
【问题描述】:

我为我的网站使用谷歌网站翻译器,让用户从下拉列表中选择一个国家。谷歌做网页翻译。代码如下:

    <div id="google_translate_element"></div>

<script type="text/javascript">
function googleTranslateElementInit() {
  new google.translate.TranslateElement({pageLanguage: 'en'}, 'google_translate_element');
}
</script>

<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>

但是,我想要一种方法让网站检测用户的 IP 并根据结果自动翻译。

例如,仅懂法语的用户访问显示“点击我翻译成法语”的网页。不幸的是,法国人无法知道文本所说的内容。所以我真的很感谢这里的帮助。

【问题讨论】:

  • 我觉得使用 IP 地址或任何其他位置指标充满危险。我住在美国,但无法判断拥有美国 IP 的其他人是否更喜欢英语或西班牙语。另外,如果按钮的文本是法语,我认为法国人会理解一个按钮,该按钮说要翻译成法语。
  • 我的错,当你用谷歌翻译打开网页时,它说的是“选择语言”,所以我怀疑法国人会理解,如果有办法让网页自动基于 IP 进行翻译,我想我会喜欢的,但仍然保留选择语言按钮。
  • 我仍然认为 IP 地址不是获取所需信息的好方法。考虑一下stackoverflow.com/questions/673905/…
  • 您可以在 JavaScript 中获取用户的首选语言。这是他们为其网络浏览器配置的设置之一。

标签: javascript html


【解决方案1】:

您想要的是地理位置。虽然您可以通过 IP 地址进行操作,但 HTML5 提供了far simpler way:

if (navigator.geolocation) {
  navigator.geolocation.getCurrentPosition(function(position) {
    $.getJSON('http://ws.geonames.org/countryCode', {
      lat: position.coords.latitude,
      lng: position.coords.longitude,
      type: 'JSON'
    }, function(result) {
      alert(result.countryName);
    });
  });
}

然后您可以按照您的建议根据国家/地区名称进行翻译。还可以查看 cmets 中链接的一些帖子。

【讨论】:

    猜你喜欢
    • 2015-01-30
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多