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 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(); }