From 8aca9e656e322dff29d0ab1760d2b0018fb66805 Mon Sep 17 00:00:00 2001 From: svarg Date: Thu, 16 Jul 2026 00:21:32 +0300 Subject: [PATCH] Add Russian localization GTK4 template translatable=yes does not work in GJS because set_translation_domain() is not exposed in GJS bindings. Override this by setting all translatable strings programmatically via _() in JavaScript. Key changes: - src/main.js: override imports.package.localedir to ~/.local/share/locale before pkg.initGettext() so translations work from any launcher - src/ui/window.js: set all UI strings (title, placeholders, labels, dropdown items, tooltips, menu) via _() in constructor - src/managers/index.js: wrap all dialog strings in _() - data/ui/window.ui: remove translatable=yes, add widget IDs - data/org.ramez.terminator.in: set GETTEXT_PACKAGE, TEXTDOMAINDIR, LANGUAGE in launcher - data/org.ramez.terminator.desktop.in: set DBusActivatable=false - po/ru.po: full Russian translation (266 lines) - po/LINGUAS: add ru - po/POTFILES.in: update source file list --- data/org.ramez.terminator.desktop.in | 2 +- data/org.ramez.terminator.in | 5 + data/ui/shortcuts-dialog.ui | 6 +- data/ui/window.ui | 48 ++--- po/LINGUAS | 1 + po/POTFILES.in | 6 +- po/ru.po | 266 +++++++++++++++++++++++++++ src/main.js | 2 + src/managers/index.js | 42 ++--- src/ui/window.js | 29 ++- 10 files changed, 352 insertions(+), 55 deletions(-) create mode 100644 po/ru.po diff --git a/data/org.ramez.terminator.desktop.in b/data/org.ramez.terminator.desktop.in index 84023bf..f3c7fb8 100644 --- a/data/org.ramez.terminator.desktop.in +++ b/data/org.ramez.terminator.desktop.in @@ -7,5 +7,5 @@ Type=Application Categories=Utility; Keywords=GTK; StartupNotify=true -DBusActivatable=true +DBusActivatable=false Comment="Unified linux uninstaller" \ No newline at end of file diff --git a/data/org.ramez.terminator.in b/data/org.ramez.terminator.in index 807ce91..46b6394 100755 --- a/data/org.ramez.terminator.in +++ b/data/org.ramez.terminator.in @@ -12,6 +12,11 @@ imports.package.init({ datadir: "@datadir@", }); +GLib.setenv('GETTEXT_PACKAGE', '@PACKAGE_NAME@', true); +GLib.setenv('TEXTDOMAINDIR', GLib.build_filenamev([GLib.get_user_data_dir(), 'locale']), true); +GLib.setenv('LANGUAGE', 'ru', true); +imports.package.initGettext(); + // Detect if running from build directory and load resources const buildDir = GLib.path_get_dirname(programInvocationName); const srcResource = GLib.build_filenamev([buildDir, 'org.ramez.terminator.src.gresource']); diff --git a/data/ui/shortcuts-dialog.ui b/data/ui/shortcuts-dialog.ui index e21bf92..4341c49 100644 --- a/data/ui/shortcuts-dialog.ui +++ b/data/ui/shortcuts-dialog.ui @@ -3,16 +3,16 @@ - Shortcuts + Shortcuts - Show Shortcuts + Show Shortcuts app.shortcuts - Quit + Quit app.quit diff --git a/data/ui/window.ui b/data/ui/window.ui index 9b5bf77..1530ea5 100644 --- a/data/ui/window.ui +++ b/data/ui/window.ui @@ -3,7 +3,7 @@