develop #36

Merged
asmeron merged 18 commits from develop into master 3 years ago

3
.gitignore vendored

@ -3,4 +3,5 @@ ublexec.glade~
test.cpp test.cpp
.vscode .vscode
ublexec ublexec
nohup.out nohup.out
ublexec_ru.po~

@ -8,6 +8,20 @@ include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS}) link_directories(${GTK_LIBRARY_DIRS})
add_definitions(${GTK_CFLAGS_OTHER}) add_definitions(${GTK_CFLAGS_OTHER})
find_library(WEBKIT_LIBRARIES_FOUND webkit2gtk-4.0 webkit2gtk-web-extension-4.0)
option(WEBKIT_FOUND "No" OFF)
find_library(WEBKIT_LIBRARIES_FOUND webkit2gtk-4.0 webkit2gtk-web-extension-4.0)
if(WEBKIT_LIBRARIES_FOUND)
option(WEBKIT_FOUND "Yes" ON)
PKG_CHECK_MODULES(WEBKIT REQUIRED webkit2gtk-4.0 webkit2gtk-web-extension-4.0)
include_directories(${WEBKIT_INCLUDE_DIRS})
link_directories(${WEBKIT_LIBRARY_DIRS})
add_definitions(${WEBKIT_CFLAGS_OTHER})
endif()
configure_file(ublexec.h.in ublexec-cm.h)
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always -std=c++2a -g") #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always -std=c++2a -g")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always \ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always \
-O2 -pipe -fno-plt -fexceptions \ -O2 -pipe -fno-plt -fexceptions \
@ -15,6 +29,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissin
-fstack-clash-protection -fcf-protection") -fstack-clash-protection -fcf-protection")
set(SOURCE_FILES set(SOURCE_FILES
ublexec-cm.h
main.cc main.cc
ublexec.cc ublexec.cc
ublexec.h ublexec.h
@ -26,5 +41,10 @@ set(LIBRARIES
pthread) pthread)
add_executable(ublexec ${SOURCE_FILES}) add_executable(ublexec ${SOURCE_FILES})
target_link_libraries(ublexec ${LIBRARIES})
install(TARGETS ublexec DESTINATION bin) target_link_libraries(ublexec PUBLIC ${WEBKIT_LIBRARIES} ${LIBRARIES})
target_include_directories(ublexec PUBLIC
"${PROJECT_BINARY_DIR}"
${WEBKIT_INCLUDE_DIRS}
)
install(TARGETS ublexec DESTINATION bin)

@ -7,9 +7,9 @@ int main(int argc, char** argv) {
string str_cmd_argv = ""; string str_cmd_argv = "";
setlocale(LC_ALL, ""); setlocale(LC_ALL, "");
bindtextdomain("ublexec", "/usr/share/locale/"); bindtextdomain(app_name, "/usr/share/locale/");
bind_textdomain_codeset("ublexec", "UTF-8"); bind_textdomain_codeset(app_name, "UTF-8");
textdomain("ublexec"); textdomain(app_name);
if (argc > 1){ if (argc > 1){
str_argv = argv[1]; str_argv = argv[1];
} }
@ -66,7 +66,7 @@ void pars_flag(int index_start, int argc, char* argv[]) {
exit(1); exit(1);
} }
else if (str_argv == "--version" || str_argv == "-v"){ else if (str_argv == "--version" || str_argv == "-v"){
string version = string(gettext("ublexec version: ")) + version_application + "\n"; string version = string(str_version) + version_application + "\n";
cout << version.c_str(); cout << version.c_str();
exit(1); exit(1);
} }

@ -1,14 +1,10 @@
#include "ublexec.h" #include "ublexec.h"
using namespace std; using namespace std;
const string path_app = "/usr/bin/";
const string path_glade = "/usr/share/ublexec/ui/ublexec.glade";
const string path_css = "/usr/share/ublexec/css/ublexec.css";
const string app_name = "ublexec";
int flag_prog_file = 0; int flag_prog_file = 0;
string name_app_cmd = ""; string name_app_cmd = "";
string version_application = "2.23"; string version_application = "2.24";
const string path_img_head_background = "/usr/share/ublexec/images/logo-background.png";
int socket_ext_id_I = 0; int socket_ext_id_I = 0;
int socket_trd_id_I = 0; int socket_trd_id_I = 0;
@ -111,6 +107,20 @@ void MainWindow::get_builder() {
builder->get_widget("btnBoxAboutDialog", btnBoxAboutDialog); builder->get_widget("btnBoxAboutDialog", btnBoxAboutDialog);
builder->get_widget("boxAbout", boxAbout); builder->get_widget("boxAbout", boxAbout);
builder->get_widget("cmbTerminal", cmbTerminal); builder->get_widget("cmbTerminal", cmbTerminal);
builder->get_widget("lblHeaderAboutTopic", lblHeaderAboutTopic);
builder->get_widget("lblwebHeaderName", lblwebHeaderName);
builder->get_widget("lblhelpText", lblhelpText);
builder->get_widget("lblhelpHeader", lblhelpHeader);
builder->get_widget("chkAlwaysOpenHelp", chkAlwaysOpenHelp);
builder->get_widget("btnReadHelp", btnReadHelp);
builder->get_widget("btnCancelHelp", btnCancelHelp);
builder->get_widget("wndShowWeb", wndShowWeb);
builder->get_widget("lblHeadeWndWeb", lblHeadeWndWeb);
#ifdef WEBKIT_FOUND
builder->get_widget("wndWeb", wndWeb);
#endif
} }
void MainWindow::set_icon_array() { void MainWindow::set_icon_array() {
@ -156,48 +166,61 @@ void MainWindow::localization() {
time_t now = time(0); time_t now = time(0);
tm *ltm = localtime(&now); tm *ltm = localtime(&now);
unsigned int year= 1900+ ltm->tm_year; unsigned int year= 1900+ ltm->tm_year;
string str_authors = string(gettext("Copyright © UBSoft LLC, 2022 - ")) + to_string(year); string str_authors = string(copyright) + to_string(year);
aboutWindows->set_copyright(str_authors); aboutWindows->set_copyright(str_authors);
aboutWindows->set_website(gettext("https://wiki.ublinux.com")); aboutWindows->set_website(website);
btnSynopsis->set_label(gettext("Help")); btnSynopsis->set_label(str_help);
btnAbout->set_label(gettext("About")); btnAbout->set_label(str_about_1);
aboutWindows->set_comments(gettext("Run as...")); aboutWindows->set_comments(define_name_app);
aboutWindows->set_website_label(gettext("Project Home Page")); aboutWindows->set_website_label(home_page );
aboutWindows->set_version(gettext(version_application.c_str())); aboutWindows->set_version(_(version_application.c_str()));
aboutWindows->set_title(gettext(" Run as...")); aboutWindows->set_title(space_name_app );
lblHeaderName->set_text(gettext("Run as...")); lblHeaderAboutTopic->set_label(space_name_app );
this->set_title(gettext("Run as...")); lblHeaderName->set_text(define_name_app);
btnStart->set_label(gettext("Run")); this->set_title(define_name_app);
wndChooseFileWallpaper->set_title(gettext("Please select File")); btnStart->set_label(str_run);
dialogStartMenu->set_title(gettext("Selecting Programs")); wndChooseFileWallpaper->set_title(str_please_select_file);
lblInfoHead->set_text(gettext("Run applications as another user\nwith the specified priority")); dialogStartMenu->set_title(str_selecting_programs);
lblinfoCmd->set_text(gettext("Command Line")); lblInfoHead->set_text(str_run_applications_as_another);
lblInfoTime->set_text(gettext("Team:")); lblinfoCmd->set_text(str_localization_cmd_line);
labInfoExecutTerm->set_text(gettext("Run in the terminal emulator")); lblInfoTime->set_text(str_localization_team);
lblInfoUser->set_text(gettext("User")); labInfoExecutTerm->set_text(str_run_terminal);
lblInfoUserOther->set_text(gettext("Run as another user:")); lblInfoUser->set_text(str_localization_user);
lblInfoUserName->set_text(gettext("User Name:")); lblInfoUserOther->set_text(str_run_of_user);
lblInfoNooPriority->set_text(gettext("Priority")); lblInfoUserName->set_text(str_localization_username);
lblInfoExec->set_text(gettext("Change startup priority")); lblInfoNooPriority->set_text(str_localization_priority);
lblInfoPriority->set_text(gettext("Priority:")); lblInfoExec->set_text(str_change_priority);
lblMessageError->set_text(gettext("Select an executable file or program")); lblInfoPriority->set_text(string(str_localization_priority) + ":");
messageError->set_title(gettext("Attention")); lblMessageError->set_text(str_select_app_program);
lblGraphics->set_text(gettext("Graphics")); messageError->set_title(str_localization_attention);
lblTools->set_text(gettext("Tools")); lblGraphics->set_text(str_localization_graphics);
lblInternet->set_text(gettext("Internet")); lblTools->set_text(str_localization_tools);
lblMultimedia->set_text(gettext("Multimedia")); lblInternet->set_text(str_localization_internet);
lblSettings->set_text(gettext("Settings")); lblMultimedia->set_text(str_localization_multimedia);
lblEducation->set_text(gettext("Education")); lblSettings->set_text(str_localization_settings);
lblOffice->set_text(gettext("Office")); lblEducation->set_text(str_localization_education);
lblOther->set_text(gettext("Other")); lblOffice->set_text(str_localization_office);
lblDevelopment->set_text(gettext("Development")); lblOther->set_text(str_localization_other);
lblSystem->set_text(gettext("System")); lblDevelopment->set_text(str_localization_development);
btnListApp->set_tooltip_text(gettext("Application Overview")); lblSystem->set_text(str_localization_system);
btnFilemaneg->set_tooltip_text(gettext("File Overview")); btnListApp->set_tooltip_text(str_application_overview);
btnMessageErrorOk->set_label(gettext("Close")); btnFilemaneg->set_tooltip_text(str_file_overview);
btnMessageErrorOk->set_label(str_close);
lblhelpHeader->set_text(read_documentation_web);
lblhelpText->set_text(redirected_documentation);
btnReadHelp->set_label(read_online);
btnCancelHelp->set_label(cancel);
chkAlwaysOpenHelp->set_label(always_redirect);
lblwebHeaderName->set_label(name_app_1);
lblHeadeWndWeb->set_label(define_name_app);
lblwebHeaderName->set_label(define_name_app);
} }
void MainWindow::event() { void MainWindow::event() {
btnCancelHelp->signal_clicked().connect([&]() {wndShowWeb->hide();});
chkAlwaysOpenHelp->signal_toggled().connect([&]() {flag_open_browser = true;});
btnReadHelp->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::open_browser));
btnSynopsis->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::synopsis_show));
btnFilemaneg->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::open_filemaneg)); btnFilemaneg->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::open_filemaneg));
btnListApp->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::open_list_app)); btnListApp->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::open_list_app));
btnStart->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::entry_app)); btnStart->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::entry_app));
@ -235,6 +258,7 @@ void MainWindow::event() {
} }
void MainWindow::sudo_nice(){ void MainWindow::sudo_nice(){
string response = this->call("id -Gn"); string response = this->call("id -Gn");
if (geteuid() == 0 || cmbUser->get_active_text() == "root" ){ if (geteuid() == 0 || cmbUser->get_active_text() == "root" ){
@ -242,32 +266,32 @@ void MainWindow::sudo_nice(){
spinPriority->set_increments(1.0, -1.0); spinPriority->set_increments(1.0, -1.0);
scalePriority->set_range(-20, 19); scalePriority->set_range(-20, 19);
scalePriority->set_value(0); scalePriority->set_value(0);
lblTimeEpriorityLow->set_text(gettext("19 (Low)")); lblTimeEpriorityLow->set_text(nice_19);
lblTime4EpriorityHigh->set_text(gettext("-20 (High)")); lblTime4EpriorityHigh->set_text(nice__20);
} }
else if (rbSudo->get_active() && response.find("wheel") != string::npos){ else if (rbSudo->get_active() && response.find("wheel") != string::npos){
spinPriority->set_range(-20, 19); spinPriority->set_range(-20, 19);
spinPriority->set_increments(1.0, -1.0); spinPriority->set_increments(1.0, -1.0);
scalePriority->set_range(-20, 19); scalePriority->set_range(-20, 19);
scalePriority->set_value(0); scalePriority->set_value(0);
lblTimeEpriorityLow->set_text(gettext("19 (Low)")); lblTimeEpriorityLow->set_text(nice_19);
lblTime4EpriorityHigh->set_text(gettext("-20 (High)")); lblTime4EpriorityHigh->set_text(nice__20);
} }
else if (rbSu->get_active()){ else if (rbSu->get_active()){
spinPriority->set_range(0, 19); spinPriority->set_range(0, 19);
spinPriority->set_increments(1.0, -1.0); spinPriority->set_increments(1.0, -1.0);
scalePriority->set_range(0, 19); scalePriority->set_range(0, 19);
scalePriority->set_value(0); scalePriority->set_value(0);
lblTimeEpriorityLow->set_text(gettext("19 (Low)")); lblTimeEpriorityLow->set_text(nice_19);
lblTime4EpriorityHigh->set_text(gettext("0 (High)")); lblTime4EpriorityHigh->set_text(nice_0);
} }
else if (rbPkexec->get_active()){ else if (rbPkexec->get_active()){
spinPriority->set_range(0, 19); spinPriority->set_range(0, 19);
spinPriority->set_increments(1.0, -1.0); spinPriority->set_increments(1.0, -1.0);
scalePriority->set_range(0, 19); scalePriority->set_range(0, 19);
scalePriority->set_value(0); scalePriority->set_value(0);
lblTimeEpriorityLow->set_text(gettext("19 (Low)")); lblTimeEpriorityLow->set_text(nice_19);
lblTime4EpriorityHigh->set_text(gettext("0 (High)")); lblTime4EpriorityHigh->set_text(nice_0);
} }
this->denamic_cmd(); this->denamic_cmd();
} }
@ -281,16 +305,16 @@ void MainWindow::changed_user() {
spinPriority->set_increments(1.0, -1.0); spinPriority->set_increments(1.0, -1.0);
scalePriority->set_range(-20, 19); scalePriority->set_range(-20, 19);
scalePriority->set_value(0); scalePriority->set_value(0);
lblTimeEpriorityLow->set_text(gettext("19 (Low)")); lblTimeEpriorityLow->set_text(nice_19);
lblTime4EpriorityHigh->set_text(gettext("-20 (High)")); lblTime4EpriorityHigh->set_text(nice__20);
} }
else{ else{
spinPriority->set_range(0, 19); spinPriority->set_range(0, 19);
spinPriority->set_increments(1.0, -1.0); spinPriority->set_increments(1.0, -1.0);
scalePriority->set_range(0, 19); scalePriority->set_range(0, 19);
scalePriority->set_value(0); scalePriority->set_value(0);
lblTimeEpriorityLow->set_text(gettext("19 (Low)")); lblTimeEpriorityLow->set_text(nice_19);
lblTime4EpriorityHigh->set_text(gettext("0 (High)")); lblTime4EpriorityHigh->set_text(nice_0);
} }
} }
@ -323,10 +347,34 @@ bool MainWindow::focus_in_txt_cmd(GdkEventFocus* event) {
} }
void MainWindow::synopsis_show() { void MainWindow::synopsis_show() {
string cmd = "xdg-open " + string(gettext("https://wiki.ublinux.com/ru/Программное_обеспечениерограммы_и_утилиты/Все/")) + app_name + " &"; if (flag_open_browser == true) {
this->open_browser();
}
else {
wndShowWeb->show_all();
}
}
void MainWindow::open_browser() {
#ifdef WEBKIT_FOUND
webkit_web_view_load_uri(one, link_doc);
wndWeb->show_all();
#else
this->template_open_browser();
#endif
}
void MainWindow::template_open_browser() {
string cmd = cmd_xdg + string(_(link_doc)) + " &";
string buf = "";
if (geteuid() == 0) { if (geteuid() == 0) {
string response_user = getlogin(); string response_user = getlogin();
cmd = "su -l " + response_user + " -c \" DISPLAY=$DISPLAY " + cmd + " \""; int size_s = std::snprintf(nullptr, 0, cmd_execute, response_user.c_str(), cmd.c_str()) + 1;
auto size = static_cast<size_t>(size_s);
std::unique_ptr<char[]> buf(new char[ size ]);
std::snprintf( buf.get(), size, cmd_execute, response_user.c_str(), cmd.c_str() );
cmd = std::string( buf.get(), buf.get() + size - 1 );
} }
index_error = system(cmd.c_str()); index_error = system(cmd.c_str());
} }
@ -435,8 +483,8 @@ void MainWindow::settings() {
spinPriority->set_increments(1.0, -1.0); spinPriority->set_increments(1.0, -1.0);
scalePriority->set_range(0, 19); scalePriority->set_range(0, 19);
scalePriority->set_value(0); scalePriority->set_value(0);
lblTimeEpriorityLow->set_text(gettext("19 (Low)")); lblTimeEpriorityLow->set_text(nice_19);
lblTime4EpriorityHigh->set_text(gettext("0 (High)")); lblTime4EpriorityHigh->set_text(nice_0);
scalePriority->set_inverted(true); scalePriority->set_inverted(true);
Gtk::Widget *boxWidget; Gtk::Widget *boxWidget;
builder->get_widget("boxColor", boxWidget); builder->get_widget("boxColor", boxWidget);
@ -456,7 +504,11 @@ void MainWindow::settings() {
btnBoxAboutDialog->set_visible(false); btnBoxAboutDialog->set_visible(false);
cmbTerminal->set_sensitive(false); cmbTerminal->set_sensitive(false);
ubl_make_plugs(boxAbout, boxAbout, socket_ext_id_I, 0); ubl_make_plugs(boxAbout, boxAbout, socket_ext_id_I, 0);
#ifdef WEBKIT_FOUND
one = WEBKIT_WEB_VIEW( webkit_web_view_new() );
three = Glib::wrap(GTK_WIDGET(one));
wndWeb->add(*three);
#endif
} }
void MainWindow::close_entry_app() { void MainWindow::close_entry_app() {
@ -641,7 +693,7 @@ string MainWindow::start_cmd(string user_cmd) {
str_nice_cmd = "nice -n " + to_string(spinPriority->get_value_as_int()) + " "; str_nice_cmd = "nice -n " + to_string(spinPriority->get_value_as_int()) + " ";
} }
if (user_cmd.length() == 0 && name_app.length() == 0 && path_file.length() == 0) { if (user_cmd.length() == 0 && name_app.length() == 0 && path_file.length() == 0) {
messageError->set_title(gettext("Attention")); messageError->set_title(str_localization_attention);
messageError->show(); messageError->show();
return ""; return "";
} }
@ -710,7 +762,7 @@ void MainWindow::denamic_cmd() {
name_app = ""; name_app = "";
user_cmd = ""; user_cmd = "";
txtCmd->set_text(user_cmd); txtCmd->set_text(user_cmd);
messageError->set_title(gettext("Attention")); messageError->set_title(str_localization_attention);
messageError->show(); messageError->show();
} }
else{ else{
@ -887,8 +939,8 @@ unsigned short MainWindow::read_uid_min_max(string filename, string search){
} }
void MainWindow::pars_users() { void MainWindow::pars_users() {
unsigned short uid_min = this->read_uid_min_max("/etc/login.defs", "UID_MIN"); unsigned short uid_min = this->read_uid_min_max(file_source_login_min_max, "UID_MIN");
unsigned short uid_max = this->read_uid_min_max("/etc/login.defs", "UID_MAX"); unsigned short uid_max = this->read_uid_min_max(file_source_login_min_max, "UID_MAX");
while (true) { while (true) {
errno = 0; errno = 0;
passwd* entry = getpwent(); passwd* entry = getpwent();
@ -929,10 +981,10 @@ void MainWindow::pars_apps() {
struct struct_App App; struct struct_App App;
string file_name = ""; string file_name = "";
string str_Categories; string str_Categories;
string path = "/usr/share/applications/"; string path = path_all_applications;
for (const auto & entry : fs::directory_iterator(path)) { for (const auto & entry : fs::directory_iterator(path)) {
file_name = entry.path().filename().string(); file_name = entry.path().filename().string();
path = "/usr/share/applications/"+file_name; path = string(path_all_applications) +file_name;
if (file_name.find(".desktop") != std::string::npos) { if (file_name.find(".desktop") != std::string::npos) {
GKeyFile *gfile=g_key_file_new(); GKeyFile *gfile=g_key_file_new();
g_key_file_load_from_file(gfile, path.c_str(), G_KEY_FILE_KEEP_TRANSLATIONS, NULL); g_key_file_load_from_file(gfile, path.c_str(), G_KEY_FILE_KEEP_TRANSLATIONS, NULL);
@ -975,15 +1027,11 @@ SettingsPlug::SettingsPlug(::Window p_socketID, Glib::RefPtr<Gtk::Builder> build
show_all_children(); show_all_children();
} }
MainWindow::~MainWindow() {
}
void help() { void help() {
string help = "GTK \"Run applications as another user with the specified priority\" for UBLinux\n\n" cout << str_help_h;
"Usage: ublexec [OPTIONS...]\n"
"Options:\n"
" -h, --help Show this help\n"
" -V, --version Show package version\n"
" -x APP_NAME Running the program\n"
" -e FILE_NAME Running the file\n";
cout << gettext(help.c_str());
} }

@ -16,16 +16,84 @@
#include <thread> #include <thread>
#include <algorithm> #include <algorithm>
#include <fstream> #include <fstream>
#include <dlfcn.h>
#include "ubl-util-standard.c" #include "ubl-util-standard.c"
#include <stdbool.h>
#include "ublexec-cm.h"
#ifdef WEBKIT_FOUND
#include <webkit2/webkit2.h>
#endif
#define copyright _("Copyright © UBSoft LLC, 2022 - ")
#define define_name_app _("Run as...")
#define name_app_1 _("ublexec")
#define website _("https://wiki.ublinux.com")
#define home_page _("Project Home Page")
#define space_name_app _(" Run as...")
#define str_about_1 _("About")
#define str_about _("About ubl-settings-datetime")
#define str_help _("Help")
#define str_save _("Save")
#define str_load _("Load")
#define save_all _("Save to global and local configuration")
#define save_local _("Save local configuration")
#define save_global _("Save global configuration")
#define load_global _("Load global configuration")
#define load_local _("Load local configuration")
#define read_online _("Read online")
#define cancel _("Cancel")
#define always_redirect _("Always redirect")
#define nothing_save _("Nothing to save!")
#define read_documentation_web _("Would you like to read documentation in the Web?")
#define redirected_documentation _("You will be redirected to documentation site, where user help pages are ""translated and supported by community.")
#define str_help_h _("GTK \"Run applications as another user with the specified priority\" for ""UBLinux\n""\n""Usage: ublexec [OPTIONS...]\n""Options:\n"" -h, --help\t Show this help\n"" -V, --version\t Show package version\n"" -x APP_NAME Running the program\n"" -e FILE_NAME Running the file\n")
#define str_version _("ublexec version: ")
#define nice_19 _("19 (Low)")
#define nice_0 _("0 (High)")
#define nice__20 _("-20 (High)")
#define str_close _("Close")
#define str_localization_system _("System")
#define str_localization_development _("Development")
#define str_localization_other _("Other")
#define str_localization_office _("Office")
#define str_localization_education _("Education")
#define str_localization_settings _("Settings")
#define str_localization_multimedia _("Multimedia")
#define str_localization_internet _("Internet")
#define str_localization_tools _("Tools")
#define str_localization_graphics _("Graphics")
#define str_localization_attention _("Attention")
#define str_localization_priority _("Priority")
#define str_run_of_user _("Run as another user:")
#define str_select_app_program _("Select an executable file or program")
#define str_change_priority _("Change startup priority")
#define str_run_terminal _("Run in the terminal emulator")
#define str_file_overview _("File Overview")
#define str_application_overview _("Application Overview")
#define str_run_applications_as_another _("Run applications as another user\nwith the specified priority")
#define str_localization_username _("User Name:")
#define str_selecting_programs _("Selecting Programs")
#define str_please_select_file _("Please select File")
#define str_localization_cmd_line _("Command Line")
#define str_localization_user _("User")
#define str_localization_team _("Team:")
#define str_run _("Run")
#define link_doc "https://wiki.ublinux.com/ru/Программное_обеспечениерограммы_и_утилиты/Все/ublexec"
#define cmd_xdg "xdg-open "
#define cmd_execute "su -l %s -c \" DISPLAY=$DISPLAY %s \""
#define path_app "/usr/bin/"
#define path_glade "/usr/share/ublexec/ui/ublexec.glade"
#define path_css "/usr/share/ublexec/css/ublexec.css"
#define app_name "ublexec"
#define path_img_head_background "/usr/share/ublexec/images/logo-background.png"
#define path_all_applications "/usr/share/applications/"
#define file_source_login_min_max "/etc/login.defs"
#define no_print_cmd "nohup %s > /dev/null 2>&1"
using namespace std; using namespace std;
extern const string path_app;
extern const string app_name;
extern const string path_glade;
extern const string path_css;
extern string name_app_cmd; extern string name_app_cmd;
extern const string path_img_head_background;
extern int socket_ext_id_I; extern int socket_ext_id_I;
extern int socket_trd_id_I; extern int socket_trd_id_I;
extern int flag_prog_file; extern int flag_prog_file;
@ -46,6 +114,7 @@ class MainWindow : public Gtk::ApplicationWindow {
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);
~MainWindow();
void template_apps_obj(Gtk::IconView *icon, Glib::RefPtr<Gtk::ListStore> &gtk_list_app); void template_apps_obj(Gtk::IconView *icon, Glib::RefPtr<Gtk::ListStore> &gtk_list_app);
void get_builder(); void get_builder();
void add_CSS(); void add_CSS();
@ -93,6 +162,8 @@ public:
void denamic_cmd(); void denamic_cmd();
void is_user_wheel(); void is_user_wheel();
void sudo_nice(); void sudo_nice();
void template_open_browser();
void open_browser();
vector <size_t> find_all(string &text, string &word); vector <size_t> find_all(string &text, string &word);
bool focus_out_txt_cmd(GdkEventFocus* event); bool focus_out_txt_cmd(GdkEventFocus* event);
bool focus_in_txt_cmd(GdkEventFocus* event); bool focus_in_txt_cmd(GdkEventFocus* event);
@ -205,6 +276,22 @@ public:
Gtk::Image *imgHeadBackground; Gtk::Image *imgHeadBackground;
Gtk::Overlay *overHead; Gtk::Overlay *overHead;
Gtk::Widget *boxAbout; Gtk::Widget *boxAbout;
Gtk::Label *lblHeaderAboutTopic;
Gtk::Label *lblHeadeWndWeb;
Gtk::Label *lblwebHeaderName;
Gtk::Label *lblhelpText;
Gtk::Label *lblhelpHeader;
Gtk::CheckButton *chkAlwaysOpenHelp;
Gtk::Button *btnReadHelp;
Gtk::Button *btnCancelHelp;
Gtk::Window *wndShowWeb;
#ifdef WEBKIT_FOUND
Gtk::Window *wndWeb;
Gtk::Widget *three;
WebKitWebView *one;
#endif
public: public:
string termunal_cmd[3] = {"konsole -e ", "xfce4-terminal -x ", "xterm -e "}; string termunal_cmd[3] = {"konsole -e ", "xfce4-terminal -x ", "xterm -e "};
string cmd_old = ""; string cmd_old = "";
@ -220,6 +307,7 @@ public:
bool flag_pkexec = false; bool flag_pkexec = false;
bool flag_su = false; bool flag_su = false;
bool flag_sudo = false; bool flag_sudo = false;
bool flag_open_browser = false;
string path_file_name; string path_file_name;
struct struct_App { struct struct_App {
string Name_desktop; string Name_desktop;

@ -0,0 +1 @@
#cmakedefine WEBKIT_FOUND

@ -9,18 +9,16 @@
</object> </object>
<object class="GtkAboutDialog" id="aboutWindows"> <object class="GtkAboutDialog" id="aboutWindows">
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="title" translatable="yes">О Программе</property>
<property name="resizable">False</property> <property name="resizable">False</property>
<property name="modal">True</property> <property name="modal">True</property>
<property name="window-position">center</property> <property name="window-position">center</property>
<property name="icon-name">com.ublinux.ublexec</property> <property name="icon-name">com.ublinux.ublexec</property>
<property name="type-hint">dialog</property> <property name="type-hint">dialog</property>
<property name="skip-taskbar-hint">True</property>
<property name="urgency-hint">True</property> <property name="urgency-hint">True</property>
<property name="accept-focus">False</property>
<property name="focus-on-map">False</property>
<property name="program-name">ublexec</property> <property name="program-name">ublexec</property>
<property name="version">1.0</property> <property name="version">1.0</property>
<property name="copyright" translatable="yes">Copyright © UBSoft LLC, 2022 - </property> <property name="copyright" translatable="yes">Copyright © 2022 - 2023, UBSoft LLC</property>
<property name="comments" translatable="yes">ublexec</property> <property name="comments" translatable="yes">ublexec</property>
<property name="website">https://ublinux.ru/</property> <property name="website">https://ublinux.ru/</property>
<property name="website-label" translatable="yes">Project Home Page</property> <property name="website-label" translatable="yes">Project Home Page</property>
@ -33,27 +31,19 @@
<property name="license-type">gpl-2-0</property> <property name="license-type">gpl-2-0</property>
<child internal-child="vbox"> <child internal-child="vbox">
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="spacing">2</property> <property name="spacing">2</property>
<child internal-child="action_area"> <child internal-child="action_area">
<object class="GtkButtonBox" id="btnBoxAboutDialog"> <object class="GtkButtonBox" id="btnBoxAboutDialog">
<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-end">5</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<property name="layout-style">end</property> <property name="layout-style">end</property>
<child>
<placeholder/>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">False</property> <property name="fill">False</property>
<property name="position">0</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -61,6 +51,28 @@
</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="show-close-button">True</property>
<child type="title">
<object class="GtkLabel" id="lblHeaderAboutTopic">
<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-bottom">2</property>
<property name="label" translatable="yes">ublexec</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
</object>
</child>
</object> </object>
<object class="GtkAdjustment" id="adjustment1"> <object class="GtkAdjustment" id="adjustment1">
<property name="lower">-20</property> <property name="lower">-20</property>
@ -1323,7 +1335,7 @@ with the specified priority</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="halign">start</property> <property name="halign">start</property>
<property name="label" translatable="yes" context="Setting the date and time" comments="Setting the date and time">Command Line</property> <property name="label" translatable="yes" context="ublexec" comments="ublexec">Command Line</property>
</object> </object>
</child> </child>
</object> </object>
@ -1550,7 +1562,7 @@ with the specified priority</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="halign">start</property> <property name="halign">start</property>
<property name="label" translatable="yes" context="Setting the date and time" comments="Setting the date and time">User</property> <property name="label" translatable="yes" context="ublexec" comments="ublexec">User</property>
</object> </object>
</child> </child>
</object> </object>
@ -1785,7 +1797,7 @@ with the specified priority</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="halign">start</property> <property name="halign">start</property>
<property name="label" translatable="yes" context="Setting the date and time" comments="Setting the date and time">Priority</property> <property name="label" translatable="yes" context="ublexec" comments="ublexec">Priority</property>
</object> </object>
</child> </child>
</object> </object>
@ -2060,4 +2072,238 @@ with the specified priority</property>
</object> </object>
</child> </child>
</object> </object>
<object class="GtkApplicationWindow" id="wndShowWeb">
<property name="can-focus">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="resizable">False</property>
<property name="default-width">450</property>
<property name="default-height">250</property>
<property name="icon-name">dialog-question-symbolic</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="valign">start</property>
<property name="xpad">20</property>
<property name="ypad">20</property>
<property name="icon-name">dialog-question-symbolic</property>
<property name="icon_size">6</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel" id="lblhelpHeader">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">start</property>
<property name="margin-top">10</property>
<property name="margin-bottom">5</property>
<property name="label" context="Would you like to read documentation in the Net?" comments="Would you like to read documentation in the Net?">Would you like to read documentation in the Web?</property>
<property name="wrap">True</property>
<property name="xalign">0</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
<style>
<class name="fgnb"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="lblhelpText">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="margin-right">10</property>
<property name="margin-end">10</property>
<property name="label" context="You will be redirected to documentation web site, where documentation are translated and supported by community." comments="You will be redirected to documentation web site, where documentation are translated and supported by community.">You will be redirected to documentation website where documentation is translated and supported by community.</property>
<property name="wrap">True</property>
<property name="xalign">0</property>
<style>
<class name="fgnb"/>
</style>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="chkAlwaysOpenHelp">
<property name="label" translatable="yes">Always redirect to online documentation</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">end</property>
<property name="margin-bottom">10</property>
<property name="draw-indicator">True</property>
<style>
<class name="label"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<style>
<class name="fgnb"/>
</style>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<style>
<class name="fgnb"/>
</style>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<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="spacing">30</property>
<property name="homogeneous">True</property>
<child>
<object class="GtkButton" id="btnCancelHelp">
<property name="label">Cancel</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<style>
<class name="button"/>
</style>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="btnReadHelp">
<property name="label">Read Online</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<style>
<class name="button"/>
</style>
</object>
<packing>
<property name="expand">True</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">1</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar" id="SettingsBar">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="show-close-button">True</property>
<child type="title">
<object class="GtkLabel" id="lblwebHeaderName">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">ublexec</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">32</property>
<property name="icon-name">dialog-question-symbolic</property>
</object>
</child>
</object>
</child>
</object>
<object class="GtkWindow" id="wndWeb">
<property name="width-request">800</property>
<property name="height-request">600</property>
<property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="icon-name">com.ublinux.ublexec</property>
<child>
<placeholder/>
</child>
<child type="titlebar">
<object class="GtkHeaderBar">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="show-close-button">True</property>
<child type="title">
<object class="GtkLabel" id="lblHeadeWndWeb">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">ublexec</property>
</object>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ublexec</property>
<property name="icon_size">5</property>
</object>
</child>
</object>
</child>
</object>
</interface> </interface>

@ -1,4 +1,4 @@
# Language translations for ublexec package. # Russian translations for ublexec package.
# Copyright (C) 2022, UBTech LLC # Copyright (C) 2022, UBTech LLC
# This file is distributed under the same license as the ublexec package. # This file is distributed under the same license as the ublexec package.
# UBLinux Team <info@ublinux.com>, 2022 # UBLinux Team <info@ublinux.com>, 2022
@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ublexec 1.0\n" "Project-Id-Version: ublexec 1.0\n"
"Report-Msgid-Bugs-To: info@ublinux.com\n" "Report-Msgid-Bugs-To: info@ublinux.com\n"
"POT-Creation-Date: 2023-01-01 00:00+0600\n" "POT-Creation-Date: 2023-04-25 15:52+0600\n"
"PO-Revision-Date: 2023-01-01 00:00+0600\n" "PO-Revision-Date: 2023-01-01 00:00+0600\n"
"Last-Translator: UBLinux Team <info@ublinux.com>\n" "Last-Translator: UBLinux Team <info@ublinux.com>\n"
"Language-Team: UBLinux Team <info@ublinux.com>\n" "Language-Team: UBLinux Team <info@ublinux.com>\n"
@ -17,24 +17,33 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
msgid "" #: source/ublexec.h:32 source/ublexec.cc:181 source/ublexec.cc:182
msgstr "" #: source/ublexec.cc:180 source/ublexec.cc:163
#: source/ublexec.cc:163
msgid " Run as..." msgid " Run as..."
msgstr "" msgstr ""
#: source/ublexec.cc:242 source/ublexec.cc:250 source/ublexec.cc:281 #: source/ublexec.h:53 source/ublexec.cc:274 source/ublexec.cc:282
#: source/ublexec.cc:236 source/ublexec.cc:244 source/ublexec.cc:275 #: source/ublexec.cc:313 source/ublexec.cc:272 source/ublexec.cc:280
#: source/ublexec.cc:311 source/ublexec.cc:242 source/ublexec.cc:250
#: source/ublexec.cc:281 source/ublexec.cc:236 source/ublexec.cc:244
#: source/ublexec.cc:275
msgid "-20 (High)" msgid "-20 (High)"
msgstr "" msgstr ""
#: source/ublexec.h:52 source/ublexec.cc:290 source/ublexec.cc:298
#: source/ublexec.cc:321 source/ublexec.cc:487 source/ublexec.cc:288
#: source/ublexec.cc:296 source/ublexec.cc:319 source/ublexec.cc:485
#: source/ublexec.cc:258 source/ublexec.cc:266 source/ublexec.cc:289 #: source/ublexec.cc:258 source/ublexec.cc:266 source/ublexec.cc:289
#: source/ublexec.cc:426 source/ublexec.cc:252 source/ublexec.cc:260 #: source/ublexec.cc:426 source/ublexec.cc:252 source/ublexec.cc:260
#: source/ublexec.cc:283 source/ublexec.cc:413 #: source/ublexec.cc:283 source/ublexec.cc:413
msgid "0 (High)" msgid "0 (High)"
msgstr "" msgstr ""
#: source/ublexec.h:51 source/ublexec.cc:273 source/ublexec.cc:281
#: source/ublexec.cc:289 source/ublexec.cc:297 source/ublexec.cc:312
#: source/ublexec.cc:320 source/ublexec.cc:486 source/ublexec.cc:271
#: source/ublexec.cc:279 source/ublexec.cc:287 source/ublexec.cc:295
#: source/ublexec.cc:310 source/ublexec.cc:318 source/ublexec.cc:484
#: source/ublexec.cc:241 source/ublexec.cc:249 source/ublexec.cc:257 #: source/ublexec.cc:241 source/ublexec.cc:249 source/ublexec.cc:257
#: source/ublexec.cc:265 source/ublexec.cc:280 source/ublexec.cc:288 #: source/ublexec.cc:265 source/ublexec.cc:280 source/ublexec.cc:288
#: source/ublexec.cc:425 source/ublexec.cc:235 source/ublexec.cc:243 #: source/ublexec.cc:425 source/ublexec.cc:235 source/ublexec.cc:243
@ -43,89 +52,178 @@ msgstr ""
msgid "19 (Low)" msgid "19 (Low)"
msgstr "" msgstr ""
#: source/ublexec.h:33 source/ublexec.cc:177 source/ublexec.cc:176
#: source/ublexec.cc:159 source/ublexec.cc:156 #: source/ublexec.cc:159 source/ublexec.cc:156
msgid "About" msgid "About"
msgstr "" msgstr ""
#: source/ublexec.h:34
msgid "About ubl-settings-datetime"
msgstr ""
#: source/ublexec.h:45 source/ublexec.cc:218 source/ublexec.cc:216
msgid "Always redirect"
msgstr ""
#: source/ublexec.h:72 source/ublexec.cc:210 source/ublexec.cc:208
#: source/ublexec.cc:191 source/ublexec.cc:186 #: source/ublexec.cc:191 source/ublexec.cc:186
msgid "Application Overview" msgid "Application Overview"
msgstr "" msgstr ""
#: source/ublexec.h:65 source/ublexec.cc:199 source/ublexec.cc:696
#: source/ublexec.cc:765 source/ublexec.cc:197 source/ublexec.cc:694
#: source/ublexec.cc:763 source/ublexec.cc:180 source/ublexec.cc:631
#: source/ublexec.cc:700
msgid "Attention"
msgstr ""
#: source/ublexec.h:44 source/ublexec.cc:217 source/ublexec.cc:215
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
#: source/ublexec.h:69 source/ublexec.cc:196 source/ublexec.cc:194
#: source/ublexec.cc:177 source/ublexec.cc:173 #: source/ublexec.cc:177 source/ublexec.cc:173
msgid "Change startup priority" msgid "Change startup priority"
msgstr "" msgstr ""
#: source/ublexec.cc:193 #: source/ublexec.h:54 source/ublexec.cc:212 source/ublexec.cc:210
msgid "Сancel" #: source/main.cc:197
msgid "Close"
msgstr "" msgstr ""
#: source/ublexec.h:77 source/ublexec.cc:189 source/ublexec.cc:187
#: source/ublexec.cc:170 source/ublexec.cc:166 #: source/ublexec.cc:170 source/ublexec.cc:166
msgid "Command Line" msgid "Command Line"
msgstr "" msgstr ""
#: source/ublexec.h:27 source/ublexec.cc:173 source/ublexec.cc:172
#: source/ublexec.cc:155 source/ublexec.cc:152 #: source/ublexec.cc:155 source/ublexec.cc:152
msgid "Copyright © UBSoft LLC, 2022 - " msgid "Copyright © UBSoft LLC, 2022 - "
msgstr "" msgstr ""
#: source/ublexec.h:56 source/ublexec.cc:208 source/ublexec.cc:206
#: source/ublexec.cc:189 source/ublexec.cc:184 #: source/ublexec.cc:189 source/ublexec.cc:184
msgid "Development" msgid "Development"
msgstr "" msgstr ""
#: source/ublexec.h:59 source/ublexec.cc:205 source/ublexec.cc:203
#: source/ublexec.cc:186 source/ublexec.cc:181 #: source/ublexec.cc:186 source/ublexec.cc:181
msgid "Education" msgid "Education"
msgstr "" msgstr ""
#: source/ublexec.h:71 source/ublexec.cc:211 source/ublexec.cc:209
#: source/ublexec.cc:192 source/ublexec.cc:187 #: source/ublexec.cc:192 source/ublexec.cc:187
msgid "File Overview" msgid "File Overview"
msgstr "" msgstr ""
#: source/ublexec.h:49
msgid ""
"GTK \"Run applications as another user with the specified priority\" for "
"UBLinux\n"
"\n"
"Usage: ublexec [OPTIONS...]\n"
"Options:\n"
" -h, --help\t Show this help\n"
" -V, --version\t Show package version\n"
" -x APP_NAME Running the program\n"
" -e FILE_NAME Running the file\n"
msgstr ""
#: source/ublexec.h:49
msgid ""
"GTK settings datetime for UBLinux\n"
"\n"
"Usage: ubl-settings-datetime [OPTIONS...]\n"
"Options:\n"
" -h, --help\t Show this help\n"
" -V, --version\t Show package version\n"
" --lock-datetime Lock date and time changes\n"
" --lock-timezone Lock time zone changes\n"
" --lock-ntp-mode Lock NTP mode selection\n"
" --lock-ntp-edit Lock editing NTP servers\n"
" --lock-sync-hwclock Lock sync hwclock mode selection\n"
" --lock-save Lock saving local and global configuration\n"
" --lock-save-local Lock save global configuration\n"
" --lock-save-global Lock load global configuration\n"
" --lock-load-global Lock load global configuration\n"
msgstr ""
#: source/ublexec.h:64 source/ublexec.cc:200 source/ublexec.cc:198
#: source/ublexec.cc:181 source/ublexec.cc:176 #: source/ublexec.cc:181 source/ublexec.cc:176
msgid "Graphics" msgid "Graphics"
msgstr "" msgstr ""
#: source/ublexec.h:35 source/ublexec.cc:176 source/ublexec.cc:175
#: source/ublexec.cc:158 source/ublexec.cc:155 #: source/ublexec.cc:158 source/ublexec.cc:155
msgid "Help" msgid "Help"
msgstr "" msgstr ""
#: source/ublexec.h:62 source/ublexec.cc:202 source/ublexec.cc:200
#: source/ublexec.cc:183 source/ublexec.cc:178 #: source/ublexec.cc:183 source/ublexec.cc:178
msgid "Internet" msgid "Internet"
msgstr "" msgstr ""
#: source/ublexec.h:37
msgid "Load"
msgstr ""
#: source/ublexec.h:41
msgid "Load global configuration"
msgstr ""
#: source/ublexec.h:42
msgid "Load local configuration"
msgstr ""
#: source/ublexec.h:61 source/ublexec.cc:203 source/ublexec.cc:201
#: source/ublexec.cc:184 source/ublexec.cc:179 #: source/ublexec.cc:184 source/ublexec.cc:179
msgid "Multimedia" msgid "Multimedia"
msgstr "" msgstr ""
#: source/ublexec.h:46
msgid "Nothing to save!"
msgstr ""
#: source/ublexec.h:58 source/ublexec.cc:206 source/ublexec.cc:204
#: source/ublexec.cc:187 source/ublexec.cc:182 #: source/ublexec.cc:187 source/ublexec.cc:182
msgid "Office" msgid "Office"
msgstr "" msgstr ""
#: source/ublexec.h:57 source/ublexec.cc:207 source/ublexec.cc:205
#: source/ublexec.cc:188 source/ublexec.cc:183 #: source/ublexec.cc:188 source/ublexec.cc:183
msgid "Other" msgid "Other"
msgstr "" msgstr ""
#: source/ublexec.h:76 source/ublexec.cc:186 source/ublexec.cc:184
#: source/ublexec.cc:167 source/ublexec.cc:163 #: source/ublexec.cc:167 source/ublexec.cc:163
msgid "Please select File" msgid "Please select File"
msgstr "" msgstr ""
#: source/ublexec.h:66 source/ublexec.cc:195 source/ublexec.cc:193
#: source/ublexec.cc:176 source/ublexec.cc:172 #: source/ublexec.cc:176 source/ublexec.cc:172
msgid "Priority" msgid "Priority"
msgstr "" msgstr ""
#: source/ublexec.cc:178 source/ublexec.cc:174 #: source/ublexec.cc:197 source/ublexec.cc:195 source/ublexec.cc:178
#: source/ublexec.cc:174
msgid "Priority:" msgid "Priority:"
msgstr "" msgstr ""
#: source/ublexec.h:31 source/ublexec.cc:179 source/ublexec.cc:178
#: source/ublexec.cc:161 source/ublexec.cc:158 #: source/ublexec.cc:161 source/ublexec.cc:158
msgid "Project Home Page" msgid "Project Home Page"
msgstr "" msgstr ""
#: source/ublexec.h:43 source/ublexec.cc:216 source/ublexec.cc:214
msgid "Read online"
msgstr ""
#: source/ublexec.h:80 source/ublexec.cc:185 source/ublexec.cc:183
#: source/ublexec.cc:162 #: source/ublexec.cc:162
msgid "Run" msgid "Run"
msgstr "" msgstr ""
#: source/ublexec.h:73 source/ublexec.cc:188 source/ublexec.cc:186
#: source/ublexec.cc:169 source/ublexec.cc:165 #: source/ublexec.cc:169 source/ublexec.cc:165
msgid "" msgid ""
"Run applications as another user\n" "Run applications as another user\n"
@ -135,31 +233,56 @@ msgstr ""
msgid "Run as another user" msgid "Run as another user"
msgstr "" msgstr ""
#: source/ublexec.h:67 source/ublexec.cc:193 source/ublexec.cc:191
#: source/ublexec.cc:174 source/ublexec.cc:170 #: source/ublexec.cc:174 source/ublexec.cc:170
msgid "Run as another user:" msgid "Run as another user:"
msgstr "" msgstr ""
#: source/ublexec.cc:160 source/ublexec.cc:164 source/ublexec.cc:165 #: source/ublexec.h:28 source/ublexec.cc:178 source/ublexec.cc:183
#: source/ublexec.cc:166 #: source/ublexec.cc:184 source/ublexec.cc:220 source/ublexec.cc:221
#: source/ublexec.cc:177 source/ublexec.cc:181 source/ublexec.cc:182
#: source/ublexec.cc:218 source/ublexec.cc:219 source/ublexec.cc:160
#: source/ublexec.cc:164 source/ublexec.cc:165 source/ublexec.cc:166
msgid "Run as..." msgid "Run as..."
msgstr "" msgstr ""
#: source/ublexec.h:70 source/ublexec.cc:191 source/ublexec.cc:189
#: source/ublexec.cc:172 source/ublexec.cc:168 #: source/ublexec.cc:172 source/ublexec.cc:168
msgid "Run in the terminal emulator" msgid "Run in the terminal emulator"
msgstr "" msgstr ""
#: source/ublexec.h:36
msgid "Save"
msgstr ""
#: source/ublexec.h:40
msgid "Save global configuration"
msgstr ""
#: source/ublexec.h:39
msgid "Save local configuration"
msgstr ""
#: source/ublexec.h:38
msgid "Save to global and local configuration"
msgstr ""
#: source/ublexec.h:68 source/ublexec.cc:198 source/ublexec.cc:196
#: source/ublexec.cc:179 source/ublexec.cc:175 #: source/ublexec.cc:179 source/ublexec.cc:175
msgid "Select an executable file or program" msgid "Select an executable file or program"
msgstr "" msgstr ""
#: source/ublexec.h:75 source/ublexec.cc:187 source/ublexec.cc:185
#: source/ublexec.cc:168 source/ublexec.cc:164 #: source/ublexec.cc:168 source/ublexec.cc:164
msgid "Selecting Programs" msgid "Selecting Programs"
msgstr "" msgstr ""
#: source/ublexec.h:60 source/ublexec.cc:204 source/ublexec.cc:202
#: source/ublexec.cc:185 source/ublexec.cc:180 #: source/ublexec.cc:185 source/ublexec.cc:180
msgid "Settings" msgid "Settings"
msgstr "" msgstr ""
#: source/ublexec.h:55 source/ublexec.cc:209 source/ublexec.cc:207
#: source/ublexec.cc:190 source/ublexec.cc:185 #: source/ublexec.cc:190 source/ublexec.cc:185
msgid "System" msgid "System"
msgstr "" msgstr ""
@ -167,14 +290,17 @@ msgstr ""
msgid "Team" msgid "Team"
msgstr "" msgstr ""
#: source/ublexec.h:79 source/ublexec.cc:190 source/ublexec.cc:188
#: source/ublexec.cc:171 source/ublexec.cc:167 #: source/ublexec.cc:171 source/ublexec.cc:167
msgid "Team:" msgid "Team:"
msgstr "" msgstr ""
#: source/ublexec.h:63 source/ublexec.cc:201 source/ublexec.cc:199
#: source/ublexec.cc:182 source/ublexec.cc:177 #: source/ublexec.cc:182 source/ublexec.cc:177
msgid "Tools" msgid "Tools"
msgstr "" msgstr ""
#: source/ublexec.h:78 source/ublexec.cc:192 source/ublexec.cc:190
#: source/ublexec.cc:173 source/ublexec.cc:169 #: source/ublexec.cc:173 source/ublexec.cc:169
msgid "User" msgid "User"
msgstr "" msgstr ""
@ -182,14 +308,22 @@ msgstr ""
msgid "User Name" msgid "User Name"
msgstr "" msgstr ""
#: source/ublexec.h:74 source/ublexec.cc:194 source/ublexec.cc:192
#: source/ublexec.cc:175 source/ublexec.cc:171 #: source/ublexec.cc:175 source/ublexec.cc:171
msgid "User Name:" msgid "User Name:"
msgstr "" msgstr ""
#: source/ublexec.cc:180 source/ublexec.cc:631 source/ublexec.cc:700 #: source/ublexec.h:47 source/ublexec.cc:213 source/ublexec.cc:211
msgid "Attention" msgid "Would you like to read documentation in the Web?"
msgstr "" msgstr ""
#: source/ublexec.h:48 source/ublexec.cc:214 source/ublexec.cc:212
msgid ""
"You will be redirected to documentation site, where user help pages are "
"translated and supported by community."
msgstr ""
#: source/ublexec.h:30 source/ublexec.cc:175 source/ublexec.cc:174
#: source/ublexec.cc:157 source/ublexec.cc:154 #: source/ublexec.cc:157 source/ublexec.cc:154
msgid "https://wiki.ublinux.com" msgid "https://wiki.ublinux.com"
msgstr "" msgstr ""
@ -208,21 +342,22 @@ msgstr ""
msgid "sudo" msgid "sudo"
msgstr "" msgstr ""
#: source/ublexec.cc:157 source/ublexec.cc:160 source/ublexec.cc:161 #: source/ublexec.cc:219 source/ublexec.cc:217
msgid "ublexec" msgid "ubl-settings-bootloader"
msgstr "" msgstr ""
msgid "ОК" #: source/ublexec.h:29 source/ublexec.cc:157 source/ublexec.cc:160
#: source/ublexec.cc:161
msgid "ublexec"
msgstr "" msgstr ""
#: source/main.cc:60 #: source/ublexec.h:50 source/main.cc:60 source/main.cc:970
msgid "ublexec version: " msgid "ublexec version: "
msgstr "" msgstr ""
#: source/main.cc:970 msgid "ОК"
msgid "ublexec version: "
msgstr "" msgstr ""
#: source/main.cc:197 #: source/ublexec.cc:193
msgid "Close" msgid "Сancel"
msgstr "" msgstr ""

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ublexec 1.0\n" "Project-Id-Version: ublexec 1.0\n"
"Report-Msgid-Bugs-To: info@ublinux.com\n" "Report-Msgid-Bugs-To: info@ublinux.com\n"
"POT-Creation-Date: 2023-01-01 00:00+0600\n" "POT-Creation-Date: 2023-04-24 11:43+0600\n"
"PO-Revision-Date: 2023-01-01 00:00+0600\n" "PO-Revision-Date: 2023-01-01 00:00+0600\n"
"Last-Translator: UBLinux Team <info@ublinux.com>\n" "Last-Translator: UBLinux Team <info@ublinux.com>\n"
"Language-Team: Russian - UBLinux Team <info@ublinux.com>\n" "Language-Team: Russian - UBLinux Team <info@ublinux.com>\n"
@ -17,21 +17,33 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: source/ublexec.cc:163 #: source/ublexec.h:32 source/ublexec.cc:181 source/ublexec.cc:182
#: source/ublexec.cc:180 source/ublexec.cc:163
msgid " Run as..." msgid " Run as..."
msgstr "О программе ublexec" msgstr "О программе ublexec"
#: source/ublexec.cc:242 source/ublexec.cc:250 source/ublexec.cc:281 #: source/ublexec.h:53 source/ublexec.cc:274 source/ublexec.cc:282
#: source/ublexec.cc:236 source/ublexec.cc:244 source/ublexec.cc:275 #: source/ublexec.cc:313 source/ublexec.cc:272 source/ublexec.cc:280
#: source/ublexec.cc:311 source/ublexec.cc:242 source/ublexec.cc:250
#: source/ublexec.cc:281 source/ublexec.cc:236 source/ublexec.cc:244
#: source/ublexec.cc:275
msgid "-20 (High)" msgid "-20 (High)"
msgstr "-20 (Высокий)" msgstr "-20 (Высокий)"
#: source/ublexec.h:52 source/ublexec.cc:290 source/ublexec.cc:298
#: source/ublexec.cc:321 source/ublexec.cc:487 source/ublexec.cc:288
#: source/ublexec.cc:296 source/ublexec.cc:319 source/ublexec.cc:485
#: source/ublexec.cc:258 source/ublexec.cc:266 source/ublexec.cc:289 #: source/ublexec.cc:258 source/ublexec.cc:266 source/ublexec.cc:289
#: source/ublexec.cc:426 source/ublexec.cc:252 source/ublexec.cc:260 #: source/ublexec.cc:426 source/ublexec.cc:252 source/ublexec.cc:260
#: source/ublexec.cc:283 source/ublexec.cc:413 #: source/ublexec.cc:283 source/ublexec.cc:413
msgid "0 (High)" msgid "0 (High)"
msgstr "0 (Высокий)" msgstr "0 (Высокий)"
#: source/ublexec.h:51 source/ublexec.cc:273 source/ublexec.cc:281
#: source/ublexec.cc:289 source/ublexec.cc:297 source/ublexec.cc:312
#: source/ublexec.cc:320 source/ublexec.cc:486 source/ublexec.cc:271
#: source/ublexec.cc:279 source/ublexec.cc:287 source/ublexec.cc:295
#: source/ublexec.cc:310 source/ublexec.cc:318 source/ublexec.cc:484
#: source/ublexec.cc:241 source/ublexec.cc:249 source/ublexec.cc:257 #: source/ublexec.cc:241 source/ublexec.cc:249 source/ublexec.cc:257
#: source/ublexec.cc:265 source/ublexec.cc:280 source/ublexec.cc:288 #: source/ublexec.cc:265 source/ublexec.cc:280 source/ublexec.cc:288
#: source/ublexec.cc:425 source/ublexec.cc:235 source/ublexec.cc:243 #: source/ublexec.cc:425 source/ublexec.cc:235 source/ublexec.cc:243
@ -40,89 +52,187 @@ msgstr "0 (Высокий)"
msgid "19 (Low)" msgid "19 (Low)"
msgstr "19 (Низкий)" msgstr "19 (Низкий)"
#: source/ublexec.h:33 source/ublexec.cc:177 source/ublexec.cc:176
#: source/ublexec.cc:159 source/ublexec.cc:156 #: source/ublexec.cc:159 source/ublexec.cc:156
msgid "About" msgid "About"
msgstr "О программе" msgstr "О программе"
#: source/ublexec.h:34
msgid "About ubl-settings-datetime"
msgstr ""
#: source/ublexec.h:45 source/ublexec.cc:218 source/ublexec.cc:216
msgid "Always redirect"
msgstr "Всегда перенаправлять"
#: source/ublexec.h:72 source/ublexec.cc:210 source/ublexec.cc:208
#: source/ublexec.cc:191 source/ublexec.cc:186 #: source/ublexec.cc:191 source/ublexec.cc:186
msgid "Application Overview" msgid "Application Overview"
msgstr "Обзор приложений" msgstr "Обзор приложений"
#: source/ublexec.h:65 source/ublexec.cc:199 source/ublexec.cc:696
#: source/ublexec.cc:765 source/ublexec.cc:197 source/ublexec.cc:694
#: source/ublexec.cc:763 source/ublexec.cc:180 source/ublexec.cc:631
#: source/ublexec.cc:700
msgid "Attention"
msgstr "Внимание"
#: source/ublexec.h:44 source/ublexec.cc:217 source/ublexec.cc:215
msgid "Cancel" msgid "Cancel"
msgstr "Отмена" msgstr "Отменить"
#: source/ublexec.h:69 source/ublexec.cc:196 source/ublexec.cc:194
#: source/ublexec.cc:177 source/ublexec.cc:173 #: source/ublexec.cc:177 source/ublexec.cc:173
msgid "Change startup priority" msgid "Change startup priority"
msgstr "Изменить приоритет запуска" msgstr "Изменить приоритет запуска"
#: source/ublexec.cc:193 #: source/ublexec.h:54 source/ublexec.cc:212 source/ublexec.cc:210
msgid "Сancel" #: source/main.cc:197
msgstr "Отмена" msgid "Close"
msgstr "Закрыть"
#: source/ublexec.h:77 source/ublexec.cc:189 source/ublexec.cc:187
#: source/ublexec.cc:170 source/ublexec.cc:166 #: source/ublexec.cc:170 source/ublexec.cc:166
msgid "Command Line" msgid "Command Line"
msgstr "Командная строка" msgstr "Командная строка"
#: source/ublexec.h:27 source/ublexec.cc:173 source/ublexec.cc:172
#: source/ublexec.cc:155 source/ublexec.cc:152 #: source/ublexec.cc:155 source/ublexec.cc:152
msgid "Copyright © UBSoft LLC, 2022 - " msgid "Copyright © UBSoft LLC, 2022 - "
msgstr "Авторские права © ООО \"Юбисофт\", 2022 - " msgstr "Авторские права © ООО \"Юбисофт\", 2022 - "
#: source/ublexec.h:56 source/ublexec.cc:208 source/ublexec.cc:206
#: source/ublexec.cc:189 source/ublexec.cc:184 #: source/ublexec.cc:189 source/ublexec.cc:184
msgid "Development" msgid "Development"
msgstr "Разработка" msgstr "Разработка"
#: source/ublexec.h:59 source/ublexec.cc:205 source/ublexec.cc:203
#: source/ublexec.cc:186 source/ublexec.cc:181 #: source/ublexec.cc:186 source/ublexec.cc:181
msgid "Education" msgid "Education"
msgstr "Образование" msgstr "Образование"
#: source/ublexec.h:71 source/ublexec.cc:211 source/ublexec.cc:209
#: source/ublexec.cc:192 source/ublexec.cc:187 #: source/ublexec.cc:192 source/ublexec.cc:187
msgid "File Overview" msgid "File Overview"
msgstr "Обзор файлов" msgstr "Обзор файлов"
#: source/ublexec.h:49
msgid ""
"GTK \"Run applications as another user with the specified priority\" for "
"UBLinux\n"
"\n"
"Usage: ublexec [OPTIONS...]\n"
"Options:\n"
" -h, --help\t Show this help\n"
" -V, --version\t Show package version\n"
" -x APP_NAME Running the program\n"
" -e FILE_NAME Running the file\n"
msgstr ""
"GTK-утилита \"Запускать приложения от имени другого пользователя с указанным "
"приоритетом\" для UBLinux\n"
"\n"
"Использование: ublexec [Параметры приложения...]\n"
"Параметры приложения:\n"
" -h, --help\t Показать параметры справки\n"
" -V, --version\t Показать версию пакета\n"
" -x APP_NAME Запуск программы\n"
" -e FILE_NAME Запуск файла\n"
#: source/ublexec.h:49
msgid ""
"GTK settings datetime for UBLinux\n"
"\n"
"Usage: ubl-settings-datetime [OPTIONS...]\n"
"Options:\n"
" -h, --help\t Show this help\n"
" -V, --version\t Show package version\n"
" --lock-datetime Lock date and time changes\n"
" --lock-timezone Lock time zone changes\n"
" --lock-ntp-mode Lock NTP mode selection\n"
" --lock-ntp-edit Lock editing NTP servers\n"
" --lock-sync-hwclock Lock sync hwclock mode selection\n"
" --lock-save Lock saving local and global configuration\n"
" --lock-save-local Lock save global configuration\n"
" --lock-save-global Lock load global configuration\n"
" --lock-load-global Lock load global configuration\n"
msgstr ""
#: source/ublexec.h:64 source/ublexec.cc:200 source/ublexec.cc:198
#: source/ublexec.cc:181 source/ublexec.cc:176 #: source/ublexec.cc:181 source/ublexec.cc:176
msgid "Graphics" msgid "Graphics"
msgstr "Графика" msgstr "Графика"
#: source/ublexec.h:35 source/ublexec.cc:176 source/ublexec.cc:175
#: source/ublexec.cc:158 source/ublexec.cc:155 #: source/ublexec.cc:158 source/ublexec.cc:155
msgid "Help" msgid "Help"
msgstr "Справка" msgstr "Справка"
#: source/ublexec.h:62 source/ublexec.cc:202 source/ublexec.cc:200
#: source/ublexec.cc:183 source/ublexec.cc:178 #: source/ublexec.cc:183 source/ublexec.cc:178
msgid "Internet" msgid "Internet"
msgstr "Интернет" msgstr "Интернет"
#: source/ublexec.h:37
msgid "Load"
msgstr ""
#: source/ublexec.h:41
msgid "Load global configuration"
msgstr ""
#: source/ublexec.h:42
msgid "Load local configuration"
msgstr ""
#: source/ublexec.h:61 source/ublexec.cc:203 source/ublexec.cc:201
#: source/ublexec.cc:184 source/ublexec.cc:179 #: source/ublexec.cc:184 source/ublexec.cc:179
msgid "Multimedia" msgid "Multimedia"
msgstr "Мультимедиа" msgstr "Мультимедиа"
#: source/ublexec.h:46
msgid "Nothing to save!"
msgstr ""
#: source/ublexec.h:58 source/ublexec.cc:206 source/ublexec.cc:204
#: source/ublexec.cc:187 source/ublexec.cc:182 #: source/ublexec.cc:187 source/ublexec.cc:182
msgid "Office" msgid "Office"
msgstr "Офис" msgstr "Офис"
#: source/ublexec.h:57 source/ublexec.cc:207 source/ublexec.cc:205
#: source/ublexec.cc:188 source/ublexec.cc:183 #: source/ublexec.cc:188 source/ublexec.cc:183
msgid "Other" msgid "Other"
msgstr "Прочие" msgstr "Прочие"
#: source/ublexec.h:76 source/ublexec.cc:186 source/ublexec.cc:184
#: source/ublexec.cc:167 source/ublexec.cc:163 #: source/ublexec.cc:167 source/ublexec.cc:163
msgid "Please select File" msgid "Please select File"
msgstr "Пожалуйста выберите Файл" msgstr "Пожалуйста выберите Файл"
#: source/ublexec.h:66 source/ublexec.cc:195 source/ublexec.cc:193
#: source/ublexec.cc:176 source/ublexec.cc:172 #: source/ublexec.cc:176 source/ublexec.cc:172
msgid "Priority" msgid "Priority"
msgstr "Приоритет" msgstr "Приоритет"
#: source/ublexec.cc:178 source/ublexec.cc:174 #: source/ublexec.cc:197 source/ublexec.cc:195 source/ublexec.cc:178
#: source/ublexec.cc:174
msgid "Priority:" msgid "Priority:"
msgstr "Приоритет:" msgstr "Приоритет:"
#: source/ublexec.h:31 source/ublexec.cc:179 source/ublexec.cc:178
#: source/ublexec.cc:161 source/ublexec.cc:158 #: source/ublexec.cc:161 source/ublexec.cc:158
msgid "Project Home Page" msgid "Project Home Page"
msgstr "Домашняя страница проекта" msgstr "Домашняя страница проекта"
#: source/ublexec.h:43 source/ublexec.cc:216 source/ublexec.cc:214
msgid "Read online"
msgstr "Прочитать онлайн"
#: source/ublexec.h:80 source/ublexec.cc:185 source/ublexec.cc:183
#: source/ublexec.cc:162 #: source/ublexec.cc:162
msgid "Run" msgid "Run"
msgstr "Запустить" msgstr "Запустить"
#: source/ublexec.h:73 source/ublexec.cc:188 source/ublexec.cc:186
#: source/ublexec.cc:169 source/ublexec.cc:165 #: source/ublexec.cc:169 source/ublexec.cc:165
msgid "" msgid ""
"Run applications as another user\n" "Run applications as another user\n"
@ -135,31 +245,56 @@ msgstr ""
msgid "Run as another user" msgid "Run as another user"
msgstr "Выполнить от имени другого пользователя:" msgstr "Выполнить от имени другого пользователя:"
#: source/ublexec.h:67 source/ublexec.cc:193 source/ublexec.cc:191
#: source/ublexec.cc:174 source/ublexec.cc:170 #: source/ublexec.cc:174 source/ublexec.cc:170
msgid "Run as another user:" msgid "Run as another user:"
msgstr "Выполнить от имени другого пользователя:" msgstr "Выполнить от имени другого пользователя:"
#: source/ublexec.cc:160 source/ublexec.cc:164 source/ublexec.cc:165 #: source/ublexec.h:28 source/ublexec.cc:178 source/ublexec.cc:183
#: source/ublexec.cc:166 #: source/ublexec.cc:184 source/ublexec.cc:220 source/ublexec.cc:221
#: source/ublexec.cc:177 source/ublexec.cc:181 source/ublexec.cc:182
#: source/ublexec.cc:218 source/ublexec.cc:219 source/ublexec.cc:160
#: source/ublexec.cc:164 source/ublexec.cc:165 source/ublexec.cc:166
msgid "Run as..." msgid "Run as..."
msgstr "Выполнить как..." msgstr "Выполнить как..."
#: source/ublexec.h:70 source/ublexec.cc:191 source/ublexec.cc:189
#: source/ublexec.cc:172 source/ublexec.cc:168 #: source/ublexec.cc:172 source/ublexec.cc:168
msgid "Run in the terminal emulator" msgid "Run in the terminal emulator"
msgstr "Выполнить в эмуляторе терминала" msgstr "Выполнить в эмуляторе терминала"
#: source/ublexec.h:36
msgid "Save"
msgstr ""
#: source/ublexec.h:40
msgid "Save global configuration"
msgstr ""
#: source/ublexec.h:39
msgid "Save local configuration"
msgstr ""
#: source/ublexec.h:38
msgid "Save to global and local configuration"
msgstr ""
#: source/ublexec.h:68 source/ublexec.cc:198 source/ublexec.cc:196
#: source/ublexec.cc:179 source/ublexec.cc:175 #: source/ublexec.cc:179 source/ublexec.cc:175
msgid "Select an executable file or program" msgid "Select an executable file or program"
msgstr "Выберите исполняемый файл или программу" msgstr "Выберите исполняемый файл или программу"
#: source/ublexec.h:75 source/ublexec.cc:187 source/ublexec.cc:185
#: source/ublexec.cc:168 source/ublexec.cc:164 #: source/ublexec.cc:168 source/ublexec.cc:164
msgid "Selecting Programs" msgid "Selecting Programs"
msgstr "Выбор программ" msgstr "Выбор программ"
#: source/ublexec.h:60 source/ublexec.cc:204 source/ublexec.cc:202
#: source/ublexec.cc:185 source/ublexec.cc:180 #: source/ublexec.cc:185 source/ublexec.cc:180
msgid "Settings" msgid "Settings"
msgstr "Настройки" msgstr "Настройки"
#: source/ublexec.h:55 source/ublexec.cc:209 source/ublexec.cc:207
#: source/ublexec.cc:190 source/ublexec.cc:185 #: source/ublexec.cc:190 source/ublexec.cc:185
msgid "System" msgid "System"
msgstr "Система" msgstr "Система"
@ -168,14 +303,17 @@ msgstr "Система"
msgid "Team" msgid "Team"
msgstr "Команда:" msgstr "Команда:"
#: source/ublexec.h:79 source/ublexec.cc:190 source/ublexec.cc:188
#: source/ublexec.cc:171 source/ublexec.cc:167 #: source/ublexec.cc:171 source/ublexec.cc:167
msgid "Team:" msgid "Team:"
msgstr "Команда:" msgstr "Команда:"
#: source/ublexec.h:63 source/ublexec.cc:201 source/ublexec.cc:199
#: source/ublexec.cc:182 source/ublexec.cc:177 #: source/ublexec.cc:182 source/ublexec.cc:177
msgid "Tools" msgid "Tools"
msgstr "Инструменты" msgstr "Инструменты"
#: source/ublexec.h:78 source/ublexec.cc:192 source/ublexec.cc:190
#: source/ublexec.cc:173 source/ublexec.cc:169 #: source/ublexec.cc:173 source/ublexec.cc:169
msgid "User" msgid "User"
msgstr "Пользователь" msgstr "Пользователь"
@ -184,14 +322,24 @@ msgstr "Пользователь"
msgid "User Name" msgid "User Name"
msgstr "Имя пользователя:" msgstr "Имя пользователя:"
#: source/ublexec.h:74 source/ublexec.cc:194 source/ublexec.cc:192
#: source/ublexec.cc:175 source/ublexec.cc:171 #: source/ublexec.cc:175 source/ublexec.cc:171
msgid "User Name:" msgid "User Name:"
msgstr "Имя пользователя:" msgstr "Имя пользователя:"
#: source/ublexec.cc:180 source/ublexec.cc:631 source/ublexec.cc:700 #: source/ublexec.h:47 source/ublexec.cc:213 source/ublexec.cc:211
msgid "Attention" msgid "Would you like to read documentation in the Web?"
msgstr "Внимание" msgstr "Вы хотите прочитать справку в Сети?"
#: source/ublexec.h:48 source/ublexec.cc:214 source/ublexec.cc:212
msgid ""
"You will be redirected to documentation site, where user help pages are "
"translated and supported by community."
msgstr ""
"Вы будете перенаправлены на сайт с документацией где страницы помощи "
"переводятся и поддерживаются сообществом."
#: source/ublexec.h:30 source/ublexec.cc:175 source/ublexec.cc:174
#: source/ublexec.cc:157 source/ublexec.cc:154 #: source/ublexec.cc:157 source/ublexec.cc:154
msgid "https://wiki.ublinux.com" msgid "https://wiki.ublinux.com"
msgstr "https://wiki.ublinux.ru" msgstr "https://wiki.ublinux.ru"
@ -211,35 +359,23 @@ msgstr "su"
msgid "sudo" msgid "sudo"
msgstr "sudo" msgstr "sudo"
#: source/ublexec.cc:157 source/ublexec.cc:160 source/ublexec.cc:161 #: source/ublexec.cc:219 source/ublexec.cc:217
msgid "ubl-settings-bootloader"
msgstr ""
#: source/ublexec.h:29 source/ublexec.cc:157 source/ublexec.cc:160
#: source/ublexec.cc:161
#, fuzzy #, fuzzy
msgid "ublexec" msgid "ublexec"
msgstr "pkexec" msgstr "pkexec"
msgid "ОК" #: source/ublexec.h:50 source/main.cc:60 source/main.cc:970
msgstr "ОК"
#: source/main.cc:60 source/main.cc:60
msgid "ublexec version: " msgid "ublexec version: "
msgstr "ublexec версия: " msgstr "ublexec версия: "
msgid "" msgid "ОК"
"GTK \"Run applications as another user with the specified priority\" for UBLinux\n\n" msgstr "ОК"
"Usage: ublexec [OPTIONS...]\n"
"Options:\n"
" -h, --help Show this help\n"
" -V, --version Show package version\n"
" -x APP_NAME Running the program\n"
" -e FILE_NAME Running the file\n"
msgstr ""
"GTK-утилита \"Запускать приложения от имени другого пользователя с указанным приоритетом\" для UBLinux\n\n"
"Использование: ublexec [Параметры приложения...]\n"
"Параметры приложения:\n"
" -h, --help\t Показать параметры справки\n"
" -V, --version\t Показать версию пакета\n"
" -x APP_NAME Запуск программы\n"
" -e FILE_NAME Запуск файла\n"
#: source/main.cc:197 #: source/ublexec.cc:193
msgid "Close" msgid "Сancel"
msgstr "Закрыть" msgstr "Отмена"

Loading…
Cancel
Save