· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/Locales

Locales mini-HOWTO

Locales mini-HOWTO

Peeter Joot, joot@ecf.toronto.edu

v1.3, 1996³â 6¿ù 6ÀÏ ÀÌ ¸¸ ¿ë geoman@nownuri.net
ÀÌ ¹®¼­´Â ¸®´ª½º¿¡¼­ locale ¸¦ ¾²±â À§ÇØ ¼³Á¤ÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.

1. ¼Ò°³

¿©±â¼­ ³ª´Â localdef ¸¦ ÀνºÅçÇϱâ À§ÇÏ¿© ¹«¾ùÀ» ÇßÀ¸¸ç ¾î¶»°Ô localeÀ» ÄÄÆÄ ÀÏÇß´ÂÁö ±×¸®°í ±× °æÇè¿¡ ´ëÇؼ­ À̾߱â½ÄÀ¸·Î ÁøÇàÇÏ·Á°í ÇÑ´Ù. ³ª´Â ´ÜÁö Àç¹Ì·Î ÀÌ ÀÏ¿¡ ¶Ù¾îµé¾ú°í ´Ù¸¥ »ç¶÷µéµµ ÀÌ ÀÏ¿¡ Èï¹Ì¸¦ °¡Áú °ÍÀÌ ¶ó°í »ý°¢Çß´Ù. ÀÏ´Ü ¼³Á¤¸¸ µÇ¸é ¿©·¯ºÐÀÇ ¼±ÅÃÇÑ ·ÎÄÉÀÏÀ» °¡Áö°í NLS Áö¿øÀÇ ¾îÇø®ÄÉÀ̼ÇÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. Á¶±Ý ÀÖÀ¸¸é ·ÎÄÉÀÏ Áö¿øÀº Ç¥ÁØ ¹èÆ÷ÆÇÀÇ ÀϺΠ°¡ µÉ °ÍÀÌ°í ÀÌ ¹Ì´Ï ÇÏ¿ìÅõ ¹®¼­¿¡µµ ¸¹Àº ³»¿ëÀÌ Ãß°¡µÇ¸®¶ó º»´Ù.

2. µµ´ëü ·ÎÄÉÀÏ(locale)À̶õ ¹«¾ùÀΰ¡?

·ÎÄÉÀÏÀº ¿©·¯ºÐÀÌ ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥ ¼ÓÀ¸·Î ÇϵåÄÚµùÀ» Çؼ­´Â ¾ÈµÇ´Â ¾ð¾î/¹® È­ °ü·ÃÀÇ »çÇ×À» ´Ù·é´Ù. ¸¸¾à ´Ù¾çÇÑ ·ÎÄÉÀÏÀ» ¼³Ä¡Çصξú´Ù¸é ´ÙÀ½ ȯ°æ º¯¼ö ¼³Á¤À» ÅëÇÏ¿© ·ÎÄÉÀÏÀ» Áö¿øÇÏ´Â ÇÁ·Î±×·¥ÀÇ ½ÇÇà ¹æ½ÄÀ» ¼±ÅÃÇÒ ¼ö ÀÖ´Ù.

±âº» ·ÎÄÉÀÏÀº C ¶Ç´Â POSIX À̸ç libc ¿¡ ÇϵåÄÚµùµÇ¾î ÀÖ´Ù.

LANG

ÀÌ ¼¼ÆÃÀ» ÅëÇØ ·ÎÄÉÀÏÀ» ¼³Á¤ÇÑ´Ù. ÇÏÁö¸¸ LC_xxxx ȯ°æ º¯¼ö¿¡ ÀÇÇØ º¯È­µÉ ¼ö ÀÖ´Ù.

LC_COLLATE

Á¤·Ä ¼ø¼­

LC_CTYPE

¹®ÀÚ Á¤ÀÇ, ´ë¹®ÀÚ, ¼Ò¹®ÀÚ,... À̵éÀº toupper, tolower, islower, isdigit µîÀÇ ÇÔ¼ö¿¡ »ç¿ëµÈ´Ù.

LC_MONETARY

±Ý¾×À» Ç¥ÇöÇÏ´Â Çü½Ä Á¤º¸¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù. õ´ÜÀ§¸¦ ±¸ºÐÇÏ´Â ¹®ÀÚ, ¼Ò¼öÁ¡ ¹®ÀÚ, ±×¸®°í ±Ý¾× Ç¥½Ã ¹®ÀÚ, ±× À§Ä¡ µîÀÇ Á¤º¸¸¦ Á¦½ÃÇÑ´Ù.

LC_NUMERIC

¼ýÀÚ¸¦ Ç¥ÇöÇÔ¿¡ ÀÖ¾î, õ´ÜÀ§, ¼Ò¼öÁ¡, ¼ýÀÚ ±×·ìÇÎÀ» ´Ù·é´Ù.

LC_TIME

