使用 C# Windows 表单进行本地化,无法访问我的 .resx 文件
Localization with C# Windows Forms, cannot access my .resx File
您好,我创建了这个 WinForm 程序。它有几种形式。
我在 Whosebug 上寻找教程或其他帮助并找到它。
How to use Localization in C#
这真的很有帮助,但是..
我创建了一个 ResourceString.de-DE.resx 文件并将其添加到 Properties 文件夹中。
添加了一些字符串,以便我可以对其进行测试。并将访问修饰符更改为 Public.
然后我想访问属性文件夹以使用 ResourceString.de-De.resx 文件。
但没有得到建议。
代码最终必须如下所示:
private void setLanguage()
{
btnSwitchLanguage.Text = Properties.ResourceString.de-DE.btnSwitchLanguage;
}
我是不是漏掉了什么?
感谢任何帮助。 :)
谢谢
您需要创建一个默认 'ResourceString.resx' 文件以及所有您的语言特定的 resx 文件。确保在所有 resx 文件中添加相同的资源。 (btnSwitchLanguage, ...).
嗯,我发现我的错误,在再次阅读线程后,我链接到我的 Post。
应该有一个名为 Strings.resx(或您选择的任何名称)的文件,其中包含原始字符串。
以及包含另一种语言的文件。 (在我的例子中是德语)。
应该有相同的名字,除了语言在最后。
像这样:
Strings.de-DE.resx
之后我只需要将我的代码更改为:
private void btnSwitchLanguage_Click(object sender, EventArgs e)
{
if (Thread.CurrentThread.CurrentUICulture.ToString().Equals("de-DE"))
{
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en-GB");
}
else
{
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("de-DE");
setLanguage();
}
}
private void setLanguage()
{
btnSwitchLanguage.Text = Properties.Strings.btnSwitchLanguage;
}
您不需要添加Strings.resx
文件,您的项目已经有资源文件Resources.resx
。因此,如果需要本地化为"de-DE",您应该添加一个名称为Resources.de.resx
的新资源文件。因此,您不仅可以在这个资源文件中放入字符串,还可以放入图像、图标等。
没有必要将 Access Modifier
更改为 Public
除非您不打算从另一个程序集访问此资源。
NOTE: When you are working in the Visual Studio the Visual Assist
suggestion will be the same for all languages, starting from
Properties.Resources
.
您好,我创建了这个 WinForm 程序。它有几种形式。
我在 Whosebug 上寻找教程或其他帮助并找到它。 How to use Localization in C#
这真的很有帮助,但是.. 我创建了一个 ResourceString.de-DE.resx 文件并将其添加到 Properties 文件夹中。 添加了一些字符串,以便我可以对其进行测试。并将访问修饰符更改为 Public.
然后我想访问属性文件夹以使用 ResourceString.de-De.resx 文件。
但没有得到建议。
代码最终必须如下所示:
private void setLanguage()
{
btnSwitchLanguage.Text = Properties.ResourceString.de-DE.btnSwitchLanguage;
}
我是不是漏掉了什么?
感谢任何帮助。 :) 谢谢
您需要创建一个默认 'ResourceString.resx' 文件以及所有您的语言特定的 resx 文件。确保在所有 resx 文件中添加相同的资源。 (btnSwitchLanguage, ...).
嗯,我发现我的错误,在再次阅读线程后,我链接到我的 Post。
应该有一个名为 Strings.resx(或您选择的任何名称)的文件,其中包含原始字符串。 以及包含另一种语言的文件。 (在我的例子中是德语)。 应该有相同的名字,除了语言在最后。 像这样:
Strings.de-DE.resx
之后我只需要将我的代码更改为:
private void btnSwitchLanguage_Click(object sender, EventArgs e)
{
if (Thread.CurrentThread.CurrentUICulture.ToString().Equals("de-DE"))
{
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en-GB");
}
else
{
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("de-DE");
setLanguage();
}
}
private void setLanguage()
{
btnSwitchLanguage.Text = Properties.Strings.btnSwitchLanguage;
}
您不需要添加Strings.resx
文件,您的项目已经有资源文件Resources.resx
。因此,如果需要本地化为"de-DE",您应该添加一个名称为Resources.de.resx
的新资源文件。因此,您不仅可以在这个资源文件中放入字符串,还可以放入图像、图标等。
没有必要将 Access Modifier
更改为 Public
除非您不打算从另一个程序集访问此资源。
NOTE: When you are working in the Visual Studio the Visual Assist suggestion will be the same for all languages, starting from
Properties.Resources
.