Fixes, localisation

pull/9/head
parent b3e3fd01c0
commit c5be4e7dd8

@ -6,6 +6,7 @@
<file>ubl-settings-kernel-install.glade</file> <file>ubl-settings-kernel-install.glade</file>
<file>ubl-settings-kernel-table-row.glade</file> <file>ubl-settings-kernel-table-row.glade</file>
<file>ubl-settings-kernel-additions-table-row.glade</file> <file>ubl-settings-kernel-additions-table-row.glade</file>
<file>ubl-settings-kernel-dialog.glade</file>
</gresource> </gresource>
<gresource prefix="/com/ublinux/css"> <gresource prefix="/com/ublinux/css">
<file>ubl-settings-kernel.css</file> <file>ubl-settings-kernel.css</file>

@ -1,5 +1,5 @@
NAME;PAСKAGE_UBM;PAСKAGE;DESCRIPTION NAME;PAСKAGE_UBM;PAСKAGE;DESCRIPTION
Linux 5.15 headers;ubm-002-linux515-headers;linux515-headers;The Linux kernel headers v5.15 Linux 5.15 headers;ubm-001-linux515-headers;linux515-headers;The Linux kernel headers v5.15
Linux 5.15 Docs;ubm-003-linux515-docs;linux515-docs;The Linux kernel docs v5.15 Linux 5.15 Docs;ubm-003-linux515-docs;linux515-docs;The Linux kernel docs v5.15
Linux 5.15 DKMS modules;ubm-linux515-dkms;linux515-dkms;The Linux kernel DKMS modules v5.15 : v4l2loopback, r8168-8136, rtl88x2bu, r8125, rtl8192eu Linux 5.15 DKMS modules;ubm-linux515-dkms;linux515-dkms;The Linux kernel DKMS modules v5.15 : v4l2loopback, r8168-8136, rtl88x2bu, r8125, rtl8192eu
Linux 6.1 headers;ubm-002-linux61-headers;linux61-headers;The Linux kernel headers v6.1 Linux 6.1 headers;ubm-002-linux61-headers;linux61-headers;The Linux kernel headers v6.1

1 NAME PAСKAGE_UBM PAСKAGE DESCRIPTION
2 Linux 5.15 headers ubm-002-linux515-headers ubm-001-linux515-headers linux515-headers The Linux kernel headers v5.15
3 Linux 5.15 Docs ubm-003-linux515-docs linux515-docs The Linux kernel docs v5.15
4 Linux 5.15 DKMS modules ubm-linux515-dkms linux515-dkms The Linux kernel DKMS modules v5.15 : v4l2loopback, r8168-8136, rtl88x2bu, r8125, rtl8192eu
5 Linux 6.1 headers ubm-002-linux61-headers linux61-headers The Linux kernel headers v6.1