½Ã°£°ú ³¯Â¥ÀÇ Ç¥ÇöÇü½ÄÀ» ÁöÁ¤ÇÑ´Ù. ÁÖ¿Í ´Þ¿¡ ´ëÇÑ ¸íĪ°ú ¾à¾î¸¦ ´Ù·é ´Ù.

LC_MESSAGES

¿¹/¾Æ´Ï¿À Ç¥Çö

LC_ALL

·ÎÄÉÀÏÀ» ÁöÁ¤ÇÑ´Ù. ÇÏÁö¸¸ ´Ù¸¥ LC_xxxx À¸·Î º¯È­µÉ ¼ö ÀÖ´Ù. ¿©±â ¸î °¡Áö ·ÎÄÉÀÏ¿¡ ´ëÇÑ ¿¹°¡ ÀÖ´Ù.

en_CA

¿µ¾î±Ç Ä«³ª´Ù

en_US

¹Ì±¹ ¿µ¾î±Ç

de_DE

µ¶ÀÏÀÇ µ¶ÀϾî

fr_FR

ÇÁ¶û½ºÀÇ ÇÁ¶û½º¾î

¿©·¯ºÐÀÌ ÇÁ·Î±×·¥À» Â¥´Âµ¥ ÀÖ¾î ±×°ÍÀÌ ±¹Á¦ÀûÀ¸·Î »ç¿ëµÇ±â À§Çؼ­´Â ·ÎÄÉÀÏ À» ÀÌ¿ëÇØ¾ß ÇÑ´Ù. °¡Àå Áß¿äÇÑ ÀÌÀ¯ Áß Çϳª´Â ¸ðµç »ç¶÷ÀÌ ¿©·¯ºÐ°ú °°Àº ¹®ÀÚ ¸¦ »ç¿ëÇÏÁö´Â ¾Ê´Â´Ù´Â »ç½ÇÀÌ´Ù. ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥¿¡¼­ ´ÙÀ½°ú °°Àº ½ÄÀ¸·Î »ç¿ëÇÏÁö ¸»¶ó.

/* check for alphabetic characters */ if ( (( c >= 'a') && ( c <= 'z' )) || (( c >= 'A') && ( c <= 'Z' )) ) { ... }

¿©·¯ºÐÀÌ ÀÌ·¸°Ô ¸ðµç È­ÀÏÀ» ASCII È­ÀÏÀ̶ó°í¸¸ °¡Á¤ÇÏ°í ¸¸µç´Ù¸é »ç¿ëÀÚÀÇ ·ÎÄÉÀÏ¿¡ µû¸¥ ÄÚµå ÆäÀÌÁö Á¤ÀǸ¦ Á¸ÁßÇÏÁö ¾Ê°Ô µÇ´Â °ÍÀÌ´Ù.

¿¹¸¦ µé¾î µ¶ÀϾî ȯ°æ¿¡¼­ ¾²ÀÌ´Â ¿ò¶ó¿ìÇÁ ¹®ÀÚ µîÀÌ Á¦¿ÜµÈ´Ù°í ¸»ÇÒ ¼ö ÀÖ´Ù. ¿©·¯ºÐÀº ´ë½Å isalpha() °ú °°Àº ·ÎÄÉÀÏ ÀÎ½Ä ÇÔ¼ö¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. ¿©·¯ºÐÀÌ US-ASCII ¾ËÆĺª ¹®ÀÚ¸¸À» ¿ä±¸ÇÑ´Ù ÇÒ Áö¶óµµ ¿©ÀüÈ÷ isalpha() ÇÔ¼ö¸¦ »ç¿ëÇϱ⠹ٶõ´Ù. ÇÏÁö¸¸ ¿ì¼± setlocalte(LC_TYPE,"C")¶ó°í ÇϵçÁö ¾Æ´Ï¸é LANG, LC_TYPE, LC_ALL µîÀÇ È¯°æ º¯¼ö¸¦ "C"·Î ¼³Á¤ÇÏ¸é µÈ´Ù. ·ÎÄÉÀÏÀº »ó´çÇÑ À¯¿¬¼ºÀ» Á¦°øÇϸç ÇÁ·Î±×·¡¸ÓµéÀÌ ASCII ±â¹ÝÀÇ C ÇÁ·Î±×·¥À» À߸ø ¸¸µé¾î¿Ô´Ù°í »ý°¢ÇÑ´Ù.

