Add Minecraft and EMI translations, add copyright disclaimer, refactor contextvars

This commit is contained in:
object-Object 2023-10-07 17:27:10 -04:00
parent 9c8ecdc2a3
commit b8223714b6
19 changed files with 18388 additions and 66 deletions

View file

@ -18,5 +18,5 @@
"files.associations": {
"*.js.jinja": "javascript",
"*.css.jinja": "css",
}
},
}

View file

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2022 Emi
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View file

@ -0,0 +1,409 @@
{
"tag.item.minecraft.logs": "Logs",
"tag.item.minecraft.oak_logs": "Oak Logs",
"tag.item.minecraft.birch_logs": "Birch Logs",
"tag.item.minecraft.spruce_logs": "Spruce Logs",
"tag.item.minecraft.jungle_logs": "Jungle Logs",
"tag.item.minecraft.dark_oak_logs": "Dark Oak Logs",
"tag.item.minecraft.crimson_stems": "Crimson Stems",
"tag.item.minecraft.warped_stems": "Warped Stems",
"tag.item.minecraft.acacia_logs": "Acacia Logs",
"tag.item.minecraft.logs_that_burn": "Burnable Logs",
"tag.item.minecraft.planks": "Planks",
"tag.item.minecraft.non_flammable_wood": "Non-Flammable Wood",
"tag.item.minecraft.coal_ores": "Coal Ores",
"tag.item.minecraft.copper_ores": "Copper Ores",
"tag.item.minecraft.diamond_ores": "Diamond Ores",
"tag.item.minecraft.emerald_ores": "Emerald Ores",
"tag.item.minecraft.gold_ores": "Gold Ores",
"tag.item.minecraft.iron_ores": "Iron Ores",
"tag.item.minecraft.lapis_ores": "Lapis Lazuli Ores",
"tag.item.minecraft.redstone_ores": "Redstone Ores",
"tag.item.minecraft.anvil": "Anvils",
"tag.item.minecraft.arrows": "Arrows",
"tag.item.minecraft.axolotl_tempt_items": "Axolotl Temptables",
"tag.item.minecraft.banners": "Banners",
"tag.item.minecraft.beacon_payment_items": "Beacon Payments",
"tag.item.minecraft.beds": "Beds",
"tag.item.minecraft.boats": "Boats",
"tag.item.minecraft.buttons": "Buttons",
"tag.item.minecraft.candles": "Candles",
"tag.item.minecraft.carpets": "Carpets",
"tag.item.minecraft.coals": "Coals",
"tag.item.minecraft.creeper_drop_music_discs": "Creeper Drop Music Discs",
"tag.item.minecraft.creeper_igniters": "Creeper Igniters",
"tag.item.minecraft.dirt": "Dirt",
"tag.item.minecraft.doors": "Doors",
"tag.item.minecraft.fences": "Fences",
"tag.item.minecraft.fence_gates": "Fence Gates",
"tag.item.minecraft.fishes": "Fishes",
"tag.item.minecraft.flowers": "Flowers",
"tag.item.minecraft.fox_food": "Fox Food",
"tag.item.minecraft.freeze_immune_wearables": "Freeze Immune Equipment",
"tag.item.minecraft.ignored_by_piglin_babies": "Ignored by Piglin Babies",
"tag.item.minecraft.leaves": "Leaves",
"tag.item.minecraft.lectern_books": "Lectern Books",
"tag.item.minecraft.music_discs": "Music Discs",
"tag.item.minecraft.occludes_vibration_signals": "Occludes Vibration Signals",
"tag.item.minecraft.piglin_food": "Piglin Food",
"tag.item.minecraft.piglin_loved": "Loved by Piglins",
"tag.item.minecraft.piglin_repellents": "Piglin Repellents",
"tag.item.minecraft.rails": "Rails",
"tag.item.minecraft.sand": "Sand",
"tag.item.minecraft.saplings": "Saplings",
"tag.item.minecraft.signs": "Signs",
"tag.item.minecraft.slabs": "Slabs",
"tag.item.minecraft.small_flowers": "Small Flowers",
"tag.item.minecraft.soul_fire_base_blocks": "Soul Fire Bases",
"tag.item.minecraft.stairs": "Stairs",
"tag.item.minecraft.stone_bricks": "Stone Bricks",
"tag.item.minecraft.stone_crafting_materials": "Stone Crafting Materials",
"tag.item.minecraft.stone_tool_materials": "Stone Tool Materials",
"tag.item.minecraft.tall_flowers": "Tall Flowers",
"tag.item.minecraft.terracotta": "Terracotta",
"tag.item.minecraft.trapdoors": "Trapdoors",
"tag.item.minecraft.walls": "Walls",
"tag.item.minecraft.wooden_buttons": "Wooden Buttons",
"tag.item.minecraft.wooden_doors": "Wooden Doors",
"tag.item.minecraft.wooden_fences": "Wooden Fences",
"tag.item.minecraft.wooden_pressure_plates": "Wooden Pressure Plates",
"tag.item.minecraft.wooden_slabs": "Wooden Slabs",
"tag.item.minecraft.wooden_stairs": "Wooden Stairs",
"tag.item.minecraft.wooden_trapdoors": "Wooden Trapdoors",
"tag.item.minecraft.wool": "Wool",
"tag.item.minecraft.wart_blocks": "Wart Blocks",
"tag.item.minecraft.wool_carpets": "Wool Carpets",
"tag.item.minecraft.mangrove_logs": "Mangrove Logs",
"tag.item.minecraft.compasses": "Compasses",
"tag.item.minecraft.chest_boats": "Chest Boats",
"tag.item.minecraft.overworld_natural_logs": "Natural Overworld Logs",
"tag.item.minecraft.axes": "Axes",
"tag.item.minecraft.hoes": "Hoes",
"tag.item.minecraft.pickaxes": "Pickaxes",
"tag.item.minecraft.shovels": "Shovels",
"tag.item.minecraft.smelts_to_glass": "Smelts to Glass",
"tag.item.minecraft.swords": "Swords",
"tag.item.minecraft.tools": "Tools",
"tag.item.minecraft.bamboo_blocks": "Bamboo Blocks",
"tag.item.minecraft.bookshelf_books": "Bookshelf Books",
"tag.item.minecraft.breaks_decorated_pots": "Breaks Decorated Pots",
"tag.item.minecraft.cherry_logs": "Cherry Logs",
"tag.item.minecraft.decorated_pot_ingredients": "Decorated Pot Ingredients",
"tag.item.minecraft.decorated_pot_sherds": "Decorated Pot Sherds",
"tag.item.minecraft.hanging_signs": "Hanging Signs",
"tag.item.minecraft.noteblock_top_instruments": "Noteblock Top Instruments",
"tag.item.minecraft.sniffer_food": "Sniffer Food",
"tag.item.minecraft.stone_buttons": "Stone Buttons",
"tag.item.minecraft.trim_materials": "Trim Materials",
"tag.item.minecraft.trim_templates": "Trim Templates",
"tag.item.minecraft.trimmable_armor": "Trimmable Armor",
"tag.item.minecraft.villager_plantable_seeds": "Villager Plantable Seeds",
"tag.fluid.minecraft.water": "Water",
"tag.fluid.minecraft.lava": "Lava",
"tag.fluid.c.water": "Water",
"tag.fluid.c.lava": "Lava",
"tag.fluid.c.milk": "Milk",
"tag.item.c.stone": "Stone",
"tag.item.c.cobblestone": "Cobblestone",
"tag.item.c.cobblestone.deepslate": "Deepslate Cobblestone",
"tag.item.c.cobblestone.infested": "Infested Cobblestone",
"tag.item.c.cobblestone.mossy": "Mossy Cobblestone",
"tag.item.c.cobblestone.normal": "Cobblestone",
"tag.item.c.sandstone": "Sandstone",
"tag.item.c.glass_blocks": "Glass Blocks",
"tag.item.c.stained_glass": "Stained Glass",
"tag.item.c.stained_glass_panes": "Stained Glass Panes",
"tag.item.c.glass": "Glass",
"tag.item.c.glass.colorless": "Colorless Glass",
"tag.item.c.glass.silica": "Silica Glass",
"tag.item.c.quartz_blocks": "Quartz Blocks",
"tag.item.c.glass_panes": "Glass Panes",
"tag.item.c.glass.tinted": "Tinted Glass",
"tag.item.c.glass_panes.colorless": "Colorless Glass Panes",
"tag.item.c.raw_materials": "Raw Materials",
"tag.item.c.rods": "Rods",
"tag.item.c.ores": "Ores",
"tag.item.c.nuggets": "Nuggets",
"tag.item.c.ingots": "Ingots",
"tag.item.c.gems": "Gems",
"tag.item.c.plates": "Plates",
"tag.item.c.dusts": "Dusts",
"tag.item.c.storage_blocks": "Storage Blocks",
"tag.item.c.seeds": "Seeds",
"tag.item.c.crops": "Crops",
"tag.item.c.heads": "Heads",
"tag.item.c.dyes": "Dyes",
"tag.item.c.mushrooms": "Mushrooms",
"tag.item.c.fence_gates": "Fence Gates",
"tag.item.c.fence_gates.wooden": "Wooden Fence Gates",
"tag.item.c.chests": "Chests",
"tag.item.c.wooden_chests": "Wooden Chests",
"tag.item.c.ores_in_ground.stone": "Stone Ores",
"tag.item.c.ores_in_ground.deepslate": "Deepslate Ores",
"tag.item.c.ores_in_ground.netherrack": "Netherrack Ores",
"tag.item.c.chest": "Chests",
"tag.item.c.coal": "Coals",
"tag.item.c.sand": "Sands",
"tag.item.c.glass_pane": "Glass Panes",
"tag.item.c.beacon_payment": "Beacon Payments",
"tag.item.c.fences": "Fences",
"tag.item.c.fences.wooden": "Wooden Fences",
"tag.item.c.ores.coal": "Coal Ores",
"tag.item.c.ores.copper": "Copper Ores",
"tag.item.c.ores.iron": "Iron Ores",
"tag.item.c.ores.gold": "Gold Ores",
"tag.item.c.ores.redstone": "Redstone Ores",
"tag.item.c.ores.lapis": "Lapis Ores",
"tag.item.c.ores.emerald": "Emerald Ores",
"tag.item.c.ores.diamond": "Diamond Ores",
"tag.item.c.storage_blocks.coal": "Coal Storage Blocks",
"tag.item.c.raw_materials.copper": "Raw Copper",
"tag.item.c.copper_dusts": "Copper Dusts",
"tag.item.c.dusts.copper": "Copper Dusts",
"tag.item.c.copper_ingots": "Copper Ingots",
"tag.item.c.ingots.copper": "Copper Ingots",
"tag.item.c.copper_nuggets": "Copper Nuggets",
"tag.item.c.nuggets.copper": "Copper Nuggets",
"tag.item.c.plates.copper": "Copper Plates",
"tag.item.c.raw_copper_ores": "Raw Copper Ores",
"tag.item.c.raw_copper_blocks": "Raw Copper Blocks",
"tag.item.c.copper_blocks": "Copper Blocks",
"tag.item.c.storage_blocks.raw_copper": "Raw Copper Storage Blocks",
"tag.item.c.storage_blocks.copper": "Copper Storage Blocks",
"tag.item.c.raw_materials.iron": "Raw Iron",
"tag.item.c.iron_dusts": "Iron Dusts",
"tag.item.c.dusts.iron": "Iron Dusts",
"tag.item.c.iron_ingots": "Iron Ingots",
"tag.item.c.ingots.iron": "Iron Ingots",
"tag.item.c.iron_nuggets": "Iron Nuggets",
"tag.item.c.nuggets.iron": "Iron Nuggets",
"tag.item.c.plates.iron": "Iron Plates",
"tag.item.c.raw_iron_ores": "Raw Iron Ores",
"tag.item.c.raw_iron_blocks": "Raw Iron Blocks",
"tag.item.c.iron_blocks": "Iron Blocks",
"tag.item.c.storage_blocks.raw_iron": "Raw Iron Storage Blocks",
"tag.item.c.storage_blocks.iron": "Iron Storage Blocks",
"tag.item.c.raw_materials.gold": "Raw Gold",
"tag.item.c.gold_dusts": "Gold Dusts",
"tag.item.c.dusts.gold": "Gold Dusts",
"tag.item.c.gold_ingots": "Gold Ingots",
"tag.item.c.ingots.gold": "Gold Ingots",
"tag.item.c.gold_nuggets": "Gold Nuggets",
"tag.item.c.nuggets.gold": "Gold Nuggets",
"tag.item.c.plates.gold": "Gold Plates",
"tag.item.c.raw_gold_ores": "Raw Gold Ores",
"tag.item.c.raw_gold_blocks": "Raw Gold Blocks",
"tag.item.c.gold_blocks": "Gold Blocks",
"tag.item.c.storage_blocks.gold": "Gold Storage Blocks",
"tag.item.c.storage_blocks.raw_gold": "Raw Gold Storage Blocks",
"tag.item.c.gems.amethyst": "Amethysts",
"tag.item.c.amethyst_dusts": "Amethyst Dusts",
"tag.item.c.storage_blocks.amethyst": "Amethyst Storage Blocks",
"tag.item.c.storage_blocks.diamond": "Diamond Storage Blocks",
"tag.item.c.storage_blocks.emerald": "Emerald Storage Blocks",
"tag.item.c.storage_blocks.lapis": "Lapis Storage Blocks",
"tag.item.c.storage_blocks.netherite": "Netherite Storage Blocks",
"tag.item.c.storage_blocks.quartz": "Quartz Storage Blocks",
"tag.item.c.storage_blocks.redstone": "Redstone Storage Blocks",
"tag.item.c.redstone_dusts": "Redstone Dusts",
"tag.item.c.redstone_ores": "Redstone Ores",
"tag.item.c.quartz": "Quartz",
"tag.item.c.quartz_ores": "Quartz Ores",
"tag.item.c.diamond_dusts": "Diamond Dusts",
"tag.item.c.diamonds": "Diamonds",
"tag.item.c.dusts.glowstone": "Glowstone Dusts",
"tag.item.c.dusts.prismarine": "Prismarine Dusts",
"tag.item.c.dusts.redstone": "Redstone Dusts",
"tag.item.c.emeralds": "Emeralds",
"tag.item.c.ender_pearl_dusts": "Ender Pearl Dusts",
"tag.item.c.ender_pearls": "Ender Pearls",
"tag.item.c.gems.diamond": "Diamonds",
"tag.item.c.gems.emerald": "Emeralds",
"tag.item.c.gems.lapis": "Lapis Lazuli",
"tag.item.c.gems.prismarine": "Prismarine",
"tag.item.c.gems.quartz": "Quartz",
"tag.item.c.ingots.brick": "Bricks",
"tag.item.c.ingots.nether_brick": "Nether Bricks",
"tag.item.c.ingots.netherite": "Netherite Ingots",
"tag.item.c.lapis": "Lapis Lazuli",
"tag.item.c.nether_quartz_dusts": "Nether Quartz Dusts",
"tag.item.c.netherite_ingots": "Netherite Ingots",
"tag.item.c.netherite_scrap_dusts": "Netherite Scrap Dusts",
"tag.item.c.ores.netherite_scrap": "Netherite Scrap Ores",
"tag.item.c.ores.quartz": "Quartz Ores",
"tag.item.c.spears": "Spears",
"tag.item.c.axes": "Axes",
"tag.item.c.barrels": "Barrels",
"tag.item.c.barrels.wooden": "Wooden Barrels",
"tag.item.c.white_dyes": "White Dyes",
"tag.item.c.orange_dyes": "Orange Dyes",
"tag.item.c.magenta_dyes": "Magenta Dyes",
"tag.item.c.light_blue_dyes": "Light Blue Dyes",
"tag.item.c.yellow_dyes": "Yellow Dyes",
"tag.item.c.lime_dyes": "Lime Dyes",
"tag.item.c.pink_dyes": "Pink Dyes",
"tag.item.c.gray_dyes": "Gray Dyes",
"tag.item.c.light_gray_dyes": "Light Gray Dyes",
"tag.item.c.cyan_dyes": "Cyan Dyes",
"tag.item.c.purple_dyes": "Purple Dyes",
"tag.item.c.blue_dyes": "Blue Dyes",
"tag.item.c.brown_dye": "Brown Dyes",
"tag.item.c.brown_dyes": "Brown Dyes",
"tag.item.c.green_dyes": "Green Dyes",
"tag.item.c.red_dyes": "Red Dyes",
"tag.item.c.black_dyes": "Black Dyes",
"tag.item.c.dyes.white": "White Dyes",
"tag.item.c.dyes.orange": "Orange Dyes",
"tag.item.c.dyes.magenta": "Magenta Dyes",
"tag.item.c.dyes.light_blue": "Light Blue Dyes",
"tag.item.c.dyes.yellow": "Yellow Dyes",
"tag.item.c.dyes.lime": "Lime Dyes",
"tag.item.c.dyes.pink": "Pink Dyes",
"tag.item.c.dyes.gray": "Gray Dyes",
"tag.item.c.dyes.light_gray": "Light Gray Dyes",
"tag.item.c.dyes.cyan": "Cyan Dyes",
"tag.item.c.dyes.purple": "Purple Dyes",
"tag.item.c.dyes.blue": "Blue Dyes",
"tag.item.c.dyes.brown": "Brown Dyes",
"tag.item.c.dyes.green": "Green Dyes",
"tag.item.c.dyes.red": "Red Dyes",
"tag.item.c.dyes.black": "Black Dyes",
"tag.item.c.glass.white": "White Glass",
"tag.item.c.glass.orange": "Orange Glass",
"tag.item.c.glass.magenta": "Magenta Glass",
"tag.item.c.glass.light_blue": "Light Blue Glass",
"tag.item.c.glass.yellow": "Yellow Glass",
"tag.item.c.glass.lime": "Lime Glass",
"tag.item.c.glass.pink": "Pink Glass",
"tag.item.c.glass.gray": "Gray Glass",
"tag.item.c.glass.light_gray": "Light Gray Glass",
"tag.item.c.glass.cyan": "Cyan Glass",
"tag.item.c.glass.purple": "Purple Glass",
"tag.item.c.glass.blue": "Blue Glass",
"tag.item.c.glass.brown": "Brown Glass",
"tag.item.c.glass.green": "Green Glass",
"tag.item.c.glass.red": "Red Glass",
"tag.item.c.glass.black": "Black Glass",
"tag.item.c.glass_panes.white": "White Glass Panes",
"tag.item.c.glass_panes.orange": "Orange Glass Panes",
"tag.item.c.glass_panes.magenta": "Magenta Glass Panes",
"tag.item.c.glass_panes.light_blue": "Light Blue Glass Panes",
"tag.item.c.glass_panes.yellow": "Yellow Glass Panes",
"tag.item.c.glass_panes.lime": "Lime Glass Panes",
"tag.item.c.glass_panes.pink": "Pink Glass Panes",
"tag.item.c.glass_panes.gray": "Gray Glass Panes",
"tag.item.c.glass_panes.light_gray": "Light Gray Glass Panes",
"tag.item.c.glass_panes.cyan": "Cyan Glass Panes",
"tag.item.c.glass_panes.purple": "Purple Glass Panes",
"tag.item.c.glass_panes.blue": "Blue Glass Panes",
"tag.item.c.glass_panes.brown": "Brown Glass Panes",
"tag.item.c.glass_panes.green": "Green Glass Panes",
"tag.item.c.glass_panes.red": "Red Glass Panes",
"tag.item.c.glass_panes.black": "Black Glass Panes",
"tag.item.c.bones": "Bones",
"tag.item.c.bookshelves": "Bookshelves",
"tag.item.c.bows": "Bows",
"tag.item.c.buckets.honey": "Honey Buckets",
"tag.item.c.chests.ender": "Ender Chests",
"tag.item.c.chests.trapped": "Trapped Chests",
"tag.item.c.chests.wooden": "Wooden Chests",
"tag.item.c.circuits": "Circuits",
"tag.item.c.crops.beetroot": "Beetroots",
"tag.item.c.crops.carrot": "Carrots",
"tag.item.c.crops.nether_wart": "Nether Warts",
"tag.item.c.crops.potato": "Potatoes",
"tag.item.c.crops.wheat": "Wheat",
"tag.item.c.eggs": "Eggs",
"tag.item.c.empty_buckets": "Empty Buckets",
"tag.item.c.enchanting_fuels": "Enchanting Fuels",
"tag.item.c.end_stones": "End Stones",
"tag.item.c.feathers": "Feathers",
"tag.item.c.fences.nether_brick": "Nether Brick Fences",
"tag.item.c.foods": "Food",
"tag.item.c.gravel": "Gravel",
"tag.item.c.gunpowder": "Gunpowder",
"tag.item.c.hoes": "Hoes",
"tag.item.c.lava_buckets": "Lava Buckets",
"tag.item.c.leather": "Leather",
"tag.item.c.milk_bottles": "Milk Bottles",
"tag.item.c.milk_buckets": "Milk Buckets",
"tag.item.c.nether_stars": "Nether Stars",
"tag.item.c.netherrack": "Netherrack",
"tag.item.c.obsidian": "Obsidian",
"tag.item.c.pickaxes": "Pickaxes",
"tag.item.c.potions": "Potions",
"tag.item.c.red_sandstone": "Red Sandstone",
"tag.item.c.red_sandstone_slabs": "Red Sandstone Slabs",
"tag.item.c.red_sandstone_stairs": "Red Sandstone Stairs",
"tag.item.c.rods.blaze": "Blaze Rods",
"tag.item.c.rods.wooden": "Wooden Rods",
"tag.item.c.sand.colorless": "Colorless Sand",
"tag.item.c.sand.red": "Red Sand",
"tag.item.c.sandstone_slabs": "Sandstone Slabs",
"tag.item.c.sandstone_stairs": "Sandstone Stairs",
"tag.item.c.seeds.beetroot": "Beetroot Seeds",
"tag.item.c.seeds.melon": "Melon Seeds",
"tag.item.c.seeds.pumpkin": "Pumpkin Seeds",
"tag.item.c.seeds.wheat": "Wheat Seeds",
"tag.item.c.shears": "Shears",
"tag.item.c.shields": "Shields",
"tag.item.c.shovels": "Shovels",
"tag.item.c.shulker_boxes": "Shulker Boxes",
"tag.item.c.skulls": "Skulls",
"tag.item.c.slime_balls": "Slime Balls",
"tag.item.c.slimeballs": "Slime Balls",
"tag.item.c.stone_dusts": "Stone Dusts",
"tag.item.c.stones": "Stones",
"tag.item.c.string": "String",
"tag.item.c.strings": "String",
"tag.item.c.swords": "Swords",
"tag.item.c.water_buckets": "Water Buckets",
"tag.item.c.wrenches": "Wrenches",
"tag.item.c.budding_blocks": "Budding Blocks",
"tag.item.c.buds": "Buds",
"tag.item.c.clusters": "Clusters",
"tag.item.c.entity_water_buckets": "Entity Water Buckets",
"tag.item.c.raw_ores": "Raw Ores",
"tag.item.c.red_sandstone_blocks": "Red Sandstone Blocks",
"tag.item.c.sandstone_blocks": "Sandstone Blocks",
"tag.item.c.uncolored_sandstone_blocks": "Uncolored Sandstone Blocks",
"tag.item.c.uncolored_sandstone_slabs": "Uncolored Sandstone Slabs",
"tag.item.c.uncolored_sandstone_stairs": "Uncolored Sandstone Stairs",
"tag.item.c.villager_job_sites": "Villager Job Sites",
"tag.item.c.wooden_barrels": "Wooden Barrels",
"tag.item.c.armors": "Armor",
"tag.item.c.armors.boots": "Boots",
"tag.item.c.armors.chestplates": "Chestplates",
"tag.item.c.armors.helmets": "Helmets",
"tag.item.c.armors.leggings": "Leggings",
"tag.item.c.tools": "Tools",
"tag.item.c.tools.axes": "Axes",
"tag.item.c.tools.bows": "Bows",
"tag.item.c.tools.crossbows": "Crossbows",
"tag.item.c.tools.fishing_rods": "Fishing Rods",
"tag.item.c.tools.hoes": "Hoes",
"tag.item.c.tools.pickaxes": "Pickaxes",
"tag.item.c.tools.shields": "Shields",
"tag.item.c.tools.shovels": "Shovels",
"tag.item.c.tools.swords": "Swords",
"tag.item.c.tools.tridents": "Tridents",
"tag.item.fabric.pickaxes": "Pickaxes",
"tag.item.fabric.axes": "Axes",
"tag.item.fabric.shovels": "Shovels",
"tag.item.fabric.hoes": "Hoes",
"tag.item.fabric.swords": "Swords",
"tag.item.fabric.shears": "Shears"
}

