Частично добавлена локализация

pull/3/head
Igor Belitskiy 2 years ago
parent bc73285ea3
commit 334892672a

2
.gitignore vendored

@ -1 +1,3 @@
.vscode/ .vscode/
ubl-settings-quotas.glade~
ubl-settings-quotas_ru.po~

@ -56,6 +56,10 @@ void MainWindow::settings() {
HeadOverlay->add_overlay(*boxWidget); HeadOverlay->add_overlay(*boxWidget);
ubl_make_plugs(boxSave, boxButton, socket_ext_id_I, socket_trd_id_I); ubl_make_plugs(boxSave, boxButton, socket_ext_id_I, socket_trd_id_I);
if (geteuid() == 0) { if (geteuid() == 0) {
this->view_add_columns(*usersQuotasTree);
this->view_add_columns(*groupsQuotasTree);
this->event();
} }
else { else {
boxFuncs->set_sensitive(false); boxFuncs->set_sensitive(false);
@ -106,8 +110,27 @@ void MainWindow::lacalization() {
generalGroupsFilesMinutesLabel->set_text(gettext("minutes")); generalGroupsFilesMinutesLabel->set_text(gettext("minutes"));
generalUsersSizeMinutesLabel->set_text(gettext("minutes")); generalUsersSizeMinutesLabel->set_text(gettext("minutes"));
generalUsersFilesMinutesLabel->set_text(gettext("minutes")); generalUsersFilesMinutesLabel->set_text(gettext("minutes"));
groupsFileSystemLabel->set_text(gettext("File system:"));
usersFileSystemLabel->set_text(gettext("File system:"));
usersFiltersButton->set_label(gettext("Filters"));
groupsFiltersButton->set_label(gettext("Filters"));
lblLoad->set_text(gettext("Load")); lblLoad->set_text(gettext("Load"));
lblSave->set_text(gettext("Save")); lblSave->set_text(gettext("Save"));
groupsDeviceLabel->set_label(gettext("Device:"));
usersDeviceLabel->set_label(gettext("Device:"));
headLabel->set_label(gettext("Configuration of disk quotas parameters for system groups and users"));
filtersNameFilterCheckbox->set_label(gettext("Name"));
filtersQuotasFilterCheckbox->set_label(gettext("Quotas"));
filtersSizeFilterCheckbox->set_label(gettext("Size"));
filtersSoftSizeFilterCheckbox->set_label(gettext("Soft limit (size)"));
filtersHardSizeFilterCheckbox->set_label(gettext("Hard limit (size)"));
filtersHardSizeDelayFilterCheckbox->set_label(gettext("Hard limit (size) delay"));
filtersHardSizeActivationFilterCheckbox->set_label(gettext("Hard limit (size) activation time"));
filtersFilesFilterCheckbox->set_label(gettext("Files"));
filtersSoftFilesFilterCheckbox->set_label(gettext("Soft limit (files)"));
filtersHardFilesFilterCheckbox->set_label(gettext("Hard limit (files)"));
filtersHardFilesDelayFilterCheckbox->set_label(gettext("Hard limit (files) delay"));
filtersHardFilesActivationFilterCheckbox->set_label(gettext("Hard limit (file) activation time"));
} }
void MainWindow::add_CSS() { void MainWindow::add_CSS() {
@ -180,6 +203,38 @@ void MainWindow::get_builder() {
builder->get_widget("lblLoad", lblLoad); builder->get_widget("lblLoad", lblLoad);
builder->get_widget("lblSave", lblSave); builder->get_widget("lblSave", lblSave);
builder->get_widget("btnSettings", btnSettings); builder->get_widget("btnSettings", btnSettings);
builder->get_widget("groupsFileSystemLabel", groupsFileSystemLabel);
builder->get_widget("groupsFiltersButton", groupsFiltersButton);
builder->get_widget("btnSettings", btnSettings);
builder->get_widget("usersFiltersButton", usersFiltersButton);
builder->get_widget("usersFileSystemLabel", usersFileSystemLabel);
builder->get_widget("groupsDeviceLabel", groupsDeviceLabel);
builder->get_widget("usersDeviceLabel", usersDeviceLabel);
builder->get_widget("headLabel", headLabel);
builder->get_widget("FiltersWindow", FiltersWindow);
builder->get_widget("filtersNameFilterCheckbox", filtersNameFilterCheckbox);
builder->get_widget("filtersQuotasFilterCheckbox", filtersQuotasFilterCheckbox);
builder->get_widget("filtersSizeFilterCheckbox", filtersSizeFilterCheckbox);
builder->get_widget("filtersSoftSizeFilterCheckbox", filtersSoftSizeFilterCheckbox);
builder->get_widget("filtersHardSizeFilterCheckbox", filtersHardSizeFilterCheckbox);
builder->get_widget("filtersHardSizeDelayFilterCheckbox", filtersHardSizeDelayFilterCheckbox);
builder->get_widget("filtersHardSizeActivationFilterCheckbox", filtersHardSizeActivationFilterCheckbox);
builder->get_widget("filtersFilesFilterCheckbox", filtersFilesFilterCheckbox);
builder->get_widget("filtersSoftFilesFilterCheckbox", filtersSoftFilesFilterCheckbox);
builder->get_widget("filtersHardFilesFilterCheckbox", filtersHardFilesFilterCheckbox);
builder->get_widget("filtersHardFilesDelayFilterCheckbox", filtersHardFilesDelayFilterCheckbox);
builder->get_widget("filtersHardFilesActivationFilterCheckbox", filtersHardFilesActivationFilterCheckbox);
builder->get_widget("filtersHardFilesActivationFilterCheckbox", filtersHardFilesActivationFilterCheckbox);
builder->get_widget("btnLoadGlob", btnLoadGlob);
builder->get_widget("btnLoadLocal", btnLoadLocal);
builder->get_widget("btnSynopsis", btnSynopsis);
builder->get_widget("btnAbout", btnAbout);
builder->get_widget("btnSaveLocalGlob", btnSaveLocalGlob);
builder->get_widget("btnSaveGlob", btnSaveGlob);
builder->get_widget("btnSaveLocal", btnSaveLocal);
builder->get_widget("GroupsTabLabel", GroupsTabLabel);
builder->get_widget("groupsQuotasTree", groupsQuotasTree);
builder->get_widget("usersQuotasTree", usersQuotasTree);
} }
void MainWindow::event() { void MainWindow::event() {
@ -190,6 +245,27 @@ void MainWindow::event() {
btnSaveLocalGlob->signal_activate().connect([&]() {}); btnSaveLocalGlob->signal_activate().connect([&]() {});
btnSaveGlob->signal_activate().connect([&]() {}); btnSaveGlob->signal_activate().connect([&]() {});
btnSaveLocal->signal_activate().connect([&]() {}); btnSaveLocal->signal_activate().connect([&]() {});
groupsFiltersButton->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::groupsFilters_show));
usersFiltersButton->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::groupsFilters_show));
}
void MainWindow::groupsFilters_show() {
FiltersWindow->show_all();
}
void MainWindow::view_add_columns(Gtk::TreeView &treeView) {
treeView.append_column(gettext("Name"), m_columns.name);
treeView.append_column_editable(gettext("Quotas"), m_columns.quotas);
treeView.append_column(gettext("Size"), m_columns.size);
treeView.append_column(gettext("Soft limit\n(size)"), m_columns.soft_limit_size);
treeView.append_column(gettext("Hard limit\n(size)"), m_columns.hard_limit_size);
treeView.append_column(gettext("Hard limit\n(size) delay"), m_columns.hard_limit_size_delay);
treeView.append_column(gettext("Hard limit\n(Size) activation\ntime"), m_columns.hard_limit_activ_time);
treeView.append_column(gettext("Files"), m_columns.files);
treeView.append_column(gettext("Soft limit\n(files)"), m_columns.soft_limit_files);
treeView.append_column(gettext("Hard limit\n(files)"), m_columns.hard_limit_files);
treeView.append_column(gettext("Hard limit\n(files) delay"), m_columns.hard_limit_delay);
treeView.append_column(gettext("Hard limit\n(files) activation\ntime"), m_columns.hard_limit_files_activ_time);
} }
void MainWindow::info_status_app(string stule) { void MainWindow::info_status_app(string stule) {
@ -199,6 +275,35 @@ void MainWindow::info_status_app(string stule) {
boxInfo->add_class(stule); boxInfo->add_class(stule);
} }
SettingsPlug::SettingsPlug(::Window p_socketID, Glib::RefPtr<Gtk::Builder> builder) SettingsPlug::SettingsPlug(::Window p_socketID, Glib::RefPtr<Gtk::Builder> builder)
:Gtk::Plug{p_socketID} { :Gtk::Plug{p_socketID} {
MainWindow* wnd = nullptr; MainWindow* wnd = nullptr;

@ -32,6 +32,26 @@ private:
class MainWindow : public Gtk::ApplicationWindow { class MainWindow : public Gtk::ApplicationWindow {
public: public:
class ModelColumns : public Gtk::TreeModel::ColumnRecord {
public:
ModelColumns() {add(name), add(quotas); add(size),
add(soft_limit_size), add(hard_limit_size); add(hard_limit_size_delay),
add(hard_limit_activ_time), add(files); add(soft_limit_files),
add(hard_limit_files), add(hard_limit_delay); add(hard_limit_files_activ_time); }
Gtk::TreeModelColumn<Glib::ustring> name;
Gtk::TreeModelColumn<bool> quotas;
Gtk::TreeModelColumn<Glib::ustring> size;
Gtk::TreeModelColumn<Glib::ustring> soft_limit_size;
Gtk::TreeModelColumn<Glib::ustring> hard_limit_size;
Gtk::TreeModelColumn<Glib::ustring> hard_limit_size_delay;
Gtk::TreeModelColumn<Glib::ustring> hard_limit_activ_time;
Gtk::TreeModelColumn<Glib::ustring> files;
Gtk::TreeModelColumn<Glib::ustring> soft_limit_files;
Gtk::TreeModelColumn<Glib::ustring> hard_limit_files;
Gtk::TreeModelColumn<Glib::ustring> hard_limit_delay;
Gtk::TreeModelColumn<Glib::ustring> hard_limit_files_activ_time;
};
ModelColumns m_columns;
Glib::RefPtr<Gtk::Builder> builder; Glib::RefPtr<Gtk::Builder> builder;
template<typename Type> template<typename Type>
struct Result{ struct Result{
@ -91,6 +111,28 @@ class MainWindow : public Gtk::ApplicationWindow {
Gtk::MenuItem *btnSaveLocalGlob; Gtk::MenuItem *btnSaveLocalGlob;
Gtk::MenuItem *btnSaveGlob; Gtk::MenuItem *btnSaveGlob;
Gtk::MenuItem *btnSaveLocal; Gtk::MenuItem *btnSaveLocal;
Gtk::Label *groupsFileSystemLabel;
Gtk::Label *usersFileSystemLabel;
Gtk::Button *groupsFiltersButton;
Gtk::Button *usersFiltersButton;
Gtk::Label *groupsDeviceLabel;
Gtk::Label *usersDeviceLabel;
Gtk::Label *headLabel;
Gtk::Window *FiltersWindow;
Gtk::CheckButton *filtersNameFilterCheckbox;
Gtk::CheckButton *filtersQuotasFilterCheckbox;
Gtk::CheckButton *filtersSizeFilterCheckbox;
Gtk::CheckButton *filtersSoftSizeFilterCheckbox;
Gtk::CheckButton *filtersHardSizeFilterCheckbox;
Gtk::CheckButton *filtersHardSizeDelayFilterCheckbox;
Gtk::CheckButton *filtersHardSizeActivationFilterCheckbox;
Gtk::CheckButton *filtersFilesFilterCheckbox;
Gtk::CheckButton *filtersSoftFilesFilterCheckbox;
Gtk::CheckButton *filtersHardFilesFilterCheckbox;
Gtk::CheckButton *filtersHardFilesDelayFilterCheckbox;
Gtk::CheckButton *filtersHardFilesActivationFilterCheckbox;
Gtk::TreeView *groupsQuotasTree;
Gtk::TreeView *usersQuotasTree;
public: public:
MainWindow(BaseObjectType* obj, Glib::RefPtr<Gtk::Builder> const& builder); MainWindow(BaseObjectType* obj, Glib::RefPtr<Gtk::Builder> const& builder);
MainWindow(Glib::RefPtr<Gtk::Builder> const& builder); MainWindow(Glib::RefPtr<Gtk::Builder> const& builder);
@ -100,6 +142,8 @@ class MainWindow : public Gtk::ApplicationWindow {
void get_builder(); void get_builder();
void event(); void event();
void info_status_app(string stule); void info_status_app(string stule);
void groupsFilters_show();
void view_add_columns(Gtk::TreeView &treeView);
}; };

@ -10,12 +10,14 @@
</object> </object>
<object class="GtkWindow" id="FiltersWindow"> <object class="GtkWindow" id="FiltersWindow">
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="title" translatable="yes">UBConfig - Quotas</property> <property name="valign">start</property>
<property name="icon-name">com.ublinux.ubl-settings-quotas</property> <property name="resizable">False</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property> <property name="margin-start">5</property>
<property name="margin-end">5</property> <property name="margin-end">5</property>
<property name="margin-top">5</property> <property name="margin-top">5</property>
@ -28,6 +30,7 @@
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">False</property> <property name="receives-default">False</property>
<property name="halign">start</property> <property name="halign">start</property>
<property name="margin-top">6</property>
<property name="draw-indicator">True</property> <property name="draw-indicator">True</property>
</object> </object>
<packing> <packing>
@ -98,7 +101,7 @@
</child> </child>
<child> <child>
<object class="GtkCheckButton" id="filtersHardSizeDelayFilterCheckbox"> <object class="GtkCheckButton" id="filtersHardSizeDelayFilterCheckbox">
<property name="label" translatable="yes">Hard limit (size) delay </property> <property name="label" translatable="yes">Hard limit (size) delay</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">False</property> <property name="receives-default">False</property>
@ -211,11 +214,12 @@
<property name="homogeneous">True</property> <property name="homogeneous">True</property>
<child> <child>
<object class="GtkButton" id="filtersCancelButton"> <object class="GtkButton" id="filtersCancelButton">
<property name="label" translatable="yes">Cancel</property> <property name="label">gtk-cancel</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
<property name="valign">center</property> <property name="valign">center</property>
<property name="use-stock">True</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@ -225,11 +229,273 @@
</child> </child>
<child> <child>
<object class="GtkButton" id="filtersSaveButton"> <object class="GtkButton" id="filtersSaveButton">
<property name="label" translatable="yes">Save</property> <property name="label">gtk-save</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="valign">center</property>
<property name="use-stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">12</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="title" translatable="yes">UBConfig - Quotas</property>
<property name="show-close-button">True</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubl-settings-quotas</property>
<property name="icon_size">5</property>
</object>
</child>
</object>
</child>
</object>
<object class="GtkWindow" id="FiltersWindow1">
<property name="can-focus">False</property>
<property name="valign">start</property>
<property name="resizable">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkCheckButton" id="filtersNameFilterCheckbox1">
<property name="label" translatable="yes">Name</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="margin-top">6</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filtersQuotasFilterCheckbox1">
<property name="label" translatable="yes">Quotas</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filtersSizeFilterCheckbox1">
<property name="label" translatable="yes">Size</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filtersSoftSizeFilterCheckbox1">
<property name="label" translatable="yes">Soft limit (size)</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filtersHardSizeFilterCheckbox1">
<property name="label" translatable="yes">Hard limit (size)</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filtersHardSizeDelayFilterCheckbox1">
<property name="label" translatable="yes">Hard limit (size) delay</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filtersHardSizeActivationFilterCheckbox1">
<property name="label" translatable="yes">Hard limit (size) activation time</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">6</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filtersFilesFilterCheckbox1">
<property name="label" translatable="yes">Files</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">7</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filtersSoftFilesFilterCheckbox1">
<property name="label" translatable="yes">Soft limit (files)</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">8</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filtersHardFilesFilterCheckbox1">
<property name="label" translatable="yes">Hard limit (files)</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">9</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filtersHardFilesDelayFilterCheckbox1">
<property name="label" translatable="yes">Hard limit (files) delay</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">10</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filtersHardFilesActivationFilterCheckbox1">
<property name="label" translatable="yes">Hard limit (file) activation time</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">11</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="margin-top">5</property>
<property name="spacing">5</property>
<property name="homogeneous">True</property>
<child>
<object class="GtkButton" id="filtersCancelButton1">
<property name="label">gtk-cancel</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="valign">center</property>
<property name="use-stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="filtersSaveButton1">
<property name="label">gtk-save</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
<property name="valign">center</property> <property name="valign">center</property>
<property name="use-stock">True</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@ -246,6 +512,22 @@
</child> </child>
</object> </object>
</child> </child>
<child type="titlebar">
<object class="GtkHeaderBar">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="title" translatable="yes">UBConfig - Quotas</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubl-settings-quotas</property>
<property name="icon_size">5</property>
</object>
</child>
</object>
</child>
</object> </object>
<object class="GtkListStore" id="SizeStore"> <object class="GtkListStore" id="SizeStore">
<columns> <columns>
@ -555,7 +837,7 @@
</object> </object>
</child> </child>
<child> <child>
<object class="GtkMenuItem"> <object class="GtkMenuItem" id="btnSaveLocal">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Save to local configuration</property> <property name="label" translatable="yes">Save to local configuration</property>
@ -1677,7 +1959,7 @@
<object class="GtkLabel" id="groupsDeviceLabel"> <object class="GtkLabel" id="groupsDeviceLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Device: </property> <property name="label" translatable="yes">Device:</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@ -1739,76 +2021,6 @@
<child internal-child="selection"> <child internal-child="selection">
<object class="GtkTreeSelection"/> <object class="GtkTreeSelection"/>
</child> </child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Name</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Quotas</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Size</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Soft limit
(size)</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Hard limit
(size)</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Hard limit
(size) delay</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Hard limit
(Size) activation
time</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Files</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Soft limit
(files)</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Hard limit
(files)</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Hard limit
(files) delay</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Hard limit
(files) activation
time</property>
</object>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@ -1911,76 +2123,6 @@ time</property>
<child internal-child="selection"> <child internal-child="selection">
<object class="GtkTreeSelection"/> <object class="GtkTreeSelection"/>
</child> </child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Name</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Quotas</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Size</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Soft limit
(size)</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Hard limit
(size)</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Hard limit
(size) delay</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Hard limit
(Size) activation
time</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Files</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Soft limit
(files)</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Hard limit
(files)</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Hard limit
(files) delay</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Hard limit
(files) activation
time</property>
</object>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@ -2109,6 +2251,9 @@ time</property>
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
<style>
<class name="primary-toolbar"/>
</style>
</object> </object>
<packing> <packing>
<property name="position">2</property> <property name="position">2</property>
@ -2179,9 +2324,6 @@ time</property>
<property name="icon-name">open-menu-symbolic</property> <property name="icon-name">open-menu-symbolic</property>
</object> </object>
</child> </child>
<style>
<class name="noborder"/>
</style>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@ -2189,6 +2331,9 @@ time</property>
<property name="position">1</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
<style>
<class name="primary-toolbar"/>
</style>
</object> </object>
<packing> <packing>
<property name="pack-type">end</property> <property name="pack-type">end</property>

File diff suppressed because it is too large Load Diff

@ -0,0 +1,257 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-04-04 16:45+0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: source/ubl-settings-quotas.cc:121 source/ubl-settings-quotas.cc:118
msgid "Configuration of disk quotas parameters for system groups and users"
msgstr ""
#: source/ubl-settings-quotas.cc:78 source/ubl-settings-quotas.cc:75
#: source/ubl-settings-quotas.cc:74
msgid "Copyright © UBSoft LLC, 2022 - "
msgstr ""
#: source/ubl-settings-quotas.cc:80 source/ubl-settings-quotas.cc:77
#: source/ubl-settings-quotas.cc:76
msgid "Date and Time"
msgstr ""
#: source/ubl-settings-quotas.cc:87 source/ubl-settings-quotas.cc:119
#: source/ubl-settings-quotas.cc:120 source/ubl-settings-quotas.cc:84
#: source/ubl-settings-quotas.cc:116 source/ubl-settings-quotas.cc:117
#: source/ubl-settings-quotas.cc:83
msgid "Device:"
msgstr ""
#: source/ubl-settings-quotas.cc:90 source/ubl-settings-quotas.cc:91
#: source/ubl-settings-quotas.cc:87 source/ubl-settings-quotas.cc:88
#: source/ubl-settings-quotas.cc:86
msgid "Enable"
msgstr ""
#: source/ubl-settings-quotas.cc:94 source/ubl-settings-quotas.cc:96
#: source/ubl-settings-quotas.cc:91 source/ubl-settings-quotas.cc:93
#: source/ubl-settings-quotas.cc:90 source/ubl-settings-quotas.cc:92
msgid "Excess files delay period"
msgstr ""
#: source/ubl-settings-quotas.cc:93 source/ubl-settings-quotas.cc:95
#: source/ubl-settings-quotas.cc:90 source/ubl-settings-quotas.cc:92
#: source/ubl-settings-quotas.cc:89 source/ubl-settings-quotas.cc:91
msgid "Excess size delay period"
msgstr ""
#: source/ubl-settings-quotas.cc:88 source/ubl-settings-quotas.cc:113
#: source/ubl-settings-quotas.cc:114 source/ubl-settings-quotas.cc:85
#: source/ubl-settings-quotas.cc:110 source/ubl-settings-quotas.cc:111
#: source/ubl-settings-quotas.cc:84
msgid "File system:"
msgstr ""
#: source/ubl-settings-quotas.cc:129 source/ubl-settings-quotas.cc:264
#: source/ubl-settings-quotas.cc:126
msgid "Files"
msgstr ""
#: source/ubl-settings-quotas.cc:115 source/ubl-settings-quotas.cc:116
#: source/ubl-settings-quotas.cc:112 source/ubl-settings-quotas.cc:113
msgid "Filters"
msgstr ""
#: source/ubl-settings-quotas.cc:84 source/ubl-settings-quotas.cc:81
#: source/ubl-settings-quotas.cc:80
msgid "General settings"
msgstr ""
#: source/ubl-settings-quotas.cc:85 source/ubl-settings-quotas.cc:82
#: source/ubl-settings-quotas.cc:81
msgid "Groups"
msgstr ""
#: source/ubl-settings-quotas.cc:263
msgid ""
"Hard limit\n"
"(Size) activation\n"
"time"
msgstr ""
#: source/ubl-settings-quotas.cc:266
msgid ""
"Hard limit\n"
"(files)"
msgstr ""
#: source/ubl-settings-quotas.cc:268
msgid ""
"Hard limit\n"
"(files) activation\n"
"time"
msgstr ""
#: source/ubl-settings-quotas.cc:267
msgid ""
"Hard limit\n"
"(files) delay"
msgstr ""
#: source/ubl-settings-quotas.cc:261
msgid ""
"Hard limit\n"
"(size)"
msgstr ""
#: source/ubl-settings-quotas.cc:262
msgid ""
"Hard limit\n"
"(size) delay"
msgstr ""
#: source/ubl-settings-quotas.cc:133 source/ubl-settings-quotas.cc:130
msgid "Hard limit (file) activation time"
msgstr ""
#: source/ubl-settings-quotas.cc:131 source/ubl-settings-quotas.cc:128
msgid "Hard limit (files)"
msgstr ""
#: source/ubl-settings-quotas.cc:132 source/ubl-settings-quotas.cc:129
msgid "Hard limit (files) delay"
msgstr ""
#: source/ubl-settings-quotas.cc:126 source/ubl-settings-quotas.cc:123
msgid "Hard limit (size)"
msgstr ""
#: source/ubl-settings-quotas.cc:128 source/ubl-settings-quotas.cc:125
msgid "Hard limit (size) activation time"
msgstr ""
#: source/ubl-settings-quotas.cc:127 source/ubl-settings-quotas.cc:124
msgid "Hard limit (size) delay"
msgstr ""
#: source/ubl-settings-quotas.cc:117 source/ubl-settings-quotas.cc:114
#: source/ubl-settings-quotas.cc:109
msgid "Load"
msgstr ""
#: source/ubl-settings-quotas.cc:122 source/ubl-settings-quotas.cc:119
msgid "Name"
msgstr ""
#: source/ubl-settings-quotas.cc:83 source/ubl-settings-quotas.cc:80
#: source/ubl-settings-quotas.cc:79
msgid "Project Home Page"
msgstr ""
#: source/ubl-settings-quotas.cc:123 source/ubl-settings-quotas.cc:258
#: source/ubl-settings-quotas.cc:120
msgid "Quotas"
msgstr ""
#: source/ubl-settings-quotas.cc:118 source/ubl-settings-quotas.cc:115
#: source/ubl-settings-quotas.cc:110
msgid "Save"
msgstr ""
#: source/ubl-settings-quotas.cc:124 source/ubl-settings-quotas.cc:259
#: source/ubl-settings-quotas.cc:121
msgid "Size"
msgstr ""
#: source/ubl-settings-quotas.cc:265
msgid ""
"Soft limit\n"
"(files)"
msgstr ""
#: source/ubl-settings-quotas.cc:260
msgid ""
"Soft limit\n"
"(size)"
msgstr ""
#: source/ubl-settings-quotas.cc:130 source/ubl-settings-quotas.cc:127
msgid "Soft limit (files)"
msgstr ""
#: source/ubl-settings-quotas.cc:125 source/ubl-settings-quotas.cc:122
msgid "Soft limit (size)"
msgstr ""
#: source/ubl-settings-quotas.cc:70 source/ubl-settings-quotas.cc:67
#: source/ubl-settings-quotas.cc:66
msgid "The program must be run as root"
msgstr ""
#: source/ubl-settings-quotas.cc:86 source/ubl-settings-quotas.cc:83
#: source/ubl-settings-quotas.cc:82
msgid "Users"
msgstr ""
#: source/ubl-settings-quotas.cc:101 source/ubl-settings-quotas.cc:102
#: source/ubl-settings-quotas.cc:103 source/ubl-settings-quotas.cc:104
#: source/ubl-settings-quotas.cc:98 source/ubl-settings-quotas.cc:99
#: source/ubl-settings-quotas.cc:100 source/ubl-settings-quotas.cc:97
msgid "days"
msgstr ""
#: source/ubl-settings-quotas.cc:105 source/ubl-settings-quotas.cc:106
#: source/ubl-settings-quotas.cc:107 source/ubl-settings-quotas.cc:108
#: source/ubl-settings-quotas.cc:102 source/ubl-settings-quotas.cc:103
#: source/ubl-settings-quotas.cc:104 source/ubl-settings-quotas.cc:101
msgid "hours"
msgstr ""
#: source/ubl-settings-quotas.cc:81 source/ubl-settings-quotas.cc:78
#: source/ubl-settings-quotas.cc:77
msgid "https://wiki.ublinux.com"
msgstr ""
#: source/ubl-settings-quotas.cc:109 source/ubl-settings-quotas.cc:110
#: source/ubl-settings-quotas.cc:111 source/ubl-settings-quotas.cc:112
#: source/ubl-settings-quotas.cc:106 source/ubl-settings-quotas.cc:107
#: source/ubl-settings-quotas.cc:108 source/ubl-settings-quotas.cc:105
msgid "minutes"
msgstr ""
#: source/ubl-settings-quotas.cc:257
msgid "name"
msgstr ""
#: source/ubl-settings-quotas.cc:89 source/ubl-settings-quotas.cc:86
#: source/ubl-settings-quotas.cc:85
msgid "quotas for groups"
msgstr ""
#: source/ubl-settings-quotas.cc:92 source/ubl-settings-quotas.cc:89
#: source/ubl-settings-quotas.cc:88
msgid "quotas for users"
msgstr ""
#: source/ubl-settings-quotas.cc:318 source/ubl-settings-quotas.cc:267
#: source/ubl-settings-quotas.cc:213
msgid "ubl-settings-quotas version: "
msgstr ""
#: source/ubl-settings-quotas.cc:97 source/ubl-settings-quotas.cc:98
#: source/ubl-settings-quotas.cc:99 source/ubl-settings-quotas.cc:100
#: source/ubl-settings-quotas.cc:94 source/ubl-settings-quotas.cc:95
#: source/ubl-settings-quotas.cc:96 source/ubl-settings-quotas.cc:93
msgid "weeks"
msgstr ""

@ -0,0 +1,289 @@
# Russian translations for ublexec package.
# Copyright (C) 2022, UBTech LLC
# This file is distributed under the same license as the ublexec package.
# UBLinux Team <info@ublinux.com>, 2022
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: ublexec 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-04-04 16:45+0600\n"
"PO-Revision-Date: 2023-01-01 00:00+0600\n"
"Last-Translator: UBLinux Team <info@ublinux.com>\n"
"Language-Team: Russian - UBLinux Team <info@ublinux.com>\n"
"Language: Russian\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: source/ubl-settings-quotas.cc:121 source/ubl-settings-quotas.cc:118
msgid "Configuration of disk quotas parameters for system groups and users"
msgstr "Настройка параметров дисковых квот для системных групп и пользователей"
#: source/ubl-settings-quotas.cc:78 source/ubl-settings-quotas.cc:75
#: source/ubl-settings-quotas.cc:74
msgid "Copyright © UBSoft LLC, 2022 - "
msgstr ""
#: source/ubl-settings-quotas.cc:80 source/ubl-settings-quotas.cc:77
#: source/ubl-settings-quotas.cc:76
msgid "Date and Time"
msgstr "Дата и время"
#: source/ubl-settings-quotas.cc:87 source/ubl-settings-quotas.cc:119
#: source/ubl-settings-quotas.cc:120 source/ubl-settings-quotas.cc:84
#: source/ubl-settings-quotas.cc:116 source/ubl-settings-quotas.cc:117
#: source/ubl-settings-quotas.cc:83
msgid "Device:"
msgstr "Устройство:"
#: source/ubl-settings-quotas.cc:90 source/ubl-settings-quotas.cc:91
#: source/ubl-settings-quotas.cc:87 source/ubl-settings-quotas.cc:88
#: source/ubl-settings-quotas.cc:86
msgid "Enable"
msgstr "Включить"
#: source/ubl-settings-quotas.cc:94 source/ubl-settings-quotas.cc:96
#: source/ubl-settings-quotas.cc:91 source/ubl-settings-quotas.cc:93
#: source/ubl-settings-quotas.cc:90 source/ubl-settings-quotas.cc:92
msgid "Excess files delay period"
msgstr "Превышение периода задержки файлов"
#: source/ubl-settings-quotas.cc:93 source/ubl-settings-quotas.cc:95
#: source/ubl-settings-quotas.cc:90 source/ubl-settings-quotas.cc:92
#: source/ubl-settings-quotas.cc:89 source/ubl-settings-quotas.cc:91
msgid "Excess size delay period"
msgstr "Период задержки превышения размера"
#: source/ubl-settings-quotas.cc:88 source/ubl-settings-quotas.cc:113
#: source/ubl-settings-quotas.cc:114 source/ubl-settings-quotas.cc:85
#: source/ubl-settings-quotas.cc:110 source/ubl-settings-quotas.cc:111
#: source/ubl-settings-quotas.cc:84
msgid "File system:"
msgstr "Файловая система:"
#: source/ubl-settings-quotas.cc:129 source/ubl-settings-quotas.cc:264
#: source/ubl-settings-quotas.cc:126
msgid "Files"
msgstr "Файлы"
#: source/ubl-settings-quotas.cc:115 source/ubl-settings-quotas.cc:116
#: source/ubl-settings-quotas.cc:112 source/ubl-settings-quotas.cc:113
msgid "Filters"
msgstr "Фильтры"
#: source/ubl-settings-quotas.cc:84 source/ubl-settings-quotas.cc:81
#: source/ubl-settings-quotas.cc:80
msgid "General settings"
msgstr "Общие настройки"
#: source/ubl-settings-quotas.cc:85 source/ubl-settings-quotas.cc:82
#: source/ubl-settings-quotas.cc:81
msgid "Groups"
msgstr "Группы"
#: source/ubl-settings-quotas.cc:263
#, fuzzy
msgid ""
"Hard limit\n"
"(Size) activation\n"
"time"
msgstr "Жесткий предел\n(размер)"
#: source/ubl-settings-quotas.cc:266
#, fuzzy
msgid ""
"Hard limit\n"
"(files)"
msgstr "Жесткий лимит\n(файлы)"
#: source/ubl-settings-quotas.cc:268
#, fuzzy
msgid ""
"Hard limit\n"
"(files) activation\n"
"time"
msgstr "Время активации\nжесткого лимита (файла)"
#: source/ubl-settings-quotas.cc:267
#, fuzzy
msgid ""
"Hard limit\n"
"(files) delay"
msgstr "Жесткий лимит\n(файлы)"
#: source/ubl-settings-quotas.cc:261
#, fuzzy
msgid ""
"Hard limit\n"
"(size)"
msgstr "Жесткий предел\n(размер) задержки"
#: source/ubl-settings-quotas.cc:262
#, fuzzy
msgid ""
"Hard limit\n"
"(size) delay"
msgstr "Жесткий предел\n(размер) задержки"
#: source/ubl-settings-quotas.cc:133 source/ubl-settings-quotas.cc:130
msgid "Hard limit (file) activation time"
msgstr "Время активации жесткого лимита (файла)"
#: source/ubl-settings-quotas.cc:131 source/ubl-settings-quotas.cc:128
msgid "Hard limit (files)"
msgstr "Жесткий лимит (файлы)"
#: source/ubl-settings-quotas.cc:132 source/ubl-settings-quotas.cc:129
msgid "Hard limit (files) delay"
msgstr "Жесткий лимит (файлы)"
#: source/ubl-settings-quotas.cc:126 source/ubl-settings-quotas.cc:123
msgid "Hard limit (size)"
msgstr "Жесткий предел (размер) задержки"
#: source/ubl-settings-quotas.cc:128 source/ubl-settings-quotas.cc:125
msgid "Hard limit (size) activation time"
msgstr "Жесткий предел (размер)"
#: source/ubl-settings-quotas.cc:127 source/ubl-settings-quotas.cc:124
msgid "Hard limit (size) delay"
msgstr "Жесткий предел (размер) задержки"
#: source/ubl-settings-quotas.cc:117 source/ubl-settings-quotas.cc:114
#: source/ubl-settings-quotas.cc:109
msgid "Load"
msgstr "Загрузить"
#: source/ubl-settings-quotas.cc:122 source/ubl-settings-quotas.cc:119
msgid "Name"
msgstr "Имя"
#: source/ubl-settings-quotas.cc:83 source/ubl-settings-quotas.cc:80
#: source/ubl-settings-quotas.cc:79
msgid "Project Home Page"
msgstr "Главная страница проекта"
#: source/ubl-settings-quotas.cc:123 source/ubl-settings-quotas.cc:258
#: source/ubl-settings-quotas.cc:120
msgid "Quotas"
msgstr "Квоты"
#: source/ubl-settings-quotas.cc:118 source/ubl-settings-quotas.cc:115
#: source/ubl-settings-quotas.cc:110
msgid "Save"
msgstr "Сохранить"
#: source/ubl-settings-quotas.cc:124 source/ubl-settings-quotas.cc:259
#: source/ubl-settings-quotas.cc:121
msgid "Size"
msgstr "Размер"
#: source/ubl-settings-quotas.cc:265
#, fuzzy
msgid ""
"Soft limit\n"
"(files)"
msgstr "Мягкий лимит\n(файлы)"
#: source/ubl-settings-quotas.cc:260
#, fuzzy
msgid ""
"Soft limit\n"
"(size)"
msgstr "Мягкий предел\n(размер)"
#: source/ubl-settings-quotas.cc:130 source/ubl-settings-quotas.cc:127
msgid "Soft limit (files)"
msgstr "Мягкий лимит\n(файлы)"
#: source/ubl-settings-quotas.cc:125 source/ubl-settings-quotas.cc:122
msgid "Soft limit (size)"
msgstr "Мягкий предел\n(размер)"
#: source/ubl-settings-quotas.cc:70 source/ubl-settings-quotas.cc:67
#: source/ubl-settings-quotas.cc:66
msgid "The program must be run as root"
msgstr "Программа должна быть запущена от имени root"
#: source/ubl-settings-quotas.cc:86 source/ubl-settings-quotas.cc:83
#: source/ubl-settings-quotas.cc:82
msgid "Users"
msgstr "Пользователи"
#: source/ubl-settings-quotas.cc:101 source/ubl-settings-quotas.cc:102
#: source/ubl-settings-quotas.cc:103 source/ubl-settings-quotas.cc:104
#: source/ubl-settings-quotas.cc:98 source/ubl-settings-quotas.cc:99
#: source/ubl-settings-quotas.cc:100 source/ubl-settings-quotas.cc:97
msgid "days"
msgstr "дни"
#: source/ubl-settings-quotas.cc:105 source/ubl-settings-quotas.cc:106
#: source/ubl-settings-quotas.cc:107 source/ubl-settings-quotas.cc:108
#: source/ubl-settings-quotas.cc:102 source/ubl-settings-quotas.cc:103
#: source/ubl-settings-quotas.cc:104 source/ubl-settings-quotas.cc:101
msgid "hours"
msgstr "часы"
#: source/ubl-settings-quotas.cc:81 source/ubl-settings-quotas.cc:78
#: source/ubl-settings-quotas.cc:77
msgid "https://wiki.ublinux.com"
msgstr "https://wiki.ublinux.ru"
#: source/ubl-settings-quotas.cc:109 source/ubl-settings-quotas.cc:110
#: source/ubl-settings-quotas.cc:111 source/ubl-settings-quotas.cc:112
#: source/ubl-settings-quotas.cc:106 source/ubl-settings-quotas.cc:107
#: source/ubl-settings-quotas.cc:108 source/ubl-settings-quotas.cc:105
msgid "minutes"
msgstr "минуты"
#: source/ubl-settings-quotas.cc:257
msgid "name"
msgstr ""
#: source/ubl-settings-quotas.cc:89 source/ubl-settings-quotas.cc:86
#: source/ubl-settings-quotas.cc:85
msgid "quotas for groups"
msgstr "квоты для групп"
#: source/ubl-settings-quotas.cc:92 source/ubl-settings-quotas.cc:89
#: source/ubl-settings-quotas.cc:88
msgid "quotas for users"
msgstr "квоты для пользователей"
#: source/ubl-settings-quotas.cc:318 source/ubl-settings-quotas.cc:267
#: source/ubl-settings-quotas.cc:213
msgid "ubl-settings-quotas version: "
msgstr "ubl-settings-quotas версия:"
#: source/ubl-settings-quotas.cc:97 source/ubl-settings-quotas.cc:98
#: source/ubl-settings-quotas.cc:99 source/ubl-settings-quotas.cc:100
#: source/ubl-settings-quotas.cc:94 source/ubl-settings-quotas.cc:95
#: source/ubl-settings-quotas.cc:96 source/ubl-settings-quotas.cc:93
msgid "weeks"
msgstr "недели"
#~ msgid "Nothing to save!"
#~ msgstr "Нечего сохранять!"
#~ msgid "Help"
#~ msgstr "Справка"
#~ msgid "About"
#~ msgstr "О программе"
#~ msgid "Save to global configuration"
#~ msgstr "Сохранить глобальную конфигурацию"
#~ msgid "Save to local configuration"
#~ msgstr "Сохранить локальную конфигурацию"
#~ msgid "Save to global and local configuration"
#~ msgstr "Сохранить глобальную и локальную конфигурацию"
#~ msgid "Load from global configuration"
#~ msgstr "Загрузить глобальную конфигурацию"
#~ msgid "Load from local configuration"
#~ msgstr "Загрузить локальную конфигурацию"
Loading…
Cancel
Save