介紹#
重寫 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");
});
}