You are viewing a potentially older version of this package.
View all versions.
BepisLocaleLoader
Loads locale files for Plugins
| Date uploaded | 9 months ago |
| Version | 1.1.0 |
| Download link | ResoniteModding-BepisLocaleLoader-1.1.0.zip |
| Downloads | 381 |
| Dependency string | ResoniteModding-BepisLocaleLoader-1.1.0 |
This mod requires the following mods to function
ResoniteModding-BepisLoader
A mod loader which allows using BepInEx with Resonite
Preferred version: 1.4.1README
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
pluginsfolder to your BepInEx folder in your Resonite installation directory:- Default location:
C:\Program Files (x86)\Steam\steamapps\common\Resonite\BepInEx\
- Default location:
- Start the game. If you want to verify that the mod is working you can check your BepInEx logs.
Example config using ConfigDescription
private static ConfigEntry<bool> exampleConfigItem;
public override void Load()
{
exampleConfigItem = Config.Bind("General", "exampleConfigItem", false, new ConfigDescription("exampleConfigItem Description", null, new ConfigLocale("Settings.dev.author.myPlugin.config.Key", "Settings.dev.author.myPlugin.config.Description")));
}
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→ Iftrue, 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<string, object> { { "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: truewhen 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 many messages were registered.
- Errors during JSON parsing will be logged with details.