mirror of
https://gitdl.cn/https://github.com/chakralinux/core.git
synced 2025-02-15 06:39:02 +08:00
75 lines
1.8 KiB
Diff
75 lines
1.8 KiB
Diff
Index: locale-gen
|
|
===================================================================
|
|
--- locale-gen (revision 194487)
|
|
+++ locale-gen (working copy)
|
|
@@ -4,39 +4,46 @@
|
|
|
|
LOCALEGEN=/etc/locale.gen
|
|
LOCALES=/usr/share/i18n/locales
|
|
-if [ -n "$POSIXLY_CORRECT" ]; then
|
|
- unset POSIXLY_CORRECT
|
|
-fi
|
|
+unset POSIXLY_CORRECT
|
|
|
|
+[ -s "$LOCALEGEN" ] || exit 0
|
|
|
|
-[ -f $LOCALEGEN -a -s $LOCALEGEN ] || exit 0;
|
|
-
|
|
# Remove all old locale dir and locale-archive before generating new
|
|
# locale data.
|
|
-rm -rf /usr/lib/locale/* || true
|
|
+rm -rf /usr/lib/locale/*
|
|
|
|
umask 022
|
|
|
|
-is_entry_ok() {
|
|
- if [ -n "$locale" -a -n "$charset" ] ; then
|
|
- true
|
|
- else
|
|
- echo "error: Bad entry '$locale $charset'"
|
|
- false
|
|
- fi
|
|
+gen() {
|
|
+ local locale=$1
|
|
+ local charset=$2
|
|
+ local input=
|
|
+
|
|
+ if [ -z "$locale" ] || [ -z "$charset" ]; then
|
|
+ echo "error: Bad entry '$locale $charset'"
|
|
+ return
|
|
+ fi
|
|
+
|
|
+ printf ' %s.%s\n' "$(echo "$locale" | sed 's/\([^.\@]*\).*/\1/')" "$charset"
|
|
+
|
|
+ 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"
|
|
}
|
|
|
|
echo "Generating locales..."
|
|
while read locale charset; do \
|
|
- case $locale in \#*) continue;; "") continue;; esac; \
|
|
- is_entry_ok || continue
|
|
- echo -n " `echo $locale | sed 's/\([^.\@]*\).*/\1/'`"; \
|
|
- echo -n ".$charset"; \
|
|
- echo -n `echo $locale | sed 's/\([^\@]*\)\(\@.*\)*/\2/'`; \
|
|
- echo -n '...'; \
|
|
- 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; \
|
|
- echo ' done'; \
|
|
+ case $locale in
|
|
+ \#*|'')
|
|
+ continue
|
|
+ ;;
|
|
+ esac
|
|
+ gen "$locale" "$charset" &
|
|
done < $LOCALEGEN
|
|
+wait
|
|
+
|
|
echo "Generation complete."
|