diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..37b66b5
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,12 @@
+.vscode/
+ubinstall-gtk
+*~
+build/
+compile/
+*#
+terminal-commands/
+source/ubl-cmake.h
+vgcore*
+.BUILD.md
+.updatebuild.sh
+.install.sh
\ No newline at end of file
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..b28a503
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,153 @@
+#!/usr/bin/make -f
+
+#SHELL := /bin/bash
+MAKEFILE_FILEPATH := $(abspath $(lastword $(MAKEFILE_LIST)))
+MAKEFILE_DIR := $(notdir $(patsubst %/,%,$(dir $(MAKEFILE_FILEPATH))))
+MAKEFILE_PATH := $(dir $(MAKEFILE_FILEPATH))
+
+CMAKE_COMMAND = cmake
+CMAKE_SOURCE_DIR = $(MAKEFILE_PATH)source
+CMAKE_BUILD_DIR = $(MAKEFILE_PATH)compile
+DEPENDS = /bin/cmake
+PREFIX ?= /usr/local
+PKGNAME = $(MAKEFILE_DIR)
+FILE_VER = source/${PKGNAME}.h
+PKGIDENT = $(subst /,-,$(subst /usr,,${PREFIX}))
+
+default_target: all
+
+.PHONY: all init depend debug prepare check build uninstall install clean help
+
+all: init build
+
+init:
+ @echo "Initialize ..."; \
+ if [ -d ".git" ]; then \
+ LATEST_TAG=$$(git describe --abbrev=0 --tags | sed 's/^v//'); \
+ if [ -z "$${LATEST_TAG}" ]; then \
+ LATEST_TAG="0.0"; \
+ fi; \
+ else \
+ LATEST_TAG="Development"; \
+ fi; \
+ 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 \
+ echo "ERROR: Depend '$${FILE_DEPEND}' not found !"; \
+ exit 1; \
+ fi; \
+ done; \
+ $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B${CMAKE_BUILD_DIR} --check-build-system CMakeFiles/Makefile.cmake 1 || exit 1; \
+ echo "Check depends: OK"
+
+debug:
+ @echo "Debug ..."
+ 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 \
+ $(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 \
+ echo "Check: OK"; \
+ else \
+ echo "Check: ${CMAKE_BUILD_DIR}/${PKGNAME} not found !"; \
+ exit 1; \
+ fi
+
+build: depend prepare
+ @echo "Build ..."; \
+ $(MAKE_COMMAND) --directory=${CMAKE_BUILD_DIR}; \
+ 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}"; \
+ $(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"; \
+ 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}; \
+ done; \
+ done
+ @$(RM) "${DESTDIR}${PREFIX}/bin/${PKGNAME}"
+ @$(RM) "${DESTDIR}${PREFIX}/share/applications/${PKGNAME}.desktop"
+ @$(RM) "${DESTDIR}${PREFIX}/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; \
+ update-desktop-database --quiet &>/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}"; \
+ done
+ @for SIZE in 16 32 48; do \
+ install -dm755 "${DESTDIR}/usr/share/icons/hicolor/$${SIZE}x$${SIZE}/apps"; \
+ rsvg-convert -w $${SIZE} -h $${SIZE} -f svg --keep-image-data "com.ublinux.${PKGNAME}-gui.svg" -o "${DESTDIR}/usr/share/icons/hicolor/$${SIZE}x$${SIZE}/apps/com.ublinux.${PKGNAME}-gui.svg"; \
+ done
+ @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/apps/" "com.ublinux.${PKGNAME}-gui.svg"
+ @install -Dm644 -t "${DESTDIR}/usr/share/${PKGNAME}/csv" "locales.csv"
+ @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}${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}/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}/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 \
+ echo "Clean: error, compile directory exist ${CMAKE_BUILD_DIR}"; \
+ else \
+ echo "Clean: OK"; \
+ fi
+
+help:
+ @echo "The following are some of the valid targets for this Makefile:"; \
+ echo "... all (the default if no target is provided)"; \
+ echo "... init"; \
+ echo "... debug"; \
+ echo "... prepare"; \
+ echo "... build"; \
+ echo "... install"; \
+ echo "... uninstall"; \
+ echo "... clean"
\ No newline at end of file
diff --git a/README.md b/README.md
index 629914c..a104b78 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,39 @@
-# [ubinstall-gtk]
+# [UBInstall](https://ublinux.ru/)
+ 
+
+## Описание
+
+Установщик оерационной системы UBLinux (UBInstall) позволяет в удобно установить операционную систему.
+
+## Установка
+
+1. Скачайте репозитрий с утилитами
+ ```
+ $ git clone http://git.ublinux.ru:3000/UBGroup/ubinstall.git
+ ```
+2. Перейдите в каталог ubinstall
+ ```
+ $ cd ubinstall
+ ```
+3. Установите утилиту
+ ```
+ $ make
+ ```
+
+## Использование
+
+### Запуск
+
+Запуск утилиты возможен двумя способами:
+1. Терминал
+
+ CLI версия:
+ ```
+ $ ubinstall.cli
+ ```
+ GTK версия
+ ```
+ $ ubinstall.gtk
+ ```
+
+2. Ярлык
\ No newline at end of file
diff --git a/com.ublinux.ubinstall-gtk-gui.svg b/com.ublinux.ubinstall-gtk-gui.svg
new file mode 100644
index 0000000..693d905
--- /dev/null
+++ b/com.ublinux.ubinstall-gtk-gui.svg
@@ -0,0 +1,4915 @@
+
+
diff --git a/com.ublinux.ubinstall-gtk.policy b/com.ublinux.ubinstall-gtk.policy
new file mode 100644
index 0000000..6a12933
--- /dev/null
+++ b/com.ublinux.ubinstall-gtk.policy
@@ -0,0 +1,24 @@
+
+
+
+
+ UBLinux
+ https://ublinux.ru
+
+
+ Run "ubinstall-gtk" as root
+ Запуск утилиты ubinstall-gtk с правами root
+ Authentication is required to run ubinstall-gtk
+ Требуется авторизация для запуска утилиты ubinstall-gtk с правами root
+
+ auth_admin
+ auth_admin
+ auth_admin
+
+ /usr/bin/ubinstall-gtk
+ true
+
+
+
diff --git a/gresource.xml b/gresource.xml
new file mode 100644
index 0000000..cfd08bd
--- /dev/null
+++ b/gresource.xml
@@ -0,0 +1,36 @@
+
+
+
+ ubinstall-gtk.glade
+ ubinstall-gtk-language.glade
+ ubinstall-gtk-keyboard.glade
+
+
+ ubinstall-gtk.css
+
+
+ map-time-zone.png
+ keyboard.png
+ keyboard-ru.png
+ slide-0.png
+ slide-1.png
+ slide-2.png
+ slide-3.png
+ slide-4.png
+ slide-5.png
+ slide-6.png
+ slide-7.png
+ slide-8.png
+ slide-9.png
+ slide-10.png
+ slide-11.png
+ slide-12.png
+ near_install_disk.png
+ language.png
+ in_part_install_disk.png
+ clear_install_disk.png
+
+
+ modules.csv
+
+
\ No newline at end of file
diff --git a/icons/actions/com.ublinux.ubinstall-gtk.arrow-left-symbolic.svg b/icons/actions/com.ublinux.ubinstall-gtk.arrow-left-symbolic.svg
new file mode 100644
index 0000000..a70d10a
--- /dev/null
+++ b/icons/actions/com.ublinux.ubinstall-gtk.arrow-left-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/icons/actions/com.ublinux.ubinstall-gtk.arrow-right-symbolic.svg b/icons/actions/com.ublinux.ubinstall-gtk.arrow-right-symbolic.svg
new file mode 100644
index 0000000..0bc9ec1
--- /dev/null
+++ b/icons/actions/com.ublinux.ubinstall-gtk.arrow-right-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/icons/actions/com.ublinux.ubinstall-gtk.circle-exit-symbolic.svg b/icons/actions/com.ublinux.ubinstall-gtk.circle-exit-symbolic.svg
new file mode 100644
index 0000000..d54cf1f
--- /dev/null
+++ b/icons/actions/com.ublinux.ubinstall-gtk.circle-exit-symbolic.svg
@@ -0,0 +1,41 @@
+
+
diff --git a/images/clear_install_disk.png b/images/clear_install_disk.png
new file mode 100644
index 0000000..e5cbae3
Binary files /dev/null and b/images/clear_install_disk.png differ
diff --git a/images/in_part_install_disk.png b/images/in_part_install_disk.png
new file mode 100644
index 0000000..8454ab1
Binary files /dev/null and b/images/in_part_install_disk.png differ
diff --git a/images/keyboard-ru.png b/images/keyboard-ru.png
new file mode 100644
index 0000000..23fcd6d
Binary files /dev/null and b/images/keyboard-ru.png differ
diff --git a/images/keyboard.png b/images/keyboard.png
new file mode 100644
index 0000000..64df3da
Binary files /dev/null and b/images/keyboard.png differ
diff --git a/images/language.png b/images/language.png
new file mode 100644
index 0000000..5e28f9d
Binary files /dev/null and b/images/language.png differ
diff --git a/images/manual_install_disk.png b/images/manual_install_disk.png
new file mode 100644
index 0000000..581bd32
Binary files /dev/null and b/images/manual_install_disk.png differ
diff --git a/images/map-time-zone.png b/images/map-time-zone.png
new file mode 100644
index 0000000..ee4b906
Binary files /dev/null and b/images/map-time-zone.png differ
diff --git a/images/near_install_disk.png b/images/near_install_disk.png
new file mode 100644
index 0000000..eede4f7
Binary files /dev/null and b/images/near_install_disk.png differ
diff --git a/images/slide-0.png b/images/slide-0.png
new file mode 100644
index 0000000..5bb4687
Binary files /dev/null and b/images/slide-0.png differ
diff --git a/images/slide-1.png b/images/slide-1.png
new file mode 100644
index 0000000..146bbe9
Binary files /dev/null and b/images/slide-1.png differ
diff --git a/images/slide-10.png b/images/slide-10.png
new file mode 100644
index 0000000..8d072ca
Binary files /dev/null and b/images/slide-10.png differ
diff --git a/images/slide-11.png b/images/slide-11.png
new file mode 100644
index 0000000..baffec1
Binary files /dev/null and b/images/slide-11.png differ
diff --git a/images/slide-12.png b/images/slide-12.png
new file mode 100644
index 0000000..98cba48
Binary files /dev/null and b/images/slide-12.png differ
diff --git a/images/slide-2.png b/images/slide-2.png
new file mode 100644
index 0000000..2b714b1
Binary files /dev/null and b/images/slide-2.png differ
diff --git a/images/slide-3.png b/images/slide-3.png
new file mode 100644
index 0000000..d67a37a
Binary files /dev/null and b/images/slide-3.png differ
diff --git a/images/slide-4.png b/images/slide-4.png
new file mode 100644
index 0000000..54ad2c5
Binary files /dev/null and b/images/slide-4.png differ
diff --git a/images/slide-5.png b/images/slide-5.png
new file mode 100644
index 0000000..4789ba2
Binary files /dev/null and b/images/slide-5.png differ
diff --git a/images/slide-6.png b/images/slide-6.png
new file mode 100644
index 0000000..83e782c
Binary files /dev/null and b/images/slide-6.png differ
diff --git a/images/slide-7.png b/images/slide-7.png
new file mode 100644
index 0000000..972c77c
Binary files /dev/null and b/images/slide-7.png differ
diff --git a/images/slide-8.png b/images/slide-8.png
new file mode 100644
index 0000000..daf925e
Binary files /dev/null and b/images/slide-8.png differ
diff --git a/images/slide-9.png b/images/slide-9.png
new file mode 100644
index 0000000..fa457a3
Binary files /dev/null and b/images/slide-9.png differ
diff --git a/images/ublinux-logo.svg b/images/ublinux-logo.svg
new file mode 100644
index 0000000..823499d
--- /dev/null
+++ b/images/ublinux-logo.svg
@@ -0,0 +1,120 @@
+
+
diff --git a/locales.csv b/locales.csv
new file mode 100644
index 0000000..543d3ee
--- /dev/null
+++ b/locales.csv
@@ -0,0 +1,129 @@
+af_ZA.UTF-8;Afrikaans, South Africa
+ar_AE.UTF-8;Arabic, United Arab Emirates
+ar_BH.UTF-8;Arabic, Bahrain
+ar_DZ.UTF-8;Arabic, Algeria
+ar_EG.UTF-8;Arabic, Egypt
+ar_IQ.UTF-8;Arabic, Iraq
+ar_JO.UTF-8;Arabic, Jordan
+ar_KW.UTF-8;Arabic, Kuwait
+ar_LY.UTF-8;Arabic, Libya
+ar_MA.UTF-8;Arabic, Morocco
+ar_OM.UTF-8;Arabic, Oman
+ar_QA.UTF-8;Arabic, Qatar
+ar_SA.UTF-8;Arabic, Saudi Arabia
+ar_TN.UTF-8;Arabic, Tunisia
+ar_YE.UTF-8;Arabic, Yemen
+as_IN.UTF-8;Assamese, India
+az_AZ.UTF-8;Azerbaijani, Azerbaijan
+be_BY.UTF-8;Belarusian, Belarus
+bg_BG.UTF-8;Bulgarian, Bulgaria
+bn_IN.UTF-8;Bengali, India
+bs_BA.UTF-8;Bosnian, Bosnia and Herzegovina
+ca_ES.UTF-8;Catalan, Spain
+cs_CZ.UTF-8;Czech, Czech Republic
+da_DK.UTF-8;Danish, Denmark
+de_AT.UTF-8;German, Austria
+de_BE.UTF-8;German, Belgium
+de_CH.UTF-8;German, Switzerland
+de_DE.UTF-8;German, Germany
+de_LI.UTF-8;German, Liechtenstein
+de_LU.UTF-8;German, Luxembourg
+el_CY.UTF-8;Greek, Cyprus
+el_GR.UTF-8;Greek, Greece
+en_AU.UTF-8;English, Australia
+en_BW.UTF-8;English, Botswana
+en_CA.UTF-8;English, Canada
+en_GB.UTF-8;English, United Kingdom
+en_HK.UTF-8;English, Hong Kong SAR China
+en_IE.UTF-8;English, Ireland
+en_IN.UTF-8;English, India
+en_MT.UTF-8;English, Malta
+en_NZ.UTF-8;English, New Zealand
+en_PH.UTF-8;English, Philippines
+en_SG.UTF-8;English, Singapore
+en_US.UTF-8;English, U.S.A.
+en_ZW.UTF-8;English, Zimbabwe
+es_AR.UTF-8;Spanish, Argentina
+es_BO.UTF-8;Spanish, Bolivia
+es_CL.UTF-8;Spanish, Chile
+es_CO.UTF-8;Spanish, Colombia
+es_CR.UTF-8;Spanish, Costa Rica
+es_DO.UTF-8;Spanish, Dominican Republic
+es_EC.UTF-8;Spanish, Ecuador
+es_ES.UTF-8;Spanish, Spain
+es_GT.UTF-8;Spanish, Guatemala
+es_HN.UTF-8;Spanish, Honduras
+es_MX.UTF-8;Spanish, Mexico
+es_NI.UTF-8;Spanish, Nicaragua
+es_PA.UTF-8;Spanish, Panama
+es_PE.UTF-8;Spanish, Peru
+es_PR.UTF-8;Spanish, Puerto Rico
+es_PY.UTF-8;Spanish, Paraguay
+es_SV.UTF-8;Spanish, El Salvador
+es_US.UTF-8;Spanish, U.S.A.
+es_UY.UTF-8;Spanish, Uruguay
+es_VE.UTF-8;Spanish, Venezuela
+et_EE.UTF-8;Estonian, Estonia
+fi_FI.UTF-8;Finnish, Finland
+fr_BE.UTF-8;French, Belgium
+fr_CA.UTF-8;French, Canada
+fr_CH.UTF-8;French, Switzerland
+fr_FR.UTF-8;French, France
+fr_LU.UTF-8;French, Luxembourg
+gu_IN.UTF-8;Gujarati, India
+he_IL.UTF-8;Hebrew, Israel
+hi_IN.UTF-8;Hindi, India
+hr_HR.UTF-8;Croatian, Croatia
+hu_HU.UTF-8;Hungarian, Hungary
+hy_AM.UTF-8;Armenian, Armenia
+id_ID.UTF-8;Indonesian, Indonesia
+is_IS.UTF-8;Icelandic, Iceland
+it_CH.UTF-8;Italian, Switzerla;nd
+it_IT.UTF-8;Italian, Italy
+ja_JP.UTF-8;Japanese, Japan
+ka_GE.UTF-8;Georgian, Georgia
+kk_KZ.UTF-8;Kazakh, Kazakhstan
+kn_IN.UTF-8;Kannada, India
+ko_KR.UTF-8;Korean, Korea
+ks_IN.UTF-8;Kashmiri, India
+ku_TR.UTF-8;Kurdish, Turkey
+ku_TR.UTF-8@sorani;Kurdish (Sorani), Turkey
+ky_KG.UTF-8;Kirghiz, Kyrgyzstan
+lt_LT.UTF-8;Lithuanian, Lithuania
+lv_LV.UTF-8;Latvian, Latvia
+mk_MK.UTF-8;Macedonian, Macedonia
+ml_IN.UTF-8;Malayalam, India
+mr_IN.UTF-8;Marathi, India
+ms_MY.UTF-8;Malay, Malaysia
+mt_MT.UTF-8;Maltese, Malta
+nb_NO.UTF-8;Bokmal, Norway
+nl_BE.UTF-8;Dutch, Belgium
+nl_NL.UTF-8;Dutch, Netherlands
+nn_NO.UTF-8;Nynorsk, Norway
+or_IN.UTF-8;Oriya, India
+pa_IN.UTF-8;Punjabi, India
+pl_PL.UTF-8;Polish, Poland
+pt_BR.UTF-8;Portuguese, Brazil
+pt_PT.UTF-8;Portuguese, Portugal
+ro_RO.UTF-8;Romanian, Romania
+ru_RU.UTF-8;Russian, Russia
+ru_UA.UTF-8;Russian, Ukraine
+sa_IN.UTF-8;Sanskrit, India
+sk_SK.UTF-8;Slovak, Slovakia
+sl_SI.UTF-8;Slovenian, Slovenia
+sq_AL.UTF-8;Albanian, Albania
+sr_ME.UTF-8;Serbian, Montenegro
+sr_ME.UTF-8@latin;Serbian, Montenegro (Latin)
+sr_RS.UTF-8;Serbian, Serbia
+sr_RS.UTF-8@latin;Serbian, Serbia (Latin)
+sv_SE.UTF-8;Swedish, Sweden
+ta_IN.UTF-8;Tamil, India
+te_IN.UTF-8;Telugu, India
+th_TH.UTF-8;Thai, Thailand
+tr_TR.UTF-8;Turkish, Turkey
+uk_UA.UTF-8;Ukrainian, Ukraine
+vi_VN.UTF-8;Vietnamese, Vietnam
+zh_CN.UTF-8;Simplified Chinese, China
+zh_HK.UTF-8;Traditional Chinese, Hong Kong SAR China
+zh_SG.UTF-8;Chinese, Singapore
+zh_TW.UTF-8;Traditional Chinese, Taiwan
\ No newline at end of file
diff --git a/modules.csv b/modules.csv
new file mode 100644
index 0000000..c2f0af1
--- /dev/null
+++ b/modules.csv
@@ -0,0 +1,109 @@
+UBM_NAME|UBM_TAG|UBM_DECRIPTION
+001-linux-5.17.6-2-x86_64.ubm|base|UBLinux module the kernel and modules
+001-linux515-5.15.157-1-x86_64.ubm|base|UBLinux module the kernel and modules
+001-linux61-6.1.92-1-x86_64.ubm|base|UBLinux module the kernel and modules
+001-linux66-6.6.30-1-x86_64.ubm|base|UBLinux module the kernel and modules
+002-linux-headers-5.17.6-2-x86_64.ubm|base|UBLinux module headers and scripts for building modules
+002-linux515-headers-5.15.157-1-x86_64.ubm|base|UBLinux module headers and scripts for building modules
+002-linux61-headers-6.1.92-1-x86_64.ubm|base|UBLinux module headers and scripts for building modules
+002-linux66-headers-6.6.30-1-x86_64.ubm|base|UBLinux module headers and scripts for building modules
+003-linux-docs-5.17.6-2-x86_64.ubm|base|UBLinux module documentation for the UBLinux kernel
+003-linux515-docs-5.15.157-1-x86_64.ubm|base|UBLinux module documentation for the UBLinux kernel
+003-linux61-docs-6.1.92-1-x86_64.ubm|base|UBLinux module documentation for the UBLinux kernel
+003-linux66-docs-6.6.30-1-x86_64.ubm|base|UBLinux module documentation for the UBLinux kernel
+004-linux-firmware-2204-4-x86_64.ubm|base|UBLinux module firmwares
+010-core-2204-2-x86_64.ubm|base|UBLinux module includes the core components
+010-core-devel-2204-1-x86_64.ubm|base|UBLinux module includes the core developer components
+020-xorg-base-2204-2-x86_64.ubm|base|UBLinux module includes basic components Xorg
+021-xorg-fonts-2204-2-x86_64.ubm|base|UBLinux module includes basic fonts
+025-xorg-gl-2204-1-x86_64.ubm|base|UBLinux module includes graphics accelerators
+030-xorg-gtk-2204-2-x86_64.ubm|base|UBLinux module includes GTK libs
+035-xorg-qt5-2204-2-x86_64.ubm|base|UBLinux module includes QT5 libs
+036-xorg-qt6-2204-1-x86_64.ubm|base|UBLinux module includes QT6 libs
+040-xorg-xfce-2204-2-x86_64.ubm|base|UBLinux module includes Xfce applications
+041-xorg-plasma-2204-2-x86_64.ubm|base|UBLinux module includes KDE Plasma applications
+042-xorg-gnome-2204-1-x86_64.ubm|base|UBLinux module includes GNOME next generation desktop shell
+043-xorg-mate-2204-2-x86_64.ubm|base|UBLinux module includes MATE desktop shell
+045-xorg-pantheon-2204-1-x86_64.ubm|base|UBLinux module includes Pantheon desktop shell
+049-xorg-liquidshell-2204-1-x86_64.ubm|base|UBLinux module includes Liquidshell basic desktop shell using QtWidgets
+050-xorg-gtk-app-2204-4-x86_64.ubm|base|UBLinux module includes GTK applications
+055-xorg-qt-app-2204-2-x86_64.ubm|base|UBLinux module includes QT applications
+060-xorg-theme-2204-1-x86_64.ubm|base|UBLinux module includes GTK and icons themes
+070-dm-lightdm-2204-1-x86_64.ubm|base|UBLinux module includes Lightdm display manager
+080-multimedia-2204-1-x86_64.ubm|base|UBLinux module includes multimedia applications
+100-ublinux-2204-113-x86_64.ubm|base|UBLinux module include system utilites
+amdgpu-pro-23.40-1-x86_64.ubm|extra|UBLinux module includes AMDGRU PRO driver and utilities
+backgrounds-1.0-1-x86_64.ubm|extra|UBLinux module include desktop backgrounds
+chromium-2204-1-x86_64.ubm|extra|UBLinux module includes Chromium and some plugins
+chromium-gost-122.0.6261.58-1-x86_64.ubm|extra|UBLinux module includes Chromium and some plugins
+database-2204-1-x86_64.ubm|extra|UBLinux module includes postgresql, mariadb database and utilities
+drv-brother-2204-1-x86_64.ubm|extra|UBLinux module include Brother printer drivers
+drv-canon-capt-2204-1-x86_64.ubm|extra|UBLinux module include Canon CAPT Printer Driver
+drv-canon-ufrii-2204-2-x86_64.ubm|extra|UBLinux module include Canon UFR II LIPSLX CARPS2 printer driver
+drv-epson-2204-1-x86_64.ubm|extra|UBLinux module include Epson printer drivers
+drv-kyocera-2204-1-x86_64.ubm|extra|UBLinux module include Kyocera printer drivers
+drv-lexmark-2204-1-x86_64.ubm|extra|UBLinux module include Lexmark drivers
+drv-pantum-2204-1-x86_64.ubm|extra|UBLinux module include Pantum printer drivers
+drv-printer-2204-1-x86_64.ubm|extra|UBLinux module include hplip, gutenprint, foomatic
+drv-ricoh-2204-1-x86_64.ubm|extra|UBLinux module include Ricoh drivers
+drv-samsung-2204-1-x86_64.ubm|extra|UBLinux module include Samsung drivers
+drv-xerox-2204-2-x86_64.ubm|extra|UBLinux module include Xerox drivers
+firefox-2204-1-x86_64.ubm|extra|UBLinux module includes Firefox and some plugins
+game-hedgewars-1.0.0-298-x86_64.ubm|extra|UBLinux module include Hedgewars game similiar to Worms
+game-warfork-2.14-1-x86_64.ubm|extra|UBLinux module include Hedgewars game similiar to Worms
+gitea-1.18.1-1-x86_64.ubm|extra|UBLinux module includes Gitea and MemCached
+gitlab-15.0.2-1-x86_64.ubm|extra|UBLinux module include GitLab and GitLab CI runner
+gitlab-cli-2204-1-x86_64.ubm|extra|UBLinux module include Gitlab CLI tools
+java11-openjfx-2204-1-x86_64.ubm|extra|UBLinux module include Java OpenJFX 11 client application platform
+java17-openjfx-2204-1-x86_64.ubm|extra|UBLinux module include Java OpenJFX 17 client application platform
+jdk11-2204-1-x86_64.ubm|extra|UBLinux module includes OpenJDK Java 11 development kit
+jdk17-2204-1-x86_64.ubm|extra|UBLinux module includes OpenJDK Java 17 development kit
+jdk8-2204-1-x86_64.ubm|extra|UBLinux module includes OpenJDK Java 8 development kit
+lazarus-gtk2-2204-1-x86_64.ubm|extra|UBLinux module include Free Pascal and Lazarus GTK2
+lazarus-qt5-2204-1-x86_64.ubm|extra|UBLinux module include Free Pascal and Lazarus QT5
+lib32-2204-1-x86_64.ubm|extra|UBLinux module includes some library 32-bit
+libreoffice-7.3.2-1-x86_64.ubm|extra|UBLinux module include LibreOffice
+linux-dkms-5.17.6-7-x86_64.ubm|extra|UBLinux module includes dkms additionals modules
+linux515-dkms-5.15.157-1-x86_64.ubm|extra|UBLinux module includes dkms additionals modules
+linux61-dkms-6.1.92-1-x86_64.ubm|extra|UBLinux module includes dkms additionals modules
+nvidia-340-5.17.6-2-x86_64.ubm|extra|UBLinux module includes NVIDIA 340xx driver and utilities
+nvidia-390-5.17.6-2-x86_64.ubm|extra|UBLinux module includes NVIDIA 390xx driver and utilities
+nvidia-470-5.17.6-2-x86_64.ubm|extra|UBLinux module includes NVIDIA 470xx driver and utilities
+nvidia-510-5.17.6-2-x86_64.ubm|extra|UBLinux module includes NVIDIA 510xx driver and utilities
+nvidia-515-5.17.6-2-x86_64.ubm|extra|UBLinux module includes NVIDIA 515xx driver and utilities
+linux61-nvidia-390xx-390.157-90-x86_64.ubm|extra|UBLinux module includes NVIDIA 390xx driver and utilities
+linux61-nvidia-470xx-470.239.06-10-x86_64.ubm|extra|UBLinux module includes NVIDIA 470xx driver and utilities
+linux61-nvidia-550.78-3-x86_64.ubm|extra|UBLinux module includes NVIDIA 550xx driver and utilities
+linux66-dkms-6.6.30-1-x86_64.ubm|extra|UBLinux module includes dkms additionals modules
+nvidia-optimus-2204-1-x86_64.ubm|extra|UBLinux module includes NVIDIA Optimus
+lsi-megaraid-2204-1-x86_64.ubm|extra|UBLinux module includes LSI MegaRaid SM, StorCLI, MegaCLI and utils
+onlyoffice-7.3.3-1-x86_64.ubm|extra|UBLinux module includes OnlyOffice suite
+onlyoffice-documentserver-7.3.3-1-x86_64.ubm|extra|UBLinux module includes OnlyOffice DocumentServer suite
+opera-2204-1-x86_64.ubm|extra|UBLinux module includes Opera and some plugins
+patch-2204-21-x86_64.ubm|extra|UBLinux module include apps patch
+podman-2204-1-x86_64.ubm|extra|UBLinux module includes podman and webmanager and utils
+qemu-2204-2-x86_64.ubm|extra|UBLinux module includes QEMU, manager and utils
+qemu-headless-2204-1-x86_64.ubm|extra|UBLinux module includes QEMU headless and utils
+qt4-2204-1-x86_64.ubm|extra|UBLinux module include QT4
+realvnc-2204-2-x86_64.ubm|extra|UBLinux module includes realvnc viewer and server
+rustdesk-1.2.3-1-x86_64.ubm|extra|UBLinux module includes rustdesk
+rustdesk-server-1.1.9-1-x86_64.ubm|extra|UBLinux module include rustdesk-server
+skype-2204-1-x86_64.ubm|extra|UBLinux module include Skype
+telegram-2204-2-x86_64.ubm|extra|UBLinux module includes Telegram
+tor-2204-1-x86_64.ubm|extra|UBLinux module include Tor utils and browser
+ubpile-2.15.10-1-x86_64.ubm|extra|Simple management of corporate network nodes using the WEB interface with the executor Node.js
+virtual-guest-2204-2-x86_64.ubm|extra|UBLinux module includes agents for Linux guest
+virtual-guest-nox-2204-2-x86_64.ubm|extra|UBLinux module includes agents for Linux guest without X support
+virtualbox-host-2204-1-x86_64.ubm|extra|UBLinux module includes VirtualBox and extension packs
+virtualbox-host-headless-2204-1-x86_64.ubm|extra|UBLinux module includes VirtualBox headless and extension packs
+virtualbox-web-2204-1-x86_64.ubm|extra|UBLinux module includes phpvirtualbox for VirtualBox
+vivaldi-2204-1-x86_64.ubm|extra|UBLinux module include Vivaldi browser
+web-2204-1-x86_64.ubm|extra|UBLinux module includes HTTP server and utilities
+webmin-1.994-1-x86_64.ubm|extra|UBLinux module includes Webmin and Usermin
+wiki-js-2.5.294-1-x86_64.ubm|extra|UBLinux module include Wiki.js
+winbox-2204-1-x86_64.ubm|extra|UBLinux module include Winbox
+wine-2204-2-x86_64.ubm|extra|UBLinux module includes wine and utilities
+wps-office-11.1.0.11698-1-x86_64.ubm|extra|UBLinux module include Kingsoft Office (WPS Office) - an office productivity suite
+xremote-2204-1-x86_64.ubm|extra|UBLinux module include X11 remote utils
+yay-2204-1-x86_64.ubm|extra|Yet another yogurt. Pacman wrapper and AUR helper written in go.
+zoom-5.14.0-1-x86_64.ubm|extra|UBLinux module include Zoom
\ No newline at end of file
diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
new file mode 100644
index 0000000..ff57779
--- /dev/null
+++ b/source/CMakeLists.txt
@@ -0,0 +1,122 @@
+cmake_minimum_required(VERSION 3.7)
+project(ubinstall-gtk)
+
+find_package(PkgConfig REQUIRED)
+
+pkg_check_modules(GTK REQUIRED gtk+-3.0)
+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})
+
+pkg_check_modules(JSON REQUIRED json-c)
+include_directories(${JSON_INCLUDE_DIRS})
+link_directories(${JSON_LIBRARY_DIRS})
+add_definitions(${JSON_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()
+
+set(GRESOURCE_C resources.c)
+set(GRESOURCE_XML gresource.xml)
+
+find_program(GLIB_COMPILE_RESOURCES NAMES glib-compile-resources REQUIRED)
+add_custom_target(GLADE ubinstall-gtk.glade)
+
+set(DEPENDFILES
+ ../images/keyboard.png
+ ../images/keyboard-ru.png
+ ../images/map-time-zone.png
+ ../images/slide-0.png
+ ../images/slide-1.png
+ ../images/slide-2.png
+ ../images/slide-3.png
+ ../images/slide-4.png
+ ../images/slide-5.png
+ ../images/slide-6.png
+ ../images/slide-7.png
+ ../images/slide-8.png
+ ../images/slide-9.png
+ ../images/slide-10.png
+ ../images/slide-11.png
+ ../images/slide-12.png
+ ../images/slide-12.png
+ ../images/near_install_disk.png
+ ../images/in_part_install_disk.png
+ ../images/clear_install_disk.png
+ ../images/language.png
+ ../ubinstall-gtk.glade
+ ../ubinstall-gtk-language.glade
+ ../ubinstall-gtk-keyboard.glade
+ ../gresource.xml
+ ../ubinstall-gtk.css
+ ../modules.csv
+ )
+
+file(COPY ${DEPENDFILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+
+add_custom_command(
+ OUTPUT ${GRESOURCE_C}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMAND ${GLIB_COMPILE_RESOURCES}
+ ARGS
+ --generate-source
+ --target=${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}
+ ${GRESOURCE_XML}
+ VERBATIM
+ MAIN_DEPENDENCY ${GRESOURCE_XML}
+ DEPENDS
+ ${GLADE}
+)
+add_custom_target(
+ dummy-resource
+ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}
+)
+
+add_definitions(-DVTE_INCLUDE)
+
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always \
+ -O2 -pipe -fno-plt -fexceptions \
+ -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
+ -fstack-clash-protection -fcf-protection")
+
+set(SOURCE_FILES
+ ubinstall-gtk.c
+ ubinstall-gtk.h
+ ubl-strings.h
+ )
+
+set(LIBRARIES
+ ${GTK_LIBRARIES}
+ ${WEBKIT_LIBRARIES}
+ ${UTILS_LIBRARIES}
+ ${VTE291_LIBRARIES}
+ ${JSON_LIBRARIES}
+ pthread
+ ublsettings
+ ublsettings-gtk3
+ ublsettingsui-gtk3
+ )
+
+
+add_executable(${PROJECT_NAME} ${SOURCE_FILES} ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C})
+target_link_libraries(${PROJECT_NAME} PUBLIC ${LIBRARIES})
+target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_BINARY_DIR})
+set_source_files_properties(
+ ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}
+ PROPERTIES GENERATED TRUE
+)
+install(TARGETS ${PROJECT_NAME} DESTINATION bin)
+add_dependencies(${PROJECT_NAME} dummy-resource)
\ No newline at end of file
diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c
new file mode 100644
index 0000000..9c1d055
--- /dev/null
+++ b/source/ubinstall-gtk.c
@@ -0,0 +1,1187 @@
+#include "ubinstall-gtk.h"
+
+config main_config;
+
+//functions
+
+// void yon_load_proceed(YON_CONFIG_TYPE type){
+// if (yon_config_load_register(type,,,NULL)){
+
+// }
+// }
+
+double yon_size_long_convert_automatic(unsigned long bytes, char *size);
+double yon_size_long_convert_automatic(unsigned long bytes, char *size){
+ int repeats;
+ double byte_float=bytes;
+ for (repeats=-1;byte_float>1024;repeats++){
+ byte_float=byte_float/1024;
+ }
+ if (repeats==-1) {
+ repeats=0;
+ byte_float=byte_float/1024;
+ }
+ switch(repeats){
+ case 0: (*size)='K';
+ break;
+ case 1: (*size)='M';
+ break;
+ case 2: (*size)='G';
+ break;
+ case 3: (*size)='T';
+ break;
+ }
+ return byte_float;
+}
+
+// standard functions
+
+void on_keyboard_accept(GtkWidget *self,main_window *widgets);
+void on_keyboard_accept(GtkWidget *self,main_window *widgets){
+ gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LayoutsFilter));
+ on_subwindow_close(self);
+}
+
+void on_layout_toggle(GtkCellRendererToggle*, gchar* path, ubinstall_keyboard_window *window);
+void on_layout_toggle(GtkCellRendererToggle*, gchar* path, ubinstall_keyboard_window *window){
+ GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(window->LayoutsTree));
+ GtkTreeIter iter;
+ if (gtk_tree_model_get_iter_from_string(model,&iter,path)){
+ int status=0;
+ gtk_tree_model_get(model,&iter,3,&status,-1);
+ gtk_tree_store_set(GTK_TREE_STORE(model),&iter,3,!status,-1);
+ }
+}
+
+ubinstall_keyboard_window *yon_ubinstall_keyboard_new(){
+ ubinstall_keyboard_window *window = malloc(sizeof(ubinstall_keyboard_window));
+ GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_ubinstall_keyboard);
+ window->MainWindow=yon_gtk_builder_get_widget(builder,"MainWindow");
+ window->StatusBox=yon_gtk_builder_get_widget(builder,"StatusBox");
+ window->headerBar=yon_gtk_builder_get_widget(builder,"headerBar");
+ window->CancelButton=yon_gtk_builder_get_widget(builder,"CancelButton");
+ window->SaveButton=yon_gtk_builder_get_widget(builder,"SaveButton");
+ window->LayoutsTree=yon_gtk_builder_get_widget(builder,"LayoutsTree");
+ window->ActiveToggle = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"ActiveToggle"));
+
+ g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
+
+return window;
+}
+
+void on_keyboard_clicked (GtkWidget *, main_window *widgets);
+void on_keyboard_clicked (GtkWidget *, main_window *widgets){
+ ubinstall_keyboard_window *window = yon_ubinstall_keyboard_new();
+ yon_gtk_window_setup(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->MainWindow),KEYBOARD_TITLE_LABEL,icon_path,"keyboard-window");
+ gtk_tree_view_set_model(GTK_TREE_VIEW(window->LayoutsTree),GTK_TREE_MODEL(widgets->LayoutList));
+
+ g_signal_connect(G_OBJECT(window->ActiveToggle),"toggled",G_CALLBACK(on_layout_toggle),window);
+ g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_keyboard_accept),widgets);
+ gtk_widget_show(window->MainWindow);
+}
+
+void yon_language_selection_changed(GtkCellRenderer *, char *path, ubinstall_language_window *window);
+void yon_language_selection_changed(GtkCellRenderer *, char *path, ubinstall_language_window *window){
+ GtkTreeIter iter;
+ int state;
+
+ if (gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(window->liststore1),&iter,path)){
+ gtk_tree_model_get(GTK_TREE_MODEL(window->liststore1),&iter,0,&state,-1);
+ gtk_list_store_set(window->liststore1,&iter,0,!state,-1);
+ }
+}
+
+void on_language_window_accept(GtkWidget *,dictionary *dict);
+void on_language_window_accept(GtkWidget *,dictionary *dict){
+ main_window *widgets= yon_dictionary_get_data(dict->first,main_window*);
+ ubinstall_language_window *window = yon_dictionary_get_data(dict->first->next,ubinstall_language_window*);
+ yon_gtk_list_store_copy_full(widgets->LanguagesList,window->liststore1);
+ gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter));
+ config_str parsed = NULL;
+ int size;
+ GtkTreeIter iter;
+ for_iter(GTK_TREE_MODEL(window->liststore1),&iter){
+ char *current;
+ int status;
+ gtk_tree_model_get(GTK_TREE_MODEL(window->liststore1),&iter,0,&status,1,¤t,-1);
+ if (status)
+ yon_char_parsed_add_or_create_if_exists(parsed,&size,current);
+ }
+ gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),yon_char_parsed_to_string(parsed,size,", "));
+ on_subwindow_close(window->MainWindow);
+ free(window);
+}
+
+ubinstall_language_window *yon_ubinstall_language_new(){
+ ubinstall_language_window *window = malloc(sizeof(ubinstall_language_window));
+ GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_ubinstall_language);
+ window->liststore1=GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1"));
+ window->MainWindow=yon_gtk_builder_get_widget(builder,"MainWindow");
+ window->StatusBox=yon_gtk_builder_get_widget(builder,"StatusBox");
+ window->DefaultCheck=yon_gtk_builder_get_widget(builder,"DefaultCheck");
+ window->LanguagesTree=yon_gtk_builder_get_widget(builder,"LanguagesTree");
+ window->headerBar=yon_gtk_builder_get_widget(builder,"headerBar");
+ window->CancelButton=yon_gtk_builder_get_widget(builder,"CancelButton");
+ window->SaveButton=yon_gtk_builder_get_widget(builder,"SaveButton");
+ window->ToggleRenderer=GTK_CELL_RENDERER(gtk_builder_get_object(builder,"ToggleRenderer"));
+
+ g_signal_connect(G_OBJECT(window->DefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->LanguagesTree);
+ g_signal_connect(G_OBJECT(window->ToggleRenderer),"toggled",G_CALLBACK(yon_language_selection_changed),window);
+ g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
+return window;
+}
+
+void on_language_clicked(GtkWidget *, main_window *widgets);
+void on_language_clicked(GtkWidget *, main_window *widgets){
+ ubinstall_language_window *window = yon_ubinstall_language_new();
+ g_object_ref(G_OBJECT(window->liststore1));
+ gtk_tree_view_set_model(GTK_TREE_VIEW(window->LanguagesTree),NULL);
+ yon_gtk_list_store_copy_full(window->liststore1,widgets->LanguagesList);
+ gtk_tree_view_set_model(GTK_TREE_VIEW(window->LanguagesTree),GTK_TREE_MODEL(window->liststore1));
+ yon_gtk_window_setup(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->MainWindow),TITLE_LABEL,icon_path,"language-chooser-window");
+
+ 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);
+ g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_language_window_accept),dict);
+ gtk_widget_show(window->MainWindow);
+}
+
+/**config_init()
+ * [EN]
+ *
+ * [RU]
+ * Функция инициализации всех параметров конфигурации
+*/
+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.debug_mode=0;
+ main_config.slider_thread=0;
+ main_config.config_save_thread=NULL;
+ main_config.install_thread=NULL;
+ main_config.progress_thread=NULL;
+ main_config.install_complete=0;
+}
+
+int yon_image_resize_from_container(GtkImage *target, GdkPixbuf *pixbuf_unscaled);
+int yon_image_resize_from_container(GtkImage *target, GdkPixbuf *pixbuf_unscaled){
+
+ int width = gtk_widget_get_allocated_width(gtk_widget_get_parent(gtk_widget_get_parent(GTK_WIDGET(target))));
+ int height = gtk_widget_get_allocated_height(gtk_widget_get_parent(gtk_widget_get_parent(GTK_WIDGET(target))));
+ int newImgWidthDef = (width <= 217) ? width : width - 217;
+ int newImgHeightDef = (height <= 120) ? height : height - 217;
+ GdkPixbuf *pixBuf = pixbuf_unscaled;
+ int newImgHeight = (int)(gdk_pixbuf_get_height(pixBuf) / ((double) gdk_pixbuf_get_width(pixBuf) / newImgWidthDef));
+ if (newImgHeight > newImgHeightDef) {
+ newImgHeight = newImgHeightDef;
+ newImgWidthDef = newImgWidthDef;
+ }
+ int newImageWidth = (int)(gdk_pixbuf_get_width(pixBuf) / ((double) gdk_pixbuf_get_height(pixBuf) / newImgHeight));
+ GdkPixbuf *scaledPixBuf = gdk_pixbuf_scale_simple(pixBuf, abs(newImageWidth), abs(newImgHeight), GDK_INTERP_BILINEAR);
+ gtk_image_set_from_pixbuf(target, scaledPixBuf);
+
+ return 1;
+}
+
+void on_region_resized(GtkWidget *,main_window *widgets);
+void on_region_resized(GtkWidget *,main_window *widgets){
+ int page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook));
+ switch(page){
+ case YON_PAGE_INSTALLATION: {
+ yon_image_resize_from_container(GTK_IMAGE(widgets->SlidesImage), widgets->slides_original);
+ } break;
+ case YON_PAGE_REGION: {
+ yon_image_resize_from_container(GTK_IMAGE(widgets->RegionImage), widgets->regions_original);
+
+ } break;
+ case YON_PAGE_KEYBOARD: {
+ yon_image_resize_from_container(GTK_IMAGE(widgets->KeyboardImage), widgets->keyboard_original);
+ } break;
+ }
+}
+
+void on_toggle_block(GtkToggleButton *self);
+void on_toggle_block(GtkToggleButton *self){
+ int state = gtk_toggle_button_get_active(self);
+ g_signal_handlers_block_by_func(G_OBJECT(self),on_toggle_block,NULL);
+ gtk_toggle_button_set_active(self,!state);
+ g_signal_handlers_unblock_by_func(G_OBJECT(self),on_toggle_block,NULL);
+}
+
+void yon_switch_page_render(main_window *widgets, int page);
+void yon_switch_page_render(main_window *widgets, int page){
+ GtkContainer *parent = GTK_CONTAINER(gtk_widget_get_parent(widgets->UsersToggle));
+ GList *list = gtk_container_get_children(parent);
+ for (guint i=0;islides_original);
+ widgets->slides_original = gdk_pixbuf_new_from_resource_at_scale(target[cur_slide],600,400,1,NULL);
+ GtkWidget *parent = gtk_widget_get_parent(widgets->SlidesImage);
+ gtk_widget_destroy(widgets->SlidesImage);
+ widgets->SlidesImage = gtk_image_new();
+ gtk_container_add(GTK_CONTAINER(parent),widgets->SlidesImage);
+ gtk_widget_show(widgets->SlidesImage);
+ gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->SlidesImage),widgets->slides_original);
+ gtk_widget_queue_draw(widgets->SlidesImage);
+ if (cur_slideNotebook),YON_PAGE_COMPLETION);
+ g_thread_exit(NULL);
+ return NULL;
+
+}
+
+void *yon_installation_progress_update(void *data);
+void *yon_installation_progress_update(void *data){
+ main_window *widgets = (main_window*)data;
+ FILE *file = NULL;
+ char *current = g_malloc0(4096);
+ clock_t last_time = 0;
+ clock_t current_time;
+ while (main_config.install_thread){
+ while (1){
+ current_time = clock();
+ if ((double)(current_time - last_time) / CLOCKS_PER_SEC >= 0.5){
+ if (!file)
+ file = fopen(progress_path,"r");
+ if (file){
+ if (fgets(current,4096,file)){
+
+ } else {
+ if (!yon_char_is_empty(current)&¤t[0]=='('){
+ char * current_copy = yon_char_new(current);
+ char *percentage = yon_char_divide_search(current_copy,")",-1);
+ free(yon_char_divide(current_copy,0));
+ free(yon_char_divide(percentage,0));
+ if (strcmp(percentage,"#pb")){
+ double fraction = atof(percentage);
+ gtk_label_set_text(GTK_LABEL(widgets->InstallationLabel),current_copy);
+ gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->InstallationProgress),fraction/100);
+ } else {
+ int size;
+ config_str parsed = yon_char_parse(current_copy,&size," ");
+ double fraction = atof(parsed[3])/100;
+ gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->PackageInstallationProgress),fraction/100);
+ parsed = yon_char_parsed_rip(parsed,&size,3);
+ gtk_label_set_text(GTK_LABEL(widgets->PackageInstallationLabel),yon_char_parsed_to_string(parsed,size," "));
+
+ }
+ last_time = current_time;
+ }
+ break;
+ }
+ }
+ }
+ }
+ fclose(file);
+ file=NULL;
+
+ }
+ return NULL;
+}
+
+void on_page_changed(GtkWidget *,GtkWidget *,int page, main_window *widgets);
+void on_page_changed(GtkWidget *,GtkWidget *,int page, main_window *widgets){
+ yon_switch_page_render(widgets,page>3?page-2:page);
+ switch(page){
+ case YON_PAGE_WELCOME: {
+ gtk_widget_hide(widgets->CancelInstallButton);
+ gtk_widget_set_sensitive(widgets->BackButton,0);
+ gtk_widget_set_sensitive(widgets->NextButton,1);
+ gtk_widget_set_sensitive(widgets->BackButton,0);
+ gtk_button_set_label(GTK_BUTTON(widgets->NextButton),NEXT_LABEL);
+ gtk_button_set_label(GTK_BUTTON(widgets->CancelInstallButton),CANCEL_LABEL);
+ gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->NextButton))),"com.ublinux.ubinstall-gtk.arrow-right-symbolic",GTK_ICON_SIZE_BUTTON);
+ gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->CancelInstallButton))),"com.ublinux.ubinstall-gtk.circle-exit-symbolic",GTK_ICON_SIZE_BUTTON);
+ } break;
+ case YON_PAGE_LICENCE:{
+ gtk_widget_show(widgets->CancelInstallButton);
+ gtk_widget_set_sensitive(widgets->BackButton,1);
+ } break;
+ case YON_PAGE_REGION: {
+ yon_image_resize_from_container(GTK_IMAGE(widgets->RegionImage), widgets->regions_original);
+
+ } break;
+ case YON_PAGE_KEYBOARD: {
+
+ yon_image_resize_from_container(GTK_IMAGE(widgets->KeyboardImage), widgets->keyboard_original);
+ } break;
+ case YON_PAGE_INSTALLATION:{
+ gtk_widget_set_sensitive(widgets->BackButton,0);
+ if (main_config.config_save_thread)
+ g_thread_join(main_config.config_save_thread);
+ // if (!main_config.install_thread&&!main_config.install_complete)
+ // main_config.install_thread = g_thread_new("InstallThread",(GThreadFunc)yon_installation_start,widgets);
+ if (!main_config.progress_thread)
+ main_config.progress_thread = g_thread_new("ProgressThread",(GThreadFunc)yon_installation_progress_update,widgets);
+
+ if (!main_config.slider_thread)
+ main_config.slider_thread = g_timeout_add(5000,(GSourceFunc)on_image_slide,widgets);
+ gtk_widget_show(gtk_widget_get_parent(widgets->InstallationProgress));
+ } break;
+ case YON_PAGE_OS_COMPONENTS:
+ case YON_PAGE_SOFTWARE:
+ yon_switch_page_render(widgets,3);
+ break;
+ case YON_PAGE_USERS:
+ gtk_widget_set_sensitive(widgets->NextButton,1);
+ break;
+ case YON_PAGE_COMPLETION:{
+ gtk_widget_set_sensitive(widgets->BackButton,0);
+ gtk_button_set_label(GTK_BUTTON(widgets->NextButton),RESTART_LABEL);
+ gtk_button_set_label(GTK_BUTTON(widgets->CancelInstallButton),EXIT_LABEL);
+ gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->NextButton))),"com.ublinux.libublsettingsui-gtk3.sync-symbolic",GTK_ICON_SIZE_BUTTON);
+ gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->CancelInstallButton))),"com.ublinux.libublsettingsui-gtk3.reset-symbolic",GTK_ICON_SIZE_BUTTON);
+
+ pthread_t tid;
+ pthread_create(&tid,NULL,on_config_save,NULL);
+ }
+ break;
+ case YON_PAGE_INSTALL_COMMON:
+ case YON_PAGE_INSTALL_SEPARATE:
+ case YON_PAGE_INSTALL_SAME_PARTITION: {
+ yon_switch_page_render(widgets,2);
+ }
+ }
+}
+
+void on_page_navigation_clicked(GtkWidget *self, main_window *widgets);
+void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
+ int mode = self==widgets->NextButton ? 1 : self == widgets->BackButton ? -1 : self==widgets->CancelInstallButton?-2:0;
+ int page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook));
+ switch (mode){
+ case 1: { // Next
+ switch (page){
+ case YON_PAGE_SECTIONS:{ //sections
+ int active_id=-1;
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationRadio)))
+ active_id=0;
+ else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationNearRadio)))
+ active_id=1;
+ else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationLinuxRadio)))
+ active_id=2;
+ // else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationRadio)))
+ // active_id=3;
+ // else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationRadio)))
+ // active_id=4;
+ main_config.install_mode=active_id;
+ switch (active_id){
+ case 0:{ // normal installation
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALL_COMMON);
+ } break;
+ case 1:
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALL_SEPARATE);
+ break;
+ case 2:
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALL_SAME_PARTITION);
+ }
+ }break;
+ case YON_PAGE_REGION:{ //region
+ gtk_widget_set_sensitive(widgets->BackButton,1);
+ if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->RegionCombo))==-1){
+ yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),REGION_EMPTY_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
+ yon_ubl_status_highlight_incorrect(widgets->RegionCombo);
+ return;
+ } else if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->ZoneCombo))==-1){
+ yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),ZONE_EMPTY_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
+ yon_ubl_status_highlight_incorrect(widgets->ZoneCombo);
+ return;
+ } else if (yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->AvailableLanguagesEntry)))){
+ yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),LANGUAGES_EMPTY_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
+ yon_ubl_status_highlight_incorrect(widgets->AvailableLanguagesEntry);
+ return;
+ } else if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->LanguagesCombo))==-1){
+ yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),LOCALE_EMPTY_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
+ yon_ubl_status_highlight_incorrect(widgets->LanguagesCombo);
+ return;
+ }
+ char *region = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->RegionCombo));
+ char *zone = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->ZoneCombo));
+ GtkTreeIter iter;
+ GtkTreeModel *model = GTK_TREE_MODEL(widgets->LanguagesFilter);
+ char *languages = "";
+ char *lang_code=NULL;
+ for_iter(model,&iter){
+ gtk_tree_model_get(model,&iter,1,&lang_code,-1);
+ yon_char_unite(languages,",",lang_code,NULL);
+ }
+ char *language = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->LanguagesCombo));
+ yon_config_register(locale_parameter,locale_parameter_command,languages);
+ yon_config_register(lang_parameter,lang_parameter_command,language);
+ yon_config_register(zone_parameter,zone_parameter_command,yon_char_unite(region,"/",zone,NULL));
+
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page+1);
+ }break;
+ case YON_PAGE_KEYBOARD: { //keyboard
+ gtk_widget_set_sensitive(widgets->BackButton,1);
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->ManualLayoutRadio))){
+ GtkTreeIter iter;
+ if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->LayoutList),&iter)){
+ yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),LAYOUTS_CHOSEN_BUT_EMPTY_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
+ yon_ubl_status_highlight_incorrect(widgets->ManualLayoutRadio);
+ yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->LayoutTree));
+ }
+ }
+ char *layouts_list="";
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->ManualLayoutRadio))){
+ GtkTreeModel *layouts_model=GTK_TREE_MODEL(widgets->LayoutList);
+ GtkTreeIter iter;
+ char *cur_layout=NULL;
+ for_iter(layouts_model,&iter){
+ int chosen=0;
+ gtk_tree_model_get(layouts_model,&iter,0,&cur_layout,3,&chosen,-1);
+ if (chosen)
+ layouts_list = yon_char_unite(layouts_list,yon_char_is_empty(layouts_list)?"":",",cur_layout,NULL);
+ }
+ } else {
+ yon_config_remove_by_key(xkblayout_parameter);
+ }
+ char *model = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->KeyboardModelCombo))?(char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->KeyboardModelCombo)):"";
+ // char *layout_switch;
+ if (!yon_char_is_empty(model))
+ yon_config_register(xkbmodel_parameter,xkbmodel_parameter_command,model);
+ else
+ yon_config_remove_by_key(xkbmodel_parameter);
+ if (!yon_char_is_empty(layouts_list))
+ yon_config_register(locale_parameter,locale_parameter_command,layouts_list);
+ else
+ yon_config_remove_by_key(locale_parameter);
+
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page+1);
+ } break;
+ default:{ // all other pages
+ gtk_widget_set_sensitive(widgets->BackButton,1);
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page+1);
+ }break;
+ case YON_PAGE_INSTALL_COMMON: {
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->CommonInstallationDevicesTree)),&model,&iter)){
+ yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
+ yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->CommonInstallationDevicesTree));
+ return;
+ }
+ char *file_system_type = (char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(widgets->CommonInstallationFilesystemTypeCombo));
+ char *device_name = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->CommonInstallationSectionNameEntry));
+ char *device;
+ gtk_tree_model_get(model,&iter,0,&device,-1);
+ yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"fast");
+ yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,device);
+ yon_config_register(device_label_parameter,device_label_parameter_command,device_name);
+ yon_config_register(part_type_parameter,part_type_parameter_command,file_system_type);
+
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION_BEGIN);
+ }break;
+ case YON_PAGE_INSTALL_SEPARATE:
+ {
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->InstallationNearSysDevicesTree)),&model,&iter)){
+ yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
+ yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->CommonInstallationDevicesTree));
+ return;
+ }
+ char *device;
+ gtk_tree_model_get(model,&iter,0,&device,-1);
+ if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->InstallationNearSysSectionTree)),&model,&iter)){
+ yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
+ yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->CommonInstallationDevicesTree));
+ return;
+ }
+ double part_size = gtk_spin_button_get_value(GTK_SPIN_BUTTON(widgets->InstallationNearSizeSpin));
+ if (part_size){
+ char *size_letter = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->InstallationNearSizeTypeSpin));
+ char *size_final = yon_char_append(yon_char_from_long((long)part_size),size_letter);
+ yon_config_register(part_size_parameter,part_size_parameter_command,size_final);
+ } else yon_config_remove_by_key(part_size_parameter);
+ char *file_system_type = (char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(widgets->NextInstallationFilesystemTypeCombo));
+ char *device_name = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->NextInstallationSectionNameEntry));
+ char *part;
+ gtk_tree_model_get(model,&iter,0,&part,-1);
+ yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"next");
+ yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,device);
+ yon_config_register(AUTOSTART_PARTS,AUTOSTART_PARTS_command,part);
+ yon_config_register(device_label_parameter,device_label_parameter_command,device_name);
+ yon_config_register(part_type_parameter,part_type_parameter_command,file_system_type);
+ if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->NextInstallationFormatCheck)))
+ yon_config_register(device_format_parameter,device_format_parameter_command,"no");
+
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION_BEGIN);
+ }
+ break;
+ case YON_PAGE_INSTALL_SAME_PARTITION:
+ {
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SamePlaceDeviceTree)),&model,&iter)){
+ yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
+ yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->CommonInstallationDevicesTree));
+ return;
+ }
+ char *device;
+ gtk_tree_model_get(model,&iter,0,&device,-1);
+ if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SamePlacePartTree)),&model,&iter)){
+ yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
+ yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->CommonInstallationDevicesTree));
+ return;
+ }
+ double part_size = gtk_spin_button_get_value(GTK_SPIN_BUTTON(widgets->SamePlaceSizeSpin));
+ if (part_size){
+ char *size_letter = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->SamePlaceSizeTypeSpin));
+ char *size_final = yon_char_append(yon_char_from_long((long)part_size),size_letter);
+ yon_config_register(part_size_parameter,part_size_parameter_command,size_final);
+ } else yon_config_remove_by_key(part_size_parameter);
+ char *file_system_type = (char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(widgets->SameInstallationFilesystemTypeCombo));
+ char *device_name = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->SameInstallationSectionNameEntry));
+ char *part;
+ gtk_tree_model_get(model,&iter,0,&part,-1);
+ yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"part");
+ yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,device);
+ yon_config_register(AUTOSTART_PARTS,AUTOSTART_PARTS_command,part);
+ yon_config_register(device_label_parameter,device_label_parameter_command,device_name);
+ yon_config_register(part_type_parameter,part_type_parameter_command,file_system_type);
+ if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->NextInstallationFormatCheck)))
+ yon_config_register(device_format_parameter,device_format_parameter_command,"no");
+
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION_BEGIN);
+ }break;
+ case YON_PAGE_USERS:{ //users
+ if (yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->UserNameEntry)))){
+ yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
+ yon_ubl_status_highlight_incorrect(widgets->UserNameEntry);
+ return;
+ } else if (yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->LoginEntry)))){
+ yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
+ yon_ubl_status_highlight_incorrect(widgets->LoginEntry);
+ return;
+
+ } else if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->PasswordCombo))==1&&yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->PasswordEntry)))){
+ yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
+ yon_ubl_status_highlight_incorrect(widgets->PasswordEntry);
+ return;
+
+ } else if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->AdminPasswordCombo))==1&&yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->AdminPasswordEntry)))){
+ yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
+ yon_ubl_status_highlight_incorrect(widgets->AdminPasswordEntry);
+ return;
+
+ } else if (yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->HotnameEntry)))){
+
+ yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
+ yon_ubl_status_highlight_incorrect(widgets->HotnameEntry);
+ return;
+ }
+ char *username = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->UserNameEntry));
+ char *login = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->UserNameEntry));
+ char *password = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->UserNameEntry));
+ char *root_password = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->UserNameEntry));
+ char *hostname = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->UserNameEntry));
+ char *autologin = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->AutologinCheck))?"yes":"no";
+ yon_config_register(user_name_parameter,user_name_parameter_command,login);
+ yon_config_register(user_gecos_parameter,user_gecos_parameter_command,username);
+ yon_config_register(user_password_parameter,user_password_parameter_command,password);
+ yon_config_register(root_password_parameter,root_password_parameter_command,root_password);
+ yon_config_register(autologin_parameter,autologin_parameter_command,autologin);
+ yon_config_register(xkbmodel_parameter,xkbmodel_parameter_command,hostname);
+ yon_config_register(hostname_parameter,hostname_parameter_command,root_password);
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION);
+ gtk_widget_set_sensitive(widgets->CancelInstallButton,0);
+ gtk_widget_set_sensitive(widgets->NextButton,0);
+ gtk_widget_set_sensitive(widgets->BackButton,0);
+ }break;
+ case YON_PAGE_INSTALLATION_BEGIN:{
+ pthread_t tid;
+ pthread_create(&tid,NULL,on_config_save,NULL);
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION);
+ } break;
+ case YON_PAGE_COMPLETION:
+ if (!system("reboot"))
+ return;
+ break;
+ }
+ } break;
+ case -1: { // Previous
+ switch (page){
+ case YON_PAGE_REGION: {
+
+ gtk_widget_set_sensitive(widgets->BackButton,0);
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page-1);
+ }break;
+ case YON_PAGE_INSTALL_COMMON:
+ case YON_PAGE_INSTALL_SEPARATE:
+ case YON_PAGE_INSTALL_SAME_PARTITION:
+ {
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),2);
+ } break;
+ default:{
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page-1);
+ }
+ }
+
+ } break;
+ case -2: { // Cancel/repeat
+ switch (page){
+ default:{
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),0);
+ }
+ }
+ }break;
+ }
+}
+
+void on_region_changed(GtkComboBox *self, main_window *widgets);
+void on_region_changed(GtkComboBox *self, main_window *widgets){
+ char *active = (char*)gtk_combo_box_get_active_id(self);
+ active = yon_char_append("/usr/share/zoneinfo/",active);
+ int size;
+ gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->ZoneCombo));
+ if (yon_file_is_directory(active)){
+ config_str parsed = yon_file_ls(active,&size);
+ for (int i=0;iZoneCombo),parsed[i],_(parsed[i]));
+ }
+ }
+}
+
+void on_locale_changed(GtkWidget *,main_window *);
+void on_locale_changed(GtkWidget *,main_window *){
+
+}
+
+void on_additional_software_toggled();
+void on_additional_software_toggled(){
+
+}
+
+void yon_set_max_size_from_partition(GtkTreeView *table, GtkSpinButton *spin_size, GtkComboBox *size_type);
+void yon_set_max_size_from_partition(GtkTreeView *table, GtkSpinButton *spin_size, GtkComboBox *size_type){
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ char *selected_size=NULL;
+ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(table),&model,&iter)){
+ gtk_tree_model_get(model,&iter,1,&selected_size,-1);
+ if (!yon_char_is_empty(selected_size)){
+ int size = gtk_combo_box_get_active(size_type);
+ double cur_size = atof(selected_size);
+ char cur_size_letter = selected_size[strlen(selected_size)-1];
+ int cur_size_type=0;
+ switch (cur_size_letter){
+ case 'M':
+ cur_size_type=0;
+ break;
+ case 'G':
+ cur_size_type=1;
+ break;
+ case 'T':
+ cur_size_type=2;
+ break;
+ }
+ if (size-cur_size_type>0){
+ for (int i=0;iInstallationNearSysSectionTree)
+ yon_set_max_size_from_partition(GTK_TREE_VIEW(widgets->InstallationNearSysSectionTree),GTK_SPIN_BUTTON(widgets->InstallationNearSizeSpin),GTK_COMBO_BOX(widgets->InstallationNearSizeTypeSpin));
+ else if (self == widgets->SamePlacePartTree){
+ yon_set_max_size_from_partition(GTK_TREE_VIEW(widgets->SamePlacePartTree),GTK_SPIN_BUTTON(widgets->SamePlaceSizeSpin),GTK_COMBO_BOX(widgets->SamePlaceSizeTypeSpin));
+
+ }
+}
+
+void on_near_installation_device_changed(GtkWidget *self, main_window *widgets);
+void on_near_installation_device_changed(GtkWidget *self, main_window *widgets){
+ gtk_list_store_clear(widgets->PartitionsList);
+ GtkTreeIter iter;
+ GtkTreeModel *model;
+ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(self)),&model,&iter)){
+ char *disk_path="";
+ gtk_tree_model_get(model,&iter,0,&disk_path,-1);
+ int size;
+ config_str parsed;
+ parsed = yon_config_load(get_parts_and_devices_command,&size);
+ char *string = yon_char_parsed_to_string(parsed,size,"");
+ struct json_object *root;
+ struct json_object *blockdevices;
+ root = json_tokener_parse(string);
+ json_object_object_get_ex(root, "blockdevices", &blockdevices);
+ for (long unsigned int i = 0; i < json_object_array_length(blockdevices); i++) {
+ struct json_object *device = json_object_array_get_idx(blockdevices, i);
+ struct json_object *type, *path, *size, *model, *fstype, *fsused;
+
+ json_object_object_get_ex(device, "type", &type);
+ if (strcmp("part",json_object_get_string(type)))
+ continue;
+ json_object_object_get_ex(device, "path", &path);
+ if (!strstr(json_object_get_string(path),disk_path)){
+ continue;
+ }
+ json_object_object_get_ex(device, "size", &size);
+ json_object_object_get_ex(device, "model", &model);
+ json_object_object_get_ex(device, "fstype", &fstype);
+ json_object_object_get_ex(device, "fsused", &fsused);
+
+ float free_space=0;
+ char *free_space_string="";
+ if (size&&fsused){
+ free_space = atof(json_object_get_string(size))-atof(json_object_get_string(fsused));
+ free_space_string = yon_char_append(yon_char_from_float(free_space)," ");
+ free_space_string[strlen(free_space_string)-1]=json_object_get_string(size)[strlen(json_object_get_string(size))-1];
+ }
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->InstallationNearSizeSpin),0.0);
+ gtk_adjustment_set_upper(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(widgets->InstallationNearSizeSpin)),0.0);
+ gtk_list_store_append(widgets->PartitionsList,&iter);
+ gtk_list_store_set(widgets->PartitionsList,&iter,0,json_object_get_string(path),1,json_object_get_string(size),2,free_space_string,3,json_object_get_string(fstype),-1);
+ }
+ yon_char_parsed_free(parsed,size);
+ }
+}
+
+void on_same_installation_device_changed(GtkWidget *, main_window *widgets);
+void on_same_installation_device_changed(GtkWidget *, main_window *widgets){
+ gtk_list_store_clear(widgets->PartitionsList);
+ GtkTreeIter iter;
+ GtkTreeModel *model;
+ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SamePlaceDeviceTree)),&model,&iter)){
+ char *disk_path="";
+ gtk_tree_model_get(model,&iter,0,&disk_path,-1);
+ int size;
+ config_str parsed;
+ parsed = yon_config_load(get_parts_and_devices_command,&size);
+ char *string = yon_char_parsed_to_string(parsed,size,"");
+ struct json_object *root;
+ struct json_object *blockdevices;
+ root = json_tokener_parse(string);
+ json_object_object_get_ex(root, "blockdevices", &blockdevices);
+ for (long unsigned int i = 0; i < json_object_array_length(blockdevices); i++) {
+ struct json_object *device = json_object_array_get_idx(blockdevices, i);
+ struct json_object *type, *path, *size, *model, *vendor, *serial;
+
+ json_object_object_get_ex(device, "type", &type);
+ if (strcmp("part",json_object_get_string(type)))
+ continue;
+ json_object_object_get_ex(device, "path", &path);
+ if (!strstr(json_object_get_string(path),disk_path)){
+ continue;
+ }
+ json_object_object_get_ex(device, "size", &size);
+ json_object_object_get_ex(device, "model", &model);
+ json_object_object_get_ex(device, "vendor", &vendor);
+ json_object_object_get_ex(device, "serial", &serial);
+
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->SamePlaceSizeSpin),0.0);
+ gtk_adjustment_set_upper(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(widgets->SamePlaceSizeSpin)),0.0);
+ gtk_list_store_append(widgets->PartitionsList,&iter);
+ gtk_list_store_set(widgets->PartitionsList,&iter,0,json_object_get_string(path),1,json_object_get_string(model),2,json_object_get_string(serial),3,json_object_get_string(size),4,json_object_get_string(vendor),-1);
+ }
+ yon_char_parsed_free(parsed,size);
+ }
+}
+
+/**yon_main_window_complete(main_window *widgets)
+ * [EN]
+ *
+ * [RU]
+ * Функция настройки основного окна приложения. [widgets] - структура со стандартным интерфейсом.
+*/
+main_window *yon_main_window_complete(){
+ main_window *widgets=NULL;
+ widgets = yon_remalloc(widgets,sizeof(main_window));
+ GtkBuilder *builder = gtk_builder_new_from_resource(glade_path);
+ // Custom widgets configuration
+ widgets->builder = builder;
+
+ widgets->DevicesList=GTK_LIST_STORE(gtk_builder_get_object(builder,"DevicesList"));
+ widgets->LanguagesList=GTK_LIST_STORE(gtk_builder_get_object(builder,"LanguagesList"));
+ widgets->MainWindow=yon_gtk_builder_get_widget(builder,"MainWindow");
+ widgets->WelcomeToggle=yon_gtk_builder_get_widget(builder,"WelcomeToggle");
+ widgets->LicenceToggle=yon_gtk_builder_get_widget(builder,"LicenceToggle");
+ widgets->LocationToggle=yon_gtk_builder_get_widget(builder,"LocationToggle");
+ widgets->KeyboardToggle=yon_gtk_builder_get_widget(builder,"KeyboardToggle");
+ widgets->SectionsToggle=yon_gtk_builder_get_widget(builder,"SectionsToggle");
+ widgets->UsersToggle=yon_gtk_builder_get_widget(builder,"USersToggle");
+ widgets->SummaryToggle=yon_gtk_builder_get_widget(builder,"SummaryToggle");
+ widgets->InstallationToggle=yon_gtk_builder_get_widget(builder,"InstallationToggle");
+ widgets->LanguageCombo=yon_gtk_builder_get_widget(builder,"LanguageCombo");
+ widgets->RegionCombo=yon_gtk_builder_get_widget(builder,"RegionCombo");
+ widgets->ZoneCombo=yon_gtk_builder_get_widget(builder,"ZoneCombo");
+ widgets->AvailableLanguagesEntry=yon_gtk_builder_get_widget(builder,"AvailableLanguagesEntry");
+ widgets->AvailableLanguagesButton=yon_gtk_builder_get_widget(builder,"AvailableLanguagesButton");
+ widgets->LanguagesCombo=yon_gtk_builder_get_widget(builder,"LanguagesCombo");
+ widgets->KeyboardModelCombo=yon_gtk_builder_get_widget(builder,"KeyboardModelCombo");
+ widgets->LayoutBindingCombo=yon_gtk_builder_get_widget(builder,"LayoutBindingCombo");
+ widgets->DefaultLayoutRadio=yon_gtk_builder_get_widget(builder,"DefaultLayoutRadio");
+ widgets->ManualLayoutRadio=yon_gtk_builder_get_widget(builder,"ManualLayoutRadio");
+ widgets->LayoutTree=yon_gtk_builder_get_widget(builder,"LayoutTree");
+ widgets->AddButton=yon_gtk_builder_get_widget(builder,"AddButton");
+ widgets->RemoveButton=yon_gtk_builder_get_widget(builder,"RemoveButton");
+ widgets->InstallationRadio=yon_gtk_builder_get_widget(builder,"InstallationRadio");
+ widgets->InstallationNearRadio=yon_gtk_builder_get_widget(builder,"InstallationNearRadio");
+ widgets->InstallationLinuxRadio=yon_gtk_builder_get_widget(builder,"InstallationLinuxRadio");
+ widgets->InstallationWindowsRadio=yon_gtk_builder_get_widget(builder,"InstallationWindowsRadio");
+ widgets->InstallationOptionsRadio=yon_gtk_builder_get_widget(builder,"InstallationOptionsRadio");
+ widgets->UserNameEntry=yon_gtk_builder_get_widget(builder,"UserNameEntry");
+ widgets->LoginEntry=yon_gtk_builder_get_widget(builder,"LoginEntry");
+ widgets->PasswordCombo=yon_gtk_builder_get_widget(builder,"PasswordCombo");
+ widgets->PasswordEntry=yon_gtk_builder_get_widget(builder,"PasswordEntry");
+ widgets->PasswordButton=yon_gtk_builder_get_widget(builder,"PasswordButton");
+ widgets->AutologinCheck=yon_gtk_builder_get_widget(builder,"AutologinCheck");
+ widgets->AdminPasswordCombo=yon_gtk_builder_get_widget(builder,"AdminPasswordCombo");
+ widgets->AdminPasswordEntry=yon_gtk_builder_get_widget(builder,"AdminPasswordEntry");
+ widgets->AdminPasswordButton=yon_gtk_builder_get_widget(builder,"AdminPasswordButton");
+ widgets->HotnameEntry=yon_gtk_builder_get_widget(builder,"HotnameEntry");
+ widgets->CancelInstallButton=yon_gtk_builder_get_widget(builder,"CancelInstallButton");
+ widgets->BackButton=yon_gtk_builder_get_widget(builder,"BackButton");
+ widgets->NextButton=yon_gtk_builder_get_widget(builder,"NextButton");
+ widgets->mainSettingsButton=yon_gtk_builder_get_widget(builder,"mainSettingsButton");
+ widgets->menu1=yon_gtk_builder_get_widget(builder,"menu1");
+ widgets->menu2=yon_gtk_builder_get_widget(builder,"menu2");
+ widgets->RegionImage = yon_gtk_builder_get_widget(builder,"RegionImage");
+ widgets->RegionBox = yon_gtk_builder_get_widget(builder,"RegionBox");
+ widgets->RegionAspect = yon_gtk_builder_get_widget(builder,"RegionAspect");
+ widgets->KeyboardImage = yon_gtk_builder_get_widget(builder,"KeyboardImage");
+ widgets->KeyboardBox = yon_gtk_builder_get_widget(builder,"KeyboardBox");
+ widgets->Notebook = yon_gtk_builder_get_widget(builder,"Notebook");
+ widgets->LicenceLabel = yon_gtk_builder_get_widget(builder,"LicenceLabel");
+ widgets->SlidesImage = yon_gtk_builder_get_widget(builder,"SlidesImage");
+ widgets->CommonInstallationDevicesTree = yon_gtk_builder_get_widget(builder,"CommonInstallationDevicesTree");
+ widgets->AdditionalSoftwareTree = yon_gtk_builder_get_widget(builder,"AdditionalSoftwareTree");
+
+ widgets->SamePlaceDeviceTree = yon_gtk_builder_get_widget(builder,"SamePlaceDeviceTree");
+ widgets->SamePlacePartTree = yon_gtk_builder_get_widget(builder,"SamePlacePartTree");
+ widgets->SamePlaceSizeSpin = yon_gtk_builder_get_widget(builder,"SamePlaceSizeSpin");
+ widgets->SamePlaceSizeTypeSpin = yon_gtk_builder_get_widget(builder,"SamePlaceSizeTypeSpin");
+
+ widgets->InstallationNearSysDevicesTree = yon_gtk_builder_get_widget(builder,"InstallationNearSysDevicesTree");
+ widgets->InstallationNearSysSectionTree = yon_gtk_builder_get_widget(builder,"InstallationNearSysSectionTree");
+ widgets->InstallationNearSizeSpin = yon_gtk_builder_get_widget(builder,"InstallationNearSizeSpin");
+ widgets->InstallationNearSizeTypeSpin = yon_gtk_builder_get_widget(builder,"InstallationNearSizeTypeSpin");
+
+ widgets->InstallationProgress = yon_gtk_builder_get_widget(builder,"InstallationProgress");
+ widgets->InstallationLabel = yon_gtk_builder_get_widget(builder,"InstallationLabel");
+ widgets->PackageInstallationProgress = yon_gtk_builder_get_widget(builder,"PackageInstallationProgress");
+ widgets->PackageInstallationLabel = yon_gtk_builder_get_widget(builder,"PackageInstallationLabel");
+
+ widgets->SameInstallationFilesystemTypeCombo = yon_gtk_builder_get_widget(builder,"SameInstallationFilesystemTypeCombo");
+ widgets->SameInstallationFormatCheck = yon_gtk_builder_get_widget(builder,"SameInstallationFormatCheck");
+ widgets->SameInstallationSectionNameEntry = yon_gtk_builder_get_widget(builder,"SameInstallationSectionNameEntry");
+ widgets->NextInstallationFilesystemTypeCombo = yon_gtk_builder_get_widget(builder,"NextInstallationFilesystemTypeCombo");
+ widgets->NextInstallationFormatCheck = yon_gtk_builder_get_widget(builder,"NextInstallationFormatCheck");
+ widgets->NextInstallationSectionNameEntry = yon_gtk_builder_get_widget(builder,"NextInstallationSectionNameEntry");
+ widgets->CommonInstallationFilesystemTypeCombo = yon_gtk_builder_get_widget(builder,"CommonInstallationFilesystemTypeCombo");
+ widgets->CommonInstallationSectionNameEntry = yon_gtk_builder_get_widget(builder,"CommonInstallationSectionNameEntry");
+
+ widgets->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox");
+ widgets->AdditionalSoftwareCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"AdditionalSoftwareCell"));
+
+ widgets->LanguagesList = GTK_LIST_STORE(gtk_builder_get_object(builder,"LanguagesList"));
+ widgets->LanguagesFilter = GTK_TREE_MODEL(gtk_builder_get_object(builder,"LanguagesFilter"));
+ widgets->LayoutsFilter = GTK_TREE_MODEL(gtk_builder_get_object(builder,"LayoutsFilter"));
+ widgets->LayoutList = GTK_TREE_STORE(gtk_builder_get_object(builder,"LayoutList"));
+ widgets->AdditionalSoftwareList = GTK_LIST_STORE(gtk_builder_get_object(builder,"AdditionalSoftwareList"));
+ widgets->PartitionsList = GTK_LIST_STORE(gtk_builder_get_object(builder,"PartitionsList"));
+
+ g_signal_connect(G_OBJECT(widgets->Notebook),"switch-page",G_CALLBACK(on_page_changed),widgets);
+ g_signal_connect(G_OBJECT(widgets->MainWindow),"check-resize",G_CALLBACK(on_region_resized),widgets);
+ g_signal_connect(G_OBJECT(widgets->BackButton),"clicked",G_CALLBACK(on_page_navigation_clicked),widgets);
+ g_signal_connect(G_OBJECT(widgets->NextButton),"clicked",G_CALLBACK(on_page_navigation_clicked),widgets);
+ g_signal_connect(G_OBJECT(widgets->CancelInstallButton),"clicked",G_CALLBACK(on_page_navigation_clicked),widgets);
+ g_signal_connect(G_OBJECT(widgets->AvailableLanguagesButton),"clicked",G_CALLBACK(on_language_clicked),widgets);
+ g_signal_connect(G_OBJECT(widgets->RegionCombo),"changed",G_CALLBACK(on_region_changed),widgets);
+ g_signal_connect(G_OBJECT(widgets->AddButton),"clicked",G_CALLBACK(on_keyboard_clicked),widgets);
+
+ g_signal_connect(G_OBJECT(widgets->UsersToggle),"toggled",G_CALLBACK(on_toggle_block),NULL);
+ g_signal_connect(G_OBJECT(widgets->LicenceToggle),"toggled",G_CALLBACK(on_toggle_block),NULL);
+ g_signal_connect(G_OBJECT(widgets->WelcomeToggle),"toggled",G_CALLBACK(on_toggle_block),NULL);
+ g_signal_connect(G_OBJECT(widgets->KeyboardToggle),"toggled",G_CALLBACK(on_toggle_block),NULL);
+ g_signal_connect(G_OBJECT(widgets->LocationToggle),"toggled",G_CALLBACK(on_toggle_block),NULL);
+ g_signal_connect(G_OBJECT(widgets->SectionsToggle),"toggled",G_CALLBACK(on_toggle_block),NULL);
+ g_signal_connect(G_OBJECT(widgets->InstallationToggle),"toggled",G_CALLBACK(on_toggle_block),NULL);
+ g_signal_connect(G_OBJECT(widgets->InstallationNearSysDevicesTree),"cursor-changed",G_CALLBACK(on_near_installation_device_changed),widgets);
+ g_signal_connect(G_OBJECT(widgets->SamePlaceDeviceTree),"cursor-changed",G_CALLBACK(on_near_installation_device_changed),widgets);
+
+ g_signal_connect(G_OBJECT(widgets->SamePlacePartTree),"cursor-changed",G_CALLBACK(on_partition_changed),widgets);
+ g_signal_connect(G_OBJECT(widgets->InstallationNearSysSectionTree),"cursor-changed",G_CALLBACK(on_partition_changed),widgets);
+ gtk_tree_model_filter_set_visible_column(GTK_TREE_MODEL_FILTER(widgets->LayoutsFilter),3);
+
+ g_signal_connect(G_OBJECT(widgets->LanguageCombo),"changed",G_CALLBACK(on_locale_changed),widgets);
+ g_signal_connect(G_OBJECT(widgets->AdditionalSoftwareCell),"toggled",G_CALLBACK(on_additional_software_toggled),widgets);
+
+ g_signal_connect(G_OBJECT(widgets->ManualLayoutRadio),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),gtk_widget_get_parent(gtk_widget_get_parent(widgets->AddButton)));
+ // g_signal_connect(G_OBJECT(widgets->InstallationToggle),"toggled",G_CALLBACK(on_toggle_block),widgets);
+
+ gtk_tree_model_filter_set_visible_column(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter),0);
+ gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter));
+
+ gtk_window_set_title(GTK_WINDOW(widgets->MainWindow),TITLE_LABEL);
+ gtk_window_set_icon_name(GTK_WINDOW(widgets->MainWindow),icon_path);
+
+ int size;
+ config_str parsed = yon_file_open(licence_path,&size);
+ if (size){
+ char *licence = yon_char_parsed_to_string(parsed,size,"");
+ gtk_label_set_text(GTK_LABEL(widgets->LicenceLabel),licence);
+ free(licence);
+ yon_char_parsed_free(parsed,size);
+ }
+
+ widgets->regions_original = gdk_pixbuf_new_from_resource(regions_path,NULL);
+ widgets->keyboard_original = gdk_pixbuf_new_from_resource(keyboard_path,NULL);
+ widgets->slides_original = gdk_pixbuf_new_from_resource(slide_0_path,NULL);
+ int width = gdk_pixbuf_get_width(widgets->regions_original);
+ int height = gdk_pixbuf_get_height(widgets->regions_original);
+ widgets->region_height_mult = (float)height/width;
+ gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->RegionImage),gdk_pixbuf_scale_simple(widgets->regions_original,600,400,GDK_INTERP_BILINEAR));
+ gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->KeyboardImage),gdk_pixbuf_scale_simple(widgets->keyboard_original,600,400,GDK_INTERP_BILINEAR));
+ gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->SlidesImage),gdk_pixbuf_scale_simple(widgets->slides_original,600,400,GDK_INTERP_BILINEAR));
+
+ GtkTreeIter iter;
+ gtk_list_store_clear(widgets->LanguagesList);
+ parsed = yon_file_open(languages_path,&size);
+ for (int i=0;iLanguagesList,&iter);
+ gtk_list_store_set(widgets->LanguagesList,&iter,0,0,1,_(cur[1]),2,cur[0],-1);
+ }
+ yon_char_parsed_free(cur,cur_size);
+ }
+ yon_char_parsed_free(parsed,size);
+
+ parsed = yon_dir_get_contents(zone_path,&size);
+ for (int i=0;iRegionCombo),parsed[i],_(parsed[i]));
+ }
+ free(path);
+ }
+ }
+ yon_char_parsed_free(parsed,size);
+ parsed = yon_config_load(get_layouts_command,&size);
+ GtkTreeIter itar;
+ for (int i=0;iLayoutList,&iter,NULL);
+ gtk_tree_store_set(widgets->LayoutList,&iter,0,layout[0],1,_(layout[1]),2,1,-1);
+ yon_char_parsed_free(layout,layout_size);
+ layout = yon_config_load(get_layouts_local_command(layout_id),&layout_size);
+ for (int j=0;jLayoutList,&itar,&iter);
+ gtk_tree_store_set(widgets->LayoutList,&itar,0,layouts_parsed[0],1,_(layouts_parsed[1]),2,1,3,0,-1);
+ yon_char_parsed_free(layouts_parsed,parsed_size);
+ }
+ }
+ if (layout_size==-1) {
+ gtk_tree_store_set(widgets->LayoutList,&iter,2,1,-1);
+ }
+ yon_char_parsed_free(layout,layout_size);
+ }
+ }
+ yon_char_parsed_free(parsed,size);
+ {
+ parsed = yon_config_load(get_devices_command,&size);
+ char *string = yon_char_parsed_to_string(parsed,size,"");
+ struct json_object *root;
+ struct json_object *blockdevices;
+ root = json_tokener_parse(string);
+ json_object_object_get_ex(root, "blockdevices", &blockdevices);
+ for (long unsigned int i = 0; i < json_object_array_length(blockdevices); i++) {
+ struct json_object *device = json_object_array_get_idx(blockdevices, i);
+ struct json_object *path, *size, *model, *vendor, *serial;
+
+ json_object_object_get_ex(device, "path", &path);
+ json_object_object_get_ex(device, "size", &size);
+ json_object_object_get_ex(device, "model", &model);
+ json_object_object_get_ex(device, "vendor", &vendor);
+ json_object_object_get_ex(device, "serial", &serial);
+
+ gtk_list_store_append(widgets->DevicesList,&iter);
+ gtk_list_store_set(widgets->DevicesList,&iter,0,json_object_get_string(path),1,json_object_get_string(model),2,json_object_get_string(serial),3,json_object_get_string(size),4,json_object_get_string(vendor),-1);
+ }
+ yon_char_parsed_free(parsed,size);
+ }
+
+ parsed = yon_resource_open_file(additional_software_path,&size);
+ for (int i=1;iAdditionalSoftwareList,&iter);
+ gtk_list_store_set(widgets->AdditionalSoftwareList,&iter,0,1,1,module_parsed[0],3,module_parsed[1],-1); //2,module_parsed[2]
+ }
+ }
+
+ config_str models = yon_config_load(get_models_command,&size);
+ for (int i=0;iKeyboardModelCombo),models[i],_(models[i+1]));
+ }
+
+ return widgets;
+}
+
+int main(int argc, char *argv[]){
+ local=setlocale(LC_ALL, "");
+ textdomain (LocaleName);
+ config_init();
+ int option_index=0;
+ int show_help=0;
+ {
+ struct option long_options[] = {
+ {"help", 0, 0, 'h'},
+ {"version", 0, 0, 'V'},
+ {"lock-help", 0,0, 1},
+ {"lock-save", 0,0, 2},
+ {"lock-save-local", 0,0, 3},
+ {"lock-save-global", 0,0, 4},
+ {"lock-load-global", 0,0, 5},
+ {"socket-id", 1, 0, 's'},
+ {"socket-ext-id", 1,0, 'e'},
+ {"socket-trd-id", 1,0, 't'},
+ {"clear-config", 0,0, 'c'},
+ {"debug", 0,0, 'd'},
+ { NULL, 0, NULL, 0 }
+ };
+ for (int i=0;iMainWindow));
+
+ yon_window_config_load(config_path);
+ GtkCssProvider *css=gtk_css_provider_new();
+ gtk_css_provider_load_from_resource(css,CssPath);
+ gtk_style_context_add_provider_for_screen(gdk_screen_get_default(),
+ GTK_STYLE_PROVIDER(css),
+ -1);
+ gtk_main();
+}
\ No newline at end of file
diff --git a/source/ubinstall-gtk.h b/source/ubinstall-gtk.h
new file mode 100755
index 0000000..2c71335
--- /dev/null
+++ b/source/ubinstall-gtk.h
@@ -0,0 +1,325 @@
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#ifdef WEBKIT_FOUND
+ #include
+#endif
+#include "ubl-strings.h"
+
+#define WIKI_LINK "https://wiki.ublinux.ru/ru/Программное_обеспечение/Программы_и_утилиты/Все/ubinstall-gtk-output"
+
+#define _(String) gettext(String)
+
+#define glade_path "/com/ublinux/ui/ubinstall-gtk.glade"
+#define glade_path_ubinstall_keyboard "/com/ublinux/ui/ubinstall-gtk-keyboard.glade"
+#define glade_path_ubinstall_language "/com/ublinux/ui/ubinstall-gtk-language.glade"
+
+#define CssPath "/com/ublinux/css/ubinstall-gtk.css"
+#define config_path yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL)
+#define icon_path "com.ublinux.ubinstall-gtk-gui"
+
+#define LocalePath "/usr/share/locale"
+#define LocaleName "ubinstall-gtk"
+
+#define clear_config_both_command "ubconfig remove TEMP_SECTION TEMP_PATAMETER"
+#define clear_config_global_command "ubconfig --target global remove TEMP_SECTION TEMP_PATAMETER"
+#define clear_config_local_command "ubconfig --target system remove TEMP_SECTION TEMP_PATAMETER"
+
+#define regions_path "/com/ublinux/images/map-time-zone.png"
+#define keyboard_path "/com/ublinux/images/keyboard.png"
+
+#define licence_path "/usr/share/ublinux/agreement/EULA.txt"
+
+#define languages_path "/usr/share/ubinstall-gtk/csv/locales.csv"
+
+#define zone_path "/usr/share/zoneinfo/"
+
+#define additional_software_path "resource:///com/ublinux/csv/modules.csv"
+
+#define slide_0_path "/com/ublinux/images/slide-0.png"
+
+#define slide_repeat_path "/com/ublinux/images/slide-1.png", \
+"/com/ublinux/images/slide-2.png", \
+"/com/ublinux/images/slide-3.png", \
+"/com/ublinux/images/slide-4.png", \
+"/com/ublinux/images/slide-5.png", \
+"/com/ublinux/images/slide-6.png", \
+"/com/ublinux/images/slide-7.png", \
+"/com/ublinux/images/slide-8.png", \
+"/com/ublinux/images/slide-9.png", \
+"/com/ublinux/images/slide-10.png", \
+"/com/ublinux/images/slide-11.png", \
+"/com/ublinux/images/slide-12.png", \
+NULL
+
+#define get_models_command "sed '/<\\/modelList>/q' /usr/share/X11/xkb/rules/base.xml | grep -E '^ {8,8}|^ {8,8}'|sed -e 's/ *//g' -e 's,,,g' -e 's/ *//g' -e 's,,,g'"
+
+#define check_is_password_hash(password) system(yon_char_unite("/lib/ublinux/functions is_hash_password '", password,"'",NULL))
+
+#define get_layouts_command "xkbcli list --load-exotic | awk \"layout && /description:/ {match(\\$0,/: *(.*)/,matches);description=matches[1];printf \\\"%s|%s\\n\\\",layout,description;layout=\\\"\\\"} /layout:/ {match(\\$0, /: *'([^']+)'/,matches);l=matches[1];if (layouts[l]) next;layout=layouts[l]=l}\" | sort -u"
+#define get_layouts_local_command(layout) yon_char_unite("xkbcli list --load-exotic | awk -v layout=\"",layout,"\" \"BEGIN {layout_pattern = sprintf(\\\"^ *- *layout: *'%s'\\\",layout);matched=0} matched && /variant:/ {match(\\$0, /: *'([^']+)'/, matches);variant = matches[1]} matched && /description:/ {match(\\$0, /: *(.+)/, matches);description = matches[1]} matched && /^ *-/{matched=0; if (variant) printf \\\"%s|%s\\n\\\",variant,description} \\$0 ~ layout_pattern {matched=1;variant=\\\"\\\";description=\\\"\\\";next}\" | sort -u",NULL)
+#define get_devices_command "lsblk --noheadings --nodeps -Jo PATH,SIZE,MODEL,VENDOR,SERIAL --exclude 7,253"
+#define get_parts_and_devices_command "lsblk --noheadings -Jo TYPE,PATH,SIZE,FSTYPE,LABEL,PARTLABEL,MOUNTPOINT,FSUSED,FSUSE% --exclude 7,253"
+
+#define AUTOINSTALL_TYPE_INSTALL "AUTOINSTALL[install_type]"
+#define AUTOINSTALL_DEVICE "AUTOINSTALL[device]"
+#define AUTOSTART_PARTS "AUTOINSTALL[part]"
+
+#define user_name_parameter "AUTOINSTALL[user_name]"
+#define user_name_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[user_name]"
+#define user_gecos_parameter "AUTOINSTALL[user_gecos]"
+#define user_gecos_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[user_gecos]"
+#define user_password_parameter "AUTOINSTALL[user_password]"
+#define user_password_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[user_password]"
+#define root_password_parameter "AUTOINSTALL[root_password]"
+#define root_password_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[root_password]"
+#define autologin_parameter "AUTOINSTALL[autologin]"
+#define autologin_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[autologin]"
+#define xkbmodel_parameter "AUTOINSTALL[xkbmodel]"
+#define xkbmodel_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[xkbmodel]"
+#define xkblayout_parameter "AUTOINSTALL[xkblayout]"
+#define xkblayout_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[xkblayout]"
+#define xkbvariant_parameter "AUTOINSTALL[xkbvariant]"
+#define xkbvariant_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[xkbvariant]"
+#define xkboptions_parameter "AUTOINSTALL[xkboptions]"
+#define xkboptions_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[xkboptions]"
+#define hostname_parameter "AUTOINSTALL[hostname]"
+#define hostname_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[hostname]"
+#define zone_parameter "AUTOINSTALL[hostname]"
+#define zone_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[hostname]"
+#define lang_parameter "AUTOINSTALL[hostname]"
+#define lang_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[hostname]"
+#define locale_parameter "AUTOINSTALL[hostname]"
+#define locale_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[hostname]"
+#define device_format_parameter "AUTOINSTALL[device_format]"
+#define device_format_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[device_format]"
+#define device_label_parameter "AUTOINSTALL[device_label]"
+#define device_label_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[device_label]"
+#define part_size_parameter "AUTOINSTALL[part_size]"
+#define part_size_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[part_size]"
+#define part_type_parameter "AUTOINSTALL[part_type]"
+#define part_type_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[part_type]"
+
+#define save_config_command(parameters) yon_char_unite("pkexec bash -c 'ubconfig set [autoinstall] ",parameters, ";ubinstall2 --test --config /etc/ublinux/autoinstall'", NULL)
+
+#define AUTOINSTALL_TYPE_INSTALL_command "ubconfig --source global get autoinstall AUTOINSTALL[install_type]"
+#define AUTOINSTALL_DEVICE_command "ubconfig --source global get autoinstall AUTOINSTALL[device]"
+#define AUTOSTART_PARTS_command "ubconfig --source global get autoinstall AUTOINSTALL[part]"
+
+#define start_fast_install_command "ubinstall2 --autoinstall"
+
+#define progress_path "/var/log/ubinstall_progress.log"
+
+#define password_limits_path "/etc/security/pwquiality.conf"
+
+typedef char* string;
+string version_application;
+
+char *local;
+
+enum YON_PAGES {
+ YON_PAGE_WELCOME = 0,
+ YON_PAGE_LICENCE,
+ YON_PAGE_SECTIONS,
+ YON_PAGE_OS_COMPONENTS,
+ YON_PAGE_SOFTWARE,
+ YON_PAGE_INSTALLATION_BEGIN,
+ YON_PAGE_INSTALLATION,
+ YON_PAGE_REGION,
+ YON_PAGE_KEYBOARD,
+ YON_PAGE_USERS,
+ YON_PAGE_COMPLETION,
+ YON_PAGE_COMPLETED,
+ YON_PAGE_INSTALL_COMMON,
+ YON_PAGE_INSTALL_SEPARATE,
+ YON_PAGE_INSTALL_SAME_PARTITION
+};
+
+typedef struct {
+ int socket_id;
+ int load_socket_id;
+ int save_socket_id;
+
+ int lock_help;
+ int lock_save_local;
+ int lock_save_global;
+ int lock_load_global;
+
+ int always_open_documentation;
+
+ int password_min_length;
+
+ int install_complete;
+ int debug_mode;
+ guint slider_thread;
+ int install_mode;
+ GThread *config_save_thread;
+ GThread *install_thread;
+ GThread *progress_thread;
+} config;
+
+typedef struct {
+ GtkBuilder *builder;
+ GtkListStore *DevicesList;
+ GtkListStore *LanguagesList;
+ GtkTreeStore *LayoutList;
+ GtkListStore *AdditionalSoftwareList;
+ GtkListStore *PartitionsList;
+
+ GtkWidget *MainWindow;
+
+ GtkWidget *StatusBox;
+ GtkWidget *WelcomeToggle;
+ GtkWidget *LicenceToggle;
+ GtkWidget *LocationToggle;
+ GtkWidget *KeyboardToggle;
+ GtkWidget *SectionsToggle;
+ GtkWidget *UsersToggle;
+ GtkWidget *SummaryToggle;
+ GtkWidget *InstallationToggle;
+ GtkWidget *LanguageCombo;
+ GtkWidget *RegionCombo;
+ GtkWidget *ZoneCombo;
+ GtkWidget *AvailableLanguagesEntry;
+ GtkWidget *AvailableLanguagesButton;
+ GtkWidget *LanguagesCombo;
+ GtkWidget *KeyboardModelCombo;
+ GtkWidget *LayoutBindingCombo;
+ GtkWidget *DefaultLayoutRadio;
+ GtkWidget *ManualLayoutRadio;
+ GtkWidget *LayoutTree;
+ GtkWidget *AddButton;
+ GtkWidget *RemoveButton;
+ GtkWidget *InstallationRadio;
+ GtkWidget *InstallationNearRadio;
+ GtkWidget *InstallationLinuxRadio;
+ GtkWidget *InstallationWindowsRadio;
+ GtkWidget *InstallationOptionsRadio;
+ GtkWidget *UserNameEntry;
+ GtkWidget *LoginEntry;
+ GtkWidget *PasswordCombo;
+ GtkWidget *PasswordEntry;
+ GtkWidget *PasswordButton;
+ GtkWidget *AutologinCheck;
+ GtkWidget *AdminPasswordCombo;
+ GtkWidget *AdminPasswordEntry;
+ GtkWidget *AdminPasswordButton;
+ GtkWidget *HotnameEntry;
+ GtkWidget *CancelInstallButton;
+ GtkWidget *BackButton;
+ GtkWidget *NextButton;
+ GtkWidget *mainSettingsButton;
+ GtkWidget *menu1;
+ GtkWidget *menu2;
+ GtkWidget *RegionImage;
+ GtkWidget *RegionBox;
+ GtkWidget *RegionAspect;
+ GtkWidget *KeyboardImage;
+ GtkWidget *KeyboardBox;
+ GtkWidget *Notebook;
+ GtkWidget *LicenceLabel;
+ GtkWidget *SlidesImage;
+
+ GtkWidget *SameInstallationFilesystemTypeCombo;
+ GtkWidget *SameInstallationFormatCheck;
+ GtkWidget *SameInstallationSectionNameEntry;
+ GtkWidget *NextInstallationFilesystemTypeCombo;
+ GtkWidget *NextInstallationFormatCheck;
+ GtkWidget *NextInstallationSectionNameEntry;
+ GtkWidget *CommonInstallationFilesystemTypeCombo;
+ GtkWidget *CommonInstallationSectionNameEntry;
+
+ GtkWidget *InstallationNearSysDevicesTree;
+ GtkWidget *InstallationNearSysSectionTree;
+ GtkWidget *InstallationNearSizeSpin;
+ GtkWidget *InstallationNearSizeTypeSpin;
+
+ GtkWidget *SamePlaceDeviceTree;
+ GtkWidget *SamePlacePartTree;
+ GtkWidget *SamePlaceSizeSpin;
+ GtkWidget *SamePlaceSizeTypeSpin;
+
+ GtkWidget *InstallationProgress;
+ GtkWidget *InstallationLabel;
+ GtkWidget *PackageInstallationProgress;
+ GtkWidget *PackageInstallationLabel;
+
+ GtkCellRenderer *AdditionalSoftwareCell;
+
+ GtkWidget *CommonInstallationDevicesTree;
+ GtkWidget *AdditionalSoftwareTree;
+
+ GtkTreeModel *LanguagesFilter;
+ GtkTreeModel *LayoutsFilter;
+
+ GdkPixbuf *regions_original;
+ GdkPixbuf *keyboard_original;
+ GdkPixbuf *slides_original;
+ float region_height_mult;
+
+} main_window;
+
+
+typedef struct {
+ GtkWidget *Window;
+
+ GtkWidget *AlwaysOpenCheck;
+
+ GtkWidget *CloseButton;
+ GtkWidget *AcceptButton;
+} documentation_confirmation_window;
+
+typedef struct{
+ GtkWidget *MainWindow;
+ GtkWidget *StatusBox;
+ GtkWidget *headerBar;
+ GtkWidget *CancelButton;
+ GtkWidget *SaveButton;
+ GtkWidget *LayoutsTree;
+ GtkCellRenderer *ActiveToggle;
+} ubinstall_keyboard_window;
+
+typedef struct{
+ GtkListStore *liststore1;
+ GtkWidget *MainWindow;
+ GtkWidget *StatusBox;
+ GtkWidget *DefaultCheck;
+ GtkWidget *headerBar;
+ GtkWidget *CancelButton;
+ GtkWidget *SaveButton;
+ GtkWidget *LanguagesTree;
+
+ GtkCellRenderer *ToggleRenderer;
+} ubinstall_language_window;
+
+typedef struct{
+ GtkWidget *CreateGroupWindow;
+ GtkWidget *StatusBox;
+ GtkWidget *UserCancelButton;
+ GtkWidget *UserOkButton;
+ GtkWidget *PasswordEntry;
+ GtkWidget *RepeatPasswordEntry;
+ GtkWidget *PasswordHashEntry;
+ GtkWidget *HashBox;
+ GtkWidget *PasswordBox;
+ GtkWidget *NoEncriptionCheck;
+} password_window;
+
+void config_init();
+main_window *yon_main_window_complete();
+ubinstall_language_window *yon_ubinstall_language_new();
+void NewFunction(ubinstall_language_window *window, GtkBuilder *builder);
+ubinstall_keyboard_window *yon_ubinstall_keyboard_new();
+
+password_window *yon_password_new();
+void on_password_accept(GtkWidget *self, dictionary *dict);
\ No newline at end of file
diff --git a/source/ubl-strings.h b/source/ubl-strings.h
new file mode 100644
index 0000000..1cd26d8
--- /dev/null
+++ b/source/ubl-strings.h
@@ -0,0 +1,107 @@
+#define VERSION_LABEL yon_char_unite(_("Version:")," ",!yon_char_is_empty(version_application)?version_application:"","\n",NULL)
+#define HELP_LABEL(rest) yon_char_unite(LocaleName,_(" version:")," ", !yon_char_is_empty(version_application)?version_application:"","\n",TITLE_LABEL,"\n",_("Usage:"), " ",LocaleName," ",_("[OPTIONS]"),"\n",_("Options:"),"\n\t--help, -h\t\t\t",_("Show this help"),"\n\t--version, -V\t\t\t",_("Show package version"),"\n\t--lock-help\t\t\t",_("Lock this help menu"),"\n\t--lock-save\t\t\t",_("Lock configuration saving"),"\n\t--lock-save-local\t\t",_("Lock local configration saving"),"\n\t--lock-save-global\t\t",_("Lock global configration saving"),"\n\t--lock-load-global\t\t",_("Lock global configration loading"),"\n\t--clear-config\t\t\t",_("Reset application settings"),"\n",!yon_char_is_empty(rest)?rest:NULL,NULL)
+
+#define TITLE_LABEL _("ubinstall")
+
+#define WELCOME_LABEL _("Welcome to UBLinux installation")
+#define WELCOME_BOTTOM_LABEL _("This program will ask you few questions\nand help you install UBLinux on your computer")
+
+#define KEYBOARD_TITLE_LABEL _("Keyboard layout")
+
+#define CANCEL_LABEL _("Cancel")
+#define BACK_LABEL _("Back")
+#define NEXT_LABEL _("Next")
+#define WELCOME_TAB_LABEL _("Welcome")
+#define LICENCE_TAB_LABEL _("Licence\nagreement")
+#define SECTIONS_TAB__LABEL _("Sections")
+#define INSTALLATION_TAB_LABEL _("Installation")
+#define LOCATION_TAB_LABEL _("Location")
+#define KEYBOARD_TAB_LABEL _("Keyboard")
+#define USERS_TAB_LABEL _("Users")
+#define COMPLETION_TAB_LABEL _("Completion")
+#define COMMON_INSTALL_INFO_LABEL _("Deleting all data on the selected disk and then installing the UBLinux system")
+#define NEAR_INSTALL_LABEL _("Installation next to another system")
+#define NEAR_INSTALL_INFO_LABEL _("Shrinking a partition and creating a new one for installing UBLinux")
+#define SHRINK_SECTION_INSTALL_LABEL _("Installation on the same partition as another system")
+#define SHRINK_SECTION_INSTALL_INFO_LABEL _("Unpacking the UBLinux file system into an existing system")
+#define ADDITIONAL_INSTALL_INFO_LABEL _("Selecting additional software to install from the repository via the Internet")
+#define CHOSEN_LABEL _("Chosen")
+#define MODULE_NAME_LABEL _("Module name")
+#define TAG_LABEL _("Tag")
+#define DESCRIPTION_LABEL _("Description")
+#define INSTALLATION_COMPLETION_LABEL _("Installation completion")
+#define LOCATION_LABEL _("Location")
+#define REGION_LABEL _("Region:")
+#define ZONE_LABEL _("Zone:")
+#define LANGUAGE_LABEL _("Language:")
+#define KEYBOARD_MODEL_LABEL _("Keyboard model:")
+#define LAYOUT_CHANGING_LABEL _("Layout changing:")
+#define DEFAUL_LAYOUT_LABEL _("Default layout (ru)")
+#define DEFINE_LABEL _("Define")
+#define ACCOUNT_NAME_LABEL _("Your account name:")
+#define LOGIN__LABEL _("Login:")
+#define PASSWORD__LABEL _("Password")
+#define DEFAULT_LABEL _("Default")
+#define SET_PASSWORD_LABEL _("Set a password")
+#define DO_NOT_SET_PASSWORD_LABEL _("Do no set a password")
+#define AUTOMATIC_LOGIN_LABEL _("Automatic login without password prompt")
+#define ADMIN_PASSWORD_LABEL _("Administrator password (root):")
+#define COMPUTER_NAME_LABEL _("Computer name:")
+#define USER_LABEL _("User")
+#define COMPLETION_LABEL _("Completion")
+#define INSTALLATION_COMPLETION_LABEL _("Installation completion")
+#define SELECT_DEVICE_LABEL _("Select device:")
+#define CHOOSE_SECTION_LABEL _("Choose a section:")
+#define ATTENSION_LABEL _("Attention! The selected partition will be modified: the size will be reduced. In the resulting free space, a partition will be created into which the UBLinux OS will be\ninstalled.")
+#define DEVICE_LABEL _("Device")
+#define MARK_LABEL _("Mark")
+#define SIZE_LABEL _("Size")
+#define FREE_LABEL _("Free")
+#define SPECIFY_LABEL _("Specify the size of the new partition for UBLinux OS:")
+#define TB_LABEL _("Tb")
+#define GB_LABEL _("Gb")
+#define MB_LABEL _("Mb")
+#define AVALIABLE_LANGUAGES_LABEL _("Available languages in the system:")
+
+#define NO_DEVICE_CHOSEN_LABEL _("No device were chosen")
+
+#define INSTALLATION_PARAMETERS_LABEL _("Installation parameters")
+
+
+#define KEYBOARD__LABEL _("Keyboard layout language")
+
+#define REGION_EMPTY_LABEL _("Region were not fullified")
+#define ZONE_EMPTY_LABEL _("Zone were not fullified")
+#define LANGUAGES_EMPTY_LABEL _("Languages list is empty")
+#define LOCALE_EMPTY_LABEL _("System locale hasn't been chosen")
+#define LAYOUTS_CHOSEN_BUT_EMPTY_LABEL _("Manual layouts has been chosen but empty")
+
+#define PASSWORD_TITLE_LABEL _("Password input")
+#define PASSWORD_MISMATCH_LABEL _("Password mismatch")
+#define EMPTY_IMPORTANT_LABEL _("Empty important field")
+#define PASSWORD_SHORT_LABEL(min_size_char) yon_char_unite(_("Password must be at least")," ", min_size_char," ",_("characters"))
+
+#define RESTART_LABEL _("Restart PC")
+#define EXIT_LABEL _("Exit")
+#define CHOOSE_LABEL _("Choose file system type for the section:")
+#define SECTION_NAME_LABEL _("Section name:")
+#define FORMAT_LABEL _("Format")
+
+#define SUCCESS_LABEL _("You have UBLinux installed on your computer.\nYou can reboot and use your new system\nor continue working in the UBLinux Live environment.")
+
+#define LANGUAGES_TITLE_LABEL _("Available languages in the system")
+#define LAYOUTS_TITLE_LABEL _("Keyboard layout language")
+#define APPLY_LABEL _("Apply")
+#define SUCCESS_HEADER_LABEL _("Success")
+#define LAYOUT_LABEL _("Layout")
+#define DESIGNATION_LABEL _("Designation")
+#define SERIAL_LABEL _("Serial")
+#define SECTION_LABEL _("Section")
+#define CAPACITY_LABEL _("Capacity")
+#define FREE_SPACE_LABEL _("Free space")
+#define FS_LABEL _("File system")
+#define DEFAULTSWITCHING_LABEL _("Default (L_Alt + L_Shift)")
+#define DEFAULT_MODEL_LABEL _("Default (Regular 105-key)")
+
+#define INSTALL_BEGIN_HEADER_LABEL _("Installation configuration has ended")
+#define INSTALL_BEGIN_LABEL _("UBLinux OS installation is about to begin")
\ No newline at end of file
diff --git a/ubinstall-gtk-keyboard.glade b/ubinstall-gtk-keyboard.glade
new file mode 100644
index 0000000..bbfee24
--- /dev/null
+++ b/ubinstall-gtk-keyboard.glade
@@ -0,0 +1,158 @@
+
+
+
+
+
+
diff --git a/ubinstall-gtk-language.glade b/ubinstall-gtk-language.glade
new file mode 100644
index 0000000..2c3886b
--- /dev/null
+++ b/ubinstall-gtk-language.glade
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 200
+ 400
+ False
+ True
+ 800
+ com.ublinux.ubinstall-gui
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ vertical
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ vertical
+ 5
+
+
+ Default
+ True
+ True
+ False
+ True
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ in
+
+
+ True
+ True
+ liststore1
+ False
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+
+
+
+
+
diff --git a/ubinstall-gtk.css b/ubinstall-gtk.css
new file mode 100644
index 0000000..501ddbf
--- /dev/null
+++ b/ubinstall-gtk.css
@@ -0,0 +1,208 @@
+.thin {
+ margin:0px;
+ padding:0px;
+}
+.noborder {
+ border:none;
+}
+.nobackground {
+background:transparent;
+}
+.nobackground:active {
+background:transparent;
+}
+.textHead{
+ text-shadow: 2px 2px @theme_bg_color;
+ color: @theme_text_color;
+}
+
+.inherited>* {
+ border:none;
+ background:inherit;
+}
+.workingbg {
+ background:@theme_base_color;
+}
+.menuitembottom{
+ margin-top:0px;
+ margin-bottom:3px;
+ border-color:inherit;
+ border-left-width:inherit;
+ border-right-width:inherit;
+ }
+ .menuitemmiddle{
+ margin-top:0px;
+ margin-bottom:0px;
+ border-color:inherit;
+ border-left-width:inherit;
+ border-right-width:inherit;
+ }
+
+ .menuitemtop{
+ margin-bottom:0px;
+ border-color:inherit;
+ border-top-width:inherit;
+ border-left-width:inherit;
+ border-right-width:inherit;
+ }
+ .menuitemtop >*{
+ margin:4px 2px 0 2px;
+ padding: 3px 10px 3px 5px;
+ border:transparent;
+ }
+ .menuitemmiddle >*{
+ margin:0 2px 0 2px;
+ padding: 3px 10px 3px 5px;
+ border:transparent;
+ }
+ .menuitembottom >*{
+ margin:0 2px 2px 2px;
+ padding: 3px 10px 3px 5px;
+ }
+ .menuitemtop:hover {
+ background:@theme_bg_color;
+ border-color:inherit;
+ border-top-width:inherit;
+ border-left-width:inherit;
+ border-right-width:inherit;
+ }
+ .menuitemmiddle:hover {
+ background:@theme_bg_color;
+ border-color:inherit;
+ border-left-width:inherit;
+ border-right-width:inherit;
+ }
+ .menuitembottom:hover {
+ background:@theme_bg_color;
+ border-color:inherit;
+ border-bottom-width:0px;
+ border-left-width:inherit;
+ border-right-width:inherit;
+
+ }
+ .menuitemtop:hover>* {
+ margin:4px 2px 0 2px;
+ padding: 3px 10px 3px 5px;
+ background:@theme_selected_bg_color;
+ border-radius:2px;
+ }
+ .menuitemmiddle:hover>* {
+ margin:0 2px 0 2px;
+ padding: 3px 10px 3px 5px;
+ background:@theme_selected_bg_color;
+ border-radius:2px;
+ }
+ .menuitembottom:hover>* {
+ margin:0 2px 2px 2px;
+ padding: 3px 10px 3px 5px;
+ background:@theme_selected_bg_color;
+ border-radius:2px;
+ }
+ .boxInfoMessError{
+ background-color: #ea9999;
+}
+
+.boxInfoMessOK{
+ background-color: #f3f0ac;
+}
+.errorBox {
+ border-width: 2px;
+ border-color: #ea9999;
+ border-style:solid;
+}
+
+.chosenOutline{
+ transition: 0ms;
+ border-width: 1px;
+ border-color: #f3f0ac;
+ border-style:solid;
+}
+
+.separatorTop{
+ border-color: darker (@theme_bg_color);
+ border-top-width:1px;
+ border-style:solid;
+}
+
+.separatorBottom{
+ border-color: darker (@theme_bg_color);
+ border-bottom-width:1px;
+ border-style:solid;
+}
+
+.marginright image{
+ margin-right: 2px;
+}
+
+.spinner_image{
+ -gtk-icon-transform: scale(2);
+}
+
+treeview row:nth-child(odd) { background-color: #000000; }
+
+treeview row:nth-child(even) { background-color: #ffffff; }
+
+.blackbg {
+ background-color: @theme_text_color;
+}
+
+.toggletabs {
+ background-color: @background_color;
+ border:none;
+ border-radius:0px;
+ transition:0;
+ padding-top:7px;
+ padding-bottom:7px;
+}
+
+.toggletabs:checked {
+ background:@theme_base_color;
+ border-radius:0px;
+ color:inherit;
+ padding-top:7px;
+ padding-bottom:7px;
+}
+
+.toggletabs:checked>* {
+ background:@theme_base_color;
+ border-radius:0px;
+ color:inherit;
+}
+
+.toggletabs:checked:disabled {
+ background:@theme_base_color;
+ border-radius:0px;
+ color:inherit;
+ padding-top:7px;
+ padding-bottom:7px;
+}
+
+.toggletabs:checked>*:disabled {
+ background:@theme_base_color;
+ border-color:inherit;
+ border-style:solid;
+ border-radius:0px;
+ color:inherit;
+}
+
+.toggletabs:active {
+ background-color: @background_color;
+ border:none;
+ border-radius:0px;
+ transition:0;
+ padding-top:7px;
+ padding-bottom:7px;
+}
+
+.toggletabs:active>* {
+ background:@background_color;
+ border-radius:0px;
+ color:inherit;
+}
+
+.menubox {
+ background-color:@theme_text_color;
+}
+.menubox *{
+ color:@theme_base_color;
+}
\ No newline at end of file
diff --git a/ubinstall-gtk.desktop b/ubinstall-gtk.desktop
new file mode 100644
index 0000000..ed03562
--- /dev/null
+++ b/ubinstall-gtk.desktop
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Version=2.35
+Encoding=UTF-8
+Name=ubinstall-gtk
+Name[ru]=Установка UBLinux
+Comment=ubinstall-gtk
+Comment[ru]=Установка UBLinux
+Icon=com.ublinux.ubinstall-gtk
+Terminal=false
+Type=Application
+Exec=pkexec /bin/ubinstall-gtk
+Categories=Settings;System;
+StartupNotify=true
diff --git a/ubinstall-gtk.glade b/ubinstall-gtk.glade
new file mode 100644
index 0000000..a8fdfef
--- /dev/null
+++ b/ubinstall-gtk.glade
@@ -0,0 +1,5985 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LanguagesList
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LayoutList
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100
+ 1
+ 10
+
+
+ True
+ False
+ com.ublinux.libublsettingsui-gtk3.properties-symbolic
+
+
+ True
+ False
+ com.ublinux.libublsettingsui-gtk3.increase-symbolic
+
+
+ True
+ False
+ com.ublinux.libublsettingsui-gtk3.trash-symbolic
+
+
+ True
+ False
+ com.ublinux.libublsettingsui-gtk3.properties-symbolic
+
+
+ True
+ False
+ com.ublinux.libublsettingsui-gtk3.properties-symbolic
+
+
+ True
+ False
+ com.ublinux.libublsettingsui-gtk3.properties-symbolic
+
+
+ True
+ False
+ com.ublinux.libublsettingsui-gtk3.properties-symbolic
+
+
+ True
+ False
+ document-edit-symbolic
+
+
+ True
+ False
+ com.ublinux.ubinstall-gtk.circle-exit-symbolic
+
+
+ True
+ False
+ com.ublinux.ubinstall-gtk.arrow-left-symbolic
+
+
+ True
+ False
+ com.ublinux.ubinstall-gtk.arrow-right-symbolic
+
+
+
+
+ 800
+ 600
+ True
+ False
+ com.ublinux.ubinstall-gtk-gui
+
+
+ True
+ False
+ vertical
+
+
+ True
+ False
+ vertical
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ vertical
+
+
+ True
+ False
+ start
+ 112
+ com.ublinux.ubinstall-gtk-gui
+ 1
+
+
+ True
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ True
+
+
+ Welcome
+ True
+ True
+ True
+ True
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ Licence
+agreement
+ True
+ True
+ True
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ Sections
+ True
+ True
+ True
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ Installation
+ True
+ True
+ True
+
+
+
+ False
+ True
+ 3
+
+
+
+
+ Location
+ True
+ True
+ True
+
+
+
+ False
+ True
+ 4
+
+
+
+
+ Keyboard
+ True
+ True
+ True
+
+
+
+ False
+ True
+ 5
+
+
+
+
+ Users
+ True
+ True
+ True
+
+
+
+ False
+ True
+ 6
+
+
+
+
+ Completion
+ True
+ True
+ True
+
+
+
+ False
+ True
+ 9
+
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+ vertical
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ left
+ False
+
+
+ True
+ False
+ vertical
+
+
+ True
+ False
+ center
+ vertical
+ 20
+
+
+ True
+ False
+ Welcome to UBLinux installation
+ True
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ This program will ask you few questions
+and help you install UBLinux on your computer
+ True
+
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 128
+ /com/ublinux/images/language.png
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ center
+ 0
+
+ - Русский
+ - English
+
+
+
+ False
+ True
+ 3
+
+
+
+
+ True
+ False
+ 0
+
+
+
+
+
+
+ True
+ False
+ False
+ Welcome
+
+
+ False
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ True
+ in
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+
+
+ True
+ False
+ 0
+ 0
+
+
+
+
+
+
+ True
+ True
+ 0
+
+
+
+
+ 1
+
+
+
+
+ True
+ False
+ Licences
+
+
+ 1
+ False
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ vertical
+
+
+ True
+ False
+ Installation options
+
+
+
+
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 15
+
+
+ True
+ True
+ False
+ True
+ True
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ /com/ublinux/images/clear_install_disk.png
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Installation
+ 0
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Deleting all data on the selected disk and then installing the UBLinux system
+ 0
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ False
+ True
+ InstallationRadio
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ /com/ublinux/images/near_install_disk.png
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Installation next to another system
+ 0
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Shrinking a partition and creating a new one for installing UBLinux
+ 0
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ False
+ True
+ InstallationRadio
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ /com/ublinux/images/in_part_install_disk.png
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Installation on the same partition as another system
+ 0
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Unpacking the UBLinux file system into an existing system
+ 0
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ False
+ True
+ InstallationRadio
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ gtk-missing-image
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Installation next to Windows system
+ 0
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Shrinking a partition and creating a new one to install UBLinux next to Windows
+ 0
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+
+
+ False
+ True
+ 3
+
+
+
+
+ True
+ False
+ True
+ InstallationRadio
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ gtk-missing-image
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Additional installation options
+ 0
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Separate installation of bootloader, system files, user data, etc.
+ 0
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+
+
+ False
+ True
+ 4
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ 2
+
+
+
+
+ True
+ False
+ Sections
+
+
+ 2
+ False
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Installation completion
+
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 0.019999999552965164
+ in
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+
+
+ True
+ True
+ in
+
+
+ True
+ True
+ AdditionalSoftwareList
+ 0
+
+
+
+
+
+ Chosen
+
+
+
+ 0
+
+
+
+
+
+
+ Module name
+
+
+
+ 1
+
+
+
+
+
+
+ Tag
+
+
+
+ 2
+
+
+
+
+
+
+ Description
+
+
+
+ 3
+
+
+
+
+
+
+
+
+
+
+
+
+ True
+ False
+ Selecting additional software to install from the repository via the Internet
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ 3
+
+
+
+
+ True
+ False
+ OS components
+
+
+ 3
+ False
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Installation completion
+
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 0.019999999552965164
+ in
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+
+
+ True
+ True
+ in
+
+
+ True
+ True
+ AdditionalSoftwareList
+ 0
+
+
+
+
+
+ Chosen
+
+
+
+ 0
+
+
+
+
+
+
+ Module name
+
+
+
+ 1
+
+
+
+
+
+
+ Tag
+
+
+
+ 2
+
+
+
+
+
+
+ Description
+
+
+
+ 3
+
+
+
+
+
+
+
+
+
+
+
+
+ True
+ False
+ Selecting additional software to install from the repository via the Internet
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ 4
+
+
+
+
+ True
+ False
+ Additional software
+
+
+ 4
+ False
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ end
+ Installation configuration has ended
+
+
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ True
+ False
+ start
+ UBLinux OS installation is about to begin
+
+
+
+
+
+ True
+ True
+ 2
+
+
+
+
+ 5
+
+
+
+
+ True
+ False
+ page 6
+
+
+ 5
+ False
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+
+
+ False
+ True
+ 0
+
+
+
+
+ 6
+
+
+
+
+ True
+ False
+ Installation
+
+
+ 6
+ False
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Location
+
+
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 0
+ none
+
+
+ 680
+ True
+ False
+
+
+
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Region:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 0
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Zone:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Available languages in the system:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+
+
+ True
+ True
+ 1
+
+
+
+
+ True
+ True
+ True
+ image6
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Language:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ LanguagesFilter
+ 2
+
+
+
+ 1
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ True
+ 3
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ 7
+
+
+
+
+ True
+ False
+ Region
+
+
+ 7
+ False
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Keyboard
+
+
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 0
+ none
+
+
+ True
+ False
+
+
+
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Keyboard model:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 0
+
+ - Default (Regular 105-key)
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Layout changing:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 0
+
+ - Default (L_Alt + L_Shift)
+ - Left Alt
+ - Caps Lock
+ - Shift + Caps Lock
+ - Alt + Caps Lock
+ - Alt + Shift
+ - Ctrl + Shift
+ - Both Shift together
+ - Both Alt together
+ - Both Ctrl together
+ - Left Ctrl+Left Shift
+ - Right Ctrl+Right Shift
+ - Alt+Ctrl
+ - Left Alt+Left Shift
+ - Alt+Space
+
+ - Left Win
+ - Win+Space
+ - Right Win
+ - Left Shift
+ - Right Shift
+ - Left Ctrl
+ - Right Ctrl
+ - Scroll Lock
+ - Left Ctrl+Left Win
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ Default layout (ru)
+ True
+ True
+ False
+ True
+ True
+
+
+ False
+ True
+ 0
+
+
+
+
+ Define
+ True
+ True
+ False
+ True
+ DefaultLayoutRadio
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ 0
+
+
+
+
+ True
+ False
+ False
+ 5
+
+
+ True
+ True
+ in
+
+
+ True
+ True
+ LayoutsFilter
+ 0
+
+
+
+
+
+ Layout
+
+
+
+ 0
+
+
+
+
+
+
+ Designation
+
+
+
+ 1
+
+
+
+
+
+
+
+
+ True
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ True
+ True
+ image13
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ True
+ image14
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ 8
+
+
+
+
+ True
+ False
+ Keyboard
+
+
+ 8
+ False
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ User
+
+
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+
+
+ True
+ True
+ 1
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Your account name:
+ 0
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ Super Admin
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Login:
+ 0
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ superadmin
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Password
+ 0
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 0
+
+ - Default
+ - Set a password
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ False
+ ●
+ ******
+ password
+
+
+ True
+ True
+ 2
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ False
+ 5
+
+
+ Automatic login without password prompt
+ True
+ True
+ False
+ True
+
+
+ False
+ True
+ 0
+
+
+
+
+ False
+ True
+ 3
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Administrator password (root):
+ 0
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 0
+
+ - Default
+ - Set a password
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ False
+ ●
+ ******
+ password
+
+
+ True
+ True
+ 2
+
+
+
+
+ False
+ True
+ 4
+
+
+
+
+ True
+ False
+
+
+ False
+ True
+ 5
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Computer name:
+ 0
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ ubstation
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ True
+ 6
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ 9
+
+
+
+
+ True
+ False
+ Users
+
+
+ 9
+ False
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Completion
+
+
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ False
+
+
+ True
+ True
+ 1
+
+
+
+
+ True
+ False
+ end
+ Success
+
+
+
+
+
+
+ True
+ True
+ 2
+
+
+
+
+ True
+ False
+ start
+ You have UBLinux installed on your computer.
+You can reboot and use your new system
+or continue working in the UBLinux Live environment.
+ center
+ True
+
+
+
+
+
+ True
+ True
+ 3
+
+
+
+
+ 10
+
+
+
+
+ True
+ False
+ Completion
+
+
+ 10
+ False
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Installation completion
+
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+
+
+ True
+ True
+ 1
+
+
+
+
+ 11
+
+
+
+
+ True
+ False
+ Completed
+
+
+ 11
+ False
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Installation parameters
+
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ /com/ublinux/images/clear_install_disk.png
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Installation
+ 0
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Deleting all data on the selected disk and then installing the UBLinux system
+ 0
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Select device:
+ 0
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ in
+ 128
+
+
+ True
+ True
+ DevicesList
+ 0
+
+
+
+
+
+ Device
+
+
+
+ 0
+
+
+
+
+
+
+ Description
+
+
+
+ 1
+
+
+
+
+
+
+ Mark
+
+
+
+ 2
+
+
+
+
+
+
+ Size
+
+
+
+ 3
+
+
+
+
+
+
+ Free
+
+
+
+ 4
+
+
+
+
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Choose file system type for the section:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 1
+
+ - ext3
+ - ext4
+ - fat16
+ - fat32
+ - exfat
+ - riserfs
+ - udf
+ - xfs
+ - zfs
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Section name:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ True
+ 3
+
+
+
+
+ 12
+
+
+
+
+ True
+ False
+ Common Installation
+
+
+ 12
+ False
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Installation parameters
+
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ /com/ublinux/images/near_install_disk.png
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Installation next to another system
+ 0
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Shrinking a partition and creating a new one for installing UBLinux
+ 0
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ Attention! The selected partition will be modified: the size will be reduced. In the resulting free space, a partition will be created into which the UBLinux OS will be
+installed.
+ True
+ 0
+ 0
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Select device:
+ 0
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ image36
+
+
+
+ False
+ True
+ end
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ in
+ 128
+
+
+ True
+ True
+ DevicesList
+ 0
+
+
+
+
+
+ Device
+
+
+
+ 0
+
+
+
+
+
+
+ Description
+
+
+
+ 1
+
+
+
+
+
+
+ Mark
+
+
+
+ 2
+
+
+
+
+
+
+ Size
+
+
+
+ 3
+
+
+
+
+
+
+ Serial
+
+
+
+ 4
+
+
+
+
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+
+
+ True
+ False
+ Choose a section:
+ 0
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ in
+ 128
+
+
+ True
+ True
+ PartitionsList
+
+
+
+
+
+ Section
+
+
+
+ 0
+
+
+
+
+
+
+ Capacity
+
+
+
+ 1
+
+
+
+
+
+
+ Free space
+
+
+
+ 2
+
+
+
+
+
+
+ File system
+
+
+
+ 3
+
+
+
+
+
+
+ Mark
+
+
+
+ 4
+
+
+
+
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Specify the size of the new partition for UBLinux OS:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ 0
+ adjustment1
+ 1
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 1
+
+ - Mb
+ - Gb
+ - Tb
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Choose file system type for the section:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 1
+
+ - ext3
+ - ext4
+ - fat16
+ - fat32
+ - exfat
+ - riserfs
+ - udf
+ - xfs
+ - zfs
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ Format
+ True
+ True
+ False
+ True
+ True
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Section name:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ True
+ 3
+
+
+
+
+ 13
+
+
+
+
+ True
+ False
+ Installation next to system
+
+
+ 13
+ False
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Installation parameters
+
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ /com/ublinux/images/in_part_install_disk.png
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Installation on the same partition as another system
+ 0
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Unpacking the UBLinux file system into an existing system
+ 0
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ Attention! The UBLinux OS will be installed on the selected partition with OS already installed. All user data will be saved.
+ True
+ 0
+ 0
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Select device:
+ 0
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ image1
+
+
+
+ False
+ True
+ end
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ in
+ 128
+
+
+ True
+ True
+ DevicesList
+ 0
+
+
+
+
+
+ Device
+
+
+
+ 0
+
+
+
+
+
+
+ Mark
+
+
+
+ 1
+
+
+
+
+
+
+ Capacity
+
+
+
+ 2
+
+
+
+
+
+
+ Location
+
+
+
+ 3
+
+
+
+
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+
+
+ True
+ False
+ Choose a section:
+ 0
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ in
+ 128
+
+
+ True
+ True
+ PartitionsList
+
+
+
+
+
+ Section
+
+
+
+ 0
+
+
+
+
+
+
+ Capacity
+
+
+
+ 1
+
+
+
+
+
+
+ Free space
+
+
+
+ 2
+
+
+
+
+
+
+ File system
+
+
+
+ 3
+
+
+
+
+
+
+ Mark
+
+
+
+ 4
+
+
+
+
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Specify the size of the new partition for UBLinux OS:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ 0
+ adjustment1
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 1
+
+ - Mb
+ - Gb
+ - Tb
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Choose file system type for the section:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 1
+
+ - ext3
+ - ext4
+ - fat16
+ - fat32
+ - exfat
+ - riserfs
+ - udf
+ - xfs
+ - zfs
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ Format
+ True
+ True
+ False
+ True
+ True
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Section name:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ True
+ 3
+
+
+
+
+ 14
+
+
+
+
+ True
+ False
+ Installation with Linux
+
+
+ 14
+ False
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Installation parameters
+
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ gtk-missing-image
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Installation next to another system
+ 0
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Shrinking a partition and creating a new one for installing UBLinux
+ 0
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ Attention! The selected partition will be modified: the size will be reduced. In the resulting free space, a partition will be created into which the UBLinux OS will be
+installed.
+ True
+ 0
+ 0
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Select device:
+ 0
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ image2
+
+
+
+ False
+ True
+ end
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ in
+ 128
+
+
+ True
+ True
+ DevicesList
+ 0
+
+
+
+
+
+ Device
+
+
+
+
+
+
+
+ Mark
+
+
+
+
+
+
+
+ Capacity
+
+
+
+
+
+
+
+ Location
+
+
+
+
+
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+
+
+ True
+ False
+ Choose a section:
+ 0
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ in
+ 128
+
+
+ True
+ True
+ PartitionsList
+
+
+
+
+
+ Section
+
+
+
+
+
+
+
+ Capacity
+
+
+
+
+
+
+
+ Free space
+
+
+
+
+
+
+
+ System
+
+
+
+
+
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Specify the size of the new partition for UBLinux OS:
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ 0
+ adjustment1
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+
+ - Mb
+ - Gb
+ - Tb
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ 15
+
+
+
+
+ True
+ False
+ Installation with Windows
+
+
+ 15
+ False
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Installation options
+
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ gtk-missing-image
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Additional installation options
+ 0
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Separate installation of bootloader, system files, user data, etc.
+ 0
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Attention! The selected OC UBLinux components will be installed
+separately into the selected partition.
+ 0
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ True
+ False
+ True
+ True
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ gtk-missing-image
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Installing GRUB
+ 0
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Install the GRUB bootloader
+ 0
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ False
+ True
+ True
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ gtk-missing-image
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ GRUB update
+ 0
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Update (reinstall) the GRUB bootloader
+ 0
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ False
+ True
+ True
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ gtk-missing-image
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Separate installation
+ 0
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Installing OS components and user data on different disk partitions
+ 0
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ True
+ False
+ True
+ True
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ gtk-missing-image
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ OS only
+ 0
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Installing only OS components without user data
+ 0
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+
+
+ False
+ True
+ 3
+
+
+
+
+ True
+ True
+ False
+ True
+ True
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ gtk-missing-image
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ User data only
+ 0
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Installing only user data without OS components
+ 0
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+
+
+ False
+ True
+ 4
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ 16
+
+
+
+
+ True
+ False
+ Install with more options
+
+
+ 16
+ False
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Installation parameters
+
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ 5
+ 10
+ 5
+
+
+ True
+ False
+ gtk-missing-image
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Installing GRUB
+ 0
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Install the GRUB bootloader
+ 0
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Choose device:
+ 0
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ in
+ 128
+
+
+ True
+ True
+ DevicesList
+ 0
+
+
+
+
+
+ Device
+
+
+
+
+
+
+
+ Mark
+
+
+
+
+
+
+
+ Capacity
+
+
+
+
+
+
+
+ Location
+
+
+
+
+
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ 17
+
+
+
+
+ True
+ False
+ GRUB install
+
+
+ 17
+ False
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Installation parameters
+
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ 5
+ 10
+ 5
+
+
+ True
+ False
+ gtk-missing-image
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ GRUB update
+ 0
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Update (reinstall) the GRUB bootloader
+ 0
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Choose device:
+ 0
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ in
+ 128
+
+
+ True
+ True
+ DevicesList
+ 0
+
+
+
+
+
+ Device
+
+
+
+
+
+
+
+ Mark
+
+
+
+
+
+
+
+ Capacity
+
+
+
+
+
+
+
+ Location
+
+
+
+
+
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ 18
+
+
+
+
+ True
+ False
+ GRUB update
+
+
+ 18
+ False
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Installation parameters
+
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+ 10
+ 5
+
+
+ True
+ False
+ gtk-missing-image
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Separate installation
+ 0
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Installing OS components and user data on different disk partitions
+ 0
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ Attention! The UBLinux OS will be installed on the selected partition with Linux OS already installed. All user data will be saved.
+ True
+ 0
+ 0
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Select device:
+ 0
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ True
+ image3
+
+
+
+ False
+ True
+ end
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ in
+ 128
+
+
+ True
+ True
+ DevicesList
+ 0
+
+
+
+
+
+ Device
+
+
+
+
+
+
+
+ Mark
+
+
+
+
+
+
+
+ Capacity
+
+
+
+
+
+
+
+ Location
+
+
+
+
+
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+
+
+ True
+ False
+ Choose a section:
+ 0
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ in
+ 128
+
+
+ True
+ True
+ PartitionsList
+
+
+
+
+
+ Section
+
+
+
+
+
+
+
+ Capacity
+
+
+
+
+
+
+
+ Free space
+
+
+
+
+
+
+
+ System
+
+
+
+
+
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ 19
+
+
+
+
+ True
+ False
+ Separate installation
+
+
+ 19
+ False
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ Installation parameters
+
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+ 10
+ 5
+
+
+ True
+ False
+ gtk-missing-image
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ OS only
+ 0
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Installing only OS components without user data
+ 0
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ Attention! The UBLinux OS will be installed on the selected partition with Linux OS already installed. All user data will be saved.
+ True
+ 0
+ 0
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Select device:
+ 0
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ True
+ image4
+
+
+
+ False
+ True
+ end
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ in
+ 128
+
+
+ True
+ True
+ DevicesList
+ 0
+
+
+
+
+
+ Device
+
+
+
+
+
+
+
+ Mark
+
+
+
+
+
+
+
+ Capacity
+
+
+
+
+
+
+
+ Location
+
+
+
+
+
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+
+
+ True
+ False
+ Choose a section:
+ 0
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ in
+ 128
+
+
+ True
+ True
+ PartitionsList
+
+
+
+
+
+ Section
+
+
+
+
+
+
+
+ Capacity
+
+
+
+
+
+
+
+ Free space
+
+
+
+
+
+
+
+ System
+
+
+
+
+
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ 20
+
+
+
+
+ True
+ False
+ OS only
+
+
+ 20
+ False
+
+
+
+
+
+ True
+ True
+ 0
+
+
+
+
+ True
+ False
+ center
+ 5
+
+
+ Cancel
+ True
+ True
+ image7
+
+
+ False
+ True
+ 0
+
+
+
+
+ Back
+ True
+ False
+ True
+ True
+ image8
+
+
+ False
+ True
+ 1
+
+
+
+
+ Next
+ True
+ True
+ True
+ image9
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ end
+ 1
+
+
+
+
+ True
+ False
+ vertical
+ 5
+
+
+ False
+ vertical
+ 5
+
+
+ True
+ False
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+
+
+ False
+ True
+ 0
+
+
+
+
+ button
+ True
+ True
+
+
+ False
+ True
+ end
+ 1
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ False
+ vertical
+ 5
+
+
+ True
+ False
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+
+
+ False
+ True
+ 0
+
+
+
+
+ button
+ True
+ True
+
+
+ False
+ True
+ end
+ 1
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+
+
+
+
+
diff --git a/ubinstall-gtk.pot b/ubinstall-gtk.pot
new file mode 100644
index 0000000..5854fae
--- /dev/null
+++ b/ubinstall-gtk.pot
@@ -0,0 +1,4767 @@
+# Language translations for ubl-settings-keyboard package.
+# Copyright (C) 2022, UBTech LLC
+# This file is distributed under the same license as the ubl-settings-keyboard package.
+# UBLinux Team , 2022
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ubl-settings-keyboard 1.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-05-22 16:12+0600\n"
+"PO-Revision-Date: \n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: \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 " version:"
+msgstr ""
+
+#: 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
+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:2
+msgid "Reset application settings"
+msgstr ""
+
+#: source/ubl-strings.h:4
+msgid "ubinstall"
+msgstr ""
+
+#: source/ubl-strings.h:6
+msgid "Welcome to UBLinux installation"
+msgstr ""
+
+#: source/ubl-strings.h:7
+msgid ""
+"This program will ask you few questions\n"
+"and help you install UBLinux on your computer"
+msgstr ""
+
+#: source/ubl-strings.h:9
+msgid "Keyboard layout"
+msgstr ""
+
+#: source/ubl-strings.h:11
+msgid "Cancel"
+msgstr ""
+
+#: source/ubl-strings.h:12
+msgid "Back"
+msgstr ""
+
+#: source/ubl-strings.h:13
+msgid "Next"
+msgstr ""
+
+#: source/ubl-strings.h:14
+msgid "Welcome"
+msgstr ""
+
+#: source/ubl-strings.h:15
+msgid ""
+"Licence\n"
+"agreement"
+msgstr ""
+
+#: source/ubl-strings.h:16
+msgid "Sections"
+msgstr ""
+
+#: source/ubl-strings.h:17
+msgid "Installation"
+msgstr ""
+
+#: source/ubl-strings.h:18 source/ubl-strings.h:33
+msgid "Location"
+msgstr ""
+
+#: source/ubl-strings.h:19
+msgid "Keyboard"
+msgstr ""
+
+#: source/ubl-strings.h:20
+msgid "Users"
+msgstr ""
+
+#: source/ubl-strings.h:21 source/ubl-strings.h:51
+msgid "Completion"
+msgstr ""
+
+#: source/ubl-strings.h:22
+msgid ""
+"Deleting all data on the selected disk and then installing the UBLinux system"
+msgstr ""
+
+#: source/ubl-strings.h:23
+msgid "Installation next to another system"
+msgstr ""
+
+#: source/ubl-strings.h:24
+msgid "Shrinking a partition and creating a new one for installing UBLinux"
+msgstr ""
+
+#: source/ubl-strings.h:25
+msgid "Installation on the same partition as another system"
+msgstr ""
+
+#: source/ubl-strings.h:26
+msgid "Unpacking the UBLinux file system into an existing system"
+msgstr ""
+
+#: source/ubl-strings.h:27
+msgid ""
+"Selecting additional software to install from the repository via the Internet"
+msgstr ""
+
+#: source/ubl-strings.h:28
+msgid "Chosen"
+msgstr ""
+
+#: source/ubl-strings.h:29
+msgid "Module name"
+msgstr ""
+
+#: source/ubl-strings.h:30
+msgid "Tag"
+msgstr ""
+
+#: source/ubl-strings.h:31
+msgid "Description"
+msgstr ""
+
+#: source/ubl-strings.h:32 source/ubl-strings.h:52
+msgid "Installation completion"
+msgstr ""
+
+#: source/ubl-strings.h:34
+msgid "Region:"
+msgstr ""
+
+#: source/ubl-strings.h:35
+msgid "Zone:"
+msgstr ""
+
+#: source/ubl-strings.h:36
+msgid "Language:"
+msgstr ""
+
+#: source/ubl-strings.h:37
+msgid "Keyboard model:"
+msgstr ""
+
+#: source/ubl-strings.h:38
+msgid "Layout changing:"
+msgstr ""
+
+#: source/ubl-strings.h:39
+msgid "Default layout (ru)"
+msgstr ""
+
+#: source/ubl-strings.h:40
+msgid "Define"
+msgstr ""
+
+#: source/ubl-strings.h:41
+msgid "Your account name:"
+msgstr ""
+
+#: source/ubl-strings.h:42
+msgid "Login:"
+msgstr ""
+
+#: source/ubl-strings.h:43
+msgid "Password"
+msgstr ""
+
+#: source/ubl-strings.h:44
+msgid "Default"
+msgstr ""
+
+#: source/ubl-strings.h:45
+msgid "Set a password"
+msgstr ""
+
+#: source/ubl-strings.h:46
+msgid "Do no set a password"
+msgstr ""
+
+#: source/ubl-strings.h:47
+msgid "Automatic login without password prompt"
+msgstr ""
+
+#: source/ubl-strings.h:48
+msgid "Administrator password (root):"
+msgstr ""
+
+#: source/ubl-strings.h:49
+msgid "Computer name:"
+msgstr ""
+
+#: source/ubl-strings.h:50
+msgid "User"
+msgstr ""
+
+#: source/ubl-strings.h:53
+msgid "Select device:"
+msgstr ""
+
+#: source/ubl-strings.h:54
+msgid "Choose a section:"
+msgstr ""
+
+#: source/ubl-strings.h:55
+msgid ""
+"Attention! The selected partition will be modified: the size will be "
+"reduced. In the resulting free space, a partition will be created into which "
+"the UBLinux OS will be\n"
+"installed."
+msgstr ""
+
+#: source/ubl-strings.h:56
+msgid "Device"
+msgstr ""
+
+#: source/ubl-strings.h:57
+msgid "Mark"
+msgstr ""
+
+#: source/ubl-strings.h:58
+msgid "Size"
+msgstr ""
+
+#: source/ubl-strings.h:59
+msgid "Free"
+msgstr ""
+
+#: source/ubl-strings.h:60
+msgid "Specify the size of the new partition for UBLinux OS:"
+msgstr ""
+
+#: source/ubl-strings.h:61
+msgid "Tb"
+msgstr ""
+
+#: source/ubl-strings.h:62
+msgid "Gb"
+msgstr ""
+
+#: source/ubl-strings.h:63
+msgid "Mb"
+msgstr ""
+
+#: source/ubl-strings.h:64
+msgid "Available languages in the system:"
+msgstr ""
+
+#: source/ubl-strings.h:66
+msgid "No device were chosen"
+msgstr ""
+
+#: source/ubl-strings.h:68
+msgid "Installation parameters"
+msgstr ""
+
+#: source/ubl-strings.h:71 source/ubl-strings.h:93
+msgid "Keyboard layout language"
+msgstr ""
+
+#: source/ubl-strings.h:73
+msgid "Region were not fullified"
+msgstr ""
+
+#: source/ubl-strings.h:74
+msgid "Zone were not fullified"
+msgstr ""
+
+#: source/ubl-strings.h:75
+msgid "Languages list is empty"
+msgstr ""
+
+#: source/ubl-strings.h:76
+msgid "System locale hasn't been chosen"
+msgstr ""
+
+#: source/ubl-strings.h:77
+msgid "Manual layouts has been chosen but empty"
+msgstr ""
+
+#: source/ubl-strings.h:79
+msgid "Password input"
+msgstr ""
+
+#: source/ubl-strings.h:80
+msgid "Password mismatch"
+msgstr ""
+
+#: source/ubl-strings.h:81
+msgid "Empty important field"
+msgstr ""
+
+#: source/ubl-strings.h:82
+msgid "Password must be at least"
+msgstr ""
+
+#: source/ubl-strings.h:82
+msgid "characters"
+msgstr ""
+
+#: source/ubl-strings.h:84
+msgid "Restart PC"
+msgstr ""
+
+#: source/ubl-strings.h:85
+msgid "Exit"
+msgstr ""
+
+#: source/ubl-strings.h:86
+msgid "Choose file system type for the section:"
+msgstr ""
+
+#: source/ubl-strings.h:87
+msgid "Section name:"
+msgstr ""
+
+#: source/ubl-strings.h:88
+msgid "Format"
+msgstr ""
+
+#: source/ubl-strings.h:90
+msgid ""
+"You have UBLinux installed on your computer.\n"
+"You can reboot and use your new system\n"
+"or continue working in the UBLinux Live environment."
+msgstr ""
+
+#: source/ubl-strings.h:92
+msgid "Available languages in the system"
+msgstr ""
+
+#: source/ubl-strings.h:94
+msgid "Apply"
+msgstr ""
+
+#: source/ubl-strings.h:95
+msgid "Success"
+msgstr ""
+
+#: source/ubl-strings.h:96
+msgid "Layout"
+msgstr ""
+
+#: source/ubl-strings.h:97
+msgid "Designation"
+msgstr ""
+
+#: source/ubl-strings.h:98
+msgid "Serial"
+msgstr ""
+
+#: source/ubl-strings.h:99
+msgid "Section"
+msgstr ""
+
+#: source/ubl-strings.h:100
+msgid "Capacity"
+msgstr ""
+
+#: source/ubl-strings.h:101
+msgid "Free space"
+msgstr ""
+
+#: source/ubl-strings.h:102
+msgid "File system"
+msgstr ""
+
+#: source/ubl-strings.h:103
+msgid "Default (L_Alt + L_Shift)"
+msgstr ""
+
+#: source/ubl-strings.h:104
+msgid "Default (Regular 105-key)"
+msgstr ""
+
+#: source/ubl-strings.h:102
+msgid "Installation configuration has ended"
+msgstr ""
+
+#: source/ubl-strings.h:102
+msgid "UBLinux OS installation is about to begin"
+msgstr ""
+
+
+msgid "Afrikaans"
+msgstr ""
+
+msgid "Arabic"
+msgstr ""
+
+msgid "Assamese"
+msgstr ""
+
+msgid "Azerbaijani"
+msgstr ""
+
+msgid "Belarusian"
+msgstr ""
+
+msgid "Bulgarian"
+msgstr ""
+
+msgid "Bengali"
+msgstr ""
+
+msgid "Bosnian"
+msgstr ""
+
+msgid "Catalan"
+msgstr ""
+
+msgid "Czech"
+msgstr ""
+
+msgid "Danish"
+msgstr ""
+
+msgid "German"
+msgstr ""
+
+msgid "Greek"
+msgstr ""
+
+msgid "English"
+msgstr ""
+
+msgid "Spanish"
+msgstr ""
+
+msgid "Estonian"
+msgstr ""
+
+msgid "Finnish"
+msgstr ""
+
+msgid "French"
+msgstr ""
+
+msgid "Gujarati"
+msgstr ""
+
+msgid "Hebrew"
+msgstr ""
+
+msgid "Hindi"
+msgstr ""
+
+msgid "Croatian"
+msgstr ""
+
+msgid "Hungarian"
+msgstr ""
+
+msgid "Armenian"
+msgstr ""
+
+msgid "Indonesian"
+msgstr ""
+
+msgid "Icelandic"
+msgstr ""
+
+msgid "Italian"
+msgstr ""
+
+msgid "Japanese"
+msgstr ""
+
+msgid "Georgian"
+msgstr ""
+
+msgid "Kazakh"
+msgstr ""
+
+msgid "Kannada"
+msgstr ""
+
+msgid "Korean"
+msgstr ""
+
+msgid "Kashmiri"
+msgstr ""
+
+msgid "Kurdish"
+msgstr ""
+
+msgid "Kirghiz"
+msgstr ""
+
+msgid "Lithuanian"
+msgstr ""
+
+msgid "Latvian"
+msgstr ""
+
+msgid "Macedonian"
+msgstr ""
+
+msgid "Malayalam"
+msgstr ""
+
+msgid "Marathi"
+msgstr ""
+
+msgid "Malay"
+msgstr ""
+
+msgid "Maltese"
+msgstr ""
+
+msgid "Bokmal"
+msgstr ""
+
+msgid "Dutch"
+msgstr ""
+
+msgid "Nynorsk"
+msgstr ""
+
+msgid "Oriya"
+msgstr ""
+
+msgid "Punjabi"
+msgstr ""
+
+msgid "Polish"
+msgstr ""
+
+msgid "Portuguese"
+msgstr ""
+
+msgid "Romanian"
+msgstr ""
+
+msgid "Russian"
+msgstr ""
+
+msgid "Sanskrit"
+msgstr ""
+
+msgid "Slovak"
+msgstr ""
+
+msgid "Slovenian"
+msgstr ""
+
+msgid "Albanian"
+msgstr ""
+
+msgid "Serbian"
+msgstr ""
+
+msgid "Swedish"
+msgstr ""
+
+msgid "Tamil"
+msgstr ""
+
+msgid "Telugu"
+msgstr ""
+
+msgid "Thai"
+msgstr ""
+
+msgid "Turkish"
+msgstr ""
+
+msgid "Ukrainian"
+msgstr ""
+
+msgid "American"
+msgstr ""
+
+msgid "Vietnamese"
+msgstr ""
+
+msgid "Simplified Chinese"
+msgstr ""
+
+msgid "Traditional Chinese"
+msgstr ""
+
+msgid "Chinese"
+msgstr ""
+
+msgid "Generic 86-key PC"
+msgstr ""
+
+msgid "Generic 101-key PC"
+msgstr ""
+
+msgid "Generic 102-key PC"
+msgstr ""
+
+msgid "Generic 104-key PC"
+msgstr ""
+
+msgid "Generic 104-key PC with L-shaped Enter key"
+msgstr ""
+
+msgid "Generic 105-key PC"
+msgstr ""
+
+msgid "Dell 101-key PC"
+msgstr ""
+
+
+
+msgid "Abidjan"
+msgstr ""
+
+msgid "Accra"
+msgstr ""
+
+msgid "Acre"
+msgstr ""
+
+msgid "Adak"
+msgstr ""
+
+msgid "Addis_Ababa"
+msgstr ""
+
+msgid "Adelaide"
+msgstr ""
+
+msgid "Aden"
+msgstr ""
+
+msgid "Africa"
+msgstr ""
+
+msgid "Alaska"
+msgstr ""
+
+msgid "Aleutian"
+msgstr ""
+
+msgid "Algiers"
+msgstr ""
+
+msgid "Almaty"
+msgstr ""
+
+msgid "America"
+msgstr ""
+
+msgid "Amman"
+msgstr ""
+
+msgid "Amsterdam"
+msgstr ""
+
+msgid "Anadyr"
+msgstr ""
+
+msgid "Anchorage"
+msgstr ""
+
+msgid "Andorra"
+msgstr ""
+
+msgid "Anguilla"
+msgstr ""
+
+msgid "Antananarivo"
+msgstr ""
+
+msgid "Antarctica"
+msgstr ""
+
+msgid "Antigua"
+msgstr ""
+
+msgid "Apia"
+msgstr ""
+
+msgid "Aqtau"
+msgstr ""
+
+msgid "Aqtobe"
+msgstr ""
+
+msgid "Araguaina"
+msgstr ""
+
+msgid "Arctic"
+msgstr ""
+
+msgid "Arizona"
+msgstr ""
+
+msgid "Aruba"
+msgstr ""
+
+msgid "Ashgabat"
+msgstr ""
+
+msgid "Ashkhabad"
+msgstr ""
+
+msgid "Asia"
+msgstr ""
+
+msgid "Asmara"
+msgstr ""
+
+msgid "Asmera"
+msgstr ""
+
+msgid "Astrakhan"
+msgstr ""
+
+msgid "Asuncion"
+msgstr ""
+
+msgid "Athens"
+msgstr ""
+
+msgid "Atikokan"
+msgstr ""
+
+msgid "Atka"
+msgstr ""
+
+msgid "Atlantic"
+msgstr ""
+
+msgid "Atyrau"
+msgstr ""
+
+msgid "Auckland"
+msgstr ""
+
+msgid "Australia"
+msgstr ""
+
+msgid "Azores"
+msgstr ""
+
+msgid "Baghdad"
+msgstr ""
+
+msgid "Bahia"
+msgstr ""
+
+msgid "Bahia_Banderas"
+msgstr ""
+
+msgid "Bahrain"
+msgstr ""
+
+msgid "BajaNorte"
+msgstr ""
+
+msgid "BajaSur"
+msgstr ""
+
+msgid "Baku"
+msgstr ""
+
+msgid "Bamako"
+msgstr ""
+
+msgid "Bangkok"
+msgstr ""
+
+msgid "Bangui"
+msgstr ""
+
+msgid "Banjul"
+msgstr ""
+
+msgid "Barbados"
+msgstr ""
+
+msgid "Barnaul"
+msgstr ""
+
+msgid "Beirut"
+msgstr ""
+
+msgid "Belem"
+msgstr ""
+
+msgid "Belfast"
+msgstr ""
+
+msgid "Belgrade"
+msgstr ""
+
+msgid "Belize"
+msgstr ""
+
+msgid "Berlin"
+msgstr ""
+
+msgid "Bermuda"
+msgstr ""
+
+msgid "Beulah"
+msgstr ""
+
+msgid "Bishkek"
+msgstr ""
+
+msgid "Bissau"
+msgstr ""
+
+msgid "Blanc-Sablon"
+msgstr ""
+
+msgid "Blantyre"
+msgstr ""
+
+msgid "Boa_Vista"
+msgstr ""
+
+msgid "Bogota"
+msgstr ""
+
+msgid "Boise"
+msgstr ""
+
+msgid "Bougainville"
+msgstr ""
+
+msgid "Bratislava"
+msgstr ""
+
+msgid "Brazil"
+msgstr ""
+
+msgid "Brazzaville"
+msgstr ""
+
+msgid "Brisbane"
+msgstr ""
+
+msgid "Broken_Hill"
+msgstr ""
+
+msgid "Brunei"
+msgstr ""
+
+msgid "Brussels"
+msgstr ""
+
+msgid "Bucharest"
+msgstr ""
+
+msgid "Budapest"
+msgstr ""
+
+msgid "Buenos_Aires"
+msgstr ""
+
+msgid "Bujumbura"
+msgstr ""
+
+msgid "Busingen"
+msgstr ""
+
+msgid "Cairo"
+msgstr ""
+
+msgid "Calcutta"
+msgstr ""
+
+msgid "Cambridge_Bay"
+msgstr ""
+
+msgid "Campo_Grande"
+msgstr ""
+
+msgid "Canada"
+msgstr ""
+
+msgid "Canary"
+msgstr ""
+
+msgid "Canberra"
+msgstr ""
+
+msgid "Cancun"
+msgstr ""
+
+msgid "Cape_Vepde"
+msgstr ""
+
+msgid "Cape_Verde"
+msgstr ""
+
+msgid "Caracas"
+msgstr ""
+
+msgid "Casablanca"
+msgstr ""
+
+msgid "Casey"
+msgstr ""
+
+msgid "Catamarca"
+msgstr ""
+
+msgid "Cayenne"
+msgstr ""
+
+msgid "Cayman"
+msgstr ""
+
+msgid "Center"
+msgstr ""
+
+msgid "Central"
+msgstr ""
+
+msgid "Ceuta"
+msgstr ""
+
+msgid "Chagos"
+msgstr ""
+
+msgid "Chatham"
+msgstr ""
+
+msgid "Chicago"
+msgstr ""
+
+msgid "Chihuahua"
+msgstr ""
+
+msgid "Chile"
+msgstr ""
+
+msgid "Chisinau"
+msgstr ""
+
+msgid "Chita"
+msgstr ""
+
+msgid "Choibalsan"
+msgstr ""
+
+msgid "Chongqing"
+msgstr ""
+
+msgid "Christmas"
+msgstr ""
+
+msgid "Chungking"
+msgstr ""
+
+msgid "Chuuk"
+msgstr ""
+
+msgid "Ciudad_Juarez"
+msgstr ""
+
+msgid "Clock"
+msgstr ""
+
+msgid "Close"
+msgstr ""
+
+msgid "Cocos"
+msgstr ""
+
+msgid "Colombo"
+msgstr ""
+
+msgid "ComodRivadavia"
+msgstr ""
+
+msgid "Comoro"
+msgstr ""
+
+msgid "Conakry"
+msgstr ""
+
+msgid "Continental"
+msgstr ""
+
+msgid "Copenhagen"
+msgstr ""
+
+msgid "Coral_Harbour"
+msgstr ""
+
+msgid "Cordoba"
+msgstr ""
+
+msgid "Costa_Rica"
+msgstr ""
+
+msgid "Creston"
+msgstr ""
+
+msgid "Cuiaba"
+msgstr ""
+
+msgid "Curacao"
+msgstr ""
+
+msgid "Currie"
+msgstr ""
+
+msgid "Dacca"
+msgstr ""
+
+msgid "Dakar"
+msgstr ""
+
+msgid "Damascus"
+msgstr ""
+
+msgid "Danmarkshavn"
+msgstr ""
+
+msgid "Dar_es_Salaam"
+msgstr ""
+
+msgid "Darwin"
+msgstr ""
+
+msgid "Davis"
+msgstr ""
+
+msgid "Dawson"
+msgstr ""
+
+msgid "Dawson_Creek"
+msgstr ""
+
+msgid "DeNoronha"
+msgstr ""
+
+
+msgid "Denver"
+msgstr ""
+
+msgid "Detroit"
+msgstr ""
+
+msgid "Dhaka"
+msgstr ""
+
+msgid "Dili"
+msgstr ""
+
+msgid "Djibouti"
+msgstr ""
+
+msgid "Dominica"
+msgstr ""
+
+msgid "Douala"
+msgstr ""
+
+msgid "Dubai"
+msgstr ""
+
+msgid "Dublin"
+msgstr ""
+
+msgid "DumontDUrville"
+msgstr ""
+
+msgid "Dushanbe"
+msgstr ""
+
+msgid "ERROR"
+msgstr ""
+
+msgid "East"
+msgstr ""
+
+msgid "East-Indiana"
+msgstr ""
+
+msgid "Easter"
+msgstr ""
+
+msgid "EasterIsland"
+msgstr ""
+
+msgid "Easterlsland"
+msgstr ""
+
+msgid "Eastern"
+msgstr ""
+
+msgid "Edmonton"
+msgstr ""
+
+msgid "Efate"
+msgstr ""
+
+msgid "Eirunepe"
+msgstr ""
+
+msgid "El_Aaiun"
+msgstr ""
+
+msgid "El_Salvador"
+msgstr ""
+
+msgid "Enderbury"
+msgstr ""
+
+msgid "Ensenada"
+msgstr ""
+
+msgid "Eucla"
+msgstr ""
+
+msgid "Europe"
+msgstr ""
+
+msgid "Faeroe"
+msgstr ""
+
+msgid "Fakaofo"
+msgstr ""
+
+msgid "Famagusta"
+msgstr ""
+
+msgid "Faroe"
+msgstr ""
+
+msgid "Fiji"
+msgstr ""
+
+msgid "Fort_Nelson"
+msgstr ""
+
+msgid "Fort_Wayne"
+msgstr ""
+
+msgid "Fortaleza"
+msgstr ""
+
+msgid "Freetown"
+msgstr ""
+
+msgid "Funafuti"
+msgstr ""
+
+msgid "GMT-1"
+msgstr ""
+
+msgid "GMT-3"
+msgstr ""
+
+msgid "Gaborone"
+msgstr ""
+
+msgid "Galapagos"
+msgstr ""
+
+msgid "Gambier"
+msgstr ""
+
+msgid "Gaza"
+msgstr ""
+
+msgid "General"
+msgstr ""
+
+msgid "Gibraltar"
+msgstr ""
+
+msgid "Glace_Bay"
+msgstr ""
+
+msgid "Godthab"
+msgstr ""
+
+msgid "Goose_Bay"
+msgstr ""
+
+msgid "Grand_Turk"
+msgstr ""
+
+msgid "Greenwich"
+msgstr ""
+
+msgid "Grenada"
+msgstr ""
+
+msgid "Guadalcanal"
+msgstr ""
+
+msgid "Guadeloupe"
+msgstr ""
+
+msgid "Guam"
+msgstr ""
+
+msgid "Guatemala"
+msgstr ""
+
+msgid "Guayaquil"
+msgstr ""
+
+msgid "Guernsey"
+msgstr ""
+
+msgid "Guyana"
+msgstr ""
+
+msgid "Halifax"
+msgstr ""
+
+msgid "Harare"
+msgstr ""
+
+msgid "Harbin"
+msgstr ""
+
+msgid "Havana"
+msgstr ""
+
+msgid "Hawaii"
+msgstr ""
+
+msgid "Hebron"
+msgstr ""
+
+msgid "Helsinki"
+msgstr ""
+
+msgid "Hermosillo"
+msgstr ""
+
+msgid "Ho_Chi_Minh"
+msgstr ""
+
+msgid "Hobart"
+msgstr ""
+
+msgid "Hong_Kong"
+msgstr ""
+
+msgid "Honolulu"
+msgstr ""
+
+msgid "Hovd"
+msgstr ""
+
+msgid "Indian"
+msgstr ""
+
+msgid "Indiana"
+msgstr ""
+
+msgid "Indiana-Starke"
+msgstr ""
+
+msgid "Indianapolis"
+msgstr ""
+
+
+msgid "Inuvik"
+msgstr ""
+
+msgid "Iqaluit"
+msgstr ""
+
+msgid "Irkutsk"
+msgstr ""
+
+msgid "Isle_of_Man"
+msgstr ""
+
+msgid "Istanbul"
+msgstr ""
+
+msgid "Jakarta"
+msgstr ""
+
+msgid "Jamaica"
+msgstr ""
+
+msgid "Jan_Mayen"
+msgstr ""
+
+msgid "Jayapura"
+msgstr ""
+
+msgid "Jersey"
+msgstr ""
+
+msgid "Jerusalem"
+msgstr ""
+
+msgid "Johannesburg"
+msgstr ""
+
+msgid "Johnston"
+msgstr ""
+
+msgid "Juba"
+msgstr ""
+
+msgid "Jujuy"
+msgstr ""
+
+msgid "Juneau"
+msgstr ""
+
+msgid "Kabul"
+msgstr ""
+
+msgid "Kaliningrad"
+msgstr ""
+
+msgid "Kamchatka"
+msgstr ""
+
+msgid "Kampala"
+msgstr ""
+
+msgid "Kanton"
+msgstr ""
+
+msgid "Karachi"
+msgstr ""
+
+msgid "Kashgar"
+msgstr ""
+
+msgid "Kathmandu"
+msgstr ""
+
+msgid "Katmandu"
+msgstr ""
+
+msgid "Kerguelen"
+msgstr ""
+
+msgid "Khandyga"
+msgstr ""
+
+msgid "Khartoum"
+msgstr ""
+
+msgid "Kiev"
+msgstr ""
+
+msgid "Kigali"
+msgstr ""
+
+msgid "Kinshasa"
+msgstr ""
+
+msgid "Kiritimati"
+msgstr ""
+
+msgid "Kirov"
+msgstr ""
+
+msgid "Knox"
+msgstr ""
+
+msgid "Knox_IN"
+msgstr ""
+
+msgid "Kolkata"
+msgstr ""
+
+msgid "Kralendijk"
+msgstr ""
+
+msgid "Krasnoyarsk"
+msgstr ""
+
+msgid "Kuala_Lumpur"
+msgstr ""
+
+msgid "Kuching"
+msgstr ""
+
+msgid "Kuwait"
+msgstr ""
+
+msgid "Kwajalein"
+msgstr ""
+
+msgid "Kyiv"
+msgstr ""
+
+msgid "LHI"
+msgstr ""
+
+msgid "La_Paz"
+msgstr ""
+
+msgid "La_Rioja"
+msgstr ""
+
+msgid "Lagos"
+msgstr ""
+
+msgid "Libreville"
+msgstr ""
+
+msgid "Lima"
+msgstr ""
+
+msgid "Lindeman"
+msgstr ""
+
+msgid "Lisbon"
+msgstr ""
+
+msgid "Ljubljana"
+msgstr ""
+
+msgid "Lome"
+msgstr ""
+
+msgid "London"
+msgstr ""
+
+msgid "Longyearbyen"
+msgstr ""
+
+msgid "Lord_Howe"
+msgstr ""
+
+msgid "Los_Angeles"
+msgstr ""
+
+msgid "Louisville"
+msgstr ""
+
+msgid "Lower_Princes"
+msgstr ""
+
+msgid "Luanda"
+msgstr ""
+
+msgid "Lubumbashi"
+msgstr ""
+
+msgid "Lusaka"
+msgstr ""
+
+msgid "Luxembourg"
+msgstr ""
+
+msgid "Macao"
+msgstr ""
+
+msgid "Macau"
+msgstr ""
+
+msgid "Maceio"
+msgstr ""
+
+msgid "Macquarie"
+msgstr ""
+
+msgid "Madeira"
+msgstr ""
+
+msgid "Madrid"
+msgstr ""
+
+msgid "Magadan"
+msgstr ""
+
+msgid "Mahe"
+msgstr ""
+
+msgid "Majuro"
+msgstr ""
+
+msgid "Makassar"
+msgstr ""
+
+msgid "Malabo"
+msgstr ""
+
+msgid "Maldives"
+msgstr ""
+
+msgid "Malta"
+msgstr ""
+
+msgid "Managua"
+msgstr ""
+
+msgid "Manaus"
+msgstr ""
+
+msgid "Manila"
+msgstr ""
+
+msgid "Maputo"
+msgstr ""
+
+msgid "Marengo"
+msgstr ""
+
+msgid "Mariehamn"
+msgstr ""
+
+msgid "Marigot"
+msgstr ""
+
+msgid "Marquesas"
+msgstr ""
+
+msgid "Martinique"
+msgstr ""
+
+msgid "Maseru"
+msgstr ""
+
+msgid "Matamoros"
+msgstr ""
+
+msgid "Mauritius"
+msgstr ""
+
+msgid "Mawson"
+msgstr ""
+
+msgid "Mayotte"
+msgstr ""
+
+msgid "Mazatlan"
+msgstr ""
+
+msgid "Mbabane"
+msgstr ""
+
+msgid "McMurdo"
+msgstr ""
+
+msgid "Melbourne"
+msgstr ""
+
+msgid "Mendoza"
+msgstr ""
+
+msgid "Menominee"
+msgstr ""
+
+msgid "Merida"
+msgstr ""
+
+msgid "Metlakatla"
+msgstr ""
+
+msgid "Mexico"
+msgstr ""
+
+msgid "Mexico_City"
+msgstr ""
+
+msgid "Michigan"
+msgstr ""
+
+msgid "Midway"
+msgstr ""
+
+msgid "Minsk"
+msgstr ""
+
+msgid "Minutes"
+msgstr ""
+
+msgid "Miquelon"
+msgstr ""
+
+msgid "Mogadishu"
+msgstr ""
+
+msgid "Monaco"
+msgstr ""
+
+msgid "Moncton"
+msgstr ""
+
+msgid "Monrovia"
+msgstr ""
+
+msgid "Monterrey"
+msgstr ""
+
+msgid "Montevideo"
+msgstr ""
+
+msgid "Monticello"
+msgstr ""
+
+msgid "Montreal"
+msgstr ""
+
+msgid "Montserrat"
+msgstr ""
+
+msgid "Moscow"
+msgstr ""
+
+msgid "Mountain"
+msgstr ""
+
+msgid "Muscat"
+msgstr ""
+
+msgid "NSW"
+msgstr ""
+
+msgid "Nairobi"
+msgstr ""
+
+msgid "Nassau"
+msgstr ""
+
+msgid "Nauru"
+msgstr ""
+
+msgid "Ndjamena"
+msgstr ""
+
+msgid "New_Salem"
+msgstr ""
+
+msgid "New_York"
+msgstr ""
+
+msgid "Newfoundland"
+msgstr ""
+
+msgid "Niamey"
+msgstr ""
+
+msgid "Nicosia"
+msgstr ""
+
+msgid "Nipigon"
+msgstr ""
+
+msgid "Niue"
+msgstr ""
+
+msgid "Nome"
+msgstr ""
+
+msgid "Norfolk"
+msgstr ""
+
+msgid "Noronha"
+msgstr ""
+
+msgid "North"
+msgstr ""
+
+msgid "North_Dokota"
+msgstr ""
+
+msgid "Nouakchott"
+msgstr ""
+
+msgid "Noumea"
+msgstr ""
+
+msgid "Novokuznetsk"
+msgstr ""
+
+msgid "Novosibirsk"
+msgstr ""
+
+msgid "Nuuk"
+msgstr ""
+
+msgid "OK"
+msgstr ""
+
+msgid "Ojinaga"
+msgstr ""
+
+msgid "Omsk"
+msgstr ""
+
+msgid "Oral"
+msgstr ""
+
+msgid "Oslo"
+msgstr ""
+
+msgid "Ouagadougou"
+msgstr ""
+
+msgid "Pacific"
+msgstr ""
+
+msgid "Pago_Pago"
+msgstr ""
+
+msgid "Palau"
+msgstr ""
+
+msgid "Palmer"
+msgstr ""
+
+msgid "Panama"
+msgstr ""
+
+msgid "Pangnirtung"
+msgstr ""
+
+msgid "Paramaribo"
+msgstr ""
+
+msgid "Paris"
+msgstr ""
+
+msgid "Perth"
+msgstr ""
+
+msgid "Petersburg"
+msgstr ""
+
+msgid "Phnom_Penh"
+msgstr ""
+
+msgid "Phoenix"
+msgstr ""
+
+msgid "Pitcairn"
+msgstr ""
+
+msgid "Podgorica"
+msgstr ""
+
+msgid "Pohnpei"
+msgstr ""
+
+msgid "Ponape"
+msgstr ""
+
+msgid "Pontianak"
+msgstr ""
+
+msgid "Port-au-Prince"
+msgstr ""
+
+msgid "Port_Moresby"
+msgstr ""
+
+msgid "Port_of_Spain"
+msgstr ""
+
+msgid "Porto-Novo"
+msgstr ""
+
+msgid "Porto_Acre"
+msgstr ""
+
+msgid "Porto_Velho"
+msgstr ""
+
+msgid "Prague"
+msgstr ""
+
+msgid "Puerto_Rico"
+msgstr ""
+
+msgid "Punta_Arenas"
+msgstr ""
+
+msgid "Pyongyang"
+msgstr ""
+
+msgid "Qatar"
+msgstr ""
+
+msgid "Qostanay"
+msgstr ""
+
+msgid "Queensland"
+msgstr ""
+
+msgid "Qyzylorda"
+msgstr ""
+
+msgid "Rainy_River"
+msgstr ""
+
+msgid "Rangoon"
+msgstr ""
+
+msgid "Rankin_Inlet"
+msgstr ""
+
+msgid "Rarotonga"
+msgstr ""
+
+msgid "Recife"
+msgstr ""
+
+msgid "Regina"
+msgstr ""
+
+msgid "Resolute"
+msgstr ""
+
+msgid "Reunion"
+msgstr ""
+
+msgid "Reykjavik"
+msgstr ""
+
+msgid "Riga"
+msgstr ""
+
+msgid "Rio_Branco"
+msgstr ""
+
+msgid "Rio_Gallegos"
+msgstr ""
+
+msgid "Riyadh"
+msgstr ""
+
+msgid "Rome"
+msgstr ""
+
+msgid "Rosario"
+msgstr ""
+
+msgid "Rothera"
+msgstr ""
+
+msgid "Saigon"
+msgstr ""
+
+msgid "Saipan"
+msgstr ""
+
+msgid "Sakhalin"
+msgstr ""
+
+msgid "Salta"
+msgstr ""
+
+msgid "Samara"
+msgstr ""
+
+msgid "Samarkand"
+msgstr ""
+
+msgid "Samoa"
+msgstr ""
+
+msgid "San_Juan"
+msgstr ""
+
+msgid "San_Luis"
+msgstr ""
+
+msgid "San_Marino"
+msgstr ""
+
+msgid "Santa_Isabel"
+msgstr ""
+
+msgid "Santarem"
+msgstr ""
+
+msgid "Santiago"
+msgstr ""
+
+msgid "Santo_Domingo"
+msgstr ""
+
+msgid "Sao_Paulo"
+msgstr ""
+
+msgid "Sao_Tome"
+msgstr ""
+
+msgid "Sarajevo"
+msgstr ""
+
+msgid "Saratov"
+msgstr ""
+
+msgid "Saskatchewan"
+msgstr ""
+
+msgid "Scoresbysund"
+msgstr ""
+
+msgid "Seoul"
+msgstr ""
+
+msgid "Shanghai"
+msgstr ""
+
+msgid "Shiprock"
+msgstr ""
+
+msgid "Simferopol"
+msgstr ""
+
+msgid "Singapore"
+msgstr ""
+
+msgid "Sitka"
+msgstr ""
+
+msgid "Skopje"
+msgstr ""
+
+msgid "Sofia"
+msgstr ""
+
+msgid "South"
+msgstr ""
+
+msgid "South_Georgia"
+msgstr ""
+
+msgid "South_Pole"
+msgstr ""
+
+msgid "Srednekolymsk"
+msgstr ""
+
+msgid "St_Barthelemy"
+msgstr ""
+
+msgid "St_Helena"
+msgstr ""
+
+msgid "St_Johns"
+msgstr ""
+
+msgid "St_Kitts"
+msgstr ""
+
+msgid "St_Lucia"
+msgstr ""
+
+msgid "St_Thomas"
+msgstr ""
+
+msgid "St_Vincent"
+msgstr ""
+
+msgid "Stanley"
+msgstr ""
+
+msgid "Stockholm"
+msgstr ""
+
+msgid "Swift_Current"
+msgstr ""
+
+msgid "Sydney"
+msgstr ""
+
+msgid "Syowa"
+msgstr ""
+
+msgid "Tahiti"
+msgstr ""
+
+msgid "Taipei"
+msgstr ""
+
+msgid "Tallinn"
+msgstr ""
+
+msgid "Tarawa"
+msgstr ""
+
+msgid "Tashkent"
+msgstr ""
+
+msgid "Tasmania"
+msgstr ""
+
+msgid "Tbilisi"
+msgstr ""
+
+msgid "Tegucigalpa"
+msgstr ""
+
+msgid "Tehran"
+msgstr ""
+
+msgid "Tel_Aviv"
+msgstr ""
+
+msgid "Tell_City"
+msgstr ""
+
+msgid "Thimbu"
+msgstr ""
+
+msgid "Thimphu"
+msgstr ""
+
+msgid "Thule"
+msgstr ""
+
+msgid "Thunder_Bay"
+msgstr ""
+
+msgid "Tijuana"
+msgstr ""
+
+msgid "Timbuktu"
+msgstr ""
+
+msgid "Tirane"
+msgstr ""
+
+msgid "Tiraspol"
+msgstr ""
+
+msgid "Tokyo"
+msgstr ""
+
+msgid "Tomsk"
+msgstr ""
+
+msgid "Tongatapu"
+msgstr ""
+
+msgid "Toronto"
+msgstr ""
+
+msgid "Tortola"
+msgstr ""
+
+msgid "Tripoli"
+msgstr ""
+
+msgid "Troll"
+msgstr ""
+
+msgid "Truk"
+msgstr ""
+
+msgid "Tucuman"
+msgstr ""
+
+msgid "Tunis"
+msgstr ""
+
+msgid "US"
+msgstr ""
+
+msgid "Ujung_Pandang"
+msgstr ""
+
+msgid "Ulaanbaatar"
+msgstr ""
+
+msgid "Ulan_Bator"
+msgstr ""
+
+msgid "Ulyanovsk"
+msgstr ""
+
+msgid "Universal"
+msgstr ""
+
+msgid "Urumqi"
+msgstr ""
+
+msgid "Ushuaia"
+msgstr ""
+
+msgid "Ust-Nera"
+msgstr ""
+
+msgid "Uzhgorod"
+msgstr ""
+
+msgid "Vaduz"
+msgstr ""
+
+msgid "Vancouver"
+msgstr ""
+
+msgid "Vatican"
+msgstr ""
+
+msgid "Vevay"
+msgstr ""
+
+msgid "Victoria"
+msgstr ""
+
+msgid "Vienna"
+msgstr ""
+
+msgid "Vientiane"
+msgstr ""
+
+msgid "Vilnius"
+msgstr ""
+
+msgid "Vincennes"
+msgstr ""
+
+msgid "Virgin"
+msgstr ""
+
+msgid "Vladivostok"
+msgstr ""
+
+msgid "Volgograd"
+msgstr ""
+
+msgid "Vostok"
+msgstr ""
+
+msgid "Wake"
+msgstr ""
+
+msgid "Wallis"
+msgstr ""
+
+msgid "Warsaw"
+msgstr ""
+
+msgid "West"
+msgstr ""
+
+msgid "Whitehorse"
+msgstr ""
+
+msgid "Winamac"
+msgstr ""
+
+msgid "Windhoek"
+msgstr ""
+
+msgid "Winnipeg"
+msgstr ""
+
+msgid "Yakutat"
+msgstr ""
+
+msgid "Yakutsk"
+msgstr ""
+
+msgid "Yancowinna"
+msgstr ""
+
+msgid "Yangon"
+msgstr ""
+
+msgid "Yap"
+msgstr ""
+
+msgid "Yekaterinburg"
+msgstr ""
+
+msgid "Yellowknife"
+msgstr ""
+
+msgid "Yerevan"
+msgstr ""
+
+msgid "Yukon"
+msgstr ""
+
+msgid "Zagreb"
+msgstr ""
+
+msgid "Zaporozhye"
+msgstr ""
+
+msgid "Zulu"
+msgstr ""
+
+msgid "Zurich"
+msgstr ""
+
+
+msgid "Afrikaans, South Africa"
+msgstr ""
+
+msgid "Arabic, United Arab Emirates"
+msgstr ""
+
+msgid "Arabic, Bahrain"
+msgstr ""
+
+msgid "Arabic, Algeria"
+msgstr ""
+
+msgid "Arabic, Egypt"
+msgstr ""
+
+msgid "Arabic, Iraq"
+msgstr ""
+
+msgid "Arabic, Jordan"
+msgstr ""
+
+msgid "Arabic, Kuwait"
+msgstr ""
+
+msgid "Arabic, Libya"
+msgstr ""
+
+msgid "Arabic, Morocco"
+msgstr ""
+
+msgid "Arabic, Oman"
+msgstr ""
+
+msgid "Arabic, Qatar"
+msgstr ""
+
+msgid "Arabic, Saudi Arabia"
+msgstr ""
+
+msgid "Arabic, Tunisia"
+msgstr ""
+
+msgid "Arabic, Yemen"
+msgstr ""
+
+msgid "Assamese, India"
+msgstr ""
+
+msgid "Azerbaijani, Azerbaijan"
+msgstr ""
+
+msgid "Belarusian, Belarus"
+msgstr ""
+
+msgid "Bulgarian, Bulgaria"
+msgstr ""
+
+msgid "Bengali, India"
+msgstr ""
+
+msgid "Bosnian, Bosnia and Herzegovina"
+msgstr ""
+
+msgid "Catalan, Spain"
+msgstr ""
+
+msgid "Czech, Czech Republic"
+msgstr ""
+
+msgid "Danish, Denmark"
+msgstr ""
+
+msgid "German, Austria"
+msgstr ""
+
+msgid "German, Belgium"
+msgstr ""
+
+msgid "German, Switzerland"
+msgstr ""
+
+msgid "German, Germany"
+msgstr ""
+
+msgid "German, Liechtenstein"
+msgstr ""
+
+msgid "German, Luxembourg"
+msgstr ""
+
+msgid "Greek, Cyprus"
+msgstr ""
+
+msgid "Greek, Greece"
+msgstr ""
+
+msgid "English, Australia"
+msgstr ""
+
+msgid "English, Botswana"
+msgstr ""
+
+msgid "English, Canada"
+msgstr ""
+
+msgid "English, United Kingdom"
+msgstr ""
+
+msgid "English, Hong Kong SAR China"
+msgstr ""
+
+msgid "English, Ireland"
+msgstr ""
+
+msgid "English, India"
+msgstr ""
+
+msgid "English, Malta"
+msgstr ""
+
+msgid "English, New Zealand"
+msgstr ""
+
+msgid "English, Philippines"
+msgstr ""
+
+msgid "English, Singapore"
+msgstr ""
+
+msgid "English, U.S.A."
+msgstr ""
+
+msgid "English, Zimbabwe"
+msgstr ""
+
+msgid "Spanish, Argentina"
+msgstr ""
+
+msgid "Spanish, Bolivia"
+msgstr ""
+
+msgid "Spanish, Chile"
+msgstr ""
+
+msgid "Spanish, Colombia"
+msgstr ""
+
+msgid "Spanish, Costa Rica"
+msgstr ""
+
+msgid "Spanish, Dominican Republic"
+msgstr ""
+
+msgid "Spanish, Ecuador"
+msgstr ""
+
+msgid "Spanish, Spain"
+msgstr ""
+
+msgid "Spanish, Guatemala"
+msgstr ""
+
+msgid "Spanish, Honduras"
+msgstr ""
+
+msgid "Spanish, Mexico"
+msgstr ""
+
+msgid "Spanish, Nicaragua"
+msgstr ""
+
+msgid "Spanish, Panama"
+msgstr ""
+
+msgid "Spanish, Peru"
+msgstr ""
+
+msgid "Spanish, Puerto Rico"
+msgstr ""
+
+msgid "Spanish, Paraguay"
+msgstr ""
+
+msgid "Spanish, El Salvador"
+msgstr ""
+
+msgid "Spanish, U.S.A."
+msgstr ""
+
+msgid "Spanish, Uruguay"
+msgstr ""
+
+msgid "Spanish, Venezuela"
+msgstr ""
+
+msgid "Estonian, Estonia"
+msgstr ""
+
+msgid "Finnish, Finland"
+msgstr ""
+
+msgid "French, Belgium"
+msgstr ""
+
+msgid "French, Canada"
+msgstr ""
+
+msgid "French, Switzerland"
+msgstr ""
+
+msgid "French, France"
+msgstr ""
+
+msgid "French, Luxembourg"
+msgstr ""
+
+msgid "Gujarati, India"
+msgstr ""
+
+msgid "Hebrew, Israel"
+msgstr ""
+
+msgid "Hindi, India"
+msgstr ""
+
+msgid "Croatian, Croatia"
+msgstr ""
+
+msgid "Hungarian, Hungary"
+msgstr ""
+
+msgid "Armenian, Armenia"
+msgstr ""
+
+msgid "Indonesian, Indonesia"
+msgstr ""
+
+msgid "Icelandic, Iceland"
+msgstr ""
+
+msgid "Italian, Switzerland"
+msgstr ""
+
+msgid "Italian, Italy"
+msgstr ""
+
+msgid "Japanese, Japan"
+msgstr ""
+
+msgid "Georgian, Georgia"
+msgstr ""
+
+msgid "Kazakh, Kazakhstan"
+msgstr ""
+
+msgid "Kannada, India"
+msgstr ""
+
+msgid "Korean, Korea"
+msgstr ""
+
+msgid "Kashmiri, India"
+msgstr ""
+
+msgid "Kurdish, Turkey"
+msgstr ""
+
+msgid "Kurdish (Sorani), Turkey"
+msgstr ""
+
+msgid "Kirghiz, Kyrgyzstan"
+msgstr ""
+
+msgid "Lithuanian, Lithuania"
+msgstr ""
+
+msgid "Latvian, Latvia"
+msgstr ""
+
+msgid "Macedonian, Macedonia"
+msgstr ""
+
+msgid "Malayalam, India"
+msgstr ""
+
+msgid "Marathi, India"
+msgstr ""
+
+msgid "Malay, Malaysia"
+msgstr ""
+
+msgid "Maltese, Malta"
+msgstr ""
+
+msgid "Bokmal, Norway"
+msgstr ""
+
+msgid "Dutch, Belgium"
+msgstr ""
+
+msgid "Dutch, Netherlands"
+msgstr ""
+
+msgid "Nynorsk, Norway"
+msgstr ""
+
+msgid "Oriya, India"
+msgstr ""
+
+msgid "Punjabi, India"
+msgstr ""
+
+msgid "Polish, Poland"
+msgstr ""
+
+msgid "Portuguese, Brazil"
+msgstr ""
+
+msgid "Portuguese, Portugal"
+msgstr ""
+
+msgid "Romanian, Romania"
+msgstr ""
+
+msgid "Russian, Russia"
+msgstr ""
+
+msgid "Russian, Ukraine"
+msgstr ""
+
+msgid "Sanskrit, India"
+msgstr ""
+
+msgid "Slovak, Slovakia"
+msgstr ""
+
+msgid "Slovenian, Slovenia"
+msgstr ""
+
+msgid "Albanian, Albania"
+msgstr ""
+
+msgid "Serbian, Montenegro"
+msgstr ""
+
+msgid "Serbian, Montenegro (Latin)"
+msgstr ""
+
+msgid "Serbian, Serbia"
+msgstr ""
+
+msgid "Serbian, Serbia (Latin)"
+msgstr ""
+
+msgid "Swedish, Sweden"
+msgstr ""
+
+msgid "Tamil, India"
+msgstr ""
+
+msgid "Telugu, India"
+msgstr ""
+
+msgid "Thai, Thailand"
+msgstr ""
+
+msgid "Turkish, Turkey"
+msgstr ""
+
+msgid "Ukrainian, Ukraine"
+msgstr ""
+
+msgid "Vietnamese, Vietnam"
+msgstr ""
+
+msgid "Simplified Chinese, China"
+msgstr ""
+
+msgid "Traditional Chinese, Hong Kong SAR China"
+msgstr ""
+
+msgid "Chinese, Singapore"
+msgstr ""
+
+msgid "Traditional Chinese, Taiwan"
+msgstr ""
+
+msgid "Dari"
+msgstr ""
+
+msgid "Dari (Afghanistan, OLPC)"
+msgstr ""
+
+msgid "Pashto (Afghanistan, OLPC)"
+msgstr ""
+
+msgid "Pashto"
+msgstr ""
+
+msgid "Uzbek (Afghanistan, OLPC)"
+msgstr ""
+
+msgid "Uzbek (Afghanistan)"
+msgstr ""
+
+msgid "Albanian"
+msgstr ""
+
+msgid "Albanian (Plisi)"
+msgstr ""
+
+msgid "Albanian (Veqilharxhi)"
+msgstr ""
+
+msgid "Armenian"
+msgstr ""
+
+msgid "Armenian (alt. eastern)"
+msgstr ""
+
+msgid "Armenian (eastern)"
+msgstr ""
+
+msgid "Armenian (OLPC, phonetic)"
+msgstr ""
+
+msgid "Armenian (alt. phonetic)"
+msgstr ""
+
+msgid "Armenian (phonetic)"
+msgstr ""
+
+msgid "Armenian (western)"
+msgstr ""
+
+msgid "APL"
+msgstr ""
+
+msgid "APL symbols (IBM APL2)"
+msgstr ""
+
+msgid "APL symbols (Manugistics APL*PLUS II)"
+msgstr ""
+
+msgid "APL symbols (APLX unified)"
+msgstr ""
+
+msgid "APL symbols (Dyalog APL)"
+msgstr ""
+
+msgid "APL symbols (SAX, Sharp APL for Unix)"
+msgstr ""
+
+msgid "APL symbols (unified)"
+msgstr ""
+
+msgid "Arabic"
+msgstr ""
+
+msgid "Arabic (AZERTY)"
+msgstr ""
+
+msgid "Arabic (AZERTY, Eastern Arabic numerals)"
+msgstr ""
+
+msgid "Arabic (Arabic numerals, extensions in the 4th level)"
+msgstr ""
+
+msgid "Arabic (Eastern Arabic numerals, extensions in the 4th level)"
+msgstr ""
+
+msgid "Arabic (Buckwalter)"
+msgstr ""
+
+msgid "Arabic (Eastern Arabic numerals)"
+msgstr ""
+
+msgid "Arabic (ErgoArabic)"
+msgstr ""
+
+msgid "Arabic (Macintosh)"
+msgstr ""
+
+msgid "Arabic (OLPC)"
+msgstr ""
+
+msgid "Arabic (QWERTY)"
+msgstr ""
+
+msgid "Arabic (QWERTY, Eastern Arabic numerals)"
+msgstr ""
+
+msgid "Arabic (Sun Type 6/7)"
+msgstr ""
+
+msgid "Ugaritic instead of Arabic"
+msgstr ""
+
+msgid "German (Austria)"
+msgstr ""
+
+msgid "German (Austria, Macintosh)"
+msgstr ""
+
+msgid "German (Austria, no dead keys)"
+msgstr ""
+
+msgid "English (Australian)"
+msgstr ""
+
+msgid "Azerbaijani"
+msgstr ""
+
+msgid "Azerbaijani (Cyrillic)"
+msgstr ""
+
+msgid "Bosnian"
+msgstr ""
+
+msgid "Bosnian (with guillemets)"
+msgstr ""
+
+msgid "Bosnian (with Bosnian digraphs)"
+msgstr ""
+
+msgid "Bosnian (US, with Bosnian digraphs)"
+msgstr ""
+
+msgid "Bosnian (US)"
+msgstr ""
+
+msgid "Bangla"
+msgstr ""
+
+msgid "Bangla (Probhat)"
+msgstr ""
+
+msgid "Belgian"
+msgstr ""
+
+msgid "Belgian (ISO, alt.)"
+msgstr ""
+
+msgid "Belgian (no dead keys)"
+msgstr ""
+
+msgid "Belgian (alt.)"
+msgstr ""
+
+msgid "Belgian (Latin-9 only, alt.)"
+msgstr ""
+
+msgid "Belgian (Sun Type 6/7)"
+msgstr ""
+
+msgid "Belgian (Wang 724 AZERTY)"
+msgstr ""
+
+msgid "Bulgarian"
+msgstr ""
+
+msgid "Bulgarian (new phonetic)"
+msgstr ""
+
+msgid "Bulgarian (enhanced)"
+msgstr ""
+
+msgid "Bulgarian (traditional phonetic)"
+msgstr ""
+
+msgid "Braille"
+msgstr ""
+
+msgid "Braille (left-handed)"
+msgstr ""
+
+msgid "Braille (left-handed inverted thumb)"
+msgstr ""
+
+msgid "Braille (right-handed)"
+msgstr ""
+
+msgid "Braille (right-handed inverted thumb)"
+msgstr ""
+
+msgid "Portuguese (Brazil)"
+msgstr ""
+
+msgid "Portuguese (Brazil, Dvorak)"
+msgstr ""
+
+msgid "Esperanto (Brazil, Nativo)"
+msgstr ""
+
+msgid "Portuguese (Brazil, Nativo)"
+msgstr ""
+
+msgid "Portuguese (Brazil, Nativo for US keyboards)"
+msgstr ""
+
+msgid "Portuguese (Brazil, no dead keys)"
+msgstr ""
+
+msgid "Portuguese (Brazil, Sun Type 6/7)"
+msgstr ""
+
+msgid "Portuguese (Brazil, IBM/Lenovo ThinkPad)"
+msgstr ""
+
+msgid "Dzongkha"
+msgstr ""
+
+msgid "Tswana"
+msgstr ""
+
+msgid "Belarusian"
+msgstr ""
+
+msgid "Belarusian (intl.)"
+msgstr ""
+
+msgid "Belarusian (Latin)"
+msgstr ""
+
+msgid "Belarusian (legacy)"
+msgstr ""
+
+msgid "Russian (Belarus)"
+msgstr ""
+
+msgid "French (Canada)"
+msgstr ""
+
+msgid "English (Canada)"
+msgstr ""
+
+msgid "French (Canada, Dvorak)"
+msgstr ""
+
+msgid "French (Canada, legacy)"
+msgstr ""
+
+msgid "Inuktitut"
+msgstr ""
+
+msgid "Kutenai"
+msgstr ""
+
+msgid "Canadian (intl., 2nd part)"
+msgstr ""
+
+msgid "Canadian (intl., 1st part)"
+msgstr ""
+
+msgid "Canadian (intl.)"
+msgstr ""
+
+msgid "Secwepemctsin"
+msgstr ""
+
+msgid "Multilingual (Canada, Sun Type 6/7)"
+msgstr ""
+
+msgid "French (Democratic Republic of the Congo)"
+msgstr ""
+
+msgid "German (Switzerland)"
+msgstr ""
+
+msgid "German (Switzerland, Macintosh)"
+msgstr ""
+
+msgid "German (Switzerland, no dead keys)"
+msgstr ""
+
+msgid "French (Switzerland)"
+msgstr ""
+
+msgid "French (Switzerland, Macintosh)"
+msgstr ""
+
+msgid "French (Switzerland, no dead keys)"
+msgstr ""
+
+msgid "German (Switzerland, legacy)"
+msgstr ""
+
+msgid "German (Switzerland, Sun Type 6/7)"
+msgstr ""
+
+msgid "French (Switzerland, Sun Type 6/7)"
+msgstr ""
+
+msgid "English (Cameroon)"
+msgstr ""
+
+msgid "Cameroon (AZERTY, intl.)"
+msgstr ""
+
+msgid "Cameroon (Dvorak, intl.)"
+msgstr ""
+
+msgid "French (Cameroon)"
+msgstr ""
+
+msgid "Mmuock"
+msgstr ""
+
+msgid "Cameroon Multilingual (QWERTY, intl.)"
+msgstr ""
+
+msgid "Chinese"
+msgstr ""
+
+msgid "Hanyu Pinyin Letters (with AltGr dead keys)"
+msgstr ""
+
+msgid "Mongolian (Manchu Galik)"
+msgstr ""
+
+msgid "Mongolian (Todo Galik)"
+msgstr ""
+
+msgid "Mongolian (Galik)"
+msgstr ""
+
+msgid "Mongolian (Manchu)"
+msgstr ""
+
+msgid "Mongolian (Bichig)"
+msgstr ""
+
+msgid "Mongolian (Todo)"
+msgstr ""
+
+msgid "Mongolian (Xibe)"
+msgstr ""
+
+msgid "Tibetan (with ASCII numerals)"
+msgstr ""
+
+msgid "Tibetan"
+msgstr ""
+
+msgid "Uyghur"
+msgstr ""
+
+msgid "A user-defined custom Layout"
+msgstr ""
+
+msgid "Czech"
+msgstr ""
+
+msgid "Czech (with <\"
+msgstr ""
+
+msgid "Czech (coder)"
+msgstr ""
+
+msgid "Czech (US, Dvorak, UCW support)"
+msgstr ""
+
+msgid "Czech (programming)"
+msgstr ""
+
+msgid "Czech (programming, typographic)"
+msgstr ""
+
+msgid "Czech (QWERTY, extended backslash)"
+msgstr ""
+
+msgid "Czech (QWERTY)"
+msgstr ""
+
+msgid "Czech (QWERTY, Macintosh)"
+msgstr ""
+
+msgid "Russian (Czech, phonetic)"
+msgstr ""
+
+msgid "Czech (Sun Type 6/7)"
+msgstr ""
+
+msgid "Czech (typographic)"
+msgstr ""
+
+msgid "Czech (UCW, only accented letters)"
+msgstr ""
+
+msgid "German"
+msgstr ""
+
+msgid "German (Aus der Neo-Welt)"
+msgstr ""
+
+msgid "German (Bone, eszett in the home row)"
+msgstr ""
+
+msgid "German (Bone)"
+msgstr ""
+
+msgid "German (dead acute)"
+msgstr ""
+
+msgid "German (dead grave acute)"
+msgstr ""
+
+msgid "German (dead tilde)"
+msgstr ""
+
+msgid "Lower Sorbian"
+msgstr ""
+
+msgid "Lower Sorbian (QWERTZ)"
+msgstr ""
+
+msgid "German (Dvorak)"
+msgstr ""
+
+msgid "German (E1)"
+msgstr ""
+
+msgid "German (E2)"
+msgstr ""
+
+msgid "German (with Hungarian letters, no dead keys)"
+msgstr ""
+
+msgid "German (KOY)"
+msgstr ""
+
+msgid "German (Ladin)"
+msgstr ""
+
+msgid "German (Macintosh)"
+msgstr ""
+
+msgid "German (Macintosh, no dead keys)"
+msgstr ""
+
+msgid "German (Neo 2)"
+msgstr ""
+
+msgid "German (Neo, QWERTY)"
+msgstr ""
+
+msgid "German (Neo, QWERTZ)"
+msgstr ""
+
+msgid "German (no dead keys)"
+msgstr ""
+
+msgid "Polish (Germany, no dead keys)"
+msgstr ""
+
+msgid "German (QWERTY)"
+msgstr ""
+
+msgid "Romanian (Germany, no dead keys)"
+msgstr ""
+
+msgid "Romanian (Germany)"
+msgstr ""
+
+msgid "Russian (Germany, recommended)"
+msgstr ""
+
+msgid "Russian (Germany, phonetic)"
+msgstr ""
+
+msgid "Russian (Germany, transliteration)"
+msgstr ""
+
+msgid "German (Sun Type 6/7)"
+msgstr ""
+
+msgid "German (T3)"
+msgstr ""
+
+msgid "Turkish (Germany)"
+msgstr ""
+
+msgid "German (US)"
+msgstr ""
+
+msgid "Danish"
+msgstr ""
+
+msgid "Danish (Dvorak)"
+msgstr ""
+
+msgid "Danish (Macintosh)"
+msgstr ""
+
+msgid "Danish (Macintosh, no dead keys)"
+msgstr ""
+
+msgid "Danish (no dead keys)"
+msgstr ""
+
+msgid "Danish (Sun Type 6/7)"
+msgstr ""
+
+msgid "Danish (Windows)"
+msgstr ""
+
+msgid "Berber (Algeria, Latin)"
+msgstr ""
+
+msgid "Arabic (Algeria)"
+msgstr ""
+
+msgid "Kabyle (AZERTY, with dead keys)"
+msgstr ""
+
+msgid "Berber (Algeria, Tifinagh)"
+msgstr ""
+
+msgid "Kabyle (QWERTY, UK, with dead keys)"
+msgstr ""
+
+msgid "Kabyle (QWERTY, US, with dead keys)"
+msgstr ""
+
+msgid "Estonian"
+msgstr ""
+
+msgid "Estonian (Dvorak)"
+msgstr ""
+
+msgid "Estonian (no dead keys)"
+msgstr ""
+
+msgid "Estonian (Sun Type 6/7)"
+msgstr ""
+
+msgid "Estonian (US)"
+msgstr ""
+
+msgid "Coptic"
+msgstr ""
+
+msgid "Esperanto"
+msgstr ""
+
+msgid "Esperanto (legacy)"
+msgstr ""
+
+msgid "Spanish"
+msgstr ""
+
+msgid "Asturian (Spain, with bottom-dot H and L)"
+msgstr ""
+
+msgid "Catalan (Spain, with middle-dot L)"
+msgstr ""
+
+msgid "Spanish (dead tilde)"
+msgstr ""
+
+msgid "Spanish (Dvorak)"
+msgstr ""
+
+msgid "Spanish (Macintosh)"
+msgstr ""
+
+msgid "Spanish (no dead keys)"
+msgstr ""
+
+msgid "Spanish (Sun Type 6/7)"
+msgstr ""
+
+msgid "Spanish (Windows)"
+msgstr ""
+
+msgid "Amharic"
+msgstr ""
+
+msgid "EurKEY (US)"
+msgstr ""
+
+msgid "Finnish"
+msgstr ""
+
+msgid "Finnish (classic)"
+msgstr ""
+
+msgid "Finnish (DAS)"
+msgstr ""
+
+msgid "Finnish (Dvorak)"
+msgstr ""
+
+msgid "Finnish (Macintosh)"
+msgstr ""
+
+msgid "Finnish (classic, no dead keys)"
+msgstr ""
+
+msgid "Northern Saami (Finland)"
+msgstr ""
+
+msgid "Finnish (Sun Type 6/7)"
+msgstr ""
+
+msgid "Finnish (Windows)"
+msgstr ""
+
+msgid "Faroese"
+msgstr ""
+
+msgid "Faroese (no dead keys)"
+msgstr ""
+
+msgid "French"
+msgstr ""
+
+msgid "French (AZERTY, AFNOR)"
+msgstr ""
+
+msgid "French (AZERTY)"
+msgstr ""
+
+msgid "French (BEPO, AFNOR)"
+msgstr ""
+
+msgid "French (BEPO)"
+msgstr ""
+
+msgid "French (BEPO, Latin-9 only)"
+msgstr ""
+
+msgid "French (Breton)"
+msgstr ""
+
+msgid "French (Dvorak)"
+msgstr ""
+
+msgid "Georgian (France, AZERTY Tskapo)"
+msgstr ""
+
+msgid "French (legacy, alt.)"
+msgstr ""
+
+msgid "French (legacy, alt., no dead keys)"
+msgstr ""
+
+msgid "French (Macintosh)"
+msgstr ""
+
+msgid "French (no dead keys)"
+msgstr ""
+
+msgid "Occitan"
+msgstr ""
+
+msgid "French (alt.)"
+msgstr ""
+
+msgid "French (alt., Latin-9 only)"
+msgstr ""
+
+msgid "French (alt., no dead keys)"
+msgstr ""
+
+msgid "French (Sun Type 6/7)"
+msgstr ""
+
+msgid "French (US with dead keys, alt.)"
+msgstr ""
+
+msgid "French (US, AZERTY)"
+msgstr ""
+
+msgid "French (US)"
+msgstr ""
+
+msgid "English (UK)"
+msgstr ""
+
+msgid "English (UK, Colemak-DH)"
+msgstr ""
+
+msgid "English (UK, Colemak)"
+msgstr ""
+
+msgid "English (UK, Dvorak)"
+msgstr ""
+
+msgid "English (UK, Dvorak, with UK punctuation)"
+msgstr ""
+
+msgid "English (UK, extended, Windows)"
+msgstr ""
+
+msgid "Scottish Gaelic"
+msgstr ""
+
+msgid "English (UK, intl., with dead keys)"
+msgstr ""
+
+msgid "English (UK, Macintosh)"
+msgstr ""
+
+msgid "English (UK, Macintosh, intl.)"
+msgstr ""
+
+msgid "Polish (British keyboard)"
+msgstr ""
+
+msgid "English (UK, Sun Type 6/7)"
+msgstr ""
+
+msgid "Georgian"
+msgstr ""
+
+msgid "Georgian (ergonomic)"
+msgstr ""
+
+msgid "Georgian (MESS)"
+msgstr ""
+
+msgid "Ossetian (Georgia)"
+msgstr ""
+
+msgid "Russian (Georgia)"
+msgstr ""
+
+msgid "English (Ghana)"
+msgstr ""
+
+msgid "Akan"
+msgstr ""
+
+msgid "Avatime"
+msgstr ""
+
+msgid "Ewe"
+msgstr ""
+
+msgid "Fula"
+msgstr ""
+
+msgid "Ga"
+msgstr ""
+
+msgid "English (Ghana, multilingual)"
+msgstr ""
+
+msgid "English (Ghana, GILLBT)"
+msgstr ""
+
+msgid "Hausa (Ghana)"
+msgstr ""
+
+msgid "N'Ko (AZERTY)"
+msgstr ""
+
+msgid "Greek"
+msgstr ""
+
+msgid "Greek (Colemak)"
+msgstr ""
+
+msgid "Greek (extended)"
+msgstr ""
+
+msgid "Greek (no dead keys)"
+msgstr ""
+
+msgid "Greek (polytonic)"
+msgstr ""
+
+msgid "Greek (simple)"
+msgstr ""
+
+msgid "Greek (Sun Type 6/7)"
+msgstr ""
+
+msgid "Croatian"
+msgstr ""
+
+msgid "Croatian (with guillemets)"
+msgstr ""
+
+msgid "Croatian (with Croatian digraphs)"
+msgstr ""
+
+msgid "Croatian (US, with Croatian digraphs)"
+msgstr ""
+
+msgid "Croatian (US)"
+msgstr ""
+
+msgid "Hungarian"
+msgstr ""
+
+msgid "Hungarian (QWERTY, 101-key, comma, dead keys)"
+msgstr ""
+
+msgid "Hungarian (QWERTY, 101-key, comma, no dead keys)"
+msgstr ""
+
+msgid "Hungarian (QWERTY, 101-key, dot, dead keys)"
+msgstr ""
+
+msgid "Hungarian (QWERTY, 101-key, dot, no dead keys)"
+msgstr ""
+
+msgid "Hungarian (QWERTZ, 101-key, comma, dead keys)"
+msgstr ""
+
+msgid "Hungarian (QWERTZ, 101-key, comma, no dead keys)"
+msgstr ""
+
+msgid "Hungarian (QWERTZ, 101-key, dot, dead keys)"
+msgstr ""
+
+msgid "Hungarian (QWERTZ, 101-key, dot, no dead keys)"
+msgstr ""
+
+msgid "Hungarian (QWERTY, 102-key, comma, dead keys)"
+msgstr ""
+
+msgid "Hungarian (QWERTY, 102-key, comma, no dead keys)"
+msgstr ""
+
+msgid "Hungarian (QWERTY, 102-key, dot, dead keys)"
+msgstr ""
+
+msgid "Hungarian (QWERTY, 102-key, dot, no dead keys)"
+msgstr ""
+
+msgid "Hungarian (QWERTZ, 102-key, comma, dead keys)"
+msgstr ""
+
+msgid "Hungarian (QWERTZ, 102-key, comma, no dead keys)"
+msgstr ""
+
+msgid "Hungarian (QWERTZ, 102-key, dot, dead keys)"
+msgstr ""
+
+msgid "Hungarian (QWERTZ, 102-key, dot, no dead keys)"
+msgstr ""
+
+msgid "Hungarian (no dead keys)"
+msgstr ""
+
+msgid "Old Hungarian (for ligatures)"
+msgstr ""
+
+msgid "Old Hungarian"
+msgstr ""
+
+msgid "Hungarian (QWERTY)"
+msgstr ""
+
+msgid "Hungarian (standard)"
+msgstr ""
+
+msgid "Indonesian (Latin)"
+msgstr ""
+
+msgid "Indonesian (Arab Pegon, phonetic)"
+msgstr ""
+
+msgid "Indonesian (Arab Pegon, extended phonetic)"
+msgstr ""
+
+msgid "Irish"
+msgstr ""
+
+msgid "CloGaelach"
+msgstr ""
+
+msgid "Ogham (IS434)"
+msgstr ""
+
+msgid "Ogham"
+msgstr ""
+
+msgid "Irish (UnicodeExpert)"
+msgstr ""
+
+msgid "Hebrew"
+msgstr ""
+
+msgid "Hebrew (Biblical, Tiro)"
+msgstr ""
+
+msgid "Hebrew (Biblical, SIL phonetic)"
+msgstr ""
+
+msgid "Hebrew (lyx)"
+msgstr ""
+
+msgid "Hebrew (phonetic)"
+msgstr ""
+
+msgid "Indian"
+msgstr ""
+
+msgid "Bangla (India, Baishakhi)"
+msgstr ""
+
+msgid "Bangla (India)"
+msgstr ""
+
+msgid "Bangla (India, Bornona)"
+msgstr ""
+
+msgid "Bangla (India, Gitanjali)"
+msgstr ""
+
+msgid "Bangla (India, Baishakhi InScript)"
+msgstr ""
+
+msgid "Bangla (India, Probhat)"
+msgstr ""
+
+msgid "Hindi (Bolnagri)"
+msgstr ""
+
+msgid "Manipuri (Eeyek)"
+msgstr ""
+
+msgid "English (India, with rupee)"
+msgstr ""
+
+msgid "Gujarati"
+msgstr ""
+
+msgid "Punjabi (Gurmukhi)"
+msgstr ""
+
+msgid "Hindi (KaGaPa, phonetic)"
+msgstr ""
+
+msgid "Hindi (Wx)"
+msgstr ""
+
+msgid "Indic IPA"
+msgstr ""
+
+msgid "Punjabi (Gurmukhi Jhelum)"
+msgstr ""
+
+msgid "Kannada (KaGaPa, phonetic)"
+msgstr ""
+
+msgid "Kannada"
+msgstr ""
+
+msgid "Malayalam (enhanced InScript, with rupee)"
+msgstr ""
+
+msgid "Malayalam (Lalitha)"
+msgstr ""
+
+msgid "Malayalam"
+msgstr ""
+
+msgid "Marathi (enhanced InScript)"
+msgstr ""
+
+msgid "Marathi (KaGaPa, phonetic)"
+msgstr ""
+
+msgid "Modi (KaGaPa phonetic)"
+msgstr ""
+
+msgid "Ol Chiki"
+msgstr ""
+
+msgid "Oriya (Bolnagri)"
+msgstr ""
+
+msgid "Oriya"
+msgstr ""
+
+msgid "Oriya (Wx)"
+msgstr ""
+
+msgid "Sanskrit (KaGaPa, phonetic)"
+msgstr ""
+
+msgid "Sanskrit symbols"
+msgstr ""
+
+msgid "Tamil (InScript)"
+msgstr ""
+
+msgid "Tamil (TamilNet '99, TAB encoding)"
+msgstr ""
+
+msgid "Tamil (TamilNet '99)"
+msgstr ""
+
+msgid "Tamil (TamilNet '99, TSCII encoding)"
+msgstr ""
+
+msgid "Tamil (TamilNet '99 with Tamil numerals)"
+msgstr ""
+
+msgid "Telugu (KaGaPa, phonetic)"
+msgstr ""
+
+msgid "Telugu (Sarala)"
+msgstr ""
+
+msgid "Telugu"
+msgstr ""
+
+msgid "Urdu (Navees)"
+msgstr ""
+
+msgid "Urdu (alt. phonetic)"
+msgstr ""
+
+msgid "Urdu (phonetic)"
+msgstr ""
+
+msgid "Urdu (Windows)"
+msgstr ""
+
+msgid "Iraqi"
+msgstr ""
+
+msgid "Kurdish (Iraq, Latin Alt-Q)"
+msgstr ""
+
+msgid "Kurdish (Iraq, Arabic-Latin)"
+msgstr ""
+
+msgid "Kurdish (Iraq, F)"
+msgstr ""
+
+msgid "Kurdish (Iraq, Latin Q)"
+msgstr ""
+
+msgid "Persian"
+msgstr ""
+
+msgid "Avestan"
+msgstr ""
+
+msgid "Kurdish (Iran, Latin Alt-Q)"
+msgstr ""
+
+msgid "Kurdish (Iran, Arabic-Latin)"
+msgstr ""
+
+msgid "Kurdish (Iran, F)"
+msgstr ""
+
+msgid "Kurdish (Iran, Latin Q)"
+msgstr ""
+
+msgid "Persian (with Persian keypad)"
+msgstr ""
+
+msgid "Icelandic"
+msgstr ""
+
+msgid "Icelandic (Dvorak)"
+msgstr ""
+
+msgid "Icelandic (Macintosh)"
+msgstr ""
+
+msgid "Icelandic (Macintosh, legacy)"
+msgstr ""
+
+msgid "Italian"
+msgstr ""
+
+msgid "Italian (Dvorak)"
+msgstr ""
+
+msgid "Friulian (Italy)"
+msgstr ""
+
+msgid "Georgian (Italy)"
+msgstr ""
+
+msgid "Italian (IBM 142)"
+msgstr ""
+
+msgid "Italian (intl., with dead keys)"
+msgstr ""
+
+msgid "Italian (Ladin)"
+msgstr ""
+
+msgid "Italian (Macintosh)"
+msgstr ""
+
+msgid "Italian (no dead keys)"
+msgstr ""
+
+msgid "Sicilian"
+msgstr ""
+
+msgid "Italian (Sun Type 6/7)"
+msgstr ""
+
+msgid "Italian (US)"
+msgstr ""
+
+msgid "Italian (Windows)"
+msgstr ""
+
+msgid "Japanese"
+msgstr ""
+
+msgid "Japanese (Dvorak)"
+msgstr ""
+
+msgid "Japanese (Kana 86)"
+msgstr ""
+
+msgid "Japanese (Kana)"
+msgstr ""
+
+msgid "Japanese (Macintosh)"
+msgstr ""
+
+msgid "Japanese (OADG 109A)"
+msgstr ""
+
+msgid "Japanese (Sun Type 6)"
+msgstr ""
+
+msgid "Japanese (Sun Type 7, PC-compatible)"
+msgstr ""
+
+msgid "Japanese (Sun Type 7, Sun-compatible)"
+msgstr ""
+
+msgid "Indonesian (Javanese)"
+msgstr ""
+
+msgid "Swahili (Kenya)"
+msgstr ""
+
+msgid "Kikuyu"
+msgstr ""
+
+msgid "Kyrgyz"
+msgstr ""
+
+msgid "Kyrgyz (phonetic)"
+msgstr ""
+
+msgid "Khmer (Cambodia)"
+msgstr ""
+
+msgid "Korean"
+msgstr ""
+
+msgid "Korean (101/104-key compatible)"
+msgstr ""
+
+msgid "Korean (Sun Type 6/7)"
+msgstr ""
+
+msgid "Kazakh"
+msgstr ""
+
+msgid "Kazakh (extended)"
+msgstr ""
+
+msgid "Kazakh (with Russian)"
+msgstr ""
+
+msgid "Kazakh (Latin)"
+msgstr ""
+
+msgid "Russian (Kazakhstan, with Kazakh)"
+msgstr ""
+
+msgid "Lao"
+msgstr ""
+
+msgid "Lao (STEA)"
+msgstr ""
+
+msgid "Spanish (Latin American)"
+msgstr ""
+
+msgid "Spanish (Latin American, Colemak for gaming)"
+msgstr ""
+
+msgid "Spanish (Latin American, Colemak)"
+msgstr ""
+
+msgid "Spanish (Latin American, dead tilde)"
+msgstr ""
+
+msgid "Spanish (Latin American, Dvorak)"
+msgstr ""
+
+msgid "Spanish (Latin American, no dead keys)"
+msgstr ""
+
+msgid "Sinhala (phonetic)"
+msgstr ""
+
+msgid "Tamil (Sri Lanka, TamilNet '99, TAB encoding)"
+msgstr ""
+
+msgid "Tamil (Sri Lanka, TamilNet '99)"
+msgstr ""
+
+msgid "Sinhala (US)"
+msgstr ""
+
+msgid "Lithuanian"
+msgstr ""
+
+msgid "Lithuanian (IBM LST 1205-92)"
+msgstr ""
+
+msgid "Lithuanian (LEKPa)"
+msgstr ""
+
+msgid "Lithuanian (LEKP)"
+msgstr ""
+
+msgid "Lithuanian (Ratise)"
+msgstr ""
+
+msgid "Samogitian"
+msgstr ""
+
+msgid "Lithuanian (standard)"
+msgstr ""
+
+msgid "Lithuanian (Sun Type 6/7)"
+msgstr ""
+
+msgid "Lithuanian (Dvorak)"
+msgstr ""
+
+msgid "Lithuanian (US)"
+msgstr ""
+
+msgid "Latvian"
+msgstr ""
+
+msgid "Latvian (adapted)"
+msgstr ""
+
+msgid "Latvian (Colemak, with apostrophe)"
+msgstr ""
+
+msgid "Latvian (apostrophe, dead quotes)"
+msgstr ""
+
+msgid "Latvian (apostrophe)"
+msgstr ""
+
+msgid "Latvian (Colemak)"
+msgstr ""
+
+msgid "Latvian (Dvorak)"
+msgstr ""
+
+msgid "Latvian (programmer Dvorak)"
+msgstr ""
+
+msgid "Latvian (ergonomic, ŪGJRMV)"
+msgstr ""
+
+msgid "Latvian (F)"
+msgstr ""
+
+msgid "Latvian (Dvorak, with minus)"
+msgstr ""
+
+msgid "Latvian (programmer Dvorak, with minus)"
+msgstr ""
+
+msgid "Latvian (modern)"
+msgstr ""
+
+msgid "Latvian (Sun Type 6/7)"
+msgstr ""
+
+msgid "Latvian (tilde)"
+msgstr ""
+
+msgid "Latvian (Dvorak, with Y)"
+msgstr ""
+
+msgid "Latvian (programmer Dvorak, with Y)"
+msgstr ""
+
+msgid "Arabic (Morocco)"
+msgstr ""
+
+msgid "French (Morocco)"
+msgstr ""
+
+msgid "Tarifit"
+msgstr ""
+
+msgid "Berber (Morocco, Tifinagh alt.)"
+msgstr ""
+
+msgid "Berber (Morocco, Tifinagh phonetic, alt.)"
+msgstr ""
+
+msgid "Berber (Morocco, Tifinagh)"
+msgstr ""
+
+msgid "Berber (Morocco, Tifinagh extended)"
+msgstr ""
+
+msgid "Berber (Morocco, Tifinagh extended phonetic)"
+msgstr ""
+
+msgid "Berber (Morocco, Tifinagh phonetic)"
+msgstr ""
+
+msgid "Maori"
+msgstr ""
+
+msgid "Moldavian"
+msgstr ""
+
+msgid "Moldavian (Gagauz)"
+msgstr ""
+
+msgid "Montenegrin"
+msgstr ""
+
+msgid "Montenegrin (Cyrillic, with guillemets)"
+msgstr ""
+
+msgid "Montenegrin (Cyrillic)"
+msgstr ""
+
+msgid "Montenegrin (Cyrillic, ZE and ZHE swapped)"
+msgstr ""
+
+msgid "Montenegrin (Latin, with guillemets)"
+msgstr ""
+
+msgid "Montenegrin (Latin, Unicode)"
+msgstr ""
+
+msgid "Montenegrin (Latin, Unicode, QWERTY)"
+msgstr ""
+
+msgid "Montenegrin (Latin, QWERTY)"
+msgstr ""
+
+msgid "Macedonian"
+msgstr ""
+
+msgid "Macedonian (no dead keys)"
+msgstr ""
+
+msgid "Bambara"
+msgstr ""
+
+msgid "French (Mali, alt.)"
+msgstr ""
+
+msgid "English (Mali, US, intl.)"
+msgstr ""
+
+msgid "English (Mali, US, Macintosh)"
+msgstr ""
+
+msgid "Burmese"
+msgstr ""
+
+msgid "Mon (A1)"
+msgstr ""
+
+msgid "Mon"
+msgstr ""
+
+msgid "Shan"
+msgstr ""
+
+msgid "Burmese Zawgyi"
+msgstr ""
+
+msgid "Shan (Zawgyi Tai)"
+msgstr ""
+
+msgid "Mongolian"
+msgstr ""
+
+msgid "Maltese"
+msgstr ""
+
+msgid "Maltese (UK, with AltGr overrides)"
+msgstr ""
+
+msgid "Maltese (US, with AltGr overrides)"
+msgstr ""
+
+msgid "Maltese (US)"
+msgstr ""
+
+msgid "Dhivehi"
+msgstr ""
+
+msgid "Malay (Jawi, Arabic Keyboard)"
+msgstr ""
+
+msgid "Malay (Jawi, phonetic)"
+msgstr ""
+
+msgid "English (Nigeria)"
+msgstr ""
+
+msgid "Hausa (Nigeria)"
+msgstr ""
+
+msgid "Igbo"
+msgstr ""
+
+msgid "Yoruba"
+msgstr ""
+
+msgid "Dutch"
+msgstr ""
+
+msgid "Dutch (Macintosh)"
+msgstr ""
+
+msgid "Dutch (standard)"
+msgstr ""
+
+msgid "Dutch (Sun Type 6/7)"
+msgstr ""
+
+msgid "Dutch (US)"
+msgstr ""
+
+msgid "Norwegian"
+msgstr ""
+
+msgid "Norwegian (Colemak)"
+msgstr ""
+
+msgid "Norwegian (Dvorak)"
+msgstr ""
+
+msgid "Norwegian (Macintosh, no dead keys)"
+msgstr ""
+
+msgid "Norwegian (Macintosh)"
+msgstr ""
+
+msgid "Norwegian (no dead keys)"
+msgstr ""
+
+msgid "Northern Saami (Norway, no dead keys)"
+msgstr ""
+
+msgid "Northern Saami (Norway)"
+msgstr ""
+
+msgid "Norwegian (Sun Type 6/7)"
+msgstr ""
+
+msgid "Norwegian (Windows)"
+msgstr ""
+
+msgid "Nepali"
+msgstr ""
+
+msgid "Filipino"
+msgstr ""
+
+msgid "Filipino (Capewell-Dvorak, Baybayin)"
+msgstr ""
+
+msgid "Filipino (Capewell-Dvorak, Latin)"
+msgstr ""
+
+msgid "Filipino (Capewell-QWERF 2006, Baybayin)"
+msgstr ""
+
+msgid "Filipino (Capewell-QWERF 2006, Latin)"
+msgstr ""
+
+msgid "Filipino (Colemak, Baybayin)"
+msgstr ""
+
+msgid "Filipino (Colemak, Latin)"
+msgstr ""
+
+msgid "Filipino (Dvorak, Baybayin)"
+msgstr ""
+
+msgid "Filipino (Dvorak, Latin)"
+msgstr ""
+
+msgid "Filipino (QWERTY, Baybayin)"
+msgstr ""
+
+msgid "Urdu (Pakistan)"
+msgstr ""
+
+msgid "Arabic (Pakistan)"
+msgstr ""
+
+msgid "Sindhi"
+msgstr ""
+
+msgid "Urdu (Pakistan, CRULP)"
+msgstr ""
+
+msgid "Urdu (Pakistan, Navees)"
+msgstr ""
+
+msgid "Urdu (Pakistan, NLA)"
+msgstr ""
+
+msgid "Polish"
+msgstr ""
+
+msgid "Polish (Colemak-DH)"
+msgstr ""
+
+msgid "Polish (Colemak)"
+msgstr ""
+
+msgid "Kashubian"
+msgstr ""
+
+msgid "Polish (Dvorak, with Polish quotes on key 1)"
+msgstr ""
+
+msgid "Polish (Dvorak)"
+msgstr ""
+
+msgid "Polish (Dvorak, with Polish quotes on quotemark key)"
+msgstr ""
+
+msgid "Polish (programmer Dvorak)"
+msgstr ""
+
+msgid "Polish (Glagolica)"
+msgstr ""
+
+msgid "Polish (intl., with dead keys)"
+msgstr ""
+
+msgid "Polish (lefty)"
+msgstr ""
+
+msgid "Polish (legacy)"
+msgstr ""
+
+msgid "Polish (QWERTZ)"
+msgstr ""
+
+msgid "Russian (Poland, phonetic Dvorak)"
+msgstr ""
+
+msgid "Polish (Sun Type 6/7)"
+msgstr ""
+
+msgid "Silesian"
+msgstr ""
+
+msgid "Portuguese"
+msgstr ""
+
+msgid "Portuguese (Colemak)"
+msgstr ""
+
+msgid "Portuguese (Macintosh, no dead keys)"
+msgstr ""
+
+msgid "Portuguese (Macintosh)"
+msgstr ""
+
+msgid "Esperanto (Portugal, Nativo)"
+msgstr ""
+
+msgid "Portuguese (Nativo)"
+msgstr ""
+
+msgid "Portuguese (Nativo for US keyboards)"
+msgstr ""
+
+msgid "Portuguese (no dead keys)"
+msgstr ""
+
+msgid "Portuguese (Sun Type 6/7)"
+msgstr ""
+
+msgid "Romanian"
+msgstr ""
+
+msgid "Crimean Tatar (Dobruja Q)"
+msgstr ""
+
+msgid "Romanian (ergonomic Touchtype)"
+msgstr ""
+
+msgid "Romanian (standard)"
+msgstr ""
+
+msgid "Romanian (Sun Type 6/7)"
+msgstr ""
+
+msgid "Romanian (Windows)"
+msgstr ""
+
+msgid "Serbian"
+msgstr ""
+
+msgid "Serbian (Cyrillic, with guillemets)"
+msgstr ""
+
+msgid "Serbian (combining accents instead of dead keys)"
+msgstr ""
+
+msgid "Serbian (Latin, with guillemets)"
+msgstr ""
+
+msgid "Serbian (Latin)"
+msgstr ""
+
+msgid "Serbian (Latin, Unicode)"
+msgstr ""
+
+msgid "Serbian (Latin, Unicode, QWERTY)"
+msgstr ""
+
+msgid "Serbian (Latin, QWERTY)"
+msgstr ""
+
+msgid "Pannonian Rusyn"
+msgstr ""
+
+msgid "Serbian (Cyrillic, ZE and ZHE swapped)"
+msgstr ""
+
+msgid "Russian"
+msgstr ""
+
+msgid "Bashkirian"
+msgstr ""
+
+msgid "Mari"
+msgstr ""
+
+msgid "Church Slavonic"
+msgstr ""
+
+msgid "Chuvash"
+msgstr ""
+
+msgid "Chuvash (Latin)"
+msgstr ""
+
+msgid "Russian (DOS)"
+msgstr ""
+
+msgid "Russian (GOST 14289-88)"
+msgstr ""
+
+msgid "Russian (GOST 6431-75)"
+msgstr ""
+
+msgid "Komi"
+msgstr ""
+
+msgid "Russian (legacy)"
+msgstr ""
+
+msgid "Russian (Macintosh)"
+msgstr ""
+
+msgid "Ossetian (legacy)"
+msgstr ""
+
+msgid "Ossetian (Windows)"
+msgstr ""
+
+msgid "Russian (phonetic, AZERTY)"
+msgstr ""
+
+msgid "Russian (phonetic, Dvorak)"
+msgstr ""
+
+msgid "Russian (phonetic, French)"
+msgstr ""
+
+msgid "Russian (phonetic Macintosh)"
+msgstr ""
+
+msgid "Russian (phonetic)"
+msgstr ""
+
+msgid "Russian (phonetic, Windows)"
+msgstr ""
+
+msgid "Russian (phonetic, YAZHERTY)"
+msgstr ""
+
+msgid "Russian (Polyglot and Reactionary)"
+msgstr ""
+
+msgid "Russian (Rulemak, phonetic Colemak)"
+msgstr ""
+
+msgid "Russian (with Ukrainian-Belorussian layout)"
+msgstr ""
+
+msgid "Yakut"
+msgstr ""
+
+msgid "Serbian (Russia)"
+msgstr ""
+
+msgid "Russian (Sun Type 6/7)"
+msgstr ""
+
+msgid "Tatar"
+msgstr ""
+
+msgid "Russian (typewriter, legacy)"
+msgstr ""
+
+msgid "Russian (typewriter)"
+msgstr ""
+
+msgid "Udmurt"
+msgstr ""
+
+msgid "Russian (with US punctuation)"
+msgstr ""
+
+msgid "Kalmyk"
+msgstr ""
+
+msgid "Swedish"
+msgstr ""
+
+msgid "Swedish (Dvorak A5)"
+msgstr ""
+
+msgid "Swedish (Dvorak)"
+msgstr ""
+
+msgid "Swedish (Macintosh)"
+msgstr ""
+
+msgid "Swedish (no dead keys)"
+msgstr ""
+
+msgid "Elfdalian (Swedish, with combining ogonek)"
+msgstr ""
+
+msgid "Russian (Sweden, phonetic, no dead keys)"
+msgstr ""
+
+msgid "Russian (Sweden, phonetic)"
+msgstr ""
+
+msgid "Northern Saami (Sweden)"
+msgstr ""
+
+msgid "Swedish (Sun Type 6/7)"
+msgstr ""
+
+msgid "Swedish (Svdvorak)"
+msgstr ""
+
+msgid "Swedish Sign Language"
+msgstr ""
+
+msgid "Swedish (Dvorak, intl.)"
+msgstr ""
+
+msgid "Swedish (US)"
+msgstr ""
+
+msgid "Slovenian"
+msgstr ""
+
+msgid "Slovenian (with guillemets)"
+msgstr ""
+
+msgid "Slovenian (US)"
+msgstr ""
+
+msgid "Slovak"
+msgstr ""
+
+msgid "Slovak (ACC layout, only accented letters)"
+msgstr ""
+
+msgid "Slovak (extended backslash)"
+msgstr ""
+
+msgid "Slovak (QWERTY, extended backslash)"
+msgstr ""
+
+msgid "Slovak (QWERTY)"
+msgstr ""
+
+msgid "Slovak (Sun Type 6/7)"
+msgstr ""
+
+msgid "Wolof"
+msgstr ""
+
+msgid "Arabic (Syria)"
+msgstr ""
+
+msgid "Kurdish (Syria, Latin Alt-Q)"
+msgstr ""
+
+msgid "Kurdish (Syria, F)"
+msgstr ""
+
+msgid "Kurdish (Syria, Latin Q)"
+msgstr ""
+
+msgid "Syriac (phonetic)"
+msgstr ""
+
+msgid "Syriac"
+msgstr ""
+
+msgid "French (Togo)"
+msgstr ""
+
+msgid "Thai"
+msgstr ""
+
+msgid "Thai (Pattachote)"
+msgstr ""
+
+msgid "Thai (TIS-820.2538)"
+msgstr ""
+
+msgid "Tajik"
+msgstr ""
+
+msgid "Tajik (legacy)"
+msgstr ""
+
+msgid "Turkmen"
+msgstr ""
+
+msgid "Turkmen (Alt-Q)"
+msgstr ""
+
+msgid "International Phonetic Alphabet"
+msgstr ""
+
+msgid "International Phonetic Alphabet (QWERTY)"
+msgstr ""
+
+msgid "Turkish"
+msgstr ""
+
+msgid "Turkish (Alt-Q)"
+msgstr ""
+
+msgid "Turkish (F)"
+msgstr ""
+
+msgid "Turkish (intl., with dead keys)"
+msgstr ""
+
+msgid "Kurdish (Turkey, Latin Alt-Q)"
+msgstr ""
+
+msgid "Kurdish (Turkey, F)"
+msgstr ""
+
+msgid "Kurdish (Turkey, Latin Q)"
+msgstr ""
+
+msgid "Ottoman (F)"
+msgstr ""
+
+msgid "Old Turkic (F)"
+msgstr ""
+
+msgid "Old Turkic"
+msgstr ""
+
+msgid "Ottoman (Q)"
+msgstr ""
+
+msgid "Turkish (Sun Type 6/7)"
+msgstr ""
+
+msgid "Turkish (Turkey, Latin Q, Swap i and ı)"
+msgstr ""
+
+msgid "Taiwanese"
+msgstr ""
+
+msgid "Taiwanese (indigenous)"
+msgstr ""
+
+msgid "Saisiyat (Taiwan)"
+msgstr ""
+
+msgid "Swahili (Tanzania)"
+msgstr ""
+
+msgid "Ukrainian"
+msgstr ""
+
+msgid "Crimean Tatar (Turkish Alt-Q)"
+msgstr ""
+
+msgid "Crimean Tatar (Turkish Q)"
+msgstr ""
+
+msgid "Crimean Tatar (Turkish F)"
+msgstr ""
+
+msgid "Ukrainian (homophonic)"
+msgstr ""
+
+msgid "Ukrainian (legacy)"
+msgstr ""
+
+msgid "Ukrainian (macOS)"
+msgstr ""
+
+msgid "Ukrainian (phonetic)"
+msgstr ""
+
+msgid "Russian (Ukraine, standard RSTU)"
+msgstr ""
+
+msgid "Ukrainian (standard RSTU)"
+msgstr ""
+
+msgid "Ukrainian (Sun Type 6/7)"
+msgstr ""
+
+msgid "Ukrainian (typewriter)"
+msgstr ""
+
+msgid "Ukrainian (Windows)"
+msgstr ""
+
+msgid "English (US)"
+msgstr ""
+
+msgid "English (3l, Chromebook)"
+msgstr ""
+
+msgid "English (3l, emacs)"
+msgstr ""
+
+msgid "English (3l)"
+msgstr ""
+
+msgid "English (intl., with AltGr dead keys)"
+msgstr ""
+
+msgid "English (Western European AltGr dead keys)"
+msgstr ""
+
+msgid "English (US, alt. intl.)"
+msgstr ""
+
+msgid "English (US, intl., AltGr Unicode combining, alt.)"
+msgstr ""
+
+msgid "Atsina"
+msgstr ""
+
+msgid "English (Carpalx, intl., with AltGr dead keys)"
+msgstr ""
+
+msgid "English (Carpalx)"
+msgstr ""
+
+msgid "English (Carpalx, full optimization, intl., with AltGr dead keys)"
+msgstr ""
+
+msgid "English (Carpalx, full optimization)"
+msgstr ""
+
+msgid "English (Carpalx, full optimization, intl., with dead keys)"
+msgstr ""
+
+msgid "English (Carpalx, intl., with dead keys)"
+msgstr ""
+
+msgid "Cherokee"
+msgstr ""
+
+msgid "English (Colemak-DH)"
+msgstr ""
+
+msgid "English (Colemak-DH ISO)"
+msgstr ""
+
+msgid "English (Colemak)"
+msgstr ""
+
+msgid "Coeur d'Alene Salish"
+msgstr ""
+
+msgid "Czech Slovak and German (US)"
+msgstr ""
+
+msgid "Czech, Slovak, Polish, Spanish, Finnish, Swedish and German (US)"
+msgstr ""
+
+msgid "German, Swedish and Finnish (US)"
+msgstr ""
+
+msgid "English (Drix)"
+msgstr ""
+
+msgid "English (Dvorak, alt. intl.)"
+msgstr ""
+
+msgid "English (classic Dvorak)"
+msgstr ""
+
+msgid "English (Dvorak)"
+msgstr ""
+
+msgid "English (Dvorak, intl., with dead keys)"
+msgstr ""
+
+msgid "English (Dvorak, left-handed)"
+msgstr ""
+
+msgid "English (Dvorak, Macintosh)"
+msgstr ""
+
+msgid "English (Dvorak, right-handed)"
+msgstr ""
+
+msgid "English (programmer Dvorak)"
+msgstr ""
+
+msgid "English (US, euro on 5)"
+msgstr ""
+
+msgid "Hawaiian"
+msgstr ""
+
+msgid "Serbo-Croatian (US)"
+msgstr ""
+
+msgid "English (US, IBM Arabic 238_L)"
+msgstr ""
+
+msgid "English (US, intl., with dead keys)"
+msgstr ""
+
+msgid "English (US, intl., AltGr Unicode combining)"
+msgstr ""
+
+msgid "English (Macintosh)"
+msgstr ""
+
+msgid "English (Norman)"
+msgstr ""
+
+msgid "English (the divide/multiply toggle the layout)"
+msgstr ""
+
+msgid "Russian (US, phonetic)"
+msgstr ""
+
+msgid "Sicilian (US keyboard)"
+msgstr ""
+
+msgid "English (US, Sun Type 6/7)"
+msgstr ""
+
+msgid "English (US, Symbolic)"
+msgstr ""
+
+msgid "English (Workman)"
+msgstr ""
+
+msgid "English (Workman, intl., with dead keys)"
+msgstr ""
+
+msgid "Uzbek"
+msgstr ""
+
+msgid "Uzbek (Latin)"
+msgstr ""
+
+msgid "Vietnamese"
+msgstr ""
+
+msgid "Vietnamese (AÐERTY)"
+msgstr ""
+
+msgid "Vietnamese (French)"
+msgstr ""
+
+msgid "Vietnamese (QĐERTY)"
+msgstr ""
+
+msgid "Vietnamese (US)"
+msgstr ""
+
+msgid "English (South Africa)"
+msgstr ""
\ No newline at end of file
diff --git a/ubinstall-gtk3 b/ubinstall-gtk3
new file mode 100755
index 0000000..f89d5cc
Binary files /dev/null and b/ubinstall-gtk3 differ
diff --git a/ubinstall-gtk_ru.po b/ubinstall-gtk_ru.po
new file mode 100644
index 0000000..daa8a09
--- /dev/null
+++ b/ubinstall-gtk_ru.po
@@ -0,0 +1,4642 @@
+# Language translations for ubinstal package.
+# Copyright (C) 2022, UBTech LLC
+# This file is distributed under the same license as the ubinstal package.
+# UBLinux Team , 2022
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ubinstal 1.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-05-22 16:12+0600\n"
+"PO-Revision-Date: \n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: \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 " version:"
+msgstr " версия:"
+
+#: 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
+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:2
+msgid "Reset application settings"
+msgstr "Удалить конфигурацию прилодения"
+
+#: source/ubl-strings.h:4
+#, fuzzy
+msgid "ubinstall"
+msgstr "Программа установки UBLinux"
+
+#: source/ubl-strings.h:6
+msgid "Welcome to UBLinux installation"
+msgstr "Добро пожаловать в установку UBLinux"
+
+#: source/ubl-strings.h:7
+msgid ""
+"This program will ask you few questions\n"
+"and help you install UBLinux on your computer"
+msgstr ""
+"Эта программа задаст вам несколько вопросов\n"
+"и поможет установить UBLinux на ваш компьютер"
+
+#: source/ubl-strings.h:9
+#, fuzzy
+msgid "Keyboard layout"
+msgstr "Раскладка клавиатуры"
+
+#: source/ubl-strings.h:11
+msgid "Cancel"
+msgstr "Отмена"
+
+#: source/ubl-strings.h:12
+msgid "Back"
+msgstr "Назад"
+
+#: source/ubl-strings.h:13
+msgid "Next"
+msgstr "Далее"
+
+#: source/ubl-strings.h:14
+msgid "Welcome"
+msgstr ""
+"Добро\n"
+"пожаловать"
+
+#: source/ubl-strings.h:15
+msgid ""
+"Licence\n"
+"agreement"
+msgstr ""
+"Лицензионное\n"
+"соглашение"
+
+#: source/ubl-strings.h:16
+msgid "Sections"
+msgstr "Разделы"
+
+#: source/ubl-strings.h:17
+msgid "Installation"
+msgstr "Установить"
+
+#: source/ubl-strings.h:18 source/ubl-strings.h:33
+msgid "Location"
+msgstr "Местоположение"
+
+#: source/ubl-strings.h:19
+msgid "Keyboard"
+msgstr "Клавиатура"
+
+#: source/ubl-strings.h:20
+msgid "Users"
+msgstr "Пользователи"
+
+#: source/ubl-strings.h:21 source/ubl-strings.h:51
+msgid "Completion"
+msgstr "Завершение"
+
+#: source/ubl-strings.h:22
+msgid ""
+"Deleting all data on the selected disk and then installing the UBLinux system"
+msgstr ""
+"Удаление всех данных на выбранном диске с последующей установкой системы "
+"UBLinux"
+
+#: source/ubl-strings.h:23
+msgid "Installation next to another system"
+msgstr "Установка рядом с другой системой"
+
+#: source/ubl-strings.h:24
+msgid "Shrinking a partition and creating a new one for installing UBLinux"
+msgstr "Уменьшение раздела и создание нового для установки UBLinux"
+
+#: source/ubl-strings.h:25
+msgid "Installation on the same partition as another system"
+msgstr "Установка в раздел другой системы"
+
+#: source/ubl-strings.h:26
+msgid "Unpacking the UBLinux file system into an existing system"
+msgstr "Установить систему UBLinux в уже существующую систему"
+
+#: source/ubl-strings.h:27
+msgid ""
+"Selecting additional software to install from the repository via the Internet"
+msgstr ""
+"Выбор дополнительного ПО для установки из репозитория через сеть Интернет"
+
+#: source/ubl-strings.h:28
+msgid "Chosen"
+msgstr "Выбран"
+
+#: source/ubl-strings.h:29
+msgid "Module name"
+msgstr "Название модуля"
+
+#: source/ubl-strings.h:30
+msgid "Tag"
+msgstr "Тэг"
+
+#: source/ubl-strings.h:31
+msgid "Description"
+msgstr "Описание"
+
+#: source/ubl-strings.h:32 source/ubl-strings.h:52
+msgid "Installation completion"
+msgstr "Завершение установки"
+
+#: source/ubl-strings.h:34
+msgid "Region:"
+msgstr "Регион:"
+
+#: source/ubl-strings.h:35
+msgid "Zone:"
+msgstr "Зона:"
+
+#: source/ubl-strings.h:36
+msgid "Language:"
+msgstr "Язык:"
+
+#: source/ubl-strings.h:37
+msgid "Keyboard model:"
+msgstr "Модель клавиатуры:"
+
+#: source/ubl-strings.h:38
+msgid "Layout changing:"
+msgstr "Переключение раскладки:"
+
+#: source/ubl-strings.h:39
+msgid "Default layout (ru)"
+msgstr "Раскладка по умолчанию (ru)"
+
+#: source/ubl-strings.h:40
+msgid "Define"
+msgstr "Задать"
+
+#: source/ubl-strings.h:41
+msgid "Your account name:"
+msgstr "Имя аккаунта:"
+
+#: source/ubl-strings.h:42
+msgid "Login:"
+msgstr "Логин:"
+
+#: source/ubl-strings.h:43
+msgid "Password"
+msgstr "Пароль"
+
+#: source/ubl-strings.h:44
+msgid "Default"
+msgstr "По умолчанию"
+
+#: source/ubl-strings.h:45
+msgid "Set a password"
+msgstr "Введите пароль"
+
+#: source/ubl-strings.h:46
+msgid "Do no set a password"
+msgstr "Пароль не требуется"
+
+#: source/ubl-strings.h:47
+msgid "Automatic login without password prompt"
+msgstr "Автоматический вход в систему без запроса пароля"
+
+#: source/ubl-strings.h:48
+msgid "Administrator password (root):"
+msgstr "Пароль администратора (root):"
+
+#: source/ubl-strings.h:49
+msgid "Computer name:"
+msgstr "Имя компьютера"
+
+#: source/ubl-strings.h:50
+msgid "User"
+msgstr "Пользователь"
+
+#: source/ubl-strings.h:53
+msgid "Select device:"
+msgstr "Выберите устройство хранения:"
+
+#: source/ubl-strings.h:54
+msgid "Choose a section:"
+msgstr "Выберите раздел:"
+
+#: source/ubl-strings.h:55
+msgid ""
+"Attention! The selected partition will be modified: the size will be "
+"reduced. In the resulting free space, a partition will be created into which "
+"the UBLinux OS will be\n"
+"installed."
+msgstr ""
+"Внимание! Выбранный раздел будет модифицирован: размер будет уменьшен. В "
+"полученном свободном пространстве будет создан раздел, в который будет "
+"произведена установка ОС UBLinux"
+
+#: source/ubl-strings.h:56
+msgid "Device"
+msgstr "Устройство"
+
+#: source/ubl-strings.h:57
+msgid "Mark"
+msgstr "Метка"
+
+#: source/ubl-strings.h:58
+msgid "Size"
+msgstr "Размер"
+
+#: source/ubl-strings.h:59
+msgid "Free"
+msgstr "Свободно"
+
+#: source/ubl-strings.h:60
+msgid "Specify the size of the new partition for UBLinux OS:"
+msgstr "Укажите размер нового раздела для ОС UBLinux:"
+
+#: source/ubl-strings.h:61
+msgid "Tb"
+msgstr "Тб"
+
+#: source/ubl-strings.h:62
+msgid "Gb"
+msgstr "Гб"
+
+#: source/ubl-strings.h:63
+msgid "Mb"
+msgstr "Мб"
+
+#: source/ubl-strings.h:64
+msgid "Available languages in the system:"
+msgstr "Доступные языки в системе:"
+
+#: source/ubl-strings.h:66
+msgid "No device were chosen"
+msgstr "Устройство не выбрано"
+
+#: source/ubl-strings.h:68
+msgid "Installation parameters"
+msgstr "Параметры установки"
+
+#: source/ubl-strings.h:71 source/ubl-strings.h:93
+msgid "Keyboard layout language"
+msgstr "Раскладка клавиатуры"
+
+#: source/ubl-strings.h:73
+msgid "Region were not fullified"
+msgstr "Регион не был выбран"
+
+#: source/ubl-strings.h:74
+msgid "Zone were not fullified"
+msgstr "Зона не была выбрана"
+
+#: source/ubl-strings.h:75
+msgid "Languages list is empty"
+msgstr "Список доступных языков не был заполнен"
+
+#: source/ubl-strings.h:76
+msgid "System locale hasn't been chosen"
+msgstr "Язык системы не был выбран"
+
+#: source/ubl-strings.h:77
+msgid "Manual layouts has been chosen but empty"
+msgstr "Ручной выбор списка раскладок клавиатуры выбран, но список пуст"
+
+#: source/ubl-strings.h:79
+msgid "Password input"
+msgstr "Пароль"
+
+#: source/ubl-strings.h:80
+msgid "Password mismatch"
+msgstr "Пароли не совпадают"
+
+#: source/ubl-strings.h:81
+msgid "Empty important field"
+msgstr "Пустое важное поле"
+
+#: source/ubl-strings.h:82
+msgid "Password must be at least"
+msgstr "Пароль должен быть как минимум"
+
+#: source/ubl-strings.h:82
+msgid "characters"
+msgstr "символов"
+
+#: source/ubl-strings.h:84
+msgid "Restart PC"
+msgstr "Перезагрузка"
+
+#: source/ubl-strings.h:85
+msgid "Exit"
+msgstr "Выйти"
+
+#: source/ubl-strings.h:86
+msgid "Choose file system type for the section:"
+msgstr "Выберите тип файловой системы для раздела"
+
+#: source/ubl-strings.h:87
+msgid "Section name:"
+msgstr "Имя раздела:"
+
+#: source/ubl-strings.h:88
+msgid "Format"
+msgstr "Форматировать"
+
+#: source/ubl-strings.h:90
+msgid ""
+"You have UBLinux installed on your computer.\n"
+"You can reboot and use your new system\n"
+"or continue working in the UBLinux Live environment."
+msgstr ""
+"На вашем компьютере установлена система UBLinux.\n"
+"Вы можете перезагрузить и использовать свою новую систему\n"
+"или продолжить работу в среде UBLinux Live."
+
+#: source/ubl-strings.h:92
+msgid "Available languages in the system"
+msgstr "Доступные языки в системе"
+
+#: source/ubl-strings.h:94
+msgid "Apply"
+msgstr "Применить"
+
+#: source/ubl-strings.h:95
+msgid "Success"
+msgstr "Готово"
+
+#: source/ubl-strings.h:96
+msgid "Layout"
+msgstr "Раскладка клавиатуры"
+
+#: source/ubl-strings.h:97
+msgid "Designation"
+msgstr "Обозначение"
+
+#: source/ubl-strings.h:98
+msgid "Serial"
+msgstr "Серийный номер"
+
+#: source/ubl-strings.h:99
+msgid "Section"
+msgstr "Раздел"
+
+#: source/ubl-strings.h:100
+msgid "Capacity"
+msgstr "Объём"
+
+#: source/ubl-strings.h:101
+msgid "Free space"
+msgstr "Свободно"
+
+#: source/ubl-strings.h:102
+msgid "File system"
+msgstr "Тип ФС"
+
+#: source/ubl-strings.h:103
+msgid "Default (L_Alt + L_Shift)"
+msgstr "По умолчанию ((L_Alt + L_Shift))"
+
+#: source/ubl-strings.h:104
+msgid "Default (Regular 105-key)"
+msgstr "По умолчанию ((Regular 105-key))"
+
+#: source/ubl-strings.h:102
+msgid "Installation configuration has ended"
+msgstr "Настройка установщика завершена"
+
+#: source/ubl-strings.h:102
+msgid "UBLinux OS installation is about to begin"
+msgstr "Начало установки ОС UBLinux"
+
+msgid "Afrikaans"
+msgstr "Африканский"
+
+msgid "Arabic"
+msgstr "Арабский"
+
+msgid "Assamese"
+msgstr "Ассамский"
+
+msgid "Azerbaijani"
+msgstr "Азербайджанский"
+
+msgid "Belarusian"
+msgstr "Беларусский"
+
+msgid "Bulgarian"
+msgstr "Болгарский"
+
+msgid "Bengali"
+msgstr "Бенгальский"
+
+msgid "Bosnian"
+msgstr "Боснийский"
+
+msgid "Catalan"
+msgstr "Каталонский"
+
+msgid "Czech"
+msgstr "Чешский"
+
+msgid "Danish"
+msgstr "Датский"
+
+msgid "German"
+msgstr "Немецкий"
+
+msgid "Greek"
+msgstr "Греческий"
+
+msgid "English"
+msgstr "Английский"
+
+msgid "Spanish"
+msgstr "Испанский"
+
+msgid "Estonian"
+msgstr "Эстонский"
+
+msgid "Finnish"
+msgstr "Финский"
+
+msgid "French"
+msgstr "Французский"
+
+msgid "Gujarati"
+msgstr "Гуджаратский"
+
+msgid "Hebrew"
+msgstr "Иврит"
+
+msgid "Hindi"
+msgstr "Хинди"
+
+msgid "Croatian"
+msgstr "Хорватский"
+
+msgid "Hungarian"
+msgstr "Венгерский"
+
+msgid "Armenian"
+msgstr "Армянский"
+
+msgid "Indonesian"
+msgstr "Индонезийский"
+
+msgid "Icelandic"
+msgstr "Исландский"
+
+msgid "Italian"
+msgstr "Итальянский"
+
+msgid "Japanese"
+msgstr "Японский"
+
+msgid "Georgian"
+msgstr "Грузинский"
+
+msgid "Kazakh"
+msgstr "Казахский"
+
+msgid "Kannada"
+msgstr "Каннада"
+
+msgid "Korean"
+msgstr "Корейский"
+
+msgid "Kashmiri"
+msgstr "Кашмирский"
+
+msgid "Kurdish"
+msgstr "Курдский"
+
+msgid "Kirghiz"
+msgstr "Киргизский"
+
+msgid "Lithuanian"
+msgstr "Литовский"
+
+msgid "Latvian"
+msgstr "Латышский"
+
+msgid "Macedonian"
+msgstr "Македонский"
+
+msgid "Malayalam"
+msgstr "Малаялам"
+
+msgid "Marathi"
+msgstr "Маратхи"
+
+msgid "Malay"
+msgstr "Малайский"
+
+msgid "Maltese"
+msgstr "Мальтийский"
+
+msgid "Bokmal"
+msgstr "Букмол"
+
+msgid "Dutch"
+msgstr "Нидерландский"
+
+msgid "Nynorsk"
+msgstr "Норвежский"
+
+msgid "Oriya"
+msgstr "Ория"
+
+msgid "Punjabi"
+msgstr "Панджаби"
+
+msgid "Polish"
+msgstr "Польский"
+
+msgid "Portuguese"
+msgstr "Португальский"
+
+msgid "Romanian"
+msgstr "Румынский"
+
+msgid "Russian"
+msgstr "Русский"
+
+msgid "Sanskrit"
+msgstr "Санскрит"
+
+msgid "Slovak"
+msgstr "Словацкий"
+
+msgid "Slovenian"
+msgstr "Словенский"
+
+msgid "Albanian"
+msgstr "Албанский"
+
+msgid "Serbian"
+msgstr "Сербский"
+
+msgid "Swedish"
+msgstr "Шведский"
+
+msgid "Tamil"
+msgstr "Тамильский"
+
+msgid "Telugu"
+msgstr "Тулугу"
+
+msgid "Thai"
+msgstr "Тайский"
+
+msgid "Turkish"
+msgstr "Турецкий"
+
+msgid "Ukrainian"
+msgstr "Украинский"
+
+msgid "American"
+msgstr "Американский английский"
+
+msgid "Vietnamese"
+msgstr "Вьетнамский"
+
+msgid "Simplified Chinese"
+msgstr "Упрощённый Китайский"
+
+msgid "Traditional Chinese"
+msgstr "Традиционный Китайский"
+
+msgid "Chinese"
+msgstr "Китайский"
+
+msgid "Generic 86-key PC"
+msgstr "Обычная 86-клавишная"
+
+msgid "Generic 101-key PC"
+msgstr "Обычная 101-клавишная"
+
+msgid "Generic 102-key PC"
+msgstr "Обычная 102-клавишная"
+
+msgid "Generic 104-key PC"
+msgstr "Обычная 104-клавишная"
+
+msgid "Generic 104-key PC with L-shaped Enter key"
+msgstr "Обычная 104-клавишная (Enter в форме буквы L)"
+
+msgid "Generic 105-key PC"
+msgstr "Обычная 105-клавишная"
+
+msgid "Dell 101-key PC"
+msgstr "Обычная 101-клавишная"
+
+msgid "Abidjan"
+msgstr "Абиджан"
+
+msgid "Accra"
+msgstr "Аккра"
+
+msgid "Acre"
+msgstr "Акр"
+
+msgid "Adak"
+msgstr "Адак"
+
+msgid "Addis_Ababa"
+msgstr "Аддис-Абеба"
+
+msgid "Adelaide"
+msgstr "Аделаида"
+
+msgid "Aden"
+msgstr "Аден"
+
+msgid "Africa"
+msgstr "Африка"
+
+msgid "Alaska"
+msgstr "Аляска"
+
+msgid "Aleutian"
+msgstr "Алеутский"
+
+msgid "Algiers"
+msgstr "Алжир"
+
+msgid "Almaty"
+msgstr "Алматы"
+
+msgid "America"
+msgstr "Америка"
+
+msgid "Amman"
+msgstr "Амман"
+
+msgid "Amsterdam"
+msgstr "Амстердам"
+
+msgid "Anadyr"
+msgstr "Анадырь"
+
+msgid "Anchorage"
+msgstr "Анкоридж"
+
+msgid "Andorra"
+msgstr "Андорра"
+
+msgid "Anguilla"
+msgstr "Ангилья"
+
+msgid "Antananarivo"
+msgstr "Антананариву"
+
+msgid "Antarctica"
+msgstr "Антарктида"
+
+msgid "Antigua"
+msgstr "Антигуа"
+
+msgid "Apia"
+msgstr "Апиа"
+
+msgid "Aqtau"
+msgstr "Актау"
+
+msgid "Aqtobe"
+msgstr "Актобе"
+
+msgid "Araguaina"
+msgstr "Арагуайна"
+
+msgid "Arctic"
+msgstr "Арктика"
+
+msgid "Arizona"
+msgstr "Аризона"
+
+msgid "Aruba"
+msgstr "Аруба"
+
+msgid "Ashgabat"
+msgstr "Ашхабад"
+
+msgid "Ashkhabad"
+msgstr "Ашхабад"
+
+msgid "Asia"
+msgstr "Азия"
+
+msgid "Asmara"
+msgstr "Асмэра"
+
+msgid "Asmera"
+msgstr "Асмера"
+
+msgid "Astrakhan"
+msgstr "Астрахань"
+
+msgid "Asuncion"
+msgstr "Асунсьон"
+
+msgid "Athens"
+msgstr "Афины"
+
+msgid "Atikokan"
+msgstr "Атикокан"
+
+msgid "Atka"
+msgstr "Атка"
+
+msgid "Atlantic"
+msgstr "Атлантика"
+
+msgid "Atyrau"
+msgstr "Атырау"
+
+msgid "Auckland"
+msgstr "Окленд"
+
+msgid "Australia"
+msgstr "Австралия"
+
+msgid "Azores"
+msgstr "Азорские острова"
+
+msgid "Baghdad"
+msgstr "Багдад"
+
+msgid "Bahia"
+msgstr "Баия"
+
+msgid "Bahia_Banderas"
+msgstr "Баия_Бандерас"
+
+msgid "Bahrain"
+msgstr "Бахрейн"
+
+msgid "BajaNorte"
+msgstr "БахаНорте"
+
+msgid "BajaSur"
+msgstr "Южная Нижняя Калифорния"
+
+msgid "Baku"
+msgstr "Баку"
+
+msgid "Bamako"
+msgstr "Бамако"
+
+msgid "Bangkok"
+msgstr "Бангкок"
+
+msgid "Bangui"
+msgstr "Банги"
+
+msgid "Banjul"
+msgstr "Банжул"
+
+msgid "Barbados"
+msgstr "Барбадос"
+
+msgid "Barnaul"
+msgstr "Барнаул"
+
+msgid "Beirut"
+msgstr "Бейрут"
+
+msgid "Belem"
+msgstr "Белен"
+
+msgid "Belfast"
+msgstr "Белфаст"
+
+msgid "Belgrade"
+msgstr "Белград"
+
+msgid "Belize"
+msgstr "Белиз"
+
+msgid "Berlin"
+msgstr "Берлин"
+
+msgid "Bermuda"
+msgstr "Бермуды"
+
+msgid "Beulah"
+msgstr "Беула"
+
+msgid "Bishkek"
+msgstr "Бишкек"
+
+msgid "Bissau"
+msgstr "Бисау"
+
+msgid "Blanc-Sablon"
+msgstr "Блан-Саблон"
+
+msgid "Blantyre"
+msgstr "Блантайр"
+
+msgid "Boa_Vista"
+msgstr "Боа_Виста"
+
+msgid "Bogota"
+msgstr "Богота"
+
+msgid "Boise"
+msgstr "Бойсе"
+
+msgid "Bougainville"
+msgstr "Бугенвиль"
+
+msgid "Bratislava"
+msgstr "Братислава"
+
+msgid "Brazil"
+msgstr "Бразилия"
+
+msgid "Brazzaville"
+msgstr "Браззавиль"
+
+msgid "Brisbane"
+msgstr "Брисбен"
+
+msgid "Broken_Hill"
+msgstr "Брокен-Хилл"
+
+msgid "Brunei"
+msgstr "Бруней"
+
+msgid "Brussels"
+msgstr "Брюссель"
+
+msgid "Bucharest"
+msgstr "Бухарест"
+
+msgid "Budapest"
+msgstr "Будапешт"
+
+msgid "Buenos_Aires"
+msgstr "Буэнос Айрес"
+
+msgid "Bujumbura"
+msgstr "Бужумбура"
+
+msgid "Busingen"
+msgstr "Бузинген"
+
+msgid "Cairo"
+msgstr "Каир"
+
+msgid "Calcutta"
+msgstr "Калькутта"
+
+msgid "Cambridge_Bay"
+msgstr "Кембридж Бэй"
+
+msgid "Campo_Grande"
+msgstr "Кампо_Гранде"
+
+msgid "Canada"
+msgstr "Канада"
+
+msgid "Canary"
+msgstr "Канари"
+
+msgid "Canberra"
+msgstr "Канберра"
+
+msgid "Cancun"
+msgstr "Канкун"
+
+msgid "Cape_Vepde"
+msgstr "Кабо-Верде"
+
+msgid "Cape_Verde"
+msgstr "Кабо-Верде"
+
+msgid "Caracas"
+msgstr "Каракас"
+
+msgid "Casablanca"
+msgstr "Касабланка"
+
+msgid "Casey"
+msgstr "Кейси"
+
+msgid "Catamarca"
+msgstr "Катамарка"
+
+msgid "Cayenne"
+msgstr "Кайенна"
+
+msgid "Cayman"
+msgstr "Кайман"
+
+msgid "Center"
+msgstr "Центр"
+
+msgid "Central"
+msgstr "Центральный"
+
+msgid "Ceuta"
+msgstr "Сеута"
+
+msgid "Chagos"
+msgstr "Чагос"
+
+msgid "Chatham"
+msgstr "Чатем"
+
+msgid "Chicago"
+msgstr "Чикаго"
+
+msgid "Chihuahua"
+msgstr "Чихуахуа"
+
+msgid "Chile"
+msgstr "Чили"
+
+msgid "Chisinau"
+msgstr "Кишинев"
+
+msgid "Chita"
+msgstr "Чита"
+
+msgid "Choibalsan"
+msgstr "Чойбалсан"
+
+msgid "Chongqing"
+msgstr "Чунцин"
+
+msgid "Christmas"
+msgstr "Рождество"
+
+msgid "Chungking"
+msgstr "Чунцин"
+
+msgid "Chuuk"
+msgstr "Чуук"
+
+msgid "Ciudad_Juarez"
+msgstr "Сьюдад_Хуарес"
+
+msgid "Clock"
+msgstr "Часы"
+
+msgid "Close"
+msgstr "Закрыть"
+
+msgid "Cocos"
+msgstr "Кокос"
+
+msgid "Colombo"
+msgstr "Коломбо"
+
+msgid "ComodRivadavia"
+msgstr "Комодоро-Ривадавия"
+
+msgid "Comoro"
+msgstr "Коморо"
+
+msgid "Conakry"
+msgstr "Конакри"
+
+msgid "Continental"
+msgstr "Континентальный"
+
+msgid "Copenhagen"
+msgstr "Копенгаген"
+
+msgid "Coral_Harbour"
+msgstr "Корал Харбор"
+
+msgid "Cordoba"
+msgstr "Кордова"
+
+msgid "Costa_Rica"
+msgstr "Коста_Рика"
+
+msgid "Creston"
+msgstr "Крестон"
+
+msgid "Cuiaba"
+msgstr "Куяба"
+
+msgid "Curacao"
+msgstr "Кюрасао"
+
+msgid "Currie"
+msgstr "Карри"
+
+msgid "Dacca"
+msgstr "Дакка"
+
+msgid "Dakar"
+msgstr "Дакар"
+
+msgid "Damascus"
+msgstr "Дамаск"
+
+msgid "Danmarkshavn"
+msgstr "Данмарксхавн"
+
+msgid "Dar_es_Salaam"
+msgstr "Дар-эс-Салам"
+
+msgid "Darwin"
+msgstr "Дарвин"
+
+msgid "Davis"
+msgstr "Дэвис"
+
+msgid "Dawson"
+msgstr "Доусон"
+
+msgid "Dawson_Creek"
+msgstr "Доусон Крик"
+
+msgid "DeNoronha"
+msgstr "Фернанду-ди-Норонья"
+
+msgid "Denver"
+msgstr "Денвер"
+
+msgid "Detroit"
+msgstr "Детройт"
+
+msgid "Dhaka"
+msgstr "Дакка"
+
+msgid "Dili"
+msgstr "Дили"
+
+msgid "Djibouti"
+msgstr "Джибути"
+
+msgid "Dominica"
+msgstr "Доминика"
+
+msgid "Douala"
+msgstr "Дуала"
+
+msgid "Dubai"
+msgstr "Дубай"
+
+msgid "Dublin"
+msgstr "Дублин"
+
+msgid "DumontDUrville"
+msgstr "Дюмон-д-Юрвиль"
+
+msgid "Dushanbe"
+msgstr "Душанбе"
+
+msgid "ERROR"
+msgstr "ОШИБКА"
+
+msgid "East"
+msgstr "Восток"
+
+msgid "East-Indiana"
+msgstr "Восточная Индиана"
+
+msgid "Easter"
+msgstr "Пасха"
+
+msgid "EasterIsland"
+msgstr "Остров Пасхи"
+
+msgid "Easterlsland"
+msgstr "Остров Пасхи"
+
+msgid "Eastern"
+msgstr "Восточный"
+
+msgid "Edmonton"
+msgstr "Эдмонтон"
+
+msgid "Efate"
+msgstr "Эфате"
+
+msgid "Eirunepe"
+msgstr "Эйрунепе"
+
+msgid "El_Aaiun"
+msgstr "Эль_Аайун"
+
+msgid "El_Salvador"
+msgstr "Сальвадор"
+
+msgid "Enderbury"
+msgstr "Эндербери"
+
+msgid "Ensenada"
+msgstr "Энсенада"
+
+msgid "Eucla"
+msgstr "Евкла"
+
+msgid "Europe"
+msgstr "Европа"
+
+msgid "Faeroe"
+msgstr "Фарерские острова"
+
+msgid "Fakaofo"
+msgstr "Факаофо"
+
+msgid "Famagusta"
+msgstr "Фамагуста"
+
+msgid "Faroe"
+msgstr "Фарерские острова"
+
+msgid "Fiji"
+msgstr "Фиджи"
+
+msgid "Fort_Nelson"
+msgstr "Форт Нельсон"
+
+msgid "Fort_Wayne"
+msgstr "Форт_Уэйн"
+
+msgid "Fortaleza"
+msgstr "Форталеза"
+
+msgid "Freetown"
+msgstr "Фритаун"
+
+msgid "Funafuti"
+msgstr "Фунафути"
+
+msgid "GMT-1"
+msgstr "ГМТ-1"
+
+msgid "GMT-3"
+msgstr "ГМТ-3"
+
+msgid "Gaborone"
+msgstr "Габороне"
+
+msgid "Galapagos"
+msgstr "Галапагос"
+
+msgid "Gambier"
+msgstr "Гамбье"
+
+msgid "Gaza"
+msgstr "Газа"
+
+msgid "General"
+msgstr "Генерал-Сантос"
+
+msgid "Gibraltar"
+msgstr "Гибралтар"
+
+msgid "Glace_Bay"
+msgstr "Глейс-Бей"
+
+msgid "Godthab"
+msgstr "Годтаб"
+
+msgid "Goose_Bay"
+msgstr "Гуз-Бей"
+
+msgid "Grand_Turk"
+msgstr "Гранд_Турк"
+
+msgid "Greenwich"
+msgstr "Гринвич"
+
+msgid "Grenada"
+msgstr "Гренада"
+
+msgid "Guadalcanal"
+msgstr "Гуадалканал"
+
+msgid "Guadeloupe"
+msgstr "Гваделупа"
+
+msgid "Guam"
+msgstr "Гуам"
+
+msgid "Guatemala"
+msgstr "Гватемала"
+
+msgid "Guayaquil"
+msgstr "Гуаякиль"
+
+msgid "Guernsey"
+msgstr "Гернси"
+
+msgid "Guyana"
+msgstr "Гайана"
+
+msgid "Halifax"
+msgstr "Галифакс"
+
+msgid "Harare"
+msgstr "Хараре"
+
+msgid "Harbin"
+msgstr "Харбин"
+
+msgid "Havana"
+msgstr "Гавана"
+
+msgid "Hawaii"
+msgstr "Гавайи"
+
+msgid "Hebron"
+msgstr "Хеврон"
+
+msgid "Helsinki"
+msgstr "Хельсинки"
+
+msgid "Hermosillo"
+msgstr "Эрмосильо"
+
+msgid "Ho_Chi_Minh"
+msgstr "Хо_Чи_Мин"
+
+msgid "Hobart"
+msgstr "Хобарт"
+
+msgid "Hong_Kong"
+msgstr "Гонконг"
+
+msgid "Honolulu"
+msgstr "Гонолулу"
+
+msgid "Hovd"
+msgstr "Ховд"
+
+msgid "Indian"
+msgstr "Индиана"
+
+msgid "Indiana"
+msgstr "Индианан"
+
+msgid "Indiana-Starke"
+msgstr "Индиана-Старке"
+
+msgid "Indianapolis"
+msgstr "Индианаполис"
+
+msgid "Inuvik"
+msgstr "Инувик"
+
+msgid "Iqaluit"
+msgstr "Икалуит"
+
+msgid "Irkutsk"
+msgstr "Иркутск"
+
+msgid "Isle_of_Man"
+msgstr "Остров Мэн"
+
+msgid "Istanbul"
+msgstr "Стамбул"
+
+msgid "Jakarta"
+msgstr "Джакарта"
+
+msgid "Jamaica"
+msgstr "Ямайка"
+
+msgid "Jan_Mayen"
+msgstr "Ян_Майен"
+
+msgid "Jayapura"
+msgstr "Джаяпура"
+
+msgid "Jersey"
+msgstr "Джерси"
+
+msgid "Jerusalem"
+msgstr "Иерусалим"
+
+msgid "Johannesburg"
+msgstr "Йоханнесбург"
+
+msgid "Johnston"
+msgstr "Джонстон"
+
+msgid "Juba"
+msgstr "Джуба"
+
+msgid "Jujuy"
+msgstr "Жужуй"
+
+msgid "Juneau"
+msgstr "Джуно"
+
+msgid "Kabul"
+msgstr "Кабул"
+
+msgid "Kaliningrad"
+msgstr "Калининград"
+
+msgid "Kamchatka"
+msgstr "Камчатка"
+
+msgid "Kampala"
+msgstr "Кампала"
+
+msgid "Kanton"
+msgstr "Кантон"
+
+msgid "Karachi"
+msgstr "Карачи"
+
+msgid "Kashgar"
+msgstr "Кашгар"
+
+msgid "Kathmandu"
+msgstr "Катманду"
+
+msgid "Katmandu"
+msgstr "Катманду"
+
+msgid "Kerguelen"
+msgstr "Кергелен"
+
+msgid "Khandyga"
+msgstr "Хандыга"
+
+msgid "Khartoum"
+msgstr "Хартум"
+
+msgid "Kiev"
+msgstr "Киев"
+
+msgid "Kigali"
+msgstr "Кигали"
+
+msgid "Kinshasa"
+msgstr "Киншаса"
+
+msgid "Kiritimati"
+msgstr "Киритимати"
+
+msgid "Kirov"
+msgstr "Киров"
+
+msgid "Knox"
+msgstr "Ноксвилл"
+
+msgid "Knox_IN"
+msgstr "Нокс_IN"
+
+msgid "Kolkata"
+msgstr "Калькутта"
+
+msgid "Kralendijk"
+msgstr "Кралендейк"
+
+msgid "Krasnoyarsk"
+msgstr "Красноярск"
+
+msgid "Kuala_Lumpur"
+msgstr "Куала-Лумпур"
+
+msgid "Kuching"
+msgstr "Кучинг"
+
+msgid "Kuwait"
+msgstr "Кувейт"
+
+msgid "Kwajalein"
+msgstr "Кваджалейн"
+
+msgid "Kyiv"
+msgstr "Киев"
+
+msgid "LHI"
+msgstr "Лхи"
+
+msgid "La_Paz"
+msgstr "Ла_Пас"
+
+msgid "La_Rioja"
+msgstr "Риоха"
+
+msgid "Lagos"
+msgstr "Лагос"
+
+msgid "Libreville"
+msgstr "Либревиль"
+
+msgid "Lima"
+msgstr "Лима"
+
+msgid "Lindeman"
+msgstr "Линдеман"
+
+msgid "Lisbon"
+msgstr "Лиссабон"
+
+msgid "Ljubljana"
+msgstr "Любляна"
+
+msgid "Lome"
+msgstr "Ломе"
+
+msgid "London"
+msgstr "Лондон"
+
+msgid "Longyearbyen"
+msgstr "Лонгйир"
+
+msgid "Lord_Howe"
+msgstr "Лорд_Хау"
+
+msgid "Los_Angeles"
+msgstr "Лос-Анджелес"
+
+msgid "Louisville"
+msgstr "Луисвилл"
+
+msgid "Lower_Princes"
+msgstr "Лоуэр-Принс-Куотер"
+
+msgid "Luanda"
+msgstr "Луанда"
+
+msgid "Lubumbashi"
+msgstr "Лубумбаши"
+
+msgid "Lusaka"
+msgstr "Лусака"
+
+msgid "Luxembourg"
+msgstr "Люксембург"
+
+msgid "Macao"
+msgstr "Макао"
+
+msgid "Macau"
+msgstr "Макао"
+
+msgid "Maceio"
+msgstr "Масейо"
+
+msgid "Macquarie"
+msgstr "Маккуори"
+
+msgid "Madeira"
+msgstr "Мадейра"
+
+msgid "Madrid"
+msgstr "Мадрид"
+
+msgid "Magadan"
+msgstr "Магадан"
+
+msgid "Mahe"
+msgstr "Маэ"
+
+msgid "Majuro"
+msgstr "Маджуро"
+
+msgid "Makassar"
+msgstr "Макассар"
+
+msgid "Malabo"
+msgstr "Малабо"
+
+msgid "Maldives"
+msgstr "Мальдивы"
+
+msgid "Malta"
+msgstr "Мальта"
+
+msgid "Managua"
+msgstr "Манагуа"
+
+msgid "Manaus"
+msgstr "Манаус"
+
+msgid "Manila"
+msgstr "Манила"
+
+msgid "Maputo"
+msgstr "Мапуту"
+
+msgid "Marengo"
+msgstr "Маренго"
+
+msgid "Mariehamn"
+msgstr "Мариехамн"
+
+msgid "Marigot"
+msgstr "Мариго"
+
+msgid "Marquesas"
+msgstr "Маркизские острова"
+
+msgid "Martinique"
+msgstr "Мартиника"
+
+msgid "Maseru"
+msgstr "Масеру"
+
+msgid "Matamoros"
+msgstr "Матаморос"
+
+msgid "Mauritius"
+msgstr "Маврикий"
+
+msgid "Mawson"
+msgstr "Моусон"
+
+msgid "Mayotte"
+msgstr "Майотта"
+
+msgid "Mazatlan"
+msgstr "Масатлан"
+
+msgid "Mbabane"
+msgstr "Мбабане"
+
+msgid "McMurdo"
+msgstr "МакМердо"
+
+msgid "Melbourne"
+msgstr "Мельбурн"
+
+msgid "Mendoza"
+msgstr "Мендоса"
+
+msgid "Menominee"
+msgstr "Меномини"
+
+msgid "Merida"
+msgstr "Мерида"
+
+msgid "Metlakatla"
+msgstr "Метлакатла"
+
+msgid "Mexico"
+msgstr "Мексика"
+
+msgid "Mexico_City"
+msgstr "Мехико"
+
+msgid "Michigan"
+msgstr "Мичиган"
+
+msgid "Midway"
+msgstr "Мидуэй"
+
+msgid "Minsk"
+msgstr "Минск"
+
+msgid "Minutes"
+msgstr "Минуты"
+
+msgid "Miquelon"
+msgstr "Микелон"
+
+msgid "Mogadishu"
+msgstr "Могадишо"
+
+msgid "Monaco"
+msgstr "Монако"
+
+msgid "Moncton"
+msgstr "Монктон"
+
+msgid "Monrovia"
+msgstr "Монровия"
+
+msgid "Monterrey"
+msgstr "Монтеррей"
+
+msgid "Montevideo"
+msgstr "Монтевидео"
+
+msgid "Monticello"
+msgstr "Монтиселло"
+
+msgid "Montreal"
+msgstr "Монреаль"
+
+msgid "Montserrat"
+msgstr "Монтсеррат"
+
+msgid "Moscow"
+msgstr "Москва"
+
+msgid "Mountain"
+msgstr "Маунтин-Вью"
+
+msgid "Muscat"
+msgstr "Мускат"
+
+msgid "NSW"
+msgstr "Новый Южный Уэльс"
+
+msgid "Nairobi"
+msgstr "Найроби"
+
+msgid "Nassau"
+msgstr "Нассау"
+
+msgid "Nauru"
+msgstr "Науру"
+
+msgid "Ndjamena"
+msgstr "Нджамена"
+
+msgid "New_Salem"
+msgstr "Нью-Салем"
+
+msgid "New_York"
+msgstr "Нью-Йорк"
+
+msgid "Newfoundland"
+msgstr "Ньюфаундленд"
+
+msgid "Niamey"
+msgstr "Ниамей"
+
+msgid "Nicosia"
+msgstr "Никосия"
+
+msgid "Nipigon"
+msgstr "Нипигон"
+
+msgid "Niue"
+msgstr "Ниуэ"
+
+msgid "Nome"
+msgstr "Ном"
+
+msgid "Norfolk"
+msgstr "Норфолк"
+
+msgid "Noronha"
+msgstr "Норонья"
+
+msgid "North"
+msgstr "Север"
+
+msgid "North_Dokota"
+msgstr "Северная Докота"
+
+msgid "Nouakchott"
+msgstr "Нуакшот"
+
+msgid "Noumea"
+msgstr "Нумеа"
+
+msgid "Novokuznetsk"
+msgstr "Новокузнецк"
+
+msgid "Novosibirsk"
+msgstr "Новосибирск"
+
+msgid "Nuuk"
+msgstr "Нуук"
+
+msgid "OK"
+msgstr "OK"
+
+msgid "Ojinaga"
+msgstr "Охинага"
+
+msgid "Omsk"
+msgstr "Омск"
+
+msgid "Oral"
+msgstr "Уральск"
+
+msgid "Oslo"
+msgstr "Осло"
+
+msgid "Ouagadougou"
+msgstr "Уагадугу"
+
+msgid "Pacific"
+msgstr "Тихий океан"
+
+msgid "Pago_Pago"
+msgstr "Паго_Паго"
+
+msgid "Palau"
+msgstr "Палау"
+
+msgid "Palmer"
+msgstr "Палмер"
+
+msgid "Panama"
+msgstr "Панама"
+
+msgid "Pangnirtung"
+msgstr "Пангниртунг"
+
+msgid "Paramaribo"
+msgstr "Парамарибо"
+
+msgid "Paris"
+msgstr "Париж"
+
+msgid "Perth"
+msgstr "Перт"
+
+msgid "Petersburg"
+msgstr "Петербург"
+
+msgid "Phnom_Penh"
+msgstr "Пномпень"
+
+msgid "Phoenix"
+msgstr "Феникс"
+
+msgid "Pitcairn"
+msgstr "Питкэрн"
+
+msgid "Podgorica"
+msgstr "Подгорица"
+
+msgid "Pohnpei"
+msgstr "Понпеи"
+
+msgid "Ponape"
+msgstr "Понапе"
+
+msgid "Pontianak"
+msgstr "Понтианак"
+
+msgid "Port-au-Prince"
+msgstr "Порт-о-Пренс"
+
+msgid "Port_Moresby"
+msgstr "Порт_Морсби"
+
+msgid "Port_of_Spain"
+msgstr "Порт-оф-Спейн"
+
+msgid "Porto-Novo"
+msgstr "Порто-Ново"
+
+msgid "Porto_Acre"
+msgstr "Порту_Акр"
+
+msgid "Porto_Velho"
+msgstr "Порту-Велью"
+
+msgid "Prague"
+msgstr "Прага"
+
+msgid "Puerto_Rico"
+msgstr "Пуэрто-Рико"
+
+msgid "Punta_Arenas"
+msgstr "Пунта_Аренас"
+
+msgid "Pyongyang"
+msgstr "Пхеньян"
+
+msgid "Qatar"
+msgstr "Катар"
+
+msgid "Qostanay"
+msgstr "Костанай"
+
+msgid "Queensland"
+msgstr "Квинсленд"
+
+msgid "Qyzylorda"
+msgstr "Кызылорда"
+
+msgid "Rainy_River"
+msgstr "Рейни-Ривер"
+
+msgid "Rangoon"
+msgstr "Рангун"
+
+msgid "Rankin_Inlet"
+msgstr "Ранкин-Инлет"
+
+msgid "Rarotonga"
+msgstr "Раротонга"
+
+msgid "Recife"
+msgstr "Ресифи"
+
+msgid "Regina"
+msgstr "Реджайна"
+
+msgid "Resolute"
+msgstr "Резольют"
+
+msgid "Reunion"
+msgstr "Воссоединение"
+
+msgid "Reykjavik"
+msgstr "Рейкьявик"
+
+msgid "Riga"
+msgstr "Рига"
+
+msgid "Rio_Branco"
+msgstr "Рио_Бранко"
+
+msgid "Rio_Gallegos"
+msgstr "Рио-Гальегос"
+
+msgid "Riyadh"
+msgstr "Эр-Рияд"
+
+msgid "Rome"
+msgstr "Рим"
+
+msgid "Rosario"
+msgstr "Росарио"
+
+msgid "Rothera"
+msgstr "Ротера"
+
+msgid "Saigon"
+msgstr "Сайгон"
+
+msgid "Saipan"
+msgstr "Сайпан"
+
+msgid "Sakhalin"
+msgstr "Сахалин"
+
+msgid "Salta"
+msgstr "Сальта"
+
+msgid "Samara"
+msgstr "Самара"
+
+msgid "Samarkand"
+msgstr "Самарканд"
+
+msgid "Samoa"
+msgstr "Самоа"
+
+msgid "San_Juan"
+msgstr "Сан-Хуан"
+
+msgid "San_Luis"
+msgstr "Сан-Луис"
+
+msgid "San_Marino"
+msgstr "Сан Марино"
+
+msgid "Santa_Isabel"
+msgstr "Санта_Изабель"
+
+msgid "Santarem"
+msgstr "Сантарен"
+
+msgid "Santiago"
+msgstr "Сантьяго"
+
+msgid "Santo_Domingo"
+msgstr "Санто-Доминго"
+
+msgid "Sao_Paulo"
+msgstr "Сан-Паулу"
+
+msgid "Sao_Tome"
+msgstr "Сан-Томе"
+
+msgid "Sarajevo"
+msgstr "Сараево"
+
+msgid "Saratov"
+msgstr "Саратов"
+
+msgid "Saskatchewan"
+msgstr "Саскачеван"
+
+msgid "Scoresbysund"
+msgstr "Скорсби"
+
+msgid "Seoul"
+msgstr "Сеул"
+
+msgid "Shanghai"
+msgstr "Шанхай"
+
+msgid "Shiprock"
+msgstr "Шипрок"
+
+msgid "Simferopol"
+msgstr "Симферополь"
+
+msgid "Singapore"
+msgstr "Сингапур"
+
+msgid "Sitka"
+msgstr "Ситка"
+
+msgid "Skopje"
+msgstr "Скопье"
+
+msgid "Sofia"
+msgstr "София"
+
+msgid "South"
+msgstr "Саутф"
+
+msgid "South_Georgia"
+msgstr "Южная Грузия"
+
+msgid "South_Pole"
+msgstr "Южный полюс"
+
+msgid "Srednekolymsk"
+msgstr "Среднеколымск"
+
+msgid "St_Barthelemy"
+msgstr "Святой Бартелеми"
+
+msgid "St_Helena"
+msgstr "Сент-Хелина"
+
+msgid "St_Johns"
+msgstr "Сент-Джонс"
+
+msgid "St_Kitts"
+msgstr "Сент-Китс"
+
+msgid "St_Lucia"
+msgstr "Святая Люсия"
+
+msgid "St_Thomas"
+msgstr "Сент-Томас"
+
+msgid "St_Vincent"
+msgstr "Сент-Винсент"
+
+msgid "Stanley"
+msgstr "Стэнли"
+
+msgid "Stockholm"
+msgstr "Стокгольм"
+
+msgid "Swift_Current"
+msgstr "Суифт-Каррент"
+
+msgid "Sydney"
+msgstr "Сидней"
+
+msgid "Syowa"
+msgstr "Сёва"
+
+msgid "Tahiti"
+msgstr "Таити"
+
+msgid "Taipei"
+msgstr "Тайбэй"
+
+msgid "Tallinn"
+msgstr "Таллинн"
+
+msgid "Tarawa"
+msgstr "Тарава"
+
+msgid "Tashkent"
+msgstr "Ташкент"
+
+msgid "Tasmania"
+msgstr "Тасмания"
+
+msgid "Tbilisi"
+msgstr "Тбилиси"
+
+msgid "Tegucigalpa"
+msgstr "Тегусигальпа"
+
+msgid "Tehran"
+msgstr "Тегеран"
+
+msgid "Tel_Aviv"
+msgstr "Тель-Авив"
+
+msgid "Tell_City"
+msgstr "Телл-Сити"
+
+msgid "Thimbu"
+msgstr "Тимбу"
+
+msgid "Thimphu"
+msgstr "Тхимпху"
+
+msgid "Thule"
+msgstr "Туле"
+
+msgid "Thunder_Bay"
+msgstr "Тандер-Бей"
+
+msgid "Tijuana"
+msgstr "Тихуана"
+
+msgid "Timbuktu"
+msgstr "Тимбукту"
+
+msgid "Tirane"
+msgstr "Тиран"
+
+msgid "Tiraspol"
+msgstr "Тирасполь"
+
+msgid "Tokyo"
+msgstr "Токио"
+
+msgid "Tomsk"
+msgstr "Томск"
+
+msgid "Tongatapu"
+msgstr "Тонгатапу"
+
+msgid "Toronto"
+msgstr "Торонто"
+
+msgid "Tortola"
+msgstr "Тортола"
+
+msgid "Tripoli"
+msgstr "Триполи"
+
+msgid "Troll"
+msgstr "Тролль"
+
+msgid "Truk"
+msgstr "Трук"
+
+msgid "Tucuman"
+msgstr "Тукуман"
+
+msgid "Tunis"
+msgstr "Тунис"
+
+msgid "US"
+msgstr "США"
+
+msgid "Ujung_Pandang"
+msgstr "Уджунг_Панданг"
+
+msgid "Ulaanbaatar"
+msgstr "Улан-Батор"
+
+msgid "Ulan_Bator"
+msgstr "Улан_Батор"
+
+msgid "Ulyanovsk"
+msgstr "Ульяновск"
+
+msgid "Universal"
+msgstr "Юнивёрсал-Сити"
+
+msgid "Urumqi"
+msgstr "Урумчи"
+
+msgid "Ushuaia"
+msgstr "Ушуая"
+
+msgid "Ust-Nera"
+msgstr "Усть-Нера"
+
+msgid "Uzhgorod"
+msgstr "Ужгород"
+
+msgid "Vaduz"
+msgstr "Вадуц"
+
+msgid "Vancouver"
+msgstr "Ванкувер"
+
+msgid "Vatican"
+msgstr "Ватикан"
+
+msgid "Vevay"
+msgstr "Вевей"
+
+msgid "Victoria"
+msgstr "Виктория"
+
+msgid "Vienna"
+msgstr "Вена"
+
+msgid "Vientiane"
+msgstr "Вьентьян"
+
+msgid "Vilnius"
+msgstr "Вильнюс"
+
+msgid "Vincennes"
+msgstr "Венсен"
+
+msgid "Virgin"
+msgstr "Виргин"
+
+msgid "Vladivostok"
+msgstr "Владивосток"
+
+msgid "Volgograd"
+msgstr "Волгоград"
+
+msgid "Vostok"
+msgstr "Восток"
+
+msgid "Wake"
+msgstr "Уэйко"
+
+msgid "Wallis"
+msgstr "Уоллис"
+
+msgid "Warsaw"
+msgstr "Варшава"
+
+msgid "West"
+msgstr "Запад"
+
+msgid "Whitehorse"
+msgstr "Уайтхорс"
+
+msgid "Winamac"
+msgstr "Винамаке"
+
+msgid "Windhoek"
+msgstr "Виндхук"
+
+msgid "Winnipeg"
+msgstr "Виннипег"
+
+msgid "Yakutat"
+msgstr "Якутат"
+
+msgid "Yakutsk"
+msgstr "Якутск"
+
+msgid "Yancowinna"
+msgstr "Янковина"
+
+msgid "Yangon"
+msgstr "Янгон"
+
+msgid "Yap"
+msgstr "Яп"
+
+msgid "Yekaterinburg"
+msgstr "Екатеринбург"
+
+msgid "Yellowknife"
+msgstr "Йеллоунайф"
+
+msgid "Yerevan"
+msgstr "Ереван"
+
+msgid "Yukon"
+msgstr "Юкон"
+
+msgid "Zagreb"
+msgstr "Загреб"
+
+msgid "Zaporozhye"
+msgstr "Запорожье"
+
+msgid "Zulu"
+msgstr "Зулу"
+
+msgid "Zurich"
+msgstr "Цюрих"
+
+msgid "Afrikaans, South Africa"
+msgstr "Африкаанс, Южная Африка"
+
+msgid "Arabic, United Arab Emirates"
+msgstr "Арабский, ОАЭ"
+
+msgid "Arabic, Bahrain"
+msgstr "Арабский, Бахрейн"
+
+msgid "Arabic, Algeria"
+msgstr "Арабский, Алжир"
+
+msgid "Arabic, Egypt"
+msgstr "Арабский, Египет"
+
+msgid "Arabic, Iraq"
+msgstr "Арабский, Ирак"
+
+msgid "Arabic, Jordan"
+msgstr "Арабский, Иордания"
+
+msgid "Arabic, Kuwait"
+msgstr "Арабский, Кувейт"
+
+msgid "Arabic, Libya"
+msgstr "Арабский, Ливия"
+
+msgid "Arabic, Morocco"
+msgstr "Арабский, Марокко"
+
+msgid "Arabic, Oman"
+msgstr "Арабский, Оман"
+
+msgid "Arabic, Qatar"
+msgstr "Арабский, Катар"
+
+msgid "Arabic, Saudi Arabia"
+msgstr "Арабский, Саудовская Аравия"
+
+msgid "Arabic, Tunisia"
+msgstr "Арабский, Тунис"
+
+msgid "Arabic, Yemen"
+msgstr "Арабский, Йемен"
+
+msgid "Assamese, India"
+msgstr "Ассамский, Индия"
+
+msgid "Azerbaijani, Azerbaijan"
+msgstr "Азербайджанский, Азербайджан"
+
+msgid "Belarusian, Belarus"
+msgstr "Белорусский, Беларусь"
+
+msgid "Bulgarian, Bulgaria"
+msgstr "Болгарский, Болгария"
+
+msgid "Bengali, India"
+msgstr "Бенгальский"
+
+msgid "Bosnian, Bosnia and Herzegovina"
+msgstr "Боснийский, Босния и Герцеговина"
+
+msgid "Catalan, Spain"
+msgstr "Каталанский, Испания"
+
+msgid "Czech, Czech Republic"
+msgstr "Чешский, Чехия"
+
+msgid "Danish, Denmark"
+msgstr "Датский, Дания"
+
+msgid "German, Austria"
+msgstr "Немецкий, Австрия"
+
+msgid "German, Belgium"
+msgstr "Немецкий, Бельгия"
+
+msgid "German, Switzerland"
+msgstr "Немецкий, Швейцария"
+
+msgid "German, Germany"
+msgstr "Немецкий, Германия"
+
+msgid "German, Liechtenstein"
+msgstr "Немецкий, Лихтенштейн"
+
+msgid "German, Luxembourg"
+msgstr "Немецгий, Люксембург"
+
+msgid "Greek, Cyprus"
+msgstr "Греческий, Кипр"
+
+msgid "Greek, Greece"
+msgstr "Греческий, Греция"
+
+msgid "English, Australia"
+msgstr "Английский, Австралия"
+
+msgid "English, Botswana"
+msgstr "Английский, Ботсвана"
+
+msgid "English, Canada"
+msgstr "Английский, Канада"
+
+msgid "English, United Kingdom"
+msgstr "Английский, Великобритания"
+
+msgid "English, Hong Kong SAR China"
+msgstr "Английский, Гонконг (САР Китая)"
+
+msgid "English, Ireland"
+msgstr "Английский, Ирландия"
+
+msgid "English, India"
+msgstr "Английский, Индия"
+
+msgid "English, Malta"
+msgstr "Английский, Мальта"
+
+msgid "English, New Zealand"
+msgstr "Английский, Новая Зеландия"
+
+msgid "English, Philippines"
+msgstr "Английский, Филиппины"
+
+msgid "English, Singapore"
+msgstr "Английский, Сингапур"
+
+msgid "English, U.S.A."
+msgstr "Английский, США"
+
+msgid "English, Zimbabwe"
+msgstr "Английский, Зимбабве"
+
+msgid "Spanish, Argentina"
+msgstr "Испанский, Аргентина"
+
+msgid "Spanish, Bolivia"
+msgstr "Испанский, Боливия"
+
+msgid "Spanish, Chile"
+msgstr "Испанский, Чили"
+
+msgid "Spanish, Colombia"
+msgstr "Испанский, Колумбия"
+
+msgid "Spanish, Costa Rica"
+msgstr "Испанский, Коста-Рика"
+
+msgid "Spanish, Dominican Republic"
+msgstr "Испанский, Доминиканская Республика"
+
+msgid "Spanish, Ecuador"
+msgstr "Испанский, Эквадор"
+
+msgid "Spanish, Spain"
+msgstr "Испанский, Испания"
+
+msgid "Spanish, Guatemala"
+msgstr "Испанский, Гватемала"
+
+msgid "Spanish, Honduras"
+msgstr "Испанский, Гондурас"
+
+msgid "Spanish, Mexico"
+msgstr "Испанский, Мексика"
+
+msgid "Spanish, Nicaragua"
+msgstr "Испанский, Никарагуа"
+
+msgid "Spanish, Panama"
+msgstr "Испанский, Панама"
+
+msgid "Spanish, Peru"
+msgstr "Испанский, Перу"
+
+msgid "Spanish, Puerto Rico"
+msgstr "Испанский, Пуэрто-Рико"
+
+msgid "Spanish, Paraguay"
+msgstr "Испанский, Парагвай"
+
+msgid "Spanish, El Salvador"
+msgstr "Испанский, Сальвадор"
+
+msgid "Spanish, U.S.A."
+msgstr "Испанский, США"
+
+msgid "Spanish, Uruguay"
+msgstr "Испанский, Уругвай"
+
+msgid "Spanish, Venezuela"
+msgstr "Испанский, Венесуэла"
+
+msgid "Estonian, Estonia"
+msgstr "Эстонский, Эстония"
+
+msgid "Finnish, Finland"
+msgstr "Финский, Финляндия"
+
+msgid "French, Belgium"
+msgstr "Французский, Бельгия"
+
+msgid "French, Canada"
+msgstr "Французский, Канада"
+
+msgid "French, Switzerland"
+msgstr "Французский, Швейцария"
+
+msgid "French, France"
+msgstr "Французский, Франция"
+
+msgid "French, Luxembourg"
+msgstr "Французский, Люксембург"
+
+msgid "Gujarati, India"
+msgstr "Гуджарати, Индия"
+
+msgid "Hebrew, Israel"
+msgstr "Иврит, Израиль"
+
+msgid "Hindi, India"
+msgstr "Хинди, Индия"
+
+msgid "Croatian, Croatia"
+msgstr "Хорватский, Хорватия"
+
+msgid "Hungarian, Hungary"
+msgstr "Венгерский, Венгрия"
+
+msgid "Armenian, Armenia"
+msgstr "Армянский, Армения"
+
+msgid "Indonesian, Indonesia"
+msgstr "Индонезийский, Индонезия"
+
+msgid "Icelandic, Iceland"
+msgstr "Исландский, Исландия"
+
+msgid "Italian, Switzerland"
+msgstr "Итальянский, Швейцария"
+
+msgid "Italian, Italy"
+msgstr "Итальянский, Италия"
+
+msgid "Japanese, Japan"
+msgstr "Японский, Япония"
+
+msgid "Georgian, Georgia"
+msgstr "Грузинский, Грузия"
+
+msgid "Kazakh, Kazakhstan"
+msgstr "Казахский, Казахстан"
+
+msgid "Kannada, India"
+msgstr "Каннада, Индия"
+
+msgid "Korean, Korea"
+msgstr "Корейский, Корея"
+
+msgid "Kashmiri, India"
+msgstr "Кашмирский, Индия"
+
+msgid "Kurdish, Turkey"
+msgstr "Курдский, Турция"
+
+msgid "Kurdish (Sorani), Turkey"
+msgstr "Курдский (сорани), Турция"
+
+msgid "Kirghiz, Kyrgyzstan"
+msgstr "Киргизский, Киргизстан"
+
+msgid "Lithuanian, Lithuania"
+msgstr "Литовский, Литва"
+
+msgid "Latvian, Latvia"
+msgstr "Латышский, Латвия"
+
+msgid "Macedonian, Macedonia"
+msgstr "Македонский, Македония"
+
+msgid "Malayalam, India"
+msgstr "Малаялам, Индия"
+
+msgid "Marathi, India"
+msgstr "Маратхи, Индия"
+
+msgid "Malay, Malaysia"
+msgstr "Малайский, Малазия"
+
+msgid "Maltese, Malta"
+msgstr "Мальтийский, Мальта"
+
+msgid "Bokmal, Norway"
+msgstr "Букмол, Норвегия"
+
+msgid "Dutch, Belgium"
+msgstr "Голландский, Бельгия"
+
+msgid "Dutch, Netherlands"
+msgstr "Голландский, Нидерланды"
+
+msgid "Nynorsk, Norway"
+msgstr "Нюнорск, Норвегия"
+
+msgid "Oriya, India"
+msgstr "Ория, Индия"
+
+msgid "Punjabi, India"
+msgstr "Панджаби, Индия"
+
+msgid "Polish, Poland"
+msgstr "Польский, Польша"
+
+msgid "Portuguese, Brazil"
+msgstr "Португальский, Бразилия"
+
+#, fuzzy
+msgid "Portuguese, Portugal"
+msgstr "Португальский, Португалия"
+
+#, fuzzy
+msgid "Romanian, Romania"
+msgstr "Румынский, Румыния"
+
+#, fuzzy
+msgid "Russian, Russia"
+msgstr "Русский, Россия"
+
+#, fuzzy
+msgid "Russian, Ukraine"
+msgstr "Русский, Украина"
+
+#, fuzzy
+msgid "Sanskrit, India"
+msgstr "Санскрит, Индия"
+
+msgid "Slovak, Slovakia"
+msgstr "Словацкий, Словакия"
+
+#, fuzzy
+msgid "Slovenian, Slovenia"
+msgstr "Словенский, Свловения"
+
+#, fuzzy
+msgid "Albanian, Albania"
+msgstr "Албанский, Албания"
+
+msgid "Serbian, Montenegro"
+msgstr "Сербский, Черногория"
+
+msgid "Serbian, Montenegro (Latin)"
+msgstr "Сербский, Черногория (латиница)"
+
+#, fuzzy
+msgid "Serbian, Serbia"
+msgstr "Сербский, Сербия"
+
+msgid "Serbian, Serbia (Latin)"
+msgstr "Сербский (латиница), Сербия"
+
+#, fuzzy
+msgid "Swedish, Sweden"
+msgstr "Шведский, Швеция"
+
+msgid "Tamil, India"
+msgstr "Тамильский, Индия"
+
+#, fuzzy
+msgid "Telugu, India"
+msgstr "Телугу, Индия"
+
+msgid "Thai, Thailand"
+msgstr "Тайский, Таиланд"
+
+#, fuzzy
+msgid "Turkish, Turkey"
+msgstr "Турецкий, Турция"
+
+#, fuzzy
+msgid "Ukrainian, Ukraine"
+msgstr "Украинский, Украина"
+
+#, fuzzy
+msgid "Vietnamese, Vietnam"
+msgstr "Вьетнамский, Вьетнам"
+
+#, fuzzy
+msgid "Simplified Chinese, China"
+msgstr "Упрощенный китайский, Китай"
+
+#, fuzzy
+msgid "Traditional Chinese, Hong Kong SAR China"
+msgstr "Традиционный китайский, Гонконг (САР Китая)"
+
+#, fuzzy
+msgid "Chinese, Singapore"
+msgstr "Китайский, Сингапур"
+
+#, fuzzy
+msgid "Traditional Chinese, Taiwan"
+msgstr "Традиционный китайский, Тайвань"
+
+msgid "Dari"
+msgstr "Дари"
+
+msgid "Dari (Afghanistan, OLPC)"
+msgstr "Дари (Афганистан, OLPC)"
+
+msgid "Pashto (Afghanistan, OLPC)"
+msgstr "Пушту (Афганистан, OLPC)"
+
+msgid "Pashto"
+msgstr "Пушту"
+
+msgid "Uzbek (Afghanistan, OLPC)"
+msgstr "Узбекский (Афганистан, OLPC)"
+
+msgid "Uzbek (Afghanistan)"
+msgstr "Узбекский (Афганистан)"
+
+msgid "Albanian (Plisi)"
+msgstr "Албанский (Plisi)"
+
+msgid "Albanian (Veqilharxhi)"
+msgstr "Албанский (Veqilharxhi)"
+
+msgid "Armenian (alt. eastern)"
+msgstr "Армянский (альтернативный, восточный)"
+
+msgid "Armenian (eastern)"
+msgstr "Армянский (восточный)"
+
+msgid "Armenian (OLPC, phonetic)"
+msgstr "Армянский (OLPC, фонетический)"
+
+msgid "Armenian (alt. phonetic)"
+msgstr "Армянский (альтернативный, фонетический)"
+
+msgid "Armenian (phonetic)"
+msgstr "Армянский (фонетический)"
+
+msgid "Armenian (western)"
+msgstr "Армянский (западный)"
+
+msgid "APL"
+msgstr "APL"
+
+msgid "APL symbols (IBM APL2)"
+msgstr "Символы APL (IBM APL2)"
+
+msgid "APL symbols (Manugistics APL*PLUS II)"
+msgstr "Символы APL (Manugistics APL*PLUS II)"
+
+msgid "APL symbols (APLX unified)"
+msgstr "Символы APL (APLX unified)"
+
+msgid "APL symbols (Dyalog APL)"
+msgstr "Символы APL (Dyalog APL)"
+
+msgid "APL symbols (SAX, Sharp APL for Unix)"
+msgstr "Символы APL (SAX, Sharp APL для Unix)"
+
+msgid "APL symbols (unified)"
+msgstr "Символы APL (унифицированный)"
+
+msgid "Arabic (AZERTY)"
+msgstr "Арабский (AZERTY)"
+
+msgid "Arabic (AZERTY, Eastern Arabic numerals)"
+msgstr "Арабский (AZERTY, восточные арабские цифры)"
+
+msgid "Arabic (Arabic numerals, extensions in the 4th level)"
+msgstr "Арабский (арабские цифры, расширения на 4-м уровне)"
+
+msgid "Arabic (Eastern Arabic numerals, extensions in the 4th level)"
+msgstr "Арабский (восточные арабские цифры, расширения на 4-м уровне)"
+
+msgid "Arabic (Buckwalter)"
+msgstr "Арабский (Buckwalter)"
+
+msgid "Arabic (Eastern Arabic numerals)"
+msgstr "Арабский (восточные арабские цифры)"
+
+msgid "Arabic (ErgoArabic)"
+msgstr "Арабский (ErgoArabic)"
+
+msgid "Arabic (Macintosh)"
+msgstr "Арабский (Macintosh)"
+
+msgid "Arabic (OLPC)"
+msgstr "Арабский (OLPC)"
+
+msgid "Arabic (QWERTY)"
+msgstr "Арабский (QWERTY)"
+
+msgid "Arabic (QWERTY, Eastern Arabic numerals)"
+msgstr "Арабский (QWERTY, восточные арабские цифры)"
+
+msgid "Arabic (Sun Type 6/7)"
+msgstr "Арабский (Sun Type 6/7)"
+
+msgid "Ugaritic instead of Arabic"
+msgstr "Угаритский вместо арабского"
+
+msgid "German (Austria)"
+msgstr "Немецкий (Австрия)"
+
+msgid "German (Austria, Macintosh)"
+msgstr "Немецкий (Австрия, Macintosh)"
+
+msgid "German (Austria, no dead keys)"
+msgstr "Немецкий (Австрия, без мёртвых клавиш)"
+
+msgid "English (Australian)"
+msgstr "Английский (Австралия)"
+
+msgid "Azerbaijani (Cyrillic)"
+msgstr "Азербайджанский (кириллица)"
+
+msgid "Bosnian (with guillemets)"
+msgstr "Боснийский (с гильемами)"
+
+msgid "Bosnian (with Bosnian digraphs)"
+msgstr "Боснийский (с боснийскими диграфами)"
+
+msgid "Bosnian (US, with Bosnian digraphs)"
+msgstr "Боснийский (US, с боснийскими диграфами)"
+
+msgid "Bosnian (US)"
+msgstr "Боснийский (US)"
+
+msgid "Bangla"
+msgstr "Бенгальский"
+
+msgid "Bangla (Probhat)"
+msgstr "Бенгальский (Probhat)"
+
+msgid "Belgian"
+msgstr "Бельгийский"
+
+msgid "Belgian (ISO, alt.)"
+msgstr "Бельгийский (ISO, альтернативный)"
+
+msgid "Belgian (no dead keys)"
+msgstr "Бельгийский (без мёртвых клавиш)"
+
+msgid "Belgian (alt.)"
+msgstr "Бельгийский (альтернативный)"
+
+msgid "Belgian (Latin-9 only, alt.)"
+msgstr "Бельгийский (только Latin-9, альтернативный)"
+
+msgid "Belgian (Sun Type 6/7)"
+msgstr "Бельгийский (Sun Type 6/7)"
+
+msgid "Belgian (Wang 724 AZERTY)"
+msgstr "Бельгийский (Wang 724 AZERTY)"
+
+msgid "Bulgarian (new phonetic)"
+msgstr "Болгарский (новый фонетический)"
+
+msgid "Bulgarian (enhanced)"
+msgstr "Болгарский (усовершенствованный)"
+
+msgid "Bulgarian (traditional phonetic)"
+msgstr "Болгарский (традиционный фонетический)"
+
+msgid "Braille"
+msgstr "Брайля"
+
+msgid "Braille (left-handed)"
+msgstr "Брайля (левша)"
+
+msgid "Braille (left-handed inverted thumb)"
+msgstr "Брайля (левша, инвертированный большой палец)"
+
+msgid "Braille (right-handed)"
+msgstr "Брайля (правша)"
+
+msgid "Braille (right-handed inverted thumb)"
+msgstr "Брайля (правша, инвертированный большой палец)"
+
+msgid "Portuguese (Brazil)"
+msgstr "Португальский (Бразилия)"
+
+msgid "Portuguese (Brazil, Dvorak)"
+msgstr "Португальский (Бразилия, Dvorak)"
+
+msgid "Esperanto (Brazil, Nativo)"
+msgstr "Эсперанто (Бразилия, Nativo)"
+
+msgid "Portuguese (Brazil, Nativo)"
+msgstr "Португальский (Бразилия, Nativo)"
+
+msgid "Portuguese (Brazil, Nativo for US keyboards)"
+msgstr "Португальский (Бразилия, Nativo для клавиатур США)"
+
+msgid "Portuguese (Brazil, no dead keys)"
+msgstr "Португальский (Бразилия, без мёртвых клавиш)"
+
+msgid "Portuguese (Brazil, Sun Type 6/7)"
+msgstr "Португальский (Бразилия, Sun Type 6/7)"
+
+msgid "Portuguese (Brazil, IBM/Lenovo ThinkPad)"
+msgstr "Португальский (Бразилия, IBM/Lenovo ThinkPad)"
+
+msgid "Dzongkha"
+msgstr "Дзонг-кэ"
+
+msgid "Tswana"
+msgstr "Тсвана"
+
+msgid "Belarusian (intl.)"
+msgstr "Белорусский (международный)"
+
+msgid "Belarusian (Latin)"
+msgstr "Белорусский (латиница)"
+
+msgid "Belarusian (legacy)"
+msgstr "Белорусский (устаревший)"
+
+msgid "Russian (Belarus)"
+msgstr "Русский (Беларусь)"
+
+msgid "French (Canada)"
+msgstr "Французский (Канада)"
+
+msgid "English (Canada)"
+msgstr "Английский (Канада)"
+
+msgid "French (Canada, Dvorak)"
+msgstr "Французский (Канада, Dворак)"
+
+msgid "French (Canada, legacy)"
+msgstr "Французский (Канада, устаревший)"
+
+msgid "Inuktitut"
+msgstr "Инуктитут"
+
+msgid "Kutenai"
+msgstr "Кутенай"
+
+msgid "Canadian (intl., 2nd part)"
+msgstr "Канадский (международный, вторая часть)"
+
+msgid "Canadian (intl., 1st part)"
+msgstr "Канадский (международный, первая часть)"
+
+msgid "Canadian (intl.)"
+msgstr "Канадский (международный)"
+
+msgid "Secwepemctsin"
+msgstr "Секвепемцын"
+
+msgid "Multilingual (Canada, Sun Type 6/7)"
+msgstr "Многоязычный (Канада, Sun Type 6/7)"
+
+msgid "French (Democratic Republic of the Congo)"
+msgstr "Французский (Демократическая Республика Конго)"
+
+msgid "German (Switzerland)"
+msgstr "Немецкий (Швейцария)"
+
+msgid "German (Switzerland, Macintosh)"
+msgstr "Немецкий (Швейцария, Macintosh)"
+
+msgid "German (Switzerland, no dead keys)"
+msgstr "Немецкий (Швейцария, без мёртвых клавиш)"
+
+msgid "French (Switzerland)"
+msgstr "Французский (Швейцария)"
+
+msgid "French (Switzerland, Macintosh)"
+msgstr "Французский (Швейцария, Macintosh)"
+
+msgid "French (Switzerland, no dead keys)"
+msgstr "Французский (Швейцария, без мёртвых клавиш)"
+
+msgid "German (Switzerland, legacy)"
+msgstr "Немецкий (Швейцария, устаревший)"
+
+msgid "German (Switzerland, Sun Type 6/7)"
+msgstr "Немецкий (Швейцария, Sun Type 6/7)"
+
+msgid "French (Switzerland, Sun Type 6/7)"
+msgstr "Французский (Швейцария, Sun Type 6/7)"
+
+msgid "English (Cameroon)"
+msgstr "Английский (Камерун)"
+
+msgid "Cameroon (AZERTY, intl.)"
+msgstr "Камерун (AZERTY, международный)"
+
+msgid "Cameroon (Dvorak, intl.)"
+msgstr "Камерун (Dvorak, международный)"
+
+msgid "French (Cameroon)"
+msgstr "Французский (Камерун)"
+
+msgid "Mmuock"
+msgstr "Ммуок"
+
+msgid "Cameroon Multilingual (QWERTY, intl.)"
+msgstr "Многоязычный Камеруна (QWERTY, международный)"
+
+msgid "Hanyu Pinyin Letters (with AltGr dead keys)"
+msgstr "Китайский Hanyu Pinyin (с мёртвыми клавишами AltGr)"
+
+msgid "Mongolian (Manchu Galik)"
+msgstr "Монгольский (маньчжурский Галик)"
+
+msgid "Mongolian (Todo Galik)"
+msgstr "Монгольский (Тодо Галик)"
+
+msgid "Mongolian (Galik)"
+msgstr "Монгольский (Галик)"
+
+msgid "Mongolian (Manchu)"
+msgstr "Монгольский (маньчжурский)"
+
+msgid "Mongolian (Bichig)"
+msgstr "Монгольский (Бичиг)"
+
+msgid "Mongolian (Todo)"
+msgstr "Монгольский (Тодо)"
+
+msgid "Mongolian (Xibe)"
+msgstr "Монгольский (Сибе)"
+
+msgid "Tibetan (with ASCII numerals)"
+msgstr "Тибетский (с ASCII цифрами)"
+
+msgid "Tibetan"
+msgstr "Тибетский"
+
+msgid "Uyghur"
+msgstr "Уйгурский"
+
+msgid "A user-defined custom Layout"
+msgstr "Пользовательский макет"
+
+msgid "Czech (with <\""
+msgstr "Чешский (с <\")"
+
+msgid "Czech (coder)"
+msgstr "Чешский (для программистов)"
+
+msgid "Czech (US, Dvorak, UCW support)"
+msgstr "Чешский (US, Dvorak, поддержка UCW)"
+
+msgid "Czech (programming)"
+msgstr "Чешский (программирование)"
+
+msgid "Czech (programming, typographic)"
+msgstr "Чешский (программирование, типографика)"
+
+msgid "Czech (QWERTY, extended backslash)"
+msgstr "Чешский (QWERTY, расширенный обратный слэш)"
+
+msgid "Czech (QWERTY)"
+msgstr "Чешский (QWERTY)"
+
+msgid "Czech (QWERTY, Macintosh)"
+msgstr "Чешский (QWERTY, Macintosh)"
+
+msgid "Russian (Czech, phonetic)"
+msgstr "Русский (Чешский, фонетический)"
+
+msgid "Czech (Sun Type 6/7)"
+msgstr "Чешский (Sun Type 6/7)"
+
+msgid "Czech (typographic)"
+msgstr "Чешский (типографика)"
+
+msgid "Czech (UCW, only accented letters)"
+msgstr "Чешский (UCW, только акцентированные буквы)"
+
+msgid "German (Aus der Neo-Welt)"
+msgstr "Немецкий (Aus der Neo-Welt)"
+
+msgid "German (Bone, eszett in the home row)"
+msgstr "Немецкий (Bone, eszett в домашнем ряду)"
+
+msgid "German (Bone)"
+msgstr "Немецкий (Bone)"
+
+msgid "German (dead acute)"
+msgstr "Немецкий (мёртвый ударный)"
+
+msgid "German (dead grave acute)"
+msgstr "Немецкий (мёртвый грави-акутный)"
+
+msgid "German (dead tilde)"
+msgstr "Немецкий (мёртвая тильда)"
+
+msgid "Lower Sorbian"
+msgstr "Нижнелужицкий"
+
+msgid "Lower Sorbian (QWERTZ)"
+msgstr "Нижнелужицкий (QWERTZ)"
+
+msgid "German (Dvorak)"
+msgstr "Немецкий (Dvorak)"
+
+msgid "German (E1)"
+msgstr "Немецкий (E1)"
+
+msgid "German (E2)"
+msgstr "Немецкий (E2)"
+
+msgid "German (with Hungarian letters, no dead keys)"
+msgstr "Немецкий (с венгерскими буквами, без мёртвых клавиш)"
+
+msgid "German (KOY)"
+msgstr "Немецкий (KOY)"
+
+msgid "German (Ladin)"
+msgstr "Немецкий (Ладин)"
+
+msgid "German (Macintosh)"
+msgstr "Немецкий (Macintosh)"
+
+msgid "German (Macintosh, no dead keys)"
+msgstr "Немецкий (Macintosh, без мёртвых клавиш)"
+
+msgid "German (Neo 2)"
+msgstr "Немецкий (Neo 2)"
+
+msgid "German (Neo, QWERTY)"
+msgstr "Немецкий (Neo, QWERTY)"
+
+msgid "German (Neo, QWERTZ)"
+msgstr "Немецкий (Neo, QWERTZ)"
+
+msgid "German (no dead keys)"
+msgstr "Немецкий (без мёртвых клавиш)"
+
+msgid "Polish (Germany, no dead keys)"
+msgstr "Польский (Германия, без мёртвых клавиш)"
+
+msgid "German (QWERTY)"
+msgstr "Немецкий (QWERTY)"
+
+msgid "Romanian (Germany, no dead keys)"
+msgstr "Румынский (Германия, без мёртвых клавиш)"
+
+msgid "Romanian (Germany)"
+msgstr "Румынский (Германия)"
+
+msgid "Russian (Germany, recommended)"
+msgstr "Русский (Германия, рекомендуемый)"
+
+msgid "Russian (Germany, phonetic)"
+msgstr "Русский (Германия, фонетический)"
+
+msgid "Russian (Germany, transliteration)"
+msgstr "Русский (Германия, транслитерация)"
+
+msgid "German (Sun Type 6/7)"
+msgstr "Немецкий (Sun Type 6/7)"
+
+msgid "German (T3)"
+msgstr "Немецкий (T3)"
+
+msgid "Turkish (Germany)"
+msgstr "Турецкий (Германия)"
+
+msgid "German (US)"
+msgstr "Немецкий (США)"
+
+msgid "Danish (Dvorak)"
+msgstr "Датский (Dvorak)"
+
+msgid "Danish (Macintosh)"
+msgstr "Датский (Macintosh)"
+
+msgid "Danish (Macintosh, no dead keys)"
+msgstr "Датский (Macintosh, без мёртвых клавиш)"
+
+msgid "Danish (no dead keys)"
+msgstr "Датский (без мёртвых клавиш)"
+
+msgid "Danish (Sun Type 6/7)"
+msgstr "Датский (Sun Type 6/7)"
+
+msgid "Danish (Windows)"
+msgstr "Датский (Windows)"
+
+msgid "Berber (Algeria, Latin)"
+msgstr "Берберский (Алжир, латиница)"
+
+msgid "Arabic (Algeria)"
+msgstr "Арабский (Алжир)"
+
+msgid "Kabyle (AZERTY, with dead keys)"
+msgstr "Кабильский (AZERTY, с мёртвыми клавишами)"
+
+msgid "Berber (Algeria, Tifinagh)"
+msgstr "Берберский (Алжир, Тифинаг)"
+
+msgid "Kabyle (QWERTY, UK, with dead keys)"
+msgstr "Кабильский (QWERTY, Великобритания, с мёртвыми клавишами)"
+
+msgid "Kabyle (QWERTY, US, with dead keys)"
+msgstr "Кабильский (QWERTY, США, с мёртвыми клавишами)"
+
+msgid "Estonian (Dvorak)"
+msgstr "Эстонский (Dvorak)"
+
+msgid "Estonian (no dead keys)"
+msgstr "Эстонский (без мёртвых клавиш)"
+
+msgid "Estonian (Sun Type 6/7)"
+msgstr "Эстонский (Sun Type 6/7)"
+
+msgid "Estonian (US)"
+msgstr "Эстонский (США)"
+
+msgid "Coptic"
+msgstr "Коптский"
+
+msgid "Esperanto"
+msgstr "Эсперанто"
+
+msgid "Esperanto (legacy)"
+msgstr "Эсперанто (устаревший)"
+
+msgid "Asturian (Spain, with bottom-dot H and L)"
+msgstr "Астурийский (Испания, с нижней точкой H и L)"
+
+msgid "Catalan (Spain, with middle-dot L)"
+msgstr "Каталанский (Испания, с средней точкой L)"
+
+msgid "Spanish (dead tilde)"
+msgstr "Испанский (мёртвая тильда)"
+
+msgid "Spanish (Dvorak)"
+msgstr "Испанский (Dvorak)"
+
+msgid "Spanish (Macintosh)"
+msgstr "Испанский (Macintosh)"
+
+msgid "Spanish (no dead keys)"
+msgstr "Испанский (без мёртвых клавиш)"
+
+msgid "Spanish (Sun Type 6/7)"
+msgstr "Испанский (Sun Type 6/7)"
+
+msgid "Spanish (Windows)"
+msgstr "Испанский (Windows)"
+
+msgid "Amharic"
+msgstr "Амхарский"
+
+msgid "EurKEY (US)"
+msgstr "EurKEY (US)"
+
+msgid "Finnish (classic)"
+msgstr "Финский (классический)"
+
+msgid "Finnish (DAS)"
+msgstr "Финский (DAS)"
+
+msgid "Finnish (Dvorak)"
+msgstr "Финский (Dvorak)"
+
+msgid "Finnish (Macintosh)"
+msgstr "Финский (Macintosh)"
+
+msgid "Finnish (classic, no dead keys)"
+msgstr "Финский (классический, без мёртвых клавиш)"
+
+msgid "Northern Saami (Finland)"
+msgstr "Северносаамский (Финляндия)"
+
+msgid "Finnish (Sun Type 6/7)"
+msgstr "Финский (Sun Type 6/7)"
+
+msgid "Finnish (Windows)"
+msgstr "Финский (Windows)"
+
+msgid "Faroese"
+msgstr "Фарерский"
+
+msgid "Faroese (no dead keys)"
+msgstr "Фарерский (без мёртвых клавиш)"
+
+msgid "French (AZERTY, AFNOR)"
+msgstr "Французский (AZERTY, AFNOR)"
+
+msgid "French (AZERTY)"
+msgstr "Французский (AZERTY)"
+
+msgid "French (BEPO, AFNOR)"
+msgstr "Французский (BEPO, AFNOR)"
+
+msgid "French (BEPO)"
+msgstr "Французский (BEPO)"
+
+msgid "French (BEPO, Latin-9 only)"
+msgstr "Французский (BEPO, только Latin-9)"
+
+msgid "French (Breton)"
+msgstr "Французский (Бретонский)"
+
+msgid "French (Dvorak)"
+msgstr "Французский (Dvorak)"
+
+msgid "Georgian (France, AZERTY Tskapo)"
+msgstr "Грузинский (Франция, AZERTY Tskapo)"
+
+msgid "French (legacy, alt.)"
+msgstr "Французский (устаревший, альтернативный)"
+
+msgid "French (legacy, alt., no dead keys)"
+msgstr "Французский (устаревший, альтернативный, без мёртвых клавиш)"
+
+msgid "French (Macintosh)"
+msgstr "Французский (Macintosh)"
+
+msgid "French (no dead keys)"
+msgstr "Французский (без мёртвых клавиш)"
+
+msgid "Occitan"
+msgstr "Окситанский"
+
+msgid "French (alt.)"
+msgstr "Французский (альтернативный)"
+
+msgid "French (alt., Latin-9 only)"
+msgstr "Французский (альтернативный, только Latin-9)"
+
+msgid "French (alt., no dead keys)"
+msgstr "Французский (альтернативный, без мёртвых клавиш)"
+
+msgid "French (Sun Type 6/7)"
+msgstr "Французский (Sun Type 6/7)"
+
+msgid "French (US with dead keys, alt.)"
+msgstr "Французский (US с мёртвыми клавишами, альтернативный)"
+
+msgid "French (US, AZERTY)"
+msgstr "Французский (US, AZERTY)"
+
+msgid "French (US)"
+msgstr "Французский (US)"
+
+msgid "English (UK)"
+msgstr "Английский (Великобритания)"
+
+msgid "English (UK, Colemak-DH)"
+msgstr "Английский (Великобритания, Colemak-DH)"
+
+msgid "English (UK, Colemak)"
+msgstr "Английский (Великобритания, Colemak)"
+
+msgid "English (UK, Dvorak)"
+msgstr "Английский (Великобритания, Dvorak)"
+
+msgid "English (UK, Dvorak, with UK punctuation)"
+msgstr "Английский (Великобритания, Dvorak, с британской пунктуацией)"
+
+msgid "English (UK, extended, Windows)"
+msgstr "Английский (Великобритания, расширенный, Windows)"
+
+msgid "Scottish Gaelic"
+msgstr "Шотландский гэльский"
+
+msgid "English (UK, intl., with dead keys)"
+msgstr "Английский (Великобритания, международный, с мёртвыми клавишами)"
+
+msgid "English (UK, Macintosh)"
+msgstr "Английский (Великобритания, Macintosh)"
+
+msgid "English (UK, Macintosh, intl.)"
+msgstr "Английский (Великобритания, Macintosh, международный)"
+
+msgid "Polish (British keyboard)"
+msgstr "Польский (британская клавиатура)"
+
+msgid "English (UK, Sun Type 6/7)"
+msgstr "Английский (Великобритания, Sun Type 6/7)"
+
+msgid "Georgian (ergonomic)"
+msgstr "Грузинский (эргономический)"
+
+msgid "Georgian (MESS)"
+msgstr "Грузинский (MESS)"
+
+msgid "Ossetian (Georgia)"
+msgstr "Осетинский (Грузия)"
+
+msgid "Russian (Georgia)"
+msgstr "Русский (Грузия)"
+
+msgid "English (Ghana)"
+msgstr "Английский (Гана)"
+
+msgid "Akan"
+msgstr "Акан"
+
+msgid "Avatime"
+msgstr "Аватиме"
+
+msgid "Ewe"
+msgstr "Эве"
+
+msgid "Fula"
+msgstr "Фула"
+
+msgid "Ga"
+msgstr "Га"
+
+msgid "English (Ghana, multilingual)"
+msgstr "Английский (Гана, многоязычный)"
+
+msgid "English (Ghana, GILLBT)"
+msgstr "Английский (Гана, GILLBT)"
+
+msgid "Hausa (Ghana)"
+msgstr "Хауса (Гана)"
+
+msgid "N'Ko (AZERTY)"
+msgstr "N'Ко (AZERTY)"
+
+msgid "Greek (Colemak)"
+msgstr "Греческий (Colemak)"
+
+msgid "Greek (extended)"
+msgstr "Греческий (расширенный)"
+
+msgid "Greek (no dead keys)"
+msgstr "Греческий (без мёртвых клавиш)"
+
+msgid "Greek (polytonic)"
+msgstr "Греческий (политонический)"
+
+msgid "Greek (simple)"
+msgstr "Греческий (простой)"
+
+msgid "Greek (Sun Type 6/7)"
+msgstr "Греческий (Sun Type 6/7)"
+
+msgid "Croatian (with guillemets)"
+msgstr "Хорватский (с гильемами)"
+
+msgid "Croatian (with Croatian digraphs)"
+msgstr "Хорватский (с хорватскими диграфами)"
+
+msgid "Croatian (US, with Croatian digraphs)"
+msgstr "Хорватский (US, с хорватскими диграфами)"
+
+msgid "Croatian (US)"
+msgstr "Хорватский (US)"
+
+msgid "Hungarian (QWERTY, 101-key, comma, dead keys)"
+msgstr "Венгерский (QWERTY, 101-клавишная, запятая, с мёртвыми клавишами)"
+
+msgid "Hungarian (QWERTY, 101-key, comma, no dead keys)"
+msgstr "Венгерский (QWERTY, 101-клавишная, запятая, без мёртвых клавиш)"
+
+msgid "Hungarian (QWERTY, 101-key, dot, dead keys)"
+msgstr "Венгерский (QWERTY, 101-клавишная, точка, с мёртвыми клавишами)"
+
+msgid "Hungarian (QWERTY, 101-key, dot, no dead keys)"
+msgstr "Венгерский (QWERTY, 101-клавишная, точка, без мёртвых клавиш)"
+
+msgid "Hungarian (QWERTZ, 101-key, comma, dead keys)"
+msgstr "Венгерский (QWERTZ, 101-клавишная, запятая, с мёртвыми клавишами)"
+
+msgid "Hungarian (QWERTZ, 101-key, comma, no dead keys)"
+msgstr "Венгерский (QWERTZ, 101-клавишная, запятая, без мёртвых клавиш)"
+
+msgid "Hungarian (QWERTZ, 101-key, dot, dead keys)"
+msgstr "Венгерский (QWERTZ, 101-клавишная, точка, с мёртвыми клавишами)"
+
+msgid "Hungarian (QWERTZ, 101-key, dot, no dead keys)"
+msgstr "Венгерский (QWERTZ, 101-клавишная, точка, без мёртвых клавиш)"
+
+msgid "Hungarian (QWERTY, 102-key, comma, dead keys)"
+msgstr "Венгерский (QWERTY, 102-клавишная, запятая, с мёртвыми клавишами)"
+
+msgid "Hungarian (QWERTY, 102-key, comma, no dead keys)"
+msgstr "Венгерский (QWERTY, 102-клавишная, запятая, без мёртвых клавиш)"
+
+msgid "Hungarian (QWERTY, 102-key, dot, dead keys)"
+msgstr "Венгерский (QWERTY, 102-клавишная, точка, с мёртвыми клавишами)"
+
+msgid "Hungarian (QWERTY, 102-key, dot, no dead keys)"
+msgstr "Венгерский (QWERTY, 102-клавишная, точка, без мёртвых клавиш)"
+
+msgid "Hungarian (QWERTZ, 102-key, comma, dead keys)"
+msgstr "Венгерский (QWERTZ, 102-клавишная, запятая, с мёртвыми клавишами)"
+
+msgid "Hungarian (QWERTZ, 102-key, comma, no dead keys)"
+msgstr "Венгерский (QWERTZ, 102-клавишная, запятая, без мёртвых клавиш)"
+
+msgid "Hungarian (QWERTZ, 102-key, dot, dead keys)"
+msgstr "Венгерский (QWERTZ, 102-клавишная, точка, с мёртвыми клавишами)"
+
+msgid "Hungarian (QWERTZ, 102-key, dot, no dead keys)"
+msgstr "Венгерский (QWERTZ, 102-клавишная, точка, без мёртвых клавиш)"
+
+msgid "Hungarian (no dead keys)"
+msgstr "Венгерский (без мёртвых клавиш)"
+
+msgid "Old Hungarian (for ligatures)"
+msgstr "Старый венгерский (для лигатур)"
+
+msgid "Old Hungarian"
+msgstr "Старый венгерский"
+
+msgid "Hungarian (QWERTY)"
+msgstr "Венгерский (QWERTY)"
+
+msgid "Hungarian (standard)"
+msgstr "Венгерский (стандартный)"
+
+msgid "Indonesian (Latin)"
+msgstr "Индонезийский (латиница)"
+
+msgid "Indonesian (Arab Pegon, phonetic)"
+msgstr "Индонезийский (Араб Pegon, фонетический)"
+
+msgid "Indonesian (Arab Pegon, extended phonetic)"
+msgstr "Индонезийский (Араб Pegon, расширенный фонетический)"
+
+msgid "Irish"
+msgstr "Ирландский"
+
+msgid "CloGaelach"
+msgstr "Клогаэлач"
+
+msgid "Ogham (IS434)"
+msgstr "Огам (IS434)"
+
+msgid "Ogham"
+msgstr "Огам"
+
+msgid "Irish (UnicodeExpert)"
+msgstr "Ирландский (UnicodeExpert)"
+
+msgid "Hebrew (Biblical, Tiro)"
+msgstr "Иврит (Библейский, Tiro)"
+
+msgid "Hebrew (Biblical, SIL phonetic)"
+msgstr "Иврит (Библейский, фонетический SIL)"
+
+msgid "Hebrew (lyx)"
+msgstr "Иврит (lyx)"
+
+msgid "Hebrew (phonetic)"
+msgstr "Иврит (фонетический)"
+
+msgid "Bangla (India, Baishakhi)"
+msgstr "Бенгальский (Индия, Baishakhi)"
+
+msgid "Bangla (India)"
+msgstr "Бенгальский (Индия)"
+
+msgid "Bangla (India, Bornona)"
+msgstr "Бенгальский (Индия, Bornona)"
+
+msgid "Bangla (India, Gitanjali)"
+msgstr "Бенгальский (Индия, Gitanjali)"
+
+msgid "Bangla (India, Baishakhi InScript)"
+msgstr "Бенгальский (Индия, Baishakhi InScript)"
+
+msgid "Bangla (India, Probhat)"
+msgstr "Бенгальский (Индия, Probhat)"
+
+msgid "Hindi (Bolnagri)"
+msgstr "Хинди (Bolnagri)"
+
+msgid "Manipuri (Eeyek)"
+msgstr "Манипури (Eeyek)"
+
+msgid "English (India, with rupee)"
+msgstr "Английский (Индия, с рупией)"
+
+msgid "Punjabi (Gurmukhi)"
+msgstr "Панджаби (Гурмухи)"
+
+msgid "Hindi (KaGaPa, phonetic)"
+msgstr "Хинди (KaGaPa, фонетический)"
+
+msgid "Hindi (Wx)"
+msgstr "Хинди (Wx)"
+
+msgid "Indic IPA"
+msgstr "Индийский IPA"
+
+msgid "Punjabi (Gurmukhi Jhelum)"
+msgstr "Панджаби (Гурмухи Jhelum)"
+
+msgid "Kannada (KaGaPa, phonetic)"
+msgstr "Каннада (KaGaPa, фонетический)"
+
+msgid "Malayalam (enhanced InScript, with rupee)"
+msgstr "Малаялам (улучшенный InScript, с рупией)"
+
+msgid "Malayalam (Lalitha)"
+msgstr "Малаялам (Лалита)"
+
+msgid "Marathi (enhanced InScript)"
+msgstr "Маратхи (улучшенный InScript)"
+
+msgid "Marathi (KaGaPa, phonetic)"
+msgstr "Маратхи (KaGaPa, фонетический)"
+
+msgid "Modi (KaGaPa phonetic)"
+msgstr "Моди (KaGaPa фонетический)"
+
+msgid "Ol Chiki"
+msgstr "Оль Чики"
+
+msgid "Oriya (Bolnagri)"
+msgstr "Ория (Bolnagri)"
+
+msgid "Oriya (Wx)"
+msgstr "Ория (Wx)"
+
+msgid "Sanskrit (KaGaPa, phonetic)"
+msgstr "Санскрит (KaGaPa, фонетический)"
+
+msgid "Sanskrit symbols"
+msgstr "Символы санскрита"
+
+msgid "Tamil (InScript)"
+msgstr "Тамильский (InScript)"
+
+msgid "Tamil (TamilNet '99, TAB encoding)"
+msgstr "Тамильский (TamilNet '99, кодировка TAB)"
+
+msgid "Tamil (TamilNet '99)"
+msgstr "Тамильский (TamilNet '99)"
+
+msgid "Tamil (TamilNet '99, TSCII encoding)"
+msgstr "Тамильский (TamilNet '99, кодировка TSCII)"
+
+msgid "Tamil (TamilNet '99 with Tamil numerals)"
+msgstr "Тамильский (TamilNet '99 с тамильскими цифрами)"
+
+msgid "Telugu (KaGaPa, phonetic)"
+msgstr "Телугу (KaGaPa, фонетический)"
+
+msgid "Telugu (Sarala)"
+msgstr "Телугу (Sarala)"
+
+msgid "Urdu (Navees)"
+msgstr "Урду (Navees)"
+
+msgid "Urdu (alt. phonetic)"
+msgstr "Урду (альтернативный фонетический)"
+
+msgid "Urdu (phonetic)"
+msgstr "Урду (фонетический)"
+
+msgid "Urdu (Windows)"
+msgstr "Урду (Windows)"
+
+msgid "Iraqi"
+msgstr "Иракский"
+
+msgid "Kurdish (Iraq, Latin Alt-Q)"
+msgstr "Курдский (Ирак, латиница Alt-Q)"
+
+msgid "Kurdish (Iraq, Arabic-Latin)"
+msgstr "Курдский (Ирак, арабская-латинская)"
+
+msgid "Kurdish (Iraq, F)"
+msgstr "Курдский (Ирак, F)"
+
+msgid "Kurdish (Iraq, Latin Q)"
+msgstr "Курдский (Ирак, латиница Q)"
+
+msgid "Persian"
+msgstr "Персидский"
+
+msgid "Avestan"
+msgstr "Авестийский"
+
+msgid "Kurdish (Iran, Latin Alt-Q)"
+msgstr "Курдский (Иран, латиница Alt-Q)"
+
+msgid "Kurdish (Iran, Arabic-Latin)"
+msgstr "Курдский (Иран, арабская-латинская)"
+
+msgid "Kurdish (Iran, F)"
+msgstr "Курдский (Иран, F)"
+
+msgid "Kurdish (Iran, Latin Q)"
+msgstr "Курдский (Иран, латиница Q)"
+
+msgid "Persian (with Persian keypad)"
+msgstr "Персидский (с персидской клавиатурой)"
+
+msgid "Icelandic (Dvorak)"
+msgstr "Исландский (Dvorak)"
+
+msgid "Icelandic (Macintosh)"
+msgstr "Исландский (Macintosh)"
+
+msgid "Icelandic (Macintosh, legacy)"
+msgstr "Исландский (Macintosh, устаревший)"
+
+msgid "Italian (Dvorak)"
+msgstr "Итальянский (Dvorak)"
+
+msgid "Friulian (Italy)"
+msgstr "Фриульский (Италия)"
+
+msgid "Georgian (Italy)"
+msgstr "Грузинский (Италия)"
+
+msgid "Italian (IBM 142)"
+msgstr "Итальянский (IBM 142)"
+
+msgid "Italian (intl., with dead keys)"
+msgstr "Итальянский (международный, с мёртвыми клавишами)"
+
+msgid "Italian (Ladin)"
+msgstr "Итальянский (Ладин)"
+
+msgid "Italian (Macintosh)"
+msgstr "Итальянский (Macintosh)"
+
+msgid "Italian (no dead keys)"
+msgstr "Итальянский (без мёртвых клавиш)"
+
+msgid "Sicilian"
+msgstr "Сицилийский"
+
+msgid "Italian (Sun Type 6/7)"
+msgstr "Итальянский (Sun Type 6/7)"
+
+msgid "Italian (US)"
+msgstr "Итальянский (US)"
+
+msgid "Italian (Windows)"
+msgstr "Итальянский (Windows)"
+
+msgid "Japanese (Dvorak)"
+msgstr "Японский (Dvorak)"
+
+msgid "Japanese (Kana 86)"
+msgstr "Японский (Kana 86)"
+
+msgid "Japanese (Kana)"
+msgstr "Японский (Kana)"
+
+msgid "Japanese (Macintosh)"
+msgstr "Японский (Macintosh)"
+
+msgid "Japanese (OADG 109A)"
+msgstr "Японский (OADG 109A)"
+
+msgid "Japanese (Sun Type 6)"
+msgstr "Японский (Sun Type 6)"
+
+msgid "Japanese (Sun Type 7, PC-compatible)"
+msgstr "Японский (Sun Type 7, совместимый с ПК)"
+
+msgid "Japanese (Sun Type 7, Sun-compatible)"
+msgstr "Японский (Sun Type 7, совместимый с Sun)"
+
+msgid "Indonesian (Javanese)"
+msgstr "Индонезийский (Яванский)"
+
+msgid "Swahili (Kenya)"
+msgstr "Суахили (Кения)"
+
+msgid "Kikuyu"
+msgstr "Кикуйю"
+
+msgid "Kyrgyz"
+msgstr "Киргизский"
+
+msgid "Kyrgyz (phonetic)"
+msgstr "Киргизский (фонетический)"
+
+msgid "Khmer (Cambodia)"
+msgstr "Кхмерский (Камбоджа)"
+
+msgid "Korean (101/104-key compatible)"
+msgstr "Корейский (совместимый с 101/104 клавишами)"
+
+msgid "Korean (Sun Type 6/7)"
+msgstr "Корейский (Sun Type 6/7)"
+
+msgid "Kazakh (extended)"
+msgstr "Казахский (расширенный)"
+
+msgid "Kazakh (with Russian)"
+msgstr "Казахский (с русским)"
+
+msgid "Kazakh (Latin)"
+msgstr "Казахский (латиница)"
+
+msgid "Russian (Kazakhstan, with Kazakh)"
+msgstr "Русский (Казахстан, с казахским)"
+
+msgid "Lao"
+msgstr "Лаосский"
+
+msgid "Lao (STEA)"
+msgstr "Лаосский (STEA)"
+
+msgid "Spanish (Latin American)"
+msgstr "Испанский (латиноамериканский)"
+
+msgid "Spanish (Latin American, Colemak for gaming)"
+msgstr "Испанский (латиноамериканский, Colemak для игр)"
+
+msgid "Spanish (Latin American, Colemak)"
+msgstr "Испанский (латиноамериканский, Colemak)"
+
+msgid "Spanish (Latin American, dead tilde)"
+msgstr "Испанский (латиноамериканский, мёртвая тильда)"
+
+msgid "Spanish (Latin American, Dvorak)"
+msgstr "Испанский (латиноамериканский, Dvorak)"
+
+msgid "Spanish (Latin American, no dead keys)"
+msgstr "Испанский (латиноамериканский, без мёртвых клавиш)"
+
+msgid "Sinhala (phonetic)"
+msgstr "Сингальский (фонетический)"
+
+msgid "Tamil (Sri Lanka, TamilNet '99, TAB encoding)"
+msgstr "Тамильский (Шри-Ланка, TamilNet '99, кодировка TAB)"
+
+msgid "Tamil (Sri Lanka, TamilNet '99)"
+msgstr "Тамильский (Шри-Ланка, TamilNet '99)"
+
+msgid "Sinhala (US)"
+msgstr "Сингальский (US)"
+
+msgid "Lithuanian (IBM LST 1205-92)"
+msgstr "Литовский (IBM LST 1205-92)"
+
+msgid "Lithuanian (LEKPa)"
+msgstr "Литовский (LEKPa)"
+
+msgid "Lithuanian (LEKP)"
+msgstr "Литовский (LEKP)"
+
+msgid "Lithuanian (Ratise)"
+msgstr "Литовский (Ratise)"
+
+msgid "Samogitian"
+msgstr "Самогитский"
+
+msgid "Lithuanian (standard)"
+msgstr "Литовский (стандартный)"
+
+msgid "Lithuanian (Sun Type 6/7)"
+msgstr "Литовский (Sun Type 6/7)"
+
+msgid "Lithuanian (Dvorak)"
+msgstr "Литовский (Dvorak)"
+
+msgid "Lithuanian (US)"
+msgstr "Литовский (US)"
+
+msgid "Latvian (adapted)"
+msgstr "Латышский (адаптированный)"
+
+msgid "Latvian (Colemak, with apostrophe)"
+msgstr "Латышский (Colemak, с апострофом)"
+
+msgid "Latvian (apostrophe, dead quotes)"
+msgstr "Латышский (апостроф, мертвые кавычки)"
+
+msgid "Latvian (apostrophe)"
+msgstr "Латышский (апостроф)"
+
+msgid "Latvian (Colemak)"
+msgstr "Латышский (Colemak)"
+
+msgid "Latvian (Dvorak)"
+msgstr "Латышский (Dvorak)"
+
+msgid "Latvian (programmer Dvorak)"
+msgstr "Латышский (программистский Dvorak)"
+
+msgid "Latvian (ergonomic, ŪGJRMV)"
+msgstr "Латышский (эргономичный, ŪGJRMV)"
+
+msgid "Latvian (F)"
+msgstr "Латышский (F)"
+
+msgid "Latvian (Dvorak, with minus)"
+msgstr "Латышский (Dvorak, с минусом)"
+
+msgid "Latvian (programmer Dvorak, with minus)"
+msgstr "Латышский (программистский Dvorak, с минусом)"
+
+msgid "Latvian (modern)"
+msgstr "Латышский (современный)"
+
+msgid "Latvian (Sun Type 6/7)"
+msgstr "Латышский (Sun Type 6/7)"
+
+msgid "Latvian (tilde)"
+msgstr "Латышский (тильда)"
+
+msgid "Latvian (Dvorak, with Y)"
+msgstr "Латышский (Dvorak, с Y)"
+
+msgid "Latvian (programmer Dvorak, with Y)"
+msgstr "Латышский (программистский Dvorak, с Y)"
+
+msgid "Arabic (Morocco)"
+msgstr "Арабский (Марокко)"
+
+msgid "French (Morocco)"
+msgstr "Французский (Марокко)"
+
+msgid "Tarifit"
+msgstr "Тарифит"
+
+msgid "Berber (Morocco, Tifinagh alt.)"
+msgstr "Берберский (Марокко, Tifinagh alt.)"
+
+msgid "Berber (Morocco, Tifinagh phonetic, alt.)"
+msgstr "Берберский (Марокко, Tifinagh фонетический, alt.)"
+
+msgid "Berber (Morocco, Tifinagh)"
+msgstr "Берберский (Марокко, Tifinagh)"
+
+msgid "Berber (Morocco, Tifinagh extended)"
+msgstr "Берберский (Марокко, Tifinagh расширенный)"
+
+msgid "Berber (Morocco, Tifinagh extended phonetic)"
+msgstr "Берберский (Марокко, Tifinagh расширенный фонетический)"
+
+msgid "Berber (Morocco, Tifinagh phonetic)"
+msgstr "Берберский (Марокко, Tifinagh фонетический)"
+
+msgid "Maori"
+msgstr "Маори"
+
+msgid "Moldavian"
+msgstr "Молдавский"
+
+msgid "Moldavian (Gagauz)"
+msgstr "Молдавский (гагаузский)"
+
+msgid "Montenegrin"
+msgstr "Черногорский"
+
+msgid "Montenegrin (Cyrillic, with guillemets)"
+msgstr "Черногорский (кириллица, с кавычками)"
+
+msgid "Montenegrin (Cyrillic)"
+msgstr "Черногорский (кириллица)"
+
+msgid "Montenegrin (Cyrillic, ZE and ZHE swapped)"
+msgstr "Черногорский (кириллица, ZE и ZHE поменяны местами)"
+
+msgid "Montenegrin (Latin, with guillemets)"
+msgstr "Черногорский (латиница, с кавычками)"
+
+msgid "Montenegrin (Latin, Unicode)"
+msgstr "Черногорский (латиница, Unicode)"
+
+msgid "Montenegrin (Latin, Unicode, QWERTY)"
+msgstr "Черногорский (латиница, Unicode, QWERTY)"
+
+msgid "Montenegrin (Latin, QWERTY)"
+msgstr "Черногорский (латиница, QWERTY)"
+
+msgid "Macedonian (no dead keys)"
+msgstr "Македонский (без мёртвых клавиш)"
+
+msgid "Bambara"
+msgstr "Бамбара"
+
+msgid "French (Mali, alt.)"
+msgstr "Французский (Мали, alt.)"
+
+msgid "English (Mali, US, intl.)"
+msgstr "Английский (Мали, US, intl.)"
+
+msgid "English (Mali, US, Macintosh)"
+msgstr "Английский (Мали, US, Macintosh)"
+
+msgid "Burmese"
+msgstr "Бирманский"
+
+msgid "Mon (A1)"
+msgstr "Мон (A1)"
+
+msgid "Mon"
+msgstr "Мон"
+
+msgid "Shan"
+msgstr "Шанский"
+
+msgid "Burmese Zawgyi"
+msgstr "Бирманский Zawgyi"
+
+msgid "Shan (Zawgyi Tai)"
+msgstr "Шанский (Zawgyi Tai)"
+
+msgid "Mongolian"
+msgstr "Монгольский"
+
+msgid "Maltese (UK, with AltGr overrides)"
+msgstr "Мальтийский (UK, с переопределениями AltGr)"
+
+msgid "Maltese (US, with AltGr overrides)"
+msgstr "Мальтийский (US, с переопределениями AltGr)"
+
+msgid "Maltese (US)"
+msgstr "Мальтийский (US)"
+
+msgid "Dhivehi"
+msgstr "Дивехи"
+
+msgid "Malay (Jawi, Arabic Keyboard)"
+msgstr "Малайский (Джави, арабская клавиатура)"
+
+msgid "Malay (Jawi, phonetic)"
+msgstr "Малайский (Джави, фонетический)"
+
+msgid "English (Nigeria)"
+msgstr "Английский (Нигерия)"
+
+msgid "Hausa (Nigeria)"
+msgstr "Хауса (Нигерия)"
+
+msgid "Igbo"
+msgstr "Игбо"
+
+msgid "Yoruba"
+msgstr "Йоруба"
+
+msgid "Dutch (Macintosh)"
+msgstr "Голландский (Macintosh)"
+
+msgid "Dutch (standard)"
+msgstr "Голландский (стандартный)"
+
+msgid "Dutch (Sun Type 6/7)"
+msgstr "Голландский (Sun Type 6/7)"
+
+msgid "Dutch (US)"
+msgstr "Голландский (US)"
+
+msgid "Norwegian"
+msgstr "Норвежский"
+
+msgid "Norwegian (Colemak)"
+msgstr "Норвежский (Colemak)"
+
+msgid "Norwegian (Dvorak)"
+msgstr "Норвежский (Dvorak)"
+
+msgid "Norwegian (Macintosh, no dead keys)"
+msgstr "Норвежский (Macintosh, без мёртвых клавиш)"
+
+msgid "Norwegian (Macintosh)"
+msgstr "Норвежский (Macintosh)"
+
+msgid "Norwegian (no dead keys)"
+msgstr "Норвежский (без мёртвых клавиш)"
+
+msgid "Northern Saami (Norway, no dead keys)"
+msgstr "Северносаамский (Норвегия, без мёртвых клавиш)"
+
+msgid "Northern Saami (Norway)"
+msgstr "Северносаамский (Норвегия)"
+
+msgid "Norwegian (Sun Type 6/7)"
+msgstr "Норвежский (Sun Type 6/7)"
+
+msgid "Norwegian (Windows)"
+msgstr "Норвежский (Windows)"
+
+msgid "Nepali"
+msgstr "Непальский"
+
+msgid "Filipino"
+msgstr "Филиппинский"
+
+msgid "Filipino (Capewell-Dvorak, Baybayin)"
+msgstr "Филиппинский (Capewell-Dvorak, Baybayin)"
+
+msgid "Filipino (Capewell-Dvorak, Latin)"
+msgstr "Филиппинский (Capewell-Dvorak, латиница)"
+
+msgid "Filipino (Capewell-QWERF 2006, Baybayin)"
+msgstr "Филиппинский (Capewell-QWERF 2006, Baybayin)"
+
+msgid "Filipino (Capewell-QWERF 2006, Latin)"
+msgstr "Филиппинский (Capewell-QWERF 2006, латиница)"
+
+msgid "Filipino (Colemak, Baybayin)"
+msgstr "Филиппинский (Colemak, Baybayin)"
+
+msgid "Filipino (Colemak, Latin)"
+msgstr "Филиппинский (Colemak, латиница)"
+
+msgid "Filipino (Dvorak, Baybayin)"
+msgstr "Филиппинский (Dvorak, Baybayin)"
+
+msgid "Filipino (Dvorak, Latin)"
+msgstr "Филиппинский (Dvorak, латиница)"
+
+msgid "Filipino (QWERTY, Baybayin)"
+msgstr "Филиппинский (QWERTY, Baybayin)"
+
+msgid "Urdu (Pakistan)"
+msgstr "Урду (Пакистан)"
+
+msgid "Arabic (Pakistan)"
+msgstr "Арабский (Пакистан)"
+
+msgid "Sindhi"
+msgstr "Синдхи"
+
+msgid "Urdu (Pakistan, CRULP)"
+msgstr "Урду (Пакистан, CRULP)"
+
+msgid "Urdu (Pakistan, Navees)"
+msgstr "Урду (Пакистан, Navees)"
+
+msgid "Urdu (Pakistan, NLA)"
+msgstr "Урду (Пакистан, NLA)"
+
+msgid "Polish (Colemak-DH)"
+msgstr "Польский (Colemak-DH)"
+
+msgid "Polish (Colemak)"
+msgstr "Польский (Colemak)"
+
+msgid "Kashubian"
+msgstr "Кашубский"
+
+msgid "Polish (Dvorak, with Polish quotes on key 1)"
+msgstr "Польский (Dvorak, с польскими кавычками на клавише 1)"
+
+msgid "Polish (Dvorak)"
+msgstr "Польский (Dvorak)"
+
+msgid "Polish (Dvorak, with Polish quotes on quotemark key)"
+msgstr "Польский (Dvorak, с польскими кавычками на клавише кавычек)"
+
+msgid "Polish (programmer Dvorak)"
+msgstr "Польский (программистский Dvorak)"
+
+msgid "Polish (Glagolica)"
+msgstr "Польский (глаголица)"
+
+msgid "Polish (intl., with dead keys)"
+msgstr "Польский (международный, с мёртвыми клавишами)"
+
+msgid "Polish (lefty)"
+msgstr "Польский (левша)"
+
+msgid "Polish (legacy)"
+msgstr "Польский (устаревший)"
+
+msgid "Polish (QWERTZ)"
+msgstr "Польский (QWERTZ)"
+
+msgid "Russian (Poland, phonetic Dvorak)"
+msgstr "Русский (Польша, фонетический Dvorak)"
+
+msgid "Polish (Sun Type 6/7)"
+msgstr "Польский (Sun Type 6/7)"
+
+msgid "Silesian"
+msgstr "Силезский"
+
+msgid "Portuguese (Colemak)"
+msgstr "Португальский (Colemak)"
+
+msgid "Portuguese (Macintosh, no dead keys)"
+msgstr "Португальский (Macintosh, без мёртвых клавиш)"
+
+msgid "Portuguese (Macintosh)"
+msgstr "Португальский (Macintosh)"
+
+msgid "Esperanto (Portugal, Nativo)"
+msgstr "Эсперанто (Португалия, Nativo)"
+
+msgid "Portuguese (Nativo)"
+msgstr "Португальский (Nativo)"
+
+msgid "Portuguese (Nativo for US keyboards)"
+msgstr "Португальский (Nativo для американских клавиатур)"
+
+msgid "Portuguese (no dead keys)"
+msgstr "Португальский (без мёртвых клавиш)"
+
+msgid "Portuguese (Sun Type 6/7)"
+msgstr "Португальский (Sun Type 6/7)"
+
+msgid "Crimean Tatar (Dobruja Q)"
+msgstr "Крымско-татарский (Dobruja Q)"
+
+msgid "Romanian (ergonomic Touchtype)"
+msgstr "Румынский (эргономичный Touchtype)"
+
+msgid "Romanian (standard)"
+msgstr "Румынский (стандартный)"
+
+msgid "Romanian (Sun Type 6/7)"
+msgstr "Румынский (Sun Type 6/7)"
+
+msgid "Romanian (Windows)"
+msgstr "Румынский (Windows)"
+
+msgid "Serbian (Cyrillic, with guillemets)"
+msgstr "Сербский (кириллица, с кавычками)"
+
+msgid "Serbian (combining accents instead of dead keys)"
+msgstr "Сербский (комбинирование акцентов вместо мёртвых клавиш)"
+
+msgid "Serbian (Latin, with guillemets)"
+msgstr "Сербский (латиница, с кавычками)"
+
+msgid "Serbian (Latin)"
+msgstr "Сербский (латиница)"
+
+msgid "Serbian (Latin, Unicode)"
+msgstr "Сербский (латиница, Unicode)"
+
+msgid "Serbian (Latin, Unicode, QWERTY)"
+msgstr "Сербский (латиница, Unicode, QWERTY)"
+
+msgid "Serbian (Latin, QWERTY)"
+msgstr "Сербский (латиница, QWERTY)"
+
+msgid "Pannonian Rusyn"
+msgstr "Паннонский русинский"
+
+msgid "Serbian (Cyrillic, ZE and ZHE swapped)"
+msgstr "Сербский (кириллица, ZE и ZHE поменяны местами)"
+
+msgid "Bashkirian"
+msgstr "Башкирский"
+
+msgid "Mari"
+msgstr "Марийский"
+
+msgid "Church Slavonic"
+msgstr "Церковнославянский"
+
+msgid "Chuvash"
+msgstr "Чувашский"
+
+msgid "Chuvash (Latin)"
+msgstr "Чувашский (латиница)"
+
+msgid "Russian (DOS)"
+msgstr "Русский (DOS)"
+
+msgid "Russian (GOST 14289-88)"
+msgstr "Русский (GOST 14289-88)"
+
+msgid "Russian (GOST 6431-75)"
+msgstr "Русский (GOST 6431-75)"
+
+msgid "Komi"
+msgstr "Коми"
+
+msgid "Russian (legacy)"
+msgstr "Русский (устаревший)"
+
+msgid "Russian (Macintosh)"
+msgstr "Русский (Macintosh)"
+
+msgid "Ossetian (legacy)"
+msgstr "Осетинский (устаревший)"
+
+msgid "Ossetian (Windows)"
+msgstr "Осетинский (Windows)"
+
+msgid "Russian (phonetic, AZERTY)"
+msgstr "Русский (фонетический, AZERTY)"
+
+msgid "Russian (phonetic, Dvorak)"
+msgstr "Русский (фонетический, Dvorak)"
+
+msgid "Russian (phonetic, French)"
+msgstr "Русский (фонетический, французский)"
+
+msgid "Russian (phonetic Macintosh)"
+msgstr "Русский (фонетический, Macintosh)"
+
+msgid "Russian (phonetic)"
+msgstr "Русский (фонетический)"
+
+msgid "Russian (phonetic, Windows)"
+msgstr "Русский (фонетический, Windows)"
+
+msgid "Russian (phonetic, YAZHERTY)"
+msgstr "Русский (фонетический, YAZHERTY)"
+
+msgid "Russian (Polyglot and Reactionary)"
+msgstr "Русский (Полиглот и Реакционный)"
+
+msgid "Russian (Rulemak, phonetic Colemak)"
+msgstr "Русский (Rulemak, фонетический Colemak)"
+
+msgid "Russian (with Ukrainian-Belorussian layout)"
+msgstr "Русский (с украинско-белорусским раскладом)"
+
+msgid "Yakut"
+msgstr "Якутский"
+
+msgid "Serbian (Russia)"
+msgstr "Сербский (Россия)"
+
+msgid "Russian (Sun Type 6/7)"
+msgstr "Русский (Sun Type 6/7)"
+
+msgid "Tatar"
+msgstr "Татарский"
+
+msgid "Russian (typewriter, legacy)"
+msgstr "Русский (машинописный, устаревший)"
+
+msgid "Russian (typewriter)"
+msgstr "Русский (машинописный)"
+
+msgid "Udmurt"
+msgstr "Удмуртский"
+
+msgid "Russian (with US punctuation)"
+msgstr "Русский (с американской пунктуацией)"
+
+msgid "Kalmyk"
+msgstr "Калмыцкий"
+
+msgid "Swedish (Dvorak A5)"
+msgstr "Шведский (Dvorak A5)"
+
+msgid "Swedish (Dvorak)"
+msgstr "Шведский (Dvorak)"
+
+msgid "Swedish (Macintosh)"
+msgstr "Шведский (Macintosh)"
+
+msgid "Swedish (no dead keys)"
+msgstr "Шведский (без мёртвых клавиш)"
+
+msgid "Elfdalian (Swedish, with combining ogonek)"
+msgstr "Эльфдальский (шведский, с комбинирующим огоньком)"
+
+msgid "Russian (Sweden, phonetic, no dead keys)"
+msgstr "Русский (Швеция, фонетический, без мёртвых клавиш)"
+
+msgid "Russian (Sweden, phonetic)"
+msgstr "Русский (Швеция, фонетический)"
+
+msgid "Northern Saami (Sweden)"
+msgstr "Северносаамский (Швеция)"
+
+msgid "Swedish (Sun Type 6/7)"
+msgstr "Шведский (Sun Type 6/7)"
+
+msgid "Swedish (Svdvorak)"
+msgstr "Шведский (Svdvorak)"
+
+msgid "Swedish Sign Language"
+msgstr "Шведский жестовый язык"
+
+msgid "Swedish (Dvorak, intl.)"
+msgstr "Шведский (Dvorak, международный)"
+
+msgid "Swedish (US)"
+msgstr "Шведский (США)"
+
+msgid "Slovenian (with guillemets)"
+msgstr "Словенский (с кавычками)"
+
+msgid "Slovenian (US)"
+msgstr "Словенский (США)"
+
+msgid "Slovak (ACC layout, only accented letters)"
+msgstr "Словацкий (макет ACC, только ударные буквы)"
+
+msgid "Slovak (extended backslash)"
+msgstr "Словацкий (расширенный обратный слэш)"
+
+msgid "Slovak (QWERTY, extended backslash)"
+msgstr "Словацкий (QWERTY, расширенный обратный слэш)"
+
+msgid "Slovak (QWERTY)"
+msgstr "Словацкий (QWERTY)"
+
+msgid "Slovak (Sun Type 6/7)"
+msgstr "Словацкий (Sun Type 6/7)"
+
+msgid "Wolof"
+msgstr "Волоф"
+
+msgid "Arabic (Syria)"
+msgstr "Арабский (Сирия)"
+
+msgid "Kurdish (Syria, Latin Alt-Q)"
+msgstr "Курдский (Сирия, латиница Alt-Q)"
+
+msgid "Kurdish (Syria, F)"
+msgstr "Курдский (Сирия, F)"
+
+msgid "Kurdish (Syria, Latin Q)"
+msgstr "Курдский (Сирия, латиница Q)"
+
+msgid "Syriac (phonetic)"
+msgstr "Сирийский (фонетический)"
+
+msgid "Syriac"
+msgstr "Сирийский"
+
+msgid "French (Togo)"
+msgstr "Французский (Того)"
+
+msgid "Thai (Pattachote)"
+msgstr "Тайский (Pattachote)"
+
+msgid "Thai (TIS-820.2538)"
+msgstr "Тайский (TIS-820.2538)"
+
+msgid "Tajik"
+msgstr "Таджикский"
+
+msgid "Tajik (legacy)"
+msgstr "Таджикский (устаревший)"
+
+msgid "Turkmen"
+msgstr "Туркменский"
+
+msgid "Turkmen (Alt-Q)"
+msgstr "Туркменский (Alt-Q)"
+
+msgid "International Phonetic Alphabet"
+msgstr "Международный фонетический алфавит"
+
+msgid "International Phonetic Alphabet (QWERTY)"
+msgstr "Международный фонетический алфавит (QWERTY)"
+
+msgid "Turkish (Alt-Q)"
+msgstr "Турецкий (Alt-Q)"
+
+msgid "Turkish (F)"
+msgstr "Турецкий (F)"
+
+msgid "Turkish (intl., with dead keys)"
+msgstr "Турецкий (международный, с мёртвыми клавишами)"
+
+msgid "Kurdish (Turkey, Latin Alt-Q)"
+msgstr "Курдский (Турция, латиница Alt-Q)"
+
+msgid "Kurdish (Turkey, F)"
+msgstr "Курдский (Турция, F)"
+
+msgid "Kurdish (Turkey, Latin Q)"
+msgstr "Курдский (Турция, латиница Q)"
+
+msgid "Ottoman (Q)"
+msgstr "Османская (Q)"
+
+msgid "Turkish (Sun Type 6/7)"
+msgstr "Турецкий (Sun Type 6/7)"
+
+msgid "Turkish (Turkey, Latin Q, Swap i and ı)"
+msgstr "Турецкий (Турция, латинская Q, Swap i и ı)"
+
+msgid "Taiwanese"
+msgstr "Тайваньский"
+
+msgid "Taiwanese (indigenous)"
+msgstr "Тайваньский (коренной)"
+
+msgid "Saisiyat (Taiwan)"
+msgstr "Сайсият (Тайвань)"
+
+msgid "Swahili (Tanzania)"
+msgstr "Суахили (Танзания)"
+
+msgid "Crimean Tatar (Turkish Alt-Q)"
+msgstr "Крымско-татарский (турецкий Alt-Q)"
+
+msgid "Crimean Tatar (Turkish Q)"
+msgstr "Крымско-татарский (турецкий Q)"
+
+msgid "Crimean Tatar (Turkish F)"
+msgstr "Крымско-татарский (турецкий F)"
+
+msgid "Ukrainian (homophonic)"
+msgstr "Украинский (гомофонный)"
+
+msgid "Ukrainian (legacy)"
+msgstr "Украинский (устаревший)"
+
+msgid "Ukrainian (macOS)"
+msgstr "Украинский (macOS)"
+
+msgid "Ukrainian (phonetic)"
+msgstr "Украинский (фонетический)"
+
+msgid "Russian (Ukraine, standard RSTU)"
+msgstr "Русский (Украина, стандарт RSTU)"
+
+msgid "Ukrainian (standard RSTU)"
+msgstr "Украинский (стандарт RSTU)"
+
+msgid "Ukrainian (Sun Type 6/7)"
+msgstr "Украинский (Sun Type 6/7)"
+
+msgid "Ukrainian (typewriter)"
+msgstr "Украинский (печатная машинка)"
+
+msgid "Ukrainian (Windows)"
+msgstr "Украинский (Windows)"
+
+msgid "English (US)"
+msgstr "Английский (США)"
+
+msgid "English (3l, Chromebook)"
+msgstr "Английский (3l, Chromebook)"
+
+msgid "English (3l, emacs)"
+msgstr "Английский (3l, emacs)"
+
+msgid "English (3l)"
+msgstr "Английский (3l)"
+
+msgid "English (intl., with AltGr dead keys)"
+msgstr "Английский (международный, с мёртвыми клавишами AltGr)"
+
+msgid "English (Western European AltGr dead keys)"
+msgstr "Английский (западноевропейский с мёртвыми клавишами AltGr)"
+
+msgid "English (US, alt. intl.)"
+msgstr "Английский (США, альтернативный международный)"
+
+msgid "English (US, intl., AltGr Unicode combining, alt.)"
+msgstr "Английский (США, международный, AltGr Unicode сочетание, альт.)"
+
+msgid "Atsina"
+msgstr "Ацена"
+
+msgid "English (Carpalx, intl., with AltGr dead keys)"
+msgstr "Английский (Carpalx, международный, с мёртвыми клавишами AltGr)"
+
+msgid "English (Carpalx)"
+msgstr "Английский (Carpalx)"
+
+msgid "English (Carpalx, full optimization, intl., with AltGr dead keys)"
+msgstr "Английский (Carpalx, полная оптимизация, международный, с мёртвыми клавишами AltGr)"
+
+msgid "English (Carpalx, full optimization)"
+msgstr "Английский (Carpalx, полная оптимизация)"
+
+msgid "English (Carpalx, full optimization, intl., with dead keys)"
+msgstr "Английский (Carpalx, полная оптимизация, международный, с мёртвыми клавишами)"
+
+msgid "English (Carpalx, intl., with dead keys)"
+msgstr "Английский (Carpalx, международный, с мёртвыми клавишами)"
+
+msgid "Cherokee"
+msgstr "Чероки"
+
+msgid "English (Colemak-DH)"
+msgstr "Английский (Colemak-DH)"
+
+msgid "English (Colemak-DH ISO)"
+msgstr "Английский (Colemak-DH ISO)"
+
+msgid "English (Colemak)"
+msgstr "Английский (Colemak)"
+
+msgid "Coeur d'Alene Salish"
+msgstr "Салиш (Кёр-д'Ален)"
+
+msgid "Czech Slovak and German (US)"
+msgstr "Чешский, словацкий и немецкий (США)"
+
+msgid "Czech, Slovak, Polish, Spanish, Finnish, Swedish and German (US)"
+msgstr "Чешский, словацкий, польский, испанский, финский, шведский и немецкий (США)"
+
+msgid "German, Swedish and Finnish (US)"
+msgstr "Немецкий, шведский и финский (США)"
+
+msgid "English (Drix)"
+msgstr "Английский (Drix)"
+
+msgid "English (Dvorak, alt. intl.)"
+msgstr "Английский (Dvorak, альтернативный международный)"
+
+msgid "English (classic Dvorak)"
+msgstr "Английский (классический Dvorak)"
+
+msgid "English (Dvorak)"
+msgstr "Английский (Dvorak)"
+
+msgid "English (Dvorak, intl., with dead keys)"
+msgstr "Английский (Dvorak, международный, с мёртвыми клавишами)"
+
+msgid "English (Dvorak, left-handed)"
+msgstr "Английский (Dvorak для левши)"
+
+msgid "English (Dvorak, Macintosh)"
+msgstr "Английский (Dvorak для Macintosh)"
+
+msgid "English (Dvorak, right-handed)"
+msgstr "Английский (Dvorak для правши)"
+
+msgid "English (programmer Dvorak)"
+msgstr "Английский (программист Dvorak)"
+
+msgid "English (US, euro on 5)"
+msgstr "Английский (США, евро на 5)"
+
+msgid "Hawaiian"
+msgstr "Гавайский"
+
+msgid "Serbo-Croatian (US)"
+msgstr "Сербско-хорватский (США)"
+
+msgid "English (US, IBM Arabic 238_L)"
+msgstr "Английский (США, IBM Arabic 238_L)"
+
+msgid "English (US, intl., with dead keys)"
+msgstr "Английский (США, международный, с мёртвыми клавишами)"
+
+msgid "English (US, intl., AltGr Unicode combining)"
+msgstr "Английский (США, международный, AltGr Unicode сочетание)"
+
+msgid "English (Macintosh)"
+msgstr "Английский (Macintosh)"
+
+msgid "English (Norman)"
+msgstr "Английский (Норман)"
+
+msgid "English (the divide/multiply toggle the layout)"
+msgstr "Английский (распределить/умножить переключить макет)"
+
+msgid "Russian (US, phonetic)"
+msgstr "Русский (США, фонетический)"
+
+msgid "Sicilian (US keyboard)"
+msgstr "Сицилийский (клавиатура США)"
+
+msgid "English (US, Sun Type 6/7)"
+msgstr "Английский (США, Sun Type 6/7)"
+
+msgid "English (US, Symbolic)"
+msgstr "Английский (США, символический)"
+
+msgid "English (Workman)"
+msgstr "Английский (Workman)"
+
+msgid "English (Workman, intl., with dead keys)"
+msgstr "Английский (Workman, международный, с мёртвыми клавишами)"
+
+msgid "Uzbek"
+msgstr "Узбекский"
+
+msgid "Uzbek (Latin)"
+msgstr "Узбекский (латиница)"
+
+msgid "Vietnamese (AÐERTY)"
+msgstr "Вьетнамский (AÐERTY)"
+
+msgid "Vietnamese (French)"
+msgstr "Вьетнамский (французский)"
+
+msgid "Vietnamese (QĐERTY)"
+msgstr "Вьетнамский (QĐERTY)"
+
+msgid "Vietnamese (US)"
+msgstr "Вьетнамский (США)"
+
+msgid "English (South Africa)"
+msgstr "Английский (Южная Африка)"
\ No newline at end of file