我想在我的ASP.NET MVC应用程序中实现Globalization
和Localization
。
我看了几个像this这样的教程。
但问题是,他正在为每种语言创建多个视图。
因此,如果有10个视图,那么我们必须为每种语言创建10个视图,总和为100。请指导我创建单视图的多语言(即8种语言)应用程序的最佳方式,如果可能的话,使用PO文件。
发布于 2012-10-24 21:40:06
在我看来,使用多个视图是最好的方法。如果您觉得这太麻烦了,可能是因为您的MVC应用程序没有遵循正确的MVC模式。视图应该始终是哑巴的。如果一个视图是愚蠢的,那么它所拥有的唯一东西就是代码和布局。
也就是说,你当然可以去做一些文化服务。你所需要的是:
模式
XML应用程序加载
@String.Format(Context.CultureService.GetFormat("HELLOWORLD"), "World")
获取的
编辑
哦,为了允许小数/货币/日期的缺省全球化,您还应该考虑一个返回当前区域性实例的Current
属性。这样你就可以像这样使用它:@ViewModel.SomeDate.ToString(Context.CultureService.Current.DateTimeFormat)
Edit2
还有两件事。
因为整个@String.Format(Context.CultureService.GetFormat(), "")
很长,所以可以考虑编写一个帮助器,这样就可以编写类似@Globalize("HELLOWORLD", "World")
的代码了
考虑使用枚举来泛化字符串数据。通过摆脱魔术字符串,它在视图中会清晰得多,并且它将允许更容易的重构。结果可能类似于@Globalize(HOME.Hello, User.Name)
https://stackoverflow.com/questions/13049481
复制相似问题