diff options
| -rw-r--r-- | data/systems.tranquil.Map.desktop.in.in | 8 | ||||
| -rw-r--r-- | data/systems.tranquil.Map.metainfo.xml.in.in | 10 | ||||
| -rw-r--r-- | po/en_US.po | 1618 | ||||
| -rw-r--r-- | po/systems.tranquil.Map.pot | 653 | ||||
| -rw-r--r-- | src/components/footer.rs | 4 | ||||
| -rw-r--r-- | src/components/header.rs | 42 | ||||
| -rw-r--r-- | src/components/preference_pages/editor.rs | 12 | ||||
| -rw-r--r-- | src/components/preference_pages/general.rs | 11 | ||||
| -rw-r--r-- | src/components/preference_pages/map.rs | 18 | ||||
| -rw-r--r-- | src/components/preference_pages/stages.rs | 16 | ||||
| -rw-r--r-- | src/components/preference_pages/templates.rs | 12 | ||||
| -rw-r--r-- | src/components/preferences_window.rs | 20 | ||||
| -rw-r--r-- | src/components/stage_form.rs | 2 | ||||
| -rw-r--r-- | src/components/template_row.rs | 4 | ||||
| -rw-r--r-- | src/dialogs.rs | 24 | ||||
| -rw-r--r-- | src/handlers/export.rs | 6 | ||||
| -rw-r--r-- | src/handlers/file.rs | 12 | ||||
| -rw-r--r-- | src/main.rs | 72 | ||||
| -rw-r--r-- | src/preferences/models.rs | 79 | ||||
| -rw-r--r-- | src/stages.rs | 220 |
20 files changed, 1894 insertions, 949 deletions
diff --git a/data/systems.tranquil.Map.desktop.in.in b/data/systems.tranquil.Map.desktop.in.in index 82b4bec..8325127 100644 --- a/data/systems.tranquil.Map.desktop.in.in +++ b/data/systems.tranquil.Map.desktop.in.in @@ -1,13 +1,13 @@ [Desktop Entry] Type=Application -Name=application.name -GenericName=application.generic_name -Comment=application.comment +Name=Map +GenericName=Wardley Map Editor +Comment=Wardley Map editor for Linux Categories=GNOME;GTK;Graphics;Utility; Icon=@app-id@ Exec=map %u Terminal=false -Keywords=application.tags +Keywords=wardley;wmap;maps;editor;wardley maps;wardley mapping; X-GNOME-Gettext-Domain=@gettext-domain@ MimeType=application/vnd.wmap StartupNotify=true diff --git a/data/systems.tranquil.Map.metainfo.xml.in.in b/data/systems.tranquil.Map.metainfo.xml.in.in index 75ff997..7069e9b 100644 --- a/data/systems.tranquil.Map.metainfo.xml.in.in +++ b/data/systems.tranquil.Map.metainfo.xml.in.in @@ -2,8 +2,8 @@ <component type="desktop-application"> <id>@app-id@</id> - <name>application.name</name> - <summary>application.summary</summary> + <name>Map</name> + <summary>Visualize your business landscape</summary> <metadata_license>CC-BY-SA-4.0</metadata_license> <project_license>AGPL-3.0-or-later</project_license> @@ -19,7 +19,7 @@ <description> <p> - application.description + Map is a wardley map editor for linux that uses a simple language to easily create and edit maps that visualize an evolving environment. Draw components, link dependencies, create groups, write notes, or add inertia and evolution markers, and see your map change in an instant. </p> </description> @@ -28,11 +28,11 @@ <screenshots> <screenshot type="default"> <image>https://map.tranquil.systems/img/screenshots/key-flathub.png</image> - <caption>application.screenshot.key.caption</caption> + <caption>The main window of Map showing the code editor on the left pane, and the rendered preview on the right pane.</caption> </screenshot> <screenshot> <image>https://map.tranquil.systems/img/screenshots/preferences-flathub.png</image> - <caption>application.screenshot.preferences.caption</caption> + <caption>A lineup of the preference panes in map, showing the ways in which you can customize your experience.</caption> </screenshot> </screenshots> diff --git a/po/en_US.po b/po/en_US.po index ba1145f..75f7212 100644 --- a/po/en_US.po +++ b/po/en_US.po @@ -8,319 +8,306 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-04-03 17:32+0200\n" -"PO-Revision-Date: 2026-04-03 17:32+0200\n" +"POT-Creation-Date: 2026-04-04 15:26+0200\n" +"PO-Revision-Date: 2026-04-04 15:26+0200\n" "Last-Translator: \n" "Language-Team: \n" "Language: en_US\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.9\n" -#: src/components/footer.rs:59 src/components/header.rs:186 -msgid "command.view.zoom_out" -msgstr "Zoom Out" +#: src/components/footer.rs:59 src/components/header.rs:180 +msgid "Zoom Out" +msgstr "" -#: src/components/footer.rs:82 src/components/header.rs:185 -msgid "command.view.zoom_in" -msgstr "Zoom In" +#: src/components/footer.rs:82 src/components/header.rs:179 +msgid "Zoom In" +msgstr "" -#: src/components/header.rs:57 src/components/header.rs:179 -msgid "command.view.use_vertical_layout" -msgstr "Use Vertical Layout" +#: src/components/header.rs:57 src/components/header.rs:173 +msgid "Use Vertical Layout" +msgstr "" #: src/components/header.rs:58 -msgid "command.view.use_horizontal_layout" -msgstr "Use Horizontal Layout" +msgid "Use Horizontal Layout" +msgstr "" -#: src/components/header.rs:72 src/components/header.rs:173 -msgid "command.file.export" -msgstr "Export as Image" +#: src/components/header.rs:72 src/components/header.rs:169 +msgid "Export as Image" +msgstr "" #: src/components/header.rs:163 -msgid "command.file.new" -msgstr "New Map" +msgid "New Map" +msgstr "" -#: src/components/header.rs:165 -msgid "command.file.new_from_template" -msgstr "New from Template" +#: src/components/header.rs:164 +msgid "New from Template" +msgstr "" -#: src/components/header.rs:168 -msgid "command.file.open" -msgstr "Open..." +#: src/components/header.rs:165 +msgid "Open…" +msgstr "" -#: src/components/header.rs:169 -msgid "command.file.save" -msgstr "Save" +#: src/components/header.rs:166 src/dialogs.rs:138 +msgid "Save" +msgstr "" -#: src/components/header.rs:170 -msgid "command.file.save_as" -msgstr "Save As..." +#: src/components/header.rs:167 +msgid "Save As…" +msgstr "" -#: src/components/header.rs:171 -msgid "command.file.close" -msgstr "Close" +#: src/components/header.rs:168 +msgid "Close" +msgstr "" -#: src/components/header.rs:191 -msgid "command.application.about" -msgstr "About" +#: src/components/header.rs:184 +msgid "About" +msgstr "" -#: src/components/header.rs:198 -msgid "command.application.preferences" -msgstr "Preferences..." +#: src/components/header.rs:188 +msgid "Preferences…" +msgstr "" #: src/components/preference_pages/editor.rs:73 -msgid "preferences.editor.font_size.title" -msgstr "Font Size" +msgid "Font Size" +msgstr "" #: src/components/preference_pages/editor.rs:93 -msgid "preferences.editor.default_font_size" -msgstr "Default" +msgid "Default" +msgstr "" #: src/components/preference_pages/editor.rs:107 -msgid "preferences.editor.editor_style.title" -msgstr "Editor Style" +msgid "Editor Style" +msgstr "" #: src/components/preference_pages/editor.rs:121 -msgid "preferences.editor.font" -msgstr "Font" +#: src/components/preference_pages/map.rs:84 +msgid "Font" +msgstr "" #: src/components/preference_pages/editor.rs:152 -msgid "preferences.editor.editor_style.soft_wrap_lines" -msgstr "Soft wrap lines" +msgid "Soft wrap lines" +msgstr "" #: src/components/preference_pages/editor.rs:161 -msgid "preferences.editor.editor_style.use_custom_font" -msgstr "Use custom font" +#: src/components/preference_pages/map.rs:155 +msgid "Use custom font" +msgstr "" #: src/components/preference_pages/general.rs:40 -msgid "preferences.general.preferences.title" -msgstr "Preferences" +#: src/components/preferences_window.rs:49 +msgid "Preferences" +msgstr "" #: src/components/preference_pages/general.rs:48 -msgid "preferences.general.preferences.export" -msgstr "Export" +#: src/components/preference_pages/map.rs:104 +msgid "Export" +msgstr "" #: src/components/preference_pages/general.rs:53 -msgid "preferences.general.preferences.import" -msgstr "Import" +msgid "Import" +msgstr "" #: src/components/preference_pages/general.rs:58 -msgid "preferences.general.preferences.reset" -msgstr "Reset to defaults" +msgid "Reset to defaults" +msgstr "" #: src/components/preference_pages/general.rs:67 -msgid "preferences.general.explanation" -msgstr "" +msgid "" "Export your preferences to share with others or back up your settings.\n" -"Import preferences from a file to restore settings." +" Import preferences from a file to restore settings." +msgstr "" #: src/components/preference_pages/map.rs:71 -msgid "preferences.map.map_style.title" -msgstr "Map Style" - -#: src/components/preference_pages/map.rs:84 -msgid "preferences.map.font" -msgstr "Font" - -#: src/components/preference_pages/map.rs:104 -msgid "preferences.map.export.title" -msgstr "Export" +msgid "Map Style" +msgstr "" #: src/components/preference_pages/map.rs:115 -msgid "preferences.map.export.default_format" -msgstr "Default export format" +msgid "Default export format" +msgstr "" #: src/components/preference_pages/map.rs:118 -msgid "export_formats.png" -msgstr "PNG (Raster)" +msgid "PNG (Raster)" +msgstr "" #: src/components/preference_pages/map.rs:119 -msgid "export_formats.svg" -msgstr "SVG (Vector)" +msgid "SVG (Vector)" +msgstr "" #: src/components/preference_pages/map.rs:146 -msgid "preferences.map.map_style.show_background" -msgstr "Show map background" - -#: src/components/preference_pages/map.rs:155 -msgid "preferences.map.map_style.use_custom_font" -msgstr "Use custom font" +msgid "Show map background" +msgstr "" #: src/components/preference_pages/map.rs:164 -msgid "preferences.map.map_style.use_smart_label_positioning" -msgstr "Use smart label positioning" +msgid "Use smart label positioning" +msgstr "" #: src/components/preference_pages/stages.rs:56 -msgid "preferences.stages.title" -msgstr "Custom Stages" +msgid "Custom Stages" +msgstr "" #: src/components/preference_pages/stages.rs:61 -msgid "preferences.stages.explanation" -msgstr "Custom stages allow you to define your own evolution axis label." +msgid "Custom stages allow you to define your own evolution axis label." +msgstr "" #: src/components/preference_pages/stages.rs:85 -msgid "preferences.stages.column.name" -msgstr "Name" +msgid "Name" +msgstr "" -#: src/components/preference_pages/stages.rs:91 -msgid "preferences.stages.column.stage_i" -msgstr "Stage I" +#: src/components/preference_pages/stages.rs:91 src/preferences/models.rs:68 +#: src/stages.rs:112 +msgid "Stage I" +msgstr "" -#: src/components/preference_pages/stages.rs:97 -msgid "preferences.stages.column.stage_ii" -msgstr "Stage II" +#: src/components/preference_pages/stages.rs:97 src/preferences/models.rs:69 +#: src/stages.rs:145 +msgid "Stage II" +msgstr "" -#: src/components/preference_pages/stages.rs:103 -msgid "preferences.stages.column.stage_iii" -msgstr "Stage III" +#: src/components/preference_pages/stages.rs:103 src/preferences/models.rs:70 +#: src/stages.rs:178 +msgid "Stage III" +msgstr "" -#: src/components/preference_pages/stages.rs:109 -msgid "preferences.stages.column.stage_iv" -msgstr "Stage IV" +#: src/components/preference_pages/stages.rs:109 src/preferences/models.rs:71 +#: src/stages.rs:211 +msgid "Stage IV" +msgstr "" #: src/components/preference_pages/stages.rs:132 -msgid "preferences.stages.help.add" -msgstr "Add custom stage" +msgid "Add custom stage" +msgstr "" #: src/components/preference_pages/templates.rs:86 #: src/components/preference_pages/templates.rs:93 -msgid "preferences.templates.title" -msgstr "Templates" +#: src/components/preferences_window.rs:77 +msgid "Templates" +msgstr "" #: src/components/preference_pages/templates.rs:116 -msgid "preferences.templates.help.remove" -msgstr "Remove template" +msgid "Remove template" +msgstr "" #: src/components/preference_pages/templates.rs:124 -msgid "preferences.templates.help.add" -msgstr "Add template" +msgid "Add template" +msgstr "" #: src/components/preference_pages/templates.rs:128 -msgid "dialog.template.default_label" -msgstr "My Template" +msgid "My Template" +msgstr "" #: src/components/preference_pages/templates.rs:187 -msgid "preferences.templates.empty" -msgstr "There are no templates. Click on the + button to create one." - -#: src/components/preferences_window.rs:49 -msgid "preferences.title" -msgstr "Preferences" +msgid "There are no templates. Click on the + button to create one." +msgstr "" #: src/components/preferences_window.rs:73 -msgid "preferences.menu.general" -msgstr "General" +msgid "General" +msgstr "" #: src/components/preferences_window.rs:74 -msgid "preferences.menu.editor" -msgstr "Editor" +msgid "Editor" +msgstr "" -#: src/components/preferences_window.rs:75 -msgid "preferences.menu.map" -msgstr "Map" +#: src/components/preferences_window.rs:75 src/main.rs:180 src/main.rs:182 +#: data/systems.tranquil.Map.desktop.in.in:3 +#: data/systems.tranquil.Map.metainfo.xml.in.in:5 +msgid "Map" +msgstr "" #: src/components/preferences_window.rs:76 -msgid "preferences.menu.stages" -msgstr "Stages" - -#: src/components/preferences_window.rs:77 -msgid "preferences.menu.templates" -msgstr "Templates" +msgid "Stages" +msgstr "" #: src/components/preferences_window.rs:436 #: src/components/preferences_window.rs:462 -msgid "dialog.file_type.json" -msgstr "JSON File" +msgid "JSON File" +msgstr "" #: src/components/preferences_window.rs:442 -msgid "dialog.export_preferences.title" -msgstr "Export Preferences" +msgid "Export Preferences" +msgstr "" #: src/components/preferences_window.rs:468 -msgid "dialog.import_preferences.title" -msgstr "Import Preferences" +msgid "Import Preferences" +msgstr "" #: src/components/stage_form.rs:111 -msgid "preferences.stages.help.remove" -msgstr "Remove stage" +msgid "Remove stage" +msgstr "" #: src/components/template_row.rs:67 -msgid "preferences.templates.help.default" -msgstr "This is the default template." +msgid "This is the default template." +msgstr "" #: src/components/template_row.rs:67 -msgid "preferences.templates.help.set_as_default" -msgstr "Set as default template." +msgid "Set as default template." +msgstr "" #: src/components/template_row.rs:87 -msgid "preferences.templates.help.activate" -msgstr "Edit Template" +msgid "Edit Template" +msgstr "" #: src/dialogs.rs:36 -msgid "dialog.file_type.wmap" -msgstr "Wardley Map Files" +msgid "Wardley Map Files" +msgstr "" -#: src/dialogs.rs:44 src/dialogs.rs:140 -msgid "dialog.action.cancel" -msgstr "Cancel" +#: src/dialogs.rs:44 src/dialogs.rs:138 +msgid "Cancel" +msgstr "" #: src/dialogs.rs:58 -msgid "dialog.open.title" -msgstr "Open Map" +msgid "Open Map" +msgstr "" #: src/dialogs.rs:95 -msgid "dialog.save.title" -msgstr "Save Map As" +msgid "Save Map As" +msgstr "" #: src/dialogs.rs:136 -msgid "dialog.unsaved_changes.title" -msgstr "Unsaved Changes" +msgid "Unsaved Changes" +msgstr "" #: src/dialogs.rs:137 -msgid "dialog.unsaved_changes.message" -msgstr "Save changes before closing?" - -#: src/dialogs.rs:139 -msgid "dialog.action.dont_save" -msgstr "Don't Save" - -#: src/dialogs.rs:141 -msgid "dialog.action.save" -msgstr "Save" +msgid "Save changes before closing?" +msgstr "" -#: src/dialogs.rs:178 -msgid "dialog.file_type.png" -msgstr "PNG Image" +#: src/dialogs.rs:138 +msgid "Don't save" +msgstr "" -#: src/dialogs.rs:179 -msgid "dialog.file_type.svg" -msgstr "SVG Image" +#: src/dialogs.rs:174 +msgid "PNG Image" +msgstr "" -#: src/dialogs.rs:199 -msgid "dialog.export.title" -msgstr "Export Map as Image" +#: src/dialogs.rs:175 +msgid "SVG Image" +msgstr "" -#: src/handlers/export.rs:45 -msgid "error.file.export" -msgstr "Could not export image. Please make sure the destination is writable." +#: src/dialogs.rs:195 +msgid "Export Map as Image" +msgstr "" -#: src/handlers/file.rs:39 -msgid "errors.file.open" -msgstr "Could not open file. Please make sure the file is readable." +#: src/handlers/export.rs:47 +msgid "Could not export image. Please make sure the destination is writable." +msgstr "" -#: src/handlers/file.rs:62 -msgid "errors.file.save" -msgstr "Could not save file. Please make sure the destination is writable." +#: src/handlers/file.rs:41 +msgid "Could not open file. Please make sure the file is readable." +msgstr "" -#: src/main.rs:170 -msgid "document.untitled" -msgstr "Untitled" +#: src/handlers/file.rs:68 +msgid "Could not save file. Please make sure the destination is writable." +msgstr "" -#: src/main.rs:604 -msgid "about.comment" +#: src/main.rs:171 +msgid "Untitled" msgstr "" + +#: src/main.rs:654 +msgid "" "Map is a <a href=\"https://medium.com/wardleymaps\">wardley map</a> editor " "for linux that uses a simple language to easily create and edit maps. Draw " "components, link dependencies, create groups, write notes, or add inertia " @@ -401,54 +388,38 @@ msgstr "" "<tt>[I] 15</tt>\n" "<tt>[II] 35.5</tt>\n" "<tt>[III] 80</tt>" +msgstr "" #: src/preferences/models.rs:53 src/stages.rs:78 -msgid "stages.cynefin.name" -msgstr "Cynefin" +msgid "Cynefin" +msgstr "" #: src/preferences/models.rs:55 src/stages.rs:111 -msgid "stages.cynefin.i" -msgstr "Chaotic" +msgid "Chaotic" +msgstr "" #: src/preferences/models.rs:56 src/stages.rs:144 -msgid "stages.cynefin.ii" -msgstr "Complex" +msgid "Complex" +msgstr "" #: src/preferences/models.rs:57 src/stages.rs:177 -msgid "stages.cynefin.iii" -msgstr "Complicated" +msgid "Complicated" +msgstr "" #: src/preferences/models.rs:58 src/stages.rs:210 -msgid "stages.cynefin.iv" -msgstr "Clear" +msgid "Clear" +msgstr "" #: src/preferences/models.rs:66 -msgid "stages.new.name" -msgstr "New Stage" - -#: src/preferences/models.rs:68 src/stages.rs:112 -msgid "stages.evolution_stage.i" -msgstr "Stage I" - -#: src/preferences/models.rs:69 src/stages.rs:145 -msgid "stages.evolution_stage.ii" -msgstr "Stage II" - -#: src/preferences/models.rs:70 src/stages.rs:178 -msgid "stages.evolution_stage.iii" -msgstr "Stage III" - -#: src/preferences/models.rs:71 src/stages.rs:211 -msgid "stages.evolution_stage.iv" -msgstr "Stage IV" +msgid "New Stage" +msgstr "" #: src/preferences/models.rs:180 -msgid "templates.defaults.example.title" -msgstr "Example Map" +msgid "Example Map" +msgstr "" #: src/preferences/models.rs:181 -msgid "templates.defaults.example.source" -msgstr "" +msgid "" "Client (39, 0) [x]\n" "Consumer (55, 10) [x]\n" "\n" @@ -503,473 +474,460 @@ msgstr "" "[i] 20\n" "[ii] 40\n" "[iii] 70" +msgstr "" -#: src/preferences/models.rs:184 -msgid "templates.defaults.empty.title" -msgstr "Empty" +#: src/preferences/models.rs:237 +msgid "Empty" +msgstr "" #: src/stages.rs:58 -msgid "stage.activities.name" -msgstr "Activities" +msgid "Activities" +msgstr "" #: src/stages.rs:59 -msgid "stage.practice.name" -msgstr "Practice" +msgid "Practice" +msgstr "" #: src/stages.rs:60 -msgid "stage.data.name" -msgstr "Data" +msgid "Data" +msgstr "" #: src/stages.rs:61 -msgid "stages.knowledge.name" -msgstr "Knowledge" +msgid "Knowledge" +msgstr "" #: src/stages.rs:62 -msgid "stages.ubiquity.name" -msgstr "Ubiquity" +msgid "Ubiquity" +msgstr "" #: src/stages.rs:63 -msgid "stages.certainty.name" -msgstr "Certainty" +msgid "Certainty" +msgstr "" #: src/stages.rs:64 -msgid "stages.publication_types.name" -msgstr "Publication Types" +msgid "Publication Types" +msgstr "" #: src/stages.rs:65 -msgid "stages.market.name" -msgstr "Market" +msgid "Market" +msgstr "" #: src/stages.rs:66 -msgid "stages.knowledge_management.name" -msgstr "Knowledge Management" +msgid "Knowledge Management" +msgstr "" #: src/stages.rs:67 -msgid "stages.market_perception.name" -msgstr "Market Perception" +msgid "Market Perception" +msgstr "" #: src/stages.rs:68 -msgid "stages.user_perception.name" -msgstr "User Perception" +msgid "User Perception" +msgstr "" #: src/stages.rs:69 -msgid "stages.perception_in_industry.name" -msgstr "Perception in Industry" +msgid "Perception in Industry" +msgstr "" #: src/stages.rs:70 -msgid "stages.focus_of_value.name" -msgstr "Focus of Value" +msgid "Focus of Value" +msgstr "" #: src/stages.rs:71 -msgid "stages.understanding.name" -msgstr "Understanding" +msgid "Understanding" +msgstr "" #: src/stages.rs:72 -msgid "stages.comparison.name" -msgstr "Comparison" +msgid "Comparison" +msgstr "" #: src/stages.rs:73 -msgid "stages.failure.name" -msgstr "Failure" +msgid "Failure" +msgstr "" #: src/stages.rs:74 -msgid "stages.market_action.name" -msgstr "Market Action" +msgid "Market Action" +msgstr "" #: src/stages.rs:75 -msgid "stages.efficiency.name" -msgstr "Efficiency" +msgid "Efficiency" +msgstr "" #: src/stages.rs:76 -msgid "stages.decision_drivers.name" -msgstr "Decision Drivers" +msgid "Decision Drivers" +msgstr "" #: src/stages.rs:77 -msgid "stages.behavior.name" -msgstr "Behavior" +msgid "Behavior" +msgstr "" #: src/stages.rs:79 -msgid "stages.evolution_stage.name" -msgstr "Evolution Stage" +msgid "Evolution Stage" +msgstr "" #: src/stages.rs:91 -msgid "stage.activities.i" -msgstr "Genesis" +msgid "Genesis" +msgstr "" #: src/stages.rs:92 -msgid "stage.practice.i" -msgstr "Novel" +msgid "Novel" +msgstr "" #: src/stages.rs:93 -msgid "stage.data.i" -msgstr "Unmodelled" +msgid "Unmodelled" +msgstr "" #: src/stages.rs:94 -msgid "stages.knowledge.i" -msgstr "Concept" +msgid "Concept" +msgstr "" #: src/stages.rs:95 -msgid "stages.ubiquity.i" -msgstr "Rare" +msgid "Rare" +msgstr "" #: src/stages.rs:96 -msgid "stages.certainty.i" -msgstr "Poorly Understood / exploring the unknown" +msgid "Poorly Understood / exploring the unknown" +msgstr "" #: src/stages.rs:97 -msgid "stages.publication_types.i" -msgstr "" +msgid "" "Describe the wonder of the thing / the discovery of some marvel / a new " "land / an unknown frontier" +msgstr "" #: src/stages.rs:98 -msgid "stages.market.i" -msgstr "Undefined Market" +msgid "Undefined Market" +msgstr "" #: src/stages.rs:99 -msgid "stages.knowledge_management.i" -msgstr "Uncertain" +msgid "Uncertain" +msgstr "" #: src/stages.rs:100 -msgid "stages.market_perception.i" -msgstr "Chaotic (non-linear) / domain of the \"crazy\"" +msgid "Chaotic (non-linear) / domain of the \"crazy\"" +msgstr "" #: src/stages.rs:101 -msgid "stages.user_perception.i" -msgstr "Different / confusing / exciting / surprising / dangerous" +msgid "Different / confusing / exciting / surprising / dangerous" +msgstr "" #: src/stages.rs:102 -msgid "stages.perception_in_industry.i" -msgstr "Future source of competitive advantage / unpredictable / unknown" +msgid "Future source of competitive advantage / unpredictable / unknown" +msgstr "" #: src/stages.rs:103 -msgid "stages.focus_of_value.i" -msgstr "High future worth but immediate investment" +msgid "High future worth but immediate investment" +msgstr "" #: src/stages.rs:104 -msgid "stages.understanding.i" -msgstr "Poorly Understood / unpredictable" +msgid "Poorly Understood / unpredictable" +msgstr "" #: src/stages.rs:105 -msgid "stages.comparison.i" -msgstr "Constantly changing / a differential / unstable" +msgid "Constantly changing / a differential / unstable" +msgstr "" #: src/stages.rs:106 -msgid "stages.failure.i" -msgstr "High / tolerated / assumed to be wrong" +msgid "High / tolerated / assumed to be wrong" +msgstr "" #: src/stages.rs:107 -msgid "stages.market_action.i" -msgstr "Gambling / driven by gut" +msgid "Gambling / driven by gut" +msgstr "" #: src/stages.rs:108 -msgid "stages.efficiency.i" -msgstr "Reducing the cost of change (experimentation)" +msgid "Reducing the cost of change (experimentation)" +msgstr "" #: src/stages.rs:109 -msgid "stages.decision_drivers.i" -msgstr "Heritage / culture" +msgid "Heritage / culture" +msgstr "" #: src/stages.rs:110 -msgid "stages.behavior.i" -msgstr "Uncertain when to use" +msgid "Uncertain when to use" +msgstr "" #: src/stages.rs:124 -msgid "stage.activities.ii" -msgstr "Custom" +msgid "Custom" +msgstr "" #: src/stages.rs:125 -msgid "stage.practice.ii" -msgstr "Emerging" +msgid "Emerging" +msgstr "" #: src/stages.rs:126 -msgid "stage.data.ii" -msgstr "Divergent" +msgid "Divergent" +msgstr "" #: src/stages.rs:127 -msgid "stages.knowledge.ii" -msgstr "Hypothesis" +msgid "Hypothesis" +msgstr "" #: src/stages.rs:128 -msgid "stages.ubiquity.ii" -msgstr "Slowly Increasing" +msgid "Slowly Increasing" +msgstr "" #: src/stages.rs:129 -msgid "stages.certainty.ii" -msgstr "Rapid Increase In Learning / discovery becomes refining" +msgid "Rapid Increase In Learning / discovery becomes refining" +msgstr "" #: src/stages.rs:130 -msgid "stages.publication_types.ii" -msgstr "" +msgid "" "Focused on build / construct / awareness and learning / many models of " "explanation / no accepted forms / a wild west" +msgstr "" #: src/stages.rs:131 -msgid "stages.market.ii" -msgstr "" +msgid "" "Forming Market / an array of competing forms and models of understanding" +msgstr "" #: src/stages.rs:132 -msgid "stages.knowledge_management.ii" -msgstr "Learning on use / focused on testing prediction" +msgid "Learning on use / focused on testing prediction" +msgstr "" #: src/stages.rs:133 -msgid "stages.market_perception.ii" -msgstr "Domain of \"experts\"" +msgid "Domain of \"experts\"" +msgstr "" #: src/stages.rs:134 -msgid "stages.user_perception.ii" -msgstr "Leading edge / emerging / unceirtanty over results" +msgid "Leading edge / emerging / uncertainty over results" +msgstr "" #: src/stages.rs:135 -msgid "stages.perception_in_industry.ii" +msgid "Seen as a scompetitive advantage / a differential / ROI / case examples" msgstr "" -"Seen as a scompetitive advantage / a differential / ROI / case examples" #: src/stages.rs:136 -msgid "stages.focus_of_value.ii" -msgstr "Seeking ways to profit and a ROI / seeking confirmation of value" +msgid "Seeking ways to profit and a ROI / seeking confirmation of value" +msgstr "" #: src/stages.rs:137 -msgid "stages.understanding.ii" -msgstr "Increasing understanding / development of measures" +msgid "Increasing understanding / development of measures" +msgstr "" #: src/stages.rs:138 -msgid "stages.comparison.ii" -msgstr "Learning from others / testing the water / some evidential support" +msgid "Learning from others / testing the water / some evidential support" +msgstr "" #: src/stages.rs:139 -msgid "stages.failure.ii" -msgstr "Moderate / unsurprising if wrong but disappointed" +msgid "Moderate / unsurprising if wrong but disappointed" +msgstr "" #: src/stages.rs:140 -msgid "stages.market_action.ii" -msgstr "Exploring a \"found\" value" +msgid "Exploring a \"found\" value" +msgstr "" -#: src/stages.rs:141 -msgid "stages.efficiency.ii" -msgstr "Reducing cost of waste (Learning)" +#: src/stages.rs:141 src/stages.rs:174 +msgid "Reducing cost of waste (Learning)" +msgstr "" -#: src/stages.rs:142 -msgid "stages.decision_drivers.ii" -msgstr "Analyses & synthesis" +#: src/stages.rs:142 src/stages.rs:175 +msgid "Analyses & synthesis" +msgstr "" #: src/stages.rs:143 -msgid "stages.behavior.ii" -msgstr "Learning when to use" +msgid "Learning when to use" +msgstr "" #: src/stages.rs:157 -msgid "stage.activities.iii" -msgstr "Product (+rental)" +msgid "Product (+rental)" +msgstr "" #: src/stages.rs:158 -msgid "stage.practice.iii" -msgstr "Good" +msgid "Good" +msgstr "" #: src/stages.rs:159 -msgid "stage.data.iii" -msgstr "Convergent" +msgid "Convergent" +msgstr "" #: src/stages.rs:160 -msgid "stages.knowledge.iii" -msgstr "Theory" +msgid "Theory" +msgstr "" #: src/stages.rs:161 -msgid "stages.ubiquity.iii" -msgstr "Rapidly Increasing" +msgid "Rapidly Increasing" +msgstr "" #: src/stages.rs:162 -msgid "stages.certainty.iii" -msgstr "Rapid increase in use / increasing fit for purpose" +msgid "Rapid increase in use / increasing fit for purpose" +msgstr "" #: src/stages.rs:163 -msgid "stages.publication_types.iii" -msgstr "" +msgid "" "Maintenance / operations / installation / comparison between competing " "forms / feature analysis" +msgstr "" #: src/stages.rs:164 -msgid "stages.market.iii" -msgstr "" +msgid "" "Growing Market / consolidation to a few competing but more accepted forms" +msgstr "" #: src/stages.rs:165 -msgid "stages.knowledge_management.iii" -msgstr "Learning on operation / using prediction / verification" +msgid "Learning on operation / using prediction / verification" +msgstr "" #: src/stages.rs:166 -msgid "stages.market_perception.iii" -msgstr "Increasing expectation of use / domain of \"professionals\"" +msgid "Increasing expectation of use / domain of \"professionals\"" +msgstr "" #: src/stages.rs:167 -msgid "stages.user_perception.iii" -msgstr "" +msgid "" "Increasingly common / disappointed if not used or available / feeling left " "behind" +msgstr "" #: src/stages.rs:168 -msgid "stages.perception_in_industry.iii" -msgstr "" +msgid "" "Advantage through implementation / features / this model is better than that" +msgstr "" #: src/stages.rs:169 -msgid "stages.focus_of_value.iii" -msgstr "" +msgid "" "High profitability per unit / a valuable model / a feeling of " "understanding / focus on exploitation" +msgstr "" #: src/stages.rs:170 -msgid "stages.understanding.iii" -msgstr "Increasing education / constant refinement of needs / measures" +msgid "Increasing education / constant refinement of needs / measures" +msgstr "" #: src/stages.rs:171 -msgid "stages.comparison.iii" -msgstr "Competing models / feature difference / evidential support" +msgid "Competing models / feature difference / evidential support" +msgstr "" #: src/stages.rs:172 -msgid "stages.failure.iii" -msgstr "" +msgid "" "Not tolerated / focus on constant improvement / assumed to be in the right " "direction / resistance to changing the model" +msgstr "" #: src/stages.rs:173 -msgid "stages.market_action.iii" -msgstr "Market analysis / listening to customers" - -#: src/stages.rs:174 -msgid "stages.efficiency.iii" -msgstr "Reducing cost of waste (Learning)" - -#: src/stages.rs:175 -msgid "stages.decision_drivers.iii" -msgstr "Analyses & synthesis" +msgid "Market analysis / listening to customers" +msgstr "" #: src/stages.rs:176 -msgid "stages.behavior.iii" -msgstr "Learning through use" +msgid "Learning through use" +msgstr "" #: src/stages.rs:190 -msgid "stage.activities.iv" -msgstr "Commodity (+utility)" +msgid "Commodity (+utility)" +msgstr "" #: src/stages.rs:191 -msgid "stage.practice.iv" -msgstr "Best" +msgid "Best" +msgstr "" #: src/stages.rs:192 -msgid "stage.data.iv" -msgstr "Modelled" +msgid "Modelled" +msgstr "" #: src/stages.rs:193 -msgid "stages.knowledge.iv" -msgstr "Accepted" +msgid "Accepted" +msgstr "" #: src/stages.rs:194 -msgid "stages.ubiquity.iv" -msgstr "Widespread in the applicable market / ecosystem" +msgid "Widespread in the applicable market / ecosystem" +msgstr "" #: src/stages.rs:195 -msgid "stages.certainty.iv" -msgstr "Commonly understood (in terms of use)" +msgid "Commonly understood (in terms of use)" +msgstr "" #: src/stages.rs:196 -msgid "stages.publication_types.iv" -msgstr "Focused on use / increasingly an accepted, almost invisible component" +msgid "Focused on use / increasingly an accepted, almost invisible component" +msgstr "" #: src/stages.rs:197 -msgid "stages.market.iv" -msgstr "Mature Market / stabilised to an accepted form" +msgid "Mature Market / stabilised to an accepted form" +msgstr "" #: src/stages.rs:198 -msgid "stages.knowledge_management.iv" -msgstr "Known / accepted" +msgid "Known / accepted" +msgstr "" #: src/stages.rs:199 -msgid "stages.market_perception.iv" -msgstr "Ordered (appearance of being linear) / trivial / formula to be applied" +msgid "Ordered (appearance of being linear) / trivial / formula to be applied" +msgstr "" #: src/stages.rs:200 -msgid "stages.user_perception.iv" -msgstr "Standard / expected / feeling of shock if not used" +msgid "Standard / expected / feeling of shock if not used" +msgstr "" #: src/stages.rs:201 -msgid "stages.perception_in_industry.iv" -msgstr "Cost of doing business / accepted / specific defined models" +msgid "Cost of doing business / accepted / specific defined models" +msgstr "" #: src/stages.rs:202 -msgid "stages.focus_of_value.iv" -msgstr "" +msgid "" "High volume / reducing margin / important but invisible / an essential " "component of something more complex" +msgstr "" #: src/stages.rs:203 -msgid "stages.understanding.iv" -msgstr "Believed to be well defined / stable / measurable" +msgid "Believed to be well defined / stable / measurable" +msgstr "" #: src/stages.rs:204 -msgid "stages.comparison.iv" -msgstr "Essential / any advantage is operational / accepted norm" +msgid "Essential / any advantage is operational / accepted norm" +msgstr "" #: src/stages.rs:205 -msgid "stages.failure.iv" -msgstr "Surprised by failure / focus on operational efficiency" +msgid "Surprised by failure / focus on operational efficiency" +msgstr "" #: src/stages.rs:206 -msgid "stages.market_action.iv" -msgstr "Metric driven / build what is needed" +msgid "Metric driven / build what is needed" +msgstr "" #: src/stages.rs:207 -msgid "stages.efficiency.iv" -msgstr "Reducing cost of deviation (Volume)" +msgid "Reducing cost of deviation (Volume)" +msgstr "" #: src/stages.rs:208 -msgid "stages.decision_drivers.iv" -msgstr "Previous Experience" +msgid "Previous Experience" +msgstr "" #: src/stages.rs:209 -msgid "stages.behavior.iv" -msgstr "Known / common usage" - -#: data/systems.tranquil.Map.desktop.in.in:3 -#: data/systems.tranquil.Map.metainfo.xml.in.in:5 -msgid "application.name" -msgstr "Map" +msgid "Known / common usage" +msgstr "" #: data/systems.tranquil.Map.desktop.in.in:4 -msgid "application.generic_name" -msgstr "Wardley Map Editor" +msgid "Wardley Map Editor" +msgstr "" #: data/systems.tranquil.Map.desktop.in.in:5 -msgid "application.comment" -msgstr "Wardley Map editor for Linux" +msgid "Wardley Map editor for Linux" +msgstr "" #: data/systems.tranquil.Map.desktop.in.in:10 -msgid "application.tags" -msgstr "wardley;wmap;maps;editor;wardley maps;wardley mapping;" +msgid "wardley;wmap;maps;editor;wardley maps;wardley mapping;" +msgstr "" #: data/systems.tranquil.Map.metainfo.xml.in.in:6 -msgid "application.summary" -msgstr "Visualize your business landscape" +msgid "Visualize your business landscape" +msgstr "" #: data/systems.tranquil.Map.metainfo.xml.in.in:21 -msgid "application.description" -msgstr "" +msgid "" "Map is a wardley map editor for linux that uses a simple language to easily " "create and edit maps that visualize an evolving environment. Draw " "components, link dependencies, create groups, write notes, or add inertia " "and evolution markers, and see your map change in an instant." +msgstr "" #: data/systems.tranquil.Map.metainfo.xml.in.in:31 -msgid "application.screenshot.key.caption" -msgstr "" +msgid "" "The main window of Map showing the code editor on the left pane, and the " "rendered preview on the right pane." +msgstr "" #: data/systems.tranquil.Map.metainfo.xml.in.in:35 -msgid "application.screenshot.preferences.caption" -msgstr "" +msgid "" "A lineup of the preference panes in map, showing the ways in which you can " "customize your experience." +msgstr "" #: data/systems.tranquil.Map.metainfo.xml.in.in:48 msgid "Editing preferences now works better on small screens." @@ -1007,6 +965,760 @@ msgstr "" msgid "Rubén Beltrán del Río" msgstr "" +#~ msgid "stage.activities.iv" +#~ msgstr "Commodity (+utility)" + +#~ msgid "stage.practice.iv" +#~ msgstr "Best" + +#~ msgid "stage.data.iv" +#~ msgstr "Modelled" + +#~ msgid "stages.knowledge.iv" +#~ msgstr "Accepted" + +#~ msgid "stages.ubiquity.iv" +#~ msgstr "Widespread in the applicable market / ecosystem" + +#~ msgid "stages.certainty.iv" +#~ msgstr "Commonly understood (in terms of use)" + +#~ msgid "stages.publication_types.iv" +#~ msgstr "" +#~ "Focused on use / increasingly an accepted, almost invisible component" + +#~ msgid "stages.market.iv" +#~ msgstr "Mature Market / stabilised to an accepted form" + +#~ msgid "stages.knowledge_management.iv" +#~ msgstr "Known / accepted" + +#~ msgid "stages.market_perception.iv" +#~ msgstr "" +#~ "Ordered (appearance of being linear) / trivial / formula to be applied" + +#~ msgid "stages.user_perception.iv" +#~ msgstr "Standard / expected / feeling of shock if not used" + +#~ msgid "stages.perception_in_industry.iv" +#~ msgstr "Cost of doing business / accepted / specific defined models" + +#~ msgid "stages.focus_of_value.iv" +#~ msgstr "" +#~ "High volume / reducing margin / important but invisible / an essential " +#~ "component of something more complex" + +#~ msgid "stages.understanding.iv" +#~ msgstr "Believed to be well defined / stable / measurable" + +#~ msgid "stages.comparison.iv" +#~ msgstr "Essential / any advantage is operational / accepted norm" + +#~ msgid "stages.failure.iv" +#~ msgstr "Surprised by failure / focus on operational efficiency" + +#~ msgid "stages.market_action.iv" +#~ msgstr "Metric driven / build what is needed" + +#~ msgid "stages.efficiency.iv" +#~ msgstr "Reducing cost of deviation (Volume)" + +#~ msgid "stages.decision_drivers.iv" +#~ msgstr "Previous Experience" + +#~ msgid "stages.behavior.iv" +#~ msgstr "Known / common usage" + +#~ msgid "stages.cynefin.iv" +#~ msgstr "Clear" + +#~ msgid "stages.evolution_stage.iv" +#~ msgstr "Stage IV" + +#~ msgid "stage.activities.iii" +#~ msgstr "Product (+rental)" + +#~ msgid "stage.practice.iii" +#~ msgstr "Good" + +#~ msgid "stage.data.iii" +#~ msgstr "Convergent" + +#~ msgid "stages.knowledge.iii" +#~ msgstr "Theory" + +#~ msgid "stages.ubiquity.iii" +#~ msgstr "Rapidly Increasing" + +#~ msgid "stages.certainty.iii" +#~ msgstr "Rapid increase in use / increasing fit for purpose" + +#~ msgid "stages.publication_types.iii" +#~ msgstr "" +#~ "Maintenance / operations / installation / comparison between competing " +#~ "forms / feature analysis" + +#~ msgid "stages.market.iii" +#~ msgstr "" +#~ "Growing Market / consolidation to a few competing but more accepted forms" + +#~ msgid "stages.knowledge_management.iii" +#~ msgstr "Learning on operation / using prediction / verification" + +#~ msgid "stages.market_perception.iii" +#~ msgstr "Increasing expectation of use / domain of \"professionals\"" + +#~ msgid "stages.user_perception.iii" +#~ msgstr "" +#~ "Increasingly common / disappointed if not used or available / feeling " +#~ "left behind" + +#~ msgid "stages.perception_in_industry.iii" +#~ msgstr "" +#~ "Advantage through implementation / features / this model is better than " +#~ "that" + +#~ msgid "stages.focus_of_value.iii" +#~ msgstr "" +#~ "High profitability per unit / a valuable model / a feeling of " +#~ "understanding / focus on exploitation" + +#~ msgid "stages.understanding.iii" +#~ msgstr "Increasing education / constant refinement of needs / measures" + +#~ msgid "stages.comparison.iii" +#~ msgstr "Competing models / feature difference / evidential support" + +#~ msgid "stages.failure.iii" +#~ msgstr "" +#~ "Not tolerated / focus on constant improvement / assumed to be in the " +#~ "right direction / resistance to changing the model" + +#~ msgid "stages.market_action.iii" +#~ msgstr "Market analysis / listening to customers" + +#~ msgid "stages.efficiency.iii" +#~ msgstr "Reducing cost of waste (Learning)" + +#~ msgid "stages.decision_drivers.iii" +#~ msgstr "Analyses & synthesis" + +#~ msgid "stages.behavior.iii" +#~ msgstr "Learning through use" + +#~ msgid "stages.cynefin.iii" +#~ msgstr "Complicated" + +#~ msgid "stages.evolution_stage.iii" +#~ msgstr "Stage III" + +#~ msgid "stage.activities.ii" +#~ msgstr "Custom" + +#~ msgid "stage.practice.ii" +#~ msgstr "Emerging" + +#~ msgid "stage.data.ii" +#~ msgstr "Divergent" + +#~ msgid "stages.knowledge.ii" +#~ msgstr "Hypothesis" + +#~ msgid "stages.ubiquity.ii" +#~ msgstr "Slowly Increasing" + +#~ msgid "stages.certainty.ii" +#~ msgstr "Rapid Increase In Learning / discovery becomes refining" + +#~ msgid "stages.publication_types.ii" +#~ msgstr "" +#~ "Focused on build / construct / awareness and learning / many models of " +#~ "explanation / no accepted forms / a wild west" + +#~ msgid "stages.market.ii" +#~ msgstr "" +#~ "Forming Market / an array of competing forms and models of understanding" + +#~ msgid "stages.knowledge_management.ii" +#~ msgstr "Learning on use / focused on testing prediction" + +#~ msgid "stages.market_perception.ii" +#~ msgstr "Domain of \"experts\"" + +#~ msgid "stages.user_perception.ii" +#~ msgstr "Leading edge / emerging / unceirtanty over results" + +#~ msgid "stages.perception_in_industry.ii" +#~ msgstr "" +#~ "Seen as a scompetitive advantage / a differential / ROI / case examples" + +#~ msgid "stages.focus_of_value.ii" +#~ msgstr "Seeking ways to profit and a ROI / seeking confirmation of value" + +#~ msgid "stages.understanding.ii" +#~ msgstr "Increasing understanding / development of measures" + +#~ msgid "stages.comparison.ii" +#~ msgstr "Learning from others / testing the water / some evidential support" + +#~ msgid "stages.failure.ii" +#~ msgstr "Moderate / unsurprising if wrong but disappointed" + +#~ msgid "stages.market_action.ii" +#~ msgstr "Exploring a \"found\" value" + +#~ msgid "stages.efficiency.ii" +#~ msgstr "Reducing cost of waste (Learning)" + +#~ msgid "stages.decision_drivers.ii" +#~ msgstr "Analyses & synthesis" + +#~ msgid "stages.behavior.ii" +#~ msgstr "Learning when to use" + +#~ msgid "stages.cynefin.ii" +#~ msgstr "Complex" + +#~ msgid "stages.evolution_stage.ii" +#~ msgstr "Stage II" + +#~ msgid "stage.activities.i" +#~ msgstr "Genesis" + +#~ msgid "stage.practice.i" +#~ msgstr "Novel" + +#~ msgid "stage.data.i" +#~ msgstr "Unmodelled" + +#~ msgid "stages.knowledge.i" +#~ msgstr "Concept" + +#~ msgid "stages.ubiquity.i" +#~ msgstr "Rare" + +#~ msgid "stages.certainty.i" +#~ msgstr "Poorly Understood / exploring the unknown" + +#~ msgid "stages.publication_types.i" +#~ msgstr "" +#~ "Describe the wonder of the thing / the discovery of some marvel / a new " +#~ "land / an unknown frontier" + +#~ msgid "stages.market.i" +#~ msgstr "Undefined Market" + +#~ msgid "stages.knowledge_management.i" +#~ msgstr "Uncertain" + +#~ msgid "stages.market_perception.i" +#~ msgstr "Chaotic (non-linear) / domain of the \"crazy\"" + +#~ msgid "stages.user_perception.i" +#~ msgstr "Different / confusing / exciting / surprising / dangerous" + +#~ msgid "stages.perception_in_industry.i" +#~ msgstr "Future source of competitive advantage / unpredictable / unknown" + +#~ msgid "stages.focus_of_value.i" +#~ msgstr "High future worth but immediate investment" + +#~ msgid "stages.understanding.i" +#~ msgstr "Poorly Understood / unpredictable" + +#~ msgid "stages.comparison.i" +#~ msgstr "Constantly changing / a differential / unstable" + +#~ msgid "stages.failure.i" +#~ msgstr "High / tolerated / assumed to be wrong" + +#~ msgid "stages.market_action.i" +#~ msgstr "Gambling / driven by gut" + +#~ msgid "stages.efficiency.i" +#~ msgstr "Reducing the cost of change (experimentation)" + +#~ msgid "stages.decision_drivers.i" +#~ msgstr "Heritage / culture" + +#~ msgid "stages.behavior.i" +#~ msgstr "Uncertain when to use" + +#~ msgid "stages.cynefin.i" +#~ msgstr "Chaotic" + +#~ msgid "stages.evolution_stage.i" +#~ msgstr "Stage I" + +#~ msgid "stages.cynefin.name" +#~ msgstr "Cynefin" + +#~ msgid "stages.new.name" +#~ msgstr "New Stage" + +#~ msgid "templates.defaults.example.title" +#~ msgstr "Example Map" + +#~ msgid "templates.defaults.example.source" +#~ msgstr "" +#~ "Client (39, 0) [x]\n" +#~ "Consumer (55, 10) [x]\n" +#~ "\n" +#~ "Client -- Consumer\n" +#~ "\n" +#~ "Find out about (65, 15)\n" +#~ "Test printer (42, 20)\n" +#~ "\n" +#~ "Consumer -- Test printer\n" +#~ "Consumer -- Find out about\n" +#~ "\n" +#~ "Microsite (60, 30)\n" +#~ "\n" +#~ "Find out about -- Microsite\n" +#~ "\n" +#~ "[Group] Consumer, Test printer, Find out about, Microsite\n" +#~ "[Note] (63, 10) Team, Settlers\n" +#~ "\n" +#~ "Testing Application (34, 35)\n" +#~ "Microsite -- Testing Application\n" +#~ "Test Printer -- Testing Application\n" +#~ "\n" +#~ "FinDev (30, 50)\n" +#~ "Testing Application -- FinDev\n" +#~ "Microsite -- Findev\n" +#~ "[Group] Testing Application, FinDev\n" +#~ "[Note] (24, 41.5) Team, Pioneers\n" +#~ "[Evolution] Testing Application +15\n" +#~ "[Evolution] FinDev +30\n" +#~ "\n" +#~ "Platform [now] (50, 60) [triangle]\n" +#~ "Platform [then] (71, 60)\n" +#~ "Platform [now] -> Platform [then]\n" +#~ "[Inertia] Platform [now]\n" +#~ "FinDev -- Platform [then]\n" +#~ "[Group] Platform\n" +#~ "[Note] (74, 60) Team, Town Planners\n" +#~ "\n" +#~ "Distribution (65, 70)\n" +#~ "Brochure (60, 75)\n" +#~ "Distribution -- Brochure\n" +#~ "[Evolution] Distribution +20\n" +#~ "Testing Application -- Distribution\n" +#~ "Distribution -- Brochure\n" +#~ "[Group] Distribution, Brochure\n" +#~ "[Note] (65, 75) Team, Town Planners\n" +#~ "\n" +#~ "Large Format Printer (45, 75)\n" +#~ "Testing Application -- Large Format Printer\n" +#~ "[Group] Large Format Printer\n" +#~ "[Note] (42, 78.5) Team, Settlers\n" +#~ "[i] 20\n" +#~ "[ii] 40\n" +#~ "[iii] 70" + +#~ msgid "templates.defaults.empty.title" +#~ msgstr "Empty" + +#~ msgid "stage.activities.name" +#~ msgstr "Activities" + +#~ msgid "stage.practice.name" +#~ msgstr "Practice" + +#~ msgid "stage.data.name" +#~ msgstr "Data" + +#~ msgid "stages.knowledge.name" +#~ msgstr "Knowledge" + +#~ msgid "stages.ubiquity.name" +#~ msgstr "Ubiquity" + +#~ msgid "stages.certainty.name" +#~ msgstr "Certainty" + +#~ msgid "stages.publication_types.name" +#~ msgstr "Publication Types" + +#~ msgid "stages.market.name" +#~ msgstr "Market" + +#~ msgid "stages.knowledge_management.name" +#~ msgstr "Knowledge Management" + +#~ msgid "stages.market_perception.name" +#~ msgstr "Market Perception" + +#~ msgid "stages.user_perception.name" +#~ msgstr "User Perception" + +#~ msgid "stages.perception_in_industry.name" +#~ msgstr "Perception in Industry" + +#~ msgid "stages.focus_of_value.name" +#~ msgstr "Focus of Value" + +#~ msgid "stages.understanding.name" +#~ msgstr "Understanding" + +#~ msgid "stages.comparison.name" +#~ msgstr "Comparison" + +#~ msgid "stages.failure.name" +#~ msgstr "Failure" + +#~ msgid "stages.market_action.name" +#~ msgstr "Market Action" + +#~ msgid "stages.efficiency.name" +#~ msgstr "Efficiency" + +#~ msgid "stages.decision_drivers.name" +#~ msgstr "Decision Drivers" + +#~ msgid "stages.behavior.name" +#~ msgstr "Behavior" + +#~ msgid "stages.evolution_stage.name" +#~ msgstr "Evolution Stage" + +#~ msgid "error.file.export" +#~ msgstr "" +#~ "Could not export image. Please make sure the destination is writable." + +#~ msgid "errors.file.open" +#~ msgstr "Could not open file. Please make sure the file is readable." + +#~ msgid "errors.file.save" +#~ msgstr "Could not save file. Please make sure the destination is writable." + +#~ msgid "dialog.file_type.json" +#~ msgstr "JSON File" + +#~ msgid "dialog.export_preferences.title" +#~ msgstr "Export Preferences" + +#~ msgid "dialog.import_preferences.title" +#~ msgstr "Import Preferences" + +#~ msgid "preferences.stages.help.remove" +#~ msgstr "Remove stage" + +#~ msgid "preferences.templates.help.default" +#~ msgstr "This is the default template." + +#~ msgid "preferences.templates.help.set_as_default" +#~ msgstr "Set as default template." + +#~ msgid "preferences.templates.help.activate" +#~ msgstr "Edit Template" + +#~ msgid "preferences.menu.general" +#~ msgstr "General" + +#~ msgid "preferences.menu.editor" +#~ msgstr "Editor" + +#~ msgid "preferences.menu.map" +#~ msgstr "Map" + +#~ msgid "preferences.menu.stages" +#~ msgstr "Stages" + +#~ msgid "preferences.menu.templates" +#~ msgstr "Templates" + +#~ msgid "dialog.file_type.wmap" +#~ msgstr "Wardley Map Files" + +#~ msgid "dialog.action.cancel" +#~ msgstr "Cancel" + +#~ msgid "dialog.open.title" +#~ msgstr "Open Map" + +#~ msgid "dialog.save.title" +#~ msgstr "Save Map As" + +#~ msgid "dialog.unsaved_changes.title" +#~ msgstr "Unsaved Changes" + +#~ msgid "dialog.unsaved_changes.message" +#~ msgstr "Save changes before closing?" + +#~ msgid "dialog.action.dont_save" +#~ msgstr "Don't Save" + +#~ msgid "dialog.action.save" +#~ msgstr "Save" + +#~ msgid "dialog.file_type.png" +#~ msgstr "PNG Image" + +#~ msgid "dialog.file_type.svg" +#~ msgstr "SVG Image" + +#~ msgid "dialog.export.title" +#~ msgstr "Export Map as Image" + +#~ msgid "preferences.editor.font_size.title" +#~ msgstr "Font Size" + +#~ msgid "preferences.editor.default_font_size" +#~ msgstr "Default" + +#~ msgid "preferences.editor.editor_style.title" +#~ msgstr "Editor Style" + +#~ msgid "preferences.editor.font" +#~ msgstr "Font" + +#~ msgid "preferences.editor.editor_style.soft_wrap_lines" +#~ msgstr "Soft wrap lines" + +#~ msgid "preferences.editor.editor_style.use_custom_font" +#~ msgstr "Use custom font" + +#~ msgid "preferences.general.preferences.title" +#~ msgstr "Preferences" + +#~ msgid "preferences.general.preferences.export" +#~ msgstr "Export" + +#~ msgid "preferences.general.preferences.import" +#~ msgstr "Import" + +#~ msgid "preferences.general.preferences.reset" +#~ msgstr "Reset to defaults" + +#~ msgid "preferences.general.explanation" +#~ msgstr "" +#~ "Export your preferences to share with others or back up your settings.\n" +#~ "Import preferences from a file to restore settings." + +#~ msgid "preferences.map.map_style.title" +#~ msgstr "Map Style" + +#~ msgid "preferences.map.font" +#~ msgstr "Font" + +#~ msgid "preferences.map.export.title" +#~ msgstr "Export" + +#~ msgid "preferences.map.export.default_format" +#~ msgstr "Default export format" + +#~ msgid "export_formats.svg" +#~ msgstr "SVG (Vector)" + +#~ msgid "preferences.map.map_style.show_background" +#~ msgstr "Show map background" + +#~ msgid "preferences.map.map_style.use_custom_font" +#~ msgstr "Use custom font" + +#~ msgid "preferences.map.map_style.use_smart_label_positioning" +#~ msgstr "Use smart label positioning" + +#~ msgid "preferences.stages.title" +#~ msgstr "Custom Stages" + +#~ msgid "preferences.stages.explanation" +#~ msgstr "Custom stages allow you to define your own evolution axis label." + +#~ msgid "preferences.stages.column.name" +#~ msgstr "Name" + +#~ msgid "preferences.stages.column.stage_i" +#~ msgstr "Stage I" + +#~ msgid "preferences.stages.column.stage_ii" +#~ msgstr "Stage II" + +#~ msgid "preferences.stages.column.stage_iii" +#~ msgstr "Stage III" + +#~ msgid "preferences.stages.column.stage_iv" +#~ msgstr "Stage IV" + +#~ msgid "preferences.stages.help.add" +#~ msgstr "Add custom stage" + +#~ msgid "preferences.templates.title" +#~ msgstr "Templates" + +#~ msgid "preferences.templates.help.remove" +#~ msgstr "Remove template" + +#~ msgid "preferences.templates.help.add" +#~ msgstr "Add template" + +#~ msgid "dialog.template.default_label" +#~ msgstr "My Template" + +#~ msgid "preferences.templates.empty" +#~ msgstr "There are no templates. Click on the + button to create one." + +#~ msgid "command.view.zoom_out" +#~ msgstr "Zoom Out" + +#~ msgid "command.view.zoom_in" +#~ msgstr "Zoom In" + +#~ msgid "command.view.use_vertical_layout" +#~ msgstr "Use Vertical Layout" + +#~ msgid "command.view.use_horizontal_layout" +#~ msgstr "Use Horizontal Layout" + +#~ msgid "command.file.export" +#~ msgstr "Export as Image" + +#~ msgid "command.file.new" +#~ msgstr "New Map" + +#~ msgid "command.file.new_from_template" +#~ msgstr "New from Template" + +#~ msgid "command.file.open" +#~ msgstr "Open..." + +#~ msgid "command.file.save" +#~ msgstr "Save" + +#~ msgid "command.file.save_as" +#~ msgstr "Save As..." + +#~ msgid "command.file.close" +#~ msgstr "Close" + +#~ msgid "command.application.about" +#~ msgstr "About" + +#~ msgid "command.application.preferences" +#~ msgstr "Preferences..." + +#~ msgid "document.untitled" +#~ msgstr "Untitled" + +#~ msgid "about.comment" +#~ msgstr "" +#~ "Map is a <a href=\"https://medium.com/wardleymaps\">wardley map</a> " +#~ "editor for linux that uses a simple language to easily create and edit " +#~ "maps. Draw components, link dependencies, create groups, write notes, or " +#~ "add inertia and evolution markers, and see your map change in an " +#~ "instant.\n" +#~ "\n" +#~ "<big><b>Language Reference</b></big>\n" +#~ "\n" +#~ "The wmap language is a simple notation to create and edit wardley maps " +#~ "and is easy to pick up:\n" +#~ "\n" +#~ "<b>Components</b>\n" +#~ "\n" +#~ "Components are written as <tt>Name (x,y)</tt>. The name can contain " +#~ "spaces, and the x and y coordinates are a whole or decimal number from 0 " +#~ "to 100 and represent how far from the top left corner the component will " +#~ "be drawn.\n" +#~ "\n" +#~ "By default, components will be drawn as a circle, but you can specify the " +#~ "shape by appending <tt>[Square]</tt>, <tt>[Triangle]</tt>, or <tt>[x]</" +#~ "tt>. Here's some examples:\n" +#~ "\n" +#~ "<tt>Component (1,2)</tt>\n" +#~ "<tt>My Cool Component (10.0,21.0)</tt>\n" +#~ "<tt>A (1, 2.0) [Square]</tt>\n" +#~ "<tt>Rose Wall (44.3, 50.0) [x]</tt>\n" +#~ "\n" +#~ "<b>Dependencies</b>\n" +#~ "\n" +#~ "Dependencies connect two components, and they are written as " +#~ "<tt>Component A -- Component B</tt>. This will draw a simple line between " +#~ "them. If you want an arrow, you can use <tt>Component -> Component</" +#~ "tt> instead.\n" +#~ "\n" +#~ "<tt>Component -- My Cool Component</tt>\n" +#~ "<tt>A -> Component</tt>\n" +#~ "\n" +#~ "<b>Inertia</b>\n" +#~ "\n" +#~ "You can place an inertia marker in front of a component by writing " +#~ "<tt>[Inertia] Component</tt>.\n" +#~ "\n" +#~ "<tt>[Inertia] My Cool Component</tt>\n" +#~ "<tt>[Inertia] A</tt>\n" +#~ "\n" +#~ "<b>Evolution</b>\n" +#~ "\n" +#~ "Evolution arrows are notated by using <tt>[Evolution] Component +x</tt> " +#~ "or <tt>[Evolution] Component -x</tt>, where x is a whole or decimal " +#~ "number between 0 and 100.\n" +#~ "\n" +#~ "<tt>[Evolution] My Cool Component -10</tt>\n" +#~ "<tt>[Evolution] A +15</tt>\n" +#~ "\n" +#~ "<b>Notes</b>\n" +#~ "\n" +#~ "Sometimes it's helpful to add some text clarifying the map. Writing " +#~ "<tt>[Note] (x, y) Text</tt> will create a note block right at those " +#~ "coordinates. Just like components, x and y are numbers between 0 and 100. " +#~ "You can write \\n to force a line break.\n" +#~ "\n" +#~ "<tt>[Note] (30, 45) Here we want to call out an explanation or context.</" +#~ "tt>\n" +#~ "<tt>[Note] (90, 25) We're close to the edge \\n so we can multiline it.</" +#~ "tt>\n" +#~ "\n" +#~ "<b>Groups</b>\n" +#~ "\n" +#~ "You can group components together by using <tt>[Group] ComponentA, " +#~ "ComponentB...</tt>\n" +#~ "\n" +#~ "<tt>[Group] Tinker, Tailor, Soldier</tt>\n" +#~ "<tt>[Group] Two Words, Three Words Here</tt>\n" +#~ "\n" +#~ "<b>Resizing Evolution Stages</b>\n" +#~ "\n" +#~ "If you need more space for one of the four stages, you can use <b>[I] x</" +#~ "b>, <b>[II] x</b>, or <b>[III] x</b>. As with other lines, x is a number " +#~ "between 0-100.\n" +#~ "\n" +#~ "<tt>[I] 15</tt>\n" +#~ "<tt>[II] 35.5</tt>\n" +#~ "<tt>[III] 80</tt>" + +#~ msgid "application.generic_name" +#~ msgstr "Wardley Map Editor" + +#~ msgid "application.comment" +#~ msgstr "Wardley Map editor for Linux" + +#~ msgid "application.tags" +#~ msgstr "wardley;wmap;maps;editor;wardley maps;wardley mapping;" + +#~ msgid "application.name" +#~ msgstr "Map" + +#~ msgid "application.summary" +#~ msgstr "Visualize your business landscape" + +#~ msgid "application.description" +#~ msgstr "" +#~ "Map is a wardley map editor for linux that uses a simple language to " +#~ "easily create and edit maps that visualize an evolving environment. Draw " +#~ "components, link dependencies, create groups, write notes, or add inertia " +#~ "and evolution markers, and see your map change in an instant." + +#~ msgid "application.screenshot.key.caption" +#~ msgstr "" +#~ "The main window of Map showing the code editor on the left pane, and the " +#~ "rendered preview on the right pane." + +#~ msgid "application.screenshot.preferences.caption" +#~ msgstr "" +#~ "A lineup of the preference panes in map, showing the ways in which you " +#~ "can customize your experience." + #~ msgid "dialog.action.open" #~ msgstr "Open" diff --git a/po/systems.tranquil.Map.pot b/po/systems.tranquil.Map.pot index bc292e2..b6375e8 100644 --- a/po/systems.tranquil.Map.pot +++ b/po/systems.tranquil.Map.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-04-03 17:32+0200\n" +"POT-Creation-Date: 2026-04-04 15:26+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -17,795 +17,914 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: src/components/footer.rs:59 src/components/header.rs:186 -msgid "command.view.zoom_out" +#: src/components/footer.rs:59 src/components/header.rs:180 +msgid "Zoom Out" msgstr "" -#: src/components/footer.rs:82 src/components/header.rs:185 -msgid "command.view.zoom_in" +#: src/components/footer.rs:82 src/components/header.rs:179 +msgid "Zoom In" msgstr "" -#: src/components/header.rs:57 src/components/header.rs:179 -msgid "command.view.use_vertical_layout" +#: src/components/header.rs:57 src/components/header.rs:173 +msgid "Use Vertical Layout" msgstr "" #: src/components/header.rs:58 -msgid "command.view.use_horizontal_layout" +msgid "Use Horizontal Layout" msgstr "" -#: src/components/header.rs:72 src/components/header.rs:173 -msgid "command.file.export" +#: src/components/header.rs:72 src/components/header.rs:169 +msgid "Export as Image" msgstr "" #: src/components/header.rs:163 -msgid "command.file.new" +msgid "New Map" msgstr "" -#: src/components/header.rs:165 -msgid "command.file.new_from_template" +#: src/components/header.rs:164 +msgid "New from Template" msgstr "" -#: src/components/header.rs:168 -msgid "command.file.open" +#: src/components/header.rs:165 +msgid "Open…" msgstr "" -#: src/components/header.rs:169 -msgid "command.file.save" +#: src/components/header.rs:166 src/dialogs.rs:138 +msgid "Save" msgstr "" -#: src/components/header.rs:170 -msgid "command.file.save_as" +#: src/components/header.rs:167 +msgid "Save As…" msgstr "" -#: src/components/header.rs:171 -msgid "command.file.close" +#: src/components/header.rs:168 +msgid "Close" msgstr "" -#: src/components/header.rs:191 -msgid "command.application.about" +#: src/components/header.rs:184 +msgid "About" msgstr "" -#: src/components/header.rs:198 -msgid "command.application.preferences" +#: src/components/header.rs:188 +msgid "Preferences…" msgstr "" #: src/components/preference_pages/editor.rs:73 -msgid "preferences.editor.font_size.title" +msgid "Font Size" msgstr "" #: src/components/preference_pages/editor.rs:93 -msgid "preferences.editor.default_font_size" +msgid "Default" msgstr "" #: src/components/preference_pages/editor.rs:107 -msgid "preferences.editor.editor_style.title" +msgid "Editor Style" msgstr "" #: src/components/preference_pages/editor.rs:121 -msgid "preferences.editor.font" +#: src/components/preference_pages/map.rs:84 +msgid "Font" msgstr "" #: src/components/preference_pages/editor.rs:152 -msgid "preferences.editor.editor_style.soft_wrap_lines" +msgid "Soft wrap lines" msgstr "" #: src/components/preference_pages/editor.rs:161 -msgid "preferences.editor.editor_style.use_custom_font" +#: src/components/preference_pages/map.rs:155 +msgid "Use custom font" msgstr "" #: src/components/preference_pages/general.rs:40 -msgid "preferences.general.preferences.title" +#: src/components/preferences_window.rs:49 +msgid "Preferences" msgstr "" #: src/components/preference_pages/general.rs:48 -msgid "preferences.general.preferences.export" +#: src/components/preference_pages/map.rs:104 +msgid "Export" msgstr "" #: src/components/preference_pages/general.rs:53 -msgid "preferences.general.preferences.import" +msgid "Import" msgstr "" #: src/components/preference_pages/general.rs:58 -msgid "preferences.general.preferences.reset" +msgid "Reset to defaults" msgstr "" #: src/components/preference_pages/general.rs:67 -msgid "preferences.general.explanation" +msgid "" +"Export your preferences to share with others or back up your settings.\n" +" Import preferences from a file to restore settings." msgstr "" #: src/components/preference_pages/map.rs:71 -msgid "preferences.map.map_style.title" -msgstr "" - -#: src/components/preference_pages/map.rs:84 -msgid "preferences.map.font" -msgstr "" - -#: src/components/preference_pages/map.rs:104 -msgid "preferences.map.export.title" +msgid "Map Style" msgstr "" #: src/components/preference_pages/map.rs:115 -msgid "preferences.map.export.default_format" +msgid "Default export format" msgstr "" #: src/components/preference_pages/map.rs:118 -msgid "export_formats.png" +msgid "PNG (Raster)" msgstr "" #: src/components/preference_pages/map.rs:119 -msgid "export_formats.svg" +msgid "SVG (Vector)" msgstr "" #: src/components/preference_pages/map.rs:146 -msgid "preferences.map.map_style.show_background" -msgstr "" - -#: src/components/preference_pages/map.rs:155 -msgid "preferences.map.map_style.use_custom_font" +msgid "Show map background" msgstr "" #: src/components/preference_pages/map.rs:164 -msgid "preferences.map.map_style.use_smart_label_positioning" +msgid "Use smart label positioning" msgstr "" #: src/components/preference_pages/stages.rs:56 -msgid "preferences.stages.title" +msgid "Custom Stages" msgstr "" #: src/components/preference_pages/stages.rs:61 -msgid "preferences.stages.explanation" +msgid "Custom stages allow you to define your own evolution axis label." msgstr "" #: src/components/preference_pages/stages.rs:85 -msgid "preferences.stages.column.name" +msgid "Name" msgstr "" -#: src/components/preference_pages/stages.rs:91 -msgid "preferences.stages.column.stage_i" +#: src/components/preference_pages/stages.rs:91 src/preferences/models.rs:68 +#: src/stages.rs:112 +msgid "Stage I" msgstr "" -#: src/components/preference_pages/stages.rs:97 -msgid "preferences.stages.column.stage_ii" +#: src/components/preference_pages/stages.rs:97 src/preferences/models.rs:69 +#: src/stages.rs:145 +msgid "Stage II" msgstr "" -#: src/components/preference_pages/stages.rs:103 -msgid "preferences.stages.column.stage_iii" +#: src/components/preference_pages/stages.rs:103 src/preferences/models.rs:70 +#: src/stages.rs:178 +msgid "Stage III" msgstr "" -#: src/components/preference_pages/stages.rs:109 -msgid "preferences.stages.column.stage_iv" +#: src/components/preference_pages/stages.rs:109 src/preferences/models.rs:71 +#: src/stages.rs:211 +msgid "Stage IV" msgstr "" #: src/components/preference_pages/stages.rs:132 -msgid "preferences.stages.help.add" +msgid "Add custom stage" msgstr "" #: src/components/preference_pages/templates.rs:86 #: src/components/preference_pages/templates.rs:93 -msgid "preferences.templates.title" +#: src/components/preferences_window.rs:77 +msgid "Templates" msgstr "" #: src/components/preference_pages/templates.rs:116 -msgid "preferences.templates.help.remove" +msgid "Remove template" msgstr "" #: src/components/preference_pages/templates.rs:124 -msgid "preferences.templates.help.add" +msgid "Add template" msgstr "" #: src/components/preference_pages/templates.rs:128 -msgid "dialog.template.default_label" +msgid "My Template" msgstr "" #: src/components/preference_pages/templates.rs:187 -msgid "preferences.templates.empty" -msgstr "" - -#: src/components/preferences_window.rs:49 -msgid "preferences.title" +msgid "There are no templates. Click on the + button to create one." msgstr "" #: src/components/preferences_window.rs:73 -msgid "preferences.menu.general" +msgid "General" msgstr "" #: src/components/preferences_window.rs:74 -msgid "preferences.menu.editor" +msgid "Editor" msgstr "" -#: src/components/preferences_window.rs:75 -msgid "preferences.menu.map" +#: src/components/preferences_window.rs:75 src/main.rs:180 src/main.rs:182 +#: data/systems.tranquil.Map.desktop.in.in:3 +#: data/systems.tranquil.Map.metainfo.xml.in.in:5 +msgid "Map" msgstr "" #: src/components/preferences_window.rs:76 -msgid "preferences.menu.stages" -msgstr "" - -#: src/components/preferences_window.rs:77 -msgid "preferences.menu.templates" +msgid "Stages" msgstr "" #: src/components/preferences_window.rs:436 #: src/components/preferences_window.rs:462 -msgid "dialog.file_type.json" +msgid "JSON File" msgstr "" #: src/components/preferences_window.rs:442 -msgid "dialog.export_preferences.title" +msgid "Export Preferences" msgstr "" #: src/components/preferences_window.rs:468 -msgid "dialog.import_preferences.title" +msgid "Import Preferences" msgstr "" #: src/components/stage_form.rs:111 -msgid "preferences.stages.help.remove" +msgid "Remove stage" msgstr "" #: src/components/template_row.rs:67 -msgid "preferences.templates.help.default" +msgid "This is the default template." msgstr "" #: src/components/template_row.rs:67 -msgid "preferences.templates.help.set_as_default" +msgid "Set as default template." msgstr "" #: src/components/template_row.rs:87 -msgid "preferences.templates.help.activate" +msgid "Edit Template" msgstr "" #: src/dialogs.rs:36 -msgid "dialog.file_type.wmap" +msgid "Wardley Map Files" msgstr "" -#: src/dialogs.rs:44 src/dialogs.rs:140 -msgid "dialog.action.cancel" +#: src/dialogs.rs:44 src/dialogs.rs:138 +msgid "Cancel" msgstr "" #: src/dialogs.rs:58 -msgid "dialog.open.title" +msgid "Open Map" msgstr "" #: src/dialogs.rs:95 -msgid "dialog.save.title" +msgid "Save Map As" msgstr "" #: src/dialogs.rs:136 -msgid "dialog.unsaved_changes.title" +msgid "Unsaved Changes" msgstr "" #: src/dialogs.rs:137 -msgid "dialog.unsaved_changes.message" +msgid "Save changes before closing?" msgstr "" -#: src/dialogs.rs:139 -msgid "dialog.action.dont_save" +#: src/dialogs.rs:138 +msgid "Don't save" msgstr "" -#: src/dialogs.rs:141 -msgid "dialog.action.save" +#: src/dialogs.rs:174 +msgid "PNG Image" msgstr "" -#: src/dialogs.rs:178 -msgid "dialog.file_type.png" +#: src/dialogs.rs:175 +msgid "SVG Image" msgstr "" -#: src/dialogs.rs:179 -msgid "dialog.file_type.svg" +#: src/dialogs.rs:195 +msgid "Export Map as Image" msgstr "" -#: src/dialogs.rs:199 -msgid "dialog.export.title" +#: src/handlers/export.rs:47 +msgid "Could not export image. Please make sure the destination is writable." msgstr "" -#: src/handlers/export.rs:45 -msgid "error.file.export" +#: src/handlers/file.rs:41 +msgid "Could not open file. Please make sure the file is readable." msgstr "" -#: src/handlers/file.rs:39 -msgid "errors.file.open" +#: src/handlers/file.rs:68 +msgid "Could not save file. Please make sure the destination is writable." msgstr "" -#: src/handlers/file.rs:62 -msgid "errors.file.save" +#: src/main.rs:171 +msgid "Untitled" msgstr "" -#: src/main.rs:170 -msgid "document.untitled" -msgstr "" - -#: src/main.rs:604 -msgid "about.comment" +#: src/main.rs:654 +msgid "" +"Map is a <a href=\"https://medium.com/wardleymaps\">wardley map</a> editor " +"for linux that uses a simple language to easily create and edit maps. Draw " +"components, link dependencies, create groups, write notes, or add inertia " +"and evolution markers, and see your map change in an instant.\n" +"\n" +"<big><b>Language Reference</b></big>\n" +"\n" +"The wmap language is a simple notation to create and edit wardley maps and " +"is easy to pick up:\n" +"\n" +"<b>Components</b>\n" +"\n" +"Components are written as <tt>Name (x,y)</tt>. The name can contain spaces, " +"and the x and y coordinates are a whole or decimal number from 0 to 100 and " +"represent how far from the top left corner the component will be drawn.\n" +"\n" +"By default, components will be drawn as a circle, but you can specify the " +"shape by appending <tt>[Square]</tt>, <tt>[Triangle]</tt>, or <tt>[x]</tt>. " +"Here's some examples:\n" +"\n" +"<tt>Component (1,2)</tt>\n" +"<tt>My Cool Component (10.0,21.0)</tt>\n" +"<tt>A (1, 2.0) [Square]</tt>\n" +"<tt>Rose Wall (44.3, 50.0) [x]</tt>\n" +"\n" +"<b>Dependencies</b>\n" +"\n" +"Dependencies connect two components, and they are written as <tt>Component A " +"-- Component B</tt>. This will draw a simple line between them. If you want " +"an arrow, you can use <tt>Component -> Component</tt> instead.\n" +"\n" +"<tt>Component -- My Cool Component</tt>\n" +"<tt>A -> Component</tt>\n" +"\n" +"<b>Inertia</b>\n" +"\n" +"You can place an inertia marker in front of a component by writing " +"<tt>[Inertia] Component</tt>.\n" +"\n" +"<tt>[Inertia] My Cool Component</tt>\n" +"<tt>[Inertia] A</tt>\n" +"\n" +"<b>Evolution</b>\n" +"\n" +"Evolution arrows are notated by using <tt>[Evolution] Component +x</tt> or " +"<tt>[Evolution] Component -x</tt>, where x is a whole or decimal number " +"between 0 and 100.\n" +"\n" +"<tt>[Evolution] My Cool Component -10</tt>\n" +"<tt>[Evolution] A +15</tt>\n" +"\n" +"<b>Notes</b>\n" +"\n" +"Sometimes it's helpful to add some text clarifying the map. Writing " +"<tt>[Note] (x, y) Text</tt> will create a note block right at those " +"coordinates. Just like components, x and y are numbers between 0 and 100. " +"You can write \\n to force a line break.\n" +"\n" +"<tt>[Note] (30, 45) Here we want to call out an explanation or context.</" +"tt>\n" +"<tt>[Note] (90, 25) We're close to the edge \\n so we can multiline it.</" +"tt>\n" +"\n" +"<b>Groups</b>\n" +"\n" +"You can group components together by using <tt>[Group] ComponentA, " +"ComponentB...</tt>\n" +"\n" +"<tt>[Group] Tinker, Tailor, Soldier</tt>\n" +"<tt>[Group] Two Words, Three Words Here</tt>\n" +"\n" +"<b>Resizing Evolution Stages</b>\n" +"\n" +"If you need more space for one of the four stages, you can use <b>[I] x</b>, " +"<b>[II] x</b>, or <b>[III] x</b>. As with other lines, x is a number between " +"0-100.\n" +"\n" +"<tt>[I] 15</tt>\n" +"<tt>[II] 35.5</tt>\n" +"<tt>[III] 80</tt>" msgstr "" #: src/preferences/models.rs:53 src/stages.rs:78 -msgid "stages.cynefin.name" +msgid "Cynefin" msgstr "" #: src/preferences/models.rs:55 src/stages.rs:111 -msgid "stages.cynefin.i" +msgid "Chaotic" msgstr "" #: src/preferences/models.rs:56 src/stages.rs:144 -msgid "stages.cynefin.ii" +msgid "Complex" msgstr "" #: src/preferences/models.rs:57 src/stages.rs:177 -msgid "stages.cynefin.iii" +msgid "Complicated" msgstr "" #: src/preferences/models.rs:58 src/stages.rs:210 -msgid "stages.cynefin.iv" +msgid "Clear" msgstr "" #: src/preferences/models.rs:66 -msgid "stages.new.name" -msgstr "" - -#: src/preferences/models.rs:68 src/stages.rs:112 -msgid "stages.evolution_stage.i" -msgstr "" - -#: src/preferences/models.rs:69 src/stages.rs:145 -msgid "stages.evolution_stage.ii" -msgstr "" - -#: src/preferences/models.rs:70 src/stages.rs:178 -msgid "stages.evolution_stage.iii" -msgstr "" - -#: src/preferences/models.rs:71 src/stages.rs:211 -msgid "stages.evolution_stage.iv" +msgid "New Stage" msgstr "" #: src/preferences/models.rs:180 -msgid "templates.defaults.example.title" +msgid "Example Map" msgstr "" #: src/preferences/models.rs:181 -msgid "templates.defaults.example.source" +msgid "" +"Client (39, 0) [x]\n" +"Consumer (55, 10) [x]\n" +"\n" +"Client -- Consumer\n" +"\n" +"Find out about (65, 15)\n" +"Test printer (42, 20)\n" +"\n" +"Consumer -- Test printer\n" +"Consumer -- Find out about\n" +"\n" +"Microsite (60, 30)\n" +"\n" +"Find out about -- Microsite\n" +"\n" +"[Group] Consumer, Test printer, Find out about, Microsite\n" +"[Note] (63, 10) Team, Settlers\n" +"\n" +"Testing Application (34, 35)\n" +"Microsite -- Testing Application\n" +"Test Printer -- Testing Application\n" +"\n" +"FinDev (30, 50)\n" +"Testing Application -- FinDev\n" +"Microsite -- Findev\n" +"[Group] Testing Application, FinDev\n" +"[Note] (24, 41.5) Team, Pioneers\n" +"[Evolution] Testing Application +15\n" +"[Evolution] FinDev +30\n" +"\n" +"Platform [now] (50, 60) [triangle]\n" +"Platform [then] (71, 60)\n" +"Platform [now] -> Platform [then]\n" +"[Inertia] Platform [now]\n" +"FinDev -- Platform [then]\n" +"[Group] Platform\n" +"[Note] (74, 60) Team, Town Planners\n" +"\n" +"Distribution (65, 70)\n" +"Brochure (60, 75)\n" +"Distribution -- Brochure\n" +"[Evolution] Distribution +20\n" +"Testing Application -- Distribution\n" +"Distribution -- Brochure\n" +"[Group] Distribution, Brochure\n" +"[Note] (65, 75) Team, Town Planners\n" +"\n" +"Large Format Printer (45, 75)\n" +"Testing Application -- Large Format Printer\n" +"[Group] Large Format Printer\n" +"[Note] (42, 78.5) Team, Settlers\n" +"[i] 20\n" +"[ii] 40\n" +"[iii] 70" msgstr "" -#: src/preferences/models.rs:184 -msgid "templates.defaults.empty.title" +#: src/preferences/models.rs:237 +msgid "Empty" msgstr "" #: src/stages.rs:58 -msgid "stage.activities.name" +msgid "Activities" msgstr "" #: src/stages.rs:59 -msgid "stage.practice.name" +msgid "Practice" msgstr "" #: src/stages.rs:60 -msgid "stage.data.name" +msgid "Data" msgstr "" #: src/stages.rs:61 -msgid "stages.knowledge.name" +msgid "Knowledge" msgstr "" #: src/stages.rs:62 -msgid "stages.ubiquity.name" +msgid "Ubiquity" msgstr "" #: src/stages.rs:63 -msgid "stages.certainty.name" +msgid "Certainty" msgstr "" #: src/stages.rs:64 -msgid "stages.publication_types.name" +msgid "Publication Types" msgstr "" #: src/stages.rs:65 -msgid "stages.market.name" +msgid "Market" msgstr "" #: src/stages.rs:66 -msgid "stages.knowledge_management.name" +msgid "Knowledge Management" msgstr "" #: src/stages.rs:67 -msgid "stages.market_perception.name" +msgid "Market Perception" msgstr "" #: src/stages.rs:68 -msgid "stages.user_perception.name" +msgid "User Perception" msgstr "" #: src/stages.rs:69 -msgid "stages.perception_in_industry.name" +msgid "Perception in Industry" msgstr "" #: src/stages.rs:70 -msgid "stages.focus_of_value.name" +msgid "Focus of Value" msgstr "" #: src/stages.rs:71 -msgid "stages.understanding.name" +msgid "Understanding" msgstr "" #: src/stages.rs:72 -msgid "stages.comparison.name" +msgid "Comparison" msgstr "" #: src/stages.rs:73 -msgid "stages.failure.name" +msgid "Failure" msgstr "" #: src/stages.rs:74 -msgid "stages.market_action.name" +msgid "Market Action" msgstr "" #: src/stages.rs:75 -msgid "stages.efficiency.name" +msgid "Efficiency" msgstr "" #: src/stages.rs:76 -msgid "stages.decision_drivers.name" +msgid "Decision Drivers" msgstr "" #: src/stages.rs:77 -msgid "stages.behavior.name" +msgid "Behavior" msgstr "" #: src/stages.rs:79 -msgid "stages.evolution_stage.name" +msgid "Evolution Stage" msgstr "" #: src/stages.rs:91 -msgid "stage.activities.i" +msgid "Genesis" msgstr "" #: src/stages.rs:92 -msgid "stage.practice.i" +msgid "Novel" msgstr "" #: src/stages.rs:93 -msgid "stage.data.i" +msgid "Unmodelled" msgstr "" #: src/stages.rs:94 -msgid "stages.knowledge.i" +msgid "Concept" msgstr "" #: src/stages.rs:95 -msgid "stages.ubiquity.i" +msgid "Rare" msgstr "" #: src/stages.rs:96 -msgid "stages.certainty.i" +msgid "Poorly Understood / exploring the unknown" msgstr "" #: src/stages.rs:97 -msgid "stages.publication_types.i" +msgid "" +"Describe the wonder of the thing / the discovery of some marvel / a new " +"land / an unknown frontier" msgstr "" #: src/stages.rs:98 -msgid "stages.market.i" +msgid "Undefined Market" msgstr "" #: src/stages.rs:99 -msgid "stages.knowledge_management.i" +msgid "Uncertain" msgstr "" #: src/stages.rs:100 -msgid "stages.market_perception.i" +msgid "Chaotic (non-linear) / domain of the \"crazy\"" msgstr "" #: src/stages.rs:101 -msgid "stages.user_perception.i" +msgid "Different / confusing / exciting / surprising / dangerous" msgstr "" #: src/stages.rs:102 -msgid "stages.perception_in_industry.i" +msgid "Future source of competitive advantage / unpredictable / unknown" msgstr "" #: src/stages.rs:103 -msgid "stages.focus_of_value.i" +msgid "High future worth but immediate investment" msgstr "" #: src/stages.rs:104 -msgid "stages.understanding.i" +msgid "Poorly Understood / unpredictable" msgstr "" #: src/stages.rs:105 -msgid "stages.comparison.i" +msgid "Constantly changing / a differential / unstable" msgstr "" #: src/stages.rs:106 -msgid "stages.failure.i" +msgid "High / tolerated / assumed to be wrong" msgstr "" #: src/stages.rs:107 -msgid "stages.market_action.i" +msgid "Gambling / driven by gut" msgstr "" #: src/stages.rs:108 -msgid "stages.efficiency.i" +msgid "Reducing the cost of change (experimentation)" msgstr "" #: src/stages.rs:109 -msgid "stages.decision_drivers.i" +msgid "Heritage / culture" msgstr "" #: src/stages.rs:110 -msgid "stages.behavior.i" +msgid "Uncertain when to use" msgstr "" #: src/stages.rs:124 -msgid "stage.activities.ii" +msgid "Custom" msgstr "" #: src/stages.rs:125 -msgid "stage.practice.ii" +msgid "Emerging" msgstr "" #: src/stages.rs:126 -msgid "stage.data.ii" +msgid "Divergent" msgstr "" #: src/stages.rs:127 -msgid "stages.knowledge.ii" +msgid "Hypothesis" msgstr "" #: src/stages.rs:128 -msgid "stages.ubiquity.ii" +msgid "Slowly Increasing" msgstr "" #: src/stages.rs:129 -msgid "stages.certainty.ii" +msgid "Rapid Increase In Learning / discovery becomes refining" msgstr "" #: src/stages.rs:130 -msgid "stages.publication_types.ii" +msgid "" +"Focused on build / construct / awareness and learning / many models of " +"explanation / no accepted forms / a wild west" msgstr "" #: src/stages.rs:131 -msgid "stages.market.ii" +msgid "" +"Forming Market / an array of competing forms and models of understanding" msgstr "" #: src/stages.rs:132 -msgid "stages.knowledge_management.ii" +msgid "Learning on use / focused on testing prediction" msgstr "" #: src/stages.rs:133 -msgid "stages.market_perception.ii" +msgid "Domain of \"experts\"" msgstr "" #: src/stages.rs:134 -msgid "stages.user_perception.ii" +msgid "Leading edge / emerging / uncertainty over results" msgstr "" #: src/stages.rs:135 -msgid "stages.perception_in_industry.ii" +msgid "Seen as a scompetitive advantage / a differential / ROI / case examples" msgstr "" #: src/stages.rs:136 -msgid "stages.focus_of_value.ii" +msgid "Seeking ways to profit and a ROI / seeking confirmation of value" msgstr "" #: src/stages.rs:137 -msgid "stages.understanding.ii" +msgid "Increasing understanding / development of measures" msgstr "" #: src/stages.rs:138 -msgid "stages.comparison.ii" +msgid "Learning from others / testing the water / some evidential support" msgstr "" #: src/stages.rs:139 -msgid "stages.failure.ii" +msgid "Moderate / unsurprising if wrong but disappointed" msgstr "" #: src/stages.rs:140 -msgid "stages.market_action.ii" +msgid "Exploring a \"found\" value" msgstr "" -#: src/stages.rs:141 -msgid "stages.efficiency.ii" +#: src/stages.rs:141 src/stages.rs:174 +msgid "Reducing cost of waste (Learning)" msgstr "" -#: src/stages.rs:142 -msgid "stages.decision_drivers.ii" +#: src/stages.rs:142 src/stages.rs:175 +msgid "Analyses & synthesis" msgstr "" #: src/stages.rs:143 -msgid "stages.behavior.ii" +msgid "Learning when to use" msgstr "" #: src/stages.rs:157 -msgid "stage.activities.iii" +msgid "Product (+rental)" msgstr "" #: src/stages.rs:158 -msgid "stage.practice.iii" +msgid "Good" msgstr "" #: src/stages.rs:159 -msgid "stage.data.iii" +msgid "Convergent" msgstr "" #: src/stages.rs:160 -msgid "stages.knowledge.iii" +msgid "Theory" msgstr "" #: src/stages.rs:161 -msgid "stages.ubiquity.iii" +msgid "Rapidly Increasing" msgstr "" #: src/stages.rs:162 -msgid "stages.certainty.iii" +msgid "Rapid increase in use / increasing fit for purpose" msgstr "" #: src/stages.rs:163 -msgid "stages.publication_types.iii" +msgid "" +"Maintenance / operations / installation / comparison between competing " +"forms / feature analysis" msgstr "" #: src/stages.rs:164 -msgid "stages.market.iii" +msgid "" +"Growing Market / consolidation to a few competing but more accepted forms" msgstr "" #: src/stages.rs:165 -msgid "stages.knowledge_management.iii" +msgid "Learning on operation / using prediction / verification" msgstr "" #: src/stages.rs:166 -msgid "stages.market_perception.iii" +msgid "Increasing expectation of use / domain of \"professionals\"" msgstr "" #: src/stages.rs:167 -msgid "stages.user_perception.iii" +msgid "" +"Increasingly common / disappointed if not used or available / feeling left " +"behind" msgstr "" #: src/stages.rs:168 -msgid "stages.perception_in_industry.iii" +msgid "" +"Advantage through implementation / features / this model is better than that" msgstr "" #: src/stages.rs:169 -msgid "stages.focus_of_value.iii" +msgid "" +"High profitability per unit / a valuable model / a feeling of " +"understanding / focus on exploitation" msgstr "" #: src/stages.rs:170 -msgid "stages.understanding.iii" +msgid "Increasing education / constant refinement of needs / measures" msgstr "" #: src/stages.rs:171 -msgid "stages.comparison.iii" +msgid "Competing models / feature difference / evidential support" msgstr "" #: src/stages.rs:172 -msgid "stages.failure.iii" +msgid "" +"Not tolerated / focus on constant improvement / assumed to be in the right " +"direction / resistance to changing the model" msgstr "" #: src/stages.rs:173 -msgid "stages.market_action.iii" -msgstr "" - -#: src/stages.rs:174 -msgid "stages.efficiency.iii" -msgstr "" - -#: src/stages.rs:175 -msgid "stages.decision_drivers.iii" +msgid "Market analysis / listening to customers" msgstr "" #: src/stages.rs:176 -msgid "stages.behavior.iii" +msgid "Learning through use" msgstr "" #: src/stages.rs:190 -msgid "stage.activities.iv" +msgid "Commodity (+utility)" msgstr "" #: src/stages.rs:191 -msgid "stage.practice.iv" +msgid "Best" msgstr "" #: src/stages.rs:192 -msgid "stage.data.iv" +msgid "Modelled" msgstr "" #: src/stages.rs:193 -msgid "stages.knowledge.iv" +msgid "Accepted" msgstr "" #: src/stages.rs:194 -msgid "stages.ubiquity.iv" +msgid "Widespread in the applicable market / ecosystem" msgstr "" #: src/stages.rs:195 -msgid "stages.certainty.iv" +msgid "Commonly understood (in terms of use)" msgstr "" #: src/stages.rs:196 -msgid "stages.publication_types.iv" +msgid "Focused on use / increasingly an accepted, almost invisible component" msgstr "" #: src/stages.rs:197 -msgid "stages.market.iv" +msgid "Mature Market / stabilised to an accepted form" msgstr "" #: src/stages.rs:198 -msgid "stages.knowledge_management.iv" +msgid "Known / accepted" msgstr "" #: src/stages.rs:199 -msgid "stages.market_perception.iv" +msgid "Ordered (appearance of being linear) / trivial / formula to be applied" msgstr "" #: src/stages.rs:200 -msgid "stages.user_perception.iv" +msgid "Standard / expected / feeling of shock if not used" msgstr "" #: src/stages.rs:201 -msgid "stages.perception_in_industry.iv" +msgid "Cost of doing business / accepted / specific defined models" msgstr "" #: src/stages.rs:202 -msgid "stages.focus_of_value.iv" +msgid "" +"High volume / reducing margin / important but invisible / an essential " +"component of something more complex" msgstr "" #: src/stages.rs:203 -msgid "stages.understanding.iv" +msgid "Believed to be well defined / stable / measurable" msgstr "" #: src/stages.rs:204 -msgid "stages.comparison.iv" +msgid "Essential / any advantage is operational / accepted norm" msgstr "" #: src/stages.rs:205 -msgid "stages.failure.iv" +msgid "Surprised by failure / focus on operational efficiency" msgstr "" #: src/stages.rs:206 -msgid "stages.market_action.iv" +msgid "Metric driven / build what is needed" msgstr "" #: src/stages.rs:207 -msgid "stages.efficiency.iv" +msgid "Reducing cost of deviation (Volume)" msgstr "" #: src/stages.rs:208 -msgid "stages.decision_drivers.iv" +msgid "Previous Experience" msgstr "" #: src/stages.rs:209 -msgid "stages.behavior.iv" -msgstr "" - -#: data/systems.tranquil.Map.desktop.in.in:3 -#: data/systems.tranquil.Map.metainfo.xml.in.in:5 -msgid "application.name" +msgid "Known / common usage" msgstr "" #: data/systems.tranquil.Map.desktop.in.in:4 -msgid "application.generic_name" +msgid "Wardley Map Editor" msgstr "" #: data/systems.tranquil.Map.desktop.in.in:5 -msgid "application.comment" +msgid "Wardley Map editor for Linux" msgstr "" #: data/systems.tranquil.Map.desktop.in.in:10 -msgid "application.tags" +msgid "wardley;wmap;maps;editor;wardley maps;wardley mapping;" msgstr "" #: data/systems.tranquil.Map.metainfo.xml.in.in:6 -msgid "application.summary" +msgid "Visualize your business landscape" msgstr "" #: data/systems.tranquil.Map.metainfo.xml.in.in:21 -msgid "application.description" +msgid "" +"Map is a wardley map editor for linux that uses a simple language to easily " +"create and edit maps that visualize an evolving environment. Draw " +"components, link dependencies, create groups, write notes, or add inertia " +"and evolution markers, and see your map change in an instant." msgstr "" #: data/systems.tranquil.Map.metainfo.xml.in.in:31 -msgid "application.screenshot.key.caption" +msgid "" +"The main window of Map showing the code editor on the left pane, and the " +"rendered preview on the right pane." msgstr "" #: data/systems.tranquil.Map.metainfo.xml.in.in:35 -msgid "application.screenshot.preferences.caption" +msgid "" +"A lineup of the preference panes in map, showing the ways in which you can " +"customize your experience." msgstr "" #: data/systems.tranquil.Map.metainfo.xml.in.in:48 diff --git a/src/components/footer.rs b/src/components/footer.rs index a7999be..27c666c 100644 --- a/src/components/footer.rs +++ b/src/components/footer.rs @@ -56,7 +56,7 @@ impl SimpleComponent for Footer { set_margin_end: 5 }, - gtk::Button::with_label(&tr!("command.view.zoom_out")) { + gtk::Button::with_label(&tr!("Zoom Out")) { set_icon_name: ZOOM_OUT_REGULAR, set_margin_end: 5, add_css_class: "flat", @@ -79,7 +79,7 @@ impl SimpleComponent for Footer { } }, - gtk::Button::with_label(&tr!("command.view.zoom_in")) { + gtk::Button::with_label(&tr!("Zoom In")) { set_icon_name: ZOOM_IN_REGULAR, add_css_class: "flat", add_css_class: "zoom", diff --git a/src/components/header.rs b/src/components/header.rs index f41d6a1..8e20850 100644 --- a/src/components/header.rs +++ b/src/components/header.rs @@ -54,8 +54,8 @@ impl SimpleComponent for Header { adw::HeaderBar { pack_start = &adw::ToolbarView { gtk::Button::with_label(&match model.orientation { - gtk::Orientation::Horizontal => tr!("command.view.use_vertical_layout"), - _ => tr!("command.view.use_horizontal_layout") + gtk::Orientation::Horizontal => tr!("Use Vertical Layout"), + _ => tr!("Use Horizontal Layout") }) { #[watch] set_icon_name: match model.orientation { @@ -69,7 +69,7 @@ impl SimpleComponent for Header { }, pack_end = >k::Box { - gtk::Button::with_label(&tr!("command.file.export")) { + gtk::Button::with_label(&tr!("Export as Image")) { set_icon_name: IMAGE_REGULAR, ActionablePlus::set_stateless_action::<ExportImageAction>: &(), }, @@ -160,44 +160,32 @@ impl Header { } let main_menu = gio::Menu::new(); - main_menu.append(Some(&tr!("command.file.new")), Some("window.new")); - main_menu.append_submenu( - Some(&tr!("command.file.new_from_template")), - &templates_menu, - ); - main_menu.append(Some(&tr!("command.file.open")), Some("window.open")); - main_menu.append(Some(&tr!("command.file.save")), Some("window.save")); - main_menu.append(Some(&tr!("command.file.save_as")), Some("window.save-as")); - main_menu.append(Some(&tr!("command.file.close")), Some("window.close")); - main_menu.append( - Some(&tr!("command.file.export")), - Some("window.export-image"), - ); + main_menu.append(Some(&tr!("New Map")), Some("window.new")); + main_menu.append_submenu(Some(&tr!("New from Template")), &templates_menu); + main_menu.append(Some(&tr!("Open…")), Some("window.open")); + main_menu.append(Some(&tr!("Save")), Some("window.save")); + main_menu.append(Some(&tr!("Save As…")), Some("window.save-as")); + main_menu.append(Some(&tr!("Close")), Some("window.close")); + main_menu.append(Some(&tr!("Export as Image")), Some("window.export-image")); let layout_section = gio::Menu::new(); layout_section.append( - Some(&tr!("command.view.use_vertical_layout")), + Some(&tr!("Use Vertical Layout")), Some("window.change-orientation"), ); main_menu.append_section(None, &layout_section); let zoom_section = gio::Menu::new(); - zoom_section.append(Some(&tr!("command.view.zoom_in")), Some("window.zoom-in")); - zoom_section.append(Some(&tr!("command.view.zoom_out")), Some("window.zoom-out")); + zoom_section.append(Some(&tr!("Zoom In")), Some("window.zoom-in")); + zoom_section.append(Some(&tr!("Zoom Out")), Some("window.zoom-out")); main_menu.append_section(None, &zoom_section); let help_section = gio::Menu::new(); - help_section.append( - Some(&tr!("command.application.about")), - Some("window.about"), - ); + help_section.append(Some(&tr!("About")), Some("window.about")); main_menu.append_section(None, &help_section); let prefs_section = gio::Menu::new(); - prefs_section.append( - Some(&tr!("command.application.preferences")), - Some("window.preferences"), - ); + prefs_section.append(Some(&tr!("Preferences…")), Some("window.preferences")); main_menu.append_section(None, &prefs_section); (templates_menu, main_menu) diff --git a/src/components/preference_pages/editor.rs b/src/components/preference_pages/editor.rs index 0c6bda6..b064077 100644 --- a/src/components/preference_pages/editor.rs +++ b/src/components/preference_pages/editor.rs @@ -70,7 +70,7 @@ impl SimpleComponent for Editor { set_spacing: 10, gtk::Label { - set_label: &tr!("preferences.editor.font_size.title"), + set_label: &tr!("Font Size"), add_css_class: "heading", set_halign: gtk::Align::Start, }, @@ -90,7 +90,7 @@ impl SimpleComponent for Editor { format!( "{} ({})", value as i32, - tr!("preferences.editor.default_font_size") + tr!("Default") ) } else { format!("{}", value as i32) @@ -104,7 +104,7 @@ impl SimpleComponent for Editor { }, gtk::Label { - set_label: &tr!("preferences.editor.editor_style.title"), + set_label: &tr!("Editor Style"), add_css_class: "heading", set_halign: gtk::Align::Start, set_margin_top: 10, @@ -118,7 +118,7 @@ impl SimpleComponent for Editor { set_spacing: 10, gtk::Label { - set_label: &tr!("preferences.editor.font"), + set_label: &tr!("Font"), }, gtk::FontDialogButton::new(Some(gtk::FontDialog::new())) { @@ -149,7 +149,7 @@ impl SimpleComponent for Editor { ) -> ComponentParts<Self> { let soft_wrap_switch = switch::Switch::builder() .launch(switch::SwitchInit { - label: tr!("preferences.editor.editor_style.soft_wrap_lines"), + label: tr!("Soft wrap lines"), state: init.soft_wrap, }) .forward(sender.input_sender(), move |output| match output { @@ -158,7 +158,7 @@ impl SimpleComponent for Editor { let custom_font_switch = switch::Switch::builder() .launch(switch::SwitchInit { - label: tr!("preferences.editor.editor_style.use_custom_font"), + label: tr!("Use custom font"), state: init.use_custom_font, }) .forward(sender.input_sender(), move |output| match output { diff --git a/src/components/preference_pages/general.rs b/src/components/preference_pages/general.rs index 351c4a5..532e654 100644 --- a/src/components/preference_pages/general.rs +++ b/src/components/preference_pages/general.rs @@ -37,7 +37,7 @@ impl SimpleComponent for General { set_valign: gtk::Align::Start, gtk::Label { - set_label: &tr!("preferences.general.preferences.title"), + set_label: &tr!("Preferences"), add_css_class: "heading", set_halign: gtk::Align::Start, }, @@ -45,17 +45,17 @@ impl SimpleComponent for General { set_orientation: gtk::Orientation::Horizontal, set_spacing: 10, - gtk::Button::with_label(&tr!("preferences.general.preferences.export")) { + gtk::Button::with_label(&tr!("Export")) { connect_clicked => { sender.output(PreferencesAction::Export).ok(); } }, - gtk::Button::with_label(&tr!("preferences.general.preferences.import")) { + gtk::Button::with_label(&tr!("Import")) { connect_clicked => { sender.output(PreferencesAction::Import).ok(); } }, - gtk::Button::with_label(&tr!("preferences.general.preferences.reset")) { + gtk::Button::with_label(&tr!("Reset to defaults")) { add_css_class: "destructive-action", connect_clicked => { sender.output(PreferencesAction::ResetToDefaults).ok(); @@ -64,7 +64,8 @@ impl SimpleComponent for General { }, gtk::Label { - set_label: &tr!("preferences.general.explanation"), + set_label: &tr!(r"Export your preferences to share with others or back up your settings. + Import preferences from a file to restore settings."), add_css_class: "dim-label", set_halign: gtk::Align::Start, set_wrap: true diff --git a/src/components/preference_pages/map.rs b/src/components/preference_pages/map.rs index 5ec59e1..fb5178c 100644 --- a/src/components/preference_pages/map.rs +++ b/src/components/preference_pages/map.rs @@ -68,7 +68,7 @@ impl SimpleComponent for Map { set_valign: gtk::Align::Start, gtk::Label { - set_label: &tr!("preferences.map.map_style.title"), + set_label: &tr!("Map Style"), add_css_class: "heading", set_halign: gtk::Align::Start, }, @@ -81,7 +81,7 @@ impl SimpleComponent for Map { set_spacing: 10, gtk::Label { - set_label: &tr!("preferences.map.font"), + set_label: &tr!("Font"), }, gtk::FontDialogButton::new(Some(gtk::FontDialog::new())) { @@ -101,7 +101,7 @@ impl SimpleComponent for Map { }, gtk::Label { - set_label: &tr!("preferences.map.export.title"), + set_label: &tr!("Export"), add_css_class: "heading", set_halign: gtk::Align::Start, set_margin_top: 10, @@ -112,11 +112,11 @@ impl SimpleComponent for Map { set_spacing: 10, gtk::Label { - set_label: &tr!("preferences.map.export.default_format"), + set_label: &tr!("Default export format"), }, gtk::DropDown::new(Some(gtk::StringList::new(&[ - &tr!("export_formats.png"), - &tr!("export_formats.svg"), + &tr!("PNG (Raster)"), + &tr!("SVG (Vector)"), ])), None::<gtk::Expression>) { #[watch] #[block_signal(export_handler)] @@ -143,7 +143,7 @@ impl SimpleComponent for Map { ) -> ComponentParts<Self> { let show_background_switch = switch::Switch::builder() .launch(switch::SwitchInit { - label: tr!("preferences.map.map_style.show_background"), + label: tr!("Show map background"), state: init.show_background, }) .forward(sender.input_sender(), move |output| match output { @@ -152,7 +152,7 @@ impl SimpleComponent for Map { let custom_font_switch = switch::Switch::builder() .launch(switch::SwitchInit { - label: tr!("preferences.map.map_style.use_custom_font"), + label: tr!("Use custom font"), state: init.use_custom_font, }) .forward(sender.input_sender(), move |output| match output { @@ -161,7 +161,7 @@ impl SimpleComponent for Map { let smart_label_positioning_switch = switch::Switch::builder() .launch(switch::SwitchInit { - label: tr!("preferences.map.map_style.use_smart_label_positioning"), + label: tr!("Use smart label positioning"), state: init.use_smart_label_positioning, }) .forward(sender.input_sender(), move |output| match output { diff --git a/src/components/preference_pages/stages.rs b/src/components/preference_pages/stages.rs index 12ee0e6..0534f37 100644 --- a/src/components/preference_pages/stages.rs +++ b/src/components/preference_pages/stages.rs @@ -53,12 +53,12 @@ impl SimpleComponent for Stages { set_valign: gtk::Align::Start, gtk::Label { - set_label: &tr!("preferences.stages.title"), + set_label: &tr!("Custom Stages"), add_css_class: "heading", set_halign: gtk::Align::Start, }, gtk::Label { - set_label: &tr!("preferences.stages.explanation"), + set_label: &tr!("Custom stages allow you to define your own evolution axis label."), add_css_class: "dim-label", set_halign: gtk::Align::Start, set_wrap: true, @@ -82,31 +82,31 @@ impl SimpleComponent for Stages { add_css_class: "dim-label", gtk::Label { - set_label: &tr!("preferences.stages.column.name"), + set_label: &tr!("Name"), set_xalign: 0.0, set_hexpand: true, set_width_chars: 15, }, gtk::Label { - set_label: &tr!("preferences.stages.column.stage_i"), + set_label: &tr!("Stage I"), set_xalign: 0.0, set_hexpand: true, set_width_chars: 12, }, gtk::Label { - set_label: &tr!("preferences.stages.column.stage_ii"), + set_label: &tr!("Stage II"), set_xalign: 0.0, set_hexpand: true, set_width_chars: 12, }, gtk::Label { - set_label: &tr!("preferences.stages.column.stage_iii"), + set_label: &tr!("Stage III"), set_xalign: 0.0, set_hexpand: true, set_width_chars: 12, }, gtk::Label { - set_label: &tr!("preferences.stages.column.stage_iv"), + set_label: &tr!("Stage IV"), set_xalign: 0.0, set_hexpand: true, set_width_chars: 12, @@ -129,7 +129,7 @@ impl SimpleComponent for Stages { set_spacing: 10, set_halign: gtk::Align::End, gtk::Button::from_icon_name("list-add-symbolic") { - set_tooltip_text: Some(&tr!("preferences.stages.help.add")), + set_tooltip_text: Some(&tr!("Add custom stage")), connect_clicked => StagesAction::AddCustomStage, } }, diff --git a/src/components/preference_pages/templates.rs b/src/components/preference_pages/templates.rs index 4682ab9..4e95dab 100644 --- a/src/components/preference_pages/templates.rs +++ b/src/components/preference_pages/templates.rs @@ -83,14 +83,14 @@ impl SimpleComponent for Templates { #[wrap(Some)] set_sidebar = &adw::NavigationPage { - set_title: &tr!("preferences.templates.title"), + set_title: &tr!("Templates"), gtk::Box { set_orientation: gtk::Orientation::Vertical, set_margin_all: 20, set_spacing: 10, gtk::Label { - set_label: &tr!("preferences.templates.title"), + set_label: &tr!("Templates"), add_css_class: "heading", set_halign: gtk::Align::Start, set_margin_start: 5, @@ -113,7 +113,7 @@ impl SimpleComponent for Templates { set_halign: gtk::Align::End, gtk::Button::from_icon_name("list-remove-symbolic") { - set_tooltip_text: Some(&tr!("preferences.templates.help.remove")), + set_tooltip_text: Some(&tr!("Remove template")), connect_clicked[sender] => move |_| { sender.input(TemplatesAction::RemoveTemplate); @@ -121,11 +121,11 @@ impl SimpleComponent for Templates { }, gtk::Button::from_icon_name("list-add-symbolic") { - set_tooltip_text: Some(&tr!("preferences.templates.help.add")), + set_tooltip_text: Some(&tr!("Add template")), connect_clicked[sender] => move |_| { sender.output(PreferencesAction::AddTemplate(tr!( - "dialog.template.default_label" + "My Template" ))).ok(); }, }, @@ -184,7 +184,7 @@ impl SimpleComponent for Templates { } } else { gtk::Label { - set_label: &tr!("preferences.templates.empty"), + set_label: &tr!("There are no templates. Click on the + button to create one."), add_css_class: "dim-label", set_hexpand: true, set_vexpand: true, diff --git a/src/components/preferences_window.rs b/src/components/preferences_window.rs index 29e42fe..0df49e9 100644 --- a/src/components/preferences_window.rs +++ b/src/components/preferences_window.rs @@ -46,7 +46,7 @@ impl SimpleComponent for PreferencesWindow { view! { adw::Window { - set_title: Some(&tr!("preferences.title")), + set_title: Some(&tr!("Preferences")), set_default_width: 700, set_default_height: 500, set_modal: true, @@ -70,11 +70,11 @@ impl SimpleComponent for PreferencesWindow { adw::ViewStack { set_vexpand: true, - add_titled_with_icon[Some("general"), &tr!("preferences.menu.general"), SETTINGS] = model.general_page.widget(), - add_titled_with_icon[Some("editor"), &tr!("preferences.menu.editor"), BUILD] = model.editor_page.widget(), - add_titled_with_icon[Some("map"), &tr!("preferences.menu.map"), MAP] = model.map_page.widget(), - add_titled_with_icon[Some("stages"), &tr!("preferences.menu.stages"), AGENDA] = model.stages_page.widget(), - add_titled_with_icon[Some("templates"), &tr!("preferences.menu.templates"), PAPYRUS] = model.templates_page.widget(), + add_titled_with_icon[Some("general"), &tr!("General"), SETTINGS] = model.general_page.widget(), + add_titled_with_icon[Some("editor"), &tr!("Editor"), BUILD] = model.editor_page.widget(), + add_titled_with_icon[Some("map"), &tr!("Map"), MAP] = model.map_page.widget(), + add_titled_with_icon[Some("stages"), &tr!("Stages"), AGENDA] = model.stages_page.widget(), + add_titled_with_icon[Some("templates"), &tr!("Templates"), PAPYRUS] = model.templates_page.widget(), }, #[name = "switcher_bar"] @@ -433,13 +433,13 @@ impl PreferencesWindow { fn show_export_dialog(sender: &ComponentSender<Self>, window: &adw::Window) { let filter = FileFilter::new(); filter.add_pattern("*.json"); - filter.set_name(Some(&tr!("dialog.file_type.json"))); + filter.set_name(Some(&tr!("JSON File"))); let filters = gtk::gio::ListStore::new::<gtk::FileFilter>(); filters.append(&filter); let dialog = gtk::FileDialog::builder() - .title(tr!("dialog.export_preferences.title")) + .title(tr!("Export Preferences")) .modal(true) .filters(&filters) .initial_name("preferences.json") @@ -459,13 +459,13 @@ impl PreferencesWindow { fn show_import_dialog(sender: &ComponentSender<Self>, window: &adw::Window) { let filter = FileFilter::new(); filter.add_pattern("*.json"); - filter.set_name(Some(&tr!("dialog.file_type.json"))); + filter.set_name(Some(&tr!("JSON File"))); let filters = gtk::gio::ListStore::new::<gtk::FileFilter>(); filters.append(&filter); let dialog = gtk::FileDialog::builder() - .title(tr!("dialog.import_preferences.title")) + .title(tr!("Import Preferences")) .modal(true) .filters(&filters) .build(); diff --git a/src/components/stage_form.rs b/src/components/stage_form.rs index cb4c40f..44e3c88 100644 --- a/src/components/stage_form.rs +++ b/src/components/stage_form.rs @@ -108,7 +108,7 @@ impl FactoryComponent for StageForm { gtk::Button::from_icon_name("list-remove-symbolic") { add_css_class: "flat", - set_tooltip_text: Some(&tr!("preferences.stages.help.remove")), + set_tooltip_text: Some(&tr!("Remove stage")), connect_clicked[sender] => move |_| { sender.input(StageFormAction::Remove); } diff --git a/src/components/template_row.rs b/src/components/template_row.rs index 959c392..68696f6 100644 --- a/src/components/template_row.rs +++ b/src/components/template_row.rs @@ -64,7 +64,7 @@ impl FactoryComponent for TemplateRow { #[watch] set_icon_name: if self.template.is_default { "radio-checked-symbolic" } else { "radio-symbolic" }, #[watch] - set_tooltip_text: Some(&if self.template.is_default { tr!("preferences.templates.help.default") } else { tr!("preferences.templates.help.set_as_default") }), + set_tooltip_text: Some(&if self.template.is_default { tr!("This is the default template.") } else { tr!("Set as default template.") }), connect_clicked[sender, index] => move |_| { sender.output(TemplateRowOutput::SetDefault(index.clone())).ok(); } @@ -84,7 +84,7 @@ impl FactoryComponent for TemplateRow { }, gtk::Button::from_icon_name(RIGHT) { - set_tooltip_text: Some(&tr!("preferences.templates.help.activate")), + set_tooltip_text: Some(&tr!("Edit Template")), #[watch] set_visible: self.is_arrow_shown, diff --git a/src/dialogs.rs b/src/dialogs.rs index 22b12df..45956ab 100644 --- a/src/dialogs.rs +++ b/src/dialogs.rs @@ -33,7 +33,7 @@ pub fn create_file_filter() -> gtk::FileFilter { let filter = gtk::FileFilter::new(); filter.add_pattern(&format!("*.{}", constants::FILE_EXTENSION)); filter.add_mime_type(constants::MIME_TYPE); - filter.set_name(Some(&tr!("dialog.file_type.wmap"))); + filter.set_name(Some(&tr!("Wardley Map Files"))); filter } @@ -41,7 +41,7 @@ pub fn create_file_filter() -> gtk::FileFilter { pub fn show_error(window: &adw::Window, title: &str, message: &str) { let dialog = gtk::AlertDialog::builder() .modal(true) - .buttons([&tr!("dialog.action.cancel"), "Ok"]) + .buttons([&tr!("Cancel"), "Ok"]) .message(title) .detail(message) .build(); @@ -55,7 +55,7 @@ pub fn show_open_dialog( sender: ComponentSender<AppModel>, ) { let dialog = gtk::FileDialog::builder() - .title(tr!("dialog.open.title")) + .title(tr!("Open Map")) .modal(true) .build(); @@ -92,7 +92,7 @@ pub fn show_save_dialog( sender: ComponentSender<AppModel>, ) { let mut dialog_builder = gtk::FileDialog::builder() - .title(tr!("dialog.save.title")) + .title(tr!("Save Map As")) .modal(true); let filter = create_file_filter(); @@ -133,13 +133,9 @@ pub fn show_unsaved_changes_dialog( ) { let dialog = gtk::AlertDialog::builder() .modal(true) - .message(tr!("dialog.unsaved_changes.title")) - .detail(tr!("dialog.unsaved_changes.message")) - .buttons([ - tr!("dialog.action.dont_save"), - tr!("dialog.action.cancel"), - tr!("dialog.action.save"), - ]) + .message(tr!("Unsaved Changes")) + .detail(tr!("Save changes before closing?")) + .buttons([tr!("Don't save"), tr!("Cancel"), tr!("Save")]) .cancel_button(1) .default_button(2) .build(); @@ -175,8 +171,8 @@ fn create_image_filter(format: ImageFormat) -> gtk::FileFilter { filter.add_pattern(&format!("*.{}", format.extension())); filter.add_mime_type(format.mime_type()); let name = match format { - ImageFormat::Png => tr!("dialog.file_type.png"), - ImageFormat::Svg => tr!("dialog.file_type.svg"), + ImageFormat::Png => tr!("PNG Image"), + ImageFormat::Svg => tr!("SVG Image"), }; filter.set_name(Some(&name)); filter @@ -196,7 +192,7 @@ pub fn show_export_dialog( filters.append(&svg_filter); let mut dialog_builder = gtk::FileDialog::builder() - .title(tr!("dialog.export.title")) + .title(tr!("Export Map as Image")) .modal(true) .filters(&filters) .default_filter(&png_filter); diff --git a/src/handlers/export.rs b/src/handlers/export.rs index bf9dfc5..6fb1713 100644 --- a/src/handlers/export.rs +++ b/src/handlers/export.rs @@ -42,6 +42,10 @@ pub fn export_to_file(model: &AppModel, path: &PathBuf, format: ImageFormat) { }; if let Err(error) = result { - dialogs::show_error(&model.window, &tr!("error.file.export"), &error); + dialogs::show_error( + &model.window, + &tr!("Could not export image. Please make sure the destination is writable."), + &error, + ); } } diff --git a/src/handlers/file.rs b/src/handlers/file.rs index bd501e8..f816e62 100644 --- a/src/handlers/file.rs +++ b/src/handlers/file.rs @@ -36,7 +36,11 @@ pub fn load_file(model: &mut AppModel, path: PathBuf) { model.modified = false; } Err(error) => { - dialogs::show_error(&model.window, &tr!("errors.file.open"), &error.to_string()); + dialogs::show_error( + &model.window, + &tr!("Could not open file. Please make sure the file is readable."), + &error.to_string(), + ); } } } @@ -59,7 +63,11 @@ pub fn save_to_file(model: &mut AppModel, path: PathBuf, close_after: bool) { } } Err(error) => { - dialogs::show_error(&model.window, &tr!("errors.file.save"), &error.to_string()); + dialogs::show_error( + &model.window, + &tr!("Could not save file. Please make sure the destination is writable."), + &error.to_string(), + ); } } } diff --git a/src/main.rs b/src/main.rs index e40681f..1d45a42 100644 --- a/src/main.rs +++ b/src/main.rs @@ -168,7 +168,7 @@ impl AppModel { } fn window_title(&self) -> String { - let default_name = tr!("document.untitled"); + let default_name = tr!("Untitled"); let filename = self .current_file .as_ref() @@ -177,9 +177,9 @@ impl AppModel { .unwrap_or(&default_name); if self.modified { - format!("{}* - {}", filename, tr!("application.name")) + format!("{}* - {}", filename, tr!("Map")) } else { - format!("{} - {}", filename, tr!("application.name")) + format!("{} - {}", filename, tr!("Map")) } } @@ -602,7 +602,7 @@ impl SimpleComponent for AppModel { .map(String::from) .collect::<Vec<_>>(), ) - .comments(tr!("about.comment")) + .comments(about_comment()) .copyright("© 2026 Rubén Beltrán del Río") .license_type(gtk::License::Agpl30) .application_icon("systems.tranquil.Map") @@ -648,3 +648,67 @@ fn main() { initial_content, }); } + +fn about_comment() -> String { + tr!( + r#"Map is a <a href="https://medium.com/wardleymaps">wardley map</a> editor for linux that uses a simple language to easily create and edit maps. Draw components, link dependencies, create groups, write notes, or add inertia and evolution markers, and see your map change in an instant. + +<big><b>Language Reference</b></big> + +The wmap language is a simple notation to create and edit wardley maps and is easy to pick up: + +<b>Components</b> + +Components are written as <tt>Name (x,y)</tt>. The name can contain spaces, and the x and y coordinates are a whole or decimal number from 0 to 100 and represent how far from the top left corner the component will be drawn. + +By default, components will be drawn as a circle, but you can specify the shape by appending <tt>[Square]</tt>, <tt>[Triangle]</tt>, or <tt>[x]</tt>. Here's some examples: + +<tt>Component (1,2)</tt> +<tt>My Cool Component (10.0,21.0)</tt> +<tt>A (1, 2.0) [Square]</tt> +<tt>Rose Wall (44.3, 50.0) [x]</tt> + +<b>Dependencies</b> + +Dependencies connect two components, and they are written as <tt>Component A -- Component B</tt>. This will draw a simple line between them. If you want an arrow, you can use <tt>Component -> Component</tt> instead. + +<tt>Component -- My Cool Component</tt> +<tt>A -> Component</tt> + +<b>Inertia</b> + +You can place an inertia marker in front of a component by writing <tt>[Inertia] Component</tt>. + +<tt>[Inertia] My Cool Component</tt> +<tt>[Inertia] A</tt> + +<b>Evolution</b> + +Evolution arrows are notated by using <tt>[Evolution] Component +x</tt> or <tt>[Evolution] Component -x</tt>, where x is a whole or decimal number between 0 and 100. + +<tt>[Evolution] My Cool Component -10</tt> +<tt>[Evolution] A +15</tt> + +<b>Notes</b> + +Sometimes it's helpful to add some text clarifying the map. Writing <tt>[Note] (x, y) Text</tt> will create a note block right at those coordinates. Just like components, x and y are numbers between 0 and 100. You can write \n to force a line break. + +<tt>[Note] (30, 45) Here we want to call out an explanation or context.</tt> +<tt>[Note] (90, 25) We're close to the edge \n so we can multiline it.</tt> + +<b>Groups</b> + +You can group components together by using <tt>[Group] ComponentA, ComponentB...</tt> + +<tt>[Group] Tinker, Tailor, Soldier</tt> +<tt>[Group] Two Words, Three Words Here</tt> + +<b>Resizing Evolution Stages</b> + +If you need more space for one of the four stages, you can use <b>[I] x</b>, <b>[II] x</b>, or <b>[III] x</b>. As with other lines, x is a number between 0-100. + +<tt>[I] 15</tt> +<tt>[II] 35.5</tt> +<tt>[III] 80</tt>"# + ) +} diff --git a/src/preferences/models.rs b/src/preferences/models.rs index 93f3fa0..97fa85a 100644 --- a/src/preferences/models.rs +++ b/src/preferences/models.rs @@ -50,12 +50,12 @@ impl CustomStage { pub fn cynefin_default() -> Self { Self { id: Uuid::new_v4(), - name: tr!("stages.cynefin.name"), + name: tr!("Cynefin"), stage: Stage { - i: tr!("stages.cynefin.i"), - ii: tr!("stages.cynefin.ii"), - iii: tr!("stages.cynefin.iii"), - iv: tr!("stages.cynefin.iv"), + i: tr!("Chaotic"), + ii: tr!("Complex"), + iii: tr!("Complicated"), + iv: tr!("Clear"), }, } } @@ -63,12 +63,12 @@ impl CustomStage { pub fn placeholder_default() -> Self { Self { id: Uuid::new_v4(), - name: tr!("stages.new.name"), + name: tr!("New Stage"), stage: Stage { - i: tr!("stages.evolution_stage.i"), - ii: tr!("stages.evolution_stage.ii"), - iii: tr!("stages.evolution_stage.iii"), - iv: tr!("stages.evolution_stage.iv"), + i: tr!("Stage I"), + ii: tr!("Stage II"), + iii: tr!("Stage III"), + iv: tr!("Stage IV"), }, } } @@ -177,11 +177,64 @@ impl Default for UserPreferences { map_templates: vec![ Template::new( - tr!("templates.defaults.example.title"), - tr!("templates.defaults.example.source"), + tr!("Example Map"), + tr!(r"Client (39, 0) [x] +Consumer (55, 10) [x] + +Client -- Consumer + +Find out about (65, 15) +Test printer (42, 20) + +Consumer -- Test printer +Consumer -- Find out about + +Microsite (60, 30) + +Find out about -- Microsite + +[Group] Consumer, Test printer, Find out about, Microsite +[Note] (63, 10) Team, Settlers + +Testing Application (34, 35) +Microsite -- Testing Application +Test Printer -- Testing Application + +FinDev (30, 50) +Testing Application -- FinDev +Microsite -- Findev +[Group] Testing Application, FinDev +[Note] (24, 41.5) Team, Pioneers +[Evolution] Testing Application +15 +[Evolution] FinDev +30 + +Platform [now] (50, 60) [triangle] +Platform [then] (71, 60) +Platform [now] -> Platform [then] +[Inertia] Platform [now] +FinDev -- Platform [then] +[Group] Platform +[Note] (74, 60) Team, Town Planners + +Distribution (65, 70) +Brochure (60, 75) +Distribution -- Brochure +[Evolution] Distribution +20 +Testing Application -- Distribution +Distribution -- Brochure +[Group] Distribution, Brochure +[Note] (65, 75) Team, Town Planners + +Large Format Printer (45, 75) +Testing Application -- Large Format Printer +[Group] Large Format Printer +[Note] (42, 78.5) Team, Settlers +[i] 20 +[ii] 40 +[iii] 70"), true, ), - Template::new(tr!("templates.defaults.empty.title"), String::new(), false), + Template::new(tr!("Empty"), String::new(), false), ], custom_stages: vec![CustomStage::cynefin_default()], diff --git a/src/stages.rs b/src/stages.rs index 3ab1f5a..1231e55 100644 --- a/src/stages.rs +++ b/src/stages.rs @@ -55,28 +55,28 @@ pub trait LocalizedStageType { impl LocalizedStageType for StageType { fn localized_name(&self) -> String { match self { - StageType::Activities => tr!("stage.activities.name"), - StageType::Practice => tr!("stage.practice.name"), - StageType::Data => tr!("stage.data.name"), - StageType::Knowledge => tr!("stages.knowledge.name"), - StageType::Ubiquity => tr!("stages.ubiquity.name"), - StageType::Certainty => tr!("stages.certainty.name"), - StageType::PublicationTypes => tr!("stages.publication_types.name"), - StageType::Market => tr!("stages.market.name"), - StageType::KnowledgeManagement => tr!("stages.knowledge_management.name"), - StageType::MarketPerception => tr!("stages.market_perception.name"), - StageType::UserPerception => tr!("stages.user_perception.name"), - StageType::PerceptionInIndustry => tr!("stages.perception_in_industry.name"), - StageType::FocusOfValue => tr!("stages.focus_of_value.name"), - StageType::Understanding => tr!("stages.understanding.name"), - StageType::Comparison => tr!("stages.comparison.name"), - StageType::Failure => tr!("stages.failure.name"), - StageType::MarketAction => tr!("stages.market_action.name"), - StageType::Efficiency => tr!("stages.efficiency.name"), - StageType::DecisionDrivers => tr!("stages.decision_drivers.name"), - StageType::Behavior => tr!("stages.behavior.name"), - StageType::Cynefin => tr!("stages.cynefin.name"), - StageType::EvolutionStage => tr!("stages.evolution_stage.name"), + StageType::Activities => tr!("Activities"), + StageType::Practice => tr!("Practice"), + StageType::Data => tr!("Data"), + StageType::Knowledge => tr!("Knowledge"), + StageType::Ubiquity => tr!("Ubiquity"), + StageType::Certainty => tr!("Certainty"), + StageType::PublicationTypes => tr!("Publication Types"), + StageType::Market => tr!("Market"), + StageType::KnowledgeManagement => tr!("Knowledge Management"), + StageType::MarketPerception => tr!("Market Perception"), + StageType::UserPerception => tr!("User Perception"), + StageType::PerceptionInIndustry => tr!("Perception in Industry"), + StageType::FocusOfValue => tr!("Focus of Value"), + StageType::Understanding => tr!("Understanding"), + StageType::Comparison => tr!("Comparison"), + StageType::Failure => tr!("Failure"), + StageType::MarketAction => tr!("Market Action"), + StageType::Efficiency => tr!("Efficiency"), + StageType::DecisionDrivers => tr!("Decision Drivers"), + StageType::Behavior => tr!("Behavior"), + StageType::Cynefin => tr!("Cynefin"), + StageType::EvolutionStage => tr!("Evolution Stage"), StageType::Custom { name, i: _, @@ -88,28 +88,28 @@ impl LocalizedStageType for StageType { } fn localized_i(&self) -> String { match self { - StageType::Activities => tr!("stage.activities.i"), - StageType::Practice => tr!("stage.practice.i"), - StageType::Data => tr!("stage.data.i"), - StageType::Knowledge => tr!("stages.knowledge.i"), - StageType::Ubiquity => tr!("stages.ubiquity.i"), - StageType::Certainty => tr!("stages.certainty.i"), - StageType::PublicationTypes => tr!("stages.publication_types.i"), - StageType::Market => tr!("stages.market.i"), - StageType::KnowledgeManagement => tr!("stages.knowledge_management.i"), - StageType::MarketPerception => tr!("stages.market_perception.i"), - StageType::UserPerception => tr!("stages.user_perception.i"), - StageType::PerceptionInIndustry => tr!("stages.perception_in_industry.i"), - StageType::FocusOfValue => tr!("stages.focus_of_value.i"), - StageType::Understanding => tr!("stages.understanding.i"), - StageType::Comparison => tr!("stages.comparison.i"), - StageType::Failure => tr!("stages.failure.i"), - StageType::MarketAction => tr!("stages.market_action.i"), - StageType::Efficiency => tr!("stages.efficiency.i"), - StageType::DecisionDrivers => tr!("stages.decision_drivers.i"), - StageType::Behavior => tr!("stages.behavior.i"), - StageType::Cynefin => tr!("stages.cynefin.i"), - StageType::EvolutionStage => tr!("stages.evolution_stage.i"), + StageType::Activities => tr!("Genesis"), + StageType::Practice => tr!("Novel"), + StageType::Data => tr!("Unmodelled"), + StageType::Knowledge => tr!("Concept"), + StageType::Ubiquity => tr!("Rare"), + StageType::Certainty => tr!("Poorly Understood / exploring the unknown"), + StageType::PublicationTypes => tr!("Describe the wonder of the thing / the discovery of some marvel / a new land / an unknown frontier"), + StageType::Market => tr!("Undefined Market"), + StageType::KnowledgeManagement => tr!("Uncertain"), + StageType::MarketPerception => tr!(r#"Chaotic (non-linear) / domain of the "crazy""#), + StageType::UserPerception => tr!("Different / confusing / exciting / surprising / dangerous"), + StageType::PerceptionInIndustry => tr!("Future source of competitive advantage / unpredictable / unknown"), + StageType::FocusOfValue => tr!("High future worth but immediate investment"), + StageType::Understanding => tr!("Poorly Understood / unpredictable"), + StageType::Comparison => tr!("Constantly changing / a differential / unstable"), + StageType::Failure => tr!("High / tolerated / assumed to be wrong"), + StageType::MarketAction => tr!("Gambling / driven by gut"), + StageType::Efficiency => tr!("Reducing the cost of change (experimentation)"), + StageType::DecisionDrivers => tr!("Heritage / culture"), + StageType::Behavior => tr!("Uncertain when to use"), + StageType::Cynefin => tr!("Chaotic"), + StageType::EvolutionStage => tr!("Stage I"), StageType::Custom { name: _, i, @@ -121,28 +121,28 @@ impl LocalizedStageType for StageType { } fn localized_ii(&self) -> String { match self { - StageType::Activities => tr!("stage.activities.ii"), - StageType::Practice => tr!("stage.practice.ii"), - StageType::Data => tr!("stage.data.ii"), - StageType::Knowledge => tr!("stages.knowledge.ii"), - StageType::Ubiquity => tr!("stages.ubiquity.ii"), - StageType::Certainty => tr!("stages.certainty.ii"), - StageType::PublicationTypes => tr!("stages.publication_types.ii"), - StageType::Market => tr!("stages.market.ii"), - StageType::KnowledgeManagement => tr!("stages.knowledge_management.ii"), - StageType::MarketPerception => tr!("stages.market_perception.ii"), - StageType::UserPerception => tr!("stages.user_perception.ii"), - StageType::PerceptionInIndustry => tr!("stages.perception_in_industry.ii"), - StageType::FocusOfValue => tr!("stages.focus_of_value.ii"), - StageType::Understanding => tr!("stages.understanding.ii"), - StageType::Comparison => tr!("stages.comparison.ii"), - StageType::Failure => tr!("stages.failure.ii"), - StageType::MarketAction => tr!("stages.market_action.ii"), - StageType::Efficiency => tr!("stages.efficiency.ii"), - StageType::DecisionDrivers => tr!("stages.decision_drivers.ii"), - StageType::Behavior => tr!("stages.behavior.ii"), - StageType::Cynefin => tr!("stages.cynefin.ii"), - StageType::EvolutionStage => tr!("stages.evolution_stage.ii"), + StageType::Activities => tr!("Custom"), + StageType::Practice => tr!("Emerging"), + StageType::Data => tr!("Divergent"), + StageType::Knowledge => tr!("Hypothesis"), + StageType::Ubiquity => tr!("Slowly Increasing"), + StageType::Certainty => tr!("Rapid Increase In Learning / discovery becomes refining"), + StageType::PublicationTypes => tr!("Focused on build / construct / awareness and learning / many models of explanation / no accepted forms / a wild west"), + StageType::Market => tr!("Forming Market / an array of competing forms and models of understanding"), + StageType::KnowledgeManagement => tr!("Learning on use / focused on testing prediction"), + StageType::MarketPerception => tr!(r#"Domain of "experts""#), + StageType::UserPerception => tr!("Leading edge / emerging / uncertainty over results"), + StageType::PerceptionInIndustry => tr!("Seen as a scompetitive advantage / a differential / ROI / case examples"), + StageType::FocusOfValue => tr!("Seeking ways to profit and a ROI / seeking confirmation of value"), + StageType::Understanding => tr!("Increasing understanding / development of measures"), + StageType::Comparison => tr!("Learning from others / testing the water / some evidential support"), + StageType::Failure => tr!("Moderate / unsurprising if wrong but disappointed"), + StageType::MarketAction => tr!(r#"Exploring a "found" value"#), + StageType::Efficiency => tr!("Reducing cost of waste (Learning)"), + StageType::DecisionDrivers => tr!("Analyses & synthesis"), + StageType::Behavior => tr!("Learning when to use"), + StageType::Cynefin => tr!("Complex"), + StageType::EvolutionStage => tr!("Stage II"), StageType::Custom { name: _, i: _, @@ -154,28 +154,28 @@ impl LocalizedStageType for StageType { } fn localized_iii(&self) -> String { match self { - StageType::Activities => tr!("stage.activities.iii"), - StageType::Practice => tr!("stage.practice.iii"), - StageType::Data => tr!("stage.data.iii"), - StageType::Knowledge => tr!("stages.knowledge.iii"), - StageType::Ubiquity => tr!("stages.ubiquity.iii"), - StageType::Certainty => tr!("stages.certainty.iii"), - StageType::PublicationTypes => tr!("stages.publication_types.iii"), - StageType::Market => tr!("stages.market.iii"), - StageType::KnowledgeManagement => tr!("stages.knowledge_management.iii"), - StageType::MarketPerception => tr!("stages.market_perception.iii"), - StageType::UserPerception => tr!("stages.user_perception.iii"), - StageType::PerceptionInIndustry => tr!("stages.perception_in_industry.iii"), - StageType::FocusOfValue => tr!("stages.focus_of_value.iii"), - StageType::Understanding => tr!("stages.understanding.iii"), - StageType::Comparison => tr!("stages.comparison.iii"), - StageType::Failure => tr!("stages.failure.iii"), - StageType::MarketAction => tr!("stages.market_action.iii"), - StageType::Efficiency => tr!("stages.efficiency.iii"), - StageType::DecisionDrivers => tr!("stages.decision_drivers.iii"), - StageType::Behavior => tr!("stages.behavior.iii"), - StageType::Cynefin => tr!("stages.cynefin.iii"), - StageType::EvolutionStage => tr!("stages.evolution_stage.iii"), + StageType::Activities => tr!("Product (+rental)"), + StageType::Practice => tr!("Good"), + StageType::Data => tr!("Convergent"), + StageType::Knowledge => tr!("Theory"), + StageType::Ubiquity => tr!("Rapidly Increasing"), + StageType::Certainty => tr!("Rapid increase in use / increasing fit for purpose"), + StageType::PublicationTypes => tr!("Maintenance / operations / installation / comparison between competing forms / feature analysis"), + StageType::Market => tr!("Growing Market / consolidation to a few competing but more accepted forms"), + StageType::KnowledgeManagement => tr!("Learning on operation / using prediction / verification"), + StageType::MarketPerception => tr!(r#"Increasing expectation of use / domain of "professionals""#), + StageType::UserPerception => tr!("Increasingly common / disappointed if not used or available / feeling left behind"), + StageType::PerceptionInIndustry => tr!("Advantage through implementation / features / this model is better than that"), + StageType::FocusOfValue => tr!("High profitability per unit / a valuable model / a feeling of understanding / focus on exploitation"), + StageType::Understanding => tr!("Increasing education / constant refinement of needs / measures"), + StageType::Comparison => tr!("Competing models / feature difference / evidential support"), + StageType::Failure => tr!("Not tolerated / focus on constant improvement / assumed to be in the right direction / resistance to changing the model"), + StageType::MarketAction => tr!("Market analysis / listening to customers"), + StageType::Efficiency => tr!("Reducing cost of waste (Learning)"), + StageType::DecisionDrivers => tr!("Analyses & synthesis"), + StageType::Behavior => tr!("Learning through use"), + StageType::Cynefin => tr!("Complicated"), + StageType::EvolutionStage => tr!("Stage III"), StageType::Custom { name: _, i: _, @@ -187,28 +187,28 @@ impl LocalizedStageType for StageType { } fn localized_iv(&self) -> String { match self { - StageType::Activities => tr!("stage.activities.iv"), - StageType::Practice => tr!("stage.practice.iv"), - StageType::Data => tr!("stage.data.iv"), - StageType::Knowledge => tr!("stages.knowledge.iv"), - StageType::Ubiquity => tr!("stages.ubiquity.iv"), - StageType::Certainty => tr!("stages.certainty.iv"), - StageType::PublicationTypes => tr!("stages.publication_types.iv"), - StageType::Market => tr!("stages.market.iv"), - StageType::KnowledgeManagement => tr!("stages.knowledge_management.iv"), - StageType::MarketPerception => tr!("stages.market_perception.iv"), - StageType::UserPerception => tr!("stages.user_perception.iv"), - StageType::PerceptionInIndustry => tr!("stages.perception_in_industry.iv"), - StageType::FocusOfValue => tr!("stages.focus_of_value.iv"), - StageType::Understanding => tr!("stages.understanding.iv"), - StageType::Comparison => tr!("stages.comparison.iv"), - StageType::Failure => tr!("stages.failure.iv"), - StageType::MarketAction => tr!("stages.market_action.iv"), - StageType::Efficiency => tr!("stages.efficiency.iv"), - StageType::DecisionDrivers => tr!("stages.decision_drivers.iv"), - StageType::Behavior => tr!("stages.behavior.iv"), - StageType::Cynefin => tr!("stages.cynefin.iv"), - StageType::EvolutionStage => tr!("stages.evolution_stage.iv"), + StageType::Activities => tr!("Commodity (+utility)"), + StageType::Practice => tr!("Best"), + StageType::Data => tr!("Modelled"), + StageType::Knowledge => tr!("Accepted"), + StageType::Ubiquity => tr!("Widespread in the applicable market / ecosystem"), + StageType::Certainty => tr!("Commonly understood (in terms of use)"), + StageType::PublicationTypes => tr!("Focused on use / increasingly an accepted, almost invisible component"), + StageType::Market => tr!("Mature Market / stabilised to an accepted form"), + StageType::KnowledgeManagement => tr!("Known / accepted"), + StageType::MarketPerception => tr!("Ordered (appearance of being linear) / trivial / formula to be applied"), + StageType::UserPerception => tr!("Standard / expected / feeling of shock if not used"), + StageType::PerceptionInIndustry => tr!("Cost of doing business / accepted / specific defined models"), + StageType::FocusOfValue => tr!("High volume / reducing margin / important but invisible / an essential component of something more complex"), + StageType::Understanding => tr!("Believed to be well defined / stable / measurable"), + StageType::Comparison => tr!("Essential / any advantage is operational / accepted norm"), + StageType::Failure => tr!("Surprised by failure / focus on operational efficiency"), + StageType::MarketAction => tr!("Metric driven / build what is needed"), + StageType::Efficiency => tr!("Reducing cost of deviation (Volume)"), + StageType::DecisionDrivers => tr!("Previous Experience"), + StageType::Behavior => tr!("Known / common usage"), + StageType::Cynefin => tr!("Clear"), + StageType::EvolutionStage => tr!("Stage IV"), StageType::Custom { name: _, i: _, |