Проблема доступа к локализованной строке в приложении ASP.NET MVC - PullRequest
2 голосов
/ 18 июля 2009

Я создал приложение ASP.NET MVC и добавил 2 файла ресурсов для страницы about.aspx в проекте. Это выглядит так:

alt folder structure

Затем я изменил страницу About.aspx следующим образом:

<asp:Content ID="aboutContent" ContentPlaceHolderID="MainContent" runat="server">
    <h2><%= GetLocalResourceObject ("About")%></h2>
    <p>
        <%= GetLocalResourceObject ("PutContentHere")%>
    </p>
</asp:Content>

Я пытался запустить страницу about после изменения языкового стандарта firefox на hi-IN, но он по-прежнему показывает текст по умолчанию (на английском языке). Пожалуйста, вы можете определить проблему?

1 Ответ

3 голосов
/ 18 июля 2009

CurrentCulture и CurrentUICulture не изменяются автоматически в зависимости от того, что сообщает браузер. Вам нужно будет указать, что:

protected override void OnInit(EventArgs e)
{
    try
    {
        System.Threading.Thread.CurrentThread.CurrentUICulture = 
                          CultureInfo.GetCultureInfo(Request.UserLanguages[0]);
        System.Threading.Thread.CurrentThread.CurrentCulture = 
                          System.Threading.Thread.CurrentThread.CurrentUICulture;
    }
    catch (Exception ex)
    {
        // handle the exception
    }
    base.OnInit(e);
}

Следует отметить, что некоторые языки, которые вы можете выбрать (например, "en"), вызовут исключение при попытке назначить его на Thread.CurrentCulture, так как он не допускает называется "нейтральными" культурами. Короче говоря, нейтральная культура - это культура, которая определяет только язык, но не географический регион. Вы можете прочитать больше об этом в документации для CultureInfo класса .

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