介绍#
重写 Resource 需要注意,一般来说是在 Domain.Shared
层,但有一些例外情况,比如 AbpUiResource
(framework/src/Volo.Abp.UI) 就只能在 Web
层重写,从名称可以看出,它的使用范围仅在 UI 层。
首先大致阅读以下文档,了解大概的技术细节:
https://community.abp.io/posts/how-to-override-localization-strings-of-depending-modules-ba1oy03l
覆写 AbpUiResource#
首先在 Domain.Shared
项目创建 Localization/AbpUi
目录,然后该目录下创建 zh-Hans.json
文件,里面的内容如下:
{
"culture": "zh-Hans",
"texts": {
"Logout": "退出登录"
}
}
打开 Domain.Shared
工程文件,在其中加入以下代码:
<ItemGroup>
<EmbeddedResource Include="Localization\MiaoXin\*.json" />
<EmbeddedResource Include="Localization\AbpUi\*.json" />
<Content Remove="Localization\MiaoXin\*.json" />
</ItemGroup>
注意:是基于现有配置添加一行 <EmbeddedResource Include="Localization\AbpUi\*.json" />
,只有这样,才能在发布后的 dll 中包含 json 文件:
接着,在 Web
项目的 WebModule
中添加以下代码:
public override void ConfigureServices(ServiceConfigurationContext context)
{
ConfigureLocalization();
}
private void ConfigureLocalization()
{
Configure<AbpLocalizationOptions>(options =>
{
options.Resources
.Get<AbpUiResource>()//.Get("AbpUi")
.AddVirtualJson("/Localization/AbpUi");
});
}