Skip to content

Mojang translations#1306

Closed
minoneer wants to merge 99 commits intorlf:masterfrom
uskyblock:mojang-translations
Closed

Mojang translations#1306
minoneer wants to merge 99 commits intorlf:masterfrom
uskyblock:mojang-translations

Conversation

@minoneer
Copy link
Copy Markdown
Contributor

@minoneer minoneer commented Mar 3, 2026

No description provided.

minoneer and others added 30 commits December 9, 2024 21:16
* Remove AWE integration

AsynchWorldEdit has been abandoned for over 2 years and does not work with current server versions. We should focus on supporting FAWE going ahead.

* Decouple block from item requirements in challenges

This resolves an issue in newer Spigot versions where non-item blocks in challenge requirements prevent the plugin from loading.
Fixes #58

* Add converter to new challenges format

* Update item conversion tests to new config header

* Add timestamp to challenge file backup to avoid overwriting old backups

* Update the challenges version number after conversion
…#63)

This is no longer supported in Minecraft 1.21 for materials that cannot be items such as lava or potted plants.
Fixes #62
Includes:
- Updated maven plugins
- Upgrade Mockito tests
- Updated build script
* Fix wither spawning with disabled spawn-limits

Resolves #60

Decouples wither-origin tracking and spawn limit listeners. The issue was that withers were tagged with their origin island in the creature spawn listeners for of SpawnEvents, which is not registered if spawn limits are disabled. I solved this by moving the wither tagging logic into a separate listener that is always active. Untagged Withers are despawned by the GriefEvents listener.

I also migrated the tagging to PDC to make the tagging consistent without relying on name tagging that is prone to errors.

* Cleanup SpawnEvents
This was a left-over from the removal of the name2uuid importer in f5b676c
Resolves #67
Replace deprecated API calls and similar errors
* Update world generators to new generation model

Makes some biome-related things typesafe as a side effect.

Resolves #68

* Copy biome list for tab completion purposes

