代码之家  ›  专栏  ›  技术社区  ›  Stef Heyenrath Dariusz Woźniak

Silverlight MVVM:如何以正确的方式进行本地化?

  •  3
  • Stef Heyenrath Dariusz Woźniak  · 技术社区  · 14 年前

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

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

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

    这是照描述做的吗 here ?

    XAML视图 :

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

    以及 逻辑视图模型.cs 班级:

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

    这里有小窍门吗?


    在多个视图/视图模型上重用相同的字符串如何? (假设我在多个视图上需要'username'。) 从定义所有资源的BaseModel派生所有ViewModel是否有意义?

    2 回复  |  直到 13 年前
        1
  •  1
  •   CloudRinger    13 年前

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

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

    根据您的需要和限制,有很多方法可以解决这个问题。我描述的方法是灵活的,可以理解的,足以满足我在WPF和Silverlight中对多个项目的需求。

        2
  •  0
  •   ReLoad    14 年前

    嗯,我们使用

    ApplicationStrings.MyNewString, Source={StaticResource ResourceWrapper}}
    

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

    我是丹麦语,所以我们有德语、瑞典语、丹麦语、英语等翻译。如果这对您没有帮助,我可以提供代码。但你的第一个选择是正确的。