自动检测用户 IP 地址的语言并选择谷歌翻译器

Posted

技术标签:

【中文标题】自动检测用户 IP 地址的语言并选择谷歌翻译器【英文标题】:Auto Detect Language of a User IP address and select for google translator 【发布时间】: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 地址不是获取所需信息的好方法。考虑一下***.com/questions/673905/… 您可以在 JavaScript 中获取用户的首选语言。这是他们为其网络浏览器配置的设置之一。 JavaScript for detecting browser language preference的可能重复 【参考方案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 中链接的一些帖子。

【讨论】:

以上是关于自动检测用户 IP 地址的语言并选择谷歌翻译器的主要内容,如果未能解决你的问题,请参考以下文章

如何将网络聊天发送到国家/地区?

谷歌会议可以在线翻译吗

2ROS实时检测在线IP数并自动对IP做限速

借助设备 IP 地址获取国家代码

网站语言:使用浏览器区域设置或 IP 地址 [关闭]

为 MFC 接口开发自动翻译