* Fix logging of biome to island config when using the biome GUI
…challenge menu (#73)

Completed challenges are usually shown with an enchant glowing effect when they are completed at least once. This may be useful for the player, but the "enchanted" status of the item is also used in the ChallengeLogic to determine if a challenge with `offset: -1` is displayed or not, in place of the completed one.

New MC version, with the new data component system, does not allow an enchant level of 0 (even with unsafe enchant level), an is silently ignored.

This commit changes the enchant level to 1, and adds a flag to the item meta to hide the enchant information from the tooltip.
* Implement a modern GUI framework

* Biome update
- Biomes are now configurable by the administrator
- The biome GUI automatically adjusts to the biomes available to the player
- The biome command and its tab completion use the configured biomes
- The biome menu use the new GUI framework

* Add nullability annotations and checks

* Slight improvements to biome GUI rendering

* Add newer biome types to support spawning of all passive mobs.

Resolves #39
The goal of this PR is to improve the maintainability of the plugin by moving towards dependency-injection-based initialization.

Current issue:
The plugin currently uses a combination of static references, a massive single-instance service locator (the main uSkyBlock class), and passing dependencies down to child objects. This means

    initialization order is implicit, and changing anything in the order may break stuff due to undocumented implicit dependencies
    an overloaded main plugin class
    implicit cyclic dependencies between services
    changing a class usually requires changes to several others, including the main plugin class
    Things are hard to test, as everything depends on everything else

This PR breaks these dependencies through dependency injection using Guice.

    Most services, commands, and listeners are initialized through DI
    Some services were refactored to depend on the actual type instead of the uSkyBlock class. This is an ongoing effort and will require continued effort in the future
    Moved most of the initialization code out of the main plugin class

Initial testing looks good, but since this is a larger change, it may cause some initial instability or hidden issues.

Closes #14
Resolves #76

* Add guice for dependency injection

* Use DI for biome related classes

* Initialize most services via dependency injection
- Make most dependencies obvious by moving injections to the constructor
- Break some cyclic dependencies
- Reduce reliance on the main plugin class

* Restructure Command and Listener lifecycle management

* Initialize sub commands via dependency injection

* Cleanup more bootstrapping

* Additional bootstrap cleanup

* Move Island level refresh task out of main plugin class

* More lifecycle cleanup

* Move version info to its own module

* Fix static legacy initialization

* Move directory initializations to their proper classes

* Add Settings to early legacy initialization

* Remove redundant imports from MainConfigMenu
Many of the accessed objects (e.g., playerinfo, islandinfo, location, player, commandsender) are not threat-safe.
Clean separation of concerns, de-clutter main plugin class, use improved Durations API
The config menu is currently broken. It is not worth maintaining, configs can be edited directly in-file.

Closes #80
* New translations keys.pot (French)
[ci skip]

* New translations keys.pot (Spanish)
[ci skip]

* New translations keys.pot (Czech)
[ci skip]

* New translations keys.pot (Danish)
[ci skip]

* New translations keys.pot (German)
[ci skip]

* New translations keys.pot (Italian)
[ci skip]

* New translations keys.pot (Korean)
[ci skip]

* New translations keys.pot (Dutch)
[ci skip]

* New translations keys.pot (Russian)
[ci skip]

* New translations keys.pot (Swedish)
[ci skip]

* New translations keys.pot (Chinese Simplified)
[ci skip]

* New translations keys.pot (Vietnamese)
[ci skip]

* New translations keys.pot (Portuguese, Brazilian)
[ci skip]

* New translations keys.pot (English, United Kingdom)
[ci skip]
* New translations keys.pot (Arabic)
[ci skip]

* New translations keys.pot (Hungarian)
[ci skip]

* New translations keys.pot (Japanese)
[ci skip]

* New translations keys.pot (Romanian)
[ci skip]

* New translations keys.pot (Belarusian)
[ci skip]

* New translations keys.pot (Bulgarian)
[ci skip]

* New translations keys.pot (Catalan)
[ci skip]

* New translations keys.pot (Greek)
[ci skip]

* New translations keys.pot (Basque)
[ci skip]

* New translations keys.pot (Finnish)
[ci skip]

* New translations keys.pot (Irish)
[ci skip]

* New translations keys.pot (Hebrew)
[ci skip]

* New translations keys.pot (Lithuanian)
[ci skip]

* New translations keys.pot (Macedonian)
[ci skip]

* New translations keys.pot (Polish)
[ci skip]

* New translations keys.pot (Portuguese)
[ci skip]

* New translations keys.pot (Turkish)
[ci skip]

* New translations keys.pot (Ukrainian)
[ci skip]

* New translations keys.pot (Chinese Traditional)
[ci skip]

* New translations keys.pot (Indonesian)
[ci skip]

* New translations keys.pot (Thai)
[ci skip]

* New translations keys.pot (Slovak)
[ci skip]

* New translations keys.pot (Slovenian)
[ci skip]

* New translations keys.pot (Albanian)
[ci skip]

* New translations keys.pot (Urdu (Pakistan))
[ci skip]

* New translations keys.pot (Galician)
[ci skip]

* New translations keys.pot (Icelandic)
[ci skip]

* New translations keys.pot (Persian)
[ci skip]

* New translations keys.pot (Bengali)
[ci skip]

* New translations keys.pot (Croatian)
[ci skip]

* New translations keys.pot (Estonian)
[ci skip]

* New translations keys.pot (Latvian)
[ci skip]

* New translations keys.pot (Hindi)
[ci skip]

* New translations keys.pot (Malay)
[ci skip]

* New translations keys.pot (Maltese)
[ci skip]

* New translations keys.pot (Filipino)
[ci skip]

* New translations keys.pot (Luxembourgish)
[ci skip]

* New translations keys.pot (Bosnian)
[ci skip]

* New translations keys.pot (Norwegian Bokmal)
[ci skip]

* New translations keys.pot (Serbian (Latin))
[ci skip]
…d translations.

We only had partial legacy translations for very few languages, and those were inconsistent in quality. Since all message keys changed significantly, we regenerate instead of trying to preserve. This gives all languages full coverage and a clean base for human improvements via crowdin.
- add supported locale discovery/resolution in I18nUtil\n- generate and package supported-locales.txt in i18n.zip\n- add /usb lang command to list/set locale with compact output\n- auto-select supported system locale on first setup\n- log startup hint when default en is set but system locale is supported\n- update extracted translation keys and admin command wiring
Sort extractTranslation input files and normalize #: reference blocks to keep keys.pot deterministic across local and CI environments.
…ntries

- Update legacy log handling to support new V2 format with plain text rendering.
- Replace deprecated trLegacy calls with modern tr methods.
- Add unit tests to ensure compatibility with various log entry formats.
- Include new dependencies for text handling.
…nd system-debug for easier translation prioritization (#105)

* Refactor i18n to domain-split extraction and generated merge pipeline

* Restructure translations into src/main/i18n with domain locale folders

* Split locale catalogs into domain translation directories
@minoneer minoneer closed this Mar 3, 2026
@minoneer minoneer deleted the mojang-translations branch March 3, 2026 11:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants