iPhone¥¢¥×¥ê¤ò¿¸À¸ìÂбþ¤Ë¤¹¤ë

¥«¥Æ¥´¥ê
¥Ö¥Ã¥¯¥Þ¡¼¥¯¿ô
¤³¤Î¥¨¥ó¥È¥ê¡¼¤ò´Þ¤à¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯ ¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯ - iPhone¥¢¥×¥ê¤ò¿¸À¸ìÂбþ¤Ë¤¹¤ë
¤³¤Î¥¨¥ó¥È¥ê¡¼¤ò¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ËÄɲÃ

¤³¤ó¤Ë¤Á¤Ï¡¢¥Ç¥¹¥¯¤Î¾å¤ËiPhone¤ò°ÕÌ£¤â¤Ê¤¯3Âæʤ٤ëÃË¡¢faultier¤Ç¤¹¡£

ËͤÎÉáÃʤλŻö¤Ïlivedoor blog¤älivedoor ¥Ë¥å¡¼¥¹¤Î¥â¥Ð¥¤¥ëÈǤΥ·¥¹¥Æ¥à³«È¯¤Ç¤¹¤¬¡¢¤È¤­¤Ë¤Ïlivedoor ¥¯¥ê¥Ã¥×¥¢¥×¥ê¤Î¤è¤¦¤ÊiPhone¥¢¥×¥ê¤Î³«È¯¤â¤ä¤Ã¤Æ¤¤¤Þ¤¹¡£¤È¤¤¤¦¤³¤È¤Ç¡¢º£Æü¤ÏPerl¤ÎÏäǤϤʤ¯¡¢iPhone¥¢¥×¥ê¤ÈObjective-C¤ÎÏäò¤·¤è¤¦¤È»×¤¤¤Þ¤¹¡£

iphone_jaiphone_ja_icon

¾å¤Î²èÁü¤Ïlivedoor ¥¯¥ê¥Ã¥×¥¢¥×¥ê¤Ç¤¹¤¬¡¢¼Â¤Ï¸À¸ìÀßÄ꤬¡ÖÆüËܸì¡×°Ê³°¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¤ÈÆüËܸìÉôʬ¤¬±Ñ¸ì¤ËÊѤï¤ê¤Þ¤¹¡£

¥Ô¥¯¥Á¥ã 3iphone_en_icon

MacOSX¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òºîÀ®¤·¤¿¤³¤È¤¬¤¢¤ëÊý¤Ï¤´Â¸ÃΤ«¤È»×¤¤¤Þ¤¹¤¬¡¢Cocoa¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï´Êñ¤Ë¿¸À¸ì²½¤¹¤ë»ÅÁȤߤ¬È÷¤ï¤Ã¤Æ¤¤¤Þ¤¹¡Ê¤Ç¤­¤ë¤³¤È¤Ïñ½ç¤Ç¤¹¤¬¡Ë¡£

¥í¡¼¥«¥é¥¤¥º¤µ¤ì¤¿¥ê¥½¡¼¥¹¤òÍÑ°Õ¤¹¤ë

