Scripts/Settings/Translation.cs
using Milaine.Utils;

namespace Milaine.Settings;

public sealed class Translations : Component {
  [Property, Title("Configuration")]
  public Configuration ConfigurationInstance { get; set; }

  private Localization localization;

  public string language = "en";

  protected override void OnAwake() {
    localization = new();
    language = ConfigurationInstance.Language;
    localization.SetLanguage(ConfigurationInstance.Language);
  }

  public void SetLanguage(string language) {
    localization.SetLanguage(language);

    this.language = language;

    ConfigurationInstance.Language = language;
    ConfigurationInstance.SaveConfig();
  }

  public string T(string token, Dictionary<string, object> data = null) => localization.T(token, data);
}