/// <summary> /// Save localized property of setting /// </summary> /// <typeparam name="T">Entity type</typeparam> /// <param name="settings">Settings</param> /// <param name="keySelector">Key selector</param> /// <param name="languageId">Language identifier</param> /// <param name="value">Localized value</param> /// <returns>Localized property</returns> public static void SaveLocalizedSetting <T>(this T settings, Expression <Func <T, string> > keySelector, long languageId, string value) where T : ISettings, new() { var settingService = EngineContext.Current.Resolve <ISettingService>(); var localizedEntityService = EngineContext.Current.Resolve <ILocalizedEntityService>(); var key = SettingExtensions.GetSettingKey(settings, keySelector); var setting = settingService.GetSetting(key); if (setting == null) { return; } localizedEntityService.SaveLocalizedValue(setting, x => x.Value, value, languageId); }
/// <summary> /// Get localized property of setting /// </summary> /// <typeparam name="T">Entity type</typeparam> /// <param name="settings">Settings</param> /// <param name="keySelector">Key selector</param> /// <param name="languageId">Language identifier</param> /// <param name="storeId">Store identifier</param> /// <param name="returnDefaultValue">A value indicating whether to return default value (if localized is not found)</param> /// <param name="ensureTwoPublishedLanguages"> /// A value indicating whether to ensure that we have at least two published /// languages; otherwise, load only default value /// </param> /// <returns>Localized property</returns> public static string GetLocalizedSetting <T>(this T settings, Expression <Func <T, string> > keySelector, long languageId, bool returnDefaultValue = true, bool ensureTwoPublishedLanguages = true) where T : ISettings, new() { var settingService = EngineContext.Current.Resolve <ISettingService>(); var key = SettingExtensions.GetSettingKey(settings, keySelector); //we do not support localized settings per store (overridden store settings) var setting = settingService.GetSetting(key); if (setting == null) { return(null); } return(null); //return setting.GetLocalized(x => x.Value, languageId, returnDefaultValue, ensureTwoPublishedLanguages); }