业务逻辑中的MVVM本地化

本文关键字:MVVM 本地化 业务 | 更新日期: 2023-09-27 18:01:30

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

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

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

    Pro:更容易的逻辑流

    反对MVVM理论,因为后端不应该知道它是如何显示的。可维护性也较差(2个地方有定位数据)

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

    Pro:只有一个地方保持本地化

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

对我来说,这两种解决方案似乎都不理想。什么好主意吗?

业务逻辑中的MVVM本地化

这些细节可能对全球化和本地化有帮助(http://msdn.microsoft.com/en-us/library/ms753931.aspx)

还有一个codeplex的指南:WPF本地化指南(http://wpflocalization.codeplex.com/releases/view/29389)

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

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

2。为XAML文件添加命名空间,例如

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

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

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

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