鉴于,像ebay这样的设置......
域:
domain.com
domain.de
domain.it
domain.ru
domain.xyz
....
BUT: 用户可以用德语查看该页面,并可以创建英语内容,这些内容已列在英文目录中。
我的问题: 如何设计语言切换,网址为url:
示例1:(与亚马逊一样)
domain.com -> english catalogue
domain.de -> german catalogue
示例2:(网址内的网址)
domain.com/en/ -> english catalogue
domain.com/de/ -> german catalogue (redirect the .de domain)
示例3:(Cookie中的区域设置)
domain.com -> english
domain.de -> redirect to example.com/?locale=de, set a cookie
示例4:(您还有更多吗?)
您更喜欢哪一个?为什么?
感谢所有回复...
答案 0 :(得分:2)
你有更多吗?我当然是了。但首先......
广告1.亚马逊有不同的目录,因为事实上亚马逊德国(其德国子公司),亚马逊英国(其英国子公司)实际上是不同的公司(在法律基础上)。他们的提议往往有所不同,当然法律要求(即税收)也有很大差异。因此这些站点是相似的(我很确定它们运行的是通用软件并且它们使用的是通用基础架构)但不完全相同(DB后端可能不同)。
如果您正在为类似的公司建立网站,那就有意义了。
广告2.重定向到基于语言的域在与第一个示例完全相同的情况下是有意义的 - 如果您对国际客户的报价差异很大。
广告3.使用网址参数和设置Cookie实际上是最佳做法,但请注意,这应该只是工作流程的一部分(稍后会详细介绍)。如果您的网站实际上是完全相同的应用程序,那么它尤其有意义。所有用户的内容都没有差异,但您只想翻译它。
示例4.有时(请参阅CNN)人们使用本地域名部分,即http://english.example.com/,http://arabic.example.com/。这可以被视为3的变体 - 您实际上会使用某种URL过滤器并在cookie中设置语言。
示例5.对于典型的Web应用程序/网站(到处都是相同的内容),在我看来,最好实际使用某种Locale检测工作流程。在这种情况下,您是否会使用任何语言提供特定域名 BTW。您可能希望在地理位置上拆分基础架构,以便位于俄罗斯的服务器池响应http://example.ru/并且这些池仅包含俄语资源 - 在这种情况下,您肯定会使用重定向。如果你有一个中央服务器池,它实际上没有多大意义 回到检测工作流程......
示例6.虽然我高度反对,但有些网站使用用户IP地址来评估他/她的地理位置,以便将他/她重定向到本地化网站。地理定位也可用于此目的。同样,如果您的本地网站存在显着差异,那么它可能很少(只是很少)。
现在语言回落。通常HTTP Accept-Language标头如下所示:
Accept-Language: da, de;q=0.8, fr;q=0.7
在这种情况下,最喜欢的语言是丹麦语,但用户似乎也懂德语和法语。因此,如果你找不到丹麦语的资源但实际上有德语资源,那么回归英语是不合适的。只有当没有任何内容适合时,您应该浏览列表并回退到您的应用程序默认值 这也显示了另一个问题:有时此标题中没有关于国家/地区的信息。那么Locale应该使用什么来格式化日期,数字等?我不认为这个问题有一个很好的答案 - 在这种情况下,用户配置文件确实是一个很好的解决方案。问题是,如果你已经拥有一些用户群,那么很难强迫他们设置这些信息。