alterator-sysconfig-0.8/000075500000000000000000000000001111623226200153525ustar00rootroot00000000000000alterator-sysconfig-0.8/Makefile000064400000000000000000000004761111623226200170210ustar00rootroot00000000000000NAME=sysconfig INSTALL=/usr/bin/install all: install: install-module install-data include /usr/share/alterator/build/module.mak install-data: $(INSTALL) -d $(sysconfdir)/alterator/sysconfig cp -a data/* $(sysconfdir)/alterator/sysconfig $(INSTALL) -d $(datadir)/install2 cp -a preinstall.d $(datadir)/install2 alterator-sysconfig-0.8/backend3/000075500000000000000000000000001111623226200170245ustar00rootroot00000000000000alterator-sysconfig-0.8/backend3/sysconfig000075500000000000000000000063341111623226200207640ustar00rootroot00000000000000#!/bin/sh # merge of all bakends (sysfont syskbd syslang) of alterator-sysconfig alterator_api_version=1 . alterator-sh-functions . shell-config ALTCONFDIR=/etc/alterator/sysconfig/ KBDDIR=$ALTCONFDIR/kbd CONFIGDIR=/etc/sysconfig/ KBD_CONFIG=/etc/sysconfig/keyboard XKB_CONFIG=/etc/X11/xinit/Xkbmap i18n_conf="/etc/sysconfig/i18n" langmap_conf="/etc/sysconfig/langmap" rpm_conf="/etc/rpm/macros" langlist="/etc/alterator/sysconfig/lang/langlist" po_charset="UTF-8" # sysconfig-kbd stuff write_layout(){ case "$1" in alt_sh_toggle) echo "`_ "Alt+Shift key"`";; caps_toggle) echo "`_ "CapsLock key"`";; ctrl_shift_toggle) echo "`_ "Control+Shift keys"`";; ctrl_toggle) echo "`_ "Control key"`";; toggle) echo "`_ "Alt key"`";; ctrl_shift_toggle_ru_ua) echo "`_ "Control+Shift keys (UK,RU,EN)"`";; default) echo "`_ "Default"`";; nodeadkeys) echo "`_ "Without dead keys"`";; *) echo "$1";; esac } write_kbd(){ while read name;do name="${name##*/}" name="${name%%.xkb}" write_enum_item "$name" "$(write_layout "$name")" done } default_kbd(){ shell_config_get "$KBDDIR/kbdlist" ${in_language%%;*} '[[:space:]]\+' } # sysconfig-language stuff write_locale(){ local l="$1";shift [ "$l" != "POSIX" ] && echo "$l.$po_charset" || echo "$l" } ### initial actions shell_config_set "$CONFIGDIR/consolefont" SYSFONT UniCyrExt_8x16 ### message loop on_message(){ case $in__objects in kbd) case "$in_action" in read) write_string_param layout "$(default_kbd)" ;; list) local language="${in_language%%;*}" [ -d "$KBDDIR/$language" ] && find "$KBDDIR/$language" -name '*.xkb'|write_kbd ;; write) local language="${in_language%%;*}" if [ -n "$in_layout" ]; then local path="$KBDDIR/$language/$in_layout" install -Dpm644 "$path.xkb" "$XKB_CONFIG" && install -Dpm644 "$path.kbd" "$KBD_CONFIG" && /usr/bin/setxkbmap -option "" && /usr/bin/setxkbmap `cat "$XKB_CONFIG"` else rm -f "$KBD_CONFIG" "$XKB_CONFIG" fi ;; esac ;; language) case "$in_action" in list) local lang_file= if [ -n "$LANG" -a "$LANG" != "POSIX" -a "$LANG" != "C" ]; then lang_file="$langlist.$(printf %s "$LANG" | sed -r -e 's,[a-z]+_([^\.]+)(\..*)?,\1,' | tr '[:upper:]' '[:lower:]')" fi [ -s "$lang_file" ] || lang_file="$langlist.all" write_enum <"$lang_file" ;; write) mkdir -p -- "${i18n_conf%/*}" mkdir -p -- "${langmap_conf%/*}" mkdir -p -- "${rpm_conf%/*}" local firstlang="${in_lang%%;*}" printf 'LANG=%s\n' "$(write_locale "$firstlang")">"$i18n_conf" if echo "$in_language" | fgrep -qs ';'; then printf 'SUPPORTED=%s\n' "$(write_language "$in_language")">>"$i18n_conf" printf '%s\n' "$(write_language "$in_language")">"$langmap_conf" else printf 'SUPPORTED=%s\n' "$(write_locale "$firstlang")">>"$i18n_conf" fi sed 's,^%_install_langs[[:space:]].*,%_install_langs all,' -i "$rpm_conf" ;; esac ;; esac } message_loop alterator-sysconfig-0.8/backend3/sysfont000075500000000000000000000004301111623226200204540ustar00rootroot00000000000000#!/bin/sh alterator_api_version=1 . alterator-sh-functions . shell-config CONFIGDIR=/etc/sysconfig/ on_message() { case "$in_action" in write) #TODO: use language information shell_config_set "$CONFIGDIR/consolefont" SYSFONT UniCyrExt_8x16 ;; esac } message_loop alterator-sysconfig-0.8/backend3/syskbd000075500000000000000000000026721111623226200202600ustar00rootroot00000000000000#!/bin/sh alterator_api_version=1 po_domain="alterator-sysconfig" . alterator-sh-functions . shell-config DATADIR=/etc/alterator/sysconfig/kbd KBD_CONFIG=/etc/sysconfig/keyboard XKB_CONFIG=/etc/X11/xinit/Xkbmap write_layout() { case "$1" in alt_sh_toggle) echo "`_ "Alt+Shift key"`";; caps_toggle) echo "`_ "CapsLock key"`";; ctrl_shift_toggle) echo "`_ "Control+Shift keys"`";; ctrl_toggle) echo "`_ "Control key"`";; toggle) echo "`_ "Alt key"`";; ctrl_shift_toggle_ru_ua) echo "`_ "Control+Shift keys (UK,RU,EN)"`";; default) echo "`_ "Default"`";; nodeadkeys) echo "`_ "Without dead keys"`";; *) echo "`_ "Without dead keys"`";; esac } write_kbd() { while read name;do name="${name##*/}" name="${name%%.xkb}" write_enum_item "$name" "$(write_layout "$name")" done } default_kbd() { shell_config_get "$DATADIR/kbdlist" ${in_language%%;*} '[[:space:]]\+' } on_message() { case "$in_action" in read) write_string_param layout "$(default_kbd)" ;; list) local language="${in_language%%;*}" [ -d "$DATADIR/$language" ] && find "$DATADIR/$language" -name '*.xkb'|write_kbd ;; write) local language=${in_language%%;*} local path="$DATADIR/$language/$in_layout" install -Dpm644 "$path.xkb" "$XKB_CONFIG" && install -Dpm644 "$path.kbd" "$KBD_CONFIG" && /usr/bin/setxkbmap -option "" && /usr/bin/setxkbmap `cat "$XKB_CONFIG"` ;; esac } message_loop alterator-sysconfig-0.8/backend3/syslang000075500000000000000000000025041111623226200204330ustar00rootroot00000000000000#!/bin/sh alterator_api_version=1 . alterator-sh-functions i18n_conf="/etc/sysconfig/i18n" langmap_conf="/etc/sysconfig/langmap" rpm_conf="/etc/rpm/macros" langlist="/etc/alterator/sysconfig/lang/langlist" po_charset="UTF-8" write_locale() { local l="$1";shift [ "$l" != "POSIX" ] && echo "$l.$po_charset" || echo "$l" } on_message() { case "$in_action" in list) local lang_file= if [ -n "$LANG" -a "$LANG" != "POSIX" -a "$LANG" != "C" ]; then lang_file="$langlist.$(printf %s "$LANG" | sed -r -e 's,[a-z]+_([^\.]+)(\..*)?,\1,' | tr '[:upper:]' '[:lower:]')" fi [ -s "$lang_file" ] || lang_file="$langlist.all" write_enum <"$lang_file" ;; write) mkdir -p -- "${i18n_conf%/*}" mkdir -p -- "${langmap_conf%/*}" mkdir -p -- "${rpm_conf%/*}" local firstlang="${in_lang%%;*}" printf 'LANG=%s\n' "$(write_locale "$firstlang")">"$i18n_conf" if echo "$in_language" | fgrep -qs ';'; then printf 'SUPPORTED=%s\n' "$(write_language "$in_language")">>"$i18n_conf" printf '%s\n' "$(write_language "$in_language")">"$langmap_conf" else printf 'SUPPORTED=%s\n' "$(write_locale "$firstlang")">>"$i18n_conf" fi sed 's,^%_install_langs[[:space:]].*,%_install_langs all,' -i "$rpm_conf" ;; esac } message_loop alterator-sysconfig-0.8/data/000075500000000000000000000000001111623226200162635ustar00rootroot00000000000000alterator-sysconfig-0.8/data/kbd/000075500000000000000000000000001111623226200170235ustar00rootroot00000000000000alterator-sysconfig-0.8/data/kbd/be_BY/000075500000000000000000000000001111623226200200035ustar00rootroot00000000000000alterator-sysconfig-0.8/data/kbd/be_BY/ctrl_shift_toggle.kbd000064400000000000000000000000221111623226200241610ustar00rootroot00000000000000KEYTABLE=by-UTF-8 alterator-sysconfig-0.8/data/kbd/be_BY/ctrl_shift_toggle.xkb000064400000000000000000000000761111623226200242160ustar00rootroot00000000000000-layout us,by -option grp:ctrl_shift_toggle -variant ,winkeys alterator-sysconfig-0.8/data/kbd/de_DE/000075500000000000000000000000001111623226200177635ustar00rootroot00000000000000alterator-sysconfig-0.8/data/kbd/de_DE/default.kbd000064400000000000000000000000241111623226200220650ustar00rootroot00000000000000KEYTABLE=de-latin1 alterator-sysconfig-0.8/data/kbd/de_DE/default.xkb000064400000000000000000000000131111623226200221070ustar00rootroot00000000000000-layout de alterator-sysconfig-0.8/data/kbd/de_DE/nodeadkeys.kbd000064400000000000000000000000361111623226200225720ustar00rootroot00000000000000KEYTABLE=de-latin1-nodeadkeys alterator-sysconfig-0.8/data/kbd/de_DE/nodeadkeys.xkb000064400000000000000000000000371111623226200226170ustar00rootroot00000000000000-layout de -variant nodeadkeys alterator-sysconfig-0.8/data/kbd/fr_FR/000075500000000000000000000000001111623226200200215ustar00rootroot00000000000000alterator-sysconfig-0.8/data/kbd/fr_FR/default.kbd000064400000000000000000000000231111623226200221220ustar00rootroot00000000000000KEYTABLE=fr-latin1 alterator-sysconfig-0.8/data/kbd/fr_FR/default.xkb000064400000000000000000000000131111623226200221450ustar00rootroot00000000000000-layout fr alterator-sysconfig-0.8/data/kbd/kbdlist000064400000000000000000000001351111623226200204010ustar00rootroot00000000000000#default layouts #format:language keymap ru_RU ctrl_shift_toggle tt_RU ctrl_shift_toggle alterator-sysconfig-0.8/data/kbd/ru_RU/000075500000000000000000000000001111623226200200575ustar00rootroot00000000000000alterator-sysconfig-0.8/data/kbd/ru_RU/alt_sh_toggle.kbd000064400000000000000000000000431111623226200233510ustar00rootroot00000000000000KEYTABLE=ruwin-Corwin_alt_sh-UTF-8 alterator-sysconfig-0.8/data/kbd/ru_RU/alt_sh_toggle.xkb000064400000000000000000000000711111623226200233760ustar00rootroot00000000000000-layout us,ru -option grp:alt_shift_toggle,compose:menu alterator-sysconfig-0.8/data/kbd/ru_RU/caps_toggle.kbd000064400000000000000000000000321111623226200230230ustar00rootroot00000000000000KEYTABLE=ruwin_cplk-UTF-8 alterator-sysconfig-0.8/data/kbd/ru_RU/caps_toggle.xkb000064400000000000000000000000761111623226200230570ustar00rootroot00000000000000-layout us,ru -option grp:caps_toggle,grp:switch,compose:menu alterator-sysconfig-0.8/data/kbd/ru_RU/ctrl_shift_toggle.kbd000064400000000000000000000000331111623226200242370ustar00rootroot00000000000000KEYTABLE=ruwin_ct_sh-UTF-8 alterator-sysconfig-0.8/data/kbd/ru_RU/ctrl_shift_toggle.xkb000064400000000000000000000001051111623226200242630ustar00rootroot00000000000000-layout us,ru -option grp:ctrl_shift_toggle,grp:switch,compose:menu alterator-sysconfig-0.8/data/kbd/ru_RU/ctrl_toggle.kbd000064400000000000000000000000321111623226200230410ustar00rootroot00000000000000KEYTABLE=ruwin_ctrl-UTF-8 alterator-sysconfig-0.8/data/kbd/ru_RU/ctrl_toggle.xkb000064400000000000000000000001001111623226200230610ustar00rootroot00000000000000-layout us,ru -option grp:rctrl_toggle,grp:switch,compose:menu alterator-sysconfig-0.8/data/kbd/ru_RU/toggle.kbd000064400000000000000000000000311111623226200220140ustar00rootroot00000000000000KEYTABLE=ruwin_alt-UTF-8 alterator-sysconfig-0.8/data/kbd/ru_RU/toggle.xkb000064400000000000000000000000721111623226200220450ustar00rootroot00000000000000-layout us,ru -option grp:toggle,grp:switch,compose:menu alterator-sysconfig-0.8/data/kbd/ru_UA/000075500000000000000000000000001111623226200200365ustar00rootroot00000000000000alterator-sysconfig-0.8/data/kbd/ru_UA/ctrl_shift_toggle_ru_ua.kbd000064400000000000000000000000221111623226200254070ustar00rootroot00000000000000KEYTABLE=ua-UTF-8 alterator-sysconfig-0.8/data/kbd/ru_UA/ctrl_shift_toggle_ru_ua.xkb000064400000000000000000000001111111623226200254320ustar00rootroot00000000000000-layout us,ua,ru -option grp:ctrl_shift_toggle -variant ,winkeys,winkeys alterator-sysconfig-0.8/data/kbd/tt_RU/000075500000000000000000000000001111623226200200605ustar00rootroot00000000000000alterator-sysconfig-0.8/data/kbd/tt_RU/caps_toggle.kbd000064400000000000000000000000321111623226200230240ustar00rootroot00000000000000KEYTABLE=ttwin_cplk-UTF-8 alterator-sysconfig-0.8/data/kbd/tt_RU/caps_toggle.xkb000064400000000000000000000000631111623226200230540ustar00rootroot00000000000000-layout us,ru -option grp:caps_toggle -variant ,tt alterator-sysconfig-0.8/data/kbd/tt_RU/ctrl_shift_toggle.kbd000064400000000000000000000000331111623226200242400ustar00rootroot00000000000000KEYTABLE=ttwin_ct_sh-UTF-8 alterator-sysconfig-0.8/data/kbd/tt_RU/ctrl_shift_toggle.xkb000064400000000000000000000000721111623226200242670ustar00rootroot00000000000000-layout us,ru -option grp:ctrl_shift_toggle -variant ,tt alterator-sysconfig-0.8/data/kbd/tt_RU/ctrl_toggle.kbd000064400000000000000000000000321111623226200230420ustar00rootroot00000000000000KEYTABLE=ttwin_ctrl-UTF-8 alterator-sysconfig-0.8/data/kbd/tt_RU/ctrl_toggle.xkb000064400000000000000000000000641111623226200230730ustar00rootroot00000000000000-layout us,ru -option grp:ctrl_toggle -variant ,tt alterator-sysconfig-0.8/data/kbd/tt_RU/toggle.kbd000064400000000000000000000000311111623226200220150ustar00rootroot00000000000000KEYTABLE=ttwin_alt-UTF-8 alterator-sysconfig-0.8/data/kbd/tt_RU/toggle.xkb000064400000000000000000000000571111623226200220510ustar00rootroot00000000000000-layout us,ru -option grp:toggle -variant ,tt alterator-sysconfig-0.8/data/kbd/uk_UA/000075500000000000000000000000001111623226200200275ustar00rootroot00000000000000alterator-sysconfig-0.8/data/kbd/uk_UA/ctrl_shift_toggle.kbd000064400000000000000000000000221111623226200242050ustar00rootroot00000000000000KEYTABLE=ua-UTF-8 alterator-sysconfig-0.8/data/kbd/uk_UA/ctrl_shift_toggle.xkb000064400000000000000000000000761111623226200242420ustar00rootroot00000000000000-layout us,ua -option grp:ctrl_shift_toggle -variant ,winkeys alterator-sysconfig-0.8/data/lang/000075500000000000000000000000001111623226200172045ustar00rootroot00000000000000alterator-sysconfig-0.8/data/lang/langlist.all000064400000000000000000000001351111623226200215120ustar00rootroot00000000000000en_US English (USA) ru_RU Russian be_BY Belarusian uk_UA Ukrainian pt_BR Portuguese (Brazil) alterator-sysconfig-0.8/data/lang/langlist.ru000064400000000000000000000001521111623226200213670ustar00rootroot00000000000000en_US Английский ru_RU Русский tt_RU:ru_RU Татарский uk_UA Украинский alterator-sysconfig-0.8/data/lang/langlist.ua000064400000000000000000000001171111623226200213470ustar00rootroot00000000000000uk_UA Українська ru_UA Російська en_US Англійська alterator-sysconfig-0.8/help/000075500000000000000000000000001111623226200163025ustar00rootroot00000000000000alterator-sysconfig-0.8/help/ru_RU/000075500000000000000000000000001111623226200173365ustar00rootroot00000000000000alterator-sysconfig-0.8/help/ru_RU/sysconfig-kbd.html000064400000000000000000000013511111623226200227660ustar00rootroot00000000000000 Настройка клавиатуры

Настройка клавиатуры

Выберите ту комбинацию клавиш, которую Вы привыкли использовать для переключения раскладки клавиатуры. Выбранный вариант будет действовать и в текстовом и графическом интерфейсах.

alterator-sysconfig-0.8/help/ru_RU/sysconfig-language.html000064400000000000000000000011271111623226200240120ustar00rootroot00000000000000 Язык

Язык

Выберите основной язык интерфейса системы. В списке перечислены языки, используемые в стране, выбранной при загрузке программы установки.

alterator-sysconfig-0.8/help/ru_RU/sysconfig.html000064400000000000000000000020211111623226200222230ustar00rootroot00000000000000 Системные настройки

Язык

Выберите основной язык интерфейса системы. В списке перечислены языки, используемые в стране, выбранной при загрузке программы установки.

Настройка клавиатуры

Выберите ту комбинацию клавиш, которую вы привыкли использовать для переключения раскладки клавиатуры. Выбранный вариант будет действовать и в текстовом, и в графическом интерфейсах.

alterator-sysconfig-0.8/preinstall.d/000075500000000000000000000000001111623226200177515ustar00rootroot00000000000000alterator-sysconfig-0.8/preinstall.d/20-sysconfig.sh000075500000000000000000000026131111623226200225350ustar00rootroot00000000000000#!/bin/sh -efu # ***** BEGIN LICENSE BLOCK ***** # * Copyright (C) 2007 Alexey Gladkov # * # * This program is free software; you can redistribute it and/or modify # * it under the terms of the GNU General Public License as published by # * the Free Software Foundation; either version 2 of the License, or # * (at your option) any later version. # * # * This program is distributed in the hope that it will be useful, # * but WITHOUT ANY WARRANTY; without even the implied warranty of # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # * GNU General Public License for more details. # * # * You should have received a copy of the GNU General Public License # * along with this program; if not, write to the Free Software # * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. # ***** END LICENSE BLOCK ***** . install2-init-functions [ ! -f "/etc/sysconfig/i18n" ] || cp -af "/etc/sysconfig/i18n" "$destdir/etc/sysconfig/" [ ! -f "/etc/sysconfig/langmap" ] || cp -af "/etc/sysconfig/langmap" "$destdir/etc/sysconfig/" [ ! -f "/etc/sysconfig/consolefont" ] || cp -af "/etc/sysconfig/consolefont" "$destdir/etc/sysconfig/" [ ! -f "/etc/sysconfig/keyboard" ] || cp -af "/etc/sysconfig/keyboard" "$destdir/etc/sysconfig/" [ ! -f "/etc/X11/xinit/Xkbmap" -o ! -d "$destdir/etc/X11/xinit" ] || cp -af "/etc/X11/xinit/Xkbmap" "$destdir/etc/X11/xinit/" alterator-sysconfig-0.8/ui/000075500000000000000000000000001111623226200157675ustar00rootroot00000000000000alterator-sysconfig-0.8/ui/sysconfig/000075500000000000000000000000001111623226200177735ustar00rootroot00000000000000alterator-sysconfig-0.8/ui/sysconfig/index.scm000064400000000000000000000042661111623226200216160ustar00rootroot00000000000000(document:surround "/std/frame") (document:insert "/std/functions") ;;; language stuff (define (current-language) (and-let* ((l (langlist value))) (string-cut l #\:))) (define (label+icon x) (cons (woo-get-option x 'label) (woo-get-option x 'icon))) (define (change-translations) (define-operation set-lang) (set-lang (fluid-ref generic-session) (current-language)) ;;wizardface specific hacks (and-let* ((wizard-id (global 'frame:wizard)) (_ (make-translator "alterator-wizard" (session-language)))) (wizard-id steps-clear) (wizard-id steps (map label+icon (woo-list "/step-list"))) (wizard-id current-step 0) (wizard-id action-text 'help (_ "Help")) (wizard-id action-text 'forward (_ "Next"))) ;;common hacks (let ((_ (make-translator "alterator-sysconfig" (session-language)))) (label1 text (_ "Select your language:")) (label2 text (_ "Please select keyboard switch type:")))) (define (default-language) (define-operation get-lang) (string-join (get-lang (fluid-ref generic-session)) ":")) (define (update-lang) (change-translations) (keyboard-type enumref "/sysconfig/kbd") (and (positive? (keyboard-type count)) (default-keyboard))) ;;; keyboard stuff (define (default-keyboard) (keyboard-type value (woo-get-option (woo-read-first "/sysconfig/kbd") 'layout)) (or (positive? (keyboard-type current)) (keyboard-type current 0))) (define (write-sysconfig) (woo-catch/message (lambda() (let ((lang (current-language)) (kbd (keyboard-type value))) (woo-write "/sysconfig/language" 'lang lang) (woo-write "/sysconfig/kbd" 'layout kbd) (simple-notify document:root 'action "language" 'value lang) #t)))) ;;;;;;;;;;;; (gridbox columns "50;50" margin 50 (document:id label1 (label text "Select your language:")) (document:id label2 (label text "Please select keyboard switch type:")) (document:id langlist (listbox (when selected (update-lang)))) (document:id keyboard-type (listbox)) ) (frame:on-next (thunk (or (write-sysconfig) 'cancel))) (document:root (when loaded (woo-catch/message (lambda() (langlist enumref "/sysconfig/language" value (default-language) selected))))) alterator-sysconfig-0.8/ui/sysconfig/kbd/000075500000000000000000000000001111623226200205335ustar00rootroot00000000000000alterator-sysconfig-0.8/ui/sysconfig/kbd/index.scm000064400000000000000000000021651111623226200223520ustar00rootroot00000000000000(document:surround "/std/frame") (document:insert "/std/functions") (po-domain "alterator-sysconfig") (define (write-keyboard) (woo-catch/message (thunk (woo-write "/sysfont");;save console font (and-let* ((kbd (keyboard-type value)));;save console and X11 keyboard layout (woo-write "/syskbd/" 'layout kbd)) #t))) (define (default-keyboard) (keyboard-type value (woo-get-option (woo-read-first "/syskbd") 'layout)) (or (positive? (keyboard-type current)) (keyboard-type current 0))) ;;;;;;;;;;;; (gridbox columns "30;40;30" ;; (spacer) (label (_ "Please select keyboard switch type:")) (spacer) ;; (spacer) (document:id keyboard-type (listbox (when double-clicked (frame:next)))) (spacer)) (frame:on-next (thunk (or (write-keyboard) 'cancel))) (document:root (when loaded (woo-catch/message (lambda() (keyboard-type enumref "/syskbd") (let ((len (keyboard-type count))) (and (positive? len) (default-keyboard)) (and (= len 1) (write-keyboard)) (and (<= len 1) (frame:skip))))))) alterator-sysconfig-0.8/ui/sysconfig/language/000075500000000000000000000000001111623226200215565ustar00rootroot00000000000000alterator-sysconfig-0.8/ui/sysconfig/language/index.scm000064400000000000000000000034251111623226200233750ustar00rootroot00000000000000(document:surround "/std/frame") (document:insert "/std/functions") ;;; Helpers (define (current-language) (and-let* ((l (langlist value))) (string-cut l #\:))) (define (write-language) (woo-catch/message (thunk (and-let* ((lang (current-language))) (woo-write "/syslang" 'lang lang) (simple-notify document:root 'action "language" 'value lang) #t)))) (define (label+icon x) (cons (woo-get-option x 'label) (woo-get-option x 'icon))) (define (change-translations) (define-operation set-lang) (set-lang (fluid-ref generic-session) (current-language)) ;;wizardface specific hacks (with-translation _ "alterator-wizard" (let ((wizard-id (global 'frame:wizard))) (wizard-id steps-clear) (wizard-id steps (map label+icon (woo-list "/step-list"))) (wizard-id current-step 0) (wizard-id action-text 'help (_ "Help")) (wizard-id action-text 'forward (_ "Next")))) ;;common hacks (with-translation _ "alterator-sysconfig" (label-choose text (_ "Select your language:")))) (define (default-language) (define-operation get-lang) (string-join (get-lang (fluid-ref generic-session)) ":")) ;;; UI (gridbox columns "30;40;30" ;; (spacer) (document:id label-choose (label "Select your language:")) (spacer) ;; (spacer) (document:id langlist (listbox (when selected (change-translations)) (when double-clicked (frame:next)))) (spacer)) ;;; Logic (frame:on-next (thunk (or (write-language) 'cancel))) (document:root (when loaded (woo-catch/message (thunk (langlist enumref "/syslang" value (default-language) selected)))))