Определить, установлен ли какой-либо язык с письмом справа налево

Каков самый простой способ определить, установлен ли какой-либо язык с письмом справа налево в основной ОС Windows?

(Мне это нужно, чтобы знать, будут ли метки LTR отображаться в виде квадратов или правильно работать на хост-ОС)


person Jiri    schedule 08.08.2010    source источник
comment
О нет, кто-то только что удалил ответ. Там действительно была полезная информация.   -  person Jiri    schedule 08.08.2010


Ответы (1)


Вероятно, неуправляемый API, например IsValidLanguageGroup, IsValidLocaleName (или IsValidLocale) или IsValidCodePage — это то, что вы ищете

Например код

if (IsValidLanguageGroup (LGRPID_ARABIC, LGRPID_INSTALLED) ||
    IsValidLanguageGroup (LGRPID_TURKIC, LGRPID_INSTALLED) || 
    IsValidLanguageGroup (LGRPID_HEBREW, LGRPID_INSTALLED)) {
    // RTL is supported 
}

можно использовать для проверки того, установлен ли на компьютере с Windows хотя бы один из двух наиболее известных языков с письмом справа налево (RTL). Я не знаю соответствующий .NET API, но, вероятно, CultureInfo.GetCultures.

ОБНОВЛЕНО: я включил тайскую языковую группу в список языковых групп для тестирования, но я не уверен, что какой-либо из этих языков вам действительно нужен. Обычно ваше приложение поддерживает только выбранные языки.

person Oleg    schedule 08.08.2010
comment
Тайский шрифт слева направо. Я считаю, что языковые группы для проверки: LGRPID_ARABIC, LGRPID_HEBREW и LGRPID_TURKIC. - person Michael Platings; 19.04.2011