상단

gettext에서 사용하는 다국어 지원을 위한 메시지 파일인 po 파일 편집기인 poedit를 정리 한다.

 
 

설치 가이드


Windows에서 poedit를 다운로드 하여 설치하는 것을 설명 한다.

 

poedit 설치

  • 다운로드 사이트에서 "poedit-1.4.2-setup.exe"을 다운로드 한다.

  • "poedit-1.4.2-setup.exe"를 실행한 후 "Next"를 선택하여 설치를 시작 한다.
    ![설치 시작](img/Poedit install 01.png)

  • 라이선스를 확인하고 "Next"를 선택 한다.
    ![라이선스](img/Poedit install 02.png)

  • 설치 폴더를 선택하고 "Next"를 선택 한다.
    ![설치 폴더](img/Poedit install 03.png)

  • "Full installation"을 선택한 후 "Next"를 선택 한다.
    ![설치 옵션](img/Poedit install 04.png)

  • 메뉴 폴더로 Poedit를 지정한 후 "Next"를 선택 한다.
    ![메뉴 폴더](img/Poedit install 05.png)

  • "Install"을 선택하여 실제 설치를 진행 한다.
    ![설치](img/Poedit install 06.png)

  • "Run Poedit now"를 선택한 후 "Finish"를 선택하여 설치를 종료 한다.
    ![설치 종료](img/Poedit install 07.png)

  • 처음으로 poedit가 실행될 때 사용 언어로 "Korean"을 지정 하여야 메뉴 등이 한글로 표시 된다.
    ![언어 선택](img/Poedit install 08.png)

  • 메시지를 읽고 "확인"은 선택 한다.
    ![안내 메시지](img/Poedit install 09.png)

  • 카탈로그(PO 파일)의 "Last-Translator"에 표시할 신상 정보를 입력 한다.

    • 이름 : 산사랑

    • 이메일 : consult(골뱅이)jopenbusiness.com
      ![신상 정보](img/Poedit 02.png)

 

주요 환경 설정

 
  • 여러개의 관련 카탈로그(PO 파일)을 프로젝트로 등록하여 관리를 하려면 다음과 같이 한다.

    • "파일 -> 카탈로그 관리자" 메뉴를 선택 한다.

    • 카탈로그 관리자에서 붉은 네모 박스로 표시된 아이콘("번역 프로젝트 생성")을 선택 한다.

 
 

[500px|번역 프로젝트 생성](File:Poedit 10.png.md)

 
  • 프로젝트 이름 : "koreanTranslation", 자신이 원하는 프로젝트 이름을 사용할 것

  • 디렉토리 : 프로젝트에 해당하는 카탈로그(PO 파일)가 있을 경우 "둘러보기" 버튼을 선택하여 해당 PO 파일을 추가 한다.

 
 

[프로젝트 정보 등록](File:Poedit 11.png.md)

 
  • poedit는 번역본 기억 장치(TM)을 지원 한다. TM을 사용하여 기존에 번역에 사용 하였던 정보로 손쉽게 초벌 번역이 가능하다. 아래와 같이 하여 TM을 생성할 수 있다.

    • "파일 -> 선택사항" 메뉴에서 번역본 기억 장치(TM) 탭을 선택 한다.

      • DB 경로 : c:/koreanTranslationDB, 번역본 기억 장치(TM)가 저장될 폴더를 지정 한다.

      • 내 언어 : ko (korean), "추가" 버튼을 선택하여 사용할 언어를 지정 한다.

 
 

[번역본 기억 장치(TM)](File:Poedit 04.png.md)

 
- "데이터베이스 생성" 버튼을 선택 한다.  
  - 디폴트로 등록된 "C:"를 삭제 한다.  
  - "둘러보기"를 선택하여 PO 파일이 저장된 "c:/koreanTranslation"을 선택 한다.  
  "Next" 버튼을 선택 한다.

