Открыть сайт на C# языке браузера - PullRequest
0 голосов
/ 04 апреля 2020
<div class="language">
    <ul>
        <li>
            <asp:LinkButton Text="TR" CausesValidation="false" ID="lnktr_TR" Visible="true" runat="server" OnClick="lnktr_TR_Click"></asp:LinkButton>
        </li>
        <li>
            <asp:LinkButton Text="ENG" CausesValidation="false" ID="lnken_US" Visible="true" runat="server" OnClick="lnken_US_Click"></asp:LinkButton></li>
        <li>
            <asp:LinkButton Text="Беларусь" CausesValidation="false" ID="lnkru_RU" Visible="false" runat="server" OnClick="lnkru_RU_Click" /></li>
        <li>
            <asp:LinkButton Text="العربية" CausesValidation="false" ID="lnkar_AE" Visible="false" runat="server" OnClick="lnkar_AE_Click"></asp:LinkButton></li>
    </ul>
</div>

Как вы можете видеть выше, язык меняется с помощью кнопки сайта. Я хочу, чтобы язык автоматического ввода c выбирался в соответствии с языком браузера на сайте? Как я могу это сделать?

1 Ответ

1 голос
/ 04 апреля 2020

Здесь.

ОБНОВЛЕНИЕ: Вы выполняете это на своей главной странице, поэтому base.UICulture изменился на Page.UICulture.

Также, пожалуйста, не используйте здесь Page_Load просто образцово. На самом деле, этот ответ показывает, как вы можете прочитать заголовок accept-language. Вы должны адаптировать его к своему контексту. Вопрос: Что происходит, когда клиент нажимает одну из кнопок в вашем вопросе? Что бы вы там ни делали, делайте в этом коде также вместо установки UICulture.

Для русского языка, ru-RU и ru;

Для арабского c (их много), но просто ar-AE или ar

protected void Page_Load(object sender, EventArgs e)
{
    string acceptLangaugeHeader = Request.Headers["accept-language"];
    if (acceptLangaugeHeader != null)
    {
        string[] acceptedLangauges = acceptLangaugeHeader.Split(',');
        foreach (string acceptedLanguageWithQuality in acceptedLangauges)
        {
            string acceptedLanguage = acceptedLanguageWithQuality.Split(';')[0];
            // Check here if it is one of the languages you support:
            switch (acceptedLanguage)
            {
                case "en-US":
                case "en":
                    Page.UICulture = CultureInfo.GetCultureInfo("en-US");
                    break;
                // DO THE SAME FOR OTHER LANGUAGES
                case "tr-TR":
                case "tr":
                default:
                    Page.UICulture = CultureInfo.GetCultureInfo("tr-TR");
                    break;

            }
        }
    }
    else
    {
        Page.UICulture = CultureInfo.GetCultureInfo("tr-TR");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...