¿¹¸¦ µé¾î ¿©·¯ºÐÀº ¹®ÀÚÀÇ ÄÚµå À§Ä¡¸¦ °¡Á¤ÇÒ ¼ö ¾ø´Ù. ¿©·¯ºÐÀº A ¶ó´Â ¹®ÀÚÀÇ ÄÚµå À§Ä¡¸¦ 0x41 ÀÌ ¾Æ´Ñ 0xC1 À¸·Î Á¤ÀÇÇÏ´Â ¹®ÀÚÇ¥ È­ÀÏÀ» ¸¸µé ¼öµµ ÀÖ´Ù. ÀÌ°ÍÀº ¸ÞÀÎÇÁ·¹ÀÓ¿¡¼­ »ç¿ëµÈ´Â IBM ÄÚµå ÆäÀÌÁö 37¿¡¼­ÀÇ A °¡ °®´Â À§Ä¡ÀÌ´Ù. ±×¸®°í ÀüÀÚ´Â ¹Ù·Î US-ASCII, iso8859-x µî¿¡¼­ »ç¿ëµÇ°í ÀÖ´Â ¹æ½ÄÀÌ´Ù. ±âº»ÀûÀÎ ¾ÆÀ̵ð¾î´Â ¼­·Î ´Ù¸¥ »ç¶÷µéÀÌ ´Ù¸¥ ¾ð¾î¸¦ »ç¿ëÇϸç Á¤·Ä ¼ø¼­µµ ´Ù¸£ °í ´Ù¸¥ ÄÚµå ÆäÀÌÁö¸¦ »ç¿ëÇÏ¸ç ´Ù¸¥ ³ª¶ó¿¡ »ì°í ÀÖ´Ù´Â »ç½Ç·ÎºÎÅÍ ³ª¿Â´Ù. ¹Ù·Î ·ÎÄÉÀÏ°ú ·ÎÄÉÀÎ ÀÎ½Ä ÇÁ·Î±×·¥ÀÌ ±×·¯ÇÑ ¹®Á¦¿¡ ´ëÇÑ ÇØ°áÃ¥À» Á¦½ÃÇÏ°í ÀÖ ´Ù. ¸¹Àº ÀÛ¾÷ÀÌ ÇÊ¿äÇÑ °ÍÀº ¾Æ´Ï°í ´ÜÁö ÇÁ·Î±×·¥ ÀÛ¼º½Ã ¾à°£ ´Ù¸¥ »ç°í¹æ½ÄÀ» ¿ä±¸ÇÑ´Ù.

3. ÁÖÀÇ »çÇ×

[] ³» ¸Ó½Å¿¡¼­ ·ÎÄÉÀÏÀ» ¼³Á¤Çϱâ À§ÇÏ¿© ¾à°£ÀÇ ¾÷±×·¹À̵尡 ÇÊ¿äÇß´Ù. ftp.tu-clausthal.de:/pub/linux/SLT/nls ¿¡´Â a.out ¹öÀüÀÇ ·ÎÄÉÀÏ°ú local- def( nlsutils-0.5.tar.gz È­ÀÏ ¾È¿¡ )ÀÌ µé¾îÀÖ´Ù. ELF ½Ã½ºÅÛÀÌ ¾Æ´Ï°Å³ª ELF ¸¦ »ç¿ëÇÏÁö ¾ÊÀ¸·Á´Â »ç¶÷¿¡°Ô À¯¿ëÇÏ´Ù. ´Ù¸¥ °÷¿¡ ¾Æ¸¶µµ nls À¯Æ¿ ÆÐÅ°Áö°¡ ÀÖÀ» °ÍÀÌ´Ù. ÇÏÁö¸¸ ãÁö ¸øÇß´Ù. µ¶¸³ÀûÀÎ ·ÎÄÉÀÏ, localdef°¡ ÀÖ´ÂÁö ¸ð¸£°ÚÀ¸¸ç ±×·¯ÇÑ libc ¸¦ °¡Áö°í ÀÖ´ÂÁöµµ ¸ð¸£°Ú´Ù. ÀÌ ÇÏ¿ìÅõ ¹®¼­´Â º»ÀÎÀÌ libc µîÀ» ¾÷±×·¹À̵åÇÑ °³ÀÎÀûÀÎ °æÇèÀÏ ºÐÀÌ´Ù. ¿©·¯ºÐÀÌ ÀÌ ÀÛ¾÷À» ÇÏ·Á¸é º»ÀÎó·³ ELF ½Ã½ºÅÛÀ» ¿î¿µÇϰųª ELF ½Ã½ºÅÛÀ¸ ·Î ¾÷±×·¹À̵åÇØ¾ß ÇÒ °ÍÀÌ´Ù.

  • º»ÀÎÀÌ ÇÑ ½Ã½ºÅÛ ¾÷±×·¹À̵å´Â a.out ¿¡¼­ ELF ¾÷±×·¹À̵åÇϱâ À§ÇØ ÇÊ¿äÇÑ °ÍµéÀ̾ú´Ù. ELF ½Ã½ºÅÛÀÌ ¾Æ´Ï¶ó¸é ¿©·¯ºÐÀº ÀÏ´Ü ÃÖ±Ù ELF HOWTO ¹®¼­¸¦ ±¸ ÇØ¾ß ÇÒ °ÍÀÌ´Ù. »ó´çÈ÷ ÁÁÀº ¹®¼­À̸ç libc, ld.so, ±×¸®°í ´Ù¸¥ ELF ½Ã½ºÅÛ ÀνºÅç, ¾÷±×·¹À̵忡 ´ëÇÑ ¸¹Àº Áö½ÄÀ» ÀüÇØÁÙ °ÍÀÌ´Ù.
  • ¿©·¯ºÐÀÌ ÀνºÅçÇÏ´Â ¸ðµç °Í¿¡ ´ëÇؼ­ ¸±¸®Áî ³ëÆ®³ª README ¸¦ Àо¶ó. ¿©±â¼­ º»ÀÎÀÌ ¸»ÇÑ ¹Ù¸¦ Á¦´ë·Î ÀÌÇØÇÏÁö ¸øÇϰųª ±×·Î ÀÎÇØ ½Ã½ºÅÛÀ» ¸ÁÃÆ ´Ù°í º»ÀÎÀ» ¿ø¸ÁÇÏÁö´Â ¸»±â ¹Ù¶õ´Ù.
  • »õ·Î¿î libc, ld.so ¸¦ À߸ø ¼³Ä¡ÇÏ´Â °æ¿ì ºÎÆà ÀÚü°¡ ¾ÈµÉ ¼ö ÀÖ´Ù. ÀÏ´ÜÀº ºÎÆ® µð½ºÅ©¸¦ Çϳª °¡Áö°í Áß¿äÇÑ ÀÚ·á´Â ¹é¾÷À» Çصδ °ÍÀÌ ÁÁ´Ù.

