master #70

Merged
asmeron merged 2 commits from YanTheKaller/ubl-settings-system:master into master 5 months ago

@ -12,7 +12,6 @@ DEPENDS = /bin/cmake
PREFIX ?= /usr/local
PKGNAME = $(MAKEFILE_DIR)
FILE_VER = source/${PKGNAME}.h
PKGIDENT=$(subst /,-,${PREFIX})
default_target: all
@ -22,9 +21,9 @@ 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}" ]; \
if [[ -z "$${LATEST_TAG}" ]]; \
then \
LATEST_TAG=$$"0.0"; \
echo "$${LATEST_TAG} is empty"; \
@ -38,7 +37,7 @@ init:
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; \
@ -48,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 !"; \
@ -77,10 +76,9 @@ build: depend prepare
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}${PREFIX}/share/locale/$${LANG}/LC_MESSAGES/${PKGNAME}.mo"; \
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 \
@ -92,55 +90,64 @@ uninstall:
$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}/status/$${FILE_SVG%.*}".{svg,png,jpg}; \
done; \
done
@for FILE_ICON in $(wildcard icons/*/*.svg); do \
SUB_NAME=$${FILE_ICON#*/}; SUB_NAME=$${SUB_NAME%/*}; \
$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/$${SUB_NAME}/$${FILE_ICON}"; \
done
@$(RM) "${DESTDIR}${PREFIX}/bin/${PKGNAME}"
@$(RM) "${DESTDIR}${PREFIX}/share/applications/${PKGNAME}.desktop"
@$(RM) "${DESTDIR}/usr/share/icons/hicolor/scalable/apps/com.ublinux.${PKGNAME}.svg"
@$(RM) "${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; \
@if [[ "${PREFIX}" == @("/usr"|"/usr/") ]]; then \
$(RM) "${DESTDIR}${PREFIX}/share/polkit-1/actions/com.ublinux.${PKGNAME}.policy"; \
else \
# $(RM) "${DESTDIR}${PREFIX}/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; \
update-desktop-database --quiet &>/dev/null || true; \
[ -d "${DESTDIR}${PREFIX}/share/applications" ] && touch "${DESTDIR}${PREFIX}/share/applications" &>/dev/null || true; \
[[ -d "${DESTDIR}${PREFIX}/share/applications" ]] && touch "${DESTDIR}${PREFIX}/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%.*}; \
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}"; \
@for LANG in $$(find ./locale -iname "*.po" -print | sed -En "s/.+_([[:alpha:]]+)\.po/\1/p" | sort -u); do \
install -dm755 "${DESTDIR}${PREFIX}/share/locale/$${LANG}/LC_MESSAGES"; \
# PATH_FILE_MO="${DESTDIR}${PREFIX}/share/locale/$${LANG}/LC_MESSAGES/${PKGNAME}.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"; \
rsvg-convert -w $${SIZE} -h $${SIZE} -f svg --keep-image-data "icons/apps/com.ublinux.${PKGNAME}.svg" -o "${DESTDIR}${PREFIX}/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}${PREFIX}/share/icons/hicolor/scalable/$${SUB_NAME}" $${FILE_ICON}; \
done
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/" "com.ublinux.${PKGNAME}.svg"
@cp ./com.ublinux.${PKGNAME}.policy ./compile/com.ublinux.${PKGNAME}${PKGIDENT}.policy
@sed -e 's+/usr/bin+${PREFIX}/bin+' -e 's+.run+${PKGIDENT}.run+g' ./compile/com.ublinux.${PKGNAME}${PKGIDENT}.policy -i
@install -Dm755 -t "${DESTDIR}${PREFIX}/bin/" "${CMAKE_BUILD_DIR}/${PKGNAME}"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/applications/" "${PKGNAME}.desktop"
@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/status/" "com.ublinux.${PKGNAME}.plug-connected-symbolic.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.plug-disconnected-symbolic.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/polkit-1/actions/" "${CMAKE_BUILD_DIR}/com.ublinux.${PKGNAME}${PKGIDENT}.policy"
@install -Dm644 -t "${DESTDIR}/usr/share/${PKGNAME}/csv/" "locales.csv"
@install -Dm644 -t "${DESTDIR}/usr/share/${PKGNAME}/csv/" "fonts.csv"
@install -Dm644 -t "${DESTDIR}/usr/share/${PKGNAME}/csv/" "auth-profile.csv"
@if [ -z ${DESTDIR} ]; then \
[ -d "${DESTDIR}/usr/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}/usr/share/icons/hicolor/" &>/dev/null || true; \
@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}${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+${PREFIX}/bin+" -e "s+\.run+$${PREFIX//\//-}\.run+g" -i "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}.policy"; \
fi
@if [[ -z "${DESTDIR}" ]]; then \
ldconfig -n ${DESTDIR}${PREFIX}/lib; \
[[ -d "${DESTDIR}${PREFIX}/share/icons/hicolor/" ]] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \
update-desktop-database --quiet &>/dev/null || true; \
[ -d "${DESTDIR}/usr/share/applications" ] && touch "${DESTDIR}/usr/share/applications" &>/dev/null || true; \
[[ -d "${DESTDIR}${PREFIX}/share/applications" ]] && touch "${DESTDIR}${PREFIX}/share/applications" &>/dev/null || true; \
fi
@echo "Install: OK"
clean:
@echo "Clean ..."
@$(RM) -rd ${CMAKE_BUILD_DIR}
@if [ -d ${CMAKE_BUILD_DIR} ]; then \
@if [[ -d "${CMAKE_BUILD_DIR}" ]]; then \
echo "Clean: error, compile directory exist ${CMAKE_BUILD_DIR}"; \
else \
echo "Clean: OK"; \

@ -1,327 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="24"
height="24"
version="1.1"
viewBox="0 0 24 24"
id="svg25"
sodipodi:docname="checked.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview27"
pagecolor="#ffffff"
bordercolor="#999999"
borderopacity="1"
inkscape:pageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="14.8125"
inkscape:cx="-4.6919831"
inkscape:cy="9.9578059"
inkscape:window-width="1920"
inkscape:window-height="1027"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg25" />
<defs
id="defs19">
<style
id="current-color-scheme"
type="text/css">.ColorScheme-Text {
color:#31363b;
}
.ColorScheme-Background{
color:#eff0f1;
}
.ColorScheme-ViewText {
color:#31363b;
}
.ColorScheme-ViewBackground{
color:#fcfcfc;
}
.ColorScheme-ViewHover {
color:#3daee9;
}
.ColorScheme-ViewFocus{
color:#3daee9;
}
.ColorScheme-ButtonText {
color:#31363b;
}
.ColorScheme-ButtonBackground{
color:#eff0f1;
}
.ColorScheme-ButtonHover {
color:#3daee9;
}
.ColorScheme-ButtonFocus{
color:#3daee9;
}</style>
<style
type="text/css"
id="style3">.ColorScheme-Text {
color:#31363b;
}
.ColorScheme-Background{
color:#eff0f1;
}
.ColorScheme-ViewText {
color:#31363b;
}
.ColorScheme-ViewBackground{
color:#fcfcfc;
}
.ColorScheme-ViewHover {
color:#3daee9;
}
.ColorScheme-ViewFocus{
color:#3daee9;
}
.ColorScheme-ButtonText {
color:#31363b;
}
.ColorScheme-ButtonBackground{
color:#eff0f1;
}
.ColorScheme-ButtonHover {
color:#3daee9;
}
.ColorScheme-ButtonFocus{
color:#3daee9;
}</style>
<style
type="text/css"
id="style5">.ColorScheme-Text {
color:#31363b;
}
.ColorScheme-Background{
color:#eff0f1;
}
.ColorScheme-ViewText {
color:#31363b;
}
.ColorScheme-ViewBackground{
color:#fcfcfc;
}
.ColorScheme-ViewHover {
color:#3daee9;
}
.ColorScheme-ViewFocus{
color:#3daee9;
}
.ColorScheme-ButtonText {
color:#31363b;
}
.ColorScheme-ButtonBackground{
color:#eff0f1;
}
.ColorScheme-ButtonHover {
color:#3daee9;
}
.ColorScheme-ButtonFocus{
color:#3daee9;
}</style>
<style
type="text/css"
id="style7">.ColorScheme-Text {
color:#31363b;
}
.ColorScheme-Background{
color:#eff0f1;
}
.ColorScheme-ViewText {
color:#31363b;
}
.ColorScheme-ViewBackground{
color:#fcfcfc;
}
.ColorScheme-ViewHover {
color:#3daee9;
}
.ColorScheme-ViewFocus{
color:#3daee9;
}
.ColorScheme-ButtonText {
color:#31363b;
}
.ColorScheme-ButtonBackground{
color:#eff0f1;
}
.ColorScheme-ButtonHover {
color:#3daee9;
}
.ColorScheme-ButtonFocus{
color:#3daee9;
}</style>
<style
type="text/css"
id="style9">.ColorScheme-Text {
color:#31363b;
}
.ColorScheme-Background{
color:#eff0f1;
}
.ColorScheme-ViewText {
color:#31363b;
}
.ColorScheme-ViewBackground{
color:#fcfcfc;
}
.ColorScheme-ViewHover {
color:#3daee9;
}
.ColorScheme-ViewFocus{
color:#3daee9;
}
.ColorScheme-ButtonText {
color:#31363b;
}
.ColorScheme-ButtonBackground{
color:#eff0f1;
}
.ColorScheme-ButtonHover {
color:#3daee9;
}
.ColorScheme-ButtonFocus{
color:#3daee9;
}</style>
<style
type="text/css"
id="style11">.ColorScheme-Text {
color:#31363b;
}
.ColorScheme-Background{
color:#eff0f1;
}
.ColorScheme-ViewText {
color:#31363b;
}
.ColorScheme-ViewBackground{
color:#fcfcfc;
}
.ColorScheme-ViewHover {
color:#3daee9;
}
.ColorScheme-ViewFocus{
color:#3daee9;
}
.ColorScheme-ButtonText {
color:#31363b;
}
.ColorScheme-ButtonBackground{
color:#eff0f1;
}
.ColorScheme-ButtonHover {
color:#3daee9;
}
.ColorScheme-ButtonFocus{
color:#3daee9;
}</style>
<style
type="text/css"
id="style13">.ColorScheme-Text {
color:#31363b;
}
.ColorScheme-Background{
color:#eff0f1;
}
.ColorScheme-ViewText {
color:#31363b;
}
.ColorScheme-ViewBackground{
color:#fcfcfc;
}
.ColorScheme-ViewHover {
color:#3daee9;
}
.ColorScheme-ViewFocus{
color:#3daee9;
}
.ColorScheme-ButtonText {
color:#31363b;
}
.ColorScheme-ButtonBackground{
color:#eff0f1;
}
.ColorScheme-ButtonHover {
color:#3daee9;
}
.ColorScheme-ButtonFocus{
color:#3daee9;
}</style>
<style
type="text/css"
id="style15">.ColorScheme-Text {
color:#31363b;
}
.ColorScheme-Background{
color:#eff0f1;
}
.ColorScheme-ViewText {
color:#31363b;
}
.ColorScheme-ViewBackground{
color:#fcfcfc;
}
.ColorScheme-ViewHover {
color:#3daee9;
}
.ColorScheme-ViewFocus{
color:#3daee9;
}
.ColorScheme-ButtonText {
color:#31363b;
}
.ColorScheme-ButtonBackground{
color:#eff0f1;
}
.ColorScheme-ButtonHover {
color:#3daee9;
}
.ColorScheme-ButtonFocus{
color:#3daee9;
}</style>
<style
type="text/css"
id="style17">.ColorScheme-Text {
color:#31363b;
}
.ColorScheme-Background{
color:#eff0f1;
}
.ColorScheme-ViewText {
color:#31363b;
}
.ColorScheme-ViewBackground{
color:#fcfcfc;
}
.ColorScheme-ViewHover {
color:#3daee9;
}
.ColorScheme-ViewFocus{
color:#3daee9;
}
.ColorScheme-ButtonText {
color:#31363b;
}
.ColorScheme-ButtonBackground{
color:#eff0f1;
}
.ColorScheme-ButtonHover {
color:#3daee9;
}
.ColorScheme-ButtonFocus{
color:#3daee9;
}</style>
</defs>
<path
id="path21"
d="M 12 1 C 5.906 1 1 5.906 1 12 C 1 18.094 5.906 23 12 23 C 18.094 23 23 18.094 23 12 C 23 5.906 18.094 1 12 1 z M 15.480469 8.9042969 C 16.392469 8.8782969 16.860031 9.9850937 16.207031 10.621094 L 11 15.828125 L 8.09375 12.921875 C 7.11175 11.979875 8.5648125 10.525813 9.5078125 11.507812 L 11 13 L 14.792969 9.2070312 A 1 1 0 0 1 15.480469 8.9042969 z "
style="fill:#4d4d4d;fill-opacity:1" />
</svg>

Before

Width:  |  Height:  |  Size: 7.4 KiB

@ -1,55 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 24 24"
id="svg2"
version="1.1"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
sodipodi:docname="warning.svg"
width="24"
height="24"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata12">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs10" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1027"
id="namedview8"
showgrid="false"
inkscape:zoom="18.96875"
inkscape:cx="5.4827018"
inkscape:cy="9.3047776"
inkscape:current-layer="svg2"
inkscape:pagecheckerboard="0"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<path
id="path4136-2"
style="opacity:1;fill:#4d4d4d;fill-opacity:1"
d="M 11.292969 1.0234375 A 11 11.000002 86.311656 0 0 1.0234375 12.707031 A 11 11.000002 86.311656 0 0 12.707031 22.976562 A 11 11.000002 86.311656 0 0 22.976562 11.292969 A 11 11.000002 86.311656 0 0 11.292969 1.0234375 z M 11.996094 6 L 12.003906 6 C 12.556173 6 13 6.4439 13 6.9960938 L 13 14.003906 C 13 14.556325 12.556173 15 12.003906 15 L 11.996094 15 C 11.443827 15 11 14.556325 11 14.003906 L 11 6.9960938 C 11 6.4439 11.443827 6 11.996094 6 z M 12 17 C 12.554 17 13 17.446 13 18 C 13 18.554 12.554 19 12 19 C 11.446 19 11 18.554 11 18 C 11 17.446 11.446 17 12 17 z " />
</svg>

Before

Width:  |  Height:  |  Size: 2.1 KiB

@ -10,7 +10,4 @@
<gresource prefix="/com/ublinux/css">
<file>ubl-settings-system.css</file>
</gresource>
<gresource prefix="/com/ublinux/images">
<file>ubl-settings-system-banner.png</file>
</gresource>
</gresources>

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 108 KiB

@ -0,0 +1,534 @@
# Russian translations for ubl-settings-system package.
# Copyright (C) 2022, UBTech LLC
# This file is distributed under the same license as the ubl-settings-system package.
# UBLinux Team <info@ublinux.com>, 2022
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: ubl-settings-system 1.0\n"
"Report-Msgid-Bugs-To: info@ublinux.com\n"
"POT-Creation-Date: 2023-04-25 15:52+0600\n"
"PO-Revision-Date: 2023-01-01 00:00+0600\n"
"Last-Translator: UBLinux Team <info@ublinux.com>\n"
"Language-Team: UBLinux Team <info@ublinux.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ./locales.csv:1
msgid "Afrikaans, South Africa"
msgstr ""
#: ./locales.csv:2
msgid "Arabic, United Arab Emirates"
msgstr ""
#: ./locales.csv:3
msgid "Arabic, Bahrain"
msgstr ""
#: ./locales.csv:4
msgid "Arabic, Algeria"
msgstr ""
#: ./locales.csv:5
msgid "Arabic, Egypt"
msgstr ""
#: ./locales.csv:6
msgid "Arabic, Iraq"
msgstr ""
#: ./locales.csv:7
msgid "Arabic, Jordan"
msgstr ""
#: ./locales.csv:8
msgid "Arabic, Kuwait"
msgstr ""
#: ./locales.csv:9
msgid "Arabic, Libya"
msgstr ""
#: ./locales.csv:10
msgid "Arabic, Morocco"
msgstr ""
#: ./locales.csv:11
msgid "Arabic, Oman"
msgstr ""
#: ./locales.csv:12
msgid "Arabic, Qatar"
msgstr ""
#: ./locales.csv:13
msgid "Arabic, Saudi Arabia"
msgstr ""
#: ./locales.csv:14
msgid "Arabic, Tunisia"
msgstr ""
#: ./locales.csv:15
msgid "Arabic, Yemen"
msgstr ""
#: ./locales.csv:16
msgid "Assamese, India"
msgstr ""
#: ./locales.csv:17
msgid "Azerbaijani, Azerbaijan"
msgstr ""
#: ./locales.csv:18
msgid "Belarusian, Belarus"
msgstr ""
#: ./locales.csv:19
msgid "Bulgarian, Bulgaria"
msgstr ""
#: ./locales.csv:20
msgid "Bengali, India"
msgstr ""
#: ./locales.csv:21
msgid "Bosnian, Bosnia and Herzegovina"
msgstr ""
#: ./locales.csv:22
msgid "Catalan, Spain"
msgstr ""
#: ./locales.csv:23
msgid "Czech, Czech Republic"
msgstr ""
#: ./locales.csv:24
msgid "Danish, Denmark"
msgstr ""
#: ./locales.csv:25
msgid "German, Austria"
msgstr ""
#: ./locales.csv:26
msgid "German, Belgium"
msgstr ""
#: ./locales.csv:27
msgid "German, Switzerland"
msgstr ""
#: ./locales.csv:28
msgid "German, Germany"
msgstr ""
#: ./locales.csv:29
msgid "German, Liechtenstein"
msgstr ""
#: ./locales.csv:30
msgid "German, Luxembourg"
msgstr ""
#: ./locales.csv:31
msgid "Greek, Cyprus"
msgstr ""
#: ./locales.csv:32
msgid "Greek, Greece"
msgstr ""
#: ./locales.csv:33
msgid "English, Australia"
msgstr ""
#: ./locales.csv:34
msgid "English, Botswana"
msgstr ""
#: ./locales.csv:35
msgid "English, Canada"
msgstr ""
#: ./locales.csv:36
msgid "English, United Kingdom"
msgstr ""
#: ./locales.csv:37
msgid "English, Hong Kong SAR China"
msgstr ""
#: ./locales.csv:38
msgid "English, Ireland"
msgstr ""
#: ./locales.csv:39
msgid "English, India"
msgstr ""
#: ./locales.csv:40
msgid "English, Malta"
msgstr ""
#: ./locales.csv:41
msgid "English, New Zealand"
msgstr ""
#: ./locales.csv:42
msgid "English, Philippines"
msgstr ""
#: ./locales.csv:43
msgid "English, Singapore"
msgstr ""
#: ./locales.csv:44
msgid "English, U.S.A."
msgstr ""
#: ./locales.csv:45
msgid "English, Zimbabwe"
msgstr ""
#: ./locales.csv:46
msgid "Spanish, Argentina"
msgstr ""
#: ./locales.csv:47
msgid "Spanish, Bolivia"
msgstr ""
#: ./locales.csv:48
msgid "Spanish, Chile"
msgstr ""
#: ./locales.csv:49
msgid "Spanish, Colombia"
msgstr ""
#: ./locales.csv:50
msgid "Spanish, Costa Rica"
msgstr ""
#: ./locales.csv:51
msgid "Spanish, Dominican Republic"
msgstr ""
#: ./locales.csv:52
msgid "Spanish, Ecuador"
msgstr ""
#: ./locales.csv:53
msgid "Spanish, Spain"
msgstr ""
#: ./locales.csv:54
msgid "Spanish, Guatemala"
msgstr ""
#: ./locales.csv:55
msgid "Spanish, Honduras"
msgstr ""
#: ./locales.csv:56
msgid "Spanish, Mexico"
msgstr ""
#: ./locales.csv:57
msgid "Spanish, Nicaragua"
msgstr ""
#: ./locales.csv:58
msgid "Spanish, Panama"
msgstr ""
#: ./locales.csv:59
msgid "Spanish, Peru"
msgstr ""
#: ./locales.csv:60
msgid "Spanish, Puerto Rico"
msgstr ""
#: ./locales.csv:61
msgid "Spanish, Paraguay"
msgstr ""
#: ./locales.csv:62
msgid "Spanish, El Salvador"
msgstr ""
#: ./locales.csv:63
msgid "Spanish, U.S.A."
msgstr ""
#: ./locales.csv:64
msgid "Spanish, Uruguay"
msgstr ""
#: ./locales.csv:65
msgid "Spanish, Venezuela"
msgstr ""
#: ./locales.csv:66
msgid "Estonian, Estonia"
msgstr ""
#: ./locales.csv:67
msgid "Finnish, Finland"
msgstr ""
#: ./locales.csv:68
msgid "French, Belgium"
msgstr ""
#: ./locales.csv:69
msgid "French, Canada"
msgstr ""
#: ./locales.csv:70
msgid "French, Switzerland"
msgstr ""
#: ./locales.csv:71
msgid "French, France"
msgstr ""
#: ./locales.csv:72
msgid "French, Luxembourg"
msgstr ""
#: ./locales.csv:73
msgid "Gujarati, India"
msgstr ""
#: ./locales.csv:74
msgid "Hebrew, Israel"
msgstr ""
#: ./locales.csv:75
msgid "Hindi, India"
msgstr ""
#: ./locales.csv:76
msgid "Croatian, Croatia"
msgstr ""
#: ./locales.csv:77
msgid "Hungarian, Hungary"
msgstr ""
#: ./locales.csv:78
msgid "Armenian, Armenia"
msgstr ""
#: ./locales.csv:79
msgid "Indonesian, Indonesia"
msgstr ""
#: ./locales.csv:80
msgid "Icelandic, Iceland"
msgstr ""
#: ./locales.csv:81
msgid "Italian, Switzerla"
msgstr ""
#: ./locales.csv:82
msgid "Italian, Italy"
msgstr ""
#: ./locales.csv:83
msgid "Japanese, Japan"
msgstr ""
#: ./locales.csv:84
msgid "Georgian, Georgia"
msgstr ""
#: ./locales.csv:85
msgid "Kazakh, Kazakhstan"
msgstr ""
#: ./locales.csv:86
msgid "Kannada, India"
msgstr ""
#: ./locales.csv:87
msgid "Korean, Korea"
msgstr ""
#: ./locales.csv:88
msgid "Kashmiri, India"
msgstr ""
#: ./locales.csv:89
msgid "Kurdish, Turkey"
msgstr ""
#: ./locales.csv:90
msgid "Kurdish (Sorani), Turkey"
msgstr ""
#: ./locales.csv:91
msgid "Kirghiz, Kyrgyzstan"
msgstr ""
#: ./locales.csv:92
msgid "Lithuanian, Lithuania"
msgstr ""
#: ./locales.csv:93
msgid "Latvian, Latvia"
msgstr ""
#: ./locales.csv:94
msgid "Macedonian, Macedonia"
msgstr ""
#: ./locales.csv:95
msgid "Malayalam, India"
msgstr ""
#: ./locales.csv:96
msgid "Marathi, India"
msgstr ""
#: ./locales.csv:97
msgid "Malay, Malaysia"
msgstr ""
#: ./locales.csv:98
msgid "Maltese, Malta"
msgstr ""
#: ./locales.csv:99
msgid "Bokmal, Norway"
msgstr ""
#: ./locales.csv:100
msgid "Dutch, Belgium"
msgstr ""
#: ./locales.csv:101
msgid "Dutch, Netherlands"
msgstr ""
#: ./locales.csv:102
msgid "Nynorsk, Norway"
msgstr ""
#: ./locales.csv:103
msgid "Oriya, India"
msgstr ""
#: ./locales.csv:104
msgid "Punjabi, India"
msgstr ""
#: ./locales.csv:105
msgid "Polish, Poland"
msgstr ""
#: ./locales.csv:106
msgid "Portuguese, Brazil"
msgstr ""
#: ./locales.csv:107
msgid "Portuguese, Portugal"
msgstr ""
#: ./locales.csv:108
msgid "Romanian, Romania"
msgstr ""
#: ./locales.csv:109
msgid "Russian, Russia"
msgstr ""
#: ./locales.csv:110
msgid "Russian, Ukraine"
msgstr ""
#: ./locales.csv:111
msgid "Sanskrit, India"
msgstr ""
#: ./locales.csv:112
msgid "Slovak, Slovakia"
msgstr ""
#: ./locales.csv:113
msgid "Slovenian, Slovenia"
msgstr ""
#: ./locales.csv:114
msgid "Albanian, Albania"
msgstr ""
#: ./locales.csv:115
msgid "Serbian, Montenegro"
msgstr ""
#: ./locales.csv:116
msgid "Serbian, Montenegro (Latin)"
msgstr ""
#: ./locales.csv:117
msgid "Serbian, Serbia"
msgstr ""
#: ./locales.csv:118
msgid "Serbian, Serbia (Latin)"
msgstr ""
#: ./locales.csv:119
msgid "Swedish, Sweden"
msgstr ""
#: ./locales.csv:120
msgid "Tamil, India"
msgstr ""
#: ./locales.csv:121
msgid "Telugu, India"
msgstr ""
#: ./locales.csv:122
msgid "Thai, Thailand"
msgstr ""
#: ./locales.csv:123
msgid "Turkish, Turkey"
msgstr ""
#: ./locales.csv:124
msgid "Ukrainian, Ukraine"
msgstr ""
#: ./locales.csv:125
msgid "Vietnamese, Vietnam"
msgstr ""
#: ./locales.csv:126
msgid "Simplified Chinese, China"
msgstr ""
#: ./locales.csv:127
msgid "Traditional Chinese, Hong Kong SAR China"
msgstr ""
#: ./locales.csv:128
msgid "Chinese, Singapore"
msgstr ""
#: ./locales.csv:129
msgid "Traditional Chinese, Taiwan"
msgstr ""

@ -0,0 +1,534 @@
# Russian translations for ubl-settings-system package.
# Copyright (C) 2022, UBTech LLC
# This file is distributed under the same license as the ubl-settings-system package.
# UBLinux Team <info@ublinux.com>, 2022
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: ubl-settings-system 1.0\n"
"Report-Msgid-Bugs-To: info@ublinux.com\n"
"POT-Creation-Date: 2023-04-25 15:52+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"
#: ./locales.csv:1
msgid "Afrikaans, South Africa"
msgstr "Африкаанс, Южная Африка"
#: ./locales.csv:2
msgid "Arabic, United Arab Emirates"
msgstr "Арабский, Объединенные Арабские Эмираты"
#: ./locales.csv:3
msgid "Arabic, Bahrain"
msgstr "Арабский, Бахрейн"
#: ./locales.csv:4
msgid "Arabic, Algeria"
msgstr "Арабский, Алжир"
#: ./locales.csv:5
msgid "Arabic, Egypt"
msgstr "Арабский, Египет"
#: ./locales.csv:6
msgid "Arabic, Iraq"
msgstr "Арабский, Ирак"
#: ./locales.csv:7
msgid "Arabic, Jordan"
msgstr "Арабский, Иордания"
#: ./locales.csv:8
msgid "Arabic, Kuwait"
msgstr "Арабский, Кувейт"
#: ./locales.csv:9
msgid "Arabic, Libya"
msgstr "Арабский, Ливия"
#: ./locales.csv:10
msgid "Arabic, Morocco"
msgstr "Арабский, Марокко"
#: ./locales.csv:11
msgid "Arabic, Oman"
msgstr "Арабский, Оман"
#: ./locales.csv:12
msgid "Arabic, Qatar"
msgstr "Арабский, Катар"
#: ./locales.csv:13
msgid "Arabic, Saudi Arabia"
msgstr "Арабский, Саудовская Аравия"
#: ./locales.csv:14
msgid "Arabic, Tunisia"
msgstr "Арабский, Тунис"
#: ./locales.csv:15
msgid "Arabic, Yemen"
msgstr "Арабский, Йемен"
#: ./locales.csv:16
msgid "Assamese, India"
msgstr "Ассамский, Индия"
#: ./locales.csv:17
msgid "Azerbaijani, Azerbaijan"
msgstr "Азербайджанский, Азербайджан"
#: ./locales.csv:18
msgid "Belarusian, Belarus"
msgstr "Белорусский, Беларусь"
#: ./locales.csv:19
msgid "Bulgarian, Bulgaria"
msgstr "Болгарский, Болгария"
#: ./locales.csv:20
msgid "Bengali, India"
msgstr "Бенгальский, Индия"
#: ./locales.csv:21
msgid "Bosnian, Bosnia and Herzegovina"
msgstr "Боснийский, Босния и Герцеговина"
#: ./locales.csv:22
msgid "Catalan, Spain"
msgstr "Каталанский, Испания"
#: ./locales.csv:23
msgid "Czech, Czech Republic"
msgstr "Чешский, Чехия"
#: ./locales.csv:24
msgid "Danish, Denmark"
msgstr "Датский, Дания"
#: ./locales.csv:25
msgid "German, Austria"
msgstr "Немецкий, Австрия"
#: ./locales.csv:26
msgid "German, Belgium"
msgstr "Немецкий, Бельгия"
#: ./locales.csv:27
msgid "German, Switzerland"
msgstr "Немецкий, Швейцария"
#: ./locales.csv:28
msgid "German, Germany"
msgstr "Немецкий, Германия"
#: ./locales.csv:29
msgid "German, Liechtenstein"
msgstr "Немецкий, Лихтенштейн"
#: ./locales.csv:30
msgid "German, Luxembourg"
msgstr "Немецкий, Люксембург"
#: ./locales.csv:31
msgid "Greek, Cyprus"
msgstr "Греческий, Кипр"
#: ./locales.csv:32
msgid "Greek, Greece"
msgstr "Греческий, Греция"
#: ./locales.csv:33
msgid "English, Australia"
msgstr "Английский, Австралия"
#: ./locales.csv:34
msgid "English, Botswana"
msgstr "Английский, Ботсвана"
#: ./locales.csv:35
msgid "English, Canada"
msgstr "Английский, Канада"
#: ./locales.csv:36
msgid "English, United Kingdom"
msgstr "Английский, Великобритания"
#: ./locales.csv:37
msgid "English, Hong Kong SAR China"
msgstr "Английский, Гонконг (САР Китая)"
#: ./locales.csv:38
msgid "English, Ireland"
msgstr "Английский, Ирландия"
#: ./locales.csv:39
msgid "English, India"
msgstr "Английский, Индия"
#: ./locales.csv:40
msgid "English, Malta"
msgstr "Английский, Мальта"
#: ./locales.csv:41
msgid "English, New Zealand"
msgstr "Английский, Новая Зеландия"
#: ./locales.csv:42
msgid "English, Philippines"
msgstr "Английский, Филиппины"
#: ./locales.csv:43
msgid "English, Singapore"
msgstr "Английский, Сингапур"
#: ./locales.csv:44
msgid "English, U.S.A."
msgstr "Английский, США"
#: ./locales.csv:45
msgid "English, Zimbabwe"
msgstr "Английский, Зимбабве"
#: ./locales.csv:46
msgid "Spanish, Argentina"
msgstr "Испанский, Аргентина"
#: ./locales.csv:47
msgid "Spanish, Bolivia"
msgstr "Испанский, Боливия"
#: ./locales.csv:48
msgid "Spanish, Chile"
msgstr "Испанский, Чили"
#: ./locales.csv:49
msgid "Spanish, Colombia"
msgstr "Испанский, Колумбия"
#: ./locales.csv:50
msgid "Spanish, Costa Rica"
msgstr "Испанский, Коста-Рика"
#: ./locales.csv:51
msgid "Spanish, Dominican Republic"
msgstr "Испанский, Доминиканская Республика"
#: ./locales.csv:52
msgid "Spanish, Ecuador"
msgstr "Испанский, Эквадор"
#: ./locales.csv:53
msgid "Spanish, Spain"
msgstr "Испанский, Испания"
#: ./locales.csv:54
msgid "Spanish, Guatemala"
msgstr "Испанский, Гватемала"
#: ./locales.csv:55
msgid "Spanish, Honduras"
msgstr "Испанский, Гондурас"
#: ./locales.csv:56
msgid "Spanish, Mexico"
msgstr "Испанский, Мексика"
#: ./locales.csv:57
msgid "Spanish, Nicaragua"
msgstr "Испанский, Никарагуа"
#: ./locales.csv:58
msgid "Spanish, Panama"
msgstr "Испанский, Панама"
#: ./locales.csv:59
msgid "Spanish, Peru"
msgstr "Испанский, Перу"
#: ./locales.csv:60
msgid "Spanish, Puerto Rico"
msgstr "Испанский, Пуэрто-Рико"
#: ./locales.csv:61
msgid "Spanish, Paraguay"
msgstr "Испанский, Парагвай"
#: ./locales.csv:62
msgid "Spanish, El Salvador"
msgstr "Испанский, Сальвадор"
#: ./locales.csv:63
msgid "Spanish, U.S.A."
msgstr "Испанский, США"
#: ./locales.csv:64
msgid "Spanish, Uruguay"
msgstr "Испанский, Уругвай"
#: ./locales.csv:65
msgid "Spanish, Venezuela"
msgstr "Испанский, Венесуэла"
#: ./locales.csv:66
msgid "Estonian, Estonia"
msgstr "Эстонский, Эстония"
#: ./locales.csv:67
msgid "Finnish, Finland"
msgstr "Финский, Финляндия"
#: ./locales.csv:68
msgid "French, Belgium"
msgstr "Французский, Бельгия"
#: ./locales.csv:69
msgid "French, Canada"
msgstr "Французский, Канада"
#: ./locales.csv:70
msgid "French, Switzerland"
msgstr "Французский, Швейцария"
#: ./locales.csv:71
msgid "French, France"
msgstr "Французский, Франция"
#: ./locales.csv:72
msgid "French, Luxembourg"
msgstr "Французский, Люксембург"
#: ./locales.csv:73
msgid "Gujarati, India"
msgstr "Гуджарати, Индия"
#: ./locales.csv:74
msgid "Hebrew, Israel"
msgstr "Иврит, Израиль"
#: ./locales.csv:75
msgid "Hindi, India"
msgstr "Хинди, Индия"
#: ./locales.csv:76
msgid "Croatian, Croatia"
msgstr "Хорватский, Хорватия"
#: ./locales.csv:77
msgid "Hungarian, Hungary"
msgstr "Венгерский, Венгрия"
#: ./locales.csv:78
msgid "Armenian, Armenia"
msgstr "Армянский, Армения"
#: ./locales.csv:79
msgid "Indonesian, Indonesia"
msgstr "Индонезийский, Индонезия"
#: ./locales.csv:80
msgid "Icelandic, Iceland"
msgstr "Исландский, Исландия"
#: ./locales.csv:81
msgid "Italian, Switzerla"
msgstr "Итальянский, Швейцария"
#: ./locales.csv:82
msgid "Italian, Italy"
msgstr "Итальянский, Италия"
#: ./locales.csv:83
msgid "Japanese, Japan"
msgstr "Японский, Япония"
#: ./locales.csv:84
msgid "Georgian, Georgia"
msgstr "Грузинский, Грузия"
#: ./locales.csv:85
msgid "Kazakh, Kazakhstan"
msgstr "Казахский, Казахстан"
#: ./locales.csv:86
msgid "Kannada, India"
msgstr "Каннада, Индия"
#: ./locales.csv:87
msgid "Korean, Korea"
msgstr "Корейский, Корея"
#: ./locales.csv:88
msgid "Kashmiri, India"
msgstr "Кашмирский, Индия"
#: ./locales.csv:89
msgid "Kurdish, Turkey"
msgstr "Курдский, Турция"
#: ./locales.csv:90
msgid "Kurdish (Sorani), Turkey"
msgstr "Курдский (сорани), Турция"
#: ./locales.csv:91
msgid "Kirghiz, Kyrgyzstan"
msgstr "Киргизский, Киргизия"
#: ./locales.csv:92
msgid "Lithuanian, Lithuania"
msgstr "Литовский, Литва"
#: ./locales.csv:93
msgid "Latvian, Latvia"
msgstr "Латышский, Латвия"
#: ./locales.csv:94
msgid "Macedonian, Macedonia"
msgstr "Македонский, Македония"
#: ./locales.csv:95
msgid "Malayalam, India"
msgstr "Малаялам, Индия"
#: ./locales.csv:96
msgid "Marathi, India"
msgstr "Маратхи, Индия"
#: ./locales.csv:97
msgid "Malay, Malaysia"
msgstr "Малайский, Малайзия"
#: ./locales.csv:98
msgid "Maltese, Malta"
msgstr "Мальтийский, Мальта"
#: ./locales.csv:99
msgid "Bokmal, Norway"
msgstr "Букмол, Норвегия"
#: ./locales.csv:100
msgid "Dutch, Belgium"
msgstr "Нидерландский, Бельгия"
#: ./locales.csv:101
msgid "Dutch, Netherlands"
msgstr "Нидерландский, Нидерланды"
#: ./locales.csv:102
msgid "Nynorsk, Norway"
msgstr "Нюнорск, Норвегия"
#: ./locales.csv:103
msgid "Oriya, India"
msgstr "Ория, Индия"
#: ./locales.csv:104
msgid "Punjabi, India"
msgstr "Панджаби, Индия"
#: ./locales.csv:105
msgid "Polish, Poland"
msgstr "Польский, Польша"
#: ./locales.csv:106
msgid "Portuguese, Brazil"
msgstr "Португальский, Бразилия"
#: ./locales.csv:107
msgid "Portuguese, Portugal"
msgstr "Португальский, Португалия"
#: ./locales.csv:108
msgid "Romanian, Romania"
msgstr "Румынский, Румыния"
#: ./locales.csv:109
msgid "Russian, Russia"
msgstr "Русский, Россия"
#: ./locales.csv:110
msgid "Russian, Ukraine"
msgstr "Русский, Украина"
#: ./locales.csv:111
msgid "Sanskrit, India"
msgstr "Санскрит, Индия"
#: ./locales.csv:112
msgid "Slovak, Slovakia"
msgstr "Словацкий, Словакия"
#: ./locales.csv:113
msgid "Slovenian, Slovenia"
msgstr "Словенский, Словения"
#: ./locales.csv:114
msgid "Albanian, Albania"
msgstr "Албанский, Албания"
#: ./locales.csv:115
msgid "Serbian, Montenegro"
msgstr "Сербский, Черногория"
#: ./locales.csv:116
msgid "Serbian, Montenegro (Latin)"
msgstr "Сербский, Черногория (латиница)"
#: ./locales.csv:117
msgid "Serbian, Serbia"
msgstr "Сербский, Сербия"
#: ./locales.csv:118
msgid "Serbian, Serbia (Latin)"
msgstr "Сербский, Сербия (латиница)"
#: ./locales.csv:119
msgid "Swedish, Sweden"
msgstr "Шведский, Швеция"
#: ./locales.csv:120
msgid "Tamil, India"
msgstr "Тамильский, Индия"
#: ./locales.csv:121
msgid "Telugu, India"
msgstr "Телугу, Индия"
#: ./locales.csv:122
msgid "Thai, Thailand"
msgstr "Тайский, Таиланд"
#: ./locales.csv:123
msgid "Turkish, Turkey"
msgstr "Турецкий, Турция"
#: ./locales.csv:124
msgid "Ukrainian, Ukraine"
msgstr "Украинский, Украина"
#: ./locales.csv:125
msgid "Vietnamese, Vietnam"
msgstr "Вьетнамский, Вьетнам"
#: ./locales.csv:126
msgid "Simplified Chinese, China"
msgstr "Китайский (упрощенный), Китай"
#: ./locales.csv:127
msgid "Traditional Chinese, Hong Kong SAR China"
msgstr "Китайский (традиционный), Гонконг (САР Китая)"
#: ./locales.csv:128
msgid "Chinese, Singapore"
msgstr "Китайский, Сингапур"
#: ./locales.csv:129
msgid "Traditional Chinese, Taiwan"
msgstr "Китайский (традиционный), Тайвань"

@ -8,20 +8,22 @@ include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
add_definitions(${GTK_CFLAGS_OTHER})
pkg_check_modules(VTE291 REQUIRED vte-2.91)
include_directories(${VTE291_INCLUDE_DIRS})
link_directories(${VTE291_LIBRARY_DIRS})
add_definitions(${VTE291_CFLAGS_OTHER})
find_library(WEBKIT_LIBRARIES_FOUND webkit2gtk-4.0 webkit2gtk-web-extension-4.0)
option(WEBKIT_FOUND "No" OFF)
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()
pkg_check_modules(VTE291 REQUIRED vte-2.91)
include_directories(${VTE291_INCLUDE_DIRS})
link_directories(${VTE291_LIBRARY_DIRS})
add_definitions(${VTE291_CFLAGS_OTHER})
set(GRESOURCE_C resources.c)
set(GRESOURCE_XML gresource.xml)
@ -35,7 +37,6 @@ set(DEPENDFILES
../ubl-settings-system-domain-view.glade
../ubl-settings-system-layouts.glade
../gresource.xml
../ubl-settings-system-banner.png
../ubl-settings-system.css
)
@ -59,7 +60,9 @@ add_custom_target(
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}
)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always \
add_definitions(-DVTE_INCLUDE)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always \
-O2 -pipe -fno-plt -fexceptions \
-Wformat -Werror=format-security \
-fstack-clash-protection -fcf-protection")
@ -70,7 +73,6 @@ if(FORTIFY_FOUND EQUAL -1)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wp,-D_FORTIFY_SOURCE=2")
endif()
set(SOURCE_FILES
ubl-settings-system.c
ubl-settings-system.h
@ -79,6 +81,8 @@ set(SOURCE_FILES
set(LIBRARIES
${GTK_LIBRARIES}
${WEBKIT_LIBRARIES}
${UTILS_LIBRARIES}
${VTE291_LIBRARIES}
pthread
ublsettings

@ -4,7 +4,7 @@ config main_config;
//functions
void on_save_done(main_window *widgets, config_str output, int size){
void on_save_done(main_window *, config_str output, int size){
char *final_output = yon_char_parsed_to_string(output,size,"");
if (final_output){
printf("%s\n",final_output);
@ -39,59 +39,48 @@ void on_config_reload(GtkWidget *,main_window *widgets){
yon_interface_update(widgets);
}
int yon_load_proceed(YON_CONFIG_TYPE type){
if (type!=YON_CONFIG_CUSTOM){
void yon_load_proceed(YON_CONFIG_TYPE type){
yon_config_clean();
}
if (!yon_char_is_empty(config_get_default_command))
yon_config_load_config(YON_CONFIG_DEFAULT,config_get_default_command,NULL);
if (type==YON_CONFIG_GLOBAL){
yon_config_load_config(type,config_get_command("global"),NULL);
}
else if (type==YON_CONFIG_LOCAL){
} else if (type==YON_CONFIG_LOCAL){
yon_config_load_config(type,config_get_command("system"),NULL);
} else if (type==YON_CONFIG_CUSTOM){
char *path;
char *path="";
textdomain(template_ui_LocaleName);
GtkWidget *dialog = gtk_file_chooser_dialog_new(template_app_information.app_title,NULL,GTK_FILE_CHOOSER_ACTION_SAVE,CANCEL_LABEL,GTK_RESPONSE_CANCEL,OPEN_LABEL,GTK_RESPONSE_ACCEPT,NULL);
textdomain(LocaleName);
yon_gtk_window_setup(GTK_WINDOW(dialog),NULL,TITLE_LABEL,main_icon,"LoadWindow");
gtk_window_set_icon_name(GTK_WINDOW(dialog),"com.ublinux.ubl-settings-services");
gtk_window_set_title(GTK_WINDOW(dialog),TITLE_LABEL);
GtkFileFilter *filter = gtk_file_filter_new();
gtk_file_filter_set_name(filter,"*.ini");
gtk_file_filter_add_pattern(filter,"*.ini");
gtk_file_filter_set_name(filter, "*.ini");
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog),filter);
gtk_widget_show(dialog);
int response = gtk_dialog_run(GTK_DIALOG(dialog));
if (response == GTK_RESPONSE_ACCEPT){
char *file = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
if (!yon_char_is_empty(file)){
path=yon_char_unite("'",file,"'",NULL);
main_config.custom_load_path = path;
path=file;
}
yon_config_clean();
yon_config_load_config(type,config_get_command(path),NULL);
gtk_widget_destroy(dialog);
} else {
gtk_widget_destroy(dialog);
return 0;
}
char *command = yon_char_unite(config_get_command(path),NULL);
yon_config_load_config(type,command,NULL);
}
return 1;
}
void yon_config_local_load(GtkWidget *self, main_window *widgets){
void yon_config_local_load(GtkWidget *, main_window *widgets){
yon_load_proceed(YON_CONFIG_LOCAL);
if (getuid()==0){
textdomain(template_ui_LocaleName);
yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName);
}
main_config.load_mode=1;
main_config.load_mode=YON_CONFIG_LOCAL;
yon_interface_update(widgets);
}
void yon_config_global_load(GtkWidget *self, main_window *widgets){
void yon_config_global_load(GtkWidget *, main_window *widgets){
yon_load_proceed(YON_CONFIG_GLOBAL);
if (getuid()==0){
textdomain(template_ui_LocaleName);
@ -102,15 +91,9 @@ void yon_config_global_load(GtkWidget *self, main_window *widgets){
yon_interface_update(widgets);
}
void yon_config_custom_load(GtkWidget *self, main_window *widgets){
if (!yon_load_proceed(YON_CONFIG_CUSTOM))
return;
if (getuid()==0){
textdomain(template_ui_LocaleName);
yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName);
}
main_config.load_mode=1;
void yon_config_custom_load(GtkWidget *, main_window *widgets){
yon_load_proceed(YON_CONFIG_CUSTOM);
main_config.load_mode=YON_CONFIG_CUSTOM;
yon_interface_update(widgets);
}
@ -169,7 +152,7 @@ void yon_interface_update(main_window *widgets){
char *lang = yon_config_get_by_key(language_parameter);
char *avlocale = yon_config_get_by_key(locale_parameter);
int locsize;
if (avlocale);
if (avlocale){};
config_str locale_parsed = yon_char_parse(avlocale,&locsize,",");
gboolean is_active;
char *locale_string="";
@ -241,6 +224,7 @@ void yon_config_global_save(){
void yon_config_custom_save(){
main_config.save_config=3;
template_saving_window *window = yon_save_proceed(NULL,YON_CONFIG_CUSTOM,config_get_command("system"),NULL);
if (window){};
}
void on_domain_address_save(GtkEntry *self){
@ -258,7 +242,7 @@ void yon_gtk_windget_set_sensitive_from_entry_emptiness(GtkEntry *self, GtkWidge
}
}
void on_locale_toggle(GtkCellRendererToggle *self,GtkTreePath* path,GtkTreeViewColumn* column,locals_window *window){
void on_locale_toggle(GtkCellRendererToggle *,GtkTreePath* path,GtkTreeViewColumn* ,locals_window *window){
GtkTreeIter iter;
GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(window->MainTree));
gtk_tree_model_get_iter(model,&iter,path);
@ -297,7 +281,7 @@ void on_locale_accept(GtkWidget *self, dictionary *dict){
on_subwindow_close(self);
}
void on_locale_open(GtkWidget *self, main_window *widgets){
void on_locale_open(GtkWidget *, main_window *widgets){
locals_window *window = malloc(sizeof(locals_window));
GtkBuilder *builder = gtk_builder_new_from_resource(glade_locales_path);
window->Window = yon_gtk_builder_get_widget(builder,"localesLayoutsWindow");
@ -328,7 +312,7 @@ void on_locale_open(GtkWidget *self, main_window *widgets){
}
void on_hostname_changed(GtkEntry *self, main_window *widgets){
void on_hostname_changed(GtkEntry *self, main_window *){
char *text = (char*)gtk_entry_get_text(self);
if (yon_config_get_by_key(hostname_parameter)){
yon_config_set(hostname_parameter,text);
@ -380,7 +364,7 @@ void on_id_changed(GtkEntry *self, main_window *widgets){
}
void on_id_copy(GtkButton *self, main_window *widgets){
void on_id_copy(GtkButton *, main_window *widgets){
GtkClipboard *clipboard = gtk_clipboard_get_default(gdk_display_get_default());
const char *clipboard_id = gtk_entry_get_text(GTK_ENTRY(widgets->IDEntry));
gtk_clipboard_set_text(clipboard,clipboard_id,strlen(clipboard_id));
@ -395,13 +379,14 @@ void on_console_font_changed(GtkComboBox *self, main_window *widgets){
gtk_combo_box_get_active_iter(self,&iter);
char *code;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->fontlist),&iter,0,&code,-1);
if (code)
if (code){
if (yon_config_get_by_key(console_font_parameter)){
yon_config_set(console_font_parameter,code);
} else {
yon_config_register(console_font_parameter,CONSOLE_FONT_get_command,code);
}
}
}
}
void on_language_changed(GtkComboBox *self, main_window *widgets){
@ -421,7 +406,7 @@ void on_language_changed(GtkComboBox *self, main_window *widgets){
}
}
void on_terminal_done(VteTerminal *terminal, gint status, dictionary *dict){
void on_terminal_done(VteTerminal *, gint status, dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
GtkWidget *window = yon_dictionary_get_data(dict->first->next,GtkWidget*);
if (!status){
@ -430,7 +415,7 @@ void on_terminal_done(VteTerminal *terminal, gint status, dictionary *dict){
}
}
void on_terminal_command_ended(VteTerminal *terminal, gint status, domain_info_window *window){
void on_terminal_command_ended(VteTerminal *, gint status, domain_info_window *window){
// yon_ubl_status_box_despawn_infinite(GTK_CONTAINER(window->StatusBox));
if (!status){
yon_ubl_status_box_spawn_infinite(GTK_CONTAINER(window->StatusBox),"success",yon_char_get_localised_from_lib(SUCCESS_LABEL),BACKGROUND_IMAGE_SUCCESS_TYPE);
@ -459,7 +444,7 @@ domain_info_window *yon_information_window_new(){
return window;
}
void on_domain_connect(GtkWidget *self, dictionary *dict){
void on_domain_connect(GtkWidget *, dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
connection_window *window = yon_dictionary_get_data(dict->first->next,connection_window*);
char *adress = (char*)gtk_entry_get_text(GTK_ENTRY(window->AdressEntry));
@ -492,7 +477,7 @@ void on_domain_connect(GtkWidget *self, dictionary *dict){
on_config_reload(NULL,widgets);
}
void on_status_clicked(GtkWidget *self, connection_window *window){
void on_status_clicked(GtkWidget *, connection_window *window){
char *target = (char*)gtk_entry_get_text(GTK_ENTRY(window->AdressEntry));
if (!yon_char_is_empty(target)){
yon_debug_output("%s\n",domain_info(target));
@ -504,7 +489,7 @@ void on_status_clicked(GtkWidget *self, connection_window *window){
}
}
void on_find_domains_clicked(GtkWidget *self, main_window *window){
void on_find_domains_clicked(GtkWidget *, main_window *window){
domain_info_window *dialog = yon_information_window_new();
yon_terminal_integrated_start(dialog->ExecuteTerminal,domains_seek_command);
@ -514,7 +499,7 @@ void on_find_domains_clicked(GtkWidget *self, main_window *window){
}
void on_main_window_domain_status_clicked(GtkWidget *self, GtkEntryIconPosition icon_pos,GdkEvent* event,main_window *widgets){
void on_main_window_domain_status_clicked(GtkWidget *, GtkEntryIconPosition icon_pos,GdkEvent* ,main_window *widgets){
if (icon_pos==GTK_ENTRY_ICON_SECONDARY&&main_config.domain_connected){
char *target = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->DomainEntry));
if (!yon_char_is_empty(target)){
@ -549,7 +534,7 @@ gboolean on_main_window_domain_status_update(connection_window *window){
}
// gboolean yon_update_thread(GtkWidget *self, GdkEvent *event, connection_window *window){
gboolean yon_update_thread(GtkWidget *self, connection_window *window){
gboolean yon_update_thread(GtkWidget *, connection_window *window){
g_mutex_lock(&main_config.ThreadMutex);
if (!update_thread_buzy){
update_thread_buzy=1;
@ -588,7 +573,7 @@ connection_window *yon_connection_window_new(){
return window;
}
void on_domain_disconnect(GtkWidget *self, dictionary *dict){
void on_domain_disconnect(GtkWidget *, dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
domain_window *window = yon_dictionary_get_data(dict->first->next,domain_window*);
char *adress = (char*)gtk_entry_get_text(GTK_ENTRY(window->AdressEntry));
@ -631,7 +616,7 @@ domain_window *yon_domain_window_new(){
return window;
}
void on_domain_opened(GtkWidget *self, main_window *widgets){
void on_domain_opened(GtkWidget *, main_window *widgets){
if (main_config.domain_connected){
domain_window *window = yon_domain_window_new();
gtk_label_set_text(GTK_LABEL(window->HeadLabel),DISCONNECTION_LABEL);
@ -675,8 +660,9 @@ void on_domain_opened(GtkWidget *self, main_window *widgets){
gtk_entry_set_text(GTK_ENTRY(window->KerberosServerEntry),kerberos);
if (!yon_char_is_empty(dns))
gtk_entry_set_text(GTK_ENTRY(window->DNSEntry),dns);
if (!yon_char_is_empty(client))
if (!yon_char_is_empty(client)){
gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->ClientCombo),client);
}
dictionary *dict = NULL;
yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets);
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
@ -690,21 +676,7 @@ void on_domain_opened(GtkWidget *self, main_window *widgets){
// standard functions
void config_init(){
main_config.always_open_documentation=0;
main_config.socket_id=-1;
main_config.save_socket_id=-1;
main_config.load_socket_id=-1;
main_config.lock_help=0;
main_config.lock_help=0;
main_config.lock_load_global=0;
main_config.lock_save_global=0;
main_config.lock_save_local=0;
main_config.domain_connected=0;
main_config.save_config=0;
}
void on_check_domain_connected(GtkWidget *self, main_window *widgets){
void on_check_domain_connected(GtkWidget *, main_window *widgets){
int ansv = system(domain_connect_check);
if (!ansv){
gtk_entry_set_icon_from_icon_name(GTK_ENTRY(widgets->DomainEntry),GTK_ENTRY_ICON_SECONDARY,domain_connected_icon);
@ -843,8 +815,9 @@ main_window *yon_main_window_complete(main_window *widgets){
}
yon_config_local_load(NULL,widgets);
char *domain = yon_config_get_by_key(DOMAIN);
if (!yon_char_is_empty(domain))
if (!yon_char_is_empty(domain)){
gtk_entry_set_text(GTK_ENTRY(widgets->DomainEntry),domain);
}
yon_save_window_set_postsave_function(on_save_done,widgets);
return widgets;
}
@ -852,7 +825,6 @@ main_window *yon_main_window_complete(main_window *widgets){
int main(int argc, char *argv[]){
local=setlocale(LC_ALL, "");
textdomain (LocaleName);
config_init();
yon_ubl_connect_config((_template_config*)&main_config);
yon_ubl_window_init(TITLE_LABEL,TITLE_INFO_LABEL,LocaleName,CssPath,LocaleName,version_application,WIKI_LINK);
config_str unfound = NULL;

@ -7,7 +7,6 @@
#include <libintl.h>
#include <getopt.h>
#include <libintl.h>
#define VTE_INCLUDE
#include <libublsettings.h>
#include <libublsettings-gtk3.h>
#include <libublsettingsui-gtk3.h>
@ -197,10 +196,16 @@ typedef struct {
GtkWidget *TerminalScroll;
} domain_info_window;
void on_save_done(main_window *widgets, config_str output, int size);
void on_config_reload(GtkWidget *,main_window *widgets);
void yon_config_local_load(GtkWidget *self, main_window *widgets);
void yon_config_global_load(GtkWidget *self, main_window *widgets);
void yon_config_custom_load(GtkWidget *self, main_window *widgets);
void yon_load_proceed(YON_CONFIG_TYPE type);
void yon_interface_update(main_window *widgets);
main_window *setup_window();
void on_id_changed(GtkEntry *self, main_window *widgets);
@ -212,3 +217,33 @@ void on_language_changed(GtkComboBox *self, main_window *widgets);
void on_console_font_changed(GtkComboBox *self, main_window *widgets);
void on_hostname_changed(GtkEntry *self, main_window *widgets);
void on_locale_window_closed();
void yon_config_global_local_save();
void yon_config_local_save();
void yon_config_global_save();
void yon_config_custom_save();
void on_domain_address_save(GtkEntry *self);
void yon_gtk_windget_set_sensitive_from_entry_emptiness(GtkEntry *self, GtkWidget *target);
void on_locale_toggle(GtkCellRendererToggle *self,GtkTreePath* path,GtkTreeViewColumn* column,locals_window *window);
void on_locale_accept(GtkWidget *self, dictionary *dict);
void on_locale_open(GtkWidget *self, main_window *widgets);
void on_hostname_changed(GtkEntry *self, main_window *widgets);
void on_id_combo_toggled(GtkComboBox *self, main_window *widgets);
void on_id_changed(GtkEntry *self, main_window *widgets);
void on_id_copy(GtkButton *self, main_window *widgets);
void on_console_font_changed(GtkComboBox *self, main_window *widgets);
void on_language_changed(GtkComboBox *self, main_window *widgets);
void on_terminal_done(VteTerminal *terminal, gint status, dictionary *dict);
void on_terminal_command_ended(VteTerminal *terminal, gint status, domain_info_window *window);
domain_info_window *yon_information_window_new();
void on_domain_connect(GtkWidget *self, dictionary *dict);
void on_status_clicked(GtkWidget *self, connection_window *window);
void on_find_domains_clicked(GtkWidget *self, main_window *window);
void on_main_window_domain_status_clicked(GtkWidget *self, GtkEntryIconPosition icon_pos,GdkEvent* event,main_window *widgets);
gboolean on_main_window_domain_status_update(connection_window *window);
gboolean yon_update_thread(GtkWidget *self, connection_window *window);
connection_window *yon_connection_window_new();
void on_domain_disconnect(GtkWidget *self, dictionary *dict);
domain_window *yon_domain_window_new();
void on_domain_opened(GtkWidget *self, main_window *widgets);
void on_check_domain_connected(GtkWidget *self, main_window *widgets);
main_window *yon_main_window_complete(main_window *widgets);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Loading…
Cancel
Save