Poedit
gettext에서 사용하는 다국어 지원을 위한 메시지 파일인 po 파일 편집기인 poedit를 정리 한다.
- 홈페이지 : http://www.poedit.net/, http://sourceforge.net/projects/poedit/
- 다운로드 : http://www.poedit.net/download.php
- 라이센스 : MIT license
- 플랫폼 : Windows, Unix, Linux / C++
목차
설치 가이드
Windows에서 poedit를 다운로드 하여 설치하는 것을 설명 한다.
poedit 설치
- 다운로드 사이트에서 "poedit-1.4.2-setup.exe"을 다운로드 한다.
- "poedit-1.4.2-setup.exe"를 실행한 후 "Next"를 선택하여 설치를 시작 한다.
- 라이선스를 확인하고 "Next"를 선택 한다.
- 설치 폴더를 선택하고 "Next"를 선택 한다.
- "Full installation"을 선택한 후 "Next"를 선택 한다.
- 메뉴 폴더로 Poedit를 지정한 후 "Next"를 선택 한다.
- "Install"을 선택하여 실제 설치를 진행 한다.
- "Run Poedit now"를 선택한 후 "Finish"를 선택하여 설치를 종료 한다.
- 처음으로 poedit가 실행될 때 사용 언어로 "Korean"을 지정 하여야 메뉴 등이 한글로 표시 된다.
- 메시지를 읽고 "확인"은 선택 한다.
- 카탈로그(PO 파일)의 "Last-Translator"에 표시할 신상 정보를 입력 한다.
- 이름 : 산사랑
- 이메일 : consult(골뱅이)jopenbusiness.com
주요 환경 설정
- 여러개의 관련 카탈로그(PO 파일)을 프로젝트로 등록하여 관리를 하려면 다음과 같이 한다.
- "파일 -> 카탈로그 관리자" 메뉴를 선택 한다.
- 카탈로그 관리자에서 붉은 네모 박스로 표시된 아이콘("번역 프로젝트 생성")을 선택 한다.
- 프로젝트 이름 : "koreanTranslation", 자신이 원하는 프로젝트 이름을 사용할 것
- 디렉토리 : 프로젝트에 해당하는 카탈로그(PO 파일)가 있을 경우 "둘러보기" 버튼을 선택하여 해당 PO 파일을 추가 한다.
- poedit는 번역본 기억 장치(TM)을 지원 한다. TM을 사용하여 기존에 번역에 사용 하였던 정보로 손쉽게 초벌 번역이 가능하다. 아래와 같이 하여 TM을 생성할 수 있다.
- "파일 -> 선택사항" 메뉴에서 번역본 기억 장치(TM) 탭을 선택 한다.
- DB 경로 : c:/koreanTranslationDB, 번역본 기억 장치(TM)가 저장될 폴더를 지정 한다.
- 내 언어 : ko (korean), "추가" 버튼을 선택하여 사용할 언어를 지정 한다.
- "데이터베이스 생성" 버튼을 선택 한다.
- 디폴트로 등록된 "C:"를 삭제 한다.
- "둘러보기"를 선택하여 PO 파일이 저장된 "c:/koreanTranslation"을 선택 한다.
- "Next" 버튼을 선택 한다.
- 번역본 기억 장치(TM)를 생성할 번역 파일(PO 파일 또는 MO 파일)을 지정
- 번역본을 생성할 PO 파일을 지정 한다.
- "Finish" 버튼을 눌러 데이터베이스 생성을 종료 한다.
- 번역본 기억 장치의 DB 폴더가 c:/koreanTranslationDB 일 경우 구조
c:/koreanTranslationDB/ko 폴더 strings.db 파일 translations.db 파일 words.db 파일
Poedit Pro와 비교
Poedit 2.0.6
가격 : $29.99 (1명이 최대 3대의 컴퓨터에서 사용 가능)
제공 기능
- 온라인 번역 기억 장소 제안
- WordPress 테마 또는 플러그인 번역 지원
- Crowdin에서 공동 번역 지원
- twig 양식에서 문자열 추출
- 단어 계수 및 통계
사용자 가이드
파일 메뉴
메뉴 | 설명 |
카탈로그 관리자 |
|
새 카탈로그 |
msgid "" msgstr "" "Project-Id-Version: koreanProject\n" "POT-Creation-Date: \n" "PO-Revision-Date: \n" "Last-Translator: 산사랑 <consult(골뱅이)jopenbusiness.com>\n" "Language-Team: pnus <consult(골뱅이)jopenbusiness.com>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Korean\n" "X-Poedit-Country: KOREA, REPUBLIC OF\n" "X-Poedit-SourceCharset: utf-8\n" |
POT 파일로부터 새로운 카탈로그 작성... |
|
열기... |
|
저장 |
|
다른 이름으로 저장... |
|
다른 형식으로 저장... |
|
선택사항 |
poedit의 기본 설정과 사용자 정보를 등록 한다.
c:/koreanTranslationDB/ko 폴더 strings.db 파일 translations.db 파일 words.db 파일
|
닫기 | poedit 프로그램을 종료 한다. |
편집 메뉴
메뉴 | 설명 |
원본을 번역창으로 복사 |
|
참조 보기 |
|
찾기 |
|
모호한 번역 |
|
주석 편집 |
|
카탈로그 메뉴
메뉴 | 설명 |
소스로부터 업데이트 |
|
POT 파일로부터 업데이트 |
|
TM을 사용하여 자동 번역 |
|
삭제된 번역을 완전히 제거 | |
설정 |
|
보기 메뉴
메뉴 | 설명 |
전체 화면 |
|
따옴표 보이기 |
|
줄번호 보이기 |
|
주석 창 보이기 |
|
자동 주석 창 보이기 | |
음영으로 구분된 번역 리스트 |
책갈피 메뉴
메뉴 | 설명 |
책갈피 삽입 0, 1, ..., 9 |
# 0번 책갈피에 6번째 메시지(5)가 할당되었고 # 다른 책갈피에는 메시지가 할당되지 않았을 경우 "X-Poedit-Bookmarks: 5,-1,-1,-1,-1,-1,-1,-1,-1,-1\n" |
책갈피로 바로 가기 0, 1, ..., 9 |
|
도움말 메뉴
메뉴 | 설명 |
목차 및 검색 |
|
GNU gettext 문서 |
|
Poedit 정보 |
|
PO 파일 포맷
msgid ""
msgstr ""
"Project-Id-Version: /root/repo_git/SuiteCRM/lang_ko_kr_pack/include/language/ko_kr.lang.php\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-15 13:00+0900\n"
"PO-Revision-Date: 2015-08-15 13:00+0900\n"
"Last-Translator: 산사랑 <consult골뱅이jopenbusiness.com>\n"
"Language-Team: 산사랑 <consult골뱅이jopenbusiness.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
# translator-comments (주석)
#. extracted-comments
#: reference… (참조 파일 정보)
#, flag…
#| msgid previous-untranslated-string
msgid "원본 메시지"
msgstr "번역한 메시지"
빈라인
# 주석
msgid "원본 메시지"
msgid_plural "복수형 원본 메시지"
msgstr[0] "~"
msgstr[1] "~"
참고 문헌
프로그램 매뉴얼
PO 파일 생성 및 위치
PHP 파일에서 po 파일 생성
yum install gettext xgettext --default-domain=index -k_ index.php
po 파일로 mo 파일 생성
msgfmt -o domain.mo domain.po
#--- po 파일을 mo 파일로 변환하기 msgfmt domain.po > domain.mo msgfmt domain.po -o domain.mo #--- mo 파일을 po 파일로 변환하기 msgunfmt domain.mo > domain.po msgunfmt domain.mo -o domain.po #--- po 파일을 pot 파일로 변환하기 msgfilter -i domain.po -o domain.pot true #--- po 파일과 pot 파일을 병합하기 msgmerge --update domain.po domain.pot msgmerge --output-file=domain_new.po domain.po domain.pot
po 파일 위치
/usr/local/share/locale/ko_KR/LC_MESSAGE/mydomain.mo # /usr/local/share/locale/ko_KR.UTF8/LC_MESSAGE/mydomain.mo # /usr/local/share/locale/ko/LC_MESSAGE/mydomain.mo
PHP에서 po 파일 사용
PHP 환경 설정
vi php.ini extension=gettext.so
po 파일 사용 준비
bindtextdomain("mydomain", "/usr/local/share/locale"); # bindtextdomain("mydomain", dirname(__FILE__)."/locale"); bind_textdomain_codeset('mydomain', "UTF-8"); textdomain("mydomain");
po 파일 사용
putenv("LANG=ko_KR.utf8"); setlocale(LC_MESSAGES, "ko_KR.utf8"); # putenv("LC_ALL=ko_KR.utf8"); # setlocale(LC_ALL, "ko_KR.utf8"); gettext("~"); _("~");
Python에서 po 파일 사용
import gettext gettext.bindtextdomain("mydomain", "/usr/local/share/locale") gettext.bind_textdomain_codeset("mydomain", "UTF-8") gettext.textdomain("mydomain") gettext.gettext("~") _ = gettext.gettext _("~")
Linux Shell Script에서 po 파일 사용
#! /bin/bash export TEXTDOMAINDIR=/usr/local/share/locale export TEXTDOMAIN=mydomain echo "$(gettext -s "Hello")"
xgettext 사용법
참고 문헌
- https://developer.mozilla.org/en-US/docs/gettext
- http://www.gnu.org/savannah-checkouts/gnu/gettext/manual/html_node/xgettext-Invocation.html
참고 문헌
- 오픈소스 한글화
- 대표적인 PO 편집기
- Computer-assisted translation
- http://lexcode.com/bbs/zboard.php?id=okc8&page=1
- OmegaT, SDL Trados, DejaVu, MomoQ
- TMX (TM 데이터의 산업 표준 포맷)
- https://github.com/vslavik/poedit