4. ¿©·¯ºÐ¿¡°Ô ÇÊ¿äÇÑ »çÇ×

¸î °³ÀÇ ÀڷḦ ´Ù¿î·Îµå¹ÞÀ» ÇÊ¿ä°¡ ÀÖ´Ù. locale ¼Ò½º È­ÀÏÀ» Á¦¿ÜÇÑ ´ëºÎºÐÀº sunsite.unc.edu, tsx-11.mit.edu, ¶Ç´Â ·ÎÄà ¹Ì·¯ »çÀÌÆ®¿¡¼­ ±¸ÇÒ ¼ö ÀÖ´Ù.

[] ·ÎÄÉÀÏ, ¹®ÀÚÇ¥ ¼Ò½º - localdef ¸¦ °¡Áö°í ÄÄÆÄÀÏÇÏ°Ô µÉ °ÍÀÌ´Ù.
[] libc-5.2.18.bin.tar.gz --- ELF C °øÀ¯ ¶óÀ̺귯¸®¿Í ¼öÇÐ ¶óÀ̺귯¸®
[] libc-5.2.18.tar.gz --- ELF ¶óÀ̺귯¸®¿¡ ´ëÇÑ ¼Ò½º ÄÚµå. localdef ¸¦ ÄÄÆÄ
     ÀÏÇϱâ À§Çؼ­´Â ¹Ù·Î ÀÌ È­ÀÏÀÌ ÇÊ¿äÇÏ´Ù.
[] make-3.74.tar.gz -- dirent ¹ö±×¸¦ °íÄ£ ¹öÀüÀÌ ÇÊ¿äÇÏ´Ù.
[] release.libc-5.2.18 --- make ¿¡ ´ëÇÑ ÆÐÄ¡¸¦ Æ÷ÇÔÇÑ ¸±¸®Áî ³ëÆ®
[] ld.so-1.7.12+ -- µ¿Àû ¸µÄ¿
[] ELF gcc-2.7.2+ --- ÄÄÆÄÀÏ¿¡ »ç¿ë
[] ELF Ä¿³Î 1.1.92+ ¶Ç´Â ELF Ä¿³Î 1.3.40+ -- ÄÄÆÄÀÏ¿¡ »ç¿ë
[] binutils 2.6.0.2+ --- ÄÄÆÄÀÏ¿¡ »ç¿ë

·ÎÄÉÀÏ ¼Ò½º¸¦ ¾òÀ» ¼ö ÀÖ´Â °÷Àº ¸¹´Ù. °ø°³ ·ÎÄÉÀÏ°ú ¹®ÀÚÇ¥¸¦ ´ÙÀ½°ú °°Àº »çÀÌÆ®¿¡¼­ ¾òÀ» ¼ö ÀÖ¾ú´Ù. dkuug.dk:/i18n/WG15-collection/locales < ftp.dkuug.dk/i18n/WG15-collection/locales> dkuug.dk:/i18n/WG15-collection/charmaps < ftp.dkuug.dk/i18n/WG15-collection/charmaps>

5. ¸ðµç °ÍÀ» ÀνºÅçÇϱâ

