A simple localization management library.
Features a Minecraft-specific implementation for mod developers, wrapping around Minecraft's own localization system.
You need to add it as a dependency in your build.gradle(.kts) file.
repositories {
maven("https://maven.deftu.dev/releases")
}
dependencies {
modImplementation("dev.deftu:textualizer:<VERSION>")
}
Replace <VERSION> with the version of the library you want to use.
You'll need to implement Language, LocalizationContext, and Localization in your project. This means you need to handle language metadata, translation loading, translation retrieval, placeholder replacement, and language switching.
Refer to the Minecraft-specific implementation for an example of how to do this.
Minecraft's (and Forge's) language management system is very buggy and inconsistent across several Minecraft versions. This library aims to provide a consistent and reliable way to manage translations in your mods.
No. The library doesn't add anything which would affect performance outside the initial loading of the translations and language switching.
You need to add it as a dependency in your build.gradle(.kts) file.
repositories {
maven("https://maven.deftu.dev/releases")
}
dependencies {
modImplementation("dev.deftu:textualizer-<MINECRAFT VERSION>-<MOD LOADER>:<VERSION>")
}
Of course, replace <MINECRAFT VERSION> with the version of Minecraft you are developing for, <MOD LOADER> with the mod loader you are developing for, and <VERSION> with the version of the library you want to use.
Getting the current (selected in-game) language's context can be done like so:
import dev.deftu.textualizer.minecraft.MCLocalization;
LocalizationContext context = MCLocalization.current();
To obtain a translated string, you can use
import dev.deftu.textualizer.minecraft.MCLocalization;
LocalizationContext context = MCLocalization.current();
String text = context.get("com.example");
To obtain a translated string and replace your placeholders, you can use
import dev.deftu.textualizer.MCLocalization;
int number = 10;
LocalizationContext context = MCLocalization.current();
String text = context.get("com.example", number);
This project is licensed under LGPL-3.0.
© 2024 Deftu

A custom localization implementation for consistency between 1.8.9 - 1.21.