· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
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. ¼Ò°³


°æ°í

ÀÌ ¹®¼­´Â ¿©·¯°¡Áö ¿äÀÎ(¹öÀü°ü¸® ½Ã½ºÅÛÀ» CVS ´ë½Å SVN À¸·Î ¾²´Â °æ¿ì, »õ·Î¿î i10n ¸ðµâÀÇ »ç¿ë, »õ À̸§À̳ª »õ·Î¿î ¾²±â °ü½À µî)À¸·Î ¹öÀüÀÌ ÀÏÄ¡ÇÏÁö ¾Ê´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ÀÌ°÷¿¡ ÀÖ´Â ¹®¼­ ³»¿ëÀÇ ¹ø¿ªÀ» ¾î¶»°Ô ÇØ¾ß ÇÏ´ÂÁö ¸ð¸£°Ú´Ù¸é i18n-doc ¸ÞÀϸµ ¸®½ºÆ®¿¡ ¿äûÇϽñ⠹ٶø´Ï´Ù.

Ãß»óÀûÀ¸·Î ÀÌ Howto ¹®¼­´Â KDE ¹ø¿ª¿¡ °ü½ÉÀÌ ÀÖ´Â ºÐµéÀ» À§ÇÑ °ÍÀÔ´Ï´Ù. ¹®¼­¸¦ ¹ø¿ªÇÏ´Â ÀÛ¾÷¿¡ ´ëÇØ Æ¯º°ÇÑ Çã°¡³ª ´É·ÂÀÌ ÇÊ¿äÇÑ °ÍÀº ¾Æ´Õ´Ï´Ù. ÇÁ·Î±×·¥À» Á¦ÀÛÇÏ´Â °Í°ú´Â ´ëÁ¶ÀûÀ¸·Î ¹®¼­ ¹ø¿ª ÇÁ·ÎÁ§Æ®´Â ÇÁ·Î±×·¡¸Ó°¡ ¾Æ´Ñ ÀϹÝÀε鵵 Âü¿©ÇÒ ¼ö ÀÖ´Â °ÍÀÔ´Ï´Ù.

»õ·Î¿î ¾ð¾î·Î 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 ¾ð¾îÀÇ ¸ñ·Ï°ú ¹ø¿ªÆÀ ¿î¿µÀÚ¸¦ ãÀ¸½Ê½Ã¿À.

¸ñ·Ï¿¡ ´ç½ÅÀÇ ¾ð¾î°¡ ÀÖ´ÂÁö¿¡ µû¶ó ÇØ¾ß ÇÒ °ÍÀÌ ´Ù¸¨´Ï´Ù.

  • ¸¸¾à ´ç½ÅÀÇ ¾ð¾î°¡ ÀÖ´Ù¸é °£´ÜÇÏ°Ô ¹ø¿ªÆÀ ¿î¿µÀÚ¿¡°Ô ¾î¶»°Ô ÁøÇàÇØ¾ß ÇÏ´ÂÁö ¸ÞÀÏÀ» º¸³»½Ê½Ã¿À.
  • ¸¸¾à ¸ñ·Ï¿¡ ´ç½ÅÀÇ ¾ð¾î°¡ ¾ø´Ù¸é, kde-i18n-doc ¸ÞÀϸµ ¸®½ºÆ®¿¡ ÀÌ¹Ì ¾ð¾î¿¡ ´ëÇØ ÀÛ¾÷ÁßÀÎ »ç¶÷ÀÌ ÀÖ´ÂÁö °°ÀÌ ÀÛ¾÷ ÇÒ ¼ö ÀÖ´ÂÁö µîÀ» ¸ÞÀÏ·Î º¸³»½Ê½Ã¿À.

    (ÁÖÀÇ: KDE´Â ¾ÆÁ÷ Àεµ ÁÖº¯ÀÇ ¾ð¾î¸¦ ¿Ïº®ÇÏ°Ô Áö¿øÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à ÀÌ ÁÖÁ¦¿¡ ´ëÇØ ´õ ¸¹Àº Á¤º¸¸¦ ¾ò°í ½ÍÀ¸½Ã´Ù¸é ¸ÞÀϸµ ¸®½ºÆ®¿¡ Á¢ÃËÇØÁֽʽÿÀ.)

¸¸¾à ¾Æ¹«¿¡°Ôµµ ¸ÞÀÏ ´ä½ÅÀÌ ¿ÀÁö ¾Ê´Â´Ù¸é, GUI ¹ø¿ª ´ã´çÀڷκÎÅÍ ¸Þ½ÃÁö¸¦ ¹ÞÀ¸½Ç °ÍÀÔ´Ï´Ù. (¸¸¾à ±×·¸Áö ¾Ê´Ù¸é, Á÷Á¢ ´ã´çÀÚ¿¡°Ô ¸ÞÀÏÀ» º¸³»¼¼¿ä.) ¾Æ¸¶µµ ±×°¡ ´ç½Å¿¡°Ô ´ç½ÅÀÇ ¾ð¾î ¹ø¿ªÆÀÀÇ ÆÀÀåÀÌ µÇÁö ¾Ê°Ú³Ä°í ¹°¾îº¼ °ÍÀÔ´Ï´Ù.

