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/) +![ubinstall-icon-gui](ublinux-ubinstall_gui.svg) ![ubinstall-icon-console](ublinux-ubinstall_console.svg) + +## Описание + +Установщик оерационной системы 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 @@ + + + + + + 200 + 400 + False + True + 800 + com.ublinux.libublsettingsui-gtk3 + + + True + False + vertical + 5 + + + True + False + vertical + + + + + + False + True + 0 + + + + + True + False + 5 + 5 + 5 + 5 + 5 + vertical + 5 + + + True + True + in + + + True + True + False + + + + + + column + + + + 2 + 3 + + + + + + + + + + 0 + + + + + + + + + + 1 + + + + + + + + + True + True + 1 + + + + + True + True + 1 + + + + + + + True + False + + + True + False + Keyboard layout language + + + + + + + + True + False + 32 + com.ublinux.ubinstall-gtk-gui + + + + + Cancel + True + True + True + + + 1 + + + + + Apply + True + True + True + + + end + 2 + + + + + + + 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 + + + + + + + True + False + + + True + False + Available languages ​​in the system + + + + + + + + True + False + 32 + com.ublinux.ubinstall-gtk-gui + + + + + Cancel + True + True + True + + + 1 + + + + + Apply + True + True + True + + + end + 2 + + + + + + + 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 + + + True + False + + + True + False + + + 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 + Menu + 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 + + + + + + + True + False + True + + + True + False + 5 + 5 + 5 + 5 + 2 + UBLinux installation + + + + + + + + True + False + True + menu1 + + + True + False + + + True + False + Load + + + False + True + 0 + + + + + True + False + pan-down-symbolic + + + False + True + 1 + + + + + + + + + True + True + True + False + True + True + menu2 + none + + + + + + + end + 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