我正在建立一个允许人们创建内容并对内容发表评论的网站。
对于表单标签、按钮和其他静态内容,我可以使用.resx
文件。我以前做过,而且效果很好。
现在我正处于一个十字路口,我不知道该走哪条路。两者对我来说听起来都一样好,但由于这将是我第一次涉足这一领域,我宁愿询问我可能没有考虑到的任何陷阱。
这是我想到实施的两个选项。两者都可以解决我将用户生成的内容本地化和呈现给我的用户的问题。
选项 A:
我会创建整个 MVC3 应用程序的多个副本,并将每个本地化放入它自己的 IIS 应用程序中。
foobar.com
es.foobar.com
ru.foobar.com
我只需要更改一个 web.config 文件,为每个本地化使用不同的数据库。
我看到了一些问题,例如:
如果用户登录
foobar.com
并访问他的本地化版本的站点,他将不会登录,因为它们是两个完全独立的应用程序。没有统一的审核工具。我必须进入每个应用程序,登录,访问管理面板并从那里进行审核。
难以将更改/更新推送到页面的所有版本。我必须手动进入每个 IIS 应用程序文件夹并复制每个本地化版本的已发布文件。
选项 B:
我将创建一个 MVC3 应用程序,并在后端数据库上为每个本地化创建多个字段。
例如:
Car
------
CarID
Name
esName
ruName
Make
esMake
ruMake
..and so on..
然后,我会根据选择的本地化以某种方式动态选择要显示的字段。虽然我什至不确定这是可能的,因为访问子域会将我带到一个完全不同的 IIS 应用程序,除非我可以绑定一个子域以指向我的 IIS 上的实际域。
foobar.com
es.foobar.com
ru.foobar.com
我看到这种方法的问题是每个表的大小都会非常庞大,不仅在字段数上,而且在记录数上。我不确定这是否会成为问题。
对于如何在 MVC3 应用程序中为用户生成的内容实现本地化,我将不胜感激。
意思是,访问西班牙语版本 ( es.foobar.com
) 的用户会看到其他西班牙语内容和用户发表的评论,而不是其他版本。我并不是指翻译他们的内容并将其呈现给最终用户。