From 9d4e571d8993143d7c1bde1839a84c29895b827a Mon Sep 17 00:00:00 2001 From: DYefremov Date: Fri, 2 Mar 2018 17:06:53 +0300 Subject: [PATCH] added local translation --- app/ui/__init__.py | 7 +++++++ app/ui/dialogs.py | 4 ++-- app/ui/download_dialog.py | 4 ++-- app/ui/lang/ru/LC_MESSAGES/demon-editor.mo | Bin 0 -> 6261 bytes app/ui/picons_dialog.py | 4 ++-- app/ui/satellites_dialog.py | 8 ++++---- app/ui/service_details_dialog.py | 8 ++++---- app/ui/settings_dialog.py | 4 ++-- 8 files changed, 23 insertions(+), 16 deletions(-) create mode 100644 app/ui/lang/ru/LC_MESSAGES/demon-editor.mo diff --git a/app/ui/__init__.py b/app/ui/__init__.py index 811757c8..fad47d8d 100644 --- a/app/ui/__init__.py +++ b/app/ui/__init__.py @@ -1,3 +1,5 @@ +import locale + import gi import os @@ -7,6 +9,11 @@ from gi.repository import Gtk, Gdk # path to *.glade files UI_RESOURCES_PATH = "app/ui/" if os.path.exists("app/ui/") else "/usr/share/demoneditor/app/ui/" +# translation +TEXT_DOMAIN = "demon-editor" +LANG_DIR = UI_RESOURCES_PATH + "lang" +locale.bindtextdomain(TEXT_DOMAIN, UI_RESOURCES_PATH + "lang") + theme = Gtk.IconTheme.get_default() _IMAGE_MISSING = theme.load_icon("image-missing", 16, 0) if theme.lookup_icon("image-missing", 16, 0) else None CODED_ICON = theme.load_icon("emblem-readonly", 16, 0) if theme.lookup_icon( diff --git a/app/ui/dialogs.py b/app/ui/dialogs.py index 85175a14..73075fb0 100644 --- a/app/ui/dialogs.py +++ b/app/ui/dialogs.py @@ -2,7 +2,7 @@ from enum import Enum from app.commons import run_idle -from . import Gtk, UI_RESOURCES_PATH +from . import Gtk, UI_RESOURCES_PATH, TEXT_DOMAIN class DialogType(Enum): @@ -72,7 +72,7 @@ def show_dialog(dialog_type: DialogType, transient, text=None, options=None, act def get_dialog_from_xml(dialog_type, transient): builder = Gtk.Builder() - builder.set_translation_domain("demon-editor") + builder.set_translation_domain(TEXT_DOMAIN) builder.add_from_file(UI_RESOURCES_PATH + "dialogs.glade") dialog = builder.get_object(dialog_type.value) dialog.set_transient_for(transient) diff --git a/app/ui/download_dialog.py b/app/ui/download_dialog.py index d8fe8ce8..3fbd3152 100644 --- a/app/ui/download_dialog.py +++ b/app/ui/download_dialog.py @@ -1,7 +1,7 @@ from app.commons import run_idle, run_task from app.ftp import download_data, DownloadDataType, upload_data from app.properties import Profile -from . import Gtk, UI_RESOURCES_PATH +from . import Gtk, UI_RESOURCES_PATH, TEXT_DOMAIN from .dialogs import show_dialog, DialogType @@ -22,7 +22,7 @@ class DownloadDialog: "on_info_bar_close": self.on_info_bar_close} builder = Gtk.Builder() - builder.set_translation_domain("demon-editor") + builder.set_translation_domain(TEXT_DOMAIN) builder.add_objects_from_file(UI_RESOURCES_PATH + "dialogs.glade", ("download_dialog",)) builder.connect_signals(handlers) diff --git a/app/ui/lang/ru/LC_MESSAGES/demon-editor.mo b/app/ui/lang/ru/LC_MESSAGES/demon-editor.mo new file mode 100644 index 0000000000000000000000000000000000000000..b3a5cab9e37117a563d6880884d56f6e6f261689 GIT binary patch literal 6261 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 WN3}*~o90)EOS9zOR;NsL!2bcm`IWK& literal 0 HcmV?d00001 diff --git a/app/ui/picons_dialog.py b/app/ui/picons_dialog.py index 3276049b..3d2ee606 100644 --- a/app/ui/picons_dialog.py +++ b/app/ui/picons_dialog.py @@ -9,7 +9,7 @@ from app.commons import run_idle, run_task from app.ftp import upload_data, DownloadDataType from app.picons.picons import PiconsParser, parse_providers, Provider from app.properties import Profile -from . import Gtk, Gdk, UI_RESOURCES_PATH +from . import Gtk, Gdk, UI_RESOURCES_PATH, TEXT_DOMAIN from .dialogs import show_dialog, DialogType from .main_helper import update_entry_data @@ -36,7 +36,7 @@ class PiconsDialog: "on_position_edited": self.on_position_edited} builder = Gtk.Builder() - builder.set_translation_domain("demon-editor") + builder.set_translation_domain(TEXT_DOMAIN) builder.add_objects_from_file(UI_RESOURCES_PATH + "picons_dialog.glade", ("picons_dialog", "receive_image", "providers_list_store")) builder.connect_signals(handlers) diff --git a/app/ui/satellites_dialog.py b/app/ui/satellites_dialog.py index 3ab58f8a..0a5268eb 100644 --- a/app/ui/satellites_dialog.py +++ b/app/ui/satellites_dialog.py @@ -3,7 +3,7 @@ from math import fabs from app.commons import run_idle from app.eparser import get_satellites, write_satellites, Satellite, Transponder -from . import Gtk, Gdk, UI_RESOURCES_PATH +from . import Gtk, Gdk, UI_RESOURCES_PATH, TEXT_DOMAIN from .dialogs import show_dialog, DialogType, WaitDialog from .main_helper import move_items, scroll_to @@ -38,7 +38,7 @@ class SatellitesDialog: "on_quit": self.on_quit} builder = Gtk.Builder() - builder.set_translation_domain("demon-editor") + builder.set_translation_domain(TEXT_DOMAIN) builder.add_objects_from_file(UI_RESOURCES_PATH + "satellites_dialog.glade", ("satellites_editor_dialog", "satellites_tree_store", "popup_menu", "add_popup_menu", "add_menu_icon")) @@ -309,7 +309,7 @@ class TransponderDialog: handlers = {"on_entry_changed": self.on_entry_changed} builder = Gtk.Builder() - builder.set_translation_domain("demon-editor") + builder.set_translation_domain(TEXT_DOMAIN) builder.add_objects_from_file(UI_RESOURCES_PATH + "satellites_dialog.glade", ("transponder_dialog", "pol_store", "fec_store", @@ -393,7 +393,7 @@ class SatelliteDialog: def __init__(self, transient, satellite: Satellite = None): builder = Gtk.Builder() - builder.set_translation_domain("demon-editor") + builder.set_translation_domain(TEXT_DOMAIN) builder.add_objects_from_file(UI_RESOURCES_PATH + "satellites_dialog.glade", ("satellite_dialog", "side_store", "pos_adjustment")) diff --git a/app/ui/service_details_dialog.py b/app/ui/service_details_dialog.py index 286afa55..23ec397a 100644 --- a/app/ui/service_details_dialog.py +++ b/app/ui/service_details_dialog.py @@ -3,12 +3,12 @@ from functools import lru_cache from app.commons import run_idle from app.eparser import Service, get_satellites -from app.eparser.ecommons import MODULATION, Inversion, ROLL_OFF, Pilot, Flag, Pids, SERVICE_TYPE, POLARIZATION, \ +from app.eparser.ecommons import MODULATION, Inversion, ROLL_OFF, Pilot, Flag, Pids, POLARIZATION, \ get_key_by_value, get_value_by_name, FEC_DEFAULT, PLS_MODE from app.properties import Profile from app.ui.dialogs import show_dialog, DialogType from app.ui.main_helper import get_base_model -from . import Gtk, Gdk, UI_RESOURCES_PATH, HIDE_ICON +from . import Gtk, Gdk, UI_RESOURCES_PATH, HIDE_ICON, TEXT_DOMAIN class ServiceDetailsDialog: @@ -32,7 +32,7 @@ class ServiceDetailsDialog: "on_tr_edit_toggled": self.on_tr_edit_toggled} builder = Gtk.Builder() - builder.set_translation_domain("demon-editor") + builder.set_translation_domain(TEXT_DOMAIN) builder.add_from_file(UI_RESOURCES_PATH + "service_details_dialog.glade") builder.connect_signals(handlers) @@ -442,7 +442,7 @@ class ServiceDetailsDialog: class TransponderServicesDialog: def __init__(self, transient, model, transponder, tr_iters): builder = Gtk.Builder() - builder.set_translation_domain("demon-editor") + builder.set_translation_domain(TEXT_DOMAIN) builder.add_objects_from_file(UI_RESOURCES_PATH + "service_details_dialog.glade", ("tr_services_dialog", "transponder_services_liststore")) self._dialog = builder.get_object("tr_services_dialog") diff --git a/app/ui/settings_dialog.py b/app/ui/settings_dialog.py index 77585c46..24234d1f 100644 --- a/app/ui/settings_dialog.py +++ b/app/ui/settings_dialog.py @@ -1,5 +1,5 @@ from app.properties import write_config, Profile, get_default_settings -from . import Gtk, UI_RESOURCES_PATH +from . import Gtk, UI_RESOURCES_PATH, TEXT_DOMAIN from .main_helper import update_entry_data @@ -16,7 +16,7 @@ class SettingsDialog: "apply_settings": self.apply_settings} builder = Gtk.Builder() - builder.set_translation_domain("demon-editor") + builder.set_translation_domain(TEXT_DOMAIN) builder.add_objects_from_file(UI_RESOURCES_PATH + "dialogs.glade", ("settings_dialog", "telnet_timeout_adjustment")) builder.connect_signals(handlers)