View file

@ -0,0 +1,408 @@
{
"tag.item.minecraft.logs": "Брёвна",
"tag.item.minecraft.oak_logs": "Дубовые брёвна",
"tag.item.minecraft.birch_logs": "Берёзовые брёвна",
"tag.item.minecraft.spruce_logs": "Еловые брёвна",
"tag.item.minecraft.jungle_logs": "Тропические брёвна",
"tag.item.minecraft.dark_oak_logs": "Брёвна темного дуба",
"tag.item.minecraft.crimson_stems": "Багровые стебли",
"tag.item.minecraft.warped_stems": "Искаженные стебли",
"tag.item.minecraft.acacia_logs": "Акациевые брёвна",
"tag.item.minecraft.logs_that_burn": "Горящие брёвна",
"tag.item.minecraft.planks": "Доски",
"tag.item.minecraft.non_flammable_wood": "Негорящая древесина",
"tag.item.minecraft.coal_ores": "Угольные руды",
"tag.item.minecraft.copper_ores": "Медные руды",
"tag.item.minecraft.diamond_ores": "Алмазные руды",
"tag.item.minecraft.emerald_ores": "Изумрудные руды",
"tag.item.minecraft.gold_ores": "Золотые руды",
"tag.item.minecraft.iron_ores": "Железные руды",
"tag.item.minecraft.lapis_ores": "Лазуритовые руды",
"tag.item.minecraft.redstone_ores": "Редстоуновые руды",
"tag.item.minecraft.anvil": "Наковальни",
"tag.item.minecraft.arrows": "Стрелы",
"tag.item.minecraft.axolotl_tempt_items": "Нравящиеся аксолотлям",
"tag.item.minecraft.banners": "Баннеры",
"tag.item.minecraft.beacon_payment_items": "Запитывающие маяк",
"tag.item.minecraft.beds": "Кровати",
"tag.item.minecraft.boats": "Лодки",
"tag.item.minecraft.buttons": "Кнопки",
"tag.item.minecraft.candles": "Свечи",
"tag.item.minecraft.carpets": "Ковры",
"tag.item.minecraft.coals": "Угли",
"tag.item.minecraft.creeper_drop_music_discs": "Добываемые из крипера пластинки",
"tag.item.minecraft.creeper_igniters": "Воспламеняющие криперов",
"tag.item.minecraft.dirt": "Земля",
"tag.item.minecraft.doors": "Двери",
"tag.item.minecraft.fences": "Заборы",
"tag.item.minecraft.fence_gates": "Калитки",
"tag.item.minecraft.fishes": "Рыба",
"tag.item.minecraft.flowers": "Цветы",
"tag.item.minecraft.fox_food": "Лисья еда",
"tag.item.minecraft.freeze_immune_wearables": "Защищающая от холода броня",
"tag.item.minecraft.ignored_by_piglin_babies": "Игнорируемые маленькими пиглинами",
"tag.item.minecraft.leaves": "Листва",
"tag.item.minecraft.lectern_books": "Книги для кафедры",
"tag.item.minecraft.music_discs": "Музыкальные пластинки",
"tag.item.minecraft.occludes_vibration_signals": "Вызывающие вибрацию",
"tag.item.minecraft.piglin_food": "Еда пиглинов",
"tag.item.minecraft.piglin_loved": "Нравится пиглинам",
"tag.item.minecraft.piglin_repellents": "Отпугивает пиглинов",
"tag.item.minecraft.rails": "Рельсы",
"tag.item.minecraft.sand": "Песок",
"tag.item.minecraft.saplings": "Саженцы",
"tag.item.minecraft.signs": "Таблички",
"tag.item.minecraft.slabs": "Полублоки",
"tag.item.minecraft.small_flowers": "Маленькие цветы",
"tag.item.minecraft.soul_fire_base_blocks": "Основы для огня душ",
"tag.item.minecraft.stairs": "Ступени",
"tag.item.minecraft.stone_bricks": "Каменные кирпичи",
"tag.item.minecraft.stone_crafting_materials": "Каменные материалы",
"tag.item.minecraft.stone_tool_materials": "Каменные инструменты",
"tag.item.minecraft.tall_flowers": "Высокие цветы",
"tag.item.minecraft.terracotta": "Терракота",
"tag.item.minecraft.trapdoors": "Люки",
"tag.item.minecraft.walls": "Стены",
"tag.item.minecraft.wooden_buttons": "Деревянные кнопки",
"tag.item.minecraft.wooden_doors": "Деревянные двери",
"tag.item.minecraft.wooden_fences": "Деревянные заборы",
"tag.item.minecraft.wooden_pressure_plates": "Деревянные нажимные плиты",
"tag.item.minecraft.wooden_slabs": "Деревянные полублоки",
"tag.item.minecraft.wooden_stairs": "Деревянные ступени",
"tag.item.minecraft.wooden_trapdoors": "Деревянные люки",
"tag.item.minecraft.wool": "Шерсть",
"tag.item.minecraft.wart_blocks": "Блоки нароста",
"tag.item.minecraft.wool_carpets": "Шерстяные ковры",
"tag.item.minecraft.mangrove_logs": "Мангровые бревна",
"tag.item.minecraft.compasses": "Компасы",
"tag.item.minecraft.chest_boats": "Грузовые лодки",
"tag.item.minecraft.overworld_natural_logs": "Естественные брёвна верхнего мира",
"tag.item.minecraft.axes": "Топоры",
"tag.item.minecraft.hoes": "Мотыги",
"tag.item.minecraft.pickaxes": "Кирки",
"tag.item.minecraft.shovels": "Лопаты",
"tag.item.minecraft.smelts_to_glass": "Плавятся в стекло",
"tag.item.minecraft.swords": "Мечи",
"tag.item.minecraft.tools": "Инструменты",
"tag.item.minecraft.bamboo_blocks": "Бамбуковые блоки",
"tag.item.minecraft.bookshelf_books": "Блоки книжных полок",
"tag.item.minecraft.breaks_decorated_pots": "Ломает узорчатые вазы",
"tag.item.minecraft.cherry_logs": "Вишнёвые брёвна",
"tag.item.minecraft.decorated_pot_ingredients": "Ингридиенты для узорчатых ваз",
"tag.item.minecraft.decorated_pot_sherds": "Черепки для узорчатых ваз",
"tag.item.minecraft.hanging_signs": "Подвесные таблички",
"tag.item.minecraft.noteblock_top_instruments": "Верхние инструменты нотных блоков",
"tag.item.minecraft.sniffer_food": "Еда нюхача",
"tag.item.minecraft.stone_buttons": "Каменные кнопки",
"tag.item.minecraft.trim_materials": "Материалы для кузнечных шаблонов",
"tag.item.minecraft.trim_templates": "Кузнечные шаблоны",
"tag.item.minecraft.trimmable_armor": "Можно применить кузнечный шаблон",
"tag.item.minecraft.villager_plantable_seeds": "Сажаемые жителями семена",
"tag.fluid.minecraft.water": "Вода",
"tag.fluid.minecraft.lava": "Лава",
"tag.fluid.c.water": "Вода",
"tag.fluid.c.lava": "Лава",
"tag.fluid.c.milk": "Молоко",
"tag.item.c.stone": "Камень",
"tag.item.c.cobblestone": "Булыжник",
"tag.item.c.cobblestone.deepslate": "Колотый глубинный сланец",
"tag.item.c.cobblestone.infested": "Заражённый булыжник",
"tag.item.c.cobblestone.mossy": "Замшелый булыжник",
"tag.item.c.cobblestone.normal": "Булыжник",
"tag.item.c.sandstone": "Песчанник",
"tag.item.c.glass_blocks": "Стеклянные блоки",
"tag.item.c.stained_glass": "Крашенное стекло",
"tag.item.c.stained_glass_panes": "Крашенные стеклянные панели",
"tag.item.c.glass": "Стекло",
"tag.item.c.glass.colorless": "Бесцветное стекло",
"tag.item.c.glass.silica": "Кварцевое стекло",
"tag.item.c.quartz_blocks": "Кварцевые блоки",
"tag.item.c.glass_panes": "Стеклянные панели",
"tag.item.c.glass.tinted": "Тонированное стекло",
"tag.item.c.glass_panes.colorless": "Бесцветные стеклянные панели",
"tag.item.c.raw_materials": "Необработанные материалы",
"tag.item.c.rods": "Стержни",
"tag.item.c.ores": "Руды",
"tag.item.c.nuggets": "Самородки",
"tag.item.c.ingots": "Слитки",
"tag.item.c.gems": "Драгоценные камни",
"tag.item.c.plates": "Плиты",
"tag.item.c.dusts": "Пыль",
"tag.item.c.storage_blocks": "Блоки с хранилищем",
"tag.item.c.seeds": "Семена",
"tag.item.c.crops": "Посевы",
"tag.item.c.heads": "Головы",
"tag.item.c.dyes": "Красители",
"tag.item.c.mushrooms": "Грибы",
"tag.item.c.fence_gates": "Калитки",
"tag.item.c.fence_gates.wooden": "Деревянные калитки",
"tag.item.c.chests": "Сундуки",
"tag.item.c.wooden_chests": "Деревянные сундуки",
"tag.item.c.ores_in_ground.stone": "Каменные руды",
"tag.item.c.ores_in_ground.deepslate": "Глубинные руды",
"tag.item.c.ores_in_ground.netherrack": "Незераковые руды",
"tag.item.c.chest": "Сундуки",
"tag.item.c.coal": "Угли",
"tag.item.c.sand": "Пески",
"tag.item.c.glass_pane": "Стеклянные панели",
"tag.item.c.beacon_payment": "Оплата маяков",
"tag.item.c.fences": "Заборы",
"tag.item.c.fences.wooden": "Деревянные заборы",
"tag.item.c.ores.coal": "Угольные руды",
"tag.item.c.ores.copper": "Медные руды",
"tag.item.c.ores.iron": "Железные руды",
"tag.item.c.ores.gold": "Золотые руды",
"tag.item.c.ores.redstone": "Редстоуновые руды",
"tag.item.c.ores.lapis": "Лазуритовые руды",
"tag.item.c.ores.emerald": "Изумрудные руды",
"tag.item.c.ores.diamond": "Алмазные руды",
"tag.item.c.storage_blocks.coal": "Угольные блоки с хранилищем",
"tag.item.c.raw_materials.copper": "Рудная медь",
"tag.item.c.copper_dusts": "Медная пыль",
"tag.item.c.dusts.copper": "Медная пыль",
"tag.item.c.copper_ingots": "Медные слитки",
"tag.item.c.ingots.copper": "Медные слитки",
"tag.item.c.copper_nuggets": "Медные самородки",
"tag.item.c.nuggets.copper": "Медные самородки",
"tag.item.c.plates.copper": "Медные плиты",
"tag.item.c.raw_copper_ores": "Рудные медные руды",
"tag.item.c.raw_copper_blocks": "Рудные медные блоки",
"tag.item.c.copper_blocks": "Медные блоки",
"tag.item.c.storage_blocks.raw_copper": "Рудные медные блоки с хранилищем",
"tag.item.c.storage_blocks.copper": "Медные блоки с хранилищем",
"tag.item.c.raw_materials.iron": "Рудное железо",
"tag.item.c.iron_dusts": "Железная пыль",
"tag.item.c.dusts.iron": "Железная пыль",
"tag.item.c.iron_ingots": "Железные слитки",
"tag.item.c.ingots.iron": "Железные слитки",
"tag.item.c.iron_nuggets": "Железные самородки",
"tag.item.c.nuggets.iron": "Железные самородки",
"tag.item.c.plates.iron": "Железные плиты",
"tag.item.c.raw_iron_ores": "Рудные железные руды",
"tag.item.c.raw_iron_blocks": "Рудные железные блоки",
"tag.item.c.iron_blocks": "Железные блоки",
"tag.item.c.storage_blocks.raw_iron": "Рудные железные блоки с хранилищем",
"tag.item.c.storage_blocks.iron": "Железные блоки с хранилищем",
"tag.item.c.raw_materials.gold": "Рудное золото",
"tag.item.c.gold_dusts": "Золотая пыль",
"tag.item.c.dusts.gold": "Золотая пыль",
"tag.item.c.gold_ingots": "Золотые слитки",
"tag.item.c.ingots.gold": "Золотые слитки",
"tag.item.c.gold_nuggets": "Золотые самородки",
"tag.item.c.nuggets.gold": "Золотые самородки",
"tag.item.c.plates.gold": "Золотые Плиты",
"tag.item.c.raw_gold_ores": "Рудные золотые руды",
"tag.item.c.raw_gold_blocks": "Рудные золотые блоки",
"tag.item.c.gold_blocks": "Золотые блоки",
"tag.item.c.storage_blocks.gold": "Золотые блоки с хранилищем",
"tag.item.c.storage_blocks.raw_gold": "Рудные золотые блоки с хранилищем",
"tag.item.c.gems.amethyst": "Аметисты",
"tag.item.c.amethyst_dusts": "Аметистовая пыль",
"tag.item.c.storage_blocks.amethyst": "Аметистовые блоки с хранилищем",
"tag.item.c.storage_blocks.diamond": "Алмазные блоки с хранилищем",
"tag.item.c.storage_blocks.emerald": "Изумрудные блоки с хранилищем",
"tag.item.c.storage_blocks.lapis": "Лазуритовые блоки с хранилищем",
"tag.item.c.storage_blocks.netherite": "Незеритовые блоки с хранилищем",
"tag.item.c.storage_blocks.quartz": "Кварцевые блоки с хранилищем",
"tag.item.c.storage_blocks.redstone": "Редстоуновые блоки с хранилищем",
"tag.item.c.redstone_dusts": "Редстоуновая пыль",
"tag.item.c.redstone_ores": "Редстоуновые руды",
"tag.item.c.quartz": "Кварц",
"tag.item.c.quartz_ores": "Кварцевые руды",
"tag.item.c.diamond_dusts": "Алмазная пыль",
"tag.item.c.diamonds": "Алмазы",
"tag.item.c.dusts.glowstone": "Светокаменная пыль",
"tag.item.c.dusts.prismarine": "Призмариновая пыль",
"tag.item.c.dusts.redstone": "Редстоуновая пыль",
"tag.item.c.emeralds": "Изумруды",
"tag.item.c.ender_pearl_dusts": "Пыль из эндер-жемчуга",
"tag.item.c.ender_pearls": "Эндер-жемчуг",
"tag.item.c.gems.diamond": "Алмазы",
"tag.item.c.gems.emerald": "Изумруды",
"tag.item.c.gems.lapis": "Лазурит",
"tag.item.c.gems.prismarine": "Призмарин",
"tag.item.c.gems.quartz": "Кварц",
"tag.item.c.ingots.brick": "Кирпичи",
"tag.item.c.ingots.nether_brick": "Незерские кирпичи",
"tag.item.c.ingots.netherite": "Незеритовые слитки",
"tag.item.c.lapis": "Лазурит",
"tag.item.c.nether_quartz_dusts": "Кварцевая пыль",
"tag.item.c.netherite_ingots": "Незеритовые слитки",
"tag.item.c.netherite_scrap_dusts": "Пыль из незеритового лома",
"tag.item.c.ores.netherite_scrap": "Древние обломки",
"tag.item.c.ores.quartz": "Кварцевые руды",
"tag.item.c.spears": "Копья",
"tag.item.c.axes": "Топоры",
"tag.item.c.barrels": "Бочки",
"tag.item.c.barrels.wooden": "Деревянные бочки",
"tag.item.c.white_dyes": "Белые красители",
"tag.item.c.orange_dyes": "Оранжевые красители",
"tag.item.c.magenta_dyes": "Пурпурные красители",
"tag.item.c.light_blue_dyes": "Голубые красители",
"tag.item.c.yellow_dyes": "Жёлтые красители",
"tag.item.c.lime_dyes": "Лаймовые красители",
"tag.item.c.pink_dyes": "Розовые красители",
"tag.item.c.gray_dyes": "Серые красители",
"tag.item.c.light_gray_dyes": "Светло-серые красители",
"tag.item.c.cyan_dyes": "Бирюзовые красители",
"tag.item.c.purple_dyes": "Фиолетовые красители",
"tag.item.c.blue_dyes": "Синие красители",
"tag.item.c.brown_dyes": "Коричневые красители",
"tag.item.c.green_dyes": "Зелёные красители",
"tag.item.c.red_dyes": "Красные красители",
"tag.item.c.black_dyes": "Чёрные красители",
"tag.item.c.dyes.white": "Белые красители",
"tag.item.c.dyes.orange": "Оранжевые красители",
"tag.item.c.dyes.magenta": "Пурпурные красители",
"tag.item.c.dyes.light_blue": "Голубые красители",
"tag.item.c.dyes.yellow": "Жёлтые красители",
"tag.item.c.dyes.lime": "Лаймовые красители",
"tag.item.c.dyes.pink": "Розовые красители",
"tag.item.c.dyes.gray": "Серые красители",
"tag.item.c.dyes.light_gray": "Светло-серые красители",
"tag.item.c.dyes.cyan": "Бирюзовые красители",
"tag.item.c.dyes.purple": "Фиолетовые красители",
"tag.item.c.dyes.blue": "Синие красители",
"tag.item.c.dyes.brown": "Коричневые красители",
"tag.item.c.dyes.green": "Зелёные красители",
"tag.item.c.dyes.red": "Красные красители",
"tag.item.c.dyes.black": "Чёрные красители",
"tag.item.c.glass.white": "Белое стекло",
"tag.item.c.glass.orange": "Оранжевое стекло",
"tag.item.c.glass.magenta": "Пурпурное стекло",
"tag.item.c.glass.light_blue": "Голубое стекло",
"tag.item.c.glass.yellow": "Желтое стекло",
"tag.item.c.glass.lime": "Лаймовое стекло",
"tag.item.c.glass.pink": "Розовое стекло",
"tag.item.c.glass.gray": "Серое стекло",
"tag.item.c.glass.light_gray": "Светло-серое стекло",
"tag.item.c.glass.cyan": "Бирюзовое стекло",
"tag.item.c.glass.purple": "Фиолетовое стекло",
"tag.item.c.glass.blue": "Синее стекло",
"tag.item.c.glass.brown": "Коричневое стекло",
"tag.item.c.glass.green": "Зеленое стекло",
"tag.item.c.glass.red": "Красное стекло",
"tag.item.c.glass.black": "Черное стекло",
"tag.item.c.glass_panes.white": "Белые стеклянные панели",
"tag.item.c.glass_panes.orange": "Оранжевые стеклянные панели",
"tag.item.c.glass_panes.magenta": "Пурпурные стеклянные панели",
"tag.item.c.glass_panes.light_blue": "Голубые стеклянные панели",
"tag.item.c.glass_panes.yellow": "Желтые стеклянные панели",
"tag.item.c.glass_panes.lime": "Лаймовые стеклянные панели",
"tag.item.c.glass_panes.pink": "Розовые стеклянные панели",
"tag.item.c.glass_panes.gray": "Серые стеклянные панели",
"tag.item.c.glass_panes.light_gray": "Светло-серые стеклянные панели",
"tag.item.c.glass_panes.cyan": "Бирюзовые стеклянные панели",
"tag.item.c.glass_panes.purple": "Фиолетовые стеклянные панели",
"tag.item.c.glass_panes.blue": "Синие стеклянные панели",
"tag.item.c.glass_panes.brown": "Коричневые стеклянные панели",
"tag.item.c.glass_panes.green": "Зеленые стеклянные панели",
"tag.item.c.glass_panes.red": "Красные стеклянные панели",
"tag.item.c.glass_panes.black": "Черные стеклянные панели",
"tag.item.c.bones": "Кости",
"tag.item.c.bookshelves": "Книжные полки",
"tag.item.c.bows": "Луки",
"tag.item.c.buckets.honey": "Хранилища меда",
"tag.item.c.chests.ender": "Эндер-сундуки",
"tag.item.c.chests.trapped": "Сундуки-ловушки",
"tag.item.c.chests.wooden": "Деревянные сундуки",
"tag.item.c.circuits": "Цепи",
"tag.item.c.crops.beetroot": "Свекла",
"tag.item.c.crops.carrot": "Морковь",
"tag.item.c.crops.nether_wart": "Незерские наросты",
"tag.item.c.crops.potato": "Картофель",
"tag.item.c.crops.wheat": "Пшеница",
"tag.item.c.eggs": "Яйца",
"tag.item.c.empty_buckets": "Пустые ведра",
"tag.item.c.enchanting_fuels": "Топливо для чар",
"tag.item.c.end_stones": "Эндерняк",
"tag.item.c.feathers": "Перья",
"tag.item.c.fences.nether_brick": "Ограды из незерского кирпича",
"tag.item.c.foods": "Еда",
"tag.item.c.gravel": "Гравий",
"tag.item.c.gunpowder": "Порох",
"tag.item.c.hoes": "Мотыги",
"tag.item.c.lava_buckets": "Ведра лавы",
"tag.item.c.leather": "Кожа",
"tag.item.c.milk_bottles": "Бутылки с молоком",
"tag.item.c.milk_buckets": "Ведра молока",
"tag.item.c.nether_stars": "Звезды незера",
"tag.item.c.netherrack": "Незерак",
"tag.item.c.obsidian": "Обсидиан",
"tag.item.c.pickaxes": "Кирки",
"tag.item.c.potions": "Зелья",
"tag.item.c.red_sandstone": "Красный песчаник",
"tag.item.c.red_sandstone_slabs": "Полублоки из красного песчаника",
"tag.item.c.red_sandstone_stairs": "Ступени из красного песчаника",
"tag.item.c.rods.blaze": "Огненные стержни",
"tag.item.c.rods.wooden": "Деревянные палки",
"tag.item.c.sand.colorless": "Бесцветный песок",
"tag.item.c.sand.red": "Красный песок",
"tag.item.c.sandstone_slabs": "Полублоки из песчаника",
"tag.item.c.sandstone_stairs": "Ступени из песчаника",
"tag.item.c.seeds.beetroot": "Семена свеклы",
"tag.item.c.seeds.melon": "Семена арбуза",
"tag.item.c.seeds.pumpkin": "Семена тыквы",
"tag.item.c.seeds.wheat": "Семена пшеницы",
"tag.item.c.shears": "Ножницы",
"tag.item.c.shields": "Щиты",
"tag.item.c.shovels": "Лопаты",
"tag.item.c.shulker_boxes": "Ящики шалкера",
"tag.item.c.skulls": "Черепа",
"tag.item.c.slime_balls": "Сгустки слизи",
"tag.item.c.slimeballs": "Сгустки слизи",
"tag.item.c.stone_dusts": "Каменная пыль",
"tag.item.c.stones": "Камень",
"tag.item.c.string": "Нитки",
"tag.item.c.strings": "Нитки",
"tag.item.c.swords": "Мечи",
"tag.item.c.water_buckets": "Ведра воды",
"tag.item.c.wrenches": "Ключи",
"tag.item.c.budding_blocks": "Цветущие блоки",
"tag.item.c.buds": "Бутоны",
"tag.item.c.clusters": "Друзы",
"tag.item.c.entity_water_buckets": "Вёдра воды с сущностями",
"tag.item.c.raw_ores": "Рудные руды",
"tag.item.c.red_sandstone_blocks": "Блоки красного песчаника",
"tag.item.c.sandstone_blocks": "Блоки песчаника",
"tag.item.c.uncolored_sandstone_blocks": "Бесцветные блоки песчаника",
"tag.item.c.uncolored_sandstone_slabs": "Бесцветные песчаниковые плиты",
"tag.item.c.uncolored_sandstone_stairs": "Бесцветные песчаниковые ступеньки",
"tag.item.c.villager_job_sites": "Блоки-профессии жителей",
"tag.item.c.wooden_barrels": "Деревянные бочки",
"tag.item.c.armors": "Броня",
"tag.item.c.armors.boots": "Ботинки",
"tag.item.c.armors.chestplates": "Нагрудники",
"tag.item.c.armors.helmets": "Шлема",
"tag.item.c.armors.leggings": "Поножи",
"tag.item.c.tools": "Инструменты",
"tag.item.c.tools.axes": "Топоры",
"tag.item.c.tools.bows": "Луки",
"tag.item.c.tools.crossbows": "Арбалеты",
"tag.item.c.tools.fishing_rods": "Удочки",
"tag.item.c.tools.hoes": "Мотыги",
"tag.item.c.tools.pickaxes": "Кирки",
"tag.item.c.tools.shields": "Щиты",
"tag.item.c.tools.shovels": "Лопаты",
"tag.item.c.tools.swords": "Мечи",
"tag.item.c.tools.tridents": "Трезубцы",
"tag.item.fabric.pickaxes": "Кирки",
"tag.item.fabric.axes": "Топоры",
"tag.item.fabric.shovels": "Лопаты",
"tag.item.fabric.hoes": "Мотыги",
"tag.item.fabric.swords": "Мечи",
"tag.item.fabric.shears": "Ножницы"
}

