private void UpdateSelected() { foreach (var language in this.Languages) { language.IsSelected = CultureInfoComparer.DefaultEquals(language.Culture, Translator.CurrentCulture); } }
private void SyncLanguages() { if (this.AutogenerateLanguages) { for (int i = this.Languages.Count - 1; i >= 0; i--) { if (!Translator.Cultures.Contains(this.Languages[i].Culture, CultureInfoComparer.Default)) { this.Languages.RemoveAt(i); } } foreach (var cultureInfo in Translator.Cultures) { if (this.Languages.Any(x => CultureInfoComparer.DefaultEquals(x.Culture, cultureInfo))) { continue; } var language = new Language(cultureInfo); string flag; if (FlagNameResourceMap.TryGetValue(cultureInfo.TwoLetterISOLanguageName, out flag)) { var key = new Uri($"pack://application:,,,/{this.GetType().Assembly.GetName().Name};component/{flag}", UriKind.Absolute); language.FlagSource = key; } this.Languages.Add(language); } this.UpdateSelected(); } }
private static string CultureName(CultureInfo culture) { return(CultureInfoComparer.DefaultEquals(culture, CultureInfo.InvariantCulture) ? "invariant" : culture.TwoLetterISOLanguageName); }