GUI가 있는 프로그램을 다국어버젼으로 변환하는 작업을 진행중이었다.

고정된 사이즈의 Window에 DialogBox가 들어있다. 그런데 이놈이 OS의 랭귀지가 바뀌면 사이즈가 변한다. (정확히 말하면 가로세로의 비율이 변한다.) 그래서... 한국어 OS에서는 예쁘게 보이는 윈도우가 영어 OS에서는 깨져버리는 문제가 발생했다.
이 문제를 해결하기 위해 반나절동안 삽질을 해댄 결과 원인을 찾아냈는데...

원인은 바로 "MS Sans Serif"라는 폰트의 문제였다. DlgBox의 폰트를 "Microsoft Sans Serif"로 변경하면 더이상 깨지지 않는다.
(아놔... 폰트를 개선하려면 이름을 좀 구분이 가도록 하던지... MS를 Microsoft라고 바꿔놓는 건 또 모냐... )

자세한 내용은 여기에..
http://www.apptranslator.com/blog/2006/01/ms-sans-serif-not-nice-international.html

This version of VC++ uses MS Sans Serif as the default dialog font. The problem is that this font supports the Western European code page only.
...
Microsoft created a enhanced version of MS Sans Serif : Microsoft Sans Serif (sic!). This font is a Unicode font containing a lot more characters and supporting many more charsets, including Eastern European languages, Arabic, Hebrew, Greek,...
Posted by kuaaan
TAG ,

댓글을 달아 주세요

  1. kuaaan 2008.04.14 07:57 신고  댓글주소  수정/삭제  댓글쓰기

    Microsoft Sans Serif 폰트를 적용하려면 프로젝트가 유니코드로 전환되어야 한다. 그러지 않으면... 한글이 깨진다. 한국어 OS인 경우에도!!! 뜨어...



사랑합니다. 편안히 잠드소서