5 LOCALEGEN=/etc/locale.gen
6 LOCALES=/usr/share/i18n/locales
7 USER_LOCALES=/usr/local/share/i18n/locales
8 if [ -n "$POSIXLY_CORRECT" ]; then
13 [ -f $LOCALEGEN ] || exit 0;
14 [ -s $LOCALEGEN ] || exit 0;
17 if [ "$1" = '--keep-existing' ]; then
21 if [ -z "$KEEP" ]; then
22 # Remove all old locale dir and locale-archive before generating new
24 rm -rf /usr/lib/locale/* || true
30 if [ -n "$locale" -a -n "$charset" ] ; then
33 echo "error: Bad entry '$locale $charset'"
38 echo "Generating locales (this might take a while)..."
39 while read locale charset; do \
40 case $locale in \#*) continue;; "") continue;; esac; \
41 is_entry_ok || continue
42 if [ "$KEEP" ] && PERL_BADLANG=0 perl -MPOSIX -e \
43 'exit 1 unless setlocale(LC_ALL, $ARGV[0])' "$locale"; then
46 echo -n " `echo $locale | sed 's/\([^.\@]*\).*/\1/'`"; \
47 echo -n ".$charset"; \
48 echo -n `echo $locale | sed 's/\([^\@]*\)\(\@.*\)*/\2/'`; \
50 if [ -f $USER_LOCALES/$locale ] ; then
51 input=$USER_LOCALES/$locale
52 elif [ -f $LOCALES/$locale ]; then
55 input=`echo $locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`
56 if [ -f $USER_LOCALES/$input ]; then
57 input=$USER_LOCALES/$input
60 localedef -i $input -c -f $charset -A /usr/share/locale/locale.alias $locale || :; \
63 echo "Generation complete."