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

You are not allowed to 'edit'


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
Even the boldest zebra fears the hungry lion.


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