Список изменений
🧪 This is a pre-release. It exists so that the reporter of #7 and anyone else running a non-English server can try the translation work before 0.3.0 goes out for real. The build to test is TradeWinds-0.3.0-SNAPSHOT-b28.jar from Jenkins: https://ci.codemc.io/job/BentoBoxWorld/job/TradeWinds/28/artifact/target/TradeWinds-0.3.0-SNAPSHOT-b28.jar (built from develop at
eca09a5, 633 tests green). Please report anything that still shows up in English, or reads wrong in Chinese, on #7.
🎁 What's new
TradeWinds speaks your players' language now. Most of the locale could already be translated, but three things could not: the names of goods, fuel and hulls in the market and the hold, the names of the ports themselves, and a handful of words that reached players straight from the code. A Chinese server owner reported all of it in #7, and this release closes it.
The clever part costs translators nothing. Wherever an item is named in a dialog, a menu or a hologram, the player's own client now translates it, in every language Minecraft ships. Port names are procedural, so no locale can list them, but every name is built from a few dozen syllables, and a locale can list those: a Chinese locale turns "Lave" into 莱维 for every Chinese-speaking sailor, consistently, while the chart, the logs and the admin commands keep the English name the island is known by. A complete Simplified Chinese locale ships with the addon.
This release also rolls in 0.2.1, which was never published: sugar cane is contraband, because one cane crafts into one sugar and the customs scan was theatre for anyone who had read a recipe book.
✨ Highlights
🔡 Goods, fuel and hulls in the player's own language (#8)
- Every item name a player sees used to be the material's enum name prettified, "Oak Log", which no locale could touch.
- In dialogs, the hold GUI, holograms and boss bars the client now renders the item in its own language, with no translation work at all. Enchantment names on the secondhand shelf too.
- Plain chat cannot be translated by the client, so chat lines fall back to English unless the locale has a line for that item.
en-US.ymlnow lists every traded material undermaterials:, blank on purpose: fill a line to name the item yourself, everywhere, including chat. - The boat item's own name and lore, and the name floating over a hull, are written in the owner's language rather than the server's.
🔡 Port names a locale can transliterate (#8)
- A port name is two to four syllables from a fixed table. The new
name-token:section lists all 31, and a locale writes each in its own script. - The English name stays the island's identity: the island registry, the residents' tags, the logs and
/twadmincommands all keep it. Only what a player reads changes. - The star chart draws the transliterated name only when the map font can. It is an ASCII bitmap, so a Chinese locale sees Chinese names everywhere except the chart, which keeps the English ones.
- The spawn port, the one island with a given name, is named by
spawn.name.
🔡 Simplified Chinese (#8)
zh-CN.ymlships with the addon: every key, all 164 material names using the official Minecraft Chinese names, transliterated port syllables, 出生港 for the spawn port.
🔡 The last English words out of the code (#8)
- Island type read as the raw enum,
AGRICULTURAL, in the market subtitle, warp tooltips, holograms and the chart. Three places still used a hardcoded English band name months afterband.*existed./tw pricesprinted the category enum. All come from the locale now, undertype:,band:andcategory:.
⚙️ 🔺 Sugar cane is contraband (#6)
- One cane crafts into one sugar, so a hold full of cane walked through a customs scan clean and became contraband on the far side with a single click.
SUGAR_CANEjoinsSUGARinillegal-trade.contraband-materials. Farm ports no longer stock cane over the counter, scans catch it in the hold and in pockets, and the black-market premium applies to it.- The rule for when the list grows next: list the feedstock as well as the finished good.
⚙️ Customs stamp paperwork removed (#6)
- Customs stamping went with the hold rework in 0.2.0, but
economy.unstamped-sellablesstayed inconfig.ymlpromising behaviour that did not exist. It is deleted, along with the unuseditem.stamplocale line and the buying page's mention of stamps.
🐛 Also
- Hold tooltips break into lines. The border pane's instruction was one clipped sentence in every language; lore strings now split on newlines, the same convention BentoBox's own panels use. (#8)
- A player-given item name is escaped before it reaches a dialog. A sword named
<red>used to restyle the sell page. (#8) - The dash and question-mark placeholders for missing prices and unknown names come from the locale. (#8)
⚙️ Compatibility
✔️ BentoBox API 3.18.0+ ✔️ Paper 26.1 – 26.2 (26.2 is what it is playtested on) ✔️ Java 25 ✔️ Vault and an economy plugin (required)
🔺 Updating — important notes
⚙️ Add sugar cane to your contraband list by hand. BentoBox replaces list settings from config.yml rather than merging them, so a server that already has a config keeps its old list and never sees the new default. Add SUGAR_CANE under illegal-trade.contraband-materials, or delete config.yml and let it regenerate. economy.unstamped-sellables can be deleted from an existing config; nothing has read it since 0.2.0.
🔡 Locale files: 217 new keys, three reworded. BentoBox adds keys that are missing from an existing locale file on load, so the new type:, category:, name-token:, materials:, spawn.name, item.boat-name and general.none / general.unknown lines arrive by themselves. It does not replace a value that already exists, so three reworded lines keep their old text until you delete the file or edit them: hold.border-lore and hold.tnt-lore (now several lines, each with its own colour tags) and ui.market.buying-body (no longer mentions customs stamps). If you keep a customised locale, the cleanest route is to delete the server copy and let the shipped one regenerate, then re-apply your edits.
🔡 Chinese players. The zh-CN.yml that ships is selected the way BentoBox selects any locale: the player's chosen language (/tw language zh-CN) or the server's default-language in BentoBox's own config. Leave the materials: lines blank in a locale of your own and the client translates item names itself; fill them to override.
🔺 No world or database changes. The hold, boat and ocean models are untouched, and every port keeps the name it has. Boats already in a player's pack pick up the localized name and lore the next time they are stamped, which happens when they are picked up or their hold is opened.
📥 How to update
- Take backups of your server, for safety
- Stop the server
- Drop this jar in your addons folder and delete the old one
- Add
SUGAR_CANEtoillegal-trade.contraband-materialsinconfig.yml(or delete the config to regenerate it) - Delete or edit your locale files as described above
- Restart the server
- You should be good to go!
Legend
- 🔡 locale files may need to be regenerated or updated
- ⚙️ config options have been removed, renamed, or added
- 🔺 special attention needed
What's Changed
- 🔡 Names in the player's own language: goods, ports, types and bands (#7) by @tastybento in https://github.com/BentoBoxWorld/TradeWinds/pull/8
- ⚙️ 🔺 Open 0.2.1, and make the feedstock as illegal as the good by @tastybento in https://github.com/BentoBoxWorld/TradeWinds/pull/6
Full Changelog: https://github.com/BentoBoxWorld/TradeWinds/compare/0.2.0...0.3.0

