앞으로의 방향

현재 GTK+의 국제화 기능은 넓은 범위의 언어에 대하여 잘 작동하는 애플리케이션을 만든데 충분한 정도이다. - 유럽의 서부, 동부 (Cyrillic과 그리스어 포함)와 동 아시아 언어들(중국어, 일본어, 한국어)가 그러하다. 그러나 여전히 상당히 많은 언어가 지원되고 있지 않다. 무엇보다도 지금 현재의 GTK+에서는 아라비아 언어와 헤브류 언어처럼 오른쪽에서 왼쪽으로 써가는 언어를 지원하지 못한다. 보통 텍스트를 작성할 때 왼쪽에서 오른쪽으로, 오른쪽에서 왼쪽으로 쓰는 것을 혼합하는 것이 일반적이기 때문에 텍스트를 입력받고 화면에 출력하기 위해서는 상당히 복잡한 정렬 과정이 필요하고 따라서 이러한 언어를 지원하는 일은 상당히 어려운 일이 될 것이다.

그림 2. 복합 텍스트를 화면에 표시하는 동안의 변환 과정.

현재 지원을 위해 개발 중인 언어 범주 중 하나는 소위 복합 텍스트(complex text) 언어라고 하는 것이다. 남 아시아, 동남 아시아의 작성 시스템에서는 문자들이 모여 원래의 문자와는 상당히 다른 문자를 만들어낸다. 그림 2를 보기 바란다.

이러한 문자 언어를 지원하고 애플리케이션 개발자들이 GTK+에서 이미 국제화된 문자 언어를 위해 지원하고 있는 기능을 보다 쉽게 사용할 수 있도록 하기 위해, GTK+에서는 현재 인코딩을 각 로케일에 따라 다르게 하는 방식 대신 모든 문자열을 유니코드로 인코딩할 것이다. 모든 로케일에 대하여 인코딩이 동일하기 때문에 문자열을 처리하는 코드를 작성하기 쉽고 더 효율적이다. 또한 현재 유니코드을 가지고 표준화하고 있는 다른 시스템과의 상호연결성이 좋아질 것이다.

그림 3. GTK+의 국제화 기능에 대한 미래의 아키텍쳐 제안

서로 다른 문자 언어 쓰기 방식에 대한 규칙이 복잡하기 때문에 필요한 모든 기능을 GTK+ 안에 직접 넣는 것은 바람직하지 못하다. 대신 그러한 기능을 가지고 있는 모듈을 사용하려고 한다. 한 언어 또는 관련된 언어에 대하여 모듈을 작성할 것이고 그 언어에 관련된 입력, 처리, 출력에 대한 필수 정보를 포함할 것이다. 사실 각 모듈은 여러 개의 부분으로 이루어질 것이며 한 툴킷 또는 출력 장치에만 적용되는 코드 부분은 시스템 독립적인 방식으로 공유될 수 있는 부분과 분리될 것이다. 제안하고자 하는 아키텍쳐는 그림 3과 같다.

GTK+에서는 이미 개발자들이 넓은 범위의 언어에 대하여 자신의 애플리케이션을 국제화할 수 있도록 기능을 제공하고 있다. 위에서 말한 변화 내용들이 완성된다면 GTK+는 매우 정교하고 유연한 방식으로 전세계의 모든 언어를 처리할 수 있게 될 것이다.