Skip to content

Translating

Warlon Mhite edited this page Nov 8, 2026 · 4 revisions

Home › Contributing › Translating

Hempdustry speaks twelve locales, with regional vocabulary rather than one language copied across countries. This page is for anyone who would like to check, fix or finish a translation: which locales exist and how far along each one is, where the files are, how their keys are named, the house style, and how to test and send your work.

On this page

The twelve locales

Counted from the files of 2.1.0 on Minecraft 1.21.11, which have 316 strings in English. A string a locale does not have yet shows in English in game.

Locale In the game's language menu Translated by Status
en_us English (United States) Warlon Mhite complete, 316 of 316: the source every other file is checked against
en_gb English (United Kingdom) adapted with an LLM from Warlon Mhite's American English complete
en_ca English (Canada) adapted with an LLM from Warlon Mhite's American English complete
en_au English (Australia) adapted with an LLM from Warlon Mhite's American English complete
en_nz English (New Zealand) adapted with an LLM from Warlon Mhite's American English complete
fr_fr Français (France) Warlon Mhite complete
fr_ca Français (Canada) adapted with an LLM from Warlon Mhite's French complete
fr_ch Français (Suisse) adapted with an LLM from Warlon Mhite's French complete
de_de Deutsch (Deutschland) Gülps'sch420 complete
de_at Deitsch (Österreich) adapted with an LLM from Gülps'sch420's German, with vanilla's Austrian words for the blocks it shares with vanilla complete
de_ch Schwiizerdütsch (Schwiiz) Gülps'sch420 complete
ru_ru Русский (Россия) MargoxaTheGamer 180 of 316: catching up with 2.1

Russian is catching up with 2.1. Nearly everything from before 2.1 is translated (a handful of 2.0 strings are still in English); most of what 2.1 adds (the hash family, the Redstone Vaporizer, indoor growing, Beldía, the furniture, the new advancements) still shows in English there. This is a known issue of 2.1.0, and the most useful place to help.

The regional locales were adapted with a Large Language Model, and nobody who grew up speaking them has read them yet. If you are Canadian, British, Australian, a New Zealander, a Quebecer, a French-speaking Swiss or Austrian, a read-through is worth a lot, even if all you find is one word nobody there would say.

Minecraft 1.21.1: the files have 313 strings there, the same less the Hemp Shelf, the Hemp Harness and one item tag, which only exist on 1.21.11.

Minecraft 26.x has 319, for its extras; 1.18.2 has 332 and 1.16.5 331, with names for Forge's own tags and a few keys spelled the way those versions want them (below). Every locale but ru_ru is complete on all of them.

Where the files are

In the source, one JSON file per locale:

common/src/main/resources/assets/hempdustry/lang/<locale>.json

Each is a flat list of "key": "text" pairs in UTF-8. Every key in another locale must also exist in en_us.json; a key that en_us.json lacks is a mistake, not a translation.

How the keys are named

Kind Key Example
Items item.hempdustry.<id> item.hempdustry.hemp_fiber → Hemp Fiber
Blocks block.hempdustry.<id> block.hempdustry.sifting_box → Sifting Box
Names built around a value item.hempdustry.<id>.<suffix> item.hempdustry.bong.packed → %s Bong, the name of a packed bong
The banner pattern block.hempdustry.banner.hemp_leaf.<colour> …hemp_leaf.lime → Lime Cannabis Leaf, one per dye colour
Item tags tag.item.<namespace>.<path>, with the path's slashes as dots tag.item.hempdustry.siftable.flower → Siftable Flower; tag.item.c.crops.hemp → Hemp Crops
Advancements advancements.hempdustry.<id>.title and .description advancements.hempdustry.pipe_dream.title → Pipe Dream
Strain names hempdustry.strain.<id> hempdustry.strain.indica → Purple Kush
Tooltips and messages hempdustry.<thing>.<what> hempdustry.bong.set_down → Sneak to set it down; hempdustry.trim.too_young
Recipe viewer pages hempdustry.category.*, hempdustry.info.* the recipe viewer pages (JEI, REI, and EMI on 1.21.1) for the machines, the cauldron steps, the grow blocks and the bong
The update checker hempdustry.update.* the chat line saying a new version is out, and its link
The config command commands.hempdustry.reload, commands.hempdustry.reload.failed what /hempdustry reload answers
Paintings painting.hempdustry.<id>.title, .author painting.hempdustry.hendrix.title → Hendrix; the titles are names and usually stay as they are
Music discs jukebox_song.hempdustry.<id> Nefuß - Moonlight
Boats, sounds, the creative tab entity.hempdustry.*, subtitles.hempdustry.*, itemgroup.hempdustry subtitles.hempdustry.bonghit → Bong bubbles

In English, the 316 break down as 84 advancement strings (42 advancements), 74 item and 62 block keys (including the sixteen banner colours), 58 of the mod's own strings, 13 item tags, 14 painting strings and the 11 others.

