init project
This commit is contained in:
26
src/GameIdeas/GameIdeas.Resources/TranslationService.cs
Normal file
26
src/GameIdeas/GameIdeas.Resources/TranslationService.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
using System.Globalization;
|
||||
using System.Text.Json;
|
||||
|
||||
namespace ArgosV2.Resources;
|
||||
|
||||
public class TranslationService
|
||||
{
|
||||
private readonly Dictionary<string, Dictionary<string, string>?> _translations = new();
|
||||
|
||||
public void Initialize(Dictionary<string, string> translations)
|
||||
{
|
||||
foreach (var translation in translations)
|
||||
{
|
||||
var json = JsonSerializer.Deserialize<Dictionary<string, string>>(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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user