3

在我的 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>

对于英语,它以这种方式完美运行。但是,根据本地语言,如何使用:Resource:German.LabelHello 使其自动切换到德语?

4

1 回答 1

6

通常,您会创建名称中包含标准文化字符串的资源文件。例如

Strings.en.resx
Strings.en-US.resx
Strings.de-DE.resx
Strings.de-AU.resx
...

资源管理器会根据Thread.CurrentUICulture. 我认为是一篇关于它的好文章。本地化也有一个后备行为,这样未知的文化就会用en资源来回答。

XAML 中的用法是。

<Label Content="{x:Static Resources:Strings.LabelHello}" />
于 2013-07-01T07:07:42.827 回答