5

我几乎完成了我的 C# 应用程序;剩下要做的就是实现多语言支持。

我已经为屏幕上显示的所有文本创建了包含几种语言的字符串的资源文件。

我的英语资源文件示例:

Name                    |  Value                       | Comment
------------------------------------------------------------------------------
lblName                 |   Name:                      |  Name EN

我的荷兰语资源文件示例:

Name                    |  Value                       | Comment
------------------------------------------------------------------------------
lblName                 |  Naam:                       | Name NL

如何将字段绑定Value到我的( ) 的Text属性?LabellblName

我正在使用 .NET Framework 3.5。

4

3 回答 3

1

我知道这个问题很久以前就被问过了,但由于没有答案,我建议:

要访问 C# 中的资源文件,您可以使用ResourceManager。首先根据当前语言创建资源管理器。您有两种选择。您可以使用 switch 或 if 语句(如果语言由菜单确定)或使用本地化来使用计算机的当前文化。最后,通过这两种方式,您可以调用 GetString() 方法,提供我认为在您的情况下是 lblName 的密钥。

注意:在下面的示例中,我使用第一种方法,即从菜单中检索语言。

string selectedLanguage = comboBoxLang.Text; // Comes from a menu option
string resourceFile = string.Empty;

/***/
Logic to retrieve the proper resourceFile depending on the selectedLanguage.
/***/

ResourceManager rm = new ResourceManager(resourceFile, Assembly.GetExecutingAssembly());

// Set your label text.
lblName.Text = rm.GetString("lblName");
于 2017-11-16T20:45:40.410 回答
-2

尝试这个:

<asp:Label runat="server" Text="<%$ Resources:DutchLanguage, Value %>"></asp:Label>
于 2013-03-12T10:50:52.100 回答
-3

将不同语言的值放在一个数据库表中。

让用户选择语言。

根据语言的选择从数据库中获取有关特定语言的数据。

然后将其与标签文本绑定。

于 2013-03-12T10:48:26.603 回答