* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна!
Локализация формы
8 февраля 2009
^ Создание локализованной версии формы 1. В окне дизайнера выберите форму Forml и в окне Properties присвойте ее свой- ству Localiiable значение true.
Обратите внимание, что свойства Language по умолчанию установлено в (Default). Текущие свойства пользовательского интерфейса станут параметрами, опреде- ляющими его облик при выборе языка по умолчанию. 2. В окне Properties поменяйте значение свойства Language с (Default) на Italian (Italy). 3. В окне Properties; установите для свойств, перечисленных в таблице 8-5, значе- ния, указанные в этой таблице. Таблица 8-5. Значения ресурсов для итальянской версии формы Свойство Значение IblQuantity. Text Quantita IblPrice. Text Prezzo ibiTotal.Text Totale btnAdd. Text Aggiungi ordine btnClear.Text Rimuovi ordine btnClearAll.Text Rimuovi tutti gli ordini BtnPrint. Text Stampa Чтобы ввести символ «а», наберите 0224 на цифровой клавиатуре, удерживая на- жатой клавишу Alt, либо воспользуйтесь стандартной программой Windows XP Character map (Таблица символов). Чтобы вызвать ее, щелкните Start\All Frograms\ Accessories\System Tools (Пуск\Все программы\Стандартные\Служебыые). Примечание Для корректного отображения содержимого на итальянском ячыке иногда приходится изменять размер некоторых элементов управления или формы. В окне Properties установите свойство Language в (Default). Заметьте, что надпи- сям на элементах управления возвращается исходный вид. В меню Project выберите команду Add Windows Form. Назовите новую форму frmLanguage и щелкните ОК. В окне дизайнера поместите на созданную форму поле со списком и кнопку, Установите для этих элементов управления свойства, как показано в таблице 8-6. Таблица 8-6. Элементы управления формы Select Locale н их свойства Элемент управления frmLanguage ComboBoxl Свойство Text Name Text Items (add) Items (add) Items (add) Значение Choose your locale. cmbLocale Please select a locale. United States Great Britain Italy 7. В редакторе кода добавьте к форме frmLanguage обработчик события Selected- IndexChanged для элемента управления cmbLocale. Он должен установить назна- чать приложению и интерфейсу выбранную культуру и закрыть форму выбора языка. Вот примерный код этого обработчика: Visual Basic .NET Private Sub CTibLocale_SelectedInd6xChanged{ByVal sender As _ System.Object. ByVal e As System.EventArgs) Handles _ cmbLocale.SelectedlndexChanged Dim aString As String aString = CTypefcrnbLocale. Selectedltem, String) Select Case aString Case "United States" 1 Американский вариант английского является языком по умолчанию, 1 поэтому дополнительных действий не требуется. Me.CloseO Case "Great Britain" System.Threading.Thread.CurrentThread.CurrentCulture - _ New System.Globalization.Си ItureInfo("en-GB") System.Threading.Thread.СиrrentThread.Си гrentUICulture _ - New System.Globalization.CultureInfo("en-GB") Me.CloseO Case "Italy" System. Threading. Thread. CurrentThread. CurrentCulture = New System. Globalization. Cult ureInfo("it-IT") System. Threading. Thread. CurrentThread. Cur rent UlCultu re = New System. Globalization. CultureInfo("it-IT") Me.CloseO End Select End Sub Visual C# private void crnbLocale_SelectedIndexChanged(object sender, System. EventArgs e) { string aString; aString = (string)crnbLocale.Selectedltem; switch (aString) { case "United States": // Американский вариант английского является языком по умолчанию, // поэтому дополнительных действий не требуется. this.CloseO; break; case "Great Britain"; System. Threading. Thread. CurrentThread. CurrentCulture = new System. Globalization. Cult ureInfo("en-GB"); Syst em. Threading. Thread. CurrentThread. Си rrentUICultu re = new System. Globalization. Си ltureInfo("en-GB"); this.CloseO; break; case "Italy" : System. Threading. Thread. CurrentThread. CurrentCulture = new System. Globalization. Culturelnfo( "it-IT" ); System. Threading. Thread. CurrentThread. Си rrentUICultu re = new System. Globalization. Cult urelnfo( "it-IT"); this.CloseO; break; Откройте форму Forml в редакторе кола и найдите ее конструктор. Сразу после вызова конструктора базового класса [после строки MyBase.NewQ — в Visual Basic .NET] или в начале конструктора (Visual C#) добавьте следующий код: Visual Basic .NET Dim aForoi As New frmlanguageO aForm.ShowDialogO Visual C# frmLanguage aForm = new fnpLanguagef); aForm.ShowDialogO; Примечание Чтобы открыть конструктор формы в редакторе кода Visual Basic, следует развернуть область с пометкой «Windows Form Designer generated code». 9. Сохраните приложение и протестируйте его. В первой форме выберите регион «United States» и протестируйте приложение с этой версией интерфейса. Заметь- те, что денежные суммы форматируются с использованием знака доллара ($), согласно формату, принятому в США. Закройте приложение и запустите его снова, На этот раз выберите «Great Britain». Теперь денежные суммы отобража- ются с использованием знака «фунт стерлингов» (£). Закройте приложение и за- пустите его еще раз, выбрав регион «Italy». Обратите внимание, что загружается локализованная версия формы с соответствующим заголовком. При этом денеж- ные суммы отображаются с использованием знака евро согласно правилам, при- нятым в Европе: запятая является разделителем десятичных дробей, а точка от- деляет разряды тысяч.