»ç¿ë °¡´ÉÇÑ ¸®¼Ò½º¿Í SVN À» °Ë»öÇϱâ


  • ÀÌ ¹ø¿ª Howto ¹®¼­¸¦ ÀüüÀûÀ¸·Î Àо½Ã°í, Ưº°È÷ GUI ¹ø¿ª ºÎºÐÀ» Àß º¸½Ê½Ã¿À.
  • KDE¸¦ ¾î¶»°Ô ¼³Ä¡ÇÏ´ÂÁö ã¾Æº¸°í ±×´ë·Î ¼³Ä¡ÇϽʽÿÀ. ºñ·Ï ¹ø¿ªÇÏ·Á´Â ¹öÀüÀÇ ÀÌÀü¹öÀü KDE¿¡ ÀÌ·ÐÀûÀ¸·Î ¹ø¿ªÀ» Àû¿ë ÇÒ ¼ö ÀÖ½À´Ï´Ù¸¸, Àû¾îµµ Å×½ºÆ® ¸ñÀûÀ¸·Î ´ç½ÅÀÇ ÄÄÇ»ÅÍ¿¡ ÇÊ¿äÇÑ ¹öÀüÀ» ¼³Ä¡ÇØ º¼ °ÍÀ» ±ÇÀåÇÕ´Ï´Ù. ÀÌ Á¦¸ñ(Taking a Look at Available Resources and SVN)°ú °ü·ÃµÈ ¹®¼­¿¡ ´ëÇØ HOWTO¸¦ È®ÀÎÇØ º¸½Ê½Ã¿À.
  • °¡Àå ÃÖ±ÙÀÇ GNU gettext ÆÐÅ°Áö°¡ ¼³Ä¡µÇ¾î ÀÖ´ÂÁö °¡Àå À¯»çÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Â ÇÁ·Î±×·¥ÀÌ ¼³Ä¡µÇ¾î ÀÖ´ÂÁö È®ÀÎÇϽʽÿÀ. Àû¾îµµ Á¤º¸ÆäÀÌÁö¿¡ Àß ³ªÅ¸³ª ÀÖÀ» °ÍÀÔ´Ï´Ù.(±â¾ï»çÇ× : ¿Â¶óÀÎ KDE ¹®¼­´Â ÀÌ·¯ÇÑ Á¾·ùÀÇ ¹®¼­¸¦ Àб⿡ Á¦ÀÏ Æí¸®ÇÑ ¹æ¹ýÀÔ´Ï´Ù.)
  • ¹ø¿ª¿¡ µµ¿òÀÌ µÇµµ·Ï ¹ø¿ª ÇÁ·Î±×·¥°ú ½ºÅ©¸³Æ®, Åë°è¸¦ ¸ðÀ¸½Ê½Ã¿À.Àû¾îµµ GUI ¹ø¿ª¿¡ ´ëÇØ UTF-8 ÀÎÄÚµù ȯ°æÀ» ´Ù·ê ¼ö ÀÖ´Â ÇÁ·Î±×·¥ÀÌ ÇÊ¿äÇÒ °ÍÀÔ´Ï´Ù. GUI ¹ø¿ª¿¡ ´ëÇØ ÃßõÇÏ´Â ÇÁ·Î±×·¥ÀÌ KBabel ÀÔ´Ï´Ù. ´Ù¸¥ ÇÁ·Î±×·¥µéÀº ½ÉÇÑ µÎÅëÀÇ ¿øÀÎÀÌ µÉ °ÍÀÔ´Ï´Ù. Unicode ¿Í °ü·ÃµÈ ºÎºÐÀ» º¸½Ê½Ã¿À. KBabelÀº ¿©Å¸ ´Ù¸¥ ÇÁ·Î±×·¥º¸´Ù ¹ø¿ªÀÚÀÇ »îÀ» ÆíÇÏ°Ô ¸¸µé¾î ÁÙ ¼ö ÀÖ´Â ±¸º°µÈ ¿ä¼Ò¸¦ ¸¹ÀÌ °¡Áö°í ÀÖ½À´Ï´Ù.
  • (¹ø¿ª°ü¸®Àڷμ­ÀÇ ¿ªÇÒÀ» ÇÑ´Ù¸é) ÃÖÁ¾ÀûÀ¸·Î SVNÀ» Ä£¼÷ÇÏ°Ô ´Ù·ç½Ê½Ã¿À. (°³ÀÎÀûÀÎ ¹ø¿ªÀ» ÇÏ´Â °æ¿ì) ºñµ¿±â½Ä SVNÀ» Àß ÇÏ½Ã¸é µË´Ï´Ù. SVN(Subversion)¿¡ ´ëÇØ µé¾îº» ÀûÀÌ ¾ø´Â °æ¿ì¶ó¸é, ÀÌ°ÍÀº µð·ºÅ͸®¿Í ÆÄÀÏÀÇ ¹öÀüÀ» Á¦¾îÇÏ´Â ÇÁ·Î±×·¥À̶ó°í ÀνÄÇϽʽÿÀ. KDE(¶Ç´Â ´Ù¸¥ ¸¹Àº ¿ÀǼҽº ÇÁ·ÎÁ§Æ®)ÀÇ °æ¿ì ÀÎÅͳÝÀ» ÅëÇØ ´Ù¸¥ »ç¿ëÀÚµéÀÌ SVNÀ» »ç¿ëÇÏ¿© ÆÄÀÏ°ú µð·ºÅ͸®¸¦ »ý¼º, »èÁ¦, º¯°æ, Á¦°ÅÇÕ´Ï´Ù. KDE¿¡¼­´Â "SVN" ȤÀº "KDE SVN"Àº "svn.kde.org"¶ó°í ºÎ¸£´Â ¼­¹ö¸¦ ÁöĪÇÕ´Ï´Ù. ÀÌ °÷Àº KDE¿Í °ü·ÃµÈ ¸ðµç ÇÁ·Î±×·¥ ¼Ò½ºÄÚµå, ¹®¼­, ¹ø¿ª¿¡ °ü·ÃµÈ ¸ðµç ÀÚ·á°¡ ÀúÀåµÇ¾î ÀÖ½À´Ï´Ù. SVN °èÁ¤À» °¡Áö°í ÀÖ´Â »ç¶÷µéÀº ±×µéÀÇ ÄÄÇ»ÅÍ¿¡ ¿ø°Ý ½Ã½ºÅÛ¿¡ ÀÖ´Â ¼Ò½º Æ®¸®¸¦ ¹Ì·¯¸µÇÑ SVN ¼­¹ö¿¡ ¿¬°áÇÒ ¼ö ÀÖ´Â ·ÎÄà Ŭ¶óÀ̾ðÆ®¸¦ ¼³Ä¡ÇÕ´Ï´Ù. ÀÌ ·ÎÄà SVN Ŭ¶óÀ̾ðÆ® ¶ÇÇÑ ¿ø°Ý ¼Ò½ºÆ®¸® ½Ã½ºÅÛ¿¡ »õ·Î¿î ¹ø¿ªÀ» Àû¿ë½ÃÅ°°Å³ª ÀúÀåÇÏ´Â µîÀÇ ÀÏÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù. °èÁ¤À» ¾ò±â À§Çؼ± KDE Sysadmin¿¡ »ç¿ëÀÚ À̸§°ú ¾ÏȣȭµÈ Æнº¿öµå¸¦ Àü´ÞÇÏ¿© °èÁ¤ ¿äûÀ» º¸³»¾ß ÇÕ´Ï´Ù. ÀÌ ÀÛ¾÷À» ¾î¶»°Ô Á¤È®ÇÏ°Ô ÇÏ´ÂÁö Æ©Å丮¾óÀ» º¸½Ê½Ã¿À. ±ÔÄ¢À¸·Î¼­ ÇÑ ¹ø¿ªÆÀ¿¡ ´ëÇØ ÇϳªÀÇ °èÁ¤À» ÁÝ´Ï´Ù. ±×·¯³ª ¹°·Ð ´ç½ÅÀÇ ÆÀ¿¡¼­ Çϳª ÀÌ»óÀÇ °èÁ¤À» ¿øÇÑ´Ù¸é ´õ ½ÂÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸¸¾à SVN¿¡ ´ëÇØ ¾ËÁö ¸øÇϰųª À̸¦ Àß »ç¿ëÇÒ ÁÙ ¸ð¸¥´Ù¸é ¿©·¯ºÐÀÌ ¼³Ä¡ÇÑ SVN ÆÐÅ°ÁöÀÇ ¹®¼­ºÎºÐ Áß¿¡ ÀÖ´Â 'SubversionÀ» ÀÌ¿ëÇÑ ¹öÀü Á¦¾î'¸¦ ÀÐÀ¸½Ê½Ã¿À. ¿Â¶óÀο¡¼­ ÀÐÀ» ¼ö ÀÖ´Ù¸é SVN¿¡ °ü·ÃµÈ ¿Â¶óÀÎ ÇÚµåºÏÀ» ÀÐÀ¸½Ê½Ã¿À. (ÀÌ Ã¥Àº ÀμâÆÇ Ã¥À¸·Îµµ ½ÃÁß¿¡ ³ª¿ÍÀÖ½À´Ï´Ù.) ¹°·Ð ÇÁ·Î±×·¥ ¹öÀüÀ̳ª °ü¸®ÀÚ ¸ñÀûÀ¸·Î SVNÀ» »ç¿ëÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó¸é ±»ÀÌ SVN¿¡ ´ëÇÑ Àüü ÀåÀ» Àаí ÀÌÇØÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù.

    ÆÁ

    ¸¸¾à ´Ù¸¥ ¿ÀǼҽº ÇÁ·ÎÁ§Æ®¿¡ »ç¿ëµÇ±â ¶§¹®¿¡ CVS¸¦ ¾Ë°í ÀÖ´Ù¸é, ´Ù¸¥ °ü·ÃµÈ ¹®¼­¸¦ Àд °Íµµ À¯¿ëÇÕ´Ï´Ù. CVS to SVN Àüȯ °¡ÀÌµå µîÀ» Àо½Ê½Ã¿À. (ÀÌ ¶ÇÇÑ SVN ¹®¼­ÀÇ ÀϺκÐÀ¸·Î µÇ¾î ÀÖ½À´Ï´Ù.) svn Ŭ¶óÀ̾ðÆ®ÀÇ ÁÖ¿ä ¸í·É¾î´Â ´ÙÀ½°ú °°½À´Ï´Ù:
    • svn checkout (¿ø°Ý ½Ã½ºÅÛÀ¸·ÎºÎÅÍ ·ÎÄà ÀúÀå¼Ò¿¡ ¸î¸îÀÇ ¹öÀüÀ» ¾ò±â À§ÇØ »ç¿ë)
    • svn update (·ÎÄà ½Ã½ºÅÛ¿¡ ÀÖ´Â ³»¿ëµéÀ» ´Ü¼øÈ÷ °»½ÅÇϱâ À§ÇØ »ç¿ë)
    • svn add (Á¸ÀçÇÏ´Â »õ·Î¿î ÆÄÀÏÀ̳ª µð·ºÅ͸®¸¦ ¹öÀü°ü¸®¿¡ Ãß°¡Çϱâ À§ÇØ »ç¿ë)
    • svn remove (Á¸ÀçÇÏ´Â »õ·Î¿î ÆÄÀÏÀ̳ª µð·ºÅ͸®¸¦ ¹öÀü°ü¸®¿¡¼­ Á¦°ÅÇϱâ À§ÇØ »ç¿ë)
    • svn copy (ÆÄÀÏÀ» º¹»çÇϱâ À§ÇØ »ç¿ë)
    • svn move (ÆÄÀÏÀ» À̵¿Çϱâ À§ÇØ »ç¿ë)
    • svn commit (ÀÛ¾÷ÇÑ ³»¿ëÀ» ¿ø°Ý ½Ã½ºÅÛ¿¡ º¸³»±â À§ÇØ »ç¿ë, ÀÌ ÀÛ¾÷Àº "Àü´ÞÇϱâ(commiting)À̶ó°í ºÒ¸³´Ï´Ù.)
  • ÀÌ ¹®¼­ÀÇ ¹®´ÜÀ» ¾²°í ÀÖ´Â ½ÃÁ¡¿¡¼­µµ ¼³¸íÇÒ ¼ö ¾ø´Â 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 ¹ø¿ª¿¡¼­ ãÀ» ¼ö ÀÖÀ»°ÍÀÔ´Ï´Ù. ±×·¯³ª ´ÙÀ½ ¸ñ·Ï¿¡ ÀÖ´Â Áß¿äÇÑ ´Ü°èµéÀ» Àß º¸´Â°ÍÀÌ ¹®Á¦°¡ »ý±âÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù.

  • kdelibs.pot¿Í kdelibsÀÇ ¸ðµç ¹ø¿ª¿¡ ´ëÇÑ Àӽà ÆÄÀÏÀ» ´Ù¿î·ÎµåÇÕ´Ï´Ù. (ÀÌ°ÍÀº ¿¹¸¦ µé¾î WebSVNÀ» »ç¿ëÇÏ¿© ÇÒ ¼ö ÀÖÀ¸¸ç ÃÖ½ÅÀÇ ¸®ºñÀüÀ» ´Ù¿î·Îµå ÇÒ ¼ö ÀÖ½À´Ï´Ù.)
  • ÀÌ ÆÄÀÏÀ» ¿©·¯ºÐÀÇ ÄÄÇ»ÅÍ ·ÎÄà µð·ºÅ͸®¿¡ kdelibs.po ÆÄÀÏ·Î ÀúÀåÇϽʽÿÀ. (¸ðµç ¹ø¿ªµÈ GUI ÆÄÀÏÀÇ ³¡¿¡´Â ".po"°¡ ºÙ½À´Ï´Ù. ¿øº»ÆÄÀÏ¿¡´Â ".pot"°¡ ºÙÀ¸¸ç ÀÌ°ÍÀº ".po ÅÛÇø´"À» ¶æÇÕ´Ï´Ù.)

  • ¹ø¿ªÀ» ½ÃÀÛÇÕ´Ï´Ù. (ÀÌ HOWTOÀÇ GUI Ç׸ñ°ú ´Ù¸¥ ¹ø¿ªÀÚµéÀÇ ÀÛ¾÷ ³»¿ëÀ» °Ë»öÇÏ´Â °ÍÀº ¶§¶§·Î À¯¿ëÇÒ °ÍÀÔ´Ï´Ù.)

  • kdelibs.po·Î ¿Ï·á¸¦ Çϸé, msgfmt ¸í·É¾î·Î È®ÀÎÀ» Çغ¸½Ê½Ã¿À.
     msgfmt --statistics --check kdelibs.po
    
    ¿©·¯°³ÁßÀÇ ´ëºÎºÐÀº (¹®¹ýÀ» È®ÀÎÇϱâ À§ÇØ Á¤È®ÇÑ .potÀÇ ¹ø¿ª¿¡¼­ .po ÆÄÀÏ·Î) K¹Ùº§¿¡ ÀÇÇØ ÀÚµ¿ÀûÀ¸·Î ¿Ï·áµÉ °ÍÀÔ´Ï´Ù. ÀÏ¹Ý ÅؽºÆ® ÆíÁý±â°¡ UTF-8À» Áö¿øÇÏÁö ¾Ê´Â ¹Ý¸é¿¡ K¹Ùº§ÀÌ UTF-8 ¶ÇÇÑ Ã³¸®Çϱ⠽ÃÀÛÇϸ鼭 KDE GUI ¹ø¿ª¿¡ ´ëÇØ Ãßõ¹Þ´Â µµ±¸ÀÔ´Ï´Ù. ÀÌ ¿µ¿ª¿¡¼­ ¾î¶² ÀÚÀ¯ ¹ø¿ª ÇÁ·Î±×·¥º¸´Ù ´õ À¯¿ëÇÑ ¿ä¼Ò¸¦ °®°í ÀÖ´Ù°í Çصµ °ú¾ðÀÌ ¾Æ´Ò °ÍÀÔ´Ï´Ù.

  • ù¹ø° ÆÄÀÏÀ» º¸³¾ Áغñ°¡ µÇ¾úÀ» ¶§, kde-i18n-doc ¸ÞÀϸµ ¸ñ·Ï¿¡ ÷ºÎ ÆÄÀÏÀÌ ¾øÀÌ ÂªÀº À̸ÞÀÏÀ» ¾²½Ê½Ã¿À. ¾î´À ´©±º°¡°¡ ¿©·¯ºÐÀÌ ÀÛ¾÷ÇÑ ÆÄÀÏÀ» ¿øÇÑ´Ù°í ´äº¯À» º¸³¾ °ÍÀ̸ç, ±×¿¡°Ô ÆÄÀÏÀ» º¸³¾ ¼ö ÀÖ½À´Ï´Ù. ÀÌ »ç¶÷Àº ¿©·¯ºÐÀÇ ¾ð¾î¿¡ ´ëÇÑ »õ·Î¿î µð·ºÅ͸®¸¦ ¸¸µé°ÍÀÔ´Ï´Ù. (l10n/$LANG/) ¶ÇÇÑ ¹®¼­¿¡ ´ëÇÑ µð·ºÅ͸®°¡ ÇÊ¿äÇÒ °æ¿ì po ÆÄÀÏ¿¡ ´ëÇÑ ÇÏÀ§ µð·ºÅ͸®¸¦ ¸¸µé°ÍÀÔ´Ï´Ù. ¸¸¾à ÀÌÀü¿¡ ´äÀå¹ÞÁö ¸øÇß´Ù¸é, ÆÀÆäÀÌÁö¿¡¼­ ¿©·¯ºÐÀÇ ¾ð¾î¿¡ ´ëÇØ ´ç½ÅÀÌ ÆÀÀåÀ¸·Î ÀÔ·ÂµÈ °ÍÀ» È®ÀÎÇϽʽÿÀ.

    ´õ¿íÀÌ ¸¸¾à ´ç½Å¿¡°Ô ´äÀåÀÌ ¿ÀÁö ¾Ê¾Ò´Ù¸é ´ç½ÅÀº entry.desktop ÆÄÀÏÀ» l10n/$LANG/messages¿¡ ¸¸µé°í Ãß°¡ÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. ÀÌ entry.desktopÀº ´ÙÀ½ÀÇ µÎÁÙ¸¸ Æ÷ÇÔÇÏ¸é µË´Ï´Ù.
    [KCM Locale]
    Name=Add_here_the_name_of_your_language_in_American_English
    


    KDE¿¡¼­ ¾ð¾îÄÚµåÀÇ ¹®¹ýÀº RFC3066, 2Àå 3Ç׿¡ ±â¼úµÈ ³»¿ë¿¡¼­ KDE ÂÊÀÌ ´ë½¬(-)¹®ÀÚº¸´Ù ¹ØÁÙ ¹®ÀÚ(_)¸¦ »ç¿ëÇÑ´Ù´Â °ÍÀ» Á¦¿ÜÇÏ°í´Â ¾ÆÁÖ ºñ½ÁÇÕ´Ï´Ù. (¿¹¸¦ µé¾î, KDE´Â ¿µ±¹ ¿µ¾î¿¡ ´ëÇØ en_GB ¶ó°í ¾¹´Ï´Ù. ¹Ý¸é¿¡ RFC 3066Àº en-GB¶ó°í ¾¹´Ï´Ù.) ´ëºÎºÐ ÀÚÁÖ RFC 3066À» »ç¿ëÇÑ´Ù´Â °ÍÀº ISO 639-1·ÎºÎÅÍ ¾ð¾î¿¡ ´ëÇÑ 2¹®ÀÚ Äڵ带 »ç¿ëÇÏ´Â °ÍÀ» ¶æÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, de ´Â µ¶ÀÏ, frÀº ÇÁ¶û½º ÀÔ´Ï´Ù. (ISO 639¿¡ °üÇÑ À§Å°Çǵð¾ÆÀÇ ±â»ç¸¦ º¸½Ê½Ã¿À.)

    ÁÖÀÇ
    ´ç½ÅÀÇ ¾ð¾î°¡ RFC3006¿¡ µî·ÏµÇ¾î ÀÖÁö ¾Ê´Â Èñ±ÍÇÑ °æ¿ì(¿¹¸¦ µé¾î, ´ç½ÅÀÇ ¾ð¾î°¡ ÀÛÀº Áö¿ªÀÇ ¾ð¾î¶ó¼­ µî·ÏÀÌ ¾ÈµÈ °æ¿ì), INAN¿¡ RFC3066, 3Ç׿¡ ±â¼úµÈ Çü½ÄÀ¸·Î ¾ð¾î Äڵ带 µî·ÏÇϱæ ÃßõÇÕ´Ï´Ù. ¾î¶°ÇÑ ÀÌÀ¯°¡ À־ IANA¿¡ ´ç½ÅÀÇ ¾ð¾î¸¦ µî·ÏÇÏ±æ ¿øÄ¡ ¾Ê´Â´Ù¸é, 'x-' ¹®ÀÚ¿­·Î ½ÃÀÛÇÏ´Â ¾ð¾î À̸§À» »ç¿ëÇÏ¼Å¾ß ÇÕ´Ï´Ù.

  • (¸¸¾à ÆÀÀÌ ¾ø´Ù¸é) °°ÀÌ ÀÏÇÒ ¹ø¿ªÀÚ¸¦ ¸ð¾Æ ÆÀÀ» ¸¸µé°í, ÀÛ¾÷À» ºÐ¹èÇÏ°í ´ç½ÅÀÇ ÀÛ¾÷¿¡ ´ëÇÑ È¿À²ÀûÀÎ "ÇÏÀ§±¸Á¶"¸¦ ¼¼¿ì±â ½ÃÀÛÇϽʽÿÀ. ¸ðµç °ÍÀÇ Ã³À½Àº ¸ÞÀϸµ ¸®½ºÆ®¸¦ ¸¸µé°í ¿©·¯ºÐÀÇ ¾ð¾î ÆÀ¿¡ ÀÇÇØ ³»ºÎÀûÀ¸·Î »ç¿ëÇϱâ À§ÇÑ À¥ »çÀÌÆ®¸¦ ¸¸µå´Â °ÍÀÔ´Ï´Ù. ºñ·Ï ±âº»ÀûÀÎ °ÍÀÌ µÉ °ÍÀÌÁö¸¸ KDE·ÎºÎÅÍ µÎ°¡Áö ¸ðµÎ¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. (¸®½ºÆ® ¼­¹ö´Â ¸¹Àº ¸í·ÉÀ» ¹Þ¾ÆµéÀÌÁö ¾ÊÀ» °ÍÀÌ°í, À¥ »çÀÌÆ®´Â ¾ÆÁ÷ CGI¸¦ Çã¿ëÇÏÁö ¾Ê½À´Ï´Ù.) ¾î·µç, °ü½ÉÀÌ ÀÖ´Ù¸é, i18n-server ÀÇ À¥¸¶½ºÅÍ¿¡°Ô Á¢ÃËÇϽʽÿÀ. À̰͵éÀ» ±¸¼ºÇÏ°í ³­ ÈÄ, ¶§¶§·Î ÀÌ HOWTO ÀÇ "½Ç¹«ÀûÀÎ ÈùÆ®"¿¡ º¸ÀÌ±æ ¿øÇÏ½Ç °ÍÀÔ´Ï´Ù.

  • ¸¸¾à GUI ¹ø¿ªÀÌ ÆòźÇÏ°Ô Àß µÇ¾î ´ç½ÅÀÇ ÆÀ¿¡¼­ ¸ðµç °ÍÀÌ Àß ±¸¼ºµÈ °ÍÀ¸·Î º¸Àδٸé, ´ç½ÅÀº ¹®¼­ ¹ø¿ªÀ» ÇؾßÇÕ´Ï´Ù. ´ç½ÅÀº i18n ¼­¹öÀÇ ¹®¼­ »çÀÌÆ®¿¡¼­ ±âº» Á¤º¸¸¦ ãÀ» °ÍÀÔ´Ï´Ù. ÀÌ HOWTO´Â ´ÜÁö ¿©·¯ºÐµéÀÌ ÁøÇàÇÏ°ÔµÉ °úÁ¤ÀÇ ´ë°­À» Á¦°øÇÒ »ÓÀÔ´Ï´Ù.

  • GUI ¹ø¿ªÆÀµéÀÌ ¸¸µé°í ÀÖ´Â ÁøÇàÀÇ ´ë°­ÀÌ HEAD ÇÁ·»Ä¡¿¡ ´ëÇØ KDE ¹ø¿ªÀÇ »óÅ Å×ÀÌºí¿¡ °ø±ÞµË´Ï´Ù. ÀÌ µ¥ÀÌŸ¿¡ ±âÃÊÇÏ¿© KDE ¸±¸®ÁîÀÇ ÀϺκÐÀ¸·Î¼­ ¾î¶² ¾ð¾î¸¦ ¼±ÅÃÇÒÁö °áÁ¤ÇÏ°Ô µË´Ï´Ù. ¸±¸®Áî ¹öÀü¿¡ ´ëÇÑ °ø½ÄÀûÀÎ ±ÔÄ¢Àº kdelibs.pot ÀÇ 90 %, desktop_kdelibs.pot¿Í desktop_l10n.potÀÇ 100%, kdebase ÀÇ 75% Á¤µµ°¡ ¹ø¿ªÀÌ µÇ¾î¾ß ¸±¸®Áî·Î äÅõ˴ϴÙ. ±×·¯³ª º¸Åë ÆÀÀåÀÌ "¸±¸®Áî ÇÒ ½Ã±â"°¡ ¾ðÁ¦ÀÎÁö °áÁ¤ÇÏ°í ¸±¸®Á ÇÏ´Â »ç¶÷µé¿¡°Ô ¾Ë·ÁÁÝ´Ï´Ù.

Áö¿ªÈ­¿¡ ´ëÇÑ È­Á¦


¿©±â¿£ ¹ø¿ª°ú´Â °ü·Ã ¾øÁö¸¸, ¹ø¿ªÆÀ ÆÀÀå¿¡ ÀÇÇØ °áÁ¤µÇ¾î¾ß ÇÏ´Â ¸î°¡Áö°¡ ÀÖ½À´Ï´Ù. ¸¸¾à µ¿½Ã¿¡ »õ·Î¿î ¾ð¾î°¡ »õ ±¹°¡¿¡ ´ëÇÑ ¿©·¯°¡Áö ³»¿ë Ç¥½ÃÇÑ´Ù¸é, °¡Àå Áß¿äÇÑ ÇÑ°¡Áö´Â ±âº» "Áö¿ªÈ­" ÁÖÁ¦¿¡ ´ëÇÑ °ü½ÉÀÔ´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì, ±× ³ª¶ó¿¡¼­ Åë¿ëµÇ¾î »ç¿ëµÇ´Â ±¹°¡, ³¯Â¥ Çü½Ä, ½Ã°£, ¼ýÀÚ, ÁÖ¼Ò¿Í ÇÔ²² ±¹±â¿Í ´Ù¸¥ ¸î°¡Áö ¼³Á¤À» KDE¿Í ÇÔ²² °ø±ÞÇÒ ¼ö ÀÖ´Ù¸é ÀÌ°ÍÀÌ Á¤È®ÇÕ´Ï´Ù. ÀÌ Á¤º¸´Â kdebase ÆÐÅ°ÁöÀÇ "l10n" µð·ºÅ͸®¿¡ ÀúÀåµÇ°í KDE Àü¿ª¿¡¼­ »ç¿ëµË´Ï´Ù¸¸ Á¦¾î¼¾ÅÍÀÇ µ¥½ºÅ©Å¾ ºÎºÐ¿¡¼­´Â Ưº°È÷ ¾²ÀÌÁö ¾Ê½À´Ï´Ù.

ÁÖÀÇ
´Ù½Ã °­Á¶: ÀÌ ºÎºÐÀº ±¹°¡¿Í °ü·ÃµÈ °ÍÀÌÁö, ¾ð¾î¿Í´Â °ü°è°¡ ¾ø½À´Ï´Ù. µû¶ó¼­ ¿©·¯ºÐÀÇ ¾ð¾î°¡ ¿©·¯ºÐÀÇ ±¹°¡¿¡¼­ "°ø½Ä" ¾ð¾î°¡ ¾Æ´Ï¶ó¸é ¾Æ¸¶µµ ÀÌ°Í¿¡ °üÇØ °ÆÁ¤ÇÏÁö ¸¶½Ê½Ã¿À.

ÆÁ
½ÉÁö¾î ¿©·¯ºÐÀÇ ¾ð¾î°¡ ±¹°¡ÀÇ °ø½Ä ¾ð¾î°¡ ¾Æ´Ï¾îµµ, ƯÁ¤ ±¹°¡¿Í °ü°èµÇ°Å³ª ¸î¸îÀÇ ±¹°¡¿Í ¾à°£ÀÇ ¿¬°üÀÌ ÀÖÀ» °ÍÀÔ´Ï´Ù. ÀÌ ±¹°¡¿¡ ´ëÇؼ­ ¿©·¯ºÐÀÇ ±¹°¡ Ç׸ñÀÌ Á¸ÀçÇÏ´ÂÁö È®ÀÎÇÏ°í ¶§¶§·Î ºüÁø Ç׸ñÀ» Ãß°¡Çϸé ÁÁÀ» °ÍÀÔ´Ï´Ù. ÀÌ°ÍÀº ÇÑ ±¹°¡ÀÇ °ø½Ä¾ð¾î°¡ ±× ³ª¶ó¿¡¼­ Åë¿ëµÇ´Â °ü½ÀÀ» µû¸£Áö ¾ÊÀ¸¸é¼­ ´Ù¸¥ ±¹°¡¿¡¼­ »ç¿ëµÉ °æ¿ì, Áï ¿µ¾î³ª ÇÁ¶û½º¾î¿Í °°ÀÌ ¿©·¯ Áö¿ª¿¡¼­ »ç¿ëµÇ´Â °æ¿ì¿¡´Â Ưº°È÷ Áß¿äÇÕ´Ï´Ù. ¹°·Ð ¸î¸î ¾ð¾î¸¦ °°ÀÌ °ø¿ëÇؼ­ »ç¿ëÇÑ´Ù¸é, ´Ù¸¥ ¾ð¾îÆÀ ¹ø¿ª°¡°¡ ±× ±¹°¡¿¡ ´ëÇÑ Ç׸ñ¿¡ µ¿ÀÇÇÏ´Â °ÍÀÌ ÀûÀýÇÕ´Ï´Ù.

ÁÖÀÇ
ºÒÇàÇÏ°Ôµµ, ¸¸¾à ÇÑ ±¹°¡¿¡¼­ ´Ù¸¥ »ç¿ëÀÚ°¡ ÇÑ ¾ð¾î¿¡ ´ëÇØ ´Ù¸¥ ¼³Á¤À» »ç¿ëÇÑ´Ù¸é ÀÌ°ÍÀº KDE¿¡ Á¤È®È÷ ¹Ý¿µÇÒ ¼ö ¾ø½À´Ï´Ù. ÀÌ°ÍÀº Ưº°È÷ °¢ ¾ð¾îÁö¿ª¿¡ ´ëÇÑ Á¤È®È÷ ¹ø¿ªµÈ öÀÚ¹ý¿¡¼­ "P.O. Box"¸¦ Ç¥ÇöÇÒ ¼ö ¾ø´Â ½ºÀ§½º³ª º§±â¿¡ °°Àº ±¹°¡¿¡ ´ëÇؼ­´Â Ưº°È÷ Áß¿äÇÕ´Ï´Ù. ¸¸¾à Á¤¸» ÇÊ¿äÇÏ´Ù¸é, KDE¸¦ ÇØÅ·ÇÒ ¼ö ÀÖÀ¸¸ç, ¾ÆÁ÷µµ ¿Ïº®ÇÏÁö ¾ÊÀº ±¹°¡¿¡ ´ëÇÑ ¼³Á¤ÀÌ ¾ð¾î¿¡ Á¾¼ÓµÉ °ÍÀÔ´Ï´Ù. (¿¹·Î Á¦³×¹Ù P.O. box ¿¡ ´ëÇÑ ¹®ÀÚ°¡ ½ºÀ§½ºÀÇ ÇÁ¶û½º¾î »ç¿ë Áö¿ª¿¡¼± Ç×»ó "Case Postale"ÀÎ ¹Ý¸é, µ¶¾î¸¦ »ç¿ëÇÏ´Â ½ºÀ§½º Ã븮È÷ Áö¿ª¿¡¼± "Postfach" ÀÌ µÉ °ÍÀÔ´Ï´Ù.)

kdebase/l10n ¾ÈÀÇ µð·ºÅ͸®µéÀº ±¹°¡¿¡ ´ëÇÑ °ÍÀÌÁö, ¾ð¾î¿¡ ´ëÇÑ °ÍÀÌ ¾Æ´Õ´Ï´Ù. µû¶ó¼­ ÄÚµåµéÀº ´Ù¸¥ Àǹ̸¦ °¡Áö°í ÀÖ½À´Ï´Ù. (½ÉÁö¾î ¿¹¸¦ µé¾î ÇÁ¶û½º¾î¿Í ÇÁ¶û½º°¡ °°Àº ÄÚµåÀÎ frÀ» °øÀ¯ÇÕ´Ï´Ù.) ±¹°¡¿¡ ´ëÇÑ ÄÚµå´Â ISO 3166¿¡ ÁöÁ¤µÇ¾î ÀÖ½À´Ï´Ù. (À§Å°Çǵð¾ÆÀÇ ISO 3166ÀÇ 2¹®ÀÚ Äڵ忡 °üÇÑ ±â»ç¸¦ º¸½Ê½Ã¿À.)

¿©·¯ºÐÀÇ ±¹°¡¿¡ ´ëÇÑ ÇÊ¿ä¿¡ ´ëÇØ KDE Áö¿ªÈ­¸¦ À§Çؼ­, ¿©·¯ºÐÀº ´ÙÀ½°ú °°Àº °ÍµéÀ» ÇØ¾ß ÇÕ´Ï´Ù.

  • svn.kde.org·ÎºÎÅÍ kdebase/l10n µð·ºÅ͸®¸¦ È®ÀÎÇϽʽÿÀ. ±×¸®°í kdebase/l10n À¸·Î À̵¿ÇϽʽÿÀ.
  • svn mkdir xx (ÁÖÀÇ: xx ´Â ±¹°¡Äڵ带 ÀǹÌÇÏ´Â °ÍÀÌÁö ¾ð¾î¸¦ ÀǹÌÇÏ´Â °ÍÀÌ ¾Æ´Õ´Ï´Ù.)
  • cd xx
  • cp /path/to/my_entry.desktop entry.desktop (ÀÌ°ÍÀº ÇʼöÀûÀÔ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é ±¹±â¿¡ ´ëÇÑ À̹ÌÁö¸¦ »ç¿ëÇÒ ¼ö ¾øÀ» °ÍÀÔ´Ï´Ù.)
  • cp /path/to/my_flag.png flag.png
  • cd ..
  • svn add xx/entry.desktop xx/flag.png
  • svn commit xx

´õ ¸¹Àº Á¤º¸¸¦ º¸½Ã·Á¸é kdebase l10n µð·ºÅ͸®¿¡¼­ README ÆÄÀÏÀ» º¸½Ê½Ã¿À. KDEÀÇ "l10n"¿¡ ´ëÇÑ ³ë·ÂÀº Hans Petter Bieker°¡ ÇØÁÖ°í ÀÖ½À´Ï´Ù.

ÀÌ ¹®¼­ ÀÌÈÄ ÁøÇàÇØ¾ß ÇÒ ¹æÇâ

ÀÌ ºÎºÐÀº ½ÇÁ¦ ¹ø¿ª, ÆÀÀÛ¾÷, ÀÎÇÁ¶ó ½ºÆ®·°ÃÄ µî ¸î¸î ¹ø¿ªÆÀ¿¡¼­ ÀÔÁõµÈ µµ¿òÀÌ µÉ¸¸ÇÑ ÈùÆ®¿Í ÆÁÀÇ ¸ðÀ½ÀÔ´Ï´Ù. ¿©·¯ ºÎºÐµé¿¡ ´ëÇØ ÀÌ Âü°íµéÀ» ½ÇÇàÇÏ·Á ÇÑ´Ù¸é ÁÖÀDZí°Ô º¸±æ ¹Ù¶ø´Ï´Ù.

ÀÌ ºÎºÐÀÇ ¸¹Àº °ÍµéÀº ÇÑ ¹æ¹ý ȤÀº ´Ù¸¥ ¹æ¹ýÀ¸·Î ÀÏ°ü¼ºÀ» °®°í ½ÇÇàµÇ¾î¾ß ÇÕ´Ï´Ù. ÀÌ°ÍÀº °¡´ÉÇÑ ÅëÀÏµÇ°Ô º¸¿©¾ß ÇÏ´Â µ¥½ºÅ©Å¾ ½Ã½ºÅÛ¿¡ ´ëÇÑ ÁÖ¿ä °í·Á´ë»óÀÔ´Ï´Ù. µ¿ÀÏÇÏ°Ô ¸ðµç ÇÁ·Î±×·¥µéÀº GUI¿Í ¹®¼­ ¹ø¿ª¿¡¼­ °°Àº ¹ø¿ª ¿ë¾î¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. µ¿½Ã¿¡ KDE¿Í °°Àº ÇÁ·ÎÁ§Æ®¿¡¼­ ÀÛ¼ºÀÚ¿Í ¹ø¿ªÀÚ¿¡ ´ëÇÑ ÃÖ´ë µµÀü ÁßÀÇ Çϳª´Â ÀÌ ÅëÀϼºÀÇ ÇÑ Á¾·ù¸¦ ÀÌ·ç´Â °ÍÀÔ´Ï´Ù.

ÀÌ ºÎºÐ¿¡¼­ ¾ð±ÞµÇ¾î¾ß ÇÏ´Â ¹«¾ùÀΰ¡¸¦ »ý°¢ÇßÁö¸¸, ãÁö ¸øÇß´Ù¸é kde-i18n-doc ¸ÞÀϸµ ¸®½ºÆ®¿¡ ¿äûÇØ ÁֽʽÿÀ.

  • ´Üµ¶À¸·Î ÀÏÇÏÁö ¸¶½Ê½Ã¿À. °¡´ÉÇÑ KDEÀÇ ÀϺκÐÀ¸·Î¼­, ÆÀÀÇ ÀϺκÐÀ¸·Î¼­ ÀÏÇϽʽÿÀ. ¸¸¾à Àá½Ãµ¿¾È ¶³¾îÁ®¼­ ÀÏÇØ¾ß ÇÏ°Ô µÈ´Ù¸é, ¿©·¯ºÐÀÇ ÆÀ »çÀÌÆ®³ª ¸ÞÀϸµ ¸®½ºÆ®¸¦ ÅëÇØ ¾Ë°Ô ÇϽʽÿÀ. ¸¸¾à ´Ù¸¥ ÀϵéÀÌ ¹Ùºü¼­ ÆÀÀåÀÇ ÀÏÀ» Çϱ⠾î·Æ´Ù¸é ´Ù¸¥ ÆÀÀåÀ» ã¾ÆÁֽñ⠹ٶø´Ï´Ù. "ÀÚ¸®"¿¡ ÁýÂøÇÏÁö ¸¶½Ê½Ã¿À. ´ç½ÅÀÇ ÀÛ¾÷Àº º¸Åë ÆÀÀÇ ³ë·ÂÀ¸·Î ¿Ï¼ºµÈ °ÍÀÔ´Ï´Ù. KDE Àüü¸¦ »ý°¢ÇϽʽÿÀ.
  • ¸¸¾à ÇÑ ¸í ÀÌ»óÀÇ ÆÀÀåÀÌ ÀÖ´Ù¸é °¢°¢ÀÇ ÆÀÀåÀÌ Ã¥ÀÓÀ» Áö´Â ¿µ¿ªÀÌ ¾îµðÀÎÁö, ÁÖ·Î ÀÏÇÏ´Â »ç¶÷ÀÌ ´©±¸ÀÎÁö »ç¶÷µéÀÌ ¾Ë°Ô ÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. (¿¹¸¦ µé¾î, PO ÆÄÀÏ, ¹®¼­, À¥»çÀÌÆ®, »ç¿ëÀÚ Çǵå¹é, ¹ö±× ¸®Æ÷Æ® µî...) ±×¸®°í ÆÀ ³»¿¡¼­ ÆÀ¿¡ °ü·ÃµÈ ºÐÀïÀ̳ª Åä·ÐÀÌ ÀÖ´Ù¸é ³»ºÎÀûÀ¸·Î¸¸ À¯ÁöÇϽʽÿÀ. i18n ÆÀÀåµéÀº ¹®Á¦¿¡ ´ëÇØ ÁßÀçÇØÁְųª ÆÇ°áÀ» ³»·ÁÁÙ °³ÀÎÀûÀÎ ÆÀ ¹®Á¦¿¡ ´ëÇؼ­´Â ÃæºÐÈ÷ ¸ð¸¨´Ï´Ù.
  • "´Üµ¶À¸·Î ÀÏÇÏÁö ¸¶½Ê½Ã¿À"´Â ÆÀÀÇ ±×·ìÀÌ ¾î¶² ¸ñÇ¥¸¦ °¡Áö°í ÀÖ´ÂÁö, ´ç½ÅÀÇ ¹ø¿ª ÀÛ¾÷À» ¾î¶»°Ô º¸°í ÀÖ´ÂÁö¿¡ ´ëÇØ ÆÀÀå°ú ¾ê±âÇÏ´Â °ÍÀ» ¶æÇϱ⵵ ÇÕ´Ï´Ù. ¸¸¾à ´ç½ÅÀÇ ¹ø¿ªÀÌ "ÀϹÝÀûÀÎ »ç¿ëÀÚ(¿µ¾÷Á÷°ú °ü·ÃµÈ »ç¶÷À» Æ÷ÇÔÇÏ´Â)¿¡ ´ëÇÑ °Í"À̶ó¸é ÄÄÇ»ÅÍ Àü¹®°¡¿¡ ´ëÇØ ¸¸µé¾îÁø ¹ø¿ª°ú ´Ù¸£°Ô º¸ÀÏ °ÍÀÔ´Ï´Ù. (º¸Åë, KDE´Â "ÄÄÇ»ÅÍ µµ»ç"µé¸¸À» °í·ÁÇÏÁö ¾Ê½À´Ï´Ù.) ¸¹Àº °æ¿ì ¿©·¯ºÐÀÇ ÆÀÀÌ Á¦½ÃÇÏ´Â ´ë·Î °³¹ßÀ» ½ÃµµÇØ ÁֽʽÿÀ.
  • Ç¥ÁØÀûÀÎ ¿ä¼Ò¿¡ ´ëÇØ Ç¥ÁØ ¹ø¿ªÀ» ãÀ¸½Ê½Ã¿À. ±×¸®°í ±×°ÍÀ» °íÁ¤ÇϽʽÿÀ. ÀÌ·¯ÇÑ °üÁ¡¿¡¼­ i18n.kde.org/po_overview ¿¡¼­ÀÇ ÇÔÃàµÈ PO ¹ø¿ª(¶ÇÇÑ "¿ä¾à ÆÄÀÏ"·Î ¾Ë·ÁÁø)µéÀº ¸Å¿ì À¯¿ëÇÒ °ÍÀ̸ç, ÀÌ·¯ÇÑ ÆÄÀÏÀ» ã°Å³ª ÀÏ°ü¼ºÀ» È®ÀÎÇϴµ¥ µµ¿òÀ» ÁÙ ¼ö ÀÖ´Â ºñ±³µÉ ¼ö ÀÖÀ» Àǹ̸¦ Á¦°øÇÏ´Â ¹ø¿ª ÇÁ·Î±×·¥¿¡ Ưº°ÇÒ °ÍÀÔ´Ï´Ù. ¶ÇÇÑ À¥ Æ÷¶ó¿Í ¸ÞÀϸµ ¸®½ºÆ®ÀÇ ´Ü¾î¿Í »çÀüÀ» Àß »ç¿ëÇϵµ·Ï ÇÕ´Ï´Ù. ±×·¯ÇÑ ´Ü¾î ¸ñ·ÏÀ» °ü¸®ÇÏ´Â ¾ÆÁÖ Èï¹ÌÀÖ´Â µµ±¸´Â Matthias KieferÀÇ kdedict ÀÔ´Ï´Ù.
  • ¸ðµÎ°¡ ¼ö¿ëÇÑ ±ÔÄ¢À» È®ÀÎÇϱâ À§ÇØ "»óÈ£ ±³Á¤"ÀÇ ½Ã½ºÅÛÀ» °³¹ßÇϽʽÿÀ. ÀÌ°ÍÀº ¶§¶§·Î ¹Î°¨ÇÑ »ç¾ÈÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù. (µû¶ó¼­ ³Ê¹« ÅäÀÇÇÏÁö ¸¶½Ê½Ã¿À.), ±×·¯³ª ÀÌ°ÍÀº ¿À·¡ºÃÀ» ¶§ ½Ç¼öÇÑ Ã¶ÀÚ¿Í ¸ÞÄ«´ÏÁòÀ¸·Î ÀÎÇØ ³ªÅ¸³ª´Â ¾î¸®¼®Àº ¿À·ù¸¦ ¼öÁ¤ÇÏ´Â µ¥ ÃÖ°íÀÇ ¼ö´ÜÀ¸·Î °ø±ÞµÉ °ÍÀÔ´Ï´Ù.
  • ÁÖ¾îÁø ÇÁ·Î±×·¥¿¡ ´ëÇØ ¿Â¶óÀÎ µµ¿ò¸»ÀÇ ¹ø¿ª°ú GUI ¹ø¿ªÀ» °°Àº »ç¶÷ÀÌ ÇÏ´Â °Íµµ ÁÁÀº »ý°¢ÀÔ´Ï´Ù. ¸¸¾à ÀÌ°ÍÀÌ ºÒ°¡´ÉÇÏ´Ù¸é, ÃÖÁ¾ ¹®¼­, ½ºÅ©¸° ¼¦À» °¨¼öÇÏ´Â »ç¶÷ÀÌ ÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. ±×·¡¼­ "°°Àº ¾ð¾î"·Î ¿Â¶óÀÎ µµ¿ò¸»°ú GUI ÀÎÅÍÆäÀ̽º, PO ÆÄÀϵîÀ» ÀÏÄ¡Çϵµ·Ï ÇØ¾ß ÇÕ´Ï´Ù. ¹®¼­¿Í ¸Þ´ºÀÇ ´Ü¾î°¡ ´Ù¸¥ °æ¿ì »ç¶÷µé¿¡°Ô Å« È¥¶õÀ» ÀÏÀ¸Åµ´Ï´Ù.
  • °¢ GUI ¿Í ¹®¼­ ¹ø¿ª¿¡¼­ ÁöÀûµÇ´Â ÁöÁ¡¿¡ ÀûÀýÇÑ ¹®¹ý È®ÀÎÀ» ÇÏÁö ¾Ê°í SVN¿¡ ÆÄÀÏÀ» º¸³»Áö ¸¶½Ê½Ã¿À. ´Ù½Ã ¹®¹ý°ú ´Ù¸¥ ºÎºÐÀ» È®ÀÎÇÏ´Â ¸ÞÄ«´ÏÁòÀ» °ø±ÞÇϴ Ưº°ÇÑ ÇÁ·Î±×·¥(GUIÀÇ POÆÄÀÏ°ú ¹®¼­ ¹ø¿ª¿¡ ´ëÇÑ K¹Ùº§°ú °°Àº ÇÁ·Î±×·¥)À» °­·ÂÈ÷ ÃßõÇÕ´Ï´Ù.

´ç½ÅÀÇ ÀÛ¾÷¿¡ ´ëÇÑ ÀÎÁõ ¾ò±â


ÀÚÀ¯ ¼ÒÇÁÆ®¿þ¾îÀÇ »ç¶÷µé ´ëºÎºÐÀÌ ¾Æ¹«·± ´ñ°¡ ¾øÀÌ ÀÛ¾÷À» Àß ÇØÁÝ´Ï´Ù. °Ô´Ù°¡, ±×µéÀº ÀÛ¾÷ÀÇ ¸î¸î Áö½ÄÀ» º¸±â¸¦ ÁÁ¾ÆÇÕ´Ï´Ù. KDE ¹ø¿ª¿¡¼­ ´ç½ÅÀÇ ÀÛ¾÷ÀÌ ´ÙÀ½ÀÇ ¹æ¹ýÀ¸·Î ¾Ë·ÁÁú ¼ö ÀÖ½À´Ï´Ù.

  • www.kde.org/credits.html ¿¡ ÀÖ´Â KDE ÀÎÁõ ÆäÀÌÁö¿¡¼­
  • ¹ø¿ªµÈ ÇÁ·Î±×·¥ÀÇ µµ¿ò¸»->Á¤º¸ ´ëÈ­»óÀÚ¿¡¼­
  • ¹ø¿ªµÈ ¹®¼­ÀÇ "ÀÎÁõ" ºÎºÐ¿¡¼­

ÀÎÁõ ÆäÀÌÁö¿¡ ´ëÇÑ °í·Á¿Í ÇÔ²² SVN À¥ ¸ðµâ(www/credits/contributors)¿¡¼­ ÆÄÀϷκÎÅÍ HTML ÆäÀÌÁö¿¡ ´ëÇÑ ³»¿ëÀ» ¾òÀ» ¼ö ÀÖ´Â ½ºÅ©¸³Æ®¸¦ ÅëÇØ À̸§µéÀÌ ¾ò¾îÁö°í ÀÖ½À´Ï´Ù. µû¶ó¼­ HTML ÆäÀÌÁö»Ó¸¸ ¾Æ´Ï¶ó ¹èÆ÷ ÆÄÀϵéÀ» ÇØ¾ß ÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ »çÇ׿¡ ´ëÇؼ­´Â °°Àº ¸ðµâ¾È¿¡ ÀÖ´Â README¿¡¼­ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ¹ø¿ªÀÚµéÀÇ À̸§À» µî·ÏÇÏ´Â °ÍÀº °¢°¢ÀÇ ¾ð¾î ÆÀÀåÀÇ ÀÛ¾÷ÀÔ´Ï´Ù.

µµ¿ò¸» ¸Þ´º¿¡¼­ "Á¤º¸" »óÀÚ¿¡ ´ëÇÑ °í·Á¿Í ÇÔ²² ¹ø¿ªÀÚÀÇ À̸§°ú À̸ÞÀÏ ÁÖ¼Ò¸¦ °¢°¢ÀÇ 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 ¹ø¿ª


3ÀåÀÇ ³»¿ë
  • POT ÆÄÀϵé°ú PO ÆÄÀϵé
  • GUI ¹ø¿ª¿¡ ´ëÇÑ ÇÒ ÀÏ(To-do) ¸ñ·Ï
  • Step by Step: The Translation of POTs and POs
  • Peculiarities and Difficulties
  • Using Specialized Programs for GUI Translation
    • KBabel
    • (X)Emacs in PO Mode

´ç½ÅÀÇ ÀÛ¾÷À» È®ÀÎÇÏ°í Àü´ÞÇϱâ
  • ¹®¹ý °Ë»ç : msgfmt --statistics --check
  • ºüÁø º¯¼ö³ª ´Ù¸¥ ¹®Á¦¿¡ ´ëÇØ È®ÀÎ
  • ÄÄÆÄÀÏ, ³»¿ë°ú ´ÜÃàÅ° °Ë»ç
  • ´ç½ÅÀÇ ÀÛ¾÷À» SVN¿¡ Àü´ÞÇϱâ
  • SVN Ãæµ¹

ÀÌ ÀåÀº KDE¿Í KDEÀÇ ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ±×·¡ÇÈ »ç¿ëÀÚ ÀÎÅÍÆäÀ̽ºÀÇ ¹ø¿ªÀ» ´Ù·ì´Ï´Ù. ¿©±â¼­ ½ÇÁ¦·Î ¹ø¿ªµÇ´Â °Í¿¡ ´ëÇÑ ¹è°æ Á¤º¸(¿¹¸¦ µé¾î, pot¿Í po ÆÄÀÏ)¿¡ ´ëÇؼ­´Â gettext Á¤º¸ ÆäÀÌÁö¸¦ ÀÐÀ¸½Ê½Ã¿À. (ÁÖÀÇ: KDE ¿Â¶óÀÎ µµ¿ò¸»Àº ÀÌ·¯ÇÑ Á¾·ùÀÇ ¹®¼­¸¦ Á¦°ø¹Þ´Â °¡Àå Æí¸®ÇÑ ¹æ¹ýÀÔ´Ï´Ù.) Ưº°È÷ µ¶ÀÏ¾î ¿øº»À¸·ÎºÎÅÍ ÀÌ ºÎºÐÀÇ Ã¹¹ø° ¹öÀüÀ» Á¦ÀÛÇØ Áֽŵ¥ ´ëÇØ Christopher Kuhi ¿¡°Ô °¨»çµå¸³´Ï´Ù.

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 µð·ºÅ͸®¿¡¼­ ãÀ» ¼ö ÀÖ½À´Ï´Ù. Æ÷ÇÔµÈ °ÍµéÀº

  • l10n/templates/ Æú´õ ¾ÈÀÇ POT ÆÄÀϵé
  • °¢ µð·ºÅ͸®¿¡ ÁöÁ¤µÈ ¾ð¾î PO ÆÄÀϵé
    • l10n/$LANG/messages/(package-name)/ (¿¹¸¦ µé¾î µ¶ÀϾî ÆÄÀÏ¿¡ ´ëÇؼ­ l10n/de/messages/kdebase/konqueror.po)
    • µð·ºÅ͸® l10n/$LANG/docs/(package-name)/(appfolder)/index.docbook¿¡ ÁöÁ¤µÈ ¾ð¾î ¹®¼­(¿¹¸¦ µé¾î, l10n/de/docs/kdeutils/kdiff/index.docbook)

  • ($LANG Àº ÀÌ¹Ì ¾ð±ÞµÇ¾úµíÀÌ RFC 3066À» µû¸£´Â ÄÚµå Ç¥±â¹ýÀÎ, "de", "fr", "ru", µîµîÀÇ ¾ð¾î Äڵ忡 ´ëÇÑ ¾à¾îÀÔ´Ï´Ù.)

GUI ¹ø¿ª¿¡ ´ëÇÑ ÇÒ ÀÏ(To-do) ¸ñ·Ï


¾î¶² ÇÁ·Î±×·¥ÀÌ ¾ÆÁ÷ ¹ø¿ªµÇÁö ¾Ê¾Ò´ÂÁö ¾Ë¾Æ³»´Â ¹æ¹ý¿£ Å©°Ô µÎ°¡Áö°¡ ÀÖ´Ù:

  • [http]KDE ±¹Á¦È­ »óÅÂÇ¥¿¡¼­ ¾Ë¾Æ³»´Â ¹æ¹ý.
  • ƯÁ¤ ¾ð¾î¿¡ ´ëÇÑ POÆÄÀϵé°ú POTÆÄÀϵéÀ» ºñ±³ÇÏ´Â ¹æ¹ý. : Áï, ¾î¶² ÇÁ·Î±×·¥ÀÌ "l10n/$LANG/messages/(package-name)"¿¡ POÆÄÀÏÀ» °®°í ÀÖÁö ¾Ê´Ù¸é, ±× ÇÁ·Î±×·¥Àº ¾ÆÁ÷ ¹ø¿ªÀÌ ¾È µÇ¾úÀ» °¡´É¼ºÀÌ ¸Å¿ì ³ô´Ù. (±×·±µ¥, ÀÌ ºñ±³ÀÛ¾÷Àº KBabelÀÇ "Catalog Manager"°¡ ÀÚµ¿À¸·Î ÇÏ´Â °ÍÀ̱⵵ ÇÏ´Ù.) ±×·³¿¡µµ ºÒ±¸ÇÏ°í, ¹ø¿ª¿¡ ¶Ù¾îµé±â Àü¿¡ ÆÀ ÄÚµð³×ÀÌÅÍ¿¡°Ô ´©±º°¡ ÀÌ ÇÁ·Î±×·¥ÀÇ ¹ø¿ªÀ» ÇÏ°í ÀÖ´ÂÁö ¹°¾îº¸°í ¹ø¿ªÀÚ°¡ ¾ø´Ù´Â °É È®ÀÎÇÏ´Â °ÍÀÌ ÁÁ´Ù. ÆÀÀÇ ÇÒ ÀÏ ¸ñ·Ï°ú "ÆÐÅ°Áö ¸ÞÀÎÅ×À̳Ê" (kdeutils, kdemultimedia°°Àº Àüü KDE ÆÐÅ°Áö ¹ø¿ªÀ» ´ã´çÇÏ´Â »ç¶÷µé) ½Ã½ºÅÛµµ Áߺ¹ ¹ø¿ªÀÛ¾÷À» ¸·´Â µ¥¿¡ Å« µµ¿òÀÌ µÉ °ÍÀÌ´Ù.

KDE ÇÁ·Î±×·¥Àº °è¼Ó °³¼±µÇ°í ÀÖ´Ù. ÀÌ·¯ÇÑ ½Å¼ÓÇÑ °³¹ßÀÇ ´ÜÁ¡À̶ó¸é GUI ÅؽºÆ® ´ë°³°¡ °è¼Ó º¯ÇÏ°í ÀÖ´Ù´Â °ÍÀÌ°í, µû¶ó¼­ ¹ø¿ªµµ ±×¿¡ ¸ÂÃç °è¼Ó º¯ÇØ¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù. ÀÌ¹Ì ¹ø¿ªÀÌ µÈ ÇÁ·Î±×·¥ Áß ¾î¶² °ÍÀÌ »õ·Î¿î ÀÛ¾÷ÀÌ ÇÊ¿äÇÑ Áö ¾Ë±â À§ÇØ´Â ÀÛ¾÷ µð·ºÅ丮¸¦ ¾÷µ¥ÀÌÆ®ÇØ º¸°Å³ª, KDE GUI ¹ø¿ª Åë°è¸¦ ºÁ¾ß ÇÑ´Ù.

À§¿¡ ¾ð±ÞÇÑ Åë°è ÆäÀÌÁö´Â Á¤º¸°¡ ¼­ºê¹öÀü ºê·£Ä¡, ¹ø¿ª ÆÀ, ÆÐÅ°Áö ÀÌ·¸°Ô ¼¼ ·¹º§·Î ±¸¼ºµÇ¾î ÀÖ´Ù. ÆÐÅ°Áö ·¹º§¿¡¼­´Â °¢ .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:

  • If there is no translation for a given program (i.e. there are no PO files with the same name in the appropriate folder "l10n/$LANG/messages/(package-name)/") -- and only if this is the case! -- then a POT file is loaded into an text editor and saved with the ".po" ending in the folder where it was missing. This results in a file with a name like "l10n/$LANG/messages/(package-name)/(program-name).po". For instance: if you are sure that Kate was not translated to your language yet, you load the recent l10n/templates/messages/kdebase/kate.pot and save it as l10n/$LANG/messages/kdebase/kate.po . Then you can start translating. From now on you do all your work for the given program with the PO file. Most of the work consists of updating, improving, and unifying earlier translations (i.e. POs which are already there).
  • After you have filled out (or updated) the header (who, when, etc. as well as deleting the first "fuzzy" tag, see below) you fill in the empty strings with new translations. In POs that were already translated at an earlier time you check the "fuzzy" translations and correct them if necessary. Either way, remove the "fuzzy" tag at the beginning of the line after you finished working on it.

Nowadays, most of these steps are done automatically by specialized programs like KBabel ? from choosing the POT files and saving them as POs, through header updates and removing fuzzy entries to syntax checks.

A sample header could look like this:
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"

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.

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:

#: kedit.cpp:90 kedit.cpp:1071 msgid "Show &Status Bar" msgstr ""

...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.

Finally there might be lines at the end of the file beginning with "#~" like this:

#~ msgid "Where do you want to go tomorrow?" #~ msgstr "Where do you want to go tomorrow?" #~ msgid "No comment available" #~ msgstr "Keine Erklung verfbar"

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.

We already mentioned that the characters "#" and "~" have special meaning. A few other things to watch out for are the following:

  • The "&" character in one of the examples above is used to mark an "accelerator key", ie a letter which in combination with Alt or Alt Gr (on PC keyboards) will execute the command; i.e. Alt Gr + S for "Show &Status Bar". You have to make sure that the same letter is not marked twice within one menu. There is a semi-automatic test for finding existing duplicates ("accelerator clashes"). See Compilation, Context and Accelerator Checks.
  • Some PO files contain so-called "context information" to let translators know whether, for instance, "home" means the user directory, a key on the keyboard or the beginning of a line. Such context information always begins with the letter combination "_:". The important thing is: These strings must not show up in the translations. In other words: Do not translate or copy this stuff into the "msgstr" part of the PO file. If you do, your whole file will not work anymore. The same as above applies to "_n:", which denotes strings handling plural cases. You do not need to translate "_n:". For the correct handling see the following example:


#: kdeui/kstdaction.cpp:669 msgid "" "_: beginning (of line)\n" "&Home" msgstr "&Dateianfang"

#: src/kernel/qaccel.cpp:562 msgid "" "_: QAccel\n" "Home" msgstr "Pos1"

  • Special characters such as quotes must be "escaped" (i.e. preceded with a backslash), if you want to use them as part of the text (see example below). Unescaped quotes will be interpreted by the programs which read the file as the end of the "msgstr". The test routine msgfmt --statistics --check, described below, would terminate at this point with an error. The syntax highlighting and the check routines in KBabel will help you with the handling of these special characters.


#: cardmaps.cpp:105 #, c-format msgid "kpat: PANIC, cannot load card pixmap \"%1\"\n" msgstr "KPat: schwerer Fehler, kann Kartenbild \"%1\" nicht laden\n"

  • One problem which languages with longer than average words (German, for example, is notorious here) sometimes encounter is dialog boxes which are too small, cutting off or cramming together translated text. This is one of the things that can only be determined for sure by checking the translations in the compiled program. The obvious, but always temporary, solution is to "keep it short." You would basically do this if there were no more time to pursue the proper solution, namely contacting the author of the program so that he/she can adjust the geometry of the offending boxes. In any case, an email describing the problem should be sent to the author or even better create a new bug report in KDE Bugs.
  • Sometimes English text appears in the program interface even though the PO file has been completely translated, and the text in question cannot even be found there. One way this can happen is when the text comes from "somewhere else" (often from kdelibs which can be found throughout the KDE interface, sometimes from separate modules of the same program that have extra POs). Another possibility is that this particular text has not been made "i18n conform" by the author. Any strings which should be seen by the user are supposed to be passed to the C++ function QString i18n(const char *text). This ensures that the properly localized version of a string is shown (assuming there is a translation). Thus, it is only possible to translate texts which have been prepared in this manner. In cases where the untranslated text cannot be found in the PO file the author may have forgotten to do this. If you want to know for sure, you need to look in the source to the program; for example, you can find out the filename and line number by using grep -n "text in question" *.cpp in the source code folder. Anyway, if you discover such a case, please file a bug at bugs.kde.org or write the author of the program. Do not just leave the problem unmentioned.

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.

As of version 1.0 its contents and capabilities can be described as follows:

  • General Features:
    + User friendly, easy to understand and widely configurable
    user interface, fully KDE2/3 conform.
    + Every part of KBabel comes with extensive context ("What's
    this") help that make every function easy to understand and to handle.
    + Adds capability to Konqueror and KDE file dialogs to preview
    PO files and show their properties.
  • PO-File Editor:
  • + Capability to open multiple files (or multiple views of the
    same file)
    + Full editing functionality, accessible through the graphic
    user interface as well as through user definable keyboard shortcuts
    + Powerful spell checking functionality + Capability to show diffs to older messages + Full navigation capabilities (such as go to next fuzzy or
    untranslated string)
    + Capability to save and read files in Unicode encoding (UTF-8) + Unlimited undo capability + Syntax highlighting + Automatic file header updates + Automatic change of "fuzzy" status of translated messages + Support for easy insertion of tags and URLs + A plugin framework for dictionaries, such as po compendium
    files (as for example provided on i18n.kde.org/po_overview/ ) , for consistency checks or translation suggestions
    + A "rough translation" function to initialize untranslated
    messages with suggestion from a dictionary
    + Automatic syntax check with msgfmt when saving and if an
    error occurred easy navigation to messages, which contain errors
    + Full Drag & Drop - support + Configurable fonts for message editor + Various methods to "see" whitespace at end of lines + Various methods to check consistency of translated messages,
    like comparing printf and Qt arguments in msgid and msgstr
    + Quick overview over context in the po file + Showing source code by references in message comments
  • Catalog Manager:
  • + File manager view for directories of the l10n module (or
    similarly structured) directories), showing the present status of all PO files: if they are in need of a revision or not, how many fuzzies and untranslated strings are included etc. This view is always automatically updated and reflects all changes done to the files, including changes by programs other than KBabel.
    + Various file open mechanisms for editing in KBabel: use Drag
    & Drop, double click, keyboard or context menu
    + "Mark files" function (e.g. to identify POs that are in the
    responsibility of other translators)
    + Powerful navigation using PO file statistics + Automatic comparisons and statistics of POT and PO files for
    a quick overview which and how many files are translated (or not) and which files may be obsolete
    + Syntax check (msgfmt --statistics) for existing files to
    control if the translated files will compile and, accordingly, work when distributed
    + Free configurable commands, that can be executed from the
    Catalog Manager's context menu.
    + Search/Replace functions in multiple files at once. + Spellchecking of multiple files at once.

Both the KBabel Editor and the Catalog Manager come with extensive "What's this" help that makes every function easy to understand and use. You can get the package from the kdesdk module of SVN or from its home page at i18n.kde.org/tools/kbabel

==== (X)PO ModeÀÇ Emacs====

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:

  1. Copy po-mode.el (not the compiled .elc file) from the gettext package to a directory that's visible to XEmacs (e.g. /usr/X11R6/lib/xemacs/site-lisp/);
  2. make the following entry at the beginning of the .emacs or, depending on your distribution, .xemacs-options file in your home directory: (autoload 'po-mode "po-mode")
  3. and make the following new entry to Options -> Customize -> Variable -> auto-mode-alist: "\\.potx?\\'\\|\\.po\\." (with the quotes) in the upper line and po-mode in the lower line (without any quotes).

The functionality is about as follows:

  • All important navigation features (go to next fuzzy, untranslated etc.)
  • Automatic insertion of (some) header data
  • Validation (checking if everything is formatted okay)
  • Lots of useful shortcuts for navigation, removing fuzzies etc.
  • Searching auxiliary-files for translations of a given string into other languages
  • Looking up strings in the sources

As always with Emacs, it takes some time to get used to it. (For instance, the buffer with the original text is kind of read-only and you have always to open a new buffer where you can work on your translation.) But for people who are used to Emacs or are willing to learn its ways, this mode can be a big help. Another factor might be that Emacs is apparently still one of the best ways to edit DocBook SGML which is also the format of KDE documentation. A very good introduction to working with Emacs in general and working with the SGML module in particular can be found as an Acrobat PDF file at www.snee.com/bob/sgmlfree/index.html

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:

  • Context information: As pointed out before, PO files may contain comments on the exact meaning of a string (e.g. if "home" stands for the user directory, a key on the keyboard or the beginning of a line). This context information must not show up in your translation.
  • Arguments: Many strings show variables (%1, %2, %3...) which will be replaced with actual contents on runtime of the program. The variables of the original string must all show up in the translation (although not necessarily in the same order).
  • Equations: have to be balanced in the translation just the same as in the original.

Again, KBabel provides automatic validation routines for all these possible issues. In recent versions, it also allows spell checking of your files.

ÄÄÆÄÀÏ, ³»¿ë°ú ´ÜÃàÅ° È®ÀÎ


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:

  • Change to the directory "l10n" and create a file named inst-apps and add the language(s) that you want to compile (one per line, see the subdirs file as example of the needed format.)
  • Then just compile with ./scripts/autogen.sh && ./configure && make && make install.

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.

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.

Note

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...

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:
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?

Marko Rosic wrote:
msgid ""
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?
Depends. The portion between <<<<< and ====="=" is your version and the one between ===="=" and >>>>>> is the one in CVS. I would say merge them :)

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.

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.)

