2011-11-17 73 views
3

我正在开发支持两​​种语言阿拉伯语和英语的Windows应用程序。我想在运行时更改表单的UI(标签)。应该用该语言显示用户最初选择哪种语言。对于这一点,如果用户选择了英语多语言窗体形式

Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-GB");" 

如果用户选择了阿拉伯语

Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-Ar"); 

当我运行在Visual Studio中的应用程序能正常工作,我已经设置以下关键

。所有表格都根据当前选定的UI文化进行。

但是,在机器上安装此应用程序的MSI后,它不会根据CurrentUICulture资源文件显示表单的标签值。即使选择的语言是阿拉伯语,它也始终只显示英文标签。

+0

您可能需要发布一些代码。 – mydogisbox

+3

您的msi是否正确安装卫星组件?如果您的应用程序名为test.exe,则应该有一个目录en-GB/test.resources.dll和一个目录en-Ar/test.resource.dll。 – Francis

+0

当你说选定的语言是阿拉伯语时,该语言是如何选择的?通过区域设置或语言栏或其他方式? –

回答

0

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