C# 更改下拉列表项的语言

C# 更改下拉列表项的语言,c#,drop-down-menu,localization,C#,Drop Down Menu,Localization,我有一个web应用程序,我更改了它的语言,但无法更改dropdownlist项目的语言。 有人能帮我吗?静态值 我假设您的下拉列表值不是从动态源(如数据库)接收的 在这种情况下,VisualStudio或.NET通过本地化的资源文件提供了此功能。每种语言都有自己的资源文件,例如。gResources.us.resx和Resources.de-de.resx。您将这些资源文件添加到项目中,应用程序将根据操作系统语言选择正确的语言 这是您希望在.NET应用程序中提供多语言的方式 CultureInf

我有一个web应用程序,我更改了它的语言,但无法更改dropdownlist项目的语言。 有人能帮我吗?

静态值 我假设您的下拉列表值不是从动态源(如数据库)接收的

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

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

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

这只是一个猜测,但您的应用程序可能是使用资源文件本地化的,您的下拉列表可能是通过调用数据库填充的。如果您想更改下拉项的语言,您可能需要安装某种本地化系统(例如数据库中的额外表格)…我不明白您能给我一个示例或参考吗?!我的下拉列表接收到来自SQL by entity framework和英语应用程序的值,我可以更改所有标签、DDL、GridViewColums、,通过单击按钮将按钮转换为阿拉伯语,以通过.resx中的键和值更改语言,但我无法对下拉列表执行此操作items@haneen更准确地描述您的问题,并提供所有必要的信息。有几种方法可以提供多语言。如果您从数据库收到下拉列表值,您将需要额外的表。我几乎理解您的意思,您的意思是我必须用sql创建新表并在更改语言时绑定它吗?@haneen请查看我从数据库编辑的动态值。我添加了一个非常简单的示例,请使用建议的方法,它会更好。。。我认为这是一种有效的方法,但我认为我需要编辑插入和更新方法,不是吗?!