在我的wpf项目中,我添加了两个资源文件:
Resources\English.resx and Resources\German.resx
在MainWindow.xml中,我尝试从资源文件中找到值:
<Window x:Uid="Window_1" x:Class="LocalizationInvestigate.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Resources="clr-namespace:LocalizationInvestigate.Resources"
Title="MainWindow" Height="350" Width="525">
<Grid x:Uid="Grid_1">
<Label x:Uid="Label_1" Content="{x:Static Resources:English.LabelHello}"></Label>
</Grid>
</Window>
对于英语,它以这种方式完美运作。但是,基于本地语言,我如何使用以下内容自动切换到德语:资源:German.LabelHello?
答案 0 :(得分:6)
通常,您可以在其名称中创建标准文化字符串的资源文件。 E.g。
Strings.en.resx
Strings.en-US.resx
Strings.de-DE.resx
Strings.de-AU.resx
...
资源管理器将根据Thread.CurrentUICulture
切换文化。我认为this是关于它的好文章。本地化还具有后备行为,因此可以使用en
资源来回答未知文化。
XAML中的用法是。
<Label Content="{x:Static Resources:Strings.LabelHello}" />
答案 1 :(得分:2)
对我来说,这篇文章是关于WPF和本地化的最佳文章! WPF Localization Using RESX Files
我之前使用它,它对我来说就像一个魅力。