ÀÌ°Í ¸ðµÎ°¡ º»ÀÎÀÌ ÀνºÅçÇÑ °ÍÀÌ´Ù. º»ÀÎÀº ÀÌ¹Ì ELF ½Ã½ºÅÛ( ÄÄÆÄÀÏ·¯, Ä¿³Î ) À» °¡Áö°í ÀÖ¾ú´Ù.

  1. ¿ì¼±Àº tar xvzf binutils-2.6.0.2.bin.tar.gz -C / ÇÏ¿© ¹ÙÀ̳ʸ® À¯Æ¿¸®Æ¼¸¦ ¼³Ä¡ÇÏ¿´´Ù.
  2. ´ÙÀ½À¸·Î´Â µ¿Àû ¸µÄ¿¸¦ ¼³Ä¡ÇÏ¿´´Ù. tar zxf ld.so-1.7.12.tar.gz -C /usr/src cd /usr/src/ld.so-1.7.12 sh instldso.sh
  3. . ±× ´ÙÀ½ ³ª´Â lib ¸¦ ¼³Ä¡ÇÏ¿´´Ù. ÀÚ¼¼ÇÑ ¼³¸íÀº release.libc-5.2.18 À» º¸±â ¹Ù¶õ´Ù. rm -f /usr/lib/libc.so /usr/lib/libm.so rm -f /usr/include/iolibio.h /usr/include/iostdio.h rm -f /usr/include/ld_so_config.h /usr/include/localeinfo.h rm -rf /usr/include/netinet /usr/include/net /usr/include/pthread tar -xzf libc-5.2.18.bin.tar.gz -C /
  4. »õ·Î¿î °øÀ¯ ¶óÀ̺귯¸®ÀÇ À§Ä¡¸¦ ¾Ë¸®±â À§ÇÏ¿© ldconfig -v ¸¦ ½ÇÇà
  5. make °ú ´Ù¸¥ ÇÁ·Î±×·¥¿¡ ´ëÇÑ ¹ö±× ÆÐÄ¡°¡ libc ¿¡ µé¾îÀÖ¾ú´Ù. ¿©±â¼­ ³ª´Â make ¸¦ ´Ù½Ã ÄÄÆÄÀÏÇÏ¿© ÀνºÅçÇÏ¿´´Ù. tar zxf make-3.74.tar.gz -C /usr/src cd /usr/src/make-3.74 patch < /whereever_you_put_it/release.libc-5.2.18 configure --prefix=/usr sh build.sh ../make install cd .. rm -rf make-2.74
  6. ¿©±â¼­ localdef ¸¦ ÄÄÆÄÀÏÇÏ¿© ¼³Ä¡ÇÏ¿´´Ù. mkdir /usr/src/libc tar zxf libc-5.2.18.tar.gz -C /usr/src/libc cd /usr/src/libc cd include ln -s /usr/src/linux/include/asm . ln -s /usr/src/linux/include/linux . cd ../libc ./configure # ÀÌ µÎ °¡Áö make °úÁ¤ÀÌ ÇÊ¿äÇÑÁö´Â ¸ð¸£°ÚÀ¸³ª ¾ÈÀüÇÏ°Ô Çصεµ·Ï ÇÏÀÚ. make clean ; make depend cd locale make programs mv localedef /usr/local/bin mv locale /usr/local/bin
  7. localdef °¡ ãÀ» ¼ö ÀÖ´Â °÷¿¡ ¹®ÀÚÇ¥¸¦ ¼³Ä¡ÇÑ´Ù. dkuug.dk FTP »çÀÌÆ®·Î ºÎÅÍ charmaps.tar, locales.tar ¶ó´Â È­ÀÏ·Î ±¸ÇÑ °ÍÀ» »ç¿ëÇÏ¿´´Ù.
