#!/usr/bin/env bash
set -euo pipefail
MAIN_LANG="en_US.UTF-8"
CTYPE_LANG="ru_RU.UTF-8"
if [[ "${EUID}" -ne 0 ]]; then
echo "Run this script as root: sudo bash $0"
exit 1
fi
ensure_locale_in_locale_gen() {
local locale_line="$1"
local locale_file="/etc/locale.gen"
if grep -Eq "^[#[:space:]]*${locale_line//./\\.}[[:space:]]*$" "$locale_file"; then
sed -i "s|^[#[:space:]]*\\(${locale_line//./\\.}\\)[[:space:]]*$|\\1|" "$locale_file"
else
echo "$locale_line" >> "$locale_file"
fi
}
echo "Configuring UTF-8 locales..."
ensure_locale_in_locale_gen "en_US.UTF-8 UTF-8"
ensure_locale_in_locale_gen "ru_RU.UTF-8 UTF-8"
locale-gen
update-locale LANG="$MAIN_LANG" LC_CTYPE="$CTYPE_LANG"
echo
echo "Done."
echo "You should re-login to the shell or reboot for a clean session."
echo
echo "Current settings from /etc/default/locale:"
cat /etc/default/locale || true
echo
echo "Available locales:"
locale -a | grep -E 'en_US|ru_RU' || true
echo
echo "After re-login, 'locale' should look roughly like this:"
echo "LANG=${MAIN_LANG}"
echo "LC_CTYPE=${CTYPE_LANG}"