c# - 在移动设备浏览器上使用 i18n for ASP.NET
问题描述
我一直试图找出在移动设备浏览器上运行的 ASP.NET 项目中使用 i18n 库时遇到的这个奇怪问题。本地化适用于台式计算机,我可以切换语言,例如,我的默认语言是“fr”,我可以选择更改为“en”,而不会在台式机上出现任何问题。
/fr -> 将在桌面浏览器上显示“fr” /en -> 将在桌面浏览器上显示“en”
问题是当我尝试在移动设备浏览器上访问该网站时。无论更改为“en”,我都会得到“fr”语言
/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 从 /fr 切换到 /en,反之亦然。
有谁知道我在这里做错了什么?桌面浏览器工作正常,移动浏览器不行,非常感谢。
解决方案
推荐阅读
- html - 添加jQuery脚本后提交按钮不起作用
- c++ - 使用大括号重新初始化 C++ 数组
- netsuite - NetSuite 保存的搜索打印标准信息
- php - Bigcommerce 购物车 422:缺少必填字段错误
- c - 循环代码 1,000,000 次并找到概率 C 编码
- gerrit - gerrit - 具有多个数字的查询命令
- azure - 一个具有不同团队和待办事项的项目
- c# - 我有这个制作 6x6 矩阵的程序。我想添加一段代码来扫描矩阵并给出回文数的位置
- amazon-web-services - ICMP“回声回复”。如何在aws中验证?
- file-upload - FileSystemObject MoveFile 似乎不一致,并且在移动某些文件而不是其他文件时有效