如何在基于WPF XAML的UI上提供语言支持

时间:2011-12-28 07:44:10

标签: wpf xaml internationalization

我想为WPF应用程序提供语言支持。为了提供对动态内容的支持,我可以使用语言支持文件。

但是,我应该如何为静态文本执行此操作,例如在XAML上找到的文本。

例如:

<TextBlock                 
            FontSize="20" 
            FontWeight="Bold"        
            TextAlignment="Center" FontFamily="Helvetica">                                
            Start Process
</TextBlock>

在上面的代码中,文本“Start Process”是静态的,但我如何为该文本集成不同的语言支持。

3 个答案:

答案 0 :(得分:5)

在WPF应用中使用通用全球化和本地化(语言特定支持)...... https://msdn.microsoft.com/en-us/library/aa292205(v=vs.71).aspx

在.net .... http://www.c-sharpcorner.com/UploadFile/ankithakur/Globalization_Localization_in_DotNet_CSharp07032006023510AM/Globalization_Localization_in_DotNet_CSharp.aspx

中使用特定于语言环境的资源文件

在XAML中使用x:Static属性来实现资源(.resx)文本的绑定...... http://robertoschiabel.wordpress.com/2010/01/31/wpf-add-localization-via-resx-files/

答案 1 :(得分:1)

  • LocBaml是一个工具,microsodt明确提供了对WPF的快速语言支持。
  • 此工具为每个xaml标记添加Uid,并帮助您在CSV文件中使用这些标记(具有一些常用属性)。
  • 这些CSV文件可以轻松用于提供不同语言的翻译。
  • 这种方法存在某些缺点。就像,你不会用这个动态语言切换。有时,维护CSV文件可能是Cubersome。
  • 请参阅this Link

答案 2 :(得分:1)

嗯,Angel的建议是针对目标的,尤其是使用x:Static的最后一个链接。还有一个很好的文章和代码示例使用了这种技术here

目前,我更喜欢的是标记扩展。一个很好的例子是here)。

本地化实际上是一个相当复杂的事情,即使你似乎只想用俄语说“开始过程”!我建议你坚持使用第一个Code Project文章,只有那篇文章,直到它有意义。

比接受第二篇文章会更容易。

我的最后一条建议是不要浪费你的时间在LocBaml上。

干杯,
Berryl