mirror of https://github.com/abpframework/abp
commit
3c0f5ae197
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 26 KiB |
@ -0,0 +1,88 @@
|
|||||||
|
# How to override localization strings of depending modules
|
||||||
|
|
||||||
|
## Source Code
|
||||||
|
|
||||||
|
You can find the source of the example solution used in this article [here](https://github.com/abpframework/abp-samples/tree/master/DocumentationSamples/ExtendLocalizationResource).
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
This example is based on the following document
|
||||||
|
https://docs.abp.io/en/abp/latest/Localization#extending-existing-resource
|
||||||
|
|
||||||
|
We will change the default `DisplayName:Abp.Timing.Timezone` and `Description:Abp.Timing.Timezone` of [`AbpTimingResource`](https://github.com/abpframework/abp/blob/dev/framework/src/Volo.Abp.Timing/Volo/Abp/Timing/Localization/AbpTimingResource.cs) and add localized text in [Russian language(`ru`)](https://github.com/abpframework/abp/blob/dev/framework/src/Volo.Abp.Timing/Volo/Abp/Timing/Localization/en.json).
|
||||||
|
|
||||||
|
I created the `AbpTiming` folder in the `Localization` directory of the `ExtendLocalizationResource.Domain.Shared` project.
|
||||||
|
|
||||||
|
Create `en.json` and `ru.json` in its directory.
|
||||||
|
|
||||||
|
`en.json`
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"culture": "en",
|
||||||
|
"texts": {
|
||||||
|
"DisplayName:Abp.Timing.Timezone": "My Time zone",
|
||||||
|
"Description:Abp.Timing.Timezone": "My Application time zone"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
`ru.json`
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"culture": "ru",
|
||||||
|
"texts": {
|
||||||
|
"DisplayName:Abp.Timing.Timezone": "Часовой пояс",
|
||||||
|
"Description:Abp.Timing.Timezone": "Часовой пояс приложения"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
We have below content in `ExtendLocalizationResource.Domain.Shared.csproj` file, See [Virtual-File-System](https://docs.abp.io/en/abp/latest/Virtual-File-System#working-with-the-embedded-files) understand how it works.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="Localization\ExtendLocalizationResource\*.json" />
|
||||||
|
<Content Remove="Localization\ExtendLocalizationResource\*.json" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="5.0.*" />
|
||||||
|
</ItemGroup>
|
||||||
|
```
|
||||||
|
|
||||||
|
Change the code of the `ConfigureServices` method in `ExtendLocalizationResourceDomainSharedModule`.
|
||||||
|
|
||||||
|
```cs
|
||||||
|
Configure<AbpLocalizationOptions>(options =>
|
||||||
|
{
|
||||||
|
options.Resources
|
||||||
|
.Add<ExtendLocalizationResourceResource>("en")
|
||||||
|
.AddBaseTypes(typeof(AbpValidationResource))
|
||||||
|
.AddVirtualJson("/Localization/ExtendLocalizationResource");
|
||||||
|
|
||||||
|
//add following code
|
||||||
|
options.Resources
|
||||||
|
.Get<AbpTimingResource>()
|
||||||
|
.AddVirtualJson("/Localization/AbpTiming");
|
||||||
|
|
||||||
|
options.DefaultResourceType = typeof(ExtendLocalizationResourceResource);
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
Execute `ExtendLocalizationResource.DbMigrator` to migrate the database and run `ExtendLocalizationResource.Web`.
|
||||||
|
|
||||||
|
We have changed the English localization text and added Russian localization.
|
||||||
|
|
||||||
|
### Index page
|
||||||
|
|
||||||
|
```cs
|
||||||
|
<p>@AbpTimingResource["DisplayName:Abp.Timing.Timezone"]</p>
|
||||||
|
@using(CultureHelper.Use("ru"))
|
||||||
|
{
|
||||||
|
<p>@AbpTimingResource["DisplayName:Abp.Timing.Timezone"]</p>
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|

|
||||||
@ -0,0 +1,25 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
|
|
||||||
|
<Import Project="..\..\..\configureawait.props" />
|
||||||
|
<Import Project="..\..\..\common.props" />
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net6.0</TargetFramework>
|
||||||
|
<AssemblyName>Volo.Abp.Http.Client.Web</AssemblyName>
|
||||||
|
<PackageId>Volo.Abp.Http.Client.Web</PackageId>
|
||||||
|
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>
|
||||||
|
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
|
||||||
|
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
|
||||||
|
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
|
||||||
|
<IsPackable>true</IsPackable>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<NoDefaultLaunchSettingsFile>true</NoDefaultLaunchSettingsFile>
|
||||||
|
<RootNamespace />
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\Volo.Abp.AspNetCore.Mvc\Volo.Abp.AspNetCore.Mvc.csproj" />
|
||||||
|
<ProjectReference Include="..\Volo.Abp.Http.Client\Volo.Abp.Http.Client.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue