using System.Globalization; using System.Text.Json; namespace GameIdeas.Resources; public class TranslationService { private readonly Dictionary?> _translations = []; public void Initialize(Dictionary translations) { foreach (var translation in translations) { var json = JsonSerializer.Deserialize>(translation.Value); _translations[translation.Key] = json; } } public string Translate(string key, string? culture = "fr") { culture ??= CultureInfo.CurrentCulture.TwoLetterISOLanguageName; if (_translations.TryGetValue(culture, out var value) && value?.TryGetValue(key, out var translate) == true) return translate; return key; // Fallback to key if translation is missing } }