SlideShare una empresa de Scribd logo
1 de 21
오픈소스 번역 기여하기
그놈 한국어 번역팀
류창우 <cwryu@debian.org>
우리말이 나오는 오픈소스는
● 물론 누군가 번역한 사람이 있습니다. 아마도 한국인.
● 오늘날 오픈소스는 전세계 모두가 같이 만들어서 같이 씁니다. 특히 번역은 각
언어의 네이티브들의 도움을 받습니다.
● AI가 완전히 대신할 날은 쉽게 안 옵니다. :P
주요 번역 방식 소개: 온라인
● https://translatewiki.net - 주로 위키미디어 관련 (mediawiki, openstreetmap)
● https://www.transifex.com/
● https://weblate.org/
● 각자 pootle 사용 - https://translations.documentfoundation.org/ 등
주요 번역 방식 소개: GNOME
● https://l10n.gnome.org “Damned Lies”
● 세상에는 세 가지 종류의 거짓말이 있다. 거짓말, 빌어먹을 거짓말, 그리고 통
계.
● 번역 "통계" 사이트 - 지금은 번역 제출 기능도 탑재
● PO 다운로드 & 웹에서 제출
주요 번역 방식 소개: The Translation Project
● https://translationproject.org/
● 처음에 GNU Translation Project로 시작. 주로 GNU 프로그램들
● PO 다운로드 & 자동처리되는 메일로 제출
번역 “리소스”
● 진리의 케바케: 여러가지 파일 포맷
● 온라인 번역: translatewiki, transifex, weblate, pootle
● 리소스 파일을 메일로 전달하기도 하고 github PR로 하기도 하고 다 다릅니다.
● GNOME: https://l10n.gnome.org
● 오픈소스에서 가장 많이 쓰이는 GNU Gettext 포맷을 여기서 다룹니다.
● 1990 Sun에서 최초 개발한 방식을 GNU Gettext에서 사용, 지금은 GNU
Gettext 확장된 버전이 사실상 대세
● 대부분 (아마도 모든) 프로그래밍 언어에서 지원
● 영문 문자열을 key로 (msgid) 번역 문자열을 (msgstr) 찾아내는 방식.
● 개발자 입장에서 도입 장벽이 낮음
● 번역자 입장에서 점진적으로 작업해 나갈 수 있음
● 계속 업데이트되는 긴 문서를 번역할 때도 중간 포맷으로 괜찮음
GNU Gettext
Gettext 파일: PO와 MO
● .po 파일은 사람이 편집할 수 있는 텍스트 파일입니다.
● 영문 문자열(msgid)과 번역된 문자열(msgstr)이 들어 있습니다.
● .mo 파일은 .po 파일에서 컴파일한 바이너리 형식 해시테이블입니다.
● 앱에서는 .mo 파일에서 번역 문자열을 찾아봅니다.
별로 알 필요 없는 내부 구조
/usr/share/locale/ko/LC_MESSAGES/hello.mo
setlocale(LC_MESSAGES, "");
bindtextdomain("hello", "/usr/share/locale");
textdomain("hello");
...
greeting_msg = _("Hello, world!");
$ LANG=C hello
Hello, world!
$ LANG=ko_KR.UTF-8 hello
안녕하세요, 여러분!
$ env LANG=ko_KR.UTF-8 TEXTDOMAINDIR=/usr/share/locale gettext
hello "Hello, world!"
안녕하세요, 여러분!$
일반적인 작업 과정
hello.c
ko.po
hello.pot
ko.po
(merged)
일반적인 작업 과정
● 앱 개발자/관리자가 소스코드에서 영문 스트링을 추출해 영문 스트링만 들어
있는 PO 파일을 (.pot) 만듭니다.
● 새로 번역하는 경우 번역자가 이 .pot 파일을 .po 파일로 만들어서 편집합니다.
● 기존 번역이 있는 경우 msgmerge 프로그램을 사용해 .pot 파일과 기존 .po 파
일에서 추가된/바뀐 문자열을 포함한 새 .po 파일을 만듭니다.
● 번역자는 .po 파일에 번역을 추가/업데이트해 제출
그래서 PO 파일을 기여하려면..
● 배포하는 .pot (번역이 없으면) 또는 .po (있으나 업데이트해야 하면) 파일을 찾
습니다. 또는 파일을 만드는 방법이 안내되어 있을 수도 있습니다.
● 폭풍 번역 & 제출
PO 편집 시작
● 형식에 맞춰 써야 합니다. 전용 편집 프로그램 또는 모드/플러그인이 필수적
● POEdit, Emacs po-mode, VIM po.vim
헤더 엔트리
● 관리를 위한 정보 및 중요 메타데이터가 들어 있습니다.
● Content-Type 및 Plural-Forms 중요msgid ""
msgstr ""
"Project-Id-Version: gnome-control-centern"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"control-center&keywords=I18N+L10N&component=generaln"
"POT-Creation-Date: 2016-08-30 15:17+0000n"
"PO-Revision-Date: 2016-09-03 20:05+0900n"
"Last-Translator: Changwoo Ryu <cwryu@debian.org>n"
"Language-Team: GNOME Korea <gnome-kr@googlegroups.com>n"
"Language: kon"
"MIME-Version: 1.0n"
"Content-Type: text/plain; charset=UTF-8n"
"Content-Transfer-Encoding: 8bitn"
"Plural-Forms: nplurals=1; plural=0;n"
엔트리
● 전용 에디터를 쓰면 알 일이 없겠지만…
● 번역자는 번역 문자열 및 코멘트만 추가할 수 있습니다.
# 모니터 이름, Primary-Secondary
#: ../panels/display/cc-display-panel.c:578
#: ../panels/display/cc-display-panel.c:2429
msgid "Primary"
msgstr "주요"
엔트리 (계속)
● 문맥 문자열(msgctx)이 들어 있을 수도 있습니다.
#: ../shell/cc-window.c:872
msgctxt "category"
msgid "Hardware"
msgstr "하드웨어"
고급: 복수형
한국어는 복수형 구별을 하지 않습니다.
msgid "%i day ago"
msgid_plural "%i days ago"
msgstr[0] " %i일 전"
고급: 포맷 문자열
● 해당 프로그래밍 언어의 지식이 필요한데, 번역하면서 익숙해지면 됨.
#, c-format
msgid "%d of %d"
msgstr "%2$d개 중 %1$d"
번역이 끝나면..
● msgfmt -v 명령으로 확인합니다.
● 전용 에디터에는 내장되어 있음.
$ msgfmt --statistics -c -v -o /dev/null ko.po
ko.po: 번역된 메시지 1497개.
$
ko-po-check
● https://github.com/changwoo/ko-po-check/
● 추가로 한국어 번역을 확인하는 프로그램
● 자주 틀리는 관례, 용어, XML 포맷 실수 등등..
● 잡아낸 게 모두 문제라는 뜻은 아니고, 모든 걸 잡아내지도 못합니다. :)
$ ko-po-check ko.po
ko.po:1775: 바로 가기: "link"은(는) "링크"(이)라고 번역하길 제안합니다
ko.po:4654: 인쇄 작업 보기(_J): "Show ..." 형태는 "... 보이기(표시)" 형태와 같이 번역합니
다
ko.po:5583: Mouse: 검색어가 중복되어 있습니다
$

