Kasuromi / GTFO-API

GNU General Public License v3.0
8 stars 7 forks source link

[Feature] Localization API #50

Closed Panthr75 closed 1 year ago

Panthr75 commented 1 year ago

Localization in GTFO on the plugin side has been a big pain. As a result, an API that plugin developers can use has been added to handle localization in a similar format to how Minecraft handles languages via separate lang files.

Todo

Examples

Using the following lang.en.resx file: image and class

internal class EntryPoint : BasePlugin
{
    public override void Load()
    {
        LocalizationAPI.LoadFromResources("MyCoolPlugin.Resources.lang");
        EventAPI.OnAssetsLoaded += OnAssetsLoaded;
    }
    private void OnAssetsLoaded()
    {
        Log.LogInfo(LocalizationAPI.GetString("mycoolplugin.startup_message"));
    }
}

Outputs:

[MyCoolPlugin:Info] Hello, world!