From 0c91ac7367ba3a859a7ba08d4ca586538748a5c4 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Fri, 12 Nov 2021 20:10:57 +0100 Subject: [PATCH] Implement code for internationalization --- nautilus/mat2.py | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/nautilus/mat2.py b/nautilus/mat2.py index 9ed6c2d..11e6986 100644 --- a/nautilus/mat2.py +++ b/nautilus/mat2.py @@ -16,6 +16,7 @@ import queue import threading from typing import Tuple, Optional, List from urllib.parse import unquote +import gettext import gi gi.require_version('Nautilus', '3.0') @@ -25,6 +26,8 @@ from gi.repository import Nautilus, GObject, Gtk, Gio, GLib, GdkPixbuf from libmat2 import parser_factory +_ = gettext.gettext + def _remove_metadata(fpath) -> Tuple[bool, Optional[str]]: """ This is a simple wrapper around libmat2, because it's @@ -51,11 +54,11 @@ class Mat2Extension(GObject.GObject, Nautilus.MenuProvider, Nautilus.LocationWid self.infobar.set_show_close_button(True) self.infobar_hbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) - btn = Gtk.Button("Show") + btn = Gtk.Button(_("Show")) btn.connect("clicked", self.__cb_show_failed) self.infobar_hbox.pack_end(btn, False, False, 0) - infobar_msg = Gtk.Label("Failed to clean some items") + infobar_msg = Gtk.Label(_("Failed to clean some items")) self.infobar_hbox.pack_start(infobar_msg, False, False, 0) self.infobar.get_content_area().pack_start(self.infobar_hbox, True, True, 0) @@ -90,9 +93,9 @@ class Mat2Extension(GObject.GObject, Nautilus.MenuProvider, Nautilus.LocationWid window = Gtk.Window() headerbar = Gtk.HeaderBar() window.set_titlebar(headerbar) - headerbar.props.title = "Metadata removal failed" + headerbar.props.title = _("Metadata removal failed") - close_buton = Gtk.Button("Close") + close_buton = Gtk.Button(_("Close")) close_buton.connect("clicked", lambda _: window.close()) headerbar.pack_end(close_buton) @@ -107,9 +110,9 @@ class Mat2Extension(GObject.GObject, Nautilus.MenuProvider, Nautilus.LocationWid """ Validate if a given file FileInfo `fileinfo` can be processed. Returns a boolean, and a textreason why""" if fileinfo.get_uri_scheme() != "file" or fileinfo.is_directory(): - return False, "Not a file" + return False, _("Not a file") elif not fileinfo.can_write(): - return False, "Not writeable" + return False, _("Not writeable") return True, "" def __create_treeview(self) -> Gtk.TreeView: @@ -120,7 +123,7 @@ class Mat2Extension(GObject.GObject, Nautilus.MenuProvider, Nautilus.LocationWid column_pixbuf = Gtk.TreeViewColumn("Icon", renderer_pixbuf, pixbuf=0) treeview.append_column(column_pixbuf) - for idx, name in enumerate(['File', 'Reason']): + for idx, name in enumerate([_('File'), _('Reason')]): renderer_text = Gtk.CellRendererText() column_text = Gtk.TreeViewColumn(name, renderer_text, text=idx+1) treeview.append_column(column_text) @@ -180,7 +183,7 @@ class Mat2Extension(GObject.GObject, Nautilus.MenuProvider, Nautilus.LocationWid return False progressbar.pulse() - progressbar.set_text("Cleaning %s" % fname) + progressbar.set_text(_("Cleaning %s") % fname) progressbar.show_all() self.infobar_hbox.show_all() self.infobar.show_all() @@ -202,7 +205,7 @@ class Mat2Extension(GObject.GObject, Nautilus.MenuProvider, Nautilus.LocationWid fpath = unquote(fileinfo.get_uri()[7:]) # `len('file://') = 7` success, mtype = _remove_metadata(fpath) if not success: - self.failed_items.append((fname, mtype, 'Unsupported/invalid')) + self.failed_items.append((fname, mtype, _('Unsupported/invalid'))) processing_queue.put(None) # signal that we processed all the files return True @@ -236,8 +239,8 @@ class Mat2Extension(GObject.GObject, Nautilus.MenuProvider, Nautilus.LocationWid item = Nautilus.MenuItem( name="mat2::Remove_metadata", - label="Remove metadata", - tip="Remove metadata" + label=_("Remove metadata"), + tip=_("Remove metadata") ) item.connect('activate', self.__cb_menu_activate, files)