Настройки многоязычного сайта asp.net - PullRequest
1 голос
/ 18 января 2010

На многоязычном веб-сайте asp.net на английском и шведском языках у меня есть три файла rsources

1. en-GB.resx
2. sv-SE.resx
3. Culture neutral file.

У меня есть один базовый класс, и все страницы унаследованы от этого класса.Там я пишу следующие строки, чтобы установить UICULTURE и культуру

1. Thread.CurrentThread.CurrentUICulture = CultureInfo.CurrentUICulture.Name;
2. Thread.CurrentThread.CurrentCulture = CultureInfo.CurrentCulture.Name;

Вопрос: Предположим, что мой браузер является шведским (sv-SE), тогда этот код будет работать, потому что он находит CurrentUICulture and CurrentCulture values as sv-SE.

Сейчасесли предположить, что языком браузера является только шведский (sv), в этом случае значения будут установлены как

CurrentUICulture = sv; and CurrentCulture = sv-SE

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

Что было бы правильным подходом.Я думаю следующее решение.Пожалуйста, поправьте меня?

1. i can create extra resource file for sv also.
2. I check value of CurrentUICulture in base class and if it is sv then replace it with sv-SE

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

1 Ответ

1 голос
/ 18 января 2010

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

 if (Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName.ToLower() != "sv")
      ...replace with sv-SE

РЕДАКТИРОВАТЬ См. Этот другой вопрос] 1 для дополнительной информации. В ответе на этот вопрос есть хорошая статья

...