Localization is another zero-configuration aspect of Start Blazoring. In today's global economy, correctly localizing your application is very important. While you still have to write your own translation files, we have made consuming them very easy.
Localization services are initialized in
Startup.InitializeLocalization. If you are interested in more details, please refer to the documentation in the code. In a nutshell, we have configured the application to discover any
.resx files an use them as localization resources.
The way Blazor localization works is by injecting a localization service into your Blazor pages, like this:
@inject IStringLocalizer<PageName> L, where
PageName is the name of your Blazor page. Then, you can look up any localization resource like this:
@L["LocalizedKey"]. To create new localization resources for
PageName, go to the
Resources\Pages\ folder and create a new
PageName.resx file specifying your default language translations (configured in
ServiceConfiguration.Application.DefaultLanguage). Then, for each of your supported languages, create a new
PageName.<language-code>.resc file. The naming here is very important, so make sure you use the same name as your page. Additionally, the folder structure of the
Resources\ folder is very important. If you end up placing your new page in another folder, the relative location of the resource file in
Resources\ must mirror the location of the new page. The same applies to Razor components.
The mechanism by which a given language file is used depends on the language set in the browser. This mechanism is made possible by
Startup.Configure. A user can also choose the language manually on the Settings page. That is stored in the user's settings. See
MainLayout.razor to see how that is retrieved and applied when the page loads. As usual, due to he nature of Blazor, we must through some hoops to make this happen.
Managing translation resource files can be a daunting task, especially if your website has a lot of pages and components. For this reason, we have included a file called
Translation.filenesting.json that you can use to help with grouping related translation files. For more information on how to use it, see Microsoft's documentation.
All the pages that come with Start Blazoring have been automatically translated in a number of languages using Microsoft's translation service. There is a generous Free tier that you can use to automatically translate the new pages you will add. Please note that each Blazor page and component will need its own set of resx files for each language. We have developed scripts to help automate this process. Please reach out if you need them, as they are not part of the template.
We have also partnered with Soluling, a popular localization application. With Soluling, you can easily manage your translations using their application, as we well as generate translation files in different languages automatically. That is how we translated the pages in the template using Microsoft Translation services. They are offering our customers a discount on their Products. Visit the Downloads page for more information.
Table of Contents
- Initial Setup
- Project Structure
- Entity Framework
- User Interface
- Email Service
- Background Workers
- Creating a new Page
- Publishing to Azure