#!/bin/sh set -e LOCALEGEN=/etc/locale.gen LOCALES=/usr/share/i18n/locales [ -f "$LOCALEGEN" ] && [ -s "$LOCALEGEN" ] || exit 0; # remove old locale-archive [ -f /usr/lib/locale/locale-archive ] && rm -f /usr/lib/locale/locale-archive umask 022 is_entry_ok() { if [ -n "$locale" ] && [ -n "$charset" ] ; then true else printf '%s' "error: Bad entry '$locale $charset'" false fi } printf '%s\n' "Generating locales..." while read -r locale charset; do \ case "$locale" in \#*|"") continue;; esac; \ is_entry_ok || continue printf '%s' "$(echo "$locale" | sed 's/\([^.\@]*\).*/\1/')" printf '%s' ".$charset" printf '%s' "$(echo "$locale" | sed 's/\([^\@]*\)\(\@.*\)*/\2/')" printf '%s' "..." if [ -f "$LOCALES/$locale" ]; then input=$locale else input=$(echo "$locale" | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/') fi localedef -i "$input" -c -f "$charset" \ -A /usr/share/locale/locale.alias "$locale" printf '%s\n' "done" done < $LOCALEGEN printf '%s\n' "Generation complete."