业务逻辑中的MVVM本地化
本文关键字:MVVM 本地化 业务 | 更新日期: 2023-09-27 18:01:30
我正在将现有的WinForms应用程序重构为WPF和MVVM(除了MVVM理论之外几乎没有知识)。应用程序需要完全本地化。就UI而言,我对此很满意(存储资源并基于枚举和其他结构绑定到它们)。
应用程序必须向用户呈现动态生成的pdf。这些本地化信息应该放在哪里:
-
在后端使用pdf创建逻辑
Pro:更容易的逻辑流
反对MVVM理论,因为后端不应该知道它是如何显示的。可维护性也较差(2个地方有定位数据)
-
将对象传递给视图进行翻译。这将意味着PDF生成代码需要进入视图。
Pro:只有一个地方保持本地化
反对:也反对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}"
这个本地化不是动态的。当您更改应用程序的语言时,您必须重新启动它。动态定位更棘手,但一切皆有可能。