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.
and if possible the sentence choose your language in the right language, can you please help?
Thanks
/// <summary>
/// Summary description for LanguageItem
/// </summary>
using System.Globalization;
/// <summary>
/// </summary>
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();
}
}
}
/// <summary>
/// Summary description for CultureInfoExtension
/// </summary>
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);
}
}
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;
/// <summary>
/// Summary description for Localization
/// </summary>
public static class Localization
{
public static readonly string LANGUAGECOOKIENAME = "languageSelection";
private static List<CultureInfo> acceptedLanguages;
private static List<LanguageItem> languages;
/// <summary>
/// The culture which is use if no matching culture is found.
/// </summary>
private static CultureInfo defaultCulture;
/// <summary>
/// Initializes the localization by intanciating and filling the
/// list of accepted languages. Add new languages to the end of the
/// list.
/// </summary>
public static void Initialize()
{
defaultCulture = CultureInfo.CreateSpecificCulture("en-GB");
acceptedLanguages = new List<CultureInfo>{
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<LanguageItem>();
acceptedLanguages.ForEach(language => languages.Add(new LanguageItem(language)));
}
public static List<LanguageItem> Languages
{
get {
if (languages == null)
{
Initialize();
}
return languages;
}
}
public static List<string> LanguageNames
{
get
{
return acceptedLanguages.Select(language => language.NativeName).ToList();
}
}
public static List<string> TwoLetterCodes
{
get{
return acceptedLanguages.Select(language => 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 => 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 && preferences.Length > 0)
{
foreach (var pref in preferences.Select(pref => 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);
}
}
sunnyshiny06
Member
69 Points
122 Posts
localization updated to a dropdown list with "choose your language" in the right language
Apr 03, 2012 07:41 AM|LINK
Hello,
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.
and if possible the sentence choose your language in the right language, can you please help?
Thanks
/// <summary> /// Summary description for LanguageItem /// </summary> using System.Globalization; /// <summary> /// </summary> 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(); } } }/// <summary> /// Summary description for CultureInfoExtension /// </summary> 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); } }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; /// <summary> /// Summary description for Localization /// </summary> public static class Localization { public static readonly string LANGUAGECOOKIENAME = "languageSelection"; private static List<CultureInfo> acceptedLanguages; private static List<LanguageItem> languages; /// <summary> /// The culture which is use if no matching culture is found. /// </summary> private static CultureInfo defaultCulture; /// <summary> /// Initializes the localization by intanciating and filling the /// list of accepted languages. Add new languages to the end of the /// list. /// </summary> public static void Initialize() { defaultCulture = CultureInfo.CreateSpecificCulture("en-GB"); acceptedLanguages = new List<CultureInfo>{ 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<LanguageItem>(); acceptedLanguages.ForEach(language => languages.Add(new LanguageItem(language))); } public static List<LanguageItem> Languages { get { if (languages == null) { Initialize(); } return languages; } } public static List<string> LanguageNames { get { return acceptedLanguages.Select(language => language.NativeName).ToList(); } } public static List<string> TwoLetterCodes { get{ return acceptedLanguages.Select(language => 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 => 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 && preferences.Length > 0) { foreach (var pref in preferences.Select(pref => 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); } }<div id="flags"> <ul> <asp:Repeater runat="server" ID="languageRepeater"> <ItemTemplate> <li> <asp:ImageButton runat="server" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "Id") %>' OnClick="RequestLanguageChange_Click" ImageUrl='<%# DataBinder.Eval(Container.DataItem, "LanguageCode","/styles/images/flags/{0}.PNG") %>' ToolTip='<%# DataBinder.Eval(Container.DataItem, "Name") %>' CausesValidation="false" /> </li> </ItemTemplate> </asp:Repeater> </ul> </div>Thanks a lot for your help
FightAsABull
Contributor
2228 Points
424 Posts
Re: localization updated to a dropdown list with "choose your language" in the right language
Apr 05, 2012 05:36 AM|LINK
Hi, hope this helps:
http://www.codeproject.com/Articles/15313/Globalization-and-localization-demystified-in-ASP
Tim Cadieux
Participant
966 Points
318 Posts
Re: localization updated to a dropdown list with "choose your language" in the right language
Jul 26, 2012 05:43 PM|LINK
Multilingual asp.net website Tutorial here
***
Mark the replies as Answers if they answered your question.