[ Home | Freetime works | FreeBSD | KFUG ]

X Toolkit(Athena Widget)ÀÇ ±¹Á¦È­


Xlib¼öÁØÀÇ 2¹ÙÀÌÆ® ¹®ÀÚ Ãâ·ÂÀº ¿©·¯ ¹æ¹ýÀ¸·Î »ç¿ëµÇ°í ÀÖ½À´Ï´Ù¸¸, X11¿¡¼­ Áö¿øÇÏ´Â ¹æ¹ýÀº Wide char³ª Multibyte char¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù. X11R5°ú ´Þ¸® X11R6´Â Á»´õ °í¼öÁØÀÇ i18n(internationalization)ȯ°æÀ» Á¦°øÇÕ´Ï´Ù. ÀÌ ¹æ¹ýÀº º°µµÀÇ ÇÁ·Î±×·¥ ó¸® ¾øÀ̵µ ´Ù±¹¾î ¹®ÀåÀ» X ToolkitÂ÷¿ø¿¡¼­ Ãâ·ÂÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» Á¦½ÃÇÕ´Ï´Ù.

1. »ç¿ëÇϰí ÀÖ´Â X¼­¹ö°ú ¶óÀ̺귯¸®´Â i18nÀÌ °¡´ÉÇѰ¡

À̰ÍÀº »ç¿ëÇϰí ÀÖ´Â ¼­¹ö¿¡ ´ëÇØ »ý°¢ÇØ º¸¸é µË´Ï´Ù. ¸®´ª½º³ª FreeBSD»ç¿ëÀÚ´Â X11R5ÀÇ XFree86 2.x³ª X11R6ÀÇ XFree86 3.x¸¦ »ç¿ëÇϰí ÀÖÀ» °ÍÀÔ´Ï´Ù. ƯÈ÷ X11R6.1À» ±â¹ÝÀ¸·Î ÇÏ´Â XFree86 3.2´Â ÃֽйöÀüÀ¸·Î ¸¹Àº ¹ö±×ÆÐÄ¡°¡ µÇ¾î ÀÖÁö¸¸, ´ëºÎºÐÀÇ »ç¿ëÀÚ´Â 3.1´ë¿¡¼­ º°·Î ´Þ¶óÁø Á¡À» ´À³¥ ¼ö ¾øÀ» °ÍÀÔ´Ï´Ù. ¾ÕÀ¸·Î ¼Ò°³ÇÒ ³»¿ëµµ XFree86 3.x´ë¿¡¼­¶ó¸é, Áï X11R6ȣȯÀ̶ó¸é °¡´ÉÇÑ °ÍµéÀÌ´Ï Âü°íÇϽñ⠹ٶø´Ï´Ù.

2. C¶óÀ̺귯¸® ¼öÁØ¿¡¼­ localeÀ» Áö¿øÇϴ°¡

ÀÌ ¹®Á¦°¡ °è¼Ó Á¦±âµÇ´Â ÀÌÀ¯´Â ÄÄÆÄÀÏ ¹æ¹ý¿¡¼­ Â÷À̰¡ ³ª±â ¶§¹®ÀÔ´Ï´Ù. locale Áö¿øÀº ¸®´ª½º, OpenBSD, NetBSD´Â Á¦´ë·Î µÇ¾î ÀÖÁö ¾Ê°Å³ª ¾ø´Â ¹Ý¸é¿¡ FreeBSD ¿¡¼­´Â ºñ±³Àû Àß µÈ localeȯ°æÀ» ¸¸³¯ ¼ö ÀÖ½À´Ï´Ù(±×·¡µµ ko_KR.euc´Â ¾ø½À´Ï´Ù). localeÀÌ ¾ø´Â °æ¿ì ÀϹÝÀûÀÎ °æ¿ì X´Â localeÀ» »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù. ÇöÀç ÆÐŰ¡ µÈ X¼­¹öµéÀº °ÅÀÇ ±×·¯ÇÑ ¿¹ÀÔ´Ï´Ù. ÃÖ±ÙÀÇ ¸®´ª½º C¶óÀ̺귯¸®´Â ·ÎÄÉÀÏ ¼ÂÀ» Áö¿øÇÑ´Ù°í Çϴµ¥, ¿©ÀüÈ÷ ko·ÎÄÉÀÏÀÌ Áö¿øµÇÁö ¾ÊÀ¸¹Ç·Î, ÀÏ´ÜÀº Áö¿øÇÏÁö ¾Ê´Â °ÍÀ¸·Î ¿©±â°í ÁøÇàÇϰڽÀ´Ï´Ù. µ¶ÀÏ¾î ·ÎÄÉÀϰú Çѱ¹¾î ·ÎÄÉÀÏÀº ¿ÏÀü µýÆÇÀÔ´Ï´Ù!