On the 1.18.2 and 1.16.5 builds a few keys differ: the banner pattern's are block.minecraft.banner.hempdustry_hemp_leaf.<colour>, and a music disc's title is item.hempdustry.music_disc_<id>.desc (Nefuß - Moonlight), as those versions name them.

Ids are not names. Some ids are older than the names players see: indica is Purple Kush and sativa is Lemon Haze, in keys too. Translate the English text, never the key.

Keep every placeholder. %s, %d and %1$s stand for a value the game fills in: a strain's name, a number, a version. A translation must have the same placeholders as English, as many of each; %1$s and %2$s may swap places if your grammar needs it. A game test checks every locale for this.

House style

Regional vocabulary, not copy-paste. Each locale uses the words people there actually say, and that is why the five English and three French files are separate:

Thing Locales
Flip Flops Thongs (en_au), Jandals (en_nz), Gougounes (fr_ca), Tongs (fr_fr, fr_ch), Finke (de_ch)
Hemp Seed Bar Hemp Flapjack in en_gb, en_au and en_nz; in America and Canada a flapjack is a pancake
Hemp Fiber Hemp Fibre everywhere but en_us
Redstone Vaporizer Vaporiser in en_gb, en_au, en_nz; Canada keeps -ize here while spelling fibre and armour the British way. Don't "tidy" the two into one grouping
Cannabutter Beurre de Marrakech in France and Switzerland, Beurre de Pot in Quebec
Spliff Spliff in France and Switzerland, Joint in Quebec
Hashish Résine in France and Switzerland, Hasch in Quebec
Hemp Beanie Tuque en Chanvre in Quebec, Hanfhaube in Austria
Bucket of Hemp Milk Hanfmilchkübel in Austria, where a bucket is a Kübel

The smoking verb moves too: in France you tires une taffe, in Quebec you prends une touche.

Puns are re-invented, not translated. Advancement titles carry the mod's jokes, and a literal translation of a pun is rarely a pun. Find your language's own joke for the same moment:

  • Pipe Dream is Château en Espagne in French: the French idiom for a pipe dream.
  • Butter Late Than Never is Mieux Vaut Beurre que Jamais.
  • Bong Voyage is Bang Voyage, because the bong is a bang in French.
  • Pothead (placing a Grow Pot) is Coup de Pot in France and Du Pot dans le Pot in Quebec, where pot means weed.
  • Sea of Green stays in English in French, because that is what French-speaking growers call it.

The description under each title is the opposite: a plain instruction saying what to do, item names spelled as your locale spells them, and no full stop at the end, the way vanilla writes its own advancements.

Item names use vanilla's own words in your locale. If Minecraft already has a word for something in your language, use that one, so the mod's names sit beside vanilla's: the French Redstone Vaporizer is Vaporisateur à Redstone because vanilla's French says Lampe à redstone for a thing redstone powers. Look the term up in the game in your language before you choose.

Some words stay as they are. Strain names (Purple Kush, Lemon Haze, Beldía), the people in the paintings and the music disc titles are proper nouns. Trade words that the scene uses untranslated, like Charas, Kief, Rosin, Bubble Hash and Moon Rock in French, can stay too, if that is what people in your language say.

Match the register already in the file. The French files say tu; follow the capitalisation your locale's file already uses for item names.

Testing a translation

  1. Read it in the game. Pick your language under Options › Language, then look at everything you translated: item names in the creative tab and their tooltips, the advancement tree, the machine screens, and the recipe viewer pages if you have JEI, REI or EMI. Long words that run out of their box show up only this way.

  2. Without building the mod, put your file in a resource pack at assets/hempdustry/lang/<locale>.json, enable the pack, and press F3 + T to reload. Resource Packs explains how to make one; a lang file in a pack overrides the mod's line by line.

  3. List what is missing compared with English, from the lang folder:

    python3 -c "import json,sys; en=json.load(open('en_us.json',encoding='utf-8')); xx=json.load(open(sys.argv[1],encoding='utf-8')); print('\n'.join(k for k in en if k not in xx))" de_de.json
  4. If you build from source, python3 scripts/lang_coverage.py checks that English names every item, block and item tag and that no key is left over from something renamed, and the game tests check that every locale keeps its placeholders (Building from Source).

Sending it in

  • A pull request on GitHub that changes your locale's file, or
  • the Discord: post the file, or a list of corrections, and say which locale it is for.

Either way, say whether you are a native speaker, and add a line about any choice a reader might "fix" back (a regional word, a re-invented pun), so it stays. Translations are part of the mod's data and carry the same licence as the code (AGPL-3.0-only); translators are credited by name in CREDITS.md and on the About page unless they would rather not be.

See also: Contributing · Resource Packs · About

Clone this wiki locally