Switch repo to English, add i18n with EN/DE language files and first-start language selection

- in-game texts moved to lang/en.lang and lang/de.lang (key = text, placeholders)
- game logic emits message keys + args, translated at display time
- localStorage access via own miniquad JS plugin (www/dc_plugin.js)
- code comments, DESIGN.md, CREDITS.md translated; README.md added

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Richard ZinkandClaude Opus 5.5 committed 2026-11-02 22:53:03 +01:00
1 parent a101f6ddc4
commit fbf6f223fc
18 files changed
+1072 -362

No files matched your search

+200
View File
@@ -0,0 +1,200 @@
# DungeonCraft language file: English (reference language)
# Format: key = text Placeholders: {0}, {1}, ... Lines starting with # are comments.
# To add a language: copy this file, translate the texts and register it in src/i18n.rs.
lang.name = English
# ---- units
unit.worker = Pit Imp
unit.kobold = Kobold
unit.spider = Cave Spider
unit.mage = Shadow Mage
unit.ogre = Stone Ogre
unit.knight = Knight
unit.archer = Archer
unit.priest = Priest
unit.dwarf = Dwarf Miner
unit.paladin = Paladin of Light
# ---- rooms
room.treasury = Treasury
room.lair = Lair
room.farm = Mushroom Garden
room.training = Training Hall
room.library = Library
# ---- jobs
job.none = Thinking
job.dig = Digging
job.claim = Claiming ground
job.deliver = Carrying gold to the treasury
job.wander = Wandering
job.sleep_go = Going to sleep
job.sleep = Sleeping
job.eat = Eating
job.train = Training
job.study = Studying
job.fight = Fighting
job.core_attack = Attacking the Soul Core
job.core_march = Marching to the Soul Core
job.leave = Leaving the realm
job.gate_attack = Attacking the Hero Gate
job.rally = Following the attack flag
# ---- messages
msg.welcome1 = Welcome, ruler of the underworld! Protect your Soul Core and destroy the Hero Gate.
msg.welcome2 = Mark earth and gold veins with the Dig tool (key 1). Your Pit Imps do the rest.
msg.welcome3 = Dig through to the portal and claim it. Creatures need a lair and a mushroom garden.
msg.welcome4 = Use the attack flag (key 9) to send your creatures into battle, even against the Hero Gate.
msg.wave_warn = Scouts report: hero wave {0} reaches the gate in 30 seconds!
msg.defeat = Your Soul Core has shattered. The underworld is lost.
msg.victory = The Hero Gate is destroyed. The underworld is yours!
msg.creature_arrived = A {0} came through the portal.
msg.payday_partial = Payday! {0} creatures paid ({1} gold), {2} got nothing and are angry!
msg.payday = Payday! {0} creatures received {1} gold.
msg.wave_boss = Wave {0}: a Paladin of Light leads {1} heroes into your realm!
msg.wave = Wave {0}: {1} heroes break through the gate!
msg.gate_boss = The gate is crumbling! The Gate Warden appears with {0} defenders!
msg.gate_defenders = The gate summons {0} defenders!
msg.level_up = {0} reaches level {1}.
msg.hero_slain = {0} defeated! Loot: {1} gold.
msg.creature_died = Your {0} has fallen.
msg.portal_claimed = The portal is yours! It attracts creatures.
msg.flag_removed = Attack flag removed. Your creatures return.
msg.flag_set = Attack flag set! Battle-ready creatures gather there.
msg.creature_leaves = An unhappy {0} leaves your realm!
msg.no_gold = Not enough gold!
msg.sold = Rooms sold: +{0} gold.
msg.no_mana_bolt = Not enough mana for Lightning.
msg.no_mana_heal = Not enough mana for Heal.
msg.no_mana_cost = Not enough mana ({0} needed).
# ---- hints (shown at most every 30 seconds)
hint.portal_no_lair = The portal is open, but without a lair no creatures will come.
hint.no_farm = Creatures want to eat: build a mushroom garden.
hint.lair_full = All beds in the lair are taken. Enlarge your lair.
hint.gate_attack = Your creatures are attacking the Hero Gate!
hint.treasury_full = Your treasuries are full! Build more treasury tiles.
hint.flag_unreachable = Your creatures cannot reach the attack flag.
hint.flag_ground = The flag must be placed on walkable ground.
hint.no_beds = Creatures have to sleep on bare ground. Enlarge your lair!
hint.hungry = Your creatures are starving! Enlarge the mushroom garden.
hint.core_attacked = Your Soul Core is under attack!
hint.build_where = Rooms can only be built on claimed, empty floor tiles.
hint.hand_full = Your hand is full (max. 8). Right-click drops units.
hint.drop_where = Units can only be dropped on your own territory.
hint.summon_where = Pit Imps can only be summoned on your own territory.
# ---- tools (label = short text under the button)
tool.dig.label = Dig
tool.dig.name = Dig
tool.dig.desc = Mark earth and gold. Drag for a rectangle; starting on a marked tile removes the marks.
tool.hand.label = Hand
tool.hand.name = Hand
tool.hand.desc = Pick up one of your units (max. 8). Right-click drops it on your own territory.
tool.treasury.label = Treasury
tool.treasury.desc = Stores gold: +500 capacity per tile.
tool.lair.label = Lair
tool.lair.desc = One bed per tile. Determines how many creatures come.
tool.farm.label = Mushrooms
tool.farm.desc = Food for creatures. With 6 tiles or more, cave spiders come.
tool.training.label = Training
tool.training.desc = Creatures gain levels (costs gold). With 9 tiles or more, stone ogres come.
tool.library.label = Library
tool.library.desc = Creatures generate mana. With 6 tiles or more, shadow mages come.
tool.sell.label = Sell
tool.sell.name = Sell
tool.sell.desc = Turn rooms back into floor (50% refund).
tool.flag.label = Flag
tool.flag.name = Attack Flag
tool.flag.desc = Battle-ready creatures gather here. Near the Hero Gate they attack it. Click again to remove it.
tool.lightning.label = Lightning
tool.lightning.name = Lightning
tool.lightning.desc = 55 damage to heroes in the area.
tool.heal.label = Heal
tool.heal.name = Heal
tool.heal.desc = Heals your units in the area by 50%.
tool.summon.label = Imp
tool.summon.name = Summon Pit Imp
tool.summon.desc = Creates a new Pit Imp on your own territory.
cost.gold_tile = {0} gold/tile
cost.mana = {0} mana
ui.cost = Cost: {0}
ui.key = Key: {0}
# ---- HUD
hud.gold = Gold
hud.mana = Mana
hud.core = Core
hud.gate = Gate
hud.creatures = Creatures
hud.workers = Imps
hud.wave = Wave {0}
hud.army = Army
hud.off = off
hud.hand = Hand
hud.empty = empty
ui.map = Map
ui.pause = PAUSE
ui.pause_hint = P: continue
# ---- help
help.goal = Goal: destroy the Hero Gate and protect your Soul Core.
help.k_left = Left click Use tool (dig/rooms: drag a rectangle)
help.k_right = Right click Drop a unit from your hand
help.k_pan = Right drag Move the map (also WASD/arrows, screen edge)
help.k_rot = Middle drag Rotate and tilt the camera (also Q/E, R/F)
help.k_zoom = Mouse wheel Zoom
help.k_tools = 1-9, 0, X, V Select tool
help.k_misc = P / Space Pause M Sound on/off +/- Volume
help.k_misc2 = G Tile outlines on/off H This help
help.s1 = 1. Dig to the portal and let your Pit Imps claim it.
help.s2 = 2. Build a lair, a mushroom garden and a treasury.
help.s3 = 3. Train your creatures and pay their wages on time.
help.s4 = 4. Fend off the hero waves. They adapt to your army.
help.s5 = 5. Place the attack flag near the gate and attack!
help.font = Font: DINOBYTE by mby (CC BY 4.0)
help.start = Click to start
# ---- end screen
end.victory = VICTORY!
end.defeat = DEFEAT
end.victory_sub = The Hero Gate has fallen.
end.defeat_sub = Your Soul Core has shattered.
end.stats = Time {0} Waves {1} Army {2}
end.new = New Game (N)
# ---- info panel
info.level = {0} (level {1})
info.hp = HP {0}/{1}
info.guard = Gate Warden
info.intruder = Intruder
info.needs = Energy {0}% Hunger {1}%
info.mood = Mood: {0}
mood.happy = content
mood.grumpy = grumpy
mood.angry = angry
info.wage = Wage: {0} gold
info.carries = Carries {0} gold
tile.rock = Rock
tile.indestructible = indestructible
tile.earth = Earth
tile.gold = Gold Vein
tile.gold_amount = {0} gold
tile.floor = Floor
owner.player = claimed
owner.hero = hero territory
owner.none = neutral
tile.core = Soul Core
tile.portal = Portal
portal.claimed = claimed
portal.neutral = neutral: imps can claim it
tile.gate = Hero Gate
farm.food = {0} mushrooms
lair.taken = Bed taken
lair.free = Bed free
tile.marked = marked for digging
# ---- language selection
langsel.title = Language
langsel.hint = Click a language. You can change it later in the settings.