View file

@ -0,0 +1,381 @@
{
"tag.item.minecraft.logs": "木头",
"tag.item.minecraft.oak_logs": "橡木",
"tag.item.minecraft.birch_logs": "白桦木",
"tag.item.minecraft.spruce_logs": "云杉木",
"tag.item.minecraft.jungle_logs": "从林木",
"tag.item.minecraft.dark_oak_logs": "深色橡木",
"tag.item.minecraft.crimson_stems": "绯红木",
"tag.item.minecraft.warped_stems": "诡异木",
"tag.item.minecraft.acacia_logs": "金合欢木",
"tag.item.minecraft.logs_that_burn": "可燃木",
"tag.item.minecraft.planks": "木板",
"tag.item.minecraft.non_flammable_wood": "不可燃木",
"tag.item.minecraft.coal_ores": "煤矿",
"tag.item.minecraft.copper_ores": "铜矿",
"tag.item.minecraft.diamond_ores": "钻石矿",
"tag.item.minecraft.emerald_ores": "绿宝石矿",
"tag.item.minecraft.gold_ores": "金矿",
"tag.item.minecraft.iron_ores": "铁矿",
"tag.item.minecraft.lapis_ores": "青金石矿",
"tag.item.minecraft.redstone_ores": "红石矿",
"tag.item.minecraft.anvil": "铁砧",
"tag.item.minecraft.arrows": "箭",
"tag.item.minecraft.axolotl_tempt_items": "美西螈跟随的物品",
"tag.item.minecraft.banners": "旗帜",
"tag.item.minecraft.beacon_payment_items": "信标兑换物",
"tag.item.minecraft.beds": "床",
"tag.item.minecraft.boats": "船",
"tag.item.minecraft.buttons": "按钮",
"tag.item.minecraft.candles": "蜡烛",
"tag.item.minecraft.carpets": "地毯",
"tag.item.minecraft.coals": "煤炭",
"tag.item.minecraft.creeper_drop_music_discs": "苦力怕掉落的唱片",
"tag.item.minecraft.creeper_igniters": "苦力怕引燃物",
"tag.item.minecraft.dirt": "泥土",
"tag.item.minecraft.doors": "门",
"tag.item.minecraft.fences": "栅栏",
"tag.item.minecraft.fence_gates": "栅栏门",
"tag.item.minecraft.fishes": "鱼",
"tag.item.minecraft.flowers": "花",
"tag.item.minecraft.fox_food": "狐狸食物",
"tag.item.minecraft.freeze_immune_wearables": "免疫冰冻的装备",
"tag.item.minecraft.ignored_by_piglin_babies": "小猪灵无视的物品",
"tag.item.minecraft.leaves": "树叶",
"tag.item.minecraft.lectern_books": "讲台上的书",
"tag.item.minecraft.music_discs": "唱片",
"tag.item.minecraft.occludes_vibration_signals": "吸收震动信号",
"tag.item.minecraft.piglin_food": "猪灵的食物",
"tag.item.minecraft.piglin_loved": "猪灵喜爱的物品",
"tag.item.minecraft.piglin_repellents": "猪灵躲避的物品",
"tag.item.minecraft.rails": "铁轨",
"tag.item.minecraft.sand": "沙子",
"tag.item.minecraft.saplings": "树苗",
"tag.item.minecraft.signs": "告示牌",
"tag.item.minecraft.slabs": "台阶",
"tag.item.minecraft.small_flowers": "矮花",
"tag.item.minecraft.soul_fire_base_blocks": "灵魂火底座",
"tag.item.minecraft.stairs": "楼梯",
"tag.item.minecraft.stone_bricks": "石砖",
"tag.item.minecraft.stone_crafting_materials": "石质合成材料",
"tag.item.minecraft.stone_tool_materials": "石质工具材料",
"tag.item.minecraft.tall_flowers": "高花",
"tag.item.minecraft.terracotta": "陶瓦",
"tag.item.minecraft.trapdoors": "活板门",
"tag.item.minecraft.walls": "墙",
"tag.item.minecraft.wooden_buttons": "木按钮",
"tag.item.minecraft.wooden_doors": "木门",
"tag.item.minecraft.wooden_fences": "木栅栏",
"tag.item.minecraft.wooden_pressure_plates": "木制压力板",
"tag.item.minecraft.wooden_slabs": "木台阶",
"tag.item.minecraft.wooden_stairs": "木楼梯",
"tag.item.minecraft.wooden_trapdoors": "木活板门",
"tag.item.minecraft.wool": "羊毛",
"tag.item.minecraft.wart_blocks": "疣块",
"tag.item.minecraft.wool_carpets": "羊毛地毯",
"tag.item.minecraft.mangrove_logs": "红树木",
"tag.item.minecraft.compasses": "指南针",
"tag.item.minecraft.chest_boats": "运输船",
"tag.item.minecraft.overworld_natural_logs": "自然生成的主世界木",
"tag.item.minecraft.axes": "斧",
"tag.item.minecraft.hoes": "锄",
"tag.item.minecraft.pickaxes": "镐",
"tag.item.minecraft.shovels": "锹",
"tag.item.minecraft.smelts_to_glass": "烧炼成玻璃",
"tag.item.minecraft.swords": "剑",
"tag.item.minecraft.tools": "工具",
"tag.fluid.minecraft.water": "水",
"tag.fluid.minecraft.lava": "熔岩",
"tag.fluid.c.water": "水",
"tag.fluid.c.lava": "熔岩",
"tag.fluid.c.milk": "牛奶",
"tag.item.c.stone": "石头",
"tag.item.c.cobblestone": "圆石",
"tag.item.c.cobblestone.deepslate": "深板岩圆石",
"tag.item.c.cobblestone.infested": "虫蚀圆石",
"tag.item.c.cobblestone.mossy": "苔圆石",
"tag.item.c.cobblestone.normal": "圆石",
"tag.item.c.sandstone": "砂岩",
"tag.item.c.glass_blocks": "完整玻璃",
"tag.item.c.stained_glass": "完整染色玻璃",
"tag.item.c.stained_glass_panes": "染色玻璃板",
"tag.item.c.glass": "玻璃",
"tag.item.c.glass.colorless": "完整无色玻璃",
"tag.item.c.glass.silica": "石英玻璃",
"tag.item.c.quartz_blocks": "石英块",
"tag.item.c.glass_panes": "玻璃板",
"tag.item.c.glass.tinted": "遮光玻璃",
"tag.item.c.glass_panes.colorless": "无色玻璃板",
"tag.item.c.raw_materials": "原材料",
"tag.item.c.rods": "棍",
"tag.item.c.ores": "矿",
"tag.item.c.nuggets": "粒",
"tag.item.c.ingots": "锭",
"tag.item.c.gems": "宝石",
"tag.item.c.plates": "板",
"tag.item.c.dusts": "粉",
"tag.item.c.storage_blocks": "存储方块",
"tag.item.c.seeds": "种子",
"tag.item.c.crops": "农作物",
"tag.item.c.heads": "头颅",
"tag.item.c.dyes": "染料",
"tag.item.c.mushrooms": "蘑菇",
"tag.item.c.fence_gates": "栅栏门",
"tag.item.c.fence_gates.wooden": "木栅栏门",
"tag.item.c.chests": "箱子",
"tag.item.c.wooden_chests": "木箱",
"tag.item.c.ores_in_ground.stone": "石头矿",
"tag.item.c.ores_in_ground.deepslate": "深板岩矿",
"tag.item.c.ores_in_ground.netherrack": "下界岩矿",
"tag.item.c.chest": "箱子",
"tag.item.c.coal": "煤炭",
"tag.item.c.sand": "沙子",
"tag.item.c.glass_pane": "玻璃板",
"tag.item.c.beacon_payment": "信标兑换物",
"tag.item.c.fences": "栅栏",
"tag.item.c.fences.wooden": "木栅栏",
"tag.item.c.ores.coal": "煤矿",
"tag.item.c.ores.copper": "铜矿",
"tag.item.c.ores.iron": "铁矿",
"tag.item.c.ores.gold": "金矿",
"tag.item.c.ores.redstone": "红石矿",
"tag.item.c.ores.lapis": "青金石矿",
"tag.item.c.ores.emerald": "绿宝石矿",
"tag.item.c.ores.diamond": "钻石矿",
"tag.item.c.storage_blocks.coal": "储煤方块",
"tag.item.c.raw_materials.copper": "粗铜",
"tag.item.c.copper_dusts": "铜粉",
"tag.item.c.dusts.copper": "铜粉",
"tag.item.c.copper_ingots": "铜锭",
"tag.item.c.ingots.copper": "铜锭",
"tag.item.c.copper_nuggets": "铜粒",
"tag.item.c.nuggets.copper": "铜粒",
"tag.item.c.plates.copper": "铜板",
"tag.item.c.raw_copper_ores": "粗铜矿",
"tag.item.c.raw_copper_blocks": "粗铜块",
"tag.item.c.copper_blocks": "铜块",
"tag.item.c.storage_blocks.raw_copper": "储粗铜方块",
"tag.item.c.storage_blocks.copper": "储铜方块",
"tag.item.c.raw_materials.iron": "粗铁",
"tag.item.c.iron_dusts": "铁粉",
"tag.item.c.dusts.iron": "铁粉",
"tag.item.c.iron_ingots": "铁锭",
"tag.item.c.ingots.iron": "铁锭",
"tag.item.c.iron_nuggets": "铁粒",
"tag.item.c.nuggets.iron": "铁粒",
"tag.item.c.plates.iron": "铁板",
"tag.item.c.raw_iron_ores": "粗铁矿",
"tag.item.c.raw_iron_blocks": "粗铁块",
"tag.item.c.iron_blocks": "铁块",
"tag.item.c.storage_blocks.raw_iron": "储粗铁方块",
"tag.item.c.storage_blocks.iron": "储铁方块",
"tag.item.c.raw_materials.gold": "粗金",
"tag.item.c.gold_dusts": "金粉",
"tag.item.c.dusts.gold": "金粉",
"tag.item.c.gold_ingots": "金锭",
"tag.item.c.ingots.gold": "金锭",
"tag.item.c.gold_nuggets": "金粒",
"tag.item.c.nuggets.gold": "金粒",
"tag.item.c.plates.gold": "金板",
"tag.item.c.raw_gold_ores": "粗金矿",
"tag.item.c.raw_gold_blocks": "粗金块",
"tag.item.c.gold_blocks": "金块",
"tag.item.c.storage_blocks.gold": "储金方块",
"tag.item.c.storage_blocks.raw_gold": "储粗金方块",
"tag.item.c.gems.amethyst": "紫水晶",
"tag.item.c.amethyst_dusts": "紫水晶粉",
"tag.item.c.storage_blocks.amethyst": "储紫水晶方块",
"tag.item.c.storage_blocks.diamond": "储钻石方块",
"tag.item.c.storage_blocks.emerald": "储绿宝石方块",
"tag.item.c.storage_blocks.lapis": "储青金石方块",
"tag.item.c.storage_blocks.netherite": "储下界合金方块",
"tag.item.c.storage_blocks.quartz": "储石英方块",
"tag.item.c.storage_blocks.redstone": "储红石方块",
"tag.item.c.redstone_dusts": "红石粉",
"tag.item.c.redstone_ores": "红石矿",
"tag.item.c.quartz": "石英",
"tag.item.c.quartz_ores": " 石英矿",
"tag.item.c.diamond_dusts": "钻石粉",
"tag.item.c.diamonds": "钻石",
"tag.item.c.dusts.glowstone": "萤石粉",
"tag.item.c.dusts.prismarine": "海晶石粉",
"tag.item.c.dusts.redstone": "红石粉",
"tag.item.c.emeralds": "绿宝石",
"tag.item.c.ender_pearl_dusts": "末影珍珠粉",
"tag.item.c.ender_pearls": "末影珍珠",
"tag.item.c.gems.diamond": "钻石",
"tag.item.c.gems.emerald": "绿宝石",
"tag.item.c.gems.lapis": "青金石",
"tag.item.c.gems.prismarine": "海晶石",
"tag.item.c.gems.quartz": "石英",
"tag.item.c.ingots.brick": "砖",
"tag.item.c.ingots.nether_brick": "下界砖",
"tag.item.c.ingots.netherite": "下界合金锭",
"tag.item.c.lapis": "青金石",
"tag.item.c.nether_quartz_dusts": "下界石英粉",
"tag.item.c.netherite_ingots": "下界合金锭",
"tag.item.c.netherite_scrap_dusts": "下界合金碎片粉",
"tag.item.c.ores.netherite_scrap": "下界合金碎片矿",
"tag.item.c.ores.quartz": "石英矿",
"tag.item.c.spears": "矛",
"tag.item.c.axes": "斧",
"tag.item.c.barrels": "桶",
"tag.item.c.barrels.wooden": "木桶",
"tag.item.c.white_dyes": "白色染料",
"tag.item.c.orange_dyes": "橙色染料",
"tag.item.c.magenta_dyes": "品红色染料",
"tag.item.c.light_blue_dyes": "淡蓝色染料",
"tag.item.c.yellow_dyes": "黄色染料",
"tag.item.c.lime_dyes": "黄绿色染料",
"tag.item.c.pink_dyes": "粉色染料",
"tag.item.c.gray_dyes": "灰色染料",
"tag.item.c.light_gray_dyes": "淡灰色染料",
"tag.item.c.cyan_dyes": "青色染料",
"tag.item.c.purple_dyes": "紫色染料",
"tag.item.c.blue_dyes": "蓝色染料",
"tag.item.c.brown_dyes": "棕色染料",
"tag.item.c.green_dyes": "绿色染料",
"tag.item.c.red_dyes": "红色染料",
"tag.item.c.black_dyes": "黑色染料",
"tag.item.c.dyes.white": "白色染料",
"tag.item.c.dyes.orange": "橙色染料",
"tag.item.c.dyes.magenta": "品红色染料",
"tag.item.c.dyes.light_blue": "淡蓝色染料",
"tag.item.c.dyes.yellow": "黄色染料",
"tag.item.c.dyes.lime": "黄绿色染料",
"tag.item.c.dyes.pink": "粉色染料",
"tag.item.c.dyes.gray": "灰色染料",
"tag.item.c.dyes.light_gray": "淡灰色染料",
"tag.item.c.dyes.cyan": "青色染料",
"tag.item.c.dyes.purple": "紫色染料",
"tag.item.c.dyes.blue": "蓝色染料",
"tag.item.c.dyes.brown": "棕色染料",
"tag.item.c.dyes.green": "绿色染料",
"tag.item.c.dyes.red": "红色染料",
"tag.item.c.dyes.black": "黑色染料",
"tag.item.c.glass.white": "白色玻璃",
"tag.item.c.glass.orange": "橙色玻璃",
"tag.item.c.glass.magenta": "品红色玻璃",
"tag.item.c.glass.light_blue": "淡蓝色玻璃",
"tag.item.c.glass.yellow": "黄色玻璃",
"tag.item.c.glass.lime": " 黄绿色玻璃",
"tag.item.c.glass.pink": "粉色玻璃",
"tag.item.c.glass.gray": "灰色玻璃",
"tag.item.c.glass.light_gray": "淡灰色玻璃",
"tag.item.c.glass.cyan": "青色玻璃",
"tag.item.c.glass.purple": "紫色玻璃",
"tag.item.c.glass.blue": "蓝色玻璃",
"tag.item.c.glass.brown": "棕色玻璃",
"tag.item.c.glass.green": "绿色玻璃",
"tag.item.c.glass.red": "红色玻璃",
"tag.item.c.glass.black": "黑色玻璃",
"tag.item.c.glass_panes.white": "白色玻璃板",
"tag.item.c.glass_panes.orange": "橙色玻璃板",
"tag.item.c.glass_panes.magenta": "品红色玻璃板",
"tag.item.c.glass_panes.light_blue": "淡蓝色玻璃板",
"tag.item.c.glass_panes.yellow": "黄色玻璃板",
"tag.item.c.glass_panes.lime": "黄绿色玻璃板",
"tag.item.c.glass_panes.pink": "粉色玻璃板",
"tag.item.c.glass_panes.gray": "灰色玻璃板",
"tag.item.c.glass_panes.light_gray": "淡灰色玻璃板",
"tag.item.c.glass_panes.cyan": "青色玻璃板",
"tag.item.c.glass_panes.purple": "紫色玻璃板",
"tag.item.c.glass_panes.blue": "蓝色玻璃板",
"tag.item.c.glass_panes.brown": "棕色玻璃板",
"tag.item.c.glass_panes.green": "绿色玻璃板",
"tag.item.c.glass_panes.red": "红色玻璃板",
"tag.item.c.glass_panes.black": "黑色玻璃板",
"tag.item.c.bones": "骨头",
"tag.item.c.bookshelves": "书架",
"tag.item.c.bows": "弓",
"tag.item.c.buckets.honey": "蜜桶",
"tag.item.c.chests.ender": "末影箱",
"tag.item.c.chests.trapped": "陷阱箱",
"tag.item.c.chests.wooden": "木箱",
"tag.item.c.circuits": "电路",
"tag.item.c.crops.beetroot": "甜菜根",
"tag.item.c.crops.carrot": "胡萝卜",
"tag.item.c.crops.nether_wart": "下界疣",
"tag.item.c.crops.potato": "马铃薯",
"tag.item.c.crops.wheat": "小麦",
"tag.item.c.eggs": "蛋",
"tag.item.c.empty_buckets": "空桶",
"tag.item.c.enchanting_fuels": "附魔燃料",
"tag.item.c.end_stones": "末地石",
"tag.item.c.feathers": "羽毛",
"tag.item.c.fences.nether_brick": "下界砖栅栏",
"tag.item.c.foods": "食物",
"tag.item.c.gravel": "沙砾",
"tag.item.c.gunpowder": "火药",
"tag.item.c.hoes": "锄",
"tag.item.c.lava_buckets": "熔岩桶",
"tag.item.c.leather": "皮革",
"tag.item.c.milk_bottles": "奶瓶",
"tag.item.c.milk_buckets": "奶桶",
"tag.item.c.nether_stars": "下界之星",
"tag.item.c.netherrack": "下界岩",
"tag.item.c.obsidian": "黑曜石",
"tag.item.c.pickaxes": "镐",
"tag.item.c.potions": "药水",
"tag.item.c.red_sandstone": "红砂岩",
"tag.item.c.red_sandstone_slabs": "红砂岩台阶",
"tag.item.c.red_sandstone_stairs": "红砂岩楼梯",
"tag.item.c.rods.blaze": "烈焰棒",
"tag.item.c.rods.wooden": "木棍",
"tag.item.c.sand.colorless": "无色沙",
"tag.item.c.sand.red": "红沙",
"tag.item.c.sandstone_slabs": "砂岩台阶",
"tag.item.c.sandstone_stairs": "砂岩楼梯",
"tag.item.c.seeds.beetroot": "甜菜根种子",
"tag.item.c.seeds.melon": "瓜种子",
"tag.item.c.seeds.pumpkin": "南瓜种子",
"tag.item.c.seeds.wheat": "小麦种子",
"tag.item.c.shears": "剪刀",
"tag.item.c.shields": "盾牌",
"tag.item.c.shovels": "锹",
"tag.item.c.shulker_boxes": "潜影盒",
"tag.item.c.skulls": "头颅",
"tag.item.c.slime_balls": "黏液球",
"tag.item.c.slimeballs": "黏液球",
"tag.item.c.stone_dusts": "石粉",
"tag.item.c.stones": "石头",
"tag.item.c.string": "线",
"tag.item.c.strings": "线",
"tag.item.c.swords": "剑",
"tag.item.c.water_buckets": "水桶",
"tag.item.c.wrenches": "扳手",
"tag.item.c.armors": "盔甲",
"tag.item.c.armors.boots": "靴子",
"tag.item.c.armors.chestplates": "胸甲",
"tag.item.c.armors.helmets": "头盔",
"tag.item.c.armors.leggings": "护腿",
"tag.item.c.tools": "工具",
"tag.item.c.tools.axes": "斧",
"tag.item.c.tools.bows": "弓",
"tag.item.c.tools.crossbows": "弩",
"tag.item.c.tools.fishing_rods": "钓鱼竿",
"tag.item.c.tools.hoes": "锄",
"tag.item.c.tools.pickaxes": "镐",
"tag.item.c.tools.shields": "盾牌",
"tag.item.c.tools.shovels": "锹",
"tag.item.c.tools.swords": "剑",
"tag.item.c.tools.tridents": "三叉戟",
"tag.item.fabric.pickaxes": "镐",
"tag.item.fabric.axes": "斧",
"tag.item.fabric.shovels": "锹",
"tag.item.fabric.hoes": "锄",
"tag.item.fabric.swords": "剑",
"tag.item.fabric.shears": "剪刀"
}

