From 45e38176db751ee191f5bee0bf9f0d5b74e23e8c Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Thu, 22 Jan 2026 18:10:59 +0000 Subject: [PATCH 01/21] WIP language translation changes --- source/ubinstall-gtk-configuration-mode.c | 3 +- source/ubinstall-gtk-saving.c | 10 +- source/ubinstall-gtk-ui-lang.c | 68 +++- source/ubinstall-gtk.c | 390 +++++++++++----------- source/ubinstall-gtk.h | 4 +- 5 files changed, 270 insertions(+), 205 deletions(-) diff --git a/source/ubinstall-gtk-configuration-mode.c b/source/ubinstall-gtk-configuration-mode.c index 79eff78..4030c1b 100644 --- a/source/ubinstall-gtk-configuration-mode.c +++ b/source/ubinstall-gtk-configuration-mode.c @@ -64,7 +64,6 @@ void on_configuration_exit(GtkWidget *,configuration_window *window){ GList *box = gtk_container_get_children(GTK_CONTAINER(widgets->ConfigurationModeMenuItem)); GList *children = gtk_container_get_children(GTK_CONTAINER(box->data)); - GtkWidget *Check = GTK_WIDGET(g_list_nth_data(children,1)); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Check),0); g_list_free(box); @@ -82,7 +81,7 @@ void on_configuration_mode_switch(GtkWidget *self,main_window *widgets){ GtkWidget *Check = GTK_WIDGET(g_list_nth_data(children,1)); int active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Check)); - if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Check))){ + if (!active){ GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_configuration_mode); configuration_window *window = malloc(sizeof(configuration_window)); window->Window = yon_gtk_builder_get_widget(builder,"MainWindow"); diff --git a/source/ubinstall-gtk-saving.c b/source/ubinstall-gtk-saving.c index a469abd..10bf6dd 100644 --- a/source/ubinstall-gtk-saving.c +++ b/source/ubinstall-gtk-saving.c @@ -52,18 +52,18 @@ void on_config_global_load(GtkWidget *,main_window *widgets){ main_config.config_load_path = yon_char_new("global"); yon_load_proceed(YON_CONFIG_GLOBAL); main_config.load_mode=YON_CONFIG_GLOBAL; - yon_main_window_update_locale(widgets); + // yon_main_window_update_locale(widgets); yon_page_init(widgets,gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook))); } -void on_config_custom_load(GtkWidget *,main_window *widgets){ +void on_config_custom_load(GtkWidget *,main_window *){ yon_load_proceed(YON_CONFIG_CUSTOM); // yon_page_init(widgets,gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook))); main_config.load_mode=YON_CONFIG_CUSTOM; - yon_main_window_update_locale(widgets); + // yon_main_window_update_locale(widgets); } -void on_config_custom_load_last(GtkWidget *,main_window *widgets){ +void on_config_custom_load_last(GtkWidget *,main_window *){ yon_config_clean(); if (!yon_char_is_empty(config_get_default_command)) yon_config_load_config(YON_CONFIG_DEFAULT,config_get_default_command,NULL); @@ -71,7 +71,7 @@ void on_config_custom_load_last(GtkWidget *,main_window *widgets){ yon_config_load_config(YON_CONFIG_CUSTOM,command,NULL); // yon_page_init(widgets,gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook))); main_config.load_mode=YON_CONFIG_CUSTOM; - yon_main_window_update_locale(widgets); + // yon_main_window_update_locale(widgets); } void on_config_global_local_save(GtkWidget *,main_window *widgets){ diff --git a/source/ubinstall-gtk-ui-lang.c b/source/ubinstall-gtk-ui-lang.c index 79e0184..1a2d2c5 100644 --- a/source/ubinstall-gtk-ui-lang.c +++ b/source/ubinstall-gtk-ui-lang.c @@ -4,6 +4,11 @@ void on_locale_changed(GtkWidget *,main_window *widgets){ GtkTreeIter iter; GtkTreeModel *model; if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->LanguagesTree)),&model,&iter)) return; + { + GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(widgets->InstallerLanguageList),&iter); + gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(widgets->LanguagesTree),path,0,0,0,0); + gtk_tree_path_free(path); + } gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->InstallerCountryFilter)); char *config_code = config(installer_locale_parameter); if (yon_char_is_empty(config_code)){ @@ -69,12 +74,17 @@ void yon_startup_language_init(){ if (size>1&&!yon_char_is_empty(parsed[1])&&strcmp(parsed[1],"(null)\n")){ yon_char_remove_last_symbol(parsed[1],'\n'); free(yon_char_divide_search(parsed[1],"=",-1)); - yon_config_register(lang_parameter,lang_parameter_command,parsed[1]); + yon_char_remove_brackets(parsed[1]); + yon_config_register(installer_locale_parameter,installer_locale_parameter_command,parsed[1]); } if (size>2&&!yon_char_is_empty(parsed[2])&&strcmp(parsed[2],"(null)\n")){ yon_char_remove_last_symbol(parsed[2],'\n'); free(yon_char_divide_search(parsed[2],"=",-1)); - yon_config_register(SYSTEM_LANG_parameter,SYSTEM_LANG_parameter_command,parsed[2]); + yon_char_remove_brackets(parsed[2]); + yon_config_register(installer_locale_parameter,installer_locale_parameter_command,parsed[2]); + } else { + yon_config_register(installer_locale_parameter,installer_locale_parameter_command,setlocale(LC_ALL,"")); + } } } @@ -95,14 +105,15 @@ void yon_main_window_update_locale(main_window *widgets){ } locale = setlocale(LC_ALL,locale); - gtk_widget_destroy(widgets->MainWindow); + // gtk_widget_destroy(widgets->MainWindow); textdomain(LocaleName); g_setenv("LANGUAGE",locale,1); - - yon_main_window_create(widgets); + yon_update_translation(widgets->builder); + // yon_main_window_create(widgets); char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL); yon_window_config_setup(GTK_WINDOW(widgets->MainWindow)); yon_window_config_load(path); + } typedef struct{ @@ -172,9 +183,7 @@ void set_locales_list(main_window *widgets){ 2,code, 3,_(title), -1); - if (yon_char_is_empty(config_code)){ - config_code=yon_char_new(setlocale(LC_ALL,NULL)); - } + if (!yon_char_is_empty(config_code)){ char *temp = strstr(config_code,"."); if (temp) temp[0]='\0'; if (!strcmp(config_code,locales[i])){ @@ -182,8 +191,8 @@ void set_locales_list(main_window *widgets){ gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(widgets->LanguagesTree),path,0,0,0,0); gtk_tree_path_free(path); gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->LanguagesTree)),&iter); - on_locale_changed(NULL,widgets); } + } } textdomain(LocaleName); @@ -210,4 +219,45 @@ gboolean on_country_filter(GtkTreeModel *self, GtkTreeIter *iter, main_window *w } return 0; +} + +void yon_translation_init(GtkBuilder *builder){ + + GSList *list = gtk_builder_get_objects(builder); + GSList *iter; + for (iter = list; iter; iter = iter->next){ + GtkWidget *cur_widget = NULL; + const char *widget_text = NULL; + if (GTK_IS_BUTTON(iter->data)){ + cur_widget = GTK_WIDGET(iter->data); + widget_text = yon_char_new(gtk_button_get_label(GTK_BUTTON(cur_widget))); + } else if (GTK_IS_LABEL(iter->data)){ + cur_widget = GTK_WIDGET(iter->data); + widget_text = yon_char_new(gtk_label_get_text(GTK_LABEL(cur_widget))); + } else continue; + g_object_set_data(G_OBJECT(cur_widget),"original_label",(void*)widget_text); + + } +} + +void yon_update_translation(GtkBuilder *builder){ + GSList *list = gtk_builder_get_objects(builder); + GSList *iter; + for (iter = list; iter; iter = iter->next){ + if (GTK_IS_BUTTON(iter->data)){ + GtkWidget *cur_button = GTK_WIDGET(iter->data); + char *source_label = g_object_get_data(G_OBJECT(cur_button),"original_label"); + if (!yon_char_is_empty(source_label)){ + gtk_button_set_label(GTK_BUTTON(cur_button),_(source_label)); + } + + } else if (GTK_IS_LABEL(iter->data)){ + GtkWidget *cur_label = GTK_WIDGET(iter->data); + char *source_label = g_object_get_data(G_OBJECT(cur_label),"original_label"); + if (!yon_char_is_empty(source_label)){ + gtk_label_set_text(GTK_LABEL(cur_label),_(source_label)); + } + + } + } } \ No newline at end of file diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c index b8e855d..1e297e3 100644 --- a/source/ubinstall-gtk.c +++ b/source/ubinstall-gtk.c @@ -401,7 +401,9 @@ gboolean on_yon_exit(GtkWidget *,GdkEvent*, main_window *widgets){ void yon_main_window_create(main_window *widgets){ + __attribute__((unused)) char *locale = setlocale(LC_ALL, "en_US.UTF-8"); GtkBuilder *builder = gtk_builder_new_from_resource(glade_path); + yon_translation_init(builder); gtk_builder_add_callback_symbol(builder,"yon_gtk_widget_set_sensitive_from_toggle_button",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button)); gtk_builder_add_callback_symbol(builder,"on_toggle_button_switch_on",G_CALLBACK(on_toggle_button_switch_on)); // Custom widgets configuration @@ -713,164 +715,167 @@ void yon_main_window_create(main_window *widgets){ gtk_menu_shell_append(GTK_MENU_SHELL(menu),widgets->DocumentationMenuItem); gtk_menu_shell_append(GTK_MENU_SHELL(menu),widgets->AboutMenuItem); - g_signal_connect(G_OBJECT(widgets->LicenseAgreeRadio),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),widgets->NextButton); - - g_signal_connect(G_OBJECT(widgets->LoadGlobalConfigurationMenuItem),"activate",G_CALLBACK(on_config_global_load),widgets); - g_signal_connect(G_OBJECT(widgets->LoadLocalConfigurationMenuItem),"activate",G_CALLBACK(on_config_local_load),widgets); - g_signal_connect(G_OBJECT(widgets->LoadExternalConfigurationMenuItem),"activate",G_CALLBACK(on_config_custom_load),widgets); - - - g_signal_connect(G_OBJECT(widgets->ReadFullLogButton),"clicked",G_CALLBACK(on_process_log_view),widgets); - g_signal_connect(G_OBJECT(widgets->ReadShortLogButton),"clicked",G_CALLBACK(on_summary_log_view),widgets); - - g_signal_connect(G_OBJECT(widgets->CommonGpartedButton),"clicked",G_CALLBACK(on_gparted_open),NULL); - g_signal_connect(G_OBJECT(widgets->SameGpartedButton),"clicked",G_CALLBACK(on_gparted_open),NULL); - g_signal_connect(G_OBJECT(widgets->NextInstallationGPartedButton),"clicked",G_CALLBACK(on_gparted_open),NULL); - g_signal_connect(G_OBJECT(widgets->UserdataGpartedButton),"clicked",G_CALLBACK(on_gparted_open),NULL); - g_signal_connect(G_OBJECT(widgets->GrubUpdateGpartedButton),"clicked",G_CALLBACK(on_gparted_open),NULL); - g_signal_connect(G_OBJECT(widgets->GrubInstallGpartedButton),"clicked",G_CALLBACK(on_gparted_open),NULL); - g_signal_connect(G_OBJECT(widgets->AdvancedGpartedButton),"clicked",G_CALLBACK(on_gparted_open),NULL); - - g_signal_connect(G_OBJECT(widgets->CommonUpdateGpartedButton),"clicked",G_CALLBACK(on_gparted_update),widgets); - g_signal_connect(G_OBJECT(widgets->SameUpdateGpartedButton),"clicked",G_CALLBACK(on_gparted_update),widgets); - g_signal_connect(G_OBJECT(widgets->NextInstallationUpdateGPartedButton),"clicked",G_CALLBACK(on_gparted_update),widgets); - g_signal_connect(G_OBJECT(widgets->UserdataUpdateGpartedButton),"clicked",G_CALLBACK(on_gparted_update),widgets); - g_signal_connect(G_OBJECT(widgets->GrubUpdateUpdateGpartedButton),"clicked",G_CALLBACK(on_gparted_update),widgets); - g_signal_connect(G_OBJECT(widgets->GrubInstallUpdateGpartedButton),"clicked",G_CALLBACK(on_gparted_update),widgets); - g_signal_connect(G_OBJECT(widgets->AdvancedUpdateGpartedButton),"clicked",G_CALLBACK(on_gparted_update),widgets); - - // g_signal_connect(G_OBJECT(widgets->MainWindow),"check-resize",G_CALLBACK(on_region_resized),widgets); - g_signal_connect(G_OBJECT(widgets->NextButton),"clicked",G_CALLBACK(on_page_next_clicked),widgets); - g_signal_connect(G_OBJECT(widgets->BackButton),"clicked",G_CALLBACK(on_page_prev_clicked),widgets); - - g_signal_connect(G_OBJECT(widgets->LocaleAddButton),"clicked",G_CALLBACK(on_language_open),widgets); - g_signal_connect(G_OBJECT(widgets->LocaleRemoveButton),"clicked",G_CALLBACK(on_language_remove),widgets); - g_signal_connect(G_OBJECT(widgets->LocaleDefaultSwitch),"state-set",G_CALLBACK(on_language_default_toggled),widgets); - g_signal_connect(G_OBJECT(widgets->LocaleCell),"toggled",G_CALLBACK(on_locale_toggled),widgets); - - g_signal_connect(G_OBJECT(widgets->CancelInstallButton),"clicked",G_CALLBACK(on_page_cancel_clicked),widgets); - #ifdef TIMEZONEMAP_INCLUDE - g_signal_connect(G_OBJECT(widgets->RegionCombo),"changed",G_CALLBACK(on_region_changed),widgets); - g_signal_connect(G_OBJECT(widgets->ZoneCombo),"changed",G_CALLBACK(on_zone_changed),widgets); - #endif - g_signal_connect(G_OBJECT(widgets->RegionSensitiveSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->RegionCombo); - g_signal_connect(G_OBJECT(widgets->RegionSensitiveSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->ZoneCombo); - g_signal_connect(G_OBJECT(widgets->RegionSensitiveSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->RegionMapBox); - - g_signal_connect(G_OBJECT(widgets->KeyboardLayoutTree),"cursor-changed",G_CALLBACK(on_layout_selection_changed),widgets); - g_signal_connect(G_OBJECT(widgets->KeyboardDefaultLayoutsSwitch),"state-set",G_CALLBACK(on_layout_default_toggled),widgets); - g_signal_connect(G_OBJECT(widgets->KeyboardDefaultLayoutsSwitch),"state-set",G_CALLBACK(on_layout_default_sensitive_toggled),widgets); - g_signal_connect(G_OBJECT(widgets->KeyboardLayoutMoveUpButton),"clicked",G_CALLBACK(on_layout_move_up),widgets); - g_signal_connect(G_OBJECT(widgets->KeyboardLayoutMoveDownButton),"clicked",G_CALLBACK(on_layout_move_down),widgets); - g_signal_connect(G_OBJECT(widgets->KeyboardLayoutAddButton),"clicked",G_CALLBACK(on_system_layouts_add),widgets); - g_signal_connect(G_OBJECT(widgets->KeyboardLayoutRemoveButton),"clicked",G_CALLBACK(on_system_layouts_remove),widgets); - g_signal_connect(G_OBJECT(widgets->KeyboardModelCombo),"changed",G_CALLBACK(on_model_changed),widgets); - - g_signal_connect(G_OBJECT(widgets->GrubInstallDevicesTree),"cursor-changed",G_CALLBACK(on_device_selection_changed),widgets); - g_signal_connect(G_OBJECT(widgets->GrubUpdateDevicesTree),"cursor-changed",G_CALLBACK(on_device_selection_changed),widgets); - g_signal_connect(G_OBJECT(widgets->NextInstallationSysDevicesTree),"cursor-changed",G_CALLBACK(on_device_selection_changed),widgets); - g_signal_connect(G_OBJECT(widgets->SamePlaceDeviceTree),"cursor-changed",G_CALLBACK(on_device_selection_changed),widgets); - g_signal_connect(G_OBJECT(widgets->UserdataDevicesTree),"cursor-changed",G_CALLBACK(on_device_selection_changed),widgets); - - - g_signal_connect(G_OBJECT(widgets->SamePlacePartTree),"cursor-changed",G_CALLBACK(on_partition_changed),widgets); - g_signal_connect(G_OBJECT(widgets->NextInstallationSysSectionTree),"cursor-changed",G_CALLBACK(on_partition_changed),widgets); - g_signal_connect(G_OBJECT(widgets->NextInstallationSizeTypeSpin),"changed",G_CALLBACK(on_partition_changed),widgets); - - g_signal_connect(G_OBJECT(widgets->UserRootPasswordCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),widgets->UserRootPasswordEntry); - g_signal_connect(G_OBJECT(widgets->UserRootPasswordCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),widgets->UserRootPasswordButton); - g_signal_connect(G_OBJECT(widgets->UserAddButton),"clicked",G_CALLBACK(on_user_add),widgets); - g_signal_connect(G_OBJECT(widgets->UserRootPasswordButton),"clicked",G_CALLBACK(yon_password_root_new),widgets); - g_signal_connect(G_OBJECT(widgets->BootloadDefaulOSButton),"clicked",G_CALLBACK(yon_menu_window_open),widgets); - - g_signal_connect(G_OBJECT(widgets->LanguagesTree),"cursor-changed",G_CALLBACK(on_locale_changed),widgets); - g_signal_connect(G_OBJECT(widgets->CountryLanguagesTree),"row-activated",G_CALLBACK(on_installer_language_changed),widgets); - // g_signal_connect(G_OBJECT(widgets->LanguageCombo),"changed",G_CALLBACK(on_locale_changed),widgets); - - g_signal_connect(G_OBJECT(widgets->StartupServicesTree),"cursor-changed",G_CALLBACK(on_startup_services_selection_changed),widgets); - g_signal_connect(G_OBJECT(widgets->StartupServicesAddButton),"clicked",G_CALLBACK(on_startup_service_add),widgets); - g_signal_connect(G_OBJECT(widgets->StartupServicesEditButton),"clicked",G_CALLBACK(on_startup_service_edit),widgets); - g_signal_connect(G_OBJECT(widgets->StartupServicesRemoveButton),"clicked",G_CALLBACK(on_startup_services_remove),widgets); - g_signal_connect(G_OBJECT(widgets->StartupChosenCell),"toggled",G_CALLBACK(on_srartup_services_toggled),widgets); - - g_signal_connect(G_OBJECT(widgets->StartupAppsTree),"cursor-changed",G_CALLBACK(on_startup_apps_selection_changed),widgets); - g_signal_connect(G_OBJECT(widgets->StartupAppsAddButton),"clicked",G_CALLBACK(on_startup_app_add),widgets); - g_signal_connect(G_OBJECT(widgets->StartupAppsEditButton),"clicked",G_CALLBACK(on_startup_app_edit),widgets); - g_signal_connect(G_OBJECT(widgets->StartupAppsRemoveButton),"clicked",G_CALLBACK(on_startup_apps_remove),widgets); - g_signal_connect(G_OBJECT(widgets->StartupAppsChosenCell),"toggled",G_CALLBACK(on_srartup_services_toggled),widgets); - - g_signal_connect(G_OBJECT(widgets->AutoHostnameCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),widgets->HotnameEntry); + { + g_signal_connect(G_OBJECT(widgets->LicenseAgreeRadio),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),widgets->NextButton); + + g_signal_connect(G_OBJECT(widgets->LoadGlobalConfigurationMenuItem),"activate",G_CALLBACK(on_config_global_load),widgets); + g_signal_connect(G_OBJECT(widgets->LoadLocalConfigurationMenuItem),"activate",G_CALLBACK(on_config_local_load),widgets); + g_signal_connect(G_OBJECT(widgets->LoadExternalConfigurationMenuItem),"activate",G_CALLBACK(on_config_custom_load),widgets); + + + g_signal_connect(G_OBJECT(widgets->ReadFullLogButton),"clicked",G_CALLBACK(on_process_log_view),widgets); + g_signal_connect(G_OBJECT(widgets->ReadShortLogButton),"clicked",G_CALLBACK(on_summary_log_view),widgets); + + g_signal_connect(G_OBJECT(widgets->CommonGpartedButton),"clicked",G_CALLBACK(on_gparted_open),NULL); + g_signal_connect(G_OBJECT(widgets->SameGpartedButton),"clicked",G_CALLBACK(on_gparted_open),NULL); + g_signal_connect(G_OBJECT(widgets->NextInstallationGPartedButton),"clicked",G_CALLBACK(on_gparted_open),NULL); + g_signal_connect(G_OBJECT(widgets->UserdataGpartedButton),"clicked",G_CALLBACK(on_gparted_open),NULL); + g_signal_connect(G_OBJECT(widgets->GrubUpdateGpartedButton),"clicked",G_CALLBACK(on_gparted_open),NULL); + g_signal_connect(G_OBJECT(widgets->GrubInstallGpartedButton),"clicked",G_CALLBACK(on_gparted_open),NULL); + g_signal_connect(G_OBJECT(widgets->AdvancedGpartedButton),"clicked",G_CALLBACK(on_gparted_open),NULL); + + g_signal_connect(G_OBJECT(widgets->CommonUpdateGpartedButton),"clicked",G_CALLBACK(on_gparted_update),widgets); + g_signal_connect(G_OBJECT(widgets->SameUpdateGpartedButton),"clicked",G_CALLBACK(on_gparted_update),widgets); + g_signal_connect(G_OBJECT(widgets->NextInstallationUpdateGPartedButton),"clicked",G_CALLBACK(on_gparted_update),widgets); + g_signal_connect(G_OBJECT(widgets->UserdataUpdateGpartedButton),"clicked",G_CALLBACK(on_gparted_update),widgets); + g_signal_connect(G_OBJECT(widgets->GrubUpdateUpdateGpartedButton),"clicked",G_CALLBACK(on_gparted_update),widgets); + g_signal_connect(G_OBJECT(widgets->GrubInstallUpdateGpartedButton),"clicked",G_CALLBACK(on_gparted_update),widgets); + g_signal_connect(G_OBJECT(widgets->AdvancedUpdateGpartedButton),"clicked",G_CALLBACK(on_gparted_update),widgets); + + // g_signal_connect(G_OBJECT(widgets->MainWindow),"check-resize",G_CALLBACK(on_region_resized),widgets); + g_signal_connect(G_OBJECT(widgets->NextButton),"clicked",G_CALLBACK(on_page_next_clicked),widgets); + g_signal_connect(G_OBJECT(widgets->BackButton),"clicked",G_CALLBACK(on_page_prev_clicked),widgets); + + g_signal_connect(G_OBJECT(widgets->LocaleAddButton),"clicked",G_CALLBACK(on_language_open),widgets); + g_signal_connect(G_OBJECT(widgets->LocaleRemoveButton),"clicked",G_CALLBACK(on_language_remove),widgets); + g_signal_connect(G_OBJECT(widgets->LocaleDefaultSwitch),"state-set",G_CALLBACK(on_language_default_toggled),widgets); + g_signal_connect(G_OBJECT(widgets->LocaleCell),"toggled",G_CALLBACK(on_locale_toggled),widgets); + + g_signal_connect(G_OBJECT(widgets->CancelInstallButton),"clicked",G_CALLBACK(on_page_cancel_clicked),widgets); + g_signal_connect(G_OBJECT(widgets->RegionCombo),"changed",G_CALLBACK(on_region_changed),widgets); + #ifdef TIMEZONEMAP_INCLUDE + g_signal_connect(G_OBJECT(widgets->ZoneCombo),"changed",G_CALLBACK(on_zone_changed),widgets); + #endif + g_signal_connect(G_OBJECT(widgets->RegionSensitiveSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->RegionCombo); + g_signal_connect(G_OBJECT(widgets->RegionSensitiveSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->ZoneCombo); + g_signal_connect(G_OBJECT(widgets->RegionSensitiveSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->RegionMapBox); + + g_signal_connect(G_OBJECT(widgets->KeyboardLayoutTree),"cursor-changed",G_CALLBACK(on_layout_selection_changed),widgets); + g_signal_connect(G_OBJECT(widgets->KeyboardDefaultLayoutsSwitch),"state-set",G_CALLBACK(on_layout_default_toggled),widgets); + g_signal_connect(G_OBJECT(widgets->KeyboardDefaultLayoutsSwitch),"state-set",G_CALLBACK(on_layout_default_sensitive_toggled),widgets); + g_signal_connect(G_OBJECT(widgets->KeyboardLayoutMoveUpButton),"clicked",G_CALLBACK(on_layout_move_up),widgets); + g_signal_connect(G_OBJECT(widgets->KeyboardLayoutMoveDownButton),"clicked",G_CALLBACK(on_layout_move_down),widgets); + g_signal_connect(G_OBJECT(widgets->KeyboardLayoutAddButton),"clicked",G_CALLBACK(on_system_layouts_add),widgets); + g_signal_connect(G_OBJECT(widgets->KeyboardLayoutRemoveButton),"clicked",G_CALLBACK(on_system_layouts_remove),widgets); + g_signal_connect(G_OBJECT(widgets->KeyboardModelCombo),"changed",G_CALLBACK(on_model_changed),widgets); + + g_signal_connect(G_OBJECT(widgets->GrubInstallDevicesTree),"cursor-changed",G_CALLBACK(on_device_selection_changed),widgets); + g_signal_connect(G_OBJECT(widgets->GrubUpdateDevicesTree),"cursor-changed",G_CALLBACK(on_device_selection_changed),widgets); + g_signal_connect(G_OBJECT(widgets->NextInstallationSysDevicesTree),"cursor-changed",G_CALLBACK(on_device_selection_changed),widgets); + g_signal_connect(G_OBJECT(widgets->SamePlaceDeviceTree),"cursor-changed",G_CALLBACK(on_device_selection_changed),widgets); + g_signal_connect(G_OBJECT(widgets->UserdataDevicesTree),"cursor-changed",G_CALLBACK(on_device_selection_changed),widgets); + + + g_signal_connect(G_OBJECT(widgets->SamePlacePartTree),"cursor-changed",G_CALLBACK(on_partition_changed),widgets); + g_signal_connect(G_OBJECT(widgets->NextInstallationSysSectionTree),"cursor-changed",G_CALLBACK(on_partition_changed),widgets); + g_signal_connect(G_OBJECT(widgets->NextInstallationSizeTypeSpin),"changed",G_CALLBACK(on_partition_changed),widgets); + + g_signal_connect(G_OBJECT(widgets->UserRootPasswordCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),widgets->UserRootPasswordEntry); + g_signal_connect(G_OBJECT(widgets->UserRootPasswordCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),widgets->UserRootPasswordButton); + g_signal_connect(G_OBJECT(widgets->UserAddButton),"clicked",G_CALLBACK(on_user_add),widgets); + g_signal_connect(G_OBJECT(widgets->UserRootPasswordButton),"clicked",G_CALLBACK(yon_password_root_new),widgets); + g_signal_connect(G_OBJECT(widgets->BootloadDefaulOSButton),"clicked",G_CALLBACK(yon_menu_window_open),widgets); + + g_signal_connect(G_OBJECT(widgets->LanguagesTree),"cursor-changed",G_CALLBACK(on_locale_changed),widgets); + g_signal_connect(G_OBJECT(widgets->CountryLanguagesTree),"row-activated",G_CALLBACK(on_installer_language_changed),widgets); + // g_signal_connect(G_OBJECT(widgets->LanguageCombo),"changed",G_CALLBACK(on_locale_changed),widgets); + + g_signal_connect(G_OBJECT(widgets->StartupServicesTree),"cursor-changed",G_CALLBACK(on_startup_services_selection_changed),widgets); + g_signal_connect(G_OBJECT(widgets->StartupServicesAddButton),"clicked",G_CALLBACK(on_startup_service_add),widgets); + g_signal_connect(G_OBJECT(widgets->StartupServicesEditButton),"clicked",G_CALLBACK(on_startup_service_edit),widgets); + g_signal_connect(G_OBJECT(widgets->StartupServicesRemoveButton),"clicked",G_CALLBACK(on_startup_services_remove),widgets); + g_signal_connect(G_OBJECT(widgets->StartupChosenCell),"toggled",G_CALLBACK(on_srartup_services_toggled),widgets); + + g_signal_connect(G_OBJECT(widgets->StartupAppsTree),"cursor-changed",G_CALLBACK(on_startup_apps_selection_changed),widgets); + g_signal_connect(G_OBJECT(widgets->StartupAppsAddButton),"clicked",G_CALLBACK(on_startup_app_add),widgets); + g_signal_connect(G_OBJECT(widgets->StartupAppsEditButton),"clicked",G_CALLBACK(on_startup_app_edit),widgets); + g_signal_connect(G_OBJECT(widgets->StartupAppsRemoveButton),"clicked",G_CALLBACK(on_startup_apps_remove),widgets); + g_signal_connect(G_OBJECT(widgets->StartupAppsChosenCell),"toggled",G_CALLBACK(on_srartup_services_toggled),widgets); + + g_signal_connect(G_OBJECT(widgets->AutoHostnameCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),widgets->HotnameEntry); - yon_gtk_revealer_set_from_switch(GTK_REVEALER(widgets->NextInstallationFormatRevealer),GTK_SWITCH(widgets->NextInstallationFormatSwitch)); - yon_gtk_revealer_set_from_switch(GTK_REVEALER(widgets->SameInstallationFormatRevealer),GTK_SWITCH(widgets->SameInstallationFormatSwitch)); - yon_gtk_revealer_set_from_switch(GTK_REVEALER(widgets->UserdataRevealer),GTK_SWITCH(widgets->UserdataFormatSwitch)); - - g_signal_connect(G_OBJECT(widgets->OSGpartedButton),"clicked",G_CALLBACK(on_gparted_open),NULL); - g_signal_connect(G_OBJECT(widgets->OSUpdateGpartedButton),"clicked",G_CALLBACK(on_gparted_update),widgets); - g_signal_connect(G_OBJECT(widgets->OSDevicesTree),"cursor-changed",G_CALLBACK(on_device_selection_changed),widgets); - g_signal_connect(G_OBJECT(widgets->OSFormatEncryptionCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),widgets->OSFormatEncryptionEntry); - g_signal_connect(G_OBJECT(widgets->OSFormatEncryptionCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),widgets->OSFormatEncryptionButton); - g_signal_connect(G_OBJECT(widgets->OSFormatEncryptionButton),"clicked",G_CALLBACK(yon_os_password_open),widgets); - yon_gtk_revealer_set_from_switch(GTK_REVEALER(widgets->OSRevealer),GTK_SWITCH(widgets->OSFormatSwitch)); - - g_signal_connect(G_OBJECT(widgets->UserdataFormatEncryptionCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),widgets->UserdataFormatEncryptionButton); - g_signal_connect(G_OBJECT(widgets->UserdataFormatEncryptionButton),"clicked",G_CALLBACK(yon_userdata_password_open),widgets); - - g_signal_connect(G_OBJECT(widgets->PacmanSoftwareAllCell),"toggled",G_CALLBACK(on_pacman_software_all_toggled),widgets); - g_signal_connect(G_OBJECT(widgets->PacmanSoftwareChosenCell),"toggled",G_CALLBACK(on_pacman_software_chosen_toggled),widgets); - g_signal_connect(G_OBJECT(widgets->PacmanSoftwareSearchEntry),"icon-press",G_CALLBACK(on_pacman_icon_press),widgets); - g_signal_connect(G_OBJECT(widgets->BootloadUserAddButton),"clicked",G_CALLBACK(on_bootloader_user_add),widgets); - - g_signal_connect(G_OBJECT(widgets->BootloadTimerSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->BootloadTimerSpin); - g_signal_connect(G_OBJECT(widgets->BootloadNoPasswordSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),widgets->BootloadUserRemoveButton); - g_signal_connect(G_OBJECT(widgets->BootloadNoPasswordSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),widgets->BootloadUserAddButton); - g_signal_connect(G_OBJECT(widgets->BootloadNoPasswordSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),widgets->BootloadUserTree); - - g_signal_connect(G_OBJECT(widgets->NetworkDomainSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->NetworkDomainNameEntry); - g_signal_connect(G_OBJECT(widgets->NetworkDomainSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->NetworkDomainAdminEntry); - g_signal_connect(G_OBJECT(widgets->NetworkDomainSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->NetworkDomainPasswordEntry); - g_signal_connect(G_OBJECT(widgets->NetworkNTPServerSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->NetworkNTPCombo); - g_signal_connect(G_OBJECT(widgets->NetworkNTPServerSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->NetworkNTPEntry); - g_signal_connect(G_OBJECT(widgets->HostnameSensitiveSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->HotnameEntry); - g_signal_connect(G_OBJECT(widgets->HostnameSensitiveSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->AutoHostnameCheck); - g_signal_connect(G_OBJECT(widgets->HostnameSensitiveSwitch),"state-set",G_CALLBACK(on_autohostname_sensitiveness_check),widgets); - g_signal_connect(G_OBJECT(widgets->AutoHostnameCheck),"toggled",G_CALLBACK(on_autohostname_check),widgets); - g_signal_connect(G_OBJECT(widgets->HotnameEntry),"changed",G_CALLBACK(on_hostname_entry_changed),widgets); - g_signal_connect(G_OBJECT(widgets->NetworkConnectionsAddButton),"clicked",G_CALLBACK(on_connection_add),widgets); - g_signal_connect(G_OBJECT(widgets->NetworkNTPCombo),"changed",G_CALLBACK(on_ntp_sync),widgets); - yon_gtk_revealer_set_from_switch(GTK_REVEALER(widgets->AdvancedLoadTypeRevealer),GTK_SWITCH(widgets->AdvancedLoadTypeSwitch)); - yon_gtk_revealer_set_from_switch(GTK_REVEALER(widgets->AdvancedSwapRevealer),GTK_SWITCH(widgets->AdvancedSwapSwitch)); - - g_signal_connect(G_OBJECT(widgets->AdvancedSwapFixedSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->AdvancedSwapFixedSpin); - g_signal_connect(G_OBJECT(widgets->AdvancedSwapFixedSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->AdvancedSwapFixedSizeSwitch); - - g_signal_connect(G_OBJECT(widgets->AdvancedDeviceChosenCell),"toggled",G_CALLBACK(on_install_advanced_device_chosen),widgets); - g_signal_connect(G_OBJECT(widgets->StartScenarioButton),"clicked",G_CALLBACK(yon_quick_install),widgets); - g_signal_connect(G_OBJECT(widgets->SourceButton),"clicked",G_CALLBACK(on_source_clicked),widgets); - g_signal_connect(G_OBJECT(widgets->AdvancedAddButton),"clicked",G_CALLBACK(on_advanced_partition_create),widgets); - g_signal_connect(G_OBJECT(widgets->AdvancedPartChosenCell),"toggled",G_CALLBACK(on_install_advanced_partition_chosen),widgets); - g_signal_connect(G_OBJECT(widgets->AdvancedVirtualDeviceCombo),"changed",G_CALLBACK(on_advanced_virtual_device_changed),widgets); - g_signal_connect(G_OBJECT(widgets->PackagesTree),"cursor-changed",G_CALLBACK(yon_on_packages_selected),widgets); - g_signal_connect(G_OBJECT(widgets->PackagesTree),"row-activated",G_CALLBACK(yon_on_packages_activated),widgets); - g_signal_connect(G_OBJECT(widgets->PackagesChosenCell),"toggled",G_CALLBACK(yon_on_packages_chosen),widgets); - - g_signal_connect(G_OBJECT(widgets->HubPersonalListBox),"child-activated",G_CALLBACK(on_configuration_hub_open),widgets); - g_signal_connect(G_OBJECT(widgets->HubSystemListBox),"child-activated",G_CALLBACK(on_configuration_hub_open),widgets); - g_signal_connect(G_OBJECT(widgets->HubPackagesListBox),"child-activated",G_CALLBACK(on_configuration_hub_open),widgets); - g_signal_connect(G_OBJECT(widgets->HubPersonalListBox),"selected-children-changed",G_CALLBACK(on_configuration_hub_selected),widgets); - g_signal_connect(G_OBJECT(widgets->HubSystemListBox),"selected-children-changed",G_CALLBACK(on_configuration_hub_selected),widgets); - g_signal_connect(G_OBJECT(widgets->HubPackagesListBox),"selected-children-changed",G_CALLBACK(on_configuration_hub_selected),widgets); - - g_signal_connect(G_OBJECT(widgets->ScrollLeftEventBox),"button-release-event",G_CALLBACK(on_install_slider_prev),widgets); - g_signal_connect(G_OBJECT(widgets->ScrollRightEventBox),"button-release-event",G_CALLBACK(on_install_slider_next),widgets); - g_signal_connect(G_OBJECT(widgets->ScrollLeftEventBox),"enter-notify-event",G_CALLBACK(on_install_slider_hover_highlight),widgets); - g_signal_connect(G_OBJECT(widgets->ScrollRightEventBox),"enter-notify-event",G_CALLBACK(on_install_slider_hover_highlight),widgets); - g_signal_connect(G_OBJECT(widgets->ScrollLeftEventBox),"leave-notify-event",G_CALLBACK(on_install_slider_hover_highlight_end),widgets); - g_signal_connect(G_OBJECT(widgets->ScrollRightEventBox),"leave-notify-event",G_CALLBACK(on_install_slider_hover_highlight_end),widgets); - - g_signal_connect(G_OBJECT(widgets->AboutMenuItem),"activate",G_CALLBACK(yon_on_about),NULL); - g_signal_connect(G_OBJECT(widgets->DocumentationMenuItem),"activate",G_CALLBACK(on_open_documentation_confirmation),WIKI_LINK); + yon_gtk_revealer_set_from_switch(GTK_REVEALER(widgets->NextInstallationFormatRevealer),GTK_SWITCH(widgets->NextInstallationFormatSwitch)); + yon_gtk_revealer_set_from_switch(GTK_REVEALER(widgets->SameInstallationFormatRevealer),GTK_SWITCH(widgets->SameInstallationFormatSwitch)); + yon_gtk_revealer_set_from_switch(GTK_REVEALER(widgets->UserdataRevealer),GTK_SWITCH(widgets->UserdataFormatSwitch)); + + g_signal_connect(G_OBJECT(widgets->OSGpartedButton),"clicked",G_CALLBACK(on_gparted_open),NULL); + g_signal_connect(G_OBJECT(widgets->OSUpdateGpartedButton),"clicked",G_CALLBACK(on_gparted_update),widgets); + g_signal_connect(G_OBJECT(widgets->OSDevicesTree),"cursor-changed",G_CALLBACK(on_device_selection_changed),widgets); + g_signal_connect(G_OBJECT(widgets->OSFormatEncryptionCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),widgets->OSFormatEncryptionEntry); + g_signal_connect(G_OBJECT(widgets->OSFormatEncryptionCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),widgets->OSFormatEncryptionButton); + g_signal_connect(G_OBJECT(widgets->OSFormatEncryptionButton),"clicked",G_CALLBACK(yon_os_password_open),widgets); + yon_gtk_revealer_set_from_switch(GTK_REVEALER(widgets->OSRevealer),GTK_SWITCH(widgets->OSFormatSwitch)); + + g_signal_connect(G_OBJECT(widgets->UserdataFormatEncryptionCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),widgets->UserdataFormatEncryptionButton); + g_signal_connect(G_OBJECT(widgets->UserdataFormatEncryptionButton),"clicked",G_CALLBACK(yon_userdata_password_open),widgets); + + g_signal_connect(G_OBJECT(widgets->PacmanSoftwareAllCell),"toggled",G_CALLBACK(on_pacman_software_all_toggled),widgets); + g_signal_connect(G_OBJECT(widgets->PacmanSoftwareChosenCell),"toggled",G_CALLBACK(on_pacman_software_chosen_toggled),widgets); + g_signal_connect(G_OBJECT(widgets->PacmanSoftwareSearchEntry),"icon-press",G_CALLBACK(on_pacman_icon_press),widgets); + g_signal_connect(G_OBJECT(widgets->BootloadUserAddButton),"clicked",G_CALLBACK(on_bootloader_user_add),widgets); + + g_signal_connect(G_OBJECT(widgets->BootloadTimerSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->BootloadTimerSpin); + g_signal_connect(G_OBJECT(widgets->BootloadNoPasswordSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),widgets->BootloadUserRemoveButton); + g_signal_connect(G_OBJECT(widgets->BootloadNoPasswordSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),widgets->BootloadUserAddButton); + g_signal_connect(G_OBJECT(widgets->BootloadNoPasswordSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),widgets->BootloadUserTree); + + g_signal_connect(G_OBJECT(widgets->NetworkDomainSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->NetworkDomainNameEntry); + g_signal_connect(G_OBJECT(widgets->NetworkDomainSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->NetworkDomainAdminEntry); + g_signal_connect(G_OBJECT(widgets->NetworkDomainSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->NetworkDomainPasswordEntry); + g_signal_connect(G_OBJECT(widgets->NetworkNTPServerSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->NetworkNTPCombo); + g_signal_connect(G_OBJECT(widgets->NetworkNTPServerSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->NetworkNTPEntry); + g_signal_connect(G_OBJECT(widgets->HostnameSensitiveSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->HotnameEntry); + g_signal_connect(G_OBJECT(widgets->HostnameSensitiveSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->AutoHostnameCheck); + g_signal_connect(G_OBJECT(widgets->HostnameSensitiveSwitch),"state-set",G_CALLBACK(on_autohostname_sensitiveness_check),widgets); + g_signal_connect(G_OBJECT(widgets->AutoHostnameCheck),"toggled",G_CALLBACK(on_autohostname_check),widgets); + g_signal_connect(G_OBJECT(widgets->HotnameEntry),"changed",G_CALLBACK(on_hostname_entry_changed),widgets); + g_signal_connect(G_OBJECT(widgets->NetworkConnectionsAddButton),"clicked",G_CALLBACK(on_connection_add),widgets); + g_signal_connect(G_OBJECT(widgets->NetworkNTPCombo),"changed",G_CALLBACK(on_ntp_sync),widgets); + yon_gtk_revealer_set_from_switch(GTK_REVEALER(widgets->AdvancedLoadTypeRevealer),GTK_SWITCH(widgets->AdvancedLoadTypeSwitch)); + yon_gtk_revealer_set_from_switch(GTK_REVEALER(widgets->AdvancedSwapRevealer),GTK_SWITCH(widgets->AdvancedSwapSwitch)); + + g_signal_connect(G_OBJECT(widgets->AdvancedSwapFixedSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->AdvancedSwapFixedSpin); + g_signal_connect(G_OBJECT(widgets->AdvancedSwapFixedSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->AdvancedSwapFixedSizeSwitch); + + g_signal_connect(G_OBJECT(widgets->AdvancedDeviceChosenCell),"toggled",G_CALLBACK(on_install_advanced_device_chosen),widgets); + g_signal_connect(G_OBJECT(widgets->StartScenarioButton),"clicked",G_CALLBACK(yon_quick_install),widgets); + g_signal_connect(G_OBJECT(widgets->SourceButton),"clicked",G_CALLBACK(on_source_clicked),widgets); + g_signal_connect(G_OBJECT(widgets->AdvancedAddButton),"clicked",G_CALLBACK(on_advanced_partition_create),widgets); + g_signal_connect(G_OBJECT(widgets->AdvancedPartChosenCell),"toggled",G_CALLBACK(on_install_advanced_partition_chosen),widgets); + g_signal_connect(G_OBJECT(widgets->AdvancedVirtualDeviceCombo),"changed",G_CALLBACK(on_advanced_virtual_device_changed),widgets); + g_signal_connect(G_OBJECT(widgets->PackagesTree),"cursor-changed",G_CALLBACK(yon_on_packages_selected),widgets); + g_signal_connect(G_OBJECT(widgets->PackagesTree),"row-activated",G_CALLBACK(yon_on_packages_activated),widgets); + g_signal_connect(G_OBJECT(widgets->PackagesChosenCell),"toggled",G_CALLBACK(yon_on_packages_chosen),widgets); + + g_signal_connect(G_OBJECT(widgets->HubPersonalListBox),"child-activated",G_CALLBACK(on_configuration_hub_open),widgets); + g_signal_connect(G_OBJECT(widgets->HubSystemListBox),"child-activated",G_CALLBACK(on_configuration_hub_open),widgets); + g_signal_connect(G_OBJECT(widgets->HubPackagesListBox),"child-activated",G_CALLBACK(on_configuration_hub_open),widgets); + g_signal_connect(G_OBJECT(widgets->HubPersonalListBox),"selected-children-changed",G_CALLBACK(on_configuration_hub_selected),widgets); + g_signal_connect(G_OBJECT(widgets->HubSystemListBox),"selected-children-changed",G_CALLBACK(on_configuration_hub_selected),widgets); + g_signal_connect(G_OBJECT(widgets->HubPackagesListBox),"selected-children-changed",G_CALLBACK(on_configuration_hub_selected),widgets); + + g_signal_connect(G_OBJECT(widgets->ScrollLeftEventBox),"button-release-event",G_CALLBACK(on_install_slider_prev),widgets); + g_signal_connect(G_OBJECT(widgets->ScrollRightEventBox),"button-release-event",G_CALLBACK(on_install_slider_next),widgets); + g_signal_connect(G_OBJECT(widgets->ScrollLeftEventBox),"enter-notify-event",G_CALLBACK(on_install_slider_hover_highlight),widgets); + g_signal_connect(G_OBJECT(widgets->ScrollRightEventBox),"enter-notify-event",G_CALLBACK(on_install_slider_hover_highlight),widgets); + g_signal_connect(G_OBJECT(widgets->ScrollLeftEventBox),"leave-notify-event",G_CALLBACK(on_install_slider_hover_highlight_end),widgets); + g_signal_connect(G_OBJECT(widgets->ScrollRightEventBox),"leave-notify-event",G_CALLBACK(on_install_slider_hover_highlight_end),widgets); + + g_signal_connect(G_OBJECT(widgets->AboutMenuItem),"activate",G_CALLBACK(yon_on_about),NULL); + g_signal_connect(G_OBJECT(widgets->DocumentationMenuItem),"activate",G_CALLBACK(on_open_documentation_confirmation),WIKI_LINK); + } + yon_window_config_setup(GTK_WINDOW(widgets->MainWindow)); yon_gtk_window_setup(GTK_WINDOW(widgets->MainWindow),NULL,TITLE_LABEL,icon_path,NULL); @@ -922,10 +927,6 @@ void yon_main_window_create(main_window *widgets){ if (main_config.lock_load_global == 1){ gtk_widget_set_sensitive(widgets->LoadGlobalConfigurationMenuItem,0); } - if (getuid()){ - gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widgets->ConfigurationModeMenuItem),1); - } - gtk_window_set_title(GTK_WINDOW(widgets->MainWindow),TITLE_LABEL); gtk_window_set_icon_name(GTK_WINDOW(widgets->MainWindow),icon_path); @@ -953,6 +954,13 @@ void yon_main_window_create(main_window *widgets){ } else { gtk_widget_hide(widgets->StartScenarioButton); } + if (getuid()){ + gtk_menu_item_activate(GTK_MENU_ITEM(widgets->ConfigurationModeMenuItem)); + if (yon_char_is_empty(main_config.config_save_path)){ + gtk_main_quit(); + exit (1); + } + } if (main_config.force_ini){ if (yon_configuration_path_check(main_config.config_save_path)){ GList *box = gtk_container_get_children(GTK_CONTAINER(widgets->ConfigurationModeMenuItem)); @@ -967,8 +975,6 @@ void yon_main_window_create(main_window *widgets){ exit (1); } } - yon_locale_init(); - set_locales_list(widgets); } gboolean yon_maximize_start(main_window *widgets){ @@ -989,7 +995,7 @@ void *yon_maximize(main_window *widgets){ * Функция настройки основного окна приложения. [widgets] - структура со стандартным интерфейсом. */ main_window *yon_main_window_complete(){ - if (main_config.force_ini){ + if (main_config.force_ini){ //Check if config path exists if (yon_configuration_path_check(main_config.config_save_path)){ { main_config.configure_mode=1; @@ -997,17 +1003,32 @@ main_window *yon_main_window_complete(){ } } main_window *widgets=NULL; - widgets = yon_remalloc(widgets,sizeof(main_window)); + widgets = malloc(sizeof(main_window)); memset(widgets,0,sizeof(main_window)); - yon_startup_language_init(); yon_main_window_create(widgets); - yon_window_config_setup(GTK_WINDOW(widgets->MainWindow)); - // yon_window_config_custom_window_setup(GTK_WINDOW(widgets->MainWindow),"MainWindow"); + + yon_startup_language_init(); + yon_locale_init(); + set_locales_list(widgets); + // yon_main_window_update_locale(widgets); + // // yon_window_config_custom_window_setup(GTK_WINDOW(widgets->MainWindow),"MainWindow"); + + + int fullscreen = 0; + char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL); + if (access(path,F_OK)){ + fullscreen = 1; + g_thread_new("fullscreen",(GThreadFunc)yon_maximize,widgets); + + } + yon_window_config_load(path); + yon_window_config_add_instant_parameter("fullscreen","window",&fullscreen,YON_TYPE_BOOLEAN); + yon_main_window_update_locale(widgets); return widgets; } int main(int argc, char *argv[]){ - __attribute__((unused)) char *locale = setlocale(LC_ALL, ""); + // __attribute__((unused)) char *locale = setlocale(LC_ALL, "en_US.UTF-8"); textdomain(LocaleName); yon_ubl_connect_config((_template_config*)&main_config); config_init(); @@ -1040,31 +1061,24 @@ int main(int argc, char *argv[]){ } gtk_init(&argc,&argv); main_window *widgets = NULL; - if (widgets){}; - int fullscreen = 0; - widgets = yon_main_window_complete(); - GtkWidget *root_button = yon_root_button_new(argv,argc); - gtk_style_context_add_class(gtk_widget_get_style_context(root_button),"menuitemtop"); - - gtk_menu_shell_prepend(GTK_MENU_SHELL(gtk_widget_get_parent(widgets->AboutMenuItem)),root_button); - - yon_root_button_init(root_button,GTK_WINDOW(widgets->MainWindow)); - on_config_global_load(NULL,widgets); - char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL); - if (access(path,F_OK)){ - fullscreen = 1; - g_thread_new("fullscreen",(GThreadFunc)yon_maximize,widgets); - - } - yon_window_config_load(path); - yon_window_config_add_instant_parameter("fullscreen","window",&fullscreen,YON_TYPE_BOOLEAN); - main_config.launch_arguments=yon_char_parsed_copy(argv,argc); - main_config.launch_size=argc; GtkCssProvider *css=gtk_css_provider_new(); gtk_css_provider_load_from_resource(css,CssPath); gtk_style_context_add_provider_for_screen(gdk_screen_get_default(), GTK_STYLE_PROVIDER(css), -1); + { + widgets = yon_main_window_complete(); + GtkWidget *root_button = yon_root_button_new(argv,argc); + gtk_style_context_add_class(gtk_widget_get_style_context(root_button),"menuitemtop"); + gtk_menu_shell_prepend(GTK_MENU_SHELL(gtk_widget_get_parent(widgets->AboutMenuItem)),root_button); + + yon_root_button_init(root_button,GTK_WINDOW(widgets->MainWindow)); + + on_config_global_load(NULL,widgets); + } + + main_config.launch_arguments=yon_char_parsed_copy(argv,argc); + main_config.launch_size=argc; if (getuid()!=0){ yon_ubl_status_box_render(yon_char_get_localised_from_lib(ROOT_WARNING_LABEL),BACKGROUND_IMAGE_FAIL_TYPE); } diff --git a/source/ubinstall-gtk.h b/source/ubinstall-gtk.h index 35857e6..5f244ba 100755 --- a/source/ubinstall-gtk.h +++ b/source/ubinstall-gtk.h @@ -1468,4 +1468,6 @@ void yon_main_window_update_locale(main_window *widgets); gboolean yon_progress_bar_start(main_window *widgets); void *yon_progress_file_buzyfy(void*); void yon_startup_language_init(); -gboolean on_languages_search_func(GtkTreeModel *model, gint col,const char *key, GtkTreeIter *iter, main_window *widgets); \ No newline at end of file +gboolean on_languages_search_func(GtkTreeModel *model, gint col,const char *key, GtkTreeIter *iter, main_window *widgets); +void yon_update_translation(GtkBuilder *builder); +void yon_translation_init(GtkBuilder *builder); \ No newline at end of file From 914862a3a315b1d9b1d6ec57e93172e3328a522c Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Fri, 23 Jan 2026 10:04:16 +0000 Subject: [PATCH 02/21] Increased configuration hub's label right margins --- source/ubinstall-gtk-config-hub.c | 1 + 1 file changed, 1 insertion(+) diff --git a/source/ubinstall-gtk-config-hub.c b/source/ubinstall-gtk-config-hub.c index 0edfcb5..40dea24 100644 --- a/source/ubinstall-gtk-config-hub.c +++ b/source/ubinstall-gtk-config-hub.c @@ -147,6 +147,7 @@ void yon_configuration_hub_add(GtkFlowBox *target, char *name, char *icon, enum cur_icon->page = page; GtkWidget *flow = gtk_flow_box_child_new(); gtk_style_context_add_class(gtk_widget_get_style_context(flow),"bggrey"); + gtk_widget_set_margin_end(cur_icon->Label,5); gtk_label_set_xalign(GTK_LABEL(cur_icon->Label),0); g_object_set_data(G_OBJECT(flow),"config_hub_icon",cur_icon); From 843d32092729e93e7c261941bebf1afd37180d99 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Fri, 23 Jan 2026 10:08:25 +0000 Subject: [PATCH 03/21] Style fixes --- ubinstall-gtk.glade | 1 + 1 file changed, 1 insertion(+) diff --git a/ubinstall-gtk.glade b/ubinstall-gtk.glade index 587d466..1b7b8cb 100644 --- a/ubinstall-gtk.glade +++ b/ubinstall-gtk.glade @@ -608,6 +608,7 @@ True False vertical + 5 True From b01b16881f73cb0c9abdc8437037bc4f80baa231 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Fri, 23 Jan 2026 10:15:08 +0000 Subject: [PATCH 04/21] Fixed installer translations search --- source/ubinstall-gtk-ui-lang.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/source/ubinstall-gtk-ui-lang.c b/source/ubinstall-gtk-ui-lang.c index 1a2d2c5..0333a4f 100644 --- a/source/ubinstall-gtk-ui-lang.c +++ b/source/ubinstall-gtk-ui-lang.c @@ -131,12 +131,18 @@ int yon_char_parsed_compare(const void *a, const void *b){ } gboolean on_languages_search_func(GtkTreeModel *model, gint ,const char *key, GtkTreeIter *iter, main_window *){ - char *language, *language_localised; - gtk_tree_model_get(model,iter,1,&language,4,&language_localised,-1); - if (strstr(language,key)||strstr(language_localised,key)){ - return 0; - } - return 1; + char *target; + char *loc_target; + gtk_tree_model_get(model, iter, 1,&target, 4, &loc_target,-1); + char *string_utf = g_utf8_casefold(key,-1); + char *target_utf = g_utf8_casefold(target,-1); + char *loc_target_utf = g_utf8_casefold(loc_target,-1); + + char *string_normalized = g_utf8_strdown(g_utf8_normalize(string_utf,-1,G_NORMALIZE_DEFAULT),-1); + char *target_normalized = g_utf8_strdown(g_utf8_normalize(target_utf,-1,G_NORMALIZE_DEFAULT),-1); + char *loc_target_normalized = g_utf8_strdown(g_utf8_normalize(loc_target_utf,-1,G_NORMALIZE_DEFAULT),-1); + + return !(g_str_has_prefix(target_normalized,string_normalized) || g_str_has_prefix(loc_target_normalized,string_normalized)); } void set_locales_list(main_window *widgets){ From 44680cfe5917702c4ddd7c246bee3630b3f402d9 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Fri, 23 Jan 2026 17:07:30 +0000 Subject: [PATCH 05/21] New application language switching applied --- source/ubinstall-gtk-bootloader.c | 1 + source/ubinstall-gtk-keyboard.c | 5 +++ source/ubinstall-gtk-network.c | 9 +++++ source/ubinstall-gtk-packages.c | 1 + source/ubinstall-gtk-page-switch.c | 3 +- source/ubinstall-gtk-region.c | 9 ++++- source/ubinstall-gtk-saving.c | 2 +- source/ubinstall-gtk-startup-apps.c | 4 +- source/ubinstall-gtk-startup-services.c | 4 +- source/ubinstall-gtk-ui-lang.c | 49 +++++++++++++++++-------- source/ubinstall-gtk-users.c | 3 ++ source/ubinstall-gtk.c | 30 +++++++-------- source/ubinstall-gtk.h | 7 ++-- source/ubl-strings.h | 6 +-- ubinstall-gtk.glade | 5 --- 15 files changed, 89 insertions(+), 49 deletions(-) diff --git a/source/ubinstall-gtk-bootloader.c b/source/ubinstall-gtk-bootloader.c index 65f7229..b1f10c5 100644 --- a/source/ubinstall-gtk-bootloader.c +++ b/source/ubinstall-gtk-bootloader.c @@ -435,6 +435,7 @@ void yon_bootloader_init(main_window *widgets){ gtk_entry_set_text(GTK_ENTRY(widgets->BootloadDefaultOSEntry),DEFAULT_BOOTLOAD_MENU_ITEM_LABEL); } if (!yon_char_is_empty(autologin)&&(!strcmp(autologin,"yes")||!strcmp(autologin,"enable"))){ + gtk_list_store_clear(widgets->BootloadUsersList); gtk_switch_set_active(GTK_SWITCH(widgets->BootloadNoPasswordSwitch),1); int admins_size; config_str admins_parsed = yon_char_parse(admins,&admins_size,","); diff --git a/source/ubinstall-gtk-keyboard.c b/source/ubinstall-gtk-keyboard.c index 659fa74..9e1c7f1 100644 --- a/source/ubinstall-gtk-keyboard.c +++ b/source/ubinstall-gtk-keyboard.c @@ -51,6 +51,11 @@ void yon_keyboard_init(main_window *widgets){ g_signal_handlers_block_by_func(G_OBJECT(widgets->KeyboardModelCombo),G_CALLBACK(on_model_changed),widgets); g_signal_handlers_block_by_func(G_OBJECT(widgets->KeyboardDefaultLayoutsSwitch),G_CALLBACK(on_layout_default_toggled),widgets); gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->KeyboardModelCombo)); + gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->KeyboardNumLockCombo)); + + gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->KeyboardNumLockCombo),NULL,DEFAULT_LABEL); + gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->KeyboardNumLockCombo),NULL,ON_LABEL); + gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->KeyboardNumLockCombo),NULL,OFF_LABEL); int size; gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->KeyboardModelCombo),DEFAULT_LABEL); config_str models = yon_config_load(get_keyboard_models_command,&size); diff --git a/source/ubinstall-gtk-network.c b/source/ubinstall-gtk-network.c index 9908e2c..75ea523 100644 --- a/source/ubinstall-gtk-network.c +++ b/source/ubinstall-gtk-network.c @@ -322,6 +322,15 @@ void yon_network_init(main_window *widgets){ gtk_entry_set_text(GTK_ENTRY(widgets->NetworkDomainPasswordEntry),domain_password); } } + { + gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->NetworkNTPCombo)); + gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->NetworkNTPCombo),NULL,DEFAULT_LABEL); + gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->NetworkNTPCombo),NULL,"DHCP"); + gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->NetworkNTPCombo),NULL,"NTP (ntp.org)"); + gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->NetworkNTPCombo),NULL,"NTP (vniiftri.ru)"); + gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->NetworkNTPCombo),NULL,MANUAL_LABEL); + gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->NetworkNTPCombo),NULL,DO_NOT_CONFIGURE_LABEL); + } if (!yon_char_is_empty(ntp)){ gtk_switch_set_active(GTK_SWITCH(widgets->NetworkNTPServerSwitch),1); gtk_widget_set_sensitive(widgets->NetworkNTPEntry,0); diff --git a/source/ubinstall-gtk-packages.c b/source/ubinstall-gtk-packages.c index 0ac87d0..18cff6b 100644 --- a/source/ubinstall-gtk-packages.c +++ b/source/ubinstall-gtk-packages.c @@ -53,6 +53,7 @@ GtkTreeIter *yon_subcategory_check(GtkTreeStore *target, GtkTreeIter *parent_ite } void yon_packages_tab_init(main_window *widgets){ + gtk_tree_store_clear(widgets->PackagesList); int size; config_str packages = yon_resource_open_file(groups_list_path,&size); for (int i=1;iSourceButton); + gtk_widget_show(widgets->BackButton); gtk_widget_set_sensitive(widgets->BackButton,1); gtk_widget_set_sensitive(widgets->NextButton,1); gtk_widget_set_sensitive(widgets->CancelInstallButton,1); @@ -418,7 +419,7 @@ enum YON_PAGES yon_recovery_get_next(main_window *widgets){ void yon_page_init(main_window *widgets, enum YON_PAGES page){ switch(page){ case YON_PAGE_WELCOME: - set_locales_list(widgets); + yon_set_locales_list(widgets); break; case YON_PAGE_CONFIG_HUB: yon_configuration_hub_init(widgets); diff --git a/source/ubinstall-gtk-region.c b/source/ubinstall-gtk-region.c index cbb8b4c..92d2d26 100644 --- a/source/ubinstall-gtk-region.c +++ b/source/ubinstall-gtk-region.c @@ -28,8 +28,11 @@ void on_zone_changed(GtkWidget *, main_window *widgets){ const char *region = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->RegionCombo)); const char *zone = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->ZoneCombo)); - char *timezone = yon_char_unite(region,"/",zone,NULL); - cc_timezone_map_set_timezone(CC_TIMEZONE_MAP(widgets->RegionMapTarget),timezone); + if (!yon_char_is_empty(region)&&!yon_char_is_empty(zone)){ + char *timezone = yon_char_unite(region,"/",zone,NULL); + cc_timezone_map_set_timezone(CC_TIMEZONE_MAP(widgets->RegionMapTarget),timezone); + free(timezone); + } g_signal_handlers_unblock_by_func(G_OBJECT(widgets->RegionMapTarget),G_CALLBACK(on_map_selection_changed),widgets); } #endif @@ -65,6 +68,8 @@ void on_map_selection_changed(GtkWidget *,CcTimezoneLocation *location,main_wind #endif void yon_region_init(main_window *widgets){ + gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->RegionCombo)); + gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->KeyboardNumLockCombo)); #ifdef TIMEZONEMAP_INCLUDE yon_debug_output("%s\n","TIMEZONEMAP enabled"); GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->RegionMapBox)); diff --git a/source/ubinstall-gtk-saving.c b/source/ubinstall-gtk-saving.c index 10bf6dd..aa13879 100644 --- a/source/ubinstall-gtk-saving.c +++ b/source/ubinstall-gtk-saving.c @@ -52,7 +52,7 @@ void on_config_global_load(GtkWidget *,main_window *widgets){ main_config.config_load_path = yon_char_new("global"); yon_load_proceed(YON_CONFIG_GLOBAL); main_config.load_mode=YON_CONFIG_GLOBAL; - // yon_main_window_update_locale(widgets); + yon_main_window_update_locale(widgets); yon_page_init(widgets,gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook))); } diff --git a/source/ubinstall-gtk-startup-apps.c b/source/ubinstall-gtk-startup-apps.c index 3ae0a4a..3014f1e 100644 --- a/source/ubinstall-gtk-startup-apps.c +++ b/source/ubinstall-gtk-startup-apps.c @@ -43,7 +43,7 @@ void on_startup_apps_remove(GtkWidget *self,main_window *widgets){ void yon_startup_apps_setup(main_window *widgets){ GtkTreeIter iter; - if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->StartupAppsList),&iter)){ + gtk_list_store_clear(widgets->StartupAppsList); int size; config_str apps = yon_resource_open_file(apps_list_path,&size); for (int i=1;iStartupAppsList,&iter,0,1,1,parsed[0],2,yon_char_return_if_exist(parsed[1],""),3,yon_char_return_if_exist(_(parsed[2]),""),-1); } } - } + char *startup = config(SERVICES_ENABLE_parameter); if (!yon_char_is_empty(startup)){ if (!strcmp(startup,"auto")){ diff --git a/source/ubinstall-gtk-startup-services.c b/source/ubinstall-gtk-startup-services.c index 4bfb3ca..b99a166 100644 --- a/source/ubinstall-gtk-startup-services.c +++ b/source/ubinstall-gtk-startup-services.c @@ -51,7 +51,7 @@ void on_startup_services_remove(GtkWidget *self,main_window *widgets){ void yon_startup_services_setup(main_window *widgets){ GtkTreeIter iter; - if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->StartupList),&iter)){ + gtk_list_store_clear(widgets->StartupList); int size; config_str services = yon_resource_open_file(services_list_path,&size); for (int i=1;iStartupList,&iter,0,1,1,parsed[0],2,yon_char_return_if_exist(parsed[1],""),3,yon_char_return_if_exist(_(parsed[2]),""),-1); } } - } + char *startup = config(SERVICES_ENABLE_parameter); if (!yon_char_is_empty(startup)){ if (!strcmp(startup,"auto")){ diff --git a/source/ubinstall-gtk-ui-lang.c b/source/ubinstall-gtk-ui-lang.c index 0333a4f..a14c223 100644 --- a/source/ubinstall-gtk-ui-lang.c +++ b/source/ubinstall-gtk-ui-lang.c @@ -4,11 +4,11 @@ void on_locale_changed(GtkWidget *,main_window *widgets){ GtkTreeIter iter; GtkTreeModel *model; if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->LanguagesTree)),&model,&iter)) return; - { - GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(widgets->InstallerLanguageList),&iter); - gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(widgets->LanguagesTree),path,0,0,0,0); - gtk_tree_path_free(path); - } + // { + // GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(widgets->InstallerLanguageList),&iter); + // gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(widgets->LanguagesTree),path,0,0,0,0); + // gtk_tree_path_free(path); + // } gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->InstallerCountryFilter)); char *config_code = config(installer_locale_parameter); if (yon_char_is_empty(config_code)){ @@ -47,7 +47,6 @@ void on_installer_language_changed(GtkWidget *self,GtkTreePath*,GtkTreeViewColum config_str parameters = yon_config_get_save_parameters_by_key(&size,installer_locale_parameter,NULL); char *command_parameters = yon_char_parsed_to_string(parameters,size," "); char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); - g_signal_handlers_block_by_func(G_OBJECT(widgets->MainWindow),G_CALLBACK(on_yon_exit),widgets); if (!system(command)){}; yon_main_window_update_locale(widgets); g_signal_handlers_block_by_func(G_OBJECT(self),G_CALLBACK(on_locale_changed),widgets); @@ -104,11 +103,12 @@ void yon_main_window_update_locale(main_window *widgets){ } } locale = setlocale(LC_ALL,locale); + yon_config_register(installer_locale_parameter,installer_locale_parameter_command,(char*)locale); // gtk_widget_destroy(widgets->MainWindow); textdomain(LocaleName); g_setenv("LANGUAGE",locale,1); - yon_update_translation(widgets->builder); + yon_update_translation(widgets); // yon_main_window_create(widgets); char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL); yon_window_config_setup(GTK_WINDOW(widgets->MainWindow)); @@ -145,7 +145,7 @@ gboolean on_languages_search_func(GtkTreeModel *model, gint ,const char *key, Gt return !(g_str_has_prefix(target_normalized,string_normalized) || g_str_has_prefix(loc_target_normalized,string_normalized)); } -void set_locales_list(main_window *widgets){ +void yon_set_locales_list(main_window *widgets){ gtk_list_store_clear(widgets->InstallerLanguageList); gtk_list_store_clear(widgets->InstallerCountryList); @@ -189,14 +189,20 @@ void set_locales_list(main_window *widgets){ 2,code, 3,_(title), -1); + } + for_iter (GTK_TREE_MODEL(widgets->InstallerLanguageList), &iter){ + char *compare_target; + gtk_tree_model_get(GTK_TREE_MODEL(widgets->InstallerLanguageList),&iter, 3, &compare_target, -1); if (!yon_char_is_empty(config_code)){ char *temp = strstr(config_code,"."); if (temp) temp[0]='\0'; - if (!strcmp(config_code,locales[i])){ + if (!strcmp(config_code,compare_target)){ + gtk_widget_realize(widgets->LanguagesTree); GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(widgets->InstallerLanguageList),&iter); gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(widgets->LanguagesTree),path,0,0,0,0); gtk_tree_path_free(path); gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->LanguagesTree)),&iter); + on_locale_changed(NULL,widgets); } } } @@ -232,25 +238,31 @@ void yon_translation_init(GtkBuilder *builder){ GSList *list = gtk_builder_get_objects(builder); GSList *iter; for (iter = list; iter; iter = iter->next){ - GtkWidget *cur_widget = NULL; + GObject *cur_widget = NULL; const char *widget_text = NULL; if (GTK_IS_BUTTON(iter->data)){ - cur_widget = GTK_WIDGET(iter->data); + cur_widget = G_OBJECT(iter->data); widget_text = yon_char_new(gtk_button_get_label(GTK_BUTTON(cur_widget))); } else if (GTK_IS_LABEL(iter->data)){ - cur_widget = GTK_WIDGET(iter->data); + cur_widget = G_OBJECT(iter->data); widget_text = yon_char_new(gtk_label_get_text(GTK_LABEL(cur_widget))); + } else if (GTK_IS_TREE_VIEW_COLUMN(iter->data)){ + cur_widget = G_OBJECT(iter->data); + widget_text = yon_char_new(gtk_tree_view_column_get_title(GTK_TREE_VIEW_COLUMN(cur_widget))); } else continue; g_object_set_data(G_OBJECT(cur_widget),"original_label",(void*)widget_text); } } -void yon_update_translation(GtkBuilder *builder){ +void yon_update_translation(main_window *widgets){ + GtkBuilder *builder = widgets->builder; GSList *list = gtk_builder_get_objects(builder); GSList *iter; for (iter = list; iter; iter = iter->next){ - if (GTK_IS_BUTTON(iter->data)){ + if (iter->data == widgets->LicenceLabel){ + yon_licence_load(widgets); + } else if (GTK_IS_BUTTON(iter->data)){ GtkWidget *cur_button = GTK_WIDGET(iter->data); char *source_label = g_object_get_data(G_OBJECT(cur_button),"original_label"); if (!yon_char_is_empty(source_label)){ @@ -263,7 +275,14 @@ void yon_update_translation(GtkBuilder *builder){ if (!yon_char_is_empty(source_label)){ gtk_label_set_text(GTK_LABEL(cur_label),_(source_label)); } - + } else if (GTK_IS_TREE_VIEW_COLUMN(iter->data)){ + GObject *cur_column = G_OBJECT(iter->data); + char *source_label = g_object_get_data(G_OBJECT(cur_column),"original_label"); + if (!yon_char_is_empty(source_label)){ + gtk_tree_view_column_set_title(GTK_TREE_VIEW_COLUMN(cur_column),_(source_label)); + } + } else if (iter->data == widgets->LanguagesTree){ + yon_set_locales_list(widgets); } } } \ No newline at end of file diff --git a/source/ubinstall-gtk-users.c b/source/ubinstall-gtk-users.c index 850f300..681e23a 100644 --- a/source/ubinstall-gtk-users.c +++ b/source/ubinstall-gtk-users.c @@ -106,6 +106,9 @@ yon_user_struct *yon_user_struct_new(){ } void yon_user_init(main_window *widgets){ + gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->UserRootPasswordCombo)); + gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->UserRootPasswordCombo),NULL,DEFAULT_LABEL); + gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->UserRootPasswordCombo),NULL,SET_PASSWORD_LABEL); yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(widgets->UserRootPasswordEntry)); char *root_password = config(root_password_parameter); char *autologin = config(autologin_parameter); diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c index 1e297e3..ab48f19 100644 --- a/source/ubinstall-gtk.c +++ b/source/ubinstall-gtk.c @@ -399,6 +399,20 @@ gboolean on_yon_exit(GtkWidget *,GdkEvent*, main_window *widgets){ return 1; } +void yon_licence_load(main_window *widgets){ + int size; + config_str parsed = NULL; + parsed = yon_file_open(licence_path,&size); + if (size){ + bind_textdomain_codeset("ublinux-init-eula","UTF-8"); + textdomain("ublinux-init-eula"); + char *licence = yon_char_parsed_to_string(parsed,size,""); + gtk_label_set_text(GTK_LABEL(widgets->LicenceLabel),_(licence)); + free(licence); + yon_char_parsed_free(parsed,size); + textdomain(LocaleName); + } +} void yon_main_window_create(main_window *widgets){ __attribute__((unused)) char *locale = setlocale(LC_ALL, "en_US.UTF-8"); @@ -931,20 +945,6 @@ void yon_main_window_create(main_window *widgets){ gtk_window_set_title(GTK_WINDOW(widgets->MainWindow),TITLE_LABEL); gtk_window_set_icon_name(GTK_WINDOW(widgets->MainWindow),icon_path); } - { - int size; - config_str parsed = NULL; - parsed = yon_file_open(licence_path,&size); - if (size){ - bind_textdomain_codeset("ublinux-init-eula","UTF-8"); - textdomain("ublinux-init-eula"); - char *licence = yon_char_parsed_to_string(parsed,size,""); - gtk_label_set_text(GTK_LABEL(widgets->LicenceLabel),_(licence)); - free(licence); - yon_char_parsed_free(parsed,size); - textdomain(LocaleName); - } - } gtk_builder_connect_signals(builder,NULL); if (!yon_char_is_empty(config(AUTOINSTALL_TYPE_INSTALL))){ gtk_widget_show(widgets->StartScenarioButton); @@ -1009,7 +1009,7 @@ main_window *yon_main_window_complete(){ yon_startup_language_init(); yon_locale_init(); - set_locales_list(widgets); + // yon_set_locales_list(widgets); // yon_main_window_update_locale(widgets); // // yon_window_config_custom_window_setup(GTK_WINDOW(widgets->MainWindow),"MainWindow"); diff --git a/source/ubinstall-gtk.h b/source/ubinstall-gtk.h index 5f244ba..5908614 100755 --- a/source/ubinstall-gtk.h +++ b/source/ubinstall-gtk.h @@ -1350,7 +1350,7 @@ source_element *yon_source_element_new(); void on_rdp_toggled(GtkWidget *self, main_window *); void on_vnc_toggled(GtkWidget *self, main_window *widgets); void yon_main_window_create(main_window *widgets); -void set_locales_list(main_window *widgets); +void yon_set_locales_list(main_window *widgets); void on_installer_language_changed(GtkWidget *self, GtkTreePath *, GtkTreeViewColumn *, main_window *widgets); gboolean on_country_filter(GtkTreeModel *self, GtkTreeIter *iter, main_window *widgets); int yon_char_parsed_compare(const void *a, const void *b); @@ -1469,5 +1469,6 @@ gboolean yon_progress_bar_start(main_window *widgets); void *yon_progress_file_buzyfy(void*); void yon_startup_language_init(); gboolean on_languages_search_func(GtkTreeModel *model, gint col,const char *key, GtkTreeIter *iter, main_window *widgets); -void yon_update_translation(GtkBuilder *builder); -void yon_translation_init(GtkBuilder *builder); \ No newline at end of file +void yon_update_translation(main_window *widgets); +void yon_translation_init(GtkBuilder *builder); +void yon_licence_load(main_window *widgets); \ No newline at end of file diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 0b67ee3..3b214dd 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -272,6 +272,9 @@ NULL) #define GROUP_LABEL _("Group:") #define APP_TABLE_LABEL _("Application") #define GROUP_TABLE_LABEL _("Group") +#define ON_LABEL _("On") +#define OFF_LABEL _("Off") +#define DO_NOT_CONFIGURE_LABEL _("Do not configure") // #define _LABEL _("Select your language:") // #define _LABEL _("Selecting additional system kernel components") @@ -285,7 +288,6 @@ NULL) // #define _LABEL _("File system type:") // #define _LABEL _("File system label:") // #define _LABEL _("Encryption:") -// #define _LABEL _("Off") // #define _LABEL _("Encryption password:") // #define _LABEL _("User name:") // #define _LABEL _("User password:") @@ -368,7 +370,6 @@ NULL) // #define _LABEL _("Domain administrator:") // #define _LABEL _("NTP Server:") // #define _LABEL _("Manual") -// #define _LABEL _("Do not configure") // #define _LABEL _("auto") // #define _LABEL _("Net interfaces") // #define _LABEL _("Installation process") @@ -414,7 +415,6 @@ NULL) // #define _LABEL _("Selecting software packages to install from the repository. Internet access is required") // #define _LABEL _("Selecting software modules to install from the repository. Internet access is required") // #define _LABEL _("Language") -// #define _LABEL _("On") // #define _LABEL _("Selecting the software group to install from the repository. Internet access is required") // #define _LABEL _("Recovery configuration has ended") // #define _LABEL _("System recovery is about to begin") diff --git a/ubinstall-gtk.glade b/ubinstall-gtk.glade index 1b7b8cb..7791b7e 100644 --- a/ubinstall-gtk.glade +++ b/ubinstall-gtk.glade @@ -4668,11 +4668,6 @@ agreement True False 0 - - Default - On - Off - True From 4b5fdc1f83dfed75ca6b3d5887c7b813603ca72d Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Fri, 23 Jan 2026 12:27:35 +0000 Subject: [PATCH 06/21] WIP localisation --- locale/kernel-modules.pot | 327 +++++++++++++++++++++++++++ locale/kernel-modules_ru.po | 424 ++++++++++++++++++++++++++++++++++++ modules-list.csv | 208 ++++++++++++++++++ 3 files changed, 959 insertions(+) create mode 100644 locale/kernel-modules.pot create mode 100644 locale/kernel-modules_ru.po create mode 100644 modules-list.csv diff --git a/locale/kernel-modules.pot b/locale/kernel-modules.pot new file mode 100644 index 0000000..be6e661 --- /dev/null +++ b/locale/kernel-modules.pot @@ -0,0 +1,327 @@ + +msgid "UBLinux module the kernel and modules" +msgstr "" + +msgid "UBLinux module headers and scripts for building modules" +msgstr "" + +msgid "UBLinux module documentation for the UBLinux kernel" +msgstr "" + +msgid "UBLinux module firmwares" +msgstr "" + +msgid "UBLinux module includes the core developer components" +msgstr "" + +msgid "UBLinux module includes basic components Xorg" +msgstr "" + +msgid "UBLinux module includes basic fonts" +msgstr "" + +msgid "UBLinux module includes graphics accelerators" +msgstr "" + +msgid "UBLinux module includes GTK libs" +msgstr "" + +msgid "UBLinux module includes Qt5 and Qt6 libs" +msgstr "" + +msgid "UBLinux module includes QT5 libs" +msgstr "" + +msgid "UBLinux module includes QT6 libs" +msgstr "" + +msgid "UBLinux module includes Xfce applications" +msgstr "" + +msgid "UBLinux module includes KDE Plasma applications" +msgstr "" + +msgid "UBLinux module includes GNOME next generation desktop shell" +msgstr "" + +msgid "UBLinux module includes MATE desktop shell" +msgstr "" + +msgid "UBLinux module includes Pantheon desktop shell" +msgstr "" + +msgid "UBLinux module includes GTK applications" +msgstr "" + +msgid "UBLinux module includes QT applications" +msgstr "" + +msgid "UBLinux module includes GTK and icons themes" +msgstr "" + +msgid "UBLinux module includes Lightdm display manager" +msgstr "" + +msgid "UBLinux module includes multimedia applications" +msgstr "" + +msgid "UBLinux module include system utilites" +msgstr "" + +msgid "UBLinux module include AnyDesk" +msgstr "" + +msgid "UBLinux module include desktop backgrounds" +msgstr "" + +msgid "UBLinux module include blender and utilities" +msgstr "" + +msgid "UBLinux module includes Chromium and some plugins" +msgstr "" + +msgid "UBLinux module includes postgresql, mariadb database and utilities" +msgstr "" + +msgid "UBLinux module includes docker and webmanager and utils" +msgstr "" + +msgid "UBLinux module include Brother printer drivers" +msgstr "" + +msgid "UBLinux module include Canon CAPT Printer Driver" +msgstr "" + +msgid "UBLinux module include Canon UFR II LIPSLX CARPS2 printer driver" +msgstr "" + +msgid "UBLinux module include Epson printer drivers" +msgstr "" + +msgid "UBLinux module include Kyocera printer drivers" +msgstr "" + +msgid "UBLinux module include Lexmark drivers" +msgstr "" + +msgid "UBLinux module include Pantum printer drivers" +msgstr "" + +msgid "UBLinux module include hplip, gutenprint, foomatic" +msgstr "" + +msgid "UBLinux module include Ricoh drivers" +msgstr "" + +msgid "UBLinux module include Samsung drivers" +msgstr "" + +msgid "UBLinux module include Xerox drivers" +msgstr "" + +msgid "UBLinux module includes education soft" +msgstr "" + +msgid "UBLinux module includes Firefox and some plugins" +msgstr "" + +msgid "UBLinux module include Java OpenJFX 17 client application platform" +msgstr "" + +msgid "UBLinux module includes OpenJDK Java 11 development kit" +msgstr "" + +msgid "UBLinux module includes OpenJDK Java 17 development kit" +msgstr "" + +msgid "UBLinux module includes OpenJDK Java 21 development kit" +msgstr "" + +msgid "UBLinux module includes OpenJDK Java 8 development kit" +msgstr "" + +msgid "UBLinux module includes some library 32-bit" +msgstr "" + +msgid "UBLinux module include LibreOffice" +msgstr "" + +msgid "UBLinux module includes dkms additionals modules" +msgstr "" + +msgid "UBLinux module include NVIDIA 470xx driver for linux" +msgstr "" + +msgid "UBLinux module include NVIDIA 390xx driver for linux" +msgstr "" + +msgid "UBLinux module includes OnlyOffice suite" +msgstr "" + +msgid "UBLinux module include apps patch" +msgstr "" + +msgid "UBLinux module includes podman and webmanager and utils" +msgstr "" + +msgid "UBLinux module include pycharm-community-edition and utilities" +msgstr "" + +msgid "UBLinux module includes QEMU, manager and utils" +msgstr "" + +msgid "UBLinux module includes R7 Office" +msgstr "" + +msgid "UBLinux module includes realvnc viewer and server" +msgstr "" + +msgid "UBLinux module includes rustdesk" +msgstr "" + +msgid "UBLinux module includes Telegram" +msgstr "" + +msgid "UBLinux module include UBPile Workflow" +msgstr "" + +msgid "UBLinux module includes agents for Linux guest" +msgstr "" + +msgid "UBLinux module includes VirtualBox and extension packs" +msgstr "" + +msgid "UBLinux module includes Web servers" +msgstr "" + +msgid "UBLinux module includes Webmin and Usermin" +msgstr "" + +msgid "UBLinux module includes interactive whiteboard soft" +msgstr "" + +msgid "UBLinux module include Winbox" +msgstr "" + +msgid "UBLinux module includes wine and utilities" +msgstr "" + +msgid "UBLinux module include Kingsoft Office (WPS Office) - an office productivity suite" +msgstr "" + +msgid "UBLinux module includes Yandex Browser and some utils" +msgstr "" + +msgid "UBLinux module the kernel and modules" +msgstr "" + +msgid "UBLinux module headers and scripts for building modules for the Meta UBlinux kernel, modules, headers and documentation" +msgstr "" + +msgid "UBLinux module includes the core developer components" +msgstr "" + +msgid "UBLinux module includes Liquidshell basic desktop shell using QtWidgets" +msgstr "" + +msgid "UBLinux module includes AMDGRU PRO driver and utilities" +msgstr "" + +msgid "UBLinux module includes anydesk" +msgstr "" + +msgid "UBLinux module includes Chromium-GOST and some plugins" +msgstr "" + +msgid "UBLinux module includes database applications" +msgstr "" + +msgid "UBLinux module includes docker and webmanager and utils" +msgstr "" + +msgid "UBLinux module include Hedgewars game similiar to Worms" +msgstr "" + +msgid "UBLinux module includes Gitea and MemCached" +msgstr "" + +msgid "UBLinux module include Gitlab CLI tools" +msgstr "" + +msgid "UBLinux module include Java OpenJFX 11 client application platform" +msgstr "" + +msgid "UBLinux module include Free Pascal and Lazarus GTK2" +msgstr "" + +msgid "UBLinux module include Free Pascal and Lazarus QT5" +msgstr "" + +msgid "UBLinux module includes LSI MegaRaid SM, StorCLI, MegaCLI and utils" +msgstr "" + +msgid "UBLinux module includes NVIDIA 340xx driver and utilities" +msgstr "" + +msgid "UBLinux module includes NVIDIA 390xx driver and utilities" +msgstr "" + +msgid "UBLinux module includes NVIDIA 470xx driver and utilities" +msgstr "" + +msgid "UBLinux module includes NVIDIA 510xx driver and utilities" +msgstr "" + +msgid "UBLinux module includes NVIDIA 515xx driver and utilities" +msgstr "" + +msgid "UBLinux module includes NVIDIA Optimus" +msgstr "" + +msgid "UBLinux module includes OnlyOffice DocumentServer suite" +msgstr "" + +msgid "UBLinux module includes Opera and some plugins" +msgstr "" + +msgid "UBLinux module includes patch" +msgstr "" + +msgid "UBLinux module includes QEMU headless and utils" +msgstr "" + +msgid "UBLinux module include QT4" +msgstr "" + +msgid "UBLinux module include rustdesk-server" +msgstr "" + +msgid "UBLinux module include Skype" +msgstr "" + +msgid "UBLinux module include Tor utils and browser" +msgstr "" + +msgid "UBLinux module includes agents for Linux guest without X support" +msgstr "" + +msgid "UBLinux module includes VirtualBox headless and extension packs" +msgstr "" + +msgid "UBLinux module includes phpvirtualbox for VirtualBox" +msgstr "" + +msgid "UBLinux module include Vivaldi browser" +msgstr "" + +msgid "UBLinux module includes VMware-Workstation 16" +msgstr "" + +msgid "UBLinux module include Wiki.js" +msgstr "" + +msgid "UBLinux module include X11 remote utils" +msgstr "" + +msgid "UBLinux module include Zoom" +msgstr "" diff --git a/locale/kernel-modules_ru.po b/locale/kernel-modules_ru.po new file mode 100644 index 0000000..9a38cb2 --- /dev/null +++ b/locale/kernel-modules_ru.po @@ -0,0 +1,424 @@ +# Language translations for ubinstal package. +# Copyright (C) 2022, UBTech LLC +# This file is distributed under the same license as the ubinstal package. +# UBLinux Team , 2022 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: ubinstal 1.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-05-22 16:12+0600\n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +UBLinux module the kernel and modules" +msgstr "Модуль UBLinux: ядро ​​и модули" + +msgid "UBLinux module headers and scripts for building modules" +msgstr "Заголовочные файлы и скрипты для сборки модулей UBLinux" + +msgid "UBLinux module documentation for the UBLinux kernel" +msgstr "Документация по модулю UBLinux для ядра UBLinux" + +msgid "UBLinux module firmwares" +msgstr "Прошивки модуля UBLinux" + +msgid "UBLinux module includes the core developer components" +msgstr "Модуль UBLinux включает основные компоненты для разработчиков" + +msgid "UBLinux module includes basic components Xorg" +msgstr "Модуль UBLinux включает базовые компоненты Xorg" + +msgid "UBLinux module includes basic fonts" +msgstr "Модуль UBLinux включает базовые шрифты" + +msgid "UBLinux module includes graphics accelerators" +msgstr "Модуль UBLinux включает графические ускорители" + +msgid "UBLinux module includes GTK libs" +msgstr "Модуль UBLinux включает библиотеки GTK" + +msgid "UBLinux module includes Qt5 and Qt6 libs" +msgstr "Модуль UBLinux включает библиотеки Qt5 и Qt6" + +msgid "UBLinux module includes QT5 libs" +msgstr "Модуль UBLinux включает библиотеки QT5" + +msgid "UBLinux module includes QT6 libs" +msgstr "Модуль UBLinux включает библиотеки QT6" + +msgid "UBLinux module includes Xfce applications" +msgstr "Модуль UBLinux включает приложения Xfce" + +msgid "UBLinux module includes KDE Plasma applications" +msgstr "Модуль UBLinux включает приложения KDE Plasma" + +msgid "UBLinux module includes GNOME next generation desktop shell" +msgstr "Модуль UBLinux включает оболочку рабочего стола GNOME следующего поколения" + +msgid "UBLinux module includes MATE desktop shell" +msgstr "Модуль UBLinux включает оболочку рабочего стола MATE" + +msgid "UBLinux module includes Pantheon desktop shell" +msgstr "Модуль UBLinux включает оболочку рабочего стола Pantheon" + +msgid "UBLinux module includes GTK applications" +msgstr "Модуль UBLinux включает приложения GTK" + +msgid "UBLinux module includes QT applications" +msgstr "Модуль UBLinux включает приложения QT" + +msgid "UBLinux module includes GTK and icons themes" +msgstr "Модуль UBLinux включает темы GTK и значков" + +msgid "UBLinux module includes Lightdm display manager" +msgstr "Модуль UBLinux включает Менеджер дисплея Lightdm" + +msgid "UBLinux module includes multimedia applications" +msgstr "Модуль UBLinux включает мультимедийные приложения" + +msgid "UBLinux module include system utilites" +msgstr "Модуль UBLinux включает системные утилиты" + +msgid "UBLinux module include AnyDesk" +msgstr "Модуль UBLinux включает AnyDesk" + +msgid "UBLinux module include desktop backgrounds" +msgstr "Модуль UBLinux включает фоновые изображения рабочего стола" + +msgid "UBLinux module include blender and utilities" +msgstr "Модуль UBLinux включает Blender и утилиты" + +msgid "UBLinux module includes Chromium and some plugins" +msgstr "Модуль UBLinux включает Chromium и некоторые плагины" + +msgid "UBLinux module includes postgresql, mariadb database and utilities" +msgstr "" + +msgid "UBLinux module includes docker and webmanager and utils" +msgstr "" + +msgid "UBLinux module include Brother printer drivers" +msgstr "" + +msgid "UBLinux module include Canon CAPT Printer Driver" +msgstr "" + +msgid "UBLinux module include Canon UFR II LIPSLX CARPS2 printer driver" +msgstr "" + +msgid "UBLinux module include Epson printer drivers" +msgstr "" + +msgid "UBLinux module include Kyocera printer drivers" +msgstr "" + +msgid "UBLinux module include Lexmark drivers" +msgstr "" + +msgid "UBLinux module include Pantum printer drivers" +msgstr "" + +msgid "UBLinux module include hplip, gutenprint, foomatic" +msgstr "" + +msgid "UBLinux module include Ricoh drivers" +msgstr "" + +msgid "UBLinux module include Samsung drivers" +msgstr "" + +msgid "UBLinux module include Xerox drivers" +msgstr "" + +msgid "UBLinux module includes education soft" +msgstr "" + +msgid "UBLinux module includes Firefox and some plugins" +msgstr "" + +msgid "UBLinux module include Java OpenJFX 17 client application platform" +msgstr "" + +msgid "UBLinux module includes OpenJDK Java 11 development kit" +msgstr "" + +msgid "UBLinux module includes OpenJDK Java 17 development kit" +msgstr "" + +msgid "UBLinux module includes OpenJDK Java 21 development kit" +msgstr "" + +msgid "UBLinux module includes OpenJDK Java 8 development kit" +msgstr "" + +msgid "UBLinux module includes some library 32-bit" +msgstr "" + +msgid "UBLinux module include LibreOffice" +msgstr "" + +msgid "UBLinux module includes dkms additionals modules" +msgstr "" + +msgid "UBLinux module include NVIDIA 470xx driver for linux" +msgstr "" + +msgid "UBLinux module include NVIDIA 390xx driver for linux" +msgstr "" + +msgid "UBLinux module includes OnlyOffice suite" +msgstr "" + +msgid "UBLinux module include apps patch" +msgstr "" + +msgid "UBLinux module includes podman and webmanager and utils" +msgstr "" + +msgid "UBLinux module include pycharm-community-edition and utilities" +msgstr "" + +msgid "UBLinux module includes QEMU, manager and utils" +msgstr "" + +msgid "UBLinux module includes R7 Office" +msgstr "" + +msgid "UBLinux module includes realvnc viewer and server" +msgstr "" + +msgid "UBLinux module includes rustdesk" +msgstr "" + +msgid "UBLinux module includes Telegram" +msgstr "" + +msgid "UBLinux module include UBPile Workflow" +msgstr "" + +msgid "UBLinux module includes agents for Linux guest" +msgstr "" + +msgid "UBLinux module includes VirtualBox and extension packs" +msgstr "" + +msgid "UBLinux module includes Web servers" +msgstr "" + +msgid "UBLinux module includes Webmin and Usermin" +msgstr "" + +msgid "UBLinux module includes interactive whiteboard soft" +msgstr "" + +msgid "UBLinux module include Winbox" +msgstr "" + +msgid "UBLinux module includes wine and utilities" +msgstr "" + +msgid "UBLinux module include Kingsoft Office (WPS Office) - an office productivity suite" +msgstr "" + +msgid "UBLinux module includes Yandex Browser and some utils" +msgstr "" + +msgid "UBLinux module the kernel and modules" +msgstr "" + +msgid "UBLinux module headers and scripts for building modules for the Meta UBlinux kernel, modules, headers and documentation" +msgstr "" + +msgid "UBLinux module includes the core developer components" +msgstr "" + +msgid "UBLinux module includes Liquidshell basic desktop shell using QtWidgets" +msgstr "" + +msgid "UBLinux module includes AMDGRU PRO driver and utilities" +msgstr "" + +msgid "UBLinux module includes anydesk" +msgstr "" + +msgid "UBLinux module includes Chromium-GOST and some plugins" +msgstr "" + +msgid "UBLinux module includes database applications" +msgstr "" + +msgid "UBLinux module includes docker and webmanager and utils" +msgstr "" + +msgid "UBLinux module include Hedgewars game similiar to Worms" +msgstr "" + +msgid "UBLinux module includes Gitea and MemCached" +msgstr "" + +msgid "UBLinux module include Gitlab CLI tools" +msgstr "" + +msgid "UBLinux module include Java OpenJFX 11 client application platform" +msgstr "" + +msgid "UBLinux module include Free Pascal and Lazarus GTK2" +msgstr "" + +msgid "UBLinux module include Free Pascal and Lazarus QT5" +msgstr "" + +msgid "UBLinux module includes LSI MegaRaid SM, StorCLI, MegaCLI and utils" +msgstr "" + +msgid "UBLinux module includes NVIDIA 340xx driver and utilities" +msgstr "" + +msgid "UBLinux module includes NVIDIA 390xx driver and utilities" +msgstr "" + +msgid "UBLinux module includes NVIDIA 470xx driver and utilities" +msgstr "" + +msgid "UBLinux module includes NVIDIA 510xx driver and utilities" +msgstr "" + +msgid "UBLinux module includes NVIDIA 515xx driver and utilities" +msgstr "" + +msgid "UBLinux module includes NVIDIA Optimus" +msgstr "" + +msgid "UBLinux module includes OnlyOffice DocumentServer suite" +msgstr "" + +msgid "UBLinux module includes Opera and some plugins" +msgstr "" + +msgid "UBLinux module includes patch" +msgstr "" + +msgid "UBLinux module includes QEMU headless and utils" +msgstr "" + +msgid "UBLinux module include QT4" +msgstr "" + +msgid "UBLinux module include rustdesk-server" +msgstr "" + +msgid "UBLinux module include Skype" +msgstr "" + +msgid "UBLinux module include Tor utils and browser" +msgstr "" + +msgid "UBLinux module includes agents for Linux guest without X support" +msgstr "" + +msgid "UBLinux module includes VirtualBox headless and extension packs" +msgstr "" + +msgid "UBLinux module includes phpvirtualbox for VirtualBox" +msgstr "" + +msgid "UBLinux module include Vivaldi browser" +msgstr "" + +msgid "UBLinux module includes VMware-Workstation 16" +msgstr "" + +msgid "UBLinux module include Wiki.js" +msgstr "" + +msgid "UBLinux module include X11 remote utils" +msgstr "" + +msgid "UBLinux module include Zoommsgid "" +msgstr "" + + +Модуль UBLinux включает PostgreSQL, базу данных MariaDB и утилиты +Модуль UBLinux включает Docker, WebManager и утилиты +Модуль UBLinux включает драйверы принтеров Brother +Модуль UBLinux включает драйвер принтера Canon CAPT +Модуль UBLinux включает драйвер принтера Canon UFR II LIPSLX CARPS2 +Модуль UBLinux включает драйверы принтеров Epson +Модуль UBLinux включает драйверы принтеров Kyocera +Модуль UBLinux включает драйверы Lexmark +Модуль UBLinux включает драйверы принтеров Pantum +Модуль UBLinux включает hplip, gutenprint, foomatic +Модуль UBLinux включает драйверы Ricoh +Модуль UBLinux включает драйверы Samsung +Модуль UBLinux включает Xerox драйверы +Модуль UBLinux включает образовательное программное обеспечение +Модуль UBLinux включает Firefox и некоторые плагины +Модуль UBLinux включает платформу клиентских приложений Java OpenJFX 17 +Модуль UBLinux включает комплект разработки OpenJDK Java 11 +Модуль UBLinux включает комплект разработки OpenJDK Java 17 +Модуль UBLinux включает комплект разработки OpenJDK Java 21 +Модуль UBLinux включает комплект разработки OpenJDK Java 8 +Модуль UBLinux включает некоторые 32-битные библиотеки +Модуль UBLinux включает LibreOffice +Модуль UBLinux включает дополнительные модули dkms +Модуль UBLinux включает драйвер NVIDIA 470xx для Linux +Модуль UBLinux включает драйвер NVIDIA 390xx для Linux +Модуль UBLinux включает пакет OnlyOffice +Модуль UBLinux включает патчи для приложений +Модуль UBLinux включает podman и webmanager и утилиты +Модуль UBLinux включает pycharm-community-edition и утилиты +Модуль UBLinux включает QEMU, менеджер и утилиты +Модуль UBLinux включает R7 Office +Модуль UBLinux включает средство просмотра и сервер RealVNC +Модуль UBLinux включает RustDesk +Модуль UBLinux включает Telegram +Модуль UBLinux включает UBPile Workflow +Модуль UBLinux включает агенты для гостевой системы Linux +Модуль UBLinux включает VirtualBox и пакеты расширений +Модуль UBLinux включает веб-серверы +Модуль UBLinux включает Webmin и Usermin +Модуль UBLinux включает интерактивную доску +Модуль UBLinux включает Winbox +Модуль UBLinux включает Wine и утилиты +Модуль UBLinux включает Kingsoft Office (WPS Office) — офисный пакет +Модуль UBLinux включает Yandex Browser и некоторые утилиты +Модуль UBLinux включает ядро ​​и модули +Модуль UBLinux включает заголовочные файлы и скрипты для сборки модулей для ядра Meta UBlinux, модули, заголовочные файлы и документацию +Модуль UBLinux включает основные компоненты для разработчиков +Модуль UBLinux включает базовую оболочку рабочего стола Liquidshell с использованием QtWidgets +Модуль UBLinux включает драйвер AMDGRU PRO и утилиты +Модуль UBLinux включает anydesk +Модуль UBLinux включает Chromium-GOST и некоторые плагины +Модуль UBLinux включает приложения для работы с базами данных +Модуль UBLinux включает docker, webmanager и утилиты +Модуль UBLinux включает игру Hedgewars, похожую на Worms +Модуль UBLinux включает Gitea и MemCached +Модуль UBLinux включает инструменты командной строки Gitlab +Модуль UBLinux включает платформу клиентских приложений Java OpenJFX 11 +Модуль UBLinux включает Free Pascal и Lazarus GTK2 +Модуль UBLinux включает Free Pascal и Lazarus QT5 +Модуль UBLinux включает LSI MegaRaid SM, StorCLI, MegaCLI и утилиты +Модуль UBLinux включает драйвер NVIDIA 340xx и утилиты +Модуль UBLinux включает драйвер NVIDIA 390xx и утилиты +Модуль UBLinux включает NVIDIA Драйвер и утилиты для NVIDIA 470xx +Модуль UBLinux включает драйвер и утилиты для NVIDIA 510xx +Модуль UBLinux включает драйвер и утилиты для NVIDIA 515xx +Модуль UBLinux включает NVIDIA Optimus +Модуль UBLinux включает пакет OnlyOffice DocumentServer +Модуль UBLinux включает Opera и некоторые плагины +Модуль UBLinux включает патч +Модуль UBLinux включает QEMU headless и утилиты +Модуль UBLinux включает QT4 +Модуль UBLinux включает rustdesk-server +Модуль UBLinux включает Skype +Модуль UBLinux включает утилиты и браузер Tor +Модуль UBLinux включает агенты для гостевой системы Linux без поддержки X +Модуль UBLinux включает VirtualBox headless и пакеты расширений +Модуль UBLinux включает phpvirtualbox f \ No newline at end of file diff --git a/modules-list.csv b/modules-list.csv new file mode 100644 index 0000000..c09728f --- /dev/null +++ b/modules-list.csv @@ -0,0 +1,208 @@ +OS_VERSION_ID;PACKAGE_UBM;NAME_UBM;TAG_UBM;DESCRIPTION_UBM +2405;ubm-001-linux515;001-linux515-*-*-*.ubm;base;UBLinux module the kernel and modules +2405;ubm-001-linux61;001-linux61-*-*-*.ubm;base;UBLinux module the kernel and modules +2405;ubm-001-linux66;001-linux66-*-*-*.ubm;base;UBLinux module the kernel and modules +2405;ubm-002-linux515-headers;002-linux515-headers-*-*-*.ubm;base;UBLinux module headers and scripts for building modules +2405;ubm-002-linux61-headers;002-linux61-headers-*-*-*.ubm;base;UBLinux module headers and scripts for building modules +2405;ubm-002-linux66-headers;002-linux66-headers-*-*-*.ubm;base;UBLinux module headers and scripts for building modules +2405;ubm-003-linux515-docs;003-linux515-docs-*-*-*.ubm;base;UBLinux module documentation for the UBLinux kernel +2405;ubm-003-linux61-docs;003-linux61-docs-*-*-*.ubm;base;UBLinux module documentation for the UBLinux kernel +2405;ubm-003-linux66-docs;003-linux66-docs-*-*-*.ubm;base;UBLinux module documentation for the UBLinux kernel +2405;ubm-004-linux-firmware;004-linux-firmware-*-*-*.ubm;base;UBLinux module firmwares +2405;ubm-010-core;010-core-*-*-*.ubm;base;UBLinux module includes the core developer components +2405;ubm-010-core-devel;010-core-devel-*-*-*.ubm;base;UBLinux module includes the core developer components +2405;ubm-020-xorg-base;020-xorg-base-*-*-*.ubm;base;UBLinux module includes basic components Xorg +2405;ubm-021-xorg-fonts;021-xorg-fonts-*-*-*.ubm;base;UBLinux module includes basic fonts +2405;ubm-025-xorg-gl;025-xorg-gl-*-*-*.ubm;base;UBLinux module includes graphics accelerators +2405;ubm-030-xorg-gtk;030-xorg-gtk-*-*-*.ubm;base;UBLinux module includes GTK libs +2405;ubm-035-xorg-qt;035-xorg-qt-*-*-*.ubm;base;UBLinux module includes Qt5 and Qt6 libs +2405;ubm-036-xorg-qt5;036-xorg-qt5-*-*-*.ubm;base;UBLinux module includes QT5 libs +2405;ubm-037-xorg-qt6;037-xorg-qt6-*-*-*.ubm;base;UBLinux module includes QT6 libs +2405;ubm-040-xorg-xfce;040-xorg-xfce-*-*-*.ubm;base;UBLinux module includes Xfce applications +2405;ubm-041-xorg-plasma;041-xorg-plasma-*-*-*.ubm;base;UBLinux module includes KDE Plasma applications +2405;ubm-042-xorg-gnome;042-xorg-gnome-*-*-*.ubm;base;UBLinux module includes GNOME next generation desktop shell +2405;ubm-043-xorg-mate;043-xorg-mate-*-*-*.ubm;base;UBLinux module includes MATE desktop shell +2405;ubm-045-xorg-pantheon;045-xorg-pantheon-*-*-*.ubm;base;UBLinux module includes Pantheon desktop shell +2405;ubm-050-xorg-gtk-app;050-xorg-gtk-app-*-*-*.ubm;base;UBLinux module includes GTK applications +2405;ubm-055-xorg-qt-app;055-xorg-qt-app-*-*-*.ubm;base;UBLinux module includes QT applications +2405;ubm-060-xorg-theme;060-xorg-theme-*-*-*.ubm;base;UBLinux module includes GTK and icons themes +2405;ubm-070-dm-lightdm;070-dm-lightdm-*-*-*.ubm;base;UBLinux module includes Lightdm display manager +2405;ubm-080-multimedia;080-multimedia-*-*-*.ubm;base;UBLinux module includes multimedia applications +2405;ubm-100-ublinux;100-ublinux-*-*-*.ubm;base;UBLinux module include system utilites +2405;ubm-anydesk;anydesk-*-*-*.ubm;extra;UBLinux module include AnyDesk +2405;ubm-backgrounds;backgrounds-*-*-*.ubm;extra;UBLinux module include desktop backgrounds +2405;ubm-blender;blender-*-*-*.ubm;extra;UBLinux module include blender and utilities +2405;ubm-chromium;chromium-*-*-*.ubm;extra;UBLinux module includes Chromium and some plugins +2405;ubm-chromium-gost;chromium-gost-*-*-*.ubm;extra;UBLinux module includes Chromium and some plugins +2405;ubm-database;database-*-*-*.ubm;extra;UBLinux module includes postgresql, mariadb database and utilities +2405;ubm-docker;docker-*-*-*.ubm;extra;UBLinux module includes docker and webmanager and utils +2405;ubm-drv-brother;drv-brother-*-*-*.ubm;extra;UBLinux module include Brother printer drivers +2405;ubm-drv-canon-capt;drv-canon-capt-*-*-*.ubm;extra;UBLinux module include Canon CAPT Printer Driver +2405;ubm-drv-canon-ufrii;drv-canon-ufrii-*-*-*.ubm;extra;UBLinux module include Canon UFR II LIPSLX CARPS2 printer driver +2405;ubm-drv-epson;drv-epson-*-*-*.ubm;extra;UBLinux module include Epson printer drivers +2405;ubm-drv-kyocera;drv-kyocera-*-*-*.ubm;extra;UBLinux module include Kyocera printer drivers +2405;ubm-drv-lexmark;drv-lexmark-*-*-*.ubm;extra;UBLinux module include Lexmark drivers +2405;ubm-drv-pantum;drv-pantum-*-*-*.ubm;extra;UBLinux module include Pantum printer drivers +2405;ubm-drv-printer;drv-printer-*-*-*.ubm;extra;UBLinux module include hplip, gutenprint, foomatic +2405;ubm-drv-ricoh;drv-ricoh-*-*-*.ubm;extra;UBLinux module include Ricoh drivers +2405;ubm-drv-samsung;drv-samsung-*-*-*.ubm;extra;UBLinux module include Samsung drivers +2405;ubm-drv-xerox;drv-xerox-*-*-*.ubm;extra;UBLinux module include Xerox drivers +2405;ubm-education;education-*-*-*.ubm;extra;UBLinux module includes education soft +2405;ubm-firefox;firefox-*-*-*.ubm;extra;UBLinux module includes Firefox and some plugins +2405;ubm-java17-openjfx;java17-openjfx-*-*-*.ubm;extra;UBLinux module include Java OpenJFX 17 client application platform +2405;ubm-jdk11;jdk11-*-*-*.ubm;extra;UBLinux module includes OpenJDK Java 11 development kit +2405;ubm-jdk17;jdk17-*-*-*.ubm;extra;UBLinux module includes OpenJDK Java 17 development kit +2405;ubm-jdk21;jdk21-*-*-*.ubm;extra;UBLinux module includes OpenJDK Java 21 development kit +2405;ubm-jdk8;jdk8-*-*-*.ubm;extra;UBLinux module includes OpenJDK Java 8 development kit +2405;ubm-lib32;lib32-*-*-*.ubm;extra;UBLinux module includes some library 32-bit +2405;ubm-libreoffice;libreoffice-*-*-*.ubm;extra;UBLinux module include LibreOffice +2405;ubm-linux515-dkms;linux515-dkms-*-*-*.ubm;extra;UBLinux module includes dkms additionals modules +2405;ubm-linux515-nvidia;linux515-nvidia-*-*-*.ubm;extra;UBLinux module include NVIDIA 470xx driver for linux +2405;ubm-linux515-nvidia-390xx;linux515-nvidia-390xx-*-*-*.ubm;extra;UBLinux module include NVIDIA 390xx driver for linux +2405;ubm-linux515-nvidia-470xx;linux515-nvidia-470xx-*-*-*.ubm;extra;UBLinux module include NVIDIA 470xx driver for linux +2405;ubm-linux61-dkms;linux61-dkms-*-*-*.ubm;extra;UBLinux module includes dkms additionals modules +2405;ubm-linux61-nvidia;linux61-nvidia-*-*-*.ubm;extra;UBLinux module include NVIDIA 470xx driver for linux +2405;ubm-linux61-nvidia-390xx;linux61-nvidia-390xx-*-*-*.ubm;extra;UBLinux module include NVIDIA 390xx driver for linux +2405;ubm-linux61-nvidia-470xx;linux61-nvidia-470xx-*-*-*.ubm;extra;UBLinux module include NVIDIA 470xx driver for linux +2405;ubm-linux61-r8168-8136;linux61-r8168-8136-*-*-*.ubm;extra;UBLinux module includes dkms additionals modules +2405;ubm-linux66-dkms;linux66-dkms-*-*-*.ubm;extra;UBLinux module includes dkms additionals modules +2405;ubm-onlyoffice;onlyoffice-*-*-*.ubm;extra;UBLinux module includes OnlyOffice suite +2405;ubm-patch;patch-*-*-*.ubm;extra;UBLinux module include apps patch +2405;ubm-podman;podman-*-*-*.ubm;extra;UBLinux module includes podman and webmanager and utils +2405;ubm-pycharm;pycharm-*-*-*.ubm;extra;UBLinux module include pycharm-community-edition and utilities +2405;ubm-qaratms-ru;qaratms-ru-*-*-*.ubm;extra;UBLinux module include pycharm-community-edition and utilities +2405;ubm-qemu;qemu-*-*-*.ubm;extra;UBLinux module includes QEMU, manager and utils +2405;ubm-r7-office;r7-office-*-*-*.ubm;extra;UBLinux module includes R7 Office +2405;ubm-realvnc;realvnc-*-*-*.ubm;extra;UBLinux module includes realvnc viewer and server +2405;ubm-rustdesk;rustdesk-*-*-*.ubm;extra;UBLinux module includes rustdesk +2405;ubm-rustdesk-server;rustdesk-server-*-*-*.ubm;extra;UBLinux module includes rustdesk +2405;ubm-telegram;telegram-*-*-*.ubm;extra;UBLinux module includes Telegram +2405;ubm-ubpile-workflow;ubpile-workflow-*-*-*.ubm;extra;UBLinux module include UBPile Workflow +2405;ubm-virtual-guest;virtual-guest-*-*-*.ubm;extra;UBLinux module includes agents for Linux guest +2405;ubm-virtualbox-host;virtualbox-host-*-*-*.ubm;extra;UBLinux module includes VirtualBox and extension packs +2405;ubm-web;web-*-*-*.ubm;extra;UBLinux module includes Web servers +2405;ubm-webmin;webmin-*-*-*.ubm;extra;UBLinux module includes Webmin and Usermin +2405;ubm-whiteboard;whiteboard-*-*-*.ubm;extra;UBLinux module includes interactive whiteboard soft +2405;ubm-winbox;winbox-*-*-*.ubm;extra;UBLinux module include Winbox +2405;ubm-wine;wine-*-*-*.ubm;extra;UBLinux module includes wine and utilities +2405;ubm-wps-office;wps-office-*-*-*.ubm;extra;UBLinux module include Kingsoft Office (WPS Office) - an office productivity suite +2405;ubm-yandex-browser;yandex-browser-*-*-*.ubm;extra;UBLinux module includes Yandex Browser and some utils +2204;ubm-001-linux;001-linux-*-*-*.ubm;base;UBLinux module the kernel and modules +2204;ubm-001-linux515;001-linux515-*-*-*.ubm;base;UBLinux module the kernel and modules +2204;ubm-001-linux61;001-linux61-*-*-*.ubm;base;UBLinux module the kernel and modules +2204;ubm-001-linux66;001-linux66-*-*-*.ubm;base;UBLinux module the kernel and modules +2204;ubm-002-linux-headers;002-linux-headers-*-*-*.ubm;base;UBLinux module headers and scripts for building modules for the Meta UBlinux kernel, modules, headers and documentation +2204;ubm-002-linux515-headers;002-linux515-headers-*-*-*.ubm;base;UBLinux module headers and scripts for building modules +2204;ubm-002-linux61-headers;002-linux61-headers-*-*-*.ubm;base;UBLinux module headers and scripts for building modules +2204;ubm-002-linux66-headers;002-linux66-headers-*-*-*.ubm;base;UBLinux module headers and scripts for building modules +2204;ubm-003-linux-docs;003-linux-docs-*-*-*.ubm;base;UBLinux module documentation for the UBLinux kernel +2204;ubm-003-linux515-docs;003-linux515-docs-*-*-*.ubm;base;UBLinux module documentation for the UBLinux kernel +2204;ubm-003-linux61-docs;003-linux61-docs-*-*-*.ubm;base;UBLinux module documentation for the UBLinux kernel +2204;ubm-003-linux66-docs;003-linux66-docs-*-*-*.ubm;base;UBLinux module documentation for the UBLinux kernel +2204;ubm-004-linux-firmware;004-linux-firmware-*-*-*.ubm;base;UBLinux module firmwares +2204;ubm-010-core;010-core-*-*-*.ubm;base;UBLinux module includes the core developer components +2204;ubm-010-core-devel;010-core-devel-*-*-*.ubm;base;UBLinux module includes the core developer components +2204;ubm-020-xorg-base;020-xorg-base-*-*-*.ubm;base;UBLinux module includes basic components Xorg +2204;ubm-021-xorg-fonts;021-xorg-fonts-*-*-*.ubm;base;UBLinux module includes basic fonts +2204;ubm-025-xorg-gl;025-xorg-gl-*-*-*.ubm;base;UBLinux module includes graphics accelerators +2204;ubm-030-xorg-gtk;030-xorg-gtk-*-*-*.ubm;base;UBLinux module includes GTK libs +2204;ubm-035-xorg-qt5;035-xorg-qt5-*-*-*.ubm;base;UBLinux module includes QT5 libs +2204;ubm-036-xorg-qt6;036-xorg-qt6-*-*-*.ubm;base;UBLinux module includes QT6 libs +2204;ubm-040-xorg-xfce;040-xorg-xfce-*-*-*.ubm;base;UBLinux module includes Xfce applications +2204;ubm-041-xorg-plasma;041-xorg-plasma-*-*-*.ubm;base;UBLinux module includes KDE Plasma applications +2204;ubm-042-xorg-gnome;042-xorg-gnome-*-*-*.ubm;base;UBLinux module includes GNOME next generation desktop shell +2204;ubm-043-xorg-mate;043-xorg-mate-*-*-*.ubm;base;UBLinux module includes MATE desktop shell +2204;ubm-045-xorg-pantheon;045-xorg-pantheon-*-*-*.ubm;base;UBLinux module includes Pantheon desktop shell +2204;ubm-049-xorg-liquidshell;049-xorg-liquidshell-*-*-*.ubm;base;UBLinux module includes Liquidshell basic desktop shell using QtWidgets +2204;ubm-050-xorg-gtk-app;050-xorg-gtk-app-*-*-*.ubm;base;UBLinux module includes GTK applications +2204;ubm-055-xorg-qt-app;055-xorg-qt-app-*-*-*.ubm;base;UBLinux module includes QT applications +2204;ubm-060-xorg-theme;060-xorg-theme-*-*-*.ubm;base;UBLinux module includes GTK and icons themes +2204;ubm-070-dm-lightdm;070-dm-lightdm-*-*-*.ubm;base;UBLinux module includes Lightdm display manager +2204;ubm-080-multimedia;080-multimedia-*-*-*.ubm;base;UBLinux module includes multimedia applications +2204;ubm-100-ublinux;100-ublinux-*-*-*.ubm;base;UBLinux module include system utilites +2204;ubm-amdgpu-pro;amdgpu-pro-*-*-*.ubm;extra;UBLinux module includes AMDGRU PRO driver and utilities +2204;ubm-anydesk;anydesk-*-*-*.ubm;extra;UBLinux module includes anydesk +2204;ubm-backgrounds;backgrounds-*-*-*.ubm;extra;UBLinux module include desktop backgrounds +2204;ubm-blender;blender-*-*-*.ubm;extra;UBLinux module includes wine and utilities +2204;ubm-chromium;chromium-*-*-*.ubm;extra;UBLinux module includes Chromium-GOST and some plugins +2204;ubm-chromium-gost;chromium-gost-*-*-*.ubm;extra;UBLinux module includes Chromium-GOST and some plugins +2204;ubm-database;database-*-*-*.ubm;extra;UBLinux module includes database applications +2204;ubm-docker;docker-*-*-*.ubm;extra;UBLinux module includes docker and webmanager and utils +2204;ubm-drv-brother;drv-brother-*-*-*.ubm;extra;UBLinux module include Brother printer drivers +2204;ubm-drv-canon-capt;drv-canon-capt-*-*-*.ubm;extra;UBLinux module include Canon CAPT Printer Driver +2204;ubm-drv-canon-ufrii;drv-canon-ufrii-*-*-*.ubm;extra;UBLinux module include Canon UFR II LIPSLX CARPS2 printer driver +2204;ubm-drv-epson;drv-epson-*-*-*.ubm;extra;UBLinux module include Epson printer drivers +2204;ubm-drv-kyocera;drv-kyocera-*-*-*.ubm;extra;UBLinux module include Kyocera printer drivers +2204;ubm-drv-lexmark;drv-lexmark-*-*-*.ubm;extra;UBLinux module include Lexmark drivers +2204;ubm-drv-pantum;drv-pantum-*-*-*.ubm;extra;UBLinux module include Pantum printer drivers +2204;ubm-drv-printer;drv-printer-*-*-*.ubm;extra;UBLinux module include hplip, gutenprint, foomatic +2204;ubm-drv-ricoh;drv-ricoh-*-*-*.ubm;extra;UBLinux module include Ricoh drivers +2204;ubm-drv-samsung;drv-samsung-*-*-*.ubm;extra;UBLinux module include Samsung drivers +2204;ubm-drv-xerox;drv-xerox-*-*-*.ubm;extra;UBLinux module include Xerox drivers +2204;ubm-firefox;firefox-*-*-*.ubm;extra;UBLinux module includes Firefox and some plugins +2204;ubm-gambas3;gambas3-*-*-*.ubm;extra;UBLinux module includes Gambas3 and components +2204;ubm-game-hedgewars;game-hedgewars-*-*-*.ubm;extra;UBLinux module include Hedgewars game similiar to Worms +2204;ubm-game-warfork;game-warfork-*-*-*.ubm;extra;UBLinux module include Hedgewars game similiar to Worms +2204;ubm-gitea;gitea-*-*-*.ubm;extra;UBLinux module includes Gitea and MemCached +2204;ubm-gitlab;gitlab-*-*-*.ubm;extra;UBLinux module include Gitlab CLI tools +2204;ubm-gitlab-cli;gitlab-cli-*-*-*.ubm;extra;UBLinux module include Gitlab CLI tools +2204;ubm-java11-openjfx;java11-openjfx-*-*-*.ubm;extra;UBLinux module include Java OpenJFX 11 client application platform +2204;ubm-java17-openjfx;java17-openjfx-*-*-*.ubm;extra;UBLinux module include Java OpenJFX 17 client application platform +2204;ubm-jdk11;jdk11-*-*-*.ubm;extra;UBLinux module includes OpenJDK Java 11 development kit +2204;ubm-jdk17;jdk17-*-*-*.ubm;extra;UBLinux module includes OpenJDK Java 17 development kit +2204;ubm-jdk8;jdk8-*-*-*.ubm;extra;UBLinux module includes OpenJDK Java 8 development kit +2204;ubm-lazarus-gtk2;lazarus-gtk2-*-*-*.ubm;extra;UBLinux module include Free Pascal and Lazarus GTK2 +2204;ubm-lazarus-qt5;lazarus-qt5-*-*-*.ubm;extra;UBLinux module include Free Pascal and Lazarus QT5 +2204;ubm-lib32;lib32-*-*-*.ubm;extra;UBLinux module includes some library 32-bit +2204;ubm-libreoffice;libreoffice-*-*-*.ubm;extra;UBLinux module includes rustdesk +2204;ubm-linux-dkms;linux-dkms-*-*-*.ubm;extra;UBLinux module includes dkms additionals modules +2204;ubm-linux515-dkms;linux515-dkms-*-*-*.ubm;extra;UBLinux module includes dkms additionals modules +2204;ubm-linux515-nvidia;linux515-nvidia-*-*-*.ubm;extra;UBLinux module include NVIDIA 470xx driver for linux +2204;ubm-linux515-nvidia-390xx;linux515-nvidia-390xx-*-*-*.ubm;extra;UBLinux module include NVIDIA 390xx driver for linux +2204;ubm-linux515-nvidia-470xx;linux515-nvidia-470xx-*-*-*.ubm;extra;UBLinux module include NVIDIA 470xx driver for linux +2204;ubm-linux61-dkms;linux61-dkms-*-*-*.ubm;extra;UBLinux module includes dkms additionals modules +2204;ubm-linux61-nvidia;linux61-nvidia-*-*-*.ubm;extra;UBLinux module include NVIDIA 470xx driver for linux +2204;ubm-linux61-nvidia-390xx;linux61-nvidia-390xx-*-*-*.ubm;extra;UBLinux module include NVIDIA 390xx driver for linux +2204;ubm-linux61-nvidia-470xx;linux61-nvidia-470xx-*-*-*.ubm;extra;UBLinux module include NVIDIA 470xx driver for linux +2204;ubm-linux66-dkms;linux66-dkms-*-*-*.ubm;extra;UBLinux module includes dkms additionals modules +2204;ubm-linux66-nvidia;linux66-nvidia-*-*-*.ubm;extra;UBLinux module include NVIDIA 470xx driver for linux +2204;ubm-linux66-nvidia-390xx;linux66-nvidia-390xx-*-*-*.ubm;extra;UBLinux module include NVIDIA 390xx driver for linux +2204;ubm-linux66-nvidia-470xx;linux66-nvidia-470xx-*-*-*.ubm;extra;UBLinux module include NVIDIA 470xx driver for linux +2204;ubm-lsi-megaraid;lsi-megaraid-*-*-*.ubm;extra;UBLinux module includes LSI MegaRaid SM, StorCLI, MegaCLI and utils +2204;ubm-nvidia-340;nvidia-340-*-*-*.ubm;extra;UBLinux module includes NVIDIA 340xx driver and utilities +2204;ubm-nvidia-390;nvidia-390-*-*-*.ubm;extra;UBLinux module includes NVIDIA 390xx driver and utilities +2204;ubm-nvidia-470;nvidia-470-*-*-*.ubm;extra;UBLinux module includes NVIDIA 470xx driver and utilities +2204;ubm-nvidia-510;nvidia-510-*-*-*.ubm;extra;UBLinux module includes NVIDIA 510xx driver and utilities +2204;ubm-nvidia-515;nvidia-515-*-*-*.ubm;extra;UBLinux module includes NVIDIA 515xx driver and utilities +2204;ubm-nvidia-optimus;nvidia-optimus-*-*-*.ubm;extra;UBLinux module includes NVIDIA Optimus +2204;ubm-onlyoffice;onlyoffice-*-*-*.ubm;extra;UBLinux module includes OnlyOffice DocumentServer suite +2204;ubm-onlyoffice-documentserver;onlyoffice-documentserver-*-*-*.ubm;extra;UBLinux module includes OnlyOffice DocumentServer suite +2204;ubm-opera;opera-*-*-*.ubm;extra;UBLinux module includes Opera and some plugins +2204;ubm-patch;patch-*-*-*.ubm;extra;UBLinux module includes patch +2204;ubm-podman;podman-*-*-*.ubm;extra;UBLinux module includes podman and webmanager and utils +2204;ubm-qemu;qemu-*-*-*.ubm;extra;UBLinux module includes QEMU headless and utils +2204;ubm-qemu-headless;qemu-headless-*-*-*.ubm;extra;UBLinux module includes QEMU headless and utils +2204;ubm-qt4;qt4-*-*-*.ubm;extra;UBLinux module include QT4 +2204;ubm-realvnc;realvnc-*-*-*.ubm;extra;UBLinux module includes realvnc viewer and server +2204;ubm-rustdesk;rustdesk-*-*-*.ubm;extra;UBLinux module include rustdesk-server +2204;ubm-rustdesk-server;rustdesk-server-*-*-*.ubm;extra;UBLinux module include rustdesk-server +2204;ubm-skype;skype-*-*-*.ubm;extra;UBLinux module include Skype +2204;ubm-telegram;telegram-*-*-*.ubm;extra;UBLinux module includes Telegram +2204;ubm-tor;tor-*-*-*.ubm;extra;UBLinux module include Tor utils and browser +2204;ubm-ubpile-workflow;ubpile-workflow-*-*-*.ubm;extra;UBLinux module include UBPile Workflow +2204;ubm-virtual-guest;virtual-guest-*-*-*.ubm;extra;UBLinux module includes agents for Linux guest without X support +2204;ubm-virtual-guest-nox;virtual-guest-nox-*-*-*.ubm;extra;UBLinux module includes agents for Linux guest without X support +2204;ubm-virtualbox-host;virtualbox-host-*-*-*.ubm;extra;UBLinux module includes VirtualBox headless and extension packs +2204;ubm-virtualbox-host-headless;virtualbox-host-headless-*-*-*.ubm;extra;UBLinux module includes VirtualBox headless and extension packs +2204;ubm-virtualbox-web;virtualbox-web-*-*-*.ubm;extra;UBLinux module includes phpvirtualbox for VirtualBox +2204;ubm-vivaldi;vivaldi-*-*-*.ubm;extra;UBLinux module include Vivaldi browser +2204;ubm-vmware-workstation16;vmware-workstation16-*-*-*.ubm;extra;UBLinux module includes VMware-Workstation 16 +2204;ubm-web;web-*-*-*.ubm;extra;UBLinux module includes Webmin and Usermin +2204;ubm-webmin;webmin-*-*-*.ubm;extra;UBLinux module includes Webmin and Usermin +2204;ubm-wiki-js;wiki-js-*-*-*.ubm;extra;UBLinux module include Wiki.js +2204;ubm-winbox;winbox-*-*-*.ubm;extra;UBLinux module include Winbox +2204;ubm-wine;wine-*-*-*.ubm;extra;UBLinux module includes wine and utilities +2204;ubm-wps-office;wps-office-*-*-*.ubm;extra;UBLinux module include Kingsoft Office (WPS Office) - an office productivity suite +2204;ubm-xremote;xremote-*-*-*.ubm;extra;UBLinux module include X11 remote utils +2204;ubm-yandex-browser;yandex-browser-*-*-*.ubm;extra;UBLinux module includes Yandex Browser and some utils +2204;ubm-zoom;zoom-*-*-*.ubm;extra;UBLinux module include Zoom \ No newline at end of file From 6df0f48cae6a2c2f45a67065da35aa62f530ceac Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Fri, 23 Jan 2026 12:28:05 +0000 Subject: [PATCH 07/21] Crash fixes --- source/ubinstall-gtk-packages.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ubinstall-gtk-packages.c b/source/ubinstall-gtk-packages.c index 18cff6b..48d30c5 100644 --- a/source/ubinstall-gtk-packages.c +++ b/source/ubinstall-gtk-packages.c @@ -119,7 +119,7 @@ void yon_packages_tab_init(main_window *widgets){ void yon_on_packages_selected(GtkWidget *, main_window *widgets){ GtkTreeIter iter; GtkTreeModel *model; - gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->PackagesTree)),&model,&iter); + if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->PackagesTree)),&model,&iter)) return; GtkTreeIter cur_parent, cur_iter; int status; gtk_tree_model_get(model,&iter,3,&status,-1); From b417380170a906e9c9703e7e89cc15762cc17cbc Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Mon, 26 Jan 2026 10:40:00 +0600 Subject: [PATCH 08/21] Localisation; Fixed os components descrption wrapping --- locale/kernel-modules_ru.po | 253 ++++++++++-------------------- source/ubinstall-gtk-components.c | 18 +-- ubinstall-gtk-os-row.glade | 1 + 3 files changed, 91 insertions(+), 181 deletions(-) diff --git a/locale/kernel-modules_ru.po b/locale/kernel-modules_ru.po index 9a38cb2..f424a3a 100644 --- a/locale/kernel-modules_ru.po +++ b/locale/kernel-modules_ru.po @@ -17,9 +17,6 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -UBLinux module the kernel and modules" -msgstr "Модуль UBLinux: ядро ​​и модули" - msgid "UBLinux module headers and scripts for building modules" msgstr "Заголовочные файлы и скрипты для сборки модулей UBLinux" @@ -29,9 +26,6 @@ msgstr "Документация по модулю UBLinux для ядра UBLin msgid "UBLinux module firmwares" msgstr "Прошивки модуля UBLinux" -msgid "UBLinux module includes the core developer components" -msgstr "Модуль UBLinux включает основные компоненты для разработчиков" - msgid "UBLinux module includes basic components Xorg" msgstr "Модуль UBLinux включает базовые компоненты Xorg" @@ -99,326 +93,241 @@ msgid "UBLinux module includes Chromium and some plugins" msgstr "Модуль UBLinux включает Chromium и некоторые плагины" msgid "UBLinux module includes postgresql, mariadb database and utilities" -msgstr "" - -msgid "UBLinux module includes docker and webmanager and utils" -msgstr "" +msgstr "Модуль UBLinux включает PostgreSQL, базу данных MariaDB и утилиты" msgid "UBLinux module include Brother printer drivers" -msgstr "" +msgstr "Модуль UBLinux включает драйверы принтеров Brother" msgid "UBLinux module include Canon CAPT Printer Driver" -msgstr "" +msgstr "Модуль UBLinux включает драйвер принтера Canon CAPT" msgid "UBLinux module include Canon UFR II LIPSLX CARPS2 printer driver" -msgstr "" +msgstr "Модуль UBLinux включает драйвер принтера Canon UFR II LIPSLX CARPS2" msgid "UBLinux module include Epson printer drivers" -msgstr "" +msgstr "Модуль UBLinux включает драйверы принтеров Epson" msgid "UBLinux module include Kyocera printer drivers" -msgstr "" +msgstr "Модуль UBLinux включает драйверы принтера Kyocera" msgid "UBLinux module include Lexmark drivers" -msgstr "" +msgstr "Модуль UBLinux включает драйверы Lexmark" msgid "UBLinux module include Pantum printer drivers" -msgstr "" +msgstr "Модуль UBLinux включает драйверы принтера Pantum" msgid "UBLinux module include hplip, gutenprint, foomatic" -msgstr "" +msgstr "В состав модулей UBLinux входят hplip, gutenprint, foomatic" msgid "UBLinux module include Ricoh drivers" -msgstr "" +msgstr "Модуль UBLinux включает драйверы Ricoh" msgid "UBLinux module include Samsung drivers" -msgstr "" +msgstr "Модуль UBlinux включает драйверы Samsung" msgid "UBLinux module include Xerox drivers" -msgstr "" +msgstr "Модуль UBLinux включает драйверы Xerox" msgid "UBLinux module includes education soft" -msgstr "" +msgstr "Модуль UBLinux включает в себя образовательное программное обеспечение" msgid "UBLinux module includes Firefox and some plugins" -msgstr "" +msgstr "Модуль UBLinux включает в себя Firefox и некоторые плагины" msgid "UBLinux module include Java OpenJFX 17 client application platform" -msgstr "" +msgstr "Модуль UBLinux включает в себя платформу клиентских приложений Java OpenJFX 17" msgid "UBLinux module includes OpenJDK Java 11 development kit" -msgstr "" +msgstr "Модуль UBLinux включает в себя OpenJDK и комплект разработки Java 11" msgid "UBLinux module includes OpenJDK Java 17 development kit" -msgstr "" +msgstr "Модуль UBLinux включает в себя OpenJDK и комплект разработки Java 17" msgid "UBLinux module includes OpenJDK Java 21 development kit" -msgstr "" +msgstr "Модуль UBLinux включает в себя OpenJDK и комплект разработки Java 21" msgid "UBLinux module includes OpenJDK Java 8 development kit" -msgstr "" +msgstr "Модуль UBLinux включает в себя OpenJDK и комплект разработки Java 8" msgid "UBLinux module includes some library 32-bit" -msgstr "" +msgstr "Модуль UBLinux включает в себя некоторые 32-битные библиотеки." msgid "UBLinux module include LibreOffice" -msgstr "" +msgstr "Модуль UBLinux включает LibreOffice" msgid "UBLinux module includes dkms additionals modules" -msgstr "" +msgstr "Модуль UBLinux включает дополнительные модули dkms" msgid "UBLinux module include NVIDIA 470xx driver for linux" -msgstr "" +msgstr "Модуль UBLinux включает драйвер NVIDIA 470xx для Linux" msgid "UBLinux module include NVIDIA 390xx driver for linux" -msgstr "" +msgstr "Модуль UBLinux включает драйвер NVIDIA 390xx для Linux" msgid "UBLinux module includes OnlyOffice suite" -msgstr "" +msgstr "Модуль UBLinux включает пакет OnlyOffice" msgid "UBLinux module include apps patch" -msgstr "" +msgstr "Модуль UBLinux включает патчи для приложений" msgid "UBLinux module includes podman and webmanager and utils" -msgstr "" +msgstr "Модуль UBLinux включает podman, webmanager и утилиты" msgid "UBLinux module include pycharm-community-edition and utilities" -msgstr "" +msgstr "Модуль UBLinux включает pycharm-community-edition и утилиты" msgid "UBLinux module includes QEMU, manager and utils" -msgstr "" +msgstr "Модуль UBLinux включает QEMU, менеджер и утилиты" msgid "UBLinux module includes R7 Office" -msgstr "" +msgstr "Модуль UBLinux включает R7 Office" msgid "UBLinux module includes realvnc viewer and server" -msgstr "" +msgstr "Модуль UBLinux включает RealVNC Viewer и сервер" msgid "UBLinux module includes rustdesk" -msgstr "" +msgstr "Модуль UBLinux включает RustDesk" msgid "UBLinux module includes Telegram" -msgstr "" +msgstr "Модуль UBLinux включает Telegram" msgid "UBLinux module include UBPile Workflow" -msgstr "" +msgstr "Модуль UBLinux включает UBPile Workflow" msgid "UBLinux module includes agents for Linux guest" -msgstr "" +msgstr "Модуль UBLinux включает агенты для гостевой системы Linux" msgid "UBLinux module includes VirtualBox and extension packs" -msgstr "" +msgstr "Модуль UBLinux включает VirtualBox и пакеты расширений" msgid "UBLinux module includes Web servers" -msgstr "" +msgstr "Модуль UBLinux включает веб-серверы" msgid "UBLinux module includes Webmin and Usermin" -msgstr "" +msgstr "Модуль UBLinux включает Webmin и Usermin" msgid "UBLinux module includes interactive whiteboard soft" -msgstr "" +msgstr "Модуль UBLinux включает программное обеспечение для интерактивной доски" msgid "UBLinux module include Winbox" -msgstr "" +msgstr "Модуль UBLinux включает Winbox" msgid "UBLinux module includes wine and utilities" -msgstr "" +msgstr "Модуль UBLinux включает Wine и утилиты" msgid "UBLinux module include Kingsoft Office (WPS Office) - an office productivity suite" -msgstr "" +msgstr "В модуль UBLinux входят Kingsoft Office (WPS Office) — офисный пакет для повышения производительности" msgid "UBLinux module includes Yandex Browser and some utils" -msgstr "" - -msgid "UBLinux module the kernel and modules" -msgstr "" +msgstr "В модуль UBLinux входят Yandex Browser и некоторые утилиты" msgid "UBLinux module headers and scripts for building modules for the Meta UBlinux kernel, modules, headers and documentation" -msgstr "" +msgstr "В модуль UBLinux входят заголовочные файлы и скрипты для сборки модулей для ядра Meta UBlinux, модули, заголовочные файлы и документация" msgid "UBLinux module includes the core developer components" -msgstr "" +msgstr "В модуль UBLinux входят основные компоненты для разработчиков" msgid "UBLinux module includes Liquidshell basic desktop shell using QtWidgets" -msgstr "" +msgstr "В модуль UBLinux входит базовая оболочка рабочего стола Liquidshell с использованием QtWidgets" msgid "UBLinux module includes AMDGRU PRO driver and utilities" -msgstr "" +msgstr "В модуль UBLinux входят драйвер AMDGRU PRO и утилиты" msgid "UBLinux module includes anydesk" -msgstr "" +msgstr "В модуль UBLinux входит anydesk" msgid "UBLinux module includes Chromium-GOST and some plugins" -msgstr "" +msgstr "В модуль UBLinux входит Chromium-GOST и некоторые плагины" msgid "UBLinux module includes database applications" -msgstr "" +msgstr "В модуль UBLinux входят приложения для работы с базами данных" msgid "UBLinux module includes docker and webmanager and utils" -msgstr "" +msgstr "В модуль UBLinux входят Docker, WebManager и утилиты" msgid "UBLinux module include Hedgewars game similiar to Worms" -msgstr "" +msgstr "В модуль UBLinux входит игра Hedgewars, похожая на Worms" msgid "UBLinux module includes Gitea and MemCached" -msgstr "" +msgstr "В модуль UBLinux входят Gitea и MemCached" msgid "UBLinux module include Gitlab CLI tools" -msgstr "" +msgstr "В модуль UBLinux входят инструменты командной строки Gitlab" msgid "UBLinux module include Java OpenJFX 11 client application platform" -msgstr "" +msgstr "В модуль UBLinux входит платформа клиентских приложений Java OpenJFX 11" msgid "UBLinux module include Free Pascal and Lazarus GTK2" -msgstr "" +msgstr "В модуль UBLinux входят Free Pascal и Lazarus GTK2" msgid "UBLinux module include Free Pascal and Lazarus QT5" -msgstr "" +msgstr "В модуль UBLinux входят Free Pascal и Lazarus QT5" msgid "UBLinux module includes LSI MegaRaid SM, StorCLI, MegaCLI and utils" -msgstr "" +msgstr "В модуль UBLinux входят LSI MegaRaid SM, StorCLI, MegaCLI и утилиты" msgid "UBLinux module includes NVIDIA 340xx driver and utilities" -msgstr "" +msgstr "В модуль UBLinux входят драйвер и утилиты для NVIDIA 340xx" msgid "UBLinux module includes NVIDIA 390xx driver and utilities" -msgstr "" +msgstr "В модуль UBLinux входят драйвер и утилиты для NVIDIA 390xx" msgid "UBLinux module includes NVIDIA 470xx driver and utilities" -msgstr "" +msgstr "Модуль UBLinux включает драйвер и утилиты для NVIDIA 470xx" msgid "UBLinux module includes NVIDIA 510xx driver and utilities" -msgstr "" +msgstr "Модуль UBLinux включает драйвер и утилиты для NVIDIA 510xx" msgid "UBLinux module includes NVIDIA 515xx driver and utilities" -msgstr "" +msgstr "Модуль UBLinux включает драйвер и утилиты для NVIDIA 515xx" msgid "UBLinux module includes NVIDIA Optimus" -msgstr "" +msgstr "Модуль UBLinux включает NVIDIA Optimus" msgid "UBLinux module includes OnlyOffice DocumentServer suite" -msgstr "" +msgstr "Модуль UBLinux включает пакет OnlyOffice DocumentServer" msgid "UBLinux module includes Opera and some plugins" -msgstr "" +msgstr "Модуль UBLinux включает Opera и некоторые плагины" msgid "UBLinux module includes patch" -msgstr "" +msgstr "Модуль UBLinux включает патч" msgid "UBLinux module includes QEMU headless and utils" -msgstr "" +msgstr "Модуль UBLinux включает QEMU headless и утилиты" msgid "UBLinux module include QT4" -msgstr "" +msgstr "Модуль UBLinux включает QT4" msgid "UBLinux module include rustdesk-server" -msgstr "" +msgstr "Модуль UBLinux включает rustdesk-server" msgid "UBLinux module include Skype" -msgstr "" +msgstr "Модуль UBLinux включает Skype" msgid "UBLinux module include Tor utils and browser" -msgstr "" +msgstr "Модуль UBLinux включает утилиты Tor и браузер" msgid "UBLinux module includes agents for Linux guest without X support" -msgstr "" +msgstr "Модуль UBLinux включает агенты для гостевой системы Linux без поддержки X" msgid "UBLinux module includes VirtualBox headless and extension packs" -msgstr "" +msgstr "Модуль UBLinux включает VirtualBox в режиме без графического интерфейса и пакеты расширений" msgid "UBLinux module includes phpvirtualbox for VirtualBox" -msgstr "" +msgstr "Модуль UBLinux включает phpvirtualbox для VirtualBox" msgid "UBLinux module include Vivaldi browser" -msgstr "" +msgstr "Модуль UBLinux включает браузер Vivaldi" msgid "UBLinux module includes VMware-Workstation 16" -msgstr "" +msgstr "Модуль UBLinux включает VMware-Workstation 16" msgid "UBLinux module include Wiki.js" -msgstr "" +msgstr "Модуль UBLinux включает Wiki.js" msgid "UBLinux module include X11 remote utils" -msgstr "" - -msgid "UBLinux module include Zoommsgid "" -msgstr "" - +msgstr "Модуль UBLinux включает удаленные утилиты X11" -Модуль UBLinux включает PostgreSQL, базу данных MariaDB и утилиты -Модуль UBLinux включает Docker, WebManager и утилиты -Модуль UBLinux включает драйверы принтеров Brother -Модуль UBLinux включает драйвер принтера Canon CAPT -Модуль UBLinux включает драйвер принтера Canon UFR II LIPSLX CARPS2 -Модуль UBLinux включает драйверы принтеров Epson -Модуль UBLinux включает драйверы принтеров Kyocera -Модуль UBLinux включает драйверы Lexmark -Модуль UBLinux включает драйверы принтеров Pantum -Модуль UBLinux включает hplip, gutenprint, foomatic -Модуль UBLinux включает драйверы Ricoh -Модуль UBLinux включает драйверы Samsung -Модуль UBLinux включает Xerox драйверы -Модуль UBLinux включает образовательное программное обеспечение -Модуль UBLinux включает Firefox и некоторые плагины -Модуль UBLinux включает платформу клиентских приложений Java OpenJFX 17 -Модуль UBLinux включает комплект разработки OpenJDK Java 11 -Модуль UBLinux включает комплект разработки OpenJDK Java 17 -Модуль UBLinux включает комплект разработки OpenJDK Java 21 -Модуль UBLinux включает комплект разработки OpenJDK Java 8 -Модуль UBLinux включает некоторые 32-битные библиотеки -Модуль UBLinux включает LibreOffice -Модуль UBLinux включает дополнительные модули dkms -Модуль UBLinux включает драйвер NVIDIA 470xx для Linux -Модуль UBLinux включает драйвер NVIDIA 390xx для Linux -Модуль UBLinux включает пакет OnlyOffice -Модуль UBLinux включает патчи для приложений -Модуль UBLinux включает podman и webmanager и утилиты -Модуль UBLinux включает pycharm-community-edition и утилиты -Модуль UBLinux включает QEMU, менеджер и утилиты -Модуль UBLinux включает R7 Office -Модуль UBLinux включает средство просмотра и сервер RealVNC -Модуль UBLinux включает RustDesk -Модуль UBLinux включает Telegram -Модуль UBLinux включает UBPile Workflow -Модуль UBLinux включает агенты для гостевой системы Linux -Модуль UBLinux включает VirtualBox и пакеты расширений -Модуль UBLinux включает веб-серверы -Модуль UBLinux включает Webmin и Usermin -Модуль UBLinux включает интерактивную доску -Модуль UBLinux включает Winbox -Модуль UBLinux включает Wine и утилиты -Модуль UBLinux включает Kingsoft Office (WPS Office) — офисный пакет -Модуль UBLinux включает Yandex Browser и некоторые утилиты -Модуль UBLinux включает ядро ​​и модули -Модуль UBLinux включает заголовочные файлы и скрипты для сборки модулей для ядра Meta UBlinux, модули, заголовочные файлы и документацию -Модуль UBLinux включает основные компоненты для разработчиков -Модуль UBLinux включает базовую оболочку рабочего стола Liquidshell с использованием QtWidgets -Модуль UBLinux включает драйвер AMDGRU PRO и утилиты -Модуль UBLinux включает anydesk -Модуль UBLinux включает Chromium-GOST и некоторые плагины -Модуль UBLinux включает приложения для работы с базами данных -Модуль UBLinux включает docker, webmanager и утилиты -Модуль UBLinux включает игру Hedgewars, похожую на Worms -Модуль UBLinux включает Gitea и MemCached -Модуль UBLinux включает инструменты командной строки Gitlab -Модуль UBLinux включает платформу клиентских приложений Java OpenJFX 11 -Модуль UBLinux включает Free Pascal и Lazarus GTK2 -Модуль UBLinux включает Free Pascal и Lazarus QT5 -Модуль UBLinux включает LSI MegaRaid SM, StorCLI, MegaCLI и утилиты -Модуль UBLinux включает драйвер NVIDIA 340xx и утилиты -Модуль UBLinux включает драйвер NVIDIA 390xx и утилиты -Модуль UBLinux включает NVIDIA Драйвер и утилиты для NVIDIA 470xx -Модуль UBLinux включает драйвер и утилиты для NVIDIA 510xx -Модуль UBLinux включает драйвер и утилиты для NVIDIA 515xx -Модуль UBLinux включает NVIDIA Optimus -Модуль UBLinux включает пакет OnlyOffice DocumentServer -Модуль UBLinux включает Opera и некоторые плагины -Модуль UBLinux включает патч -Модуль UBLinux включает QEMU headless и утилиты -Модуль UBLinux включает QT4 -Модуль UBLinux включает rustdesk-server -Модуль UBLinux включает Skype -Модуль UBLinux включает утилиты и браузер Tor -Модуль UBLinux включает агенты для гостевой системы Linux без поддержки X -Модуль UBLinux включает VirtualBox headless и пакеты расширений -Модуль UBLinux включает phpvirtualbox f \ No newline at end of file +msgid "UBLinux module include Zoom" +msgstr "Модуль UBLinux включает Zoom" \ No newline at end of file diff --git a/source/ubinstall-gtk-components.c b/source/ubinstall-gtk-components.c index 0f6034d..1bd2324 100644 --- a/source/ubinstall-gtk-components.c +++ b/source/ubinstall-gtk-components.c @@ -103,12 +103,12 @@ void yon_os_row_setup(os_row *row, char *name, char *version,char *tags, char *d row->name = yon_char_new(name); char *description_full = yon_char_new(description); - if (strlen(description)>100){ - guint size; - config_str description_wrapped = yon_char_wrap_to_lines(description,3,&size); - description_full = yon_char_parsed_to_string(description_wrapped,size,"\n"); - yon_char_parsed_free(description_wrapped,size); - } + // if (strlen(description)>100){ + // guint size; + // config_str description_wrapped = yon_char_wrap_to_lines(description,2,&size); + // description_full = yon_char_parsed_to_string(description_wrapped,size,"\n"); + // yon_char_parsed_free(description_wrapped,size); + // } gtk_label_set_label(GTK_LABEL(row->NameLabel),name); gtk_label_set_label(GTK_LABEL(row->VersionLabel),version); gtk_label_set_label(GTK_LABEL(row->DescriptionLabel),description_full); @@ -122,7 +122,7 @@ gboolean yon_os_component_insert(struct row_data *row_input){ main_window *widgets = row_input->widgets; gtk_list_box_insert(GTK_LIST_BOX(widgets->OSSoftwareListBox),row->row,-1); - yon_os_row_setup(row,row_input->name,row_input->version,row_input->tags,row_input->description); + yon_os_row_setup(row,row_input->name,row_input->version,row_input->tags,_(row_input->description)); char *modules = config(modules_parameter); if (yon_char_is_empty(modules)||yon_char_check_element(modules,row_input->name,",")||!strcmp(modules,"auto")){ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),1); @@ -226,7 +226,7 @@ gboolean yon_software_insert(struct row_data *row_input){ main_window *widgets = row_input->widgets; gtk_list_box_insert(GTK_LIST_BOX(widgets->AdditionalComponentsList),row->row,-1); - yon_os_row_setup(row,row_input->name,row_input->version,row_input->tags,row_input->description); + yon_os_row_setup(row,row_input->name,row_input->version,row_input->tags,_(row_input->description)); char *modules = config(modules_extra_parameter); if (yon_char_check_element(modules,row_input->name,",")){ @@ -297,7 +297,7 @@ void yon_pacman_init(main_window *widgets){ char *version = yon_packages_get_version(YON_PACKAGES_SYNC,parsed[i]); GtkTreeIter iter; gtk_list_store_append(widgets->PacmanSoftwareChosenList,&iter); - gtk_list_store_set(widgets->PacmanSoftwareChosenList,&iter,0,1,1,parsed[i],2,version,3,description,-1); + gtk_list_store_set(widgets->PacmanSoftwareChosenList,&iter,0,1,1,parsed[i],2,version,3,_(description),-1); } yon_char_parsed_free(parsed,size); } \ No newline at end of file diff --git a/ubinstall-gtk-os-row.glade b/ubinstall-gtk-os-row.glade index 16900aa..e1f0660 100644 --- a/ubinstall-gtk-os-row.glade +++ b/ubinstall-gtk-os-row.glade @@ -80,6 +80,7 @@ False 2 Description + True 0 0 From ddc1d99e51bf2fe12999be2bd6d7bd3871b44327 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Mon, 26 Jan 2026 13:54:39 +0600 Subject: [PATCH 09/21] Replaced Cancel button with Exit button at finish pages --- source/ubinstall-gtk-kernel.c | 2 +- source/ubinstall-gtk-page-switch.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/source/ubinstall-gtk-kernel.c b/source/ubinstall-gtk-kernel.c index f199159..ce8c726 100644 --- a/source/ubinstall-gtk-kernel.c +++ b/source/ubinstall-gtk-kernel.c @@ -292,7 +292,7 @@ void on_kernel_addon_info(GtkLabel *self){ yon_char_remove_last_symbol(info[i],'\n'); GtkTreeIter iter; int parsed_size; - config_str parsed = yon_char_parse(info[i],&parsed_size,":"); + config_str parsed = yon_char_parse(info[i],&parsed_size," : "); gtk_list_store_append(element->InfoList,&iter); gtk_list_store_set(element->InfoList,&iter,0,parsed[0],1,parsed[1],-1); diff --git a/source/ubinstall-gtk-page-switch.c b/source/ubinstall-gtk-page-switch.c index 601f9bf..e4dbb44 100644 --- a/source/ubinstall-gtk-page-switch.c +++ b/source/ubinstall-gtk-page-switch.c @@ -171,7 +171,8 @@ void yon_navigation_buttons_set_sensetiveness(main_window *widgets){ case YON_PAGE_COMPLETION: gtk_button_set_label(GTK_BUTTON(widgets->NextButton),RESTART_LABEL); gtk_widget_set_sensitive(widgets->BackButton,0); - gtk_widget_set_sensitive(widgets->CancelInstallButton,0); + gtk_widget_set_sensitive(widgets->CancelInstallButton,1); + gtk_button_set_label(GTK_BUTTON(widgets->CancelInstallButton),EXIT_LABEL); gtk_widget_set_sensitive(widgets->NextButton,1); break; case YON_PAGE_SECTIONS: @@ -519,6 +520,11 @@ void on_page_cancel_clicked(GtkWidget *, main_window *widgets){ enum YON_PAGES cur_page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook)); switch (cur_page){ case YON_PAGE_CONFIGURE_END: + case YON_PAGE_COMPLETED: + case YON_PAGE_RECOVERY_COMPLETION: + case YON_PAGE_INSTALL_ERROR: + case YON_PAGE_CONFIGURE_SAVE: + case YON_PAGE_COMPLETION: gtk_main_quit(); break; default: { From 96e677ba1505a927411d2b6a7582c4fe570dac7c Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Mon, 26 Jan 2026 14:31:00 +0600 Subject: [PATCH 10/21] Fixed start without root --- source/ubinstall-gtk.c | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c index ab48f19..2cd813d 100644 --- a/source/ubinstall-gtk.c +++ b/source/ubinstall-gtk.c @@ -891,6 +891,20 @@ void yon_main_window_create(main_window *widgets){ yon_window_config_setup(GTK_WINDOW(widgets->MainWindow)); + int fullscreen = 0; + char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL); + if (access(path,F_OK)){ + fullscreen = 1; + g_thread_new("fullscreen",(GThreadFunc)yon_maximize,widgets); + + } + yon_window_config_load(path); + yon_window_config_add_instant_parameter("fullscreen","window",&fullscreen,YON_TYPE_BOOLEAN); + + yon_startup_language_init(); + yon_locale_init(); + yon_main_window_update_locale(widgets); + yon_gtk_window_setup(GTK_WINDOW(widgets->MainWindow),NULL,TITLE_LABEL,icon_path,NULL); gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(widgets->InstallerCountryFilter),(GtkTreeModelFilterVisibleFunc)on_country_filter,widgets,NULL); @@ -1007,23 +1021,10 @@ main_window *yon_main_window_complete(){ memset(widgets,0,sizeof(main_window)); yon_main_window_create(widgets); - yon_startup_language_init(); - yon_locale_init(); // yon_set_locales_list(widgets); // yon_main_window_update_locale(widgets); // // yon_window_config_custom_window_setup(GTK_WINDOW(widgets->MainWindow),"MainWindow"); - - int fullscreen = 0; - char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL); - if (access(path,F_OK)){ - fullscreen = 1; - g_thread_new("fullscreen",(GThreadFunc)yon_maximize,widgets); - - } - yon_window_config_load(path); - yon_window_config_add_instant_parameter("fullscreen","window",&fullscreen,YON_TYPE_BOOLEAN); - yon_main_window_update_locale(widgets); return widgets; } @@ -1079,9 +1080,6 @@ int main(int argc, char *argv[]){ main_config.launch_arguments=yon_char_parsed_copy(argv,argc); main_config.launch_size=argc; - if (getuid()!=0){ - yon_ubl_status_box_render(yon_char_get_localised_from_lib(ROOT_WARNING_LABEL),BACKGROUND_IMAGE_FAIL_TYPE); - } gtk_main(); return 0; } \ No newline at end of file From 2e04f34506c978540fa17796534d7903573b7282 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Mon, 26 Jan 2026 15:04:52 +0600 Subject: [PATCH 11/21] Back button hidden at finish pages --- source/ubinstall-gtk-page-switch.c | 2 +- source/ubinstall-gtk.c | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/source/ubinstall-gtk-page-switch.c b/source/ubinstall-gtk-page-switch.c index e4dbb44..0887f18 100644 --- a/source/ubinstall-gtk-page-switch.c +++ b/source/ubinstall-gtk-page-switch.c @@ -170,7 +170,7 @@ void yon_navigation_buttons_set_sensetiveness(main_window *widgets){ case YON_PAGE_CONFIGURE_SAVE: case YON_PAGE_COMPLETION: gtk_button_set_label(GTK_BUTTON(widgets->NextButton),RESTART_LABEL); - gtk_widget_set_sensitive(widgets->BackButton,0); + gtk_widget_hide(widgets->BackButton); gtk_widget_set_sensitive(widgets->CancelInstallButton,1); gtk_button_set_label(GTK_BUTTON(widgets->CancelInstallButton),EXIT_LABEL); gtk_widget_set_sensitive(widgets->NextButton,1); diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c index 2cd813d..c729aff 100644 --- a/source/ubinstall-gtk.c +++ b/source/ubinstall-gtk.c @@ -971,7 +971,6 @@ void yon_main_window_create(main_window *widgets){ if (getuid()){ gtk_menu_item_activate(GTK_MENU_ITEM(widgets->ConfigurationModeMenuItem)); if (yon_char_is_empty(main_config.config_save_path)){ - gtk_main_quit(); exit (1); } } @@ -985,7 +984,6 @@ void yon_main_window_create(main_window *widgets){ yon_ubl_status_box_spawn_infinite(GTK_CONTAINER(widgets->StatusBox),"config_mode",CONFIGURATION_MODE_STATUS_LABEL,BACKGROUND_IMAGE_INFO_TYPE); yon_ubl_status_box_spawn_infinite(GTK_CONTAINER(widgets->StatusBox2),"config_mede",CONFIG_PATH_LABEL(main_config.config_save_path),BACKGROUND_IMAGE_INFO_TYPE); } else { - gtk_main_quit(); exit (1); } } From 1fc4df6625e272c4423d24f73e5bebcc2d7469b9 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Mon, 26 Jan 2026 17:27:19 +0600 Subject: [PATCH 12/21] Localisation Fixes --- locale/ubinstall-gtk.pot | 6 +++++ locale/ubinstall-gtk_ru.po | 14 +++++------ source/ubinstall-gtk-ui-lang.c | 45 ++++++++++++++++++++++++++++++++++ source/ubinstall-gtk.c | 3 +++ source/ubl-strings.h | 8 ++++++ 5 files changed, 68 insertions(+), 8 deletions(-) diff --git a/locale/ubinstall-gtk.pot b/locale/ubinstall-gtk.pot index cf10456..0bfce82 100644 --- a/locale/ubinstall-gtk.pot +++ b/locale/ubinstall-gtk.pot @@ -1825,6 +1825,12 @@ msgid "" "network or the Internet (even over slow connection channels)." msgstr "" +msgid "About" +msgstr "" + +msgid "Documentation" +msgstr "" + msgid "Generic 86-key PC" msgstr "" diff --git a/locale/ubinstall-gtk_ru.po b/locale/ubinstall-gtk_ru.po index 12e9805..11cf630 100644 --- a/locale/ubinstall-gtk_ru.po +++ b/locale/ubinstall-gtk_ru.po @@ -475,14 +475,6 @@ msgstr "Настройка установщика завершена" msgid "System installation is about to begin" msgstr "Начало установки системы" -#: source/ubl-strings.h:128 -msgid "Documentation" -msgstr "Справка" - -#: source/ubl-strings.h:129 -msgid "About" -msgstr "О программе" - #: source/ubl-strings.h:131 msgid "Would you like to read documentation in the Web?" msgstr "Вы хотите прочитать документацию в Сети?" @@ -1985,6 +1977,12 @@ msgstr "" "Позволяет загрузку системы для бездисковых и обычных рабочих станций через " "локальную сеть или Интернет (даже используя \"слабые\" каналы связи)" +msgid "About" +msgstr "О программе" + +msgid "Documentation" +msgstr "Справка" + msgid "Afrikaans" msgstr "Африканский" diff --git a/source/ubinstall-gtk-ui-lang.c b/source/ubinstall-gtk-ui-lang.c index a14c223..ff5332a 100644 --- a/source/ubinstall-gtk-ui-lang.c +++ b/source/ubinstall-gtk-ui-lang.c @@ -249,6 +249,17 @@ void yon_translation_init(GtkBuilder *builder){ } else if (GTK_IS_TREE_VIEW_COLUMN(iter->data)){ cur_widget = G_OBJECT(iter->data); widget_text = yon_char_new(gtk_tree_view_column_get_title(GTK_TREE_VIEW_COLUMN(cur_widget))); + } else if (GTK_IS_MENU_ITEM(iter->data)){ + cur_widget = G_OBJECT(iter->data); + GList *list = gtk_container_get_children(GTK_CONTAINER(cur_widget)); + if (list) { + GtkWidget *widget = list->data; + g_list_free(list); + if (GTK_IS_BOX(widget)){ + continue; + } + } + widget_text = yon_char_new(gtk_menu_item_get_label(GTK_MENU_ITEM(cur_widget))); } else continue; g_object_set_data(G_OBJECT(cur_widget),"original_label",(void*)widget_text); @@ -258,6 +269,8 @@ void yon_translation_init(GtkBuilder *builder){ void yon_update_translation(main_window *widgets){ GtkBuilder *builder = widgets->builder; GSList *list = gtk_builder_get_objects(builder); + list = g_slist_append(list,widgets->DocumentationMenuItem); + list = g_slist_append(list,widgets->AboutMenuItem); GSList *iter; for (iter = list; iter; iter = iter->next){ if (iter->data == widgets->LicenceLabel){ @@ -275,6 +288,14 @@ void yon_update_translation(main_window *widgets){ if (!yon_char_is_empty(source_label)){ gtk_label_set_text(GTK_LABEL(cur_label),_(source_label)); } + + } else if (GTK_IS_MENU_ITEM(iter->data)){ + GtkWidget *cur_menu_item = GTK_WIDGET(iter->data); + char *source_label = g_object_get_data(G_OBJECT(cur_menu_item),"original_label"); + if (!yon_char_is_empty(source_label)){ + gtk_menu_item_set_label(GTK_MENU_ITEM(cur_menu_item),_(source_label)); + } + } else if (GTK_IS_TREE_VIEW_COLUMN(iter->data)){ GObject *cur_column = G_OBJECT(iter->data); char *source_label = g_object_get_data(G_OBJECT(cur_column),"original_label"); @@ -285,4 +306,28 @@ void yon_update_translation(main_window *widgets){ yon_set_locales_list(widgets); } } + { + GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->DocumentationMenuItem)); + GList *container = gtk_container_get_children(list->data); + + GObject *cur_button = G_OBJECT(container->next->data); + char *source_label = g_object_get_data(G_OBJECT(widgets->DocumentationMenuItem),"original_label"); + if (!yon_char_is_empty(source_label)){ + gtk_label_set_text(GTK_LABEL(cur_button),_(source_label)); + } + g_list_free(list); + g_list_free(container); + } + { + GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->AboutMenuItem)); + GList *container = gtk_container_get_children(list->data); + + GObject *cur_button = G_OBJECT(container->next->data); + char *source_label = g_object_get_data(G_OBJECT(widgets->AboutMenuItem),"original_label"); + if (!yon_char_is_empty(source_label)){ + gtk_label_set_text(GTK_LABEL(cur_button),_(source_label)); + } + g_list_free(list); + g_list_free(container); + } } \ No newline at end of file diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c index c729aff..f655afe 100644 --- a/source/ubinstall-gtk.c +++ b/source/ubinstall-gtk.c @@ -724,6 +724,9 @@ void yon_main_window_create(main_window *widgets){ } g_signal_connect(G_OBJECT(widgets->MainWindow),"delete-event",G_CALLBACK(on_yon_exit),widgets); GtkWidget *menu = yon_gtk_builder_get_widget(builder,"menu2"); + + g_object_set_data(G_OBJECT(widgets->DocumentationMenuItem),"original_label",yon_char_new(DOCUMENTATION_LABEL)); + g_object_set_data(G_OBJECT(widgets->AboutMenuItem),"original_label",yon_char_new(ABOUT_LABEL)); gtk_style_context_add_class(gtk_widget_get_style_context(widgets->DocumentationMenuItem),"menuitemmiddle"); gtk_style_context_remove_class(gtk_widget_get_style_context(widgets->DocumentationMenuItem),"menuitemtop"); gtk_menu_shell_append(GTK_MENU_SHELL(menu),widgets->DocumentationMenuItem); diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 3b214dd..5da39e2 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -123,6 +123,9 @@ NULL) #define DOCUMENTATION_HEAD_LABEL _("You will be redirected to documentation website where documentation is\ntranslated and supported by community.") #define DOCUMENTATION_CHECK_LABEL _("Always redirect to online documentation") #define OPEN_DOCUMENTATION_LABEL _("Open documentation") +#define ABOUT_LABEL yon_char_get_localised_from_lib("About") +#define DOCUMENTATION_LABEL yon_char_get_localised_from_lib("Documentation") + #define INSTALLATION_ERROR _("Installation error") #define ATTENTION_NEXT_LABEL _("Attention! The system will be installed on the selected partition with OS already installed. All user data will be saved.") @@ -276,6 +279,11 @@ NULL) #define OFF_LABEL _("Off") #define DO_NOT_CONFIGURE_LABEL _("Do not configure") +#define LOAD_CUSTOM_LABEL yon_char_get_localised_from_lib("Load from specific file") +#define LOAD_LOCAL_LABEL yon_char_get_localised_from_lib("Load local configuration") +#define LOAD_GLOBAL_LABEL yon_char_get_localised_from_lib("Load global configuration") +#define LOAD_LABEL yon_char_get_localised_from_lib("Load") + // #define _LABEL _("Select your language:") // #define _LABEL _("Selecting additional system kernel components") // #define _LABEL _("Package:") From 3e3e48efc71545511012b505f7403306f25e56a0 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Wed, 28 Jan 2026 10:25:52 +0600 Subject: [PATCH 13/21] Package info window changes --- source/ubinstall-gtk-kernel.c | 4 ++-- ubinstall-gtk-package-info.glade | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/source/ubinstall-gtk-kernel.c b/source/ubinstall-gtk-kernel.c index ce8c726..16f2e0c 100644 --- a/source/ubinstall-gtk-kernel.c +++ b/source/ubinstall-gtk-kernel.c @@ -299,10 +299,10 @@ void on_kernel_addon_info(GtkLabel *self){ } } else { label = gtk_label_new(PACKAGE_NOT_FOUND_LABEL); - yon_gtk_label_set_font(GTK_LABEL(label)); + yon_gtk_label_set_font(GTK_LABEL(label)); gtk_widget_show(label); gtk_box_pack_start(GTK_BOX(window->MainBox),label,0,0,0); - gtk_label_set_xalign(GTK_LABEL(label),0); + gtk_label_set_xalign(GTK_LABEL(label),0); } gtk_widget_show(window->Window); } diff --git a/ubinstall-gtk-package-info.glade b/ubinstall-gtk-package-info.glade index 4d537d2..31f424e 100644 --- a/ubinstall-gtk-package-info.glade +++ b/ubinstall-gtk-package-info.glade @@ -27,7 +27,7 @@ InfoList False False - vertical + both none @@ -48,7 +48,10 @@ column - + + word + 150 + 1 From 270544aeba2c7007b0be9ae4de5b5b92a186acf4 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Wed, 28 Jan 2026 11:57:11 +0600 Subject: [PATCH 14/21] Style change --- ubinstall-gtk.glade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ubinstall-gtk.glade b/ubinstall-gtk.glade index 7791b7e..e968790 100644 --- a/ubinstall-gtk.glade +++ b/ubinstall-gtk.glade @@ -5290,7 +5290,7 @@ agreement word - 450 + 175 3 From bf8d42340b86abb964361eb1ad6e7214a9f105a6 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Wed, 28 Jan 2026 13:50:39 +0600 Subject: [PATCH 15/21] Fixed log button size --- ubinstall-gtk.glade | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ubinstall-gtk.glade b/ubinstall-gtk.glade index e968790..719155f 100644 --- a/ubinstall-gtk.glade +++ b/ubinstall-gtk.glade @@ -13231,6 +13231,9 @@ separately into the selected partition. True False + False @@ -13244,6 +13247,7 @@ separately into the selected partition. True True Read installation log + start image16