From 52cfca0d14d776f02f73df038f9a61d29ada2e19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Quatremain?= Date: Fri, 19 Sep 2025 23:00:37 +0200 Subject: [PATCH 1/7] Measure angles --- data/io.github.herve4m.Length.gschema.xml.in | 12 ++++ data/ui/preferences.ui | 16 +++++ src/preferences.py | 18 ++++++ src/unit.py | 68 +++++++++++++++++++- 4 files changed, 112 insertions(+), 2 deletions(-) diff --git a/data/io.github.herve4m.Length.gschema.xml.in b/data/io.github.herve4m.Length.gschema.xml.in index 2ce7f94..826a1e9 100644 --- a/data/io.github.herve4m.Length.gschema.xml.in +++ b/data/io.github.herve4m.Length.gschema.xml.in @@ -76,6 +76,18 @@ + + false + Show Dialogals + Display the diagonal rulers. + + + + false + Show Angles + Display the diagonal angles. + + true Use default font diff --git a/data/ui/preferences.ui b/data/ui/preferences.ui index 714440c..fc14c29 100644 --- a/data/ui/preferences.ui +++ b/data/ui/preferences.ui @@ -73,6 +73,22 @@ + + + + Dia_gonals + true + + + + + + + _Angles + true + + + diff --git a/src/preferences.py b/src/preferences.py index 77c02e7..83caf09 100644 --- a/src/preferences.py +++ b/src/preferences.py @@ -44,6 +44,8 @@ class PreferencesDialog(Adw.PreferencesDialog): unit_comborow = Gtk.Template.Child() lr_toggle = Gtk.Template.Child() rl_toggle = Gtk.Template.Child() + diagonal_switchrow = Gtk.Template.Child() + angle_switchrow = Gtk.Template.Child() use_default_font = Gtk.Template.Child() font_name = Gtk.Template.Child() use_default_color = Gtk.Template.Child() @@ -85,6 +87,14 @@ def __init__(self, application_window) -> None: ) self.rl_toggle.set_active(not self.settings.get_boolean("direction-left-to-right")) + self.settings.bind( + "show-diagonals", self.diagonal_switchrow, "active", Gio.SettingsBindFlags.DEFAULT + ) + + self.settings.bind( + "show-angles", self.angle_switchrow, "active", Gio.SettingsBindFlags.DEFAULT + ) + self.settings.bind( "use-default-font", self.use_default_font, @@ -141,6 +151,14 @@ def _on_unit(self, _widget, _index) -> None: def _lr_toggled(self, _widget) -> None: self.application_window.drawing_area.queue_draw() + @Gtk.Template.Callback() + def _on_diagonal(self, toggle, _value) -> None: + self.application_window.drawing_area.queue_draw() + + @Gtk.Template.Callback() + def _on_angle(self, toggle, _value) -> None: + self.application_window.drawing_area.queue_draw() + @Gtk.Template.Callback() def _on_use_default_font(self, _widget, _value) -> None: self.application_window.drawing_area.queue_draw() diff --git a/src/unit.py b/src/unit.py index f7997d3..48d8194 100644 --- a/src/unit.py +++ b/src/unit.py @@ -548,6 +548,66 @@ def _draw_diag_2(self, ctx_text, min_size: int) -> None: self.context.ctx.line_to(pos_x + offset_x, pos_y + offset_y) self.context.ctx.stroke() + def _draw_angles(self, ctx_text, min_size: int) -> None: + """Draw the angle markings. + + :param ctx_text: The text context. + :type ctx_text: :py:class:``CtxText`` + :param min_size: The minimum window width and height under which the + markings are not drawn. + :type min_size: int + """ + if ( + self.context.width < self.MIN_LENGTH + or self.context.width <= min_size + or self.context.height < self.MIN_LENGTH + or self.context.height <= min_size + ): + return + + width_per_diag = self.context.width / self.context.diagonal + height_per_diag = self.context.height / self.context.diagonal + + # Compute the parameters for the first angle + angle_1 = math.asin(self.context.height / self.context.diagonal) + angle_deg_1 = math.degrees(angle_1) + radius_1 = self.context.width - angle_deg_1 * (self.context.width - 100) / 90 + legend_1 = f"{angle_deg_1:.1f}°" + e_1 = ctx_text.get_extents(legend_1) + legend_x_1 = radius_1 * math.cos(angle_1 / 2) + legend_y_1 = radius_1 * math.sin(angle_1 / 2) + + # Compute the parameters for the second angle + angle_2 = math.pi + angle_1 + angle_deg_2 = 90 - angle_deg_1 + radius_2 = angle_deg_1 * (self.context.height - 100) / 90 + legend_2 = f"{angle_deg_2:.1f}°" + e_2 = ctx_text.get_extents(legend_2) + a = math.radians(90 - angle_deg_2 / 2) + legend_x_2 = self.context.width - radius_2 * math.cos(a) - e_2.width + legend_y_2 = self.context.height - radius_2 * math.sin(a) - e_2.height + + # Draw the diagonals + self.context.ctx.set_line_width(0.2) + # Do not draw on the menu button + self.context.ctx.move_to(min_size * width_per_diag, min_size * height_per_diag) + self.context.ctx.line_to(self.context.width, self.context.height) + self.context.ctx.move_to(0, self.context.height) + self.context.ctx.line_to(self.context.width, 0) + self.context.ctx.stroke() + + # Draw the angles if enough space is available + if legend_x_1 + e_1.width < self.context.width: + self.context.ctx.arc(0, 0, radius_1, 0, angle_1) + ctx_text.draw_text(legend_x_1, legend_y_1, legend_1) + self.context.ctx.stroke() + if legend_x_2 > 0 and legend_y_2 + e_2.height < self.context.height - self.MIN_LENGTH: + self.context.ctx.arc( + self.context.width, self.context.height, radius_2, angle_2, 4.71238898 + ) + ctx_text.draw_text(legend_x_2, legend_y_2, legend_2) + self.context.ctx.stroke() + def draw(self): """Draw the ruler. @@ -572,8 +632,12 @@ def draw(self): self._draw_horizontal(ctx_text, min_size) self._draw_vertical(ctx_text, min_size) - self._draw_diag_1(ctx_text, min_size) - self._draw_diag_2(ctx_text, min_size) + if self.context.settings.get_boolean("show-diagonals"): + self._draw_diag_1(ctx_text, min_size) + self._draw_diag_2(ctx_text, min_size) + + if self.context.settings.get_boolean("show-angles"): + self._draw_angles(ctx_text, min_size) if self.context.track_pointer: self._draw_track_horizontal(min_size) From 494926c20ccc9e4f80e1e98acb4e8a5bc879cf22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Quatremain?= Date: Sat, 20 Sep 2025 07:46:04 +0200 Subject: [PATCH 2/7] Shortcuts --- data/io.github.herve4m.Length.gschema.xml.in | 6 ++++ data/ui/preferences.ui | 10 +++++- src/preferences.py | 9 +++++ src/unit.py | 38 ++++++++++++++++---- src/window.py | 17 +++++++++ 5 files changed, 72 insertions(+), 8 deletions(-) diff --git a/data/io.github.herve4m.Length.gschema.xml.in b/data/io.github.herve4m.Length.gschema.xml.in index 826a1e9..37b778c 100644 --- a/data/io.github.herve4m.Length.gschema.xml.in +++ b/data/io.github.herve4m.Length.gschema.xml.in @@ -76,6 +76,12 @@ + + true + Show the Grid + Display a grid when the ruler is expanded. + + false Show Dialogals diff --git a/data/ui/preferences.ui b/data/ui/preferences.ui index fc14c29..90d8b4f 100644 --- a/data/ui/preferences.ui +++ b/data/ui/preferences.ui @@ -74,9 +74,17 @@ + + + _Grid + true + + + + - Dia_gonals + D_iagonals true diff --git a/src/preferences.py b/src/preferences.py index 83caf09..fed849b 100644 --- a/src/preferences.py +++ b/src/preferences.py @@ -44,6 +44,7 @@ class PreferencesDialog(Adw.PreferencesDialog): unit_comborow = Gtk.Template.Child() lr_toggle = Gtk.Template.Child() rl_toggle = Gtk.Template.Child() + grid_switchrow = Gtk.Template.Child() diagonal_switchrow = Gtk.Template.Child() angle_switchrow = Gtk.Template.Child() use_default_font = Gtk.Template.Child() @@ -87,6 +88,10 @@ def __init__(self, application_window) -> None: ) self.rl_toggle.set_active(not self.settings.get_boolean("direction-left-to-right")) + self.settings.bind( + "show-grid", self.grid_switchrow, "active", Gio.SettingsBindFlags.DEFAULT + ) + self.settings.bind( "show-diagonals", self.diagonal_switchrow, "active", Gio.SettingsBindFlags.DEFAULT ) @@ -151,6 +156,10 @@ def _on_unit(self, _widget, _index) -> None: def _lr_toggled(self, _widget) -> None: self.application_window.drawing_area.queue_draw() + @Gtk.Template.Callback() + def _on_grid(self, toggle, _value) -> None: + self.application_window.drawing_area.queue_draw() + @Gtk.Template.Callback() def _on_diagonal(self, toggle, _value) -> None: self.application_window.drawing_area.queue_draw() diff --git a/src/unit.py b/src/unit.py index 48d8194..0f15ffd 100644 --- a/src/unit.py +++ b/src/unit.py @@ -194,6 +194,7 @@ def _draw_horizontal( self, ctx_text, min_size: int, + show_grid: bool = True, px_per_tick: float = 0.0, width: int = 0, height: int = 0, @@ -330,7 +331,8 @@ def _draw_horizontal( # Draw the grid if ( - show_when_wide + show_grid + and show_when_wide and pos_x > self.MIN_LENGTH and width - pos_x > self.MIN_LENGTH and height > 10 * ctx_text.default_height @@ -346,7 +348,7 @@ def _draw_horizontal( self.context.ctx.stroke() self.context.ctx.set_line_width(1) - def _draw_vertical(self, ctx_text, min_size: int) -> None: + def _draw_vertical(self, ctx_text, min_size: int, show_grid: bool) -> None: """Draw the vertical markings. :param ctx_text: The text context. @@ -364,6 +366,7 @@ def _draw_vertical(self, ctx_text, min_size: int) -> None: self._draw_horizontal( ctx_text, min_size, + show_grid, self.px_per_tick_height, self.context.height, self.context.width, @@ -568,10 +571,25 @@ def _draw_angles(self, ctx_text, min_size: int) -> None: width_per_diag = self.context.width / self.context.diagonal height_per_diag = self.context.height / self.context.diagonal + # ________________________________ + # |\ 1 1 /| + # | \ / | + # | 2 \ / 2 | + # | \ / | + # | \ / | + # | | + # | / \ | + # | / \ | + # | 2 / \ 2 | + # | / \ | + # |/ 1 1 \ | + # -------------------------------- + # Compute the parameters for the first angle angle_1 = math.asin(self.context.height / self.context.diagonal) angle_deg_1 = math.degrees(angle_1) - radius_1 = self.context.width - angle_deg_1 * (self.context.width - 100) / 90 + # radius_1 = self.context.width - angle_deg_1 * self.context.width / 90 + radius_1 = self.context.width / 3 legend_1 = f"{angle_deg_1:.1f}°" e_1 = ctx_text.get_extents(legend_1) legend_x_1 = radius_1 * math.cos(angle_1 / 2) @@ -580,7 +598,8 @@ def _draw_angles(self, ctx_text, min_size: int) -> None: # Compute the parameters for the second angle angle_2 = math.pi + angle_1 angle_deg_2 = 90 - angle_deg_1 - radius_2 = angle_deg_1 * (self.context.height - 100) / 90 + # radius_2 = angle_deg_1 * (self.context.height - 100) / 90 + radius_2 = self.context.height / 3 legend_2 = f"{angle_deg_2:.1f}°" e_2 = ctx_text.get_extents(legend_2) a = math.radians(90 - angle_deg_2 / 2) @@ -597,7 +616,9 @@ def _draw_angles(self, ctx_text, min_size: int) -> None: self.context.ctx.stroke() # Draw the angles if enough space is available - if legend_x_1 + e_1.width < self.context.width: + if ( + legend_x_1 + e_1.width < self.context.width + ): # and legend_x_1 > min_size and legend_y_1 > min_size: self.context.ctx.arc(0, 0, radius_1, 0, angle_1) ctx_text.draw_text(legend_x_1, legend_y_1, legend_1) self.context.ctx.stroke() @@ -630,8 +651,11 @@ def draw(self): self.context.ctx.set_source_rgba(*self.context.color_fg) self.context.ctx.set_line_width(1) - self._draw_horizontal(ctx_text, min_size) - self._draw_vertical(ctx_text, min_size) + # Whether do draw the grid + show_grid = self.context.settings.get_boolean("show-grid") + + self._draw_horizontal(ctx_text, min_size, show_grid) + self._draw_vertical(ctx_text, min_size, show_grid) if self.context.settings.get_boolean("show-diagonals"): self._draw_diag_1(ctx_text, min_size) self._draw_diag_2(ctx_text, min_size) diff --git a/src/window.py b/src/window.py index 5e341e9..dd8a03c 100644 --- a/src/window.py +++ b/src/window.py @@ -206,6 +206,23 @@ def _on_key_pressed_event(self, event_ctrl_key, key_val, key_code, modifier_type self.context.track_pos_x = self.context.pointer_x self.context.track_pos_y = self.context.pointer_y self.drawing_area.queue_draw() + elif key_val == Gdk.KEY_g: + v = self.settings.get_boolean("show-grid") + self.settings.set_boolean("show-grid", not v) + self.drawing_area.queue_draw() + elif key_val == Gdk.KEY_i: + v = self.settings.get_boolean("show-diagonals") + self.settings.set_boolean("show-diagonals", not v) + self.drawing_area.queue_draw() + elif key_val == Gdk.KEY_a: + v = self.settings.get_boolean("show-angles") + self.settings.set_boolean("show-angles", not v) + self.drawing_area.queue_draw() + elif key_val == Gdk.KEY_d: + v = self.settings.get_boolean("direction-left-to-right") + self.settings.set_boolean("direction-left-to-right", not v) + self.drawing_area.queue_draw() + # # You cannot programmatically rotate the window with Gtk 4. See # https://discourse.gnome.org/t/programmatically-set-window-size/31339/6 From 39290f91b5e5b70b42cd15717ee027070218dd49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Quatremain?= Date: Sat, 20 Sep 2025 09:30:47 +0200 Subject: [PATCH 3/7] Angles --- src/unit.py | 145 ++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 112 insertions(+), 33 deletions(-) diff --git a/src/unit.py b/src/unit.py index 0f15ffd..00ea74c 100644 --- a/src/unit.py +++ b/src/unit.py @@ -572,39 +572,70 @@ def _draw_angles(self, ctx_text, min_size: int) -> None: height_per_diag = self.context.height / self.context.diagonal # ________________________________ - # |\ 1 1 /| + # |\ 1a 1b /| # | \ / | - # | 2 \ / 2 | - # | \ / | + # | 2a \ / 2b | + # | \ 3 / | # | \ / | - # | | + # | 4 | # | / \ | # | / \ | - # | 2 / \ 2 | + # | 2c / \ 2d | # | / \ | - # |/ 1 1 \ | + # |/ 1c 1d \ | # -------------------------------- - # Compute the parameters for the first angle + # Compute the angles angle_1 = math.asin(self.context.height / self.context.diagonal) angle_deg_1 = math.degrees(angle_1) - # radius_1 = self.context.width - angle_deg_1 * self.context.width / 90 - radius_1 = self.context.width / 3 legend_1 = f"{angle_deg_1:.1f}°" - e_1 = ctx_text.get_extents(legend_1) - legend_x_1 = radius_1 * math.cos(angle_1 / 2) - legend_y_1 = radius_1 * math.sin(angle_1 / 2) + extend_1 = ctx_text.get_extents(legend_1) + radius_1 = self.context.width / 3 - # Compute the parameters for the second angle - angle_2 = math.pi + angle_1 + angle_2 = math.pi / 2 - angle_1 angle_deg_2 = 90 - angle_deg_1 - # radius_2 = angle_deg_1 * (self.context.height - 100) / 90 - radius_2 = self.context.height / 3 legend_2 = f"{angle_deg_2:.1f}°" - e_2 = ctx_text.get_extents(legend_2) - a = math.radians(90 - angle_deg_2 / 2) - legend_x_2 = self.context.width - radius_2 * math.cos(a) - e_2.width - legend_y_2 = self.context.height - radius_2 * math.sin(a) - e_2.height + extend_2 = ctx_text.get_extents(legend_2) + radius_2 = self.context.height / 3 + + legend_3 = f"{2 * angle_deg_2:.1f}°" + extend_3 = ctx_text.get_extents(legend_3) + radius_3 = self.context.height / 10 + + legend_4 = f"{2 * angle_deg_1:.1f}°" + extend_4 = ctx_text.get_extents(legend_4) + radius_4 = self.context.width / 10 + + # Compute the legend positions + legend_x_1a = radius_1 * math.cos(angle_1 / 2) + legend_y_1a = radius_1 * math.sin(angle_1 / 2) + + legend_x_1b = self.context.width - legend_x_1a - extend_1.width + legend_y_1b = legend_y_1a + + legend_x_1c = legend_x_1a + legend_y_1c = self.context.height - legend_y_1a - extend_1.height + + legend_x_1d = self.context.width - legend_x_1a - extend_1.width + legend_y_1d = self.context.height - legend_y_1a - extend_1.height + + legend_x_2a = radius_2 * math.cos((math.pi - angle_2) / 2) + legend_y_2a = radius_2 * math.sin((math.pi - angle_2) / 2) + + legend_x_2b = self.context.width - legend_x_2a - extend_2.width + legend_y_2b = legend_y_2a + + legend_x_2c = legend_x_2a + legend_y_2c = self.context.height - legend_y_2a - extend_2.height + + legend_x_2d = self.context.width - legend_x_2a - extend_2.width + legend_y_2d = self.context.height - legend_y_2a - extend_2.height + + legend_x_3 = self.context.width / 2 - extend_3.width / 2 + legend_y_3 = self.context.height / 2 - radius_3 - extend_3.height + + legend_x_4 = self.context.width / 2 + radius_4 + 2 + legend_y_4 = self.context.height / 2 - extend_4.height / 2 # Draw the diagonals self.context.ctx.set_line_width(0.2) @@ -615,19 +646,67 @@ def _draw_angles(self, ctx_text, min_size: int) -> None: self.context.ctx.line_to(self.context.width, 0) self.context.ctx.stroke() - # Draw the angles if enough space is available - if ( - legend_x_1 + e_1.width < self.context.width - ): # and legend_x_1 > min_size and legend_y_1 > min_size: - self.context.ctx.arc(0, 0, radius_1, 0, angle_1) - ctx_text.draw_text(legend_x_1, legend_y_1, legend_1) - self.context.ctx.stroke() - if legend_x_2 > 0 and legend_y_2 + e_2.height < self.context.height - self.MIN_LENGTH: - self.context.ctx.arc( - self.context.width, self.context.height, radius_2, angle_2, 4.71238898 - ) - ctx_text.draw_text(legend_x_2, legend_y_2, legend_2) - self.context.ctx.stroke() + # 1a + self.context.ctx.arc(0, 0, radius_1, 0, angle_1) + ctx_text.draw_text(legend_x_1a, legend_y_1a, legend_1) + self.context.ctx.stroke() + + # 1b + self.context.ctx.arc(self.context.width, 0, radius_1, math.pi - angle_1, math.pi) + ctx_text.draw_text(legend_x_1b, legend_y_1b, legend_1) + self.context.ctx.stroke() + + # 1c + self.context.ctx.arc(0, self.context.height, radius_1, -angle_1, 0) + ctx_text.draw_text(legend_x_1c, legend_y_1c, legend_1) + self.context.ctx.stroke() + + # 1d + self.context.ctx.arc( + self.context.width, self.context.height, radius_1, math.pi, math.pi + angle_1 + ) + ctx_text.draw_text(legend_x_1d, legend_y_1d, legend_1) + self.context.ctx.stroke() + + # 2a + self.context.ctx.arc(0, 0, radius_2, angle_1, math.pi / 2) + ctx_text.draw_text(legend_x_2a, legend_y_2a, legend_2) + self.context.ctx.stroke() + + # 2b + self.context.ctx.arc(self.context.width, 0, radius_2, math.pi / 2, math.pi - angle_1) + ctx_text.draw_text(legend_x_2b, legend_y_2b, legend_2) + self.context.ctx.stroke() + + # 2c + self.context.ctx.arc(0, self.context.height, radius_2, 3 * math.pi / 2, -angle_1) + ctx_text.draw_text(legend_x_2c, legend_y_2c, legend_2) + self.context.ctx.stroke() + + # 2d + self.context.ctx.arc( + self.context.width, self.context.height, radius_2, math.pi + angle_1, -math.pi / 2 + ) + ctx_text.draw_text(legend_x_2d, legend_y_2d, legend_2) + self.context.ctx.stroke() + + # 3 + self.context.ctx.arc( + self.context.width / 2, + self.context.height / 2, + radius_3, + math.pi + angle_1, + -angle_1, + ) + ctx_text.draw_text(legend_x_3, legend_y_3, legend_3) + self.context.ctx.stroke() + + # 4 + self.context.ctx.arc( + self.context.width / 2, self.context.height / 2, radius_4, -angle_1, angle_1 + ) + ctx_text.draw_text(legend_x_4, legend_y_4, legend_4) + self.context.ctx.stroke() def draw(self): """Draw the ruler. From 9dab47592b01a4ad7fc093e8875e20fef1171803 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Quatremain?= Date: Sat, 20 Sep 2025 09:56:22 +0200 Subject: [PATCH 4/7] Show/hide ruler markings --- data/io.github.herve4m.Length.gschema.xml.in | 6 ++++++ data/ui/preferences.ui | 21 +++++++++++++++++--- src/preferences.py | 15 ++++++-------- src/unit.py | 9 +++++---- src/window.py | 4 ++++ 5 files changed, 39 insertions(+), 16 deletions(-) diff --git a/data/io.github.herve4m.Length.gschema.xml.in b/data/io.github.herve4m.Length.gschema.xml.in index 37b778c..881535b 100644 --- a/data/io.github.herve4m.Length.gschema.xml.in +++ b/data/io.github.herve4m.Length.gschema.xml.in @@ -76,6 +76,12 @@ + + true + Show the Ruler Markings + Display the ticks on the ruler. + + true Show the Grid diff --git a/data/ui/preferences.ui b/data/ui/preferences.ui index 90d8b4f..add6007 100644 --- a/data/ui/preferences.ui +++ b/data/ui/preferences.ui @@ -73,12 +73,27 @@ + + + + + + Layers + + + + Ruler _Markings + true + + + _Grid true - + + @@ -86,7 +101,7 @@ D_iagonals true - + @@ -94,7 +109,7 @@ _Angles true - + diff --git a/src/preferences.py b/src/preferences.py index fed849b..cac87e0 100644 --- a/src/preferences.py +++ b/src/preferences.py @@ -44,6 +44,7 @@ class PreferencesDialog(Adw.PreferencesDialog): unit_comborow = Gtk.Template.Child() lr_toggle = Gtk.Template.Child() rl_toggle = Gtk.Template.Child() + marking_switchrow = Gtk.Template.Child() grid_switchrow = Gtk.Template.Child() diagonal_switchrow = Gtk.Template.Child() angle_switchrow = Gtk.Template.Child() @@ -88,6 +89,10 @@ def __init__(self, application_window) -> None: ) self.rl_toggle.set_active(not self.settings.get_boolean("direction-left-to-right")) + self.settings.bind( + "show-markings", self.marking_switchrow, "active", Gio.SettingsBindFlags.DEFAULT + ) + self.settings.bind( "show-grid", self.grid_switchrow, "active", Gio.SettingsBindFlags.DEFAULT ) @@ -157,15 +162,7 @@ def _lr_toggled(self, _widget) -> None: self.application_window.drawing_area.queue_draw() @Gtk.Template.Callback() - def _on_grid(self, toggle, _value) -> None: - self.application_window.drawing_area.queue_draw() - - @Gtk.Template.Callback() - def _on_diagonal(self, toggle, _value) -> None: - self.application_window.drawing_area.queue_draw() - - @Gtk.Template.Callback() - def _on_angle(self, toggle, _value) -> None: + def _refresh_ui(self, toggle, _value) -> None: self.application_window.drawing_area.queue_draw() @Gtk.Template.Callback() diff --git a/src/unit.py b/src/unit.py index 00ea74c..51d415d 100644 --- a/src/unit.py +++ b/src/unit.py @@ -730,11 +730,12 @@ def draw(self): self.context.ctx.set_source_rgba(*self.context.color_fg) self.context.ctx.set_line_width(1) - # Whether do draw the grid - show_grid = self.context.settings.get_boolean("show-grid") + if self.context.settings.get_boolean("show-markings"): + # Whether do draw the grid + show_grid = self.context.settings.get_boolean("show-grid") + self._draw_horizontal(ctx_text, min_size, show_grid) + self._draw_vertical(ctx_text, min_size, show_grid) - self._draw_horizontal(ctx_text, min_size, show_grid) - self._draw_vertical(ctx_text, min_size, show_grid) if self.context.settings.get_boolean("show-diagonals"): self._draw_diag_1(ctx_text, min_size) self._draw_diag_2(ctx_text, min_size) diff --git a/src/window.py b/src/window.py index dd8a03c..8cd1d1b 100644 --- a/src/window.py +++ b/src/window.py @@ -206,6 +206,10 @@ def _on_key_pressed_event(self, event_ctrl_key, key_val, key_code, modifier_type self.context.track_pos_x = self.context.pointer_x self.context.track_pos_y = self.context.pointer_y self.drawing_area.queue_draw() + elif key_val == Gdk.KEY_m: + v = self.settings.get_boolean("show-markings") + self.settings.set_boolean("show-markings", not v) + self.drawing_area.queue_draw() elif key_val == Gdk.KEY_g: v = self.settings.get_boolean("show-grid") self.settings.set_boolean("show-grid", not v) From 856ef72656027dc96b484d0997f4359d92d08d76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Quatremain?= Date: Sat, 20 Sep 2025 15:08:56 +0200 Subject: [PATCH 5/7] Prepare translations --- data/ui/help-overlay.ui | 38 +++++++- po/README-BUILD.md | 11 +++ po/es.po | 153 ++++++++++++++++++++++++------- po/fr.po | 153 ++++++++++++++++++++++++------- po/it.po | 160 ++++++++++++++++++++++++-------- po/length.pot | 150 +++++++++++++++++++++++------- po/nl.po | 153 ++++++++++++++++++++++++------- po/ru.po | 196 ++++++++++++++++++++++++++++++---------- po/uk.po | 153 ++++++++++++++++++++++++------- src/window.py | 1 - 10 files changed, 909 insertions(+), 259 deletions(-) create mode 100644 po/README-BUILD.md diff --git a/data/ui/help-overlay.ui b/data/ui/help-overlay.ui index 30faff2..f0d62c5 100644 --- a/data/ui/help-overlay.ui +++ b/data/ui/help-overlay.ui @@ -24,7 +24,7 @@ shortcuts - 20 + 15 General @@ -58,6 +58,42 @@ + + + Layers + + + Show/Hide Markings + m + + + + + Show/Hide Grid + g + + + + + Show/Hide Diagonals + i + + + + + Show/Hide Angles + a + + + + + Left-to-right/Right-to-left + d + + + + + Opacity diff --git a/po/README-BUILD.md b/po/README-BUILD.md new file mode 100644 index 0000000..d41b617 --- /dev/null +++ b/po/README-BUILD.md @@ -0,0 +1,11 @@ +# Updating PO Files After Changes to the Code + +This process is not for translators, but for code developers to prepare the +new contents for translation. + +- Run `meson setup builddir` at the root of the repository. +- Change to the `builddir` directory. +- Update the `po/length.pot` file by running `meson compile length-pot`. +- Update all the language `po/*.po` files by running `meson compile length-update-po`. + +Translators can then update their PO file. diff --git a/po/es.po b/po/es.po index 43eb830..5e25a4b 100644 --- a/po/es.po +++ b/po/es.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: length\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-02 20:10+0200\n" +"POT-Creation-Date: 2025-09-20 14:53+0200\n" "PO-Revision-Date: 2025-03-22 17:23-0300\n" "Last-Translator: Haggen\n" "Language-Team: \n" @@ -155,51 +155,85 @@ msgstr "" "contrario, de derecha a izquierda." #: data/io.github.herve4m.Length.gschema.xml.in:81 +msgid "Show the Ruler Markings" +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:82 +#, fuzzy +msgid "Display the ticks on the ruler." +msgstr "Muestra la posición del puntero en la regla." + +#: data/io.github.herve4m.Length.gschema.xml.in:87 +msgid "Show the Grid" +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:88 +msgid "Display a grid when the ruler is expanded." +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:93 +msgid "Show Dialogals" +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:94 +#, fuzzy +msgid "Display the diagonal rulers." +msgstr "Muestra la posición del puntero en la regla." + +#: data/io.github.herve4m.Length.gschema.xml.in:99 +msgid "Show Angles" +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:100 +msgid "Display the diagonal angles." +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:105 msgid "Use default font" msgstr "Usar fuente predeterminada" -#: data/io.github.herve4m.Length.gschema.xml.in:82 +#: data/io.github.herve4m.Length.gschema.xml.in:106 msgid "Whether to use the default font" msgstr "Si se debe utilizar la fuente predeterminada" -#: data/io.github.herve4m.Length.gschema.xml.in:87 +#: data/io.github.herve4m.Length.gschema.xml.in:111 msgid "Font Name" msgstr "Nombre de la fuente" -#: data/io.github.herve4m.Length.gschema.xml.in:88 +#: data/io.github.herve4m.Length.gschema.xml.in:112 msgid "The font to use when \"use-default-font\" is FALSE." msgstr "La fuente a utilizar cuando \"use-default-font\" es FALSO." -#: data/io.github.herve4m.Length.gschema.xml.in:95 +#: data/io.github.herve4m.Length.gschema.xml.in:119 msgid "Window Size" msgstr "Tamaño de la ventana" -#: data/io.github.herve4m.Length.gschema.xml.in:96 +#: data/io.github.herve4m.Length.gschema.xml.in:120 msgid "Window size (width and height) of the last closed window." msgstr "Tamaño de la ventana (ancho y alto) de la última ventana cerrada." -#: data/io.github.herve4m.Length.gschema.xml.in:103 +#: data/io.github.herve4m.Length.gschema.xml.in:127 msgid "Use default color scheme" msgstr "Utilizar el esquema de colores por defecto" -#: data/io.github.herve4m.Length.gschema.xml.in:104 +#: data/io.github.herve4m.Length.gschema.xml.in:128 msgid "Whether to use the default color scheme" msgstr "Si desea utilizar el esquema de color por defecto" -#: data/io.github.herve4m.Length.gschema.xml.in:109 +#: data/io.github.herve4m.Length.gschema.xml.in:133 msgid "Foreground Color" msgstr "Color de primer plano" -#: data/io.github.herve4m.Length.gschema.xml.in:110 +#: data/io.github.herve4m.Length.gschema.xml.in:134 msgid "Color (red, green, blue, alpha) for the ruler ticks and the labels" msgstr "" "Color (rojo, verde, azul, alfa) para las marcas de la regla y las etiquetas" -#: data/io.github.herve4m.Length.gschema.xml.in:117 +#: data/io.github.herve4m.Length.gschema.xml.in:141 msgid "Background Color" msgstr "Color de fondo" -#: data/io.github.herve4m.Length.gschema.xml.in:118 +#: data/io.github.herve4m.Length.gschema.xml.in:142 msgid "Color (red, green, blue, alpha) for the ruler background" msgstr "Color (rojo, verde, azul, alfa) para el fondo de la regla" @@ -230,70 +264,101 @@ msgstr "Salir" #: data/ui/help-overlay.ui:63 msgctxt "shortcut window" +msgid "Layers" +msgstr "" + +#: data/ui/help-overlay.ui:66 +msgctxt "shortcut window" +msgid "Show/Hide Markings" +msgstr "" + +#: data/ui/help-overlay.ui:72 +msgctxt "shortcut window" +msgid "Show/Hide Grid" +msgstr "" + +#: data/ui/help-overlay.ui:78 +msgctxt "shortcut window" +msgid "Show/Hide Diagonals" +msgstr "" + +#: data/ui/help-overlay.ui:84 +msgctxt "shortcut window" +msgid "Show/Hide Angles" +msgstr "" + +#: data/ui/help-overlay.ui:90 +#, fuzzy +msgctxt "shortcut window" +msgid "Left-to-right/Right-to-left" +msgstr "Orientación de izquierda a derecha o de derecha a izquierda" + +#: data/ui/help-overlay.ui:99 +msgctxt "shortcut window" msgid "Opacity" msgstr "Opacidad" -#: data/ui/help-overlay.ui:66 +#: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Increase Opacity" msgstr "Aumentar la opacidad" -#: data/ui/help-overlay.ui:72 +#: data/ui/help-overlay.ui:108 msgctxt "shortcut window" msgid "Decrease Opacity" msgstr "Disminuir la opacidad" -#: data/ui/help-overlay.ui:81 +#: data/ui/help-overlay.ui:117 msgctxt "shortcut window" msgid "Pointer Tracking" msgstr "Seguimiento del puntero" -#: data/ui/help-overlay.ui:84 +#: data/ui/help-overlay.ui:120 msgctxt "shortcut window" msgid "Activate/Deactivate" msgstr "Activar/Desactivar" -#: data/ui/help-overlay.ui:90 +#: data/ui/help-overlay.ui:126 msgctxt "shortcut window" msgid "Lock/Unlock Position" msgstr "Posición de bloqueo/desbloqueo" -#: data/ui/help-overlay.ui:99 +#: data/ui/help-overlay.ui:135 msgctxt "shortcut window" msgid "Units" msgstr "Unidades" -#: data/ui/help-overlay.ui:102 +#: data/ui/help-overlay.ui:138 msgctxt "shortcut window" msgid "Pixels" msgstr "Pixeles" -#: data/ui/help-overlay.ui:108 +#: data/ui/help-overlay.ui:144 msgctxt "shortcut window" msgid "Centimeters" msgstr "Centímetros" -#: data/ui/help-overlay.ui:114 +#: data/ui/help-overlay.ui:150 msgctxt "shortcut window" msgid "Inches" msgstr "Pulgadas" -#: data/ui/help-overlay.ui:120 +#: data/ui/help-overlay.ui:156 msgctxt "shortcut window" msgid "Picas" msgstr "Picas" -#: data/ui/help-overlay.ui:126 +#: data/ui/help-overlay.ui:162 msgctxt "shortcut window" msgid "Points" msgstr "Puntos" -#: data/ui/help-overlay.ui:132 +#: data/ui/help-overlay.ui:168 msgctxt "shortcut window" msgid "Percentages" msgstr "Porcentajes" -#: data/ui/help-overlay.ui:138 +#: data/ui/help-overlay.ui:174 #, fuzzy msgctxt "shortcut window" msgid "Relative Percentages" @@ -348,34 +413,54 @@ msgid "_Direction" msgstr "_Dirección" #: data/ui/preferences.ui:81 +msgid "Layers" +msgstr "" + +#: data/ui/preferences.ui:85 +msgid "Ruler _Markings" +msgstr "" + +#: data/ui/preferences.ui:93 +msgid "_Grid" +msgstr "" + +#: data/ui/preferences.ui:102 +msgid "D_iagonals" +msgstr "" + +#: data/ui/preferences.ui:110 +msgid "_Angles" +msgstr "" + +#: data/ui/preferences.ui:120 msgid "Appearance" msgstr "Apariencia" -#: data/ui/preferences.ui:85 +#: data/ui/preferences.ui:124 msgid "Use Default _Colors" msgstr "Usar _colores predeterminados" -#: data/ui/preferences.ui:97 +#: data/ui/preferences.ui:136 msgid "Foreground" msgstr "Primer plano" -#: data/ui/preferences.ui:112 +#: data/ui/preferences.ui:151 msgid "Background" msgstr "Fondo" -#: data/ui/preferences.ui:130 +#: data/ui/preferences.ui:169 msgid "Use Default _Font" msgstr "Usar _fuente por defecto" -#: data/ui/preferences.ui:144 +#: data/ui/preferences.ui:183 msgid "Custom Font" msgstr "Fuente personalizada" -#: data/ui/preferences.ui:173 +#: data/ui/preferences.ui:212 msgid "Calibrating" msgstr "Calibrando" -#: data/ui/preferences.ui:177 +#: data/ui/preferences.ui:216 msgid "Displays" msgstr "Pantallas" @@ -424,7 +509,7 @@ msgstr "" "tamaño de su monitor.\n" "Mientras tanto, los cálculos se realizan para un " -#: src/draw_context.py:155 +#: src/draw_context.py:158 msgid "OK" msgstr "OK" @@ -434,7 +519,7 @@ msgstr "OK" msgid "translator-credits" msgstr "Haggen" -#: src/preferences.py:152 +#: src/preferences.py:176 msgid "Select Font" msgstr "Seleccionar fuente" diff --git a/po/fr.po b/po/fr.po index 6679232..68d8878 100644 --- a/po/fr.po +++ b/po/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: length\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-02 20:10+0200\n" +"POT-Creation-Date: 2025-09-20 14:53+0200\n" "PO-Revision-Date: 2025-03-18 09:13+0100\n" "Last-Translator: Hervé Quatremain\n" "Language-Team: none\n" @@ -153,51 +153,83 @@ msgstr "" "sinon de droite à gauche." #: data/io.github.herve4m.Length.gschema.xml.in:81 +msgid "Show the Ruler Markings" +msgstr "Affiche les graduations" + +#: data/io.github.herve4m.Length.gschema.xml.in:82 +msgid "Display the ticks on the ruler." +msgstr "Affiche les graduations sur la règle." + +#: data/io.github.herve4m.Length.gschema.xml.in:87 +msgid "Show the Grid" +msgstr "Affiche la grille" + +#: data/io.github.herve4m.Length.gschema.xml.in:88 +msgid "Display a grid when the ruler is expanded." +msgstr "Affiche la grille de coordonnées" + +#: data/io.github.herve4m.Length.gschema.xml.in:93 +msgid "Show Dialogals" +msgstr "Affiche les diagonales" + +#: data/io.github.herve4m.Length.gschema.xml.in:94 +msgid "Display the diagonal rulers." +msgstr "Afficher les règles en diagonale." + +#: data/io.github.herve4m.Length.gschema.xml.in:99 +msgid "Show Angles" +msgstr "Affiche les angles" + +#: data/io.github.herve4m.Length.gschema.xml.in:100 +msgid "Display the diagonal angles." +msgstr "Affiche les mesures d’angles." + +#: data/io.github.herve4m.Length.gschema.xml.in:105 msgid "Use default font" msgstr "Utiliser la police par défaut" -#: data/io.github.herve4m.Length.gschema.xml.in:82 +#: data/io.github.herve4m.Length.gschema.xml.in:106 msgid "Whether to use the default font" -msgstr "Indique s’il faut utiliser ou non la police par défaut" +msgstr "Indique s’il faut utiliser ou non la police par défaut." -#: data/io.github.herve4m.Length.gschema.xml.in:87 +#: data/io.github.herve4m.Length.gschema.xml.in:111 msgid "Font Name" msgstr "Nom de la police" -#: data/io.github.herve4m.Length.gschema.xml.in:88 +#: data/io.github.herve4m.Length.gschema.xml.in:112 msgid "The font to use when \"use-default-font\" is FALSE." msgstr "" "Police à utiliser quand l’option \"use-default-font\" est définie sur FAUX." -#: data/io.github.herve4m.Length.gschema.xml.in:95 +#: data/io.github.herve4m.Length.gschema.xml.in:119 msgid "Window Size" msgstr "Taille de la fenêtre" -#: data/io.github.herve4m.Length.gschema.xml.in:96 +#: data/io.github.herve4m.Length.gschema.xml.in:120 msgid "Window size (width and height) of the last closed window." msgstr "Dimensions (largeur et hauteur) de la dernière fenêtre fermée." -#: data/io.github.herve4m.Length.gschema.xml.in:103 +#: data/io.github.herve4m.Length.gschema.xml.in:127 msgid "Use default color scheme" msgstr "Utiliser le jeu de couleurs par défaut" -#: data/io.github.herve4m.Length.gschema.xml.in:104 +#: data/io.github.herve4m.Length.gschema.xml.in:128 msgid "Whether to use the default color scheme" msgstr "Indique s’il faut utiliser ou non le jeu de couleurs par défaut" -#: data/io.github.herve4m.Length.gschema.xml.in:109 +#: data/io.github.herve4m.Length.gschema.xml.in:133 msgid "Foreground Color" msgstr "Couleur d’avant-plan" -#: data/io.github.herve4m.Length.gschema.xml.in:110 +#: data/io.github.herve4m.Length.gschema.xml.in:134 msgid "Color (red, green, blue, alpha) for the ruler ticks and the labels" msgstr "Couleur (rouge, vert, bleu, alpha) des marques sur la règle" -#: data/io.github.herve4m.Length.gschema.xml.in:117 +#: data/io.github.herve4m.Length.gschema.xml.in:141 msgid "Background Color" msgstr "Couleur d’arrière-plan" -#: data/io.github.herve4m.Length.gschema.xml.in:118 +#: data/io.github.herve4m.Length.gschema.xml.in:142 msgid "Color (red, green, blue, alpha) for the ruler background" msgstr "Couleur (rouge, vert, bleu, alpha) d’arrière-plan de la règle" @@ -228,70 +260,100 @@ msgstr "Quitter" #: data/ui/help-overlay.ui:63 msgctxt "shortcut window" +msgid "Layers" +msgstr "Couches" + +#: data/ui/help-overlay.ui:66 +msgctxt "shortcut window" +msgid "Show/Hide Markings" +msgstr "Afficher/cacher les graduations" + +#: data/ui/help-overlay.ui:72 +msgctxt "shortcut window" +msgid "Show/Hide Grid" +msgstr "Afficher/cacher la grille" + +#: data/ui/help-overlay.ui:78 +msgctxt "shortcut window" +msgid "Show/Hide Diagonals" +msgstr "Afficher/cacher les diagonales" + +#: data/ui/help-overlay.ui:84 +msgctxt "shortcut window" +msgid "Show/Hide Angles" +msgstr "Afficher/cacher les angles" + +#: data/ui/help-overlay.ui:90 +msgctxt "shortcut window" +msgid "Left-to-right/Right-to-left" +msgstr "Gauche à droite/droite à gauche" + +#: data/ui/help-overlay.ui:99 +msgctxt "shortcut window" msgid "Opacity" msgstr "Opacité" -#: data/ui/help-overlay.ui:66 +#: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Increase Opacity" msgstr "Augmenter l’opacité" -#: data/ui/help-overlay.ui:72 +#: data/ui/help-overlay.ui:108 msgctxt "shortcut window" msgid "Decrease Opacity" msgstr "Réduire l’opacité" -#: data/ui/help-overlay.ui:81 +#: data/ui/help-overlay.ui:117 msgctxt "shortcut window" msgid "Pointer Tracking" msgstr "Suivi du pointeur" -#: data/ui/help-overlay.ui:84 +#: data/ui/help-overlay.ui:120 msgctxt "shortcut window" msgid "Activate/Deactivate" msgstr "Activer / Désactiver" -#: data/ui/help-overlay.ui:90 +#: data/ui/help-overlay.ui:126 msgctxt "shortcut window" msgid "Lock/Unlock Position" msgstr "Verrouiller / Déverrouiller la position" -#: data/ui/help-overlay.ui:99 +#: data/ui/help-overlay.ui:135 msgctxt "shortcut window" msgid "Units" msgstr "Unités" -#: data/ui/help-overlay.ui:102 +#: data/ui/help-overlay.ui:138 msgctxt "shortcut window" msgid "Pixels" msgstr "Pixels" -#: data/ui/help-overlay.ui:108 +#: data/ui/help-overlay.ui:144 msgctxt "shortcut window" msgid "Centimeters" msgstr "Centimètres" -#: data/ui/help-overlay.ui:114 +#: data/ui/help-overlay.ui:150 msgctxt "shortcut window" msgid "Inches" msgstr "Pouces" -#: data/ui/help-overlay.ui:120 +#: data/ui/help-overlay.ui:156 msgctxt "shortcut window" msgid "Picas" msgstr "Picas" -#: data/ui/help-overlay.ui:126 +#: data/ui/help-overlay.ui:162 msgctxt "shortcut window" msgid "Points" msgstr "Points" -#: data/ui/help-overlay.ui:132 +#: data/ui/help-overlay.ui:168 msgctxt "shortcut window" msgid "Percentages" msgstr "Pourcentages" -#: data/ui/help-overlay.ui:138 +#: data/ui/help-overlay.ui:174 msgctxt "shortcut window" msgid "Relative Percentages" msgstr "Pourcentages relatifs" @@ -345,34 +407,54 @@ msgid "_Direction" msgstr "_Direction" #: data/ui/preferences.ui:81 +msgid "Layers" +msgstr "Couches" + +#: data/ui/preferences.ui:85 +msgid "Ruler _Markings" +msgstr "Graduations" + +#: data/ui/preferences.ui:93 +msgid "_Grid" +msgstr "_Grille" + +#: data/ui/preferences.ui:102 +msgid "D_iagonals" +msgstr "D_iagonales" + +#: data/ui/preferences.ui:110 +msgid "_Angles" +msgstr "_Angles" + +#: data/ui/preferences.ui:120 msgid "Appearance" msgstr "Apparence" -#: data/ui/preferences.ui:85 +#: data/ui/preferences.ui:124 msgid "Use Default _Colors" msgstr "Utiliser les _couleurs par défaut" -#: data/ui/preferences.ui:97 +#: data/ui/preferences.ui:136 msgid "Foreground" msgstr "Avant-plan" -#: data/ui/preferences.ui:112 +#: data/ui/preferences.ui:151 msgid "Background" msgstr "Arrière-plan" -#: data/ui/preferences.ui:130 +#: data/ui/preferences.ui:169 msgid "Use Default _Font" msgstr "Utiliser la police par dé_faut" -#: data/ui/preferences.ui:144 +#: data/ui/preferences.ui:183 msgid "Custom Font" msgstr "Police personnalisée" -#: data/ui/preferences.ui:173 +#: data/ui/preferences.ui:212 msgid "Calibrating" msgstr "Calibration" -#: data/ui/preferences.ui:177 +#: data/ui/preferences.ui:216 msgid "Displays" msgstr "Écrans" @@ -409,6 +491,7 @@ msgid "Monitor Size Unknown" msgstr "Taille d’écran inconnue" #: src/draw_context.py:148 +#, python-brace-format msgid "" "The size of the {monitor_name} monitor cannot be determined.\n" "Use the Preferences dialog to calibrate Length for your monitor size.\n" @@ -418,7 +501,7 @@ msgstr "" "Utilisez les Préférences pour calibrer Longueur pour votre taille d’écran.\n" "En attendant, les calculs sont faits pour un écran de {diag_inch} pouces." -#: src/draw_context.py:155 +#: src/draw_context.py:158 msgid "OK" msgstr "D’accord" @@ -430,7 +513,7 @@ msgstr "" "Hervé Quatremain,\n" "Irénée Thirion" -#: src/preferences.py:152 +#: src/preferences.py:176 msgid "Select Font" msgstr "Choisir la police" diff --git a/po/it.po b/po/it.po index a10d5b3..0d09692 100644 --- a/po/it.po +++ b/po/it.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: length\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-02 20:10+0200\n" +"POT-Creation-Date: 2025-09-20 14:53+0200\n" "PO-Revision-Date: 2025-07-02 20:18+0100\n" "Last-Translator: Albano Battistella\n" "Language-Team: Zorin OS\n" @@ -153,50 +153,84 @@ msgstr "" "a sinistra." #: data/io.github.herve4m.Length.gschema.xml.in:81 +msgid "Show the Ruler Markings" +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:82 +#, fuzzy +msgid "Display the ticks on the ruler." +msgstr "Mostra la posizione del puntatore sul righello." + +#: data/io.github.herve4m.Length.gschema.xml.in:87 +msgid "Show the Grid" +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:88 +msgid "Display a grid when the ruler is expanded." +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:93 +msgid "Show Dialogals" +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:94 +#, fuzzy +msgid "Display the diagonal rulers." +msgstr "Mostra la posizione del puntatore sul righello." + +#: data/io.github.herve4m.Length.gschema.xml.in:99 +msgid "Show Angles" +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:100 +msgid "Display the diagonal angles." +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:105 msgid "Use default font" msgstr "Utilizza il carattere predefinito" -#: data/io.github.herve4m.Length.gschema.xml.in:82 +#: data/io.github.herve4m.Length.gschema.xml.in:106 msgid "Whether to use the default font" msgstr "Se utilizzare o meno il carattere predefinito" -#: data/io.github.herve4m.Length.gschema.xml.in:87 +#: data/io.github.herve4m.Length.gschema.xml.in:111 msgid "Font Name" msgstr "Nome del carattere" -#: data/io.github.herve4m.Length.gschema.xml.in:88 +#: data/io.github.herve4m.Length.gschema.xml.in:112 msgid "The font to use when \"use-default-font\" is FALSE." msgstr "Carattere da utilizzare quando \"use-default-font\" è FALSE." -#: data/io.github.herve4m.Length.gschema.xml.in:95 +#: data/io.github.herve4m.Length.gschema.xml.in:119 msgid "Window Size" msgstr "Dimensione della finestra" -#: data/io.github.herve4m.Length.gschema.xml.in:96 +#: data/io.github.herve4m.Length.gschema.xml.in:120 msgid "Window size (width and height) of the last closed window." msgstr "Dimensioni (larghezza e altezza) dell'ultima finestra chiusa." -#: data/io.github.herve4m.Length.gschema.xml.in:103 +#: data/io.github.herve4m.Length.gschema.xml.in:127 msgid "Use default color scheme" msgstr "Utilizza la combinazione di colori predefinita" -#: data/io.github.herve4m.Length.gschema.xml.in:104 +#: data/io.github.herve4m.Length.gschema.xml.in:128 msgid "Whether to use the default color scheme" msgstr "Se utilizzare o meno la combinazione di colori predefinita" -#: data/io.github.herve4m.Length.gschema.xml.in:109 +#: data/io.github.herve4m.Length.gschema.xml.in:133 msgid "Foreground Color" msgstr "Colore di primo piano" -#: data/io.github.herve4m.Length.gschema.xml.in:110 +#: data/io.github.herve4m.Length.gschema.xml.in:134 msgid "Color (red, green, blue, alpha) for the ruler ticks and the labels" msgstr "Colore (rosso, verde, blu, alfa) dei segni sul righello" -#: data/io.github.herve4m.Length.gschema.xml.in:117 +#: data/io.github.herve4m.Length.gschema.xml.in:141 msgid "Background Color" msgstr "Colore di sfondo" -#: data/io.github.herve4m.Length.gschema.xml.in:118 +#: data/io.github.herve4m.Length.gschema.xml.in:142 msgid "Color (red, green, blue, alpha) for the ruler background" msgstr "Colore di sfondo del righello (rosso, verde, blu, alfa)" @@ -227,70 +261,101 @@ msgstr "Esci" #: data/ui/help-overlay.ui:63 msgctxt "shortcut window" +msgid "Layers" +msgstr "" + +#: data/ui/help-overlay.ui:66 +msgctxt "shortcut window" +msgid "Show/Hide Markings" +msgstr "" + +#: data/ui/help-overlay.ui:72 +msgctxt "shortcut window" +msgid "Show/Hide Grid" +msgstr "" + +#: data/ui/help-overlay.ui:78 +msgctxt "shortcut window" +msgid "Show/Hide Diagonals" +msgstr "" + +#: data/ui/help-overlay.ui:84 +msgctxt "shortcut window" +msgid "Show/Hide Angles" +msgstr "" + +#: data/ui/help-overlay.ui:90 +#, fuzzy +msgctxt "shortcut window" +msgid "Left-to-right/Right-to-left" +msgstr "Orientamento da sinistra a destra o da destra a sinistra" + +#: data/ui/help-overlay.ui:99 +msgctxt "shortcut window" msgid "Opacity" msgstr "Opacità" -#: data/ui/help-overlay.ui:66 +#: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Increase Opacity" msgstr "Aumenta l'opacità" -#: data/ui/help-overlay.ui:72 +#: data/ui/help-overlay.ui:108 msgctxt "shortcut window" msgid "Decrease Opacity" msgstr "Riduci l'opacità" -#: data/ui/help-overlay.ui:81 +#: data/ui/help-overlay.ui:117 msgctxt "shortcut window" msgid "Pointer Tracking" msgstr "Tracciamento del puntatore" -#: data/ui/help-overlay.ui:84 +#: data/ui/help-overlay.ui:120 msgctxt "shortcut window" msgid "Activate/Deactivate" msgstr "Abilita/Disabilita" -#: data/ui/help-overlay.ui:90 +#: data/ui/help-overlay.ui:126 msgctxt "shortcut window" msgid "Lock/Unlock Position" msgstr "Blocca/Sblocca la posizione" -#: data/ui/help-overlay.ui:99 +#: data/ui/help-overlay.ui:135 msgctxt "shortcut window" msgid "Units" msgstr "Unità" -#: data/ui/help-overlay.ui:102 +#: data/ui/help-overlay.ui:138 msgctxt "shortcut window" msgid "Pixels" msgstr "Pixel" -#: data/ui/help-overlay.ui:108 +#: data/ui/help-overlay.ui:144 msgctxt "shortcut window" msgid "Centimeters" msgstr "Centimetri" -#: data/ui/help-overlay.ui:114 +#: data/ui/help-overlay.ui:150 msgctxt "shortcut window" msgid "Inches" msgstr "Pollici" -#: data/ui/help-overlay.ui:120 +#: data/ui/help-overlay.ui:156 msgctxt "shortcut window" msgid "Picas" msgstr "" -#: data/ui/help-overlay.ui:126 +#: data/ui/help-overlay.ui:162 msgctxt "shortcut window" msgid "Points" msgstr "Points" -#: data/ui/help-overlay.ui:132 +#: data/ui/help-overlay.ui:168 msgctxt "shortcut window" msgid "Percentages" msgstr "Percentuali" -#: data/ui/help-overlay.ui:138 +#: data/ui/help-overlay.ui:174 msgctxt "shortcut window" msgid "Relative Percentages" msgstr "Percentuali relative" @@ -344,34 +409,54 @@ msgid "_Direction" msgstr "_Direzione" #: data/ui/preferences.ui:81 +msgid "Layers" +msgstr "" + +#: data/ui/preferences.ui:85 +msgid "Ruler _Markings" +msgstr "" + +#: data/ui/preferences.ui:93 +msgid "_Grid" +msgstr "" + +#: data/ui/preferences.ui:102 +msgid "D_iagonals" +msgstr "" + +#: data/ui/preferences.ui:110 +msgid "_Angles" +msgstr "" + +#: data/ui/preferences.ui:120 msgid "Appearance" msgstr "Aspetto" -#: data/ui/preferences.ui:85 +#: data/ui/preferences.ui:124 msgid "Use Default _Colors" msgstr "Utilizza il _colore predefinito" -#: data/ui/preferences.ui:97 +#: data/ui/preferences.ui:136 msgid "Foreground" msgstr "Primo piano" -#: data/ui/preferences.ui:112 +#: data/ui/preferences.ui:151 msgid "Background" msgstr "Sfondo" -#: data/ui/preferences.ui:130 +#: data/ui/preferences.ui:169 msgid "Use Default _Font" msgstr "Utilizza il carattere predefinito" -#: data/ui/preferences.ui:144 +#: data/ui/preferences.ui:183 msgid "Custom Font" msgstr "Carattere personalizzato" -#: data/ui/preferences.ui:173 +#: data/ui/preferences.ui:212 msgid "Calibrating" msgstr "Calibrazione" -#: data/ui/preferences.ui:177 +#: data/ui/preferences.ui:216 msgid "Displays" msgstr "Display" @@ -408,16 +493,19 @@ msgid "Monitor Size Unknown" msgstr "Dimensioni dello schermo sconosciute" #: src/draw_context.py:148 +#, python-brace-format msgid "" "The size of the {monitor_name} monitor cannot be determined.\n" "Use the Preferences dialog to calibrate Length for your monitor size.\n" "In the meantime, computations are done for a {diag_inch} inches monitor." msgstr "" "Impossibile determinare la dimensione del monitor {monitor_name}.\n" -"Utilizzare la finestra di dialogo Preferenze per calibrare la lunghezza in base alle dimensioni del monitor.\n" -"Nel frattempo, vengono eseguiti calcoli per un monitor da {diag_inch} pollici." +"Utilizzare la finestra di dialogo Preferenze per calibrare la lunghezza in " +"base alle dimensioni del monitor.\n" +"Nel frattempo, vengono eseguiti calcoli per un monitor da {diag_inch} " +"pollici." -#: src/draw_context.py:155 +#: src/draw_context.py:158 msgid "OK" msgstr "OK" @@ -427,7 +515,7 @@ msgstr "OK" msgid "translator-credits" msgstr "Albano Battistella" -#: src/preferences.py:152 +#: src/preferences.py:176 msgid "Select Font" msgstr "Scegli il carattere" diff --git a/po/length.pot b/po/length.pot index 6e11b4b..8befe37 100644 --- a/po/length.pot +++ b/po/length.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: length\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-02 20:10+0200\n" +"POT-Creation-Date: 2025-09-20 14:53+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -145,50 +145,82 @@ msgid "" msgstr "" #: data/io.github.herve4m.Length.gschema.xml.in:81 -msgid "Use default font" +msgid "Show the Ruler Markings" msgstr "" #: data/io.github.herve4m.Length.gschema.xml.in:82 -msgid "Whether to use the default font" +msgid "Display the ticks on the ruler." msgstr "" #: data/io.github.herve4m.Length.gschema.xml.in:87 -msgid "Font Name" +msgid "Show the Grid" msgstr "" #: data/io.github.herve4m.Length.gschema.xml.in:88 +msgid "Display a grid when the ruler is expanded." +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:93 +msgid "Show Dialogals" +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:94 +msgid "Display the diagonal rulers." +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:99 +msgid "Show Angles" +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:100 +msgid "Display the diagonal angles." +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:105 +msgid "Use default font" +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:106 +msgid "Whether to use the default font" +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:111 +msgid "Font Name" +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:112 msgid "The font to use when \"use-default-font\" is FALSE." msgstr "" -#: data/io.github.herve4m.Length.gschema.xml.in:95 +#: data/io.github.herve4m.Length.gschema.xml.in:119 msgid "Window Size" msgstr "" -#: data/io.github.herve4m.Length.gschema.xml.in:96 +#: data/io.github.herve4m.Length.gschema.xml.in:120 msgid "Window size (width and height) of the last closed window." msgstr "" -#: data/io.github.herve4m.Length.gschema.xml.in:103 +#: data/io.github.herve4m.Length.gschema.xml.in:127 msgid "Use default color scheme" msgstr "" -#: data/io.github.herve4m.Length.gschema.xml.in:104 +#: data/io.github.herve4m.Length.gschema.xml.in:128 msgid "Whether to use the default color scheme" msgstr "" -#: data/io.github.herve4m.Length.gschema.xml.in:109 +#: data/io.github.herve4m.Length.gschema.xml.in:133 msgid "Foreground Color" msgstr "" -#: data/io.github.herve4m.Length.gschema.xml.in:110 +#: data/io.github.herve4m.Length.gschema.xml.in:134 msgid "Color (red, green, blue, alpha) for the ruler ticks and the labels" msgstr "" -#: data/io.github.herve4m.Length.gschema.xml.in:117 +#: data/io.github.herve4m.Length.gschema.xml.in:141 msgid "Background Color" msgstr "" -#: data/io.github.herve4m.Length.gschema.xml.in:118 +#: data/io.github.herve4m.Length.gschema.xml.in:142 msgid "Color (red, green, blue, alpha) for the ruler background" msgstr "" @@ -219,70 +251,100 @@ msgstr "" #: data/ui/help-overlay.ui:63 msgctxt "shortcut window" -msgid "Opacity" +msgid "Layers" msgstr "" #: data/ui/help-overlay.ui:66 msgctxt "shortcut window" -msgid "Increase Opacity" +msgid "Show/Hide Markings" msgstr "" #: data/ui/help-overlay.ui:72 msgctxt "shortcut window" +msgid "Show/Hide Grid" +msgstr "" + +#: data/ui/help-overlay.ui:78 +msgctxt "shortcut window" +msgid "Show/Hide Diagonals" +msgstr "" + +#: data/ui/help-overlay.ui:84 +msgctxt "shortcut window" +msgid "Show/Hide Angles" +msgstr "" + +#: data/ui/help-overlay.ui:90 +msgctxt "shortcut window" +msgid "Left-to-right/Right-to-left" +msgstr "" + +#: data/ui/help-overlay.ui:99 +msgctxt "shortcut window" +msgid "Opacity" +msgstr "" + +#: data/ui/help-overlay.ui:102 +msgctxt "shortcut window" +msgid "Increase Opacity" +msgstr "" + +#: data/ui/help-overlay.ui:108 +msgctxt "shortcut window" msgid "Decrease Opacity" msgstr "" -#: data/ui/help-overlay.ui:81 +#: data/ui/help-overlay.ui:117 msgctxt "shortcut window" msgid "Pointer Tracking" msgstr "" -#: data/ui/help-overlay.ui:84 +#: data/ui/help-overlay.ui:120 msgctxt "shortcut window" msgid "Activate/Deactivate" msgstr "" -#: data/ui/help-overlay.ui:90 +#: data/ui/help-overlay.ui:126 msgctxt "shortcut window" msgid "Lock/Unlock Position" msgstr "" -#: data/ui/help-overlay.ui:99 +#: data/ui/help-overlay.ui:135 msgctxt "shortcut window" msgid "Units" msgstr "" -#: data/ui/help-overlay.ui:102 +#: data/ui/help-overlay.ui:138 msgctxt "shortcut window" msgid "Pixels" msgstr "" -#: data/ui/help-overlay.ui:108 +#: data/ui/help-overlay.ui:144 msgctxt "shortcut window" msgid "Centimeters" msgstr "" -#: data/ui/help-overlay.ui:114 +#: data/ui/help-overlay.ui:150 msgctxt "shortcut window" msgid "Inches" msgstr "" -#: data/ui/help-overlay.ui:120 +#: data/ui/help-overlay.ui:156 msgctxt "shortcut window" msgid "Picas" msgstr "" -#: data/ui/help-overlay.ui:126 +#: data/ui/help-overlay.ui:162 msgctxt "shortcut window" msgid "Points" msgstr "" -#: data/ui/help-overlay.ui:132 +#: data/ui/help-overlay.ui:168 msgctxt "shortcut window" msgid "Percentages" msgstr "" -#: data/ui/help-overlay.ui:138 +#: data/ui/help-overlay.ui:174 msgctxt "shortcut window" msgid "Relative Percentages" msgstr "" @@ -336,34 +398,54 @@ msgid "_Direction" msgstr "" #: data/ui/preferences.ui:81 -msgid "Appearance" +msgid "Layers" msgstr "" #: data/ui/preferences.ui:85 +msgid "Ruler _Markings" +msgstr "" + +#: data/ui/preferences.ui:93 +msgid "_Grid" +msgstr "" + +#: data/ui/preferences.ui:102 +msgid "D_iagonals" +msgstr "" + +#: data/ui/preferences.ui:110 +msgid "_Angles" +msgstr "" + +#: data/ui/preferences.ui:120 +msgid "Appearance" +msgstr "" + +#: data/ui/preferences.ui:124 msgid "Use Default _Colors" msgstr "" -#: data/ui/preferences.ui:97 +#: data/ui/preferences.ui:136 msgid "Foreground" msgstr "" -#: data/ui/preferences.ui:112 +#: data/ui/preferences.ui:151 msgid "Background" msgstr "" -#: data/ui/preferences.ui:130 +#: data/ui/preferences.ui:169 msgid "Use Default _Font" msgstr "" -#: data/ui/preferences.ui:144 +#: data/ui/preferences.ui:183 msgid "Custom Font" msgstr "" -#: data/ui/preferences.ui:173 +#: data/ui/preferences.ui:212 msgid "Calibrating" msgstr "" -#: data/ui/preferences.ui:177 +#: data/ui/preferences.ui:216 msgid "Displays" msgstr "" @@ -407,7 +489,7 @@ msgid "" "In the meantime, computations are done for a {diag_inch} inches monitor." msgstr "" -#: src/draw_context.py:155 +#: src/draw_context.py:158 msgid "OK" msgstr "" @@ -417,7 +499,7 @@ msgstr "" msgid "translator-credits" msgstr "" -#: src/preferences.py:152 +#: src/preferences.py:176 msgid "Select Font" msgstr "" diff --git a/po/nl.po b/po/nl.po index de6e49f..7183920 100644 --- a/po/nl.po +++ b/po/nl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: length\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-02 20:10+0200\n" +"POT-Creation-Date: 2025-09-20 14:53+0200\n" "PO-Revision-Date: 2025-03-15 18:22+0100\n" "Last-Translator: Heimen Stoffels \n" "Language-Team: \n" @@ -153,50 +153,84 @@ msgid "" msgstr "Toon de schaal van links naar rechts in plaats van andersom." #: data/io.github.herve4m.Length.gschema.xml.in:81 +msgid "Show the Ruler Markings" +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:82 +#, fuzzy +msgid "Display the ticks on the ruler." +msgstr "Toon de cursorlocatie op de liniaal." + +#: data/io.github.herve4m.Length.gschema.xml.in:87 +msgid "Show the Grid" +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:88 +msgid "Display a grid when the ruler is expanded." +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:93 +msgid "Show Dialogals" +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:94 +#, fuzzy +msgid "Display the diagonal rulers." +msgstr "Toon de cursorlocatie op de liniaal." + +#: data/io.github.herve4m.Length.gschema.xml.in:99 +msgid "Show Angles" +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:100 +msgid "Display the diagonal angles." +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:105 msgid "Use default font" msgstr "Standaardlettertype gebruiken" -#: data/io.github.herve4m.Length.gschema.xml.in:82 +#: data/io.github.herve4m.Length.gschema.xml.in:106 msgid "Whether to use the default font" msgstr "Of het standaardlettertype dient te worden gebruikt." -#: data/io.github.herve4m.Length.gschema.xml.in:87 +#: data/io.github.herve4m.Length.gschema.xml.in:111 msgid "Font Name" msgstr "Lettertypenaam" -#: data/io.github.herve4m.Length.gschema.xml.in:88 +#: data/io.github.herve4m.Length.gschema.xml.in:112 msgid "The font to use when \"use-default-font\" is FALSE." msgstr "De naam van het lettertype indien afwijkend." -#: data/io.github.herve4m.Length.gschema.xml.in:95 +#: data/io.github.herve4m.Length.gschema.xml.in:119 msgid "Window Size" msgstr "Vensterafmetingen" -#: data/io.github.herve4m.Length.gschema.xml.in:96 +#: data/io.github.herve4m.Length.gschema.xml.in:120 msgid "Window size (width and height) of the last closed window." msgstr "De vensterafmetingen (breedte en hoogte) van het vorige venster." -#: data/io.github.herve4m.Length.gschema.xml.in:103 +#: data/io.github.herve4m.Length.gschema.xml.in:127 msgid "Use default color scheme" msgstr "Standaardkleuren gebruiken" -#: data/io.github.herve4m.Length.gschema.xml.in:104 +#: data/io.github.herve4m.Length.gschema.xml.in:128 msgid "Whether to use the default color scheme" msgstr "Of de standaardkleuren dienen te worden gebruikt." -#: data/io.github.herve4m.Length.gschema.xml.in:109 +#: data/io.github.herve4m.Length.gschema.xml.in:133 msgid "Foreground Color" msgstr "Voorgrondkleur" -#: data/io.github.herve4m.Length.gschema.xml.in:110 +#: data/io.github.herve4m.Length.gschema.xml.in:134 msgid "Color (red, green, blue, alpha) for the ruler ticks and the labels" msgstr "Kleur (rood, groen, blauw, alfa) van de bediening en labels." -#: data/io.github.herve4m.Length.gschema.xml.in:117 +#: data/io.github.herve4m.Length.gschema.xml.in:141 msgid "Background Color" msgstr "Achtergrondkleur" -#: data/io.github.herve4m.Length.gschema.xml.in:118 +#: data/io.github.herve4m.Length.gschema.xml.in:142 msgid "Color (red, green, blue, alpha) for the ruler background" msgstr "Kleur (rood, groen, blauw, alfa) van de liniaalachtergrond." @@ -227,70 +261,101 @@ msgstr "Afsluiten" #: data/ui/help-overlay.ui:63 msgctxt "shortcut window" +msgid "Layers" +msgstr "" + +#: data/ui/help-overlay.ui:66 +msgctxt "shortcut window" +msgid "Show/Hide Markings" +msgstr "" + +#: data/ui/help-overlay.ui:72 +msgctxt "shortcut window" +msgid "Show/Hide Grid" +msgstr "" + +#: data/ui/help-overlay.ui:78 +msgctxt "shortcut window" +msgid "Show/Hide Diagonals" +msgstr "" + +#: data/ui/help-overlay.ui:84 +msgctxt "shortcut window" +msgid "Show/Hide Angles" +msgstr "" + +#: data/ui/help-overlay.ui:90 +#, fuzzy +msgctxt "shortcut window" +msgid "Left-to-right/Right-to-left" +msgstr "Van-links-naar-rechts of van-rechts-naar-links;" + +#: data/ui/help-overlay.ui:99 +msgctxt "shortcut window" msgid "Opacity" msgstr "Doorzichtigheid" -#: data/ui/help-overlay.ui:66 +#: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Increase Opacity" msgstr "Doorzichtigheid verhogen" -#: data/ui/help-overlay.ui:72 +#: data/ui/help-overlay.ui:108 msgctxt "shortcut window" msgid "Decrease Opacity" msgstr "Doorzichtigheid verlagen" -#: data/ui/help-overlay.ui:81 +#: data/ui/help-overlay.ui:117 msgctxt "shortcut window" msgid "Pointer Tracking" msgstr "Cursor volgen" -#: data/ui/help-overlay.ui:84 +#: data/ui/help-overlay.ui:120 msgctxt "shortcut window" msgid "Activate/Deactivate" msgstr "Aan/Uit" -#: data/ui/help-overlay.ui:90 +#: data/ui/help-overlay.ui:126 msgctxt "shortcut window" msgid "Lock/Unlock Position" msgstr "Locatie vastzetten/losmaken" -#: data/ui/help-overlay.ui:99 +#: data/ui/help-overlay.ui:135 msgctxt "shortcut window" msgid "Units" msgstr "Eenheden" -#: data/ui/help-overlay.ui:102 +#: data/ui/help-overlay.ui:138 msgctxt "shortcut window" msgid "Pixels" msgstr "Pixels" -#: data/ui/help-overlay.ui:108 +#: data/ui/help-overlay.ui:144 msgctxt "shortcut window" msgid "Centimeters" msgstr "Centimeters" -#: data/ui/help-overlay.ui:114 +#: data/ui/help-overlay.ui:150 msgctxt "shortcut window" msgid "Inches" msgstr "Inches" -#: data/ui/help-overlay.ui:120 +#: data/ui/help-overlay.ui:156 msgctxt "shortcut window" msgid "Picas" msgstr "Pica's" -#: data/ui/help-overlay.ui:126 +#: data/ui/help-overlay.ui:162 msgctxt "shortcut window" msgid "Points" msgstr "Punten" -#: data/ui/help-overlay.ui:132 +#: data/ui/help-overlay.ui:168 msgctxt "shortcut window" msgid "Percentages" msgstr "Percentages" -#: data/ui/help-overlay.ui:138 +#: data/ui/help-overlay.ui:174 #, fuzzy msgctxt "shortcut window" msgid "Relative Percentages" @@ -345,34 +410,54 @@ msgid "_Direction" msgstr "Rich_ting" #: data/ui/preferences.ui:81 +msgid "Layers" +msgstr "" + +#: data/ui/preferences.ui:85 +msgid "Ruler _Markings" +msgstr "" + +#: data/ui/preferences.ui:93 +msgid "_Grid" +msgstr "" + +#: data/ui/preferences.ui:102 +msgid "D_iagonals" +msgstr "" + +#: data/ui/preferences.ui:110 +msgid "_Angles" +msgstr "" + +#: data/ui/preferences.ui:120 msgid "Appearance" msgstr "Vormgeving" -#: data/ui/preferences.ui:85 +#: data/ui/preferences.ui:124 msgid "Use Default _Colors" msgstr "Standaard_kleuren gebruiken" -#: data/ui/preferences.ui:97 +#: data/ui/preferences.ui:136 msgid "Foreground" msgstr "Voorgrond" -#: data/ui/preferences.ui:112 +#: data/ui/preferences.ui:151 msgid "Background" msgstr "Achtergrond" -#: data/ui/preferences.ui:130 +#: data/ui/preferences.ui:169 msgid "Use Default _Font" msgstr "Standaardlettert_ype gebruiken" -#: data/ui/preferences.ui:144 +#: data/ui/preferences.ui:183 msgid "Custom Font" msgstr "Ander lettertype" -#: data/ui/preferences.ui:173 +#: data/ui/preferences.ui:212 msgid "Calibrating" msgstr "Calibreren" -#: data/ui/preferences.ui:177 +#: data/ui/preferences.ui:216 msgid "Displays" msgstr "Beeldschermen" @@ -417,7 +502,7 @@ msgid "" "In the meantime, computations are done for a {diag_inch} inches monitor." msgstr "Open het voorkeurenvenster om de schermafmetingen te bepalen." -#: src/draw_context.py:155 +#: src/draw_context.py:158 msgid "OK" msgstr "Oké" @@ -427,7 +512,7 @@ msgstr "Oké" msgid "translator-credits" msgstr "Heimen Stoffels " -#: src/preferences.py:152 +#: src/preferences.py:176 msgid "Select Font" msgstr "Kies een lettertype" diff --git a/po/ru.po b/po/ru.po index 0f7fc2f..9cb606b 100644 --- a/po/ru.po +++ b/po/ru.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: length\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-02 20:10+0200\n" +"POT-Creation-Date: 2025-09-20 14:53+0200\n" "PO-Revision-Date: 2025-07-05 20:02+0300\n" "Last-Translator: freeducks-debug \n" "Language-Team: \n" @@ -18,7 +18,8 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.6\n" -#: data/io.github.herve4m.Length.desktop.in.in:2 data/io.github.herve4m.Length.metainfo.xml.in.in:7 +#: data/io.github.herve4m.Length.desktop.in.in:2 +#: data/io.github.herve4m.Length.metainfo.xml.in.in:7 msgid "Length" msgstr "Линейка" @@ -26,7 +27,8 @@ msgstr "Линейка" msgid "Screen ruler" msgstr "Линейка для экрана" -#: data/io.github.herve4m.Length.desktop.in.in:4 data/io.github.herve4m.Length.metainfo.xml.in.in:8 +#: data/io.github.herve4m.Length.desktop.in.in:4 +#: data/io.github.herve4m.Length.metainfo.xml.in.in:8 msgid "Measure objects on screen" msgstr "Измеряйте объекты на экране" @@ -36,15 +38,18 @@ msgstr "GTK;GNOME;ruler;measure;screen;monitor;гтк;гном;линейка;и #: data/io.github.herve4m.Length.metainfo.xml.in.in:10 msgid "" -"GNOME application for measuring distances on screen to help you design and inspect layouts and graphics. Length " -"includes the following features:" +"GNOME application for measuring distances on screen to help you design and " +"inspect layouts and graphics. Length includes the following features:" msgstr "" -"Приложение для GNOME, которое может измерять дистанцию на экране, чтобы помогать вам создавать и изучать графику и " -"дизайн. \"Линейка\" имеет следующие возможности:" +"Приложение для GNOME, которое может измерять дистанцию на экране, чтобы " +"помогать вам создавать и изучать графику и дизайн. \"Линейка\" имеет " +"следующие возможности:" #: data/io.github.herve4m.Length.metainfo.xml.in.in:15 msgid "Pixels, centimeters, inches, picas, points, or percentages as units" -msgstr "Пиксели, сантиметры, дюймы, пики (пайки), точки или проценты в качестве единиц измерения" +msgstr "" +"Пиксели, сантиметры, дюймы, пики (пайки), точки или проценты в качестве " +"единиц измерения" #: data/io.github.herve4m.Length.metainfo.xml.in.in:16 msgid "Horizontal or vertical orientation" @@ -64,11 +69,13 @@ msgstr "Отслеживание позиции курсора" #: data/io.github.herve4m.Length.metainfo.xml.in.in:45 msgid "Horizontal view of Length with pixels as units" -msgstr "Горизонтальный просмотр \"Линейки\" с пикселями в качестве единицы измерения" +msgstr "" +"Горизонтальный просмотр \"Линейки\" с пикселями в качестве единицы измерения" #: data/io.github.herve4m.Length.metainfo.xml.in.in:49 msgid "Vertical view of Length with inches as units" -msgstr "Вертикальный просмотр \"Линейки\" с дюймами в качестве единицы измерения" +msgstr "" +"Вертикальный просмотр \"Линейки\" с дюймами в качестве единицы измерения" #: data/io.github.herve4m.Length.metainfo.xml.in.in:53 msgid "Length main menu" @@ -124,11 +131,11 @@ msgstr "Параметры калибрования монитора" #: data/io.github.herve4m.Length.gschema.xml.in:51 msgid "" -"For each monitor, specify whether to let the ruler retrieve the monitor size from the system, or use the provided " -"monitor size for the computations." +"For each monitor, specify whether to let the ruler retrieve the monitor size " +"from the system, or use the provided monitor size for the computations." msgstr "" -"Укажите для каждого монитора, стоит ли линейке получать размер монитора из системы или использовать заданный размер " -"монитора для расчетов." +"Укажите для каждого монитора, стоит ли линейке получать размер монитора из " +"системы или использовать заданный размер монитора для расчетов." #: data/io.github.herve4m.Length.gschema.xml.in:67 msgid "Ruler Unit" @@ -143,54 +150,91 @@ msgid "Direction from Left to Right" msgstr "Направление слева направо" #: data/io.github.herve4m.Length.gschema.xml.in:74 -msgid "Display the scale from left to right when TRUE, else from right to left." -msgstr "Отображать шкалу слева направо, если правда (TRUE), в ином случае справа налево." +msgid "" +"Display the scale from left to right when TRUE, else from right to left." +msgstr "" +"Отображать шкалу слева направо, если правда (TRUE), в ином случае справа " +"налево." #: data/io.github.herve4m.Length.gschema.xml.in:81 +msgid "Show the Ruler Markings" +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:82 +#, fuzzy +msgid "Display the ticks on the ruler." +msgstr "Показывать позицию курсора на линейке." + +#: data/io.github.herve4m.Length.gschema.xml.in:87 +msgid "Show the Grid" +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:88 +msgid "Display a grid when the ruler is expanded." +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:93 +msgid "Show Dialogals" +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:94 +#, fuzzy +msgid "Display the diagonal rulers." +msgstr "Показывать позицию курсора на линейке." + +#: data/io.github.herve4m.Length.gschema.xml.in:99 +msgid "Show Angles" +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:100 +msgid "Display the diagonal angles." +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:105 msgid "Use default font" msgstr "Использовать стандартный шрифт" -#: data/io.github.herve4m.Length.gschema.xml.in:82 +#: data/io.github.herve4m.Length.gschema.xml.in:106 msgid "Whether to use the default font" msgstr "Стоит ли использовать стандартный шрифт" -#: data/io.github.herve4m.Length.gschema.xml.in:87 +#: data/io.github.herve4m.Length.gschema.xml.in:111 msgid "Font Name" msgstr "Название шрифта" -#: data/io.github.herve4m.Length.gschema.xml.in:88 +#: data/io.github.herve4m.Length.gschema.xml.in:112 msgid "The font to use when \"use-default-font\" is FALSE." msgstr "Использовать этот шрифт, если \"use-default-font\" неправда (FALSE)" -#: data/io.github.herve4m.Length.gschema.xml.in:95 +#: data/io.github.herve4m.Length.gschema.xml.in:119 msgid "Window Size" msgstr "Размер окна" -#: data/io.github.herve4m.Length.gschema.xml.in:96 +#: data/io.github.herve4m.Length.gschema.xml.in:120 msgid "Window size (width and height) of the last closed window." msgstr "Размер окна (ширина и высота) последнего закрытого окна." -#: data/io.github.herve4m.Length.gschema.xml.in:103 +#: data/io.github.herve4m.Length.gschema.xml.in:127 msgid "Use default color scheme" msgstr "Использовать стандартные цвета" -#: data/io.github.herve4m.Length.gschema.xml.in:104 +#: data/io.github.herve4m.Length.gschema.xml.in:128 msgid "Whether to use the default color scheme" msgstr "Стоит ли использовать стандартные цвета" -#: data/io.github.herve4m.Length.gschema.xml.in:109 +#: data/io.github.herve4m.Length.gschema.xml.in:133 msgid "Foreground Color" msgstr "Цвет переднего фона" -#: data/io.github.herve4m.Length.gschema.xml.in:110 +#: data/io.github.herve4m.Length.gschema.xml.in:134 msgid "Color (red, green, blue, alpha) for the ruler ticks and the labels" msgstr "Цвет (красный, зеленый, синий, альфа) для обозначений и надписей" -#: data/io.github.herve4m.Length.gschema.xml.in:117 +#: data/io.github.herve4m.Length.gschema.xml.in:141 msgid "Background Color" msgstr "Цвет заднего фона" -#: data/io.github.herve4m.Length.gschema.xml.in:118 +#: data/io.github.herve4m.Length.gschema.xml.in:142 msgid "Color (red, green, blue, alpha) for the ruler background" msgstr "Цвет (красный, зеленый, синий, альфа) для заднего фона линейки" @@ -221,70 +265,101 @@ msgstr "Выйти" #: data/ui/help-overlay.ui:63 msgctxt "shortcut window" +msgid "Layers" +msgstr "" + +#: data/ui/help-overlay.ui:66 +msgctxt "shortcut window" +msgid "Show/Hide Markings" +msgstr "" + +#: data/ui/help-overlay.ui:72 +msgctxt "shortcut window" +msgid "Show/Hide Grid" +msgstr "" + +#: data/ui/help-overlay.ui:78 +msgctxt "shortcut window" +msgid "Show/Hide Diagonals" +msgstr "" + +#: data/ui/help-overlay.ui:84 +msgctxt "shortcut window" +msgid "Show/Hide Angles" +msgstr "" + +#: data/ui/help-overlay.ui:90 +#, fuzzy +msgctxt "shortcut window" +msgid "Left-to-right/Right-to-left" +msgstr "Ориентация слева направо или справа налево" + +#: data/ui/help-overlay.ui:99 +msgctxt "shortcut window" msgid "Opacity" msgstr "Прозрачность" -#: data/ui/help-overlay.ui:66 +#: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Increase Opacity" msgstr "Увеличить прозрачность" -#: data/ui/help-overlay.ui:72 +#: data/ui/help-overlay.ui:108 msgctxt "shortcut window" msgid "Decrease Opacity" msgstr "Уменьшить прозрачность" -#: data/ui/help-overlay.ui:81 +#: data/ui/help-overlay.ui:117 msgctxt "shortcut window" msgid "Pointer Tracking" msgstr "Отслеживание курсора" -#: data/ui/help-overlay.ui:84 +#: data/ui/help-overlay.ui:120 msgctxt "shortcut window" msgid "Activate/Deactivate" msgstr "Включить/выключить" -#: data/ui/help-overlay.ui:90 +#: data/ui/help-overlay.ui:126 msgctxt "shortcut window" msgid "Lock/Unlock Position" msgstr "Заблокировать/разблокировать позицию" -#: data/ui/help-overlay.ui:99 +#: data/ui/help-overlay.ui:135 msgctxt "shortcut window" msgid "Units" msgstr "Единицы измерения" -#: data/ui/help-overlay.ui:102 +#: data/ui/help-overlay.ui:138 msgctxt "shortcut window" msgid "Pixels" msgstr "Пиксели" -#: data/ui/help-overlay.ui:108 +#: data/ui/help-overlay.ui:144 msgctxt "shortcut window" msgid "Centimeters" msgstr "Сантиметры" -#: data/ui/help-overlay.ui:114 +#: data/ui/help-overlay.ui:150 msgctxt "shortcut window" msgid "Inches" msgstr "Дюймы" -#: data/ui/help-overlay.ui:120 +#: data/ui/help-overlay.ui:156 msgctxt "shortcut window" msgid "Picas" msgstr "Пики (пайки)" -#: data/ui/help-overlay.ui:126 +#: data/ui/help-overlay.ui:162 msgctxt "shortcut window" msgid "Points" msgstr "Точки" -#: data/ui/help-overlay.ui:132 +#: data/ui/help-overlay.ui:168 msgctxt "shortcut window" msgid "Percentages" msgstr "Проценты" -#: data/ui/help-overlay.ui:138 +#: data/ui/help-overlay.ui:174 msgctxt "shortcut window" msgid "Relative Percentages" msgstr "Относительные проценты" @@ -338,34 +413,54 @@ msgid "_Direction" msgstr "_Направление" #: data/ui/preferences.ui:81 +msgid "Layers" +msgstr "" + +#: data/ui/preferences.ui:85 +msgid "Ruler _Markings" +msgstr "" + +#: data/ui/preferences.ui:93 +msgid "_Grid" +msgstr "" + +#: data/ui/preferences.ui:102 +msgid "D_iagonals" +msgstr "" + +#: data/ui/preferences.ui:110 +msgid "_Angles" +msgstr "" + +#: data/ui/preferences.ui:120 msgid "Appearance" msgstr "Внешний вид" -#: data/ui/preferences.ui:85 +#: data/ui/preferences.ui:124 msgid "Use Default _Colors" msgstr "Использовать стандартные _цвета" -#: data/ui/preferences.ui:97 +#: data/ui/preferences.ui:136 msgid "Foreground" msgstr "Передний план" -#: data/ui/preferences.ui:112 +#: data/ui/preferences.ui:151 msgid "Background" msgstr "Задний план" -#: data/ui/preferences.ui:130 +#: data/ui/preferences.ui:169 msgid "Use Default _Font" msgstr "Использовать стандартный _шрифт" -#: data/ui/preferences.ui:144 +#: data/ui/preferences.ui:183 msgid "Custom Font" msgstr "Собственный шрифт" -#: data/ui/preferences.ui:173 +#: data/ui/preferences.ui:212 msgid "Calibrating" msgstr "Калибрование" -#: data/ui/preferences.ui:177 +#: data/ui/preferences.ui:216 msgid "Displays" msgstr "Экраны" @@ -409,10 +504,11 @@ msgid "" "In the meantime, computations are done for a {diag_inch} inches monitor." msgstr "" "Невозможно определить размер монитора \"{monitor_name}\".\n" -"Используйте окно настроек, чтобы откалибровать \"Линейку\" под размер вашего монитора.\n" +"Используйте окно настроек, чтобы откалибровать \"Линейку\" под размер вашего " +"монитора.\n" "Тем временем, выполнен расчет для {diag_inch} дюймового монитора." -#: src/draw_context.py:155 +#: src/draw_context.py:158 msgid "OK" msgstr "Хорошо" @@ -422,7 +518,7 @@ msgstr "Хорошо" msgid "translator-credits" msgstr "freeducks-debug" -#: src/preferences.py:152 +#: src/preferences.py:176 msgid "Select Font" msgstr "Выберите шрифт" diff --git a/po/uk.po b/po/uk.po index e28de41..cee2b4b 100644 --- a/po/uk.po +++ b/po/uk.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: length\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-02 20:10+0200\n" +"POT-Creation-Date: 2025-09-20 14:53+0200\n" "PO-Revision-Date: 2025-07-05 19:29+0300\n" "Last-Translator: freeducks-debug \n" "Language-Team: \n" @@ -154,51 +154,85 @@ msgstr "" "наліво." #: data/io.github.herve4m.Length.gschema.xml.in:81 +msgid "Show the Ruler Markings" +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:82 +#, fuzzy +msgid "Display the ticks on the ruler." +msgstr "Відображати позицію курсору на лінійці." + +#: data/io.github.herve4m.Length.gschema.xml.in:87 +msgid "Show the Grid" +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:88 +msgid "Display a grid when the ruler is expanded." +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:93 +msgid "Show Dialogals" +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:94 +#, fuzzy +msgid "Display the diagonal rulers." +msgstr "Відображати позицію курсору на лінійці." + +#: data/io.github.herve4m.Length.gschema.xml.in:99 +msgid "Show Angles" +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:100 +msgid "Display the diagonal angles." +msgstr "" + +#: data/io.github.herve4m.Length.gschema.xml.in:105 msgid "Use default font" msgstr "Використовувати стандартний шрифт" -#: data/io.github.herve4m.Length.gschema.xml.in:82 +#: data/io.github.herve4m.Length.gschema.xml.in:106 msgid "Whether to use the default font" msgstr "Чи слід використовувати стандартний шрифт" -#: data/io.github.herve4m.Length.gschema.xml.in:87 +#: data/io.github.herve4m.Length.gschema.xml.in:111 msgid "Font Name" msgstr "Назва шрифту" -#: data/io.github.herve4m.Length.gschema.xml.in:88 +#: data/io.github.herve4m.Length.gschema.xml.in:112 msgid "The font to use when \"use-default-font\" is FALSE." msgstr "" "Шрифт, який буде використовуватися якщо \"use-default-font\" НІ (FALSE)." -#: data/io.github.herve4m.Length.gschema.xml.in:95 +#: data/io.github.herve4m.Length.gschema.xml.in:119 msgid "Window Size" msgstr "Розмір вікна" -#: data/io.github.herve4m.Length.gschema.xml.in:96 +#: data/io.github.herve4m.Length.gschema.xml.in:120 msgid "Window size (width and height) of the last closed window." msgstr "Розмір вікна (ширина і висота) останнього закритого вікна." -#: data/io.github.herve4m.Length.gschema.xml.in:103 +#: data/io.github.herve4m.Length.gschema.xml.in:127 msgid "Use default color scheme" msgstr "Використовувати стандартні кольори" -#: data/io.github.herve4m.Length.gschema.xml.in:104 +#: data/io.github.herve4m.Length.gschema.xml.in:128 msgid "Whether to use the default color scheme" msgstr "Чи варто використовувати стандартні кольори" -#: data/io.github.herve4m.Length.gschema.xml.in:109 +#: data/io.github.herve4m.Length.gschema.xml.in:133 msgid "Foreground Color" msgstr "Колір переднього фону" -#: data/io.github.herve4m.Length.gschema.xml.in:110 +#: data/io.github.herve4m.Length.gschema.xml.in:134 msgid "Color (red, green, blue, alpha) for the ruler ticks and the labels" msgstr "Колір (червоний, зелений, синій, альфа) для позначок і написів" -#: data/io.github.herve4m.Length.gschema.xml.in:117 +#: data/io.github.herve4m.Length.gschema.xml.in:141 msgid "Background Color" msgstr "Колір фону" -#: data/io.github.herve4m.Length.gschema.xml.in:118 +#: data/io.github.herve4m.Length.gschema.xml.in:142 msgid "Color (red, green, blue, alpha) for the ruler background" msgstr "Колір (червоний, зелений, синій, альфа) для заднього фону лінійки" @@ -229,70 +263,101 @@ msgstr "Вийти" #: data/ui/help-overlay.ui:63 msgctxt "shortcut window" +msgid "Layers" +msgstr "" + +#: data/ui/help-overlay.ui:66 +msgctxt "shortcut window" +msgid "Show/Hide Markings" +msgstr "" + +#: data/ui/help-overlay.ui:72 +msgctxt "shortcut window" +msgid "Show/Hide Grid" +msgstr "" + +#: data/ui/help-overlay.ui:78 +msgctxt "shortcut window" +msgid "Show/Hide Diagonals" +msgstr "" + +#: data/ui/help-overlay.ui:84 +msgctxt "shortcut window" +msgid "Show/Hide Angles" +msgstr "" + +#: data/ui/help-overlay.ui:90 +#, fuzzy +msgctxt "shortcut window" +msgid "Left-to-right/Right-to-left" +msgstr "Напрямок зліва-направо або справа-наліво" + +#: data/ui/help-overlay.ui:99 +msgctxt "shortcut window" msgid "Opacity" msgstr "Прозорість" -#: data/ui/help-overlay.ui:66 +#: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Increase Opacity" msgstr "Збільшити прозорість" -#: data/ui/help-overlay.ui:72 +#: data/ui/help-overlay.ui:108 msgctxt "shortcut window" msgid "Decrease Opacity" msgstr "Зменшити прозорість" -#: data/ui/help-overlay.ui:81 +#: data/ui/help-overlay.ui:117 msgctxt "shortcut window" msgid "Pointer Tracking" msgstr "Відстежування курсору" -#: data/ui/help-overlay.ui:84 +#: data/ui/help-overlay.ui:120 msgctxt "shortcut window" msgid "Activate/Deactivate" msgstr "Ввімкнути/вимкнути" -#: data/ui/help-overlay.ui:90 +#: data/ui/help-overlay.ui:126 msgctxt "shortcut window" msgid "Lock/Unlock Position" msgstr "Заблокувати/розблокувати позицію" -#: data/ui/help-overlay.ui:99 +#: data/ui/help-overlay.ui:135 msgctxt "shortcut window" msgid "Units" msgstr "Одиниці вимірювання" -#: data/ui/help-overlay.ui:102 +#: data/ui/help-overlay.ui:138 msgctxt "shortcut window" msgid "Pixels" msgstr "Пікселі" -#: data/ui/help-overlay.ui:108 +#: data/ui/help-overlay.ui:144 msgctxt "shortcut window" msgid "Centimeters" msgstr "Сантиметри" -#: data/ui/help-overlay.ui:114 +#: data/ui/help-overlay.ui:150 msgctxt "shortcut window" msgid "Inches" msgstr "Дюйми" -#: data/ui/help-overlay.ui:120 +#: data/ui/help-overlay.ui:156 msgctxt "shortcut window" msgid "Picas" msgstr "Піка (Пайка)" -#: data/ui/help-overlay.ui:126 +#: data/ui/help-overlay.ui:162 msgctxt "shortcut window" msgid "Points" msgstr "Точки" -#: data/ui/help-overlay.ui:132 +#: data/ui/help-overlay.ui:168 msgctxt "shortcut window" msgid "Percentages" msgstr "Проценти" -#: data/ui/help-overlay.ui:138 +#: data/ui/help-overlay.ui:174 msgctxt "shortcut window" msgid "Relative Percentages" msgstr "Відносні проценти" @@ -346,34 +411,54 @@ msgid "_Direction" msgstr "_Напрямок" #: data/ui/preferences.ui:81 +msgid "Layers" +msgstr "" + +#: data/ui/preferences.ui:85 +msgid "Ruler _Markings" +msgstr "" + +#: data/ui/preferences.ui:93 +msgid "_Grid" +msgstr "" + +#: data/ui/preferences.ui:102 +msgid "D_iagonals" +msgstr "" + +#: data/ui/preferences.ui:110 +msgid "_Angles" +msgstr "" + +#: data/ui/preferences.ui:120 msgid "Appearance" msgstr "Зовнішній вигляд" -#: data/ui/preferences.ui:85 +#: data/ui/preferences.ui:124 msgid "Use Default _Colors" msgstr "Використовувати стандартні _кольори" -#: data/ui/preferences.ui:97 +#: data/ui/preferences.ui:136 msgid "Foreground" msgstr "Передній фон" -#: data/ui/preferences.ui:112 +#: data/ui/preferences.ui:151 msgid "Background" msgstr "Задній фон" -#: data/ui/preferences.ui:130 +#: data/ui/preferences.ui:169 msgid "Use Default _Font" msgstr "Використовувати стандартний _шрифт" -#: data/ui/preferences.ui:144 +#: data/ui/preferences.ui:183 msgid "Custom Font" msgstr "Власний шрифт" -#: data/ui/preferences.ui:173 +#: data/ui/preferences.ui:212 msgid "Calibrating" msgstr "Калібрування" -#: data/ui/preferences.ui:177 +#: data/ui/preferences.ui:216 msgid "Displays" msgstr "Монітори" @@ -421,7 +506,7 @@ msgstr "" "вашого монітору.\n" "Тим часом, був виконано розрахунок для {diag_inch} дюймового монітору." -#: src/draw_context.py:155 +#: src/draw_context.py:158 msgid "OK" msgstr "Добре" @@ -431,7 +516,7 @@ msgstr "Добре" msgid "translator-credits" msgstr "freeducks-debug" -#: src/preferences.py:152 +#: src/preferences.py:176 msgid "Select Font" msgstr "Обрати шрифт" diff --git a/src/window.py b/src/window.py index 8cd1d1b..60e0d40 100644 --- a/src/window.py +++ b/src/window.py @@ -226,7 +226,6 @@ def _on_key_pressed_event(self, event_ctrl_key, key_val, key_code, modifier_type v = self.settings.get_boolean("direction-left-to-right") self.settings.set_boolean("direction-left-to-right", not v) self.drawing_area.queue_draw() - # # You cannot programmatically rotate the window with Gtk 4. See # https://discourse.gnome.org/t/programmatically-set-window-size/31339/6 From ded7401543b47806c00fa7ebbf927a98ba33e65d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Quatremain?= Date: Sat, 20 Sep 2025 17:15:08 +0200 Subject: [PATCH 6/7] Update help --- help/C/adjusting.page | 2 +- help/C/calibrating.page | 2 +- help/C/colors.page | 4 +- help/C/direction.page | 4 +- help/C/figures/layer-angles.png | Bin 0 -> 19861 bytes help/C/figures/layer-diagonals.png | Bin 0 -> 44036 bytes help/C/figures/layer-grid.png | Bin 0 -> 8408 bytes help/C/figures/layer-markings.png | Bin 0 -> 8099 bytes help/C/figures/layer-preferences.png | Bin 0 -> 48442 bytes help/C/layers.page | 85 +++++++++++++++++++++++++++ help/C/offset.page | 2 +- help/C/resizing.page | 2 +- help/C/transparency.page | 2 +- help/C/units.page | 4 +- help/meson.build | 6 ++ 15 files changed, 103 insertions(+), 10 deletions(-) create mode 100644 help/C/figures/layer-angles.png create mode 100644 help/C/figures/layer-diagonals.png create mode 100644 help/C/figures/layer-grid.png create mode 100644 help/C/figures/layer-markings.png create mode 100644 help/C/figures/layer-preferences.png create mode 100644 help/C/layers.page diff --git a/help/C/adjusting.page b/help/C/adjusting.page index be661a5..f09b383 100644 --- a/help/C/adjusting.page +++ b/help/C/adjusting.page @@ -31,7 +31,7 @@

To align the ruler with the object's window, drag the ruler while pressing Ctrl. - When the ruler gets close to the object's edge, the rule snaps to the window. + When the ruler gets close to the object's edge, the ruler snaps to the window.

diff --git a/help/C/calibrating.page b/help/C/calibrating.page index 40a818c..bb123ee 100644 --- a/help/C/calibrating.page +++ b/help/C/calibrating.page @@ -35,7 +35,7 @@

In some environments, Length retrieves this information from the system. - Other environments to do provide that size. + Other environments do not provide that size. In that case, you must calibrate Length for you display:

diff --git a/help/C/colors.page b/help/C/colors.page index 2e8c0ff..fa3f40c 100644 --- a/help/C/colors.page +++ b/help/C/colors.page @@ -22,7 +22,7 @@ - Selecting the colors of the ruler. + Select the colors of the ruler. Changing Colors @@ -31,7 +31,7 @@

Length in different colors

-

You can change the color of ruler and the color of the markings.

+

You can change the color of the ruler and the color of the markings.

Click the menu button () in the left-side corner of the ruler.

diff --git a/help/C/direction.page b/help/C/direction.page index d381be1..bee8778 100644 --- a/help/C/direction.page +++ b/help/C/direction.page @@ -38,8 +38,10 @@

Go to Preferences.

-

In the General page, click the left-to-right direction button (), or the right-to-left button ().

+

In the General page, click the left-to-right direction button () or the right-to-left button ().

Close the Preferences dialog.

+ +

You can also switch direction by pressing D.

diff --git a/help/C/figures/layer-angles.png b/help/C/figures/layer-angles.png new file mode 100644 index 0000000000000000000000000000000000000000..6de59be6d30ec0a1b0ebe986544276bc55faa509 GIT binary patch literal 19861 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 literal 0 HcmV?d00001 diff --git a/help/C/figures/layer-diagonals.png b/help/C/figures/layer-diagonals.png new file mode 100644 index 0000000000000000000000000000000000000000..33ad4636d8fd90d3f62fef58d5b14d4f532db71e GIT binary patch literal 44036 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 literal 0 HcmV?d00001 diff --git a/help/C/figures/layer-grid.png b/help/C/figures/layer-grid.png new file mode 100644 index 0000000000000000000000000000000000000000..2d5528deb3fdcbcc9187efe92dfd4d491953df77 GIT binary patch literal 8408 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 literal 0 HcmV?d00001 diff --git a/help/C/figures/layer-preferences.png b/help/C/figures/layer-preferences.png new file mode 100644 index 0000000000000000000000000000000000000000..91ad7c0ed982a81d4420a51137f267d848f7ca74 GIT binary patch literal 48442 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 literal 0 HcmV?d00001 diff --git a/help/C/layers.page b/help/C/layers.page new file mode 100644 index 0000000..be49212 --- /dev/null +++ b/help/C/layers.page @@ -0,0 +1,85 @@ + + + + + + + + + Hervé Quatremain + 2025 + + + + + + + Select the measuring tools. + + + Selecting Measuring Tools + +

Length provide several measuring tools organized in layers.

+ +

The markings layer displays the rulers markings.

+ + +

Ruler's markings

+
+ +

To help you measure large objects when the ruler is expanded, you can activate the grid.

+ + +

Ruler's grid

+
+ +

The diagonal layer displays diagonals rulers.

+ + +

Diagonal rulers

+
+ +

Activate the angle layer to measure angles.

+ + +

Measuring angles

+
+ +

+ You can activate several layers for using several tools at the same time. + For example, the marking and grid layers are enabled by default. +

+ +

You activate layers from the Preferences menu.

+ + +

Click the menu button () in the left-side corner of the ruler.

+ +

Go to Preferences.

+ + +

In the General page, in the Layers section, use the checkboxes to enable or disable the layers.

+ +

Activating layers

+
+
+ +

Close the Preferences dialog.

+
+ +

Alternatively, use the keyboard shortcuts:

+ +

m for the marking layer

+

g for the grid layer

+

i for the diagonal layer

+

a for the angle layer

+
+
diff --git a/help/C/offset.page b/help/C/offset.page index 35349ab..b5aecee 100644 --- a/help/C/offset.page +++ b/help/C/offset.page @@ -25,7 +25,7 @@ Change the unit origin. - Changing the Offset + Setting an Offset

Changing the origin

diff --git a/help/C/resizing.page b/help/C/resizing.page index e84a277..cb3b5ec 100644 --- a/help/C/resizing.page +++ b/help/C/resizing.page @@ -32,7 +32,7 @@

- You can resize the ruler to adjust it to the object to measure. + You can resize the ruler for adjusting it to the object to measure. You resize the ruler by dragging the edges.

diff --git a/help/C/transparency.page b/help/C/transparency.page index 62b4a93..d046e4b 100644 --- a/help/C/transparency.page +++ b/help/C/transparency.page @@ -22,7 +22,7 @@ - Adjust the transparency to measure objects behind the ruler. + Adjust the transparency for measuring objects behind the ruler. Adjusting Transparency diff --git a/help/C/units.page b/help/C/units.page index ab66dda..2c183be 100644 --- a/help/C/units.page +++ b/help/C/units.page @@ -32,7 +32,7 @@

Changing the ruler's unit

-

Length comes in several units that you can select from the Preferences dialog.

+

Length comes with several units that you can select from the Preferences dialog.

Click the menu button () in the left-side corner of the ruler.

@@ -66,7 +66,7 @@ In that case, you must calibrate Length for you display.

- See for information on configuring Length for the size of your display. + See for more information about configuring Length for the size of your display.

diff --git a/help/meson.build b/help/meson.build index 6e73d63..a1ab521 100644 --- a/help/meson.build +++ b/help/meson.build @@ -5,6 +5,7 @@ help_files = [ 'direction.page', 'fonts.page', 'index.page', + 'layers.page', 'offset.page', 'rotating.page', 'resizing.page', @@ -24,6 +25,11 @@ help_media = [ 'figures/direction-ltr-symbolic.svg', 'figures/direction-rtl-symbolic.svg', 'figures/io.github.herve4m.Length.svg', + 'figures/layer-angles.png', + 'figures/layer-diagonals.png', + 'figures/layer-grid.png', + 'figures/layer-markings.png', + 'figures/layer-preferences.png', 'figures/offset.png', 'figures/open-menu-symbolic.svg', 'figures/orientation.png', From 5930beacc8663657c3c307b3b307b1e1bbf02682 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Quatremain?= Date: Sat, 20 Sep 2025 18:08:46 +0200 Subject: [PATCH 7/7] Update French translation --- ...o.github.herve4m.Length.metainfo.xml.in.in | 12 +- help/C/layers.page | 2 +- help/README-BUILD.md | 1 + help/fr/fr.po | 153 +++++++++++++++--- help/help.pot | 106 ++++++++++-- po/fr.po | 4 +- 6 files changed, 234 insertions(+), 44 deletions(-) diff --git a/data/io.github.herve4m.Length.metainfo.xml.in.in b/data/io.github.herve4m.Length.metainfo.xml.in.in index 1dd2e5d..98dc038 100644 --- a/data/io.github.herve4m.Length.metainfo.xml.in.in +++ b/data/io.github.herve4m.Length.metainfo.xml.in.in @@ -41,27 +41,27 @@ - https://raw.githubusercontent.com/herve4m/length/refs/tags/@version@/data/media/screenshots/horizontal-pixels.png + https://raw.githubusercontent.com/herve4m/length/main/data/media/screenshots/horizontal-pixels.png Horizontal view of Length with pixels as units - https://raw.githubusercontent.com/herve4m/length/refs/tags/@version@/data/media/screenshots/vertical-inches.png + https://raw.githubusercontent.com/herve4m/length/main/data/media/screenshots/vertical-inches.png Vertical view of Length with inches as units - https://raw.githubusercontent.com/herve4m/length/refs/tags/@version@/data/media/screenshots/menu.png + https://raw.githubusercontent.com/herve4m/length/main/data/media/screenshots/menu.png Length main menu - https://raw.githubusercontent.com/herve4m/length/refs/tags/@version@/data/media/screenshots/preferences.png + https://raw.githubusercontent.com/herve4m/length/main/data/media/screenshots/preferences.png Preferences window - https://raw.githubusercontent.com/herve4m/length/refs/tags/@version@/data/media/screenshots/track-pointer.png + https://raw.githubusercontent.com/herve4m/length/main/data/media/screenshots/track-pointer.png Pointer tracking enabled - https://raw.githubusercontent.com/herve4m/length/refs/tags/@version@/data/media/screenshots/right-to-left.png + https://raw.githubusercontent.com/herve4m/length/main/data/media/screenshots/right-to-left.png Right to left ruler orientation diff --git a/help/C/layers.page b/help/C/layers.page index be49212..86c180b 100644 --- a/help/C/layers.page +++ b/help/C/layers.page @@ -58,7 +58,7 @@ For example, the marking and grid layers are enabled by default.

-

You activate layers from the Preferences menu.

+

You activate layers from the Preferences dialog.

Click the menu button () in the left-side corner of the ruler.

diff --git a/help/README-BUILD.md b/help/README-BUILD.md index 9f55f90..73a5fbd 100644 --- a/help/README-BUILD.md +++ b/help/README-BUILD.md @@ -10,6 +10,7 @@ - Update the `help.pot` file from the pages in the `C` directory: ``` +$ cd help $ itstool -o help.pot ../help/C/*.page ``` diff --git a/help/fr/fr.po b/help/fr/fr.po index 3b1dfe6..81b2940 100644 --- a/help/fr/fr.po +++ b/help/fr/fr.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"POT-Creation-Date: 2025-09-19 14:22+0200\n" +"POT-Creation-Date: 2025-09-20 17:22+0200\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -12,10 +12,10 @@ msgstr "" #. (itstool) path: credit/years #: ../help/C/adjusting.page:13 ../help/C/calibrating.page:13 #: ../help/C/colors.page:13 ../help/C/direction.page:13 ../help/C/fonts.page:13 -#: ../help/C/index.page:17 ../help/C/offset.page:13 ../help/C/resizing.page:13 -#: ../help/C/rotating.page:13 ../help/C/scale.page:13 -#: ../help/C/tracking.page:13 ../help/C/transparency.page:13 -#: ../help/C/units.page:14 +#: ../help/C/index.page:17 ../help/C/layers.page:13 ../help/C/offset.page:13 +#: ../help/C/resizing.page:13 ../help/C/rotating.page:13 +#: ../help/C/scale.page:13 ../help/C/tracking.page:13 +#: ../help/C/transparency.page:13 ../help/C/units.page:14 msgid "2025" msgstr "" @@ -42,7 +42,7 @@ msgstr "" #: ../help/C/adjusting.page:32 msgid "" "To align the ruler with the object's window, drag the ruler while pressing " -"Ctrl. When the ruler gets close to the object's edge, the rule " +"Ctrl. When the ruler gets close to the object's edge, the ruler " "snaps to the window." msgstr "" "Déplacer la règle tout en appuyant sur Ctrl pour aligner la règle " @@ -132,17 +132,17 @@ msgstr "" #: ../help/C/calibrating.page:36 msgid "" "In some environments, Length retrieves this information from the " -"system. Other environments to do provide that size. In that case, you must " +"system. Other environments do not provide that size. In that case, you must " "calibrate Length for you display:" msgstr "" -"Dans certains environements, Longueur obtient l’information du " -"système. D’autres environements ne fournissent pas l’information. Dans ce " -"cas, indiquez à Longueur la taille de l’écran :" +"Pour certains environements, Longueur obtient cette information " +"du système. D’autres environements ne fournissent pas l’information. Dans ce " +"cas, vous devez calibrer Longueur pour votre écran." #. (itstool) path: item/p #: ../help/C/calibrating.page:43 ../help/C/colors.page:37 -#: ../help/C/direction.page:37 ../help/C/fonts.page:37 ../help/C/offset.page:37 -#: ../help/C/rotating.page:37 ../help/C/scale.page:40 +#: ../help/C/direction.page:37 ../help/C/fonts.page:37 ../help/C/layers.page:64 +#: ../help/C/offset.page:37 ../help/C/rotating.page:37 ../help/C/scale.page:40 #: ../help/C/tracking.page:41 ../help/C/transparency.page:40 #: ../help/C/units.page:38 msgid "" @@ -151,7 +151,8 @@ msgstr "Cliquer le menu (<_:media-1/>) dans le coin gauche de la règle." #. (itstool) path: item/p #: ../help/C/calibrating.page:45 ../help/C/colors.page:39 -#: ../help/C/direction.page:39 ../help/C/fonts.page:39 ../help/C/units.page:40 +#: ../help/C/direction.page:39 ../help/C/fonts.page:39 ../help/C/layers.page:66 +#: ../help/C/units.page:40 msgid "Go to Preferences." msgstr "Sélectionner Préférences." @@ -181,7 +182,8 @@ msgstr "" #. (itstool) path: item/p #: ../help/C/calibrating.page:58 ../help/C/colors.page:59 -#: ../help/C/direction.page:43 ../help/C/fonts.page:56 ../help/C/units.page:44 +#: ../help/C/direction.page:43 ../help/C/fonts.page:56 ../help/C/layers.page:75 +#: ../help/C/units.page:44 msgid "Close the Preferences dialog." msgstr "Fermer la fenêtre Préférences." @@ -199,7 +201,7 @@ msgstr "" #. (itstool) path: info/desc #: ../help/C/colors.page:25 -msgid "Selecting the colors of the ruler." +msgid "Select the colors of the ruler." msgstr "Sélectionner les couleurs de la règle." #. (itstool) path: page/title @@ -209,7 +211,7 @@ msgstr "Changer les couleurs" #. (itstool) path: page/p #: ../help/C/colors.page:34 -msgid "You can change the color of ruler and the color of the markings." +msgid "You can change the color of the ruler and the color of the markings." msgstr "Vous pouvez changer la couleur de la règle et de ses inscriptions." #. (itstool) path: item/p @@ -272,11 +274,16 @@ msgstr "Vous pouvez changer la direction des inscriptions." #: ../help/C/direction.page:41 msgid "" "In the General page, click the left-to-right " -"direction button (<_:media-1/>), or the right-to-left button (<_:media-2/>)." +"direction button (<_:media-1/>) or the right-to-left button (<_:media-2/>)." msgstr "" "Dans la page Général, cliquer le bouton gauche à " "droite (<_:media-1/>) ou le bouton droite à gauche (<_:media-2/>)." +#. (itstool) path: page/p +#: ../help/C/direction.page:46 +msgid "You can also switch direction by pressing D." +msgstr "Vous pouvez aussi changer la direction en appuyant sur D." + #. (itstool) path: info/desc #: ../help/C/fonts.page:25 msgid "Select a font the ruler markings." @@ -391,6 +398,95 @@ msgstr "Utiliser Longueur" msgid "Preferences" msgstr "Préférences" +#. (itstool) path: info/desc +#: ../help/C/layers.page:25 +msgid "Select the measuring tools." +msgstr "Choisir les outils de mesure." + +#. (itstool) path: page/title +#: ../help/C/layers.page:28 +msgid "Selecting Measuring Tools" +msgstr "Choisir les outils de mesure" + +#. (itstool) path: page/p +#: ../help/C/layers.page:30 +msgid "Length provide several measuring tools organized in layers." +msgstr "Longueur fournit plusieurs outils organisés en couches." + +#. (itstool) path: page/p +#: ../help/C/layers.page:32 +msgid "The markings layer displays the rulers markings." +msgstr "La couche des inscriptions affiche les marques sur la règle." + +#. (itstool) path: page/p +#: ../help/C/layers.page:38 +msgid "" +"To help you measure large objects when the ruler is expanded, you can " +"activate the grid." +msgstr "" +"Pour mesurer de grands objets quand la règle est étirée, activez la grille." + +#. (itstool) path: page/p +#: ../help/C/layers.page:44 +msgid "The diagonal layer displays diagonals rulers." +msgstr "La couche des diagonales affiche la règle en diagonale." + +#. (itstool) path: page/p +#: ../help/C/layers.page:50 +msgid "Activate the angle layer to measure angles." +msgstr "Activez la couche des angles pour mesurer des angles." + +#. (itstool) path: page/p +#: ../help/C/layers.page:56 +msgid "" +"You can activate several layers for using several tools at the same time. " +"For example, the marking and grid layers are enabled by default." +msgstr "" +"Vous pouvez activer plusieurs outils à la fois. " +"Les couches des inscriptions et de la grille sont toutes les deux " +"activées par défaut." + +#. (itstool) path: page/p +#: ../help/C/layers.page:61 +msgid "You activate layers from the Preferences dialog." +msgstr "Activez les outils via la fenêtre des Préférences." + +#. (itstool) path: item/p +#: ../help/C/layers.page:69 +msgid "" +"In the General page, in the Layers section, use the checkboxes to enable or " +"disable the layers." +msgstr "" +"Activez ou désactivez les outils dans la page Général, " +"dans la section Outils." + +#. (itstool) path: page/p +#: ../help/C/layers.page:78 +msgid "Alternatively, use the keyboard shortcuts:" +msgstr "" +"Vous pouvez aussi utiliser les racourcis clavier :" + +#. (itstool) path: item/p +#: ../help/C/layers.page:80 +msgid "m for the marking layer" +msgstr "m pour les inscriptions" + +#. (itstool) path: item/p +#: ../help/C/layers.page:81 +msgid "g for the grid layer" +msgstr "g pour la grille" + +#. (itstool) path: item/p +#: ../help/C/layers.page:82 +msgid "i for the diagonal layer" +msgstr "i pour les diagonales" + +#. (itstool) path: item/p +#: ../help/C/layers.page:83 +msgid "a for the angle layer" +msgstr "a pour les angles" + #. (itstool) path: info/desc #: ../help/C/offset.page:25 ../help/C/scale.page:25 msgid "Change the unit origin." @@ -398,7 +494,7 @@ msgstr "Changer le point d’origine" #. (itstool) path: page/title #: ../help/C/offset.page:28 -msgid "Changing the Offset" +msgid "Setting an Offset" msgstr "Ajouter un offset" #. (itstool) path: page/media @@ -440,8 +536,8 @@ msgstr "Redimentionner la règle" #. (itstool) path: page/p #: ../help/C/resizing.page:34 msgid "" -"You can resize the ruler to adjust it to the object to measure. You resize " -"the ruler by dragging the edges." +"You can resize the ruler for adjusting it to the object to measure. You " +"resize the ruler by dragging the edges." msgstr "" "Vous pouvez redimentionner la règle pour l’ajuster à l’objet à mesurer. " "Tirer les bords de la règle pour la redimentionner." @@ -573,7 +669,7 @@ msgstr "" #. (itstool) path: info/desc #: ../help/C/transparency.page:25 -msgid "Adjust the transparency to measure objects behind the ruler." +msgid "Adjust the transparency for measuring objects behind the ruler." msgstr "Ajuster la transparence pour mesurer les objets derrière la règle." #. (itstool) path: page/title @@ -659,7 +755,7 @@ msgstr "Changer l’unité de la règle" #. (itstool) path: page/p #: ../help/C/units.page:35 msgid "" -"Length comes in several units that you can select from the " +"Length comes with several units that you can select from the " "Preferences dialog." msgstr "" "Longueur supporte plusieurs unités que vous pouvez sélectionner " @@ -734,12 +830,21 @@ msgstr "" #. (itstool) path: note/p #: ../help/C/units.page:68 msgid "" -"See for information on configuring Length for the size of your display." +"See for more information about configuring " +"Length for the size of your display." msgstr "" "Voir pour configurer Longueur pour " "la taille de votre écran." +#~ msgid "" +#~ "In some environments, Length retrieves this information from " +#~ "the system. Other environments to do provide that size. In that case, you " +#~ "must calibrate Length for you display:" +#~ msgstr "" +#~ "Dans certains environements, Longueur obtient l’information du " +#~ "système. D’autres environements ne fournissent pas l’information. Dans ce " +#~ "cas, indiquez à Longueur la taille de l’écran :" + #~ msgid "" #~ "To lock the position of the tracker, press P. Press P again to unlock the tracker. Alternatively, use the middle mouse " diff --git a/help/help.pot b/help/help.pot index 577b8a3..6e5882f 100644 --- a/help/help.pot +++ b/help/help.pot @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2025-09-19 14:22+0200\n" +"POT-Creation-Date: 2025-09-20 17:22+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,6 +21,7 @@ msgstr "" #: ../help/C/direction.page:13 #: ../help/C/fonts.page:13 #: ../help/C/index.page:17 +#: ../help/C/layers.page:13 #: ../help/C/offset.page:13 #: ../help/C/resizing.page:13 #: ../help/C/rotating.page:13 @@ -48,7 +49,7 @@ msgstr "" #. (itstool) path: page/p #: ../help/C/adjusting.page:32 -msgid "To align the ruler with the object's window, drag the ruler while pressing Ctrl. When the ruler gets close to the object's edge, the rule snaps to the window." +msgid "To align the ruler with the object's window, drag the ruler while pressing Ctrl. When the ruler gets close to the object's edge, the ruler snaps to the window." msgstr "" #. (itstool) path: page/p @@ -113,7 +114,7 @@ msgstr "" #. (itstool) path: page/p #: ../help/C/calibrating.page:36 -msgid "In some environments, Length retrieves this information from the system. Other environments to do provide that size. In that case, you must calibrate Length for you display:" +msgid "In some environments, Length retrieves this information from the system. Other environments do not provide that size. In that case, you must calibrate Length for you display:" msgstr "" #. (itstool) path: item/p @@ -121,6 +122,7 @@ msgstr "" #: ../help/C/colors.page:37 #: ../help/C/direction.page:37 #: ../help/C/fonts.page:37 +#: ../help/C/layers.page:64 #: ../help/C/offset.page:37 #: ../help/C/rotating.page:37 #: ../help/C/scale.page:40 @@ -135,6 +137,7 @@ msgstr "" #: ../help/C/colors.page:39 #: ../help/C/direction.page:39 #: ../help/C/fonts.page:39 +#: ../help/C/layers.page:66 #: ../help/C/units.page:40 msgid "Go to Preferences." msgstr "" @@ -154,6 +157,7 @@ msgstr "" #: ../help/C/colors.page:59 #: ../help/C/direction.page:43 #: ../help/C/fonts.page:56 +#: ../help/C/layers.page:75 #: ../help/C/units.page:44 msgid "Close the Preferences dialog." msgstr "" @@ -165,7 +169,7 @@ msgstr "" #. (itstool) path: info/desc #: ../help/C/colors.page:25 -msgid "Selecting the colors of the ruler." +msgid "Select the colors of the ruler." msgstr "" #. (itstool) path: page/title @@ -175,7 +179,7 @@ msgstr "" #. (itstool) path: page/p #: ../help/C/colors.page:34 -msgid "You can change the color of ruler and the color of the markings." +msgid "You can change the color of the ruler and the color of the markings." msgstr "" #. (itstool) path: item/p @@ -210,7 +214,12 @@ msgstr "" #. (itstool) path: item/p #: ../help/C/direction.page:41 -msgid "In the General page, click the left-to-right direction button (<_:media-1/>), or the right-to-left button (<_:media-2/>)." +msgid "In the General page, click the left-to-right direction button (<_:media-1/>) or the right-to-left button (<_:media-2/>)." +msgstr "" + +#. (itstool) path: page/p +#: ../help/C/direction.page:46 +msgid "You can also switch direction by pressing D." msgstr "" #. (itstool) path: info/desc @@ -306,6 +315,81 @@ msgstr "" msgid "Preferences" msgstr "" +#. (itstool) path: info/desc +#: ../help/C/layers.page:25 +msgid "Select the measuring tools." +msgstr "" + +#. (itstool) path: page/title +#: ../help/C/layers.page:28 +msgid "Selecting Measuring Tools" +msgstr "" + +#. (itstool) path: page/p +#: ../help/C/layers.page:30 +msgid "Length provide several measuring tools organized in layers." +msgstr "" + +#. (itstool) path: page/p +#: ../help/C/layers.page:32 +msgid "The markings layer displays the rulers markings." +msgstr "" + +#. (itstool) path: page/p +#: ../help/C/layers.page:38 +msgid "To help you measure large objects when the ruler is expanded, you can activate the grid." +msgstr "" + +#. (itstool) path: page/p +#: ../help/C/layers.page:44 +msgid "The diagonal layer displays diagonals rulers." +msgstr "" + +#. (itstool) path: page/p +#: ../help/C/layers.page:50 +msgid "Activate the angle layer to measure angles." +msgstr "" + +#. (itstool) path: page/p +#: ../help/C/layers.page:56 +msgid "You can activate several layers for using several tools at the same time. For example, the marking and grid layers are enabled by default." +msgstr "" + +#. (itstool) path: page/p +#: ../help/C/layers.page:61 +msgid "You activate layers from the Preferences dialog." +msgstr "" + +#. (itstool) path: item/p +#: ../help/C/layers.page:69 +msgid "In the General page, in the Layers section, use the checkboxes to enable or disable the layers." +msgstr "" + +#. (itstool) path: page/p +#: ../help/C/layers.page:78 +msgid "Alternatively, use the keyboard shortcuts:" +msgstr "" + +#. (itstool) path: item/p +#: ../help/C/layers.page:80 +msgid "m for the marking layer" +msgstr "" + +#. (itstool) path: item/p +#: ../help/C/layers.page:81 +msgid "g for the grid layer" +msgstr "" + +#. (itstool) path: item/p +#: ../help/C/layers.page:82 +msgid "i for the diagonal layer" +msgstr "" + +#. (itstool) path: item/p +#: ../help/C/layers.page:83 +msgid "a for the angle layer" +msgstr "" + #. (itstool) path: info/desc #: ../help/C/offset.page:25 #: ../help/C/scale.page:25 @@ -314,7 +398,7 @@ msgstr "" #. (itstool) path: page/title #: ../help/C/offset.page:28 -msgid "Changing the Offset" +msgid "Setting an Offset" msgstr "" #. (itstool) path: page/media @@ -354,7 +438,7 @@ msgstr "" #. (itstool) path: page/p #: ../help/C/resizing.page:34 -msgid "You can resize the ruler to adjust it to the object to measure. You resize the ruler by dragging the edges." +msgid "You can resize the ruler for adjusting it to the object to measure. You resize the ruler by dragging the edges." msgstr "" #. (itstool) path: info/desc @@ -459,7 +543,7 @@ msgstr "" #. (itstool) path: info/desc #: ../help/C/transparency.page:25 -msgid "Adjust the transparency to measure objects behind the ruler." +msgid "Adjust the transparency for measuring objects behind the ruler." msgstr "" #. (itstool) path: page/title @@ -524,7 +608,7 @@ msgstr "" #. (itstool) path: page/p #: ../help/C/units.page:35 -msgid "Length comes in several units that you can select from the Preferences dialog." +msgid "Length comes with several units that you can select from the Preferences dialog." msgstr "" #. (itstool) path: item/p @@ -584,5 +668,5 @@ msgstr "" #. (itstool) path: note/p #: ../help/C/units.page:68 -msgid "See for information on configuring Length for the size of your display." +msgid "See for more information about configuring Length for the size of your display." msgstr "" diff --git a/po/fr.po b/po/fr.po index 68d8878..0650dbf 100644 --- a/po/fr.po +++ b/po/fr.po @@ -261,7 +261,7 @@ msgstr "Quitter" #: data/ui/help-overlay.ui:63 msgctxt "shortcut window" msgid "Layers" -msgstr "Couches" +msgstr "Outils" #: data/ui/help-overlay.ui:66 msgctxt "shortcut window" @@ -408,7 +408,7 @@ msgstr "_Direction" #: data/ui/preferences.ui:81 msgid "Layers" -msgstr "Couches" +msgstr "Outils" #: data/ui/preferences.ui:85 msgid "Ruler _Markings"