{
  "block.sfm.cable": "Inventory Cable",
  "block.sfm.cable_facade": "Inventory Cable Facade",
  "block.sfm.fancy_cable": "Fancy Inventory Cable",
  "block.sfm.fancy_cable_facade": "Fancy Inventory Cable Facade",
  "block.sfm.manager": "Factory Manager",
  "block.sfm.printing_press": "Printing Press",
  "block.sfm.printing_press.tooltip": "Place with an air gap below a downward facing piston. Extend the piston to use.",
  "block.sfm.test_barrel": "Test Barrel",
  "block.sfm.test_barrel_tank": "Test Barrel Tank",
  "block.sfm.water_tank": "Water Tank",
  "block.sfm.water_tank.tooltip.1": "Requires two adjacent water sources",
  "block.sfm.water_tank.tooltip.2": "More effective when also adjacent to other active water tanks",
  "chat.sfm.config_update_and_sync_result.failed_to_find": "Failed to find the SFM config toml.",
  "chat.sfm.config_update_and_sync_result.internal_failure": "Something went wrong while updating the SFM config, I have no idea if changes were made. Check the server logs.",
  "chat.sfm.config_update_and_sync_result.invalid_config": "The provided SFM config was invalid, no changes were made.",
  "chat.sfm.config_update_and_sync_result.success": "Successfully updated SFM config.",
  "container.sfm.manager": "Factory Manager",
  "container.sfm.test_barrel_tank": "Test Barrel Tank",
  "gui.jei.category.sfm.falling_anvil": "Falling Anvil",
  "gui.jei.category.sfm.falling_anvil.consumed": "Gets consumed",
  "gui.jei.category.sfm.falling_anvil.not_consumed": "Not consumed",
  "gui.jei.category.sfm.printing_press": "Printing Press",
  "gui.sfm.advanced.tooltip.hint": "Hold %s to know more.",
  "gui.sfm.confirm.funny.no.1": "Nah, changed my mind",
  "gui.sfm.confirm.funny.no.2": "Holy guacamole, no",
  "gui.sfm.confirm.funny.no.3": "no no no no no",
  "gui.sfm.confirm.funny.no.4": "Nope, not today",
  "gui.sfm.confirm.funny.no.5": "ABORT ABORT ABORT",
  "gui.sfm.confirm.funny.no.6": "Never mind",
  "gui.sfm.confirm.funny.yes.1": "Yeah, sure, why not.",
  "gui.sfm.confirm.funny.yes.2": "Sure, what could go wrong.",
  "gui.sfm.confirm.funny.yes.3": "Yup, go ahead.",
  "gui.sfm.confirm.funny.yes.4": "Go for it.",
  "gui.sfm.confirm.funny.yes.5": "lol do it",
  "gui.sfm.confirm.funny.yes.6": "Apply the change.",
  "gui.sfm.container_inspector.container_slot_count": "Container Slots: %d",
  "gui.sfm.container_inspector.inventory_slot_count": "Inventory Slots: %d",
  "gui.sfm.container_inspector.mekanism_machine_inputs": "The following are based on the MACHINE'S input config",
  "gui.sfm.container_inspector.mekanism_machine_outputs": "The following are based on the MACHINE'S output config",
  "gui.sfm.container_inspector.mekanism_null_direction_warning": "MEKANISM BLOCKS ARE READ-ONLY FROM THE NULL DIRECTION!!!!!!",
  "gui.sfm.container_inspector.notice.1": "GUI slots don't always correspond to automation slots!!!",
  "gui.sfm.container_inspector.notice.2": "Press %s to toggle this overlay.",
  "gui.sfm.container_inspector.show_exports_button": "Export Inspector",
  "gui.sfm.disk.tooltip.edit_in_hand": "You can right-click a disk in your hand to edit outside of a manager.",
  "gui.sfm.exit_without_saving_confirm.message": "Are you sure you want to abandon your work?",
  "gui.sfm.exit_without_saving_confirm.no_button": "Continue editing",
  "gui.sfm.exit_without_saving_confirm.title": "Exit without saving?",
  "gui.sfm.exit_without_saving_confirm.yes_button": "Exit without saving",
  "gui.sfm.facade_confirm_apply.message": "%d different facade states across %d blocks that will be overwritten.",
  "gui.sfm.facade_confirm_apply.title": "Are you sure you want to update the facade appearance?",
  "gui.sfm.facade_confirm_change_world_block.message": "%d blocks will change shape, their facades will be persisted.",
  "gui.sfm.facade_confirm_change_world_block.title": "Are you sure you want to change the facade world block?",
  "gui.sfm.facade_confirm_clear.message": "%d different facade states across %d blocks will be wiped from the world.",
  "gui.sfm.facade_confirm_clear.title": "Are you sure you want to clear these facades?",
  "gui.sfm.item_inspector.copied_to_clipboard": "Copied {} characters to clipboard!",
  "gui.sfm.label_gun.button.toggle_label_view": "Cycle label view",
  "gui.sfm.label_gun.clear_button": "Clear",
  "gui.sfm.label_gun.label_button": "%s (%d)",
  "gui.sfm.label_gun.label_edit_placeholder": "Search or enter new label",
  "gui.sfm.label_gun.placeholder": "Label",
  "gui.sfm.label_gun.prune_button": "Prune",
  "gui.sfm.logs.button.clear_logs": "Clear logs",
  "gui.sfm.logs.button.clear_logs.packet_received": "Cleared logs",
  "gui.sfm.logs.button.copy_logs": "Copy logs",
  "gui.sfm.logs.button.copy_logs.tooltip": "Shift-click for raw",
  "gui.sfm.logs.empty_capability": "Received an empty capability %s %s direction=%s",
  "gui.sfm.logs.missing_adjacent_cable": "No adjacent cable found for %s",
  "gui.sfm.logs.missing_capability_provider": "No capability provider found for %s %s direction=%s",
  "gui.sfm.logs.no_content": "Ahoy, world!\nChange the log level using the buttons at the top of this screen.\nLoud log levels will be reset after a single program execution.\nLogging can make statements take longer to execute.\nThe scrolling is wacky, I'm working on it.\nOnly a few hundred lines are drawn to reduce lag.\nUse the copy button to view in a better editor for now lol.",
  "gui.sfm.logs.title": "Logs",
  "gui.sfm.manager.button.copy_to_clipboard": "Copy to clipboard",
  "gui.sfm.manager.button.discord": "Discord",
  "gui.sfm.manager.button.paste_clipboard": "Paste from clipboard",
  "gui.sfm.manager.button.rebuild": "Rebuild cable network",
  "gui.sfm.manager.button.reset": "Reset",
  "gui.sfm.manager.button.server_config": "View server config",
  "gui.sfm.manager.button.view_examples": "View examples",
  "gui.sfm.manager.button.view_examples.tooltip": "Press Ctrl+Shift+E to view examples.",
  "gui.sfm.manager.button.view_logs": "View logs",
  "gui.sfm.manager.button.warning.tooltip": "Click to copy code with warnings and errors.\nShift-click to attempt to fix warnings.",
  "gui.sfm.manager.button.warning.tooltip.read_only": "Click to copy code with warnings and errors.",
  "gui.sfm.manager.edit_button": "Edit",
  "gui.sfm.manager.edit_button.tooltip": "Press Ctrl+E to edit.",
  "gui.sfm.manager.hovered_tick_time": "Hovered tick time: %s ms",
  "gui.sfm.manager.paste_confirm_screen.message": "Are you sure you want to overwrite this disk?",
  "gui.sfm.manager.paste_confirm_screen.no_button": "Never mind, make no changes",
  "gui.sfm.manager.paste_confirm_screen.title": "Paste from clipboard?",
  "gui.sfm.manager.paste_confirm_screen.yes_button": "Paste clipboard",
  "gui.sfm.manager.peak_tick_time": "Peak tick time: %s ms",
  "gui.sfm.manager.reset_confirm_screen.message": "Are you sure you want to reset this disk?",
  "gui.sfm.manager.reset_confirm_screen.no_button": "Never mind, make no changes",
  "gui.sfm.manager.reset_confirm_screen.title": "Reset disk?",
  "gui.sfm.manager.reset_confirm_screen.yes_button": "Wipe program and labels",
  "gui.sfm.manager.state": "State: %s",
  "gui.sfm.manager.state.invalid_program": "invalid program",
  "gui.sfm.manager.state.no_disk": "missing disk",
  "gui.sfm.manager.state.no_program": "no program",
  "gui.sfm.manager.state.running": "running",
  "gui.sfm.manager.status.fix": "Fixing problems!",
  "gui.sfm.manager.status.loaded_clipboard": "Loaded from clipboard!",
  "gui.sfm.manager.status.rebuild": "Rebuilding cache!",
  "gui.sfm.manager.status.reset": "Reset program and labels!",
  "gui.sfm.manager.status.saved_clipboard": "Saved to clipboard!",
  "gui.sfm.manager.tooltip.paste": "Press Ctrl+V to paste.",
  "gui.sfm.manager.tooltip.reset": "Wipes ALL disk data.",
  "gui.sfm.program_editor_config.intellisense": "Intellisense",
  "gui.sfm.program_editor_config.intellisense.advanced": "Advanced",
  "gui.sfm.program_editor_config.intellisense.basic": "Basic",
  "gui.sfm.program_editor_config.intellisense.off": "Off",
  "gui.sfm.program_editor_config.line_numbers": "Line Numbers",
  "gui.sfm.program_editor_config.title": "Program Editor Config",
  "gui.sfm.program_template_picker.warning1": "Hitting \"Done\" will on the next screen will overwrite your existing program!",
  "gui.sfm.program_template_picker.warning2": "Hit <esc> to cancel instead.",
  "gui.sfm.save_changes_confirm.message": "Do you want to save before exiting?",
  "gui.sfm.save_changes_confirm.no_button": "Continue editing",
  "gui.sfm.save_changes_confirm.title": "Save changes",
  "gui.sfm.save_changes_confirm.yes_button": "Overwrite disk",
  "gui.sfm.text_editor.config_button.tooltip": "Open editor config",
  "gui.sfm.text_editor.done_button.tooltip": "Shift+Enter to submit",
  "gui.sfm.text_editor.title": "Text Editor",
  "gui.sfm.title.intellisense_pick_list": "Intellisense Pick List",
  "gui.sfm.title.labelgun": "Label Gun",
  "gui.sfm.title.program_template_picker": "Program Template Picker",
  "item.sfm.disk": "Factory Manager Program Disk",
  "item.sfm.disk.tooltip.label_section.entry": " - %s: %d blocks",
  "item.sfm.disk.tooltip.label_section.header": "Labels",
  "item.sfm.form": "Printing Form",
  "item.sfm.labelgun": "Label Gun",
  "item.sfm.labelgun.chat.pulled": "Pulled labels from the manager.",
  "item.sfm.labelgun.chat.pushed": "Pushed labels to the manager.",
  "item.sfm.labelgun.tooltip.1": "%s a Factory Manager to push labels.",
  "item.sfm.labelgun.tooltip.2": "%s a Factory Manager while sneaking to pull labels.",
  "item.sfm.labelgun.tooltip.3": "Hold %s to apply labels to blocks of the same type adjacent to cables.",
  "item.sfm.labelgun.tooltip.4": "%s + %s to pick label from block.",
  "item.sfm.labelgun.tooltip.5": "Press  %s to toggle label view.",
  "item.sfm.labelgun.with_label": "Label Gun: \"%s\"",
  "item.sfm.network_tool": "Network Tool",
  "item.sfm.network_tool.tooltip.1": "Shows cables through walls when held.",
  "item.sfm.network_tool.tooltip.2": "Right click a block face to view diagnostic info.",
  "item.sfm.network_tool.tooltip.3": "You might not need this, don't forget you can press %s in an inventory to toggle the inspector.",
  "item.sfm.network_tool.tooltip.4": "Place in off-hand with block in main hand and right-click cable to set facade.",
  "item.sfm.network_tool.tooltip.5": "Ctrl-click to facade contiguously.",
  "item.sfm.network_tool.tooltip.6": "Alt-click to facade matching block across the network.",
  "item.sfm.network_tool.tooltip.7": "Ctrl-alt-click to facade entire network.",
  "item.sfm.xp_goop": "Experience Goop",
  "item.sfm.xp_shard": "Experience Shard",
  "item_group.sfm.main": "Super Factory Manager",
  "key.categories.sfm": "Super Factory Manager",
  "key.sfm.container_inspector.activation_key": "Toggle Container Inspector",
  "key.sfm.item_inspector.activation_key": "(WIP) Copy Hovered Item To Clipboard",
  "key.sfm.label_gun.next_label": "Label Gun Next Label",
  "key.sfm.label_gun.pick_block_modifier": "Label Gun Pick Block Modifier",
  "key.sfm.label_gun.previous_label": "Label Gun Previous Label",
  "key.sfm.more_info": "Hold For More Info",
  "key.sfm.toggle_label_view_key": "Cycle label gun view",
  "key.sfm.toggle_network_tool_overlay": "Toggle network tool overlay",
  "log.sfm.cable_network.body": "%s",
  "log.sfm.cable_network.footer": "=============================",
  "log.sfm.cable_network.header.1": "======= Cable network =======",
  "log.sfm.cable_network.header.2": "Cable positions:",
  "log.sfm.cable_network.header.3": "Capability positions:",
  "log.sfm.capability_cache.hit": "Capability cache HIT for %s %s direction=%s",
  "log.sfm.capability_cache.hit_invalid": "Capability cache HIT but NOT PRESENT for %s %s direction=%s",
  "log.sfm.capability_cache.miss": "Capability cache MISS for %s %s direction=%s",
  "log.sfm.label_position_holder.body": "%s",
  "log.sfm.label_position_holder.footer": "=============================",
  "log.sfm.label_position_holder.header": "=== Label position holder ===",
  "log.sfm.level_updated": "Log level updated to %s",
  "log.sfm.manager.cable_network_rebuild": "User performed cable network rebuild",
  "log.sfm.program.context": "Initial program context: %s",
  "log.sfm.program.tick": "PROGRAM TICK BEGIN",
  "log.sfm.program.tick.redstone_count": "Program ticking with %d unprocessed redstone pulses.",
  "log.sfm.program.voided_resources": "%s",
  "log.sfm.resource_type.get_capabilities.begin": "Gathering capabilities of type %s (%s) against labels %s",
  "log.sfm.resource_type.get_capabilities.not_present": "Capability %s %s direction=%s not present",
  "log.sfm.resource_type.get_capabilities.present": "Capability %s %s direction=%s present",
  "log.sfm.statement.tick.forget": "FORGET %s",
  "log.sfm.statement.tick.if.false": "FALSE: %s",
  "log.sfm.statement.tick.if.true": "TRUE: %s",
  "log.sfm.statement.tick.input": "%s",
  "log.sfm.statement.tick.io.gather_slots": "Gathering slots for IO statement \n```\n%s\n```\n",
  "log.sfm.statement.tick.io.gather_slots.cache_hit": "Cache hit - this statement has already gathered slots",
  "log.sfm.statement.tick.io.gather_slots.cache_miss": "Statement cache miss - this is the first time this statement is being gathered",
  "log.sfm.statement.tick.io.gather_slots.created": "Slot %d - tracking - %s - %s",
  "log.sfm.statement.tick.io.gather_slots.each": "EACH keyword used - trackers will be unique to each block",
  "log.sfm.statement.tick.io.gather_slots.not_each": "EACH keyword not used - trackers will be shared between blocks",
  "log.sfm.statement.tick.io.gather_slots.not_in_range": "Slot %d - not in range",
  "log.sfm.statement.tick.io.gather_slots.range": "Gathering slots in range set: %s",
  "log.sfm.statement.tick.io.gather_slots.resource_types": "Gathering for: %s (%s)",
  "log.sfm.statement.tick.io.gather_slots.should_not_create": "Slot %d - skipping - %s",
  "log.sfm.statement.tick.io.move_to.begin": "Begin moving %s into %s",
  "log.sfm.statement.tick.io.move_to.destination_tracker_reject": "Destination tracker rejected the transfer, skipping",
  "log.sfm.statement.tick.io.move_to.end": "Moved %d %s - source=%s, dest=%s",
  "log.sfm.statement.tick.io.move_to.extracted": "Extracted %d from slot %d",
  "log.sfm.statement.tick.io.move_to.retention_obligation": "Promised to leave %d in the source slot, still obligated to leave %d",
  "log.sfm.statement.tick.io.move_to.retention_obligation_no_move": "Nothing to move after retention obligations, marking source slot done and skipping",
  "log.sfm.statement.tick.io.move_to.stack_limit_no_move": "Max transferable dest=%d, source=%d, stack limit=%d; new toMove=%d",
  "log.sfm.statement.tick.io.move_to.type_mismatch": "Type mismatch, skipping",
  "log.sfm.statement.tick.io.move_to.zero_simulated_movement": "Got remainder %d after simulated insertion of potential %d (0 to move), skipping",
  "log.sfm.statement.tick.io.move_to.zero_to_move": "toMove=0, skipping",
  "log.sfm.statement.tick.output": "%s",
  "log.sfm.statement.tick.output.discovered_input_slot_count": "Discovered %d input slots",
  "log.sfm.statement.tick.output.discovered_output_slot_count": "Discovered %d output slots",
  "log.sfm.statement.tick.output.short_circuit_no_input_slots": "No input slots, skipping",
  "log.sfm.statement.tick.output.short_circuit_no_output_slots": "No output slots, skipping",
  "log.sfm.statement.tick.trigger": "TRIGGERED FROM %s",
  "mod.name": "Super Factory Manager",
  "program.sfm.compile_begin": "Compiling program from disk.",
  "program.sfm.error.compile_failed": "Failed to compile.",
  "program.sfm.error.compile_failed_with_errors": "Failed to compile with %d errors.",
  "program.sfm.error.compile_success_with_warnings": "Successfully compiled \"%s\" with %d warnings.",
  "program.sfm.error.disallowed_resource_type": "Program references a disallowed resource type \"%s\"",
  "program.sfm.error.literal": "%s",
  "program.sfm.error.malformed_resource_type": "Program has a malformed resource type \"%s\".\nReminder: Resource types must be literals, not wildcards.",
  "program.sfm.error.unknown_resource_type": "Program references an unknown resource type \"%s\"",
  "program.sfm.reminders.push_labels": "Did you remember to push your labels using the label gun?",
  "program.sfm.tick.time": "Program tick took %.2f ms",
  "program.sfm.tick.time_taken.statement": "Program statement tick took %.2f ms:\n```\n%s\n```\n",
  "program.sfm.tick.time_taken.trigger": "Program trigger tick took %.2f ms:\n```\n%s\n```\n",
  "program.sfm.warnings.adjacent_but_disconnected_label": "Label \"%s\" is assigned in the world at %s and is connected by cables but is not detected as a valid inventory.",
  "program.sfm.warnings.disconnected_label": "Label \"%s\" is assigned in the world at %s but not connected by cables.",
  "program.sfm.warnings.each_without_pattern": "EACH used without a pattern, statement %s",
  "program.sfm.warnings.mekanism_bad_side_config": "Mekanism block side config at %s doesn't agree with statement, check label \"%s\" used in \"%s\"",
  "program.sfm.warnings.mekanism_used_without_direction": "Mekanism blocks are read-only when no side is specified, check label \"%s\" used in \"%s\"",
  "program.sfm.warnings.output_label_not_found_in_inputs": "Statement \"%s\" at %s uses resource type \"%s\" which has no matching input statement.",
  "program.sfm.warnings.round_robin_smelly_count": "Round robin by label should be used with more than one label, statement %s",
  "program.sfm.warnings.round_robin_smelly_each": "Round robin by block shouldn't be used with EACH, statement %s",
  "program.sfm.warnings.too_many_conditions": "Too many conditions for simulation, some linter warnings may be missed.",
  "program.sfm.warnings.undefined_label": "Label \"%s\" is assigned in the world but not defined in code.",
  "program.sfm.warnings.unknown_resource_id": "Resource \"%s\" was not found.",
  "program.sfm.warnings.unused_input_label": "Statement \"%s\" at %s inputs \"%s\" from \"%s\" but no future output statement consume \"%s\".",
  "program.sfm.warnings.unused_label": "Label \"%s\" is used in code but not assigned in the world.",
  "sfm.error.bad_translation_argument": "Failed to create translatable contents for key \"{}\" with error {}",
  "sfm.label_gun.view_mode.show_only_active_and_targeted": "Showing blocks with active label. Cycle mode in gui or with %s",
  "sfm.label_gun.view_mode.show_only_targeted": "Showing only targeted block labels. Cycle mode in gui or with %s",
  "sfm.network_tool.reminder_overlay": "Toggle network tool overlay with %s"
}