Использование i18n для ASP.NET в браузерах мобильных устройств - PullRequest
0 голосов
/ 13 июня 2018

Я пытался выяснить эту причудливую проблему, возникающую при использовании библиотеки i18n в моем проекте ASP.NET, работающем в браузерах мобильных устройств.Локализация работает на настольных компьютерах, я могу переключать языки, например, мой язык по умолчанию - «fr», и я могу выбрать «en» без проблем на рабочем столе.

/ fr -> покажет «fr» в настольном браузере / en -> покажет «en» в настольном браузере

Проблема в том, что я пытаюсь получить доступ к веб-сайту на мобильном телефонебраузер устройства.Я всегда получу язык "fr", независимо от того, что меняю на "en"

/ fr -> в мобильных браузерах будет отображаться "fr" / en -> в мобильных браузерах будет отображаться "fr"

Что бы я ни делал, я всегда буду видеть только язык FR.URL действительно изменяется, НО перевод не происходит.Ниже приведен код, который я использую в своем файле global.asax.cs:

protected void Application_Start(object sender, EventArgs e)
        {
            // Blacklist certain URLs from being 'localized'.
            i18n.UrlLocalizer.QuickUrlExclusionFilter = new System.Text.RegularExpressions.Regex(@"((sitemap\.xml|\.css|\.less|\.jpg|\.jpeg|\.png|\.gif|\.ico|\.svg|\.woff|\.woff2|\.ttf|\.eot)$)", System.Text.RegularExpressions.RegexOptions.IgnoreCase);

        // Change from the default of 'en'.
        i18n.LocalizedApplication.Current.DefaultLanguage = "fr";

        // Change from the of temporary redirects during URL localization
        i18n.LocalizedApplication.Current.PermanentRedirects = true;

i18n.LocalizedApplication.Current.SetPrincipalAppLanguageForRequestHandlers = delegate (System.Web.HttpContextBase context, ILanguageTag langtag)
            {
                // Do own stuff with the language tag.
                // The default handler does the following:
                if (langtag != null)
                {
                    Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentUICulture = langtag.GetCultureInfo();
                }
            };

    }

В моем файле web.config есть следующее:

<add key="i18n.DirectoriesToScan" value="..;web" />
    <add key="i18n.AvailableLanguages" value="fr;en;" />
    <add key="i18n.DefaultLanguage" value="fr" />
    <add key="i18n.WhiteList" value="*.aspx;*.ascx;*.cs;*.cshtml;*.sitemap;*.Master;*.master;" />
    <add key="i18n.BlackList" value=".\assets;.\bower_components;.\obj;" />
    <add key="i18n.VisualizeMessages" value="false" />
    <add key="i18n.NuggetVisualizeToken" value="!" />

, и у меня есть простой выпадающий список для переключения URL-адресов.из / фр в / ан и наоборот.

Кто-нибудь знает, что я здесь не так делаю?Браузеры для настольных компьютеров работают нормально, мобильные браузеры - нет, спасибо большое.

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