localization updated to a dropdown list with "choose your language" in the right languagehttp://forums.asp.net/t/1788478.aspx/1?localization+updated+to+a+dropdown+list+with+choose+your+language+in+the+right+languageThu, 26 Jul 2012 17:43:28 -040017884784913270http://forums.asp.net/p/1788478/4913270.aspx/1?localization+updated+to+a+dropdown+list+with+choose+your+language+in+the+right+languagelocalization updated to a dropdown list with "choose your language" in the right language <p>Hello,</p> <p>I've already a good system which is working, i just need now to update it as a dropdown list with the name of the country without flags.</p> <p>and if possible the sentence choose your language in the right language, can you please help?</p> <p>Thanks</p> <pre class="prettyprint">/// &lt;summary&gt; /// Summary description for LanguageItem /// &lt;/summary&gt; using System.Globalization; /// &lt;summary&gt; /// &lt;/summary&gt; public class LanguageItem { private readonly CultureInfo culture; public LanguageItem(CultureInfo culture) { this.culture = culture; } public string Id { get { return this.culture.TwoLetterISOLanguageName; } } public string LanguageCode { get { return this.culture.ToString(); } } public string Name { get { return this.culture.GetNativeLanguageName(); } } }</pre> <pre class="prettyprint">/// &lt;summary&gt; /// Summary description for CultureInfoExtension /// &lt;/summary&gt; using System.Globalization; using System.Text; public static class CultureInfoExtension { public static string GetNativeLanguageName(this CultureInfo cultureInfo) { var nativeName = cultureInfo.NativeName; nativeName = nativeName.Substring(0,nativeName.IndexOf("(")); return string.Format("{0} - {1}", cultureInfo.ThreeLetterISOLanguageName,nativeName); } } </pre> <pre class="prettyprint">using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Globalization; using System.Collections.Generic; /// &lt;summary&gt; /// Summary description for Localization /// &lt;/summary&gt; public static class Localization { public static readonly string LANGUAGECOOKIENAME = "languageSelection"; private static List&lt;CultureInfo&gt; acceptedLanguages; private static List&lt;LanguageItem&gt; languages; /// &lt;summary&gt; /// The culture which is use if no matching culture is found. /// &lt;/summary&gt; private static CultureInfo defaultCulture; /// &lt;summary&gt; /// Initializes the localization by intanciating and filling the /// list of accepted languages. Add new languages to the end of the /// list. /// &lt;/summary&gt; public static void Initialize() { defaultCulture = CultureInfo.CreateSpecificCulture("en-GB"); acceptedLanguages = new List&lt;CultureInfo&gt;{ defaultCulture, CultureInfo.CreateSpecificCulture("es-ES"), CultureInfo.CreateSpecificCulture("tr-TR"), CultureInfo.CreateSpecificCulture("it-IT"), CultureInfo.CreateSpecificCulture("ru-RU"), CultureInfo.CreateSpecificCulture("fi-FI"), CultureInfo.CreateSpecificCulture("sv-SE"), CultureInfo.CreateSpecificCulture("da-DK"), CultureInfo.CreateSpecificCulture("nb-NO"), CultureInfo.CreateSpecificCulture("ar-SA"), CultureInfo.CreateSpecificCulture("he-IL"), CultureInfo.CreateSpecificCulture("hr-HR"), CultureInfo.CreateSpecificCulture("sl-SI"), CultureInfo.CreateSpecificCulture("cs-CZ") }; languages = new List&lt;LanguageItem&gt;(); acceptedLanguages.ForEach(language =&gt; languages.Add(new LanguageItem(language))); } public static List&lt;LanguageItem&gt; Languages { get { if (languages == null) { Initialize(); } return languages; } } public static List&lt;string&gt; LanguageNames { get { return acceptedLanguages.Select(language =&gt; language.NativeName).ToList(); } } public static List&lt;string&gt; TwoLetterCodes { get{ return acceptedLanguages.Select(language =&gt; language.TwoLetterISOLanguageName).ToList(); } } public static bool Accept(string languageName) { return Accept(CultureInfo.CreateSpecificCulture(languageName)); } public static bool Accept(CultureInfo culture) { if (acceptedLanguages == null) { Initialize(); } return acceptedLanguages.Any(item =&gt; item.TwoLetterISOLanguageName == culture.TwoLetterISOLanguageName); } public static string GetAcceptableCulture(string preference, params string[] preferences) { string culture = null; if (preference != null) { var correctedCulture = CorrectLanguageTag(RemoveCountry(preference)); if (Accept(correctedCulture)) { culture = correctedCulture; } } if (culture == null &amp;&amp; preferences.Length &gt; 0) { foreach (var pref in preferences.Select(pref =&gt; RemoveCountry(pref))) { var correctedPref = CorrectLanguageTag(pref); if (Accept(correctedPref)) { culture = correctedPref; break; } } } return culture == null ? defaultCulture.TwoLetterISOLanguageName : culture; } private static string CorrectLanguageTag(string languageTag) { if (languageTag == "nb") { languageTag = "no"; } return languageTag; } private static string RemoveCountry(string languageCode) { int length = languageCode.IndexOf(";"); length = length == -1 ? languageCode.Length : length; return languageCode.Substring(0, length); } } </pre> <pre class="prettyprint"> &lt;div id="flags"&gt; &lt;ul&gt; &lt;asp:Repeater runat="server" ID="languageRepeater"&gt; &lt;ItemTemplate&gt; &lt;li&gt; &lt;asp:ImageButton runat="server" CommandArgument='&lt;%# DataBinder.Eval(Container.DataItem, "Id") %&gt;' OnClick="RequestLanguageChange_Click" ImageUrl='&lt;%# DataBinder.Eval(Container.DataItem, "LanguageCode","/styles/images/flags/{0}.PNG") %&gt;' ToolTip='&lt;%# DataBinder.Eval(Container.DataItem, "Name") %&gt;' CausesValidation="false" /&gt; &lt;/li&gt; &lt;/ItemTemplate&gt; &lt;/asp:Repeater&gt; &lt;/ul&gt; &lt;/div&gt;</pre> <p>&nbsp;</p> <p>Thanks a lot for your help<br> <br> </p> <p><br> <br> &nbsp;</p> <p>&nbsp;</p> 2012-04-03T07:41:32-04:004917173http://forums.asp.net/p/1788478/4917173.aspx/1?Re+localization+updated+to+a+dropdown+list+with+choose+your+language+in+the+right+languageRe: localization updated to a dropdown list with "choose your language" in the right language <p>Hi, hope this helps:</p> <p><a href="http://www.codeproject.com/Articles/15313/Globalization-and-localization-demystified-in-ASP">http://www.codeproject.com/Articles/15313/Globalization-and-localization-demystified-in-ASP</a></p> 2012-04-05T05:36:17-04:005083887http://forums.asp.net/p/1788478/5083887.aspx/1?Re+localization+updated+to+a+dropdown+list+with+choose+your+language+in+the+right+languageRe: localization updated to a dropdown list with "choose your language" in the right language <p>Multilingual asp.net website Tutorial <a href="http://everymanprogrammer.com/index.php/asp-net-easily-make-your-web-application-multilingual-part-1/" target="_blank"> here</a></p> 2012-07-26T17:43:28-04:00