我有一个WPF应用程序,我需要本地化为西班牙语。我已经阅读了MSDN文档,我感到很困惑。这很复杂,因为我们公司有一套三个程序一起工作(一个是Windows服务,一个是Web应用程序,第三个是我的WPF应用程序),我们决定构建一个包含可本地化的资源DLL所有三种产品的字符串。
因此字符串在资源DLL中,称之为resources.dll。现在,原始的英文字符串在XAML中被硬编码。我已经为ControlType_StringName
格式的每个字符串创建了资源ID。多个控件使用的字符串名为Common_StringName
。
如何编码XAML以显示正确的字符串?例如,我有一个关于框。它使用名为“About_Copyright”的字符串。在“关于”框中,有一个显示此字符串的TextBlock
。我在Text
属性的值中添加了什么?
<TextBlock x:Uid="TextBlock_4" FontSize="18"
FontWeight="Bold"
Foreground="{DynamicResource TextForeground}"
Grid.Row="5"
HorizontalAlignment="Center"
Margin="5"
Text="Copyright © 2012, 2013, Elsag North America, Inc." />
完成后,Text
属性中应该有一个引用,引用资源中的“AboutBox_Copyright”字符串。
在我的程序资源名为CarSystem的资源DLL中有一个单独的静态类,因此代码隐藏将字符串称为“CarSystem.AboutBox_Copyright”。
答案 0 :(得分:4)
将对资源dll的引用添加为
xmlns:res="clr-namespace:LocalizationDll.Properties"
并在您的用户界面中将其用作
Text="{x:Static res:Resources.AboutBox_Copyright}"
请注意,您必须将UI文化设置为
System.Threading.Thread.CurrentThread.CurrentUICulture =
new System.Globalization.CultureInfo("es-ES");