Как отличить упрощенный и традиционный китайский в C #? - PullRequest
3 голосов
/ 05 декабря 2011

Мое приложение переведено на несколько языков, включая французский, традиционный китайский и упрощенный китайский. Теперь, когда приложение запускается впервые, я хочу автоматически выбрать правильный перевод в зависимости от локали пользователя.

Для французского языка оценка TwoLettersIsoLanguageName свойства InstalledUiCulture работала хорошо, но для китайских ISO-кодов недостаточно. Я подумал о том, чтобы прибегнуть к свойству Name, которое разделяет zh-Hans и zh-Hant, но это нарушает французский язык, так как оно дает fr-FR в некоторых системах и fr-CA в других, например.

Есть ли простой способ получить двухбуквенный код языка текущей культуры, если он не китайский, и в противном случае получить zh-Hans / zh-Hant?

Я ищу элегантное решение; Я, конечно, думал о разборе свойства Name культуры и создании особого случая для китайского, но это не очень красиво: /

Короче говоря, я думаю, что я ищу способ извлечь "нейтральную" культуру из текущей культуры: из fr-Fr get fr, из zh-TW get zh-Hant и из zh-CN получить zh-Hans. Идеи?

Спасибо!

1 Ответ

2 голосов
/ 05 декабря 2011

Кажется, что Parent свойство класса CultureInfo - это то, что вы ищете.
Кажется, оно было поддержано с самого начала.

Кстати,В случае переводов вы должны использовать CurrentUICulture вместо CurrentCulture (последняя предназначена для форматирования) или InstalledUiCulture, которая является языковой версией операционной системы и не требует пользовательских предпочтений.

...