1
0
mirror of synced 2024-11-24 18:24:23 +01:00

Implement code for internationalization

This commit is contained in:
jvoisin 2021-11-12 20:10:57 +01:00
parent 708841f9f5
commit 0c91ac7367

View File

@ -16,6 +16,7 @@ import queue
import threading import threading
from typing import Tuple, Optional, List from typing import Tuple, Optional, List
from urllib.parse import unquote from urllib.parse import unquote
import gettext
import gi import gi
gi.require_version('Nautilus', '3.0') 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 from libmat2 import parser_factory
_ = gettext.gettext
def _remove_metadata(fpath) -> Tuple[bool, Optional[str]]: def _remove_metadata(fpath) -> Tuple[bool, Optional[str]]:
""" This is a simple wrapper around libmat2, because it's """ 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.set_show_close_button(True)
self.infobar_hbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) self.infobar_hbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL)
btn = Gtk.Button("Show") btn = Gtk.Button(_("Show"))
btn.connect("clicked", self.__cb_show_failed) btn.connect("clicked", self.__cb_show_failed)
self.infobar_hbox.pack_end(btn, False, False, 0) 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_hbox.pack_start(infobar_msg, False, False, 0)
self.infobar.get_content_area().pack_start(self.infobar_hbox, True, True, 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() window = Gtk.Window()
headerbar = Gtk.HeaderBar() headerbar = Gtk.HeaderBar()
window.set_titlebar(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()) close_buton.connect("clicked", lambda _: window.close())
headerbar.pack_end(close_buton) 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. """ Validate if a given file FileInfo `fileinfo` can be processed.
Returns a boolean, and a textreason why""" Returns a boolean, and a textreason why"""
if fileinfo.get_uri_scheme() != "file" or fileinfo.is_directory(): 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(): elif not fileinfo.can_write():
return False, "Not writeable" return False, _("Not writeable")
return True, "" return True, ""
def __create_treeview(self) -> Gtk.TreeView: 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) column_pixbuf = Gtk.TreeViewColumn("Icon", renderer_pixbuf, pixbuf=0)
treeview.append_column(column_pixbuf) treeview.append_column(column_pixbuf)
for idx, name in enumerate(['File', 'Reason']): for idx, name in enumerate([_('File'), _('Reason')]):
renderer_text = Gtk.CellRendererText() renderer_text = Gtk.CellRendererText()
column_text = Gtk.TreeViewColumn(name, renderer_text, text=idx+1) column_text = Gtk.TreeViewColumn(name, renderer_text, text=idx+1)
treeview.append_column(column_text) treeview.append_column(column_text)
@ -180,7 +183,7 @@ class Mat2Extension(GObject.GObject, Nautilus.MenuProvider, Nautilus.LocationWid
return False return False
progressbar.pulse() progressbar.pulse()
progressbar.set_text("Cleaning %s" % fname) progressbar.set_text(_("Cleaning %s") % fname)
progressbar.show_all() progressbar.show_all()
self.infobar_hbox.show_all() self.infobar_hbox.show_all()
self.infobar.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` fpath = unquote(fileinfo.get_uri()[7:]) # `len('file://') = 7`
success, mtype = _remove_metadata(fpath) success, mtype = _remove_metadata(fpath)
if not success: 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 processing_queue.put(None) # signal that we processed all the files
return True return True
@ -236,8 +239,8 @@ class Mat2Extension(GObject.GObject, Nautilus.MenuProvider, Nautilus.LocationWid
item = Nautilus.MenuItem( item = Nautilus.MenuItem(
name="mat2::Remove_metadata", name="mat2::Remove_metadata",
label="Remove metadata", label=_("Remove metadata"),
tip="Remove metadata" tip=_("Remove metadata")
) )
item.connect('activate', self.__cb_menu_activate, files) item.connect('activate', self.__cb_menu_activate, files)