我有一个网络应用程序,我更改了它的语言,但我无法更改下拉列表 项目 的语言。 任何人都可以帮助我吗?
答案 0 :(得分:2)
我假设您没有从动态源(如数据库)收到您的下拉值。
在这种情况下,Visual Studio或.NET为此功能提供了本地化的资源文件。每种语言都有自己的资源文件,例如: G。 Resources.us-US.resx
和Resources.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 |
+-----+---------+----+----------------+----+----------------+