Как добиться многоязычной поддержки в ASP.NET

Я хочу интернационализировать свое приложение asp.net. Как это сделать? Какие именно шаги я должен выполнить?


person Red Swan    schedule 01.10.2009    source источник


Ответы (6)


Просто создайте класс базовой страницы, который будет унаследован от класса Page, поместите этот метод в класс базовой страницы и унаследуйте класс базовой страницы на каждой вашей странице aspx.cs, чтобы добиться глобализации.

 protected override void InitializeCulture() 
{ 
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US"); 
    Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
    base.InitializeCulture(); 
}

установите в этом методе любую культуру, которую вы хотите, например, ar-sa для арабского языка ....

person Muhammad Akhtar    schedule 01.10.2009
comment
casn u дайте мне более подробную информацию, я использую значение сеанса с файлом asax - person sakir; 27.01.2014

1.) Если вы используете базу данных, вы должны изменить свои таблицы. По крайней мере, с добавлением столбца LCID.

2.) Установите культуру по умолчанию и культуру пользовательского интерфейса в web.config

<system.web>
 <globalization culture="cs-CZ" uiCulture="cs-CZ"/>
</system.web>

3.) Затем вы можете установить фактическую культуру потока либо в global.asax, например, в BeginRequest или в базовом классе классов вашей страницы в методе InitializeCulture.

protected override void InitializeCulture()
    {
        string language = Request["lang"];
        if (!string.IsNullOrEmpty(language))
        {
            System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(language);
            System.Threading.Thread.CurrentThread.CurrentUICulture = System.Threading.Thread.CurrentThread.CurrentCulture;
        }
        else
        {
            base.InitializeCulture();
        }        
    }
  1. Для статических текстов вы можете использовать ресурсы. Например. вы создаете Mytexts.resx, где вы пишете тексты для языка по умолчанию (en-us), а затем вы создаете Mytexts.en-UK.resx для английского языка и перезаписываете текст, который отличается от языка по умолчанию. Затем вы можете вставить эти строки на свою страницу:
<asp:Label runat="server" Text='<%$ Resources: Mytests,WelcomeMessage %>' />

Это лишь краткие шаги для начала локализации, но для небольших страниц / приложений этого достаточно.

person Jan Remunda    schedule 01.10.2009

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

Лучше всего для этого подходят темы локализации и глобализации в MSDN.

person suhair    schedule 01.10.2009

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

Подход, который мы использовали в моем последнем проекте (упрощенном), был следующим:

  1. Настройте домен для каждой страны
  2. Создайте файл ресурсов для всех жестко запрограммированных строк (меток форм и т. Д.) Для каждой культуры (en-US, de-DE, fr-FR)
  3. Измените Thread.CurrentCulture в зависимости от домена, с которого осуществляется доступ к сайту - это означает, что все ваши числовые форматы и форматы даты будут правильными и будут использовать правильный локализованный файл ресурсов.

Надеюсь это поможет!

См. здесь официальные документы Microsoft по интернационализации.

person Mark Bell    schedule 01.10.2009

Это сложная тема, требующая много работы, чтобы разобраться во всех уровнях вашей системы.

Начните здесь.

Файлы ASP.NET resx, которые позволят вам легко настраивать постоянные строки, но ваша БД также должна будет поддерживать юникод, и вам нужно будет делать разные вещи в зависимости от языков, которые вы хотите поддерживать.

Удачи и задавайте вопросы, когда у вас есть конкретные проблемы.

person Noon Silk    schedule 01.10.2009

См. Эту ссылку для создания локализованных файлов ресурсов: http://msdn.microsoft.com/en-us/library/ms247246.aspx

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

Кроме того, эти файлы ресурсов должны находиться в определенной папке вашего проекта под названием: App_GlobalResources.

Файлы глобальных ресурсов должны находиться в папке App_GlobalResources. Если вы попытаетесь создать RESX-файл вне этой папки, Visual Web Developer предложит вам создать его в папке.

person Tim Santeford    schedule 01.10.2009