我有这将最终支持4种语言和2个国家(美国和加拿大,英语和西班牙语)网站

我不知道什么是设置的目录结构的最佳方式是什么?

现在,我有一个根站点称为site.com:

这将带你到你选择你的国家和语言的页面。

理想情况下,我想有目录像这样:

site.com/ca/en/ (Canada English)
site.com/ca/fr/ (Canada French)
site.com/us/en/ (US English)
site.com/us/es/ (US Spanish)

但是,这将意味着我将会把一个“CA”和“我们”虚拟目录和语言的虚拟内部的目录。是很好的做法,或者我应该这样做:

site.com/ca-en/ (Canada English)
site.com/ca-fr/ (Canada French)
site.com/us-en/ (US English)
site.com/us-es/ (US Spanish)

修改:我已经做了以下内容:

有一个虚设目录:/ CA /和/ US /应用程序中的。他们都有一个Default.aspx的这仅仅是一个重定向。就我而言,我重定向到他们的英语网站:

例如: site.com/ca/ - > site.com/ca/en/ site.com/us/ - > site.com/us/en /

如果输入site.com,你推到一个语言选择页面。基本上,我使用的Global.asax正则表达式在每次请求寻找的语言/文化字符串。

这有以下好处。国家分离。所以,你有超过site.com/ca/或site.com/us/控制,并能为每个国家提供了一个简单的URL。

总之,虚拟目录/ EN /,/ FR /和/ ES /的是其各自的国家物理文件夹内。

所以,你有以下(虚拟迪尔斯是粗体):

site.com/ca/的 EN /(默认) site.com/ca/fr/ site.com/us/en/(默认) site.com/us/es /

这意味着,你需要有五(相同的)应用程序,除了可以使用URL来获取当前语言和国家(和它指向正确的数据库)。

有帮助吗?

解决方案 2

那么,他们想要的地址是每个站点不同。

本质上,它实际上是一个位点(用于维护原因)和我们使用全球化确定要使用的连接字符串(不同的数据库中,相同的结构,每一个)

我们每次发布,我会发布到四个位置。相同的应用程序。

使用一个URL全球化听起来是个好主意,但我不认为它会正常蜘蛛,即使是这样,不提供良好的可收藏的链接。 (法语的人发送链接,使用设置为英语的计算机另一位法国人)。还有其他的影响,但还有一个原因是网站,如苹果和微软使用不同的网址每种语言/文化。

在每个会话开始时,我检查URL,并相应地设置连接字符串。

到底,我只是把A / CA /和/ US /在主应用程序目录,添加一些虚拟目录,以每种语言做一个效应初探重定向到“选择语言”页

也许不是最好的解决方案,但它似乎是工作。

这样做的另一个好处是,如果有是仅适用于一个网站的一些专门的页面,它可以被添加到该网站只。

其他提示

为什么没有一个网站,并检查什么首选语言的客户端设置(request.servervariables / HTTP_ACCEPT_LANGUAGE)使用,并在asp.Net使用内置的全球化?

如果完全不同的内容将根据国家显示/语言,然后我可以理解为什么他们这样分开。

有定位普遍接受的命名法是LL-CC为语言代码连字符的国家代码。例如:EN-US,尽管EN-美国很可能会与EN-GB或EN-CA作为后备... ES-MX等也值得默认值。这可能是更好的,虽然使用子域名,这样就可以让资源不前复杂的负载平衡规则解体。例如:us.en.yoursite.com ......这也使得服务器在webfarm环境中更容易破裂。我建议有实际的代码,每个站点的设置改变以匹配国产化一样。然后使用您在文本键传递一个本地化资源,以及语言翻译是基于网站的定位模式解决。注:.NET和其他平台提供了内置的资源本地化选项

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top