C# 多语言窗口窗体

C# 多语言窗口窗体,c#,winforms,globalization,resource-files,C#,Winforms,Globalization,Resource Files,我正在开发支持阿拉伯语和英语两种语言的windows应用程序。我想在运行时更改表单的UI(标签)。用户最初选择的语言应以该语言显示。为此,我设置了以下关键点 如果用户选择英语 Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-GB");" 如果用户选择阿拉伯语 Thread.CurrentThread.CurrentUICulture = new System.Globalizati

我正在开发支持阿拉伯语和英语两种语言的windows应用程序。我想在运行时更改表单的UI(标签)。用户最初选择的语言应以该语言显示。为此,我设置了以下关键点

如果用户选择英语

Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-GB");"
如果用户选择阿拉伯语

Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-Ar");
当我在VisualStudio中运行该应用程序时,它工作得很好。所有表单都根据当前选择的UI区域性提供


但在计算机上安装此应用程序的MSI后,它不会根据CurrentUICulture资源文件显示窗体的标签值。它总是只显示英文标签,即使所选语言是阿拉伯语。

我通过执行以下步骤找到了此查询的解决方案。 -实际上,在创建应用程序的安装程序时,它会映射资源dll文件夹,因此仅在部署项目中添加“project.resources.dll”是不够的。 -在应用程序文件夹下添加一个文件夹(名称与bin->dubug下包含resource.dll的文件夹名称相同),然后在其下添加“project.resources.dll”。
-这将解决问题->如果所选语言为阿拉伯语,则所有标签都将使用阿拉伯语

您可能需要发布一些代码。您的msi是否正确安装了附属程序集?如果您的应用程序名为test.exe,则应该有一个en GB/test.resources.dll目录和一个en Ar/test.resource.dll目录。当您说所选语言是阿拉伯语时,该语言是如何选择的?通过区域设置、语言栏或其他方式?感谢您提出宝贵的建议。我通过执行以下步骤找到了此查询的解决方案。-实际上,在创建应用程序的安装程序时,它会映射资源dll文件夹,因此仅在部署项目中添加“project.resources.dll”是不够的。起初我只是在做那件事解决方案:在应用程序文件夹下添加一个文件夹(名称与在bin->dubug下包含resource.dll的文件夹名称相同),然后在其下添加“project.resources.dll”。-它为我解决了这个问题->如果选择的语言是阿拉伯语,所有标签现在都是阿拉伯语。