MVVM在业务逻辑中的本地化

时间:2014-05-02 04:14:28

标签: c# wpf mvvm localization

我正在将现有的WinForms应用程序重构为WPF和MVVM(除了MVVM中的理论之外几乎没有知识)。应用程序需要完全本地化。就UI而言,我很好(存储资源并根据枚举和其他结构绑定到它们)。

应用程序必须向用户提供动态生成的pdf。这个本地化信息应该放在哪里:

  1. 在后端使用pdf创建逻辑

    Pro:更简单的逻辑流程

    Con:反对MVVM理论,因为后端不应该知道它是如何被显示的。维护性较差(本地化数据有2个位置)

  2. 将对象传递给视图进行翻译。这意味着PDF生成代码需要进入视图。

    专业:只有一个地方可以保持本地化

    Con:也反对MVVM理论,因为视图不应该有逻辑

  3. 这两种解决方案对我来说都不是很理想。有任何想法吗?

2 个答案:

答案 0 :(得分:1)

这些详细信息可能有助于全球化和本地化(http://msdn.microsoft.com/en-us/library/ms753931.aspx

并且还有关于codeplex的指导:WPF本地化指南(http://wpflocalization.codeplex.com/releases/view/29389

答案 1 :(得分:0)

你的问题是不可理解的,但本地化的实际解决方案是:

1.使用.resx文件创建项目(项目名称可以是例如本地化)

2.将命名空间添加到您的XAML文件,例如

xmlns:localPresentation="clr-namespace:Localization.Presentation;assembly=Localization"

3.以这种方式本地化UI文本

Text="{x:Static localPresentation:PresentationResources.SomeResourceKey}"

这种本地化不是动态的。更改应用程序的语言时,必须重新启动它。动态本地化更棘手,但一切皆有可能。