我将要了解如何为ASP.NET MVC项目实现国际化。我正在研究如何允许用户更改语言。我的初始版本是一个包含每个支持的语言的下拉列表。无论谁想到几个问题:
只是想确保我在这里朝着正确的方向前进......
谢谢。
答案 0 :(得分:1)
首先请告诉我们您在“国际化”下的理解吗?
a)您希望只有多种语言的用户界面
b)您希望获得多种语言的内容
看看这个问题,我在这个主题上做了一些解释:Advice on ASP.NET Multi-Lingual Strategy
问题:
我建议在DB中存储支持的语言列表,您可以通过双字符代码识别它们。请参阅ISO 3166-1 alpha-2 country codes。
如果您来自ASP.NET WebForms世界,那么在您处理ASP.NET MVC时,首先要忘记的是状态和缓存。您可以在会话中存储简单的单个值,也可以在cookie中存储指示当前活动语言的cookie。服务器端将根据提交的值生成所需语言的视图。
您在控制器中实例化一个模型以传递给视图。在模型中,您可以拥有一个属性 - 包含可用语言的列表。视图可以(并且应该)使用要从其模型中显示的数据。
关于在哪里可以存储缓存版本的语言。您可以考虑在某个地方使用静态列表,该列表将在第一个请求时初始化(如弱引用)。它将在给定应用程序域的所有请求之间共享,这意味着您的Web应用程序的所有用户将看到相同的值(直到域被回收或服务器重新启动)。如果您要使用服务器会话,则将为每个新用户会话再次创建列表。