tar xf charmaps.tar -C /tmp mkdir /usr/share/nls mkdir /usr/share/nls/charmap mkdir /usr/share/locale mv /tmp/charmaps/* /usr/share/nls/charmap rm -rf /tmp/charmaps tar xf locales.tar -C /usr/share # put these where you want.


# ¾î¶² ·ÎÄÉÀÏ ¼Ò½º´Â `copy'¸¦ »ç¿ëÇÏ¸ç µû¶ó¼­ ´Ù¸¥ ·ÎÄÉÀÏ¿¡ ´ëÇÑ
  # ÀÇÁ¸¼ºÀ» °¡Áø´Ù. º»ÀÎÀº grep, cut, sed ¸¦ »ç¿ëÇÏ¿© makefile À» 
  # ÀÌ·¸°Ô ÇØÁÖ¸é /usr/share/locale µð·ºÅ丮¿¡ ¸ðµç ·ÎÄÉÀÏ °´Ã¼¸¦
  # ¸¸µé¾î ÁÙ °ÍÀÌ´Ù.
  #
  localedef -ci locales/en_DK -f ISO_8859-1:1987 en_DK
  localedef -ci locales/sv_SE -f ISO_8859-1:1987 sv_SE
  localedef -ci locales/fi_FI -f ISO_8859-1:1987 fi_FI
  localedef -ci locales/sv_FI -f ISO_8859-1:1987 sv_FI
  localedef -ci locales/ro_RO -f ISO_8859-1:1987 ro_RO
  localedef -ci locales/pt_PT -f ISO_8859-1:1987 pt_PT
  localedef -ci locales/no_NO -f ISO_8859-1:1987 no_NO
  localedef -ci locales/nl_NL -f ISO_8859-1:1987 nl_NL
  localedef -ci locales/fr_BE -f ISO_8859-1:1987 fr_BE
  localedef -ci locales/nl_BE -f ISO_8859-1:1987 nl_BE
  localedef -ci locales/da_DK -f ISO_8859-1:1987 da_DK
  localedef -ci locales/kl_GL -f ISO_8859-1:1987 kl_GL
  localedef -ci locales/it_IT -f ISO_8859-1:1987 it_IT
  localedef -ci locales/is_IS -f ISO_8859-1:1987 is_IS
  localedef -ci locales/fr_LU -f ISO_8859-1:1987 fr_LU
  localedef -ci locales/fr_FR -f ISO_8859-1:1987 fr_FR
  localedef -ci locales/de_DE -f ISO_8859-1:1987 de_DE
  localedef -ci locales/de_CH -f ISO_8859-1:1987 de_CH
  localedef -ci locales/fr_CH -f ISO_8859-1:1987 fr_CH
  localedef -ci locales/en_CA -f ISO_8859-1:1987 en_CA
  localedef -ci locales/fr_CA -f ISO_8859-1:1987 fr_CA
  localedef -ci locales/fo_FO -f ISO_8859-1:1987 fo_FO
  localedef -ci locales/et_EE -f ISO_8859-1:1987 et_EE
  localedef -ci locales/es_ES -f ISO_8859-1:1987 es_ES
  localedef -ci locales/en_US -f ISO_8859-1:1987 en_US
  localedef -ci locales/en_GB -f ISO_8859-1:1987 en_GB
  localedef -ci locales/en_IE -f ISO_8859-1:1987 en_IE
  localedef -ci locales/de_LU -f ISO_8859-1:1987 de_LU
  localedef -ci locales/de_BE -f ISO_8859-1:1987 de_BE
  localedef -ci locales/de_AT -f ISO_8859-1:1987 de_AT
  localedef -ci locales/sl_SI -f ISO_8859-2:1987 sl_SI
  localedef -ci locales/ru_RU -f ISO_8859-5:1988 ru_RU
  localedef -ci locales/pl_PL -f ISO_8859-2:1987 pl_PL
  localedef -ci locales/lv_LV -f BALTIC lv_LV
  localedef -ci locales/lt_LT -f BALTIC lt_LT
  localedef -ci locales/iw_IL -f ISO_8859-8:1988 iw_IL
  localedef -ci locales/hu_HU -f ISO_8859-2:1987 hu_HU
  localedef -ci locales/hr_HR -f ISO_8859-4:1988 hr_HR
  localedef -ci locales/gr_GR -f ISO_8859-7:1987 gr_GR

6. ÀÌÁ¦ ¹«¾ùÀ» ÇÒ °ÍÀΰ¡?

ÀÌ·¸°Ô ¼³Ä¡ÇÏ°í ³­ ÈÄ ¿©·¯ºÐÀº ·ÎÄÉÀÏÀ» »ç¿ëÇÒ ¼ö ÀÖ°Ô µÈ´Ù. ¿©±â ¾ÆÁÖ °£´ÜÇÑ ¿¹°¡ ÀÖ´Ù.


     /* test.c : ·ÎÄÉÀÏÀÌ ·ÎµùµÇ°í »ç¿ëµÇ´ÂÁö Å×½ºÆ® */
       #include <locale.h>
       #include <stdio.h>
       #include <time.h>
     main(){
               time_t t;
               struct tm * _t;
               char buf[256];
             time(&t);
               _t = gmtime(&t);
             setlocale(LC_TIME,"");
               strftime(buf,256,"%c",_t);
             printf("%s\n",buf);
       }

·ÎÄÉÀÏ ÇÁ·Î±×·¥À» »ç¿ëÇÏ¿© ÇÏ¿© ÇöÀç ·ÎÄÉÀÏ È¯°æº¯¼ö°¡ ¾î¶²Áö ¾Ë¾Æº¼ ¼ö ÀÖ´Ù.
     $ # ¼­·Î ´Ù¸¥ ¸î °¡Áö ·ÎÄÉÀÏ ¼³Á¤À» ÇÏ¿© À§ ÇÁ·Î±×·¥À» ¼öÇà½ÃŲ´Ù.
       $ gcc -s -o Test test.c
       $ # ·ÎÄÉÀÏÀÌ ¹«¾ùÀÎÁö ¾Ë¾Æº»´Ù.
       $ locale
       LANG=POSIX
       LC_COLLATE="POSIX"
       LC_CTYPE="POSIX"
       LC_MONETARY="POSIX"
       LC_NUMERIC="POSIX"
       LC_TIME="POSIX"
       LC_MESSAGES="POSIX"
       LC_ALL=
       $ # Áö·çÇϱâ ¦ÀÌ ¾ø´Â C ·ÎÄÉÀÏÀ» »ç¿ëÇÏ°í ÀÖ´Ù. -_-
       $ # ¿µ¾î±Ç Ä«³ª´Ù·Î ¹Ù²Ù¾îº¸ÀÚ.
       $ export LC_TIME=en_CA
       $ Test
       Sat 23 Mar 1996 07:51:49 PM
       $ # À̹ø¿¡´Â ÇÁ¶û½º¾î±Ç Ä«´Ù³ª·Î ¹Ù²Ù¾îº¸ÀÚ.
       $ export LC_TIME=fr_CA
       $ Test
       sam 23 mar 1996 19:55:27

