【问题标题】: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


    【解决方案1】:

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

    值得一读微软打算如何让它发挥作用,因为它揭示了一些令人信服的理由来这样做:

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

    【讨论】:

      【解决方案2】:

      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.Presentation.Resources 和我的 ResxExtension.dll 版本的控件和/视图项目 (MyApp.Wpf.ControlLib)。

      HTH,
      浆果

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-31
          • 1970-01-01
          • 2015-04-09
          • 2012-04-30
          • 1970-01-01
          相关资源
          最近更新 更多