Más contenido relacionado

Similar a 오픈소스 번역 기여하기

오픈소스 번역 기여하기 v3
오픈소스 번역 기여하기 v3오픈소스 번역 기여하기 v3
오픈소스 번역 기여하기 v3Changwoo Ryu
 
[Pgday.Seoul 2020] 포스트그레스큐엘 자국어화 이야기
[Pgday.Seoul 2020] 포스트그레스큐엘 자국어화 이야기[Pgday.Seoul 2020] 포스트그레스큐엘 자국어화 이야기
[Pgday.Seoul 2020] 포스트그레스큐엘 자국어화 이야기PgDay.Seoul
 
Pc용 주요 오픈소스sw 종류 및 이용, 그리고 배포
Pc용 주요 오픈소스sw 종류 및 이용, 그리고 배포Pc용 주요 오픈소스sw 종류 및 이용, 그리고 배포
Pc용 주요 오픈소스sw 종류 및 이용, 그리고 배포Jihui Choi
 
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬Joohyun Han
 
200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의 200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의 Joohyun Han
 
140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴은아 정
 
코분투메뉴얼 10.04 Cobuntu Manual
코분투메뉴얼 10.04 Cobuntu Manual코분투메뉴얼 10.04 Cobuntu Manual
코분투메뉴얼 10.04 Cobuntu ManualUbuntu Korea Community
 
Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기nexusz99
 
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)NAVER D2
 
