英语桌面C#.net应用程序中的阿拉伯语本地化

bil*_*lal 2 .net c# localization arabic

我正在构建一个企业C#.net应用程序,要求是将有阿拉伯语和英语版本.客户可以选择2个选项,可以将英语和阿拉伯语一起用于标签和说明,也可以将开始使用英语和阿拉伯语的组合框选择并继续使用该语言.我想节省我的时间,并希望我可以建立一个英文版本,阿拉伯语必须自动翻译.

提前致谢.

Paw*_*yda 6

首先,您不需要选择任何内容,如果有人在他/她的操作系统中设置了阿拉伯语区域设置,则会选择它.要检测使用的语言(如果您需要此信息,通常不需要),您只需阅读System.Globalization.CultureInfo.CurrentUICulture属性即可.

但是,在WinForms中,您实际上可以使用内置的本地化支持.为此,您需要将Form Localizable属性切换为true.假设您提供了阿拉伯字符串,则完成英语布局并将翻译放在适当的位置,您需要将Form的Language属性从(默认)切换为阿拉伯语.这是最简单的方法.在阿拉伯语中,您还需要将Form的属性切换为Yes,将True 切换为True. 如果您正确执行此操作,您将看到该表单已镜像.这是理想的情况,不要惊慌.RightToLeftRightToLeftLayout

更糟糕的是,您偶尔需要显示消息框.这里的问题是,根据您使用的语言类型,您实际上需要以不同的方式执行此操作,因为阿拉伯语(和其他RTL语言)要求使用RTLReading常量:

if (CultureInfo.CurrentUICulture.TextInfo.IsRightToLeft)
{
    MessageBox.Show(text, caption, MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading);
}
else
{
    MessageBox.Show(text, caption, MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);
}
Run Code Online (Sandbox Code Playgroud)

这是在高层......