【问题标题】:how to handle multiple languages on website如何处理网站上的多种语言
【发布时间】:2011-08-19 18:49:14
【问题描述】:

我有一个网站,我正在翻译成不同的语言。我将内容翻译并存储在数据库中。我还在 php 文件中写入了不同的机制,这些机制将根据我在代码中设置的全局定义来显示语言。我对这一切感到满意。我的问题是如何控制这个全局定义?

我目前有一个 javascript 切换,它设置一个 cookie,然后重新加载当前页面。并且每个后续页面都只是读取该 cookie 来设置全局定义。它工作得很好,但是我遇到了两个大问题。 (1)我不能只是不能有一个 url 发送给其中包含该语言的人(我可以做一些类似 domain.com/forwarder.php?lan=spanish&gotopage=page.php 的设置 cookie然后向前,但这很难看)。并且 (2),搜索引擎无法查看多种语言,因为它们并没有真正使用 cookie 和 javascript。

那么我该如何解决呢?有人有这方面的经验吗?你能分享你的经验吗?

我倾向于只使用 url 并删除 cookie;这似乎在我见过的各种国际网站中很受欢迎。所以我猜网址是:

domain.com/page       (for english, equivalent to domain.com/en/page)
domain.com/es/page    (for spanish)
domain.com/fr/page    (for french)
etc ......

这是个好主意吗?我将不得不检查我的代码并在我所有的 href 前面加上语言代码,这可能会很痛苦。

那么有人有这方面的cmet吗?这是一个好计划吗?我是不是忽略了什么?

【问题讨论】:

  • 如果你好奇,你可以在archive.cyark.org看到它点击顶部的语言切换并选择西班牙语

标签: cookies translation language-translation


【解决方案1】:

已经很久了,但你不能使用 $_SERVER["HTTP_ACCEPT_LANGUAGE"] 并自动设置它。在第一次编写 cookie 之前,在屏幕上用英语或数组中的另一种语言留言,询问这是否是正确的语言,并下拉可用语言?选择后,将其存储为默认网站语言。

您可以在全局资源文件中使用字符串常量。只有一个网站根据当前语言调用这些字符串常量。

【讨论】:

  • 我不知道 $_SERVER 变量的那个属性。这太有趣了。所以也许我什至不需要开关?我可以看看它并使用它。但在我看来,这与我目前不喜欢的方法等效。 cookie 是否随请求一起发送,或者它是 $_SERVER 变量的一部分,它仍然取决于来自浏览器的请求。如果我想用西班牙语向某人发送 url,这对我没有帮助。它对谷歌抓取有帮助吗? Woudl google 用不同的 HTTP_ACCEPT_LANGUAGE 值抓取它两次并保存结果?
  • 使用查询字符串以特定语言发送网址 www.whateversite.com?lang=en_gb 或 lang=span 等。我不确定,但我相信谷歌的服务器可以抓取不同的语言设置为默认值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-04
  • 2021-12-23
  • 1970-01-01
  • 2015-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多