myesn

myEsn2E9

hi
github

ABP: 依存モジュールのローカライゼーション文字列を上書きする方法

イントロダクション#

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 ファイルが含まれるようになります:
image

次に、WebプロジェクトのWebModuleに以下のコードを追加します:

public override void ConfigureServices(ServiceConfigurationContext context)
{
    ConfigureLocalization();
}
private void ConfigureLocalization()
{
    Configure<AbpLocalizationOptions>(options =>
    {
        options.Resources
           .Get<AbpUiResource>()//.Get("AbpUi")
           .AddVirtualJson("/Localization/AbpUi");
    });
}

image

image

参考#

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。