Merge pull request 'master' (#95) from YanTheKaller/ubl-settings-logging:master into master

Reviewed-on: #95
pull/139/head v2.3
Dmitry Razumov 2 years ago
commit e070301f81

@ -167,7 +167,7 @@ saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...){
window->type=type;
yon_window_config_custom_window_setup(GTK_WINDOW(window->Window),"SaveWindow");
yon_window_config_custom_window_get(GTK_WINDOW(window->Window),"SaveWindow");
gtk_window_set_title(GTK_WINDOW(window->Window),TITLE_LABEL);
gtk_window_set_title(GTK_WINDOW(window->Window),SAVE_TITLE_LABEL);
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_close_subwindow),NULL);
g_signal_connect(G_OBJECT(window->SaveButton),"clicked", G_CALLBACK(on_save_parameters),window);
g_signal_connect(G_OBJECT(window->ToggleCell),"toggled", G_CALLBACK(on_save_window_parameter_switched),window);
@ -700,7 +700,7 @@ void on_inspector_open(GtkWidget *self, main_window *widgets){
window->JournaldTree=yon_gtk_builder_get_widget(builder,"JournaldTree");
window->list=GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1"));
yon_window_config_custom_window_setup(GTK_WINDOW(window->MainWindow),"InspectorWindow");
gtk_window_set_title(GTK_WINDOW(window->MainWindow),TITLE_LABEL);
gtk_window_set_title(GTK_WINDOW(window->MainWindow),INSPECTOR_TITLE_LABEL);
gtk_window_set_transient_for(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->Window));
GtkTreeModel *model = GTK_TREE_MODEL(widgets->list);
GList *list = gtk_tree_view_get_columns(GTK_TREE_VIEW(window->JournaldTree));
@ -897,7 +897,7 @@ void on_logrotate_configuration_path_filechooser_open(GtkWidget *self, logrotate
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog->FileChooser),filter);
dictionary *dict = NULL;
gtk_window_set_title(GTK_WINDOW(dialog->FileChooser),TITLE_LABEL);
gtk_window_set_title(GTK_WINDOW(dialog->FileChooser),FILECHOOSER_TITLE_LABEL);
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
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");
@ -1117,7 +1117,7 @@ void on_rules_open(GtkWidget *self,GtkEntry *entry){
window->CancelButton=yon_gtk_builder_get_widget(builder,"CancelButton");
window->SaveButton=yon_gtk_builder_get_widget(builder,"SaveButton");
yon_window_config_custom_window_set(GTK_WINDOW(window->Window),"RulesWindow");
gtk_window_set_title(GTK_WINDOW(window->Window),TITLE_LABEL);
gtk_window_set_title(GTK_WINDOW(window->Window),RULES_TITLE_LABEL);
dictionary *dict = NULL;
yon_dictionary_add_or_create_if_exists_with_data(dict,"entry",entry);
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
@ -1164,7 +1164,7 @@ void on_filechooser_open(GtkWidget *self, logrotate_configure_window *window){
gtk_window_set_transient_for(GTK_WINDOW(window->MainWindow),GTK_WINDOW(window->MainWindow));
dictionary *dict = NULL;
gtk_window_set_title(GTK_WINDOW(dialog->FileChooser),TITLE_LABEL);
gtk_window_set_title(GTK_WINDOW(dialog->FileChooser),FILECHOOSER_TITLE_LABEL);
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
yon_dictionary_add_or_create_if_exists_with_data(dict,"dialog",dialog);
g_signal_connect(G_OBJECT(dialog->FileOrDirCheck),"toggled",G_CALLBACK(on_filechooser_mode_switch),dialog);
@ -1574,7 +1574,7 @@ logrotate_configure_window *yon_logrotate_window_new(char *paths, logrotate_wind
window->StatusBox=yon_gtk_builder_get_widget(builder,"StatusBox");
yon_window_config_custom_window_get(GTK_WINDOW(window->MainWindow),"LogrotateWindow");
gtk_window_set_title(GTK_WINDOW(window->MainWindow),TITLE_LABEL);
gtk_window_set_title(GTK_WINDOW(window->MainWindow),LOGROTATE_TITLE_LABEL);
if (dialog)
gtk_window_set_transient_for(GTK_WINDOW(window->MainWindow),GTK_WINDOW(dialog->Window));
window->paths=paths;
@ -1591,6 +1591,7 @@ logrotate_configure_window *yon_logrotate_window_new(char *paths, logrotate_wind
}
config_str logsize = yon_config_load(logrotate_size_command(temp_paths),&sz);
for (int i=0;i<sz;i++){
if (logsize[i][strlen(logsize[i])-1]=='\n') logsize[i][strlen(logsize[i])-1]='\0';
finalsize+=atof(logsize[i]);
}
int sizenumber=0;
@ -1916,6 +1917,7 @@ void on_log_edit_logrotate_settings(GtkWidget *self, dictionary *dict){
pathse=yon_char_unite(pathse ? yon_char_append(pathse,","):"",gtk_entry_get_text((GtkEntry*)g_list_nth_data(paths,1)),NULL);
}
logrotate_configure_window *dialog = yon_logrotate_window_new(pathse,NULL,name);
gtk_window_set_transient_for(GTK_WINDOW(dialog->MainWindow),GTK_WINDOW(window->MainWindow));
gtk_widget_show(dialog->MainWindow);
gtk_entry_set_text(GTK_ENTRY(dialog->LogNameEntry),name);
gtk_entry_set_text(GTK_ENTRY(dialog->LogDescriptionEntry),description);
@ -1969,7 +1971,9 @@ void on_logrotate_tab_open(GtkWidget *self, main_window *widgets){
window->RemoveButton = yon_gtk_builder_get_widget(builder,"RemoveButton");
window->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox");
yon_window_config_custom_window_get(GTK_WINDOW(window->Window),"LogrotateTabWindow");
gtk_window_set_title(GTK_WINDOW(window->Window),TITLE_LABEL);
gtk_window_set_title(GTK_WINDOW(window->Window),TABLE_TITLE_LABEL);
gtk_window_set_transient_for(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->Window));
gtk_tree_view_set_model(GTK_TREE_VIEW(window->MainTree),GTK_TREE_MODEL(main_config.logrotate_list));
gtk_tree_view_set_model(GTK_TREE_VIEW(window->AppsMainTree),GTK_TREE_MODEL(main_config.logrotate_apps_list));
@ -2194,16 +2198,17 @@ journald_window *yon_journald_open(GtkWidget *self, main_window *widgets){
window->LowerTimeButton=yon_gtk_builder_get_widget(builder,"LowerTimeButton");
window->headerTopic=yon_gtk_builder_get_widget(builder,"headerTopic");
yon_window_config_custom_window_get(GTK_WINDOW(window->MainWindow),"JournaldWindow");
yon_window_config_custom_window_setup(GTK_WINDOW(window->MainWindow),"JournaldWindow");
gtk_window_set_transient_for(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->Window));
{
int sz;
config_str logsize = yon_config_load(journald_size_command,&sz);
if (logsize)
if (logsize[0][strlen(logsize[0])-1]=='\n') logsize[0][strlen(logsize[0])-1]='\0';
gtk_label_set_text(GTK_LABEL(window->LogSizeLabel),logsize[0]);
}
gtk_window_set_title(GTK_WINDOW(window->MainWindow),TITLE_LABEL);
gtk_window_set_title(GTK_WINDOW(window->MainWindow),JOURNALD_TITLE_LABEL);
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_close_subwindow),"JournaldWindow");
g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_journald_save),window);
@ -2406,7 +2411,7 @@ add_log_window *on_add_open(main_window *widgets){
window->LogPathsBox=yon_gtk_builder_get_widget(builder,"LogPathsBox");
window->NameEntry=yon_gtk_builder_get_widget(builder,"NameEntry");
window->StatusBox=yon_gtk_builder_get_widget(builder,"StatusBox");
gtk_window_set_title(GTK_WINDOW(window->MainWindow),TITLE_LABEL);
gtk_window_set_title(GTK_WINDOW(window->MainWindow),MONITOR_TITLE_LABEL);
gtk_window_set_transient_for(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->Window));
dictionary *dict = NULL;
yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets);
@ -2495,7 +2500,7 @@ void on_log_path_filechooser_open(GtkWidget *self, GtkEntry *entry){
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);
gtk_window_set_title(GTK_WINDOW(dialog->FileChooser),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);
@ -2598,10 +2603,44 @@ void on_log_edit(GtkWidget *self,main_window *widgets){
int sz;
config_str logsize = yon_config_load(journald_size_command,&sz);
if (logsize)
if (logsize[0][strlen(logsize[0])-1]=='\n') logsize[0][strlen(logsize[0])-1]='\0';
gtk_label_set_text(GTK_LABEL(window->LogSizeLabel),logsize[0]);
g_signal_connect(G_OBJECT(window->JournaldButton),"clicked", G_CALLBACK(on_journald_open),widgets);
g_signal_connect(G_OBJECT(window->JournaldButton),"clicked", G_CALLBACK(on_journald_open),widgets);
} else {
gtk_widget_hide(window->JournaldButton);
if (paths){
int sz;
float finalsize=0.0;
char *temp_paths = yon_char_new(paths);
config_str parsed_paths = yon_char_parse(temp_paths,&sz,"\n");
free(temp_paths);
temp_paths=NULL;
for (int i=0;i<sz;i++){
if (!access(parsed_paths[i],F_OK))
temp_paths = yon_char_unite(temp_paths ? yon_char_append(temp_paths," ") : "",parsed_paths[i],NULL);
else {
int mask_size=0;
char *mask = yon_char_new(parsed_paths[i]);
char *path_mask = yon_char_divide(mask,yon_char_find_last(mask,'/'));
config_str mask_found = yon_dir_get_by_mask(path_mask,mask,&mask_size);
for (int l=0;l<mask_size;l++){
temp_paths = yon_char_unite(temp_paths ? yon_char_append(temp_paths," ") : "",path_mask,"/",mask_found[l],NULL);
}
}
}
if (!yon_char_is_empty(temp_paths)){
config_str logsize = yon_config_load(logrotate_size_command(temp_paths),&sz);
for (int i=0;i<sz;i++){
if (logsize[i][strlen(logsize[i])-1]=='\n') logsize[i][strlen(logsize[i])-1]='\0';
finalsize+=atof(logsize[i]);
}
int sizenumber=0;
finalsize = yon_size_convert_automatic(finalsize,&sizenumber);
char *fin = yon_char_from_float(finalsize);
gtk_label_set_text(GTK_LABEL(window->LogSizeLabel),yon_char_append(fin,yon_size_get_letter_from_int(sizenumber)));
gtk_widget_show(window->StatisticsFrame);
}
}
dictionary *dict = NULL;
yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets);
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);

