![]() |
1
2
不久前我问了一个类似但更复杂的问题( silverlight paramterised resource values for internationalisation ) 在msdn上给出的示例确实不足以进行严格的本地化,它假定每个字符串都完全存在并且没有参数,实际情况是您希望在字符串中嵌入值,但需要占位符在字符串中标记该变量的位置,以便转换器在转换时移动标记。 通过将自己实现到Silverlight中,您可以实现更高级的机制-Colin Eberhardt实现得很好( silverlight multibindings how to attached mutiple bindings to a single property )-调整一个位并与多值转换器结合,您可以执行多个绑定,允许第一个绑定到语言文件,随后的绑定到要嵌入的参数。 这是相当痛苦的,但本地化的故事只是明显缺乏-甚至在pdc09上通过Silverlight 3/4聊天-目前确实没有一个很好的路径-如果wpf多绑定使它跨越到sl4,这使它稍微容易些,但我还没有看到一个好的替代实现,除了人们输出所有来自ViewModel的字符串-从“设计器”的角度来看似乎是错误的。 |
![]() |
2
0
我同意微软对Silverlight(以及WPF和Windows Phone)本地化的建议是非常基本的。它有几个问题。最重要的是
原因是微软的工具,如Visual Studio, 不 提供本地化XAML的任何方法。这里的一个简单孤子是本地化XAML,它将本地化的XAML以及本地化的ResX包含到附属程序集文件中。
比
您需要做的是将硬编码字符串保存到XAML中并本地化XAML本身。如果没有一个好的工具,这将变得非常困难。这就是为什么我建议您使用一个本地化工具来定位XAML。这一点还不清楚,因为如果您已经本地化了XAML,您仍然需要将它们编译成Satellite assembly文件,并最终将Satellite包含在XAP文件中。 您需要一个工具来本地化resx和xaml,还需要编译本地化的附属程序集文件。有一些工具可以做到这一点(例如Sisulizer)。 如果你只想使用Visual Studio,那么你必须坚持微软的最佳实践。 |
![]() |
Bigeyes · 如何在MVVM模式中添加行? 8 年前 |
![]() |
User9898 · 悬停回到原始颜色时为什么选择 9 年前 |
![]() |
Huma Ali · WCF已完成事件中的异常处理 9 年前 |
![]() |
Nerd in Training · 文件副本发布错误 10 年前 |