Мне нужна информация о локализации. Я использую .net 2.0 с C # 2.0, который решает большинство проблем, связанных с локализацией. Однако мне нужно вручную нарисовать алфавиты, соответствующие текущей культуре, на экране на одном конкретном экране.
Это было бы похоже на экран «Контакты» в Microsoft Outlook (представление «Адресные карты» или «Просмотр подробных адресных карт» в разделе «Контакты»), поэтому ему нужен столбец кнопок в правом конце, по одной для каждого алфавита.
Я пытаюсь имитировать это, но я не хочу просить пользователя выбрать сценарий. Если нынешняя культура, скажем, китайская, я хочу рисовать китайские алфавиты. Когда пользователь меняет информацию о культуре на английский (и когда он перезапускает приложение), я хочу вместо этого рисовать английские алфавиты. Надеюсь, вы понимаете, к чему я клоню с этим запросом.
Я могу определить культуру текущего пользователя (Application.CurrentCulture или System.Globalization.CultureInfo.CurrentCulture предоставит информацию, связанную с культурой). Еще у меня есть все скрипты для рендеринга алфавитов. Однако проблема в том, что я не знаю, как сопоставить информацию о культуре с именем скрипта.
Другими словами, есть ли способ определить имя сценария, соответствующее культуре? Или можно определить диапазон значений символов Юникода, соответствующих культуре? Любой из них позволил бы мне правильно отобразить алфавиты на кнопке.
Мы искренне ценим любые предложения или рекомендации по этому поводу. Если в моем подходе (или в том, чего я пытаюсь достичь) есть что-то принципиально неправильное, укажите, пожалуйста, и на это. Спасибо за ваше время.
PS: Я знаю, что самое простое решение - либо настроить имя сценария как часть пользовательских предпочтений, либо отобразить список языков для выбора пользователем (а-ля Контакт в Outlook 2007). Но я просто пытаюсь понять, смогу ли я отобразить алфавиты, соответствующие культуре, без каких-либо действий пользователя.