【问题标题】:What are the best practices for multilanguage sites?多语言网站的最佳做法是什么?
【发布时间】:2010-10-04 00:27:45
【问题描述】:

我想创建一个多语言网站,以便所有或几乎所有页面都提供 2 种或更多翻译版本。应遵循哪些最佳做法?

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

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

还有别的吗?

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

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

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

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

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

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

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

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

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

【问题讨论】:

    标签: user-interface internationalization search-engine


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

    • 非常有趣的问题。我会听从你的建议。谢谢!
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:
      1. 基于 Cookie 的选择 首选语言。
      2. 如果基于 Accept-Language 标头 cookie 未设置。

      这两个你应该支持。

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

      如example.com/LANG/page

      这是最好的选择。

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

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

      选择一种语言 Dropbox 令人困惑,因为用错误的外语书写时无法理解,并且会破坏用英语书写的整体印象。

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

      显示带有警告的旧翻译

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

      【讨论】:

      • 关于自动完成的一点非常有趣。我没有想到。谢谢你的好回答!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-10
      • 1970-01-01
      • 2014-02-12
      • 2012-02-05
      • 1970-01-01
      相关资源
      最近更新 更多