[로컬 파일이 저장된 디렉토리 추가](File:Poedit 05.png.md)

 
  - 번역본 기억 장치(TM)를 생성할 번역 파일(PO 파일 또는 MO 파일)을 지정  
  - 번역본을 생성할 PO 파일을 지정 한다.  
  - "Finish" 버튼을 눌러 데이터베이스 생성을 종료 한다.  
  - 번역본 기억 장치의 DB 폴더가 c:/koreanTranslationDB 일 경우 구조  
 c:/koreanTranslationDB/ko 폴더 
    strings.db 파일
    translations.db 파일
    words.db 파일 
 

[번역 파일 추가](File:Poedit 06.png.md)

 
 
 

Poedit Pro와 비교

 
 
 

Poedit 2.0.6

 

가격 : $29.99 (1명이 최대 3대의 컴퓨터에서 사용 가능)

 

제공 기능

 
  • 온라인 번역 기억 장소 제안

  • WordPress 테마 또는 플러그인 번역 지원

  • Crowdin에서 공동 번역 지원

  • twig 양식에서 문자열 추출

  • 단어 계수 및 통계

 
 

사용자 가이드


파일 메뉴

{| cellspacing="1" cellpadding="1" border="1" width="100%" 
|- |width="20%" bgcolor="cyan" align="center" valign="middle"|메뉴

|width="80%" bgcolor="cyan" align="center" valign="middle"|설명 
|- |align="center"|카탈로그 관리자 |

  • 프로젝트 단위 그룹핑하여 카탈로그를 관리 한다.

  • 프로젝트 생성

    • 카탈로그 관리자에서 붉은 네모 박스로 표시된 아이콘("번역 프로젝트 생성")을 선택 한다.
      ![500px|번역 프로젝트 생성](img/Poedit 10.png)

    • 프로젝트 이름 : "koreanTranslation"

    • 디렉토리 : "둘러보기" 버튼을 선택하여 "c:/koreanTranslation/koreanProject.po"를 추가 한다.

      ![프로젝트 정보 등록](img/Poedit 11.png)
      align="center"
  • 새 카탈로그(PO 파일)를 생성 한다.

    • 프로젝트 이름과 버전 : koreanProject, 카탈로그의 프로젝트 명

    • 팀 : pnus, 카탈로그 작성 팀명

    • 팀 메일 주소 : consult(골뱅이)jopenbusiness.com, 카탈로그 작성 팀의 메일 주소

    • 언어 : "Korean"

    • 국가 : "KOREA, REPUBLIC OF"

    • 문자코드 : "utf-8"

    • 소스 코드 문자코드 : "utf-8"

    • 문장내 복수 표시 형식 :
      ![새 카탈로그](img/Poedit 01.png)

  • 새 카탈로그를 c:/koreanTranslation/koreanProject.po 로 저장할 경우 파일 내용

    • koreanProject.po 파일은 utf-8 형태로 저장 된다.

 
 msgid ""
 msgstr ""
 "Project-Id-Version: koreanProject\n"
 "POT-Creation-Date: \n"
 "PO-Revision-Date: \n"
 "Last-Translator: 산사랑 \n"
 "Language-Team: pnus \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"
 
 

|- 
|align="center"|POT 파일로부터 새로운 카탈로그 작성... |

  • GNU Gettext 템플릿(~.pot) 파일로 부터 새로운 카탈로그(GNU Gettext 파일, ~.po)를 작성 한다.
    align="center"
  • 카탈로그(GNU Gettext 파일, ~.po)를 연다.
    align="center"
  • 현재 작성 중인 카탈로그(GNU Gettext 파일, ~.po)를 저장 한다.
    align="center"
  • 카탈로그(GNU Gettext 파일, ~.po)를 다른 이름으로 저장 한다.
    align="center"
  • 카탈로그(GNU Gettext 파일, .po)를 다른 형식(.po.html)으로 저장 한다.
    align="center"
    poedit의 기본 설정과 사용자 정보를 등록 한다.
  • "개인 정보" 탭

    • 이름 : 산사랑

    • 이메일 : consult(골뱅이)jopenbusiness.com
      ![신상 정보](img/Poedit 02.png)

  • "편집기" 탭

    • 동작

      • 저장할 때, .mo 파일 자동 생성 : 선택시 c:/koreanTranslation 폴더의 koreanProject.po를 저장할 경우 자동으로 koreanProject.mo 파일이 생성 된다.

      • 카탈로그 업데이트 후 요약 정보 보기

      • Poedit 시작시에 카탈로그 관리자 열기

      • 항상 포커스를 입력창으로 옮김

      • 주석을 수정 가능하게 합니다.

    • CR/LF 변환

      • 개행 서식 : '''유닉스''', MS 윈도우즈, 매킨토시, 현재 플랫폼 기본 사항

      • 존재하는 카탈로그의 포맷을 변경하지 마세요

    • 외부 편집기

      • 편집기 실행파일

      • 파일 뷰어에서 열지 않고, 편집기에서 소스 파일 열기

    • 글꼴

      • 번역 목록에 대한 사용자 글꼴

      • 본문 영역에 대한 사용자 글꼴
        ![편집기](img/Poedit 03.png)

  • "번역본 기억 장치(TM)" 탭

    • 데이터베이스

      • DB 경로 : c:/koreanTranslationDB, 번역본 기억 장치(TM)가 저장될 폴더

      • 내 언어 : ko (korean), 아래 추가 버튼을 선택하여 사용할 언어를 지정 한다.
        ![번역본 기억 장치(TM)](img/Poedit 04.png)

      • "데이터베이스 생성" 버튼을 선택 한다.

        • 디폴트로 등록된 "C:"를 삭제 한다.

        • "둘러보기"를 선택하여 PO 파일이 저장된 "c:/koreanTranslation"을 선택 한다.
          "Next" 버튼을 선택 한다.

![로컬 파일이 저장된 디렉토리 추가](img/Poedit 05.png) 
- 번역본 기억 장치(TM)를 생성할 번역 파일(PO 파일 또는 MO 파일)을 지정
- 번역본을 생성할 PO 파일을 지정 한다.
- "Finish" 버튼을 눌러 데이터베이스 생성을 종료 한다.
- 번역본 기억 장치의 DB 폴더가 c:/koreanTranslationDB 일 경우 구조

 c:/koreanTranslationDB/ko 폴더 
     strings.db 파일
     translations.db 파일
     words.db 파일 

![번역 파일 추가](img/Poedit 06.png)

  • 설정

    • 누락된 최대 단어 수

    • Max. difference in sentence length

    • 카탈로드 업데이트할 때, 자동 번역

     
  • "분석기" 탭

    • 소스 코드를 분석하여 PO 파일을 생성할 때 필요한 정보를 관리 한다.
      ![분석기](img/Poedit 07.png)

    • Java 분석기 설정 예
      ![Java 분석기 설정 예](img/Poedit 08.png)

    • PHP 분석기 설정 예

      ![PHP 분석기 설정 예](img/Poedit 09.png)
      align="center"
      poedit 프로그램을 종료 한다.
      }
 

