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 Áö¿ªÈ¸¦ À§Çؼ, ¿©·¯ºÐÀº ´ÙÀ½°ú °°Àº °ÍµéÀ» ÇØ¾ß ÇÕ´Ï´Ù.
ÀÌ ¹®¼ ÀÌÈÄ ÁøÇàÇØ¾ß ÇÒ ¹æÇâ ¶ÀÌ ºÎºÐÀº ½ÇÁ¦ ¹ø¿ª, ÆÀÀÛ¾÷, ÀÎÇÁ¶ó ½ºÆ®·°ÃÄ µî ¸î¸î ¹ø¿ªÆÀ¿¡¼ ÀÔÁõµÈ µµ¿òÀÌ µÉ¸¸ÇÑ ÈùÆ®¿Í ÆÁÀÇ ¸ðÀ½ÀÔ´Ï´Ù. ¿©·¯ ºÎºÐµé¿¡ ´ëÇØ ÀÌ Âü°íµéÀ» ½ÇÇàÇÏ·Á ÇÑ´Ù¸é ÁÖÀDZí°Ô º¸±æ ¹Ù¶ø´Ï´Ù.
ÀÌ ºÎºÐÀÇ ¸¹Àº °ÍµéÀº ÇÑ ¹æ¹ý ȤÀº ´Ù¸¥ ¹æ¹ýÀ¸·Î ÀÏ°ü¼ºÀ» °®°í ½ÇÇàµÇ¾î¾ß ÇÕ´Ï´Ù. ÀÌ°ÍÀº °¡´ÉÇÑ ÅëÀÏµÇ°Ô º¸¿©¾ß ÇÏ´Â µ¥½ºÅ©Å¾ ½Ã½ºÅÛ¿¡ ´ëÇÑ ÁÖ¿ä °í·Á´ë»óÀÔ´Ï´Ù. µ¿ÀÏÇÏ°Ô ¸ðµç ÇÁ·Î±×·¥µéÀº 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:
|
Domestic happiness and faithful friends. |