我想使用 .resx 文件本地化 .Net Core 应用程序。谁能给我一个完整的分步解决方案?我是 WPF 和 .Net-Core 的新手。当我在代码中更改当前文化时,什么也没有发生。这是我的代码:
<ToolBar>
<Button Content="{x:Static strings:Resource.NewCustomer}" Command="{Binding NewCustomerDelegateCommand}"/>
</ToolBar>
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("de-DE");
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("de-DE");
base.OnStartup(e);
}
}
本地化 WPF 应用程序时,您有多种选择。
使用本机 WPF 的方法(使用 UID),请参阅:MSDN。这种方法的缺点在文章中有更详细的解释,但一般来说:
使用由 PublicResXFileCodeGenerator / ResXFileCodeGenerator 生成的 resx 的强类型资源类。
(请参阅 VS 属性窗口中的自定义工具以获取 resx 文件;PS:第二个生成器创建内部类,因此请记住,它只能在存在被本地化的 xaml 的同一个程序集中使用,并且只能与 WPF 绑定一起使用,不使用静态标记扩展)
这种方法类似于您尝试应用的方法,这意味着在 xaml 中,您对生成的强类型资源类的属性使用绑定(或 x:Static)。这种方法的缺点是生成的强类型资源类在文化/语言改变时不提供任何通知。换句话说,您可以提供字符串、标签等,但它们将在解析/加载 xaml 时解析。之后就变成固定内容了:
您可以在市场上找到使用 resx 文件本地化 WPF 应用程序的可用解决方案,例如:https : //www.qube7.com/guides/localization.html
您可以在此处找到资源标记扩展的完整源代码:Resource.cs
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句