¤Þ¤º¡¢¥í¡¼¥«¥é¥¤¥º¤µ¤ì¤¿¥ê¥½¡¼¥¹¤ÎÃÖ¤­¾ì¤òÍÑ°Õ¤·¤Þ¤¹¡£±Ñ¸ì¤ÈÆüËܸì¤ËÂбþ¤¹¤ë¾ì¹ç¤Ï¡¢en.lproj¤Èja.lproj¤È¤¤¤¦¥Ç¥£¥ì¥¯¥È¥ê¤òºî¤Ã¤Æ¡¢Xcode¾å¤Ç¥×¥í¥¸¥§¥¯¥È¤Ë¼è¤ê¹þ¤ß¤Þ¤¹¡£Â¾¤Î¸À¸ì¤Ë¤âÂбþ¤¹¤ë¾ì¹ç¤Ï¡¢(ISO 639¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë2ʸ»ú¤â¤·¤¯¤Ï3ʸ»ú¤Î¸À¸ì¥³¡¼¥É¡Ë.lproj¤È¤¤¤¦¥Ç¥£¥ì¥¯¥È¥ê¤òÄɲ䷤Ƥ¤¤¯¤À¤±¤Ç¤¹¡£

¤Þ¤¿¡¢¤â¤Ã¤ÈºÙ¤«¤¯Ê¬Îष¤¿¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢en_US¤äen_GB¤Ê¤É¤Î¤è¤¦¤Ë¡¢ISO 3166¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥³¡¼¥É¤ò»ÈÍѤ·¤Æ¹ñ¤äÃÏ°è¤Ë¹Ê¤ê¹þ¤à¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¤µ¤é¤Ë¡¢English¡¢Japanese¡¢French¡¢German¤Ê¤É¸À¸ì̾¤Ç¤Î»ØÄê¤â¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¤¬¡¢¤³¤Á¤é¤Ï¥ì¥¬¥·¡¼¤Ê¤ä¤êÊý¤Î¤è¤¦¤Ê¤Î¤Ç¡¢¸À¸ì¥³¡¼¥É¤ò»È¤¦Êý¤ò¤ªÁ¦¤á¤·¤Þ¤¹¡Ê¸å½Ò¤¹¤ëXcode¾å¤«¤é¥í¡¼¥«¥é¥¤¥º¥É¤Ê¥ê¥½¡¼¥¹¤òºî¤ëÊýË¡¤Ç¤Ï¡¢²¿¸Î¤«English¤äJapanese¤Î¤è¤¦¤Ê¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ê¤ê¤Þ¤¹¤¬¡Ä¡Ë¡£

en.lproj¤Èja.lproj¤ò¥×¥í¥¸¥§¥¯¥È¤Ë¼è¤ê¹þ¤ó¤À¤é¡¢¤½¤ì¤¾¤ì¤Î²¼¤ËInfoPlist.strings¤ÈLocalizable.strings¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤òºî¤ê¤Þ¤¹¡£InfoPlist.strings¤Ï¡¢Info.plist¤ÇÀßÄꤵ¤ì¤ëÆâÍÆ¡ÊÎ㤨¤Ð¥¢¥×¥ê¤Îɽ¼¨Ì¾¤Ê¤É¡Ë¤ò¥í¡¼¥«¥é¥¤¥º¤¹¤ë¤¿¤á¤Ë»È¤¤¤Þ¤¹¡£Localizable.strings¤ÎÊý¤Ï¹¥¤­¤Ë»È¤¨¤ë¥í¡¼¥«¥é¥¤¥º¥É¤µ¤ì¤¿Ê¸»úÎó¤òÆþ¤ì¤ÆÃÖ¤­¤Þ¤¹¡£

Ãæ¿È¤Ï°Ê²¼¤Î¤è¤¦¤Ë¡¢"key" = "localized value"¤Î·Á¼°¤Çµ­½Ò¤·¤Þ¤¹¡£¤¢¤È¤Ï¡¢¥×¥í¥°¥é¥à¦¤«¤é¤³¤Î¥­¡¼¤ò¸µ¤Ëʸ»úÎó¤ò¼èÆÀ¤¹¤ì¤Ð¡¢¤½¤Î¤È¤­¤ÎiPhone¤ÎÀßÄê¤Ë±þ¤¸¤Æ¤½¤ì¤¾¤ì¤Î¸À¸ì¤Îʸ»úÎó¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

/*
 ja.lproj/InfoPlist.strings
 */
CFBundleDisplayName = "ÆüËܤο´";
/*
 ja.lproj/Localizable.strings
 ¤³¤³¤Ï¥³¥á¥ó¥È
 ¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ÏUTF-16¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤ËÃí°Õ
 */
"Hoge" = "¤Û¤²";
/*
 en.lproj/Localizable.strings
 */
"Hoge" = "foo";

¤Þ¤¿¡¢Àè¤Ëlproj¥Ç¥£¥ì¥¯¥È¥ê¤òºî¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢Àè¤ËInfoPlist.strings¤äLocalizable.strings¤ò¥×¥í¥¸¥§¥¯¥È¤ËÄɲ䷤Ƥª¤­¡¢¡Ö¾ðÊó¤ò¸«¤ë¡×¤«¤é¡Ö¥í¡¼¥«¥é¥¤¥º²Äǽ¤Ë¤¹¤ë¡×¤³¤È¤â¤Ç¤­¤Þ¤¹¡£¤³¤Î¾ì¹ç¡¢Xcode¤Î¥×¥í¥¸¥§¥¯¥È¾å¤Ë¤Ïlproj¥°¥ë¡¼¥×¤Ïɽ¼¨¤µ¤ì¤º¡¢strings¥Õ¥¡¥¤¥ë¤½¤Î¤â¤Î¤¬Æó¤Ä¤ËʬÎö¤·¤¿¤è¤¦¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¤¬¡¢ÆâÉô¤Ç¤Ï(¸À¸ì̾).lproj¤¬ºî¤é¤ì¤Æ¤¤¤Þ¤¹¡£

¥×¥í¥°¥é¥à¦¤òLocalizedString¤ËÂбþ¤µ¤»¤ë

¤³¤¦¤·¤ÆÍÑ°Õ¤·¤¿¥í¡¼¥«¥é¥¤¥º¥É¤µ¤ì¤¿Ê¸»úÎó¤ò¥×¥í¥°¥é¥à¦¤«¤é»È¤¦¥³¡¼¥É¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

NSString *localizedString = [[NSBundle mainBundle] localizedStringForKey:@"Hoge" value:@"Hoge" table:nil];

¤³¤ì¤Ç¡¢¡ÖLocalizable.strings¤«¤é¥­¡¼¤¬Hoge¤Î¥í¡¼¥«¥é¥¤¥º¥É¤µ¤ì¤¿Ê¸»úÎó¤ò¼èÆÀ¤¹¤ë¡£¸½ºß¤ÎÀßÄê¤Î¸À¸ìÀìÍѤΥ꥽¡¼¥¹¤¬Ìµ¤¤¤«¡¢¤¢¤Ã¤Æ¤â¤³¤Î¥­¡¼¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢"Hoge"¤È¤¤¤¦Ê¸»úÎó¤òÊÖ¤¹¡×¤È¤¤¤¦½èÍý¤Ç¤¹¡£

¤¿¤À¡¢Ëè²ó¤³¤ì¤ò½ñ¤¯¤Î¤Ï¡Öʸ»úÎó¤ò¼èÆÀ¤¹¤ë¡×¤È¤¤¤¦ÌÜŪ¤Î¤¿¤á¤À¤±¤Ë¤Ï¤Á¤ç¤Ã¤ÈÈÑ»¨¤Ê¤Î¤Ç¡¢¼¡¤Î¤è¤¦¤Ê¥Þ¥¯¥í¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

NSString *localizedString = NSLocalizedString(@"Hoge", @"");

2¸ÄÌܤΰú¿ô¤Ï¤¿¤À¤Î¥³¥á¥ó¥È¤Ê¤Î¤Ç¡¢Æä˲¿¤«¤Ë»È¤ï¤ì¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤³¤ì¤ÇºÇ½é¤Î¥³¡¼¥É¤ÈƱ¤¸Ê¸»úÎó¤¬ÆÀ¤é¤ì¤Þ¤¹¡£¸µ¤Î¥á¥½¥Ã¥É¤Ç¤Ï¡¢¤É¤³¤Î¥Ð¥ó¥É¥ë¤«¤é¼è¤Ã¤Æ¤¯¤ë¤«¡¢¤É¤Î¥Æ¡¼¥Ö¥ë¡Ê¥Õ¥¡¥¤¥ë¡Ë¤«¤éʸ»úÎó¤òõ¤¹¤«¡¢»ØÄꤵ¤ì¤¿¥­¡¼¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤ËÊÖ¤¹¥Ç¥Õ¥©¥ë¥È¤ÎÃͤϲ¿¤«¡¢¤Þ¤Ç»ØÄê¤Ç¤­¤Þ¤¹¤¬¡¢¡Ö¥Ð¥ó¥É¥ë¤¬mainBundle¡¢¥Æ¡¼¥Ö¥ë¤ÏLocalizable.strings¡¢»ØÄꤷ¤¿¥­¡¼¤¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï¥­¡¼¤ÈƱ¤¸Ê¸»úÎó¡×¤ÇÎɤ¤¤Î¤Ç¤¢¤ì¤Ð¡¢¤³¤Î¥Þ¥¯¥í¤ÎÊý¤¬³Ú¤Ç¤¹¤Í¡£

¤Á¤Ê¤ß¤Ë¡¢¥Æ¡¼¥Ö¥ë̾¤ò»ØÄꤷ¤¿¾ì¹ç¤ÏLocalizable.strings°Ê³°¤Î¥Õ¥¡¥¤¥ë¤«¤éʸ»úÎó¤ò¼èÆÀ¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£Î㤨¤Ð¡¢Error.strings¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤òºî¤ê¡¢¤½¤³¤Ë¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò¤Þ¤È¤á¤Æ¤ª¤¯¤È¡¢¥×¥í¥°¥é¥à¤«¤é¤Ï¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤»¤Þ¤¹¡£

NSString *lcalizedErrorMessage = NSLocalizedStringFromTable(@"ConnectionError", @"Error", @"");
// ¼¡¤Î¥³¡¼¥É¤Ç¤âƱ¤¸
//NSString *lcalizedErrorMessage = [[NSBundle mainBundle] localizedStringForKey:@"ConnectionError" value:@"ConnectionError"];

¤³¤Î¤è¤¦¤Ë¤·¤Æ¡¢¥¢¥×¥êÃæ¤Ç»È¤ï¤ì¤ëʸ»úÎó¤ò¡Ê¸À¸ì̾¡Ë.lproj°Ê²¼¤Îstrings¥Õ¥¡¥¤¥ë¤ËÈ´¤­½Ð¤·¤Æ¤ª¤±¤Ð¡¢¤¢¤È¤Ï¤½¤Î¥Õ¥¡¥¤¥ë¤ò¸À¸ìËè¤Ëºî¤Ã¤Æ¤ä¤ë¤À¤±¤Ç¡¢É½¼¨¤¹¤ëʸ¸À¤ä¥á¥Ë¥å¡¼¤Î¥é¥Ù¥ë¤Ê¤É¤òÊѤ¨¤ëÄøÅ٤ǤϤ¢¤ê¤Þ¤¹¤¬¡¢´Êñ¤Ë¿¸À¸ìÂбþ¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

xib¥Õ¥¡¥¤¥ë¤Î¥í¡¼¥«¥é¥¤¥º

strings¥Õ¥¡¥¤¥ë¤Ç¥í¡¼¥«¥é¥¤¥º¤¹¤ë¾¤Ë¡¢xib¥Õ¥¡¥¤¥ë¤âƱ¤¸ÊýË¡¤Ç³Æ¸À¸ì¤´¤È¤Î¥í¡¼¥«¥é¥¤¥ºÈǤòºî¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¥×¥í¥°¥é¥à¦¤òÂçÉý¤ËÊѹ¹¤»¤º¤È¤â¡¢¸À¸ì¤Ë¹ç¤ï¤»¤ÆUI¤òÊѤ¨¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

¤¿¤À¡¢µ¡Ç½¤ä¥Ç¥¶¥¤¥ó¤Ë´Ø¤ï¤ëxib¥Õ¥¡¥¤¥ë¤ò³Æ¸À¸ìʬÍÑ°Õ¤·¤Æ´ÉÍý¤¹¤ë¤Î¤Ï¡¢Ê¸»úÎó¤·¤«´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤strings¥Õ¥¡¥¤¥ë¤Î´ÉÍý¤è¤ê¤Ï¼ê´Ö¤â¤«¤«¤êµ¤¤ò»È¤¦É¬Íפ⤢¤ê¤Þ¤¹¤·¡¢¥µ¥¤¥º¤âÂ礭¤¯¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤ò»È¤¦¾ì¹ç¤Ï¤½¤ÎɬÍפ¬¤¢¤ë¤«¤É¤¦¤«¡¢¿µ½Å¤Ë¸¡Æ¤¤·¤¿Êý¤¬Îɤ¤¤Ç¤·¤ç¤¦¡£

¤Á¤Ê¤ß¤Ë¡¢livedoor ¥¯¥ê¥Ã¥×¥¢¥×¥ê¤ÎUI¤ÏÂçÉôʬ¤òxib¥Õ¥¡¥¤¥ë¤ò»È¤ï¤º¤Ë¼ÂÁõ¤·¤Æ¤¤¤ë¤¿¤á¡¢ÆäËUI¼«ÂÎ¤Î¥í¡¼¥«¥é¥¤¥º¤Ï¤·¤Æ¤¤¤Þ¤»¤ó¡£

¿¸À¸ìÂбþ¤Î¥á¥ê¥Ã¥È

iPhone¥¢¥×¥ê¤Ï¡¢AppStore¤Î¤ª¤«¤²¤Ç»×¤Ã¤¿°Ê¾å¤Ë³¤³°¤ÎiPhone¥æ¡¼¥¶¤Ë¤â¸«¤Æ¤â¤é¤¨¤Þ¤¹¡£

livedoor ¥¯¥ê¥Ã¥×¤Î¾ì¹ç¡¢¸µ¤Î¥µ¡¼¥Ó¥¹¤¬¤½¤â¤½¤âÆüËܸì¤òÍý²ò¤Ç¤­¤ë¿Í¤Ç¤Ê¤±¤ì¤Ð»È¤¨¤Ê¤¤¥µ¡¼¥Ó¥¹¤Ê¤Î¤Ç¡¢ÆüËܸì¤Î¤ßÂбþ¤Ë¤·¤Æ¤â¤è¤«¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢¥ê¥ê¡¼¥¹¸å¤Ë¹ñÊ̤ΥÀ¥¦¥ó¥í¡¼¥É¿ô¤ò¸«¤¿¤È¤³¤íͽÁ۰ʾå¤Ë³¤³°¤«¤é¤Î¥À¥¦¥ó¥í¡¼¥É¤¬¤¢¤ê¤Þ¤·¤¿¡Ê¤â¤Á¤í¤ó¡¢³¤³°ºß½»¤ÎÆüËܿͤÀ¤Ã¤¿¤ê¡¢ÌµÎÁ¤Î¥¢¥×¥ê¤Ê¤Î¤Çµ¤·Ú¤Ë¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¤·¤Þ¤Ã¤¿¤À¤±¤Î²ÄǽÀ­¤â¤¢¤ê¤Þ¤¹¤¬¡Ë¡£

¤è¤¯Ê¬¤«¤é¤Ê¤¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤â¡¢¤Þ¤Ã¤¿¤¯Æɤá¤Ê¤¤¸À¸ì¤Ç½ñ¤¤¤Æ¤¢¤ë¤è¤ê¡¢±Ñ¸ì²½¤µ¤ì¤Æ¤¤¤ë¤À¤±¤Ç¤â¾¯¤·°Â¿´¤·¤Æ¤â¤é¤¨¤ë¤è¤¦¤Ç¤¹¡£

¤ß¤Ê¤µ¤ó¤â¡¢À§Èó¡¢À¤³¦Ãæ¤Ç»È¤Ã¤Æ¤â¤é¤¨¤ëiPhone¥¢¥×¥ê¤òºî¤Ã¤Æ¤ß¤Æ²¼¤µ¤¤¡ª

¥ì¥¹¥Ý¥ó¥¹
¥³¥á¥ó¥È(0)
¥È¥é¥Ã¥¯¥Ð¥Ã¥¯(1)

¤³¤Î¥¨¥ó¥È¥ê¡¼¤ò¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ËÄɲÃ