Я хочу создать многоязычный веб-сайт.Я обнаружил, что один из способов сделать это - отобразить веб-страницу на своем родном языке в зависимости от предпочтительного языка браузера пользователя.Я попробовал код ниже, и кажется, что он работает нормально.
public ActionResult Index()
{
var userLanguages = Request.UserLanguages;
string preferredLanguage = "";
preferredLanguage = userLanguages[0];
if (preferredLanguage == "fr-FR")
{
return RedirectToAction("fr", "Home");
}
else
{
return RedirectToAction("en", "Home");
}
}
Я думал, что это было очень просто, и поэтому я искал вокруг и нашел эту ссылку
Я немного запутался - должен ли я добавить этот код и что именноэто делает?Когда я отлаживаю код, я нахожу каждый раз, когда ci
равен нулю.Как мне его использовать?
// Get Browser languages.
var userLanguages = Request.UserLanguages;
CultureInfo ci;
if (userLanguages.Count() > 0)
{
try
{
ci = new CultureInfo(userLanguages[0]);
}
catch(CultureNotFoundException)
{
ci = CultureInfo.InvariantCulture;
}
}
else
{
ci = CultureInfo.InvariantCulture;
}
// Here CultureInfo should already be set to either
user's preferable language
// or to InvariantCulture if user transmitted invalid
culture ID
Ценю любую помощь.
с помощью Алекса, мой код прямо сейчас, работает хорошо, но я беспокоюсь о возможных расширениях
public ActionResult Index()
{
CultureInfo ci;
var userLanguages = Request.UserLanguages;
if (userLanguages == null)
{
ci = new CultureInfo("en-US");
}
else if (userLanguages.Count() > 0)
{
try
{
ci = new CultureInfo(userLanguages[0]);
}
catch (CultureNotFoundException)
{
ci = new CultureInfo("en-US");
}
}
else
{
ci = new CultureInfo("en-US");
}
return RedirectToAction(ci.TwoLetterISOLanguageName, "Home");
}