自动检测用户 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 地址的语言并选择谷歌翻译器的主要内容,如果未能解决你的问题,请参考以下文章