Note

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:
  • You are going to need KBabel by Matthias Kiefer just as for GUI translation. This program is part of the kdesdk module in SVN. This package can be downloaded from the same source as the other parts of KDE. KBabel supports UTF-8 as required for the documentation and online help.
  • For localized screen shots, you should make yourself familiar with a program like KSnapshot (from the KDE package kdegraphics) or XV.
  • It is also extremely advisable to have a program around for checking the syntax of the finished doc translation. For this task, you will need the XML? parser meinproc by Stephan Kulow. This parser is part of the kdelibs core module.
  • Finally you are going to need po2xml. It takes a po-file and produces from this source the complete XML? document. This program belongs like KBabel to kdesdk.

These programs are a big help in the translation process (especially when searching and correcting fuzzies and untranslated strings). They ease up the comparison between older translations, check for formal correctness and the work flow in general. And if you use this tools and give the authors feedback, they are going to improve even more.

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.

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.

Caution

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
  • the POT files in the directory l10n/templates/docmessages/(EXAMPLE)
  • the translated PO files in the directory l10n/$LANGUAGE/docmessages/(EXAMPLE)/
  • the English documentation files in the directory l10n/documentation/(EXAMPLE)/doc/ (you need this file to generate the translated DocBook file)
  • the translated documentation (in DocBook format) in the directory l10n/$LANGUAGE/docs/(EXAMPLE)

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.

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):

