본문 바로가기

Developement/C/C++

XML 을 통한 다국어 처리도 편리한 FLTK.


 XML 의 경우 여러 언어들을 처리 하기 위해 보통 UTF-8 인코딩을 사용합니다. 이 방식은 Windows 에서 사용하는 UNICODE 와 1:1 대응이 되지 않습니다, 그래서 보통 GUI 관련 쪽에서 바로 붙여 쓰기가 힘든 경우가 있는데, FLTK 의 경우 그대로 UTF-8 을 사용하고 있기 때문에 XML 에서 읽어온 다국어 코드를 별도의 변환 없이 사용이 가능 합니다. 그래서 올바른 Font 를 Load 한 상태 라면 (보통 FL_FREE_FONT 에 bind 해서 씁니다) 다국어 출력에 어려움이 없이 편리하게 구현이 가능하다는 장점이 있습니다. 또한 이런 부분은 타 OS로 소스를 그대로 사용할 경우 발생 할 수 있는 호환성도 매우 많이 해결 해 주기 때문에 자원 낭비를 많이 줄일 수 있는 장점이 있을 수 있습니다.


 폰트를 적용 하는 방법은 간단히 FLTK/test/fonts.cxx 를 통해 확인이 가능 합니다만, 이 방법은 실제 FLTK 모든 플랫폼에서 사용이 안되고, 다음과 같이 FL_FREE_FONT 에 직접 영문 폰트 이름을 bind 해야 사용이 가능 합니다.


한글 맑은 고딕 폰트를 적용 할 때 예:

Fl::set_font( FL_FREE_FONT, "Malgun Gothic" );


 이런 다음 각 생성된 Fl_Widget 에 labelfont( FL_FREE_FONT ); 를 적용 해 주어야 하는데, 이때 BOLD 와 ITALIC 적용이 어렵다는 단점이 있는 것은 안타까운 부분 입니다. 하지만 일반적인 UI 구성에서 화면에 출력 해야 하는 문자열을 다국어로 만들기 편리한 용이함은 매우 높게 인지 된다 하겠습니다.


 FLTK 에서 사용되는 UTF8 관련 문서는 아래 URL 에서 확인 가능 합니다. UTF8 에서 UTF16 은 물론, Windows 에서 쓰이는 WideCharactor 로 변환은 물론, Multibyte 등으로 모두 변형이 가능하도록 되어 있습니다.