Как работает интернационализация в ASP.NET? - PullRequest
2 голосов
/ 19 января 2012

Интересно, можно ли сделать ваше приложение многоязычным, просто создав файлы ресурсов для каждого необходимого языка?
Как

Resource.resx for English      //string abc(name)=xyz(value)
Resource.zh.resx for Chinese   //string abc(name)=zh(value)

И просто размещение строки в вашем представлении (только одно представление, поддерживающее многоязычность) строка типа

@appName.Resource.abc

и

<globalization culture="en-GB" uiCulture="auto:en-GB" />

в Web.Config

Теперь мой вопрос

Этого достаточно, чтобы начать работу с многоязычными сайтами, т. Е. Если я переключаю предпочитаемый язык в своем браузере на китайский, содержимое страницы меняется? Но как это работает?

Что я знаю, это

  • Браузер возвращает список предпочитаемых культур

Нужно знать - Как происходит сопоставление с конкретным файлом ресурсов. Я имею в виду, что оба файла ресурсов (Resource.resx и Resource.zh.resx) в моем примере имеют свойство 'abc' с различным значением. Как asp.net определяет, какое значение визуализировать? Есть ли какое-либо соглашение об именах?

1 Ответ

4 голосов
/ 19 января 2012

Во время выполнения ASP.NET использует файл ресурсов, который лучше всего подходит для настройка свойства CurrentUICulture. UI культура для поток устанавливается в соответствии с культурой пользовательского интерфейса страницы. Например, если текущая культура пользовательского интерфейса испанская, ASP.NET использует скомпилированную версию файла WebResources.es.resx. Если нет совпадения для текущего В культуре пользовательского интерфейса ASP.NET использует резервный ресурс. Начинается с поиска ресурсы для конкретной культуры. Если таковые не доступны, это ищет ресурсы для нейтральной культуры. Если это не найдено, ASP.NET загружает файл ресурсов по умолчанию. В этом примере файл ресурсов по умолчанию - WebResource.resx.

Ссылка: Обзор ресурсов веб-страницы ASP.NET

Интернационализация Microsoft .NET

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...