Ability to use multiple po files for localization asp net core 2 2


Localization is an aspect of any web application, as it allows users from different regions and languages to access and understand the content. ASP.NET Core 2.2 provides the ability to use multiple PO for localization, making it easier to manage and the application's .

What are PO files?

PO files, also known as Portable Object files, are commonly used in localization to store translations for different languages. They contain a list of key-value pairs, where the key represents the original text and the value represents the translated text.

Setting up the ASP.NET Core 2.2 project

To start using multiple PO files for localization in ASP.NET Core 2.2, we need to set up a new project or modify an existing one. Let's assume we have a basic ASP.NET Core 2.2 project already set up.

// Startup.cs

 void ConfigureServices(IServiceCollection services)
    // Add localization services
    services.AddLocalization(options => options.ResourcesPath = "Resources");

    // Add MVC services

public void ( app, IHostingEnvironment env)
    // Enable localization middleware

    // Other middleware configurations
    // ...

Creating the PO files

Now that we have set up the project, we can create the PO files for localization. In the “Resources” folder, create a new folder for each language you want to support. For example, if you want to support English and French, create “en” and “fr” folders respectively.

Inside each language folder, create a PO file with the name “Resources.po”. This file will contain the translations for that specific language. You can use any text editor or a specialized localization tool to edit the PO files.

Using the PO files for localization

Once the PO files are created and translated, we can use them for localization in our ASP.NET Core 2.2 project. In the views or controllers, we can use the IStringLocalizer interface to access the translated strings.

// HomeController.cs

private readonly IStringLocalizer _localizer;

public HomeController(IStringLocalizer localizer)
    _localizer = localizer;

public  Index()
    string localizedString = _localizer["Hello, world!"];
    return View(localizedString);

In the above example, we inject the IStringLocalizer interface into the HomeController and use it to retrieve the translated string for the key “Hello, world!”. The string can then be used in the view or returned as a .


Using multiple PO files for localization in ASP.NET Core 2.2 allows us to easily manage and translate the application's resources for different languages. By following the steps outlined in this article, you can effectively localize your ASP.NET Core 2.2 project and provide a better user experience for users from different regions and languages.

Rate this post

Leave a Reply

Your email address will not be published. Required fields are marked *

Table of Contents