C#/Blazor
[Blazor] Blazor Localization 처리하기 (WebAssembly)
kjun.kr
2023. 7. 4. 22:42
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 으로 변경)
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
그리드형