13

我想制作一个多语言网站,以便所有或几乎所有页面都提供 2 种或更多翻译版本。要遵循的最佳实践是什么?

例如,我考虑以下语言选择机制:

  1. 基于 Cookie 的首选语言选择。
  2. Accept-Language如果未设置 cookie,则基于标头。
  3. 否则(可能)基于 GeoIP。

还有别的事吗?

应该如何提供不同的翻译?

  1. 作为LANG.example.com/page
  2. 作为example.com/LANG/page
  3. 作为example.com/page?hl=LANG
  4. ...
  5. 以上任何一个重定向到example.com/page?(好像很气馁

如何确保所有翻译都被正确索引?

  1. 包含所有页面 + 正确Content-Language标题的站点地图就足够了吗?

让用户知道还有其他翻译但不分散他们注意力的最佳方式是什么?

  1. 在页眉/页脚/侧边栏中列出可用语言(如维基百科)
  2. 将“选择语言”选择器放在内容旁边

处理缺失/过时翻译的最佳策略是什么?

  1. 根本不显示丢失的页面或以不同的语言显示页面?
  2. 显示旧翻译、带有警告的旧翻译或不同语言的页面?

我还应该考虑什么?我应该做什么,绝对不应该做什么?

4

3 回答 3

5

除了@Quassnoi 的答案,请确保您使用标准的 RFC 4646 语言标识符(例如 EN-US、DE-AT);您可能已经意识到这一点。CLDR项目是一个优秀的国际化数据存储库(补充数据非常有用)。

如果特定页面的翻译不可用,请使用语言回退机制回到中性语言;例如“DE-AT”、“DE”、“”(中性,例如“EN”)。

如果页面编码正确,最新的浏览器和底层操作系统将正确显示语言环境选择器列表所需的所有字符(我建议所有页面都是 UTF-8)。确保区域设置列表同时包含母语和当前语言名称,以允许母语和非母语使用者查看指定的翻译,例如,如果当前区域设置为 EN-,则为“Deutsch (German)” *

许多网站使用旗帜图标来显示当前区域设置,但这与位置更相关,如果您只显示主要旗帜(例如英语的美国或英国旗帜),有些人可能会被冒犯。

如果没有提交区域设置 cookie,则可能值得在主页上使用更可见(半图形)的区域设置选择器,使用 GeoIP 和 Accept-Language 的组合来确定默认的区域设置选择。

半相关:如果您的用户位于不同的时区,请在其帐户配置文件中包含一个区域首选项,以显示其本地时间的时间值。并使用 UTC 存储所有时间戳。

于 2009-01-28T16:07:19.043 回答
4

决定是否需要早期支持需要双字节字符的语言(中文、日文、韩文等),Unicode 是首选。以后更改可能很乏味,特别是如果您有一个不使用 unicode 的数据库。

于 2009-01-28T14:30:34.730 回答
4
  1. 基于 Cookie 的首选语言选择。
  2. 如果未设置 cookie,则基于 Accept-Language 标头。

这两个你应该支持。

在页面顶部放置一个大的英文横幅,上面写着This page in English

如example.com/LANG/page

这是最好的选择。

LANG.example.com 不适合自动完成,而且问号看起来很难看。

在页眉/页脚/侧边栏中列出可用语言(如维基百科)

选择一个语言的保管箱是令人困惑的,因为用错误的外语书写是难以理解的,并且会破坏用英语书写的整体印象。

而且你总是倾向于犯错误,选择你甚至没有字体的语言,让自己留在一个充满问号的页面上。

显示带有警告的旧翻译

你知道有些东西你可以阅读并理解重点,但对于细节,你最好拿一本字典并用英文阅读。

于 2009-01-28T14:31:35.167 回答