title: Best way to implement a multilingual in ASP.NET application
body: <p>The following things/behaviors are expected in multi lingual application.</p>
  
  <ol>
  <li>To pick up the correct resources for the logged in user’s language</li>
  <li>The string sort should happen according to user language (For example: in case of Swedish users, the Swedish alphabets should come after z in Order).</li>
  <li>The date time format validation should happen according to the user’s language. (For example: fr-FR users can enter dd/mm/yyyy and en-US users can enter mm/dd/yyyy)</li>
  <li>The decimal validation again should happen according to user’s language (For example: 12,5 is valid in French whereas 12.5 is invalid)</li>
  </ol>
  
  <p>Now the question is what is the best way to handle this.</p>
  
  <p>Approach 1: </p>
  
  <ol>
  <li>Set the page culture and page UICulture – so that the App_GlobalResources are picked up and decimal values in grid are correctly formatted.</li>
  <li>Write custom methods to fire validation for the following
  <ul>
  <li>Datetime </li>
  <li>Decimal</li>
  </ul></li>
  <li>Write custom method to handle string sorting.</li>
  </ol>
  
  <p>Approach 2:</p>
  
  <ol>
  <li>Set the current thread’s culture and let this handle the following { Does each user of the web app have their culture correctly set in this case?}</li>
  </ol>
  
  <p>Approach 3:</p>
  
  <ol>
  <li><p>Initialize the globalization attribute in web.config and letting the application pick culture based on the user’s browser culture </p>
  
  <pre><code>&lt;globalization uiculture="auto" culture="auto" enableClientBasedCulture =”true”/&gt;
  </code></pre></li>
  </ol>
  
  <p>Please let me know if there are better alternatives and how should we approach solving such problems or the pros and cons of the above approaches.</p>