@ -39,6 +39,7 @@
#define config_path yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL)
#define journals_list_path "/usr/share/ubl-settings-logging/csv/journals_list.csv"
#define services_list_path "/usr/share/ubl-settings-logging/csv/logging_services.csv"
#define logrotate_config_command "ls /etc/logrotate.d/ |sed -e 's/ */\\n/g'"
#define journald_size_command "journalctl --disk-usage | grep -oE \"[0-9]{1,}.[0-9]{1,}[A-Z]\""
#define logrotate_size_command(paths) yon_char_unite("du ",paths," |grep -oE '^[0-9]{1,}'",NULL)
@ -51,14 +52,14 @@
#define JOURNALD(key) yon_char_unite("JOURNALD[",key,"]",NULL)
#define LOGROTATE(key) yon_char_unite("LOGROTATE[",key,"]",NULL)
#define get_journal_output_command "clear;SYSTEMD_COLORS=false journalctl --no-pager"
#define get_journal_output_since_boot_command "clear;SYSTEMD_COLORS=false journalctl --no-pager -b"
#define get_journal_output_followed_command "clear;SYSTEMD_COLORS=false journalctl --no-pager -f"
#define get_journal_output_kernel_command "clear;SYSTEMD_COLORS=false journalctl --no-pager -k"
#define get_journal_output_prioritied_command "clear;SYSTEMD_COLORS=false journalctl --no-pager -p err..alert"
#define get_journal_all_boots_command "clear;SYSTEMD_COLORS=false journalctl --no-pager --list-boots"
#define get_journal_all_units_command "clear;SYSTEMD_COLORS=false systemd-analyze blame --no-pager"
#define get_journal_init_tree_command "clear;SYSTEMD_COLORS=false systemd-analyze critical-chain --no-pager"
#define get_journal_output_command "clear;journalctl --no-pager"
#define get_journal_output_since_boot_command "clear;journalctl --no-pager -b"
#define get_journal_output_followed_command "clear;journalctl --no-pager -f"
#define get_journal_output_kernel_command "clear;journalctl --no-pager -k"
#define get_journal_output_prioritied_command "clear;journalctl --no-pager -p err..alert"
#define get_journal_all_boots_command "clear;journalctl --no-pager --list-boots"
#define get_journal_all_units_command "clear;systemd-analyze blame --no-pager"
#define get_journal_init_tree_command "clear;systemd-analyze critical-chain --no-pager"
#define group_list_path "/etc/group"

@ -72,6 +72,7 @@
#define XSESSION_DESCRIPTION_LABEL _("Graphics X session log")
//ubl-settings-logging-inspector.glade
#define INSPECTOR_TITLE_LABEL _("Logs and events - log inspector")
#define TOOLTIP_BOOT_LABEL _("Show messages since the current system boot")
#define TOOLTIP_FOLLOW_LABEL _("Follow for new messages")
#define TOOLTIP_KERNEL_LABEL _("Show kernel ring buffer")
@ -86,6 +87,7 @@
#define LOG_LABEL _("Log")
//ubl-settings-logging-journald.glade
#define JOURNALD_TITLE_LABEL _("Logs and events - journald configuration")
#define JOURNAL_DESCRIPTION_LABEL _("Description:")
#define JOURNAL_STORAGE_LABEL _("Journal storage place:")
#define COMPRESSION_LABEL _("Use compression:")
@ -123,6 +125,7 @@
#define RESET_LABEL _("Reset")
//ubl-settings-logging-logrotate.glade
#define LOGROTATE_TITLE_LABEL _("Logs and events - logrotate configuration")
#define LOGROTATE_LOG_JOURNAL_TAB_LABEL _("Log/Journal:")
#define PATHS_LABEL _("Paths to log and journals files")
#define ON_LABEL _("On")
@ -200,16 +203,20 @@
#define WRITE_IMPORTANT_LABEL _("Write down all important fields")
//ubl-settings-logging-logrotate-table.glade
#define TABLE_TITLE_LABEL _("Logs and events - logrotate table")
#define SYSTEM_CONFIGURATION_LABEL _("System configuration")
#define APPLITATIONS_CONFIGURATION_LABEL _("Applications configuration")
//ubl-settings-logging-add.glade
#define MONITOR_TITLE_LABEL _("Logs and events - journal configuration")
#define ADD_PATHS_LABEL _("Path (-s):")
#define CONTROL_LABEL _("Control:")
#define LOG_FILE_LABEL _("Log file")
#define NAME_LABEL _("Name:")
#define TOTAL_LOG_SIZE_LABEL _("Log size:")
//ubl-settings-logging-rules.glade
#define RULES_TITLE_LABEL _("Logs and events - rules")
#define OWNER_LABEL _("Owner rules")
#define GROUP_LABEL _("Group rules")
#define PUBLIC_LABEL _("Public rules")
@ -222,4 +229,7 @@
#define PATH_NOT_FOUND_LABEL _(": no such file(s)")
#define PARAMETER_LABEL _("Parameter")
#define OLD_VALUE_LABEL _("Old value")
#define NEW_VALUE_LABEL _("New value")
#define NEW_VALUE_LABEL _("New value")
#define FILECHOOSER_TITLE_LABEL _("Logs and events - choose a path")
#define SAVE_TITLE_LABEL _("Logs and events - saving")

