From 7f2753d726616230d65d227d176e9a1681c7c4bc Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Wed, 27 Mar 2024 17:44:34 +0600 Subject: [PATCH] Localisation. Loading and saving return (WIP); services config interactions; Fixes of tables fulling --- source/ubl-settings-services.c | 438 ++++++++++++++++++++++++++++----- source/ubl-settings-services.h | 28 ++- source/ubl-strings.h | 56 ++++- ubl-settings-services.glade | 44 ++-- ubl-settings-services.pot | 340 ++++++++++++++++++------- ubl-settings-services_ru.po | 343 +++++++++++++++++++------- 6 files changed, 982 insertions(+), 267 deletions(-) diff --git a/source/ubl-settings-services.c b/source/ubl-settings-services.c index c7db282..55621b9 100644 --- a/source/ubl-settings-services.c +++ b/source/ubl-settings-services.c @@ -60,37 +60,211 @@ void on_config_global_save(){ } -void on_config_autostart_clicked(){ - -} - void on_activate(GtkTreeView *self, main_window *widgets){ if (self&&widgets){}; } +void on_config_autostart_clicked(GtkWidget *self, main_window *widgets){ + if (self){}; + GtkTreeIter iter; + GtkTreeModel *model; + GtkWidget *Tree; + if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){ + model = GTK_TREE_MODEL(widgets->SystemList); + Tree = widgets->SystemUnitsTree; + } else { + model = GTK_TREE_MODEL(widgets->UserList); + Tree = widgets->UserUnitsTree; + } + if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(Tree)),&model,&iter)){ + gboolean status = 0; + char *name; + gtk_tree_model_get(model,&iter,0,&status,5,&name,-1); + char *parsed_name = yon_char_divide(name, yon_char_find_last(name,'.')); + free(name); + name=parsed_name; + gtk_list_store_set(GTK_LIST_STORE(model),&iter,0,!status,-1); + char *config_sting = yon_config_get_by_key("SERVICES_ENABLE"); + int size; + config_str parsed = yon_char_parse(config_sting,&size,","); + int place = yon_char_parsed_check_exist(parsed,size,name); + if (status==0){ + if (place ==-1){ + if (!yon_config_append("SERVICES_ENABLE",name,",")){ + yon_config_register("SERVICES_ENABLE",SERVICES_ENABLE_get_command,name); + } + } + } else { + if (place !=-1){ + parsed = yon_char_parsed_rip(parsed,&size,place); + if (parsed) + yon_config_set("SERVICES_ENABLE",yon_char_parsed_to_string(parsed,size,",")); + else yon_config_remove_by_key("SERVICES_ENABLE"); + } + } + yon_char_parsed_free(parsed,size); + } +} -void on_config_autostop_clicked(){ +void on_config_autostop_clicked(GtkWidget *self, main_window *widgets){ + if (self){}; + GtkTreeIter iter; + GtkTreeModel *model; + GtkWidget *Tree; + if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){ + model = GTK_TREE_MODEL(widgets->SystemList); + Tree = widgets->SystemUnitsTree; + } else { + model = GTK_TREE_MODEL(widgets->UserList); + Tree = widgets->UserUnitsTree; + } + if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(Tree)),&model,&iter)){ + gboolean status = 0; + char *name; + gtk_tree_model_get(model,&iter,1,&status,5,&name,-1); + char *parsed_name = yon_char_divide(name, yon_char_find_last(name,'.')); + free(name); + name=parsed_name; + gtk_list_store_set(GTK_LIST_STORE(model),&iter,1,!status,-1); + char *config_sting = yon_config_get_by_key("SERVICES_DISABLE"); + int size; + config_str parsed = yon_char_parse(config_sting,&size,","); + int place = yon_char_parsed_check_exist(parsed,size,name); + if (status==0){ + if (place ==-1){ + if (!yon_config_append("SERVICES_DISABLE",name,",")){ + yon_config_register("SERVICES_DISABLE",SERVICES_DISABLE_get_command,name); + } + } + } else { + if (place !=-1){ + parsed = yon_char_parsed_rip(parsed,&size,place); + if (parsed) + yon_config_set("SERVICES_DISABLE",yon_char_parsed_to_string(parsed,size,",")); + else yon_config_remove_by_key("SERVICES_DISABLE"); + } + } + yon_char_parsed_free(parsed,size); + } } -void on_config_block_clicked(){ +void on_config_block_clicked(GtkWidget *self, main_window *widgets){ + if (self){}; + GtkTreeIter iter; + GtkTreeModel *model; + GtkWidget *Tree; + if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){ + model = GTK_TREE_MODEL(widgets->SystemList); + Tree = widgets->SystemUnitsTree; + } else { + model = GTK_TREE_MODEL(widgets->UserList); + Tree = widgets->UserUnitsTree; + } + if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(Tree)),&model,&iter)){ + gboolean status = 0; + char *name; + gtk_tree_model_get(model,&iter,2,&status,5,&name,-1); + char *parsed_name = yon_char_divide(name, yon_char_find_last(name,'.')); + free(name); + name=parsed_name; + gtk_list_store_set(GTK_LIST_STORE(model),&iter,2,!status,-1); + char *config_sting = yon_config_get_by_key("SERVICES_MASK"); + int size; + config_str parsed = yon_char_parse(config_sting,&size,","); + int place = yon_char_parsed_check_exist(parsed,size,name); + if (status==0){ + if (place ==-1){ + if (!yon_config_append("SERVICES_MASK",name,",")){ + yon_config_register("SERVICES_MASK",SERVICES_MASK_get_command,name); + } + } + } else { + if (place !=-1){ + parsed = yon_char_parsed_rip(parsed,&size,place); + if (parsed) + yon_config_set("SERVICES_MASK",yon_char_parsed_to_string(parsed,size,",")); + else yon_config_remove_by_key("SERVICES_MASK"); + } + } + yon_char_parsed_free(parsed,size); + } } -void on_system_autostart_clicked(){ +void on_system_autostart_clicked(GtkWidget *self, main_window *widgets){ + if (self){}; + GtkTreeIter iter; + GtkTreeModel *model; + GtkWidget *Tree; + if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){ + model = GTK_TREE_MODEL(widgets->SystemList); + Tree = widgets->SystemUnitsTree; + } else { + model = GTK_TREE_MODEL(widgets->UserList); + Tree = widgets->UserUnitsTree; + } + if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(Tree)),&model,&iter)){ + gboolean status = 0; + char *service_name; + gtk_tree_model_get(model,&iter,3,&status,5,&service_name,-1); + gtk_list_store_set(GTK_LIST_STORE(model),&iter,3,!status,-1); + yon_launch((!status)==1 ? service_enable_command(service_name) : \ + service_disable_command(service_name)); + } } void on_system_kill_confirmed(GtkWidget *self,char *service_name){ - if (self&&service_name){}; - + if (self){}; + char *command = service_kill_command(service_name); + yon_launch(command); } -void on_system_launch_clicked(){ +void on_system_launch_clicked(GtkWidget *self, main_window *widgets){ + if (self){}; + GtkTreeIter iter; + GtkTreeModel *model; + GtkWidget *Tree; + if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){ + model = GTK_TREE_MODEL(widgets->SystemList); + Tree = widgets->SystemUnitsTree; + } else { + model = GTK_TREE_MODEL(widgets->UserList); + Tree = widgets->UserUnitsTree; + } + if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(Tree)),&model,&iter)){ + gboolean status = 0; + char *service_name; + gtk_tree_model_get(model,&iter,4,&status,5,&service_name,-1); + yon_launch((!status)==1 ? service_start_command(service_name) : \ + service_stop_command(service_name)); + int size; + config_str result = yon_config_load(service_check_active_command(service_name),&size); + yon_char_remove_last_symbol(result[0],'\n'); + if (size>0){ + if (!strcmp(result[0],"active")){ + if (status){ + dialog_confirmation_data data; + data.action_text=STOP_SERVICE_WARMING_LABEL(service_name); + data.function=(void*)(void*)on_system_kill_confirmed; + data.data=service_name; + int answer = yon_confirmation_dialog_call(self,&data); + if (answer) + gtk_list_store_set(GTK_LIST_STORE(model),&iter,4,0,-1); + } else { + gtk_list_store_set(GTK_LIST_STORE(model),&iter,4,1,-1); + } + } else { + gtk_list_store_set(GTK_LIST_STORE(model),&iter,4,0,-1); + } + } + yon_char_parsed_free(result,size); + } } -void on_system_restart_clicked(){ - +void on_system_restart_clicked(GtkWidget *self, main_window *widgets){ + if (self&&widgets){}; } void on_source_show(){ @@ -301,9 +475,7 @@ void on_system_status_clicked(GtkWidget *self, main_window *widgets){ void on_system_filter_changed(GtkWidget *self, main_window *widgets){ if (self){} if (widgets){ - log_window *window = yon_log_window_new(); - - gtk_widget_show(window->Window); + } } @@ -311,9 +483,7 @@ void on_system_filter_changed(GtkWidget *self, main_window *widgets){ void on_system_search(GtkWidget *self, main_window *widgets){ if (self){} if (widgets){ - log_window *window = yon_log_window_new(); - - gtk_widget_show(window->Window); + } } @@ -321,9 +491,7 @@ void on_system_search(GtkWidget *self, main_window *widgets){ void on_system_inactive_toggled(GtkWidget *self, main_window *widgets){ if (self){} if (widgets){ - log_window *window = yon_log_window_new(); - - gtk_widget_show(window->Window); + } } @@ -331,9 +499,7 @@ void on_system_inactive_toggled(GtkWidget *self, main_window *widgets){ void on_system_unloaded_toggled(GtkWidget *self, main_window *widgets){ if (self){} if (widgets){ - log_window *window = yon_log_window_new(); - - gtk_widget_show(window->Window); + } } @@ -443,9 +609,7 @@ void on_user_status_clicked(GtkWidget *self, main_window *widgets){ void on_user_filter_changed(GtkWidget *self, main_window *widgets){ if (self){} if (widgets){ - log_window *window = yon_log_window_new(); - - gtk_widget_show(window->Window); + } } @@ -453,9 +617,7 @@ void on_user_filter_changed(GtkWidget *self, main_window *widgets){ void on_user_search(GtkWidget *self, main_window *widgets){ if (self){} if (widgets){ - log_window *window = yon_log_window_new(); - - gtk_widget_show(window->Window); + } } @@ -463,9 +625,7 @@ void on_user_search(GtkWidget *self, main_window *widgets){ void on_user_inactive_toggled(GtkWidget *self, main_window *widgets){ if (self){} if (widgets){ - log_window *window = yon_log_window_new(); - - gtk_widget_show(window->Window); + } } @@ -473,9 +633,7 @@ void on_user_inactive_toggled(GtkWidget *self, main_window *widgets){ void on_user_unloaded_toggled(GtkWidget *self, main_window *widgets){ if (self){} if (widgets){ - log_window *window = yon_log_window_new(); - - gtk_widget_show(window->Window); + } } @@ -524,9 +682,6 @@ void on_config_edit_clicked(GtkWidget *self, main_window *widgets){ void on_session_start_clicked(GtkWidget *self, main_window *widgets){ if (self){} if (widgets){ - log_window *window = yon_log_window_new(); - - gtk_widget_show(window->Window); } } @@ -534,9 +689,7 @@ void on_session_start_clicked(GtkWidget *self, main_window *widgets){ void on_session_stop_clicked(GtkWidget *self, main_window *widgets){ if (self){} if (widgets){ - log_window *window = yon_log_window_new(); - - gtk_widget_show(window->Window); + } } @@ -544,9 +697,6 @@ void on_session_stop_clicked(GtkWidget *self, main_window *widgets){ void on_session_lock_clicked(GtkWidget *self, main_window *widgets){ if (self){} if (widgets){ - log_window *window = yon_log_window_new(); - - gtk_widget_show(window->Window); } @@ -626,6 +776,11 @@ void on_timers_list_status(GtkWidget *self, main_window *widgets){ gboolean yon_interface_update(main_window *widgets){ if (widgets){ + gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->SystemUnitsTree),NULL); + gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->UserUnitsTree),NULL); + gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->ConfigMainTree),NULL); + gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->SessionMainTree),NULL); + gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->TimersMainTree),NULL); int system_size; config_str system_services = yon_config_load(load_services_command,&system_size); int user_size; @@ -642,7 +797,7 @@ gboolean yon_interface_update(main_window *widgets){ if (system_services[i][strlen(system_services[i])-1]=='\n') system_services[i][strlen(system_services[i])-1] = '\0'; int size; config_str parsed = yon_char_parse(system_services[i],&size,";"); - if (parsed&&strstr(parsed[0],".service")){ + if (parsed){ gtk_list_store_append(widgets->SystemList,&iter); gtk_list_store_set(widgets->SystemList,&iter,4,strcmp(parsed[2],"active")?0:1,5,parsed[0],6,parsed[4],-1); } @@ -653,7 +808,7 @@ gboolean yon_interface_update(main_window *widgets){ if (user_services[i][strlen(user_services[i])-1]=='\n') user_services[i][strlen(user_services[i])-1] = '\0'; int size; config_str parsed = yon_char_parse(user_services[i],&size,";"); - if (strstr(parsed[0],".service")){ + if (parsed){ gtk_list_store_append(widgets->UserList,&iter); gtk_list_store_set(widgets->UserList,&iter,4,strcmp(parsed[2],"active")?0:1,5,parsed[0],6,parsed[4],-1); } @@ -675,14 +830,16 @@ gboolean yon_interface_update(main_window *widgets){ GtkTreeIter iter; int size; config_str parsed = yon_char_parse(sessions[i],&size," "); + if (!strcmp(parsed[1],"\001")) parsed[1]=ACTIVE_LABEL; + else parsed[1]=INACTIVE_LABEL; if (parsed&&size>4){ gtk_list_store_append(widgets->SessionsList,&iter); - gtk_list_store_set(widgets->SessionsList,&iter,0,atoi(parsed[0]),1,atoi(parsed[1]),2,parsed[2],3,parsed[3],4,parsed[4],-1); + gtk_list_store_set(widgets->SessionsList,&iter,0,atoi(parsed[0]),1,parsed[1],2,atoi(parsed[2]),3,parsed[3],4,parsed[4],-1); } } for (size_t i=0;iTimersList,&iter); - GDateTime *datetime = g_date_time_new_from_unix_local(atoi(next)); - next = g_date_time_format(datetime,"%Y.%m.%d H:M:s"); - g_date_time_unref(datetime); - datetime = g_date_time_new_from_unix_local(atoi(left)); - left = g_date_time_format(datetime,"%Y.%m.%d H:M:s"); - g_date_time_unref(datetime); - datetime = g_date_time_new_from_unix_local(atoi(last)); - last = g_date_time_format(datetime,"%Y.%m.%d H:M:s"); + GDateTime *datetime=NULL; + if (atol(next)!=0){ + datetime = g_date_time_new_from_unix_local(atol(next)/1000000); + next = g_date_time_format(datetime,"%Y.%m.%d %H:%M:%S"); + g_date_time_unref(datetime); + } else { + next=""; + } + if (atol(left)!=0){ + datetime = g_date_time_new_from_unix_local(atol(left)/1000000); + GDateTime *now = g_date_time_new_now_local(); + left = g_date_time_format(datetime,"%Y.%m.%d %H:%M:%S"); + gint64 left_microseconds = 0; + left_microseconds = g_date_time_difference(datetime,now); + left_microseconds/=1000000; + long days = (long)((left_microseconds/60)/60)/24; + long hours = (long)(left_microseconds/60)/60%60; + long minutes = (long)left_microseconds/60%60; + long seconds = (long)left_microseconds%60; g_date_time_unref(datetime); + left = yon_char_unite(days?yon_char_from_long(days):"",days?" ":"",days?DAYS_LABEL:"",days?" ":"",hours?yon_char_from_long(hours):"",hours?" ":"",hours?HOURS_LABEL:"",hours?" ":"",minutes?yon_char_from_long(minutes):"",minutes?" ":"",minutes?MINUTES_LABEL:"",minutes?" ":"",seconds?yon_char_from_long(seconds):"",seconds?" ":"",seconds?SECONDS_LABEL:"",NULL); + } else { + left=""; + } + if (atol(last)!=0){ + datetime = g_date_time_new_from_unix_local(atol(last)/1000000); + last = g_date_time_format(datetime,"%Y.%m.%d %H:%M:%S"); + g_date_time_unref(datetime); + } else { + last=""; + } + if (atol(passed)!=0){ + datetime = g_date_time_new_from_unix_local(atol(passed)/1000000); + passed = g_date_time_format(datetime,"%Y.%m.%d %H:%M:%S"); + g_date_time_unref(datetime); + } else { + passed=""; + } gtk_list_store_set(widgets->TimersList,&iter,0,unit,1,next,2,left,3,last,4,passed,5,activates,-1); } } + { + int parsed_size; + char *enabled = yon_config_get_by_key(SERVICES_ENABLE_PARAMETER); + config_str parsed = yon_char_parse(enabled,&parsed_size,","); + GtkTreeIter iter; + GtkTreeModel *model = GTK_TREE_MODEL(widgets->UserList); + + int valid = gtk_tree_model_get_iter_first(model,&iter); + for (;valid;valid=gtk_tree_model_iter_next(model,&iter)) + { + gtk_list_store_set(widgets->UserList,&iter,0,0,-1); + } + valid = gtk_tree_model_get_iter_first(model,&iter); + for (;valid;valid=gtk_tree_model_iter_next(model,&iter)) + { + char *name; + gtk_tree_model_get(model,&iter,5,&name,-1); + for (int i=0;iUserList,&iter,0,1,-1); + } + } + yon_char_parsed_free(parsed,parsed_size); + + char *disabled = yon_config_get_by_key(SERVICES_DISABLE_PARAMETER); + parsed = yon_char_parse(disabled,&parsed_size,","); + valid = gtk_tree_model_get_iter_first(model,&iter); + for (;valid;valid=gtk_tree_model_iter_next(model,&iter)) + { + gtk_list_store_set(widgets->UserList,&iter,1,0,-1); + } + valid = gtk_tree_model_get_iter_first(model,&iter); + for (;valid;valid=gtk_tree_model_iter_next(model,&iter)) + { + char *name; + gtk_tree_model_get(model,&iter,5,&name,-1); + for (int i=0;iUserList,&iter,1,1,-1); + } + } + yon_char_parsed_free(parsed,parsed_size); + + char *masked = yon_config_get_by_key(SERVICES_MASK_PARAMETER); + parsed = yon_char_parse(masked,&parsed_size,","); + valid = gtk_tree_model_get_iter_first(model,&iter); + for (;valid;valid=gtk_tree_model_iter_next(model,&iter)) + { + gtk_list_store_set(widgets->UserList,&iter,2,0,-1); + } + valid = gtk_tree_model_get_iter_first(model,&iter); + for (;valid;valid=gtk_tree_model_iter_next(model,&iter)) + { + char *name; + gtk_tree_model_get(model,&iter,5,&name,-1); + for (int i=0;iUserList,&iter,2,1,-1); + } + } + } + { + + int parsed_size; + char *enabled = yon_config_get_by_key(SERVICES_ENABLE_PARAMETER); + config_str parsed = yon_char_parse(enabled,&parsed_size,","); + GtkTreeIter iter; + GtkTreeModel *model = GTK_TREE_MODEL(widgets->UserList); + + int valid = gtk_tree_model_get_iter_first(model,&iter); + for (;valid;valid=gtk_tree_model_iter_next(model,&iter)) + { + gtk_list_store_set(widgets->UserList,&iter,0,0,-1); + } + valid = gtk_tree_model_get_iter_first(model,&iter); + for (;valid;valid=gtk_tree_model_iter_next(model,&iter)) + { + char *name; + gtk_tree_model_get(model,&iter,5,&name,-1); + for (int i=0;iUserList,&iter,0,1,-1); + } + } + yon_char_parsed_free(parsed,parsed_size); + + char *disabled = yon_config_get_by_key(SERVICES_DISABLE_PARAMETER); + parsed = yon_char_parse(disabled,&parsed_size,","); + valid = gtk_tree_model_get_iter_first(model,&iter); + for (;valid;valid=gtk_tree_model_iter_next(model,&iter)) + { + gtk_list_store_set(widgets->UserList,&iter,1,0,-1); + } + valid = gtk_tree_model_get_iter_first(model,&iter); + for (;valid;valid=gtk_tree_model_iter_next(model,&iter)) + { + char *name; + gtk_tree_model_get(model,&iter,5,&name,-1); + for (int i=0;iUserList,&iter,1,1,-1); + } + } + yon_char_parsed_free(parsed,parsed_size); + + char *masked = yon_config_get_by_key(SERVICES_MASK_PARAMETER); + parsed = yon_char_parse(masked,&parsed_size,","); + valid = gtk_tree_model_get_iter_first(model,&iter); + for (;valid;valid=gtk_tree_model_iter_next(model,&iter)) + { + gtk_list_store_set(widgets->UserList,&iter,2,0,-1); + } + valid = gtk_tree_model_get_iter_first(model,&iter); + for (;valid;valid=gtk_tree_model_iter_next(model,&iter)) + { + char *name; + gtk_tree_model_get(model,&iter,5,&name,-1); + for (int i=0;iUserList,&iter,2,1,-1); + } + } + } + gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->SystemUnitsTree),GTK_TREE_MODEL(widgets->SystemList)); + gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->UserUnitsTree),GTK_TREE_MODEL(widgets->UserList)); + gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->ConfigMainTree),GTK_TREE_MODEL(widgets->ConfigList)); + gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->SessionMainTree),GTK_TREE_MODEL(widgets->SessionsList)); + gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->TimersMainTree),GTK_TREE_MODEL(widgets->TimersList)); return 0; } @@ -831,10 +1139,10 @@ void yon_main_window_complete(main_window *widgets){ AUTOSTART_LABEL,start_icon_path,on_system_autostart_clicked,widgets, LAUNCHED_LABEL,launch_icon_path,on_system_launch_clicked,widgets, RESTART_LABEL,update_icon_path,on_system_restart_clicked,widgets, - STATUS_LABEL,status_icon_path,on_status_show,widgets, - SHOW_LOG_LABEL,log_icon_path,on_log_show,widgets, - SHOW_SOURCE_LABEL,source_icon_path,on_source_show,widgets, - PROPERTIES_LABEL,properties_icon_path,on_properties_show,widgets, + STATUS_LABEL,status_icon_path,on_system_info_clicked,widgets, + SHOW_LOG_LABEL,log_icon_path,on_system_log_clicked,widgets, + SHOW_SOURCE_LABEL,source_icon_path,on_system_edit_clicked,widgets, + PROPERTIES_LABEL,properties_icon_path,on_system_status_clicked,widgets, NULL); widgets->UserSearchEntry=yon_gtk_builder_get_widget(builder,"UserSearchEntry"); @@ -860,10 +1168,10 @@ void yon_main_window_complete(main_window *widgets){ AUTOSTART_LABEL,start_icon_path,on_system_autostart_clicked,widgets, LAUNCHED_LABEL,launch_icon_path,on_system_launch_clicked,widgets, RESTART_LABEL,update_icon_path,on_system_restart_clicked,widgets, - STATUS_LABEL,status_icon_path,on_status_show,widgets, - SHOW_LOG_LABEL,log_icon_path,on_log_show,widgets, - SHOW_SOURCE_LABEL,source_icon_path,on_source_show,widgets, - PROPERTIES_LABEL,properties_icon_path,on_properties_show,widgets, + STATUS_LABEL,status_icon_path,on_user_info_clicked,widgets, + SHOW_LOG_LABEL,log_icon_path,on_user_log_clicked,widgets, + SHOW_SOURCE_LABEL,source_icon_path,on_user_edit_clicked,widgets, + PROPERTIES_LABEL,properties_icon_path,on_user_status_clicked,widgets, NULL); widgets->ConfigEditButton=yon_gtk_builder_get_widget(builder,"ConfigEditButton"); diff --git a/source/ubl-settings-services.h b/source/ubl-settings-services.h index 54f1f32..a7a710a 100644 --- a/source/ubl-settings-services.h +++ b/source/ubl-settings-services.h @@ -33,11 +33,11 @@ #define LocalePath "/usr/share/locale" #define LocaleName "ubl-settings-services" -#define load_services_command "systemctl list-units --type=service --type=socket --no-pager --all --plain --no-legend |sed -E 's/(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(.*)/\\1;\\2;\\3;\\4;\\5/'" -#define load_user_services_command yon_char_unite("systemctl --user --machine=",yon_ubl_root_user_get(),"@ list-units --type=service --type=socket --no-pager --all --plain --no-legend |sed -E 's/(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(.*)/\\1;\\2;\\3;\\4;\\5/'",NULL) -#define load_system_services_command "systemctl --system list-units --type=service --type=socket --no-pager --all |grep -E \"^ \" |grep -v \"UNIT\" |sed -e 's/ */;/g' -e 's/^;//g' |cut -f1 -d';'" -#define load_enabled_command "systemctl list-unit-files --type=service --type=socket --no-pager --state=enabled --all |sed -e 's/ */:/g' -e 's/ *: */:/g'|cut -f1 -d:" -#define load_launched_command "systemctl list-units --type=service --type=socket --no-pager --state=active --all --no-legend|sed -e 's/^ //g' -e 's/ */:/g' |cut -f1 -d:" +#define load_services_command "systemctl list-units --no-pager --all --plain --no-legend |sed -E 's/(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(.*)/\\1;\\2;\\3;\\4;\\5/'" +#define load_user_services_command yon_char_unite("systemctl --user --machine=",yon_ubl_root_user_get(),"@ list-units --no-pager --all --plain --no-legend |sed -E 's/(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(.*)/\\1;\\2;\\3;\\4;\\5/'",NULL) +#define load_system_services_command "systemctl --system list-units --no-pager --all |grep -E \"^ \" |grep -v \"UNIT\" |sed -e 's/ */;/g' -e 's/^;//g' |cut -f1 -d';'" +#define load_enabled_command "systemctl list-unit-files --no-pager --state=enabled --all |sed -e 's/ */:/g' -e 's/ *: */:/g'|cut -f1 -d:" +#define load_launched_command "systemctl list-units --no-pager --state=active --all --no-legend|sed -e 's/^ //g' -e 's/ */:/g' |cut -f1 -d:" #define service_start_command(target) yon_char_append("systemctl start --no-pager ",target) #define service_stop_command(target) yon_char_append("systemctl stop --no-pager ",target) #define service_enable_command(target) yon_char_append("systemctl enable --no-pager ",target) @@ -74,7 +74,7 @@ #define config_get_command(target) yon_char_append("cat ",target) #define config_get_local_command "ubconfig --source system get system SERVICES_ENABLE SERVICES_DISABLE SERVICES_MASK" -#define config_get_global_command "ubconfig --source global get system SERVICES_ENABLE SERVICES_DISABLE SERVICES_MASK" +#define config_get_global_command yon_char_new("ubconfig --source global get system SERVICES_ENABLE SERVICES_DISABLE SERVICES_MASK") #define config_get_default_command "" #define config_get_global_only_parameters "" @@ -102,6 +102,10 @@ #define reload_systemd_user_command "systemctl --user daemon-reload" #define reexec_systemd_user_command "systemctl --user daemon-reexec" +#define SERVICES_ENABLE_PARAMETER "SERVICES_ENABLE" +#define SERVICES_DISABLE_PARAMETER "SERVICES_DISABLE" +#define SERVICES_MASK_PARAMETER "SERVICES_MASK" + typedef char* string; string version_application; @@ -262,21 +266,21 @@ gboolean on_context_menu_open(GtkWidget *self,GdkEventButton *event, main_window GtkWidget *yon_menu_separator_create(); -void on_config_autostart_clicked(); +void on_config_autostart_clicked(GtkWidget *self, main_window *widgets); void on_activate(GtkTreeView *self, main_window *widgets); -void on_config_autostop_clicked(); +void on_config_autostop_clicked(GtkWidget *self, main_window *widgets); -void on_config_block_clicked(); +void on_config_block_clicked(GtkWidget *self, main_window *widgets); -void on_system_autostart_clicked(); +void on_system_autostart_clicked(GtkWidget *self, main_window *widgets); void on_system_kill_confirmed(GtkWidget *self,char *service_name); -void on_system_launch_clicked(); +void on_system_launch_clicked(GtkWidget *self, main_window *widgets); -void on_system_restart_clicked(); +void on_system_restart_clicked(GtkWidget *self, main_window *widgets); void on_source_show(); diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 78d001d..f7f3ba3 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -59,4 +59,58 @@ #define ERROR_LABEL _("Error has occured") #define SWITCH_OFF_ERROR_LABEL _("Service were not stopped") -#define STOP_SERVICE_WARMING_LABEL(target) yon_char_unite(_("Are you sure want to stop "),target,"?\n",_("The stop will be forced.\nThe system may become unstable."),NULL) \ No newline at end of file +#define STOP_SERVICE_WARMING_LABEL(target) yon_char_unite(_("Are you sure want to stop "),target,"?\n",_("The stop will be forced.\nThe system may become unstable."),NULL) +#define DAYS_LABEL _("Days") +#define HOURS_LABEL _("Hours") +#define MINUTES_LABEL _("Minutes") +#define SECONDS_LABEL _("Seconds") + +#define ACTIVE_LABEL _("Active") +#define INACTIVE_LABEL _("Inactive") + +#define SYSTEM_UNITS_LABEL _("System units") +#define USER_UNITS_LABEL _("User units") +#define CONFIG_FILES_LABEL _("Config files") +#define SESSIONS__LABEL _("Sessions") +#define TIMERS_LABEL _("Timers") + +#define SYSTEM_STATUS_LABEL _("System services status") +#define USER_STATUS_LABEL _("User services status") +#define INSTALLED_UNIT_LABEL _("Installed unit files") +#define UNITS_LIST_LABEL _("Units and status list") +#define SOCKETS_LIST_LABEL _("Sockets and status list") +#define TIMERS_LIST_LABEL _("Timers and status list") + +#define UNIT_LABEL _("Unit") + +#define RELAUNCH_SYSTEMCTL_LABEL _("Relaunch systemctl") +#define REEXEC_SYSTEMCTL_LABEL _("Reexec systemctl") +#define SHOW_SERVICE_INFO_LABEL _("Show service information") +#define SHOW_SERVICE_LOG_LABEL _("Show service log") +#define SHOW_SERVICE_SOURCE_LABEL _("Show service source file") +#define SHOW_SERVICE_PROPERTIES_LABEL _("Show service properties") +#define SHOW_LABEL _("Show...") + +#define SHOW_INACTIVE_LABEL _("Show inactive") +#define SHOW_UNLOADED_LABEL _("Show unloaded") + +#define FILE_LABEL _("File") +#define CHANGE_DATE_LABEL _("Change date") +#define DESCRIPTION_TAB_LABEL _("Description") +#define EDIT_LABEL _("Edit") + +#define SESSION_ID_LABEL _("Session ID") +#define USER_ID_LABEL _("User ID") +#define USER_NAME_LABEL _("User name") +#define SEAT_ID_LABEL _("Seat ID") + +#define SESSION_START_LABEL _("Start session") +#define SESSION_END_LABEL _("Stop session") +#define SESSION_LOCK_LABEL _("Lock session") + +#define TIMER_LABEL _("Timer") +#define NEXT_LABEL _("Next") +#define LEFT_LABEL _("Left") +#define LAST_LABEL _("Last") +#define PASSED_LABEL _("Passed") +#define ACTIVATES_LABEL _("Activates") \ No newline at end of file diff --git a/ubl-settings-services.glade b/ubl-settings-services.glade index 508fb87..debcdbc 100644 --- a/ubl-settings-services.glade +++ b/ubl-settings-services.glade @@ -549,6 +549,7 @@ True fixed + 20 Autostart @@ -562,6 +563,7 @@ True fixed + 20 Autostop @@ -575,6 +577,7 @@ True fixed + 20 Block @@ -588,6 +591,7 @@ True fixed + 20 Autostart @@ -601,6 +605,7 @@ True fixed + 20 Launched @@ -614,7 +619,7 @@ True 10 - 10 + 20 Unit @@ -627,6 +632,7 @@ autosize + 20 True @@ -1050,6 +1056,7 @@ True fixed + 20 Autostart @@ -1063,6 +1070,7 @@ True fixed + 20 Autostop @@ -1076,6 +1084,7 @@ True fixed + 20 Block @@ -1089,6 +1098,7 @@ True fixed + 20 Autostart @@ -1102,6 +1112,7 @@ True fixed + 20 Launched @@ -1115,7 +1126,7 @@ True 10 - 10 + 20 Unit @@ -1128,6 +1139,7 @@ autosize + 20 True @@ -1331,7 +1343,7 @@ True fixed - 10 + 20 File @@ -1345,7 +1357,7 @@ True fixed - 10 + 20 Change date @@ -1357,7 +1369,7 @@ - 10 + 20 Description True @@ -1490,7 +1502,7 @@ True fixed - 10 + 20 Session ID @@ -1504,7 +1516,7 @@ True fixed - 10 + 20 Status @@ -1518,7 +1530,7 @@ True fixed - 10 + 20 User ID @@ -1532,7 +1544,7 @@ True fixed - 10 + 20 User name @@ -1544,7 +1556,7 @@ - 10 + 20 Seat ID True @@ -1616,7 +1628,7 @@ True fixed - 10 + 20 Timer @@ -1630,7 +1642,7 @@ True fixed - 10 + 20 Next @@ -1644,7 +1656,7 @@ True fixed - 10 + 20 Previous @@ -1658,7 +1670,7 @@ True fixed - 10 + 20 Last @@ -1672,7 +1684,7 @@ True fixed - 10 + 20 Passed @@ -1684,7 +1696,7 @@ - 10 + 20 Activates True diff --git a/ubl-settings-services.pot b/ubl-settings-services.pot index 90c1107..b82b19f 100644 --- a/ubl-settings-services.pot +++ b/ubl-settings-services.pot @@ -18,199 +18,367 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #: source/ubl-strings.h:1 -msgid "Version:" -msgstr "" - -#: source/ubl-strings.h:2 -msgid "ubl-settings-services 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 -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 -msgid "Lock global configration loading" -msgstr "" - -#: source/ubl-strings.h:2 -msgid "Reset application settings" -msgstr "" - -#: source/ubl-strings.h:4 msgid "Services and processes systemd" msgstr "" -#: source/ubl-strings.h:5 +#: source/ubl-strings.h:2 msgid "System services and processes configuration" msgstr "" -#: source/ubl-strings.h:6 +#: source/ubl-strings.h:3 msgid "Services and processes - service information" msgstr "" -#: source/ubl-strings.h:8 source/ubl-strings.h:40 +#: source/ubl-strings.h:5 source/ubl-strings.h:37 msgid "Configure in configuration" msgstr "" -#: source/ubl-strings.h:9 source/ubl-strings.h:44 +#: source/ubl-strings.h:6 source/ubl-strings.h:41 msgid "Autostart" msgstr "" -#: source/ubl-strings.h:10 source/ubl-strings.h:45 +#: source/ubl-strings.h:7 source/ubl-strings.h:42 msgid "Autostop" msgstr "" -#: source/ubl-strings.h:11 source/ubl-strings.h:46 +#: source/ubl-strings.h:8 source/ubl-strings.h:43 msgid "Block" msgstr "" -#: source/ubl-strings.h:12 source/ubl-strings.h:41 +#: source/ubl-strings.h:9 source/ubl-strings.h:38 msgid "Configure in system" msgstr "" -#: source/ubl-strings.h:13 source/ubl-strings.h:47 +#: source/ubl-strings.h:10 source/ubl-strings.h:44 msgid "Launched" msgstr "" -#: source/ubl-strings.h:14 +#: source/ubl-strings.h:11 msgid "Reload" msgstr "" -#: source/ubl-strings.h:15 +#: source/ubl-strings.h:12 msgid "Show status" msgstr "" -#: source/ubl-strings.h:16 +#: source/ubl-strings.h:13 msgid "Update" msgstr "" -#: source/ubl-strings.h:18 +#: source/ubl-strings.h:15 msgid "All services" msgstr "" -#: source/ubl-strings.h:19 +#: source/ubl-strings.h:16 msgid "System services only" msgstr "" -#: source/ubl-strings.h:20 +#: source/ubl-strings.h:17 msgid "User services only" msgstr "" -#: source/ubl-strings.h:22 +#: source/ubl-strings.h:19 msgid "All" msgstr "" -#: source/ubl-strings.h:23 +#: source/ubl-strings.h:20 msgid "Services" msgstr "" -#: source/ubl-strings.h:24 +#: source/ubl-strings.h:21 msgid "Sockets" msgstr "" -#: source/ubl-strings.h:25 +#: source/ubl-strings.h:22 msgid "Autolaunch in configuration" msgstr "" -#: source/ubl-strings.h:26 +#: source/ubl-strings.h:23 msgid "Stopped in configuration" msgstr "" -#: source/ubl-strings.h:27 +#: source/ubl-strings.h:24 msgid "Blocked in configuration" msgstr "" -#: source/ubl-strings.h:29 +#: source/ubl-strings.h:26 msgid "Toggle autostart at configuration" msgstr "" -#: source/ubl-strings.h:30 +#: source/ubl-strings.h:27 msgid "Toggle autostop at configuration" msgstr "" -#: source/ubl-strings.h:31 +#: source/ubl-strings.h:28 msgid "Toggle service blocking at configuration" msgstr "" -#: source/ubl-strings.h:32 +#: source/ubl-strings.h:29 msgid "Toggle autostart at system" msgstr "" -#: source/ubl-strings.h:33 +#: source/ubl-strings.h:30 msgid "Launch/Stop service" msgstr "" -#: source/ubl-strings.h:34 +#: source/ubl-strings.h:31 msgid "Check service status" msgstr "" -#: source/ubl-strings.h:35 +#: source/ubl-strings.h:32 msgid "Check service log" msgstr "" -#: source/ubl-strings.h:37 +#: source/ubl-strings.h:34 msgid "Service:" msgstr "" -#: source/ubl-strings.h:38 +#: source/ubl-strings.h:35 msgid "Description:" msgstr "" -#: source/ubl-strings.h:42 +#: source/ubl-strings.h:39 msgid "Service" msgstr "" -#: source/ubl-strings.h:48 +#: source/ubl-strings.h:45 msgid "Service list is loading" msgstr "" -#: source/ubl-strings.h:49 +#: source/ubl-strings.h:46 msgid "Status" msgstr "" +#: source/ubl-strings.h:47 +msgid "Restart with new configuration" +msgstr "" + +#: source/ubl-strings.h:48 +msgid "Show log" +msgstr "" + +#: source/ubl-strings.h:49 +msgid "Show source" +msgstr "" + +#: source/ubl-strings.h:50 +msgid "Properties" +msgstr "" + #: source/ubl-strings.h:51 -msgid "Service were not stopped" +msgid "Activate session" msgstr "" #: source/ubl-strings.h:52 +msgid "End session" +msgstr "" + +#: source/ubl-strings.h:53 +msgid "Block session" +msgstr "" + +#: source/ubl-strings.h:55 +msgid "Service source were not loaded" +msgstr "" + +#: source/ubl-strings.h:57 +msgid "Saving..." +msgstr "" + +#: source/ubl-strings.h:58 +msgid "Saved" +msgstr "" + +#: source/ubl-strings.h:59 +msgid "Error has occured" +msgstr "" + +#: source/ubl-strings.h:61 +msgid "Service were not stopped" +msgstr "" + +#: source/ubl-strings.h:62 msgid "Are you sure want to stop " msgstr "" -#: source/ubl-strings.h:52 +#: source/ubl-strings.h:62 msgid "" "The stop will be forced.\n" "The system may become unstable." msgstr "" + +#: source/ubl-strings.h:63 +msgid "Days" +msgstr "" + +#: source/ubl-strings.h:64 +msgid "Hours" +msgstr "" + +#: source/ubl-strings.h:65 +msgid "Minutes" +msgstr "" + +#: source/ubl-strings.h:66 +msgid "Seconds" +msgstr "" + +#: source/ubl-strings.h:68 +msgid "Active" +msgstr "" + +#: source/ubl-strings.h:69 +msgid "Inactive" +msgstr "" + +#: source/ubl-strings.h:71 +msgid "System units" +msgstr "" + +#: source/ubl-strings.h:72 +msgid "User units" +msgstr "" + +#: source/ubl-strings.h:73 +msgid "Config files" +msgstr "" + +#: source/ubl-strings.h:74 +msgid "Sessions" +msgstr "" + +#: source/ubl-strings.h:75 +msgid "Timers" +msgstr "" + +#: source/ubl-strings.h:77 +msgid "System services status" +msgstr "" + +#: source/ubl-strings.h:78 +msgid "User services status" +msgstr "" + +#: source/ubl-strings.h:79 +msgid "Installed unit files" +msgstr "" + +#: source/ubl-strings.h:80 +msgid "Units and status list" +msgstr "" + +#: source/ubl-strings.h:81 +msgid "Sockets and status list" +msgstr "" + +#: source/ubl-strings.h:82 +msgid "Timers and status list" +msgstr "" + +#: source/ubl-strings.h:84 +msgid "Unit" +msgstr "" + +#: source/ubl-strings.h:86 +msgid "Relaunch systemctl" +msgstr "" + +#: source/ubl-strings.h:87 +msgid "Reexec systemctl" +msgstr "" + +#: source/ubl-strings.h:88 +msgid "Show service information" +msgstr "" + +#: source/ubl-strings.h:89 +msgid "Show service log" +msgstr "" + +#: source/ubl-strings.h:90 +msgid "Show service source file" +msgstr "" + +#: source/ubl-strings.h:91 +msgid "Show service properties" +msgstr "" + +#: source/ubl-strings.h:92 +msgid "Show..." +msgstr "" + +#: source/ubl-strings.h:94 +msgid "Show inactive" +msgstr "" + +#: source/ubl-strings.h:95 +msgid "Show unloaded" +msgstr "" + +#: source/ubl-strings.h:97 +msgid "File" +msgstr "" + +#: source/ubl-strings.h:98 +msgid "Change date" +msgstr "" + +#: source/ubl-strings.h:99 +msgid "Description" +msgstr "" + +#: source/ubl-strings.h:100 +msgid "Edit" +msgstr "" + +#: source/ubl-strings.h:102 +msgid "Session ID" +msgstr "" + +#: source/ubl-strings.h:103 +msgid "User ID" +msgstr "" + +#: source/ubl-strings.h:104 +msgid "User name" +msgstr "" + +#: source/ubl-strings.h:105 +msgid "Seat ID" +msgstr "" + +#: source/ubl-strings.h:107 +msgid "Start session" +msgstr "" + +#: source/ubl-strings.h:108 +msgid "Stop session" +msgstr "" + +#: source/ubl-strings.h:109 +msgid "Lock session" +msgstr "" + +#: source/ubl-strings.h:111 +msgid "Timer" +msgstr "" + +#: source/ubl-strings.h:112 +msgid "Next" +msgstr "" + +#: source/ubl-strings.h:113 +msgid "Left" +msgstr "" + +#: source/ubl-strings.h:114 +msgid "Last" +msgstr "" + +#: source/ubl-strings.h:115 +msgid "Passed" +msgstr "" + +#: source/ubl-strings.h:116 +msgid "Activates" +msgstr "" diff --git a/ubl-settings-services_ru.po b/ubl-settings-services_ru.po index 588e6cb..878c93b 100644 --- a/ubl-settings-services_ru.po +++ b/ubl-settings-services_ru.po @@ -18,201 +18,370 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #: source/ubl-strings.h:1 -msgid "Version:" -msgstr "Версия:" - -#: source/ubl-strings.h:2 -msgid "ubl-settings-services version:" -msgstr "Версия ubl-settings-services: " - -#: 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 -msgid "Lock global configration loading" -msgstr "Блокировка загрузки глобальной конфигурации" - -#: source/ubl-strings.h:2 -msgid "Reset application settings" -msgstr "Сбросить настройки утилиты" - -#: source/ubl-strings.h:4 msgid "Services and processes systemd" msgstr "Сервисы и процессы systemd" -#: source/ubl-strings.h:5 +#: source/ubl-strings.h:2 msgid "System services and processes configuration" msgstr "Настройка работы служб и процессов системы" -#: source/ubl-strings.h:6 +#: source/ubl-strings.h:3 msgid "Services and processes - service information" msgstr "Сервисы и процессы - статус" -#: source/ubl-strings.h:8 source/ubl-strings.h:40 +#: source/ubl-strings.h:5 source/ubl-strings.h:37 msgid "Configure in configuration" msgstr "Настройка в конфигурации" -#: source/ubl-strings.h:9 source/ubl-strings.h:44 +#: source/ubl-strings.h:6 source/ubl-strings.h:41 msgid "Autostart" msgstr "Автостарт" -#: source/ubl-strings.h:10 source/ubl-strings.h:45 +#: source/ubl-strings.h:7 source/ubl-strings.h:42 msgid "Autostop" msgstr "Автостоп" -#: source/ubl-strings.h:11 source/ubl-strings.h:46 +#: source/ubl-strings.h:8 source/ubl-strings.h:43 msgid "Block" msgstr "Блокировать" -#: source/ubl-strings.h:12 source/ubl-strings.h:41 +#: source/ubl-strings.h:9 source/ubl-strings.h:38 msgid "Configure in system" msgstr "Настройка в системе" -#: source/ubl-strings.h:13 source/ubl-strings.h:47 +#: source/ubl-strings.h:10 source/ubl-strings.h:44 msgid "Launched" msgstr "Запущено" -#: source/ubl-strings.h:14 +#: source/ubl-strings.h:11 msgid "Reload" msgstr "Перезагрузить" -#: source/ubl-strings.h:15 +#: source/ubl-strings.h:12 msgid "Show status" msgstr "Показать статус" -#: source/ubl-strings.h:16 +#: source/ubl-strings.h:13 msgid "Update" msgstr "Обновить" -#: source/ubl-strings.h:18 +#: source/ubl-strings.h:15 msgid "All services" msgstr "Все сервисы" -#: source/ubl-strings.h:19 +#: source/ubl-strings.h:16 msgid "System services only" msgstr "Только системные сервисы" -#: source/ubl-strings.h:20 +#: source/ubl-strings.h:17 msgid "User services only" msgstr "Только сервисы пользователя" -#: source/ubl-strings.h:22 +#: source/ubl-strings.h:19 msgid "All" msgstr "Все" -#: source/ubl-strings.h:23 +#: source/ubl-strings.h:20 msgid "Services" msgstr "Сервисы" -#: source/ubl-strings.h:24 +#: source/ubl-strings.h:21 msgid "Sockets" msgstr "Сокеты" -#: source/ubl-strings.h:25 +#: source/ubl-strings.h:22 msgid "Autolaunch in configuration" msgstr "Автозапуск в конфигурации" -#: source/ubl-strings.h:26 +#: source/ubl-strings.h:23 msgid "Stopped in configuration" msgstr "Остановлено в конфигурации" -#: source/ubl-strings.h:27 +#: source/ubl-strings.h:24 msgid "Blocked in configuration" msgstr "Заблокированные в конфигурации" -#: source/ubl-strings.h:29 +#: source/ubl-strings.h:26 msgid "Toggle autostart at configuration" msgstr "Переключить автозапуск в конфигурации" -#: source/ubl-strings.h:30 +#: source/ubl-strings.h:27 msgid "Toggle autostop at configuration" msgstr "Переключить автостоп в конфигурации" -#: source/ubl-strings.h:31 +#: source/ubl-strings.h:28 msgid "Toggle service blocking at configuration" msgstr "Переключить блокирование в конфигурации" -#: source/ubl-strings.h:32 +#: source/ubl-strings.h:29 msgid "Toggle autostart at system" msgstr "Переключить автозапуск в системе" -#: source/ubl-strings.h:33 +#: source/ubl-strings.h:30 msgid "Launch/Stop service" msgstr "Запустить/Остановить сервис" -#: source/ubl-strings.h:34 +#: source/ubl-strings.h:31 msgid "Check service status" msgstr "Проверить статус сервиса" -#: source/ubl-strings.h:35 +#: source/ubl-strings.h:32 msgid "Check service log" msgstr "Открыть лог сервиса" -#: source/ubl-strings.h:37 +#: source/ubl-strings.h:34 msgid "Service:" msgstr "Сервис:" -#: source/ubl-strings.h:38 +#: source/ubl-strings.h:35 #, fuzzy msgid "Description:" msgstr "Описание:" -#: source/ubl-strings.h:42 +#: source/ubl-strings.h:39 msgid "Service" msgstr "Сервис" -#: source/ubl-strings.h:48 +#: source/ubl-strings.h:45 msgid "Service list is loading" msgstr "Список сервисов загружается" -#: source/ubl-strings.h:49 +#: source/ubl-strings.h:46 msgid "Status" msgstr "Статус" +#: source/ubl-strings.h:47 +msgid "Restart with new configuration" +msgstr "Перезагрузить с новой конфигурацией" + +#: source/ubl-strings.h:48 +msgid "Show log" +msgstr "Показать логи" + +#: source/ubl-strings.h:49 +msgid "Show source" +msgstr "Открыть конфигурационный файл" + +#: source/ubl-strings.h:50 +msgid "Properties" +msgstr "Свойства" + #: source/ubl-strings.h:51 +msgid "Activate session" +msgstr "Активировать сессию" + +#: source/ubl-strings.h:52 +msgid "End session" +msgstr "Завершить сессию" + +#: source/ubl-strings.h:53 +msgid "Block session" +msgstr "Заблокировать сессию" + +#: source/ubl-strings.h:55 +msgid "Service source were not loaded" +msgstr "Сервис не был загружен" + +#: source/ubl-strings.h:57 +msgid "Saving..." +msgstr "Сохранение..." + +#: source/ubl-strings.h:58 +msgid "Saved" +msgstr "Сохранено" + +#: source/ubl-strings.h:59 +msgid "Error has occured" +msgstr "Произошла ошибка" + +#: source/ubl-strings.h:61 msgid "Service were not stopped" msgstr "Сервис не был остановлен" -#: source/ubl-strings.h:52 +#: source/ubl-strings.h:62 msgid "Are you sure want to stop " msgstr "Вы уверены что хотите остановить " -#: source/ubl-strings.h:52 +#: source/ubl-strings.h:62 msgid "" "The stop will be forced.\n" "The system may become unstable." -msgstr "Остановка будет произведена принудительно.\n" +msgstr "" +"Остановка будет произведена принудительно.\n" "Возможна нестабильная работа системы." + +#: source/ubl-strings.h:63 +msgid "Days" +msgstr "Дней" + +#: source/ubl-strings.h:64 +msgid "Hours" +msgstr "Часов" + +#: source/ubl-strings.h:65 +msgid "Minutes" +msgstr "Минут" + +#: source/ubl-strings.h:66 +msgid "Seconds" +msgstr "Секунд" + +#: source/ubl-strings.h:68 +msgid "Active" +msgstr "Активна" + +#: source/ubl-strings.h:69 +msgid "Inactive" +msgstr "Неактивна" + +#: source/ubl-strings.h:71 +msgid "System units" +msgstr "Системные юниты" + +#: source/ubl-strings.h:72 +msgid "User units" +msgstr "Пользовательские юниты" + +#: source/ubl-strings.h:73 +msgid "Config files" +msgstr "Конфигурационные файлы" + +#: source/ubl-strings.h:74 +msgid "Sessions" +msgstr "Сессии" + +#: source/ubl-strings.h:75 +msgid "Timers" +msgstr "Таймеры" + +#: source/ubl-strings.h:77 +msgid "System services status" +msgstr "Статус сервисов системы" + +#: source/ubl-strings.h:78 +msgid "User services status" +msgstr "Статус сервисов пользователя" + +#: source/ubl-strings.h:79 +msgid "Installed unit files" +msgstr "Установленные юнит-файлы" + +#: source/ubl-strings.h:80 +msgid "Units and status list" +msgstr "Список юнитов и состояния" + +#: source/ubl-strings.h:81 +msgid "Sockets and status list" +msgstr "Список сокетов и состояния" + +#: source/ubl-strings.h:82 +msgid "Timers and status list" +msgstr "Список таймеров и состояния" + +#: source/ubl-strings.h:84 +msgid "Unit" +msgstr "Юнит" + +#: source/ubl-strings.h:86 +msgid "Relaunch systemctl" +msgstr "Перезагрузить systemctl" + +#: source/ubl-strings.h:87 +msgid "Reexec systemctl" +msgstr "Перезапустить systemctl" + +#: source/ubl-strings.h:88 +msgid "Show service information" +msgstr "Показать информацию о сервисе" + +#: source/ubl-strings.h:89 +msgid "Show service log" +msgstr "Открыть лог сервиса" + +#: source/ubl-strings.h:90 +msgid "Show service source file" +msgstr "Показать конфигурационный файл сервиса" + +#: source/ubl-strings.h:91 +msgid "Show service properties" +msgstr "Открыть свойства сервиса" + +#: source/ubl-strings.h:92 +msgid "Show..." +msgstr "Показать..." + +#: source/ubl-strings.h:94 +msgid "Show inactive" +msgstr "Показать неактивные" + +#: source/ubl-strings.h:95 +msgid "Show unloaded" +msgstr "Показать незагруженные" + +#: source/ubl-strings.h:97 +msgid "File" +msgstr "Файл" + +#: source/ubl-strings.h:98 +msgid "Change date" +msgstr "Изменён" + +#: source/ubl-strings.h:99 +msgid "Description" +msgstr "Описание" + +#: source/ubl-strings.h:100 +msgid "Edit" +msgstr "Редактировать" + +#: source/ubl-strings.h:102 +msgid "Session ID" +msgstr "ID сессии" + +#: source/ubl-strings.h:103 +msgid "User ID" +msgstr "ID пользователя" + +#: source/ubl-strings.h:104 +msgid "User name" +msgstr "Имя пользователя" + +#: source/ubl-strings.h:105 +msgid "Seat ID" +msgstr "Seat ID" + +#: source/ubl-strings.h:107 +msgid "Start session" +msgstr "Запустить сессию" + +#: source/ubl-strings.h:108 +msgid "Stop session" +msgstr "Остановить сессию" + +#: source/ubl-strings.h:109 +msgid "Lock session" +msgstr "Заблокировать сессию" + +#: source/ubl-strings.h:111 +msgid "Timer" +msgstr "Таймер" + +#: source/ubl-strings.h:112 +msgid "Next" +msgstr "Следующий" + +#: source/ubl-strings.h:113 +msgid "Left" +msgstr "Осталось времени" + +#: source/ubl-strings.h:114 +msgid "Last" +msgstr "Последний" + +#: source/ubl-strings.h:115 +msgid "Passed" +msgstr "Пройденный" + +#: source/ubl-strings.h:116 +msgid "Activates" +msgstr "Активируется"