C# 将locbaml与资源字典一起使用

C# 将locbaml与资源字典一起使用,c#,.net,wpf,xaml,localization,C#,.net,Wpf,Xaml,Localization,我目前正在努力解决本地化方面的一些特殊问题。我阅读了关于本地化WPF应用程序的不同方法,并决定使用由“locbaml”生成的附属程序集。 为了能够本地化c代码中的字符串,我决定使用ResourceDictionary,如下所述: 我有一本资源字典: <ResourceDictionary x:Uid="ResourceDictionary_1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

我目前正在努力解决本地化方面的一些特殊问题。我阅读了关于本地化WPF应用程序的不同方法,并决定使用由“locbaml”生成的附属程序集。 为了能够本地化c代码中的字符串,我决定使用ResourceDictionary,如下所述:
我有一本资源字典:

<ResourceDictionary x:Uid="ResourceDictionary_1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:system="clr-namespace:System;assembly=mscorlib">
    <system:String x:Uid="system:String_1" x:Key="TestKey">Development</system:String>
</ResourceDictionary>
确实如此。当我启动应用程序时,我可以看到“开发”。 我的示例项目只有两个文本块。一个TextBlock的TextProperty绑定到一个名为“Message”的属性。另一个静态设置为“StaticDevelopment”。因此MainWindow.xaml如下所示:

this.Message = (string)Application.Current.FindResource("TestKey");
<Window x:Uid="Window_1" x:Class="LocalizationIssue.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <StackPanel x:Uid="StackPanel_1">
        <TextBlock x:Uid="TextBlock_1" FontSize="20" Text="{Binding Message}" VerticalAlignment="Center" HorizontalAlignment="Center" />
        <TextBlock x:Uid="TextBlock_2" FontSize="20" Text="StaticDevelopment" VerticalAlignment="Center" HorizontalAlignment="Center" />
    </StackPanel>
</Window>

然后,我按照以下步骤使用locbaml创建附属程序集:
i、 e:1。将UICulture添加到项目文件(以及assemblyinfo)
2.创建UID:msbuild/t:updateuid本地化问题。csproj
3.创建csv文件:locbaml/parse LocalizationIssue.resources.dll/out:loc.csv
4.转换loc.csv中的值
5.创建卫星站点:locbaml/generate-LocalizationIssue.resources.dll/trans:loc.csv/out:c:\/cul:en-US
现在,当我将UI区域性切换为法语时,它仍然显示带有绑定的TextBlock的英语翻译,但显示另一个TextBlock的本地化值。
知道我做错了什么吗?您对“locbaml”方法有何经验?我们应该用传统的方式处理resx文件吗


谢谢你的意见;)

尝试复制到可能是loc\u us.csv的新文件并进行更改,然后运行locbaml/generate-LocalizationIssue.resources.dll/trans:loc\u us.csv/out:c:\/cul:en-us

<Window x:Uid="Window_1" x:Class="LocalizationIssue.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <StackPanel x:Uid="StackPanel_1">
        <TextBlock x:Uid="TextBlock_1" FontSize="20" Text="{Binding Message}" VerticalAlignment="Center" HorizontalAlignment="Center" />
        <TextBlock x:Uid="TextBlock_2" FontSize="20" Text="StaticDevelopment" VerticalAlignment="Center" HorizontalAlignment="Center" />
    </StackPanel>
</Window>