@ -36,6 +36,7 @@ set(DEPENDFILES
../ubl-settings-kernel-install.glade ../ubl-settings-kernel-install.glade
../ubl-settings-kernel-table-row.glade ../ubl-settings-kernel-table-row.glade
../ubl-settings-kernel-additions-table-row.glade ../ubl-settings-kernel-additions-table-row.glade
../ubl-settings-kernel-dialog.glade
../gresource.xml ../gresource.xml
../kernel-list.csv ../kernel-list.csv
../kernel-list-addon.csv ../kernel-list-addon.csv

@ -193,59 +193,181 @@ gboolean on_command_execute_success(GtkWidget *,gint,main_window *widgets){
yon_interface_update(widgets); yon_interface_update(widgets);
return G_SOURCE_REMOVE; return G_SOURCE_REMOVE;
} }
gboolean yon_terminal_get_progress(main_window *widgets){
char *text = vte_terminal_get_text_format(VTE_TERMINAL(widgets->InstallTerminal),VTE_FORMAT_TEXT);
GRegex *regex = g_regex_new("\\d?\\d\\d%",0,0,NULL);
GMatchInfo *match = NULL;
g_regex_match(regex,text,0,&match);
g_regex_unref(regex);
char *target = g_match_info_fetch(match,0);
g_match_info_unref(match);
if (!yon_char_is_empty(target)) {
target[strlen(target)-1]='\0';
double percentage = atof(target);
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->InstallationProgress),percentage/100);
}
if (!gtk_revealer_get_child_revealed(GTK_REVEALER(widgets->MainRevealer))){
return G_SOURCE_REMOVE;
}
return G_SOURCE_CONTINUE;
}
void *yon_command_execute_async(char *command,main_window *widgets){ void *yon_command_execute_async(char *command,main_window *widgets){
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->InstallationProgress),0);
vte_terminal_reset(VTE_TERMINAL(widgets->InstallTerminal),0,1);
gtk_revealer_set_transition_type(GTK_REVEALER(widgets->MainRevealer),GTK_REVEALER_TRANSITION_TYPE_SLIDE_UP); gtk_revealer_set_transition_type(GTK_REVEALER(widgets->MainRevealer),GTK_REVEALER_TRANSITION_TYPE_SLIDE_UP);
gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->MainRevealer),1); gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->MainRevealer),1);
gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->TerminalRevealer),0); gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->TerminalRevealer),0);
yon_terminal_integrated_start(widgets->InstallTerminal,command); yon_terminal_integrated_start(widgets->InstallTerminal,command);
glong columns = vte_terminal_get_column_count(VTE_TERMINAL(widgets->InstallTerminal)); glong columns = vte_terminal_get_column_count(VTE_TERMINAL(widgets->InstallTerminal));
vte_terminal_set_size(VTE_TERMINAL(widgets->InstallTerminal),columns,20); vte_terminal_set_size(VTE_TERMINAL(widgets->InstallTerminal),columns,20);
gdk_threads_add_timeout(500,(GSourceFunc)yon_terminal_get_progress,widgets);
return NULL; return NULL;
} }
void on_module_install_clicked(GtkWidget *,dictionary *dict){ void on_install_accept(GtkWidget *, dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*); main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*); kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*);
char *command = install_command(tab->module); dialog_window *window = yon_dictionary_get_data(dict->first->next->next,dialog_window*);
char *modules_to_install = tab->module;
GtkTreeIter iter;
for_iter (GTK_TREE_MODEL(window->liststore1),&iter){
int status;
char *package;
gtk_tree_model_get(GTK_TREE_MODEL(window->liststore1),&iter,0,&status,1,&package,-1);
if (status){
char *temp = yon_char_unite(modules_to_install," ", package, NULL);
if (strcmp(modules_to_install,tab->module)) free(modules_to_install);
modules_to_install = temp;
}
}
char *command = install_command(modules_to_install);
yon_command_execute_async(command,widgets); yon_command_execute_async(command,widgets);
tab->module_installed=1; tab->module_installed=1;
free(dict->first->next->next);
dict->first->next->next=NULL;
}
dialog_window *yon_dialog_window_new(){
GtkBuilder *builder = gtk_builder_new_from_resource(glade_dialog_path);
dialog_window *window = malloc(sizeof(dialog_window));
window->Window = yon_gtk_builder_get_widget(builder,"MainWindow");
window->HeadLabel = yon_gtk_builder_get_widget(builder,"HeadLabel");
window->TopicLabel = yon_gtk_builder_get_widget(builder,"TopicLabel");
window->DependencesTree = yon_gtk_builder_get_widget(builder,"DependencesTree");
window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton");
window->AcceptButton = yon_gtk_builder_get_widget(builder,"AcceptButton");
window->ChooseCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"ChooseCell"));
window->liststore1 = GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1"));
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
yon_cell_renderer_toggle_set_toggle(GTK_CELL_RENDERER_TOGGLE(window->ChooseCell),window->DependencesTree);
return window;
}
void on_module_install_clicked(GtkWidget *,dictionary *dict){
// main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*);
char *action_text = MODULE_INSTALL_CONFIRMATION_LABEL(tab->name);
dialog_window *window = yon_dialog_window_new();
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_install_accept),dict);
gtk_label_set_text(GTK_LABEL(window->TopicLabel),action_text);
gtk_widget_show(window->Window);
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
int size;
config_str additions = yon_resource_open_file(kernels_addon_path,&size);
GtkTreeIter iter;
for (int i=0;i<tab->module_requirements_size;i++){
gtk_list_store_append(window->liststore1,&iter);
for (int j=1;j<size;j++){
int cur_size;
config_str parsed = yon_char_parse(additions[j],&cur_size,";");
if (!strcmp(parsed[1],tab->module_requirements[i]))
gtk_list_store_set(window->liststore1,&iter,2,parsed[3],-1);
yon_char_parsed_free(parsed,cur_size);
}
gtk_list_store_set(window->liststore1,&iter,0,1,1,tab->module_requirements[i],-1);
}
yon_char_parsed_free(additions,size);
} }
void on_package_install_clicked(GtkWidget *,dictionary *dict){ void on_package_install_clicked(GtkWidget *,dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*); // main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*); kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*);
char *command = install_command(tab->package); char *action_text = PACKAGE_INSTALL_CONFIRMATION_LABEL(tab->name);
yon_command_execute_async(command,widgets); dialog_window *window = yon_dialog_window_new();
tab->package_installed=1; g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_install_accept),dict);
gtk_label_set_text(GTK_LABEL(window->TopicLabel),action_text);
gtk_widget_show(window->Window);
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
int size;
config_str additions = yon_resource_open_file(kernels_addon_path,&size);
GtkTreeIter iter;
for (int i=0;i<tab->package_requirements_size;i++){
gtk_list_store_append(window->liststore1,&iter);
for (int j=1;j<size;j++){
int cur_size;
config_str parsed = yon_char_parse(additions[j],&cur_size,";");
if (!strcmp(parsed[1],tab->package_requirements[i]))
gtk_list_store_set(window->liststore1,&iter,2,parsed[3],-1);
yon_char_parsed_free(parsed,cur_size);
}
gtk_list_store_set(window->liststore1,&iter,0,1,1,tab->package_requirements[i],-1);
} }
yon_char_parsed_free(additions,size);
void on_module_remove_clicked(GtkWidget *,dictionary *dict){ }
void on_module_remove_clicked(GtkWidget *self,dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*); main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*); kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*);
dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data));
data->action_text = MODULE_REMOVE_CONFIRMATION_LABEL(tab->name);
data->function = NULL;
data->data = NULL;
if (yon_confirmation_dialog_call(self,data) == GTK_RESPONSE_ACCEPT){
char *command = remove_command(tab->module); char *command = remove_command(tab->module);
yon_command_execute_async(command,widgets); yon_command_execute_async(command,widgets);
tab->module_installed=0; tab->module_installed=0;
}
} }
void on_package_remove_clicked(GtkWidget *,dictionary *dict){ void on_package_remove_clicked(GtkWidget *self,dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*); main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*); kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*);
dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data));
data->action_text = PACKAGE_REMOVE_CONFIRMATION_LABEL(tab->name);
data->function = NULL;
data->data = NULL;
int resp = yon_confirmation_dialog_call(self,data);
if (resp == GTK_RESPONSE_ACCEPT){
char *command = remove_command(tab->package); char *command = remove_command(tab->package);
yon_command_execute_async(command,widgets); yon_command_execute_async(command,widgets);
tab->package_installed=0; tab->package_installed=0;
}
} }
void on_launch_cliked(GtkWidget *,dictionary *dict){ void on_launch_cliked(GtkWidget *self,dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*); main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*); kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*);
dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data));
data->action_text = LAUNCH_CONFIRMATION_LABEL(tab->name);
data->function = NULL;
data->data = NULL;
if (yon_confirmation_dialog_call(self,data) == GTK_RESPONSE_ACCEPT){
yon_config_set(KERNEL_BOOT_parameter,tab->package); yon_config_set(KERNEL_BOOT_parameter,tab->package);
yon_interface_update(widgets); yon_interface_update(widgets);
} }
}
kernels_tab *yon_tab_row_new(GtkListBox *target, char *target_string, main_window *widgets){ kernels_tab *yon_tab_row_new(GtkListBox *target, char *target_string, main_window *widgets){
int size; int size;
@ -263,11 +385,14 @@ kernels_tab *yon_tab_row_new(GtkListBox *target, char *target_string, main_windo
g_list_free(list); g_list_free(list);
gtk_widget_hide(tab->changelog_button); gtk_widget_hide(tab->changelog_button);
gtk_widget_show(tab->launch_button); gtk_widget_show(tab->launch_button);
gtk_image_set_from_icon_name(GTK_IMAGE(tab->module_icon),"",GTK_ICON_SIZE_BUTTON);
gtk_image_set_from_icon_name(GTK_IMAGE(tab->package_icon),"",GTK_ICON_SIZE_BUTTON);
if (tab->module_installed){ if (tab->module_installed){
gtk_widget_show(tab->remove_module_button); gtk_widget_show(tab->remove_module_button);
gtk_widget_hide(tab->install_module_button); gtk_widget_hide(tab->install_module_button);
gtk_widget_show(tab->remove_module_button); gtk_widget_show(tab->remove_module_button);
yon_tag_add(GTK_BOX(tab->install_tags_box),MODULE_INSTALLED_LABEL,"tag_green",NULL); yon_tag_add(GTK_BOX(tab->install_tags_box),MODULE_INSTALLED_LABEL,"tag_green",NULL);
gtk_image_set_from_icon_name(GTK_IMAGE(tab->module_icon),module_icon_path,GTK_ICON_SIZE_BUTTON);
} else { } else {
gtk_widget_hide(tab->remove_module_button); gtk_widget_hide(tab->remove_module_button);
gtk_widget_show(tab->install_module_button); gtk_widget_show(tab->install_module_button);
@ -278,6 +403,7 @@ kernels_tab *yon_tab_row_new(GtkListBox *target, char *target_string, main_windo
gtk_widget_hide(tab->install_package_button); gtk_widget_hide(tab->install_package_button);
gtk_widget_show(tab->changelog_button); gtk_widget_show(tab->changelog_button);
yon_tag_add(GTK_BOX(tab->install_tags_box),PACKAGE_INSTALLED_LABEL,"tag_green",NULL); yon_tag_add(GTK_BOX(tab->install_tags_box),PACKAGE_INSTALLED_LABEL,"tag_green",NULL);
gtk_image_set_from_icon_name(GTK_IMAGE(tab->package_icon),package_icon_path,GTK_ICON_SIZE_BUTTON);
} else { } else {
gtk_widget_hide(tab->remove_package_button); gtk_widget_hide(tab->remove_package_button);
@ -337,22 +463,24 @@ kernels_tab *yon_tab_row_new(GtkListBox *target, char *target_string, main_windo
char *passw = types_parsed[k][0]==' '?yon_char_divide(types_parsed[k],0):NULL; char *passw = types_parsed[k][0]==' '?yon_char_divide(types_parsed[k],0):NULL;
if (passw) free(passw); if (passw) free(passw);
char *tag_type = NULL; char *tag_type = NULL;
if (!strcmp(types_parsed[k],"LTS")){ if (!strcmp(types_parsed[k],LTS_TAG)){
tag_type = "tag_blue"; tag_type = "tag_blue";
} else if (!strcmp(types_parsed[k],"Stable")){ } else if (!strcmp(types_parsed[k],STABLE_TAG)){
tag_type = "tag_green"; tag_type = "tag_green";
} else if (!strcmp(types_parsed[k],"RealTime")){ } else if (!strcmp(types_parsed[k],REALTIME_TAG)){
tag_type = "tag_orange"; tag_type = "tag_orange";
} else if (!strcmp(types_parsed[k],"Hardened")){ } else if (!strcmp(types_parsed[k],HARDENED_TAG)){
tag_type = "tag_yellow"; tag_type = "tag_yellow";
} else if (!strcmp(types_parsed[k],"Recomended")){ } else if (!strcmp(types_parsed[k],RECOMENDED_TAG)){
tag_type = "tag_blue"; tag_type = "tag_blue";
} else if (!strcmp(types_parsed[k],"Reactive")){ } else if (!strcmp(types_parsed[k],REACTIVE_TAG)){
tag_type = "tag_purple"; tag_type = "tag_purple";
} else continue; } else continue;
yon_tag_add(GTK_BOX(tab->tags_box),types_parsed[k],tag_type,NULL); yon_tag_add(GTK_BOX(tab->tags_box),types_parsed[k],tag_type,NULL);
} }
tab->module_requirements = yon_char_parse(parsed[3],&tab->module_requirements_size,",");
tab->package_requirements = yon_char_parse(parsed[4],&tab->package_requirements_size,",");
char *check_install_command = get_package_is_installed_command(tab->module); char *check_install_command = get_package_is_installed_command(tab->module);
if (!system(check_install_command)){ if (!system(check_install_command)){
yon_tag_add(GTK_BOX(tab->install_tags_box),MODULE_INSTALLED_LABEL,"tag_green",NULL); yon_tag_add(GTK_BOX(tab->install_tags_box),MODULE_INSTALLED_LABEL,"tag_green",NULL);
@ -409,12 +537,15 @@ additions_kernels_tab *yon_additions_tab_row_new(GtkListBox *target, char *targe
for (guint i=0;i<g_list_length(list);i++){ for (guint i=0;i<g_list_length(list);i++){
gtk_widget_destroy(g_list_nth_data(list,i)); gtk_widget_destroy(g_list_nth_data(list,i));
} }
gtk_image_set_from_icon_name(GTK_IMAGE(tab->module_icon),"",GTK_ICON_SIZE_BUTTON);
gtk_image_set_from_icon_name(GTK_IMAGE(tab->package_icon),"",GTK_ICON_SIZE_BUTTON);
g_list_free(list); g_list_free(list);
if (tab->module_installed){ if (tab->module_installed){
gtk_widget_show(tab->remove_module_button); gtk_widget_show(tab->remove_module_button);
gtk_widget_hide(tab->install_module_button); gtk_widget_hide(tab->install_module_button);
gtk_widget_show(tab->remove_module_button); gtk_widget_show(tab->remove_module_button);
yon_tag_add(GTK_BOX(tab->install_tags_box),MODULE_INSTALLED_LABEL,"tag_green",NULL); yon_tag_add(GTK_BOX(tab->install_tags_box),MODULE_INSTALLED_LABEL,"tag_green",NULL);
gtk_image_set_from_icon_name(GTK_IMAGE(tab->module_icon),module_icon_path,GTK_ICON_SIZE_BUTTON);
} else { } else {
gtk_widget_hide(tab->remove_module_button); gtk_widget_hide(tab->remove_module_button);
gtk_widget_show(tab->install_module_button); gtk_widget_show(tab->install_module_button);
@ -424,6 +555,7 @@ additions_kernels_tab *yon_additions_tab_row_new(GtkListBox *target, char *targe
gtk_widget_show(tab->remove_package_button); gtk_widget_show(tab->remove_package_button);
gtk_widget_hide(tab->install_package_button); gtk_widget_hide(tab->install_package_button);
yon_tag_add(GTK_BOX(tab->install_tags_box),PACKAGE_INSTALLED_LABEL,"tag_green",NULL); yon_tag_add(GTK_BOX(tab->install_tags_box),PACKAGE_INSTALLED_LABEL,"tag_green",NULL);
gtk_image_set_from_icon_name(GTK_IMAGE(tab->package_icon),package_icon_path,GTK_ICON_SIZE_BUTTON);
} else { } else {
gtk_widget_hide(tab->remove_package_button); gtk_widget_hide(tab->remove_package_button);
@ -472,6 +604,7 @@ additions_kernels_tab *yon_additions_tab_row_new(GtkListBox *target, char *targe
yon_dictionary_add_or_create_if_exists_with_data(main_config.addition_tabs,tab->package,tab); yon_dictionary_add_or_create_if_exists_with_data(main_config.addition_tabs,tab->package,tab);
if (!system(check_install_command)){ if (!system(check_install_command)){
tab->module_installed=1;
yon_tag_add(GTK_BOX(tab->install_tags_box),MODULE_INSTALLED_LABEL,"tag_green",NULL); yon_tag_add(GTK_BOX(tab->install_tags_box),MODULE_INSTALLED_LABEL,"tag_green",NULL);
gtk_image_set_from_icon_name(GTK_IMAGE(tab->module_icon),module_icon_path,GTK_ICON_SIZE_BUTTON); gtk_image_set_from_icon_name(GTK_IMAGE(tab->module_icon),module_icon_path,GTK_ICON_SIZE_BUTTON);
@ -484,6 +617,7 @@ additions_kernels_tab *yon_additions_tab_row_new(GtkListBox *target, char *targe
free(check_install_command); free(check_install_command);
check_install_command = get_package_is_installed_command(tab->package); check_install_command = get_package_is_installed_command(tab->package);
if (!system(check_install_command)){ if (!system(check_install_command)){
tab->package_installed=1;
yon_tag_add(GTK_BOX(tab->install_tags_box),PACKAGE_INSTALLED_LABEL,"tag_green",NULL); yon_tag_add(GTK_BOX(tab->install_tags_box),PACKAGE_INSTALLED_LABEL,"tag_green",NULL);
gtk_image_set_from_icon_name(GTK_IMAGE(tab->package_icon),package_icon_path,GTK_ICON_SIZE_BUTTON); gtk_image_set_from_icon_name(GTK_IMAGE(tab->package_icon),package_icon_path,GTK_ICON_SIZE_BUTTON);
gtk_widget_hide(tab->install_package_button); gtk_widget_hide(tab->install_package_button);

@ -26,6 +26,7 @@
#define glade_install_path "/com/ublinux/ui/ubl-settings-kernel-install.glade" #define glade_install_path "/com/ublinux/ui/ubl-settings-kernel-install.glade"
#define glade_table_row_path "/com/ublinux/ui/ubl-settings-kernel-table-row.glade" #define glade_table_row_path "/com/ublinux/ui/ubl-settings-kernel-table-row.glade"
#define glade_additions_table_row_path "/com/ublinux/ui/ubl-settings-kernel-additions-table-row.glade" #define glade_additions_table_row_path "/com/ublinux/ui/ubl-settings-kernel-additions-table-row.glade"
#define glade_dialog_path "/com/ublinux/ui/ubl-settings-kernel-dialog.glade"
#define banner_path "/com/ublinux/images/ubl-settings-kernel-banner.png" #define banner_path "/com/ublinux/images/ubl-settings-kernel-banner.png"
#define CssPath "/com/ublinux/css/ubl-settings-kernel.css" #define CssPath "/com/ublinux/css/ubl-settings-kernel.css"
#define config_path yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL) #define config_path yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL)
@ -150,6 +151,10 @@ typedef struct {
GtkWidget *install_package_button; GtkWidget *install_package_button;
GtkWidget *changelog_button; GtkWidget *changelog_button;
GtkWidget *launch_button; GtkWidget *launch_button;
config_str module_requirements;
int module_requirements_size;
config_str package_requirements;
int package_requirements_size;
} kernels_tab; } kernels_tab;
@ -174,6 +179,18 @@ typedef struct {
} additions_kernels_tab; } additions_kernels_tab;
typedef struct {
GtkWidget *Window;
GtkWidget *HeadLabel;
GtkWidget *TopicLabel;
GtkWidget *DependencesTree;
GtkWidget *CancelButton;
GtkWidget *AcceptButton;
GtkCellRenderer *ChooseCell;
GtkListStore *liststore1;
} dialog_window;
void *yon_interface_update(main_window *widgets); void *yon_interface_update(main_window *widgets);
@ -193,8 +210,13 @@ void config_init();
void yon_main_window_complete(main_window *widgets); void yon_main_window_complete(main_window *widgets);
gboolean on_command_execute_success(GtkWidget *,gint,main_window *widgets); gboolean on_command_execute_success(GtkWidget *,gint,main_window *widgets);
gboolean yon_terminal_get_progress(main_window *widgets);
void *yon_command_execute_async(char *command,main_window *widgets); void *yon_command_execute_async(char *command,main_window *widgets);
dialog_window *yon_dialog_window_new();
void on_install_accept(GtkWidget *, dictionary *dict);
void on_module_install_clicked(GtkWidget *,dictionary *dict); void on_module_install_clicked(GtkWidget *,dictionary *dict);
void on_package_install_clicked(GtkWidget *,dictionary *dict); void on_package_install_clicked(GtkWidget *,dictionary *dict);
void on_module_remove_clicked(GtkWidget *,dictionary *dict); void on_module_remove_clicked(GtkWidget *,dictionary *dict);

@ -1,15 +1,53 @@
#define TITLE_LABEL _("ubl-settings-kernel") #define TITLE_LABEL _("System kernel")
#define TITLE_INFO_LABEL _("kernel configuration") #define TITLE_INFO_LABEL _("Kernel downloading and installation, kernel selection to boot by default")
#define INFO_TITLE_LABEL _("Information") #define INFO_TITLE_LABEL _("Information")
#define MODULE_LABEL _("Module:") #define MODULE_LABEL _("Module:")
#define PACKAGE_LABEL _("Package:") #define PACKAGE_LABEL _("Package:")
#define CANCEL_LABEL _("Cancel")
#define PACKAGE_NOT_FOUND_LABEL _("Package were not found") #define PACKAGE_NOT_FOUND_LABEL _("Package were not found")
#define CHANGELOG_NOT_FOUND_LABEL _("Changelog was not found") #define CHANGELOG_NOT_FOUND_LABEL _("Changelog was not found")
#define PACKAGE_INSTALLED_LABEL _("Package installed") #define PACKAGE_INSTALLED_LABEL _("Package installed")
#define MODULE_INSTALLED_LABEL _("Module installed") #define MODULE_INSTALLED_LABEL _("Module installed")
#define BOOT_RUN_LABEL _("Startup boot") #define BOOT_RUN_LABEL _("Startup boot")
#define INITRAMFS_TITLE_LABEL _("Initramfs building")
#define EXECUTE_LABEL _("Execute")
#define KERNEL_VERSION_LABEL _("Kernel version:")
#define ADD_DEBUG_LABEL _("Add debug components")
#define ADD_DRIVERS_LABEL _("Add drivers for current hardware components only")
#define INSTALL_MODULE_LABEL _("Install module")
#define REMOVE_MODULE_LABEL _("Remove module")
#define INSTALL_PACKAGE_LABEL _("Install package")
#define REMOVE_PACKAGE_LABEL _("Remove package")
#define CHANGELOG_LABEL _("Changelog")
#define LAUNCH_LABEL _("Launch")
#define LTS_TAG _("LTS")
#define REACTIVE_TAG _("Reactive")
#define RECOMENDED_TAG _("Recomended")
#define HARDENED_TAG _("Hardened")
#define REALTIME_TAG _("RealTime")
#define STABLE_TAG _("Stable")
#define KERNELS_LABEL _("Kernels")
#define ADDITIONS_LABEL _("Additions")
#define UPDATE_LABEL _("Update")
#define OPE_INFO_LABEL _("Open package information")
#define MORE_LABEL _("More")
#define ACCEPT_LABEL _("Accept")
#define WARNING_TITLE_LABEL _("Warning")
#define DEPENDENCES_LABEL _("Dependences")
#define MODULE_INSTALL_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to install kernel "),target,"?",NULL)
#define PACKAGE_INSTALL_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to install package "),target,"?",NULL)
#define MODULE_REMOVE_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to remove module "),target,"?",NULL)
#define PACKAGE_REMOVE_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to remove package "),target,"?",NULL)
#define LAUNCH_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to launch "),target,"?",NULL)

@ -0,0 +1,214 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface domain="ubl-settings-kernel">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-kernel.css -->
<object class="GtkListStore" id="liststore1">
<columns>
<!-- column-name gboolean1 -->
<column type="gboolean"/>
<!-- column-name gchararray1 -->
<column type="gchararray"/>
<!-- column-name gchararray2 -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkApplicationWindow" id="MainWindow">
<property name="width-request">400</property>
<property name="height-request">200</property>
<property name="can-focus">False</property>
<property name="modal">True</property>
<property name="icon-name">com.ublinux.ubl-settings-repomanager</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">15</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">51</property>
<property name="icon-name">dialog-question-symbolic</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="TopicLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">label</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkFrame">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label-xalign">0.019999999552965164</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkAlignment">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="bottom-padding">5</property>
<property name="left-padding">5</property>
<property name="right-padding">5</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="hscrollbar-policy">never</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="DependencesTree">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="model">liststore1</property>
<child internal-child="selection">
<object class="GtkTreeSelection">
<property name="mode">none</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<child>
<object class="GtkCellRendererToggle" id="ChooseCell"/>
<attributes>
<attribute name="active">0</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Module</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="markup">1</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Description</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="markup">2</attribute>
</attributes>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Dependences</property>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar" id="SettingsBar2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="show-close-button">True</property>
<child type="title">
<object class="GtkLabel" id="HeadLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Warning</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubl-settings-kernel</property>
</object>
</child>
<child>
<object class="GtkButton" id="CancelButton">
<property name="label" translatable="yes">Cancel</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="AcceptButton">
<property name="label" translatable="yes">Accept</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
<packing>
<property name="pack-type">end</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
</object>
</interface>

@ -61,7 +61,7 @@
<object class="GtkLabel" id="HeadLabel"> <object class="GtkLabel" id="HeadLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Kernel settings</property> <property name="label" translatable="yes">Information</property>
<attributes> <attributes>
<attribute name="weight" value="bold"/> <attribute name="weight" value="bold"/>
</attributes> </attributes>

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.40.0 --> <!-- Generated with glade 3.38.2 -->
<interface> <interface>
<requires lib="gtk+" version="3.24"/> <requires lib="gtk+" version="3.24"/>
<object class="GtkApplicationWindow" id="MainWindow"> <object class="GtkApplicationWindow" id="MainWindow">
@ -132,7 +132,7 @@
<object class="GtkLabel" id="HeadLabel"> <object class="GtkLabel" id="HeadLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Kernel settings</property> <property name="label" translatable="yes">Initramfs building</property>
<attributes> <attributes>
<attribute name="weight" value="bold"/> <attribute name="weight" value="bold"/>
</attributes> </attributes>

@ -1,11 +1,11 @@
[Desktop Entry] [Desktop Entry]
Encoding=UTF-8 Encoding=UTF-8
Name=System kernel Name=System kernel
Name[ru]=kernel Name[ru]=Ядро системы
GenericName=ubl-settings-kernel GenericName=ubl-settings-kernel
GenericName[ru]=kernel GenericName[ru]=Ядро системы
Comment=Kernel downloading and installation for default load Comment=Kernel downloading and installation, kernel selection to boot by default
Comment[ru]=Приложение для kernel Comment[ru]=Загрузка и устанвока ядер системы, выбор ядра для загрузки по умолчанию
Type=Application Type=Application
Exec=pkexec ubl-settings-kernel Exec=pkexec ubl-settings-kernel
Icon=com.ublinux.ubl-settings-kernel Icon=com.ublinux.ubl-settings-kernel

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.40.0 --> <!-- Generated with glade 3.38.2 -->
<interface domain="ubl-settings-kernel"> <interface domain="ubl-settings-kernel">
<requires lib="gtk+" version="3.24"/> <requires lib="gtk+" version="3.24"/>
<requires lib="vte-2.91" version="0.76"/> <requires lib="vte-2.91" version="0.76"/>
@ -214,6 +214,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Update</property>
<property name="image">image1</property> <property name="image">image1</property>
<style> <style>
<class name="thin"/> <class name="thin"/>

@ -17,170 +17,138 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: source/ubl-strings.h:1
msgid "Version:"
msgstr ""
#: source/ubl-strings.h:2
msgid "ubl-settings-kernel version:"
msgstr ""
#: source/ubl-strings.h:2
msgid "Usage:"
msgstr ""
#: source/ubl-strings.h:2
msgid "[OPTIONS]"
msgstr ""
#: source/ubl-strings.h:2
msgid "Options:"
msgstr ""
#: source/ubl-strings.h:2 #: source/ubl-strings.h:2
msgid "Show this help" msgid "System kernel"
msgstr "" msgstr ""
#: source/ubl-strings.h:2 #: source/ubl-strings.h:3
msgid "Show package version" msgid "Kernel downloading and installation, kernel selection to boot by default"
msgstr ""
#: source/ubl-strings.h:2
msgid "Lock this help menu"
msgstr ""
#: source/ubl-strings.h:2
msgid "Lock configuration saving"
msgstr "" msgstr ""
#: source/ubl-strings.h:2 #: source/ubl-strings.h:22
msgid "Lock local configration saving" msgid "Kernel version:"
msgstr ""
#: source/ubl-strings.h:2
msgid "Lock global configration saving"
msgstr ""
#: source/ubl-strings.h:2
msgid "Lock global configration loading"
msgstr ""
#: source/ubl-strings.h:2
msgid "Clear application configuration"
msgstr ""
#: source/ubl-strings.h:4
msgid "ubl-settings-kernel"
msgstr "" msgstr ""
#: source/ubl-strings.h:5 #: source/ubl-strings.h:5
msgid "kernel configuration" msgid "Information"
msgstr "" msgstr ""
#: source/ubl-strings.h:7 #: source/ubl-strings.h:7
msgid "Operation succeeded" msgid "Module:"
msgstr "" msgstr ""
#: source/ubl-strings.h:8 #: source/ubl-strings.h:8
msgid "Nothing were chosen" msgid "Package:"
msgstr ""
#: source/ubl-strings.h:9
msgid ""
"Warning! Application was launched without root - root-dependent actions are "
"locked"
msgstr "" msgstr ""
#: source/ubl-strings.h:11 #: source/ubl-strings.h:10
msgid "About" msgid "Cancel"
msgstr "" msgstr ""
#: source/ubl-strings.h:12 #: source/ubl-strings.h:12
msgid "Documentation" msgid "Package were not found"
msgstr "" msgstr ""
#: source/ubl-strings.h:14 #: source/ubl-strings.h:13
msgid "Save to local configuration" msgid "Changelog was not found"
msgstr "" msgstr ""
#: source/ubl-strings.h:15 #: source/ubl-strings.h:15
msgid "Save to global configuration" msgid "Package installed"
msgstr "" msgstr ""
#: source/ubl-strings.h:16 #: source/ubl-strings.h:16
msgid "Save to global and local configuration" msgid "Module installed"
msgstr "" msgstr ""
#: source/ubl-strings.h:17 #: source/ubl-strings.h:17
msgid "Save" msgid "Startup boot"
msgstr ""
#: source/ubl-strings.h:19
msgid "Load local configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:20 #: source/ubl-strings.h:20
msgid "Load global configuration" msgid "Initramfs building"
msgstr "" msgstr ""
#: source/ubl-strings.h:21 #: source/ubl-strings.h:21
msgid "Load" msgid "Execute"
msgstr ""
#: source/ubl-strings.h:22
msgid "Kernel version:"
msgstr "" msgstr ""
#: source/ubl-strings.h:23 #: source/ubl-strings.h:23
msgid "Cancel" msgid "Add debug components"
msgstr "" msgstr ""
#: source/ubl-strings.h:24 #: source/ubl-strings.h:24
msgid "Close" msgid "Add drivers for current hardware components only"
msgstr "" msgstr ""
#: source/ubl-strings.h:25 #: source/ubl-strings.h:26
msgid "Apply" msgid "Install module"
msgstr "" msgstr ""
#: source/ubl-strings.h:27 #: source/ubl-strings.h:27
msgid "Would you like to read documentation in the Web?" msgid "Remove module"
msgstr "" msgstr ""
#: source/ubl-strings.h:28 #: source/ubl-strings.h:28
msgid "" msgid "Install package"
"You will be redirected to documentation website, where documentation is\n"
"translated and supported by community."
msgstr "" msgstr ""
#: source/ubl-strings.h:29 #: source/ubl-strings.h:29
msgid "Always redirect to online documentation" msgid "Remove package"
msgstr "" msgstr ""
#: source/ubl-strings.h:30 #: source/ubl-strings.h:30
msgid "Open documentation" msgid "Changelog"
msgstr "" msgstr ""
#: source/ubl-strings.h:31 #: source/ubl-strings.h:31
msgid "Project Home Page" msgid "Launch"
msgstr ""
#: source/ubl-strings.h:32
msgid "LTS"
msgstr "" msgstr ""
#: source/ubl-strings.h:33 #: source/ubl-strings.h:33
msgid "Global configuration loading succeeded." msgid "Reactive"
msgstr "" msgstr ""
#: source/ubl-strings.h:34 #: source/ubl-strings.h:34
msgid "Local configuration loading succeeded." msgid "Recomended"
msgstr "" msgstr ""
#: source/ubl-strings.h:35 #: source/ubl-strings.h:35
msgid "Config loading failed" msgid "Hardened"
msgstr "" msgstr ""
#: source/ubl-strings.h:37 #: source/ubl-strings.h:36
msgid "Local and global configuration saving succeeded." msgid "RealTime"
msgstr "" msgstr ""
#: source/ubl-strings.h:38 #: source/ubl-strings.h:37
msgid "Global configuration saving succeeded." msgid "Stable"
msgstr "" msgstr ""
#: source/ubl-strings.h:39 #: source/ubl-strings.h:39
msgid "Local configuration saving succeeded." msgid "Kernels"
msgstr ""
#: source/ubl-strings.h:40
msgid "Additions"
msgstr ""
#: source/ubl-strings.h:41
msgid "Update"
msgstr ""
#: source/ubl-strings.h:42
msgid "Open package information"
msgstr ""
#: source/ubl-strings.h:43
msgid "More"
msgstr "" msgstr ""

@ -17,174 +17,134 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: source/ubl-strings.h:1
msgid "Version:"
msgstr "Версия:"
#: source/ubl-strings.h:2
msgid "ubl-settings-kernel version:"
msgstr "Версия ubl-settings-kernel: "
#: source/ubl-strings.h:2
msgid "Usage:"
msgstr "Использование:"
#: source/ubl-strings.h:2
msgid "[OPTIONS]"
msgstr "[АРГУМЕНТЫ]"
#: source/ubl-strings.h:2
msgid "Options:"
msgstr "Аргументы:"
#: source/ubl-strings.h:2
msgid "Show this help"
msgstr "Показать параметры справки"
#: source/ubl-strings.h:2
msgid "Show package version"
msgstr "Показать текущую версию"
#: source/ubl-strings.h:2
msgid "Lock this help menu"
msgstr "Блокировка вызова справки"
#: source/ubl-strings.h:2
msgid "Lock configuration saving"
msgstr "Блокировка сохранения локальной и глобальной конфигурации"
#: source/ubl-strings.h:2
msgid "Lock local configration saving"
msgstr "Блокировка сохранения локальной конфигурации"
#: source/ubl-strings.h:2
msgid "Lock global configration saving"
msgstr "Блокировка сохранения глобальной конфигурации"
#: source/ubl-strings.h:2 #: source/ubl-strings.h:2
msgid "Lock global configration loading" msgid "System kernel"
msgstr "Блокировка загрузки глобальной конфигурации" msgstr "Ядро системы"
#: source/ubl-strings.h:2 #: source/ubl-strings.h:3
msgid "Clear application configuration" msgid "Kernel downloading and installation, kernel selection to boot by default"
msgstr "Удалить конфигурацию приложения" msgstr "Загрузка и устанвока ядер системы, выбор ядра для загрузки по умолчанию"
#: source/ubl-strings.h:4
msgid "ubl-settings-kernel"
msgstr "Настройки kernel"
#: source/ubl-strings.h:5 #: source/ubl-strings.h:5
msgid "kernel configuration" msgid "Information"
msgstr "Настройки kernel" msgstr "Информация"
#: source/ubl-strings.h:7 #: source/ubl-strings.h:7
msgid "Operation succeeded" msgid "Module:"
msgstr "Операция завершена" msgstr "Модуль:"
#: source/ubl-strings.h:8 #: source/ubl-strings.h:8
msgid "Nothing were chosen" msgid "Package:"
msgstr "Ничего не было выбрано" msgstr "Пакет:"
#: source/ubl-strings.h:9
msgid ""
"Warning! Application was launched without root - root-dependent actions are "
"locked"
msgstr ""
"Внимание! Приложение было запущено без прав суперпользователя - действия, "
"требующие их наличия заблокированы"
#: source/ubl-strings.h:11 #: source/ubl-strings.h:10
msgid "About" msgid "Cancel"
msgstr "О программе" msgstr "Отмена"
#: source/ubl-strings.h:12 #: source/ubl-strings.h:12
msgid "Documentation" msgid "Package were not found"
msgstr "Справка" msgstr "Пакет не найден"
#: source/ubl-strings.h:14 #: source/ubl-strings.h:13
msgid "Save to local configuration" msgid "Changelog was not found"
msgstr "Сохранить в локальную конфигурацию" msgstr "Список изменений не найден"
#: source/ubl-strings.h:15 #: source/ubl-strings.h:15
msgid "Save to global configuration" msgid "Package installed"
msgstr "Сохранить в глобальную конфигурацию" msgstr "Установлен пакет"
#: source/ubl-strings.h:16 #: source/ubl-strings.h:16
msgid "Save to global and local configuration" msgid "Module installed"
msgstr "Сохранить в глобальную и локальную конфигурацию" msgstr "Установлен модуль"
#: source/ubl-strings.h:17 #: source/ubl-strings.h:17
msgid "Save" msgid "Startup boot"
msgstr "Сохранить" msgstr "Будет запущено"
#: source/ubl-strings.h:19
msgid "Load local configuration"
msgstr "Загрузить локальную конфигурацию"
#: source/ubl-strings.h:20 #: source/ubl-strings.h:20
msgid "Load global configuration" msgid "Initramfs building"
msgstr "Загрузить глобальную конфигурацию" msgstr "Сборка Initramfs"
#: source/ubl-strings.h:21 #: source/ubl-strings.h:21
msgid "Load" msgid "Execute"
msgstr "Загрузить" msgstr "Выполнить"
#: source/ubl-strings.h:22
msgid "Kernel version:"
msgstr "Версия ядра:"
#: source/ubl-strings.h:23 #: source/ubl-strings.h:23
msgid "Cancel" msgid "Add debug components"
msgstr "Отмена" msgstr "Добавить компоненты отладки"
#: source/ubl-strings.h:24 #: source/ubl-strings.h:24
msgid "Close" msgid "Add drivers for current hardware components only"
msgstr "Закрыть" msgstr "Добавить драйвера только текущих аппаратных компонентов"
#: source/ubl-strings.h:25 #: source/ubl-strings.h:26
msgid "Apply" msgid "Install module"
msgstr "Применить" msgstr "Установить модуль"
#: source/ubl-strings.h:27 #: source/ubl-strings.h:27
msgid "Would you like to read documentation in the Web?" msgid "Remove module"
msgstr "Вы хотите прочитать справку в Сети?" msgstr "Удалить модуль"
#: source/ubl-strings.h:28 #: source/ubl-strings.h:28
msgid "" msgid "Install package"
"You will be redirected to documentation website, where documentation is\n" msgstr "Установить пакет"
"translated and supported by community."
msgstr ""
"Вы будете перенаправлены на сайт с документацией, где страницы помощи\n"
"переводятся и поддерживаются сообществом."
#: source/ubl-strings.h:29 #: source/ubl-strings.h:29
msgid "Always redirect to online documentation" msgid "Remove package"
msgstr "Всегда перенаправлять" msgstr "Удалить пакет"
#: source/ubl-strings.h:30 #: source/ubl-strings.h:30
msgid "Open documentation" msgid "Changelog"
msgstr "Прочитать справку" msgstr "Список изменений"
#: source/ubl-strings.h:31 #: source/ubl-strings.h:31
msgid "Project Home Page" msgid "Launch"
msgstr "Домашняя страница проекта" msgstr "Запускать"
#: source/ubl-strings.h:32
msgid "LTS"
msgstr "LTS"
#: source/ubl-strings.h:33 #: source/ubl-strings.h:33
msgid "Global configuration loading succeeded." msgid "Reactive"
msgstr "Успешно загружена глобальная конфигурация" msgstr "Реактивное"
#: source/ubl-strings.h:34 #: source/ubl-strings.h:34
msgid "Local configuration loading succeeded." msgid "Recomended"
msgstr "Успешно загружена локальная конфигурация" msgstr "Рекомендуется"
#: source/ubl-strings.h:35 #: source/ubl-strings.h:35
msgid "Config loading failed" msgid "Hardened"
msgstr "Ошибка загрузки конфигурации" msgstr ""
#: source/ubl-strings.h:37 #: source/ubl-strings.h:36
msgid "Local and global configuration saving succeeded." msgid "RealTime"
msgstr "Успешно записаны локальная и глобальная конфигурация" msgstr "Реальное время"
#: source/ubl-strings.h:38 #: source/ubl-strings.h:37
msgid "Global configuration saving succeeded." msgid "Stable"
msgstr "Успешно записана глобальная конфигурация" msgstr "Стабильное"
#: source/ubl-strings.h:39 #: source/ubl-strings.h:39
msgid "Local configuration saving succeeded." msgid "Kernels"
msgstr "Успешно записана локальная конфигурация" msgstr "Ядра"
#: source/ubl-strings.h:40
msgid "Additions"
msgstr "Дополнения"
#: source/ubl-strings.h:41
msgid "Update"
msgstr "Обновить"
#: source/ubl-strings.h:42
msgid "Open package information"
msgstr "Открыть информацию о пакете"
#: source/ubl-strings.h:43
msgid "More"
msgstr "Подробнее"

Loading…
Cancel
Save