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

时间:2009-01-28 14:19:01

标签: user-interface internationalization search-engine

我想创建一个多语言网站,以便所有或几乎所有页面都可以在2个或更多翻译中使用。要遵循哪些最佳做法?

例如,我考虑这些语言选择机制:

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

    如何提供不同的翻译?

    1. as LANG.example.com/page
    2. as example.com/LANG/page
    3. as example.com/page?hl=LANG
    4. ...
    5. 上述任何一项重定向到example.com/page? (似乎是discouraged
    6. 如何确保所有翻译都已正确编入索引?

      1. 包含所有网页+正确Content-Language标题的站点地图已足够?
      2. 让用户知道有其他翻译的最佳方法是什么,但不要分散他们的注意力?

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

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

          1. 根本不显示缺页或以其他语言显示页面?
          2. 显示旧翻译,带有警告的旧翻译或使用其他语言的页面?
          3. 我还应该考虑什么?我该怎么做以及我绝对不应该做什么?

3 个答案:

答案 0 :(得分:5)

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

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

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

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

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

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

答案 1 :(得分:4)

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

答案 2 :(得分:4)

  1. 基于Cookie的选择 首选语言。
  2. 基于Accept-Language标头if 没有设置cookie。
  3. 你应该支持这两个。

    在页面顶部放置一个大英文横幅,上面写着此页面的英文

      

    as example.com/LANG/page

    这是最佳选择。

    LANG.example.com不适合自动填充,问号看起来很难看。

      

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

    选择一种语言 dropbox令人困惑,因为用不正确的外语写错不易理解,并且破坏了用英语写的整体印象。

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

      

    显示带有警告的旧翻译

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