1

주제: 지역화 처리

메신저로 리체님께 문의드렸는데 (첫 메신저 내용이 그런거라 죄송합니다 ㅠ_ㅠ) 답이 없어서 같이 생각해보는 것이 어떨까 하고 올려봅니다 big_smile


개인적으로 만들어 테스트하던 플러그인을 배포나 해야겠다 해서 다듬던 중 궁금한 것이 떠올랐습니다.

프로그램 안에 GPL 선언문과 version history를 넣다가 보니 든 생각인데, 현재 플러그인 아키텍처에 i18n (internationalization-지역화- 이 너무 길어서 일반적으로 단어수만 계산하여 i18n이라고 씁니다) 에 대한 처리가 없는것 같습니다.

태터툴즈를 예로 들면 <description>이면 그 아래
<description>
    <default>en</default>
    <ko>블라블라</ko>
    <en>blahblah</en>
</description>

이런 식으로 마크업이 있어서, 태터툴즈의 언어 설정에 따라 플러그인 메뉴에서의 설명이 다르게 보인다거나 하는 식으로 지역화에 관련된 처리가 있어야 하지 않을까 합니다. 다국어 지원을 목표로 한다면 플러그인도 그렇게 하는 것이 좋겠다는 생각이 드네요. 우리 나라의 벽을 넘어서 수많은 나라들의 기발한 플러그인들을 구경하고 사용하고 번역해서 또 서로 사용하고 하려면 이정도의 추가는 필요할 것 같습니다. big_smile


기존의 플러그인 아키텍처와의 호환성을 위해서는 version 메타 태그를 검사하여 얼마 이상 (빠르면 1.0.5?) 이면 저러한 i18n지원이 기본으로, 그 이하(현재 플러그인)로 마크된 플러그인들은 그냥 현재의 메타방식을 지원하는 식으로 하는 것이 좋을 것 같습니다.  만약 이후에도 그냥 현재의 플러그인 방식도 버전에 상관없이 똑같이 계속 지원하고, 위의 다국어용으로 확장된 플러그인 방식도 동시에 지원한다면 아마 대부분 자국어로 된 플러그인만 만들고 말겠지요 smile 어려운 변환이 아니니 자연스레 옮겨갈 것이라고 생각합니다.

변화는 작겠지만, 그 파급효과는 상상할 수 없을겁니다.
외국에도 말림돌이들이 많거든요. big_smile

"Everything looks different on the other side."

-Ian Malcomm, from Michael Crichton's 'The Jurassic Park'

2

답글: 지역화 처리

xml:lang 프로퍼티를 붙여 주는 방식이 여러모로 보기좋을듯.

3

답글: 지역화 처리

현재 tt 1.0.5 의 준비를 하나씩 해나가고 있습니다.
그 과정중에 가장 중요한 것이, 바로 i18n 입니다.  예전처럼 resource 파일이 지저분하게 빠져있는 방식이 아닌 진정한  i18n 을 구현해냈습니다. 계속해서 확장되어 가는 언어권에서 가장 중요한 일이라고 판단되었기 때문입니다. :0

오늘 파파차님이 아파서 일찍 들어가신게 좀 위험요인이긴 하지만, 곧 개발트리가 오픈되고 개발자 사이트가 셋업이 될것입니다. 그리고 그와 동시에 여러가지 변화가 일어날 것으로 보입니다. 다음주를 기대해주시기 바랍니다. ~~

4

답글: 지역화 처리

gendoh 작성:

xml:lang 프로퍼티를 붙여 주는 방식이 여러모로 보기좋을듯.

저도 그 쪽이 멋지다고 생각합니다 >_<

chester 작성:

그 과정중에 가장 중요한 것이, 바로 i18n 입니다.  예전처럼 resource 파일이 지저분하게 빠져있는 방식이 아닌 진정한  i18n 을 구현해냈습니다. 계속해서 확장되어 가는 언어권에서 가장 중요한 일이라고 판단되었기 때문입니다. :0

플러그인 부분의 i18n이 어떻게 만들어져 있는지 플러그인의 예제같은 것 좀 보여주실 수 없을까요? 여기 궁금해하시는 분들 많을겁니다^^;

"Everything looks different on the other side."

-Ian Malcomm, from Michael Crichton's 'The Jurassic Park'

5

답글: 지역화 처리

http://dev.tattertools.com/ticket/2 에 해당 사항을 등록하였습니다. 의견 주십시오.

6

답글: 지역화 처리

일단 글 찰싹 붙여놓았습니다 big_smile

locale entity를 추가하고, language.xml을 분리하여 메세지별로 처리하는 방법이 우선 먼저 생각납니다. 이 경우 플러그인 .xml의 가독성이 높아지고, index.php 의 내용에도 언어 프로퍼티를 지정할 수 있어 유리합니다. 하지만 index.php 에서의 i18n을 처리할 생각이 없다면 별로 길지 않은 index.xml의 속성상 그다지 language.xml 을 분리할 필요는 없겠죠.

전 앞의 이유로 language.xml의 분리가 낫다고 생각합니다. big_smile 기존의 i18n 루틴을 응용해서 구현하는 것도 좋겠네요. 현재 i18n루틴이 xml을 고려하거나 적용 범위를 고려한 루틴(플러그인에서만 적용된다거나 어떤 메뉴에서만 적용된다거나 하는) 이 아니므로, 플러그인마다 추가되는 i18n 정보를 읽어 기존의 i18n 처리에 추가하는 방식은 약간 무리가 있을 것 같기도 합니다. (겹치는 표현이 생길 수도 있겠지요)

생각이 더 있는데 다들 저녁식사 하러 가자고 해서 끌려갑니다;;;
나중에 돌아와서 세부적인 이야기를 더 해보겠습니다.

"Everything looks different on the other side."

-Ian Malcomm, from Michael Crichton's 'The Jurassic Park'

7

답글: 지역화 처리

지금은 title 등과 binding(tag, event, php function declaration)이 모두 index.xml에 있기 때문에, 차후 locale data 양이 많이 지는 것을 고려하여 language.xml 처럼 분리하는 것도 가능하겠으나, 지금의 Plugin API를 만족하는 방법이 xml:lang이라고 판단하여 ticket 2대로 구현하여 commit하였습니다.

PAPACHA (2006-04-20 17:42:55)에 의해 마지막으로 수정