代码之家  ›  专栏  ›  技术社区  ›  sastanin

多语言网站的最佳实践是什么?

  •  13
  • sastanin  · 技术社区  · 17 年前

    我想做一个多语言网站,这样所有或 几乎 所有页面将提供2个或更多翻译版本。遵循哪些最佳实践?

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

    1. 基于Cookie选择首选语言。
    2. 基于 Accept-Language 如果cookie未设置,则返回header。
    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. put选择内容旁边的语言选择器

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

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

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

    3 回复  |  直到 17 年前
        1
  •  5
  •   devstuff    17 年前

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

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

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

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

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

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

        2
  •  4
  •   Fredriku73    17 年前

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

        3
  •  4
  •   Quassnoi    17 年前
    1. 基于Cookie的选择 首选语言。
    2. 如果满足以下条件,则基于Accept-Language标头 cookie未设置。

    这两个你应该支持。

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

    例如.com/LANG/page

    这是最好的选择。

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

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

    选择一种语言 dropbox很令人困惑,因为用错误的外语写出来很难理解,而且会破坏用英语写出来的整体印象。

    而且,你总是倾向于在选择语言时出错——你甚至没有字体——让自己在充满问号的页面上留下印记。

    显示带有警告的旧翻译

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