Added root button; Fixed starting in ubl-settings-manager with sockets

parent 93f9232f18
commit c7af898d30

@ -12,7 +12,6 @@ DEPENDS = /bin/cmake
PREFIX ?= /usr/local
PKGNAME = $(MAKEFILE_DIR)
FILE_VER = source/${PKGNAME}.h
PKGIDENT = $(subst /,-,$(subst /usr,,${PREFIX}))
default_target: all
@ -22,21 +21,23 @@ all: init build
init:
@echo "Initialize ..."; \
if [ -d ".git" ]; then \
if [[ -d ".git" ]]; then \
LATEST_TAG=$$(git describe --abbrev=0 --tags | sed 's/^v//'); \
if [ -z "$${LATEST_TAG}" ]; then \
LATEST_TAG="0.0"; \
if [[ -z "$${LATEST_TAG}" ]]; \
then \
LATEST_TAG=$$"0.0"; \
echo "$${LATEST_TAG} is empty"; \
fi; \
else \
LATEST_TAG="Development"; \
fi; \
sed -r "s/^(static string version_application).*/\1 = \"$${LATEST_TAG}\";/" -i ${FILE_VER}; \
sed -r "s/^(string version_application).*/\1 = \"$${LATEST_TAG}\";/" -i ${FILE_VER}; \
echo "-- Build path: ${CMAKE_BUILD_DIR}"
depend:
@echo "Check depends ..."
@for FILE_DEPEND in $(DEPENDS); do \
if [ ! -f $${FILE_DEPEND} ]; then \
if [[ ! -f "$${FILE_DEPEND}" ]]; then \
echo "ERROR: Depend '$${FILE_DEPEND}' not found !"; \
exit 1; \
fi; \
@ -46,21 +47,21 @@ depend:
debug:
@echo "Debug ..."
if [ ! -d ${CMAKE_BUILD_DIR} ]; then \
if [[ ! -d "${CMAKE_BUILD_DIR}" ]]; then \
$(CMAKE_COMMAND) -S${CMAKE_SOURCE_DIR} -B${CMAKE_BUILD_DIR} -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX="${PREFIX}"; \
fi; \
echo "Debug: OK"
prepare:
@echo "Prepare ..."; \
if [ ! -d ${CMAKE_BUILD_DIR} ]; then \
if [[ ! -d "${CMAKE_BUILD_DIR}" ]]; then \
$(CMAKE_COMMAND) -S${CMAKE_SOURCE_DIR} -B${CMAKE_BUILD_DIR} -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${PREFIX}"; \
fi; \
echo "Prepare: OK"
check:
@echo "Check ..."; \
if [ -f ${CMAKE_BUILD_DIR}/${PKGNAME} ]; then \
if [[ -f "${CMAKE_BUILD_DIR}/${PKGNAME}" ]]; then \
echo "Check: OK"; \
else \
echo "Check: ${CMAKE_BUILD_DIR}/${PKGNAME} not found !"; \
@ -70,78 +71,82 @@ check:
build: depend prepare
@echo "Build ..."; \
$(MAKE_COMMAND) --directory=${CMAKE_BUILD_DIR}; \
sed -r "s/^(static string version_application).*/\1;/" -i ${FILE_VER}; \
sed -r "s/^(string version_application).*/\1;/" -i ${FILE_VER}; \
echo "Build: OK"
uninstall:
@echo "Uninstall ..."
@for FILE_PO in $(wildcard *.po); do \
LANG=$${FILE_PO##*_};LANG=$${LANG%.*}; \
FILE_MO=$${FILE_PO##*/}; FILE_MO="$${FILE_MO%_*.po}.mo"; \
PATH_FILE_MO="${DESTDIR}/usr/share/locale/$${LANG}/LC_MESSAGES/$${FILE_MO}"; \
@for LANG in $$(find ./locale -iname "*.po" -print | sed -En "s/.+_([[:alpha:]]+)\.po/\1/p" | sort -u); do \
PATH_FILE_MO="${DESTDIR}/usr/share/locale/$${LANG}/LC_MESSAGES/${PKGNAME}.mo"; \
$(RM) "$${PATH_FILE_MO}"; \
done
@for SIZE in 16x16 32x32 48x48 scalable; do \
$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}/apps/com.ublinux.${PKGNAME}.svg"; \
$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}/apps/com.ublinux.${PKGNAME}.png"; \
$(RM) "${DESTDIR}/usr/share/icons/hicolor/$${SIZE}/apps/com.ublinux.${PKGNAME}.svg"; \
$(RM) "${DESTDIR}/usr/share/icons/hicolor/$${SIZE}/apps/com.ublinux.${PKGNAME}.png"; \
done
@for FILE_SVG in $(wildcard *.svg); do \
for SIZE in 16x16 32x32 48x48 scalable; do \
$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}/status/$${FILE_SVG%.*}".{svg,png,jpg}; \
$(RM) "${DESTDIR}/usr/share/icons/hicolor/$${SIZE}/status/$${FILE_SVG%.*}".{svg,png,jpg}; \
done; \
done
@$(RM) "${DESTDIR}${PREFIX}/bin/${PKGNAME}"
@for FILE_ICON in $(wildcard icons/*/*.svg); do \
SUB_NAME=$${FILE_ICON#*/}; SUB_NAME=$${SUB_NAME%/*}; \
$(RM) "${DESTDIR}/usr/share/icons/hicolor/scalable/$${SUB_NAME}/$${FILE_ICON##*/}"; \
done
@$(RM) "${DESTDIR}${PREFIX}/bin/${PKGNAME}" "${DESTDIR}${PREFIX}/bin/${PKGNAME}-root" "${DESTDIR}${PREFIX}/bin/${PKGNAME}-user"
@$(RM) "${DESTDIR}${PREFIX}/share/applications/${PKGNAME}.desktop"
@$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/com.ublinux.${PKGNAME}.svg"
@if [[ "${PREFIX}" == @("/usr"|"/usr/") ]]; then \
install -Dm644 -t "${DESTDIR}${PREFIX}/share/polkit-1/actions/" "com.ublinux.${PKGNAME}.policy"; \
$(RM) "${DESTDIR}${PREFIX}/share/polkit-1/actions/com.ublinux.${PKGNAME}.policy"; \
else \
# install -Dm644 "com.ublinux.${PKGNAME}.policy" "${DESTDIR}${PREFIX}/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}.policy"; \
install -Dm644 "com.ublinux.${PKGNAME}.policy" "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}.policy"; \
# sed -e "s+/usr/bin+${PREFIX}/bin+" -e "s+\.run+$${PREFIX//\//-}\.run+g" -i "${DESTDIR}${PREFIX}/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}.policy"; \
sed -e "s+/usr/bin+/usr/bin+" -e "s+\.run+$${PREFIX//\//-}\.run+g" -i "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}.policy"; \
$(RM) "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}.policy"; \
fi
@if [ -z ${DESTDIR} ]; then \
[ -d "${DESTDIR}${PREFIX}/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \
@if [[ -z "${DESTDIR}" ]]; then \
[[ -d "${DESTDIR}/usr/share/icons/hicolor/" ]] && gtk-update-icon-cache -fiq "${DESTDIR}/usr/share/icons/hicolor/" &>/dev/null || true; \
update-desktop-database --quiet &>/dev/null || true; \
[ -d "${DESTDIR}${PREFIX}/share/applications" ] && touch "${DESTDIR}${PREFIX}/share/applications" &>/dev/null || true; \
[[ -d "${DESTDIR}/usr/share/applications" ]] && touch "${DESTDIR}/usr/share/applications" &>/dev/null || true; \
fi
@echo "Uninstall: OK"
install: check uninstall
@echo "Install ..."
@for FILE_PO in $(wildcard *.po); do \
LANG=$${FILE_PO##*_};LANG=$${LANG%.*}; \
@for LANG in $$(find ./locale -iname "*.po" -print | sed -En "s/.+_([[:alpha:]]+)\.po/\1/p" | sort -u); do \
install -dm755 "${DESTDIR}/usr/share/locale/$${LANG}/LC_MESSAGES"; \
FILE_MO=$${FILE_PO##*/}; FILE_MO="$${FILE_MO%_*.po}.mo"; \
PATH_FILE_MO="${DESTDIR}/usr/share/locale/$${LANG}/LC_MESSAGES/$${FILE_MO}"; \
echo "$${FILE_PO}"; \
msgfmt "$${FILE_PO}" -v -f -o "$${PATH_FILE_MO}"; \
PATH_FILE_MO="${DESTDIR}/usr/share/locale/$${LANG}/LC_MESSAGES/${PKGNAME}.mo"; \
PKGNAME_PO="./locale/${PKGNAME}_$${LANG}.po"; [[ -f "$${PKGNAME_PO}" ]] || PKGNAME_PO= ; \
msgfmt --verbose --use-fuzzy --output-file "$${PATH_FILE_MO}" - < <(msgcat --use-first --no-wrap $${PKGNAME_PO} ./locale/*_$${LANG}.po); \
done
@for SIZE in 16 32 48; do \
install -dm755 "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps"; \
rsvg-convert -w $${SIZE} -h $${SIZE} -f svg --keep-image-data "com.ublinux.${PKGNAME}.svg" -o "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps/com.ublinux.${PKGNAME}.svg"; \
install -dm755 "${DESTDIR}/usr/share/icons/hicolor/$${SIZE}x$${SIZE}/apps"; \
rsvg-convert -w $${SIZE} -h $${SIZE} -f svg --keep-image-data "icons/apps/com.ublinux.${PKGNAME}.svg" -o "${DESTDIR}/usr/share/icons/hicolor/$${SIZE}x$${SIZE}/apps/com.ublinux.${PKGNAME}.svg"; \
done
@for FILE_ICON in $(wildcard icons/*/*.svg); do \
SUB_NAME=$${FILE_ICON#*/}; SUB_NAME=$${SUB_NAME%/*}; \
install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/$${SUB_NAME}" $${FILE_ICON}; \
done
@install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/apps/" "com.ublinux.${PKGNAME}.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.checked.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.warning.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/actions/" "com.ublinux.${PKGNAME}.funnel-symbolic.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/actions/" "com.ublinux.${PKGNAME}.zoom-symbolic.svg"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/applications/" "${PKGNAME}.desktop"
@install -Dm755 -t "${DESTDIR}${PREFIX}/bin/" "${CMAKE_BUILD_DIR}/${PKGNAME}"
@install -Dm644 "com.ublinux.${PKGNAME}.policy" "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}${PKGIDENT}.policy"
@sed -e '\|annotate key=|s|/usr/bin|${PREFIX}/bin|' -e '/action id=/s/\.run/${PKGIDENT}\.run/' -i ${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}${PKGIDENT}.policy
@if [ -z ${DESTDIR} ]; then \
[ -d "${DESTDIR}${PREFIX}/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \
@ln -s "/usr/bin/ubl-exec-app" "${DESTDIR}${PREFIX}/bin/${PKGNAME}-root"
@ln -s "/usr/bin/ubl-exec-app" "${DESTDIR}${PREFIX}/bin/${PKGNAME}-user"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/applications/" "${PKGNAME}.desktop"
@if [[ "${PREFIX}" == @("/usr"|"/usr/") ]]; then \
install -Dm644 -t "${DESTDIR}${PREFIX}/share/polkit-1/actions/" "com.ublinux.${PKGNAME}.policy"; \
else \
install -Dm644 "com.ublinux.${PKGNAME}.policy" "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}-local.policy"; \
install -Dm644 "com.ublinux.${PKGNAME}.policy" "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}.policy"; \
sed -e "s+/usr/bin+/usr/bin+" -e "s+\.run+$${PREFIX//\//-}\.run+g" -i "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}.policy"; \
sed -e '\|annotate key=|s|/usr/bin|${PREFIX}/bin|' -e '/action id=/s/\.run/${PKGIDENT}\.run/' -i ${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}-local.policy;\
fi
@if [[ -z "${DESTDIR}" ]]; then \
ldconfig -n ${DESTDIR}/usr/lib; \
[[ -d "${DESTDIR}/usr/share/icons/hicolor/" ]] && gtk-update-icon-cache -fiq "${DESTDIR}/usr/share/icons/hicolor/" &>/dev/null || true; \
update-desktop-database --quiet &>/dev/null || true; \
[ -d "${DESTDIR}${PREFIX}/share/applications" ] && touch "${DESTDIR}${PREFIX}/share/applications" &>/dev/null || true; \
[[ -d "${DESTDIR}/usr/share/applications" ]] && touch "${DESTDIR}/usr/share/applications" &>/dev/null || true; \
fi
@echo "Install: OK"
clean:
@echo "Clean ..."
@$(RM) -rd ${CMAKE_BUILD_DIR}
@if [ -d ${CMAKE_BUILD_DIR} ]; then \
@$(RM) -rd "${CMAKE_BUILD_DIR}"
@if [[ -d "${CMAKE_BUILD_DIR}" ]]; then \
echo "Clean: error, compile directory exist ${CMAKE_BUILD_DIR}"; \
else \
echo "Clean: OK"; \
@ -153,7 +158,7 @@ help:
echo "... init"; \
echo "... debug"; \
echo "... prepare"; \
echo "... build"; \
echo "... compile"; \
echo "... install"; \
echo "... uninstall"; \
echo "... clean"

@ -5,6 +5,7 @@
<policyconfig>
<vendor>UBLinux</vendor>
<vendor_url>https://ublinux.com</vendor_url>
<icon_name>com.ublinux.ubl-settings-diskquota</icon_name>
<action id="com.ublinux.ubl-settings-diskquota.run">
<description>Run disk quotas settings as root</description>
<description xml:lang="zh_TW">以 root 身份運行磁碟配額設定</description>

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 218 KiB

@ -0,0 +1,310 @@
# 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-08-09 11:01+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=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: source/ubl-settings-diskquota.h:32
msgid "Version:"
msgstr ""
#: source/ubl-strings.h:10
msgid "ubl-settings-diskquota version:"
msgstr ""
#: source/ubl-strings.h:10
msgid "Usage:"
msgstr ""
#: source/ubl-strings.h:10
msgid "[OPTIONS]"
msgstr ""
#: source/ubl-strings.h:10
msgid "Options:"
msgstr ""
#: source/ubl-strings.h:10
msgid "Show this help"
msgstr ""
#: source/ubl-strings.h:10
msgid "Show package version"
msgstr ""
#: source/ubl-strings.h:10
msgid "Lock this help menu"
msgstr ""
#: source/ubl-strings.h:10
msgid "Lock configuration saving"
msgstr ""
#: source/ubl-strings.h:10
msgid "Lock local configration saving"
msgstr ""
#: source/ubl-strings.h:10
msgid "Lock global configration saving"
msgstr ""
#: source/ubl-strings.h:10
msgid "Lock global configration loading"
msgstr ""
#: source/ubl-strings.h:12
msgid "Disk quotas"
msgstr ""
#: source/ubl-strings.h:13
msgid "Configuring disk quota settings for system groups and users"
msgstr ""
#: source/ubl-strings.h:15
msgid "Operation succeeded"
msgstr ""
#: source/ubl-strings.h:16
msgid ""
"Warning! Application was launched without root - root-dependent actions are "
"locked."
msgstr ""
#: source/ubl-strings.h:18
msgid "About"
msgstr ""
#: source/ubl-strings.h:19
msgid "Documentation"
msgstr ""
#: source/ubl-strings.h:21
msgid "Save to local configuration"
msgstr ""
#: source/ubl-strings.h:22
msgid "Save to global configuration"
msgstr ""
#: source/ubl-strings.h:23
msgid "Save configuration"
msgstr ""
#: source/ubl-strings.h:24
msgid "Save"
msgstr ""
#: source/ubl-strings.h:26
msgid "Load local configuration"
msgstr ""
#: source/ubl-strings.h:27
msgid "Load global configuration"
msgstr ""
#: source/ubl-strings.h:28
msgid "Load"
msgstr ""
#: source/ubl-strings.h:30 source/ubl-strings.h:101
msgid "Cancel"
msgstr ""
#: source/ubl-strings.h:30 source/ubl-strings.h:102
msgid "Save"
msgstr ""
#: source/ubl-strings.h:32
msgid "Would you like to read documentation in the Web?"
msgstr ""
#: source/ubl-strings.h:33
msgid ""
"You will be redirected to documentation website where documentation is\n"
"translated and supported by community."
msgstr ""
#: source/ubl-strings.h:34
msgid "Always redirect to online documentation"
msgstr ""
#: source/ubl-strings.h:35
msgid "Open documentation"
msgstr ""
#: source/ubl-strings.h:36
msgid "Project Home Page"
msgstr ""
#: source/ubl-strings.h:37
msgid "Nothing were chosen"
msgstr ""
#: source/ubl-strings.h:40
msgid "Global configuration loading succseeded."
msgstr ""
#: source/ubl-strings.h:41
msgid "Local configuration loading succseeded."
msgstr ""
#: source/ubl-strings.h:42
msgid "Config loading failed"
msgstr ""
#: source/ubl-strings.h:44
msgid "Local and global configuration saving succseeded."
msgstr ""
#: source/ubl-strings.h:45
msgid "Global configuration saving succseeded."
msgstr ""
#: source/ubl-strings.h:46
msgid "Local configuration saving succseeded."
msgstr ""
#: source/ubl-strings.h:47
msgid "Nothing to save!"
msgstr ""
#: source/ubl-strings.h:49
msgid "Kb"
msgstr ""
#: source/ubl-strings.h:50
msgid "Mb"
msgstr ""
#: source/ubl-strings.h:51
msgid "Gb"
msgstr ""
#: source/ubl-strings.h:52
msgid "Tb"
msgstr ""
#: source/ubl-strings.h:65
msgid "w "
msgstr ""
#: source/ubl-strings.h:66
msgid "d "
msgstr ""
#: source/ubl-strings.h:67
msgid "h "
msgstr ""
#: source/ubl-strings.h:68
msgid "m "
msgstr ""
#: source/ubl-strings.h:70
msgid "On"
msgstr ""
#: source/ubl-strings.h:71
msgid "Off"
msgstr ""
#: source/ubl-strings.h:72
msgid "Not set"
msgstr ""
#: source/ubl-strings.h:73
msgid "Settings quotas - Addition"
msgstr ""
#: source/ubl-strings.h:74
msgid "Settings quotas - Editing"
msgstr ""
#: source/ubl-strings.h:78
msgid "Please select folder"
msgstr ""
#: source/ubl-strings.h:80
msgid "User"
msgstr ""
#: source/ubl-strings.h:81
msgid "Group"
msgstr ""
#: source/ubl-strings.h:82
msgid "Project"
msgstr ""
#: source/ubl-strings.h:83
msgid "Users"
msgstr ""
#: source/ubl-strings.h:84
msgid "Groups"
msgstr ""
#: source/ubl-strings.h:86
msgid "Is not a directory"
msgstr ""
#: source/ubl-strings.h:87
msgid "Withdraw all users"
msgstr ""
#: source/ubl-strings.h:88
msgid "Withdraw all groups"
msgstr ""
#: source/ubl-strings.h:90
msgid "Project ID mandatory field"
msgstr ""
#: source/ubl-strings.h:91
msgid "The path does not match the specified disk"
msgstr ""
#: source/ubl-strings.h:92
msgid "Project name mandatory field"
msgstr ""
#: source/ubl-strings.h:93
msgid "Project name required field"
msgstr ""
#: source/ubl-strings.h:94
msgid "The list of users is empty"
msgstr ""
#: source/ubl-strings.h:95
msgid "To save, you need to select a disk"
msgstr ""
#: source/ubl-strings.h:96
msgid "Insert at least one value before saving"
msgstr ""
#: source/ubl-strings.h:97
msgid "The selected directory is not located on the target device"
msgstr ""
#: source/ubl-strings.h:99
msgid "Add"
msgstr ""
#: source/ubl-strings.h:100
msgid "Update"
msgstr ""

@ -0,0 +1,458 @@
# Russian translations for ubl-settings-diskquota package.
# Copyright (C) 2022, UBTech LLC
# This file is distributed under the same license as the ubl-settings-diskquota package.
# UBLinux Team <info@ublinux.com>, 2022
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: ubl-settings-diskquota 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-22 16:12+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-strings.h:1
msgid "Version:"
msgstr "Версия:"
#: source/ubl-strings.h:2
msgid "ubl-settings-diskquota version:"
msgstr "Версия ubl-settings-diskquota: "
#: source/ubl-strings.h:2
msgid "TEMPLATE settings"
msgstr "Настройки TEMPLATE"
#: source/ubl-strings.h:2
msgid "Usage:"
msgstr "Использование:"
#: source/ubl-strings.h:2
msgid "[OPTIONS]"
msgstr "[АРГУМЕНТЫ]"
#: source/ubl-strings.h:2
msgid "Options:"
msgstr "Аргументы:"
#: source/ubl-strings.h:2
msgid "Show this help"
msgstr "Показать параметры справки"
#: source/ubl-strings.h:2
msgid "Show package version"
msgstr "Показать текущую версию"
#: source/ubl-strings.h:2
msgid "Lock this help menu"
msgstr "Блокировка вызова справки"
#: source/ubl-strings.h:2
#, fuzzy
msgid "Lock configuration saving"
msgstr "Блокировка сохранения локальной и глобальной конфигурации"
#: source/ubl-strings.h:2
msgid "Lock local configration saving"
msgstr "Блокировка сохранения локальной конфигурации"
#: source/ubl-strings.h:2
msgid "Lock global configration saving"
msgstr "Блокировка сохранения глобальной конфигурации"
#: source/ubl-strings.h:2
msgid "Lock global configration loading"
msgstr "Блокировка загрузки глобальной конфигурации"
#: source/ubl-strings.h:5
msgid "System TEMPLATE settings management"
msgstr "Настройки TEMPLATE"
#: source/ubl-strings.h:7
msgid "Operation succeeded"
msgstr "Операция завершена"
#: source/ubl-strings.h:8
msgid ""
"Warning! Application was launched without root - root-dependent actions are "
"locked."
msgstr "Внимание! Приложение было запущено без прав суперпользователя - действия, требующие их наличия заблокированы."
#: source/ubl-strings.h:10
msgid "About"
msgstr "О программе"
#: source/ubl-strings.h:11
msgid "Documentation"
msgstr "Справка"
#: source/ubl-strings.h:12
msgid "Save to local configuration"
msgstr "Сохранить в локальную конфигурацию"
#: source/ubl-strings.h:13
msgid "Save to global configuration"
msgstr "Сохранить в глобальную конфигурацию"
#: source/ubl-strings.h:14
msgid "Save configuration"
msgstr "Сохранить конфигурацию"
#: source/ubl-strings.h:15
msgid "Save"
msgstr "Сохранить"
#: source/ubl-strings.h:16
msgid "Load local configuration"
msgstr "Загрузить локальную конфигурацию"
#: source/ubl-strings.h:17
msgid "Load global configuration"
msgstr "Загрузить глобальную конфигурацию"
#: source/ubl-strings.h:18
msgid "Load"
msgstr "Загрузить"
#: source/ubl-strings.h:20
msgid "Cancel"
msgstr "Отмена"
#: source/ubl-strings.h:22
msgid "Would you like to read documentation in the Web?"
msgstr "Вы хотите прочитать справку в Сети?"
#: source/ubl-strings.h:23
msgid ""
"You will be redirected to documentation website where documentation is\n"
"translated and supported by community."
msgstr ""
"Вы будете перенаправлены на сайт с документацией, где страницы помощи\n"
"переводятся и поддерживаются сообществом."
#: source/ubl-strings.h:24
msgid "Always redirect to online documentation"
msgstr "Всегда перенаправлять"
#: source/ubl-strings.h:25
msgid "Open documentation"
msgstr "Прочитать справку"
#: source/ubl-strings.h:26
msgid "Project Home Page"
msgstr "Домашняя страница проекта"
#: source/ubl-strings.h:27
msgid "Nothing were chosen"
msgstr "Ничего не было выбрано"
#: source/ubl-strings.h:30
msgid "Global configuration loading succseeded."
msgstr "Успешно загружена глобальная конфигурация"
#: source/ubl-strings.h:31
msgid "Local configuration loading succseeded."
msgstr "Успешно загружена локальная конфигурация"
#: source/ubl-strings.h:33
msgid "Local and global configuration saving succseeded."
msgstr "Успешно записаны локальная и глобальная конфигурация"
#: source/ubl-strings.h:34
msgid "Global configuration saving succseeded."
msgstr "Успешно записана глобальная конфигурация"
#: source/ubl-strings.h:35
msgid "Local configuration saving succseeded."
msgstr "Успешно записана локальная конфигурация"
msgid "Edit"
msgstr "Редактировать"
msgid "Kb"
msgstr "Кб"
msgid "Mb"
msgstr "Мб"
msgid "Gb"
msgstr "Гб"
msgid "Tb"
msgstr "Тб"
msgid "Disk quotas"
msgstr "Дисковые квоты"
msgid "Configuring disk quota settings for system groups and users"
msgstr "Настройка параметров дисковых квот для групп и пользователей системы"
msgid "Device"
msgstr "Устройство"
msgid "Device:"
msgstr "Устройство:"
msgid "Catalog"
msgstr "Каталог"
msgid "Catalog:"
msgstr "Каталог:"
msgid "Project Name"
msgstr "Имя проекта"
msgid "Project Name:"
msgstr "Имя проекта:"
msgid "Auto"
msgstr "Авто"
msgid "Review"
msgstr "Обзор"
msgid "Generate"
msgstr "Сгенерировать"
msgid "User"
msgstr "Пользователь"
msgid "Group"
msgstr "Группа"
msgid "User:"
msgstr "Пользователь:"
msgid "Users:"
msgstr "Пользователи:"
msgid "Users"
msgstr "Пользователи"
msgid "Group:"
msgstr "Группа:"
msgid "Groups:"
msgstr "Группы:"
msgid "Groups"
msgstr "Группы"
msgid "Projects:"
msgstr "Проект:"
msgid "Quota type"
msgstr "Тип квот"
msgid "Status"
msgstr "Статус"
msgid "Projects"
msgstr "Проекты"
msgid "Error saved local and global configuration"
msgstr "Сохранить глобальную и локальную конфигурацию"
msgid "The delay period for exceeding files:"
msgstr "Период отсрочки по превышению файлов:"
msgid "The postponement period for exceeding the volume:"
msgstr "Период отсрочки по превышению объема:"
msgid "File system:"
msgstr "Файловая система:"
msgid "Files"
msgstr "Файлы"
msgid "Filters"
msgstr "Фильтры"
msgid "minutes"
msgstr "минут"
msgid "name"
msgstr "имя"
msgid "days"
msgstr "дней"
msgid "files"
msgstr "Файлы"
msgid "hours"
msgstr "часов"
msgid "w "
msgstr "н "
msgid "d "
msgstr "д "
msgid "h "
msgstr "ч "
msgid "m "
msgstr "м "
msgid "weeks"
msgstr "недель"
msgid "General statistics"
msgstr "Общая статистика"
msgid "https://wiki.ublinux.com"
msgstr "https://wiki.ublinux.ru"
msgid "Off"
msgstr "Выключено"
msgid "Not set"
msgstr "Не задано"
msgid "Name"
msgstr "Имя"
msgid "Nothing to save!"
msgstr "Нечего сохранять!"
msgid "Project ID"
msgstr "ID проекта"
msgid "Project ID:"
msgstr "ID проекта:"
msgid "Settings disk quotas - Addition"
msgstr "Настройка дисковых квот - Добавление"
msgid "Settings disk quotas - Editing"
msgstr "Настройка дисковых квот - Редактирование"
msgid "Quota use status:"
msgstr "Статус использования квот:"
msgid "Size"
msgstr "Объём"
msgid "Quotas"
msgstr "Квоты"
msgid "Mount\npoint"
msgstr "Точка монтирования"
msgid "FS"
msgstr "ФС"
msgid "The postponement period\nfor exceeding the volume"
msgstr "Период отсрочки\nпо превышению объема"
msgid "The delay period\nfor exceeding files"
msgstr "Период отсрочки\nпо превышению файлов"
msgid "Soft\nrestriction\n(volume)"
msgstr "Мягкое\nограничение\n(объём)"
msgid "Hard\nlimit\n(volume)"
msgstr "Жёсткое\nограничение\n(объём)"
msgid "Postponing\nthe\nhard\nlimit\n(volume)"
msgstr "Отсрочка\nжёсткого\nограничения\n(объём)"
msgid "Soft\nrestriction\n(files)"
msgstr "Мягкое\nограничение\n(файлы)"
msgid "Hard\nlimit\n(files)"
msgstr "Жёсткое\nограничение\n(файлы)"
msgid "Postponing\nthe\nhard\nlimit\n(files)"
msgstr "Отсрочка\nжёсткого\nограничения\n(файлы)"
msgid "Device/\nProject"
msgstr "Устройство/\nПроект"
msgid "Soft limit"
msgstr "Мягкое ограничение"
msgid "Hard limit"
msgstr "Жёсткое ограничение"
msgid "Soft limit (volume)"
msgstr "Мягкое ограничение (объём)"
msgid "Hard limit (volume)"
msgstr "Жёсткое ограничение (объём)"
msgid "Postponing the hard limit (volume)"
msgstr "Отсрочка жёсткого ограничения (объём)"
msgid "Soft limit (files)"
msgstr "Мягкое ограничение (файлы)"
msgid "Hard limit (files)"
msgstr "Жёсткое ограничение (файлы)"
msgid "Postponing the hard limit (files)"
msgstr "Отсрочка жёсткого ограничения (файлы)"
msgid "On"
msgstr "Включено"
msgid "Please select folder"
msgstr "Выберите каталог"
msgid "Warning"
msgstr "Внимание"
msgid "The selected directory is not located on the target device"
msgstr "Выбранный каталог не расположен на целевом устройстве"
msgid "Withdraw all users"
msgstr "Вывести всех пользователей"
msgid "Withdraw all groups"
msgstr "Вывести все группы"
msgid "Settings quotas - Addition"
msgstr "Настройка квот - Добавление"
msgid "Settings quotas - Editing"
msgstr "Настройка квот - Редактирование"
msgid "The list of users is empty"
msgstr "Список пользователей пуст"
msgid "Project name required field"
msgstr "Имя проекта обязательное поле"
msgid "Project ID mandatory field"
msgstr "ID проекта обязательное поле"
msgid "Insert at least one value before saving"
msgstr "Необходимо ввести хотя бы одно значение перед сохранением"
msgid "The path does not match the specified disk"
msgstr "Путь не соответствует указанному диску"
msgid "Project name mandatory field"
msgstr "Имя проекта обязательное поле"
msgid "To save, you need to select a disk"
msgstr "Для сохранения нужно выбрать диск"
msgid "Project"
msgstr "Проект"
msgid "Is not a directory"
msgstr "Не является каталогом"
msgid "Add"
msgstr "Добавить"
msgid "Update"
msgstr "Обновить"

@ -22,6 +22,93 @@ void update_time_table(vector* vec_temp) {
}
}
}
#define yon_char_is_empty(string) !(string&&strcmp(string,""))
int arg_size;
config_str arg_target;
gboolean __yon_app_check_helper(const char *app, config_str argv, int argc){
char *helper_path = yon_char_unite("/usr/bin/",app,"-root",NULL);
if (!access(helper_path,F_OK)){
for (int i=1;i<arg_size;i++){
char *temp = yon_char_unite(helper_path," ", arg_target[i],NULL);
if(strcmp(helper_path,"")&&strcmp(helper_path,LocaleName))
free(helper_path);
helper_path=temp;
}
if (getuid()!=0){
int size=0;
config_str parsed = NULL;
g_shell_parse_argv(helper_path, &size,&parsed, NULL);
execve(parsed[0],parsed,__environ);
return 1;
}
}
return 0;
}
void on_root_access(GtkWidget *, GtkWidget *window){
if (getuid()){
char *argline = yon_char_new(arg_target[0]);
int last_pos = yon_char_find_last(argline,'/');
if(last_pos>-1){
free(yon_char_divide(argline,last_pos));
}
if (!__yon_app_check_helper(argline, arg_target, arg_size)){
for (int i=1;i<arg_size;i++){
char *temp = yon_char_unite(argline," ", arg_target[i],NULL);
if(strcmp(argline,"")&&strcmp(argline,LocaleName))
free(argline);
argline=temp;
}
if (getuid()!=0){
const char *session = getenv("XDG_SESSION_TYPE");
const char *desktop = getenv("XDG_CURRENT_DESKTOP");
const char *backend = getenv("GDK_BACKEND");
int size=0;
config_str parsed = NULL;
char *command = yon_char_unite("/usr/bin/bash -c \"pkexec ",argline, " ",
!yon_char_is_empty(session)&&!strcmp(session,"wayland")&&!yon_char_is_empty(desktop)&&strcmp(desktop,"KDE")&&yon_char_is_empty(backend)?
" --setenv=\\\"GDK_BACKEND=x11\\\"":" --setenv=\\\"GDK_BACKEND=${GDK_BACKEND}\\\"",
" --setenv=\\\"XAUTHORITY=${XAUTHORITY}\\\" \
--setenv=\\\"DISPLAY=${DISPLAY}\\\" \
--setenv=\\\"WAYLAND_DISPLAY=${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}\\\" \
--setenv=\\\"XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR}\\\" \
--setenv=\\\"XDG_SESSION_TYPE=${XDG_SESSION_TYPE}\\\" \
--setenv=\\\"XDG_CURRENT_DESKTOP=${XDG_CURRENT_DESKTOP}\\\"; exit\"",NULL);
g_shell_parse_argv(command, &size,&parsed, NULL);
execve(parsed[0],parsed,__environ);
}
}
}
}
void yon_root_button_init(GtkWidget *root_item,GtkWindow *window){
g_signal_connect(G_OBJECT(root_item),"activate", G_CALLBACK(on_root_access),window);
}
GtkWidget *yon_root_button_new(config_str args, int args_size){
textdomain("libublsettingsui-gtk3");
arg_size=args_size;
arg_target=args;
GtkWidget *root_item = gtk_menu_item_new();
gtk_style_context_add_class(gtk_widget_get_style_context(root_item),"menuitemtop");
GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5);
GtkWidget *root_label = gtk_label_new(_("Grant root access"));
GtkWidget *root_check = gtk_check_button_new();
g_object_set_data(G_OBJECT(root_item),"Label",root_label);
gtk_box_pack_start(GTK_BOX(box),root_check,0,0,0);
gtk_box_pack_start(GTK_BOX(box),root_label,1,1,0);
gtk_container_add(GTK_CONTAINER(root_item),box);
gtk_widget_show_all(root_item);
if (getuid()==0) {
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(root_check),1);
gtk_widget_set_sensitive(root_item,0);
}
textdomain(LocaleName);
return root_item;
}
void entry_user_disk(GtkWidget *self, int* flag_update) {
@ -570,6 +657,9 @@ int main(int argc, char *argv[]){
gtk_init(&argc,&argv);
main_window *widgets = setup_window(&cfg_main_gui,&cfg_custom_gui);
GtkWidget *root_button = yon_root_button_new(argv,argc);
yon_root_button_init(root_button,GTK_WINDOW(widgets->Window));
gtk_menu_shell_prepend(GTK_MENU_SHELL(gtk_widget_get_parent(widgets->DocumentationMenuItem)),root_button);
filters_set_name("prjquota");
filters_init_flag();
control_event(widgets, &cfg_custom_gui);

@ -234,9 +234,71 @@ Keywords[as]=ছেটিংছ;ডিচ্ক কোটা;ডিচ্ক;
Keywords[ar]=الإعدادات;حصة القرص;القرص;
Keywords[af]=instellings;skyfkwota;skyf;
Type=Application
Exec=pkexec ubl-settings-diskquota
Exec=ubl-settings-diskquota-user
Icon=com.ublinux.ubl-settings-diskquota
Terminal=false
StartupNotify=true
StartupWMClass=ubl-settings-diskquota
X-XfcePluggable=true
X-UBLPluggable=true
Categories=XFCE;GTK;Settings;DesktopSettings;X-XFCE-SettingsDialog;X-XFCE-SystemSettings;X-UBL-SettingsManager;X-UBL-SystemSettings;
[Desktop Action RunAsRoot]
Exec=ubl-settings-diskquota-root
Icon=com.ublinux.ubl-settings-diskquota
Name=Run as root
Name[zh_TW]=以 root 身分執行
Name[zh_CN]=以 root 身份运行
Name[te]=రూట్గా అమలు చేయి
Name[uk]=Запустити від root
Name[tr]=Root olarak çalıştır
Name[ta]=ரூட்டாக இயக்கு
Name[sv]=Kör som root
Name[sr@latin]=Pokreni kao root
Name[sr]=Покрени као root
Name[sl]=Zaženi kot root
Name[sk]=Spustiť ako root
Name[ru]=Запустить от root
Name[ro]=Rulează ca root
Name[pt_BR]=Executar como root
Name[pt]=Executar como root
Name[pl]=Uruchom jako root
Name[pa]=ਰੂਟ ਵਜੋਂ ਚਲਾਓ
Name[or]=ରୁଟ୍ ଭାବରେ ଚଲାନ୍ତୁ
Name[oc]=Executar coma root
Name[nn]=Køyr som root
Name[nl]=Uitvoeren als root
Name[mr]=रूट म्हणून चालवा
Name[ml]=റൂട്ടായി പ്രവർത്തിപ്പിക്കുക
Name[lv]=Palaist kā root
Name[lt]=Vykdyti kaip root
Name[ko]=root 권한으로 실행
Name[kn]=ರೂಟ್ ಆಗಿ ಚಲಾಯಿಸಿ
Name[kk]=root ретінде іске қосу
Name[ka]=root-ად გაშვება
Name[ja]=root として実行
Name[it]=Esegui come root
Name[id]=Jalankan sebagai root
Name[ia]=Executar como root
Name[hu]=Futtatás rootként
Name[hr]=Pokreni kao root
Name[hi]=रूट के रूप में चलाएँ
Name[he]=הרץ כ-root
Name[gu]=રૂટ તરીકે ચલાવો
Name[gl]=Executar como root
Name[fur]=Eseguî come root
Name[fr]=Exécuter en tant que root
Name[fi]=Suorita root-käyttäjänä
Name[eu]=Exekutatu root gisa
Name[es]=Ejecutar como root
Name[eo]=Ruli kiel root
ame[en_GB]=Run as root
Name[el]=Εκτέλεση ως root
Name[de]=Als root ausführen
Name[da]=Kør som root
Name[cs]=Spustit jako root
Name[ca]=Executa com a root
Name[bn_IN]=রুট হিসেবে চালান
Name[bg]=Изпълни като root
Name[ast]=Executar como root
Name[as]=ৰুট হিচাপে চলাওক
Name[ar]=تشغيل كـ root
Name[af]=Voer uit as root

@ -25,10 +25,6 @@ msgstr "Версия:"
msgid "ubl-settings-diskquota version:"
msgstr "Версия ubl-settings-diskquota: "
#: source/ubl-strings.h:2
msgid "TEMPLATE settings"
msgstr "Настройки TEMPLATE"
#: source/ubl-strings.h:2
msgid "Usage:"
msgstr "Использование:"

Loading…
Cancel
Save