更改下拉列表项的语言

时间:2015-09-18 15:22:43

标签: c# drop-down-menu localization

我有一个网络应用程序,我更改了它的语言,但我无法更改下拉列表 项目 的语言。 任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

静态值

我假设您没有从动态源(如数据库)收到您的下拉值。

在这种情况下,Visual Studio或.NET为此功能提供了本地化的资源文件。每种语言都有自己的资源文件,例如: G。 Resources.us-US.resxResources.de-DE.resx。您将这些资源文件添加到项目中,应用程序将根据操作系统语言选择正确的语言。

这就是您希望在.NET应用程序中提供多语言的方式。

  

MSDN文章

     

如果您本地化您的项目,您将需要创建本地化   项目资源文件的版本。例如,字符串就是   最常见的本地化资源类型。本地化的文件是   没有显示在资源设计器中,但您可以创建和查看   他们在解决方案资源管理器中。

看一下这个article和这个walkthrough,它们描述了如何将资源文件嵌入到项目中。

其他信息

使用本地化资源文件的实现还允许您手动更改语言 并忽略底层操作系统语言。例如,无论何时启动应用程序,此片段(在主ui线程之前执行)都将语言始终设置为德语。

CultureInfo culture = new CultureInfo("de-DE");
Application.CurrentCulture = culture;
CultureInfo.DefaultThreadCurrentCulture = culture;
CultureInfo.DefaultThreadCurrentUICulture = culture;

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culture.Name);
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(culture.Name);

来自数据库的动态值

如果从数据库收到下拉值,则需要额外的表和关系。看看这个approach。我的示例是一个非常简单的实现,您可以从每个值引用相应的转换。

+---------------+---------------------+---------------------+
| DropdownValue |   DropdownEnglish   |    DropdownGerman   |
+---------------+---------------------+---------------------+
|  Id |  Basic  | Id |     English    | Id |     German     |
+-----+---------+----+----------------+----+----------------+
|  1  |  value1 |  1 | translation_e1 |  1 | translation_g1 |
+-----+---------+----+----------------+----+----------------+
|  2  |  value2 |  2 | translation_e2 |  2 | translation_g2 |
+-----+---------+----+----------------+----+----------------+
|  3  |  value3 |  3 | translation_e2 |  3 | translation_g3 |
+-----+---------+----+----------------+----+----------------+