728x90
728x170

Blazor Localization 처리하는 방법입니다.

1. Blaxor WebAssembly 프로젝트를 하나 생성합니다.

2. 'Microsoft.Extensions.Localization' Nuget Package 를 설치합니다.

3. Program.cs 에 builder.Services.AddLocalization(); 코드를 추가합니다.

using Microsoft.AspNetCore.Components.Web;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;

namespace Blazor.LocalizationTest
{
    public class Program
    {
        public static async Task Main(string[] args)
        {
            var builder = WebAssemblyHostBuilder.CreateDefault(args);
            builder.RootComponents.Add<App>("#app");
            builder.RootComponents.Add<HeadOutlet>("head::after");

            builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });

            // Localization
            builder.Services.AddLocalization();

            await builder.Build().RunAsync();
        }
    }
}

4. Resources 폴더를 만들고 Resource.resx , Resource.en.resx 리소스 파일을 생성합니다.

리소스 내용을 아래처럼 기입합니다.  (액세스 한정자 : Public 으로 변경)

Resource.resx
Resource.en.resx

5. 화면에서 사용하기 위해 _Imports.razor 에 using 추가합니다.

@using Microsoft.Extensions.Localization
@using Blazor.LocalizationTest.Resources

6. 화면에서는 아래와 같이 사용합니다.

@page "/"
@inject IStringLocalizer<Resource> localizer

<PageTitle>Index</PageTitle>

<h1>@localizer["hello"]</h1>

@localizer["welcome"]

<SurveyPrompt Title="How is Blazor working for you?" />

결과 (브라우저 설정에서 언어를 바꾸어 테스트)

소스
https://github.com/kei-soft/Blazor.AppTest/tree/master/Blazor.LocalizationTest

 

728x90
그리드형
Posted by kjun
,