private void InitializeFromSettings() { var localization = AvailableLocalizations.FirstOrDefault(localization => localization.CultureName == Settings.Default.SelectedLanguage); if (localization != null) { Current = localization; } }
public void SetLocalization(string code) { SelectedLocalization = AvailableLocalizations.First(a => a.Abbreviation.Equals(code)); var translationsQuery = from keyvalues in Localization.Values.Where(a => a.Localization.Code.Equals(SelectedLocalization.Abbreviation)) join keys in Localization.Keys on keyvalues.Key.Id equals keys.Id select new { keyvalues.Key.KeyName, keyvalues.KeyLocalizationValue }; SelectedLocalization.Translations = new Dictionary <string, string>(); foreach (var translation in translationsQuery) { SelectedLocalization.Translations.Add(translation.KeyName, translation.KeyLocalizationValue); } }
public static string GetEnumDescriptions(AvailableLocalizations value) { FieldInfo fi = value.GetType().GetField(value.ToString()); DescriptionAttribute attribute = fi.GetCustomAttribute <DescriptionAttribute>(false); if (attribute != null) { return(attribute.Description); } else { return(value.ToString()); } }
public LocalizationManager(IEnumerable <RealLocalization <TKeys> > realLocalizations, bool useAutoLocalization = true) { _realLocalizations = realLocalizations.ToArray(); if (_realLocalizations.Length <= 0) { throw new ArgumentException($"At least one localization should be specified.", nameof(realLocalizations)); } _fallbackLocalization = _realLocalizations.FirstOrDefault(loc => loc.Keys.IsFallback) ?? _realLocalizations.First(); _systemLocalization = _realLocalizations.FirstOrDefault(localization => localization.CultureName == _defaultSystemCultureName); _useAutoLocalization = useAutoLocalization; InitializeAutoLocalization(); _current = AvailableLocalizations.First(); }