using System; using System.Threading.Tasks; using Volo.Abp; using Volo.Abp.DependencyInjection; using Volo.Abp.Localization; using Volo.Abp.Settings; namespace Sozsoft.Notifications.Domain; /// /// Bildirim metninin (tarih, sayi, dil anahtari) uretildigi kultur. Istek disinda (worker) is /// parcaciginin kulturu surec varsayilanidir; alicinin kendi dil tercihi platformda saklanmaz /// (dil istekte Accept-Language ile gelir), bu yuzden ulasilabilen en yakin deger /// kiracinin Abp.Localization.DefaultLanguage ayaridir (kiraci → global → varsayilan). /// public interface INotificationCulture { Task UseAsync(); } public class NotificationCulture(ISettingProvider settingProvider) : INotificationCulture, ITransientDependency { public async Task UseAsync() { var culture = await settingProvider.GetOrNullAsync(LocalizationSettingNames.DefaultLanguage); return culture.IsNullOrWhiteSpace() || !CultureHelper.IsValidCultureCode(culture!) ? NullDisposable.Instance : CultureHelper.Use(culture!); } }