【问题标题】:Silverlight MVVM : How to do Localization in the correct way?Silverlight MVVM:如何以正确的方式进行本地化?
【发布时间】:2010-07-23 13:40:28
【问题描述】:

在普通 Silverlight 项目中,xaml 视图中的本地化是使用:

Text="{BindingPath=ApplicationStrings.MyNewString, Source={StaticResource ResourceWrapper}}"

我的问题是:如何在使用 MVVM 模式时从标签中进行正确的本地化?

这是像here 描述的那样完成吗?

xaml 视图中

Text="{Binding LblUsername,FallbackValue='User Name'}"

还有 LoginViewModel.cs 类:

public string LblUsername
{
    get { return Resources.Username; }
}

这里有什么提示吗?


在多个视图/视图模型上重用相同的字符串怎么样? (想象一下,我在多个视图上需要“用户名”。) 从定义所有资源的基本模型派生所有视图模型是否有意义?

【问题讨论】:

    标签: silverlight mvvm localization


    【解决方案1】:

    查看我关于使用 MVVM 进行本地化的文章。

    http://cloudringer.wordpress.com/2011/02/18/localization-in-wpf-and-silverlight-with-mvvm/

    有很多方法可以解决问题,具体取决于您的需求和限制。我描述的方法足够灵活和可混合,足以满足我在 WPF 和 Silverlight 中对多个项目的需求。

    【讨论】:

      【解决方案2】:

      好吧,我们使用

      ApplicationStrings.MyNewString, Source={StaticResource ResourceWrapper}}
      

      而且效果很好。这是解决方案级别的项目,我只是参考。将项目转化为单个项目,然后我可以将其用作全局本地化。一个“标签”只定义一次。

      我是丹麦人,所以我们正在运行德语、瑞典语、丹麦语、英语等翻译。如果这对您没有帮助,我可以提供代码。但是你在选择一的正确轨道上:-)

      【讨论】:

        猜你喜欢
        • 2012-03-12
        • 1970-01-01
        • 2014-02-27
        • 2020-07-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-02
        相关资源
        最近更新 更多