我正在开发一个带有购物车的网站,每个国家/地区都有不同的产品。客户希望使用Google翻译来更改语言。
我们认为每个国家/地区的不同产品类别的网站最好。所以法国的某个人在谷歌翻译中选择了FR,我们有一些代码来展示FR产品类别。
但我无法找到如何在我的网站代码(PHP)中确定Google Translate Widget选择了哪种语言。 URL保持不变,因此我无法查询URL。
如何在服务器级别(PHP)确定Google翻译小部件选择了哪种语言?
我想知道这是否可能,因为它可能使用Javascript来改变它,那么是否还有其他方法可以使用Google Translate Widget以便我可以使用Javascript来显示正确的产品类别?
这是Google Widget代码
<script type="text/javascript">
function googleTranslateElementInit()
{
new google.translate.TranslateElement(
{
pageLanguage: 'en',
includedLanguages: 'en,cy',
layout: google.translate.TranslateElement.InlineLayout.SIMPLE
},
'google_translate_element');
}
</script>
<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
由于
答案 0 :(得分:0)
这是一种方式,但由于URL中的可怕哈希值而不理想...
如果您将#googtrans(en | TARGET_LANG_CODE)添加到网址的末尾,Google可以自动翻译网页内容,例如www.mydomain.com#googtrans(EN |)
因此,设置一个标准的多国网站,例如/ fr,/ de等(可以使用子域或URL中的任何内容来指定哪个国家/地区,例如?country = fr)。
使用指向该网站每个国家/地区部分的链接,链接到国家/地区部分,并在末尾添加哈希值,例如: www.mydomain.com/fr#googtrans(en|fr)或fr.mydomain.com#googtrans(en | fr)或www.mydomain.com?country=fr#googtrans(en|fr)
网址中的国家/地区部分,例如/ fr允许您显示该国家/地区的正确商店(以及您希望为该国家/地区展示的任何其他内容,可能会调用不同的图片,因为Google无法翻译这些商家),然后哈希允许Google将其翻译为正确的语言。
使用它可怕的哈希!如果我们不能使用哈希并且只是基于/ fr进行翻译(可能使用非自由API,但这仅适用于免费小部件),那就好了。
注意:可能需要排除国家/地区部分,例如/ fr在Google中被编入索引,因为我猜想Google可能会在JS翻译开始之前看到这些子部分的原始语言内容,因此我们不希望这些重复的内容。我不相信谷歌索引小部件翻译页面,所以只是不允许robots.txt文件中的这些部分。