| ±¾ÎĽ«´ÓAsp.netʵÏÖ×ÊÔ´È«Çò»¯ºÍ±¾µØ»¯µÄ»ù±¾¸ÅÄîÈëÊÖ£¬²ûÊöÔÚAsp.net1.1ºÍAsp.net2.0ÖÐʵÏÖÈ«Çò»¯ºÍ±¾µØ»¯µÄ²½Öè¡¢·½·¨¡£ Ò»£®»ù±¾¸ÅÄî 1£®ÎªÊ²Ã´ÒªÊµÏÖ×ÊÔ´µÄ±¾µØ»¯£¿ ÎÒÃǵÄÕ¾µã¿ÉÄÜΪȫÇò¸÷¸ö¹ú¼ÒºÍµØÇøµÄÈËËùä¯ÀÀ£¬Ã¿¸ö¹ú¼ÒºÍµØÇøµÄÈ˶¼ÓÐ×ÔÉíµÄÓïÑÔÎÄ»¯Ìص㡣¾ÍÄÃÔÛÃÇΰ´óµÄ׿¹úΪÀý£¬Öйú´ó½ÓüòÌåÖÐÎÄ£¬¸Û°Ą̈ÔòʹÓ÷±ÌåÖÐÎÄ¡£ÁíÍâ¸÷¸ö¹ú¼Ò¶ÔÓÚ»õ±Ò¡¢Êý×Ö¡¢ÈÕÀúµÈÐÅÏ¢µÄ±í´ï¸ñʽ¸÷Óв»Í¬£¬ÎÒÃǹú¼Ò¶àʹÓÃÄêÔÂÈյĸñʽ£¬¶øÃÀ¹úÔòÊÇÔÂÈÕÄê¡£ÖîÈç´ËÀàµÄÇø±ðÁÖÁÖ×Ü×Ü£¬ÎÒÒ²¾Í²»¶à¾ÙÀýÁË¡£ÎªÁ˸øÎÒÃǵÄÍøÕ¾ä¯ÀÀÕ߸üºÃµÄÓû§ÌåÑ飬ÎÒÃÇÓ¦¸ÃÌṩһ¸öÈ«Çò»¯µÄ½â¾ö·½°¸£¬Ö»ÒªÓû§Ñ¡ÔñÁËËûµÄÓïÑÔºÍÇøÓò£¬Õ¾µã¾Í°´ÕÕËûµÄÓïÑÔÎÄ»¯Ï°¹ßÀ´Õ¹ÏÖÒ³ÃæÐÅÏ¢£¬Õâ¸ö¹ý³Ì¿ÉÒÔ½Ð×ö±¾µØ»¯¡£ 2£®ÇøÓòÐÔ¡¢¹Ì¶¨ÇøÓòÐÔ¡¢·ÇÌØ¶¨ÇøÓòÐÔ¡¢Ìض¨ÇøÓòÐÔ ÇøÓòÐÔÃû³Æ×ñÑ RFC 1766 ±ê×¼£¬¸ñʽΪ¡°<languagecode2>-<country/regioncode2>¡±£¬ÆäÖÐ <languagecode2> ÊÇ´Ó ISO 639-1 ÅÉÉúµÄÓÉÁ½¸öСд×Öĸ¹¹³ÉµÄ´úÂ룬<country/regioncode2> ÊÇ´Ó ISO 3166 ÅÉÉúµÄÓÉÁ½¸ö´óд×Öĸ¹¹³ÉµÄ´úÂë¡£ÀýÈ磬ÃÀ¹úÓ¢ÓïΪ¡°en-US¡±¡£ÔÚË«×ÖĸÓïÑÔ´úÂë²»¿ÉÓõÄÇé¿öÖУ¬½«Ê¹ÓÃ´Ó ISO 639-2 ÅÉÉúµÄÈý×Öĸ´úÂ룻ÀýÈ磬Èý×Öĸ´úÂë¡°div¡±ÓÃÓÚʹÓà Dhivehi ÓïÑÔµÄÇøÓò¡£Ä³Ð©ÇøÓòÐÔÃû³Æ´øÓÐÖ¸¶¨Êéд·ûºÅµÄºó׺£»ÀýÈç¡°-Cyrl¡±Ö¸¶¨Î÷Àï¶ûÓïÊéд·ûºÅ£¬¡°-Latn¡±Ö¸¶¨À¶¡ÓïÊéд·ûºÅ¡£¾ÙÀý£º
ÇøÓòÐÔÃû³Æ | ÇøÓòÐÔ±êʶ·û | ÓïÑÔ-¹ú¼Ò/µØÇø | zh-CN | 0x0804 | ÖÐÎÄ-Öйú | zh-TW | 0x0404 | ÖÐÎÄ-̨Íå | zh-CHS | 0x0004 | ¼òÌåÖÐÎÄ | zh-CHT | 0x7C04 | ·±ÌåÖÐÎÄ | en | 0x0009 | Ó¢Óï | en-US | 0x0409 | Ó¢Óï-ÃÀ¹ú | en-GB | 0x0809 | Ó¢Óï-Ó¢¹ú | uz-UZ-Cyrl | 0x0843 | ÎÚ×ȱð¿ËÓÎ÷Àï¶ûÓ- ÎÚ×ȱð¿Ë˹̹ | uz-UZ-Latn | 0x0443 | ÎÚ×ȱð¿ËÓÀ¶¡£©- ÎÚ×ȱð¿Ë˹̹ |
¹Ì¶¨ÇøÓòÐÔ²»Çø·ÖÇøÓòÐÔ¡£¿ÉÒÔʹÓÿÕ×Ö·û´® ("") °´Ãû³Æ»òÕß°´ÇøÓòÐÔ±êʶ·û 0x007F À´Ö¸¶¨¹Ì¶¨ÇøÓòÐÔ¡£¹Ì¶¨ÇøÓòÐÔÓÉCultureInfoÀàµÄInvariantCultureÊôÐÔÀ´´ú±í¹Ì¶¨ÇøÓòÐÔµÄʵÀý¡£¹Ì¶¨ÇøÓòÐÔ½öÓëÓ¢ÓïÓïÑÔ¹ØÁª£¬²»ÓëÈκιú¼Ò/µØÇø¹ØÁª¡£Ëü¼¸ºõ¿ÉÓÃÔÚÒªÇóÇøÓòÐԵġ°È«¾Ö»¯¡±ÃüÃû¿Õ¼äÖеÄËùÓз½·¨ÖС£Èç¹ûÄãµÄ³ÌÐò½øÐÐ×Ö·û´®±È½Ï»ò´óСд¸ü¸Ä²Ù×÷£¬ÔòÓ¦¸ÃʹÓà InvariantCulture È·±£ÎÞÂÛϵͳÈçºÎÉèÖõÄÇøÓòÐÔ£¬ÐÐΪ¶¼½«°´ÕÕInvariantCultureËù´ú±íµÄÓ¢ÓïÓïÑԵĹ̶¨ÇøÓòÐÔÀ´Íê³É¡£µ«ÊÇ£¬¹Ì¶¨ÇøÓòÐÔ±ØÐë½öÓÉÐèÒª²»ÒÀÀµÇøÓòÐԵĽá¹ûµÄ½ø³Ì£¨Èçϵͳ·þÎñ£©Ê¹Óã»·ñÔò£¬ËüµÃµ½µÄ½á¹û¿ÉÄÜÔÚÓïÑÔÉϲ»ÕýÈ·£¬»òÕßÔÚÎÄ»¯Éϲ»ºÏÊÊ¡£¾ÙÀý£ºCultureInfo Invc = New CultureInfo(""); CultureInfo Invc = CultureInfo.InvariantCulture;ÕâÁ½ÐдúÂëµÄ×÷ÓÃÏàͬ£¬Ä¿µÄÊÇ»ñµÃ¹Ì¶¨ÇøÓòÐÔʵÀý¡£ ±ÈÈçÄãÏÖÔÚÒª¶ÔÒ»¸öDateTimeµÄʵÀýdateTimeÖ´ÐÐdateTime.ToString()·½·¨¡£Õâ¸ö·½·¨Êµ¼ÊÊÇʹÓÃÄ㵱ǰÏ̵߳ÄCurrentCulture×÷ΪĬÈϵÄÇøÓòÐÔ£¬¸ù¾ÝÕâ¸öÇøÓòÐÔ½«ÈÕÆÚʵÀýת»¯ÎªÏàÓ¦µÄ×Ö·û´®ÐÎʽ¡£ÄÇôÈç¹ûÎÒÃÇ´Ëʱ²»ÐèÒªËü°´ÕÕÏ̻߳òϵͳµÄÇøÓòÐÔ½øÐÐToString²Ù×÷£¬ÄÇôÎÒÃÇÓ¦¸ÃÓÃÕâ¸ö·½·¨dateTime.ToString(¡°G¡±, CultureInfo.InvariantCulture)»òÕßdateTime.ToString(¡°G¡±, DateTimeFormatInfo.InvariantInfo)¡£ ·ÇÌØ¶¨ÇøÓòÐÔÊÇÓëijÖÖÓïÑÔ¹ØÁªµ«²»Óë¹ú¼Ò/µØÇø¹ØÁªµÄÇøÓòÐÔ¡£Ìض¨ÇøÓòÐÔÊÇÓëijÖÖÓïÑÔºÍij¸ö¹ú¼Ò/µØÇø¹ØÁªµÄÇøÓòÐÔ¡£ÀýÈ磬¡°en¡±ÊÇ·ÇÌØ¶¨ÇøÓòÐÔ£¬¶ø¡°en-US¡±ÊÇÌØ¶¨ÇøÓòÐÔ¡£×¢Ò⣬¡°zh-CHS¡±£¨¼òÌåÖÐÎÄ£©ºÍ¡°zh-CHT¡±£¨·±ÌåÖÐÎÄ£©¾ùΪ·ÇÌØ¶¨ÇøÓòÐÔ¡£ ÇøÓòÐÔÓвã´Î½á¹¹£¬¼´Ìض¨ÇøÓòÐԵĸ¸¼¶ÊÇ·ÇÌØ¶¨ÇøÓòÐÔ£¬¶ø·ÇÌØ¶¨ÇøÓòÐԵĸ¸¼¶ÊÇ InvariantCulture¡£CultureInfoÀàµÄParentÊôÐÔ½«·µ»ØÓëÌØ¶¨ÇøÓòÐÔ¹ØÁªµÄ·ÇÌØ¶¨ÇøÓòÐÔ¡£Èç¹ûÌØ¶¨ÇøÓòÐÔµÄ×ÊÔ´ÔÚϵͳÖв»´æÔÚ£¬»òÒòÆäËüÔÒò²»¿ÉÓã¬ÔòʹÓ÷ÇÌØ¶¨ÇøÓòÐÔµÄ×ÊÔ´£»Èç¹û·ÇÌØ¶¨ÇøÓòÐÔµÄ×ÊÔ´Ò²²»¿ÉÓã¬ÄÇôʹÓÃÖ÷³ÌÐò¼¯ÖÐǶÈëµÄ×ÊÔ´¡£ 3.ʵÏÖ±¾µØ»¯³£ÓõÄÀàÐÍ¡¢ÊôÐԺͷ½·¨ CultureInfoÀà±íʾÓйØÌض¨ÇøÓòÐÔµÄÐÅÏ¢£¬°üÀ¨ÇøÓòÐÔµÄÃû³Æ¡¢ÊéдÌåϵºÍʹÓõÄÈÕÀú£¬ÒÔ¼°ÓйضԳ£ÓòÙ×÷£¨Èç¸ñʽ»¯ÈÕÆÚºÍÅÅÐò×Ö·û´®£©ÌṩÐÅÏ¢µÄÇøÓòÐÔÌØ¶¨¶ÔÏóµÄ·ÃÎÊ¡£CultureInfoÀàµÄʵÀý»¯Ò»°ãÓÐÁ½¸ö;¾¶£¬ÈçÏÂËùʾ£º CultureInfo culture = CultureInfo. CreateSpecificCulture (name); CultureInfo culture = new CultureInfo(name); ¶þÕßµÄÇø±ðÊÇ£¬Ê¹ÓõÚÒ»ÖÖ·½·¨£¬Ö»ÄÜ´´½¨¹Ì¶¨ÇøÓòÐÔ»òÌØ¶¨ÇøÓòÐÔµÄCultureInfoʵÀý¡£Èç¹ûnameΪ¿Õ×Ö·û´®£¬Ôò½¨Á¢¹Ì¶¨ÇøÓòÐÔµÄʵÀý£¬Èç¹ûnameΪ·ÇÌØ¶¨ÇøÓòÐÔ£¬ÄÇô½¨Á¢name ¹ØÁªµÄĬÈÏÌØ¶¨ÇøÓòÐ﵀ CultureInfoʵÀý¡£µÚ¶þÖÖ·½·¨£¬ÔòÊǽ¨Á¢Ò»¸önameËùÖ¸¶¨µÄÇøÓòÐÔµÄCultureInfoʵÀý£¬Ëü¿ÉÒÔÊǹ̶¨µÄ£¬·ÇÌØ¶¨µÄ»òÌØ¶¨ÇøÓòÐԵġ£ ThreadÀàµÄCurrentCultureÊôÐÔÓÃÀ´»ñÈ¡»òÉèÖõ±Ç°Ï̵߳ÄÇøÓòÐÔ¡£Ëü±ØÐë±»ÉèÖÃÎªÌØ¶¨ÇøÓòÐÔ¡£Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");Èç¹ûThread.CurrentThread.CurrentCulture = new CultureInfo("en ");¾Í»á±¨´í£¡ ThreadÀàµÄCurrentUICultureÊôÐÔÓÃÀ´»ñÈ¡»òÉèÖÃ×ÊÔ´¹ÜÀíÆ÷ʹÓõĵ±Ç°ÇøÓòÐÔÒÔ±ãÔÚÔËÐÐʱ²éÕÒÇøÓòÐÔÌØ¶¨µÄ×ÊÔ´¡£ÕâÀïµÄ×ÊÔ´¹ÜÀíÆ÷¿ÉÒÔ¹ØÁªÎªResourceMangerÀà¡£ Thread.CurrentThread.CurrentUICulture = new CultureInfo("en"); Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US"); ResourceMangerÀà¿ÉÒÔ²éÕÒÇøÓòÐÔÌØ¶¨µÄ×ÊÔ´£¬µ±±¾µØ»¯×ÊÔ´²»´æÔÚʱÌṩ´úÓÃ×ÊÔ´£¬²¢Ö§³Ö×ÊÔ´ÐòÁл¯¡£³£ÓõÄResourceManagerµÄ¹¹Ô캯ÊýÊÇpublic ResourceManager(string,Assembly)¡£Æäº¬ÒåÊdzõʼ»¯ ResourceManagerÀàµÄÐÂʵÀý£¬ËüʹÓÃÖ¸¶¨µÄ¸ùÃû³Æ´Ó¸ø¶¨µÄAssemblyÖвéÕÒ×ÊÔ´Îļþ¡£Ëùν¸ùÃû³ÆÊÇÀýÈçÃûΪ¡°MyResource.en-US.resources¡±µÄ×ÊÔ´ÎļþµÄ¸ùÃû³ÆÎª¡°MyResource¡±¡£ÔÚ¸ùÃû³ÆµÄ±í´ïÖпÉÒÔ¼ÓÉÏÃüÃû¿Õ¼ä£¬Èç¡°MyWebSite.Resource.UserFolder. MyResource¡±¡£¶øAssembly¿ÉÒÔÊÇÐèÒªµ÷ÓÃ×ÊÔ´ÎļþµÄÒ³ÃæËùÔÚµÄAssembly£¬Èçtypeof(MyPage).Assembly¡£ResourceManagerÀàµÄGetString·½·¨ÓÃÀ´»ñµÃ×ÊÔ´ÎļþÖеÄÖ¸¶¨¼üµÄÖµ¡£¾ÙÀý£ºµ±ÒÑÉèÖÃÁËÏ̵߳ÄCurrentUICultureÊôÐÔÖ®ºó°´ÈçÏ·½·¨¡£ ResourceManager rm = new ResourceManager("items", Assembly.GetExecutingAssembly()); String str = rm.GetString("welcome"); Èç¹ûÏë°´ÕÕÖ¸¶¨µÄÇøÓòÐÔÀ´»ñµÃ×ÊÔ´Ôò°´ÕÕÈçÏÂд·¨£º ResourceManager rm = new ResourceManager("items", Assembly.GetExecutingAssembly()); CultureInfo ci = Thread.CurrentThread.CurrentCulture; String str = rm.GetString("welcome",ci); ¶þ£®ÔÚAsp.net1.1ÖÐʵÏÖ×ÊÔ´±¾µØ»¯
Ê×ÏÈÓ¦ÔÚÍøÕ¾ÏîÄ¿WebTestÖн¨Á¢Ò»¸öResourceÎļþ¼Ð£¬ÔÚÕâ¸öÎļþ¼ÐÖдæ·ÅÕû¸öÏîÄ¿¹«ÓõÄ×ÊÔ´Îļþ¡£±ÈÈçÎÒÃǽ¨Á¢ÁËÒÔÏÂÈý¸ö×ÊÔ´Îļþ:MyResource.en.resx,MyResource.en-US.resx,MyResource.zh-CN.res¡£Ã¿¸ö×ÊÔ´ÎļþÖж¼ÓÐÁ½¸ö¼üÖµ¶Ô£¬¼üֵΪStateºÍAddress¡£ÔÚÐèҪʹÓÃ×ÊÔ´ÎļþµÄÒ³ÃæMyPage.aspxÖе÷ÓÃ×ÊÔ´Îļþ£¬ÈçÏÂËùʾ£º Thread.CurrentThread.CurrentCulture= CultureInfo.CreateSpecificCulture("zh-CN"); Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture; ResourceManager rm = new ResourceManager("WebTest.Resource.MyResource", typeof (MyPage).Assembly); Label1.Text = rm.GetString("State"); Label2.Text = rm.GetString("Address"); ºÃÁË£¬Õâ¸öʱºòLabel1ºÍLabel2¾Í°´ÕÕMyResource.zh-CN.resxÎļþÖеĹ涨ÏÔʾ¡°ÖÝ¡±ºÍ¡°µØÖ·¡±¡£ÒÔÉÏÊÇÒ»¸ö×î»ù±¾×î¼òµ¥µÄ±¾µØ»¯·½·¨£¬ÕâÀïÒþº¬×ÅһЩÎÊÌ⣬ÎÒÃÇÀ´ÖðÒ»½â¾ö²¢ÓÅ»¯¸Ã·½·¨¡£ 1£® ÈçºÎ»ñµÃÓû§µÄĬÈÏÇøÓòÐÔ Í¨¹ýÓû§ä¯ÀÀÆ÷¡°ÊôÐÔ¡±->¡°ÓïÑÔ¡±Ñ¡ÏîÀïµÄÉèÖã¬È¡×îÉÏÃæÄÇÌõ×÷ΪÓû§µÄĬÈÏÓïÑÔ¡£ CultureInfo cultureInfo = CultureInfo.CreateSpecificCulture(Request.UserLanguages[0]); Thread.CurrentThread.CurrentCulture = cultureInfo; Thread.CurrentThread.CurrentUICulture = cultureInfo; Ò»°ãÇé¿öÏ£¬É趨CurrentCultureºÍCurrentUICulture¾ßÓÐÏàͬµÄÇøÓòÐÔ£¬µ±È»Ò²¿ÉÒÔ²»Ïàͬ£¬±ÈÈçÄã¹æ¶¨CurrentCultureΪen-US£¬¶øCurrentUICultureΪzh-CN¡£ÄÇôÕâÑùÔì³ÉµÄЧ¹ûÊÇ£¬Ò³ÃæÖлõ±Ò¡¢ÈÕÆÚµÈÐÅÏ¢¶¼°´ÕÕÃÀ¹úÓ¢ÓïµÄ¸ñʽÏÔʾ£¬¶øÐèÒª´Ó×ÊÔ´ÎļþÖÐȡֵµÄÄÚÈÝ£¬×ÊÔ´¹ÜÀíÆ÷»á´ÓMyResource.zh-CN.resxÎļþÀï»ñµÃ¡£ Èç¹ûÄãµÄÕ¾µãÒ³ÃæÉϲ¢Ã»ÓÐÌṩÈÃÓû§Ñ¡ÔñÓïÑԵŦÄÜ£¬ÄÇôҲ¾ÍÊÇĬÈϰ´ÕÕÓû§ä¯ÀÀÆ÷ÉèÖõÄÇøÓòÐÔ½øÐÐÏÔʾ£¬Òò´ËÄã¾Í¿ÉÒÔ°ÑÉÏÊö´úÂë·ÅÔÚGlobal.asax.csÎļþµÄApplication_BeginRequest·½·¨ÖС£ÕâÑùÿ´ÎÓû§¶ÔÒ³Ãæ·¢³öÇëÇóʱ£¬ÎÒÃǵijÌÐò¶¼»áÊ×ÏȽøÐÐÇøÓòÐÔÉèÖᣠ2. ¼ÇסÓû§µÄÇøÓòÐÔÉèÖà ͨ¹ý»á»°¿ÉÒÔ¼Çסä¯ÀÀÕßµÄÇøÓòÐÔÉèÖûòÑ¡Ôñ¡£µ«ÊÇÕâ¸ö²Ù×÷²»ÄÜÔÚGlobal.asax.csÎļþÖÐApplication_BeginRequest·½·¨ÖнøÐУ¬ÒòΪÄÇʱ»á»°»¹´¦ÓÚ²»¿ÉÓÃ״̬¡£Èç¹ûÄãµÄÕ¾µã²¢Ã»ÓÐÌṩÈÃÓû§Ñ¡ÔñÓïÑԵŦÄÜ£¬ÄÇôÄãҲûʲô±ØÒª¼ÇסÓû§µÄÇøÓòÐÔÉèÖã¬Ö»Òª°´ÕÕÉÏÃæ½éÉܵÄÔÚGlobal.asax.csÎļþÖÐApplication_BeginRequest·½·¨ÀïÉèÖÃһϾͿÉÒÔÁË£¬²»Ó°ÏìÐÔÄÜ¡£ÕâÖ÷Òª¿ÉÒÔ±ÜÃâÓû§ÔÚÖÐ;ͻȻ¸Ä±äÁËä¯ÀÀÆ÷ÖÐÓïÑÔµÄÉèÖ㬶øÍøÕ¾ÈÔ°´ÕջỰÖд洢µÄÇøÓòÐÔΪÓû§ÏÔÊ¾Ò³ÃæÄÚÈݵijåÍ»¡£ Èç¹ûÄãÌá¹ýÁËÈÃÓû§Ñ¡ÔñÓïÑԵŦÄÜ£¬ÄÇÏÔȻҪÔÚÒ³Ãæ³ÌÐòÖÐʹÓûỰÀ´¼Ç¼Óû§µÄÇøÓòÐÔÑ¡Ôñ¡£ÒòΪ´Ó¿Í»§¶Ëµ½·þÎñÆ÷¶ÎµÄÿ´ÎÇëÇ󣬷þÎñÆ÷¶Î¶¼»á¿ªÆôÒ»¸öеÄÏ߳̽øÐд¦ÀíºÍÏìÓ¦¡£Èç¹ûÄãµÄ³ÌÐòûÓмÇס¿Í»§µÄÑ¡Ôñ£¬ÄÇôֻÄܰ´ÕÕĬÈϵÄÇøÓòÐÔ½øÐÐÏìÓ¦¡£ 3. ×ÊÔ´¹ÜÀíÆ÷ÈçºÎ²éÕÒÖ¸¶¨ÇøÓòÐÔµÄÏàÓ¦×ÊÔ´Îļþ£¿ ÔÚÖ´ÐÐȡֵ²Ù×÷ʱ£¬Ò²¾ÍÊÇÖ´ÐÐResourceManagerÀàµÄGetString·½·¨Ê±£¬×ÊÔ´¹ÜÀíÆ÷»á°´ÕÕµ±Ç°Ï̵߳ÄCurrentUICultureÊôÐÔȥѰÕÒÏà¶ÔÓ¦µÄ×ÊÔ´Îļþ¡£ÓÐÈçϼ¸ÖÖÇé¿ö£º (1). ±ÈÈ統ǰCurrentUICulture¶ÔÓ¦µÄÇøÓòÐÔÊÇen-US£¬ÄÇôÊ×ÏÈÕÒMyResource.en-US.resxÊÇ·ñ´æÔÚ£¬Èç´æÔÚÔò´ÓÖÐȡֵ£»Èç²»´æÔÚ£¬Ôò¿´MyResource.en.resxÊÇ·ñ´æÔÚ¡£ (2). ±ÈÈ統ǰCurrentUICulture¶ÔÓ¦µÄÇøÓòÐÔÊÇen£¬ÒòΪenÊÇ·ÇÌØ¶¨ÇøÓòÐԵģ¬ÄÇôÊ×ÏÈÕÒÆäĬÈϹØÁªµÄÌØ¶¨ÇøÓòÐÔen-USµÄ×ÊÔ´ÎļþMyResource.en-US.resxÊÇ·ñ´æÔÚ£¬Èç´æÔÚÔò´ÓÖÐȡֵ£»Èç²»´æÔÚ£¬Ôò¿´MyResource.en.resxÊÇ·ñ´æÔÚ¡£ (3). ±ÈÈ統ǰCurrentUICulture¶ÔÓ¦µÄÇøÓòÐÔÊÇen-GB£¬ÄÇôÊ×ÏÈÕÒ×ÊÔ´ÎļþMyResource.en-GB.resx£¬Èç²»´æÔÚ£¬Ôò¿´MyResource.en.resxÊÇ·ñ´æÔÚ£¬Èç´æÔÚÔò´ÓÖÐȡֵ£»ÈçÒ²²»´æÔÚ£¬Ôò¿´en¹ØÁªµÄĬÈÏÌØ¶¨ÇøÓòÐÔen-USµÄ×ÊÔ´ÎļþMyResource.en-US.resxÊÇ·ñ´æÔÚ,Èç¹û´ËʱMyResource.en-US.resx²»´æÔÚ£¬µ«ÊÇMyResource.en-CA.resx´æÔÚ£¬Ôò³ÌÐòÒÀÈ»»áÅ׳öÕÒ²»µ½ºÏÊÊ×ÊÔ´ÎļþµÄÒì³£¡£ Òò´ËÎÒÃÇ¿ÉÒÔ×ܽáһϣ¬µ±Ç°Ïß³ÌCurrentUICulture¶ÔÓ¦µÄÊÇÌØ¶¨ÇøÓòÐÔʱ£¬×ÊÔ´¹ÜÀíÆ÷ÓÅÏȲéÕÒ´ËÌØ¶¨ÇøÓòÐÔ¶ÔÓ¦µÄ×ÊÔ´Îļþ£¬Èç¹ûûÕÒµ½£¬ÔòÈ¥ÕÒÆä·ÇÌØ¶¨ÇøÓòÐÔµÄ×ÊÔ´Îļþ£¬Èç¹û»¹Ã»ÕÒµ½£¬ÔÙÈ¥ÕÒÆä·ÇÌØ¶¨ÇøÓòÐÔ¹ØÁªµÄĬÈÏÇøÓòÐÔµÄ×ÊÔ´Îļþ¡£µ±Ç°Ïß³ÌCurrentUICulture¶ÔÓ¦µÄÊÇ·ÇÌØ¶¨ÇøÓòÐÔʱ£¬×ÊÔ´¹ÜÀíÆ÷ÓÅÏȲéÕÒ´Ë·ÇÌØ¶¨ÇøÓòÐÔ¶ÔÓ¦µÄĬÈÏÌØ¶¨ÇøÓòÐÔµÄ×ÊÔ´ÎļþÊÇ·ñ´æÔÚ£¬Èç¹û²»´æÔÚ£¬ÔòÈ¥¿´´Ë·ÇÌØ¶¨ÇøÓòÐÔ¶ÔÓ¦µÄ×ÊÔ´ÎļþÊÇ·ñ´æÔÚ£¬Èç¹ûÒ²²»´æÔÚÔòÅ׳öÒì³£¡£ 4£®ÈçºÎ´¦ÀíδÌṩ±¾µØ»¯Ö§³ÖµÄÇøÓòÐÔ£¿ Èç¹ûÕ¾µãûÓÐÌṩÏàÓ¦µÄ×ÊÔ´ÎļþÖ§³ÖÓû§Ä¬ÈϵÄÇøÓòÐÔ£¬ÄÇô±ØÐ뽫Æäµ±Ç°Ï̵߳ÄCurrentUICultureת»¯ÎªÄãÕ¾µãĬÈϵÄÇøÓòÐÔ£¬±ÈÈçen-US»òzh-CN¡£×ª»¯µÄʱ»úÓÐÁ½¸ö£º Ò»Êǵ±ÄãÔÚ»ñµÃRequest.UserLanguages[0]ʱ£¬ÓÃÆäÓëÅäÖÃÎļþÖÐÔ¤ÏÈÉ趨µÄ±»Ö§³ÖµÄÇøÓòÐÔ½øÐбȽϣ¬Èç¹ûÈ·ÈÏÆäΪ²»±»Ö§³ÖµÄ£¬ÄÇôÁ¢¿ÌÉèÖÃCurrentUICultureΪĬÈÏÇøÓòÐÔ¡£ ¶þÊÇÔÚʹÓÃResourceManagerµÄGetString·½·¨½øÐÐȡֵµÄʱºò£¬Ê¹ÓÃtry catch½á¹¹£¬²¶»ñMissingManifestResourceExceptionÒì³££¬ÔÚÒì³£´¦ÀíÖУ¬Ê×ÏȽ«CurrentUICultureÉèΪĬÈÏÇøÓòÐÔ£¬Ö®ºóÔÙÖØÐÂʹÓÃGetStringȡֵ¡£ 5. ͨ¹ýWeb.configÉ趨վµãĬÈϵÄcultureºÍuiCulture <globalization requestEncoding="utf-8" responseEncoding="utf-8" uiCulture="zh-CN" culture="en-US"/> ÈçÉÏËùʾ£º¹æ¶¨Õ¾µãµÄĬÈÏcultureΪen-US(´Ë´¦±ØÐëÎªÌØ¶¨ÇøÓòÐÔ)£¬uiCultureΪzh-CN¡£ µ±È»ÄãÒ²¿ÉÒÔÔÚÿ¸öÒ³ÃæµÄPage±êÇ©ÖнøÐÐÖðÒ³É趨£º<@Page Culture=¡°zh-CN¡± UICulture=¡°en¡±>¡£ÕâÀï¾Í²»¹Üweb.configÊÇÈçºÎÉèÖõģ¬Ò³Ãæ»á°´ÕÕPage±êÇ©µÄÉ趨½øÐÐÏÔʾ¡£ Èý£®ÔÚAsp.net2.0 ÖÐʵÏÖ×ÊÔ´±¾µØ»¯ Asp.net2.0ÖÐΪ×ÊÔ´±¾µØ»¯ÌṩÁ˸ü¼Ó¶àÑùµÄʵÏÖ·½·¨¡£ÎÒÕâÀï×ÅÖØÌ¸ÆäÓëAsp.net1.1ÖеIJ»Í¬Ö®´¦¡£ 1£®Í¨¹ýWeb.configÉ趨վµãĬÈϵÄcultureºÍuiCulture ÔÚAsp.net1.1ÖÐʹÓÃweb.configÎļþ½øÐÐÕ¾µãÇøÓòÐÔÉ趨µÄ·½·¨ÒѾ½²¹ýÁË£¬¶øÔÚAsp.net2.0ÖÐÆä¸ü¼ÓÁé»î¡£Í¨³££¬Äú»áÏëÒªÕ¾µãÖеÄËùÓÐÒ³Ãæ¶¼·ûºÏÏàͬµÄÇøÓòÐÔÉèÖá£Ö»Ðè°´ÈçÏÂËùʾÔÚweb.configÖУ¬ÎªglobalizationÔªËØµÄUICulture ºÍ Culture£¨ÇøÓòÐÔ£©ÊôÐÔ·ÖÅäÒ»¸öÕ¾µã·¶Î§µÄ¡°auto¡±Öµ£¬ ×¢ÒâÕâ¸ö¡°auto¡±ÖµÔÚAsp.net1.1ÖÐÊDz»±»½ÓÊܵġ£<globalization uiCulture="auto" culture="auto" /> autoµÄÒâÒåÔÚÓÚASP.NET ͨ¹ý¼ì²éä¯ÀÀÆ÷·¢Ë굀 HTTP ±êÌâ»ñÈ¡µ½µÄÓû§Ê×Ñ¡ÇøÓòÐÔÉèÖ㬲¢Ê¹ÓÃÕâ¸öÇøÓòÐÔÉèÖÃÕ¾µãµÄĬÈÏÇøÓòÐÔ£¬¼´µ±Ç°Ï̵߳ÄCurrentUICultureºÍCurrentCultureÊôÐÔ¡£ ³ýÁË×Ô¶¯ÉèÖÃÒÔÍ⣬Äú»¹¿ÉÒÔΪ Asp.net Ö¸¶¨Ò»¸öÕ¾µãµÄĬÈÏÇøÓòÐÔ£º <globalization uiCulture="auto:zh-CN" culture="auto:zh-CN" /> ×¢Ò⣺ֻÓе±ASP.NETÎÞ·¨ÕÒµ½ HTTP ±êÌâÀ´È·¶¨Óû§µÄÊ×Ñ¡ÇøÓòÐÔ£¬±ÈÈçä¯ÀÀÆ÷µÄ¡°ÊôÐÔ¡±->¡°ÓïÑÔ¡±ÖÐûÓÐÈκÎÇøÓòÐÔÉèÖÃÍêÈ«ÊǿյÄʱºò£¬autoºóÃæÉ趨µÄĬÈÏÇøÓòÐԲŻáÉúЧ¡£ ÔÚweb.configÖнøÐÐÁËglobalizationÅäÖÃÖ®ºó£¬ÄãµÄÓ¦ÓóÌÐò²»ÐèҪдÈκδúÂ룬Ï̵߳ÄCurrentUICultureºÍCurrentCulture¾Í»á°´ÕÕÔÚglobalizationÔªËØÖÐÉèÖõÄuiCultureºÍcultureÊôÐÔÖµ»ñµÃÇøÓòÐÔÉèÖá£Èç¹ûûÓнøÐÐglobalizationÅäÖã¬ÔòÏ̵߳ÄCurrentUICultureºÍCurrentCulture¾Í»áĬÈÏΪen-US¡£ 2.ʹÓÃWeb.configÎļþ¸ú×ÙÓû§µÄÇøÓòÐÔÑ¡Ôñ ÔÚAsp.net1.1ÖУ¬ÄÇЩÌṩÁËÇøÓòÐÔÑ¡ÔñµÄÕ¾µã£¬Ò»°ãʹÓûỰÀ´¼Ç¼Óû§µÄÑ¡Ôñ£¬ÒÔ±ãÔÚÓû§Ã¿´Î¶ÔÕ¾µã·¢³öÇëÇóʱ£¬¶¼°´ÕÕÓû§Ñ¡ÔñµÄÇøÓòÐÔ¶ÔÏÔʾÄÚÈݽøÐб¾µØ»¯¡£ÔÚAsp.net2.0ÖÐÌṩÁËÁíÒ»¸ö·½·¨£¬ÄǾÍÊÇʹÓÃweb.configÎļþÀ´¸ú×ÙÓû§µÄÇøÓòÐÔÑ¡Ôñ¡£ Äú¿ÉÒÔÔÚweb.configÎļþÖÐÌí¼ÓÒ»¸öÃûΪ LanguagePreference µÄ»ùÓÚ×Ö·û´®µÄÅäÖÃÎļþÊôÐÔÀ´Ö§³ÖÄäÃûʶ±ðÓû§ÇøÓòÐԵŦÄÜ¡£Çë×¢ÒâanonymousIdentificationÔªËØµÄenabledÊôÐÔ±ØÐëΪ¡°true¡±£¬·ñÔòÄäÃûʶ±ð¹¦ÄܾͲ»¿ÉÓᣠ<anonymousIdentification enabled="true"/> <profile> <properties> <add name="LanguagePreference" type="string" defaultValue="auto" allowAnonymous="true" /> </properties> </profile> ÏÂÃæÎÒ½«²ûÊöÔÚAsp.net2.0ÖÐÈçºÎÕë¶ÔLanguagePreferenceÊôÐÔ±à³Ì¡£Ê×ÏÈ£¬¿ÉÒÔдһ¸öPageBaseÀ࣬Ëü¼Ì³Ð×ÔSystem.Web.UI.Page£¬²¢×÷ΪվµãÖÐËùÓÐÒ³ÃæÀàµÄ»ùÀà¡£Õâô×öµÄÄ¿µÄÆäʵºÜ¼òµ¥£¬¾ÍÊÇΪÁ˽«¸÷¸öÒ³ÃæÖÐһЩ¹²Í¬µÄ´¦Àí¹ý³ÌÌáÁ¶³öÀ´·Åµ½»ùÀàÖУ¬ÒÔ¼õÉÙ´úÂëÖØ¸´£¬Ìá¸ß¿Éά»¤ÐÔ¡£È»ºóÔÚPageBaseÀàÖÐдÈçÏ´úÂ룺protected override void InitializeCulture() { base.InitializeCulture(); string LanguagePreference = ((ProfileCommon)this.Context.Profile).LanguagePreference; //¸ÃÓû§Ê״ηÃÎʱ¾Õ¾£¬Profile.LanguagePreferenceΪ¿Õʱ£¬Ê¶±ðÓû§ä¯ÀÀÆ÷µÄÓïÑÔÉèÖà if(string.IsNullOrEmpty(LanguagePreference)) { if (this.Context.Request.UserLanguages != null) { LanguagePreference = this.Context.Request.UserLanguages[0]; ((ProfileCommon)Context.Profile).LanguagePreference = LanguagePreference; } } else { Thread.CurrentThread.CurrentUICulture = new CultureInfo(LanguagePreference); Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(LanguagePreference); } } System.Web.UI.PageÀàµÄInitializeCulture·½·¨ÊÇÔÚAsp.net2.0ÖÐмӵģ¬ËüΪµ±Ç°Ïß³ÌÉèÖÃCultureºÍUICulture¡£Ò³ÃæÉúÃüÖÜÆÚÒѱ»Éè¼ÆÎªInitializeCulture·½·¨ÏÈÓÚÒ³ÃæµÄInitºÍLoadÔËÐС£ÔÚÉÏÊö´úÂëÖУ¬Ê×ÏÈʹÓÃ((ProfileCommon)this.Context.Profile).LanguagePreference;»ñµÃµ±Ç°LanguagePreferenceÅäÖÃÎļþÊôÐÔµÄÖµ£¬ÅÐ¶ÏÆäÊÇ·ñΪ¿Õ£¬Ò²¾ÍÊÇÊÇ·ñÒѾΪÓû§±£´æÁËÇøÓòÐÔÉèÖá£Èç¹ûΪ¿Õ£¬Ôò´ÓHttpÍ·ÖлñÈ¡Óû§µÄÊ×Ñ¡ÇøÓòÐÔÉèÖ㬲¢Í¨¹ý((ProfileCommon)Context.Profile).LanguagePreference = LanguagePreference;±£´æÓû§µÄÊ×Ñ¡ÇøÓòÐÔÉèÖá£Èç¹û²»Îª¿Õ£¬ËµÃ÷ÒѾ±£´æÁËÓû§µÄÇøÓòÐÔÉèÖã¬ÄÇôʹÓÃÕâ¸öÇøÓòÐÔÉèÖõ±Ç°Ï̵߳ÄCurrentUICultureºÍCurrentCultureÊôÐÔ¡£ Èç¹ûWeb.configÖж¨ÒåÁË<globalization uiCulture="auto" culture="auto" />£¬ÄÇô¿ÉÒÔ½«ÉÏÊö´úÂë¼ò»¯Îª£ºprotected override void InitializeCulture() { base.InitializeCulture(); string LanguagePreference = ((ProfileCommon)this.Context.Profile).LanguagePreference; if(!string.IsNullOrEmpty(LanguagePreference)) { Thread.CurrentThread.CurrentUICulture = new CultureInfo(LanguagePreference); Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(LanguagePreference); } else { ((ProfileCommon)Context.Profile).LanguagePreference = Thread.CurrentThread.CurrentCulture.Name; £ý } Èç¹ûÔÚÕ¾µãÖÐÌṩÁËÈÃÓû§Ñ¡ÔñÇøÓòÐԵŦÄÜ£¬±ÈÈçÔÚÕ¾µãµÄĸ°æÒ³ÖзÅÁËÒ»¸öÑ¡ÔñÓïÑÔµÄÁÐ±í£¬ÄÇô¿ÉÒÔͨ¹ýÒÔÏÂÓï¾äÀ´¼ÇסÓû§¶ÔÇøÓòÐÔµÄÑ¡Ôñ£º protected void lstLanguage_SelectedIndexChanged(object sender,EventArgs e) { if (lstLanguage.SelectedValue != "Auto") //ĬÈÏÑ¡ÏîÊÇAuto { Profile.LanguagePreference = lstLanguage.SelectedValue; } else { Profile.LanguagePreference = null; } Response.Redirect(Request.Url.AbsolutePath); } ×¢ÒâResponse.Redirect(Request.Url.AbsolutePath);ÕâÐдúÂ룬ÒòΪʼþ´¦Àí´úÂëÊÇÔÚPage_LoadÖ®ºóÖ´Ðеģ¬ÒªÊÇÏëÈÃÒ³ÃæÑ¸ËÙ·¢Éú±ä»¯±ØÐëÖ´ÐÐÖØ¶¨Ïò²Ù×÷¡£ 3. ÔÚAsp.net2.0ÖÐʹÓÃ×ÊÔ´Îļþ ÔÚÕ¾µãÖн¨Á¢È«¾Ö×ÊÔ´ÎļþµÄʱºò£¬VS.Net2005»á×Ô¶¯½¨Á¢Ò»¸öApp_GlobalResourcesÎļþ¼ÐרÃÅÀ´´æ·ÅÈ«¾Ö×ÊÔ´Îļþ¡£Ëùνȫ¾Ö×ÊÔ´Îļþ£¬Ò²¾ÍÊǸøÕ¾µãÖжà¸öÒ³ÃæÎļþ»òĸ°æÒ³Ê¹ÓõÄ×ÊÔ´Îļþ¡£¼ÙÉèÎÒÃÇ´´½¨ÃûΪMyResource.resxºÍMyResource.zh-cn.resxµÄÎļþ¡£ÔÚ³ÌÐòÖÐÎÒÃÇ¿ÉÒÔʹÓÃÒÔÏ´úÂëÀ´»ñµÃ×ÊÔ´ÎļþÖеÄÖµ£ºthis.lblCountry.Text = Resources.MyResource.Country£» ÆäÖÐCountryÊÇ×ÊÔ´ÎļþÖеļü¡£ÏÔÈ»£¬Õâ±ÈAsp.net1.1ÖдÓ×ÊÔ´Îļþ»ñȡֵҪÈÝÒ׺ܶࡣ ÕâÀïÓÐÁ½¸öÎÊÌâÐèҪעÒ⣺µÚÒ»£¬ÔÚ´´½¨Ò»×é¾ßÓÐÏàͬ¸ùÃû³ÆµÄ×ÊÔ´Îļþʱ£¬Ã»ÓÐÇøÓòÐÔ±êʾµÄÎļþ±ØÐ뽨Á¢£¬±ÈÈçMyResource.resxÊDZØÐëÓе쬯äËüÈçMyResource.en-gb.resxºÍMyResource.zh-cn.resxµÄ½¨Á¢ÊǸù¾ÝÐèÒªµÄ¡£Èç¹û²»½¨Á¢MyResource.resxÖ»½¨Á¢ÁËMyResource.zh-cn.resxµÈ,ÔòÉÏÊö´úÂëÖеÄResourcesÃüÃû¿Õ¼äϾͲ»»á³öÏÖMyResource£¬Òò´ËÉÏÊö´úÂë±àÒëÎÞ·¨Í¨¹ý¡£MyResource.resxÖÐÓ¦¸Ã´æ·ÅÕ¾µãĬÈÏÓïÑÔµÄÄÚÈÝ£¬ÒÔ±¸ÔÚÕÒ²»µ½Ó뵱ǰÏß³ÌCurrentUICultureÆ¥ÅäµÄ±¾µØ»¯×ÊÔ´Îļþ»òÔÚ±¾µØ»¯×ÊÔ´ÎļþÖÐÕÒ²»µ½ÏàÓ¦¼üֵʱʹÓá£Asp.netÊÇÒÔMyResource.resxÎļþÖеļüΪ׼£¬¼ÙÈçÔÚMyResource.resxÖв»´æÔÚCountry¼ü£¬¶øÔÚMyResource.zh-cn.resxÖдæÔÚCountry¼ü£¬ÄÇôÉÏÊö´úÂëÔÚ±àÒëʱҲ»á±¨´í¡£µÚ¶þ£¬Asp.netÔÚÕÒ²»µ½ÏàÓ¦ÇøÓòµÄ±¾µØ»¯×ÊԴʱ£¬²»»á±¨¸æÈκÎÒì³££¬»á×Ô¶¯´ÓMyResource.resxÎļþÖлñȡֵ£¬µ«²¢²»¸Ä±äµ±Ç°Ï̵߳ÄCurrentUICulture¡£ ÔÚÕ¾µãÖн¨Á¢¾Ö²¿×ÊÔ´ÎļþµÄʱºò£¬VS.Net2005»á×Ô¶¯½¨Á¢Ò»¸öApp_LocalResourcesÎļþ¼ÐרÃÅÀ´´æ·Å¾Ö²¿×ÊÔ´Îļþ¡£Ëùν¾Ö²¿×ÊÔ´Îļþ£¬Ò²¾ÍÊǸøÕ¾µãÖе¥Ò»Ò³ÃæÎļþʹÓõÄ×ÊÔ´Îļþ¡£ËüµÄÃüÃû·½Ê½Ò»°ãÊÇDefault.aspx.resxºÍDefault.aspx.zh-cn.resx¡£ÏÖÔÚÎÒÔÚDefault×ÊÔ´ÎļþÖÐÌí¼ÓÈý¸ö¼üLanguage¡¢lblNavigation.TextºÍlblNavigation.ForeColor¡£ÆäÖÐÎÒΪDefault.aspx.resxµÄlblNavigation.ForeColorÉèÖÃblue£¬ÎªDefault.aspx.zh-cn.resxµÄlblNavigation.ForeColorÉèÖÃred¡£ÔÚÒ³ÃæÎļþÖÐDefault.aspxÖдӾֲ¿×ÊÔ´ÎļþÀï»ñµÃÄÚÈݵķ½·¨ÈçÏÂÓÐÁ½ÖÖ£º (1). <asp:Label ID="lblLanguage" runat="server" Text="<%$ Resources:Language %>"></asp:Label> (2). <asp:Label ID="lblNavigaion" runat="server" meta:resourcekey="lblNavigation"></asp:Label> ʹÓõÚÒ»ÖÖ·½·¨Ê±Òª×¢ÒâʹÓ÷ûºÅ$¡£Ê¹ÓõڶþÖÖ·½·¨¸ü¼ÓÁé»î£¬Ëü¿ÉÒÔÒ»´ÎÐÔµØÎª¿Ø¼þµÄºÜ¶àÊôÐÔÉ趨ֵ¡£ ÔÚÕâÀïÈÔÈ»ÓÐÎÊÌâÐèҪעÒâ£ºÒ³ÃæÄ¬Èϵľֲ¿×ÊÔ´Îļþ±ØÐë±»½¨Á¢£¬±ÈÈçDefault.aspx.resxÊDZØÐëµÄ£¬¶øDefault.aspx.zh-cn.resxÔò¸ù¾ÝÐèÒª¡£Èç¹ûÄã²»½¨Á¢Ä¬Èϵľֲ¿×ÊÔ´Îļþ£¬¶øÔÚÒ³ÃæÖÐȴҪʹÓþֲ¿×ÊÔ´Îļþʱ£¬µ±Ê¹ÓõÚÒ»ÖÖ·½·¨½øÐаó¶¨Ê±£¬³ö±àÒë´íÎó£»µ±Ê¹ÓõڶþÖÖ·½·¨½øÐаó¶¨Ê±£¬²»»á³ö±àÒë´íÎ󣬵«ÊÇÕâЩÊôÐÔµÄÉèÖÃÈ«¶¼Ã»Æð×÷Óã¬ÈçͬûдһÑù¡£ 4£®ÏÔʾ±¾µØ»¯Í¼Ïñ ÏÔʾ±¾µØ»¯Í¼ÏñÒ²ÊÇAsp.net2.0µÄй¦ÄÜ¡£ÔÚAsp.net2.0ÖÐ×ÊÔ´ÎļþÒѾ²»½öÏÞÓÚstringÀàÐ͵ļüÖµ¶Ô×éºÏ£¬Ëü¿ÉÒÔ±£´æ¶àÖÖÀàÐ͵ÄÎļþ¡£ÀûÓÃÕâÒ»¹¦ÄÜ¿ÉÒÔʵÏÖͼÏñµÄ±¾µØ»¯¡£ÆäʵËùν±¾µØ»¯Í¼Ïñ£¬Î޷ǾÍÊǽ«¸ø²»Í¬ÇøÓòÐÔ×¼±¸µÄͼÏñ·Åµ½²»Í¬µÄ±¾µØ»¯×ÊÔ´ÎļþÖÐÈ¥¡£±ÈÈ罫LitwareSlogan.jpg·Åµ½MyResource.resxÖУ¬°ÑLitwareSlogan.cn.jpg·Åµ½MyResource.zh-cn.resxÖС£ µ±²»Í¬±¾µØ»¯°æ±¾µÄÈ«¾Ö×ÊÔ´ÎļþÖк¬Óб¾µØ»¯°æ±¾µÄͼÏñÎļþʱ£¬Äú¿ÉÒÔ×Ô¶¨ÒåÒ»¸öÃûΪ MyLocalImage.ashx µÄ´¦Àí³ÌÐòÎļþ£¬»ùÓÚÓû§µÄÓïÑÔÊ×Ñ¡ÏîÀ´ÓÐÌõ¼þµØ½øÐмÓÔØ£¬´úÂëÈçÏÂËùʾ¡£
Ò³ÃæÖеĵ÷Ó÷½·¨£º <asp:Image ID="Image1" runat="server" ImageUrl="~/ MyLocalImage.ashx" /> MyLocalImage.ashx µÄ´¦Àí³ÌÐòµÄд·¨£º public class MyLocalImage : IHttpHandler { public void ProcessRequest (HttpContext context) { context.Response.ContentType = "image/png"; string LanaguageReference = ((ProfileCommon)context.Profile).LanguagePreference; if (!string.IsNullOrEmpty(LanaguageReference)) { Thread.CurrentThread.CurrentUICulture = new CultureInfo(LanaguageReference); } Bitmap bm = Resources.Litware.LitwareSlogan; MemoryStream image = new MemoryStream(); bm.Save(image,ImageFormat.Png); context.Response.BinaryWrite(image.GetBuffer()); } } MyLocalImage.ashx Öж¨ÒåµÄ×Ô¶¨Òå´¦Àí³ÌÐòÀà¿ÉʹÓÃÄúÒÔǰÔÚ×Ô¶¨Òå InitializeCulture ·½·¨Öп´µ½µÄÀàËÆÂß¼£¬ÔÚ´ÓÈ«¾Ö×ÊÔ´ÎļþÖмìË÷ͼÏñÎļþÒÔǰ£¬³õʼ»¯µ±Ç°Ïß³ÌµÄ CurrentUICulture ÉèÖá£Äú¿ÉÄÜÒÉÎÊΪºÎÔÚÒ³ÃæµÄ»ùÀàÖÐÒѾÉèÖÃÁ˵±Ç°Ï̵߳ÄCurrentUICulture£¬¶øÔÚÕâÀï»¹ÒªÖØÐÂÉèÖã¬ÄÇÊÇÒòΪÕâÀïµÄÏß³ÌÓë»ùÀàÖд¦ÀíµÄÏ̲߳»ÊÇͬһÏ̡߳£ÔÚ¸Ã×Ô¶¨Òå´¦Àí³ÌÐòÕýÈ·³õʼ»¯ÁË CurrentUICulture ÉèÖÃÖ®ºó£¬Ëü¼´¿Éͨ¹ý MyResource.resx µÄÇ¿ÀàÐÍ»¯×ÊÔ´ÀàÀ´·ÃÎÊͼÏñÎļþ¡£È»ºó£¬±ãÖ»Ð轫ͼÏñÎļþµÄÊýλ±àдµ½ HTTP ÏìÓ¦Á÷¡£
|