본문 바로가기

Windows/Visual Studio

Resource management for globalization (or localization)

Globalization이란 하나의 프로그램이 여러 언어로 실행될 수 있도록 만드는 것을 뜻한다.

http://msdn.microsoft.com/en-us/library/1021kkz0.aspx

 

이를 위해서는 각 언어별로 리소스(스트링, 이미지, 아이콘 등)를 한 벌씩 만들어 저장해야 한다. 한 프로젝트에 리소스들을 다 모아서 관리한다면 새로운 언어를 추가하거나 삭제할 때 편리하다. 하지만 문제는 하나의 솔루션에 여러 종류의 프로젝트가 있는 경우(Silverlight, .NET, WPF, WP7 등) 런타임이 다르기 때문에 리소스를 참조할 수 없다고 아래와 같이 경고가 발생한다.

 

you can only add project references to other silverlight projects in the solution.

The referenced project is targeted to a dirrerent famework family (silverlight).

 

이것을 해결하기 위해서는 Portable Class Library 프로젝트에 리소스를 저장하는 방법과 Silverlight Class Library 프로젝트에 리소스를 저장하는 방법이 있다. Portable Class Library로 할 경우에는 스트링 리소스만 공유할 수 있다는 단점이 있고, Silverlight Class Library를 사용하면 프로젝트를 참조하는 대신 dll 파일을 참조해야 하지만 모든 리소스를 공유할 수 있다는 장점이 있다.

 

http://msdn.microsoft.com/ko-kr/library/hh871422.aspx

http://blogs.msdn.com/b/dotnet/archive/2009/12/01/sharing-silverlight-assemblies-with-net-apps.aspx