BITFALL/Assets/BITKit/Unity/Scripts/Config/TranslateSO.cs

47 lines
1.4 KiB
C#
Raw Normal View History

2023-06-08 14:09:50 +08:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
2023-12-15 00:08:02 +08:00
#if RH_SerializedDictionary
2023-06-08 14:09:50 +08:00
using RotaryHeart.Lib.SerializableDictionary;
2023-12-15 00:08:02 +08:00
#endif
using AYellowpaper.SerializedCollections;
2023-06-08 14:09:50 +08:00
namespace BITKit
{
public sealed class TranslateSO : ScriptableObject
{
2023-12-15 00:08:02 +08:00
#if RH_SerializedDictionary
2023-06-08 14:09:50 +08:00
public SerializableDictionaryBase<string, string> dictionary = new();
2023-12-15 00:08:02 +08:00
#else
public SerializedDictionary<string, string> dictionary = new();
#endif
2023-06-08 14:09:50 +08:00
public string Get(string text, bool isLocalization = true)
{
foreach (var word in dictionary)
{
var value = word.Value;
if (isLocalization)
{
value = DI.Get<ITranslator>().Translate(value);
}
text = text.Replace(word.Key, value);
}
return text;
}
public string GetAt(string key, bool isLocalization = true)
{
var translater = DI.Get<ITranslator>();
if (dictionary.TryGetValue(key, out var value))
{
if (isLocalization)
value = translater.Translate(value);
return value;
}
else
{
/* if (isLocalization)
value = translater.Translate(value); */
return key;
}
}
}
}