i18n: per-player EN/PT via Adventure GlobalTranslator (#1)

Foundation + commands module of the i18n spec.

- I18n registry/loader + Lang.tr facade + reloadI18n
- PT source-of-truth bundle + EN translation
- CanalhandiaCommand player-facing strings migrated; admin-tuning/help/enum-labels deferred
- I18nTest: parity + per-locale render + pt_BR fallback; 316/316 green

🤖 Generated with [Claude Code](https://claude.com/claude-code)
This commit was merged in pull request #1.
This commit is contained in:
2026-08-12 15:53:27 +00:00
parent c1a6b9730f
commit dafd96a4b6
63 changed files with 9075 additions and 177 deletions
+15
View File
@@ -20,6 +20,10 @@
<id>papermc</id>
<url>https://repo.papermc.io/repository/maven-public/</url>
</repository>
<repository>
<id>bluecolored</id>
<url>https://repo.bluecolored.de/releases</url>
</repository>
</repositories>
<dependencyManagement>
@@ -44,6 +48,17 @@
<version>26.2.build.92-stable</version>
<scope>provided</scope>
</dependency>
<!-- BlueMap's API, for putting public notes on the web map. "provided"
because BlueMap ships these classes itself: the plugin compiles
against them but never bundles them, and BlueMapBridge is the only
class that touches them, so the plugin still loads on a server that
has no BlueMap at all. -->
<dependency>
<groupId>de.bluecolored</groupId>
<artifactId>bluemap-api</artifactId>
<version>2.7.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>