13.4. 고급 주제들

여러분이 국제화된(i18n) 응용 프로그램이나, 국제화(i18n) 를 따르는 응용 프로그램들을 컴파일 하고자 하신다면, 이번 장을 읽으십시오.

13.4.1. 국제화된(i18n) 프로그램 컴파일하기

많은 FreeBSD 포트는 국제화(i18n) 지원 가능하도록 포트에 들어와 있습니다. 그중 몇몇은 포트 이름에 -i18n 이라고 표시되어 있습니다. 이것들과 많은 다른 프로그램들은 국제화(i18n)를 지원하도록 만들어 졌으며, 특별히 고려해야할 사항이 없습니다.

그러나, MySQL 처럼 몇몇 응용 프로그램들은 특정 문자셋을 지원하도록 설정된 Makefile 을 필요로 합니다. 이것은 보통 Makefile 안에서 이루어지거나, 소스안에서 설정(configure) 하도록 값을 넘겨줌으로써 이루어집니다.

13.4.2. 국제화(i18n)를 따르도록 프로그래밍 하기

다른 언어 사용자들에게도 유용한 프로그램을 만들기 위해서는, 국제화(i18n)를 따르도록 프로그래밍 하시기 바랍니다. GNU 의 gcc 컴파일러와, QT 그리고 GTK 같은 GUI 라이브러리들은 문자열(string) 을 특별히 처리함으로써 국제화(i18n)를 지원합니다. 국제화(i18n)를 따르는 프로그램을 만드는 것은 아주 쉽습니다. 공헌자(contributor)들이 여러분의 프로그램을 다른 언어들로 재빨리 포팅할 것입니다. 좀더 자세한 사항은 라이브러리별 국제화(i18n) 관련 문서를 참고하시기 바랍니다.

일반적으로 알고 있는 것과 다르게, 국제화(i18n)를 따르는 프로그램 코드는 작성하기 쉽습니다. 보통은 문자열(string)을 해당 라이브러리별 관련 함수들로 감싸주기(wrap)만 하면 됩니다. 추가로, 와이드/멀티바이트 문자를 지원하도록 해주시기 바랍니다.

13.4.2.1. 국제화(i18n) 노력을 하나로 결집하십시오.

우리는 각 나라들에서 각각 국제화(i18n)/지역화(l10n)를 위한 노력이 서로 다른 방식으로 반복되어 오고 있음을 발견했습니다. 우리들중 많은 사람들이 '수레바퀴' 를 계속해서, 그리고 헛되이 재발명하고 있습니다. 다양한 국제화(i18n) 그룹들이 (FreeBSD) 코어팀(Core Team)의 책임감처럼 하나의 노력으로 결집되기를 바랍니다.

현재로서는, 여러분이 국제화(i18n) 프로그램을 작성하거나, 포팅할때는, 테스트를 위해 각 나라의 관련 FreeBSD 메일링 리스트에 그것을 보내 보시기 바랍니다. 그리고 앞으로는, 쓸데없이 해킹할 필요가 없는, 모든 언어의 시스템에서 작동하는, 그런 프로그램을 만들수 있기를 희망합니다.

13.4.2.2. 펄(Perl)과 파이쏜(Python)

펄(Perl)과 파이쏜(Python)은 국제화(i18n)와 와이드(wide) 문자를 처리하는 라이브러리를 가지고 있습니다. 국제화(i18n)를 따르는 프로그램을 작성하기 위해서는 그것들을 이용하시기 바랍니다.

FreeBSD 예전 버전에서, 펄(Perl)은, 이미 시스템에 설치되어 있는 와이드(wide) 문자들의 로케일이 없다는 경고를 내기도 했었습니다. 이 경우, 여러분은 쉘에 LD_PRELOAD 환경 변수를 /usr/lib/libxpg4.so 로 설정하실 수 있습니다.

sh 기반의 쉘에서는 :

    LD_PRELOAD=/usr/lib/libxpg4.so

C 기반의 쉘에서는 :

    setenv LD_PRELOAD /usr/lib/libxpg4.so