땅울림 파이썬 스터디 intro
땅울림 파이썬 스터디 intro땅울림 파이썬 스터디 intro
땅울림 파이썬 스터디 intro건희 김
 
Hwp in MS Word
Hwp in MS WordHwp in MS Word
Hwp in MS WordIl-woo Lee
 
찾아가는 Git/Github Seminar
찾아가는 Git/Github Seminar찾아가는 Git/Github Seminar
찾아가는 Git/Github SeminarJeong-Gun Lee
 
Week2-3 review
Week2-3 reviewWeek2-3 review
Week2-3 reviewEun Yu
 
파이썬 소개
파이썬 소개파이썬 소개
파이썬 소개fermat39
 
How to use Github? (For Cien)
How to use Github? (For Cien)How to use Github? (For Cien)
How to use Github? (For Cien)민수 김
 
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우Ian Choi
 
[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기
[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기
[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기OpenStack Korea Community
 
[Hello world]n forge
[Hello world]n forge[Hello world]n forge
[Hello world]n forgeNAVER D2
 
파이썬 튜토리얼 (Python tutorial)
파이썬 튜토리얼 (Python tutorial)파이썬 튜토리얼 (Python tutorial)
파이썬 튜토리얼 (Python tutorial)민지 김
 

Similar a 오픈소스 번역 기여하기 (20)

오픈소스 번역 기여하기 v3
오픈소스 번역 기여하기 v3오픈소스 번역 기여하기 v3
오픈소스 번역 기여하기 v3
 
[Pgday.Seoul 2020] 포스트그레스큐엘 자국어화 이야기
[Pgday.Seoul 2020] 포스트그레스큐엘 자국어화 이야기[Pgday.Seoul 2020] 포스트그레스큐엘 자국어화 이야기
[Pgday.Seoul 2020] 포스트그레스큐엘 자국어화 이야기
 
Pc용 주요 오픈소스sw 종류 및 이용, 그리고 배포
Pc용 주요 오픈소스sw 종류 및 이용, 그리고 배포Pc용 주요 오픈소스sw 종류 및 이용, 그리고 배포
Pc용 주요 오픈소스sw 종류 및 이용, 그리고 배포
 
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬
 
200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의 200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의
 
140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴
 
코분투메뉴얼 10.04 Cobuntu Manual
코분투메뉴얼 10.04 Cobuntu Manual코분투메뉴얼 10.04 Cobuntu Manual
코분투메뉴얼 10.04 Cobuntu Manual
 
Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기
 
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
 
땅울림 파이썬 스터디 intro
땅울림 파이썬 스터디 intro땅울림 파이썬 스터디 intro
땅울림 파이썬 스터디 intro
 
Hwp in MS Word
Hwp in MS WordHwp in MS Word
Hwp in MS Word
 
찾아가는 Git/Github Seminar
찾아가는 Git/Github Seminar찾아가는 Git/Github Seminar
찾아가는 Git/Github Seminar
 
JetsonTX2 Python
 JetsonTX2 Python  JetsonTX2 Python
JetsonTX2 Python
 
Week2-3 review
Week2-3 reviewWeek2-3 review
Week2-3 review
 
파이썬 소개
파이썬 소개파이썬 소개
파이썬 소개
 
How to use Github? (For Cien)
How to use Github? (For Cien)How to use Github? (For Cien)
How to use Github? (For Cien)
 
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우
 
[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기
[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기
[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기
 
[Hello world]n forge
[Hello world]n forge[Hello world]n forge
[Hello world]n forge
 
파이썬 튜토리얼 (Python tutorial)
파이썬 튜토리얼 (Python tutorial)파이썬 튜토리얼 (Python tutorial)
파이썬 튜토리얼 (Python tutorial)
 

Más de Changwoo Ryu

리눅스 데스크톱의 한국어 입력 개요
리눅스 데스크톱의 한국어 입력 개요리눅스 데스크톱의 한국어 입력 개요
리눅스 데스크톱의 한국어 입력 개요Changwoo Ryu
 
그놈 3.30 번역 모임
그놈 3.30 번역 모임그놈 3.30 번역 모임
그놈 3.30 번역 모임Changwoo Ryu
 
그놈 3.28 번역 모임
그놈 3.28 번역 모임그놈 3.28 번역 모임
그놈 3.28 번역 모임Changwoo Ryu
 
국립국어원 오픈소스 어휘 정보 활용 사례
국립국어원 오픈소스 어휘 정보 활용 사례국립국어원 오픈소스 어휘 정보 활용 사례
국립국어원 오픈소스 어휘 정보 활용 사례Changwoo Ryu
 
날림 학습: 컴퓨터의 시간 처리
날림 학습: 컴퓨터의 시간 처리날림 학습: 컴퓨터의 시간 처리
날림 학습: 컴퓨터의 시간 처리Changwoo Ryu
 
그놈 3.26 번역 모임 2회차
그놈 3.26 번역 모임 2회차그놈 3.26 번역 모임 2회차
그놈 3.26 번역 모임 2회차Changwoo Ryu
 
그놈 3.26 번역 모임
그놈 3.26 번역 모임그놈 3.26 번역 모임
그놈 3.26 번역 모임Changwoo Ryu
 
C/c++ 표준 int 타입
C/c++ 표준 int 타입C/c++ 표준 int 타입
C/c++ 표준 int 타입Changwoo Ryu
 
Hunspell 한국어 맞춤법 검사의 원리
Hunspell 한국어 맞춤법 검사의 원리Hunspell 한국어 맞춤법 검사의 원리
Hunspell 한국어 맞춤법 검사의 원리Changwoo Ryu
 
오픈소스 라이선스 세미나 (2014/07/15)
오픈소스 라이선스 세미나 (2014/07/15)오픈소스 라이선스 세미나 (2014/07/15)
오픈소스 라이선스 세미나 (2014/07/15)Changwoo Ryu
 

Más de Changwoo Ryu (11)

리눅스 데스크톱의 한국어 입력 개요
리눅스 데스크톱의 한국어 입력 개요리눅스 데스크톱의 한국어 입력 개요
리눅스 데스크톱의 한국어 입력 개요
 
그놈 3.30 번역 모임
그놈 3.30 번역 모임그놈 3.30 번역 모임
그놈 3.30 번역 모임
 
그놈 3.28 번역 모임
그놈 3.28 번역 모임그놈 3.28 번역 모임
그놈 3.28 번역 모임
 
국립국어원 오픈소스 어휘 정보 활용 사례
국립국어원 오픈소스 어휘 정보 활용 사례국립국어원 오픈소스 어휘 정보 활용 사례
국립국어원 오픈소스 어휘 정보 활용 사례
 
날림 학습: 컴퓨터의 시간 처리
날림 학습: 컴퓨터의 시간 처리날림 학습: 컴퓨터의 시간 처리
날림 학습: 컴퓨터의 시간 처리
 
그놈 3.26 번역 모임 2회차
그놈 3.26 번역 모임 2회차그놈 3.26 번역 모임 2회차
그놈 3.26 번역 모임 2회차
 
그놈 3.26 번역 모임
그놈 3.26 번역 모임그놈 3.26 번역 모임
그놈 3.26 번역 모임
 
C/c++ 표준 int 타입
C/c++ 표준 int 타입C/c++ 표준 int 타입
C/c++ 표준 int 타입
 
Reprap 소개
Reprap 소개Reprap 소개
Reprap 소개
 
Hunspell 한국어 맞춤법 검사의 원리
Hunspell 한국어 맞춤법 검사의 원리Hunspell 한국어 맞춤법 검사의 원리
Hunspell 한국어 맞춤법 검사의 원리
 
오픈소스 라이선스 세미나 (2014/07/15)
오픈소스 라이선스 세미나 (2014/07/15)오픈소스 라이선스 세미나 (2014/07/15)
오픈소스 라이선스 세미나 (2014/07/15)
 

오픈소스 번역 기여하기

  • 1. 오픈소스 번역 기여하기 그놈 한국어 번역팀 류창우 <cwryu@debian.org>
  • 2.
  • 3. 우리말이 나오는 오픈소스는 ● 물론 누군가 번역한 사람이 있습니다. 아마도 한국인. ● 오늘날 오픈소스는 전세계 모두가 같이 만들어서 같이 씁니다. 특히 번역은 각 언어의 네이티브들의 도움을 받습니다. ● AI가 완전히 대신할 날은 쉽게 안 옵니다. :P
  • 4. 주요 번역 방식 소개: 온라인 ● https://translatewiki.net - 주로 위키미디어 관련 (mediawiki, openstreetmap) ● https://www.transifex.com/ ● https://weblate.org/ ● 각자 pootle 사용 - https://translations.documentfoundation.org/ 등
  • 5. 주요 번역 방식 소개: GNOME ● https://l10n.gnome.org “Damned Lies” ● 세상에는 세 가지 종류의 거짓말이 있다. 거짓말, 빌어먹을 거짓말, 그리고 통 계. ● 번역 "통계" 사이트 - 지금은 번역 제출 기능도 탑재 ● PO 다운로드 & 웹에서 제출
  • 6. 주요 번역 방식 소개: The Translation Project ● https://translationproject.org/ ● 처음에 GNU Translation Project로 시작. 주로 GNU 프로그램들 ● PO 다운로드 & 자동처리되는 메일로 제출
  • 7. 번역 “리소스” ● 진리의 케바케: 여러가지 파일 포맷 ● 온라인 번역: translatewiki, transifex, weblate, pootle ● 리소스 파일을 메일로 전달하기도 하고 github PR로 하기도 하고 다 다릅니다. ● GNOME: https://l10n.gnome.org ● 오픈소스에서 가장 많이 쓰이는 GNU Gettext 포맷을 여기서 다룹니다.
  • 8. ● 1990 Sun에서 최초 개발한 방식을 GNU Gettext에서 사용, 지금은 GNU Gettext 확장된 버전이 사실상 대세 ● 대부분 (아마도 모든) 프로그래밍 언어에서 지원 ● 영문 문자열을 key로 (msgid) 번역 문자열을 (msgstr) 찾아내는 방식. ● 개발자 입장에서 도입 장벽이 낮음 ● 번역자 입장에서 점진적으로 작업해 나갈 수 있음 ● 계속 업데이트되는 긴 문서를 번역할 때도 중간 포맷으로 괜찮음 GNU Gettext
  • 9. Gettext 파일: PO와 MO ● .po 파일은 사람이 편집할 수 있는 텍스트 파일입니다. ● 영문 문자열(msgid)과 번역된 문자열(msgstr)이 들어 있습니다. ● .mo 파일은 .po 파일에서 컴파일한 바이너리 형식 해시테이블입니다. ● 앱에서는 .mo 파일에서 번역 문자열을 찾아봅니다.
  • 10. 별로 알 필요 없는 내부 구조 /usr/share/locale/ko/LC_MESSAGES/hello.mo setlocale(LC_MESSAGES, ""); bindtextdomain("hello", "/usr/share/locale"); textdomain("hello"); ... greeting_msg = _("Hello, world!"); $ LANG=C hello Hello, world! $ LANG=ko_KR.UTF-8 hello 안녕하세요, 여러분! $ env LANG=ko_KR.UTF-8 TEXTDOMAINDIR=/usr/share/locale gettext hello "Hello, world!" 안녕하세요, 여러분!$
  • 12. 일반적인 작업 과정 ● 앱 개발자/관리자가 소스코드에서 영문 스트링을 추출해 영문 스트링만 들어 있는 PO 파일을 (.pot) 만듭니다. ● 새로 번역하는 경우 번역자가 이 .pot 파일을 .po 파일로 만들어서 편집합니다. ● 기존 번역이 있는 경우 msgmerge 프로그램을 사용해 .pot 파일과 기존 .po 파 일에서 추가된/바뀐 문자열을 포함한 새 .po 파일을 만듭니다. ● 번역자는 .po 파일에 번역을 추가/업데이트해 제출
  • 13. 그래서 PO 파일을 기여하려면.. ● 배포하는 .pot (번역이 없으면) 또는 .po (있으나 업데이트해야 하면) 파일을 찾 습니다. 또는 파일을 만드는 방법이 안내되어 있을 수도 있습니다. ● 폭풍 번역 & 제출
  • 14. PO 편집 시작 ● 형식에 맞춰 써야 합니다. 전용 편집 프로그램 또는 모드/플러그인이 필수적 ● POEdit, Emacs po-mode, VIM po.vim
  • 15. 헤더 엔트리 ● 관리를 위한 정보 및 중요 메타데이터가 들어 있습니다. ● Content-Type 및 Plural-Forms 중요msgid "" msgstr "" "Project-Id-Version: gnome-control-centern" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "control-center&keywords=I18N+L10N&component=generaln" "POT-Creation-Date: 2016-08-30 15:17+0000n" "PO-Revision-Date: 2016-09-03 20:05+0900n" "Last-Translator: Changwoo Ryu <cwryu@debian.org>n" "Language-Team: GNOME Korea <gnome-kr@googlegroups.com>n" "Language: kon" "MIME-Version: 1.0n" "Content-Type: text/plain; charset=UTF-8n" "Content-Transfer-Encoding: 8bitn" "Plural-Forms: nplurals=1; plural=0;n"
  • 16. 엔트리 ● 전용 에디터를 쓰면 알 일이 없겠지만… ● 번역자는 번역 문자열 및 코멘트만 추가할 수 있습니다. # 모니터 이름, Primary-Secondary #: ../panels/display/cc-display-panel.c:578 #: ../panels/display/cc-display-panel.c:2429 msgid "Primary" msgstr "주요"
  • 17. 엔트리 (계속) ● 문맥 문자열(msgctx)이 들어 있을 수도 있습니다. #: ../shell/cc-window.c:872 msgctxt "category" msgid "Hardware" msgstr "하드웨어"
  • 18. 고급: 복수형 한국어는 복수형 구별을 하지 않습니다. msgid "%i day ago" msgid_plural "%i days ago" msgstr[0] " %i일 전"
  • 19. 고급: 포맷 문자열 ● 해당 프로그래밍 언어의 지식이 필요한데, 번역하면서 익숙해지면 됨. #, c-format msgid "%d of %d" msgstr "%2$d개 중 %1$d"
  • 20. 번역이 끝나면.. ● msgfmt -v 명령으로 확인합니다. ● 전용 에디터에는 내장되어 있음. $ msgfmt --statistics -c -v -o /dev/null ko.po ko.po: 번역된 메시지 1497개. $
  • 21. ko-po-check ● https://github.com/changwoo/ko-po-check/ ● 추가로 한국어 번역을 확인하는 프로그램 ● 자주 틀리는 관례, 용어, XML 포맷 실수 등등.. ● 잡아낸 게 모두 문제라는 뜻은 아니고, 모든 걸 잡아내지도 못합니다. :) $ ko-po-check ko.po ko.po:1775: 바로 가기: "link"은(는) "링크"(이)라고 번역하길 제안합니다 ko.po:4654: 인쇄 작업 보기(_J): "Show ..." 형태는 "... 보이기(표시)" 형태와 같이 번역합니 다 ko.po:5583: Mouse: 검색어가 중복되어 있습니다 $