Mystika-old

개발을 하다보면, 한 프로그램에서 여러 언어를 지원해야 할 경우가 있습니다.


이것을 지역화라고 하는데 가장 단순하게 생각해보면 프로젝트 파일을 복사해 언어별로 새로 빌드하는 방법이 있지만,

이 방법은 단순한 만큼 막노동에 가까운 유지 보수를 하게 되죠. 업데이트마다 언어별로 새로 빌드를..


C#에서는 리소스 파일을 이용하여 지역화를 꽤 쉽게 할 수 있습니다.




1. 먼저 아래와 같이 프로젝트에 리소스 파일을 추가해줍니다. 저는 이 리소스 파일을 원본 리소스 파일이라고 부르겠습니다.

그리고, 이름은 StringLib이라고 지정해주었습니다.






2. 폼에 번역할 컨트롤(여기서는 Label)을 하나 놓았습니다. Text 값은 Why Hello There.




3. 원본 리소스 파일에 문자열 리소스를 하나 추가해시고, 이름은 자유롭게 설정해주세요.

값은 원본 리소스 파일이므로 영어로 해주었습니다. (원하시는 기본 언어로 설정해주시면 됩니다. 저는 영어로 하였음)





4. 아래와 같이 label1.Text ... 코드를 추가하고 빌드를 해봅니다.





5. Lable1의 Text를 Why Hello There으로 지정해주어서 바뀐게 없어 보이지만, 아래의 Text값은 StringLib.labelHello에 들어간 값입니다.





6. 이제 한국어 지역화를 해봅시다. 새로 리소스 파일을 추가합니다.

리소스 파일의 이름은 (원본 리소스 파일 이름).(지역 코드).resx 로 해주세요. 한국은 ko 와 ko-KR을 사용하므로, 저는 StringLib.ko.resx을 추가해야겠네요.







7. 한국어 리소스 파일에 아래와 같이 이름과 값을 추가하고 빌드를 해주세요. 문자열 리소스 이름은 같아야해요.





8. 아래와 같이 한국어로 표시됩니다. 한국이 아닌 지역 설정의 PC에서는 원본 리소스 파일에 설정된 Why Hello There가 나오겠죠.




지역 코드 참고 : http://msdn.microsoft.com/ko-kr/library/vstudio/system.globalization.cultureinfo(v=vs.90).aspx