Прежде всего, вам не нужно ничего выбирать, это будет уже выбрано, если кто-то установит арабский язык в своей операционной системе.Чтобы определить, какой язык используется (если вам нужна эта информация, обычно нет), вы просто прочитали бы свойство System.Globalization.CultureInfo.CurrentUICulture
.
Однако в WinForms вы могли бы использовать встроенную поддержку локализации.Для этого вам нужно переключить свойство Form Localizable
на true.Предполагая, что у вас есть арабские строки, вам нужно будет поменять свойство Language
формы с (по умолчанию) на арабский после , когда вы завершите английскую раскладку и разместите переводы в соответствующих местах.Это самый простой способ.Вам также необходимо переключить свойство RightToLeft
формы на Да и RightToLeftLayout
на Истину, если на арабском языке.
Если вы сделаете это правильно, вы увидите, что форма отражается.Это желаемая ситуация, не паникуйте.
Хуже всего то, что вам иногда придется отображать окна сообщений.Проблема здесь в том, что в зависимости от того, какой тип языка вы используете, вам на самом деле нужно будет сделать это по-другому, для арабского (и других языков 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);
}
Вот и все на высоком уровне ...