我不确定这里的术语,但我需要访问一个特定的资源文件,其名称是计算的字符串。
例如:
我有一个名为“resFile-en-GB”的资源文件我可以使用“resFile-en-GB.stringKey”访问内部的字符串。现在我需要将文化信息添加到字符串的末尾。
string stringA = "resfile-";
string stringB = "en-GB";
string stringC = stringA + stringB;
现在我需要使用“stringC”作为资源文件名,例如“stringC.stringKey”我将如何进行此操作?
答案 0 :(得分:2)
您可以通过ResourceManager访问资源,然后使用GetString(密钥),在这种情况下可能更容易:
var resourceManager = new ResourceManager(stringC, Assembly.GetExecutingAssembly())
resourceValue = resourceManager.GetString(key);
答案 1 :(得分:1)
您可以使用资源文件使您的应用程序使用多种语言。
这是显而易见的第一步。例如,在解决方案ResourceFiles
中添加一个文件夹并添加resx文件:
LanguageStrings.resx将包含default
语言,让我们说英语。 fr-FR将包含法语,而nl-NL将包含荷兰语。您只需将项添加到资源文件即可。例如HelloWorld = Hello world。
是的,所以你将HelloWorld密钥添加到你的三种语言字符串.resx文件中,并附上适当的翻译。
您希望能够在应用程序中的某个位置设置语言。它可能在某个事件处理程序(列表框或您想到的任何内容)中。您需要在LanguageStrings
上设置所选的文化信息。
var cultureInfo = new System.Globalization.CultureInfo("nl-NL");
System.Threading.Thread.CurrentThread.CurrentCulture = cultureInfo;
LanguageStrings.Culture = cultureInfo;
这将语言设置为硬编码为荷兰语。显然你想制作“nl-NL”变量,以便你可以将语言设置为用户选择的任何语言。
最后,您要从资源文件中检索本地化字符串。例如:
label.Text = LanguageStrings.HelloWorld;
魔法发生了。 您不必定义应使用哪个语言资源文件来检索本地化字符串。这是为你完成的,因为你已经为资源文件(LanguageStrings.Culture = ..
)设置了所需的语言。
这是基础知识,我希望这可以帮助你。
答案 2 :(得分:0)
ResourceManager.GetString方法可以帮助您实现这一目标。