archboot/usr/bin/archboot-localize.sh

46 lines
1.7 KiB
Bash
Raw Normal View History

2023-02-27 21:18:25 +01:00
#!/usr/bin/env bash
# SPDX-License-Identifier: GPL-2.0-only
# written by Tobias Powalowski <tpowa@archlinux.org>
2023-07-17 08:43:20 +02:00
. /usr/lib/archboot/basic-common.sh
2023-07-17 08:48:21 +02:00
_TITLE="Archboot ${_RUNNING_ARCH} | Basic Setup | Localization"
2023-02-27 21:18:25 +01:00
_localize_menu() {
2023-02-27 21:18:25 +01:00
_LOCALE=""
2023-03-05 14:05:51 +01:00
_LOCALES="en_US English de_DE German es_ES Spanish fr_FR French pt_PT Portuguese OTHER Other"
2023-03-05 14:37:59 +01:00
_OTHER_LOCALES="be_BY Belarusian bg_BG Bulgarian cs_CZ Czech da_DK Dansk fi_FI Finnish el_GR Greek hu_HU Hungarian it_IT Italian lt_LT Lithuanian lv_LV Latvian mk_MK Macedonian nl_NL Dutch nn_NO Norwegian pl_PL Polish ro_RO Romanian ru_RU Russian sk_SK Slovak sr_RS Serbian sv_SE Swedish uk_UA Ukrainian"
2023-02-27 21:18:25 +01:00
_CANCEL=""
#shellcheck disable=SC2086
2023-07-21 11:03:27 +02:00
_dialog --cancel-label "Exit" --title " Locale " --menu "" 12 35 5 ${_LOCALES} 2>${_ANSWER} || _abort
2023-02-27 21:18:25 +01:00
_LOCALE=$(cat ${_ANSWER})
2023-03-05 14:05:51 +01:00
if [[ "${_LOCALE}" == "OTHER" ]]; then
#shellcheck disable=SC2086
2023-07-21 11:03:27 +02:00
if _dialog --cancel-label "Back" --title " Other Locale " --menu "" 17 35 11 ${_OTHER_LOCALES} 2>${_ANSWER}; then
2023-07-14 16:44:30 +02:00
_LOCALE=$(cat ${_ANSWER})
else
_LOCALE=""
fi
2023-03-05 14:05:51 +01:00
fi
2023-02-27 21:18:25 +01:00
}
_localize() {
2023-07-14 10:25:04 +02:00
_dialog --infobox "Localization set to ${_LOCALE}.UTF-8..." 3 50
2023-07-14 10:57:45 +02:00
echo "LANG=${_LOCALE}.UTF-8" > /etc/locale.conf
2023-07-17 21:33:52 +02:00
echo "LANG=${_LOCALE}.UTF-8" > /.localize
2023-07-14 10:57:45 +02:00
echo LC_COLLATE=C >> /etc/locale.conf
localectl set-locale "${_LOCALE}.UTF-8" &>/dev/null
2023-07-14 10:54:17 +02:00
sed -i -e "s:^[a-z]:#&:g" /etc/locale.gen
2023-07-14 10:55:07 +02:00
sed -i -e "s:^#${_LOCALE}.UTF-8:${_LOCALE}.UTF-8:g" /etc/locale.gen
2023-07-14 10:51:10 +02:00
locale-gen &>/dev/null
2023-07-14 11:38:57 +02:00
sleep 3
2023-07-14 11:37:27 +02:00
_dialog --infobox "Localization completed successfully." 3 40
sleep 3
}
2023-07-17 09:18:53 +02:00
_check
2023-02-27 21:18:25 +01:00
while [[ -z ${_LOCALE} ]]; do
_localize_menu
2023-02-27 21:18:25 +01:00
done
_localize
2023-07-17 09:18:53 +02:00
_cleanup
2023-02-27 21:18:25 +01:00
# vim: set ts=4 sw=4 et: