[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4. 최초로 PO 파일을 만들기


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.1 xgettext 프로그램 실행하기

 
xgettext [옵션] 입력파일
`-a'
`--extract-all'

모든 문자열을 추출한다.

`-c [태그]'
`--add-comments[=태그]'

출력 파일의 주석문에 (혹은 키워드 줄의 앞에) tag를 첨가한다.

`-C'
`--c++'

C++ 방식의 주석문을 알아차린다.

`--debug'

c-formatpossible-c-format 플래그를 사용해 누가 이 문자열을 포맷 문자열로 표시했는지 알려준다. possible-c-format 플래그는 xgettext 프로그램이 결정하고, c-format은 프로그래머가 미리 써놓는 경우에 사용된다.

기본값으로 c-format 형태만이 사용된다. 번역자는 이런 자세한 사항에 신경쓸 필요가 없다.

`-d 이름'
`--default-domain=이름'

출력으로 (`messages.po' 대신에) `이름.po'을 사용한다.

`-' 혹은 `/dev/stdout'이라는 도메인 이름은 출력을 `stdout'으로 쓰라는 뜻이다.

`-D 디렉토리'
`--directory=디렉토리'

소스 파일을 찾아서 읽기 전에 디렉토리로 이동한다. 하지만, 출력하는 `.po' 파일은 원래 디렉토리에 상대적인 위치로 쓰여질 것이다.

`-f 파일'
`--files-from=파일'

입력 파일의 이름을 명령행 대신에 파일에서 읽어들인다.

`--force'

메세지가 전혀 정의되지 않은 경우에도 출력한다.

`-h'
`--help'

이 도움말을 출력하고 종료한다.

`-I list'
`--input-path=list'

입력 파일을 찾을 디렉토리들을 열거한다.

`-j'
`--join-existing'

이미 존재하는 파일과 메세지를 합친다.

`-k word'
`--keyword[=word]'

찾을 추가 키워드 (word 없이 사용하면 기본 키워드를 쓴다는 뜻이다).

일부러 끄지 않는 한 언제나 찾게 되는 기본 키워드는 gettext, dgettext, dcgettext 그리고 gettext_noop이다.

`-m [문자열]'
`--msgstr-prefix[=문자열]'

문자열 혹은 ""을 msgstr 항목의 앞에 붙인다

`-M [문자열]'
`--msgstr-suffix[=문자열]'

문자열 혹은 ""을 msgstr 항목의 뒤에 붙인다

`--no-location'

`#: 파일이름:줄수' 줄을 쓰지 않는다.

`-n'
`--add-location'

`#: 파일이름:줄수' 줄을 쓴다 (기본 설정).

`--omit-header'

머리부분에 `msgid ""' 항목을 쓰지 않는다.

이 기능은 최종 .gmo 파일에서 소스간의 차이가 없어지므로 테스트 목적으로 좋다. 우리는 이런 파일들을 몇개 GNU gettext 패키지에 같이 포함할 수 있고, msgfmt으로 만든 결과는 같은 값을 다시 만들어야 한다.

`-p dir'
`--output-dir=dir'

출력 파일은 dir 디렉토리에 놓일 것이다.

`-s'
`--sort-output'

정렬된 출력을 만들고, 중복된 걸 지운다.

`--strict'

정확하고 Uniforum에 따르는 PO 파일을 만들어 낸다.

`-v'
`--version'

버전 정보를 출력하고 종료한다.

`-x 파일'
`--exclude-file=파일'

파일에 있는 항목은 제외된다.

추가 PO 파일의 찾기 경로는: `/usr/local/share/nls/src/'이다.

입력파일`-'이면, 표준 입력을 읽는다.

xgettext는 괴상한 경우도 처리할 수 있다. 예를 들어 전처리 매크로, 문자열을 연속해서 쓸때 ANSI 방식으로 문자열 붙이는 것, 그리고 연속된 문자열에서 줄 끝에 이스케이프 문자를 써서 줄을 바꾸는 것 등이다.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.2 C 소스 내용

PO 모드는 GNU gettext 유틸리티를 통해 만들어진 PO 파일에 사용될 때 특히 강력하다. 왜냐하면 이 유틸리티들은 특별한 주석문을 PO 파일에 삽입하기 때문이다. 이중에는 PO 파일의 각 항목이 프로그램 소스의 어느 부분에 번역되지 않은 문자열이 위치하는지 알려주는 주석문도 있다.

번역자가 번역되지 않은 항목을 만나면, 원 문자열이 무슨 뜻인지 알 수 없거나, 너무 간결하거나 암호같거나, 혹은 애매한 경우가 있다. 문자열을 어떻게 번역할지 결정하기 전에, 이 문자열이 무슨 뜻이고 어떤 번역문이 정확히 맞을지 알아야 제대로 번역할 수 있다. 대부분의 경우, 이러한 문제가 발생하면 판단을 내릴 유일한 방법은 그 문자열이 쓰여진 프로그램 소스를 직접 보고 프로그래머가 거기에 썼을지 모르는 주변의 주석문을 찾는 것이다. 그리고 어떤 종류든지 도움이 될 만한 단서를 찾아본다.

다음 명령어는 번역자가 어떤 PO 파일 항목에 대한 프로그램 소스 내용을 찾는데 사용된다.

s

프로그램 소스 내용을 다시 표시하거나, 표시할 소스의 위치들을 차례로 빙빙 돌면서 표시한다.

M-s

메뉴로 선택한 프로그램 소스 내용을 표시한다.

S

소스 파일을 찾을 경로에 디렉토리를 하나 추가한다.

M-S

소스 파일을 찾을 경로에 디렉토리를 하나 지운다.

s(po-cycle-reference)와 M-s(po-select-source-reference) 명령은 두 명령 모두 또다른 윈도우를 열어서 소스 프로그램 파일을 표시해 주고, 번역할 문자열이 실제로 사용된 위치로 커서를 미리 이동시켜놓고 표시한다. 이렇게 함으로써, 이 명령은 해당 문자열에 대한 소스 프로그램의 내용을 알려주게 된다. 하지만 그 항목에 소스 내용 참조링크가 없는 경우, 혹은 프로그램 소스를 찾을 경로중에서 모든 참조링크를 찾을 수 없는 경우에, 이 명령은 이 상황을 오류로 취급한다.

설령 s(혹은 M-s)가 새로운 윈도우를 열 경우에도, 커서는 PO 파일 윈도우에 있다. 정말로 번역자가 프로그램 소스 파일로 커서를 옮기고 싶으면 O 명령과 같은 명령을 이용해 직접 커서를 옮겨야 한다.

s가 첫번째로 타이프될 때, 혹은 전에 s 명령을 사용해 소스를 본 항목과는 다른 새로운 PO 파일 항목에서 타이프될 경우에, 이 명령은 이 항목의 가장 첫번째 소스 내용을 (있다면) 보여준다. 현재 PO 파일 항목에 대해 이미 어떤 소스 내용이 최근에 표시되었을 때, 번역자가 다른 소스 내용을 돌아다니고 싶다면 s를 다시 타이프하면 최근에 표시된 내용을 (별도의 윈도우에) 갱신할 것이다. 특히, 만약 번역자가 소스 파일의 내용에서 커서를 빼내고 싶은 경우에, 이 명령은 커서를 다시 그 문맥상으로 돌려놓을 것이다. PO 모드는 해당 항목에 대해 모든 소스 내용을 돌아가면서 반복하다가 마지막 소스내용을 보여주고 난 후 다시 첫번째 소스내용으로 돌아간다.

M-s 명령은 다르게 동작한다. 참조링크 사이를 반복하는 대신에, 번역자가 여러 가지 참조링크중에 어떤 한 개의 링크를 선택하도록 하고, 선택된 링크를 표시해 준다. 이 명령은 완성(completion) 기능과 함께 사용되면 아주 좋다. 즉, 번역자가 M-s 바로 다음에 질문에 대한 답으로 TAB을 타이프하면, 번역자는 모든 가능한 참조링크에 대한 메뉴를 보고, 가능한 답이 무엇인지 확인할 수 있다. 이 명령은 한개의 번역할 문자열에 대해서 아주 많은 소스내용이 붙어 있을 경우에만 쓸모가 있다.

프로그램 소스 파일은 보통 PO 파일이 있는 위치에 대해 상대적으로 위치한다. 이 시도가 실패할 경우에, 바로 윗 디렉토리에 대한 상대 위치에서 파일을 찾으려는 시도를 한다. 앞의 두 경우는 대부분의 PO 파일에 대해 제대로 동작한다. 하지만, PO 파일의 위치가 이동되었거나, 정상적인 위치가 아닌 곳에서 편집되었을 수도 있다. 이럴 경우에, 번역자는 진짜 PO 파일이 정상적으로 있어야 할 디렉토리를 PO 모드에 알려줘야 한다. 여러 개의 디렉토리를 지정할 수 있고, 이 디렉토리들은 프로그램 소스의 찾기 경로라고 하는 것을 구성한다. S(po-consider-source-path)명령은 대화적으로 찾기 경로의 앞에 한개의 새로운 디렉토리를 추가하는 데 사용된다. 그리고 M-S(po-ignore-source-path) 명령은 더이상 찾기 경로에 놓고 싶지 않은 디렉토리를 (완성(completion)과 함께) 선택하는 데 사용된다.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.3 번역 요약문 사용하기

요약문은 아직 만들어 지지 않았다.

새롭게 만들어진 이 PO 모드의 기능은 번역자가 이미 번역된 번역문들을 요약해서 관리할 수 있는 기능이다. 요약문은 여러 개의 패키지에서 자주 등장하는 번역문들로 구성된 특수 목적의 PO 파일이다. 번역자는 자기 요약문에 번역항목을 추가하고, 요약문에 들어 있는 번역문에서부터 나중에 번역이 안 된 항목들을 초기화하고, 이미 번역된 항목들을 갱신하는 명령을 쓸 수 있다. 하지만, 이 작업을 위해서는, 요약문도 표준화되어야 한다. See section 항목의 문자열 표준화.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Autobuild on March, 29 2007 using texi2html 1.76.