Important

Since things keep changing (standards, formats, etc.) it is important to join the translators mailing list and to watch out for the announcements there.
  • If you start KBabel for the first time it will ask you for some user information that you should supply correctly. From this information the headers of the PO files are automatically generated. Remember to set Settings->Configure KBabel... Preferences->Save->Encoding: Default: to UTF-8 (8bit Unicode Transfer Format). Additionally, you should enter the path to your PO files for the Catalog Manager (see next item) and probably also activate Preferences->Edit the Show surrounding quotes on the Appearance tab because otherwise you cannot see spaces at line ends.
  • First thing after you launch KBabel you should start the Catalog Manager with Tools->Catalog Manager.... The Catalog Manager shows you what documents exactly require work (fuzzies, untranslated strings and programs). For this to work you need a current copy of the directories l10n/templates/docmessages/ and l10n/$LANGUAGE/docmessages/. Also you have to enter the path to these files in the KBabel settings.
  • If the Catalog Manager shows no translation for your program (i.e. there is no corresponding PO file in l10n/$LANGUAGE/docmessages/(PACKAGE) -- and only in this case -- on double click the POT file is loaded into the editor and saved with the extension PO in this same directory where this file is missing i.e. l10n/$LANGUAGE/docmessages/(PACKAGE)/(PROGRAM).po. KBabel takes automatically care of this, if you load the file from the Catalog Manager and save it afterwards. You just need to make sure that you put the right path names in Settings->Configure KBabel... in the dialog at Catalog Manager. From now on you are only working with the PO file for this program. The main part of your work will be to change and keep current already translated documents (i.e. existing PO files).
  • Then you have to translate untranslated strings and check the already translated strings that are marked as "fuzzy". To simplify correction of fuzzies KBabel provides the "diff mode". In this mode (for corrections this mode should always be switched on) new and deleted parts of the msgid are highlighted. For this to work KBabel keeps a translation database where it automatically stores translated msgids and msgstrs. As soon as you change the msgstr the "fuzzy" mark will disappear. If you decide that the msgstr is without changes correct you need to delete the "fuzzy" mark yourself by pressing Ctrl+U. This is important because a DocBook file can only be generated, if the PO file is 100% translated.

If the documentation directory of the program contains screen shots you should produce a localized (e.g. with a translated GUI) version. KSnapshot is a useful tool for this purpose, but any application is fine as long as it can produce screen shots and save them as PNG file.

Important

You should use the KDE standard design for the screen shot. Unfamiliar looking screens may confuse the users.

Caution

It is important to save the localized picture under the same name as the original one in the translated DocBook directory corresponding to the applications English documentation DocBook directory (not the directory of the PO file).

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:
  • Line breaks have no influence on the formatting of the generated DocBook. You can insert a line break wherever you find it suitable for your needs. It is important, however, to have a space at the end of the line. For example:
"... volume of your" sound card."
would otherwise become:
... volume of yoursound card.
  • Between <keyword> and </keyword> only text is allowed, for example <keyword>&kmidi;</keyword> is not valid. It has to be <keyword>kmidi</keyword> instead.
  • The screenshots should always show the current appearance of the GUI.
  • One word of advice: Do not translate word for word or sentence for sentence literally. Try to translate the meaning. Read a complete section and translate it.

In addition to the role of "#" and "~" (explained above) there are a few more peculiarities:
  • There are two msgids which are dedicated to documentation translation. They are somewhat special in that they do not have corresponding strings in the English original documentation. These are CREDIT_FOR_TRANSLATORS and ROLES_OF_TRANSLATORS. As you probably guessed this is the place where you put in your name and your email address. It is important that these msgstrs have a special markup to make them fit into the context (You can find some background about this special msgids and possibilities to add paragraphs that do not exist in the English documentation here.) So here is an example of a document which has two different translators:
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 "" " "role=\"translator\"><firstname>FIRSTNAME1</firstname><surname>LASTNAME1 me>" "<affiliation><address><email>EMAILADDRESS1</email></address></affiliation>" "<contrib>Translation</contrib></othercredit>" " "role=\"translator\"><firstname>FIRSTNAME2</firstname><surname>LASTNAME2 me>" "<affiliation><address><email>EMAILADDRESS2</email></address></affiliation>" "<contrib>Correction of the Translation</contrib></othercredit>"
  • In KBabel the quotation marks (") have a special meaning. On the other hand you need them at several places in the markup or the normal text. In such cases you have to "escape" them with a backslash. In the above example in the markup you find:
"...role=\"translator\"...
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.
  • & in the msgid is used in the GUI translation as the mark for a shortcut to a menu entry. So to help with this KBabel highlights the msgstr as wrong if this character is not balanced between msgid and msgstr (actually KBabel tries to guess if you translate GUI or documentation but for this guess it is not always enough information available). For documentation this balancing is no longer true and can lead to a highlighted msgstr even though the msgstr is correct. For translation of documentation you can turn this feature off (Settings->Configure KBabel... and Edit, General, Change text color on error).

What else to watch out for in the translation process?

Organization and syntax:
  • If the documentation is missing something or is not up to date with the current GUI you should contact the author of the original documentation and ask him or her to add the missing part in the original documentation. (In case (s)he is unavailable you may also contact the documentation coordinator.) Your possibilities to differ from the original are very limited since the markup has to be consistent with the English documentation and the structure of the document must match the English version. So if you want e.g. to add one paragraph in the translation, it is best to ask the author to add that paragraph in the original. That gives you an additional msgid to translate. For special cases there is a possibility to add paragraphs, that only exist in the translated documentation but not in the English original. However this should be used with care. Two msgids, that represent text, which does not exist in the English document are CREDIT_FOR_TRANSLATORS and ROLES_OF_TRANSLATORS. They are generated by a special comment in the English documentation. You will find the lines
<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
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.
  • Work as closely as possible together with the GUI translator of the respective application if you cannot translate the GUI yourself (which would be advisable). Always make sure the terms in the GUI and the documentation for the same program are the same for the same elements.
  • For the program name you should use the entity that is defined for this program. For example the program KApp will have the entity &kapp; defined. You should always use that to make sure the name is written in a consistent way.
  • Screen shots and all other pictures have to be in the PNG format (Portable Network Graphics) because of patent licensing issues with the former GIF format. In other words: GIF pictures must not be used.

Style:
  • Each translation team should probably have some basic style guides which sets the tone for the texts, determines how to address the user and so on. The technical terms of the GUI should be translated in a consistent manner (like button, menu, tab, ...). To help with this, there is the visual dictionary in the KDE help center. So once these items are translated the terms should be used consistent by all translators of your language.
  • KBabel has a translation database. This database collects all msgids and msgstrs you translate to make the diff feature work. It is a good idea to put the translations of all other translators into this database as well. This is also a great help to keep consistency (Settings->Configure Dictionary->Translation database).
  • There exists also the web based KDE Dictionary database with translations that you can use for your language.

Checking and Committing Your Work


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.
  • You could use the spell checker which is built into KBabel (Tools->Spelling->Spell check...). This spell checker can be configured through the Preferences dialog (Settings->Configure KBabel...).
  • To check the XML? syntax you have to generate the translated XML? documentation (DocBook) from the PO file. After that you can check the XML? syntax of this docbook file with an XML? parser. You have at least two possibilities to choose from, depending on whether you have only one documentation file or the necessary part of the whole source tree of the documentation for your language:
    + If you have at least the necessary part (the part where the
    PO file in question resides) of the source tree of the package l10n for your language and the doc part of the source tree of the package for the translated program (the part where the English docbook file in question resides), you could use the script update_xml. You also need to have po2xml in your path, as it is called by this script. The script generates the docbook files from the corresponding PO files for that language. The script takes the language to compile as first command line parameter, so if your language directory is named NN, you type update_xml NN to start the script. The script updates all files it can find in your language tree. If you only want to update a certain package or program, you can add it as second parameter to update_xml. For example, to update the German translation package kdemultimedia:
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
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.docbook
file. In the header of the generated file you have to specify your language, i.e. if your language was "German" change the line
<!ENTITY % English "INCLUDE" ><!-- change language only here -->
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.
  • Error correction: Keep in mind that you need to correct the errors in the PO file, because the docbook file is autogenerated from this. Start corrections from the beginning of the document, because one error may result in a chain of subsequent errors. If you get errors about some file "dtd/kde.dtx" that could not be found, check that the needed version of meinproc is called. (If you realize that your self-compiled KDE is missing a new meinproc, check the BZip2 library and recompile kdelibs.)

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

Handling Translation Bugs

Submitting Bug Reports Closing Bug Reports Followup Messages

Caution

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:

  1. All sorts of reports on what their users think are bad or wrong translations
  2. Bug reports, wishlist stuff, and any sort of feedback on all KDE programs in native languages of the users that need a translation to English. (Do not panic: the users are asked to send these reports in English and certainly most of them will do so.)

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:

  • To provide the translation teams with separate snapshots of the original KDE web sites in order to make translation easier
  • To create separate entries for "user web sites" (as opposed to "team web sites") on the team page

Suggestions as to what else we can do for the visibility and effective creation of localized web sites are very welcome.

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:

  • The mailing list for translators and documenters (kde-i18n-doc@kde.org), archived with plenty of other KDE lists at lists.kde.org. Main platform for discussions, problem reports and announcements regarding KDE translation and documentation. Quite naturally, this is the most up-to-date resource of information for you. Another list that often provides useful information or has answers to questions about technical difficulties is the main developer list at kde-devel@kde.org (get in by sending a mail with "subscribe" in the subject to kde-devel-request@kde.org). There is also a specialized list for technical issues of DocBook at kde-docbook@kde.org (subscription procedure is similar to the one just mentioned).
  • The KDE chat rooms at irc.kde.org which often lend the opportunity to "talk directly" (sort of) to the developers. It can also be used, of course, for translator meetings.
  • The most popular web forum is KDE Dot News in Slashdot style (or Squishdot style respectively). Also, as pointed out already, setting up a web forum can provide a very effective platform for discussing translation terms and for user feedback. One of the main advantages compared to mailing lists (even to those with an archive function) is that you can pretty easily get an overview of what already has been discussed. The downside is that these fora cost a lot of on-line time which make it less attractive for people with dial-up connections who have to pay by the byte or the minute.

Web and FTP Sites


There are several different flavors:

  • The original KDE web sites:
    + The most important one is www.kde.org, of course, the virtual
    center of all information on KDE
    + Grouped around this center is the "family" of specialized web
    servers like developer.kde.org (info and documentation for programmers), i18n.kde.org (well, you know), lists.kde.org (searchable archives of most KDE mailing lists), bugs.kde.org (web interface for the bug reporting and tracking system), devel-home.kde.org (home pages for several KDE apps), koffice.org (for the KDE office suite), www.kdevelop.org (home of the KDE programming environment), and kde.themes.org (info and showroom for KDE designs).
  • Localized and translated KDE web sites:
    + Those for internal use of the translation teams (with to-do
    lists, translation term lists, Howtos, style guides and so on) such as i18n.kde.org/teams/fr/. Remember: you can get such a site on the i18n server for your translation team. Just send a mail to the i18n coordinator.
    + And user sites such as the ones at www.kde.org/international/
    which are mostly translations of www.kde.org and its "family".

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.

  • The Status table of KDE Translations for the HEAD branch gives an overview of how the language teams are doing (in percentages translated of the core packages by each team). It provides the main basis to decide which languages will be part of a KDE release and which are not.
  • The i18n-status-table shows which program GUIs are already translated and which are not.
  • The so-called "Highscore lists" tell you which of your already translated GUI files are in need of a revision. (Untranslated PO files do not show up here, these can only be seen in the i18n-status-table.) In the Highscore lists, doubtful translations are marked as "fuzzy", untranslated strings are marked as, well, "untranslated". Usually, a string becomes "doubtful" by changes in the original. There are several versions of these Highscore lists: the "all-in-one" files as text only and HTML (the latter with extensive linking and "jump-to-your-language" capabilities) and the "split-up" files that show the same information for the individual language teams. The latter are probably preferable for most people since they are much smaller in size.
  • The documentation statistics show listings of existing documentation from the individual language teams and make an educated guess as to whether translations (if any) are up-to-date or not.

HOWTOs and Info Sites


The following seem particularly useful in the process of KDE translations:

  • Version Control with Subversion
  • The overview of compiling KDE from CVS sources at developer.kde.org
  • The KDE Compilation FAQ
  • The KDE Unicode Howto by Wolfram Diestel
  • Various information on the i18n server, especially lots of useful stuff on DocBook in general and KDE documentation in particular by the editorial and doc translation teams in the main documentation directory. Not on i18n.kde.org but equally useful in this context are the scripts and pages by Frederik Fouvry and the KDE DocBook Markup Reference Handbook by Lauri Watts.

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:

  • KBabel by Matthias Kiefer (full support for Unicode): the recommended program for GUI translation at the moment
  • and the GNU Emacs PO module (po-mode.el) that comes with the GNU gettext package (Unicode support only with additional packages)

Features and advantages to using these specialized programs are listed in the appropriate section on GUI translation.

...for Doc Translation


This part changed considerably, since the switch to PO format for the Doc Translation, there is no real alternative to KBabel.
  • Like for GUI translation KBabel is the recommended program for Doc Translation, too.

Dictionaries and Tools for Consistency Checking


If you know of something that should be listed here, do not forget to tell me...

  • kdedict by Matthias Kiefer: cgi script to store standard translations in a database and make it available via the web (there's also a demo available).
  • kbabeldict by Andreas Rizzi which is part of the KBabel package: creates compendium files and provides a convenient interface for searching them
  • Flexicon by Logi Ragnarsson: a database of words, each with an assigned language and description.
  • An index of on-line dictionaries and a lot of other resources can be found at www.yourdictionary.com.
  • Finally a tip: in the German team they are not using their mailing list but a web forum for discussing difficult translations (one term per thread) which has the advantages: (1) that everybody can jump in without the need to subscribe to a mailing list (2) and everything is pretty well documented and easy to find for translators to come. -- The program they are using is Discus, and the German forum is at www.dtp-service.com/discus_d/, check it out. Of course, there are zillions of other programs of that sort.

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:
  • trunk/l10n for the unstable development branch
  • branches/stable/l10n for the stable branch

The generic directory overview of a l10n module is:
  • the templates directory: the place where the translation templates are stored.
  • the language directories (e.g. fr, de, en_GB) where the translations are stored.
  • the scripts directory: here are scripts needed for the l10n module, however most the scripts are not necessarily usable by translators.
  • the documentation directory: the place where the original English documentation is refered.

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:
  • The original GUI translation templates are located in l10n/templates/messages.
  • The already translated GUI files (the POs) are located in l10n/language/messages. For the procedure on how to make a PO file from POT file please read the section on GUI translation.
  • The translated documentation files are located in l10n/language/docs. (The same goes for downloading these files as for POs.) For more info on this whole subject please read the section on doc translation.

Note

You can get files via SVN or WebSVN.

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:

  • Juraj Bednar, i18n coordinator (and sometimes co-coordinator;) who introduced me to KDE translation with incredible patience and an often even more incredible sense of humor
  • Tobias Burnus, former webmaster of i18n.kde.org and original author of all the statistic pages and archives most translators can hardly live without: thanks for a lot of assistance with all the technical issues in this area
  • Matthias Kiefer, Developer of KBabel, kdedict, documentation guru of the German team, main source for Emacs settings, and always lending a helpful hand with translation issues
  • Christopher Kuhi who produced most of the chapter on GUI translation from a German HOWTO on this subject (and is going to be checking everything for grammar and spelling mistakes ;-)
  • Stephan Kulow, grandmaster of the CVS, maker of the groundwork for almost all things having to do with KDE translation, spiritus rector for both the i18n and the documentation teams and mediator between techs and non-techs: thanks for all his good advice with the many problems that I (as a non-programmer) always have with KDE programming issues
  • Frank Schte rewrote the part on doc translation after the transition to the PO format for translation of documentation.

ID
Password
Join
Many pages make a thick book.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2006-10-11 01:12:17
Processing time 0.0612 sec