用户会话使用不同的语言和MVVM

时间:2012-04-12 10:31:37

标签: c# session mvvm

我正在使用MVVM和Prism编写桌面应用程序,我遇到了以下问题。除标签等外,还需要以不同语言存储数据。

例如,在美国,用户可能能够使用英语或西班牙语登录(因为他们是母语人士)。

  • 如果用户在进入产品详细信息时使用西班牙语登录 表单将产品描述保存到数据库中 西班牙语。
  • 如果他们使用英语登录,产品说明将保存到 数据库并与英语有关。

目前我的唯一想法如下: -   - 包含全局可访问的ApplicationViewModel    CurrentLoggedInUser属性

我想知道的是在使用MVVM时如何保存当前登录用户所选择的语言,特别是在桌面应用程序中?
N.B所选语言可能与操作系统所在的语言和区域不同

在使用MVVM时,其他人如何解决此问题并在不同的窗口/用户控件上维护用户的“会话”?

1 个答案:

答案 0 :(得分:1)

您需要做的就是将当前语言存储在某处,可能是LCID

通常,这用于加载特定于语言的资源文件,该文件负责大多数与语言相关的情况。控件等只是将所有字符串存储在资源中,因此它们不需要直接访问当前语言。

对于您确实需要访问该语言的情况,例如知道保存数据库字符串的位置,然后是,语言应该暴露为某些静态/单例,或者更理想的是,应该注入ViewModels需要的任何内容它