From 8c3a31c56576cf14d6efdde7e657031966ca0ac7 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 8 Dec 2023 17:18:13 +0600 Subject: [PATCH] Fixed bugs, file choosers has been improved --- source/ubl-settings-logging.c | 135 ++++++++++- source/ubl-strings.h | 2 + ubl-settings-logging-filechooser.glade | 4 +- ubl-settings-logging.pot | 300 +++++++++++++------------ ubl-settings-logging_ru.po | 300 +++++++++++++------------ 5 files changed, 433 insertions(+), 308 deletions(-) diff --git a/source/ubl-settings-logging.c b/source/ubl-settings-logging.c index 8043860..1524cb8 100644 --- a/source/ubl-settings-logging.c +++ b/source/ubl-settings-logging.c @@ -518,7 +518,7 @@ void on_inspector_open(GtkWidget *self, main_window *widgets){ if (strcmp(name,"journald")){ window->last_mode=-1; for (int i=0;ijournal_size;i++){ - if (!access(window->journal_paths[i],F_OK)){ + if (!access(window->journal_paths[i],F_OK)||strstr(window->journal_paths[i],"*")){ yon_dictionary_add_or_create_if_exists_with_data(window->terminals,window->journal_paths[i],yon_inspector_add_terminal(window,window->journal_paths[i],1)); } else{ @@ -540,6 +540,28 @@ void on_inspector_open(GtkWidget *self, main_window *widgets){ // Logrotate window +void on_logrotate_configuration_path_filechooser_selection_changed(GtkWidget *self, logrotate_filechooser_window *dialog){ + GFile *file = gtk_file_chooser_get_file(GTK_FILE_CHOOSER(dialog->FileChooser)); + GFileType type = g_file_query_file_type(file,G_FILE_QUERY_INFO_NONE, NULL); + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->FileOrDirCheck))){ + if (type==G_FILE_TYPE_REGULAR){ + gtk_widget_set_sensitive(dialog->AcceptButton,0); + } else { + gtk_widget_set_sensitive(dialog->AcceptButton,1); + } + } else { + if (type==G_FILE_TYPE_REGULAR){ + gtk_widget_set_sensitive(dialog->AcceptButton,1); + } else { + gtk_widget_set_sensitive(dialog->AcceptButton,0); + } + } +} + +void on_logrotate_filechooser_file_dir_toggled(GtkWidget *self, logrotate_filechooser_window *dialog){ + on_logrotate_configuration_path_filechooser_selection_changed(NULL,dialog); +} + void on_logrotate_configuration_path_filechooser_save_edit(GtkWidget *self, dictionary *dict){ logrotate_configure_window *window = yon_dictionary_get_data(dict->first,logrotate_configure_window*); logrotate_filechooser_window *dialog = yon_dictionary_get_data(dict->first->next,logrotate_filechooser_window*); @@ -547,6 +569,10 @@ void on_logrotate_configuration_path_filechooser_save_edit(GtkWidget *self, dict GtkTreeModel *model = GTK_TREE_MODEL(window->list); if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(window->LogPathsTree)),&model,&iter)){ char *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog->FileChooser)); + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->FileOrDirCheck))){ + if (filename[strlen(filename)-1]!='/') filename = yon_char_append(filename,"/*.log"); + else filename = yon_char_append(filename,"*.log"); + } int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(window->list),&itar); int deleted=0; for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(window->list),&itar)){ @@ -570,6 +596,19 @@ void on_logrotate_configuration_path_filechooser_save(GtkWidget *self, dictionar logrotate_configure_window *window = yon_dictionary_get_data(dict->first,logrotate_configure_window*); logrotate_filechooser_window *dialog = yon_dictionary_get_data(dict->first->next,logrotate_filechooser_window*); char *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog->FileChooser)); + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->FileOrDirCheck))){ + GFile *file = gtk_file_chooser_get_file(GTK_FILE_CHOOSER(dialog->FileChooser)); + GFileType type; + if(file) + type = g_file_query_file_type(file,G_FILE_QUERY_INFO_NONE, NULL); + if (!filename||(type == G_FILE_TYPE_REGULAR)){ + filename = gtk_file_chooser_get_current_folder(GTK_FILE_CHOOSER(dialog->FileChooser)); + } + if (filename[strlen(filename)-1]!='/') + filename=yon_char_append(filename,"/*.log"); + else + filename=yon_char_append(filename,"*.log"); + } // gtk_file_chooser_get_ GtkTreeIter iter, itar; int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(window->list),&itar); @@ -606,7 +645,10 @@ void on_logrotate_configuration_path_filechooser_open(GtkWidget *self, logrotate dialog->AcceptButton = yon_gtk_builder_get_widget(builder,"AcceptButton"); dialog->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox"); yon_window_config_custom_window_set(GTK_WINDOW(dialog->FileChooser),"FileDialog"); - gtk_window_set_transient_for(GTK_WINDOW(window->MainWindow),GTK_WINDOW(window->MainWindow)); + gtk_window_set_transient_for(GTK_WINDOW(dialog->FileChooser),GTK_WINDOW(window->MainWindow)); + GtkFileFilter *filter = gtk_file_filter_new(); + gtk_file_filter_add_pattern(filter,"*log*"); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog->FileChooser),filter); dictionary *dict = NULL; gtk_window_set_title(GTK_WINDOW(dialog->FileChooser),TITLE_LABEL); @@ -617,6 +659,8 @@ void on_logrotate_configuration_path_filechooser_open(GtkWidget *self, logrotate g_signal_connect(G_OBJECT(dialog->AcceptButton),"clicked",G_CALLBACK(on_logrotate_configuration_path_filechooser_save),dict); else if (self==window->LogPathEditButton) g_signal_connect(G_OBJECT(dialog->AcceptButton),"clicked",G_CALLBACK(on_logrotate_configuration_path_filechooser_save_edit),dict); + g_signal_connect(G_OBJECT(dialog->FileChooser),"selection-changed",G_CALLBACK(on_logrotate_configuration_path_filechooser_selection_changed),dialog); + g_signal_connect(G_OBJECT(dialog->FileOrDirCheck),"toggled",G_CALLBACK(on_logrotate_filechooser_file_dir_toggled),dialog); gtk_widget_show(dialog->FileChooser); } @@ -2109,16 +2153,85 @@ void on_log_path_remove(GtkWidget *self, add_log_window *window){ g_list_free(paths); } +void on_log_path_filechooser_selection_changed(GtkWidget *self, logrotate_filechooser_window *dialog){ + GFile *file = gtk_file_chooser_get_file(GTK_FILE_CHOOSER(dialog->FileChooser)); + GFileType type = g_file_query_file_type(file,G_FILE_QUERY_INFO_NONE, NULL); + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->FileOrDirCheck))){ + if (type==G_FILE_TYPE_REGULAR){ + gtk_widget_set_sensitive(dialog->AcceptButton,0); + } else { + gtk_widget_set_sensitive(dialog->AcceptButton,1); + } + } else { + if (type==G_FILE_TYPE_REGULAR){ + gtk_widget_set_sensitive(dialog->AcceptButton,1); + } else { + gtk_widget_set_sensitive(dialog->AcceptButton,0); + } + } +} + +void on_log_path_filechooser_toggled(GtkWidget *self, logrotate_filechooser_window *dialog){ + on_log_path_filechooser_selection_changed(NULL,dialog); +} + +void on_log_path_filechooser_save(GtkWidget *self, dictionary *dict){ + GtkEntry *entry = yon_dictionary_get_data(dict->first,GtkEntry*); + logrotate_filechooser_window *dialog = yon_dictionary_get_data(dict->first->next,logrotate_filechooser_window*); + char *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog->FileChooser)); + GFile *file = gtk_file_chooser_get_file(GTK_FILE_CHOOSER(dialog->FileChooser)); + if (!file){ + filename = gtk_file_chooser_get_current_folder(GTK_FILE_CHOOSER(dialog->FileChooser)); + if (filename[strlen(filename)-1]=='/') + filename = yon_char_append(filename,"*.log"); + else + filename = yon_char_append(filename,"/*.log"); + } else { + GFileType type = g_file_query_file_type(file,G_FILE_QUERY_INFO_NONE,NULL); + if (type==G_FILE_TYPE_DIRECTORY){ + if (filename[strlen(filename)-1]=='/') + filename = yon_char_append(filename,"*.log"); + else + filename = yon_char_append(filename,"/*.log"); + + } + } + gtk_entry_set_text(entry,filename); + + on_close_subwindow(dialog->FileChooser,NULL); +} + +void on_log_path_filechooser_open(GtkWidget *self, GtkEntry *entry){ + GtkBuilder *builder = gtk_builder_new_from_resource(glade_filechooser_path); + logrotate_filechooser_window *dialog = malloc(sizeof(logrotate_filechooser_window)); + dialog->FileChooser = yon_gtk_builder_get_widget(builder,"FileChooser"); + dialog->FileOrDirCheck = yon_gtk_builder_get_widget(builder,"FileOrDirCheck"); + dialog->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton"); + dialog->AcceptButton = yon_gtk_builder_get_widget(builder,"AcceptButton"); + dialog->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox"); + yon_window_config_custom_window_set(GTK_WINDOW(dialog->FileChooser),"FileDialog"); + gtk_window_set_transient_for(GTK_WINDOW(dialog->FileChooser),GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(entry)))); + + dictionary *dict = NULL; + gtk_window_set_title(GTK_WINDOW(dialog->FileChooser),TITLE_LABEL); + yon_dictionary_add_or_create_if_exists_with_data(dict,"entry",entry); + yon_dictionary_add_or_create_if_exists_with_data(dict,"dialog",dialog); + + g_signal_connect(G_OBJECT(dialog->CancelButton),"clicked",G_CALLBACK(on_close_subwindow),"FileDialog"); + // if (self==window->LogPathAddButton) + g_signal_connect(G_OBJECT(dialog->AcceptButton),"clicked",G_CALLBACK(on_log_path_filechooser_save),dict); + // else if (self==window->LogPathEditButton) + // g_signal_connect(G_OBJECT(dialog->AcceptButton),"clicked",G_CALLBACK(on_log_path_filechooser_save_edit),dict); + g_signal_connect(G_OBJECT(dialog->FileChooser),"selection-changed",G_CALLBACK(on_log_path_filechooser_selection_changed),dialog); + g_signal_connect(G_OBJECT(dialog->FileOrDirCheck),"toggled",G_CALLBACK(on_log_path_filechooser_toggled),dialog); + gtk_widget_show(dialog->FileChooser); +} + void on_log_path_choose(GtkWidget *self,add_log_window *window){ - GtkWidget *dialog = gtk_file_chooser_dialog_new(TITLE_LABEL,GTK_WINDOW(window->MainWindow),GTK_FILE_CHOOSER_ACTION_OPEN,CANCEL_LABEL,GTK_RESPONSE_CANCEL,ACCEPT_LABEL,GTK_RESPONSE_ACCEPT,NULL); - gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog),"/"); - int response = gtk_dialog_run(GTK_DIALOG(dialog)); - if (response == GTK_RESPONSE_ACCEPT){ - GtkWidget *parent = gtk_widget_get_parent(self); - GList *list = gtk_container_get_children(GTK_CONTAINER(parent)); - gtk_entry_set_text((GtkEntry*)g_list_nth_data(list,1),gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog))); - } - gtk_widget_destroy(dialog); + GtkWidget *parent = gtk_widget_get_parent(self); + GList *list = gtk_container_get_children(GTK_CONTAINER(parent)); + // gtk_entry_set_text((GtkEntry*)g_list_nth_data(list,1),gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog))); + on_log_path_filechooser_open(NULL,(GtkEntry*)g_list_nth_data(list,1)); } void on_log_path_append(GtkWidget *self, add_log_window *window){ diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 3b71c35..63fef5e 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -37,6 +37,8 @@ #define GLOBAL_SAVE_SUCCESS_LABEL _("Global configuration saving succseeded.") #define LOCAL_SAVE_SUCCESS_LABEL _("Local configuration saving succseeded.") #define ACCEPT_LABEL _("Accept") + +#define CHOOSE_DIR_NOT_FILE_LABEL _("Choose directory instead of file") //ubl-settings-logging.glade #define JOURNALS_LABEL _("Journals") #define SERVICES_LABEL _("Services") diff --git a/ubl-settings-logging-filechooser.glade b/ubl-settings-logging-filechooser.glade index 865e9bc..84db281 100644 --- a/ubl-settings-logging-filechooser.glade +++ b/ubl-settings-logging-filechooser.glade @@ -1,7 +1,8 @@ - + + True False @@ -33,6 +34,7 @@ Choose directory instead of file + True True False True diff --git a/ubl-settings-logging.pot b/ubl-settings-logging.pot index 2e67935..fa14b61 100644 --- a/ubl-settings-logging.pot +++ b/ubl-settings-logging.pot @@ -182,599 +182,603 @@ msgid "Accept" msgstr "" #: source/ubl-strings.h:41 +msgid "Choose directory instead of file" +msgstr "" + +#: source/ubl-strings.h:43 msgid "Journals" msgstr "" -#: source/ubl-strings.h:42 +#: source/ubl-strings.h:44 msgid "Services" msgstr "" -#: source/ubl-strings.h:43 +#: source/ubl-strings.h:45 msgid "Log/Journal" msgstr "" -#: source/ubl-strings.h:44 +#: source/ubl-strings.h:46 msgid "Path" msgstr "" -#: source/ubl-strings.h:45 +#: source/ubl-strings.h:47 msgid "Description" msgstr "" -#: source/ubl-strings.h:46 +#: source/ubl-strings.h:48 msgid "Inspect log" msgstr "" -#: source/ubl-strings.h:47 +#: source/ubl-strings.h:49 msgid "Configure log" msgstr "" -#: source/ubl-strings.h:48 +#: source/ubl-strings.h:50 msgid "Add log" msgstr "" -#: source/ubl-strings.h:49 +#: source/ubl-strings.h:51 msgid "Remove log" msgstr "" -#: source/ubl-strings.h:50 +#: source/ubl-strings.h:52 msgid "Stop service" msgstr "" -#: source/ubl-strings.h:51 +#: source/ubl-strings.h:53 msgid "Start service" msgstr "" -#: source/ubl-strings.h:52 +#: source/ubl-strings.h:54 msgid "Configure service" msgstr "" -#: source/ubl-strings.h:53 +#: source/ubl-strings.h:55 msgid "Status" msgstr "" -#: source/ubl-strings.h:54 +#: source/ubl-strings.h:56 msgid "Service" msgstr "" -#: source/ubl-strings.h:55 +#: source/ubl-strings.h:57 msgid "Autostart" msgstr "" -#: source/ubl-strings.h:56 +#: source/ubl-strings.h:58 msgid "Switch autostart off" msgstr "" -#: source/ubl-strings.h:57 +#: source/ubl-strings.h:59 msgid "Switch autostart on" msgstr "" -#: source/ubl-strings.h:60 +#: source/ubl-strings.h:62 msgid "Show messages since the current system boot" msgstr "" -#: source/ubl-strings.h:61 +#: source/ubl-strings.h:63 msgid "Follow for new messages" msgstr "" -#: source/ubl-strings.h:62 +#: source/ubl-strings.h:64 msgid "Show kernel ring buffer" msgstr "" -#: source/ubl-strings.h:63 +#: source/ubl-strings.h:65 msgid "Show only priority error messages, critical messages and warnings" msgstr "" -#: source/ubl-strings.h:64 +#: source/ubl-strings.h:66 msgid "Show all boots" msgstr "" -#: source/ubl-strings.h:65 +#: source/ubl-strings.h:67 msgid "Show a list of all units, ordered by the time of their initialisation" msgstr "" -#: source/ubl-strings.h:66 +#: source/ubl-strings.h:68 msgid "Show tree of time-critical initialization unit chain" msgstr "" -#: source/ubl-strings.h:67 +#: source/ubl-strings.h:69 msgid "Update" msgstr "" -#: source/ubl-strings.h:68 +#: source/ubl-strings.h:70 msgid "Date" msgstr "" -#: source/ubl-strings.h:69 +#: source/ubl-strings.h:71 msgid "Hostname" msgstr "" -#: source/ubl-strings.h:70 +#: source/ubl-strings.h:72 msgid "Process" msgstr "" -#: source/ubl-strings.h:71 +#: source/ubl-strings.h:73 msgid "Log" msgstr "" -#: source/ubl-strings.h:74 +#: source/ubl-strings.h:76 msgid "Description:" msgstr "" -#: source/ubl-strings.h:75 +#: source/ubl-strings.h:77 msgid "Journal storage place:" msgstr "" -#: source/ubl-strings.h:76 source/ubl-strings.h:77 +#: source/ubl-strings.h:78 source/ubl-strings.h:79 msgid "Use compression:" msgstr "" -#: source/ubl-strings.h:78 +#: source/ubl-strings.h:80 msgid "Split journal files:" msgstr "" -#: source/ubl-strings.h:79 +#: source/ubl-strings.h:81 msgid "Log recording journal interval:" msgstr "" -#: source/ubl-strings.h:80 +#: source/ubl-strings.h:82 msgid "Records amount:" msgstr "" -#: source/ubl-strings.h:81 +#: source/ubl-strings.h:83 msgid "Maximum size of all logs:" msgstr "" -#: source/ubl-strings.h:82 +#: source/ubl-strings.h:84 msgid "Maximum size of rotation journal:" msgstr "" -#: source/ubl-strings.h:83 +#: source/ubl-strings.h:85 msgid "Leave free space at storage:" msgstr "" -#: source/ubl-strings.h:84 +#: source/ubl-strings.h:86 msgid "Redirect to console:" msgstr "" -#: source/ubl-strings.h:85 +#: source/ubl-strings.h:87 msgid "TTY:" msgstr "" -#: source/ubl-strings.h:86 +#: source/ubl-strings.h:88 msgid "Type of forwarded messages:" msgstr "" -#: source/ubl-strings.h:87 +#: source/ubl-strings.h:89 msgid "Journal configuration" msgstr "" -#: source/ubl-strings.h:88 +#: source/ubl-strings.h:90 msgid "Total log size:" msgstr "" -#: source/ubl-strings.h:89 +#: source/ubl-strings.h:91 msgid "Lower size to:" msgstr "" -#: source/ubl-strings.h:90 +#: source/ubl-strings.h:92 msgid "Apply" msgstr "" -#: source/ubl-strings.h:91 +#: source/ubl-strings.h:93 msgid "Statistics" msgstr "" -#: source/ubl-strings.h:92 +#: source/ubl-strings.h:94 msgid "Default" msgstr "" -#: source/ubl-strings.h:93 +#: source/ubl-strings.h:95 msgid "RAM" msgstr "" -#: source/ubl-strings.h:94 +#: source/ubl-strings.h:96 msgid "Drive" msgstr "" -#: source/ubl-strings.h:95 +#: source/ubl-strings.h:97 msgid "Auto" msgstr "" -#: source/ubl-strings.h:96 +#: source/ubl-strings.h:98 msgid "None" msgstr "" -#: source/ubl-strings.h:97 +#: source/ubl-strings.h:99 msgid "Yes" msgstr "" -#: source/ubl-strings.h:98 +#: source/ubl-strings.h:100 msgid "No" msgstr "" -#: source/ubl-strings.h:99 +#: source/ubl-strings.h:101 msgid "After" msgstr "" -#: source/ubl-strings.h:100 +#: source/ubl-strings.h:102 msgid "Kb" msgstr "" -#: source/ubl-strings.h:101 +#: source/ubl-strings.h:103 msgid "Mb" msgstr "" -#: source/ubl-strings.h:102 +#: source/ubl-strings.h:104 msgid "Gb" msgstr "" -#: source/ubl-strings.h:103 +#: source/ubl-strings.h:105 msgid "Minutes" msgstr "" -#: source/ubl-strings.h:104 +#: source/ubl-strings.h:106 msgid "Hours" msgstr "" -#: source/ubl-strings.h:105 +#: source/ubl-strings.h:107 msgid "Days" msgstr "" -#: source/ubl-strings.h:106 +#: source/ubl-strings.h:108 msgid "Weeks" msgstr "" -#: source/ubl-strings.h:107 +#: source/ubl-strings.h:109 msgid "Years" msgstr "" -#: source/ubl-strings.h:108 +#: source/ubl-strings.h:110 msgid "Reset" msgstr "" -#: source/ubl-strings.h:111 +#: source/ubl-strings.h:113 msgid "Log/Journal:" msgstr "" -#: source/ubl-strings.h:112 +#: source/ubl-strings.h:114 msgid "Paths to log and journals files" msgstr "" -#: source/ubl-strings.h:113 +#: source/ubl-strings.h:115 msgid "On" msgstr "" -#: source/ubl-strings.h:114 +#: source/ubl-strings.h:116 msgid "Off" msgstr "" -#: source/ubl-strings.h:115 source/ubl-strings.h:169 +#: source/ubl-strings.h:117 source/ubl-strings.h:171 msgid "Scenarios" msgstr "" -#: source/ubl-strings.h:116 source/ubl-strings.h:168 +#: source/ubl-strings.h:118 source/ubl-strings.h:170 msgid "Scenarios are running for each rotated journal" msgstr "" -#: source/ubl-strings.h:117 +#: source/ubl-strings.h:119 msgid "Command before rotation (one time):" msgstr "" -#: source/ubl-strings.h:118 +#: source/ubl-strings.h:120 msgid "Command after rotation (one time):" msgstr "" -#: source/ubl-strings.h:119 +#: source/ubl-strings.h:121 msgid "Command before rotation:" msgstr "" -#: source/ubl-strings.h:120 +#: source/ubl-strings.h:122 msgid "Command after rotation:" msgstr "" -#: source/ubl-strings.h:121 +#: source/ubl-strings.h:123 msgid "Rotation period:" msgstr "" -#: source/ubl-strings.h:122 +#: source/ubl-strings.h:124 msgid "Maximum size of file:" msgstr "" -#: source/ubl-strings.h:123 +#: source/ubl-strings.h:125 msgid "Checking frequency configuration" msgstr "" -#: source/ubl-strings.h:124 +#: source/ubl-strings.h:126 msgid "File amount:" msgstr "" -#: source/ubl-strings.h:125 +#: source/ubl-strings.h:127 msgid "Store at:" msgstr "" -#: source/ubl-strings.h:126 +#: source/ubl-strings.h:128 msgid "Rotation as user:" msgstr "" -#: source/ubl-strings.h:127 +#: source/ubl-strings.h:129 msgid "Rotation as group:" msgstr "" -#: source/ubl-strings.h:128 +#: source/ubl-strings.h:130 msgid "Rotation configuration" msgstr "" -#: source/ubl-strings.h:129 +#: source/ubl-strings.h:131 msgid "Error processing:" msgstr "" -#: source/ubl-strings.h:130 +#: source/ubl-strings.h:132 msgid "Rotation of jurnal even when it is empty:" msgstr "" -#: source/ubl-strings.h:131 +#: source/ubl-strings.h:133 msgid "Do not rotate journal younger than" msgstr "" -#: source/ubl-strings.h:132 +#: source/ubl-strings.h:134 msgid "days" msgstr "" -#: source/ubl-strings.h:133 +#: source/ubl-strings.h:135 msgid "Delete rotated journals older than" msgstr "" -#: source/ubl-strings.h:134 +#: source/ubl-strings.h:136 msgid "Rotate journals if size more than" msgstr "" -#: source/ubl-strings.h:135 +#: source/ubl-strings.h:137 msgid "but not earlier than the specified time interval" msgstr "" -#: source/ubl-strings.h:136 +#: source/ubl-strings.h:138 msgid "before specified time interval" msgstr "" -#: source/ubl-strings.h:137 +#: source/ubl-strings.h:139 msgid "File choosing configuration" msgstr "" -#: source/ubl-strings.h:138 +#: source/ubl-strings.h:140 msgid "Create log" msgstr "" -#: source/ubl-strings.h:139 +#: source/ubl-strings.h:141 msgid "as user:" msgstr "" -#: source/ubl-strings.h:140 +#: source/ubl-strings.h:142 msgid "as group:" msgstr "" -#: source/ubl-strings.h:141 +#: source/ubl-strings.h:143 msgid "rules:" msgstr "" -#: source/ubl-strings.h:142 +#: source/ubl-strings.h:144 msgid "" "Cut source journal fileafter copy creating instead of moving old journal " "file and creating new one" msgstr "" -#: source/ubl-strings.h:143 +#: source/ubl-strings.h:145 msgid "Files and directories configuration" msgstr "" -#: source/ubl-strings.h:144 +#: source/ubl-strings.h:146 msgid "Delay compression by one journal in queue:" msgstr "" -#: source/ubl-strings.h:145 +#: source/ubl-strings.h:147 msgid "Compression configuration" msgstr "" -#: source/ubl-strings.h:146 +#: source/ubl-strings.h:148 msgid "Save original log file after rotation if it has specified extension:" msgstr "" -#: source/ubl-strings.h:147 +#: source/ubl-strings.h:149 msgid "Add date of rotation before log header" msgstr "" -#: source/ubl-strings.h:148 +#: source/ubl-strings.h:150 msgid "Number from which numbering of old logs will begin" msgstr "" -#: source/ubl-strings.h:149 +#: source/ubl-strings.h:151 msgid "Filename configuration" msgstr "" -#: source/ubl-strings.h:150 +#: source/ubl-strings.h:152 msgid "Email after rotation:" msgstr "" -#: source/ubl-strings.h:151 +#: source/ubl-strings.h:153 msgid "adress:" msgstr "" -#: source/ubl-strings.h:152 +#: source/ubl-strings.h:154 msgid "contents:" msgstr "" -#: source/ubl-strings.h:153 source/ubl-strings.h:166 +#: source/ubl-strings.h:155 source/ubl-strings.h:168 msgid "Message configuration" msgstr "" -#: source/ubl-strings.h:154 +#: source/ubl-strings.h:156 msgid "Manual input:" msgstr "" -#: source/ubl-strings.h:155 +#: source/ubl-strings.h:157 msgid "Log (-s) size:" msgstr "" -#: source/ubl-strings.h:156 +#: source/ubl-strings.h:158 msgid "Same directory" msgstr "" -#: source/ubl-strings.h:157 +#: source/ubl-strings.h:159 msgid "Separate directory" msgstr "" -#: source/ubl-strings.h:158 +#: source/ubl-strings.h:160 msgid "Output errors if log file does not exist*" msgstr "" -#: source/ubl-strings.h:159 +#: source/ubl-strings.h:161 msgid "Do not output errors if log file does not exist" msgstr "" -#: source/ubl-strings.h:160 +#: source/ubl-strings.h:162 msgid "Do not output" msgstr "" -#: source/ubl-strings.h:161 +#: source/ubl-strings.h:163 msgid "Output errors" msgstr "" -#: source/ubl-strings.h:162 +#: source/ubl-strings.h:164 msgid "Send Email" msgstr "" -#: source/ubl-strings.h:163 +#: source/ubl-strings.h:165 msgid "Don't send Email" msgstr "" -#: source/ubl-strings.h:164 +#: source/ubl-strings.h:166 msgid "First rotated copy" msgstr "" -#: source/ubl-strings.h:165 +#: source/ubl-strings.h:167 msgid "Last rotated copy" msgstr "" -#: source/ubl-strings.h:167 +#: source/ubl-strings.h:169 msgid "Endwork command:" msgstr "" -#: source/ubl-strings.h:170 +#: source/ubl-strings.h:172 msgid "Hourly" msgstr "" -#: source/ubl-strings.h:171 +#: source/ubl-strings.h:173 msgid "Daily" msgstr "" -#: source/ubl-strings.h:172 +#: source/ubl-strings.h:174 msgid "Weekly*" msgstr "" -#: source/ubl-strings.h:173 +#: source/ubl-strings.h:175 msgid "Monthly" msgstr "" -#: source/ubl-strings.h:174 +#: source/ubl-strings.h:176 msgid "Yearly" msgstr "" -#: source/ubl-strings.h:175 +#: source/ubl-strings.h:177 msgid "Monday" msgstr "" -#: source/ubl-strings.h:176 +#: source/ubl-strings.h:178 msgid "Tuesday" msgstr "" -#: source/ubl-strings.h:177 +#: source/ubl-strings.h:179 msgid "Wednesday" msgstr "" -#: source/ubl-strings.h:178 +#: source/ubl-strings.h:180 msgid "Thursday" msgstr "" -#: source/ubl-strings.h:179 +#: source/ubl-strings.h:181 msgid "Friday" msgstr "" -#: source/ubl-strings.h:180 +#: source/ubl-strings.h:182 msgid "Saturday" msgstr "" -#: source/ubl-strings.h:181 +#: source/ubl-strings.h:183 msgid "Sunday*" msgstr "" -#: source/ubl-strings.h:182 +#: source/ubl-strings.h:184 msgid "Same record already exists" msgstr "" -#: source/ubl-strings.h:183 +#: source/ubl-strings.h:185 msgid "Empty important field" msgstr "" -#: source/ubl-strings.h:184 +#: source/ubl-strings.h:186 msgid "Repeating paths" msgstr "" -#: source/ubl-strings.h:185 +#: source/ubl-strings.h:187 msgid "Write down all important fields" msgstr "" -#: source/ubl-strings.h:188 +#: source/ubl-strings.h:190 msgid "System configuration" msgstr "" -#: source/ubl-strings.h:189 +#: source/ubl-strings.h:191 msgid "Applications configuration" msgstr "" -#: source/ubl-strings.h:192 +#: source/ubl-strings.h:194 msgid "Path (-s):" msgstr "" -#: source/ubl-strings.h:193 +#: source/ubl-strings.h:195 msgid "Control:" msgstr "" -#: source/ubl-strings.h:194 +#: source/ubl-strings.h:196 msgid "Log file" msgstr "" -#: source/ubl-strings.h:195 +#: source/ubl-strings.h:197 msgid "Name:" msgstr "" -#: source/ubl-strings.h:198 +#: source/ubl-strings.h:200 msgid "Owner rules" msgstr "" -#: source/ubl-strings.h:199 +#: source/ubl-strings.h:201 msgid "Group rules" msgstr "" -#: source/ubl-strings.h:200 +#: source/ubl-strings.h:202 msgid "Public rules" msgstr "" -#: source/ubl-strings.h:201 +#: source/ubl-strings.h:203 msgid "Read" msgstr "" -#: source/ubl-strings.h:202 +#: source/ubl-strings.h:204 msgid "Write" msgstr "" -#: source/ubl-strings.h:203 +#: source/ubl-strings.h:205 msgid "Execute" msgstr "" -#: source/ubl-strings.h:204 +#: source/ubl-strings.h:206 msgid "Value:" msgstr "" -#: source/ubl-strings.h:207 +#: source/ubl-strings.h:209 msgid ": no such file(s)" msgstr "" diff --git a/ubl-settings-logging_ru.po b/ubl-settings-logging_ru.po index e875997..a06ddc8 100644 --- a/ubl-settings-logging_ru.po +++ b/ubl-settings-logging_ru.po @@ -186,388 +186,392 @@ msgid "Accept" msgstr "Принять" #: source/ubl-strings.h:41 +msgid "Choose directory instead of file" +msgstr "Выбрать папку вместо файла" + +#: source/ubl-strings.h:43 msgid "Journals" msgstr "Журналы" -#: source/ubl-strings.h:42 +#: source/ubl-strings.h:44 msgid "Services" msgstr "Сервисы" -#: source/ubl-strings.h:43 +#: source/ubl-strings.h:45 msgid "Log/Journal" msgstr "Лог/Журнал" -#: source/ubl-strings.h:44 +#: source/ubl-strings.h:46 msgid "Path" msgstr "Путь" -#: source/ubl-strings.h:45 +#: source/ubl-strings.h:47 msgid "Description" msgstr "Описание" -#: source/ubl-strings.h:46 +#: source/ubl-strings.h:48 msgid "Inspect log" msgstr "Просмотреть лог" -#: source/ubl-strings.h:47 +#: source/ubl-strings.h:49 msgid "Configure log" msgstr "Настроить лог" -#: source/ubl-strings.h:48 +#: source/ubl-strings.h:50 msgid "Add log" msgstr "Добавить лог" -#: source/ubl-strings.h:49 +#: source/ubl-strings.h:51 msgid "Remove log" msgstr "Удалить лог" -#: source/ubl-strings.h:50 +#: source/ubl-strings.h:52 msgid "Stop service" msgstr "Остановить сервис" -#: source/ubl-strings.h:51 +#: source/ubl-strings.h:53 msgid "Start service" msgstr "Запустить сервис" -#: source/ubl-strings.h:52 +#: source/ubl-strings.h:54 msgid "Configure service" msgstr "Настроить сервис" -#: source/ubl-strings.h:53 +#: source/ubl-strings.h:55 msgid "Status" msgstr "Статус" -#: source/ubl-strings.h:54 +#: source/ubl-strings.h:56 msgid "Service" msgstr "Сервис" -#: source/ubl-strings.h:55 +#: source/ubl-strings.h:57 msgid "Autostart" msgstr "Автозапуск" -#: source/ubl-strings.h:56 +#: source/ubl-strings.h:58 msgid "Switch autostart off" msgstr "Выключить автозапуск" -#: source/ubl-strings.h:57 +#: source/ubl-strings.h:59 msgid "Switch autostart on" msgstr "Включить автозапуск" -#: source/ubl-strings.h:60 +#: source/ubl-strings.h:62 msgid "Show messages since the current system boot" msgstr "Показать сообщения с момента загрузки системы" -#: source/ubl-strings.h:61 +#: source/ubl-strings.h:63 msgid "Follow for new messages" msgstr "Следить за появлением новых сообщений" -#: source/ubl-strings.h:62 +#: source/ubl-strings.h:64 msgid "Show kernel ring buffer" msgstr "Показать кольцевой буфер ядра" -#: source/ubl-strings.h:63 +#: source/ubl-strings.h:65 msgid "Show only priority error messages, critical messages and warnings" msgstr "" "Показать только приоритетные сообщения об ошибках, критических сообщениях и " "предупреждениях" -#: source/ubl-strings.h:64 +#: source/ubl-strings.h:66 msgid "Show all boots" msgstr "Показать все загрузки в журнале" -#: source/ubl-strings.h:65 +#: source/ubl-strings.h:67 msgid "Show a list of all units, ordered by the time of their initialisation" msgstr "" "Показать список всех работающих юнитов, упорядоченных по времени их " "инициализации" -#: source/ubl-strings.h:66 +#: source/ubl-strings.h:68 msgid "Show tree of time-critical initialization unit chain" msgstr "Показать дерево критической по времени цепочки юнитов инициализации" -#: source/ubl-strings.h:67 +#: source/ubl-strings.h:69 msgid "Update" msgstr "Обновить" -#: source/ubl-strings.h:68 +#: source/ubl-strings.h:70 msgid "Date" msgstr "Дата" -#: source/ubl-strings.h:69 +#: source/ubl-strings.h:71 msgid "Hostname" msgstr "Имя хоста" -#: source/ubl-strings.h:70 +#: source/ubl-strings.h:72 msgid "Process" msgstr "Процесс" -#: source/ubl-strings.h:71 +#: source/ubl-strings.h:73 msgid "Log" msgstr "Запись лога" -#: source/ubl-strings.h:74 +#: source/ubl-strings.h:76 msgid "Description:" msgstr "Описание:" -#: source/ubl-strings.h:75 +#: source/ubl-strings.h:77 msgid "Journal storage place:" msgstr "Место хранения журнала:" -#: source/ubl-strings.h:76 source/ubl-strings.h:77 +#: source/ubl-strings.h:78 source/ubl-strings.h:79 msgid "Use compression:" msgstr "Использовать сжатие:" -#: source/ubl-strings.h:78 +#: source/ubl-strings.h:80 msgid "Split journal files:" msgstr "Разделять файлы журнала:" -#: source/ubl-strings.h:79 +#: source/ubl-strings.h:81 msgid "Log recording journal interval:" msgstr "Интервал записи журнала:" -#: source/ubl-strings.h:80 +#: source/ubl-strings.h:82 msgid "Records amount:" msgstr "Количество записей:" -#: source/ubl-strings.h:81 +#: source/ubl-strings.h:83 msgid "Maximum size of all logs:" msgstr "Максимальный размер всех журналов:" -#: source/ubl-strings.h:82 +#: source/ubl-strings.h:84 msgid "Maximum size of rotation journal:" msgstr "Максимальный размер журнала для ротации:" -#: source/ubl-strings.h:83 +#: source/ubl-strings.h:85 msgid "Leave free space at storage:" msgstr "Оставлять в хранилище свободным:" -#: source/ubl-strings.h:84 +#: source/ubl-strings.h:86 msgid "Redirect to console:" msgstr "Перенаправление в консоль:" -#: source/ubl-strings.h:85 +#: source/ubl-strings.h:87 msgid "TTY:" msgstr "TTY:" -#: source/ubl-strings.h:86 +#: source/ubl-strings.h:88 msgid "Type of forwarded messages:" msgstr "Тип перенаправляемых сообщений:" -#: source/ubl-strings.h:87 +#: source/ubl-strings.h:89 msgid "Journal configuration" msgstr "Настройка файла журнала" -#: source/ubl-strings.h:88 +#: source/ubl-strings.h:90 msgid "Total log size:" msgstr "Общий размер журналов:" -#: source/ubl-strings.h:89 +#: source/ubl-strings.h:91 msgid "Lower size to:" msgstr "Уменьшить размер до:" -#: source/ubl-strings.h:90 +#: source/ubl-strings.h:92 msgid "Apply" msgstr "Применить" -#: source/ubl-strings.h:91 +#: source/ubl-strings.h:93 msgid "Statistics" msgstr "Статистика" -#: source/ubl-strings.h:92 +#: source/ubl-strings.h:94 msgid "Default" msgstr "По умолчанию" -#: source/ubl-strings.h:93 +#: source/ubl-strings.h:95 msgid "RAM" msgstr "Оперативная память" -#: source/ubl-strings.h:94 +#: source/ubl-strings.h:96 msgid "Drive" msgstr "Диск" -#: source/ubl-strings.h:95 +#: source/ubl-strings.h:97 #, fuzzy msgid "Auto" msgstr "Автоматически" -#: source/ubl-strings.h:96 +#: source/ubl-strings.h:98 msgid "None" msgstr "Нет" -#: source/ubl-strings.h:97 +#: source/ubl-strings.h:99 msgid "Yes" msgstr "Да" -#: source/ubl-strings.h:98 +#: source/ubl-strings.h:100 msgid "No" msgstr "Нет" -#: source/ubl-strings.h:99 +#: source/ubl-strings.h:101 msgid "After" msgstr "После" -#: source/ubl-strings.h:100 +#: source/ubl-strings.h:102 msgid "Kb" msgstr "Кб" -#: source/ubl-strings.h:101 +#: source/ubl-strings.h:103 msgid "Mb" msgstr "Мб" -#: source/ubl-strings.h:102 +#: source/ubl-strings.h:104 msgid "Gb" msgstr "Гб" -#: source/ubl-strings.h:103 +#: source/ubl-strings.h:105 msgid "Minutes" msgstr "Минут" -#: source/ubl-strings.h:104 +#: source/ubl-strings.h:106 msgid "Hours" msgstr "Часов" -#: source/ubl-strings.h:105 +#: source/ubl-strings.h:107 msgid "Days" msgstr "Дней" -#: source/ubl-strings.h:106 +#: source/ubl-strings.h:108 #, fuzzy msgid "Weeks" msgstr "Недель" -#: source/ubl-strings.h:107 +#: source/ubl-strings.h:109 msgid "Years" msgstr "Лет" -#: source/ubl-strings.h:108 +#: source/ubl-strings.h:110 msgid "Reset" msgstr "По умлочанию" -#: source/ubl-strings.h:111 +#: source/ubl-strings.h:113 msgid "Log/Journal:" msgstr "Лог/Журнал:" -#: source/ubl-strings.h:112 +#: source/ubl-strings.h:114 msgid "Paths to log and journals files" msgstr "Пути к файлам лога/журнала" -#: source/ubl-strings.h:113 +#: source/ubl-strings.h:115 msgid "On" msgstr "Включено" -#: source/ubl-strings.h:114 +#: source/ubl-strings.h:116 msgid "Off" msgstr "Выключено" -#: source/ubl-strings.h:115 source/ubl-strings.h:169 +#: source/ubl-strings.h:117 source/ubl-strings.h:171 msgid "Scenarios" msgstr "Сценарии" -#: source/ubl-strings.h:116 source/ubl-strings.h:168 +#: source/ubl-strings.h:118 source/ubl-strings.h:170 msgid "Scenarios are running for each rotated journal" msgstr "Сценарии запускаются для каждого ротируемого журнала" -#: source/ubl-strings.h:117 +#: source/ubl-strings.h:119 msgid "Command before rotation (one time):" msgstr "Команда перед ротацией (один раз):" -#: source/ubl-strings.h:118 +#: source/ubl-strings.h:120 msgid "Command after rotation (one time):" msgstr "Команда после ротации (один раз):" -#: source/ubl-strings.h:119 +#: source/ubl-strings.h:121 msgid "Command before rotation:" msgstr "Команда перед ротацией:" -#: source/ubl-strings.h:120 +#: source/ubl-strings.h:122 msgid "Command after rotation:" msgstr "Команда после ротации:" -#: source/ubl-strings.h:121 +#: source/ubl-strings.h:123 msgid "Rotation period:" msgstr "Период ротации:" -#: source/ubl-strings.h:122 +#: source/ubl-strings.h:124 msgid "Maximum size of file:" msgstr "Максимальный размер файла:" -#: source/ubl-strings.h:123 +#: source/ubl-strings.h:125 msgid "Checking frequency configuration" msgstr "Настройки частоты проверки" -#: source/ubl-strings.h:124 +#: source/ubl-strings.h:126 msgid "File amount:" msgstr "Количество файлов:" -#: source/ubl-strings.h:125 +#: source/ubl-strings.h:127 msgid "Store at:" msgstr "Хранить в:" -#: source/ubl-strings.h:126 +#: source/ubl-strings.h:128 msgid "Rotation as user:" msgstr "Ротация от пользователя:" -#: source/ubl-strings.h:127 +#: source/ubl-strings.h:129 msgid "Rotation as group:" msgstr "Ротация от группы:" -#: source/ubl-strings.h:128 +#: source/ubl-strings.h:130 msgid "Rotation configuration" msgstr "Настройки ротации" -#: source/ubl-strings.h:129 +#: source/ubl-strings.h:131 msgid "Error processing:" msgstr "Обработка ошибок:" -#: source/ubl-strings.h:130 +#: source/ubl-strings.h:132 msgid "Rotation of jurnal even when it is empty:" msgstr "Ротация файла журнала даже если он пуст:" -#: source/ubl-strings.h:131 +#: source/ubl-strings.h:133 msgid "Do not rotate journal younger than" msgstr "Не ротировать журналы, возраст которых меньше" -#: source/ubl-strings.h:132 +#: source/ubl-strings.h:134 msgid "days" msgstr "дней" -#: source/ubl-strings.h:133 +#: source/ubl-strings.h:135 msgid "Delete rotated journals older than" msgstr "Удалить ротированные журналы старше" -#: source/ubl-strings.h:134 +#: source/ubl-strings.h:136 msgid "Rotate journals if size more than" msgstr "Ротация журналов, если размер превышает" -#: source/ubl-strings.h:135 +#: source/ubl-strings.h:137 msgid "but not earlier than the specified time interval" msgstr "но не раньше указанного интервала времени" -#: source/ubl-strings.h:136 +#: source/ubl-strings.h:138 msgid "before specified time interval" msgstr "до истечения указанного интервала времени" -#: source/ubl-strings.h:137 +#: source/ubl-strings.h:139 msgid "File choosing configuration" msgstr "Настройки выбора файла" -#: source/ubl-strings.h:138 +#: source/ubl-strings.h:140 msgid "Create log" msgstr "Создавать лог" -#: source/ubl-strings.h:139 +#: source/ubl-strings.h:141 msgid "as user:" msgstr "от пользователя:" -#: source/ubl-strings.h:140 +#: source/ubl-strings.h:142 msgid "as group:" msgstr "от группы:" -#: source/ubl-strings.h:141 +#: source/ubl-strings.h:143 msgid "rules:" msgstr "права:" -#: source/ubl-strings.h:142 +#: source/ubl-strings.h:144 msgid "" "Cut source journal fileafter copy creating instead of moving old journal " "file and creating new one" @@ -575,222 +579,222 @@ msgstr "" "После создания копии, обрезать исходный файл журнала взамен перемещения " "старого файла журнала и создания нового" -#: source/ubl-strings.h:143 +#: source/ubl-strings.h:145 msgid "Files and directories configuration" msgstr "Настройки файлов и папок" -#: source/ubl-strings.h:144 +#: source/ubl-strings.h:146 msgid "Delay compression by one journal in queue:" msgstr "Отложить сжание на один журнал в очереди:" -#: source/ubl-strings.h:145 +#: source/ubl-strings.h:147 msgid "Compression configuration" msgstr "Настройка сжатия" -#: source/ubl-strings.h:146 +#: source/ubl-strings.h:148 msgid "Save original log file after rotation if it has specified extension:" msgstr "" "Сохранять оригинальный лог после ротации, если у него указано расширение:" -#: source/ubl-strings.h:147 +#: source/ubl-strings.h:149 msgid "Add date of rotation before log header" msgstr "Добавлять дату ротации перед заголовком старого лога:" -#: source/ubl-strings.h:148 +#: source/ubl-strings.h:150 msgid "Number from which numbering of old logs will begin" msgstr "Номер, с которого будет начата нумерация старых логов:" -#: source/ubl-strings.h:149 +#: source/ubl-strings.h:151 msgid "Filename configuration" msgstr "Настройка имени файлов" -#: source/ubl-strings.h:150 +#: source/ubl-strings.h:152 msgid "Email after rotation:" msgstr "Отправка Email после ротации:" -#: source/ubl-strings.h:151 +#: source/ubl-strings.h:153 msgid "adress:" msgstr "на адрес:" -#: source/ubl-strings.h:152 +#: source/ubl-strings.h:154 msgid "contents:" msgstr "содержимое:" -#: source/ubl-strings.h:153 source/ubl-strings.h:166 +#: source/ubl-strings.h:155 source/ubl-strings.h:168 msgid "Message configuration" msgstr "Настройка сообщения" -#: source/ubl-strings.h:154 +#: source/ubl-strings.h:156 msgid "Manual input:" msgstr "Команды настройки" -#: source/ubl-strings.h:155 +#: source/ubl-strings.h:157 msgid "Log (-s) size:" msgstr "Общий размер лога (-ов):" -#: source/ubl-strings.h:156 +#: source/ubl-strings.h:158 msgid "Same directory" msgstr "Той же папке" -#: source/ubl-strings.h:157 +#: source/ubl-strings.h:159 msgid "Separate directory" msgstr "Другой папке" -#: source/ubl-strings.h:158 +#: source/ubl-strings.h:160 msgid "Output errors if log file does not exist*" msgstr "Выводить ошибки, если лог файла не существует*" -#: source/ubl-strings.h:159 +#: source/ubl-strings.h:161 msgid "Do not output errors if log file does not exist" msgstr "Не выводить ошибки, если лог файла не существует" -#: source/ubl-strings.h:160 +#: source/ubl-strings.h:162 msgid "Do not output" msgstr "Не выводить" -#: source/ubl-strings.h:161 +#: source/ubl-strings.h:163 msgid "Output errors" msgstr "Выводить ошибки" -#: source/ubl-strings.h:162 +#: source/ubl-strings.h:164 msgid "Send Email" msgstr "Отправлять Email" -#: source/ubl-strings.h:163 +#: source/ubl-strings.h:165 msgid "Don't send Email" msgstr "Не отправлять Email" -#: source/ubl-strings.h:164 +#: source/ubl-strings.h:166 msgid "First rotated copy" msgstr "Первая ротированная копия" -#: source/ubl-strings.h:165 +#: source/ubl-strings.h:167 msgid "Last rotated copy" msgstr "Последняя ротированная копия" -#: source/ubl-strings.h:167 +#: source/ubl-strings.h:169 msgid "Endwork command:" msgstr "Команда перед удалением файла журнала:" -#: source/ubl-strings.h:170 +#: source/ubl-strings.h:172 #, fuzzy msgid "Hourly" msgstr "Час" -#: source/ubl-strings.h:171 +#: source/ubl-strings.h:173 msgid "Daily" msgstr "День" -#: source/ubl-strings.h:172 +#: source/ubl-strings.h:174 msgid "Weekly*" msgstr "Неделя*" -#: source/ubl-strings.h:173 +#: source/ubl-strings.h:175 msgid "Monthly" msgstr "Месяц" -#: source/ubl-strings.h:174 +#: source/ubl-strings.h:176 msgid "Yearly" msgstr "Год" -#: source/ubl-strings.h:175 +#: source/ubl-strings.h:177 msgid "Monday" msgstr "Понедельник" -#: source/ubl-strings.h:176 +#: source/ubl-strings.h:178 msgid "Tuesday" msgstr "Вторник" -#: source/ubl-strings.h:177 +#: source/ubl-strings.h:179 msgid "Wednesday" msgstr "Среда" -#: source/ubl-strings.h:178 +#: source/ubl-strings.h:180 msgid "Thursday" msgstr "Четверг" -#: source/ubl-strings.h:179 +#: source/ubl-strings.h:181 msgid "Friday" msgstr "Пятница" -#: source/ubl-strings.h:180 +#: source/ubl-strings.h:182 msgid "Saturday" msgstr "Суббота" -#: source/ubl-strings.h:181 +#: source/ubl-strings.h:183 msgid "Sunday*" msgstr "Воскресенье*" -#: source/ubl-strings.h:182 +#: source/ubl-strings.h:184 msgid "Same record already exists" msgstr "Такая запись уже существует" -#: source/ubl-strings.h:183 +#: source/ubl-strings.h:185 msgid "Empty important field" msgstr "Важное поле не заполнено" -#: source/ubl-strings.h:184 +#: source/ubl-strings.h:186 msgid "Repeating paths" msgstr "Повторяющиеся пути" -#: source/ubl-strings.h:185 +#: source/ubl-strings.h:187 #, fuzzy msgid "Write down all important fields" msgstr "Введите все необходимые поля" -#: source/ubl-strings.h:188 +#: source/ubl-strings.h:190 msgid "System configuration" msgstr "Настройки системы" -#: source/ubl-strings.h:189 +#: source/ubl-strings.h:191 msgid "Applications configuration" msgstr "Настройки приложений" -#: source/ubl-strings.h:192 +#: source/ubl-strings.h:194 msgid "Path (-s):" msgstr "Путь (-и):" -#: source/ubl-strings.h:193 +#: source/ubl-strings.h:195 msgid "Control:" msgstr "Управление:" -#: source/ubl-strings.h:194 +#: source/ubl-strings.h:196 msgid "Log file" msgstr "Файл лога" -#: source/ubl-strings.h:195 +#: source/ubl-strings.h:197 msgid "Name:" msgstr "Имя:" -#: source/ubl-strings.h:198 +#: source/ubl-strings.h:200 msgid "Owner rules" msgstr "Правила владельца" -#: source/ubl-strings.h:199 +#: source/ubl-strings.h:201 msgid "Group rules" msgstr "Правила группы" -#: source/ubl-strings.h:200 +#: source/ubl-strings.h:202 msgid "Public rules" msgstr "Правила остальных" -#: source/ubl-strings.h:201 +#: source/ubl-strings.h:203 msgid "Read" msgstr "Чтение" -#: source/ubl-strings.h:202 +#: source/ubl-strings.h:204 msgid "Write" msgstr "Запись" -#: source/ubl-strings.h:203 +#: source/ubl-strings.h:205 msgid "Execute" msgstr "Исполнение" -#: source/ubl-strings.h:204 +#: source/ubl-strings.h:206 msgid "Value:" msgstr "Значение:" -#: source/ubl-strings.h:207 +#: source/ubl-strings.h:209 msgid ": no such file(s)" msgstr ": файл(ы) не найден(ы)"