【问题标题】:Localization in enterprise application企业应用本地化
【发布时间】:2012-11-06 20:59:06
【问题描述】:
您会将“本地化和全球化”放在使用 MVVM 和 Prism 在 c# WPF 中构建的 3 层企业应用程序中的什么位置?我的意思是在一个像 msdn (http://msdn.microsoft.com/en-us/library/ee658124.aspx) 中描述的模式构建的应用程序中,您会将本地化逻辑放在哪一层?您会使用哪种方法(resx 文件、db...)?
【问题讨论】:
标签:
c#
mvvm
prism
enterprise
【解决方案2】:
Resx 文件
但这不是一个微不足道的主题,也没有任何一种标准方法,主要的方法是:
- 使用 WPF 资源
- 使用 wpf 的 Locbaml 工具
- 将 RESX 文件用作 xaml 静态字符串
- 使用带有扩展名的 RESX 文件
推荐参考:Sacha Barber、Josh Smith 和 ResX。
我的偏好是使用 (3) 和 (4) 的组合,尽管我需要稍微修改扩展的代码。所以我通常会有
- Resx 文件的项目 (MyApp.Presentation.Resources),每个视图一个
- Resx 文件的项目 (MyApp.Domain.Resources),每个枚举类型一个,标准命令
- 根据需要引用 MyApp.Domain.Resources 枚举的视图模型项目 (MyApp.ViewModels)
- 引用 MyApp.Presentation.Resources 和我的 ResxExtension.dll 版本的控件和/视图项目 (MyApp.Wpf.ControlLib)。
HTH,
浆果
【解决方案3】:
我建议您使用数据库本地化映射。这样每次本地化更改后无需重新编译应用程序。