{
    /*********
    ** Generic translations
    *********/
    // language info
    "generic.list-separator": ", ", // text between listed values (like ", " in "A, B, C")
    "generic.line-wrap-on": "", // characters after which we can line-wrap text if needed, even if there's no space

    // date names
    "generic.now": "now",
    "generic.tomorrow": "tomorrow",
    "generic.yesterday": "yesterday",

    // generic values
    "generic.unknown": "unknown",

    // generic field values
    "generic.percent": "{{percent}}%",
    "generic.percent-chance-of": "{{percent}}% chance of {{label}}",
    "generic.percent-ratio": "{{percent}}% ({{value}} of {{max}})",
    "generic.ratio": "{{value}} of {{max}}",
    "generic.range": "{{min}} to {{max}}",
    "generic.yes": "yes",
    "generic.no": "no",
    "generic.seconds": "{{count}} seconds",
    "generic.minutes": "{{count}} minutes",
    "generic.hours": "{{count}} hours",
    "generic.days": "{{count}} days",
    "generic.in-x-days": "in {{count}} days",
    "generic.x-days-ago": "{{count}} days ago",
    "generic.price": "{{price}}g",
    "generic.price-for-quality": "{{price}}g ({{quality}})",
    "generic.price-for-stack": "{{price}}g for stack of {{count}}",
    "generic.show-x-results": "show {{count}} results",

    // types
    "type.building": "Building",
    "type.bush": "Bush",
    "type.fruit-tree": "Fruit tree",
    "type.monster": "Monster",
    "type.player": "Player",
    "type.tree": "Tree",
    "type.villager": "Villager",
    "type.other": "Other", // default type

    // item qualities
    "quality.normal": "normal",
    "quality.silver": "silver",
    "quality.gold": "gold",
    "quality.iridium": "iridium",

    // item names shown in recipes
    "item.wild-seeds": "Wild Seeds (Any)",

    // NPC friendship
    "friendship-status.friendly": "Friendly",
    "friendship-status.dating": "Dating",
    "friendship-status.engaged": "Engaged",
    "friendship-status.married": "Married",
    "friendship-status.divorced": "Divorced",
    "friendship-status.kicked-out": "Kicked out",

    // custom content (shows which mod added an item, NPC, etc)
    "added-by-mod": "Added by mod",
    "added-by-mod.summary": "{{modName}}",

    // internal ID
    "internal-id": "Internal ID",


    /*********
    ** Data translations
    *********/
    // Community Center bundle areas
    "bundle-area.pantry": "Pantry",
    "bundle-area.crafts-room": "Crafts Room",
    "bundle-area.fish-tank": "Fish Tank",
    "bundle-area.boiler-room": "Boiler Room",
    "bundle-area.vault": "Vault",
    "bundle-area.bulletin-board": "Bulletin Board",
    "bundle-area.abandoned-joja-mart": "Abandoned Joja Mart",

    // shop names
    "shop.adventure-guild": "Adventure Guild",
    "shop.clint": "Clint",
    "shop.marnie": "Marnie",
    "shop.pierre": "Pierre",
    "shop.robin": "Robin",
    "shop.volcano": "volcano shop",
    "shop.willy": "Willy",

    // recipe types
    "recipe-type.cooking": "Cooking",
    "recipe-type.crafting": "Crafting",
    "recipe-type.tailoring": "Tailoring",

    // NPC descriptions
    "data.npc.pet.description": "Your loyal pet.",
    "data.npc.horse.description": "Your loyal steed.",
    "data.npc.junimo.description": "A forest spirit from the spirit world. Very little is known about them.",
    "data.npc.trash-bear.description": "A friendly spirit who cleans up trash.",

    // item types
    "data.type.container": "Container",

    // override item text
    "data.item.egg-incubator.description": "Hatches eggs into baby chickens and ducks.",
    "data.item.barrel.name": "Barrel",
    "data.item.barrel.description": "Break apart to obtain sundry goods.",
    "data.item.box.name": "Box",
    "data.item.box.description": "Break apart to obtain sundry goods.",

    // location names
    "location.beach.east-pier": "{{locationName}} (eastern pier)",
    "location.bugLand": "Mutant Bug Lair",
    "location.desert.topPond": "{{locationName}} (north pond)",
    "location.farmCave": "Farm Cave",
    "location.farmHouse": "Farmhouse",
    "location.forest.island-tip": "{{locationName}} (river near south tip of large island)",
    "location.forest.lake": "{{locationName}} (pond)",
    "location.forest.river": "{{locationName}} (river)",
    "location.HarveyRoom": "Harvey's Room",
    "location.LeoTreeHouse": "Treehouse",
    "location.SandyHouse": "Oasis",
    "location.SebastianRoom": "Sebastian's Room",
    "location.submarine": "Night Market Submarine",
    "location.town.northmost-bridge": "{{locationName}} (northmost bridge)",
    "location.undergroundMine": "Mines",
    "location.undergroundMine.level": "Mine Level {{level}}",
    "location.witchSwamp": "Witch's Swamp",

    "location.caldera": "Ginger Island Caldera",
    "location.islandEast": "Ginger Island East",
    "location.islandNorth": "Ginger Island North",
    "location.islandSouth": "Ginger Island South",
    "location.islandSouthEast": "Ginger Island Southeast",
    "location.islandSouthEastCave": "Ginger Island Southeast Cave",
    "location.islandWest": "Ginger Island West",
    "location.islandWest.freshwater": "Ginger Island West (pond)",
    "location.islandWest.ocean": "Ginger Island West (ocean)",

    "location.fish-area": "{{locationName}} ({{areaName}})",
    "location.unknown-fish-area": "{{locationName}} (fishing area {{id}})",


    /*********
    ** Conditions & context tags
    *********/
    "conditions-summary": "[conditions: {{conditions}}]", // wraps 'game state query' conditions that often can't be translated. For example: "[conditions: ITEM_ID Input (O)128]".

    "condition-or-context-tag.negate": "not {{value}}",

    "condition.day-of-month": "on specific days ({{days}})",
    "condition.day-of-month.even": "even days",
    "condition.day-of-month.odd": "odd days",

    "condition.item-type.input": "input item",
    "condition.item-type.target": "target item",

    "condition.raw-context-tag": "context tag \"{{tag}}\"",
    "condition.raw-condition": "query \"{{tag}}\"",

    "condition.item-context-tag": "{{item}} has context tag {{tags}}",
    "condition.item-context-tags": "{{item}} has context tags {{tags}}",
    "condition.item-context-tag.value": "'{{tag}}'", // the format of each context tag in the list (each context tag isn't translated)

    "condition.item-edibility.edible": "{{item}} is edible",
    "condition.item-edibility.min": "{{item}} has edibility of {{min}} or more",
    "condition.item-edibility.range": "{{item}} has edibility of {{min}} to {{max}}",

    "context-tag.bone": "any bone",
    "context-tag.egg": "any egg",
    "context-tag.large-egg": "any large egg",
    "context-tag.preserved-item": "preserved {{name}}",


    /*********
    ** Animal lookups
    *********/
    // labels
    "animal.love": "Love",
    "animal.happiness": "Happiness",
    "animal.mood": "Mood today",
    "animal.complaints": "Complaints",
    "animal.produce-ready": "Produce ready",
    "animal.growth": "Growth",
    "animal.sells-for": "Sells for",

    // values
    "animal.complaints.hungry": "wasn't fed yesterday",
    "animal.complaints.left-out": "was left outside last night",
    "animal.complaints.new-home": "moved into new home",
    "animal.complaints.no-heater": "no heater in winter",
    "animal.complaints.not-petted": "hasn't been petted today",
    "animal.complaints.wild-animal-attack": "attacked by wild animals during the night",


    /*********
    ** Building > generic lookups
    *********/
    // labels
    "building.animals": "Animals",
    "building.construction": "Construction",
    "building.construction-costs": "Construction costs",
    "building.feed-trough": "Feed trough",
    "building.horse": "Horse",
    "building.horse-location": "Horse location",
    "building.owner": "Owner",
    "building.slimes": "Slimes",
    "building.stored-hay": "Stored hay",
    "building.upgrades": "Upgrades",
    "building.water-trough": "Water trough",

    // values
    "building.animals.summary": "{{count}} of max {{max}} animals",
    "building.construction.summary": "ready on {{date}}",
    "building.feed-trough.automated": "automated",
    "building.feed-trough.summary": "{{filled}} of {{max}} feed slots filled",
    "building.horse-location.summary": "{{location}} ({{x}}, {{y}})",
    "building.junimo-harvesting-enabled": "Harvesting enabled",
    "building.owner.none": "no owner",
    "building.output-processing": "Output processing",
    "building.output-ready": "Output ready",
    "building.slimes.summary": "{{count}} of max {{max}} slimes",
    "building.stored-hay.summary": "{{hayCount}} of {{maxHayInLocation}} hay in this location (max capacity in this building: {{maxHayInBuilding}})",
    "building.upgrades.barn.0": "up to 4 animals, add cows",
    "building.upgrades.barn.1": "up to 8 animals, add pregnancy and goats",
    "building.upgrades.barn.2": "up to 12 animals, add autofeed, pigs, and sheep",
    "building.upgrades.cabin.0": "initial cabin",
    "building.upgrades.cabin.1": "add kitchen, enable marriage",
    "building.upgrades.cabin.2": "enable children",
    "building.upgrades.coop.0": "up to 4 animals; add chickens",
    "building.upgrades.coop.1": "up to 8 animals; add incubator, dinosaurs, and ducks",
    "building.upgrades.coop.2": "up to 12 animals; add autofeed and rabbits",
    "building.water-trough.summary": "{{filled}} of {{max}} water troughs filled",


    /*********
    ** Building > fish pond lookups
    *********/
    // labels
    "building.fish-pond.population": "Population",
    "building.fish-pond.drops": "Drops",
    "building.fish-pond.quests": "Quests",

    // values
    "building.fish-pond.population.empty": "Add a fish to start this pond",
    "building.fish-pond.population.next-spawn": "New fish spawns {{relativeDate}}",
    "building.fish-pond.drops.preface": "{{chance}}% chance each day of producing the first matched item:",
    "building.fish-pond.drops.min-fish": "With {{count}} fish:",
    "building.fish-pond.quests.done": "{{count}} fish",
    "building.fish-pond.quests.incomplete-one": "{{count}} fish: will need {{itemName}}",
    "building.fish-pond.quests.incomplete-random": "{{count}} fish: will need one of {{itemList}}",
    "building.fish-pond.quests.available": "available {{relativeDate}}",


    /*********
    ** Bush lookups
    *********/
    // labels
    "bush.name.berry": "Berry Bush",
    "bush.name.plain": "Plain Bush",
    "bush.name.tea": "Tea Bush",
    "bush.description.berry": "A bush that grows salmonberries and blackberries.",
    "bush.description.plain": "A plain bush that doesn't grow anything.",
    "bush.description.Tea": "A bush that grows tea leaves.",
    "bush.date-planted": "Date planted",
    "bush.growth": "Growth",
    "bush.next-harvest": "Next harvest",

    // values
    "bush.growth.summary": "mature on {{date}}",
    "bush.schedule.berry": "20% chance of salmonberries in spring 15-18 and blackberries in fall 8-11.",
    "bush.schedule.tea": "Grows tea leaves from the 22nd of each season (except winter if not in the greenhouse).",


    /*********
    ** Fruit tree lookups
    *********/
    // labels
    "fruit-tree.complaints": "Complaints",
    "fruit-tree.name": "{{fruitName}} Tree",
    "fruit-tree.growth": "Growth",
    "fruit-tree.next-fruit": "Next fruit",
    "fruit-tree.season": "Season",
    "fruit-tree.quality": "Quality",

    // values
    "fruit-tree.complaints.adjacent-objects": "can't grow because there are adjacent objects",
    "fruit-tree.growth.summary": "mature on {{date}}",
    "fruit-tree.next-fruit.max-fruit": "won't grow any more fruit until you harvest those it has",
    "fruit-tree.next-fruit.out-of-season": "out of season",
    "fruit-tree.next-fruit.struck-by-lightning": "struck by lightning! Will recover in {{count}} days.",
    "fruit-tree.next-fruit.too-young": "too young to bear fruit",
    "fruit-tree.quality.now": "{{quality}} now",
    "fruit-tree.quality.on-date": "{{quality}} on {{date}}",
    "fruit-tree.quality.on-date-next-year": "{{quality}} on {{date}} next year",
    "fruit-tree.season.summary": "{{season}} (or anytime in greenhouse)",


    /*********
    ** Crop lookups
    *********/
    // labels
    "crop.summary": "Crop",
    "crop.harvest": "Harvest",
    "crop.fertilized": "Fertilized",
    "crop.watered": "Watered",

    // values
    "crop.summary.dead": "This crop is dead.",
    "crop.summary.drops-X": "drops {{count}}",
    "crop.summary.drops-X-to-Y": "drops {{min}} to {{max}} ({{percent}}% chance of extra crops)",
    "crop.summary.harvest-once": "harvest after {{daysToFirstHarvest}} days",
    "crop.summary.harvest-multi": "harvest after {{daysToFirstHarvest}} days, then every {{daysToNextHarvests}} days",
    "crop.summary.farming-xp": "gives +{{amount}} farming XP per harvest",
    "crop.summary.foraging-xp": "gives +{{amount}} foraging XP per harvest",
    "crop.summary.seasons": "grows in {{seasons}}",
    "crop.summary.sells-for": "sells for {{price}}",
    "crop.harvest.too-late": "too late in the season for the next harvest (would be on {{date}})",


    /*********
    ** Item > generic lookups
    *********/
    // labels
    "item.contents": "Contents",
    "item.loves-this": "Loves this",
    "item.likes-this": "Likes this",
    "item.neutral-about-this": "Neutral about this",
    "item.dislikes-this": "Dislikes this",
    "item.hates-this": "Hates this",
    "item.needed-for": "Needed for",
    "item.flavor": "Flavor", // links to the flavor item (e.g. 'Blueberry' for Blueberry Wine)
    "item.number-owned": "Owned",
    "item.number-cooked": "Cooked",
    "item.number-crafted": "Crafted",
    "item.recipes": "Recipes",
    "item.see-also": "See also",
    "item.sells-for": "Sells for",
    "item.sells-to": "Sells to",
    "item.can-be-dyed": "Can be dyed",
    "item.produces-dye": "Produces dye",

    // values
    "item.contents.placed": "{{name}} placed",
    "item.contents.ready": "{{name}} ready",
    "item.contents.partial": "{{name}} in {{time}}",
    "item.undiscovered-gift-taste": "{{count}} unrevealed villagers",
    "item.undiscovered-gift-taste-appended": ", and {{count}} unrevealed villagers",
    "item.needed-for.community-center": "community center ({{bundles}})",
    "item.needed-for.full-shipment": "full shipment achievement (ship one)",
    "item.needed-for.monoculture": "monoculture achievement (ship {{count}} more)",
    "item.needed-for.polyculture": "polyculture achievement (ship {{count}} more)",
    "item.needed-for.full-collection": "full collection achievement (donate one to museum)",
    "item.needed-for.gourmet-chef": "gourmet chef achievement (cook {{recipes}})",
    "item.needed-for.craft-master": "craft master achievement (make {{recipes}})",
    "item.needed-for.quests": "current quests ({{quests}})",
    "item.unknown-recipes": "{{count}} unknown recipes",
    "item.sells-to.shipping-box": "shipping box",
    "item.recipes-for-ingredient.entry": "{{name}} (needs {{count}})",
    "item.recipes-for-machine.multiple-items": "{{name}} x{{count}}",
    "item.recipes-for-machine.same-as-input": "[same as input]", // e.g. crystalarium produces same item that was put in
    "item.recipes-for-machine.too-complex": "Some machine rules are too dynamic to display.",
    "item.number-owned.summary": "you own {{count}} of these",
    "item.number-owned-flavored.summary": "you own {{count}} ({{name}}) or {{baseCount}} ({{baseName}}) of these", // e.g. "you own 5 (Sturgeon Roe) or 20 (Roe) of these"
    "item.number-crafted.summary": "you made {{count}} of these",
    "item.internal-id.summary": "{{itemId}} (globally unique 'qualified ID': {{qualifiedItemId}})",


    /*********
    ** Item > cask lookups
    *********/
    // labels
    "item.cask-contents": "Contents",
    "item.cask-schedule": "Aging",

    // values
    "item.cask-schedule.now": "{{quality}} ready now",
    "item.cask-schedule.now-partial": "{{quality}} now (use pickaxe to stop aging)",
    "item.cask-schedule.tomorrow": "{{quality}} tomorrow",
    "item.cask-schedule.in-x-days": "{{quality}} in {{count}} days ({{date}})",


    /*********
    ** Item > crab pot lookups
    *********/
    // labels
    "item.crabpot-bait": "Bait",
    "item.crabpot-bait-needed": "Needs bait!",
    "item.crabpot-bait-not-needed": "Not needed due to Luremaster profession.",


    /*********
    ** Item > fence lookups
    *********/
    // labels
    "item.fence-health": "Health",

    // values
    "item.fence-health.gold-clock": "no decay with Gold Clock",
    "item.fence-health.summary": "{{percent}}% (roughly {{count}} days left)",


    /*********
    ** Item > fish lookups
    *********/
    // labels
    "item.fish-pond-drops": "Fish pond drops",
    "item.fish-spawn-rules": "Spawn rules",

    // values
    "item.fish-spawn-rules.min-fishing-level": "min fishing level: {{level}}",
    "item.fish-spawn-rules.not-caught-yet": "not caught yet (can only be caught once)",
    "item.fish-spawn-rules.extended-family-quest-active": "\"Extended Family\" quest active",
    "item.fish-spawn-rules.locations": "locations: {{locations}}",
    "item.fish-spawn-rules.locations-by-season.label": "locations:",
    "item.fish-spawn-rules.locations-by-season.season-locations": "{{season}}: {{locations}}",
    "item.fish-spawn-rules.season-any": "any season",
    "item.fish-spawn-rules.season-list": "seasons: {{seasons}}",
    "item.fish-spawn-rules.time": "time of day: {{times}}",
    "item.fish-spawn-rules.weather-sunny": "weather: sunny",
    "item.fish-spawn-rules.weather-rainy": "weather: raining",
    "item.uncaught-fish": "{{count}} uncaught fish",


    /*********
    ** Item > melee weapon lookups
    *********/
    // labels
    "item.melee-weapon.accuracy": "Accuracy",
    "item.melee-weapon.critical-chance": "Critical chance",
    "item.melee-weapon.critical-damage": "Critical damage",
    "item.melee-weapon.damage": "Damage",
    "item.melee-weapon.defense": "Defense",
    "item.melee-weapon.knockback": "Knockback",
    "item.melee-weapon.reach": "Reach",
    "item.melee-weapon.speed": "Attack speed",

    // values
    "item.melee-weapon.critical-damage.label": "{{multiplier}} times normal damage (before player bonuses)",
    "item.melee-weapon.defense.label": "{{amount}} while equipped",
    "item.melee-weapon.knockback.label": "{{amount}} ({{multiplier}} times normal distance)",
    "item.melee-weapon.reach.label": "{{amount}} pixels",
    "item.melee-weapon.speed.shown-vs-actual": "shown: {{shownSpeed}}{{lineBreak}}actual: {{actualSpeed}}",
    "item.melee-weapon.speed.summary": "{{speed}} ({{milliseconds}} milliseconds per swing frame, before player speed bonuses)",


    /*********
    ** Item > movie lookups
    *********/
    // labels
    "item.movie-snack-preference": "Preference",
    "item.movie-ticket.movie-this-week": "Movie this week",
    "item.movie-ticket.loves-movie": "Loves movie",
    "item.movie-ticket.likes-movie": "Likes movie",
    "item.movie-ticket.dislikes-movie": "Dislikes movie",
    "item.movie-ticket.rejects-movie": "Won't watch movie",

    // values
    "item.movie-snack-preference.love": "{{name}} loves this",
    "item.movie-snack-preference.like": "{{name}} likes this",
    "item.movie-snack-preference.dislike": "{{name}} dislikes this",
    "item.movie-ticket.movie-this-week.none": "No movie this week",


    /*********
    ** Item > music block lookups
    *********/
    // labels
    "item.music-block.pitch": "Pitch",
    "item.music-block.drum-type": "Drum type",


    /*********
    ** Monster lookups
    *********/
    // labels
    "monster.invincible": "Invincible",
    "monster.health": "Health",
    "monster.drops": "Drops",
    "monster.experience": "XP",
    "monster.defense": "Defense",
    "monster.attack": "Attack",
    "monster.adventure-guild": "Adventure Guild",

    // values
    "monster.drops.nothing": "nothing",
    "monster.adventure-guild.eradication-goal": "eradication goal: {{name}} (killed {{count}} of {{requiredCount}})",


    /*********
    ** NPC > generic lookups
    *********/
    // labels
    "npc.birthday": "Birthday",
    "npc.can-romance": "Can romance",
    "npc.friendship": "Friendship",
    "npc.talked-today": "Talked today",
    "npc.gifted-today": "Gifted today",
    "npc.gifted-this-week": "Gifted this week",
    "npc.kissed-today": "Kissed today",
    "npc.hugged-today": "Hugged today",
    "npc.loves-gifts": "Loves gifts",
    "npc.likes-gifts": "Likes gifts",
    "npc.neutral-gifts": "Neutral gifts",
    "npc.dislikes-gifts": "Dislikes gifts",
    "npc.hates-gifts": "Hates gifts",
    "npc.schedule": "Today's schedule",

    // values
    "npc.can-romance.married": "You're married! <", // < turns into a heart
    "npc.can-romance.housemate": "You're housemates!",
    "npc.friendship.not-met": "You haven't met them yet.",
    "npc.friendship.need-bouquet": "need bouquet for next",
    "npc.friendship.need-points": "next in {{count}} pts",
    "npc.undiscovered-gift-taste": "{{count}} unrevealed items",
    "npc.unowned-gift-taste": "{{count}} unowned items",
    "npc.schedule.current-position": "Currently at {{locationName}} ({{x}}, {{y}}).",
    "npc.schedule.no-entries": "No schedule loaded.",
    "npc.schedule.not-following-schedule": "Currently not following a schedule. This usually means the NPC is doing special behaviors (e.g. at the movie theater).",
    "npc.schedule.entry": "{{time}}: walk to {{locationName}} ({{x}}, {{y}}).",
    "npc.schedule.farmhand.unknown-position": "Currently in an unknown location on the host.",
    "npc.schedule.farmhand.unknown-schedule": "In multiplayer, NPCs are managed by the host so their schedule isn't available.",


    /*********
    ** NPC > child lookups
    *********/
    // labels
    "npc.child.age": "Age",

    // values
    "npc.child.age.description-partial": "{{label}} ({{count}} days to {{nextLabel}})",
    "npc.child.age.description-grown": "{{label}}",
    "npc.child.age.newborn": "newborn",
    "npc.child.age.baby": "baby",
    "npc.child.age.crawler": "crawler",
    "npc.child.age.toddler": "toddler",


    /*********
    ** Pet lookups
    *********/
    // labels
    "pet.love": "Love",
    "pet.petted-today": "Petted today",
    "pet.last-petted": "Last petted",
    "pet.water-bowl": "Water bowl",

    // values
    "pet.last-petted.yes": "yes (+12 love)",
    "pet.last-petted.days-ago": "{{days}} days ago",
    "pet.last-petted.never": "never",
    "pet.water-bowl.empty": "empty",
    "pet.water-bowl.filled": "filled (+6 love)",


    /*********
    ** Player lookups
    *********/
    // labels
    "player.farm-name": "Farm name",
    "player.farm-map": "Farm map",
    "player.favorite-thing": "Favorite thing",
    "player.gender": "Gender",
    "player.housemate": "Housemate",
    "player.spouse": "Spouse",
    "player.watched-movie-this-week": "Watched movie this week",
    "player.combat-skill": "Combat",
    "player.farming-skill": "Farming",
    "player.fishing-skill": "Fishing",
    "player.foraging-skill": "Foraging",
    "player.mining-skill": "Mining",
    "player.luck": "Luck",
    "player.save-format": "Save format",

    // values
    "player.farm-map.custom": "Custom",
    "player.gender.male": "male",
    "player.gender.female": "female",
    "player.luck.summary": "{{percent}}% to many random checks",
    "player.skill.progress": "level {{level}} ({{expNeeded}} XP to next)",
    "player.skill.progress-last": "level {{level}}",


    /*********
    ** Puzzles
    *********/
    // labels
    "puzzle.solution": "Solution",

    // values
    "puzzle.solution.solved": "Puzzle solved!",
    "puzzle.solution.hidden": "Puzzle solutions are hidden per your settings.",


    /*********
    ** Puzzles > Fern Islands crystal cave
    *********/
    // labels
    "puzzle.island-crystal-cave.title": "Crystal Cave Puzzle",
    "puzzle.island-crystal-cave.crystal-id": "Crystal ID",

    // values
    "puzzle.island-crystal-cave.solution.not-activated": "Activate the statue to start the puzzle.",
    "puzzle.island-crystal-cave.solution.waiting": "Waiting for game to generate sequence...",
    "puzzle.island-crystal-cave.solution.activated": "Repeat the pattern of activated crystals:",


    /*********
    ** Puzzles > Fern Islands mermaid puzzle
    *********/
    // labels
    "puzzle.island-mermaid.title": "Island Mermaid Puzzle",
    "puzzle.island-mermaid.solution.intro": "Use flute blocks to play the Night Market mermaid song. Pitch values (you can lookup a flute block to see its pitch):",


    /*********
    ** Puzzles > Fern Islands shrine puzzle
    *********/
    // labels
    "puzzle.island-shrine.title": "Island Shrine Puzzle",

    // values
    "puzzle.island-shrine.solution": "For each pedestal, place the item dropped by gem birds in the corresponding island location when it rains. The items are randomized for each save.",
    "puzzle.island-shrine.solution.east": "East: {{item}}",
    "puzzle.island-shrine.solution.north": "North: {{item}}",
    "puzzle.island-shrine.solution.south": "South: {{item}}",
    "puzzle.island-shrine.solution.west": "West: {{item}}",


    /*********
    ** Tile lookups
    *********/
    // Note for translators:
    // The translations in this section are a bit more technical. Quick summary:
    //
    //  - A 'map' sets the layout and appearance for an in-game location (like the farmhouse).
    //  - Each map is divided into a grid of 64x64 pixel 'tiles'. A map can have multiple 'layers' of tiles (e.g. 'Back', 'Front', 'Buildings', etc).
    //  - Each tile's visual appearance is set by assigning it a 'tile index', which is its position in a larger texture called a 'tilesheet'.
    //  - Each tile can be assigned 'properties'. These are metadata which tell the game about the tile (like "Type: Dirt" or "Action: OpenShop HatMouse").
    //  - There are two property types: 'tile property' (set for a specific tile position) and 'index property' (set for all tiles which use that tile index).

    // labels
    "tile.title": "Map tile ({{x}}, {{y}})",
    "tile.description": "A tile position on the map. This is displayed because you enabled tile lookups in the configuration.",
    "tile.game-location": "Location",
    "tile.map-name": "Map name",
    "tile.map-properties": "Map properties",
    "tile.layer-tile": "{{layer}} tile",
    "tile.layer-tile-none": "Tile",

    // values
    "tile.map-properties.value": "{{name}}: {{value}}",
    "tile.layer-tile.appearance": "index {{index}} from tilesheet '{{tilesheetId}}' (path: '{{tilesheetPath}}')",
    "tile.layer-tile.blend-mode": "blend mode: {{value}}",
    "tile.layer-tile.index-property": "index property: {{name}}: {{value}}",
    "tile.layer-tile.tile-property": "tile property: {{name}}: {{value}}",
    "tile.layer-tile.none-here": "no tile here",


    /*********
    ** Trash Bear or Gourmand lookups
    *********/
    // labels
    "trash-bear-or-gourmand.item-wanted": "Item wanted",
    "trash-bear-or-gourmand.quest-progress": "Quest progress",


    /*********
    ** Wild tree lookups
    *********/
    // labels
    "tree.stage": "Growth stage",
    "tree.next-growth": "Next growth",
    "tree.seed": "Seed",
    "tree.is-fertilized": "Is fertilized",

    // values
    "tree.name.big-mushroom": "Big Mushroom",
    "tree.name.mahogany": "Mahogany Tree",
    "tree.name.maple": "Maple Tree",
    "tree.name.oak": "Oak Tree",
    "tree.name.palm": "Palm Tree",
    "tree.name.pine": "Pine Tree",
    "tree.name.mossy": "Mossy Tree",
    "tree.name.mystic": "Mystic Tree",
    "tree.name.unknown": "Unknown Tree",
    "tree.stage.done": "Fully grown",
    "tree.stage.partial": "{{stageName}} ({{step}} of {{max}})",
    "tree.next-growth.winter": "can't grow in winter outside greenhouse unless fertilized",
    "tree.next-growth.adjacent-trees": "can't grow because other trees are too close",
    "tree.next-growth.chance": "{{chance}}% chance to grow into {{stage}} tomorrow",
    "tree.seed.not-ready": "Not ready",
    "tree.seed.probability-daily": "{{chance}}% chance of {{itemName}} each day.",
    "tree.seed.probability-on-chop": "{{chance}}% chance of dropping {{itemName}} when chopped down.",

    // growth stages
    "tree.stages.seed": "seed",
    "tree.stages.sprout": "sprout",
    "tree.stages.sapling": "sapling",
    "tree.stages.bush": "bush",
    "tree.stages.smallTree": "small tree",
    "tree.stages.tree": "tree",


    /*********
    ** Generic Mod Config Menu UI
    *********/
    // main options
    "config.title.main-options": "Main options",
    "config.force-full-screen.name": "Force full screen",
    "config.force-full-screen.desc": "Whether the menu should always be full-screen, instead of centered in the window. This is mainly useful when viewing data mining fields.",

    // progression mode
    "config.title.progression": "Progression mode",

    "config.progression.show-uncaught-fish-spawn-rules.name": "Show uncaught fish spawn rules", // TODO
    "config.progression.show-uncaught-fish-spawn-rules.desc": "Whether to show spawn conditions for fish you haven't caught yet.", // TODO

    "config.progression.show-unknown-gift-tastes.name": "Show unknown gift tastes",
    "config.progression.show-unknown-gift-tastes.desc": "Whether to show gift tastes you haven't learned about in-game yet (e.g. from dialogue text or experimenting).",

    "config.progression.show-unknown-recipes.name": "Show unknown recipes",
    "config.progression.show-unknown-recipes.desc": "Whether to show recipes you haven't learned in-game yet.",

    "config.progression.show-puzzle-solutions.name": "Show puzzle solutions",
    "config.progression.show-puzzle-solutions.desc": "Whether to show puzzle solutions.",

    // gift tastes
    "config.title.gift-tastes": "Gift tastes",
    "config.show-gift-tastes.loved.name": "Show loved gifts",
    "config.show-gift-tastes.loved.desc": "Whether to show loved gifts in NPC and item lookups.",
    "config.show-gift-tastes.liked.name": "Show liked gifts",
    "config.show-gift-tastes.liked.desc": "Whether to show liked gifts in NPC and item lookups.",
    "config.show-gift-tastes.neutral.name": "Show neutral gifts",
    "config.show-gift-tastes.neutral.desc": "Whether to show neutral gifts in NPC and item lookups.",
    "config.show-gift-tastes.disliked.name": "Show disliked gifts",
    "config.show-gift-tastes.disliked.desc": "Whether to show disliked gifts in NPC and item lookups.",
    "config.show-gift-tastes.hated.name": "Show hated gifts",
    "config.show-gift-tastes.hated.desc": "Whether to show hated gifts in NPC and item lookups.",

    "config.show-unowned-gifts.name": "Show unowned gifts",
    "config.show-unowned-gifts.desc": "Whether to show gift tastes for items that the player doesn't own somewhere in the world.",

    "config.highlight-unrevealed-gift-tastes.name": "Highlight unrevealed gifts",
    "config.highlight-unrevealed-gift-tastes.desc": "Whether to highlight item gift tastes which haven't been revealed in the NPC profile. When enabled, unrevealed gift tastes will be bold.",

    // collapse fields
    "config.title.collapse-fields": "Collapse large fields",

    "config.collapse-fields.enabled.name": "Enabled",
    "config.collapse-fields.enabled.desc": "Whether to collapse large fields, so the lookup menu will replace the list with a clickable 'show X values' link to expand it.",

    "config.collapse-fields.building-recipes.name": "Building lookup: recipes",
    "config.collapse-fields.item-recipes.name": "Item lookup: recipes",
    "config.collapse-fields.npc-gift-tastes.name": "NPC lookup: gift tastes",
    "config.collapse-fields.any.desc": "If the field contains this many values, the lookup menu will replace the list with a clickable 'show X values' link to expand it.",

    // advanced options
    "config.title.advanced-options": "Advanced options",
    "config.tile-lookups.name": "Tile lookups",
    "config.tile-lookups.desc": "Whether to include map tiles as lookup targets.",
    "config.data-mining-fields.name": "Show data mining fields",
    "config.data-mining-fields.desc": "Whether to show raw data useful for data miners (as separate fields at the bottom of lookup results). This is an advanced feature not intended for most players.",
    "config.show-invalid-recipes.name": "Show invalid recipes",
    "config.show-invalid-recipes.desc": "Whether to show recipes which require or produce broken items.",
    "config.target-redirection.name": "Target redirection",
    "config.target-redirection.desc": "In some cases the game spawns a temporary entity to represent another one. For example, Abigail in the mines is actually a temporary NPC with the name 'AbigailMine', so looking her up there won't show Abigail's real info. With this option enabled, Lookup Anything will look up the original Abigail instead.",
    "config.scroll-amount.name": "Scroll amount",
    "config.scroll-amount.desc": "The number of pixels to shift content on each up/down scroll.",

    // controls section
    "config.title.controls": "Controls",
    "config.hide-on-key-up.name": "Hide on key up",
    "config.hide-on-key-up.desc": "Whether to hide the lookup UI when you release the lookup key.",
    "config.toggle-lookup.name": "Toggle lookup",
    "config.toggle-lookup.desc": "The keys which toggle the lookup UI for something under the cursor.",
    "config.toggle-search.name": "Toggle search",
    "config.toggle-search.desc": "The keys which toggle the search UI.",
    "config.scroll-up.name": "Scroll up",
    "config.scroll-up.desc": "The keys which scroll up long content by a few lines.",
    "config.scroll-down.name": "Scroll down",
    "config.scroll-down.desc": "The keys which scroll down long content by a few lines.",
    "config.page-up.name": "Page up",
    "config.page-up.desc": "The keys which scroll up long content by a full page.",
    "config.page-down.name": "Page down",
    "config.page-down.desc": "The keys which scroll down long content by a full page.",
    "config.toggle-debug.name": "Toggle debug",
    "config.toggle-debug.desc": "The keys which toggle the display of debug information.",


    /*********
    ** Iconic Framework icon
    *********/
    "icon.toggle-search.name": "Lookup Anything",
    "icon.toggle-search.desc": "Toggle Lookup Anything Search"
}
