diff --git a/locales/ar_SA.json b/locales/ar_SA.json index 69a1d3e..7ba9768 100644 --- a/locales/ar_SA.json +++ b/locales/ar_SA.json @@ -72,8 +72,8 @@ "eula_buffer": "", "i_agree_eula": "", "eula": "", - "pika_nowork_csm": "", - "exit": "", + "efi_error_text_label": "", + "exit_button_label": "", "subtitle_partition": "", "title_mountpoint": "", "title_mountopt": "", diff --git a/locales/bg_BG.json b/locales/bg_BG.json index 9f22d04..fc0af78 100644 --- a/locales/bg_BG.json +++ b/locales/bg_BG.json @@ -72,8 +72,8 @@ "eula_buffer": "Трябва да имате предвид няколко неща: \n 1 - Вие разбирате, че тази дистрибуция НЕ Е \"С Вкус на Убунту\". \n 2 - Това е хоби дистрибуция, затова даваме всичко от себе си, за да предоставим официална поддръжка, но тя -НЯМА- да бъде гарантирана. \n 3 - Въпреки че PikaOS може да предостави идентични корекции и потребителско изживяване като проекта Nobara, ние НЕ сме пряка част от тях, така че въпроси и доклади за грешки не трябва да се изпращат директно до тях (те не трябва да се справят с това!) \n 4 - Докато инсталаторът работи, НЕ ГО ПРЕКЪСВАЙТЕ! защото в противен случай, ще имате повредена система. \n 5 - Опитайте да ползвате pikman вместо apt, когато използвате терминал - МНОГО по-бърз е! \n 6 - Вие разбирате, че xone драйверът изтегля необходимите двоични файлове локално и не пакетира и не разпространява директно фърмуер, защитен с авторски права, или други свързани данни. \n 7 - Автоматичното разделяне на дяловете ще форматира всички дялове на диска, така че ако искате да направите двойно зареждане, направете отделен EFI дял за PikaOS и използвайте ръчно разделяне на дяловете. \n 8 - В случай, че ви трябва информация за вход в тази сесия: \n - потребителско име: pikaos \n - парола: \n ОЗНАЧАВА: ПРОСТО НАТИСНЕТЕ ENTER", "i_agree_eula": "Съгласен съм и приемам лицензионното споразумение с потребителя", "eula": "ЛСКП", - "pika_nowork_csm": "PikaOS работи само на GPT UEFI системи, тази машина е стартирана в CSM/Legacy режим.", - "exit": "Изход", + "efi_error_text_label": "PikaOS работи само на GPT UEFI системи, тази машина е стартирана в CSM/Legacy режим.", + "exit_button_label": "Изход", "subtitle_partition": "Дял", "title_mountpoint": "Точка за монтиране", "title_mountopt": "Допълнителни Точки за Монтиране", diff --git a/locales/cs_CZ.json b/locales/cs_CZ.json index 69c9623..0228e62 100644 --- a/locales/cs_CZ.json +++ b/locales/cs_CZ.json @@ -72,8 +72,8 @@ "eula_buffer": "", "i_agree_eula": "", "eula": "", - "pika_nowork_csm": "", - "exit": "", + "efi_error_text_label": "", + "exit_button_label": "", "subtitle_partition": "", "title_mountpoint": "", "title_mountopt": "", diff --git a/locales/de_DE.json b/locales/de_DE.json index b718224..c0f8fd8 100644 --- a/locales/de_DE.json +++ b/locales/de_DE.json @@ -72,8 +72,8 @@ "eula_buffer": "Es gibt ein paar Dinge, die du beachten solltest: \n 1 - DU verstehst, dass diese Distribution NICHT als „Ubuntu-Variante“ zu betrachten ist. \n 2 - Dies ist eine Hobby-Distribution, daher werden wir unser Bestes tun, um formellen Support zu bieten, dieser kann jedoch NICHT garantiert werden. \n 3 – Obwohl PikaOS möglicherweise identische Patches und Benutzererfahrungen wie das Nobara-Projekt bereitstellt, sind wir NICHT direkt ein Teil davon, sodass Fragen und Fehlerberichte nicht direkt an sie gesendet werden sollten (sie müssen sich nicht darum kümmern!) \n 4 - Während das Installationsprogramm ausgeführt wird, UNTERBRICH ES NICHT! Andernfalls erhälst du ein beschädigtes System. \n 5 – Versuche, bei der Verwendung des Terminals pikman anstelle von apt zu verwenden, es ist viel schneller! \n 6 – Du verstehst, dass der Xone-Treiber benötigte Binärdateien lokal herunterlädt und keine urheberrechtlich geschützte Firmware oder andere verwandte Daten direkt verpackt oder verteilt. \n 7 – Durch die automatische Partitionierung werden alle Partitionen auf einem Laufwerk formatiert. Wenn du also Dualboot betreiben möchtest, erstelle eine separate EFI-Partition für PikaOS und verwende die manuelle Partitionierung \n 8 - Falls du die Anmeldeinformationen für diese Sitzung benötigst: \n - Benutzername: pikaos \n - Passwort: \n BEDEUTUNG: DRÜCKEN SIE EINFACH EINGABE", "i_agree_eula": "Ich stimme der Benutzerlizenzvereinbarung zu und akzeptiere sie", "eula": "EULA", - "pika_nowork_csm": "PikaOS funktioniert nur auf GPT-UEFI-Systemen. Dieser Computer wurde im CSM/LEGACY-Modus gestartet.", - "exit": "Beenden", + "efi_error_text_label": "PikaOS funktioniert nur auf GPT-UEFI-Systemen. Dieser Computer wurde im CSM/LEGACY-Modus gestartet.", + "exit_button_label": "Beenden", "subtitle_partition": "Partition", "title_mountpoint": "Einhängepunkt", "title_mountopt": "Zusätzliche Einhängeoptionen", diff --git a/locales/en_US.json b/locales/en_US.json index f753886..2f7c0fc 100644 --- a/locales/en_US.json +++ b/locales/en_US.json @@ -72,9 +72,9 @@ "eula_buffer": "There are a few things to keep in mind: \n 1 - You understand that this distribution is -NOT- to be considered an ‘Ubuntu Flavor’. \n 2 - This is a hobby distribution, so we will try our best to provide formal support but it will -NOT- be guaranteed. \n 3 - Although PikaOS might provide identical patches and user experience to the Nobara project, we are -NOT- directly a part of them so questions and bug reports should not be sent directly to them (they dont have to deal with it!) \n 4 - While the installer is running DO NOT INTERRUPT IT! or you will end up with a corrupted system. \n 5 - Try to use pikman instead of apt when using the terminal, it is much faster! \n 6 - You understand the xone driver downloads needed binaries locally and does not directly package or distribute any copyrighted firmware or other related data. \n 7 - Automatic partitioning will format all partitons on a drive, so if you want to dualboot make a separate EFI partition for PikaOS and use manual partitioning \n 8 - In case you need the login info for this session: \n - username: pikaos \n - password: \n MEANING: JUST PRESS ENTER", "i_agree_eula": "I Agree and Accept the User license Agreement", "eula": "EULA", - "bad_boot_platform": "Un Supported Boot Platform", - "pika_nowork_csm": "PikaOS Only works on GPT UEFI Systems, this machine is booted in CSM/LEGACY mode.", - "exit": "Exit", + "efi_error_header_text_label": "Un Supported Boot Platform", + "efi_error_text_label": "PikaOS Only works on GPT UEFI Systems, this machine is booted in CSM/LEGACY mode.", + "exit_button_label": "exit_button_label", "subtitle_partition": "Partition", "title_mountpoint": "Mountpoint", "title_mountopt": "Additional Mount Options", diff --git a/locales/fr_FR.json b/locales/fr_FR.json index 15c6b97..f983551 100644 --- a/locales/fr_FR.json +++ b/locales/fr_FR.json @@ -72,8 +72,8 @@ "eula_buffer": "There are a few things to keep in mind: \n 1 - Vous comprenez que cette distribution se considére -PAS- comme une ‘Ubuntu Flavor’. \n 2 - Celle-ci est une distribution hobby, donc on essai notre meilleur à provide (formal support) mais il sera -PAS- être garantie. \n 3 - Apart que PikaOS peut avoir des patchs identiques et experience d'utilisateur vers le Nobara Project, nous sommes -PAS- directement de leur part donc les questions et les bug reports ne doit être pas directement envoyés à eux (ce n'est pas à eux de le résoudre ) \n 4 - Pendant que l'installation est en éxecution, NE L'INTERROMPEZ PAS! Cela peut finir avec un système corrupu. \n 5 - Essayez d'utiliser Pikman au lieu d'APT, c'est encore plus rapide! \n 6 - Vous comprenez les téléchargements du pilote xone a besoin binares locallement et ne se package pas directement ou ne distribue pas toute firmware copyrighted ou autre datas relatives. \n 7 - Le partitionnement automatique va formatter toutes les partitions sur le disque, donc si vous voulez de dualboot, créez une autre partition EFI for PikaOS et utilisez partitionnement manuelle. \n 8 - Si vous avez besoin l'info de connexion pour cette session: \n - pseudo: pikaos \n - mot de passe: \n QUI VEUT DIRE A JUSTE APPUYER ENTRÉE", "i_agree_eula": "Je suis d'accord et j'accept l'Accord de License Utilisateur", "eula": "Accord de License Utilisateur", - "pika_nowork_csm": "PikaOS marche que sur les systèmes GPT UEFI, cette machine est démarré en mode CSM/LEGACY BOOT.", - "exit": "Sortir", + "efi_error_text_label": "PikaOS marche que sur les systèmes GPT UEFI, cette machine est démarré en mode CSM/LEGACY BOOT.", + "exit_button_label": "Sortir", "subtitle_partition": "Partition", "title_mountpoint": "Point de Montage", "title_mountopt": "Options additionnelles de montage", diff --git a/locales/it_IT.json b/locales/it_IT.json index 7c068f4..c8f5e81 100644 --- a/locales/it_IT.json +++ b/locales/it_IT.json @@ -72,8 +72,8 @@ "eula_buffer": "", "i_agree_eula": "", "eula": "", - "pika_nowork_csm": "", - "exit": "", + "efi_error_text_label": "", + "exit_button_label": "", "subtitle_partition": "", "title_mountpoint": "", "title_mountopt": "", diff --git a/locales/nl_NL.json b/locales/nl_NL.json index 3a203db..feb9f7b 100644 --- a/locales/nl_NL.json +++ b/locales/nl_NL.json @@ -72,8 +72,8 @@ "eula_buffer": "", "i_agree_eula": "", "eula": "", - "pika_nowork_csm": "", - "exit": "", + "efi_error_text_label": "", + "exit_button_label": "", "subtitle_partition": "", "title_mountpoint": "", "title_mountopt": "", diff --git a/locales/sv_SE.json b/locales/sv_SE.json index 2806f7d..43874c5 100644 --- a/locales/sv_SE.json +++ b/locales/sv_SE.json @@ -72,8 +72,8 @@ "eula_buffer": "", "i_agree_eula": "", "eula": "", - "pika_nowork_csm": "", - "exit": "", + "efi_error_text_label": "", + "exit_button_label": "", "subtitle_partition": "", "title_mountpoint": "", "title_mountopt": "", diff --git a/locales/tr_TR.json b/locales/tr_TR.json index 3a203db..feb9f7b 100644 --- a/locales/tr_TR.json +++ b/locales/tr_TR.json @@ -72,8 +72,8 @@ "eula_buffer": "", "i_agree_eula": "", "eula": "", - "pika_nowork_csm": "", - "exit": "", + "efi_error_text_label": "", + "exit_button_label": "", "subtitle_partition": "", "title_mountpoint": "", "title_mountopt": "", diff --git a/src/build_ui.rs b/src/build_ui.rs index cb1399a..bc1e71c 100644 --- a/src/build_ui.rs +++ b/src/build_ui.rs @@ -1,5 +1,5 @@ use std::path::Path; -use gtk::{prelude::*, glib as glib}; +use gtk::{prelude::*, glib as glib, gio as gio}; use crate::efi_error_page; use crate::welcome_page; use crate::language_page; @@ -51,6 +51,8 @@ pub fn build_ui(app: &adw::Application) { _ => efi_error_page::efi_error_page(&window, &carousel) } + let language_changed_action = gio::SimpleAction::new("lang-changed", None); + language_page::language_page(&window, &carousel); window.present() diff --git a/src/efi_error_page/mod.rs b/src/efi_error_page/mod.rs index 6e7b39d..11c9eb7 100644 --- a/src/efi_error_page/mod.rs +++ b/src/efi_error_page/mod.rs @@ -11,7 +11,7 @@ pub fn efi_error_page(window: &adw::ApplicationWindow, main_carousel: &adw::Caro .build(); let efi_error_header_text = gtk::Label::builder() - .label(t!("bad_boot_platform")) + .label(t!("efi_error_header_text_label")) .halign(gtk::Align::End) .hexpand(true) .wrap(true) @@ -46,7 +46,7 @@ pub fn efi_error_page(window: &adw::ApplicationWindow, main_carousel: &adw::Caro let efi_error_text = gtk::Label::builder() .vexpand(true) .hexpand(true) - .label(t!("pika_nowork_csm")) + .label(t!("efi_error_text_label")) .wrap(true) .halign(gtk::Align::Center) .valign(gtk::Align::Center) @@ -54,7 +54,7 @@ pub fn efi_error_page(window: &adw::ApplicationWindow, main_carousel: &adw::Caro efi_error_text.add_css_class("big_error_text"); let exit_button = gtk::Button::builder() - .label(t!("exit")) + .label(t!("exit_button_label")) .vexpand(true) .hexpand(true) .halign(gtk::Align::Center) diff --git a/src/installer_stack_page/imp.rs b/src/installer_stack_page/imp.rs index 92aa580..d662240 100644 --- a/src/installer_stack_page/imp.rs +++ b/src/installer_stack_page/imp.rs @@ -15,6 +15,10 @@ pub struct InstallerStackPage { #[property(get, set)] page_subtitle: RefCell, #[property(get, set)] + back_tooltip_label: RefCell, + #[property(get, set)] + next_tooltip_label: RefCell, + #[property(get, set)] back_sensitive: RefCell, #[property(get, set)] next_sensitive: RefCell, @@ -66,8 +70,7 @@ impl ObjectImpl for InstallerStackPage { .sensitive(true) .visible(true) .margin_start(10) - .margin_end(5) - .tooltip_text(t!("back")) + .margin_end(11) .build(); back_button.add_css_class("circular"); @@ -80,6 +83,11 @@ impl ObjectImpl for InstallerStackPage { } )); + obj.bind_property("back_tooltip_label", &back_button, "tooltip_text") + .sync_create() + .bidirectional() + .build(); + obj.bind_property("back_sensitive", &back_button, "sensitive") .sync_create() .bidirectional() @@ -98,9 +106,8 @@ impl ObjectImpl for InstallerStackPage { .halign(gtk::Align::End) .sensitive(false) .visible(true) - .margin_start(5) + .margin_start(11) .margin_end(10) - .tooltip_text(t!("next")) .build(); next_button.add_css_class("circular"); @@ -114,6 +121,11 @@ impl ObjectImpl for InstallerStackPage { } )); + obj.bind_property("next_tooltip_label", &next_button, "tooltip_text") + .sync_create() + .bidirectional() + .build(); + obj.bind_property("next_sensitive", &next_button, "sensitive") .sync_create() .bidirectional() @@ -162,7 +174,6 @@ impl ObjectImpl for InstallerStackPage { .justify(Justification::Center) .width_chars(20) .margin_top(5) - .margin_bottom(5) .margin_start(5) .margin_end(5) .build(); @@ -185,6 +196,8 @@ impl ObjectImpl for InstallerStackPage { let child_bin = adw::Bin::builder() .vexpand(true) .hexpand(true) + .margin_top(5) + .margin_bottom(15) .build(); content_box.append(&installer_page_icon); diff --git a/src/language_page/mod.rs b/src/language_page/mod.rs index ebe9868..b1ba2ed 100644 --- a/src/language_page/mod.rs +++ b/src/language_page/mod.rs @@ -9,6 +9,8 @@ pub fn language_page(window: &adw::ApplicationWindow, main_carousel: &adw::Carou language_page.set_page_title(t!("select_a_language")); language_page.set_page_subtitle(t!("please_select_locale")); language_page.set_page_icon("preferences-desktop-locale-symbolic"); + language_page.set_back_tooltip_label(t!("back")); + language_page.set_next_tooltip_label(t!("next")); language_page.set_back_visible(true); language_page.set_next_visible(true); language_page.set_back_sensitive(true); @@ -18,10 +20,6 @@ pub fn language_page(window: &adw::ApplicationWindow, main_carousel: &adw::Carou .orientation(gtk::Orientation::Vertical) .hexpand(true) .vexpand(true) - .margin_start(15) - .margin_end(15) - .margin_top(15) - .margin_bottom(15) .build(); let null_checkbutton = gtk::CheckButton::builder() diff --git a/src/welcome_page/mod.rs b/src/welcome_page/mod.rs index 998d052..e8b1235 100644 --- a/src/welcome_page/mod.rs +++ b/src/welcome_page/mod.rs @@ -12,14 +12,10 @@ pub fn welcome_page(window: &adw::ApplicationWindow, main_carousel: &adw::Carous let content_box = gtk::Box::builder() .orientation(gtk::Orientation::Vertical) - .margin_start(15) - .margin_end(15) - .margin_top(15) - .margin_bottom(15) - .valign(gtk::Align::Center) - .halign(gtk::Align::Center) .vexpand(true) .hexpand(true) + .valign(gtk::Align::Center) + .halign(gtk::Align::Center) .build(); content_box.add_css_class("linked"); diff --git a/src2/done_page/mod.rs b/src2/done_page/mod.rs index 935796a..e395f82 100644 --- a/src2/done_page/mod.rs +++ b/src2/done_page/mod.rs @@ -89,7 +89,7 @@ pub fn done_page(done_main_box: >k::Box, window: &adw::ApplicationWindow) { .build(); let installation_successful_exit_button = gtk::Button::builder() - .label(t!("exit")) + .label(t!("exit_button_label")) .halign(gtk::Align::Center) .valign(gtk::Align::Center) .margin_start(5) @@ -179,7 +179,7 @@ pub fn done_page(done_main_box: >k::Box, window: &adw::ApplicationWindow) { .build(); let installation_failed_exit_button = gtk::Button::builder() - .label(t!("exit")) + .label(t!("exit_button_label")) .halign(gtk::Align::Center) .valign(gtk::Align::Center) .margin_start(5) diff --git a/src2/efi_error_page/mod.rs b/src2/efi_error_page/mod.rs index 46306bc..9c21bc4 100644 --- a/src2/efi_error_page/mod.rs +++ b/src2/efi_error_page/mod.rs @@ -58,14 +58,14 @@ pub fn efi_error_page(window: &adw::ApplicationWindow, content_stack: >k::Stac let efi_error_text = gtk::Label::builder() .vexpand(true) .hexpand(true) - .label(t!("pika_nowork_csm")) + .label(t!("efi_error_text_label")) .halign(gtk::Align::Center) .valign(gtk::Align::Center) .build(); efi_error_text.add_css_class("big_error_text"); let exit_button = gtk::Button::builder() - .label(t!("exit")) + .label(t!("exit_button_label")) .vexpand(true) .hexpand(true) .halign(gtk::Align::Center)