Issue
,将无法得到答复。⚠⚠ 必须提供完整可运行且包含错误的
Git
仓库 DEMO,DEMO 提供最简单的错误逻辑代码,否则将无法得到答复。⚠⚠
请提供安装的 Nuget
包版本号。
期待的结果是?
引入My.Extensions.Localization.Json包,能够兼容原多语言的功能。
为了减少不必要的沟通成本和时间成本,请再次确认 Issue
已按照要求正确填写,否则将被直接关闭。
不好意思,目前没有计划去研究第三方库代码和可能引起的问题:My.Extensions.Localization.Json
,一没文档,二两年多才更新一次~。
Furion
的多语言是基于微软标准实现的,支持基于原生标准的第三方库,代码完全公开,可自行调试。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
花了点时间去研究了这个第三方,发现了几次问题。
IStringLocalizer<>
方式,未提供 IStringLocalizer
非泛型方式json
文件的格式是:完整目录限定名
才可以Furion
的方式导致冲突修改之后测试正常
这是这个第三方提供的例子:https://github.com/hishamco/My.Extensions.Localization.Json/tree/dev/samples/LocalizationSample.Mvc
另外你的json配置也不对,也少了这个配置:
最后,Furion
代码没问题,第三方使用也没问题,而是您没有正确的按照第三方配置导致。
using Furion;
using Furion.Localization;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc.Razor;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
namespace WebApplication1
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers().AddInject();
// 添加多语言配置选项
services.AddConfigurableOptions<LocalizationSettingsOptions>();
var localizationSettings = App.GetConfig<LocalizationSettingsOptions>("LocalizationSettings", true);
services.AddJsonLocalization(options => { options.ResourcesPath = localizationSettings.ResourcesPath; });
services.AddMvc()
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
.AddDataAnnotationsLocalization(options =>
{
options.DataAnnotationLocalizerProvider = (type, factory) =>
factory.Create(localizationSettings.LanguageFilePrefix, localizationSettings.AssemblyName);
});
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseAppLocalization();
app.UseRouting();
app.UseAuthorization();
// 添加这一行,如果是 MVC和API共存项目,无需添加 string.Empty
app.UseInject(string.Empty);
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
}
}
Furion
框架没问题,是您对第三方没了解,也没按照文档书写。
更新到 v4.8.6
版本,多语言支持 JSON
了
https://furion.baiqian.ltd/docs/local-language#2111-基于-json-文件多语言
登录 后才可以发表评论