XperienceCommunity.Localization
1.4.1
dotnet add package XperienceCommunity.Localization --version 1.4.1
NuGet\Install-Package XperienceCommunity.Localization -Version 1.4.1
<PackageReference Include="XperienceCommunity.Localization" Version="1.4.1" />
paket add XperienceCommunity.Localization --version 1.4.1
#r "nuget: XperienceCommunity.Localization, 1.4.1"
// Install XperienceCommunity.Localization as a Cake Addin #addin nuget:?package=XperienceCommunity.Localization&version=1.4.1 // Install XperienceCommunity.Localization as a Cake Tool #tool nuget:?package=XperienceCommunity.Localization&version=1.4.1
XperienceCommunity.Localization
Description
This project enables creating and using localizations and translations in Xperience by Kentico project. Create translations in Xperience admin UI or programatically and use in your pages.
Screenshots
Library Version Matrix
Xperience Version | Library Version |
---|---|
>= 29.6.0 | >= 1.4.0 |
>= 29.2.0 | >= 1.2.0 |
>= 28.4.3 | 1.0.0 |
Dependencies
Package Installation
Add the package to your application using the .NET CLI
dotnet add package XperienceCommunity.Localization
Quick Start
Add this library to the application services.
// Program.cs builder.Services.AddXperienceCommunityLocalization();
Open the Localization application added by this library in the Xperience's Administration.
Press Create to add a localization.
Fill out the key and the description of the localized content.
Add translations for the desired content languages.
Display the results on your site with a
ViewComponent
.
// ViewModelLocalizedWidgetViewComponent.cs
private readonly IKenticoStringLocalizer localizer;
public ViewModelLocalizedWidgetViewComponent(IKenticoStringLocalizer localizer)
=> this.localizer = localizer;
public IViewComponentResult Invoke()
{
var model = new ViewModelLocalizedWidgetViewModel
{
Title = localizer["Title"],
Content = localizer["Content"]
};
return View("~/Components/Widgets/ViewModelLocalizedWidget/_ViewModelLocalizedWidget.cshtml", model);
}
- Or display the results on your site with a Razor View 👍
@using XperienceCommunity.Localization
@inject IKenticoHtmlLocalizer localizer
<div>
<h1>@localizer["Title"]</h1>
<p>@localizer["Content"]</p>
</div>
Customization
Administration does not allow for storing empty string values as the translations. By default, if a specified key in a specified language does not exist the name of the key is returned.
You can override this functionality by specifying your own implmentation of IKenticoHtmlLocalizer
and IKenticoStringLocalizer
. Default implementations are the KenticoHtmlLocalizer
and the KenticoStringLocalizer
.
This can be useful if you want to display a value in one language and display nothing in a different language.
To achieve this, you can inherit the KenticoHtmlLocalizer
or the KenticoStringLocalizer
.
public class ExampleHtmlLocalizer : KenticoHtmlLocalizer
{
public override string? GetStringByName(string name)
{
string culture = CultureInfo.CurrentCulture.ToString();
// return empty string instead of null.
return localizationService.GetValueByNameAndCulture(name, culture) ?? string.Empty;
}
}
Similarly implement the IKenticoStringLocalizer
, or use the default KenticoStringLocalizer
// In your Program.cs
// ... Other registrations
builder.Services.AddXperienceCommunityLocalization<ExampleHtmlLocalizer, KenticoStringLocalizer>();
Contributing
Instructions and technical details for contributing to this project can be found in Contributing Setup.
License
Distributed under the MIT License. See LICENSE.md
for more information.
Support
This project has Limited support.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- Kentico.Xperience.Admin (>= 29.6.0)
- Kentico.Xperience.Core (>= 29.6.0)
- Kentico.Xperience.WebApp (>= 29.6.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.4.1 | 163 | 10/18/2024 |
1.4.1-pre.9c79180 | 75 | 10/18/2024 |
1.4.1-pre.782df4b | 71 | 10/18/2024 |
1.4.1-pre.501b2b6 | 68 | 10/18/2024 |
1.2.2 | 240 | 7/11/2024 |
1.2.2-pre.e63914d | 71 | 10/18/2024 |
1.2.2-pre.95a5373 | 37 | 7/11/2024 |
1.2.2-pre.8fa780a | 51 | 7/11/2024 |
1.2.2-pre.614044a | 67 | 10/18/2024 |
1.2.2-pre.2a9f442 | 69 | 10/18/2024 |
1.2.2-pre.107ba0f | 35 | 7/11/2024 |
1.2.1 | 85 | 7/11/2024 |
1.2.1-pre.db6a0d4 | 50 | 7/11/2024 |
1.2.1-pre.8fa780a | 48 | 7/11/2024 |
1.1.1 | 329 | 5/15/2024 |
1.1.1-pre.5b89503 | 52 | 5/14/2024 |
1.1.1-pre.2aea3c9 | 39 | 7/11/2024 |
1.0.7-pre.bb77ad6 | 56 | 5/14/2024 |
1.0.7-pre.903c108 | 59 | 5/14/2024 |
1.0.6 | 105 | 5/14/2024 |
1.0.6-pre.bb77ad6 | 51 | 5/14/2024 |
1.0.4 | 98 | 5/14/2024 |
1.0.4-pre.5b89503 | 45 | 5/14/2024 |