"Poedit"의 두 판 사이의 차이
잔글 |
잔글 |
||
(같은 사용자의 중간 판 16개는 보이지 않습니다) | |||
43번째 줄: | 43번째 줄: | ||
[[그림:Poedit 02.png|신상 정보]] | [[그림:Poedit 02.png|신상 정보]] | ||
− | ===주요 환경 설정=== | + | === 주요 환경 설정 === |
+ | |||
*여러개의 관련 카탈로그(PO 파일)을 프로젝트로 등록하여 관리를 하려면 다음과 같이 한다. | *여러개의 관련 카탈로그(PO 파일)을 프로젝트로 등록하여 관리를 하려면 다음과 같이 한다. | ||
+ | |||
:*"파일 -> 카탈로그 관리자" 메뉴를 선택 한다. | :*"파일 -> 카탈로그 관리자" 메뉴를 선택 한다. | ||
:*카탈로그 관리자에서 붉은 네모 박스로 표시된 아이콘("번역 프로젝트 생성")을 선택 한다. | :*카탈로그 관리자에서 붉은 네모 박스로 표시된 아이콘("번역 프로젝트 생성")을 선택 한다. | ||
− | [[ | + | |
− | :*프로젝트 이름 : "koreanTranslation", 자신이 원하는 프로젝트 이름을 사용할 것 | + | [[File:Poedit 10.png|500px|번역 프로젝트 생성]] |
− | :*디렉토리 : 프로젝트에 해당하는 카탈로그(PO 파일)가 있을 경우 "둘러보기" 버튼을 선택하여 해당 PO 파일을 추가 한다. | + | |
− | [[ | + | :*프로젝트 이름 : "koreanTranslation", 자신이 원하는 프로젝트 이름을 사용할 것 |
− | + | :*디렉토리 : 프로젝트에 해당하는 카탈로그(PO 파일)가 있을 경우 "둘러보기" 버튼을 선택하여 해당 PO 파일을 추가 한다. | |
+ | |||
+ | [[File:Poedit 11.png|프로젝트 정보 등록]] | ||
*poedit는 번역본 기억 장치(TM)을 지원 한다. TM을 사용하여 기존에 번역에 사용 하였던 정보로 손쉽게 초벌 번역이 가능하다. 아래와 같이 하여 TM을 생성할 수 있다. | *poedit는 번역본 기억 장치(TM)을 지원 한다. TM을 사용하여 기존에 번역에 사용 하였던 정보로 손쉽게 초벌 번역이 가능하다. 아래와 같이 하여 TM을 생성할 수 있다. | ||
+ | |||
:*"파일 -> 선택사항" 메뉴에서 번역본 기억 장치(TM) 탭을 선택 한다. | :*"파일 -> 선택사항" 메뉴에서 번역본 기억 장치(TM) 탭을 선택 한다. | ||
− | ::*DB 경로 : c:/koreanTranslationDB, 번역본 기억 장치(TM)가 저장될 폴더를 지정 한다. | + | ::*DB 경로 : c:/koreanTranslationDB, 번역본 기억 장치(TM)가 저장될 폴더를 지정 한다. |
− | ::*내 언어 : ko (korean), "추가" 버튼을 선택하여 사용할 언어를 지정 한다. | + | ::*내 언어 : ko (korean), "추가" 버튼을 선택하여 사용할 언어를 지정 한다. |
− | [[ | + | |
+ | [[File:Poedit 04.png|번역본 기억 장치(TM)]] | ||
+ | |||
::*"데이터베이스 생성" 버튼을 선택 한다. | ::*"데이터베이스 생성" 버튼을 선택 한다. | ||
:::*디폴트로 등록된 "C:"를 삭제 한다. | :::*디폴트로 등록된 "C:"를 삭제 한다. | ||
:::*"둘러보기"를 선택하여 PO 파일이 저장된 "c:/koreanTranslation"을 선택 한다. | :::*"둘러보기"를 선택하여 PO 파일이 저장된 "c:/koreanTranslation"을 선택 한다. | ||
:::"Next" 버튼을 선택 한다. | :::"Next" 버튼을 선택 한다. | ||
− | [[ | + | |
+ | [[File:Poedit 05.png|로컬 파일이 저장된 디렉토리 추가]] | ||
+ | |||
:::*번역본 기억 장치(TM)를 생성할 번역 파일(PO 파일 또는 MO 파일)을 지정 | :::*번역본 기억 장치(TM)를 생성할 번역 파일(PO 파일 또는 MO 파일)을 지정 | ||
:::*번역본을 생성할 PO 파일을 지정 한다. | :::*번역본을 생성할 PO 파일을 지정 한다. | ||
:::*"Finish" 버튼을 눌러 데이터베이스 생성을 종료 한다. | :::*"Finish" 버튼을 눌러 데이터베이스 생성을 종료 한다. | ||
− | :::* 번역본 기억 장치의 DB 폴더가 c:/koreanTranslationDB 일 경우 구조 | + | :::*번역본 기억 장치의 DB 폴더가 c:/koreanTranslationDB 일 경우 구조 |
+ | |||
c:/koreanTranslationDB/ko 폴더 | c:/koreanTranslationDB/ko 폴더 | ||
− | + | strings.db 파일 | |
− | + | translations.db 파일 | |
− | + | words.db 파일 | |
− | [[ | + | |
+ | [[File:Poedit 06.png|번역 파일 추가]] | ||
+ | |||
+ | |||
+ | |||
+ | === Poedit Pro와 비교 === | ||
+ | |||
+ | |||
+ | |||
+ | Poedit 2.0.6 | ||
+ | |||
+ | 가격 : $29.99 (1명이 최대 3대의 컴퓨터에서 사용 가능) | ||
+ | 제공 기능 | ||
+ | *온라인 번역 기억 장소 제안 | ||
+ | *WordPress 테마 또는 플러그인 번역 지원 | ||
+ | *Crowdin에서 공동 번역 지원 | ||
+ | *twig 양식에서 문자열 추출 | ||
+ | *단어 계수 및 통계 | ||
==사용자 가이드== | ==사용자 가이드== | ||
345번째 줄: | 372번째 줄: | ||
PHP 파일에서 po 파일 생성 | PHP 파일에서 po 파일 생성 | ||
− | <pre>xgettext --default-domain=index -k_ index.php</pre> | + | <pre>yum install gettext |
+ | xgettext --default-domain=index -k_ index.php</pre> | ||
po 파일로 mo 파일 생성 | 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 파일 위치 | po 파일 위치 | ||
<pre>/usr/local/share/locale/ko_KR/LC_MESSAGE/mydomain.mo | <pre>/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_KR.UTF8/LC_MESSAGE/mydomain.mo | ||
# /usr/local/share/locale/ko/LC_MESSAGE/mydomain.mo</pre> | # /usr/local/share/locale/ko/LC_MESSAGE/mydomain.mo</pre> | ||
− | === PHP에서 po 사용 === | + | |
+ | === PHP에서 po 파일 사용 === | ||
PHP 환경 설정 | PHP 환경 설정 | ||
371번째 줄: | 422번째 줄: | ||
gettext("~"); | gettext("~"); | ||
_("~");</pre> | _("~");</pre> | ||
+ | === Python에서 po 파일 사용 === | ||
+ | <pre>import gettext | ||
+ | |||
+ | gettext.bindtextdomain("mydomain", "/usr/local/share/locale") | ||
+ | gettext.bind_textdomain_codeset("mydomain", "UTF-8") | ||
+ | gettext.textdomain("mydomain") | ||
+ | |||
+ | gettext.gettext("~") | ||
+ | _ = gettext.gettext | ||
+ | _("~")</pre> | ||
+ | |||
+ | === Linux Shell Script에서 po 파일 사용 === | ||
+ | <pre>#! /bin/bash | ||
+ | export TEXTDOMAINDIR=/usr/local/share/locale | ||
+ | export TEXTDOMAIN=mydomain | ||
+ | |||
+ | echo "$(gettext -s "Hello")"</pre> | ||
+ | |||
+ | == xgettext 사용법 == | ||
+ | |||
+ | 참고 문헌 | ||
+ | |||
+ | *https://developer.mozilla.org/en-US/docs/gettext | ||
+ | *[http://www.gnu.org/savannah-checkouts/gnu/gettext/manual/html_node/xgettext-Invocation.html http://www.gnu.org/savannah-checkouts/gnu/gettext/manual/html_node/xgettext-Invocation.html] | ||
== 참고 문헌 == | == 참고 문헌 == | ||
380번째 줄: | 455번째 줄: | ||
:*[http://sourceforge.net/projects/gtranslator gtranslator] | :*[http://sourceforge.net/projects/gtranslator gtranslator] | ||
+ | *[http://blog.saltlux.com/blog-ko/saltlux_life/saltlux_tc_news/tmx-%EC%83%9D%EC%84%B1-%EB%B0%8F-tm-%EC%A0%95%EB%A6%AC-%EC%89%BD%EA%B2%8C-%ED%95%98%EA%B8%B0/ TMX 편집기] | ||
*[http://kldp.net/projects/ko-po-check 한국어 PO 파일 검사툴] | *[http://kldp.net/projects/ko-po-check 한국어 PO 파일 검사툴] | ||
*[http://en.wikipedia.org/wiki/Computer-assisted_translation Computer-assisted translation] | *[http://en.wikipedia.org/wiki/Computer-assisted_translation Computer-assisted translation] | ||
+ | *[http://lexcode.com/bbs/zboard.php?id=okc8&page=1 http://lexcode.com/bbs/zboard.php?id=okc8&page=1] | ||
+ | *[http://www.thewordcracker.com/translation/free-computer-aided-tool-omegat/ OmegaT], SDL Trados, DejaVu, MomoQ | ||
+ | *TMX (TM 데이터의 산업 표준 포맷) | ||
+ | **[http://doc.mapeditor.org/reference/tmx-map-format/ http://doc.mapeditor.org/reference/tmx-map-format/] | ||
+ | **[http://pythonhosted.org/tmx/ http://pythonhosted.org/tmx/] | ||
+ | *[https://github.com/vslavik/poedit https://github.com/vslavik/poedit] | ||
[[Category:오픈소스|Category:오픈소스]]<br/>[[Category:한글화|Category:한글화]] | [[Category:오픈소스|Category:오픈소스]]<br/>[[Category:한글화|Category:한글화]] |
2018년 2월 22일 (목) 16:03 기준 최신판
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