3. X¼­¹öÀÇ localeÁö¿ø

/usr/X11R6/lib/X11/localeµð·ºÅ丮¿¡´Â ¾ð¾îº°·Î Á¤¸®µÈ localeÀÇ Ä³¸¯ÅÍ ¼³Á¤ ÆÄÀÏÀ» ¸¸³¯ ¼ö ÀÖ½À´Ï´Ù. À̰ÍÀº ´Ù¸¥ localeÇüÅ¿ʹ ´Þ¸® Ç¥½ÃÇϰíÀÚ Çϴ ij¸¯ÅÍ ¼Â¿¡¸¸ Àû¿ëµÇ´Â °ÍµéÀÔ´Ï´Ù. ÀÌ ÆÄÀÏ Áß koµð·ºÅ丮¿¡ XLC_LOCALEÀÌ ÀÖ´Ù¸é ÀÏ´ÜÀº ¾È½ÉÀÔ´Ï´Ù. ¸¸¾à ¾ø´Ù¸é XFree86À̳ª X11R6ÀÇ ¼Ò½º°¡ ÀÖ´Â °÷(ftp://sunsite.kren.nm.kr/pub/packages/X11/R6.1/xc/)¿¡¼­ ÇÊ¿äÇÑ ÆÄÀÏÀ» ±¸ÇϽñ⠹ٶø´Ï´Ù. ÀÌ ·ÎÄÉÀÏÀº C¶óÀ̺귯¸®¿Í´Â ºÐ¸®µÇ¾ú´Ù°í »ý°¢ÇÏ¸é µË´Ï´Ù.

Xaw¼öÁØÀÇ ´Ù±¹¾î Áö¿ø °ü°è ¸®¼Ò½º

X ToolkitÀº ¾Æ½Ã´Â ¹Ù¿Í °°ÀÌ widgetÀÇ Æ®¸®ÇüÅ ±¸¼º(hierarchy¶ó°í ÇÕ´Ï´Ù)À¸·Î µÇ¾î ÀÖ½À´Ï´Ù. ¶ÇÇÑ °¢ À§Á¬¿¡´Â ¸®¼Ò½ºµéÀÌ ´Þ·Á Àִµ¥, °¢ À§Á¬ÀÇ Æ¯¼ºÀ» ³ªÅ¸ ³»¸ç, ¶ÇÇÑ ÀÌ ¸®¼Ò½º´Â »óÀ§ À§Á¬À¸·ÎºÎÅÍ »ó¼Ó¹Þ°Ô µË´Ï´Ù. ¿ì¸®°¡ °ü½É ÀÖ´Â ¸®¼Ò½º´Â ´ÙÀ½ °ÍµéÀÔ´Ï´Ù. ¾Æ·¡´Â i18nµÈ Xaw¿¡ °üÇÑ °ÍÀÔ´Ï´Ù.
  *international: true
´ÙÀ½¿¡ º¸ÀÏ ¿¹´Â Athena WidgetÀε¥, ÀÌ XawÀÇ ¸®¼Ò½º´Â »ç¿ëÇϰíÀÚ ÇÏ´Â À§Á¬µéÀÌ i18nÀ» ÇÒ °ÍÀÎÁö ¾Æ´ÑÁö¸¦ °áÁ¤ÇÕ´Ï´Ù.
  *fontSet: -*-*-*-*-*-*-16-*-*-*-*-*-*-*
ÆùÆ®¼ÂÀº Xlib¼öÁØÀÇ i18n¹æ¹ý Áß Çϳª·Î ¹èÄ¡µÈ ¼ø¼­´ë·Î ÇØ´ç Äڵ尡 Àִ ij¸¯ÅÍ ¸¦ ã´Â ¼ø¼­´ë·Î °¢ ÆùÆ®¿¡ ¹è¿­ÇÕ´Ï´Ù. ¿©±â¼­ localeÁöÁ¤ÀÌ »ç¿ëµË´Ï´Ù. Áï 1¹ÙÀÌÆ® ¹®ÀÚ´Â ¿µ¹®À¸·Î, 2¹ÙÀÌÆ® ¹®ÀÚ Áß ÇÑ±Û ¹®ÀÚ(EUC-KR)´Â ksc5601.1987 ÀÇ Ä³¸¯ÅÍ ¼ÂÀ» °®´Â ÆùÆ®¸¦ ã¾Æ ±× ÆùÆ®·Î Ç¥½ÃÇÏ°Ô µË´Ï´Ù. ±×·¯³ª º¸±â¿¡ ¾ÈÁÁ°í, ¿øÇÏ´Â ÆùÆ®¸¦ ÁöÁ¤ÇÒ ¼ö°¡ ¾øÀ» °Í °°Áö¸¸, Àß ÁöÁ¤ÇÏ¸é µË´Ï´Ù. ¿øÇÏ´Â ÆùÆ®¸¸ ¾²°Ú´Ù¸é ´ÙÀ½°ú °°ÀÌ ÁöÁ¤ÇսôÙ.
  *fontSet: \
     -adobe-courier-medium-r-normal--24-*-*-*-m-*-iso8859-1,\
     -daewoo-mincho-medium-r-normal--24-*-*-*-c-*-ksc5601.1987-0
º¸½Ã´Â ¹Ù¿Í °°ÀÌ ¿µ¹® Ãâ·ÂÀ» À§ÇÑ ÆùÆ® Çϳª, ±×¸®°í ÇÑ±Û Ãâ·ÂÀ» À§ÇÑ ÆùÆ® Çϳª ¾¿ ´ëÀÀÇØ ÁÖ¸é µË´Ï´Ù. ÀϺ»¾î³ª Áß±¹¾î µîÀ» ¿øÇÏ´Â °æ¿ì¿¡´Â ÇÑ±Û ÆùÆ®¸¦ »¬ ÇÊ¿ä ´Â ¾ø½À´Ï´Ù. ±×³É ,·Î ÀÌ¾î °è¼Ó ¾²¼¼¿ä. locale¿¡¼­ ¿øÇϴ ij¸¯ÅÍ ÇüÅ¿¡ µû¶ó ÀÚµ¿ÀûÀ¸·Î ÆùÆ®¸¦ ¼±ÅÃÇØ »ç¿ëÇÕ´Ï´Ù. ÇÑ±Û ÆùÆ®´Â ij¸¯ÅÍ ¼ÂÀÌ ¹Ýµå½Ã ksc5601.1987-0ÀÎ °ÍÀ» »ç¿ëÇÏ¿©¾ß ÇÕ´Ï´Ù. Á¶ÇÕÇü ÆùÆ®³ª ksc5601.1987-1ÆùÆ®´Â ¼Ò¿ëÀÌ ¾ø½À´Ï´Ù. ±×°ÍÀº localeÀÇ ¼³Á¤ÆÄÀÏ¿¡¼­ ksc5601.1987-0ÆùÆ®¸¸ »ç¿ëÇϵµ·Ï Ç߱⠶§¹®ÀÔ´Ï´Ù. °íÄ¥ ¼ö ÀÖÁö¸¸... ÀÚÁÖ ¾²°Ú´Ù¸é $HOME/.Xdefaults¿¡ ³ÖÀ¾½Ã´Ù. ¿¡µðÆ®ÇÑ ÈÄ¿¡´Â ¹Ýµå½Ã
  % xrdb -merge ~/.Xdefaults
¸¦ ÇØ¼­ ÇöÀç ¼³Á¤ÀÌ À¯È¿Çϵµ·Ï ÇսôÙ.

5. ¿¹Á¦

´ÙÀ½ ÇÁ·Î±×·¥Àº ORA(O'Reilly & Associates, Inc.)ÀÇ X½Ã¸®ÁîÁß 4¹ø °¡Àå óÀ½¿¡ ³ª¿À´Â ¿¹Á¦ÀÔ´Ï´Ù. º¯°æµÈ »çÇ×Àº ÁÖ¼®À» ´Þ¾Æ µÎ¾ú½À´Ï´Ù. ÀÌ ÆÄÀÏÀ» xgoodbye.c¶ó ÇսôÙ.
#include 
#include 
#include 
#include 

void Quit(w, client_data, call_data)
Widget w;
XtPointer client_data, call_data;
{
  fprintf(stderr, "It was nice knowing you.\n");
  exit(0);
}

main(argc, argv)
int argc;
char** argv;
{
  XtAppContext app_context;
  Widget topLevel, goodbye;

  /* binding own locale */
  XtSetLanguageProc(NULL, NULL, NULL);

  topLevel=XtVaAppInitialize
    (&app_context, "XGoodbye", NULL, 0, &argc, argv, NULL, NULL);
  goodbye=XtVaCreateManagedWidget
    ("goodbye", commandWidgetClass, topLevel, NULL);

  XtAddCallback(goodbye, XtNcallback, Quit, 0);
  XtRealizeWidget(topLevel);
  XtAppMainLoop(app_context);
}
°£´ÜÇÏÁÒ? ToolkitÀÇ ÀåÁ¡Àº ±×·± °Ì´Ï´Ù. ÀÌÁ¦ ÀÌ ÇÁ·Î±×·¥ÀÇ ¸®¼Ò½º¸¦ ¸¸µì½Ã´Ù. ³ªÁß¿¡ Çѱ۷Π¹Ù²Ù¾î¼­ ´Ù½Ã ÇØ º¼ °Ì´Ï´Ù. ÀÌ ÆÄÀÏÀº Ŭ·¡½º À̸§À¸·Î Çϴ°ÍÀÌ °ü·ÊÀÔ´Ï´Ù. XGoodbye·Î ÇսôÙ.
  *goodbye.font: *-courier-bold*180*iso8859-1
  *goodbye.label: Goodbye, Cruel World!
µÇ¾ú½À´Ï´Ù. ÀÌ°Ç ¿µ¹®¿ëÀÌ´Ï±î ¾î¶»°Ô ÇØµµ ÁÁ½À´Ï´Ù. ´ÙÀ½, ÄÄÆÄÀÏÀÌ Á¶±Ý º¹ÀâÇѵ¥, ±×·±´ë·Î ÇØ º¾½Ã´Ù. ¾îÂ÷ÇÇ ÇÑÁÙÀ̴ϱî¿ä.
  % cc -o xgoodbye xgoodbye.c -L/usr/X11R6/lib -lXaw -lXt -lXmu -lX11
¿¡·¯´Â ³ªÁö ¾Ê½À´Ï´Ù. Ȥ ¿¡·¯¸¦ ¸¸³µ´Ù¸é ´Ù½ÃÇѹø ¼Ò½º¸¦ È®ÀÎÇØ º¸¼¼¿ä. ¸®´ª½º¿Í °°ÀÌ ½Ã½ºÅÛ localeÀÇ Áö¿øÀÌ ¾ø´Â °æ¿ì ´ÙÀ½°ú °°ÀÌ ÇÕ´Ï´Ù.
  % cc -DX_LOCALE -o xgoodbye xgoodbye.c -L/usr/X11R6/lib -lXaw -lXt -lXmu -lX11
ÀÌÁ¦ XGoodbyeÀÇ ¸®¼Ò½º¸¦ µî·ÏÇսôÙ.
  % xrdb -merge XGoodbye
ÀÌ ÆÄÀÏÀº ¿ø·¡´Â /usr/X11R6/lib/X11/app-defaults/¿¡ µé¾î°¡¾ß ÇÒ °ÍµéÀÔ´Ï´Ù. XÇÁ·Î±×·¥¿¡ °ü½ÉÀÌ ¸¹Àº ºÐÀ̶ó¸é ¹«¾ó ¶æÇÏ´ÂÁö ¾Æ½Ã°ÚÁö¿ä. ÀÌÁ¦ ½ÇÇàÇØ º¾½Ã´Ù.
  % ./xgoodbye
Goodbye, Cruel World!¶ó ¾´ ÀÛÀº À©µµ¿ì°¡ Çϳª ³ªÅ¸³¯ °ÍÀÔ´Ï´Ù. ÀÌ°É Å¬¸¯Çϸé Á¾·áÀÔ´Ï´Ù. ÀÌ°Ç ¾îµð¼­³ª º¼ ¼ö ÀÖ´Â °£´ÜÇÑ toolkit¿¹Á¦ÀÔ´Ï´Ù. ÀÌÁ¦ Çѱ۷Π³ª¿Àµµ·Ï ÇØ º¼±î¿ä? ¸ÕÀú localeÀ» ÁöÁ¤ÇÕ´Ï´Ù.
(tcsh, csh) % setenv LANG ko
(sh)        # LANG=ko; export LANG
(bash)      # export LANG=ko
¸®¼Ò½º¸¦ ´ÙÀ½°ú °°ÀÌ ¹Ù²Ù¾î º¾½Ã´Ù. ÀÌ XGoodbye¸¦ °íÃÄ ´ÙÀ½°ú °°ÀÌ ÇÕ´Ï´Ù.
  *goodbye.international: true
  *goodbye.fontSet: \
        -adobe-courier-medium-r-normal--24-*-*-*-m-*-iso8859-1,\
        -daewoo-mincho-medium-r-normal--24-*-*-*-c-*-ksc5601.1987-0
  *goodbye.label: Àß°¡¶ó, ÀÌ ¼¼»ó¾Æ!
¸®¼Ò½º¸¦ µî·ÏÇսôÙ.
% xrdb -merge XGoodbye
ÀÌÁ¦ ½ÇÇàÇØ º¼±î¿ä?
% ./xgoodbye
Çѱ۷ΠµÈ ¸Þ½ÃÁö°¡ È­¸é¿¡ ³ª¿É´Ï±î? ±×·¸Áö ¾Ê´Ù¸é, ¸®´ª½º »ç¿ëÀÚ´Â -DX_LOCALE À» ÁÖ¾î ÄÄÆÄÀÏÇß´ÂÁö ´Ù½ÃÇѹø È®ÀÎÇØ ÁÖ¼¼¿ä. ±×·¸Áö ¾ÊÀº °æ¿ì¶ó¸é À§ÀÇ »çÇ×À» ÇϳªÇϳª Á¡°ËÇØ º¾½Ã´Ù. LANGȯ°æº¯¼ö¸¦ ÁöÁ¤ÇØ ÁÖ¾ú´ÂÁö, ¸®¼Ò½º´Â µî·ÏÇØ ÁÖ¾ú ´ÂÁö. Àß µÇ¾ú´Ù¸é, ¸Þ½ÃÁö¸¦ Çѱ۰ú ¿µ¾î¸¦ Æ÷ÇÔÇÏ´Â ¿©·¯°¡Áö·Î ¹Ù²Ù¾î ½ÃÇèÇØ º¾½Ã´Ù. ¾î´À°ÍÀ¸·Î ÇÏµç »ó°ü¾øÀ» °Ì´Ï´Ù. Ç¥½ÃÇϴµ¥ ½Ã°£ÀÌ °É¸®´Â ÀÌÀ¯´Â ÆùÆ®¸¦ ·Îµå Çϴµ¥ ½Ã°£ÀÌ µé±â ¶§¹®ÀÔ´Ï´Ù. Çѹø ·ÎµåÇÏ¸é »¡¶óÁö´Ï ±×¸® Å« °ÆÁ¤Àº ¾ÈÇØµµ ÁÁ½À´Ï´Ù.

6. Xaw¿¡¼­ i18nÇÁ·Î±×·¡¹Ö½Ã ÁÖÀÇ»çÇ×

ÀÌ ¹æ¹ýÀ» »ç¿ëÇÏ¿©, ¸¹Àº Xaw·Î § ¾îÇø®ÄÉÀ̼ǿ¡¼­ ÇѱÛÃâ·ÂÀÌ °¡´ÉÇÏ°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ü ±×·¸°Ô ÇÏ·Á¸é ¼Ò½º¸¦ ¾à°£ °íÃÄ¾ß Çϴµ¥, ±×°Ç À§ÀÇ ¿¡Á¦ ¼Ò½º ¿¡¼­ °íÄ£ °Í°ú µ¿ÀÏÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î Toolkit±â¹Ý ÇÁ·Î±×·¥¿¡¼­ i18nÀ» À§ÇØ ÁÖÀÇÇØ¾ß ÇÒ »çÇ×Àº ´ÙÀ½°ú °°½À´Ï´Ù.
  1. international°ú fontSet¸®¼Ò½º¸¦ ÁöÁ¤ÇÕ´Ï´Ù. À̰ÍÀº AthenaÀ§Á¬¿¡¸¸ ÇØ´çÇÏ´Â °ÍÀ¸·Î, ¸ðƼÇÁ¶ó¸é fontList¸®¼Ò½ºÁ¤µµ¸¸ ÁöÁ¤ÇÏ¸é µË´Ï´Ù.
  2. ¼Ò½º¿¡¼­ XtAppInitialize()¶Ç´Â XtVaAppInitialize()ÇÔ¼ö°¡ ³ª¿À±â Á÷Àü¿¡ XtSetLanguageProc(NULL, NULL, NULL)ÇÔ¼ö¸¦ ³Ö½À´Ï´Ù.
  3. ½Ã½ºÅÛ localeÁö¿øÀÌ ¾ø´Ù¸é ÄÄÆÄÀÏ ¿É¼Ç¿¡ -DX_LOCALEÀ» ³Ö½À´Ï´Ù.
XtSetLanguageProc()Àº ÀÌÈÄ X ToolkitÀÇ Ã³¸®¿¡ ÇöÀç ȯ°æº¯¼ö¿¡ ¼³Á¤µÈ ¾ð¾î ¼³Á¤ À» °í·ÁÇ϶ó´Â ¶æÀÔ´Ï´Ù. À̰ÍÀº Ãâ·Â, ÀԷ¿¡ ¸ðµÎ °ü°èµÇ´Â °ÍÀ̹ǷÎ, ÀԷ±⸦ »ç¿ëÇÏ°Ô µÇ´Â °æ¿ì¿¡µµ ÇʼöÀûÀÔ´Ï´Ù. ¸ðƼÇÁÀÇ i18n±â´ÉÀ» »ç¿ëÇÏ´Â °æ¿ì¿¡µµ ¹Ýµå½Ã ÀÌ ÇÔ¼ö¸¦ ¸ÕÀú ³Ö¾î ÁÖ¾î¾ß ÇÕ´Ï´Ù. ½ÇÁ¦·Î ÀÌ XtSetLanguageProc()À» ºÎ¸£´Â ÇàÀ» »©°í ´Ù½Ã ÄÄÆÄÀÏÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù. ±×¸®°í ÀÌ ¹æ¹ýÀº ½ÃÇèÇØ º» °á°ú Xaw3d³ª Xaw95¿¡¼­µµ Àß µ¿ÀÛÇÕ´Ï´Ù.

7. XawÀÇ ¹ö±×

Xaw¿¡´Â i18n°ü·ÃºÎºÐ¿¡ ¹ö±×°¡ ÀÖ´Ù°í ÇÕ´Ï´Ù. ¸Þ¸ð¸® ¹®Á¦ °°Àºµ¥, Ä¡¸íÀûÀÌ µÉ ¼ö ÀÖ´Ù°í ÇÏ´Ï ÆÐÄ¡¸¦ ¿ø·¡ Xaw¼Ò½º¿¡´Ù Àû¿ëÇÏ¿© »ç¿ëÇÏ´Â°Ô ÁÁ°Ú½À´Ï´Ù. ÆÐÄ¡¹æ¹ýÀº, X11R6.1ÀÇ Xaw¸¦ ¹Þ¾Æ´Ù°¡
  % cd Xaw-source-directory
  % patch < XawI18n-bugfix.patch
ÇÏ°í ´Ù½Ã ÄÄÆÄÀÏÇØ »ç¿ëÇÏ¸é µË´Ï´Ù.

8. ¸ÎÀ½¸»

ÀÌ ¹æ¹ýÀ» »ç¿ëÇÏ¸é ½ÇÁ¦·Î ¸¹Àº XawŬ¶óÀÌ¾ðÆ®µéÀ» »õ·Î ÄÄÆÄÀÏÇÏ¿© ÇѱÛÀ» ³ªÅ¸³¾ ¼ö ÀÖµµ·Ï(ÇÑ±Û »Ó ¾Æ´Ï¶ó ´Ù¸¥ Áö¿øÇÏ´Â ¾ð¾î ÀüºÎ)¸¦ ³ªÅ¸³ª°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ÀÌ ¹æ¹ýÀº ¾ÆÁ÷ ¸¹ÀÌ »ç¿ëÇÑ´Ù°í Çϱâ´Â ¾î·Á¿î X11R6¸¦ ±âÁØÀ¸·Î Çϰí ÀÖ°í, fontSetÀÇ ÁöÁ¤ÀÌ ³Ê¹«³ª ¾Ö¸ÅÇϸç, °¢ ¹®ÀÚÀÇ ¸ð¾çÀ» ÁöÁ¤ÇÏ´Â Àϵµ ¾î·Æ°Ô µÇ¾î ¹ö¸³´Ï´Ù. ƯÈ÷ ¿øÇÏ´Â ±ÛÀÚ¸¦ ¼±ÅÃÇÒ ¼ö ¾ø´Ù´Â Á¡Àº Ä¡¸íÀûÀ̶ó°íµµ ¸»ÇÒ ¼ö ÀÖ´Â °æ¿ìÀÇ ÇϳªÀÔ´Ï´Ù. ÀÌ ¹æ¹ý À̿ܿ¡µµ R5¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀº, ¸®¼Ò½º¿¡¼­
  *encoding: 2
·Î Çϰí, font¸¦ ksc5601.1987-1°è¿­ÀÇ ÆùÆ®·Î ÁöÁ¤Çϰí(ÀÌ Ä³¸¯ÅÍ ¼ÂÀÇ ÆùÆ®´Â ÈçÇÏÁö ¾Ê½À´Ï´Ù. ´ëºÎºÐÀÇ ¿Ï¼ÍÇü ÆùÆ®´Â ksc5601.1987-0ÀÔ´Ï´Ù) 2¹ÙÀÌÆ®·Î¸¸ ±ÛÀ» ¾²¸é µË´Ï´Ù. ÀÌ ¹æ¹ýÀº locale°ú °ü°è°¡ ¾øÀ¸¹Ç·Î, ¾î¶² °æ¿ì¿¡µµ »ç¿ëÀÌ °¡´ÉÇÏ´Ù´Â Á¡ÀÌ ÀÖÁö¸¸, Ç×»ó 2¹ÙÀÌÆ®·Î¸¸ ½á¾ß ÇÑ´Ù´Â(Áï ¿µ¹®µµ Àü°¢À¸·Î¸¸ ½á¾ß ÇÑ´Ù´Â) ´ÜÁ¡ÀÌ ÀÖÀ¸¹Ç·Î ±ÇÀåÇÒ ¸¸ÇÑ °ÍÀº ¾Æ´Õ´Ï´Ù.

¸®´ª½º¿Í °°ÀÌ ½Ã½ºÅÛ Â÷¿øÀÇ localeÁö¿øÀÌ ¾ø´Â °æ¿ì¿¡´Â ¸Å¹ø X_LOCALEÀ» Á¤ÀÇÇØ ÁÖ´øÁö, ¾Æ´Ï¸é »õ·Î XFree86¼­¹ö¸¦ ÄÄÆÄÀÏÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù. Àå±âÀûÀÎ ¾È¸ñÀ¸·Î º¸°Ç´ë ÀÌÈÄ ÇÑ±Û ¹èÆ÷º»¿¡¼­´Â XFree86¼­¹ö¸¦ ´Ù½Ã ÄÄÆÄÀÏÇÑ °ÍÀ» ¹èÆ÷º»¿¡ ³Ö´Â °ÍÀÌ ÁÁ°Ú´Ù°í »ý°¢ÇÕ´Ï´Ù. XawÀÇ ÆÐÄ¡¿Í ÇÔ²². À̰ÍÀº ½Ã½ºÅÛ¿¡¼­ ÇÑ±Û ·ÎÄÉÀÏÀ» Áö¿øÇÏ´Â °æ¿ì¿¡ À¯¿ëÇÑ °ÍÀÌ µË´Ï´Ù.

Xaw´Â À¯¿¬ÇÑ ÇÁ·Î±×·¥À¸·Î(º¹ÀâÇϱâ´Â ÇÏÁö¸¸), Xaw3d, Xaw95, neXtaw, Xaw-XPM°ú °°Àº º¯Á¾µéÀÌ ¸¹ÀÌ ³ª¿Í ÀÖ½À´Ï´Ù. ÀÌµé ´ëºÎºÐÀº Xaw3d¸¦ ±â¹ÝÀ¸·Î Çϰí, Xaw3d´Â XawÀÇ R6ÆÇÀ» ±â¹ÝÀ¸·Î ÇϹǷÎ(ÀϺΠ¿¹¿Ü¸¦ Á¦¿ÜÇϰí), À̵鵵 °°ÀÌ ÆÐÄ¡ÇØ »ç¿ëÇÏ ´Â °ÍÀÌ ÁÁ°Ú´Ù°í »ý°¢ÇÕ´Ï´Ù. ÇØ´ç ºÎºÐÀº ¹Ù²îÁö ¾Ê¾ÒÀ» Å״ϱî¿ä.

R5ÀÇ Xaw´Â i18nÀÌ µÇ¾îÀÖÁö ¾Ê½À´Ï´Ù. ±×·¯³ª ÀÌ·± ±â´ÉÀ» »ç¿ëÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÌ Àִµ¥, À̰ÍÀº R6ÀÇ Xawº¯Á¾Áß¿¡ Xaw95°¡ R5¿¡ Æ÷ÆÃµÇ¾î ÀÖ´Â °ÍÀ» ÀÌ¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. ÄÄÆÄÀÏÀÌ Á¶±Ý ¾î·Æ°ÚÁö¸¸, À̸¦ »ç¿ëÇϸé À§ ±Û°ú °°Àº Ãâ·ÂÀ» ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ÁÖÀÇÇÒ °ÍÀº R5´Â i18nÀÇ ±¸Çö¹æ¹ýÀÌ Ç¥ÁØÀÌ ¾Æ´Ï±â ¶§¹®¿¡ ½Ã½ºÅÛ¿¡ µû¶ó ´Ù¸¦ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. ¾î¶² °÷¿¡¼­´Â localeµð·ºÅ丮 ´ë½Å nlsµð·ºÅ丮°¡ ÀÖ´Â °÷µµ ÀÖ½À´Ï´Ù. ±×·¯³ª ÀÚ½ÅÀÇ ·ÎÄÉÀÏÀ» °¡¸®Å°´Â ÆÄÀϸ¸ Á¸ÀçÇÏ¸é µÇ¹Ç·Î, ±×¸® ¹®Á¦´Â ¾ø½À´Ï´Ù. Xaw95ÀÇ R5ÆÇÀº ¿©±â¿¡¼­ ±¸ÇÒ ¼ö ÀÖ½À´Ï´Ù.

Âü°íÀÚ·á


ÀÌ ±ÛÀº ³ª¿ì´©¸® ¸®´ª½º µ¿È£È¸(linux)ÀÇ °­Á¶õ¿¡ ¿Ã¸° ±ÛÀ» ÀçÆíÁýÇÏ¿© ¿Ã¸° °ÍÀÔ´Ï´Ù.

$Id: index.shtml,v 1.1.1.1 2001/05/23 03:10:33 cjh Exp $

[ Home | Freetime works | FreeBSD | KFUG ]


Copyright © 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 CHOI Junho, all rights reserved.
Please send spam/UCE here to register your mail to razor