/// <summary> /// Changes the culture. /// </summary> /// <param name="cultureId">The culture ID.</param> public static void ChangeCulture(string cultureId) { Culture newCulture = Cultures.FirstOrDefault(c => c.Identifier.ToUpper(CultureInfo.InvariantCulture) == cultureId.ToUpper(CultureInfo.InvariantCulture)); Debug.Assert(newCulture != null, "new culture is null"); if (newCulture != CurrentCulture) { if (CurrentCulture != null) { CurrentCulture.UpdateSelected(false); } Thread.CurrentThread.CurrentUICulture = newCulture.Info; newCulture.UpdateSelected(true); CurrentCulture = newCulture; foreach (var culture in Cultures) { culture.UpdateName(); } if (CultureChanged != null) { CultureChanged(null, new EventArgs()); } } }
private void Init(string theme) { theme = theme.ToLower(); //ищем полное совпадение ThemeCultureInfo selectedCulture = Cultures.FirstOrDefault(x => x.Name.ToLower() == theme); if (selectedCulture != null) { CurrentCulture = selectedCulture; return; } //если не находим полное совпадение культуры, то ищем совпадение с более общей культурой if (theme.IndexOf('-') != -1) { theme = theme.Remove(theme.IndexOf('-')); } selectedCulture = Cultures.FirstOrDefault(x => x.Name.ToLower() == theme); if (selectedCulture != null) { CurrentCulture = selectedCulture; } else { //если не нашли ни одного совпадение - назначаем дефолтную культуру(первую) CurrentCulture = Cultures.First(); } }
private static async Task AddAdditionalCultures() { var isSuccessful = true; try { var additionalCulturesTextData = File.ReadAllLines(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"data\additionalCultures.txt")); if (additionalCulturesTextData.Any()) { foreach (var additionalCultureInfo in additionalCulturesTextData) { var additionalCultureSplitted = new[] { additionalCultureInfo.Substring(0, additionalCultureInfo.IndexOf(" ", StringComparison.Ordinal)), additionalCultureInfo.Substring(additionalCultureInfo.IndexOf(" ", StringComparison.Ordinal) + 1) }; var isoSplitted = additionalCultureSplitted[0].Split('-'); var parentCultureIso = isoSplitted[0]; var additionalCulture = new CCulture { ISO = additionalCultureSplitted[0] }; if (Cultures.FirstOrDefault(culture => culture.ISO == parentCultureIso) != null) { additionalCulture.Parent = Cultures.First(culture => culture.ISO == parentCultureIso); additionalCulture.DisplayName = string.Join(" ", additionalCulture.Parent.DisplayName, additionalCultureSplitted[1]); } else { additionalCulture.DisplayName = additionalCultureSplitted[1]; } Cultures.Add(additionalCulture); } } else { WriteToConsole("File with additional cultures is empty", MessageType.Error); isSuccessful = false; } } catch (Exception ex) { WriteToConsole(ex.Message, MessageType.Error); isSuccessful = false; } if (!isSuccessful) { await ShowError("Additional cultures are not loaded. See console for details."); } }
public IResourceCultureBuilder Culture(string cultureName) { if (string.IsNullOrEmpty(cultureName)) { throw new ArgumentNullException(nameof(cultureName)); } var rcb = Cultures.FirstOrDefault(res => res.CultureName == cultureName); if (rcb != null) { return(rcb); } rcb = new ResourceCultureBuilder(this, cultureName); Cultures.Add(rcb); return(rcb); }
public override string ToString() => $"{DisplayNames.FirstOrDefault()} : {Cultures.FirstOrDefault()}";