2

您会将“本地化和全球化”放在使用 MVVM 和 Prism 在 c# WPF 中构建的 3 层企业应用程序中的什么位置?我的意思是在一个像 msdn (http://msdn.microsoft.com/en-us/library/ee658124.aspx) 中描述的模式构建的应用程序中,您会将本地化逻辑放在哪一层?您将使用哪种方法(resx 文件、db ...)?

4

3 回答 3

1

resx在企业应用程序中为此使用了文件。它们被放置在自己的Resources项目中,因此可以在多个用户界面之间共享。

值得一读的是微软是如何打算这样做的,因为它揭示了一些令人信服的理由以这种方式做事:

http://msdn.microsoft.com/en-us/library/c6zyy3s9%28v=vs.100%29.aspx

于 2012-11-06T21:06:46.580 回答
0

我建议您使用数据库本地化映射。这样就无需在每次本地化更改后重新编译应用程序。

于 2012-11-06T21:01:47.140 回答
0

Resx 文件

但这不是一个微不足道的主题,也没有任何一种标准方法,主要的方法是:

  1. 使用 WPF 资源
  2. 使用 wpf 的 Locbaml 工具
  3. 使用 RESX 文件作为 xaml 静态字符串
  4. 使用带有扩展名的 RESX 文件

推荐参考:Sacha BarberJosh SmithResX

我的偏好是使用 (3) 和 (4) 的组合,尽管我需要稍微修改扩展的代码。所以我通常会有

  1. Resx 文件的项目 (MyApp.Presentation.Resources),每个视图一个
  2. Resx 文件的项目 (MyApp.Domain.Resources),每个枚举类型一个,标准命令
  3. 根据需要引用 MyApp.Domain.Resources 枚举的视图模型项目 (MyApp.ViewModels)
  4. 一个控件和/视图项目)(MyApp.Wpf.ControlLib),它引用了 MyApp.Presentation.Resources 和我的 ResxExtension.dll 版本。

HTH,
绿柱石

于 2012-11-06T21:19:19.833 回答