FmgLib.LocalizationMaui

Last updated: 11 Kas 2024

FmgLib.LocalizationMaui

To access related services, simply add using FmgLib.LocalizationMaui; statement.

In the Program.cs file,

builder
    .UseMauiApp<App>()
    .UseFmgLibLocalizationMaui();

OR

builder.Services.AddFmgLibLocalizationMaui();

should be added.

In your main project you should have a language file of type json. The translation will be read from this file and imported.
If you do not specify the path to the file(s) in the parameter (

builder
    .UseMauiApp<App>()
    .UseFmgLibLocalizationMaui();
  //.UseFmgLibLocalizationMaui(defaultLang:"en-US"); // or
  //.UseFmgLibLocalizationMaui(defaultLang:"en-US", "Loc1.json", "Loc2.json"); // or

OR

builder.Services.AddFmgLibLocalizationMaui();
// builder.Services.AddFmgLibLocalizationMaui(defaultLang:"en-US"); // or
builder.Services.AddFmgLibLocalizationMaui(defaultLang:"en-US", "Loc1.json", "Loc2.json"); // or

), will look for a json file named Localization.json in the home directory.

if you give one or more parameters like

builder
    .UseMauiApp<App>()
    .UseFmgLibLocalizationMaui("Localization1.json", "Localization2.json", "/Languages/Temp1.json");

OR

builder.Services.AddFmgLibLocalizationMaui("Localization1.json", "Localization2.json", "/Languages/Temp1.json");

it will read json files in given file paths.

The critical point here is to select Build Action: MauiAsset for json files.

Proper json format:

{
  "Hello": {
    "tr-TR": "Merhaba Dünya!",
    "en-US": "Hello World!"
  },
  "Msg": {
    "tr-TR": "Deneme amaçlı yapılmıştır.",
    "en-US": "It was made for testing purposes."
  }
}

Instead of ‘keyWord’ keywords, you can use any word or phrase(s) you want. You don't have any Regex limitations.

You can also change the ‘tr-TR’ and ‘en-US’ language keys with words or sentences as you wish. But it is recommended to use expressions such as ‘en-US’, ‘tr-TR’, ‘fr-FR’.

You can simply use

Console.WriteLine("keyWord 1".ToTranslate());

in the code.

If you do not specify a parameter, it will translate according to the language expression registered in Culture (language keys such as ‘en-US’, ‘tr-TR’ will appear).

You can easily obtain the translation by specifying the language key as

Console.WriteLine("keyWord 1".ToTranslate("tr-TR"));

.