7. catopen ¹ö±× °íÄ¡±â

·ÎÄÉÀÏÀ» ÀνºÅçÇÏ°Ô µÇ¸é ¸®´ª½º libc ¿¡ ÀÖ´Â catopen ¸í·É¿¡ ÀÖ´Â ¹ö±×(±â´É?) À» °íÄ¡°Ô µÈ´Ù. ¸Þ¼¼Áö ¸ñ·ÏÀ» »ç¿ëÇÏ´Â ÇÁ·Î±×·¥À» ¸¸µç ÈÄ µ¶ÀÏ¾î ¸ñ·ÏÀ»

/home/peeter/catalogs/de_DE ¿¡ ¸¸µé¾î ³ÖÀ¸¶ó.

de_DE ·ÎÄÉÀÏÀ» ÀνºÅçÇϱâ Àü¿¡ ´ÙÀ½À» ¼öÇàÇÑ´Ù.

export LC_MESSAGES=de_DE export NLSPATH=/home/peeter/catalogs/%L/%N.cat:$NLSPATH µ¶ÀÏ¾î ¸Þ¼¼Áö´Â ¿­¸®Áö ¾Ê°í catget ÀÇ ±âº» ¸Þ¼¼Áö°¡ »ç¿ëµÈ´Ù.

ÀÌ ÀÌÀ¯´Â catopen ÀÌ ¿Ã¹Ù¸¥ ¸Þ¼¼Áö ¹üÁÖ¸¦ ¾ò¾î³»±â À§ÇØ setlocale ¸¦ È£ÃâÇÏ Çϴµ¥ setlocale Àº ȯ°æº¯¼ö°¡ Á¦´ë·Î ¼¼ÆõǾî ÀÖÀ½¿¡µµ ºÒ±¸ÇÏ°í ½ÇÆÐÇÏ ±â ¶§¹®ÀÌ´Ù.

catopen Àº NLSPATHÀÇ ¸ðµç "%L"¿¡ ´ëÇÏ¿© C ·Î ±³Ã¼ÇÏ·Á°í ÇÑ´Ù. ·ÎÄÉÀÏÀ» ¼³Ä¡ÇÏÁö ¾Ê¾Æµµ ¿©·¯ºÐÀÇ ¸Þ¼¼Áö ¸ñ·ÏÀ» »ç¿ëÇÒ ¼ö´Â ÀÖ´Ù. ÇÏÁö¸¸ NLSPATH¸¦ Á¤È®È÷ ´ÙÀ½°ú °°ÀÌ ¸í½ÃÇØÁÖ¾î¾ß ÇÒ °ÍÀÌ´Ù.

export NLSPATH=/home/peeter/catalogs/de_DE/%N.cat:$NLSPATH ÇÏÁö¸¸ ÀÌ·¸°Ô µÇ¸é ·ÎÄÉÀÏ ¹üÁÖ¿¡ ´ëÇÑ È¯°æº¯¼ö¸¦ »ç¿ëÇÒ Çʿ伺 ÀÚü°¡ »ç¶ó Áö´Â °ÍÀÌ´Ù.

8. Áú¹®°ú ´ä

ÀÌ ¼½¼ÇÀº Áö±ÝÀ¸·Î¼­´Â FAQ ¶ó°í ÇÒ ¼ö ¾ø°ÚÁö¸¸ ¾ÕÀ¸·Î FAQ ·Î ÀÚ¶ó³¯ °ÍÀÌ´Ù.

8.1 msgcat Áú¹®

³ª´Â ¸®´ª½º »ç¿ëÀÚÀÌ¸ç ´ÙÀ½°ú °°Àº ½ÃÇè ÇÁ·Î±×·¥À» ¸¸µé¾ú´Ù.


       #include <stdio.h>
       #include <locale.h>
       #include <features.h>
       #include <nl_types.h>
     main(int argc, char ** argv)
       {
               nl_catd catd;
             setlocale(LC_MESSAGES, "");
               catd = catopen("msg", MCLoadBySet);
               fprintf(stderr,catgets(catd, 1, 1, "locale message fail\n"));
               catclose(catd);
       }

$ msg.m $set 1 1 locale message pass\n

If I use absolute path in catopen like