View file

@ -0,0 +1,3 @@
{
"item.farmersdelight.skillet": "Skillet"
}

View file

@ -0,0 +1,2 @@
Not an official Minecraft product. Not approved by or associated with Mojang or Microsoft.
Minecraft content and materials are the intellectual property of their respective owners.

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,3 +1,11 @@
.footer {
margin: 16px;
}
.footer p {
text-align: center;
}
summary {
display: list-item;
}

View file

@ -47,5 +47,15 @@
{% include "components/navbar.html.jinja" +%}
{% include "components/welcome.html.jinja" +%}
{% include "book.html.jinja" +%}
<footer class="footer">
<div class="container">
<p class="text-muted">
Not an official Minecraft product. Not approved by or associated with Mojang or Microsoft.<br />
Minecraft content and materials are the intellectual property of their respective owners.<br />
Made with ❤️ using <a href="https://pypi.org/project/hexdoc/" target="_blank">hexdoc</a>
</p>
</div>
</footer>
</body>
</html>

View file

@ -11,11 +11,7 @@ from pydantic.functional_validators import ModelWrapValidatorHandler
from hexdoc.utils import HexdocModel, ItemStack, ModResourceLoader, ResourceLocation
from hexdoc.utils.compat import HexVersion
from hexdoc.utils.deserialize import (
cast_or_raise,
decode_and_flatten_json_dict,
isinstance_or_raise,
)
from hexdoc.utils.deserialize import cast_or_raise, decode_and_flatten_json_dict
from hexdoc.utils.resource_loader import LoaderContext
@ -187,37 +183,24 @@ class I18n(HexdocModel):
if self.lookup is None:
return LocalizedStr.skip_i18n(keys[0])
# for a single key, look it up
if len(keys) == 1:
key = keys[0]
if default is not None:
return self.lookup.get(key, LocalizedStr.skip_i18n(default))
try:
for key in keys:
if key in self.lookup:
return self.lookup[key]
except KeyError as e:
if allow_missing is not None:
if not allow_missing:
e.add_note(f"Lang: {self.lang}")
raise
elif not self.allow_missing:
e.add_note(f"Lang: {self.lang}")
raise
logging.getLogger(__name__).warning(
f"No translation in {self.lang} for key {key}"
)
return LocalizedStr.skip_i18n(key)
if default is not None:
return LocalizedStr.skip_i18n(default)
# for a list/tuple of keys, return the first one that matches (by recursing)
for current_key in keys[:-1]:
assert isinstance_or_raise(current_key, str)
try:
return self.localize(current_key, allow_missing=False)
except KeyError:
continue
message = f"No translation in {self.lang} for "
if len(keys) == 1:
message += f"key {keys[0]}"
else:
message += f"keys {keys}"
return self.localize(keys[-1], default=default)
if allow_missing is False:
raise KeyError(message)
logging.getLogger(__name__).error(message)
return LocalizedStr.skip_i18n(keys[0])
def localize_pattern(self, op_id: ResourceLocation) -> LocalizedStr:
"""Localizes the given pattern id (internal name, eg. brainsweep).
@ -253,8 +236,11 @@ class I18n(HexdocModel):
def localize_key(self, key: str) -> LocalizedStr:
return self.localize(f"key.{key}")
def localize_tag(self, tag: ResourceLocation):
localized = self.localize(f"tag.{tag.namespace}.{tag.path}")
def localize_item_tag(self, tag: ResourceLocation):
localized = self.localize(
f"tag.{tag.namespace}.{tag.path}",
f"tag.item.{tag.namespace}.{tag.path}",
)
return LocalizedStr(key=localized.key, value=f"Tag: {localized.value}")

View file

@ -31,7 +31,7 @@ class MinecraftItemTagIngredient(ItemIngredient, type=NoValue):
self.item = RenderedItemStack(
namespace=self.tag.namespace,
path=self.tag.path,
name=context.i18n.localize_tag(self.tag),
name=context.i18n.localize_item_tag(self.tag),
texture=TAG_TEXTURE,
)

View file

@ -1,19 +1,19 @@
from contextvars import ContextVar
from pathlib import Path
from typing import Annotated
from pydantic import AfterValidator, ValidationInfo
from pydantic import AfterValidator
from .deserialize import cast_or_raise
from .model import ValidationContext
from hexdoc.utils.contextmanagers import set_contextvar
_relative_path_root = ContextVar[Path]("_relative_path_root")
class RelativePathContext(ValidationContext):
root: Path
def relative_path_root(path: Path):
return set_contextvar(_relative_path_root, path)
def validate_relative_path(path: Path, info: ValidationInfo):
context = cast_or_raise(info.context, RelativePathContext)
return context.root / path
RelativePath = Annotated[Path, AfterValidator(validate_relative_path)]
RelativePath = Annotated[
Path,
AfterValidator(lambda path: _relative_path_root.get() / path),
]

View file

@ -0,0 +1,14 @@
from contextlib import contextmanager
from contextvars import ContextVar
from typing import TypeVar
_T = TypeVar("_T")
@contextmanager
def set_contextvar(contextvar: ContextVar[_T], value: _T):
token = contextvar.set(value)
try:
yield
finally:
contextvar.reset(token)

View file

@ -1,12 +1,13 @@
from __future__ import annotations
from contextlib import contextmanager
from contextvars import ContextVar
from typing import TYPE_CHECKING, Any, Iterator, Self, dataclass_transform
from typing import TYPE_CHECKING, Any, Self, dataclass_transform
from pydantic import BaseModel, ConfigDict, model_validator
from pydantic.config import ConfigDict
from hexdoc.utils.contextmanagers import set_contextvar
DEFAULT_CONFIG = ConfigDict(
extra="forbid",
)
@ -14,14 +15,9 @@ DEFAULT_CONFIG = ConfigDict(
_init_context_var = ContextVar[Any]("_init_context_var", default=None)
@contextmanager
def init_context(value: Any) -> Iterator[None]:
def init_context(value: Any):
"""https://docs.pydantic.dev/latest/usage/validators/#using-validation-context-with-basemodel-initialization"""
token = _init_context_var.set(value)
try:
yield
finally:
_init_context_var.reset(token)
return set_contextvar(_init_context_var, value)
@dataclass_transform()

