BepisLocaleLoader

v1.2.2·Updated 2026-09-16

Loads locale files for Plugins

About this mod Author’s original text

BepisLocaleLoader

A Resonite mod that Loads locale files for Plugins.

Installation (Manual)

  • Install BepisLoader for Resonite.
  • Download the latest release ZIP file (e.g., ResoniteModding-BepisLocaleLoader-1.0.0.zip) from the Releases page.
  • Extract the ZIP and copy the plugins folder to your BepInEx folder in your Resonite installation directory:
  • Default location: C:\Program Files (x86)\Steam\steamapps\common\Resonite\BepInEx\
  • Start the game. If you want to verify that the mod is working you can check your BepInEx logs.

Example config using ConfigDescription

You can add locale to a config entry by adding a ConfigLocale in your ConfigDescription like this:

private static ConfigEntry exampleConfigItem;

public override void Load()

{

exampleConfigItem = Config.Bind("General", "exampleConfigItem", false, new ConfigDescription("exampleConfigItem Description", null, new ConfigLocale("Settings.dev.author.myPlugin.General.exampleConfigItem", "Settings.dev.author.myPlugin.General.exampleConfigItem.Description")));

}

Or you can use the ConfigLocaleHelper class which provides the BindLocalized extension method like this:

private static ConfigEntry exampleConfigItem;

public override void Load()

{

// Generates the following locale keys:

// Name: "Settings.dev.author.myPlugin.General.exampleConfigItem"

// Description: "Settings.dev.author.myPlugin.General.exampleConfigItem.Description"

exampleConfigItem = Config.BindLocalized("dev.author.myPlugin", "General", "exampleConfigItem", false, "exampleConfigItem Description");

// NOTE: If you are using the ResoniteModding plugin template you can use PluginMetadata.GUID instead of "dev.author.myPlugin"

}

When defining config entries with locale, it's still recommended to provide the entry's english description ("exampleConfigItem Description" in this case), as this will be visible when editing the config file manually or via mod managers.

Adding Locale Strings Manually

You can register a single localized string in code with:

LocaleLoader.AddLocaleString(

"Settings.BepInEx.Core.Config",

"Reset Configuration",

force: true,

authors: "YourName"

);

  • rawString → The key used to look up the string.
  • localeString → The localized text to display.
  • force → If true, always overwrites existing entries.
  • authors → Optional, comma-separated string of authors. Defaults to plugin authors or "BepInEx".

Loading Locale Files from a Plugin

Place a Locale folder next to your plugin DLL (e.g. MyPlugin/Locale/en.json).

Files should follow the LocaleData JSON structure:

{

"localeCode": "en-US",

"authors": ["MyName"],

"messages": {

"Settings.dev.author.myPlugin": "My Plugin",

"Settings.dev.author.myPlugin.Breadcrumb": "My Plugin Settings Breadcrumb Title",

"Settings.dev.author.myPlugin.config.Key": "Example Config Key",

"Settings.dev.author.myPlugin.config.Description": "Example Config Description."

}

}

String Shorthand:.T()

To make localization calls cleaner, LocaleLoader defines extension methods.T() that wrap AsLocaleKey and LocaleString.

Examples:

// Basic key lookup

"Settings.MyPlugin.Option".T();

// Key with formatting arguments

"Settings.MyPlugin.Welcome".T("Hello {name}!", "name", userName);

// Multiple arguments

"Settings.MyPlugin.Stats".T(

("kills", killCount),

("deaths", deathCount)

);

// With format string

"Settings.MyPlugin.Formatted".T("{kills}/{deaths}",

("kills", killCount),

("deaths", deathCount)

);

// Continuous locale updates (useful for dynamic UI)

"Settings.MyPlugin.Timer".T(

continuous: true,

arguments: new Dictionary { { "time", elapsedTime } }

);

When to Use force: true

  • Use force: false (default) when you want to avoid overwriting existing locales (safe for mods adding only new keys).
  • Use force: true when your plugin should override existing translations (e.g. testing, fixes, or ensuring your text is applied).

Debugging

  • Loaded plugin locales are tracked in LocaleLoader.PluginsWithLocales.
  • Logs show which files are loaded and how m

Install & use Install: follow the bundled instructions

  1. Unzip the archive from playbuff and read the bundled readme / instructions first.
  2. Most mods rely on the game's mod loader — the usual route is a community mod manager (such as r2modman): pick this game, install, and it handles the loader and dependencies.
  3. For a manual install, put the mod files into the matching Mod / plugins folder inside the game directory.
  4. Launch the game to confirm it loaded; mods with listed dependencies need those installed as well.

Install locations vary a lot between mods — the bundled readme is the most reliable guide.

Dependencies

Install these first, or the mod will not work:

ResoniteModding-BepisLoader

File & checksum

Filename
BepisLocaleLoader-1.2.2.zip
File size
65.5 KiB