³»°¡ ¸¸¾à catopen("/etc/locale/msg.cat",MCLoadBySet); ¿Í °°ÀÌ Àý´ë °æ·Î¸¦ »ç¿ëÇÏ¸é ¿ÇÀº °á°ú¸¦ ¾ò¾î³»Áö¸¸ À§Ã³·³ »ç¿ëÇÏ¸é °á°ú°ª -1 Áï ½ÇÆÐÇÏ°Ô µÈ´Ù.

8.2 msgcat ´äº¯

ÀÌ Áú¹®Àº Áö³­ ¼½¼Ç¿¡¼­ ´äº¯ÀÌ µÈ ¹®Á¦À̱ä ÇÏÁö¸¸ ¸î °¡Áö ºÎ°¡ÀûÀÎ Á¤º¸¸¦ ¸»ÇÒ ±âȸ¶ó°í »ý°¢ÇÑ´Ù.

¿©·¯ºÐÀÇ ¸Þ¼¼Áö ¸ñ·ÏÀ» ³ÖÀ» ¼ö ÀÖ´Â °÷Àº ¾ÆÁÖ ¸¹´Ù. ȯ°æº¯¼ö¿¡¼­ NLSPATH¸¦ ¸í½ÃÀûÀ¸·Î ¼³Á¤ÇÏÁö ¾Ê¾Ò´Ù ÇÏ´õ¶óµµ ´ÙÀ½°ú °°ÀÌ libc ¿¡ Á¤ÀǵǾî ÀÖ´Ù.


     $ strings /lib/libc.so.5.2.18 | grep locale | grep %L
       /etc/locale/%L/%N.cat:/usr/lib/locale/%L/%N.cat:/usr
       /lib/locale/%N/%L:/usr/share/locale/%L/%N.cat:/usr/
       local/share/locale/%L/%N.cat

µû¶ó¼­ ´ÙÀ½ Áß Çϳª¸¦ ¼¼ÆÃÇØÁÖ¸é :
     $ export LC_MESSAGES=en_CA
       $ export LC_ALL=en_CA
       $ export LANG=en_CA

À§¿¡¼­ º¸¿©Áø NLSPATH¿Í ȯ°æº¯¼ö¿¡ ÀÇ°ÅÇÏ¿© catopen("msg", MCLoadBySet); ´Â
  ´ÙÀ½ µð·ºÅ丮 Áß Çϳª¿¡ ¸Þ¼¼Áö ¸ñ·ÏÀÌ ÀÖ´Â °æ¿ì ÀÛµ¿ÇÏ°Ô µÈ´Ù.
     /etc/locale/en_CA/msg.cat
       /usr/lib/locale/en_CA/msg.cat
       /usr/lib/locale/msg/en_CA
       /usr/share/locale/en_CA/msg.cat
       /usr/local/share/locale/en_CA/msg.cat

This, however, will not work if you don't have the en_CA locale

ÇÏÁö¸¸ ¿©·¯ºÐÀÌ en_CA ·ÎÄÉÀÏÀ» ¼³Ä¡ÇÏÁö ¾Ê¾Ò´Ù¸é Á¦´ë·Î µ¿ÀÛÇÏÁö ¾Ê´Â´Ù. ¿Ö³ÄÇϸé setlocale °¡ ½ÇÆÐÇÏ¿© catopen ·çƾÀÇ %LÀ» en_CA °¡ ¾Æ´Ñ C ·Î ±³Ã¼ Çϱ⠶§¹®ÀÌ´Ù.

9. ³¡³»´Â ¸»

ÀÚ, ÀÌ°ÍÀÌ ÀüºÎ´Ù. ÀÌ ¹®¼­°¡ ¿©·¯ºÐ¿¡°Ô ¾à°£À̶ó°í µµ¿òÀÌ µÇ¾ú±â¸¦ ¹Ù¶õ´Ù. ·ÎÄÉÀÏ ÀÎ½Ä ÇÁ·Î±×·¥À» Â¥´Âµ¥ ´ëÇÑ ´Ù¸¥ Á¤º¸¸¦ ãÀ» ¼ö ÀÖ´Â °÷ÀÌ ¸¹ÀÌ ÀÖÀ» °ÍÀÌ´Ù. libc¿¡ ´ëÇÑ info ÆäÀÌÁö¿¡µµ ¾à°£ÀÇ Á¤º¸°¡ ÀÖ°í ¸ÇÆäÀÌÁö¿¡µµ ÀÖ´Ù. ¾à°£ À¥À» µ¹¾Æ´Ù´Ï´Ù º¸¸é ¸¹Àº Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖÀ¸¸®¶ó º»´Ù. ±¹Á¦È­µÈ ÇÁ·Î±×·¥¿¡ ´ëÇÑ ÁÁÀº Á¤º¸ ¿øõÀ» ã°Ô µÇ°í º»Àεµ ¾Ë±â ¹Ù¶õ´Ù¸é, ¿©±â´Ù Àû¾î³õ±â·Î ÇÏ°Ú´Ù.


ID
Password
Join
You have literary talent that you should take pains to develop.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-08-10 11:52:30
Processing time 0.0014 sec