2016-04-04 1 views
2

Фон
У нас есть более старое приложение для веб-форм, и мы не используем какой-либо пользовательский язык/язык глобализации, о котором я знаю. Мы используем файлы resx для ресурсов, специфичных для культуры. Для китайцев в настоящее время у нас есть Файлы resx: zh, zh-cn, zh-hans и zh-hant. Я надеюсь, что вы сходитесь до для простоты: zh-hans и zh-hant. Мы не намерены поддерживать какие-либо языковые варианты; просто общий упрощенный китайский и общий традиционный китайский.Могу ли я использовать только zh-Hans/zh-Hant файлы resx для китайцев, если мне не нужно поддерживать языковые варианты?

Вопрос (ы)

  1. Мой главный вопрос заключается в следующем: Существуют ли ситуации, в которых я бы потребность, чтобы иметь больше, чем ZH-Ганса или ж-Hant файлов для китайцев? * Вне необходимости поддерживать любые варианты, зависящие от локали.

    В принципе, мне нужно, чтобы гарантировать, что если пользователь переходит на наш сайт используя ж, ZH-сп, ж-ГГ языковых коды, они будут получать ресурсы из ZH-Ганса файла и если они просматривают с помощью ZH-служа, ZH-HK или ZH-мо, они получают ресурсы от ж- Hant файла. Это единственные китайские коды, о которых я знаю, но если есть другие, они также должны быть включены сюда - в основном китайский говорящий пользователь с браузером, установленным на любой китайский язык, должен видеть соответствующий упрощенный или традиционный китайский язык - и, безусловно, никогда см. английский.

    До сих пор мое тестирование, похоже, указывает, что да, .NET решает их правильно, но я хочу быть уверенным, что нет никаких скрытых или редких сценариев, которые мне не хватает.

  2. Я знаю, что коды zh-hans и zh-hant немного новее - и считаются «родительскими» культурами. Я также знаю, что старые общие, родительские коды были zh-chs и zh-cht. Есть ли там старые браузеры, которые позволяют выбирать эти коды zh-chs/zh-cht, и если да, то .NET все равно решит их соответствующим образом?

  3. Я не совсем уверен, как .NET решает правильные файлы ресурсов, так что если кто-то может мне точку в правильном направлении, например, какие классы/пространств имен участвуют, что также будет большим. не


Ресурсы
Language codes for simplified Chinese and traditional Chinese?
IETF Language Tags

ответ

2

Ответ нет - вы не имеют только ZH-Ханса/ж-Hant. Потому что, если вы это сделаете, и вы передадите код zh в свой браузер, он НЕ будет автоматически разрешен для файлов zh-hans или zh-hant resx.

Причина связана с тем, что называется «Resource Fallback Process».

В принципе, .NET решает ресурсы через иерархию. Он начнется с запрошенного кода культуры, и если resx для этого конкретного кода культуры не существует, он начнет перемещаться по иерархии, ища следующий код культуры, который имеет, имеет resx. Но он никогда не спускается вниз, только вверх.


Ниже приведен пример иерархии для ZH-SG [Singapore]:

  1. инвариантного
  2. Zh
  3. ZH-Ханс
  4. ZH-CHS (устаревший универсальный код)
  5. zh-sg (местные коды)

Итак, сначала он ищет zh-sg. Если нет файла ресурсов для zh-sg, он ищет zh-chs. Если нет файла ресурсов для zh-chs, он ищет zh-Hans. И так далее.

Наличие только zh-Hans и zh-Hant будет работать для всех кодов, специфичных для локали, таких как zh-sg, zh-tw и т. Д. В некоторых браузерах вы можете выбрать Generic Simplified (zh-Hans) или Generic Традиционный (zh-Hant), и, очевидно, он будет работать и в этих сценариях. Единственный сценарий, который он не будет работать, когда базовый китайский zh был выбран и передан в запросе. В этом случае, если zh не существует, следующее место, которое он смотрит, - это инвариантная культура - в этом случае возвращается текст на английском языке, что явно не то, что мы хотим.

Мое решения, то была пару вниз к наличию базы ж и ж-Hant для моих 2 кодов. Base zh - это мой файл, содержащий упрощенный текст, а zh-Hant - это мой файл, содержащий традиционный текст. Я мог бы сделать это по-другому (сделал zh содержащий традиционный текст и использовал zh-Hans для упрощенного), но на самом деле нет никаких рекомендаций, которые я могу найти, о том, что должна представлять база zh. Должен ли он быть Упрощенным или должен быть традиционным? Я подозреваю, что это в основном вопрос предпочтения. Быстрый поиск нескольких популярных веб-сайтов показал, что в большинстве случаев запрос на базу zh создает текст, который Google Translate распознает как упрощенное. В некоторых случаях он производил традиционный. Но я пошел с тем, что, по-видимому, делало большинство.

+0

Удивительно, спасибо за подробный ответ! –

Смежные вопросы