diff --git a/ks_includes/config.py b/ks_includes/config.py index 0fdf262f..eb93473c 100644 --- a/ks_includes/config.py +++ b/ks_includes/config.py @@ -352,9 +352,9 @@ class KlipperScreenConfig: hour = num // 3600 minute = num // 60 if hour > 0: - name = f'{hour} ' + gettext.ngettext("hour", "hours", hour) + name = f'{hour} ' + ngettext("hour", "hours", hour) else: - name = f'{minute} ' + gettext.ngettext("minute", "minutes", minute) + name = f'{minute} ' + ngettext("minute", "minutes", minute) self.configurable_options[i1]['screen_blanking']['options'].append({ "name": name, "value": f"{num}" diff --git a/ks_includes/screen_panel.py b/ks_includes/screen_panel.py index d62f314e..aaaf83e8 100644 --- a/ks_includes/screen_panel.py +++ b/ks_includes/screen_panel.py @@ -129,15 +129,19 @@ class ScreenPanel: if seconds is None or seconds < 1: return "-" days = seconds // 86400 + day_units = ngettext("day", "days", days) seconds %= 86400 hours = seconds // 3600 + hour_units = ngettext("hour", "hours", hours) seconds %= 3600 minutes = round(seconds / 60) + min_units = ngettext("minute", "minutes", minutes) seconds %= 60 - return f"{f'{days:2.0f}d ' if days > 0 else ''}" \ - f"{f'{hours:2.0f}h ' if hours > 0 else ''}" \ - f"{f'{minutes:2.0f}m ' if minutes > 0 else ''}" \ - f"{f'{seconds:2.0f}s' if days == 0 and hours == 0 and minutes == 0 else ''}" + sec_units = ngettext("second", "seconds", seconds) + return f"{f'{days:2.0f} {day_units} ' if days > 0 else ''}" \ + f"{f'{hours:2.0f} {hour_units} ' if hours > 0 else ''}" \ + f"{f'{minutes:2.0f} {min_units} ' if minutes > 0 and days == 0 else ''}" \ + f"{f'{seconds:2.0f} {sec_units}' if days == 0 and hours == 0 and minutes == 0 else ''}" def format_eta(self, total, elapsed): if total is None: diff --git a/panels/job_status.py b/panels/job_status.py index bb0ecfd0..dba59c66 100644 --- a/panels/job_status.py +++ b/panels/job_status.py @@ -605,6 +605,7 @@ class Panel(ScreenPanel): self.labels["duration"].set_label(self.format_time(total_duration)) elapsed_label = f"{self.labels['elapsed'].get_text()} {self.labels['duration'].get_text()}" self.buttons['elapsed'].set_label(elapsed_label) + find_widget(self.buttons['elapsed'], Gtk.Label).set_ellipsize(Pango.EllipsizeMode.END) estimated = slicer_time = filament_time = file_time = 0 timeleft_type = self._config.get_config()['main'].get('print_estimate_method', 'auto') @@ -651,6 +652,7 @@ class Panel(ScreenPanel): self.labels["time_left"].set_label(self.format_eta(estimated, print_duration)) remaining_label = f"{self.labels['left'].get_text()} {self.labels['time_left'].get_text()}" self.buttons['left'].set_label(remaining_label) + find_widget(self.buttons['left'], Gtk.Label).set_ellipsize(Pango.EllipsizeMode.END) self.update_progress(progress) def update_progress(self, progress: float):