@ -877,6 +877,41 @@ config_str yon_dir_get_contents(char *dir_path, int *size){
return dir;
}
config_str yon_dir_get_by_mask(char *path, char *mask, int *size){
(*size)=0;
if (yon_char_find_count(mask,"*")<=1){
char *lpart;
char *rpart=yon_char_new(mask);
lpart = yon_char_divide_search(rpart,"*",-1);
config_str files = NULL;
int found_size;
config_str found_files = yon_dir_get_contents(path,&found_size);
int found = 1;
int rfound = 0;
for (int i=0;i<found_size;i++){
found = 1;
int c;
for (c=0;c<strlen(found_files[i]);c++){
if (found_files[i][c]!=lpart[c]){
found=0;
break;
}
if (c==strlen(lpart)-1) break;
}
if (found){
for (int l=c;l<strlen(found_files[i]);l++){
if (found_files[i][l]==rpart[rfound]) rfound++;
else rfound=0;
}
if (rfound==strlen(rpart)) {
yon_char_parsed_add_or_create_if_exists(files,size,found_files[i]);
}
}
}
return files;
}
}
//config functions
typedef struct yon_config_parameter
@ -1659,7 +1694,7 @@ void yon_terminal_integrated_start(GtkWidget *terminal, char* command, void *end
}
}
void yon_on_window_config_custom_window_destroy(GtkWindow *window, char *window_name){
void yon_on_window_config_custom_window_destroy(GtkWindow *window,GdkEvent* event, char *window_name){
if (!gtk_window_is_maximized(window)){
int height=0;
int width=0;
@ -1701,9 +1736,9 @@ void yon_terminal_integrated_start(GtkWidget *terminal, char* command, void *end
gtk_window_resize(window,width,height);
if (X&&Y)
gtk_window_move(window,X,Y);
char *signals_window_name = yon_char_new(window_name);
g_signal_connect(G_OBJECT(window),"check-resize",G_CALLBACK(yon_on_window_config_custom_window_resize),signals_window_name);
g_signal_connect(G_OBJECT(window),"delete-event",G_CALLBACK(yon_on_window_config_custom_window_destroy),signals_window_name);
// char *signals_window_name = yon_char_new(window_name);
g_signal_connect(G_OBJECT(window),"check-resize",G_CALLBACK(yon_on_window_config_custom_window_resize),window_name);
g_signal_connect(G_OBJECT(window),"delete-event",G_CALLBACK(yon_on_window_config_custom_window_destroy),window_name);
}
void yon_window_config_custom_window_get(GtkWindow *window, char *window_name){

@ -581,6 +581,8 @@ int yon_file_create_full_path(char *path, int rules);
*/
config_str yon_dir_get_contents(char *dir_path, int *size);
config_str yon_dir_get_by_mask(char *path, char *mask, int *size);
//config functions
#define ubconfig_save_command "ubconfig"

@ -3,13 +3,6 @@
<interface domain="ubl-settings-logging">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-logging.css -->
<object class="GtkSizeGroup">
<widgets>
<widget name="label1"/>
<widget name="label2"/>
<widget name="label3"/>
</widgets>
</object>
<object class="GtkAdjustment" id="adjustment1">
<property name="upper">1024</property>
<property name="step-increment">1</property>
@ -35,6 +28,26 @@
<property name="can-focus">False</property>
<property name="icon-name">emblem-ok-symbolic</property>
</object>
<object class="GtkImage" id="image5">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-logging.sort-symbolic</property>
</object>
<object class="GtkImage" id="image6">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-logging.sort-symbolic</property>
</object>
<object class="GtkImage" id="image7">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-logging.sort-symbolic</property>
</object>
<object class="GtkImage" id="image8">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-logging.sort-symbolic</property>
</object>
<object class="GtkDialog" id="MainWindow">
<property name="width-request">450</property>
<property name="can-focus">False</property>
@ -466,7 +479,7 @@
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-bottom">2</property>
<property name="label" translatable="yes">Logs and events</property>
<property name="label" translatable="yes">Logs and events - journal configuration</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
@ -492,24 +505,11 @@
</object>
</child>
</object>
<object class="GtkImage" id="image5">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-logging.sort-symbolic</property>
</object>
<object class="GtkImage" id="image6">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-logging.sort-symbolic</property>
</object>
<object class="GtkImage" id="image7">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-logging.sort-symbolic</property>
</object>
<object class="GtkImage" id="image8">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-logging.sort-symbolic</property>
<object class="GtkSizeGroup">
<widgets>
<widget name="label1"/>
<widget name="label2"/>
<widget name="label3"/>
</widgets>
</object>
</interface>

@ -373,7 +373,7 @@
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-bottom">2</property>
<property name="label" translatable="yes">Logs and events</property>
<property name="label" translatable="yes">Logs and events - log inspector</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>

@ -90,6 +90,8 @@
<property name="can-focus">False</property>
<property name="modal">True</property>
<property name="icon-name">com.ublinux.ubl-settings-logging</property>
<property name="skip-taskbar-hint">True</property>
<property name="skip-pager-hint">True</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
@ -1035,7 +1037,7 @@
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-bottom">2</property>
<property name="label" translatable="yes">Logs and events</property>
<property name="label" translatable="yes">Logs and events - journald configuration</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>

@ -171,6 +171,9 @@
<object class="GtkTreeView" id="MainTree">
<property name="visible">True</property>
<property name="can-focus">True</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Log/Journal</property>
@ -275,6 +278,9 @@
<object class="GtkTreeView" id="AppsMainTree">
<property name="visible">True</property>
<property name="can-focus">True</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Log/Journal</property>
@ -394,7 +400,7 @@
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-bottom">2</property>
<property name="label" translatable="yes">Logs and events</property>
<property name="label" translatable="yes">Logs and events - logrotate table</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>

@ -104,6 +104,8 @@
<property name="can-focus">False</property>
<property name="modal">True</property>
<property name="icon-name">com.ublinux.ubl-settings-logging</property>
<property name="skip-taskbar-hint">True</property>
<property name="skip-pager-hint">True</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
@ -2135,7 +2137,7 @@
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-bottom">2</property>
<property name="label" translatable="yes">Logs and events</property>
<property name="label" translatable="yes">Logs and events- logrotate configuration</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>

@ -367,7 +367,7 @@
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-bottom">2</property>
<property name="label" translatable="yes">Logs and events</property>
<property name="label" translatable="yes">Logs and events - rules</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>

@ -306,543 +306,579 @@ msgid "Graphics X session log"
msgstr ""
#: source/ubl-strings.h:75
msgid "Show messages since the current system boot"
msgid "Logs and events - log inspector"
msgstr ""
#: source/ubl-strings.h:76
msgid "Follow for new messages"
msgid "Show messages since the current system boot"
msgstr ""
#: source/ubl-strings.h:77
msgid "Show kernel ring buffer"
msgid "Follow for new messages"
msgstr ""
#: source/ubl-strings.h:78
msgid "Show only priority error messages, critical messages and warnings"
msgid "Show kernel ring buffer"
msgstr ""
#: source/ubl-strings.h:79
msgid "Show all boots"
msgid "Show only priority error messages, critical messages and warnings"
msgstr ""
#: source/ubl-strings.h:80
msgid "Show a list of all units, ordered by the time of their initialisation"
msgid "Show all boots"
msgstr ""
#: source/ubl-strings.h:81
msgid "Show tree of time-critical initialization unit chain"
msgid "Show a list of all units, ordered by the time of their initialisation"
msgstr ""
#: source/ubl-strings.h:82
msgid "Update"
msgid "Show tree of time-critical initialization unit chain"
msgstr ""
#: source/ubl-strings.h:83
msgid "Date"
msgid "Update"
msgstr ""
#: source/ubl-strings.h:84
msgid "Hostname"
msgid "Date"
msgstr ""
#: source/ubl-strings.h:85
msgid "Process"
msgid "Hostname"
msgstr ""
#: source/ubl-strings.h:86
msgid "Process"
msgstr ""
#: source/ubl-strings.h:87
msgid "Log"
msgstr ""
#: source/ubl-strings.h:89
#: source/ubl-strings.h:90
msgid "Logs and events - journald configuration"
msgstr ""
#: source/ubl-strings.h:91
msgid "Description:"
msgstr ""
#: source/ubl-strings.h:90
#: source/ubl-strings.h:92
msgid "Journal storage place:"
msgstr ""
#: source/ubl-strings.h:91 source/ubl-strings.h:92
#: source/ubl-strings.h:93 source/ubl-strings.h:94
msgid "Use compression:"
msgstr ""
#: source/ubl-strings.h:93
#: source/ubl-strings.h:95
msgid "Split journal files:"
msgstr ""
#: source/ubl-strings.h:94
#: source/ubl-strings.h:96
msgid "Log recording journal interval:"
msgstr ""
#: source/ubl-strings.h:95
#: source/ubl-strings.h:97
msgid "Records amount:"
msgstr ""
#: source/ubl-strings.h:96
#: source/ubl-strings.h:98
msgid "Maximum size of all logs:"
msgstr ""
#: source/ubl-strings.h:97
#: source/ubl-strings.h:99
msgid "Maximum size of rotation journal:"
msgstr ""
#: source/ubl-strings.h:98
#: source/ubl-strings.h:100
msgid "Leave free space at storage:"
msgstr ""
#: source/ubl-strings.h:99
#: source/ubl-strings.h:101
msgid "Redirect to console:"
msgstr ""
#: source/ubl-strings.h:100
#: source/ubl-strings.h:102
msgid "TTY:"
msgstr ""
#: source/ubl-strings.h:101
#: source/ubl-strings.h:103
msgid "Type of forwarded messages:"
msgstr ""
#: source/ubl-strings.h:102
#: source/ubl-strings.h:104
msgid "Journal configuration"
msgstr ""
#: source/ubl-strings.h:103
#: source/ubl-strings.h:105
msgid "Total log size:"
msgstr ""
#: source/ubl-strings.h:104
#: source/ubl-strings.h:106
msgid "Lower size to:"
msgstr ""
#: source/ubl-strings.h:105
#: source/ubl-strings.h:107
msgid "Apply"
msgstr ""
#: source/ubl-strings.h:106
#: source/ubl-strings.h:108
msgid "Statistics"
msgstr ""
#: source/ubl-strings.h:107
#: source/ubl-strings.h:109
msgid "Default"
msgstr ""
#: source/ubl-strings.h:108
#: source/ubl-strings.h:110
msgid "RAM"
msgstr ""
#: source/ubl-strings.h:109
#: source/ubl-strings.h:111
msgid "Drive"
msgstr ""
#: source/ubl-strings.h:110
#: source/ubl-strings.h:112
msgid "Auto"
msgstr ""
#: source/ubl-strings.h:111
#: source/ubl-strings.h:113
msgid "None"
msgstr ""
#: source/ubl-strings.h:112
#: source/ubl-strings.h:114
msgid "Yes"
msgstr ""
#: source/ubl-strings.h:113
#: source/ubl-strings.h:115
msgid "No"
msgstr ""
#: source/ubl-strings.h:114
#: source/ubl-strings.h:116
msgid "After"
msgstr ""
#: source/ubl-strings.h:115
#: source/ubl-strings.h:117
msgid "Kb"
msgstr ""
#: source/ubl-strings.h:116
#: source/ubl-strings.h:118
msgid "Mb"
msgstr ""
#: source/ubl-strings.h:117
#: source/ubl-strings.h:119
msgid "Gb"
msgstr ""
#: source/ubl-strings.h:118
#: source/ubl-strings.h:120
msgid "Minutes"
msgstr ""
#: source/ubl-strings.h:119
#: source/ubl-strings.h:121
msgid "Hours"
msgstr ""
#: source/ubl-strings.h:120
#: source/ubl-strings.h:122
msgid "Days"
msgstr ""
#: source/ubl-strings.h:121
#: source/ubl-strings.h:123
msgid "Weeks"
msgstr ""
#: source/ubl-strings.h:122
#: source/ubl-strings.h:124
msgid "Years"
msgstr ""
#: source/ubl-strings.h:123
#: source/ubl-strings.h:125
msgid "Reset"
msgstr ""
#: source/ubl-strings.h:126
#: source/ubl-strings.h:128
msgid "Logs and events - logrotate configuration"
msgstr ""
#: source/ubl-strings.h:129
msgid "Log/Journal:"
msgstr ""
#: source/ubl-strings.h:127
#: source/ubl-strings.h:130
msgid "Paths to log and journals files"
msgstr ""
#: source/ubl-strings.h:128
#: source/ubl-strings.h:131
msgid "On"
msgstr ""
#: source/ubl-strings.h:129
#: source/ubl-strings.h:132
msgid "Off"
msgstr ""
#: source/ubl-strings.h:130 source/ubl-strings.h:184
#: source/ubl-strings.h:133 source/ubl-strings.h:187
msgid "Scenarios"
msgstr ""
#: source/ubl-strings.h:131 source/ubl-strings.h:183
#: source/ubl-strings.h:134 source/ubl-strings.h:186
msgid "Scenarios are running for each rotated journal"
msgstr ""
#: source/ubl-strings.h:132
#: source/ubl-strings.h:135
msgid "Command before rotation (one time):"
msgstr ""
#: source/ubl-strings.h:133
#: source/ubl-strings.h:136
msgid "Command after rotation (one time):"
msgstr ""
#: source/ubl-strings.h:134
#: source/ubl-strings.h:137
msgid "Command before rotation:"
msgstr ""
#: source/ubl-strings.h:135
#: source/ubl-strings.h:138
msgid "Command after rotation:"
msgstr ""
#: source/ubl-strings.h:136
#: source/ubl-strings.h:139
msgid "Rotation period:"
msgstr ""
#: source/ubl-strings.h:137
#: source/ubl-strings.h:140
msgid "Maximum size of file:"
msgstr ""
#: source/ubl-strings.h:138
#: source/ubl-strings.h:141
msgid "Checking frequency configuration"
msgstr ""
#: source/ubl-strings.h:139
#: source/ubl-strings.h:142
msgid "File amount:"
msgstr ""
#: source/ubl-strings.h:140
#: source/ubl-strings.h:143
msgid "Store at:"
msgstr ""
#: source/ubl-strings.h:141
#: source/ubl-strings.h:144
msgid "Rotation as user:"
msgstr ""
#: source/ubl-strings.h:142
#: source/ubl-strings.h:145
msgid "Rotation as group:"
msgstr ""
#: source/ubl-strings.h:143
#: source/ubl-strings.h:146
msgid "Rotation configuration"
msgstr ""
#: source/ubl-strings.h:144
#: source/ubl-strings.h:147
msgid "Error processing:"
msgstr ""
#: source/ubl-strings.h:145
#: source/ubl-strings.h:148
msgid "Rotation of jurnal even when it is empty:"
msgstr ""
#: source/ubl-strings.h:146
#: source/ubl-strings.h:149
msgid "Do not rotate journal younger than"
msgstr ""
#: source/ubl-strings.h:147
#: source/ubl-strings.h:150
msgid "days"
msgstr ""
#: source/ubl-strings.h:148
#: source/ubl-strings.h:151
msgid "Delete rotated journals older than"
msgstr ""
#: source/ubl-strings.h:149
#: source/ubl-strings.h:152
msgid "Rotate journals if size more than"
msgstr ""
#: source/ubl-strings.h:150
#: source/ubl-strings.h:153
msgid "but not earlier than the specified time interval"
msgstr ""
#: source/ubl-strings.h:151
#: source/ubl-strings.h:154
msgid "before specified time interval"
msgstr ""
#: source/ubl-strings.h:152
#: source/ubl-strings.h:155
msgid "File choosing configuration"
msgstr ""
#: source/ubl-strings.h:153
#: source/ubl-strings.h:156
msgid "Create log"
msgstr ""
#: source/ubl-strings.h:154
#: source/ubl-strings.h:157
msgid "as user:"
msgstr ""
#: source/ubl-strings.h:155
#: source/ubl-strings.h:158
msgid "as group:"
msgstr ""
#: source/ubl-strings.h:156
#: source/ubl-strings.h:159
msgid "rules:"
msgstr ""
#: source/ubl-strings.h:157
#: source/ubl-strings.h:160
msgid ""
"Cut source journal fileafter copy creating instead of moving old journal "
"file and creating new one"
msgstr ""
#: source/ubl-strings.h:158
#: source/ubl-strings.h:161
msgid "Files and directories configuration"
msgstr ""
#: source/ubl-strings.h:159
#: source/ubl-strings.h:162
msgid "Delay compression by one journal in queue:"
msgstr ""
#: source/ubl-strings.h:160
#: source/ubl-strings.h:163
msgid "Compression configuration"
msgstr ""
#: source/ubl-strings.h:161
#: source/ubl-strings.h:164
msgid "Save original log file after rotation if it has specified extension:"
msgstr ""
#: source/ubl-strings.h:162
#: source/ubl-strings.h:165
msgid "Add date of rotation before log header"
msgstr ""
#: source/ubl-strings.h:163
#: source/ubl-strings.h:166
msgid "Number from which numbering of old logs will begin"
msgstr ""
#: source/ubl-strings.h:164
#: source/ubl-strings.h:167
msgid "Filename configuration"
msgstr ""
#: source/ubl-strings.h:165
#: source/ubl-strings.h:168
msgid "Email after rotation:"
msgstr ""
#: source/ubl-strings.h:166
#: source/ubl-strings.h:169
msgid "adress:"
msgstr ""
#: source/ubl-strings.h:167
#: source/ubl-strings.h:170
msgid "contents:"
msgstr ""
#: source/ubl-strings.h:168 source/ubl-strings.h:181
#: source/ubl-strings.h:171 source/ubl-strings.h:184
msgid "Message configuration"
msgstr ""
#: source/ubl-strings.h:169
#: source/ubl-strings.h:172
msgid "Manual input:"
msgstr ""
#: source/ubl-strings.h:170
#: source/ubl-strings.h:173
msgid "Log (-s) size:"
msgstr ""
#: source/ubl-strings.h:171
#: source/ubl-strings.h:174
msgid "Same directory"
msgstr ""
#: source/ubl-strings.h:172
#: source/ubl-strings.h:175
msgid "Separate directory"
msgstr ""
#: source/ubl-strings.h:173
#: source/ubl-strings.h:176
msgid "Output errors if log file does not exist*"
msgstr ""
#: source/ubl-strings.h:174
#: source/ubl-strings.h:177
msgid "Do not output errors if log file does not exist"
msgstr ""
#: source/ubl-strings.h:175
#: source/ubl-strings.h:178
msgid "Do not output"
msgstr ""
#: source/ubl-strings.h:176
#: source/ubl-strings.h:179
msgid "Output errors"
msgstr ""
#: source/ubl-strings.h:177
#: source/ubl-strings.h:180
msgid "Send Email"
msgstr ""
#: source/ubl-strings.h:178
#: source/ubl-strings.h:181
msgid "Don't send Email"
msgstr ""
#: source/ubl-strings.h:179
#: source/ubl-strings.h:182
msgid "First rotated copy"
msgstr ""
#: source/ubl-strings.h:180
#: source/ubl-strings.h:183
msgid "Last rotated copy"
msgstr ""
#: source/ubl-strings.h:182
#: source/ubl-strings.h:185
msgid "Endwork command:"
msgstr ""
#: source/ubl-strings.h:185
#: source/ubl-strings.h:188
msgid "Hourly"
msgstr ""
#: source/ubl-strings.h:186
#: source/ubl-strings.h:189
msgid "Daily"
msgstr ""
#: source/ubl-strings.h:187
#: source/ubl-strings.h:190
msgid "Weekly*"
msgstr ""
#: source/ubl-strings.h:188
#: source/ubl-strings.h:191
msgid "Monthly"
msgstr ""
#: source/ubl-strings.h:189
#: source/ubl-strings.h:192
msgid "Yearly"
msgstr ""
#: source/ubl-strings.h:190
#: source/ubl-strings.h:193
msgid "Monday"
msgstr ""
#: source/ubl-strings.h:191
#: source/ubl-strings.h:194
msgid "Tuesday"
msgstr ""
#: source/ubl-strings.h:192
#: source/ubl-strings.h:195
msgid "Wednesday"
msgstr ""
#: source/ubl-strings.h:193
#: source/ubl-strings.h:196
msgid "Thursday"
msgstr ""
#: source/ubl-strings.h:194
#: source/ubl-strings.h:197
msgid "Friday"
msgstr ""
#: source/ubl-strings.h:195
#: source/ubl-strings.h:198
msgid "Saturday"
msgstr ""
#: source/ubl-strings.h:196
#: source/ubl-strings.h:199
msgid "Sunday*"
msgstr ""
#: source/ubl-strings.h:197
#: source/ubl-strings.h:200
msgid "Same record already exists"
msgstr ""
#: source/ubl-strings.h:198
#: source/ubl-strings.h:201
msgid "Empty important field"
msgstr ""
#: source/ubl-strings.h:199
#: source/ubl-strings.h:202
msgid "Repeating paths"
msgstr ""
#: source/ubl-strings.h:200
#: source/ubl-strings.h:203
msgid "Write down all important fields"
msgstr ""
#: source/ubl-strings.h:203
#: source/ubl-strings.h:206
msgid "Logs and events - logrotate table"
msgstr ""
#: source/ubl-strings.h:207
msgid "System configuration"
msgstr ""
#: source/ubl-strings.h:204
#: source/ubl-strings.h:208
msgid "Applications configuration"
msgstr ""
#: source/ubl-strings.h:207
#: source/ubl-strings.h:211
msgid "Logs and events - journal configuration"
msgstr ""
#: source/ubl-strings.h:212
msgid "Path (-s):"
msgstr ""
#: source/ubl-strings.h:208
#: source/ubl-strings.h:213
msgid "Control:"
msgstr ""
#: source/ubl-strings.h:209
#: source/ubl-strings.h:214
msgid "Log file"
msgstr ""
#: source/ubl-strings.h:210
#: source/ubl-strings.h:215
msgid "Name:"
msgstr ""
#: source/ubl-strings.h:213
#: source/ubl-strings.h:216
msgid "Log size:"
msgstr ""
#: source/ubl-strings.h:219
msgid "Logs and events - rules"
msgstr ""
#: source/ubl-strings.h:220
msgid "Owner rules"
msgstr ""
#: source/ubl-strings.h:214
#: source/ubl-strings.h:221
msgid "Group rules"
msgstr ""
#: source/ubl-strings.h:215
#: source/ubl-strings.h:222
msgid "Public rules"
msgstr ""
#: source/ubl-strings.h:216
#: source/ubl-strings.h:223
msgid "Read"
msgstr ""
#: source/ubl-strings.h:217
#: source/ubl-strings.h:224
msgid "Write"
msgstr ""
#: source/ubl-strings.h:218
#: source/ubl-strings.h:225
msgid "Execute"
msgstr ""
#: source/ubl-strings.h:219
#: source/ubl-strings.h:226
msgid "Value:"
msgstr ""
#: source/ubl-strings.h:222
#: source/ubl-strings.h:229
msgid ": no such file(s)"
msgstr ""
#: source/ubl-strings.h:223
#: source/ubl-strings.h:230
msgid "Parameter"
msgstr ""
#: source/ubl-strings.h:224
#: source/ubl-strings.h:231
msgid "Old value"
msgstr ""
#: source/ubl-strings.h:225
#: source/ubl-strings.h:232
msgid "New value"
msgstr ""
#: source/ubl-strings.h:234
msgid "Logs and events - choose a path"
msgstr ""
#: source/ubl-strings.h:235
msgid "Logs and events - saving"
msgstr ""

@ -310,320 +310,335 @@ msgid "Graphics X session log"
msgstr "Журнал сеансов графической системы X"
#: source/ubl-strings.h:75
#, fuzzy
msgid "Logs and events - log inspector"
msgstr "Логи и журналы событий - просмотр журнала"
#: source/ubl-strings.h:76
msgid "Show messages since the current system boot"
msgstr "Показать сообщения с момента загрузки системы"
#: source/ubl-strings.h:76
#: source/ubl-strings.h:77
msgid "Follow for new messages"
msgstr "Следить за появлением новых сообщений"
#: source/ubl-strings.h:77
#: source/ubl-strings.h:78
msgid "Show kernel ring buffer"
msgstr "Показать кольцевой буфер ядра"
#: source/ubl-strings.h:78
#: source/ubl-strings.h:79
msgid "Show only priority error messages, critical messages and warnings"
msgstr ""
"Показать только приоритетные сообщения об ошибках, критических сообщениях и "
"предупреждениях"
#: source/ubl-strings.h:79
#: source/ubl-strings.h:80
msgid "Show all boots"
msgstr "Показать все загрузки в журнале"
#: source/ubl-strings.h:80
#: source/ubl-strings.h:81
msgid "Show a list of all units, ordered by the time of their initialisation"
msgstr ""
"Показать список всех работающих юнитов, упорядоченных по времени их "
"инициализации"
#: source/ubl-strings.h:81
#: source/ubl-strings.h:82
msgid "Show tree of time-critical initialization unit chain"
msgstr "Показать дерево критической по времени цепочки юнитов инициализации"
#: source/ubl-strings.h:82
#: source/ubl-strings.h:83
msgid "Update"
msgstr "Обновить"
#: source/ubl-strings.h:83
#: source/ubl-strings.h:84
msgid "Date"
msgstr "Дата"
#: source/ubl-strings.h:84
#: source/ubl-strings.h:85
msgid "Hostname"
msgstr "Имя хоста"
#: source/ubl-strings.h:85
#: source/ubl-strings.h:86
msgid "Process"
msgstr "Процесс"
#: source/ubl-strings.h:86
#: source/ubl-strings.h:87
msgid "Log"
msgstr "Запись лога"
#: source/ubl-strings.h:89
#: source/ubl-strings.h:90
#, fuzzy
msgid "Logs and events - journald configuration"
msgstr "Логи и журналы событий - конфигурация сервиса journald"
#: source/ubl-strings.h:91
msgid "Description:"
msgstr "Описание:"
#: source/ubl-strings.h:90
#: source/ubl-strings.h:92
msgid "Journal storage place:"
msgstr "Место хранения журнала:"
#: source/ubl-strings.h:91 source/ubl-strings.h:92
#: source/ubl-strings.h:93 source/ubl-strings.h:94
msgid "Use compression:"
msgstr "Использовать сжатие:"
#: source/ubl-strings.h:93
#: source/ubl-strings.h:95
msgid "Split journal files:"
msgstr "Разделять файлы журнала:"
#: source/ubl-strings.h:94
#: source/ubl-strings.h:96
msgid "Log recording journal interval:"
msgstr "Интервал записи журнала:"
#: source/ubl-strings.h:95
#: source/ubl-strings.h:97
msgid "Records amount:"
msgstr "Количество записей:"
#: source/ubl-strings.h:96
#: source/ubl-strings.h:98
msgid "Maximum size of all logs:"
msgstr "Максимальный размер всех журналов:"
#: source/ubl-strings.h:97
#: source/ubl-strings.h:99
msgid "Maximum size of rotation journal:"
msgstr "Максимальный размер журнала для ротации:"
#: source/ubl-strings.h:98
#: source/ubl-strings.h:100
msgid "Leave free space at storage:"
msgstr "Оставлять в хранилище свободным:"
#: source/ubl-strings.h:99
#: source/ubl-strings.h:101
msgid "Redirect to console:"
msgstr "Перенаправление в консоль:"
#: source/ubl-strings.h:100
#: source/ubl-strings.h:102
msgid "TTY:"
msgstr "TTY:"
#: source/ubl-strings.h:101
#: source/ubl-strings.h:103
msgid "Type of forwarded messages:"
msgstr "Тип перенаправляемых сообщений:"
#: source/ubl-strings.h:102
#: source/ubl-strings.h:104
msgid "Journal configuration"
msgstr "Настройка файла журнала"
#: source/ubl-strings.h:103
#: source/ubl-strings.h:105
msgid "Total log size:"
msgstr "Общий размер журналов:"
#: source/ubl-strings.h:104
#: source/ubl-strings.h:106
msgid "Lower size to:"
msgstr "Уменьшить размер до:"
#: source/ubl-strings.h:105
#: source/ubl-strings.h:107
msgid "Apply"
msgstr "Применить"
#: source/ubl-strings.h:106
#: source/ubl-strings.h:108
msgid "Statistics"
msgstr "Статистика"
#: source/ubl-strings.h:107
#: source/ubl-strings.h:109
msgid "Default"
msgstr "По умолчанию"
#: source/ubl-strings.h:108
#: source/ubl-strings.h:110
msgid "RAM"
msgstr "Оперативная память"
#: source/ubl-strings.h:109
#: source/ubl-strings.h:111
msgid "Drive"
msgstr "Диск"
#: source/ubl-strings.h:110
#: source/ubl-strings.h:112
#, fuzzy
msgid "Auto"
msgstr "Автоматически"
#: source/ubl-strings.h:111
#: source/ubl-strings.h:113
msgid "None"
msgstr "Нет"
#: source/ubl-strings.h:112
#: source/ubl-strings.h:114
msgid "Yes"
msgstr "Да"
#: source/ubl-strings.h:113
#: source/ubl-strings.h:115
msgid "No"
msgstr "Нет"
#: source/ubl-strings.h:114
#: source/ubl-strings.h:116
msgid "After"
msgstr "После"
#: source/ubl-strings.h:115
#: source/ubl-strings.h:117
msgid "Kb"
msgstr "Кб"
#: source/ubl-strings.h:116
#: source/ubl-strings.h:118
msgid "Mb"
msgstr "Мб"
#: source/ubl-strings.h:117
#: source/ubl-strings.h:119
msgid "Gb"
msgstr "Гб"
#: source/ubl-strings.h:118
#: source/ubl-strings.h:120
msgid "Minutes"
msgstr "Минут"
#: source/ubl-strings.h:119
#: source/ubl-strings.h:121
msgid "Hours"
msgstr "Часов"
#: source/ubl-strings.h:120
#: source/ubl-strings.h:122
msgid "Days"
msgstr "Дней"
#: source/ubl-strings.h:121
#: source/ubl-strings.h:123
#, fuzzy
msgid "Weeks"
msgstr "Недель"
#: source/ubl-strings.h:122
#: source/ubl-strings.h:124
msgid "Years"
msgstr "Лет"
#: source/ubl-strings.h:123
#: source/ubl-strings.h:125
msgid "Reset"
msgstr "По умлочанию"
msgstr "По умолчанию"
#: source/ubl-strings.h:128
#, fuzzy
msgid "Logs and events - logrotate configuration"
msgstr "Логи и журналы событий - конфигурация сервиса logrotate"
#: source/ubl-strings.h:126
#: source/ubl-strings.h:129
msgid "Log/Journal:"
msgstr "Лог/Журнал:"
#: source/ubl-strings.h:127
#: source/ubl-strings.h:130
msgid "Paths to log and journals files"
msgstr "Пути к файлам лога/журнала"
#: source/ubl-strings.h:128
#: source/ubl-strings.h:131
msgid "On"
msgstr "Включено"
#: source/ubl-strings.h:129
#: source/ubl-strings.h:132
msgid "Off"
msgstr "Выключено"
#: source/ubl-strings.h:130 source/ubl-strings.h:184
#: source/ubl-strings.h:133 source/ubl-strings.h:187
msgid "Scenarios"
msgstr "Сценарии"
#: source/ubl-strings.h:131 source/ubl-strings.h:183
#: source/ubl-strings.h:134 source/ubl-strings.h:186
msgid "Scenarios are running for each rotated journal"
msgstr "Сценарии запускаются для каждого ротируемого журнала"
#: source/ubl-strings.h:132
#: source/ubl-strings.h:135
msgid "Command before rotation (one time):"
msgstr "Команда перед ротацией (один раз):"
#: source/ubl-strings.h:133
#: source/ubl-strings.h:136
msgid "Command after rotation (one time):"
msgstr "Команда после ротации (один раз):"
#: source/ubl-strings.h:134
#: source/ubl-strings.h:137
msgid "Command before rotation:"
msgstr "Команда перед ротацией:"
#: source/ubl-strings.h:135
#: source/ubl-strings.h:138
msgid "Command after rotation:"
msgstr "Команда после ротации:"
#: source/ubl-strings.h:136
#: source/ubl-strings.h:139
msgid "Rotation period:"
msgstr "Период ротации:"
#: source/ubl-strings.h:137
#: source/ubl-strings.h:140
msgid "Maximum size of file:"
msgstr "Максимальный размер файла:"
#: source/ubl-strings.h:138
#: source/ubl-strings.h:141
msgid "Checking frequency configuration"
msgstr "Настройки частоты проверки"
#: source/ubl-strings.h:139
#: source/ubl-strings.h:142
msgid "File amount:"
msgstr "Количество файлов:"
#: source/ubl-strings.h:140
#: source/ubl-strings.h:143
msgid "Store at:"
msgstr "Хранить в:"
#: source/ubl-strings.h:141
#: source/ubl-strings.h:144
msgid "Rotation as user:"
msgstr "Ротация от пользователя:"
#: source/ubl-strings.h:142
#: source/ubl-strings.h:145
msgid "Rotation as group:"
msgstr "Ротация от группы:"
#: source/ubl-strings.h:143
#: source/ubl-strings.h:146
msgid "Rotation configuration"
msgstr "Настройки ротации"
#: source/ubl-strings.h:144
#: source/ubl-strings.h:147
msgid "Error processing:"
msgstr "Обработка ошибок:"
#: source/ubl-strings.h:145
#: source/ubl-strings.h:148
msgid "Rotation of jurnal even when it is empty:"
msgstr "Ротация файла журнала даже если он пуст:"
#: source/ubl-strings.h:146
#: source/ubl-strings.h:149
msgid "Do not rotate journal younger than"
msgstr "Не ротировать журналы, возраст которых меньше"
#: source/ubl-strings.h:147
#: source/ubl-strings.h:150
msgid "days"
msgstr "дней"
#: source/ubl-strings.h:148
#: source/ubl-strings.h:151
msgid "Delete rotated journals older than"
msgstr "Удалить ротированные журналы старше"
#: source/ubl-strings.h:149
#: source/ubl-strings.h:152
msgid "Rotate journals if size more than"
msgstr "Ротация журналов, если размер превышает"
#: source/ubl-strings.h:150
#: source/ubl-strings.h:153
msgid "but not earlier than the specified time interval"
msgstr "но не раньше указанного интервала времени"
#: source/ubl-strings.h:151
#: source/ubl-strings.h:154
msgid "before specified time interval"
msgstr "до истечения указанного интервала времени"
#: source/ubl-strings.h:152
#: source/ubl-strings.h:155
msgid "File choosing configuration"
msgstr "Настройки выбора файла"
#: source/ubl-strings.h:153
#: source/ubl-strings.h:156
msgid "Create log"
msgstr "Создавать лог"
#: source/ubl-strings.h:154
#: source/ubl-strings.h:157
msgid "as user:"
msgstr "от пользователя:"
#: source/ubl-strings.h:155
#: source/ubl-strings.h:158
msgid "as group:"
msgstr "от группы:"
#: source/ubl-strings.h:156
#: source/ubl-strings.h:159
msgid "rules:"
msgstr "права:"
#: source/ubl-strings.h:157
#: source/ubl-strings.h:160
msgid ""
"Cut source journal fileafter copy creating instead of moving old journal "
"file and creating new one"
@ -631,237 +646,266 @@ msgstr ""
"После создания копии, обрезать исходный файл журнала взамен перемещения "
"старого файла журнала и создания нового"
#: source/ubl-strings.h:158
#: source/ubl-strings.h:161
msgid "Files and directories configuration"
msgstr "Настройки файлов и папок"
#: source/ubl-strings.h:159
#: source/ubl-strings.h:162
msgid "Delay compression by one journal in queue:"
msgstr "Отложить сжание на один журнал в очереди:"
#: source/ubl-strings.h:160
#: source/ubl-strings.h:163
msgid "Compression configuration"
msgstr "Настройка сжатия"
#: source/ubl-strings.h:161
#: source/ubl-strings.h:164
msgid "Save original log file after rotation if it has specified extension:"
msgstr ""
"Сохранять оригинальный лог после ротации, если у него указано расширение:"
#: source/ubl-strings.h:162
#: source/ubl-strings.h:165
msgid "Add date of rotation before log header"
msgstr "Добавлять дату ротации перед заголовком старого лога:"
#: source/ubl-strings.h:163
#: source/ubl-strings.h:166
msgid "Number from which numbering of old logs will begin"
msgstr "Номер, с которого будет начата нумерация старых логов:"
#: source/ubl-strings.h:164
#: source/ubl-strings.h:167
msgid "Filename configuration"
msgstr "Настройка имени файлов"
#: source/ubl-strings.h:165
#: source/ubl-strings.h:168
msgid "Email after rotation:"
msgstr "Отправка Email после ротации:"
#: source/ubl-strings.h:166
#: source/ubl-strings.h:169
msgid "adress:"
msgstr "на адрес:"
#: source/ubl-strings.h:167
#: source/ubl-strings.h:170
msgid "contents:"
msgstr "содержимое:"
#: source/ubl-strings.h:168 source/ubl-strings.h:181
#: source/ubl-strings.h:171 source/ubl-strings.h:184
msgid "Message configuration"
msgstr "Настройка сообщения"
#: source/ubl-strings.h:169
#: source/ubl-strings.h:172
msgid "Manual input:"
msgstr "Команды настройки"
#: source/ubl-strings.h:170
#: source/ubl-strings.h:173
msgid "Log (-s) size:"
msgstr "Общий размер лога (-ов):"
#: source/ubl-strings.h:171
#: source/ubl-strings.h:174
msgid "Same directory"
msgstr "Той же папке"
#: source/ubl-strings.h:172
#: source/ubl-strings.h:175
msgid "Separate directory"
msgstr "Другой папке"
#: source/ubl-strings.h:173
#: source/ubl-strings.h:176
msgid "Output errors if log file does not exist*"
msgstr "Выводить ошибки, если лог файла не существует*"
#: source/ubl-strings.h:174
#: source/ubl-strings.h:177
msgid "Do not output errors if log file does not exist"
msgstr "Не выводить ошибки, если лог файла не существует"
#: source/ubl-strings.h:175
#: source/ubl-strings.h:178
msgid "Do not output"
msgstr "Не выводить"
#: source/ubl-strings.h:176
#: source/ubl-strings.h:179
msgid "Output errors"
msgstr "Выводить ошибки"
#: source/ubl-strings.h:177
#: source/ubl-strings.h:180
msgid "Send Email"
msgstr "Отправлять Email"
#: source/ubl-strings.h:178
#: source/ubl-strings.h:181
msgid "Don't send Email"
msgstr "Не отправлять Email"
#: source/ubl-strings.h:179
#: source/ubl-strings.h:182
msgid "First rotated copy"
msgstr "Первая ротированная копия"
#: source/ubl-strings.h:180
#: source/ubl-strings.h:183
msgid "Last rotated copy"
msgstr "Последняя ротированная копия"
#: source/ubl-strings.h:182
#: source/ubl-strings.h:185
msgid "Endwork command:"
msgstr "Команда перед удалением файла журнала:"
#: source/ubl-strings.h:185
#: source/ubl-strings.h:188
#, fuzzy
msgid "Hourly"
msgstr "Час"
#: source/ubl-strings.h:186
#: source/ubl-strings.h:189
msgid "Daily"
msgstr "День"
#: source/ubl-strings.h:187
#: source/ubl-strings.h:190
msgid "Weekly*"
msgstr "Неделя*"
#: source/ubl-strings.h:188
#: source/ubl-strings.h:191
msgid "Monthly"
msgstr "Месяц"
#: source/ubl-strings.h:189
#: source/ubl-strings.h:192
msgid "Yearly"
msgstr "Год"
#: source/ubl-strings.h:190
#: source/ubl-strings.h:193
msgid "Monday"
msgstr "Понедельник"
#: source/ubl-strings.h:191
#: source/ubl-strings.h:194
msgid "Tuesday"
msgstr "Вторник"
#: source/ubl-strings.h:192
#: source/ubl-strings.h:195
msgid "Wednesday"
msgstr "Среда"
#: source/ubl-strings.h:193
#: source/ubl-strings.h:196
msgid "Thursday"
msgstr "Четверг"
#: source/ubl-strings.h:194
#: source/ubl-strings.h:197
msgid "Friday"
msgstr "Пятница"
#: source/ubl-strings.h:195
#: source/ubl-strings.h:198
msgid "Saturday"
msgstr "Суббота"
#: source/ubl-strings.h:196
#: source/ubl-strings.h:199
msgid "Sunday*"
msgstr "Воскресенье*"
#: source/ubl-strings.h:197
#: source/ubl-strings.h:200
msgid "Same record already exists"
msgstr "Такая запись уже существует"
#: source/ubl-strings.h:198
#: source/ubl-strings.h:201
msgid "Empty important field"
msgstr "Важное поле не заполнено"
#: source/ubl-strings.h:199
#: source/ubl-strings.h:202
msgid "Repeating paths"
msgstr "Повторяющиеся пути"
#: source/ubl-strings.h:200
#: source/ubl-strings.h:203
#, fuzzy
msgid "Write down all important fields"
msgstr "Введите все необходимые поля"
#: source/ubl-strings.h:203
#: source/ubl-strings.h:206
#, fuzzy
msgid "Logs and events - logrotate table"
msgstr "Логи и журналы событий - таблица журналов logrotate"
#: source/ubl-strings.h:207
msgid "System configuration"
msgstr "Настройки системы"
#: source/ubl-strings.h:204
#: source/ubl-strings.h:208
msgid "Applications configuration"
msgstr "Настройки приложений"
#: source/ubl-strings.h:207
#: source/ubl-strings.h:211
#, fuzzy
msgid "Logs and events - journal configuration"
msgstr "Логи и журналы событий - конфигурация журнала"
#: source/ubl-strings.h:212
msgid "Path (-s):"
msgstr "Путь (-и):"
#: source/ubl-strings.h:208
#: source/ubl-strings.h:213
msgid "Control:"
msgstr "Управление:"
#: source/ubl-strings.h:209
#: source/ubl-strings.h:214
msgid "Log file"
msgstr "Файл лога"
#: source/ubl-strings.h:210
#: source/ubl-strings.h:215
msgid "Name:"
msgstr "Имя:"
#: source/ubl-strings.h:213
#: source/ubl-strings.h:216
msgid "Log size:"
msgstr "Размер лога:"
#: source/ubl-strings.h:219
#, fuzzy
msgid "Logs and events - rules"
msgstr "Логи и журналы событий - правила"
#: source/ubl-strings.h:220
msgid "Owner rules"
msgstr "Правила владельца"
#: source/ubl-strings.h:214
#: source/ubl-strings.h:221
msgid "Group rules"
msgstr "Правила группы"
#: source/ubl-strings.h:215
#: source/ubl-strings.h:222
msgid "Public rules"
msgstr "Правила остальных"
#: source/ubl-strings.h:216
#: source/ubl-strings.h:223
msgid "Read"
msgstr "Чтение"
#: source/ubl-strings.h:217
#: source/ubl-strings.h:224
msgid "Write"
msgstr "Запись"
#: source/ubl-strings.h:218
#: source/ubl-strings.h:225
msgid "Execute"
msgstr "Исполнение"
#: source/ubl-strings.h:219
#: source/ubl-strings.h:226
msgid "Value:"
msgstr "Значение:"
#: source/ubl-strings.h:222
#: source/ubl-strings.h:229
msgid ": no such file(s)"
msgstr ": файл(ы) не найден(ы)"
#: source/ubl-strings.h:223
#: source/ubl-strings.h:230
msgid "Parameter"
msgstr "Параметр"
#: source/ubl-strings.h:224
#: source/ubl-strings.h:231
msgid "Old value"
msgstr "Старое значение"
#: source/ubl-strings.h:225
#: source/ubl-strings.h:232
msgid "New value"
msgstr "Новое значение"
#: source/ubl-strings.h:234
#, fuzzy
msgid "Logs and events - choose a path"
msgstr "Логи и журналы событий - Выбор пути"
#: source/ubl-strings.h:235
#, fuzzy
msgid "Logs and events - saving"
msgstr "Логи и журналы событий - сохранение"
msgid "System event log rotation service"
msgstr "Служба ротации системных журналов событий"

Loading…
Cancel
Save