ASP.NET Core MVC에서 resx 파일 만들기 및 관리하기
추천 자료: ASP.NET Core 인증 및 권한 부여
ASP.NET Core MVC 프로젝트에서 리소스 파일(resx)을 사용하면 여러 언어로 웹사이트를 지원할 수 있습니다. 이 아티클에서는 resx 파일을 만들고 관리하는 방법에 대해 설명합니다.
resx 파일 생성
- 프로젝트에서
Resources
라는 새 폴더를 생성합니다. Resources
폴더에서 마우스 오른쪽 버튼을 클릭하고,추가
>새 항목
을 선택하여 새 리소스 파일을 만듭니다. 파일 이름을 지정하고, 파일 확장자를.resx
로 설정합니다 (예:MyResource.resx
).
resx 파일에 문자열 리소스 추가
- 생성한 resx 파일을 열어서, 이름(Name)과 값(Value)을 입력합니다. 이 때 이름은 고유한 문자열이어야 합니다.
- 다양한 언어를 지원하려면 각 언어에 대한 resx 파일을 추가합니다. 각 파일의 이름은 기본 resx 파일 이름에 문화권 코드를 추가하여 설정합니다 (예:
MyResource.ko-KR.resx
,MyResource.en-US.resx
).
리소스 파일 사용
- 프로젝트에
ResourceManager
인스턴스를 만듭니다.
using System.Globalization;
using System.Resources;
ResourceManager resourceManager = new ResourceManager("MyNamespace.Resources.MyResource", typeof(Startup).Assembly);
이때, MyNamespace
를 프로젝트의 네임스페이스로 변경하고, MyResource
를 생성한 resx 파일의 이름으로 변경해야 합니다.
ResourceManager
를 사용하여 리소스를 가져옵니다.
string localizedString = resourceManager.GetString("ResourceName", CultureInfo.CurrentCulture);
이때, ResourceName
을 resx 파일에 있는 리소스 이름으로 변경해야 합니다.
ControllerBase를 상속받는 컨트롤러에서 리소스 사용
- ControllerBase를 상속받는 컨트롤러에서 리소스 매니저를 만들고, 생성자에서 초기화합니다.
public class MyController : ControllerBase
{
private readonly ResourceManager _resourceManager;
public MyController()
{
_resourceManager = new ResourceManager("MyNamespace.Resources.MyResource", typeof(MyController).Assembly);
}
}
- 컨트롤러의 액션에서 리소스 매니저를 사용하여 문자열을 가져옵니다.
public IActionResult Index()
{
string localizedString = _resourceManager.GetString("ResourceName", CultureInfo.CurrentCulture);
ViewData["LocalizedString"] = localizedString;
return View();
}
이제 ASP.NET Core MVC 프로젝트에서 resx 파일을 사용하여 다국어를 지원할 수 있습니다. 이 방법을 사용하면 유지보수가 쉬워지고, 여러 언어로 애플리케이션을 제공할 수 있습니다.
추천 자료: .NET Blazor에 대해 알아보시겠어요? .NET Blazor 알아보기를 확인해보세요!