Иерархическая организация ресурсов для локализации

В Visual Studio локализованные ресурсы (такие данные, как строки и изображения, принадлежащие к определенной языковой и региональной среде) хранятся в отдельных файлах и загружаются при выборе соответствующих языковых и региональных параметров пользовательского интерфейса.Для понимания того как происходит загрузка локализованных ресурсов, удобно представлять их себе в виде иерархии.

Типы ресурсов в иерархии

  • Во главе иерархии находятся ресурсы возврата для языковых и региональных параметров по умолчанию, например английской ("en").Это единственные ресурсы, у которых нет своего собственного файла; они хранятся в основной сборке.

  • За ресурсами возврата следуют ресурсы для нейтральных языковых и региональных параметров.Нейтральные языковые и региональные параметры связываются с языком, а не со страной или регионом.Примером нейтральных языковых и региональных параметров является французская — "fr"(обратите внимание, что резервные ресурсы тоже относятся к нейтральным языковым и региональным параметрам, хотя и особого вида).

  • Под этими ресурсами в иерархии находятся ресурсы определенных языковых и региональных параметров.Определенные языковые и региональные параметры связываются с языком и страной или регионом.Примером таких языковых и региональных параметров является французский язык (Канада) ("fr-CA").

Если приложение пытается загрузить какие-либо локализованные ресурсы, например строку, и не находит их, оно ищет их выше в иерархии до тех пор, пока не найдет файл ресурсов, содержащий нужный ресурс.

Оптимальный способ хранения ресурсов должен делать их как можно более общими.Это означает, что локализованные строки, изображения и прочее следует по возможности хранить в файлах ресурсов для нейтральных, а не определенных языковых и региональных параметров.Например, если имеются ресурсы для французского языка (Бельгия) ("fr-BE"), а непосредственно выше в иерархии находятся резервные ресурсы на английском языке, при работе приложения в системе, настроенной на канадский французский, могут возникнуть проблемы.Система начнет искать вспомогательную сборку для "fr-CA", не найдет ее и вместо французских ресурсов загрузит основную сборку с резервными ресурсами на английском языке.Эта нежелательная ситуация проиллюстрирована на рисунке.

Только специальные ресурсы

Если следовать рекомендованной практике и включить максимально возможное число ресурсов в нейтральный файл ресурсов для языковых и региональных параметров "fr", то жители Канады увидят не те ресурсы, которые относятся к языковым и региональным параметрам "fr-BE", а строки на французском языке.Этот оптимальный сценарий показан на следующем рисунке.

График NeutralSpecificResources

См. также

Задачи

Практическое руководство. Установка значений Culture и UICulture для глобализации форм Windows Forms

How to: Set the Culture and UI Culture for ASP.NET Web Page Globalization

Основные понятия

Языки нейтральных ресурсов для локализации

Безопасность и локализованные вспомогательные сборки

Другие ресурсы

Локализация приложений

Глобализация и локализация приложений