편집 메뉴

{| cellspacing="1" cellpadding="1" border="1" width="100%" 
|- |width="20%" bgcolor="cyan" align="center" valign="middle"|메뉴

|width="80%" bgcolor="cyan" align="center" valign="middle"|설명 
|- |align="center"|원본을 번역창으로 복사 |

  • 번역을 하기 위해 선택한 메시지의 원본 메시지(msgid)를 번역 메시지(msgstr)로 복사 한다.
    align="center"
  • 선택한 메시지가 참조된 곳을 보여 준다.
    align="center"
  • 다양한 조건으로 문자열을 검색 한다.
    align="center"
  • 선택한 메시지가 모호한 번역일 경우에 표시를 한다.

  • poedit에서는 노란색 별표로 표시되며, PO 파일에서는 "#, fuzzy"라는 주석이 추가 된다.
    align="center"
  • 선택한 메시지의 주석을 편집 한다.
    |}

 

카탈로그 메뉴

{| cellspacing="1" cellpadding="1" border="1" width="100%" 
|- |width="20%" bgcolor="cyan" align="center" valign="middle"|메뉴

|width="80%" bgcolor="cyan" align="center" valign="middle"|설명 
|- |align="center"|소스로부터 업데이트 |

  • 카탈로그를 원본 소스(Java, PHP 등)로 부터 업데이트 한다.
    align="center"
  • 카탈로그를 POT 파일로부터 업데이트 한다.
    align="center"
  • 생성된 번역본 기억 장치(TM)의 정보를 이용하여 초벌 번역을 한다.
    align="center"
     
    -
    align="center"
  • 프로젝트 정보 : 프로젝트의 기본 정보를 저장 한다.

  • 경로 : 원본 소스(Java, PHP 등)의 경로를 저장 한다.

  • 키워드 : 소스 파일에서 번역할 문자열을 인식할 키워드(함수명)를 저장 한다.
    |}

 

