KDE Translation Howto
The KDE Translation HOWTO ¶Thomas Diehl
Nicolas Goutte
Rewrite of the doc-translation part: Frank Schütte
Update of the GUI-translation part: Arash Zeini
Revision 2.0.08 (2005-09-13)
조성재 번역 (jachin)
Copyright © 1999-2002 Thomas Diehl
Copyright © 2005 Nicolas Goutte
이 번역자들의 Howto는 번역팀 관리자, 새로운 번역자, 그리고 KDE 번역에 대해 관심이 있는 분들을 위해 쓰여졌습니다. 이 문서는 새로운 언어를 KDE에 도입하는 방법과 더불어 그래픽 인터페이스, 온라인 도움말을 비롯한 KDE 관련 텍스트들이 실제 어떻게 번역되고 있는지를 개략적으로 설명합니다. 번역을 실제로 하는 과정에서 요긴하게 사용할 자원들에 대해서도 상세하게 살펴봅니다. KDE 소스를 컴파일 하는 방법, SVN를 사용하는 방법 등 여타 중요한 내용은 문서 전체에 걸쳐 참고할 책이나 주소를 적어 놓았습니다.
이 문서의 현재 HTML 버전은 i18n.kde.org/translation-howto 에서 볼 수 있으며, 이외에도 여러가지 형식으로 다운로드 받으실 수 있습니다. http://i18n.kde.org/sitedoc.html 을 참고하세요. 이 문서에 대한 커멘트나 교정, 덧붙일 내용이 있으면 kde-i18n-doc 메일링 리스트에 보내주세요. (역자주 : 현재 개인적으로 번역하고 있으니, 위키에서는 개인적으로 고쳐주시면 되겠습니다.)
1. 소개 ¶경고
추상적으로 이 Howto 문서는 KDE 번역에 관심이 있는 분들을 위한 것입니다. 문서를 번역하는 작업에 대해 특별한 허가나 능력이 필요한 것은 아닙니다. 프로그램을 제작하는 것과는 대조적으로 문서 번역 프로젝트는 프로그래머가 아닌 일반인들도 참여할 수 있는 것입니다.
이 문서는 여러가지 요인(버전관리 시스템을 CVS 대신 SVN 으로 쓰는 경우, 새로운 i10n 모듈의 사용, 새 이름이나 새로운 쓰기 관습 등)으로 버전이 일치하지 않는 경우가 있습니다. 이곳에 있는 문서 내용의 번역을 어떻게 해야 하는지 모르겠다면 i18n-doc 메일링 리스트에 요청하시기 바랍니다. 새로운 언어로 KDE 번역을 하기 위한 것들, GUI 환경의 번역, 온라인 문서등의 번역등을 이 문서에서 다룹니다. KDE 웹 사이트, 버그 리포트와 사용자 입력에 대한 번역은 별도로 다룹니다. 또한 KDE 지역화에 대한 영역도 일반 OS 번역에 대해 다루는 www.li18nux.org 에서 찾으실 수 있으실 것입니다.
문서를 통해 정확하게 i18n(internationalization)과 l10n(localization)을 구별하여 다루지 않겠습니다. 실제로 KDE 에서 "i18n"은 "번역과 관련된" 기본적인 의미를 가지고 있으며 "l10n"은 통화기호, 단위, 특수기호등의 "지역적인 설정"(KDE의 제어판으로부터 선택할 수 있는 모든 것들)을 다루는 것을 말합니다. 실제 의미의 간략한 설명과 개발자 측면에서의 설명을 보기 원하시면 developer.kde.org/documentation/library/kdeqt/kde3arch/kde-i18n-howto.html 을 보시기 바랍니다.
이 Howto는 대부분 "Quick start" 형식의 문서로 실제 번역에 필요한 기초적인 내용을 제공합니다. KDE 문서에서 사용되는 DocBook의 내부 동작에 대한 것들과 같이 복잡한 영역의 설명은 이곳에서 할 수 없습니다. 다만 외부 용어는 관련 설명을 제공합니다. DocBook에 대한 이해가 문서 번역과 거의 밀접하기 때문에 같은 주소인 kde-i18n-doc@kde.org 로 메일링 리스트를 같이 쓰고 있습니다. 기술적인 주제로 Docbook과 관련된 내용의 메일링 리스트를 얻고 싶으시다면 kde-docbook@kde.org 를 사용하십시오. 또한 문서 작성과 관련된 메일링 주소로 아직까지 kde-doc-english@kde.org 주소가 사용되고 있습니다.
개인적인 번역팀에서 이 문서에 대해 번역을 하는 것에 대해 문의를 하는 경우가 많습니다. 자유롭게 생각하고 번역하시기 바랍니다. 다만 KDE는 급격하게 변하기 때문에 KDE 에 대한 최신의 DocBook 을 번역에 사용하시고 확인하여 주시기 바랍니다. 새로운 버전에 대한 공지는 번역자, 개발자 메일링 리스트로 전달될 것입니다. 이 문서에 대해 변경된 점은 DocBook과 연결되어 있지 않기 때문에 긴 공백이 있을 것입니다. 다음 섹션을 보십시오.
건설적인 피드백이나 배포는 물론 대환영입니다. kde-i18n-doc 메일링 리스트에 이메일을 보내주시고 여기서 무엇을 하고 싶으신지 알려주세요.
2. KDE에 새로운 언어 제안하기 ¶제일 먼저 해야 할 것
무엇이든 하시기 전에 번역자나 문서작성자에 대한 메일링 리스트를 얻으십시오. (웹페이지나 kde-i18n-request@kde.org 에 subscribe 라는 제목으로 메일을 보냄으로써 얻을 수 있습니다.) 이 메일링 리스트는 lists.kde.org에서 전달됩니다. 두번째로 KDE 언어의 목록과 번역팀 운영자를 찾으십시오.
목록에 당신의 언어가 있는지에 따라 해야 할 것이 다릅니다.
사용 가능한 리소스와 SVN 을 검색하기 ¶
이 문서의 문단을 쓰고 있는 시점에서도 설명할 수 없는 KDE 프론트앤드 그래픽 SVN 프로그램들이 있습니다. (특수한 릴리즈되지 않은 Kbabel의 개발버전과 새 SVN 지원 제공의 Cervisia 등...) 컨커러에서 몇몇 SVN 기능을 갖춘 (kdesdk 모듈의 일부인) KIO slave는 SVN에만 지원합니다.
실제 번역 시작하기 ¶GUI 환경에서 번역을 시작하면 K바벨을 UTF-8로 설정해놓고 사용하는 것이 더 좋습니다. 먼저 kdelibs.pot 파일을 번역합니다. 왜냐하면 그 내용이 KDE 응용프로그램 전반에 걸쳐 퍼져있으며, 표준 메뉴의 텍스트를 제공하기 때문입니다. K 메뉴에서 stuff에 대한 응답을 하는 desktop_kdelibs.pot 와 desktop_l10n.pot 를 계속하십시오. 그 다음 kdebase에 있는 응용프로그램으로 가십시오. 이것을 어떻게 해야 할지에 대한 전체적인 설명을 3장. GUI 번역에서 찾을 수 있을것입니다. 그러나 다음 목록에 있는 중요한 단계들을 잘 보는것이 문제가 생기지 않을 것입니다.
지역화에 대한 화제 ¶여기엔 번역과는 관련 없지만, 번역팀 팀장에 의해 결정되어야 하는 몇가지가 있습니다. 만약 동시에 새로운 언어가 새 국가에 대한 여러가지 내용 표시한다면, 가장 중요한 한가지는 기본 "지역화" 주제에 대한 관심입니다. 이러한 경우, 그 나라에서 통용되어 사용되는 국가, 날짜 형식, 시간, 숫자, 주소와 함께 국기와 다른 몇가지 설정을 KDE와 함께 공급할 수 있다면 이것이 정확합니다. 이 정보는 kdebase 패키지의 "l10n" 디렉터리에 저장되고 KDE 전역에서 사용됩니다만 제어센터의 데스크탑 부분에서는 특별히 쓰이지 않습니다.
주의 다시 강조: 이 부분은 국가와 관련된 것이지, 언어와는 관계가 없습니다. 따라서 여러분의 언어가 여러분의 국가에서 "공식" 언어가 아니라면 아마도 이것에 관해 걱정하지 마십시오.
팁
심지어 여러분의 언어가 국가의 공식 언어가 아니어도, 특정 국가와 관계되거나 몇몇의 국가와 약간의 연관이 있을 것입니다. 이 국가에 대해서 여러분의 국가 항목이 존재하는지 확인하고 때때로 빠진 항목을 추가하면 좋을 것입니다. 이것은 한 국가의 공식언어가 그 나라에서 통용되는 관습을 따르지 않으면서 다른 국가에서 사용될 경우, 즉 영어나 프랑스어와 같이 여러 지역에서 사용되는 경우에는 특별히 중요합니다. 물론 몇몇 언어를 같이 공용해서 사용한다면, 다른 언어팀 번역가가 그 국가에 대한 항목에 동의하는 것이 적절합니다.
주의
불행하게도, 만약 한 국가에서 다른 사용자가 한 언어에 대해 다른 설정을 사용한다면 이것은 KDE에 정확히 반영할 수 없습니다. 이것은 특별히 각 언어지역에 대한 정확히 번역된 철자법에서 "P.O. Box"를 표현할 수 없는 스위스나 벨기에 같은 국가에 대해서는 특별히 중요합니다. 만약 정말 필요하다면, KDE를 해킹할 수 있으며, 아직도 완벽하지 않은 국가에 대한 설정이 언어에 종속될 것입니다. (예로 제네바 P.O. box 에 대한 문자가 스위스의 프랑스어 사용 지역에선 항상 "Case Postale"인 반면, 독어를 사용하는 스위스 취리히 지역에선 "Postfach" 이 될 것입니다.)
kdebase/l10n 안의 디렉터리들은 국가에 대한 것이지, 언어에 대한 것이 아닙니다. 따라서 코드들은 다른 의미를 가지고 있습니다. (심지어 예를 들어 프랑스어와 프랑스가 같은 코드인 fr을 공유합니다.) 국가에 대한 코드는 ISO 3166에 지정되어 있습니다. (위키피디아의 ISO 3166의 2문자 코드에 관한 기사를 보십시오.)
여러분의 국가에 대한 필요에 대해 KDE 지역화를 위해서, 여러분은 다음과 같은 것들을 해야 합니다.
이 문서 이후 진행해야 할 방향 ¶이 부분은 실제 번역, 팀작업, 인프라 스트럭쳐 등 몇몇 번역팀에서 입증된 도움이 될만한 힌트와 팁의 모음입니다. 여러 부분들에 대해 이 참고들을 실행하려 한다면 주의깊게 보길 바랍니다.
이 부분의 많은 것들은 한 방법 혹은 다른 방법으로 일관성을 갖고 실행되어야 합니다. 이것은 가능한 통일되게 보여야 하는 데스크탑 시스템에 대한 주요 고려대상입니다. 동일하게 모든 프로그램들은 GUI와 문서 번역에서 같은 번역 용어를 사용해야 합니다. 동시에 KDE와 같은 프로젝트에서 작성자와 번역자에 대한 최대 도전 중의 하나는 이 통일성의 한 종류를 이루는 것입니다. 이 부분에서 언급되어야 하는 무엇인가를 생각했지만, 찾지 못했다면 kde-i18n-doc 메일링 리스트에 요청해 주십시오.
당신의 작업에 대한 인증 얻기 ¶자유 소프트웨어의 사람들 대부분이 아무런 댓가 없이 작업을 잘 해줍니다. 게다가, 그들은 작업의 몇몇 지식을 보기를 좋아합니다. KDE 번역에서 당신의 작업이 다음의 방법으로 알려질 수 있습니다.
도움말 메뉴에서 "정보" 상자에 대한 고려와 함께 번역자의 이름과 이메일 주소를 각각의 PO 파일에서 다음의 문자열을 채움을써 얻고 있습니다. #: _translatorinfo.cpp:1 msgid "" "_: NAME OF TRANSLATORS\n" "Your names" msgstr "" #: _translatorinfo.cpp:3 msgid "" "_: EMAIL OF TRANSLATORS\n" "Your emails" msgstr "" 만약 번역자가 여려명이면, 공백없이 콤마로 구분하여 만들어 주십시오. (예: 번역자1,번역자2,번역자3) 이메일 주소도 마찬가지의 방법으로 해주십시오. 이메일 주소를 모른다면 영역을 비워두십시오. (예: 주소1,,주소3) 다음과 같이 쓸 수 있습니다. #: _translatorinfo.cpp:1 msgid "" "_: NAME OF TRANSLATORS\n" "Your names" msgstr "Translator One,Translator Two,Translator Three" #: _translatorinfo.cpp:3 msgid "" "_: EMAIL OF TRANSLATORS\n" "Your emails" msgstr "translator.one@some.domain,,translator.three@another.domain" 번역된 문서의 인증 부분에 있는 정보에 대해서는 각 step-by-step 설명을 보십시오. 3 장. GUI 번역 ¶당신의 작업을 확인하고 전달하기
POT 파일들과 PO 파일들 ¶번역에 대한 템플릿을 제공하기 위해, 프로그램의 영어 메뉴와 대화상자 텍스트가 .pot 확장자를 갖는 텍스트 파일에 저장되어 있습니다. (.po는 "Portable Object(이식가능한 객체)"를 뜻하며 .pot는 "PO Template"에 대한 약자입니다.) POT와 PO가 어떻게 생겼는지 예제를 보기 위해 여러분은 디렉터리 구조에 대한 다음의 지역 정보를 읽고 난 후 웹SVN에 방문해보는 수고를 해보길 바랍니다.
표준 템플릿이나 "POT 파일"로부터 번역팀은 그들의 각각의 언어에 대해 단순히 텍스트 에디터나 특별한 PO 번역 프로그램에 anyfile.pot 를 불러오고 다른 디렉터리에 anyfile.po 로서 저장하는 것으로 PO 파일을 생산합니다. 만약 예를 들어 사용자가 "독일어"나 "아이슬란드" 를 표준 언어로 선택했다면, 주어진 파일에 대해 파일 내의 문자열을 번역한 후, 이 PO 파일들은 메뉴와 대화상자 텍스트를 포함할 것입니다. 정확하게 하기 위해, 컴파일 하는 동안 PO로부터 MO("Machine Objects", 장치 객체)파일을 만드는 즉석 단계가 있습니다. 그러나 이것은 번역자가 일반적으로 걱정을 필요로 하는 것이 아닙니다. 적어도 PO 파일을 작업하는 것보다는 길지 않은 정확한 형식 의 작업입니다. 3장의 처음 설명 부분을 보십시오. 모든 원본 문서로 알려진, 영문 PO를 각 프로그램 패키지의 하위 폴더에서 찾을 수 있습니다. POT 파일들과 모든 번역들은 l10n 으로 불려지고 각 패키지를 나타내는 분할된 KDE 디렉터리에서 찾을 수 있습니다. 포함된 것들은
GUI 번역에 대한 할 일(To-do) 목록 ¶어떤 프로그램이 아직 번역되지 않았는지 알아내는 방법엔 크게 두가지가 있다:
위에 언급한 통계 페이지는 정보가 서브버전 브랜치, 번역 팀, 패키지 이렇게 세 레벨로 구성되어 있다. 패키지 레벨에서는 각 .po파일의 "퍼지"의 양에 대한 세세한 정보를 얻을 수 있다. "퍼지"가 있는 .po파일은 번역작업을 더 해야하는 파일들이다. "퍼지"(Fuzzy)란 번역에 대한 물음표 같은 것이다. The above mentioned statistics page organizes the information at three levels: SVN branch, translation team and package. At the package level you will find detailed information about the amount of fuzzies in each .po file. The .po files with fuzzies are the ones in need of a revision. "Fuzzy" is like a kind of question mark for the translations. These are sections which have been marked by an automatic checking routine (in msgmerge) as "suspicious" which means something to the effect of: "Please check this translation again because the original has changed". An overview of how the language teams are doing is provided on the Translation statistics by team for HEAD branch. Based on the data on essential packages the decision is made which languages will be part of a KDE release and which are not. (Normally, around 90% of kdelibs.pot, 100% of desktop_kdelibs.pot and desktop_l10n.pot and around 75% of kdebase should be translated in order to get into a release.) Step by Step: POT 와 PO 파일들의 번역 ¶General material on the subject can be found in the Info pages for the
Gettext package. For a basic understanding of what is expected in KDE
translation it follows a description of how the handling of POTs and
POs looked like before it was done with specialized programs like
KBabel:
msgid ""
msgstr ""
"Project-Id-Version: Some Program\n"
"POT-Creation-Date: 2005-08-23 02:43+0200\n"
"PO-Revision-Date: 2005-08-28 12:25+0200\n"
"Last-Translator: Somebody <null@kde.org>\n"
"Language-Team: Some Language <kde-i18n-doc@kde.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
A sample header could look like this: If you are working with a text editor do not remove the initial "msgid
/ msgstr". Otherwise, the compilation will terminate with a parse
error. On the other hand, you should remove the "fuzzy" which is
initially there.
#: kedit.cpp:90 kedit.cpp:1071
msgid "Show &Status Bar"
msgstr ""
The entries for Content-Type and the Transfer-Encoding are not relevant at the moment. But the charset should be set to UTF-8 in this case, i.e. 8bit Unicode Transfer Format. The actual translation would look as follows. The original line: ...you would translate like this (assuming you were translating it to
German):
#: kedit.cpp:90 kedit.cpp:1071
msgid "Show &Status Bar"
msgstr "&Statusleiste anzeigen"
And from the incorrect:
#: ReniceDlg.cpp:31
#, fuzzy
msgid "Renice Process"
msgstr "Laufende Prozesse"
...you would produce the correct translation:
#: ReniceDlg.cpp:31
msgid "Renice Process"
msgstr "Neue Prozessprioritaet"
After the corrections have been done you need to delete the "fuzzy"
tag. Otherwise, the corrected string will just be ignored during
compilation.
#~ msgid "Where do you want to go tomorrow?"
#~ msgstr "Where do you want to go tomorrow?"
#~ msgid "No comment available"
#~ msgstr "Keine Erklung verfbar"
Finally there might be lines at the end of the file beginning with "#~" like this: These lines have been commented out, usually because they are no
longer used by the program and should be deleted from time to time in
the interest of disk space and bandwidth. Once more, KBabel, for
instance, does this automatically.
For any other questions on this topic you are once more advised to look at the Info pages for the GNU gettext package (see the KDE on-line help). 특수성과 차이점 ¶Caution
This document is missing a discussion about the KDE-specific handling
of plural, which differs from the standard Gettext way of handling
plurals. For information on the latter you still have to refer to the
respective threads in the translators mailing list, mainly plural
handling and plural handling again.
#: kdeui/kstdaction.cpp:669
msgid ""
"_: beginning (of line)\n"
"&Home"
msgstr "&Dateianfang"
We already mentioned that the characters "#" and "~" have special meaning. A few other things to watch out for are the following:
#: src/kernel/qaccel.cpp:562
msgid ""
"_: QAccel\n"
"Home"
msgstr "Pos1"
GUI 번역에 대한 특별한 프로그램을 사용하기 ¶There are several packages to assist you with practical GUI
translation. They automatically search fuzzy or untranslated strings,
present you with possible or comparable translations for a given
string, and perform syntax, spell and other checks to ensure that the
files will work correctly. At the moment, KBabel is the only one that
can really be recommended, however, especially since it is the only
one that handles Unicode encoded files without problems.
KBabel ¶Developed by Matthias Kiefer and maintained by Stanislav Visnovsky.
The recommended package for GUI translation for the time being.
==== (X)PO Mode의 Emacs====
As of version 1.0 its contents and capabilities can be described as follows:
For ways to set this PO mode up with GNU Emacs, see the comments in
the file po-mode.el that comes with the GNU gettext package. It also
works with XEmacs if you set it up like this:
For what is needed to make Emacs work with Unicode files see http://www.cs.uu.nl/~otfried/Mule/. (Most info in the Emacs section thanks to Matthias Kiefer.) 작업을 확인하고 인증받기 ¶Please, never commit a PO file to the SVN source tree without at least
validating its syntax. Please also do the other checks described in
this section. And do not forget about your spell checker.
Syntax Check: msgfmt --statistics --check ¶msgfmt --statistics --check /path/to/translated/files is the absolute
minimum check you have to do on every file that you are about to send
to your coordinator or to commit directly to SVN. What it does is give
you either the number of (un)translated strings or the location and
the nature of any formatting errors in your translated files. --
"msgfmt" (in case you are wondering) is part of the GNU gettext
package.
Some specialized programs like KBabel will assist you with this. KBabel even contains an automated syntax check (among others) that saves you a lot of the work. msgfmt --statistics --check is also automatically run by a daily script on the i18n server over all PO files. So far, its output has been forwarded manually to the translation teams by the i18n coordinator. In the near future, the output will be directed to the KDE bug tracking system. You can spare yourself a lot of administrative work if you keep this from happening. And you can do this very easily ? you guessed it ? by testing all your PO files yourself before committing them. 변수의 부재나 다른 문제점을 확인하기 ¶Apart from syntax checks you also have to ensure that there are no
problems in the following areas:
컴파일, 내용과 단축키 확인 ¶To be able to check the translated packages in the context of the
program interface, you have to generate the "(G)MO" files we mentioned
above. This is accomplished by compiling the sub-folder of the l10n
package appropriate to the translated language:
Tip
If you are using unsermake instead of automake, then replace make by
unsermake, so the full command becomes: ./scripts/autogen.sh &
./configure && unsermake && unsermake install
In case there are any error you may want to try ./configure & & make -k; make -k docs; make -k install. With the -k parameter files and directories that do not compile are skipped. For more on this subject, see the info in the HOWTO section. After this it should be possible to choose your language and to see your translation in the program interface (assuming you compiled the program also). Now you can start your context checks: Go through all menus and dialogs and check if all your translations make sense in their real environment. Make ready for some big surprises. Then correct your PO file, recompile and check again. These context checks are often neglected due to tight release schedules. But everybody who has seen how unprofessional and even ridiculous a whole program can look if it has a lot of out-of-context information in its menus will agree that these checks are among the most important things in the whole translation process. Another test that can only be done after the translated program has been compiled is the check for "accelerator clashes". As pointed out earlier, the "&" character in PO files is used to mark "accelerator keys" (a letter which in combination with Alt or Alt Gr (on PC keyboards) will execute a command). Program authors and Translators have to make sure that no accelerator key shows up twice in the same menu (e.g. that there's not something like "&Save" and "&Save as" but maybe "&Save" and "Save &as" ). In other words: you have to prevent "accelerator clashes". Accelerator clashes can be checked via KBabel as well. Committing Your Work to SVN ¶After having checked their work, most translators will sent their
completed translations to their language coordinator. The coordinator
will usually check again and then commit their files to the main SVN
server at svn.kde.org.
Note
The necessary information on SVN and its graphical frontends is given in the section Taking a Look at Available Resources and SVN, including some hints about the commands and parameters needed. You cannot commit a file if the SVN server has a more recent revision
of the same file. In that case, you will probably need to use svn
update to get the new version. SVN will merge it for you. You should
check the result, as SVN merges only tet files; it has not any idea
about the syntax of a PO file. In some cases, you will get conflict,
which you will need to fix (technically this is called "resolve").
SVN Conflicts ¶One thing to watch out for are version conflicts. When you update
files by SVN, SVN will try to merge changes, if there are changes on
both your local version of a file and the version of the SVN verver of
that file. SVN only merges text lines and this works normally well.
But not always...
Date: Wed, 05 Jan 2000 15:33:17 +0100
From: Stephan Kulow <coolo@kde.org>
To: kde-i18n-doc@master.kde.org
Subject: Re: Errors?
One kind of problems could be that the resulting file is not a valid PO file, as SVN has not any idea about the syntax of PO files, as for SVN, PO files are just a text files. Another, more serious kind of problems is called a conflict. In that case, SVN gives up the merging, telling that it could not merge, as both the local change and the change of the server are on the same lines of a file. SVN remember that a conflict has happened and will refuse to commit the file until you have told SVN that the conflict was fixed. In case of conflicts in text files, SVN tries to be helpful and puts special marks (lines with <, = and > characters) to help the user to see what are the conflicting change. It is your task as user to resolve (i.e. fix) the conflict. In the case of binary files, SVN cannot offer such a service, to avoid to corrupt the file. For example: Marko Rosic wrote:
Depends. The portion between <<<<< and ====="=" is your version and the one between ===="=" and >>>>>> is the one in CVS. I would say merge themmsgid ""msgstr "" <<<<< kdelibs.po "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 1999-12-06 00:59+0100\n" "PO-Revision-Date: 1999-12-30 20:22+0100\n" "Last-Translator: Strahinja Radi <E6> <rstraxy@sezampro.yu>\n" "Language-Team: Serbian <LL@kde.org.yu>\n" ======= "Project-Id-Version: kdelibs\n" "POT-Creation-Date: 1999-12-30 00:53+0100\n" "PO-Revision-Date: 1999-08-23 12:57+0100\n" "Last-Translator: Marko Rocic <roske@mainstream.co.yu>\n" "Language-Team: Serbian <sr@li.org>\n"1.21"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-2\n" "Content-Transfer-Encoding: ENCODING\n"What does this mean? Which do I need to delete?
Greetings, Stephan
Note
The example above come from the time KDE used CVS and is embeded in an
email. But it could happen with SVN too, in a very similar way.
Note
Probably you wonder now how to solve such a problem. Normally you can try to solve it by using your normal tool, e.g. KBabel. But sometimes, this is not possible and you need to use a text editor, e.g. Kate. An easy way of removing a conflict is to revert the file by the command svn revert. Another is to use one of the auxilary file screated by the update with have file names starting by the file name of the conflicting file. You can simply copy the version that you find correct instead of the file with a conflict. When you have fixed the conflict, you need to tell SVN that you have fixed the conflict, so that SVN will allow you to commit the file. This can be done easily by svn resolved. (If you have chosen to revert the file, this step is not necessary, as SVN has already done it implicitely.) Conflicts might appear often with PO files automatically merged by
Scripty. Here a good solution is to keep working on the local version
(so copy the corresponding file over). (Scripty will again work during
the next European night and morning.)
Chapter 4. Doc Translation ¶Table of Contents
General Requirements for Doc Translation POT and PO Files Used for Documentation To-do Lists for Doc Translation Step by Step: The Translation of Documentation Files Peculiarities and Difficulties Checking and Committing Your Work Checking the Markup and the Spelling
What to Do with Translated and Corrected Documentation?
The bulk of information on KDE documentation is of course being
provided by the KDE documentation team, especially their coordinator
Lauri Watts. Please have a look at their web pages at
http://i18n.kde.org/doc/.
General Requirements for Doc Translation ¶The documentation and online-help for KDE programs are written now
entirely in XML? (eXtensible Markup Language) DocBook. DocBook is a
widely used standard for technical documentation.
A major advantage of DocBook is the capability of the conversion from one markup to another one, for example to HTML or PostScript. If you ever happened to work with a markup language like HTML or LaTex then DocBook will be no problem. If not, you will probably need to get at least a basic understanding of these markup languages. Further information is provided in the next sections. The software requirements are about as follows:
POT and PO Files Used for Documentation ¶This is meant as a short overview of the peculiarities of those file
formats in the process of doc translation -- basically, you already
know them from the part on GUI translation.
Caution
The files that have to be translated are in Unicode UTF-8 format with the extension .pot and .po. But this is only for the convenience of translators. Originally, the English documentation is included in DocBook files (see above). Once the documentation author commits a documentation to the SVN, the program xml2pot extracts the translatable strings from the file. It then writes those strings to a POT file. Basically, the resulting POTs do not differ too much from what you already know from the GUI files. The next paragraph is outdated. The update_xml must be run by hand to
create the translated DocBook documentation file.
The English POT file is the common ground for the translation teams which produce for each POT file one PO for their language. These localized PO files provide the translated strings, from which the program po2xml produces the translated DocBook file. po2xml is regularly run on the i18n.kde.org server. If a KDE user eventually has set the standard language in KDE to for example "German" or "Icelandic" and opens the KDE help center, this translated DocBook files are processed by the help ioslave from Stephan Kulow and the resulting HTML files are shown on screen. The automatic generation of the translated DocBook files by po2xml require the PO files to be syntactically correct. You can find the English DocBook documentation in subdirectories of the source code for the corresponding package. The POT files and the translated PO files and DocBook files for all languages are located in the KDE package named kde-i18n. For the package "EXAMPLE" you will find
To-do Lists for Doc Translation ¶Claudiu Costin has built scripts for a daily documentation statistic.
This page gives an overview of the existing documentation for your
language and the status (i.e. outdated, current...). This statistics
does currently contain only documentation that was at least at some
time completely translated ? simply because this statistic does
compare DocBook files. These files are generated by po2xml only if the
corresponding PO file contains no fuzzies and untranslated strings.
If you have the l10n sources for your language on your computer then the Catalog Manager of KBabel contains considerably more information. Another important point is to not duplicate the work of somebody else. It may be useful to split the work so that for each package one person (and only one) is responsible. Usually, it is the job of your language coordinator to organize this part. So you should better not start to work before you have checked with your language coordinator. There is another item to check for: Before translating you should contact the author of the English original documentation to make sure there is not going to be a major new revision in the near future. By doing this you make sure your work is not obsolete. Step by Step: The Translation of Documentation Files ¶In the following we assume that you are somewhat familiar with the
structure and syntax of DocBook files. For further information on this
format please have a look at the pages of the documentation team.
Important
Generally speaking, you should just install KBabel and translate the PO file as already explained in the GUI section of this HOWTO. (Additionally you need the current version of the directories l10n/templates/docmessages/, l10n/$LANGUAGE/docmessages/, l10n/$LANGUAGE/docs/ and l10n/documentation/(PACKAGE)/doc/ from SVN): Since things keep changing (standards, formats, etc.) it is important
to join the translators mailing list and to watch out for the
announcements there.
Important
You should use the KDE standard design for the screen shot. Unfamiliar
looking screens may confuse the users.
Caution
Important
Screen shots are not allowed to be in GIF format. They must be in PNG
format. More information on this topic can be found here.
For more information about PO files and their translation see the respective section in the GUI chapter. Peculiarities and Difficulties ¶First, the answers to some frequently asked questions and a piece of
advice:
"... volume of your"
sound card."
would otherwise become:
... volume of yoursound card.
In addition to the role of "#" and "~" (explained above) there are a
few more peculiarities:
msgid "CREDIT_FOR_TRANSLATORS"
msgstr ""
"<para>Translation FIRSTNAME1 LASTNAME1 "
"<email>EMAILADDRESS1<email></para>"
"<para>Correction of the Translation FIRSTNAME2 LASTNAME2 "
"<email>EMAILADDRESS2</email></para>"
and
msgid "ROLES_OF_TRANSLATORS"
msgstr ""
"
instead of
"... role="translator"...
KBabel helps with this because if you hit the quotation mark key
on the keyboard KBabel actually inserts a backslash before the
quotation mark automatically.
What else to watch out for in the translation process?
<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
Organization and syntax:
and
<!-- TRANS:ROLES_OF_TRANSLATORS -->
This are XML comments and are not displayed in the English
documentation. split2po however generates msgids for this two
comments and po2xml fills the msgstrs into the translated
doucmentation. This feature can be used to fill in more paragraphs
that are only needed for the translated documentation. Every
comment in the English documentation, that is of the above form
leads to a msgid.
Important
You have to watch out for the correct markup, so that your
translated msgstr fits into the context.
Style:
Checking the Markup and the Spelling ¶There are two items to check if you finished translating a
documentation, namely spelling of the words and syntax of the XML?
markup.
update_xml de kdemultimedia
or the German translation application aktion:
update_xml de aktion
update_xml automatically calls the XML? parser meinproc with
the option --check, which makes it validate the generated
XML? document. If the parsing process fails, it will tell you
the line numbers and error messages.
Note
If meinproc fails then update_xml will automatically remove
the file with errors. That is for safety to ensure that the
DocBook files for every language compile. Sometimes this
feature prevents you from finding errors, since the error
messages print the corresponding line numbers in the docbook
file and you are not able to check the context because this
file is automatically deleted. Therefore the option
--nodelete was recently added by Stephan. But keep in mind
not to check this file with errors into the SVN tree or else
your language will fail to compile until this file is removed
or corrected.
+ If you do not have the above requirements you may call po2xml
<!ENTITY % English "INCLUDE" ><!-- change language only here -->
yourself and generate the docbook file. For this to work
po2xml needs the English docbook file (usually located in the
doc/ subdirectory of the package containing the program with
the name index.docbook) and the translated PO file. The
syntax is: po2xml English.docbook translated.po
translated.docbook This generates the translated.docbookfile. In the header of the generated file you have to specify your language, i.e. if your language was "German" change the line like this:
<!ENTITY % German "INCLUDE" ><!-- change language only here -->
Now that you generated the docbook file for your language you
can check that the syntax is correct and all used entities
(i.e. &kapp; etc.) can be resolved correctly.
Important
It is not enough that the docbook file can be displayed more
or less correctly by the KDE help center, because the parser
there is optimized for speed and does not check the
correctness of the XML? document. It is very generous in
ignoring markup errors and the like.
Instead use the XML? parser meinproc from Stephan Kulow. The
calling syntax is meinproc --check translated.docbook If the
parsing process fails it will tell you the line numbers and
error messages. You can use this application for generating
HTML files, too. Just call meinproc translated.docbook and
you will find a bunch of HTML files in the current directory.
The file index.html is the starting point for browsing the
documentation.
As for proof-reading: Each language team needs to have a certain
procedure for error checking. In the German team for instance we
decided on proof-reading the documentation by a different team member
because the translator tends to overlook the own spelling errors.
Note
Generating HTML files: The program meinproc not only checks the syntax
but additionally generates HTML files in the directory of the
corresponding docbook file.
What to Do with Translated and Corrected Documentation? ¶Usually, the coordinator for you language will take care of
proof-reading and afterwards committing the translated files to SVN.
So please check with him or her about the team policy in this regard.
You should always keep in mind that once your documentation is published on the KDE web server, it will be distributed worldwide and may be read by millions of people. So your translation will substantially influence how users experience KDE. Chapter 5. Bug Reports and User Feedback: Handling and Translating ¶Table of Contents
Caution
Handling Translation Bugs Submitting Bug Reports
Closing Bug Reports
Followup Messages
This entire chapter about KDE Bugs is outdated.
Translations (and to some extent documentation) are becoming part of the KDE bug tracking system these days. This means translation coordinators will be receiving:
Handling Translation Bugs ¶The KDE bug tracking system is thoroughly described at bugs.kde.org.
The description is in fact so thorough that it may even look somewhat
intimidating at first. Basically, the procedure to submit, work on,
and get rid of bugs is the following (partly quoted from
bugs.kde.org/Developer.html where you can find a lot of additional
info):
Submitting Bug Reports ¶Initially, a bug report is sent by email to submit@bugs.kde.org. This
report will then be given a number, acknowledged to the sender, and
forwarded to kde-bugs-dist. If the submitter named the package that
contains the bug the maintainer of that package will also get a copy.
In our case the "package" would be the respective translation
("i18n-$LANG") and the coordinator listed in the "Maintainers" file of
the "bugs" module in CVS would receive a copy of the report. For
instance, if a user complains about a problem with German
translations, the bug tracking system looks for the line:
i18n-de Thomas Diehl <thd@kde.org>
in the Maintainers file and processes the report accordingly.
The subject line of the resulting mail will have the bug number added as "bug#nnn", and the reply-to will be set to include both the submitter of the report and "nnn@bugs.kde.org." Closing Bug Reports ¶Translators who receive a bug report from the tracking system should,
of course, fix the problem and then send a reply to the report where
the "to" field of their reply says "nnn-done@bugs.kde.org" or
"nnn-close@bugs.kde.org" instead of just "nnn@bugs". The address of
the original submitter of the bug report will be also included in the
"to" field automatically (because the bug system also included it in
the "reply-to" field).
The person closing the bug and the person who submitted it will each get a notification about the change in status of the report. Followup Messages ¶If translators wish to reply to a bug report without marking the bug
as closed they may simply reply to the message without any editing of
the "to" field. Their reply will then go to "nnn@bugs" and to the
original submitter of the bug report. The bug tracking system will
file the reply with the rest of the logs for that bug report and
forward it to kde-bugs-dist. The bug will not be marked as closed in
this case.
Do not use the "reply to all recipients" or "followup" feature of your mail program unless you intend to edit down the recipients substantially. In particular, do not send a followup message both to "nnn@bugs.kde.org" and to "submit@bugs.kde.org", because the bug system will then get two copies of it and each one will be forwarded to kde-bugs-dist separately. Chapter 6. Web Site Translation and Design ¶Table of Contents
Web Sites for Internal Use Web Sites for KDE Users This area is pretty much in the responsibility of the individual teams. It is not a "must" for any team to maintain a web site. But it is highly recommended. To be more specific: it is even recommendable to have two web sites: one for internal use of the translation team and one for the KDE users the individual team is translating for. As a matter of course, both sites will be created in the language of the respective team. And both sites can also be just one if the team prefers it that way. Web Sites for Internal Use ¶As already stated in the intro of this HOWTO, you can get the web
space for an internal team site from the KDE project. It will be
located at i18n.kde.org/teams/$LANG/ and be maintained via a CVS
server that is separate from the main SVN server. Any active
translator can get an account for this one, not only team
coordinators.
In order to get some web space or an CVS account on the i18n server just send your request to Claudiu Costin, together with the login name and an encrypted password for your new account. For a description on how to create such a password please see the SVN tutorial (as the way to create a password for CVS is the same way than creating it for SVN). Normally you would use this kind of space for internal announcements, to-do lists, overviews of who is doing what, Howtos, style guides, lists of standard translations and a lot of other things related to the "infrastructure" of your team. In most cases, together with a mailing list such a team site pretty much is your "infrastructure". Web Sites for KDE Users ¶If you ever went to a Linux fair or a KDE user meeting in your own
country, you probably know that there is real demand for information
on KDE in people's own language. Strangely, this area is often
neglected, though. So far, very few teams have up-to-date translations
of the KDE web site or real informative KDE user sites of their own.
There are exceptions, of course. The French team, for instance, even
has a press book and does a lot of public relations for KDE, not only
by maintaining a web site.
At the moment, there are two points under consideration:
Chapter 7. Tools and Resources for KDE Translators ¶Table of Contents
The i18n Server SVN WebSVN... Mailing Lists, IRC, and On-line Fora Web and FTP Sites Statistics HOWTOs and Info Sites Specialized Programs and Modules ...for GUI Translation
...for Doc Translation
Dictionaries and Tools for Consistency Checking
The following is mainly a reference section of the most important of the resources that have been described throughout this HOWTO ? a reference of the files that are to be translated, of statistics about the present status of these files and of many other useful things we all need in the process of KDE translation. But there are also some additional items that have not been mentioned so far. The i18n Server ¶Chances are that you know the i18n server already, simply because it
is the home of this document. If you do not, you should do a look
around as soon as possible since many of the resources for translators
are located there, including now a "tools" page: a listing of
specialized programs for translators and documenters which are
available on the server. Every feedback and contribution to the
material (tools, scripts, Howtos) is highly welcome as stated in the
original announcement. The people in charge for the i18n server are
Claudiu Costin (technical side, managing the web server, CVS, and the
scripts) and Thomas Diehl (contents).
You can also have a web site for your team on this server (e.g. for internal todo lists, lists of who is responsible for what, internal translation HOWTOs, styleguides and so on). The advantage to having it here compared to having it on private sites on the outside is that everybody in your team has access to it via an extra CVS system, separate from the main KDE SVN. That means: no problems accessing the data if someone is on vacation or simply drops out. If you are interested in getting an account, just write to Claudiu and send him a user name and an encrypted password. For a description on how to create such a password please see the SVN tutorial (the way to create a password is the same then for SVN) SVN WebSVN... ¶The necessary information on SVN and their graphic frontends is
provided in the section Taking a Look at Available Resources and SVN.
The use of WebSVN should be pretty much self-evident. Mailing Lists, IRC, and On-line Fora ¶These are the main resources in this area:
Web and FTP Sites ¶There are several different flavors:
Statistics ¶Caution
The links given in this section are mostly obsolete. Most still exist,
but with other URLs.
The following pages show the status of the translations. Normally, they are updated on a daily basis. Most of the underlying scripts are (re-)written and maintained by Claudiu Costin.
HOWTOs and Info Sites ¶The following seem particularly useful in the process of KDE
translations:
Specialized Programs and Modules ¶The following tools can make your life as a KDE translator a lot
easier. Do not worry if you do not understand the feature listings in
the respective chapters of this HOWTO on first sight. You will
understand them as soon as you know how GUI and doc translation really
work.
...for GUI Translation ¶Apart from just using your favorite editor you have basically the
following three options:
...for Doc Translation ¶Dictionaries and Tools for Consistency Checking ¶If you know of something that should be listed here, do not forget to
tell me...
Appendix A. The l10n Modules ¶Table of Contents
Overview Directories of the l10n Module How To Translate? Overview ¶There are two active l10n modules in KDE SVN (and also all the
released ones). The two modules are:
Directories of the l10n Module ¶l10n/templates/messages
Place of the translation template files for the GUI.
l10n/templates/docmessages
Place of the translation template files for the documenation.
l10n/templates/webmessages
Place of the translation template files for some of KDE
websites.
l10n/$lang/messages
Place of the translation files for the GUI.
l10n/$lang/docmessages
Place of the translation files for the documentation.
l10n/$lang/docs
Place of the translated documentation.
l10n/$lang/webmessages
Place of the translation files for some of KDE websites.
l10n/$lang/internal
Place for internal files of the translation teams, e.g. for the
compendium file. The files in such a directory will never be
released.
l10n/documentation
Place for the untranslated original English DocBook documention
files. The sub-directories of this directory are external
reference to the doc sub-directories of the corresponding
modules.
l10n/scripts
Place for internal script files of the l10n module.
How To Translate? ¶The files that are to be translated by the individual languages teams
are stored in the following locations:
Note
Appendix B. Quick CVS Overview ¶KDE is not using CVS anymore but uses SVN. However i18n.kde.org still
uses it, so here is a quick overview of CVS (Concurrent Version
System).
Note
If you know SVN already, you will soon notice that many basic commands
are the same, as SVN client's commands are modeled after CVS client's
ones. The very big difference is that directories are not versioned
and always exist, as soon as they are created. Also there is no move
and no copy.
Whatever you do or do not know SVN yet, you could take a look at the CVS Info pages. (You can type info:cvs in Konqueror or using KHelpcenter.) Do not panic if the CVS Info pages should look overwhelming at first. Basically, you are going to need only a few commands and parameters: checkout (for getting something from the remote system to your local repository) and its -l parameter (for non-recursive checkouts), update (if you just want to refresh already existing stuff on your local system) and its -dP parameters (for smart directory handling), add or import (for telling the remote system that there will be something new), commit (to get the new stuff from your local repository to the remote source tree), remove (to delete something on the remote server) ? that's about all. A good description of the basic commands can be found in the CVS section of the KDE Developer's HOWTO There are also some graphic frontends for CVS around that could make things a lot easier for you, such as LinCVS or Cervisia (part of the kdesdk module of KDE). And in case you really get interested in this subject there's now The CVS Book ? Open Source Development with CVS. Appendix C. Thomas Diehl's Acknowledgements ¶Note
The following acknowledgements are the ones of the first author of
this document: Thomas Diehl.
The errors in this document are mine, of course. What is usable is mostly due to people in the KDE project who explained this stuff to me. I would like to thank all of them here. Special credit goes to:
|
If you make a mistake you right it immediately to the best of your ability. |











![[http]](/imgs/http.png)