【问题标题】:How to Show Different Products Depending on Google Translate Widget Language Chosen如何根据选择的 Google 翻译小部件语言显示不同的产品
【发布时间】:2014-01-06 15:50:37
【问题描述】:

我正在开发一个带有购物车的网站,每个国家/地区都有不同的产品。客户想要使用 Google 翻译更改语言。

我们认为最好使用一个为每个国家/地区提供不同产品类别的网站。所以法国有人在谷歌翻译中选择了FR,我们有一些代码来显示FR产品类别。

但我找不到如何在我的网站代码 (PHP) 中确定 Google 翻译小部件选择了哪种语言。 URL 保持不变,因此我无法查询该 URL。

如何在服务器级别 (PHP) 确定 Google 翻译小部件选择了哪种语言?

我想知道这是否可能,因为它可能使用 Javascript 来更改它,那么是否有其他方法可以利用 Google 翻译小部件,以便我可以使用 Javascript 来显示正确的产品类别?

这是 Google 小部件代码

<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>

谢谢

【问题讨论】:

  • 谷歌翻译小部件只是一种非常粗略的翻译网站的方法,可以让访问者大致了解该页面上的内容。自动机器翻译不具备取代实际本地化的质量,特别是如果您需要在业务逻辑级别将其与您的网站集成,这不是您正在寻找的解决方案。
  • 是的,我们知道它的机器和较低的质量
  • 我发现我可以将 #googtrans(en|TARGET_LANG_CODE) 添加到 URL 以进行自动翻译,因此可能会在我的代码中利用它,但是......附加到 URL 的字符串多么糟糕.例如,我希望我们可以根据子文件夹 /fr 自动进行 Google 翻译。
  • 请记住,使用的语言并不总是与用户所在的国家/地区相匹配,并且大多数人禁用了他们可以阅读的语言的自动翻译(例如英语)。因此,您可以为每种语言提供不同的产品,但不应依赖语言来提供“每个国家/地区的不同产品”。
  • 了解,但没关系,例如,我们不会提供德语的法语商店。它应该是一个国家自己的网站,而不是另一个国家的网站的翻译。

标签: javascript php google-translate


【解决方案1】:

这是一种方法,但由于 URL 中存在可怕的哈希值,因此并不理想...

如果您将 #googtrans(en|TARGET_LANG_CODE) 添加到 URL 的末尾,Google 可以自动翻译页面内容,例如www.mydomain.com#googtrans(en|fr)

因此,请设置一个多国家/地区站点,例如标准站点,例如/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 文件中的这些部分。

【讨论】:

  • 允许不使用哈希的另一种方法是将变量传递给 pageLanguage: 'en' 基于我们在网站上所在的国家/地区,例如pageLanguage: country,并在 JS 中添加 autoDisplay: true 。理论上这应该可以工作,但我没有设法让它工作,autoDisplay 似乎没有工作,我看不出如何传递这个变量。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多