更改下拉列表项的语言
本文关键字:语言 下拉列表 | 更新日期: 2023-09-27 18:13:16
我有一个web应用程序,我改变了语言,但我不能改变下拉列表项的语言。有人能帮我吗?
静态值
我假设你的下拉菜单值不是从动态源(如数据库)接收的。
在这种情况下,Visual Studio或。net通过本地化的资源文件提供了这个特性。每种语言都有自己的资源文件,例如Resources.us-US.resx
和Resources.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 |
+-----+---------+----+----------------+----+----------------+