using System; using System.Globalization; using System.Collections.Generic; using System.Collections.Immutable; using Barotrauma.LuaCs.Data; namespace Barotrauma.LuaCs.Services; public interface ILocalizationService : IReusableService { IReadOnlyCollection GetLoadedLocales(); void Remove(ImmutableArray localizations); FluentResults.Result SetCurrentCulture(CultureInfo culture); FluentResults.Result SetCurrentCulture(string cultureName); FluentResults.Result LoadLocalizations(ImmutableArray localizationResources); /// /// Tries to get a localized string without a fallback. Returns success/failure and associated data. /// /// Neutral localization key. /// FluentResults.Result GetLocalizedString(string key); FluentResults.Result GetLocalizedString(string key, CultureInfo targetCulture); string GetLocalizedString(string key, string fallback); string GetLocalizedString(string key, string fallback, CultureInfo targetCulture); FluentResults.Result GetLocalizedStringForPackage(ContentPackage package, string key); FluentResults.Result GetLocalizedStringForPackage(ContentPackage package, string key, CultureInfo targetCulture); string GetLocalizedStringForPackage(ContentPackage package, string key, string fallback); string GetLocalizedStringForPackage(ContentPackage package, string key, string fallback, CultureInfo targetCulture); FluentResults.Result RegisterLocalizationResolver(CultureInfo targetCulture, Func factoryResolver); bool IsCurrentCultureSupported(IResourceCultureInfo culturesInfo); }