【问题标题】:how to change to a different globalization with a resources file?如何使用资源文件更改为不同的全球化?
【发布时间】:2018-03-04 01:37:41
【问题描述】:

如何进行本地化以从正确的 resx 文件中提取值?

我有两个文件,一个是英文的,另一个是捷克语的:

快速预览其内容:

我正在尝试切换文化/本地化。我确实相信文化正在被设定。但是,它仍然没有使用cs-CZ 文件:

                                        Dim value = InnerNode.InnerText
                    Dim cultures() As String = {"cs-CZ"}
                    Dim rnd As New Random()
                    Dim cultureNdx As Integer = rnd.Next(0, cultures.Length)
                    Dim originalCulture As CultureInfo = Thread.CurrentThread.CurrentCulture

                    Dim newCulture As New CultureInfo(cultures(cultureNdx))
                        Thread.CurrentThread.CurrentCulture = newCulture
                    Thread.CurrentThread.CurrentUICulture = newCulture

                    Dim currentLanguageValue = My.Resources.GlobalStrings.ResourceManager.GetString(value)

我们知道现在的文化确实是cs-CZ

我们看到currentLanguageValue的值应该是Mandl

但它是Almond - 这意味着它根本无法识别 GlobalStrings.cs-CZ.resx 文件。

我做错了什么,如何让它识别捷克资源文件?

【问题讨论】:

  • 如果您使用采用 CultureInfo 的 GetString 的重载,您能否检索到预期值?
  • 也试过这个Dim culture = ConfigurationManager.AppSettings.GetValues("culture").ToString

标签: .net vb.net localization visual-studio-2017 globalization


【解决方案1】:

尝试在应用程序的入口点设置 CultureInfo(Sub Main 或 main Form 的构造函数,或 Application.Startup 事件)。恐怕在运行时在其他任何地方设置 CultureInfo 都不会影响加载正确的资源。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多