使用资源文件的本地化不工作

本文关键字:本地化 工作 源文件 资源 | 更新日期: 2023-09-27 18:11:14

我添加了新的Rosource文件UserNotification.resx。然后我添加了两个本地化文件,并将其命名为UserNotification.hr-HR。UserNotification.sl-SI.resx和UserNotification.sl-SI.resx。(后面的线程:如何在c#中使用本地化)

然后我把Windows语言改成了"si"。如果我使用System.Globalization.CultureInfo.CurrentCulture.ToString()打印当前培养,输出si si

但是,我总是从UserNotification.resx得到一个字符串。它无法识别本地化资源文件

使用资源文件的本地化不工作

如果你使用多线程,在。net本地化中的问题是,你需要为你生成的每个线程手动设置区域性(如果它与windows区域性不同,如果用户可以选择所需的语言)。它不是从主线程继承的。

创建新线程后,在启动它之前,你应该将它的文化设置为主线程的文化(通常使用windows的默认文化)。

所以,系统显示良好的CurrentCulture。但是当前线程说什么?也许是由于某些原因,应用程序在不同的文化环境下启动,这就是它加载默认资源文件的原因?无论如何,没有理由不手动设置当前文化。大多数情况下,当你想让用户选择更改应用程序的语言时,你需要这样做。