<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://forums.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Localization</title><link>http://forums.asp.net/151.aspx</link><description>Discuss techniques for localizing content for different languages and locales with ASP.NET.</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Re: CurrentCulture and CurrentCultureUI</title><link>http://forums.asp.net/thread/1086517.aspx</link><pubDate>Tue, 18 Oct 2005 15:09:45 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1086517</guid><dc:creator>rmprimo</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1086517.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=151&amp;PostID=1086517</wfw:commentRss><description>&lt;FONT size=1&gt;&lt;BLOCKQUOTE&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="txt4"&gt;&lt;img src="/Themes/default/images/icon-quote.gif"&gt;&amp;nbsp;&lt;strong&gt;Motley wrote:&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="quoteTable"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="txt4"&gt;The dash is in there for a reason, use it if you must break it out manually.&amp;nbsp; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/BLOCKQUOTE&gt;No the dash is not a good way to parse.&lt;BR&gt;&lt;BR&gt;There are neutral cultures with a dash:&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT size=1&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#000000&gt;&lt;STRONG&gt;&lt;EM&gt;zh-CHS&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;zh-CHT&lt;BR&gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR&gt;There could be more than one dashes. Taking the first dash is not reliable either:&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;bs-SP-Latn&lt;/EM&gt;&amp;nbsp; &lt;/STRONG&gt;//no such neutral culture &lt;/FONT&gt;&lt;FONT size=1&gt;&lt;STRONG&gt;&lt;EM&gt;bs&lt;BR&gt;&amp;nbsp; sr-BA-Latn &lt;/EM&gt;&lt;/STRONG&gt;and&lt;/FONT&gt;&lt;FONT size=1&gt;&lt;STRONG&gt;&lt;EM&gt;&amp;nbsp;sr-BA-Cyrl&amp;nbsp;&amp;nbsp;&lt;/EM&gt;&lt;/STRONG&gt;//the neutral culture for these is NOT&lt;STRONG&gt;&lt;EM&gt;&amp;nbsp;sr&lt;BR&gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=1&gt;That is why you should use the &lt;/FONT&gt;&lt;A href="/2.%20no%20such%20neutral%20culture%20sr.%20The%20two%20specific%20ones%20do%20not%20even%20use%20the%20same%20alphabet."&gt;&lt;FONT size=1&gt;CultureInfo&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=1&gt; API parent culture. Then you don't have to be a super linguist to write code for Serbians. Unfortunately, the&amp;nbsp;API also has some flaws in its hierarchical design but they can be accounted for and you are still better off than doing your own parsing.&lt;/FONT&gt;</description></item><item><title>Re: CurrentCulture and CurrentCultureUI</title><link>http://forums.asp.net/thread/1085187.aspx</link><pubDate>Mon, 17 Oct 2005 15:30:57 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1085187</guid><dc:creator>Motley</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1085187.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=151&amp;PostID=1085187</wfw:commentRss><description>&lt;P&gt;rmprimo did a pretty good job of explaining it.&lt;BR&gt;&lt;BR&gt;The first part of the culture is the language, the second is how to format stuff.&lt;BR&gt;Like with en-us, our language is english with a mm/dd/yy format.&lt;BR&gt;With en-gb, the language is english with a dd/mm/yy format.&lt;BR&gt;&lt;BR&gt;At any rate, don't assume that the language is two characters, some are not.&amp;nbsp; The dash is in there for a reason, use it if you must break it out manually.&amp;nbsp; "Syr" is the only 3 letter language I know of, but there are problably others, or may be more in the future that are 3+ characters.&lt;/P&gt;</description></item><item><title>Re: CurrentCulture and CurrentCultureUI</title><link>http://forums.asp.net/thread/1080435.aspx</link><pubDate>Wed, 12 Oct 2005 13:34:37 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1080435</guid><dc:creator>rmprimo</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1080435.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=151&amp;PostID=1080435</wfw:commentRss><description>&lt;font size="1"&gt;You are correct. The msdn docs make a mess of the explanation.&lt;br /&gt;&lt;br /&gt;First of all the &lt;strong&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo"&gt;CultureInfo&lt;/a&gt;&lt;/strong&gt; class is in &lt;strong&gt;System.Globalization&lt;/strong&gt;. As such, it has NOTHING to do with threads at all and that is where the confusion comes from. It can hold info about (and BOTH) culture specific and neutral and even invariant culture and even non-existing cultures if you set up some custom ones.&lt;br /&gt;&lt;br /&gt;On the other hand BOTH &lt;strong&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/66w76es3(en-US,VS.80).aspx"&gt;CurrentCulture&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.threading.thread.currentuiculture"&gt;CurrentUICulture&lt;/a&gt;&lt;/strong&gt; are props of the &lt;strong&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/7y89f51w(en-US,VS.80).aspx"&gt;CurrentThread&lt;/a&gt;&lt;/strong&gt; and that is NOT what differentiates them. They are both props of type &lt;strong&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo"&gt;System.Globalization.CultureInfo&lt;/a&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Now all this bucket of info&amp;nbsp;has to be sorted out because in some situations only a subset of these data&amp;nbsp;are needed. For that there is an enumeration called &lt;strong&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms143067(en-US,VS.80).aspx"&gt;CultureTypes&lt;/a&gt;&lt;/strong&gt;. &lt;br /&gt;&lt;br /&gt;However let&amp;#39;s keep it simple and look at two such subsets Neutral and Specific cultures. Without using the enumeration we could do a rule of thumb that 2-chars(&amp;quot;en&amp;quot;, &amp;quot;fr&amp;quot;, &amp;quot;es&amp;quot;) are neutral and 5-chars (&amp;quot;en-US&amp;quot;,&amp;quot;es-ES&amp;quot;,&amp;quot;pt-BR&amp;quot;) are specific. There are&amp;nbsp;some exceptions where there are extra chars but they are very obscure&amp;nbsp;and you should look at them if they affect you.&lt;br /&gt;&lt;br /&gt;Contrary to intuition, the name &lt;strong&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/66w76es3(en-US,VS.80).aspx"&gt;CurrentCulture&lt;/a&gt;&lt;/strong&gt; has nothing to do with language, per se, but with formatting of dates and currency etc. For this reason it must be specific. A more appropriate self-descriptive&amp;nbsp;name like &lt;font color="#ff1493"&gt;&lt;em&gt;CurrentFormattingCulture&lt;/em&gt;&lt;/font&gt; would have prevented millions of&amp;nbsp;questions but they didn&amp;#39;t let me make that decision.&lt;br /&gt;&lt;br /&gt;On the other hand the property of the thread that has to do with language/translations etc is &lt;strong&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/t733d0f8(en-US,VS.80).aspx"&gt;CurrentUICulture&lt;/a&gt;.&lt;/strong&gt; This is the one the &lt;strong&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.resources.resourcemanager.aspx"&gt;ResourceManager&lt;/a&gt;&lt;/strong&gt; object&amp;nbsp;takes to look up&amp;nbsp;resources by culture(either neutral or specific)&amp;nbsp;.&amp;nbsp;Again,&amp;nbsp;a wrong impression is conveyed by the&amp;nbsp;&lt;em&gt;UI&lt;/em&gt; which, at least to me, should imply exactly formatting. However the functionality is exactly the opposite.&amp;nbsp;It has to do with multi-versioning of resources by culture. A more appropriate self-explanatory and less counter-intuitive name would have been &lt;font color="#ff1493"&gt;&lt;em&gt;CurrentResourcingCulture&lt;/em&gt;&lt;/font&gt;&amp;nbsp;but, again, it wasn&amp;#39;t up to me.&lt;br /&gt;&lt;br /&gt;Asp.net controls with built-in localization cannot use&amp;nbsp;neutral cultures because there could be a formatting&amp;nbsp;difference in &amp;quot;pt-BR&amp;quot; and &amp;quot;pt-PT&amp;quot; which just &amp;quot;pt&amp;quot; couldn&amp;#39;t account for. There may be a different religion and different calendar etc. Classic example is the 12h date-time formatting that only en-US and en-PH use.&amp;nbsp;So&amp;nbsp;such controls need the &lt;strong&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/66w76es3(en-US,VS.80).aspx"&gt;CurrentCulture&lt;/a&gt;&lt;/strong&gt; set in the thread with 5-char SPECIFIC VALUE for culture name when you instantiate a &lt;a href="http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo"&gt;&lt;strong&gt;CultureInfo&lt;/strong&gt;&lt;/a&gt;&amp;nbsp;object or auto detect it from the&amp;nbsp;client browser. &lt;br /&gt;&lt;br /&gt;For this reason there is a&amp;nbsp;bool method &lt;strong&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo.isneutralculture.aspx"&gt;IsNeutralCulture&lt;/a&gt;&lt;/strong&gt; which can help you prevent exceptions(instead of primitively&amp;nbsp;parsing the number of chars, which again includes most but not all scenarios, and not all constructor overloads - some take an LCID instead of culture name). &lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;font size="1"&gt;&lt;font color="#006400"&gt;//never throws but your user may never get the&amp;nbsp;UI culture changed&amp;nbsp;either, and never know why.&amp;nbsp;&lt;br /&gt;&lt;/font&gt;CultureInfo ci=&lt;font color="#0000ff"&gt;new&lt;/font&gt; CultureInfo(SomeDynamicCultureNameStringOrLCID);&lt;br /&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;(!ci.IsNeutralCulture)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Thread.CurrentThread.CurrentCulture=ci;&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;font size="1"&gt;&lt;font color="#006400"&gt;//throws but you can find out at&amp;nbsp;design time, or catch and implement your own fallback.&lt;br /&gt;&lt;/font&gt;Thread.CurrentThread.CurrentCulture=CultureInfo.GetCultureInfo(&lt;font color="#a52a2a"&gt;&amp;quot;fr&amp;quot;&lt;/font&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;font size="1"&gt;&lt;font color="#006400"&gt;//another way&amp;nbsp;is to let the framework pick a specific culture for you via the static method. &lt;br /&gt;&lt;/font&gt;Thread.CurrentThread.CurrentCulture=CultureInfo.CreateSpecificCulture(&lt;font color="#a52a2a"&gt;&amp;quot;fr&amp;quot;&lt;/font&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;font size="1"&gt;&lt;font color="#000000"&gt;You can get into a ton of political incorrectness&amp;nbsp;with this&amp;nbsp;method. There are many specific cultures&amp;nbsp;with the same neutral parent, but the logic used to&amp;nbsp;return the default specific culture is&amp;nbsp;completely HAPHAZARD. Sometimes it is&amp;nbsp;the most populous nation within the group.&amp;nbsp;For example &lt;strong&gt;&lt;em&gt;en&lt;/em&gt;&lt;/strong&gt; returns &lt;strong&gt;&lt;em&gt;en-US&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;pt&lt;/em&gt;&lt;/strong&gt; returns &lt;strong&gt;&lt;em&gt;pt-BR&lt;/em&gt;&lt;/strong&gt;. This should placate any chauvinistic Brits and Potuguese. &lt;br /&gt;&lt;br /&gt;However, &lt;strong&gt;&lt;em&gt;es&lt;/em&gt;&lt;/strong&gt; returns &lt;strong&gt;&lt;em&gt;es-ES&lt;/em&gt;&lt;/strong&gt; which is not the most populous Spanish speaking nation (it should be&amp;nbsp;es-MX). Likewise, &lt;strong&gt;&lt;em&gt;ar&lt;/em&gt;&lt;/strong&gt; return &lt;strong&gt;&lt;em&gt;ar-SA&lt;/em&gt;&lt;/strong&gt;, but it should be&amp;nbsp;ar-EG. The static &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemGlobalizationCultureInfoClassCreateSpecificCultureTopic.asp"&gt;CultureInfo.CreateSpecificCulture&lt;/a&gt; should really only be used when not&amp;nbsp;throwing an error is more important than&amp;nbsp;the other issues.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1"&gt;Another point of interest is that the executing thread needs to be set with every request.&amp;nbsp;The &lt;a href="http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo"&gt;&lt;strong&gt;CultureInfo&lt;/strong&gt;&lt;/a&gt; or culture name&amp;nbsp;be persisted across different&amp;nbsp;requests in the Session collection and retrieved in&amp;nbsp;the new request (not just postbacks of the same page).&lt;br /&gt;&lt;br /&gt;The code can be globalized in the &lt;strong&gt;Application_AcquireRequestState&lt;/strong&gt;(&lt;font color="#0000ff"&gt;object&lt;/font&gt; sender, &lt;font color="#008080"&gt;EventArgs&lt;/font&gt; e) event handler in &lt;a href="http://msdn2.microsoft.com/en-us/library/2027ewzw.aspx"&gt;&lt;strong&gt;Global.asax&lt;/strong&gt;&lt;/a&gt;. Then all you need do is assign a &lt;a href="http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo"&gt;&lt;strong&gt;CultureInfo&lt;/strong&gt;&lt;/a&gt; to the session. In the new page you do not even have to retrieve it. You can directly access the Thread.CurrentThread.CurrentUICulture and print it out or whatever and it works nice. The code generator does not even bother to&amp;nbsp;stub out&amp;nbsp;an &lt;strong&gt;Application_AcquireRequestState&lt;/strong&gt; handler&amp;nbsp;when creating a new &lt;a href="http://msdn2.microsoft.com/en-us/library/2027ewzw.aspx"&gt;&lt;strong&gt;Global.asax&lt;/strong&gt;&lt;/a&gt;, but the&amp;nbsp;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.httpapplication.acquirerequeststate.aspx"&gt;&lt;strong&gt;HttpApplication.AcquireRequestState&lt;/strong&gt;&lt;/a&gt;&amp;nbsp;event does exist.&lt;br /&gt;&lt;br /&gt;Actually the new static read-only properties of&amp;nbsp;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo"&gt;&lt;strong&gt;CultureInfo&lt;/strong&gt;&lt;/a&gt;&amp;nbsp;which return the executing thread&amp;#39;s state are perfect for that. &lt;br /&gt;They don&amp;#39;t even require the Threading namespace at all so it is all simplified, but only once you&amp;#39;ve suffered sorting it all out.&lt;br /&gt;&lt;font color="#006400"&gt;&lt;br /&gt;//identical to Thread.CurrentThread.CurrentCulture but read-only&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1"&gt;&lt;strong&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/s2x52wh6(en-US,VS.80).aspx"&gt;CultureInfo.CurrentCulture&lt;/a&gt; &lt;br /&gt;&lt;/strong&gt;&lt;font color="#006400"&gt;&lt;br /&gt;//identical to Thread.CurrentThread.CurrentUICulture but read-only&lt;/font&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/6hcs8ckw(en-US,VS.80).aspx"&gt;CultureInfo.CurrentUICulture&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font size="1"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/6hcs8ckw(en-US,VS.80).aspx"&gt; &lt;/a&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="1"&gt;There are some limitations to using Session -&amp;nbsp;InProc, out of proc etc. There are also other performance issues, which are beyond the scope of this topic, so in v2.0 personalization profile is now recommended&amp;nbsp;as the store. &lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1"&gt;I had my own localization controls which didn&amp;#39;t have to have a specific culture. I figured as long as the language was accounted for between &amp;quot;en&amp;quot; and&amp;nbsp;&amp;quot;fr&amp;quot; it was good enough for my readers.&amp;nbsp;That was a bad idea because I couldn&amp;#39;t inherit from existing controls among many other problems.&lt;br /&gt;&lt;br /&gt;It turns out I could get the&amp;nbsp;best of both worlds, because there is a hierarchy too. &amp;quot;en&amp;quot; is a Parent of &amp;quot;en-US&amp;quot; and &amp;quot;en-GB&amp;quot; and &amp;quot;en-CA&amp;quot;. The parent of &amp;quot;en&amp;quot; is the invariant culture. The parent of invariant culture is invariant culture, but it should have been null to allow testing for root level. So instead of testing for null of the parent you should always check for invariant in the self. The&amp;nbsp;invariant, should not, but&amp;nbsp;does have a parent: the invariant one. This kind of gets too religious for me. That alone can really bloat your code. Again the hierarchy is only for &lt;strong&gt;CurrentUICulture.&lt;/strong&gt; Really the two collections are apples and oranges and are defined in separate independent RFCs. The idea of hierarchy is terrific, it should have been done at the RFC level. Microsoft did an OK job but there are still many irregularities. The good news is the irregularities are&amp;nbsp;not for the popular cultures and&amp;nbsp;are easily discoverable and&amp;nbsp;predictable and can be accounted for in code. You better be an accomplished linguist before you set out to implement your own&amp;nbsp;hierarchy, which is now possible via the provider model.&lt;br /&gt;&lt;br /&gt;The fallback mechanism of the framework steps up this hierarchy, instead of skipping up&amp;nbsp;straight to the root invariant culture as most samples show. Unfortunately I have seen no good discussion of this important feature. So out of the box you can assign en-ZW culture to the thread (both &lt;strong&gt;CurrentCulture&lt;/strong&gt; and &lt;strong&gt;CurrentUICulture&lt;/strong&gt;&amp;nbsp;props). However you don&amp;#39;t have to bother having a resx file for en-ZW if you don&amp;#39;t expect many readers from Zimbabwe, and there really are not that many differences in the language. Still the Zimbabwian readers&amp;nbsp;would get the data in the YourResource.en.resx for language AND still show the correct date-time formatting for Zimbabwe&amp;nbsp;that is all done for you in the control. Isn&amp;#39;t that nice!&lt;br /&gt;&lt;br /&gt;You cannot&amp;nbsp;step down the one-to-many hierarchy. Many&amp;nbsp;specific &lt;strong&gt;&lt;em&gt;en-XX&lt;/em&gt;&lt;/strong&gt; have the same neutral&amp;nbsp;parent &lt;strong&gt;&lt;em&gt;en&lt;/em&gt;&lt;/strong&gt;&amp;nbsp;but not always vice-versa - &lt;strong&gt;&lt;em&gt;sr&lt;/em&gt;&lt;/strong&gt; is not the parent of &lt;strong&gt;&lt;em&gt;sr-BS-Latn&lt;/em&gt;&lt;/strong&gt;. So data integrity would be affected. If you need en-ZW then just say so from the start. &lt;br /&gt;&lt;br /&gt;BTW, the &lt;strong&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms143067(en-US,VS.80).aspx"&gt;CultureTypes&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;enum is not much more helpful because it includes the invariant as neutral, which it is not, and in v2.0 there is a new undocumented&amp;nbsp;&lt;strong&gt;CultureTypes.FrameworkCultures&lt;/strong&gt;.&amp;nbsp;&lt;strong&gt;CultureTypes.AllCultures&lt;/strong&gt;&amp;nbsp;includes the rest of the options. So the enum as a tool for navigating the the hierarchy is worthless. The Asp.Net team said they would fix it in Orcas but you never know.&amp;nbsp;Meantime I did my own wrapper which includes one most important subset - cultures supported by my app - much smaller universe of values. The data is persisted in (what else) a resx file but it could be any data store and read into the Application object on App_Start in Global.asax&lt;br /&gt;&lt;br /&gt;Maybe there should have been a derived class &lt;strong&gt;&lt;em&gt;UICultureInfo&lt;/em&gt;: CultureInfo&lt;/strong&gt;&amp;nbsp;which would have reflected the difference, but years into the framework there would be too much legacy to contend with.&lt;br /&gt;&lt;br /&gt;Now why couldn&amp;#39;t they explain all that in msdn instead of going around in a vicious circle?&lt;br /&gt;It is a good thing msdn2 has feedback and rating so you can tell them what you think.&lt;br /&gt;&lt;br /&gt;I am going to make a blog or an article out of this because I can&amp;#39;t stand how many people are confused about one of the nicest features of the framework, all because of the knucklehead docs.&lt;br /&gt;&lt;br /&gt;So any feedback corrections are appreciated.&lt;br /&gt;&lt;/font&gt;</description></item><item><title>Re: CurrentCulture and CurrentCultureUI</title><link>http://forums.asp.net/thread/1075917.aspx</link><pubDate>Fri, 07 Oct 2005 18:12:44 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1075917</guid><dc:creator>AndrewSeven</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1075917.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=151&amp;PostID=1075917</wfw:commentRss><description>http://msdn2.microsoft.com/en-us/library/441487wx&lt;br /&gt;&lt;br /&gt;
&lt;div class="title"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/441487wx"&gt;Using the CurrentUICulture Property&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;
&lt;p&gt;The &lt;a title="CultureInfo.CurrentUICulture" href="http://msdn2.microsoft.com/en-us/library/6hcs8ckw"&gt;CultureInfo.CurrentUICulture&lt;/a&gt; property is a per-thread setting that returns the current user interface culture. This property is used by the &lt;a title="ResourceManager" href="http://msdn2.microsoft.com/en-us/library/2xsy4hac"&gt;ResourceManager&lt;/a&gt; class to look up culture-specific resources at run time. You can use a neutral or specific culture, or the &lt;a title="InvariantCulture" href="http://msdn2.microsoft.com/en-us/library/bdcxfx72"&gt;InvariantCulture&lt;/a&gt; to set the &lt;b&gt;CurrentUICulture&lt;/b&gt; property. You can use the &lt;a title="Thread.CurrentThread" href="http://msdn2.microsoft.com/en-us/library/7y89f51w"&gt;Thread.CurrentThread&lt;/a&gt; property to set &lt;b&gt;CurrentCulture&lt;/b&gt;. For more information, see the examples provided later in this topic.&lt;br /&gt;&lt;br /&gt;http://msdn2.microsoft.com/en-us/library/se513yha(en-US,VS.80).aspx&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;div class="title"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/se513yha(en-US,VS.80).aspx"&gt;Using the CurrentCulture Property&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;
&lt;p&gt;The &lt;a title="CultureInfo.CurrentCulture" href="http://msdn2.microsoft.com/en-us/library/s2x52wh6"&gt;CultureInfo.CurrentCulture&lt;/a&gt; property is a per-thread setting that determines the default formats for dates, times, currency, and numbers, the sorting order of text, string comparisons, and casing. The &lt;b&gt;CurrentCulture&lt;/b&gt; property is not a language setting. It contains only data related to the standard settings for a geographical region. Therefore, the &lt;b&gt;CurrentCulture&lt;/b&gt; property can only be set to a specific culture or to the &lt;a title="InvariantCulture" href="http://msdn2.microsoft.com/en-us/library/bdcxfx72"&gt;InvariantCulture&lt;/a&gt;. You can use the &lt;a title="Thread.CurrentThread" href="http://msdn2.microsoft.com/en-us/library/7y89f51w"&gt;Thread.CurrentThread&lt;/a&gt; property to set &lt;b&gt;CurrentCulture&lt;/b&gt;. For more information, see the examples provided later in this topic.&lt;/p&gt;</description></item><item><title>Re: CurrentCulture and CurrentCultureUI</title><link>http://forums.asp.net/thread/1068240.aspx</link><pubDate>Fri, 30 Sep 2005 13:41:55 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1068240</guid><dc:creator>HeyRamu</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1068240.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=151&amp;PostID=1068240</wfw:commentRss><description>&lt;FONT face=Verdana color=#0000ff size=2&gt;hi&lt;BR&gt;&lt;BR&gt;one of them will change the data being entered whereas other being the controls like calendar control will be changed &lt;BR&gt;accroding to the language we select.&lt;BR&gt;&lt;BR&gt;currentuiculture being gets/sets teh culture used by res mgr for culture specific resources at runtime, whereas cultureinfo represents teh culture for current thread.&lt;BR&gt;&lt;BR&gt;hope it gives you an idea. for better understanding, work with an example by changing both or one or so and find the difference.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;</description></item><item><title>CurrentCulture and CurrentCultureUI</title><link>http://forums.asp.net/thread/1066914.aspx</link><pubDate>Thu, 29 Sep 2005 13:07:41 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1066914</guid><dc:creator>UkBtlog</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1066914.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=151&amp;PostID=1066914</wfw:commentRss><description>&lt;P&gt;I would like to know the difference between CurrentThread.CurrentCulture and CurrentThread.CurrentCultureUI. I would like to know what the difference is where each of these effect the .NET runtime in relation to ASP.NET. I googled and couldn't find an article that really describes the difference. Could just be a brain dead day though.&lt;/P&gt;</description></item></channel></rss>