View file

@ -8,7 +8,7 @@ from typing import Annotated, Any, Self
from pydantic import AfterValidator, Field, HttpUrl, field_validator
from pydantic_settings import BaseSettings, SettingsConfigDict
from .cd import RelativePath, RelativePathContext
from .cd import RelativePath, relative_path_root
from .model import StripHiddenModel
from .resource import ResourceDir, ResourceLocation
from .toml_placeholders import load_toml_with_placeholders
@ -123,11 +123,11 @@ class Properties(StripHiddenModel):
@classmethod
def load(cls, path: Path) -> Self:
env = EnvironmentVariableProps.model_validate_env()
props = cls.model_validate(
load_toml_with_placeholders(path) | {"env": env},
context=RelativePathContext(root=path.parent),
)
with relative_path_root(path.parent):
env = EnvironmentVariableProps.model_validate_env()
props = cls.model_validate(
load_toml_with_placeholders(path) | {"env": env},
)
logging.getLogger(__name__).debug(props)
return props

View file

@ -20,9 +20,9 @@ from pydantic.dataclasses import dataclass
from pydantic.functional_validators import ModelWrapValidatorHandler
from hexdoc.plugin import PluginManager
from hexdoc.utils.cd import RelativePath, RelativePathContext
from hexdoc.utils.cd import RelativePath, relative_path_root
from .model import DEFAULT_CONFIG, HexdocModel, init_context
from .model import DEFAULT_CONFIG, HexdocModel
ResourceType = Literal["assets", "data", ""]
@ -264,8 +264,7 @@ class PluginResourceDir(BaseResourceDir):
@contextmanager
def load(self, pm: PluginManager):
context = RelativePathContext(root=Path())
with ExitStack() as stack, init_context(context):
with ExitStack() as stack, relative_path_root(Path()):
yield list(self._load_all(pm, stack)) # NOT "yield from"
def _load_all(self, pm: PluginManager, stack: ExitStack):