{
    "item.mbd2.mbd_gadgets": "MBD Gadgets",
    "block.mbd2.elemental_evaporator": "Elemental Evaporator",
    "block.mbd2.elemental_infuser": "Elemental Infuser",
    "block.mbd2.elemental_binder": "Elemental Binder",
    "block.mbd2.elemental_extractor": "Elemental Extractor",
    "block.mbd2.basic_recycler": "Basic Recycler",
    "block.mbd2.elemental_recycler": "Elemental Recycler",
    "block.mbd2.alloy_kiln": "Alloy Kiln",
    "mbd2.elemental_binding": "Elemental Binding",
    "mbd2.recycling": "Recycling",
    "mbd2.alloying": "Alloying",
    "mbd2.extracting": "Extracting",
    "mbd2.alloying.fuel": "Alloy Kiln Fuel",
    "mbd2.elemental_infusing": "Elemental Infusing",
    "mbd2.evaporating": "Elemental Evaporating",
    "item.mbd2.mbd_gadgets.tooltip": "§2Shift + right click to switch the gadget modes.§r",
    "item.mbd2.mbd_gadgets.multiblock_builder": "MBD Gadgets - §cMultiblock Builder§r",
    "item.mbd2.mbd_gadgets.multiblock_builder.tooltip": "Right click on the controller to auto build the multiblock.",
    "item.mbd2.mbd_gadgets.recipe_debugger": "MBD Gadgets - §eRecipe Debugger§r",
    "item.mbd2.mbd_gadgets.recipe_debugger.tooltip.0": "Open UI to set a test recipe.",
    "item.mbd2.mbd_gadgets.recipe_debugger.tooltip.1": "Right click on the machine to check whether the recipe can be processed (with failure reason).",
    "item.mbd2.mbd_gadgets.recipe_debugger.tooltip.2": "Current Recipe: %s",
    "item.mbd2.mbd_gadgets.recipe_debugger.warning.recipe_type": "§cWarning§r: machine's recipe type (%d) is not equal to the recipe's recipe type (%d).",
    "item.mbd2.mbd_gadgets.recipe_debugger.raw.success": "Raw Recipe (%s) can be processed.",
    "item.mbd2.mbd_gadgets.recipe_debugger.modified.has": "Machine will modify the recipe.",
    "item.mbd2.mbd_gadgets.recipe_debugger.modified.empty": "Machine won't modify the raw recipe.",
    "item.mbd2.mbd_gadgets.recipe_debugger.modified.success": "Modified Recipe can be processed.",
    "item.mbd2.mbd_gadgets.recipe_debugger.raw.failure.0": "Raw Recipe (%s) can't be processed.",
    "item.mbd2.mbd_gadgets.recipe_debugger.modified.failure.0": "Modified Recipe can't be processed.",
    "item.mbd2.mbd_gadgets.recipe_debugger.modified.failure.1": "Modified Recipe is empty.",
    "item.mbd2.mbd_gadgets.recipe_debugger.failure.reason": "§2Reason§r: ",
    "item.mbd2.mbd_gadgets.recipe_debugger.recipe_id": "Recipe ID",
    "item.mbd2.mbd_gadgets.multiblock_debugger": "MBD Gadgets - §cMultiblock Debugger§r",
    "item.mbd2.mbd_gadgets.multiblock_debugger.tooltip": "Right click on the controller to get the reason why it doesn't assembly.",
    "item.mbd2.mbd_gadgets.multiblock_debugger.is_formed": "§aSuccess§r: Multiblock is already assembling.",
    "item.mbd2.mbd_gadgets.multiblock_debugger.success": "§aSuccess§r: Multiblock can be assembled.",
    "item.mbd2.mbd_gadgets.multiblock_debugger.catalyst.items": "§cCatalyst Items§r %s",
    "item.mbd2.mbd_gadgets.multiblock_debugger.catalyst.tags": "§cCatalyst Tags§r %s",
    "item.mbd2.mbd_gadgets.multiblock_debugger.failure.no_error": "§cFailure§r: No error found.",
    "item.mbd2.mbd_gadgets.multiblock_debugger.failure.error.info": "§cFailure info§r: %s",

    "gui.mbd2.io.import": "Import",
    "gui.mbd2.io.export": "Export",
    "gui.mbd2.io.import.both": "Both",
    "gui.mbd2.io.import.none": "None",
    "mbd2.multiblock.pattern.error": "Expected components (%s) at (%s).",
    "mbd2.multiblock.pattern.error.limited.0": "§cMaximum: %d§r",
    "mbd2.multiblock.pattern.error.limited.1": "§cMinimum: %d§r",
    "mbd2.multiblock.pattern.error.limited.2": "§cMaximum: %d per layer§r",
    "mbd2.multiblock.pattern.error.limited.3": "§cMinimum: %d per layer§r",
    "mbd2.multiblock.pattern.error.limited_exact": "§cExactly: %d§r",
    "mbd2.multiblock.pattern.error.limited_within": "§cBetween %d and %d§r",
    "mbd2.multiblock.pattern.error.chunk": "§cChunk is unload§r",
    "mbd2.multiblock.pattern.error.init": "§cMultiblock is not initialized§r",
    "mbd2.multiblock.pattern.location_end": "§cVery End§r",
    "mbd2.multiblock.pattern.replaceable_air": "Replaceable by Air",
    "mbd2.multiblock.pattern.single": "§6Only this block can be used§r",
    "mbd2.gui.content.chance_0": "§cNot Consumed§r",
    "mbd2.gui.content.chance_0_short": "§cNC§r",
    "mbd2.gui.content.chance_1": "§eChance: %s§r",
    "mbd2.gui.content.per_tick": "§aConsumed/Produced Per Tick§r",
    "mbd2.gui.content.slot_name": "§4Slot Name: %s§r",
    "mbd2.gui.content.ui_name": "§UI Name: %s§r",
    "mbd2.gui.content.tier_boost": "§eTier Chance:§r +%s/tier",
    "mbd2.gui.content.tips.per_second_short": "§a/second§r",
    "mbd2.gui.content.tips.per_tick_short": "§a/tick§r",
    "mbd2.gui.content.units.per_second": "/s",
    "mbd2.gui.content.units.per_tick": "/t",
    "mbd2.recipe_logic.condition_fails": "Condition Fails",
    "mbd2.recipe_logic.insufficient_fuel": "Insufficient Fuel",
    "mbd2.recipe_logic.insufficient_in": "Insufficient Inputs",
    "mbd2.recipe_logic.insufficient_out": "Insufficient Outputs",
    "recipe.condition.name": "Recipe Condition",
    "recipe.condition.biome": "biome",
    "recipe.condition.biome.tooltip": "Biome: %s",
    "recipe.condition.dimension": "dimension",
    "recipe.condition.dimension.tooltip": "Dimension: %s",
    "recipe.condition.pos_y": "position y level",
    "recipe.condition.pos_y.tooltip": "Y Level: %d <= Y <= %d",
    "recipe.condition.rain": "rain level",
    "recipe.condition.rain.tooltip": "Rain Level: from %d to %d",
    "recipe.condition.thunder": "thunder level",
    "recipe.condition.thunder.tooltip": "Thunder Level: from %d to %d",
    "recipe.condition.day_time": "day time",
    "recipe.condition.day_time.tooltip.true": "Day Time: require day",
    "recipe.condition.light": "Light",
    "recipe.condition.light.tooltip": "Sky Light: [%d, %d], Block Light: [%d, %d], Can See Sky: %s",
    "recipe.condition.redstone_signal": "redstone signal",
    "recipe.condition.redstone_signal.tooltip": "Redstone signal: [%d, %d]",
    "recipe.condition.day_time.tooltip.false": "Day Time: require night",
    "recipe.condition.machine_level": "machine level",
    "recipe.condition.machine_level.tooltip": "The machine level >= %d",
    "recipe.condition.machine_custom_data": "machine nbt data",
    "recipe.condition.machine_custom_data.tooltip": "machine data: %d",
    "recipe.condition.block": "block",
    "recipe.condition.block.tooltip": "blocks [%s] count in the structure from %d to %d",
    "recipe.condition.create_rotation": "Create Rotation",
    "recipe.condition.create_rpm.tooltip": "RPM range [%d, %d], Stress range [%d, %d]",
    "recipe.condition.mekanism_heat": "Mek Temperature",
    "recipe.condition.mekanism_heat.tooltip": "Mek Temperature range [%d, %d]",
    "recipe.condition.pneumatic_temperature": "PNC Temperature",
    "recipe.condition.pneumatic_temperature.tooltip": "PNC Temperature range [%d°C, %d°C]",
    "recipe.condition.pneumatic_pressure": "PNC Pressure",
    "recipe.condition.pneumatic_pressure.air.tooltip": "PNC Air range [%d, %d]",
    "recipe.condition.pneumatic_pressure.pressure.tooltip": "PNC Pressure range [%d, %d]",

    "project.reload": " reloaded!",
    "project.reload.recipe": "§cNOTE:§r You have to execute /reload or re-enter the world to actually reload the built-in recipes.",
    "config.require_restart": "§cYou need to restart the game to apply the changes.§r",

    "config.recipe.condition.reverse": "reverse",
    "config.recipe.condition.reverse.tooltip": "check reversed condition instead",
    "config.recipe.condition.biome.tooltip": "biome registry name",
    "config.recipe.condition.dimension.tooltip": "dimension registry name",
    "config.recipe.condition.pos_y.min": "min y",
    "config.recipe.condition.pos_y.max": "max y",
    "config.recipe.condition.weather.min": "min level",
    "config.recipe.condition.weather.max": "max level",
    "config.recipe.condition.day_time.is_day": "is day",
    "config.recipe.condition.redstone_signal.signal.min": "min signal",
    "config.recipe.condition.redstone_signal.signal.max": "max signal",
    "config.recipe.condition.block.min": "min count",
    "config.recipe.condition.block.max": "max count",
    "config.recipe.condition.block.blocks": "block filters",
    "config.recipe.condition.machine_level.level": "machine level",
    "config.recipe.condition.machine_level.level.tooltip": "The machine level of the machine.",
    "config.recipe.condition.machine_custom_data.data": "machine data",
    "config.recipe.condition.machine_custom_data.data.tips": "The nbt data of the machine.",
    "config.recipe.condition.machine_custom_data.only_check_custom_data": "only check custom data",
    "config.recipe.condition.machine_custom_data.only_check_custom_data.tips.0": "If enable, only check the custom data.",
    "config.recipe.condition.machine_custom_data.only_check_custom_data.tips.1": "If disable, will check the machine nbt (saveWithID).",
    "config.recipe.condition.rpm.min": "min rpm",
    "config.recipe.condition.rpm.max": "max rpm",
    "config.recipe.condition.stress.min": "min stress",
    "config.recipe.condition.stress.max": "max stress",
    "config.recipe.condition.heat.min": "min heat",
    "config.recipe.condition.heat.max": "max heat",
    "config.recipe.condition.temperature.min": "min temperature",
    "config.recipe.condition.temperature.max": "max temperature",
    "config.recipe.condition.light.min_sky_light": "min sky light",
    "config.recipe.condition.light.max_sky_light": "max sky light",
    "config.recipe.condition.light.min_block_light": "min block light",
    "config.recipe.condition.light.max_block_light": "max block light",
    "config.recipe.condition.pressure.min": "min pressure / air",
    "config.recipe.condition.pressure.max": "max pressure / air",
    "config.recipe.condition.is_air": "is air",
    "config.recipe.condition.light.can_see_sky": "can see sky",
    "config.recipe.condition.light.can_see_sky.tooltip": "It is required to open up the open air.",


    "config.block_properties.render_types": "Render Types",
    "config.block_properties.render_types.tooltip": "The render type of the block.",
    "config.block_properties.render_types.solid": "Render in Solid",
    "config.block_properties.render_types.cutout": "Render in Cutout",
    "config.block_properties.render_types.cutout_mipped": "Render in Cutout Mipped",
    "config.block_properties.render_types.translucent": "Render in Translucent",
    "config.block_properties.rotation_state": "Rotation State",
    "config.block_properties.rotation_state.tooltip": "The rotation state of the block.",
    "config.block_properties.has_collision": "Has Collision",
    "config.block_properties.has_collision.tooltip": "If the block has the collision box.",
    "config.block_properties.can_occlude": "Can Occlude",
    "config.block_properties.can_occlude.tooltip": "If the block can occlude other blocks.",
    "config.block_properties.dynamic_shape": "Dynamic Shape",
    "config.block_properties.dynamic_shape.tooltip": "If the block has a dynamic shape.",
    "config.block_properties.ignited_by_lava": "Ignited by Lava",
    "config.block_properties.ignited_by_lava.tooltip": "If the block can be ignited by lava.",
    "config.block_properties.is_air": "Is Air",
    "config.block_properties.is_air.tooltip": "If the block can be regarded as an air block.",
    "config.block_properties.is_suffocating": "Is Suffocating",
    "config.block_properties.is_suffocating.tooltip": "If the block can suffocate entities.",
    "config.block_properties.emissive": "Emissive",
    "config.block_properties.emissive.tooltip": "If the block is emissive rendering.",
    "config.block_properties.friction": "Friction",
    "config.block_properties.friction.tooltip": "Determines how much velocity is maintained while moving on top of this block",
    "config.block_properties.speed_factor": "Speed Factor",
    "config.block_properties.speed_factor.tooltip": "Determines how much velocity is maintained while moving on top of this block",
    "config.block_properties.jump_factor": "Jump Factor",
    "config.block_properties.jump_factor.tooltip": "Determines how high the player will jump when on top of this block",
    "config.block_properties.destroy_time": "Destroy Time",
    "config.block_properties.destroy_time.tooltip": "How long it takes to break the block.",
    "config.block_properties.explosion_resistance": "Explosion Resistance",
    "config.block_properties.explosion_resistance.tooltip": "How resistant the block is to explosions.",
    "config.block_properties.block_sound": "Block Sound",
    "config.block_properties.block_sound.volume": "Volume",
    "config.block_properties.block_sound.pitch": "Pitch",
    "config.block_properties.block_sound.break": "Break Sound",
    "config.block_properties.block_sound.place": "Place Sound",
    "config.block_properties.block_sound.step": "Step Sound",
    "config.block_properties.block_sound.hit": "Hit Sound",
    "config.block_properties.block_sound.fall": "Fall Sound",
    "config.block_properties.use_ao": "Use AO",
    "config.block_properties.use_ao.tooltip": "Whether render the block with Ambient Occlusion.",
    "config.block_properties.transparent": "Transparent block",
    "config.block_properties.transparent.tooltip": "enable it if your block is a glass-like block.",
    "config.block_properties.force_solid": "Force Solid",
    "config.block_properties.force_solid.tooltip": "enable it to force the block solid. otherwise its depends on the block shape.",
    "config.block_properties.replaceable": "Replaceable",
    "config.block_properties.replaceable.tooltip": "enable it the block can be replaced by the flowing fluid.",
    "config.block_properties.no_particle_on_break": "No Particle On Break",
    "config.block_properties.no_particle_on_break.tooltip": "enable it to remove breaking particle.",
    "config.block_properties.can_be_waterlogged": "Can Be Waterlogged",
    "config.block_properties.can_be_waterlogged.tooltip": "enable it if the block can be waterlogged.",
    "config.block_properties.collision_shape_full_block": "Is the collision shape full block.",
    "config.block_properties.collision_shape_full_block.tooltip": "It affects whether neighbor blocks render the connected sides.",

    "config.item_properties.max_stack_size": "Max Stack Size",
    "config.item_properties.max_stack_size.tooltip": "The maximum stack size of the item.",
    "config.item_properties.rarity": "Rarity",
    "config.item_properties.rarity.tooltip": "The rarity of the item.",
    "config.item_properties.use_block_light": "Use Block Light",
    "config.item_properties.use_block_light.tooltip.0": "Allows control of the lighting when rendering a model in a GUI.",
    "config.item_properties.use_block_light.tooltip.1": "True - the model will be lit from the side, like a block.",
    "config.item_properties.use_block_light.tooltip.2": "False - the model will be lit from the front, like an item.",
    "config.item_properties.item_tooltips": "Item Tooltips",
    "config.item_properties.item_tooltips.tooltip": "The tooltips of the item which will be shown in the GUI by hovering.",
    "config.item_properties.is_gui_3d": "Is GUI 3D",
    "config.item_properties.is_gui_3d.tooltip": "Whether render the item in GUI as a 3D model.",
    "config.item_properties.creative_tab": "Creative Tab",
    "config.item_properties.creative_tab.tooltip": "The creative tab to display the item in.",
    "config.item_properties.renderer": "Item Renderer",
    "config.item_properties.renderer.tooltip.0": "Enable - set a separated renderer for item.",
    "config.item_properties.renderer.tooltip.1": "Disable - use the renderer of root state machine instead.",
    "config.item_properties.slot_preview": "Slot preview",

    "config.machine_state.renderer": "Block Renderer",
    "config.machine_state.renderer.tooltip.0": "Enable - set a separated renderer for this machine state.",
    "config.machine_state.renderer.tooltip.1": "Disable - use the renderer of root state machine instead.",
    "config.machine_state.shape": "Shape",
    "config.machine_state.shape.tooltip.0": "shape is consist of cubes, make sure the shape radius is no more than 2 blocks (minecraft rule).",
    "config.machine_state.shape.tooltip.1": "Enable - set a separated shape for this machine state.",
    "config.machine_state.shape.tooltip.2": "Disable - use the shape of root state machine instead.",
    "config.machine_state.shape.tooltip.3": "§4Note:§r Setting a separated shape have to set the §cdynamic shape§r to true in the block properties as well.",
    "config.machine_state.light": "Light",
    "config.machine_state.light.tooltip.0": "Enable - set a separated emissive light for this machine state.",
    "config.machine_state.light.tooltip.1": "Disable - use the light of root state machine instead.",
    "config.machine_state.rendering_box": "Render Bounding Box",
    "config.machine_state.rendering_box.tooltip.0": "It's used to define a visible box for BlockEntityRenderer in the world.",
    "config.machine_state.rendering_box.tooltip.1": "Enable - set a separated rendering box for this machine state.",
    "config.machine_state.rendering_box.tooltip.2": "Disable - use the rendering box of root state machine instead.",
    "config.machine_state.machine_sound": "Machine Sound",
    "config.machine_state.machine_sound.tooltip.0": "The sound that plays when the machine first enters this state.",
    "config.machine_state.machine_sound.tooltip.1": "Enable - set a separated sound for this machine state.",
    "config.machine_state.machine_sound.tooltip.2": "Disable - use the sound of root state machine instead.",

    "config.machine_sound.sound": "Sound",
    "config.machine_sound.source": "Source",
    "config.machine_sound.source.tooltip": "The source of the sound.",
    "config.machine_sound.delay": "delay",
    "config.machine_sound.delay.tooltip": "The delay of the sound.",
    "config.machine_sound.volume": "Volume",
    "config.machine_sound.volume.tooltip": "The volume of the sound.",
    "config.machine_sound.pitch": "Pitch",
    "config.machine_sound.pitch.tooltip": "The pitch of the sound.",
    "config.machine_sound.loop": "Loop",
    "config.machine_sound.loop.tooltip": "Whether the sound loops.",
    "config.machine_sound.loop_with_shuffle": "Loop With Shuffle",
    "config.machine_sound.loop_with_shuffle.tooltip": "If ture, the sound will be shuffled based on the weight.",

    "config.machine_settings.machine_level": "Machine Level",
    "config.machine_settings.machine_level.tooltip": "The machine level. It can be used for recipe conditions.",
    "config.machine_settings.has_ui": "Has UI",
    "config.machine_settings.has_ui.tooltip": "Whether the machine has a GUI.",
    "config.machine_settings.signal_connection": "Redstone Connection",
    "config.machine_settings.signal_connection.tooltip.0": "Whether the redstone can connect to the side",
    "config.machine_settings.signal_connection.tooltip.1": "You can use the node graph to set output signal",
    "config.machine_settings.signal_connection.front": "front connection",
    "config.machine_settings.signal_connection.back": "back connection",
    "config.machine_settings.signal_connection.left": "left connection",
    "config.machine_settings.signal_connection.right": "right connection",
    "config.machine_settings.signal_connection.top": "top connection",
    "config.machine_settings.signal_connection.bottom": "bottom connection",
    "config.machine_settings.drop_machine_item": "Drop machine item when broken",
    "config.machine_settings.drop_machine_item.tooltip.0": "Whether the machine will drop the machine item when it is broken.",
    "config.machine_settings.drop_machine_item.tooltip.1": "If its a multiblock controller formed with a candidate block, it will drop the candidate block instead of the machine item.",
    "config.machine_settings.drop_machine_item.tooltip.2": "You can still use the loot table or the node graph to control the drop.",
    "config.machine_settings.parallel": "Has Parallel",
    "config.machine_settings.max_parallel": "Max Parallel",
    "config.machine_settings.max_parallel.tooltip": "The value is he maximum number of parallel that can be processed. Do not set it too high.",
    "config.machine_settings.modify_duration": "Modify Duration",
    "config.machine_settings.modify_duration.tooltip": "Whether modify the duration of the recipe.",
    "config.recipe_logic_settings.consume_inputs_after_working": "Consume Inputs After Working",
    "config.recipe_logic_settings.consume_inputs_after_working.tooltip.0": "If false, inputs will be consumed before recipe processing as usual.",
    "config.recipe_logic_settings.consume_inputs_after_working.tooltip.1": "If true, inputs will be consumed after working (before output). During the recipe processing, the current recipe process will be discarded if the inputs do not match it anymore.",

    "config.recipe_logic_settings.recipe_damping_value": "Recipe Damping Value",
    "config.recipe_logic_settings.recipe_damping_value.tooltip": "if the recipe handling is waiting, damping value is the decreased ticks of the current progress.",
    "config.recipe_logic_settings.always_search_recipe": "Always Re-search Recipe",
    "config.recipe_logic_settings.always_search_recipe.tooltip.0": "If false, the machine will automatically attempt to execute the last recipe again once it finishes, which offers better performance.",
    "config.recipe_logic_settings.always_search_recipe.tooltip.1": "If true, the machine will re-search all available recipes each time, which is useful when multiple recipes are available for execution with different priority levels.",
    "config.recipe_logic_settings.always_modify_recipe": "Always Modify Recipe",
    "config.recipe_logic_settings.always_modify_recipe.tooltip.0": "If false, the machine will automatically attempt to execute the last recipe again once it finishes, which offers better performance.",
    "config.recipe_logic_settings.always_modify_recipe.tooltip.1": "If true, the machine will try to apply modifier to last recipe, if failed, try to research recipe.",

    "config.definition.id.tooltip": "The unique identifier of the definition.",
    "config.definition.block_properties": "Block Properties",
    "config.definition.block_properties.tooltip": "The properties of the block.",
    "config.definition.item_properties": "Item Properties",
    "config.definition.item_properties.tooltip": "The properties of the item.",
    "config.definition.machine_settings": "Machine Settings",
    "config.definition.machine_settings.tooltip": "The settings of the machine.",
    "config.definition.recipe_logic_settings": "Has Recipe Logic",
    "config.definition.recipe_logic_settings.tooltip.0": "If false, the machine will not process recipes.",
    "config.definition.recipe_logic_settings.tooltip.1": "Please set it false for better performance if the machine does not need to process recipes.",
    "config.definition.machine_events": "Machine Events",
    "config.definition.machine_events.tooltip": "The events of the machine.",

    "config.definition.part_settings": "Multiblock Part Settings",
    "config.definition.part_settings.tooltip.0": "Whether it can be regarded as a part of a multiblock.",
    "config.definition.part_settings.tooltip.1": "If false, the machine will perform as a normal single block.",
    "config.definition.part_settings.tooltip.2": "If true, the machine will support additional \"part\" features on a single block",
    "config.part_settings.can_share": "Can Share",
    "config.part_settings.can_share.tooltip": "Whether the part can be shared among multiple multiblocks.",
    "config.part_settings.formed_tips": "Machine State Tips",
    "config.part_settings.formed_tips.info": "There is no §cformed§r state found, do you want to auto-gen the state.",
    "config.part_settings.target_content.tooltip": "The target content should be modified.",
    "config.part_settings.proxy_capability.trait_filter": "Trait Filter",
    "config.part_settings.proxy_capability.trait_name_filter": "Trait Name Filter",
    "config.part_settings.proxy_capability.trait_name_filter.tooltip.0": "All traits that name contain the filter name will be proxied.",
    "config.part_settings.proxy_capability.trait_name_filter.tooltip.1": "e.g. if the filer name is §cempty§r, all traits that name contain will be proxied.",
    "config.part_settings.proxy_controller_capabilities": "Proxy Controller Trait Capabilities",
    "config.part_settings.proxy_controller_capabilities.tooltip": "If the part doesnt contain the required capability, the part will proxy the capabilities from controllers’ traits.",

    "config.recipe.recipe_modifier": "Recipe Modifier",
    "config.recipe.recipe_modifiers": "Recipe Modifiers",
    "config.recipe.recipe_modifiers.tooltip": "To modify the (self / controller) recipe on the fly. You can use it to make a upgrade / plugin part.",
    "config.recipe.content_modifier": "Content Modifier",
    "config.recipe.content_modifier.tooltip": "The content modifier for recipe content. e.g. item count, fluid amount. etc",
    "config.recipe.duration_modifier": "Duration Modifier",
    "config.recipe.duration_modifier.tooltip": "The duration modifier for recipe duration.",
    "config.recipe.recipe_conditions": "Recipe Conditions",
    "config.recipe.recipe_conditions.tooltip": "Handling Recipe Modifiers if and only if conditions are satisfied.",
    "config.recipe.recipe_condition.type": "Condition Type",
    "config.recipe.target_content": "Target Content",
    "config.recipe.target_content.tooltip": "e.g. IN - input content, OUT - output content.",

    "config.machine_event.graph.edit": "edit graph",
    "config.machine_event.graph.add": "add graph",
    "config.machine_event.graph.remove": "remove graph",
    "config.machine_event.graph.editing": "editing",

    "config.definition.multiblock_settings": "Multiblock Controller Settings",
    "config.definition.multiblock_settings.tooltip": "Multiblock Controller Behaviour",
    "config.multiblock_settings.catalyst": "catalyst",
    "config.multiblock_settings.catalyst.tooltip": "require a catalyst for multiblock forming",
    "config.multiblock_settings.catalyst.consume_type": "consume type",
    "config.multiblock_settings.catalyst.consume_type.consume_item": "consume item",
    "config.multiblock_settings.catalyst.consume_type.consume_item.amount": "item amount",
    "config.multiblock_settings.catalyst.consume_type.consume_durability": "durability",
    "config.multiblock_settings.catalyst.consume_type.consume_durability.amount": "durability value",
    "config.multiblock_settings.catalyst.candidates": "controller candidates",
    "config.multiblock_settings.catalyst.candidates.tooltip": "If enabled, use catalyst on these blocks can form the multiblock as well.",
    "config.multiblock_settings.show_ui_only_formed": "show UI only when formed",
    "config.multiblock_settings.show_ui_when_click_structure": "show UI when click structure",
    "config.multiblock_settings.show_ui_when_click_structure.tooltip": "If true, right-click on the blocks of the structure can open ui.",

    "config.definition.kinetic_machine_settings": "Kinetic Machine Settings",
    "config.definition.kinetic_machine_settings.tooltip": "The settings of the create kinetic machine, e.g. rotation, models.",
    "config.kinetic_machine.is_generator": "Is Generator",
    "config.kinetic_machine.is_generator.tooltip": "Whether the kinetic machine is a generator.",
    "config.kinetic_machine.torque": "Torque",
    "config.kinetic_machine.torque.tooltip.0": "Torque defines the relationship between rpm and stress.",
    "config.kinetic_machine.torque.tooltip.1": "rpm = stress / torque.",
    "config.kinetic_machine.front_rotation": "Rotation Axis",
    "config.kinetic_machine.front_rotation.tooltip": "Get the rotation axis facing based on the machine front facing",
    "config.kinetic_machine.has_back_rotation": "Has Back Rotation",
    "config.kinetic_machine.has_back_rotation.tooltip.0": "If true, the rotation will be passed to the back of the rotation axis side.",
    "config.kinetic_machine.has_back_rotation.tooltip.1": "If false, only the rotation axis side can be rotated.",
    "config.kinetic_machine.max_rpm": "Max RPM",
    "config.kinetic_machine.max_rpm.tooltip.0": "If is a generator, the maximum RPM can provide.",
    "config.kinetic_machine.max_rpm.tooltip.1": "If not a generator, over rpm will be broke.",
    "config.kinetic_machine.max_stress": "Max Stress",
    "config.kinetic_machine.use_flywheel": "Use Flywheel",
    "config.kinetic_machine.use_flywheel.tooltip": "Whether the kinetic renderer uses the flywheel instance. (flywheel will have better performance)",
    "config.kinetic_machine.flywheel_render_layer": "Flywheel Render Layer",
    "config.kinetic_machine.flywheel_render_layer.tooltip": "The render layer of the flywheel instance.",

    "config.create_machine_state.rotation_renderer": "Rotation Renderer",
    "config.create_machine_state.rotation_renderer.tooltip": "Kinetic Part Renderer",
    "config.create_kinetic_machine.is_preview_rotating": "Is Rotating Preview",
    "config.create_kinetic_machine.preview_stress": "Preview Stress (su)",
    "config.create_kinetic_machine.preview_speed": "Preview RPM: %2f",

    "config.definition.trait.name": "Name",
    "config.definition.trait.name.tooltip": "Name has to be unique.",
    "config.definition.trait.priority": "Priority",
    "config.definition.trait.priority.tooltip": "The priority of the capability, higher priority will be processed / presented first.",
    "config.definition.trait.capability_io": "Capability IO",
    "config.definition.trait.capability_io.tooltip.0": "Behavior of capability on all sides of the machine.",
    "config.definition.trait.capability_io.tooltip.1": "e.g. if you set the §4top§r as §cOUT§r for a item capability trait. The top side of the machine can only be extracted.",
    "config.definition.trait.capability_io.internal": "internal",
    "config.definition.trait.capability_io.internal.tooltip": "Behavior when side is not specified.",
    "config.definition.trait.capability_io.front": "front",
    "config.definition.trait.capability_io.back": "back",
    "config.definition.trait.capability_io.left": "left",
    "config.definition.trait.capability_io.right": "right",
    "config.definition.trait.capability_io.top": "top",
    "config.definition.trait.capability_io.bottom": "bottom",
    "config.definition.trait.connected_io": "Connected IO",
    "config.definition.trait.connected_io.tooltip": "Connections of the specific side",
    "config.definition.trait.auto_io": "Auto IO",
    "config.definition.trait.auto_io.tooltip": "Apply auto io if the trait support it. (e.g. item, fluid, forge energy, etc.)",
    "config.definition.trait.auto_io.interval": "interval",
    "config.definition.trait.auto_io.interval.tooltip": "The interval between each auto IO action in tick.",
    "config.definition.trait.auto_io.amount": "amount",
    "config.definition.trait.auto_io.amount.tooltip": "The amount of the auto IO action. (e.g. how many stacks / how much fluid amount can be processed per action.)",
    "config.definition.trait.recipe_handler": "Recipe Handler IO",
    "config.definition.trait.recipe_handler.tooltip": "Whether this trait is considered an input or an output in recipe handling",
    "config.definition.trait.gui_io": "GUI IO",
    "config.definition.trait.gui_io.tooltip": "Whether this trait io directions for GUI handling",
    "config.definition.trait.distinct": "Distinct",
    "config.definition.trait.distinct.tooltip.0": "Enabled - This trait is availabe during recipe processing if and only if all ingredient of the same type are consumed or produced only in this trait.",
    "config.definition.trait.distinct.tooltip.1": "Disabled - Recipe processing when any combination of non-distinct traits satisfies the recipe.",
    "config.definition.trait.slot_names": "Slot Names",
    "config.definition.trait.slot_names.tooltip": "The trait slot names, if the recipe's ingredient specifies a slot name, then the ingredient can only be processed at the trait that has that slot name.",

    "config.definition.trait.filter.whitelist": "Whitelist Mode",
    "config.definition.trait.filter.match_nbt": "Match NBT",
    "config.definition.trait.filter.items": "Items",
    "config.definition.trait.filter.fluids": "Fluids",
    "config.definition.trait.filter.item_tags": "Item Tags",
    "config.definition.trait.filter.fluid_tags": "Fluid Tags",
    "config.definition.trait.filter.chemicals": "Chemicals",
    "config.definition.trait.filter.chemical_tags": "Chemical Tags",

    "ldlib.gui.editor.register.editor.machine.trait_ui_view": "Trait UI View",
    "config.definition.trait.ui.generate": "add",
    "config.definition.trait.ui.generate.tooltip": "§egenerate a template for the trait UI.§r",

    "config.definition.trait.item_slot.name": "Item Slot",
    "config.definition.trait.item_slot.ui.tooltip": "You can use §cItem Slot§r to customize slots. Item Slots you add yourself need to set their ids as §e[definition name]_[index of slot]§r. For example, if your definition's name is §emy_slot§r, if you want to bind the slot to the slot index of 1, its id should be set to §emy_slot_1§r.",
    "config.definition.trait.item_slot.slot_size": "Slot Size",
    "config.definition.trait.item_slot.slot_size.tooltip": "The size of the slot.",
    "config.definition.trait.item_slot.slot_limit": "Slot Limit",
    "config.definition.trait.item_slot.slot_limit.tooltip": "The max stored amount of the slot.",
    "config.definition.trait.item_slot.fancy_renderer": "Fancy Item Renderer",
    "config.definition.trait.item_slot.fancy_renderer.tooltip": "Allow you render stored item in the world. (e.g. drawer, pedestal.)",
    "config.definition.trait.item_slot.filter": "Filter",
    "config.definition.trait.item_slot.filter.tooltip": "The item filter of the slot.",
    "config.definition.trait.item_slot.auto_io.tooltip": "Auto extract from the nearby inventory or drop to the nearby inventory.",
    "config.definition.trait.auto_world_io.input": "Auto Suck",
    "config.definition.trait.auto_world_io.input.tooltip": "auto suck contents from the world.",
    "config.definition.trait.auto_world_io.output": "Auto Drop",
    "config.definition.trait.auto_world_io.output.tooltip": "auto drop contents to the world.",
    "config.definition.trait.auto_world_io.range": "Range",
    "config.definition.trait.auto_world_io.range.tooltip": "The range of sucking/dropping. it will be rotated by the machine facing.",
    "config.definition.trait.auto_world_io.interval": "Interval",
    "config.definition.trait.auto_world_io.interval.tooltip": "The interval between each auto IO action in tick.",
    "config.definition.trait.auto_world_io.speed": "Max Speed",
    "config.definition.trait.auto_world_io.speed.tooltip": "how many items can be processed per action.",

    "config.definition.trait.fluid_tank.name": "Fluid Tank",
    "config.definition.trait.fluid_tank.ui.tooltip": "You can use §cFluid Slot§r to customize fluid tanks. Fluid Slots you add yourself need to set their ids as §e[definition name]_[index of tank]§r. For example, if your definition's name is §emy_tank§r, if you want to bind the slot to the tank index of 1, its id should be set to §emy_tank_1§r.",
    "config.definition.trait.fluid_tank.tank_size": "Tank Size",
    "config.definition.trait.fluid_tank.tank_size.tooltip": "The size of the tank.",
    "config.definition.trait.fluid_tank.capacity": "Capacity",
    "config.definition.trait.fluid_tank.allow_same_fluids": "Allow Same Fluids",
    "config.definition.trait.fluid_tank.allow_same_fluids.tooltip": "Can different tanks be filled with the same fluid.",
    "config.definition.trait.fluid_tank.fancy_renderer": "Fancy Fluid Renderer",
    "config.definition.trait.fluid_tank.fancy_renderer.tooltip.0": "Allow you render stored fluid in the world. (e.g. fluid drawer, tank).",
    "config.definition.trait.fluid_tank.fancy_renderer.tooltip.1": "(it can only show the fluid in the first tank)",
    "config.definition.trait.fluid_tank.filter": "Filter",
    "config.definition.trait.fluid_tank.filter.tooltip": "The fluid filter of the tank.",
    "config.definition.trait.fluid_tank.auto_io.tooltip": "Auto drain from the nearby tank or fill to the nearby tank.",

    "config.definition.trait.forge_energy_storage.name": "Forge Energy Storage",
    "config.definition.trait.forge_energy_storage.capacity": "Capacity",
    "config.definition.trait.forge_energy_storage.max_receive": "Max Receive",
    "config.definition.trait.forge_energy_storage.max_receive.tooltip": "Max received energy per action.",
    "config.definition.trait.forge_energy_storage.max_extract": "Max Extract",
    "config.definition.trait.forge_energy_storage.max_extract.tooltip": "Max extracted energy per action.",
    "config.definition.trait.forge_energy_storage.ui_container_hover": "Stored: %dFE / %dFE",
    "config.definition.trait.forge_energy_storage.auto_io.tooltip": "Auto extract from the nearby energy storage or fill to the nearby energy storage.",
    "config.definition.trait.forge_energy_storage.fancy_renderer": "Fancy Forge Storage Renderer",
    "config.definition.trait.forge_energy_storage.fancy_renderer.tooltip": "Allow you render stored energy in the world. (e.g. Energy Container).",

    "config.definition.trait.entity_handler.name": "Entity Handler",
    "config.definition.trait.entity_handler.area": "Area",
    "config.definition.trait.entity_handler.area.tooltip.0": "If it's input, the detection area of the entity.",
    "config.definition.trait.entity_handler.area.tooltip.1": "If it's output, the random spawn area of the entity.",

    "config.definition.trait.ae2_me_interface.name": "AE2 ME Interface",
    "config.definition.trait.ae2_me_interface.slot_size": "Slot Size",

    "config.definition.trait.botania_mana_storage.name": "Botania Mana Storage",
    "config.definition.trait.botania_mana_storage.capacity": "Capacity",
    "config.definition.trait.botania_mana_storage.can_attach_spark": "Can Attach Spark",
    "config.definition.trait.botania_mana_storage.can_attach_spark.tooltip": "Only the first trait will be able to attach a spark.",
    "config.definition.trait.botania_mana_storage.ui_container_hover": "Stored: %d / %d Mana",
    "config.definition.trait.botania_mana_storage.auto_io.tooltip": "Auto extract from the nearby mana storage or fill to the nearby mana storage.",
    "config.definition.trait.botania_mana_storage.fancy_renderer": "Fancy Botania Mana Renderer",
    "config.definition.trait.botania_mana_storage.fancy_renderer.tooltip": "Allow you render stored mana in the world. (e.g. Mana Storage).",

    "config.definition.trait.aura_handler.name": "Aura Handler",
    "config.definition.trait.aura_handler.radius": "Radius",
    "config.definition.trait.aura_handler.radius.tooltip": "The radius of the aura area.",

    "config.definition.trait.pneumatic_pressure_air_handler.name": "Pressure Air Handler",
    "config.definition.trait.pneumatic_pressure_air_handler.volume": "volume",
    "config.definition.trait.pneumatic_pressure_air_handler.max_pressure": "Max Pressure",
    "config.definition.trait.pneumatic_pressure_air_handler.max_pressure.tips": "Its not the actual max pressure of the air handler, but the max pressure for progress bar display.",
    "config.definition.trait.pneumatic_pressure_air_handler.ui_container_hover": "Stored: %d / %d pressure",
    "config.definition.trait.pneumatic_pressure_air_handler.connected_io.tooltip": "Can connected to the side of the air handler.",
    "config.definition.trait.pneumatic_pressure_air_handler.danger_pressure": "Danger Pressure",
    "config.definition.trait.pneumatic_pressure_air_handler.danger_pressure.tips.0": "Get the \"danger\" pressure level. If air is added to the handler and the pressure level is above the danger level, there is a chance of explosion, which increases as the pressure increases.",
    "config.definition.trait.pneumatic_pressure_air_handler.danger_pressure.tips.1": "If the value is 0, the danger pressure level is the same as the max pressure level.",
    "config.definition.trait.pneumatic_pressure_air_handler.critical_pressure": "Critical Pressure",
    "config.definition.trait.pneumatic_pressure_air_handler.critical_pressure.tips.0": "Get the \"critical\" pressure level, which is the hard maximum pressure for this handler.  If air is added and the pressure is at or above this level, an explosion is inevitable!",
    "config.definition.trait.pneumatic_pressure_air_handler.critical_pressure.tips.1": "If the value is 0, the critical pressure level is the same as the danger level.",

    "config.definition.trait.pneumatic_heat_exchanger.name": "Pressure Heat Exchanger",
    "config.definition.trait.pneumatic_heat_exchanger.thermal_capacity": "Thermal Capacity",
    "config.definition.trait.pneumatic_heat_exchanger.thermal_capacity.tips.0": "The higher the capacity, the more heat can be 'stored'.",
    "config.definition.trait.pneumatic_heat_exchanger.thermal_capacity.tips.1": "E.g. an object with a heat capacity of double the heat * capacity of another object will require twice as much heat gain or loss to adjust the temperature by the same * amount.",
    "config.definition.trait.pneumatic_heat_exchanger.thermal_resistance": "Thermal Resistance",
    "config.definition.trait.pneumatic_heat_exchanger.thermal_resistance.tips": "the thermal resistance, higher resistance means slower heat transfer",
    "config.definition.trait.pneumatic_heat_exchanger.ui_container_hover": "Stored: %d°C",

    "config.definition.trait.embers_ember_capability.name": "Embers ember capability",
    "config.definition.trait.embers_ember_capability.capacity": "Capacity",
    "config.definition.trait.embers_ember_capability.ui_container_hover": "Stored: %d / %d ember",
    "config.definition.trait.embers_ember_capability.auto_io.tooltip": "Auto extract from the nearby ember storage or fill to the nearby ember storage.",
    "config.definition.trait.embers_ember_capability.fancy_renderer": "Embers Ember Storage Renderer",
    "config.definition.trait.embers_ember_capability.fancy_renderer.tooltip": "Allow you render stored energy in the world. (e.g. Energy Container).",

    "config.definition.trait.gtm_energy_container.name": "GTM Energy Container",
    "config.definition.trait.gtm_energy_container.capacity": "Capacity",
    "config.definition.trait.gtm_energy_container.explosion_machine": "Explosion Machine",
    "config.definition.trait.gtm_energy_container.explosion_machine.tooltip": "Whether the machine will explode when the voltage is overed.",
    "config.definition.trait.gtm_energy_container.input_voltage": "Input Voltage",
    "config.definition.trait.gtm_energy_container.input_voltage.tooltip": "The input voltage of the energy container.",
    "config.definition.trait.gtm_energy_container.input_amperage": "Input amperage",
    "config.definition.trait.gtm_energy_container.input_amperage.tooltip": "If its capability io is OUT or BOTH, Max input eu (voltage * amp) per tick.",
    "config.definition.trait.gtm_energy_container.output_voltage": "Output Voltage",
    "config.definition.trait.gtm_energy_container.output_voltage.tooltip": "The output voltage of the energy container.",
    "config.definition.trait.gtm_energy_container.output_amperage": "Output amperage",
    "config.definition.trait.gtm_energy_container.output_amperage.tooltip": "If its capability io is IN or BOTH, Max output eu (voltage * amp) per tick.",
    "config.definition.trait.gtm_energy_container.ui_container_hover": "Stored: %d / %d eu",
    "config.definition.trait.gtm_energy_container.auto_io.tooltip": "Auto extract from the nearby energy storage or fill to the nearby energy storage.",
    "config.definition.trait.gtm_energy_container.fancy_renderer": "Fancy GTM Energy Container Renderer",
    "config.definition.trait.gtm_energy_container.fancy_renderer.tooltip": "Allow you render stored energy in the world. (e.g. Energy Container).",

    "config.definition.trait.mek_gas_container.name": "Mek Gas Container",
    "config.definition.trait.mek_infuse_container.name": "Mek Infusion Container",
    "config.definition.trait.mek_pigment_container.name": "Mek Pigment Container",
    "config.definition.trait.mek_slurry_container.name": "Mek Slurry Container",
    "config.definition.trait.mek_heat_container.name": "Mek Heat Container",
    "config.definition.trait.mek_heat_container.capacity": "Capacity",
    "config.definition.trait.mek_heat_container.min_temp_display": "Min Temperature Display",
    "config.definition.trait.mek_heat_container.min_temp_display.tooltip.0": "The minimum temperature of the heat bar.",
    "config.definition.trait.mek_heat_container.min_temp_display.tooltip.1": "It is not actually the minimum temperature of the container, but the minimum temperature of the UI display.",
     "config.definition.trait.mek_heat_container.max_temp_display": "Max Temperature Display",
    "config.definition.trait.mek_heat_container.max_temp_display.tooltip.0": "The maximum temperature of the heat bar.",
    "config.definition.trait.mek_heat_container.max_temp_display.tooltip.1": "It is not actually the maximum temperature of the container, but the maximum temperature of the UI display.",
    "config.definition.trait.mek_heat_container.inverse_conduction": "Inverse Conduction",
    "config.definition.trait.mek_heat_container.inverse_conduction.tooltip": "Returns the inverse conduction coefficient of a given capacitor. This value defines how much heat is allowed to be dissipated. The larger the number the less heat can dissipate. The trade-off is that it also allows for lower amounts of heat to be inserted.",
    "config.definition.trait.mek_heat_container.auto_io.tooltip": "Auto extract from the nearby energy storage or fill to the nearby heat capacitor.",
    "config.definition.trait.mek_heat_container.simulate_environment": "Simulate Environment",
    "config.definition.trait.mek_heat_container.simulate_environment.tooltip": "Whether the heat capacitor will transfer heat to the environment.",
    "config.definition.trait.mek_heat_container.ui_container_hover": "Stored: %d / %d K",

    "config.definition.trait.fancy_renderer.filters": "State Filters",
    "config.definition.trait.fancy_renderer.filters.tooltip": "The fancy renderer only work with specific machine states",
    "config.definition.trait.fancy_renderer.position": "Position",
    "config.definition.trait.fancy_renderer.position.tooltip": "The position offset of the fancy renderer.",
    "config.definition.trait.fancy_renderer.rotation": "Rotation",
    "config.definition.trait.fancy_renderer.rotation.tooltip": "The rotation of the fancy renderer.",
    "config.definition.trait.fancy_renderer.scale": "Scale",
    "config.definition.trait.fancy_renderer.scale.tooltip": "The scale of the fancy renderer.",
    "config.definition.trait.fancy_renderer.spin": "Spin",
    "config.definition.trait.fancy_renderer.spin.tooltip": "The spin speed of the renderer.",
    "config.definition.trait.fancy_renderer.rotate_orientation": "Rotate Front",
    "config.definition.trait.fancy_renderer.rotate_orientation.tooltip": "Rotate according to machine orientation.",
    "config.definition.trait.fancy_renderer.render_stack": "Render Stack",
    "config.definition.trait.fancy_renderer.render_stack.tooltip": "Whether render the stacked model if the number of stacks is greater than 1.",
    "config.definition.trait.fancy_renderer.percent_height": "Percent Height",
    "config.definition.trait.fancy_renderer.percent_height.tooltip": "The height of the fancy renderer in percent of the stored content.",
    "config.definition.trait.fancy_renderer.color": "Color",
    "config.definition.trait.fancy_renderer.color.tooltip": "The color of the content.",

    "editor.machine.basic_settings": "Basic Settings",
    "editor.machine.machine_traits": "Machine Traits",
    "editor.machine.machine_events": "Machine Events",
    "editor.machine.machine_ui": "Machine UI",
    "editor.machine.multiblock_area": "Multiblock Area",
    "editor.machine.multiblock_pattern": "Multiblock Pattern",
    "editor.machine.recipe_type": "Recipe Type",
    "editor.machine.recipe_xei_ui": "Recipe Viewer UI",
    "editor.machine.recipe_xei_fuel_ui": "Fuel Recipe Viewer UI",
    "editor.machine.recipe_type.recipes": "Recipes",
    "editor.machine.recipe_type.recipes.common": "Common Recipes",
    "editor.machine.recipe_type.recipes.fuel": "Fuel Recipes",

    "editor.machine.machine_traits.list": "traits",
    "editor.machine.machine_traits.add_trait": "add trait",
    "editor.machine.machine_traits.remove_trait": "remove trait",
    "editor.machine.machine_traits.add_trait.error": "Invalid Action",
    "editor.machine.machine_traits.add_trait.error.allow_multiple": "The trait can be added only once in a machine.",

    "editor.machine.recipe_type.add_recipe": "add recipe",
    "editor.machine.recipe_type.add_recipe_auto_id": "add recipe (auto id)",
    "editor.machine.recipe_type.remove_recipe": "remove recipe",
    "editor.machine.recipe_type.add_content": "add content",
    "editor.machine.recipe_type.remove_content": "remove content",
    "editor.machine.recipe_type.add_condition": "add condition",
    "editor.machine.recipe_type.remove_condition": "remove condition",
    "editor.machine.recipe_type.content.per_tick": "per tick",
    "editor.machine.recipe_type.content.per_tick.tooltip": "The amount of the content produced or consumed per tick.",
    "editor.machine.recipe_type.content.chance": "chance",
    "editor.machine.recipe_type.content.chance.tooltip": "The chance of the content produced or consumed.",
    "editor.machine.recipe_type.content.tier_chance_boost": "chance boost",
    "editor.machine.recipe_type.content.tier_chance_boost.tooltip.0": "The chance of the content produced or consumed per tier (machine level).",
    "editor.machine.recipe_type.content.tier_chance_boost.tooltip.1": "The real chance = chance + machine_level * chance_boost.",
    "editor.machine.recipe_type.content.slot_name": "slot name",
    "editor.machine.recipe_type.content.slot_name.tooltip": "The binding slot name of the trait in recipe handling.",
    "editor.machine.recipe_type.content.ui_name": "ui name",
    "editor.machine.recipe_type.content.ui_name.tooltip": "The binding ui name of the content in XEI UI.",

    "editor.machine_state.add": "add state",
    "editor.machine_state.remove": "remove state",
    "editor.config_panel.other_configurator": "other configurator",
    "editor.machine_scene.draw_shape_frame_lines": "draw frame lines of the shape",
    "editor.machine_scene.draw_rendering_box_frame_lines": "draw frame lines of the render bounding box",

    "recipe_type.registry_name": "registry name",
    "recipe_type.registry_name.tooltip": "Registry name has to be unique.",
    "recipe_type.require_fuel": "require fuel",
    "recipe_type.require_fuel.tooltip": "Whether the recipe type requires fuel to work. if true, you should add fuel recipes as well.",
    "recipe_type.is_xei_visible": "is xei visible",
    "recipe_type.is_xei_visible.tooltip": "Whether show the recipe type in the recipe viewer.",
    "recipe_type.is_proxy_recipe_xei_visible": "is proxy recipe xei visible",
    "recipe_type.is_proxy_recipe_xei_visible.tooltip": "Whether set the recipe hidden while transferring.",
    "recipe_type.icon": "icon",
    "recipe_type.icon.tooltip": "The icon of the recipe type, which will be displayed in the recipe viewer UI.",
    "recipe_type.fuel_icon": "fuel icon",
    "recipe_type.fuel_icon.tooltip": "The fuel icon of the recipe type, which will be displayed in the recipe viewer UI.",
    "recipe_type.proxy_recipes": "additional proxy recipe type",
    "recipe_type.proxy_recipes.tooltip": "The additional other recipe types will be handled as well. e.g. you can proxy smelting recipes here.",
    "recipe.duration": "duration",
    "recipe.duration.value": "duration: %dt",
    "recipe.duration.common.tooltip": "The duration of the recipe. (tick)",
    "recipe.duration.fuel.tooltip": "The duration of burning time. (tick)",
    "recipe.priority": "priority",
    "recipe.priority.tooltip": "recipe priority. If there are several recipes meet requires, the lowest one will be processed first.",
    "recipe.xei_hidden": "xei hidden",
    "recipe.xei_hidden.tooltip": "Whether the recipe should be shown in the recipe viewer.",
    "recipe_type.fuel": "%s fuel",

    "ldlib.gui.editor.register.editor.machine.sm": "Single Machine Project",
    "ldlib.gui.editor.register.editor.machine.mb": "Multiblock Project",
    "ldlib.gui.editor.register.editor.machine.km": "Create Kinetic Machine Project",
    "ldlib.gui.editor.register.editor.machine.rt": "Recipe Type Project",
    "ldlib.gui.editor.register.editor.machine.recipe_xei_preview": "Recipe XEI Preview",
    "ldlib.gui.editor.register.editor.machine.recipe_type_ui_view": "RecipeType UI View",

    "mbd2.gui.editor.group.predicate": "predicate",
    "config.block_pattern.predicate.preview": "preview",
    "config.block_pattern.predicate.tooltips": "tooltips",
    "config.block_pattern.predicate.tooltips.tooltip": "The tooltips of the predicate. which will be shown in the multiblock preview.",
    "config.block_pattern.predicate.minCount": "min count",
    "config.block_pattern.predicate.minCount.tooltip.0": "The minimum count of this block.",
    "config.block_pattern.predicate.minCount.tooltip.1": "§c-1§r - no limit",
    "config.block_pattern.predicate.maxCount": "max count",
    "config.block_pattern.predicate.maxCount.tooltip.0": "The maximum count of this  block.",
    "config.block_pattern.predicate.maxCount.tooltip.1": "§c-1§r - no limit",
    "config.block_pattern.predicate.minLayerCount": "min layer count",
    "config.block_pattern.predicate.minLayerCount.tooltip.0": "The minimum count of this block in each layer.",
    "config.block_pattern.predicate.minLayerCount.tooltip.1": "§c-1§r - no limit",
    "config.block_pattern.predicate.maxLayerCount": "max layer count",
    "config.block_pattern.predicate.maxLayerCount.tooltip.0": "The maximum count of this block in each layer.",
    "config.block_pattern.predicate.maxLayerCount.tooltip.1": "§c-1§r - no limit",
    "config.block_pattern.predicate.previewCount": "preview count",
    "config.block_pattern.predicate.previewCount.tooltip.0": "The count of this block in the multiblock preview.",
    "config.block_pattern.predicate.previewCount.tooltip.1": "§c-1§r - auto generated",
    "config.block_pattern.predicate.disableRenderFormed": "disable render formed",
    "config.block_pattern.predicate.disableRenderFormed.tooltip": "Whether disable the block rendering when the multiblock formed.",
    "config.block_pattern.predicate.controllerFront": "controller front",
    "config.block_pattern.predicate.controllerFront.tooltip": "if enabled, will match the front face of the controller.",
    "config.block_pattern.predicate.io": "io",
    "config.block_pattern.predicate.io.tooltip": "The io of the block.",
    "config.block_pattern.predicate.slotName": "slot name",
    "config.block_pattern.predicate.slotName.tooltip": "The slot name for recipe handling.",
    "config.block_pattern.predicate.nbt": "NBT",
    "config.block_pattern.predicate.nbt.tooltip": "match nbt.",
    "config.block_pattern.predicate.controller_nbt": "controller NBT",
    "config.block_pattern.predicate.controller_nbt.tooltip": "match controller nbt.",
    "config.block_pattern.predicate.allowOpenUI": "open UI on right click",
    "config.block_pattern.predicate.allowOpenUI.tooltip.0": "if 'show UI when click structure' is on, should this block be able to open the UI.",
    "config.block_pattern.predicate.allowOpenUI.tooltip.1": "disable if this block has click interaction, and opens the UI instead.",
    "config.predicate.blocks": "blocks",
    "config.predicate.blocks.tooltip": "match any one of blocks.",
    "config.predicate.fluids": "fluids",
    "config.predicate.fluids.tooltip": "match any one of fluids.",
    "config.predicate.blockstates": "blockstates",
    "config.predicate.blockstates.tooltip": "match any one of states.",
    "config.predicate.add_predicate": "add predicate",
    "config.predicate.tags": "tags",
    "config.predicate.tags.tooltip": "match any one of block tags.",

    "editor.machine.name": "Machine Name",
    "editor.machine.recipe_type_ui_view.progress": "Progress Bar",
    "editor.machine.recipe_type_ui_view.fuel_progress": "Fuel Bar",
    "editor.machine.recipe_type_ui_view.xei_lookup": "XEI Lookup",
    "editor.machine.recipe_type_ui_view.xei_lookup.hover": "Recipes lookup",
    "editor.machine.recipe_type_ui_view.duration": "Duration Text",
    "editor.machine.recipe_type_ui_view.condition": "Conditions Group",
    "editor.machine.recipe_type_ui_view.add": "add",
    "editor.machine.recipe_list.contents": "contents",
    "editor.machine.recipe_list.conditions": "conditions",
    "editor.machine.recipe_list.data": "data",

    "recipe.capability.item.name": "Item Capability",
    "recipe.capability.item_durability.name": "Item Durability Capability",
    "recipe.capability.item.ingredient.count": "Item Count",
    "recipe.capability.item.ingredient.durability": "Item Durability",
    "recipe.capability.item.ingredient.durability.content": "§6Consumed/Produced durability:§r %d",
    "recipe.capability.item.ingredient.type": "Ingredient Type",
    "recipe.capability.item.ingredient.type.vanilla": "Vanilla Type",
    "recipe.capability.item.ingredient.type.nbt": "NBT Type",
    "recipe.capability.item.ingredient.candidates": "Ingredient Candidates",
    "recipe.capability.item.ingredient.values.type": "values type",
    "recipe.capability.item.ingredient.values.item": "item",
    "recipe.capability.item.ingredient.values.tag": "item tag",

    "recipe.capability.fluid.name": "Fluid Capability",
    "recipe.capability.fluid.ingredient.amount": "Fluid Amount",
    "recipe.capability.fluid.ingredient.candidates": "Fluid Candidates",
    "recipe.capability.fluid.ingredient.values.fluid": "fluid",
    "recipe.capability.fluid.ingredient.values.tag": "entity tag",

    "recipe.capability.entity.name": "Entity Capability",
    "recipe.capability.entity.ingredient.count": "Entity Count",
    "recipe.capability.entity.ingredient.candidates": "Entity Candidates",
    "recipe.capability.entity.ingredient.values.entity": "entity type",
    "recipe.capability.entity.ingredient.values.tag": "entity tag",
    "ldlib.gui.editor.register.widget.container.entity_preview": "Entity Preview Slot",

    "ldlib.gui.editor.register.widget.container.ae_interface_slot": "ME Interface Slot",

    "recipe.capability.forge_energy.name": "Forge Energy Capability",
    "recipe.capability.forge_energy.energy": "Energy",

    "recipe.capability.botania_mana.name": "Botania Mana Capability",
    "recipe.capability.botania_mana.mana": "Mana",

    "recipe.capability.natures_aura.name": "Nature's Aura Capability",
    "recipe.capability.natures_aura.aura": "Nature's Aura: %s",
    "recipe.capability.natures_aura.aura_name": "Nature's Aura",

    "recipe.capability.pneumatic_pressure_air.name": "Pneumatic Pressure Air Capability",
    "recipe.capability.pneumatic_pressure_air.type": "Type",
    "recipe.capability.pneumatic_pressure_air.type.air": "air",
    "recipe.capability.pneumatic_pressure_air.type.pressure": "pressure",
    "recipe.capability.pneumatic_pressure_air.type.tooltip": "pressure = air * volume",
    "recipe.capability.pneumatic_pressure_air.value": "Value",

    "recipe.capability.pneumatic_heat.name": "Pneumatic Heat Capability",
    "recipe.capability.pneumatic_heat.heat": "Heat",

    "recipe.capability.embers_ember.name": "Embers Ember Capability",
    "recipe.capability.embers_ember.ember": "Ember",

    "recipe.capability.gtm_energy.name": "GTM Energy Capability",
    "recipe.capability.gtm_energy.energy": "Energy",

    "recipe.capability.mek_gas.name": "Mek Gas Capability",
    "recipe.capability.mek_infuse.name": "Mek Infuse Capability",
    "recipe.capability.mek_pigment.name": "Mek Pigment Capability",
    "recipe.capability.mek_slurry.name": "Mek Slurry Capability",
    "recipe.capability.mek_chemical.type": "Chemical Type",
    "recipe.capability.mek_chemical.type.format": "§cChemical Type§r: %s",
    "recipe.capability.mek_chemical.type.gas": "Gas",
    "recipe.capability.mek_chemical.type.infuse_type": "Infusion",
    "recipe.capability.mek_chemical.type.pigment": "Pigment",
    "recipe.capability.mek_chemical.type.slurry": "Slurry",
    "recipe.capability.mek_chemical.amount": "Chemical Amount",

    "recipe.capability.mek_heat.name": "Mek Heat Capability",
    "recipe.capability.mek_heat.heat": "Heat",

    "ldlib.gui.editor.register.widget.container.chemical_gas_slot": "Chemical Gas Slot",
    "ldlib.gui.editor.register.widget.container.chemical_infuse_slot": "Chemical Infusion Slot",
    "ldlib.gui.editor.register.widget.container.chemical_pigment_slot": "Chemical Pigment Slot",
    "ldlib.gui.editor.register.widget.container.chemical_slurry_slot": "Chemical Slurry Slot",

    "recipe.capability.create_stress.name": "Create Stress",
    "recipe.capability.create_stress.stress": "Stress",
    "recipe.capability.create_stress.stress.unit": "%d su",
    "ldlib.gui.editor.register.widget.container.create_stress": "Create Stress Slot",

    "recipe.capability.create_rpm.name": "Create RPM",
    "recipe.capability.create_rpm.rpm": "RPM",
    "recipe.capability.create_rpm.rpm.unit": "%d rpm",
    "ldlib.gui.editor.register.widget.container.create_rpm": "Create RPM Slot",

    "editor.machine.machine_tab": "Machine",
    "editor.machine.multiblock.area_panel.sceneRadius": "Scene Radius",
    "editor.machine.multiblock.area_panel.sceneRadius.tips": "The visible radius of the scene for pattern area selection.",
    "editor.machine.multiblock.area_panel.area": "Area",
    "editor.machine.multiblock.area_panel.area.tips": "You can select area by Shift+Click.",
    "editor.machine.multiblock.area_panel.from": "From",
    "editor.machine.multiblock.area_panel.from.tips": "from position",
    "editor.machine.multiblock.area_panel.to": "To",
    "editor.machine.multiblock.area_panel.to.tips": "to position",
    "editor.machine.multiblock.area_panel.controllerOffset": "Controller Offset",
    "editor.machine.multiblock.area_panel.controllerOffset.tips": "The offset position of the controller in the area.",
    "editor.machine.multiblock.area_panel.controllerFace": "Controller Face",
    "editor.machine.multiblock.area_panel.controllerFace.tips": "The face of the controller in the pattern.",
    "editor.machine.multiblock.area_panel.generatePattern": "Generate Pattern / Shape Info",
    "editor.machine.multiblock.area_panel.generatePattern.button.0": "to pattern",
    "editor.machine.multiblock.area_panel.generatePattern.button.0.title": "Generate Pattern",
    "editor.machine.multiblock.area_panel.generatePattern.button.0.info": "Successful! Please check the Multiblock Pattern Tab.",
    "editor.machine.multiblock.area_panel.generatePattern.button.1": "add shape info",
    "editor.machine.multiblock.area_panel.generatePattern.button.1.title": "Generate Shape Info",
    "editor.machine.multiblock.area_panel.generatePattern.button.1.info": "Successful! Please check the Shape Info Tab.",
    "editor.machine.multiblock.area_panel.generatePattern.tips": "Generate the pattern / shape info based on the area.",

    "editor.machine.multiblock.multiblock_pattern.layer": "Pattern Layer",
    "editor.machine.multiblock.multiblock_pattern.layer_direction": "Layer Direction",
    "editor.machine.multiblock.multiblock_pattern.set_as_controller": "set as controller",
    "editor.machine.multiblock.multiblock_pattern.repetition": "the layer repetition",
    "editor.machine.multiblock.multiblock_pattern.repetition_controller": "the layer with controller couldn't be repeated",
    "editor.machine.multiblock.multiblock_shape_info": "Shape Info",
    "editor.machine.multiblock.multiblock_shape_info.description": "description",
    "editor.machine.multiblock.multiblock_shape_info.description.tips": "description displayed in XEI page",
    "editor.machine.multiblock.multiblock_shape_info.remove": "remove shape info",
    "mbd2.jei.multiblock_info": "Multiblock Info",

    "ldlib.renderer.geckolib": "Geckolib Model",
    "geckolib_renderer.scale_width": "Scale Width",
    "geckolib_renderer.scale_height": "Scale Height",
    "geckolib_renderer.use_glowing_layer": "Use GLowing Layer",
    "geckolib_renderer.use_glowing_layer.tips.0": "Enable it to enable glowing layer for emissive texture.",
    "geckolib_renderer.use_glowing_layer.tips.1": "Check Geckolib wiki for more details.",
    "geckolib_renderer.use_translucent": "Use Translucent",
    "geckolib_renderer.use_translucent.tips": "use the translucent renderType to support transparent textures",
    "geckolib_renderer.use_entity_gui_lighting": "Use Entity GUI Lighting",
    "geckolib_renderer.use_entity_gui_lighting.tips": "setup entity lighting in GUI rendering, in general, enable this option for better 3d shade.",
    "geckolib_renderer.schedule_state_anim": "Schedule State Animation",
    "geckolib_renderer.schedule_state_anim.tips.0": "If ture, the raw animation will be scheduled by the machine state. (make sure you set raw animations which name is same as the machine state)",
    "geckolib_renderer.schedule_state_anim.tips.1": "Its helpful for using simple animation without the node graph.",
    "geckolib_renderer.schedule_state_anim.tips.2": "If false, you have to trigger the raw animation yourself.",
    "geckolib_renderer.model_path": "Model Path",
    "geckolib_renderer.animation_path": "Animation Path",
    "geckolib_renderer.texture_path": "Texture Path",
    "geckolib_renderer.item_transform_model": "Item Transform Model",
    "geckolib_renderer.item_transform_model.tips": "Item rendering transform configs.",
    "geckolib_renderer.animation_stage": "Animation Stage",
    "geckolib_renderer.animation_stage.type": "Stage Type",
    "geckolib_renderer.animation_stages": "Animation Stages",
    "geckolib_renderer.raw_animation": "Raw Animation",
    "geckolib_renderer.animation_stage.wait": "Wait",
    "geckolib_renderer.animation_stage.play": "Play",
    "geckolib_renderer.animation_stage.animation_name": "Animation Name",
    "geckolib_renderer.animation_stage.animation_name.tips": "The name of the animation refers to the animation file",
    "geckolib_renderer.animation_stage.loop_type": "Play Loop Type",
    "geckolib_renderer.animation_stage.loop_type.tips": "Play behavior of the animation",
    "geckolib_renderer.animation_stage.additional_ticks": "waiting ticks",
    "geckolib_renderer.animation.animation_name": "Raw Animation Name",
    "geckolib_renderer.animation.animation_name.tips": "The name of the animation that can be triggered, it should be §cstandalone§r in one renderer.",
    "geckolib_renderer.animation_group": "Raw Animation Group",
    "editor.select_from_file": "Select from file",

    "content_modifier.multiplier": "Multiplier",
    "content_modifier.multiplier.tips": "The multiplier of the recipe content number.",
    "content_modifier.addition": "Addition",
    "content_modifier.addition.tips": "The addition of the recipe content number.",

    "MachineEvent.MachineAfterRecipeWorkingEvent": "After Recipe Working Event",
    "MachineEvent.MachineAfterRecipeWorkingEvent.tips": "The event will be triggered after a recipe process finish.",
    "MachineEvent.MachineBeforeRecipeWorkingEvent": "Before Recipe Working Event",
    "MachineEvent.MachineBeforeRecipeWorkingEvent.tips": "The event will be triggered before a recipe process start. Cancel the event will stop the recipe process.",
    "MachineEvent.MachineDropsEvent": "Drops Event",
    "MachineEvent.MachineDropsEvent.tips": "The event will be triggered when the machine is broken and drop stack.",
    "MachineEvent.MachineNeighborChangedEvent": "Neighbor Changed Event",
    "MachineEvent.MachineNeighborChangedEvent.tips": "The event will be triggered when the neighbor block changed.",
    "MachineEvent.MachineOnRecipeWaitingEvent": "On Recipe Waiting Event",
    "MachineEvent.MachineOnRecipeWaitingEvent.tips": "The event will be triggered when the recipe process is waiting every tick.",
    "MachineEvent.MachineOnRecipeWorkingEvent": "On Recipe Working Event",
    "MachineEvent.MachineOnRecipeWorkingEvent.tips": "The event will be triggered when the recipe process is working every tick. Cancel the event will stop the recipe process.",
    "MachineEvent.MachineOpenUIEvent": "Open UI Event",
    "MachineEvent.MachineOpenUIEvent.tips": "The event will be triggered when the machine UI is opened. Cancel the event will stop the UI opening.",
    "MachineEvent.MachinePlacedEvent": "Placed Event",
    "MachineEvent.MachinePlacedEvent.tips": "The event will be triggered when the machine is placed.",
    "MachineEvent.MachineRecipeStatusChangedEvent": "Recipe Status Changed Event",
    "MachineEvent.MachineRecipeStatusChangedEvent.tips": "The event will be triggered when the recipe status changed.",
    "MachineEvent.MachineRemovedEvent": "Removed Event",
    "MachineEvent.MachineRemovedEvent.tips": "The event will be triggered when the machine is removed.",
    "MachineEvent.MachineRightClickEvent": "Right Click Event",
    "MachineEvent.MachineRightClickEvent.tips": "The event will be triggered when the machine is right-clicked.",
    "MachineEvent.MachineStateChangedEvent": "State Changed Event",
    "MachineEvent.MachineStateChangedEvent.tips": "The event will be triggered when the machine state changed. Cancel the event will block this change.",
    "MachineEvent.Multiblock.MachineStructureFormedEvent": "Multiblock Structure Formed Event",
    "MachineEvent.Multiblock.MachineStructureFormedEvent.tips": "The event will be triggered when the multiblock structure is formed.",
    "MachineEvent.Multiblock.MachineStructureInvalidEvent": "Multiblock Structure Invalid Event",
    "MachineEvent.Multiblock.MachineStructureInvalidEvent.tips": "The event will be triggered when the multiblock structure is invalid.",
    "MachineEvent.MachineOnLoadEvent": "On Load Event",
    "MachineEvent.MachineOnLoadEvent.tips": "The event will be triggered when the machine is loaded.",
    "MachineEvent.MachineFuelRecipeModifyEvent": "Fuel Recipe Modify Event",
    "MachineEvent.MachineFuelRecipeModifyEvent.tips": "Cancel the event will skip trying of this fuel recipe.",
    "MachineEvent.MachineFuelBurningFinishEvent": "Fuel Burning Finish Event",
    "MachineEvent.MachineFuelBurningFinishEvent.tips": "The event will be triggered when a fuel recipe is finish burning, and before search next fuel recipe.",
    "MachineEvent.MachineRecipeModifyEvent.Before": "Before Recipe Modify Event",
    "MachineEvent.MachineRecipeModifyEvent.Before.tips": "The event will be triggered before the recipe is modified by the recipe modifiers. Cancel the event will stop the modification.",
    "MachineEvent.MachineRecipeModifyEvent.After": "After Recipe Modify Event",
    "MachineEvent.MachineRecipeModifyEvent.After.tips": "The event will be triggered after the recipe is modified by the recipe modifiers.",
    "MachineEvent.MachineCustomDataUpdateEvent": "On Custom Data Update Event (client)",
    "MachineEvent.MachineCustomDataUpdateEvent.tips": "The event will be triggered when the custom is updated from the server side.",
    "MachineEvent.MachineTickEvent": "Machine Tick Event",
    "MachineEvent.MachineTickEvent.tips": "The event will be triggered every server tick.",
    "MachineEvent.MachineClientTickEvent": "Machine Client Tick Event",
    "MachineEvent.MachineClientTickEvent.tips": "The event will be triggered every client tick.",
    "MachineEvent.Multiblock.MachineUseCatalystEvent": "Multiblock Use Catalyst Event",
    "MachineEvent.Multiblock.MachineUseCatalystEvent.tips": "The event will be triggered while using catalyst to form the stucture. Cancel the event will stop the forming.",
    "MachineEvent.MachineCustomKeyframeEvent.tips": "Triggered by 'Instruction' keyframes in geckolib animations.",
    "MachineEvent.MachineCustomKeyframeEvent": "Instruction Keyframe Event",
    "graph_processor.node.mbd2.recipe_logic.status.tips": "The status of the recipe logic will be one of the following: §cIDLE§r, §cWORKING§r, §cWAITING§r, §cSUSPENDING§r.",
    "graph_processor.node.mbd2.machine": "Machine",
    "graph_processor.node.mbd2.machine.recipe": "Machine Recipe",
    "graph_processor.node.mbd2.machine.geckolib": "Geckolib",
    "graph_processor.node.mbd2.machine.photon": "Photon",
    "graph_processor.node.mbd2.machine.photon.identifier": "fx with the same identifier will be replaced.",
    "graph_processor.node.mbd2.machine.photon.force_death.tips.0": "whether to remove all particles directly when the bound object invalid or natural death.",
    "graph_processor.node.mbd2.machine.photon.force_death.tips.1": "if false, emitter will notify and wait all particle death when the fx was removed.",
    "graph_processor.node.mbd2.machine.photon.force_death.tips.2": "if true, emitter will remove and particles from rendering and ticking immediately when the fx was removed.",
    "graph_processor.node.mbd2.machine.photon.replace_existing.tips.0": "If true, the existing fx with the same identifier will be replaced.",
    "graph_processor.node.mbd2.machine.photon.replace_existing.tips.1": "If false, this fx won't shown if the existing fx with the same identifier found.",
    "pattern_preview.page": "switch pages",
    "pattern_preview.layer": "switch layers",
    "pattern_preview.formed": "switch structure formed",

    "recipe_logic.status.idle": "idle",
    "recipe_logic.status.working": "§aworking§r",
    "recipe_logic.status.waiting": "§6waiting§r",
    "recipe_logic.status.suspend": "§4suspending§r",
    "multiblock.unformed": "§6not formed§r",
    "multiblock.catalyst": "§arequire catalyst§r",
    "config.jade.plugin_mbd2.recipe_logic_provider": "Multiblock2 Recipe Logic Provider",
    "config.jade.plugin_mbd2.multiblock_provider": "Multiblock2 Multiblock Provider"
}
