多语言网站的最佳做法是什么?

sas*_*nin 13 user-interface search-engine internationalization

我想创建一个多语言网站,以便所有或几乎所有页面都可以使用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. 显示旧翻译,带有警告的旧翻译或使用其他语言的页面?

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

dev*_*uff 5

除了@ Quassnoi的答案之外,还要确保您使用标准的RFC 4646语言标识符(例如EN-US,DE-AT); 你可能已经意识到这一点.该CLDR项目是国际人士的最佳存储库(补充数据是非常有用).

如果特定页面的翻译不可用,请使用语言回退机制返回中性语言; 例如"DE-AT","DE",""(中性,例如"EN").

如果页面编码正确,最新的浏览器和底层操作系统将正确显示语言环境选择器列表所需的所有字符(我建议所有页面都是UTF-8).确保语言环境列表包含本机语言和当前语言名称,以允许本机和非本机语音查看指定的翻译,例如,如果当前语言环境为EN-,则为"Deutsch(德语)" *.

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

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

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