diff --git a/locales/de/main.ftl b/locales/de/main.ftl index 3060671..1684709 100644 --- a/locales/de/main.ftl +++ b/locales/de/main.ftl @@ -1,31 +1,31 @@ -action-undo = Zurück -action-redo = Vorwärts -show-layer-manager = Zeige Layer-Verwaltung -specctra-session-file = Specctra-Sitzungsdatei -frame-timestep = Frame-Zeitschritt -menu-file = Datei -menu-edit = Bearbeiten -menu-view = Ansicht -menu-place = Ort -menu-route = Route -menu-inspect = Inspizieren -menu-options = Optionen -menu-debug = Debugging -action-open-dsn = Öffnen -action-export-ses = Sitzungsdatei exportieren -action-import-cmd = Historie importieren -action-export-cmd = Historie exportieren -action-quit = Beenden -action-autoroute = Autorouten -action-place-via = Platziere DuKo -action-remove-bands = Entferne Bänder -action-compare-detours = Vergleiche Umwege -presort-by-pairwise-detours = Nach paarweisen Umwegen vorsortieren -squeeze-through-under-bands = Presse unter Bänder -wrap-around-bands = Wickle um Bänder -zoom-to-fit = Zoom automatisch einpassen -show-ratsnest = Zeige Ratsnest -show-navmesh = Zeige Navmesh -show-bboxes = Zeige BBoxes -show-origin-destination = Zeige Ursprung-Ziel -action-measure-length = Länge messen +tr-menu-edit_undo = Zurück +tr-menu-edit_redo = Vorwärts +tr-menu-view_show-layer-manager = Zeige Layer-Verwaltung +tr-menu-open_specctra-session-file = Specctra-Sitzungsdatei +tr-menu-view_frame-timestep = Frame-Zeitschritt +tr-menu-file = Datei +tr-menu-edit = Bearbeiten +tr-menu-view = Ansicht +tr-menu-place = Ort +tr-menu-route = Route +tr-menu-inspect = Inspizieren +tr-menu-options = Optionen +tr-menu-debug = Debugging +tr-menu-file-open = Öffnen +tr-menu-file-export-session-file = Sitzungsdatei exportieren +tr-menu-file-import-history = Historie importieren +tr-menu-file-export-history = Historie exportieren +tr-menu-file-quit = Beenden +tr-menu-route-autoroute = Autorouten +tr-menu-place-place-via = Platziere DuKo +tr-menu-edit_remove-bands = Entferne Bänder +tr-menu-inspect_compare-detours = Vergleiche Umwege +tr-menu-route-options_presort-by-pairwise-detours = Nach paarweisen Umwegen vorsortieren +tr-menu-route-options_squeeze-through-under-bands = Presse unter Bänder +tr-menu-route-options_wrap-around-bands = Wickle um Bänder +tr-menu-view_zoom-to-fit = Zoom automatisch einpassen +tr-menu-view_show-ratsnest = Zeige Ratsnest +tr-menu-view_show-navmesh = Zeige Navmesh +tr-menu-view_show-bboxes = Zeige BBoxes +tr-menu-view_show-origin-destination = Zeige Ursprung-Ziel +tr-menu-inspect_measure-length = Länge messen diff --git a/locales/en-US/main.ftl b/locales/en-US/main.ftl index ead3729..6e406c3 100644 --- a/locales/en-US/main.ftl +++ b/locales/en-US/main.ftl @@ -1,56 +1,56 @@ -menu-file = File -menu-edit = Edit -menu-view = View -menu-place = Place -menu-route = Route -menu-inspect = Inspect +tr-menu-file = File +tr-menu-edit = Edit +tr-menu-view = View +tr-menu-place = Place +tr-menu-route = Route +tr-menu-inspect = Inspect -menu-options = Options -menu-debug = Debug +tr-menu-options = Options +tr-menu-debug = Debug -action-open-dsn = Open -action-export-ses = Export Session File -action-import-cmd = Import History -action-export-cmd = Export History +tr-menu-file-open = Open +tr-menu-file-export-session-file = Export Session File +tr-menu-file-import-history = Import History +tr-menu-file-export-history = Export History -action-quit = Quit -action-autoroute = Autoroute -action-place-via = Place Via -action-remove-bands = Remove Bands -action-compare-detours = Compare Detours -action-measure-length = Measure Length +tr-menu-file-quit = Quit +tr-menu-route-autoroute = Autoroute +tr-menu-place-place-via = Place Via +tr-menu-edit_remove-bands = Remove Bands +tr-menu-inspect_compare-detours = Compare Detours +tr-menu-inspect_measure-length = Measure Length -action-undo = Undo -action-redo = Redo -action-abort = Abort +tr-menu-edit_undo = Undo +tr-menu-edit_redo = Redo +tr-menu-edit_abort = Abort -presort-by-pairwise-detours = Presort by Pairwise Detours -squeeze-through-under-bands = Squeeze through under Bands -wrap-around-bands = Wrap around Bands +tr-menu-route-options_presort-by-pairwise-detours = Presort by Pairwise Detours +tr-menu-route-options_squeeze-through-under-bands = Squeeze through under Bands +tr-menu-route-options_wrap-around-bands = Wrap around Bands -zoom-to-fit = Zoom to Fit +tr-menu-view_zoom-to-fit = Zoom to Fit -show-ratsnest = Show Ratsnest -show-navmesh = Show Navmesh -show-bboxes = Show BBoxes -show-origin-destination = Show Origin–Destination +tr-menu-view_show-ratsnest = Show Ratsnest +tr-menu-view_show-navmesh = Show Navmesh +tr-menu-view_show-bboxes = Show BBoxes +tr-menu-view_show-origin-destination = Show Origin–Destination -show-layer-manager = Show Layer Manager +tr-menu-view_show-layer-manager = Show Layer Manager -frame-timestep = Frame Timestep +tr-menu-view_frame-timestep = Frame Timestep -specctra-session-file = Specctra session file +tr-menu-open_specctra-session-file = Specctra session file -title-error-messages = Error Messages -reset-error-messages = Reset Messages -discard-item = Discard +tr-dialog-tr-error-messages = Error Messages +tr-dialog-tr-error-messages_reset = Reset Messages +tr-dialog-tr-error-messages_discard = Discard -specctra-dsn-loader = Specctra DSN file loader -history-loader = History file loader -invoker = Invoker +tr-module-specctra-dsn-file-loader = Specctra DSN file loader +tr-module-history-file-loader = History file loader +tr-module-invoker = Invoker -error-file-load = unable to read file -error-file-specctra-dsn-parse = file failed to parse as Specctra DSN -error-file-history-parse = file failed to parse as History JSON -error-overlay-init = unable to initialize overlay -error-autorouter-init = unable to initialize autorouter +tr-error_unable-to-read-file = unable to read file +tr-error_failed-to-parse-as-specctra-dsn = file failed to parse as Specctra DSN +tr-error_failed-to-parse-as-history-json = file failed to parse as History JSON +tr-error_unable-to-initialize-overlay = unable to initialize overlay +tr-error_unable-to-initialize-autorouter = unable to initialize autorouter diff --git a/locales/nl/main.ftl b/locales/nl/main.ftl index 3e572b8..3e62ead 100644 --- a/locales/nl/main.ftl +++ b/locales/nl/main.ftl @@ -1,24 +1,24 @@ -menu-file = Bestand -menu-debug = Debug -action-export-ses = Sessiebestand exporteren -action-export-cmd = Geschiedenis exporteren -action-quit = Stop -action-place-via = Plaats Via -action-remove-bands = Banden verwijderen -action-compare-detours = Vergelijk Omwegen -action-undo = Ongedaan maken -action-redo = Opnieuw doen -show-navmesh = Toon Navmesh -show-bboxes = Toon BBoxen -action-open-dsn = Open -action-autoroute = Automatische route -action-import-cmd = Geschiedenis importeren -show-ratsnest = Toon Rattennest -show-origin-destination = Toon Herkomst-Bestemming -specctra-session-file = Specctra-sessiebestand -action-measure-length = Lengte meten -menu-options = Opties -menu-view = Bekijken -menu-route = Route -menu-edit = Bewerken -menu-inspect = Inspecteren +tr-menu-file = Bestand +tr-menu-debug = Debug +tr-menu-file-export-session-file = Sessiebestand exporteren +tr-menu-file-export-history = Geschiedenis exporteren +tr-menu-file-quit = Stop +tr-menu-place-place-via = Plaats Via +tr-menu-edit_remove-bands = Banden verwijderen +tr-menu-inspect_compare-detours = Vergelijk Omwegen +tr-menu-edit_undo = Ongedaan maken +tr-menu-edit_redo = Opnieuw doen +tr-menu-view_show-navmesh = Toon Navmesh +tr-menu-view_show-bboxes = Toon BBoxen +tr-menu-file-open = Open +tr-menu-route-autoroute = Automatische route +tr-menu-file-import-history = Geschiedenis importeren +tr-menu-view_show-ratsnest = Toon Rattennest +tr-menu-view_show-origin-destination = Toon Herkomst-Bestemming +tr-menu-open_specctra-session-file = Specctra-sessiebestand +tr-menu-inspect_measure-length = Lengte meten +tr-menu-options = Opties +tr-menu-view = Bekijken +tr-menu-route = Route +tr-menu-edit = Bewerken +tr-menu-inspect = Inspecteren diff --git a/locales/pl/main.ftl b/locales/pl/main.ftl index 0581979..226f222 100644 --- a/locales/pl/main.ftl +++ b/locales/pl/main.ftl @@ -1,22 +1,22 @@ -action-place-via = Wstaw przelotkę -menu-debug = Debuguj -action-open-dsn = Otwórz -action-export-cmd = Eksportuj historię -action-autoroute = Autotrasuj -action-remove-bands = Usuń taśmy -action-measure-length = Zmierz długość -action-undo = Cofnij -show-ratsnest = Pokaż szczurze gniazdo -specctra-session-file = Plik sesji Specctra -menu-file = Plik -action-redo = Ponów -action-export-ses = Eksportuj plik sesji -action-import-cmd = Importuj historię -action-quit = Wyjdź -action-compare-detours = Porównaj objazdy -show-navmesh = Pokaż siatkę nawigacyjną -show-bboxes = Pokaż obwiednie -show-origin-destination = Pokaż pochodzenie i destynację -menu-options = Opcje -wrap-around-bands = Owiń wokół taśm -squeeze-through-under-bands = Ściśnij pod taśmami +tr-menu-place-place-via = Wstaw przelotkę +tr-menu-debug = Debuguj +tr-menu-file-open = Otwórz +tr-menu-file-export-history = Eksportuj historię +tr-menu-route-autoroute = Autotrasuj +tr-menu-edit_remove-bands = Usuń taśmy +tr-menu-inspect_measure-length = Zmierz długość +tr-menu-edit_undo = Cofnij +tr-menu-view_show-ratsnest = Pokaż szczurze gniazdo +tr-menu-open_specctra-session-file = Plik sesji Specctra +tr-menu-file = Plik +tr-menu-edit_redo = Ponów +tr-menu-file-export-session-file = Eksportuj plik sesji +tr-menu-file-import-history = Importuj historię +tr-menu-file-quit = Wyjdź +tr-menu-inspect_compare-detours = Porównaj objazdy +tr-menu-view_show-navmesh = Pokaż siatkę nawigacyjną +tr-menu-view_show-bboxes = Pokaż obwiednie +tr-menu-view_show-origin-destination = Pokaż pochodzenie i destynację +tr-menu-options = Opcje +tr-menu-route-options_wrap-around-bands = Owiń wokół taśm +tr-menu-route-options_squeeze-through-under-bands = Ściśnij pod taśmami diff --git a/src/bin/topola-egui/app.rs b/src/bin/topola-egui/app.rs index 5c362c7..149be86 100644 --- a/src/bin/topola-egui/app.rs +++ b/src/bin/topola-egui/app.rs @@ -107,7 +107,7 @@ impl App { match self.load_specctra_dsn(input) { Ok(()) => {} Err(err) => { - self.error_dialog.push_error("specctra-dsn-loader", err); + self.error_dialog.push_error("tr-module-specctra-dsn-file-loader", err); } } } @@ -122,15 +122,15 @@ impl App { Ok(res) => invoker.replay(res), Err(err) => { self.error_dialog.push_error( - "history-loader", - format!("{}; {}", tr.text("error-file-history-parse"), err), + "tr-module-history-file-loader", + format!("{}; {}", tr.text("tr-error_failed-to-parse-as-history-json"), err), ); } }, Err(err) => { self.error_dialog.push_error( - "history-loader", - format!("{}; {}", tr.text("error-file-load"), err), + "tr-module-history-file-loader", + format!("{}; {}", tr.text("tr-error_unable-to-read-file"), err), ); } } @@ -141,7 +141,7 @@ impl App { Ok(ActivityStatus::Running) => true, Ok(ActivityStatus::Finished(..)) => false, Err(err) => { - self.error_dialog.push_error("invoker", format!("{}", err)); + self.error_dialog.push_error("tr-module-invoker", format!("{}", err)); false } }; @@ -156,15 +156,15 @@ impl App { input: std::io::Result, ) -> Result<(), String> { let tr = &self.translator; - let bufread = input.map_err(|err| format!("{}; {}", tr.text("error-file-load"), err))?; + let bufread = input.map_err(|err| format!("{}; {}", tr.text("tr-error_unable-to-read-file"), err))?; let design = SpecctraDesign::load(bufread) - .map_err(|err| format!("{}; {}", tr.text("error-file-specctra-dsn-parse"), err))?; + .map_err(|err| format!("{}; {}", tr.text("tr-error_failed-to-parse-as-specctra-dsn"), err))?; let board = design.make_board(); let overlay = Overlay::new(&board) - .map_err(|err| format!("{}; {}", tr.text("error-overlay-init"), err))?; + .map_err(|err| format!("{}; {}", tr.text("tr-error_unable-to-initialize-overlay"), err))?; let layers = Layers::new(&board); let autorouter = Autorouter::new(board) - .map_err(|err| format!("{}; {}", tr.text("error-autorouter-init"), err))?; + .map_err(|err| format!("{}; {}", tr.text("tr-error_unable-to-initialize-autorouter"), err))?; self.maybe_overlay = Some(overlay); self.maybe_layers = Some(layers); self.maybe_design = Some(design); diff --git a/src/bin/topola-egui/error_dialog.rs b/src/bin/topola-egui/error_dialog.rs index 3a5adf4..048d1d9 100644 --- a/src/bin/topola-egui/error_dialog.rs +++ b/src/bin/topola-egui/error_dialog.rs @@ -33,17 +33,17 @@ impl ErrorDialog { pub fn update(&mut self, ctx: &egui::Context, tr: &Translator) { let mut messages_cleared = false; - egui::Window::new(tr.text("title-error-messages")) - .id("error-messages-dialog".into()) + egui::Window::new(tr.text("tr-dialog-tr-error-messages")) + .id("tr-error-messages-dialog".into()) .open(&mut self.window_open) .scroll(true) .show(ctx, |ui| { - if ui.button(tr.text("reset-error-messages")).clicked() { + if ui.button(tr.text("tr-dialog-tr-error-messages_reset")).clicked() { self.messages.clear(); messages_cleared = true; } - egui::Grid::new("error-messages-grid").show(ui, |ui| { + egui::Grid::new("tr-error-messages-grid").show(ui, |ui| { let mut messages_to_discard = BTreeSet::::new(); let style = Arc::clone(ui.style()); for (msg_id, msg) in self.messages.iter().enumerate() { @@ -72,7 +72,7 @@ impl ErrorDialog { // TODO: perhaps alternatively, use small icon instead? // (provide alt text in that case!) - if ui.add(egui::Button::new(tr.text("discard-item"))).clicked() { + if ui.add(egui::Button::new(tr.text("tr-dialog-tr-error-messages_discard"))).clicked() { messages_to_discard.insert(msg_id); } ui.label(WidgetText::LayoutJob(loj)); diff --git a/src/bin/topola-egui/menu_bar.rs b/src/bin/topola-egui/menu_bar.rs index 65166d4..e096858 100644 --- a/src/bin/topola-egui/menu_bar.rs +++ b/src/bin/topola-egui/menu_bar.rs @@ -68,67 +68,67 @@ impl MenuBar { maybe_design: &Option, ) -> Result<(), InvokerError> { let mut open_design = Trigger::new(Action::new( - tr.text("action-open-dsn"), + tr.text("tr-menu-file-open"), egui::Modifiers::CTRL, egui::Key::O, )); let mut export_session = Trigger::new(Action::new( - tr.text("action-export-ses"), + tr.text("tr-menu-file-export-session-file"), egui::Modifiers::CTRL, egui::Key::S, )); let mut import_history = Trigger::new(Action::new( - tr.text("action-import-cmd"), + tr.text("tr-menu-file-import-history"), egui::Modifiers::CTRL, egui::Key::I, )); let mut export_history = Trigger::new(Action::new( - tr.text("action-export-cmd"), + tr.text("tr-menu-file-export-history"), egui::Modifiers::CTRL, egui::Key::E, )); let mut quit = Trigger::new(Action::new( - tr.text("action-quit"), + tr.text("tr-menu-file-quit"), egui::Modifiers::CTRL, egui::Key::Q, )); let mut undo = Trigger::new(Action::new( - tr.text("action-undo"), + tr.text("tr-menu-edit_undo"), egui::Modifiers::CTRL, egui::Key::Z, )); let mut redo = Trigger::new(Action::new( - tr.text("action-redo"), + tr.text("tr-menu-edit_redo"), egui::Modifiers::CTRL, egui::Key::Y, )); let mut abort = Trigger::new(Action::new( - tr.text("action-abort"), + tr.text("tr-menu-edit_abort"), egui::Modifiers::NONE, egui::Key::Escape, )); let mut remove_bands = Trigger::new(Action::new( - tr.text("action-remove-bands"), + tr.text("tr-menu-edit_remove-bands"), egui::Modifiers::NONE, egui::Key::Delete, )); let mut place_via = Switch::new(Action::new( - tr.text("action-place-via"), + tr.text("tr-menu-place-place-via"), egui::Modifiers::CTRL, egui::Key::P, )); let mut autoroute = Trigger::new(Action::new( - tr.text("action-autoroute"), + tr.text("tr-menu-route-autoroute"), egui::Modifiers::CTRL, egui::Key::A, )); let mut compare_detours = Trigger::new(Action::new( - tr.text("action-compare-detours"), + tr.text("tr-menu-inspect_compare-detours"), egui::Modifiers::NONE, egui::Key::Minus, )); let mut measure_length = Trigger::new(Action::new( - tr.text("action-measure-length"), + tr.text("tr-menu-inspect_measure-length"), egui::Modifiers::NONE, egui::Key::Plus, )); @@ -136,7 +136,7 @@ impl MenuBar { egui::TopBottomPanel::top("menu_bar") .show(ctx, |ui| { egui::menu::bar(ui, |ui| { - ui.menu_button(tr.text("menu-file"), |ui| { + ui.menu_button(tr.text("tr-menu-file"), |ui| { open_design.button(ctx, ui); export_session.button(ctx, ui); @@ -153,7 +153,7 @@ impl MenuBar { } }); - ui.menu_button(tr.text("menu-edit"), |ui| { + ui.menu_button(tr.text("tr-menu-edit"), |ui| { undo.button(ctx, ui); redo.button(ctx, ui); @@ -166,63 +166,63 @@ impl MenuBar { remove_bands.button(ctx, ui); }); - ui.menu_button(tr.text("menu-view"), |ui| { + ui.menu_button(tr.text("tr-menu-view"), |ui| { ui.toggle_value( &mut viewport.scheduled_zoom_to_fit, - tr.text("zoom-to-fit"), + tr.text("tr-menu-view_zoom-to-fit"), ); ui.separator(); - ui.checkbox(&mut self.show_ratsnest, tr.text("show-ratsnest")); - ui.checkbox(&mut self.show_navmesh, tr.text("show-navmesh")); - ui.checkbox(&mut self.show_bboxes, tr.text("show-bboxes")); + ui.checkbox(&mut self.show_ratsnest, tr.text("tr-menu-view_show-ratsnest")); + ui.checkbox(&mut self.show_navmesh, tr.text("tr-menu-view_show-navmesh")); + ui.checkbox(&mut self.show_bboxes, tr.text("tr-menu-view_show-bboxes")); ui.checkbox( &mut self.show_origin_destination, - tr.text("show-origin-destination"), + tr.text("tr-menu-view_show-origin-destination"), ); ui.separator(); - ui.checkbox(&mut self.show_layer_manager, tr.text("show-layer-manager")); + ui.checkbox(&mut self.show_layer_manager, tr.text("tr-menu-view_show-layer-manager")); ui.separator(); - ui.label(tr.text("frame-timestep")); + ui.label(tr.text("tr-menu-view_frame-timestep")); ui.add( egui::widgets::Slider::new(&mut self.frame_timestep, 0.0..=3.0) .suffix(" s"), ); }); - ui.menu_button(tr.text("menu-place"), |ui| { + ui.menu_button(tr.text("tr-menu-place"), |ui| { place_via.toggle_widget(ctx, ui, &mut self.is_placing_via); }); - ui.menu_button(tr.text("menu-route"), |ui| { + ui.menu_button(tr.text("tr-menu-route"), |ui| { autoroute.button(ctx, ui); ui.separator(); - ui.menu_button(tr.text("menu-options"), |ui| { + ui.menu_button(tr.text("tr-menu-options"), |ui| { ui.checkbox( &mut self.autorouter_options.presort_by_pairwise_detours, - tr.text("presort-by-pairwise-detours"), + tr.text("tr-menu-route-options_presort-by-pairwise-detours"), ); ui.checkbox( &mut self .autorouter_options .router_options .squeeze_through_under_bands, - tr.text("squeeze-through-under-bands"), + tr.text("tr-menu-route-options_squeeze-through-under-bands"), ); ui.checkbox( &mut self.autorouter_options.router_options.wrap_around_bands, - tr.text("wrap-around-bands"), + tr.text("tr-menu-route-options_wrap-around-bands"), ); }); }); - ui.menu_button(tr.text("menu-inspect"), |ui| { + ui.menu_button(tr.text("tr-menu-inspect"), |ui| { compare_detours.button(ctx, ui); measure_length.button(ctx, ui); }); @@ -262,7 +262,7 @@ impl MenuBar { } } let task = dialog - .add_filter(tr.text("specctra-session-file"), &["ses"]) + .add_filter(tr.text("tr-menu-open_specctra-session-file"), &["ses"]) .save_file(); execute(async move {