如何使用 RESX 本地化 WPF .net-core 应用程序

麦肯齐1971

我想使用 .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 应用程序时,您有多种选择。

  1. 使用本机 WPF 的方法(使用 UID),请参阅:MSDN这种方法的缺点在文章中有更详细的解释,但一般来说:

    • 它没有使用 resx(这对大多数开发人员来说是很自然的)
    • 不支持在运行时更改语言
  2. 使用由 PublicResXFileCodeGenerator / ResXFileCodeGenerator 生成的 resx 的强类型资源类。

    (请参阅 VS 属性窗口中的自定义工具以获取 resx 文件;PS:第二个生成器创建内部类,因此请记住,它只能在存在被本地化的 xaml 的同一个程序集中使用,并且只能与 WPF 绑定一起使用,不使用静态标记扩展)

    这种方法类似于您尝试应用的方法,这意味着在 xaml 中,您对生成的强类型资源类的属性使用绑定(或 x:Static)。这种方法的缺点是生成的强类型资源类在文化/语言改变时不提供任何通知。换句话说,您可以提供字符串、标签等,但它们将在解析/加载 xaml 时解析。之后就变成固定内容了:

    • 不支持在运行时更改语言
  3. 您可以在市场上找到使用 resx 文件本地化 WPF 应用程序的可用解决方案,例如:https : //www.qube7.com/guides/localization.html

    • 它支持在运行时更改语言(设置Culture.Current时 UI 会自动刷新
    • 该解决方案提供了本地化 VS 设计器支持的 xaml 的方法
    • 本地化 xaml 的方法类似于本地化 asp.net:您可能拥有本地资源(每个 xaml 视图的 resx)+您可能拥有全局资源(保存共享资源的 resx)
    • 解决方案也为您提供了本地化视图模型的方法(这也并不罕见)

    您可以在此处找到资源标记扩展的完整源代码:Resource.cs

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在WPF应用程序的.NET Core 3.0中引用System.Windows.Forms?

asp.net中的应用程序本地化

ASP.Net Core本地化

使用resx文件进行本地化会生成MissingManifestResourceException

本地化WPF应用程序不起作用?

如何从SharedSource.resx和ViewModel.resx本地化DataAnnotations

可本地化的ASP.NET Core + ReactJS应用程序

具有资源文件的动态本地化WPF应用程序

如何在Asp.Net Core中的Razor类库中使用本地化

.NET Core 2.1中无法使用SharedResources进行本地化

在Console .Net Core 1.1应用程序中使用.resx文件

ASP.Net Core 2.0 Web应用程序中的本地化

如何实现本地化ASP net CORE MVC

没有mvc的asp.net Core 2.0剃刀Web应用程序中的本地化

如何使用子目录中的RESX文件本地化WPF应用程序

ASP.NET Core如何按访问者本地化设置日期格式?

如何开始在.net core 3 WPF应用程序上使用MvvmLight?

添加.resx文件时使用WPF .net Core 3.0编译错误

如何进行ASP.NET Core 3.1路由(Route,ActionName)本地化?

将WPF应用程序中的RESX文件与Prism一起使用

每种语言使用多个resx文件进行本地化

NET Core 3.1中如何在字符串本地化程序中正确使用资源文件?

如何使用XamlIslands和Desktop Bridge打包WPF(.NET Core)应用程序?

如何混淆使用本地化扩展的C#wpf应用程序

ASPNET Core 和使用 resx 文件的本地化

WPF 本地化多语言 ResourceDictionary 与资源文件 (.RESX)

ASP-NET.core如何实现资源文件本地化?

如何使用 azure 管道将 .NET Core 应用程序部署到本地文件共享?

创建本地化的 django 应用程序并使用其他应用程序的本地化