更改下拉列表项的语言

本文关键字:语言 下拉列表 | 更新日期: 2023-09-27 18:13:16

我有一个web应用程序,我改变了语言,但我不能改变下拉列表的语言。有人能帮我吗?

更改下拉列表项的语言

静态值

我假设你的下拉菜单值不是从动态源(如数据库)接收的。

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

这是你想在。net应用程序中提供多语言的方式。

MSDN文章

如果您本地化您的项目,您将需要创建本地化项目资源文件的版本。例如,字符串是要本地化的最常见的资源类型。本地化的文件是不会显示在资源设计器中,但您可以创建和查看

看一下这篇文章和这个演练,它们描述了如何将资源文件嵌入到您的项目中。

本地化资源文件的实现还允许您手动更改语言,而忽略底层操作系统语言。例如,以下代码片段(在主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);

数据库中的动态值

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

+---------------+---------------------+---------------------+
| 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 |
+-----+---------+----+----------------+----+----------------+