보기 메뉴

{| cellspacing="1" cellpadding="1" border="1" width="100%" 
|- |width="20%" bgcolor="cyan" align="center" valign="middle"|메뉴

|width="80%" bgcolor="cyan" align="center" valign="middle"|설명 
|- |align="center"|전체 화면 |

  • poedit를 전체 화면으로 표시 한다.
    align="center"
  • msgid와 msgstr에 따옴표를 보여 준다.
    align="center"
  • msgid의 줄번호를 보여 준다.
    align="center"
  • 주석 창을 보여 준다.
    align="center"
     
    -
    align="center"
     
    }
 

책갈피 메뉴

{| cellspacing="1" cellpadding="1" border="1" width="100%" 
|- |width="20%" bgcolor="cyan" align="center" valign="middle"|메뉴

|width="80%" bgcolor="cyan" align="center" valign="middle"|설명 
|- |align="center"|책갈피 삽입 0, 1, ..., 9 |

  • 선택한 메시지를 책갈피 0번에서 부터 9번까지 지정 한다.

  • 단축키로 Alt-0에서 Alt-9까지 사용 한다.

  • PO 파일에서는 "X-Poedit-Bookmarks"가 추가되어 관리 되며, 책갈피에 해당하는 메시지 번호(0, 1, 2, ..., -1은 책갈피가 지정되지 않음을 표시함)가 저장된다.

 
 # 0번 책갈피에 6번째 메시지(5)가 할당되었고
 # 다른 책갈피에는 메시지가 할당되지 않았을 경우
 "X-Poedit-Bookmarks: 5,-1,-1,-1,-1,-1,-1,-1,-1,-1\n"

|- 
|align="center"|책갈피로 바로 가기 0, 1, ..., 9 |

  • 지정한 책갈피로 바로 간다.

  • 단축키로 Ctrl-0에서 Ctrl-9까지 사용 한다.
    |}

 

도움말 메뉴

{| cellspacing="1" cellpadding="1" border="1" width="100%" 
|- |width="20%" bgcolor="cyan" align="center" valign="middle"|메뉴

|width="80%" bgcolor="cyan" align="center" valign="middle"|설명 
|- |align="center"|목차 및 검색 |

  • poedit의 영문 사용자 가이드를 보여 준다.
    align="center"
  • 영문 GNU gettext manual을 보여 준다.
    align="center"
  • 설치된 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] ""
msgstr1 "
"

 
 
 

참고 문헌

 
 
 

프로그램 매뉴얼


 

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
1.  /usr/local/share/locale/ko_KR.UTF8/LC_MESSAGE/mydomain.mo  
1.  /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");
1.  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");
1.  putenv("LC_ALL=ko_KR.utf8");  
1.  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](http://www.gnu.org/savannah-checkouts/gnu/gettext/manual/html_node/xgettext-Invocation.html) ## 참고 문헌 - [오픈소스 한글화](오픈소스 한글화.md) - 대표적인 PO 편집기 - [KBabel (GPL)](http://kbabel.kde.org/) - [gtranslator](http://sourceforge.net/projects/gtranslator) - [TMX 편집기](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/) - [한국어 PO 파일 검사툴](http://kldp.net/projects/ko-po-check) - [Computer-assisted translation](http://en.wikipedia.org/wiki/Computer-assisted_translation) - [http://lexcode.com/bbs/zboard.php?id=okc8&page=1](http://lexcode.com/bbs/zboard.php?id=okc8&page=1) - [OmegaT](http://www.thewordcracker.com/translation/free-computer-aided-tool-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:오픈소스]]
분류: [한글화](분류_한글화.md)
최종 수정일: 2024-09-30 12:26:18

이전글 :
다음글 :