wok-next view slitaz-i18n/stuff/locale-pack.functions @ rev 21715

Up cookutils (1146)
author Pascal Bellard <pascal.bellard@slitaz.org>
date Tue Jul 28 07:53:22 2020 +0000 (2020-07-28)
parents 0ff6bd677938
children
line source
1 get_locale() {
2 LOCALE="$1"
3 LOCALE_DEPENDS="$2"
4 LOCALEDEF="$3"
5 KBD="$4"
6 KB_FLAGS="$5"
7 GCONV="$6"
8 [ -z "$CHARMAP" ] && CHARMAP='UTF-8'
11 case "$option" in
12 base)
13 # for locale-*-base packages =======================================
14 # (locale-related files shared across all the flavors, for example LXQt flavor)
16 case "$SLITAZ_ARCH" in
17 arm*) ;;
18 i?86)
19 # Get translated Openbox menu from SliTaz sub project slitaz-configs
20 obmenu="$WOK/slitaz-configs/install/etc/xdg/openbox/menu.$LOCALE.xml"
21 if [ -f "$obmenu" ]; then
22 mkdir -p $fs/etc/xdg/openbox
23 echo "* Found $LOCALE translations for: openbox menu"
24 cp $obmenu $fs/etc/xdg/openbox
25 fi
26 ;;
27 esac
29 # List of available locales
30 if [ -d "$WOK/glibc/install/usr/share/i18n/locales" ]; then
31 cd $WOK/glibc/install/usr/share/i18n/locales
32 locales=$(ls -1 | sed -n '/^'$LOCALE'$/p; /^'$LOCALE'_.*/p' | sed '/translit/d')
33 else
34 locales=''
35 fi
36 [ -n "$LOCALEDEF" ] && locales="$LOCALEDEF"
38 # Get X11 locale
39 for def in $locales; do
40 x11_locale="$WOK/xorg-libX11/install/usr/share/X11/locale/$def.$CHARMAP"
41 case "$def.$CHARMAP" in
42 en_US.UTF-8)
43 # belongs to "xorg-libX11" package, skip it
44 ;;
45 *)
46 if [ -d "$x11_locale" ]; then
47 echo "* Found $def.$CHARMAP locale for: X11"
48 mkdir -p $fs/usr/share/X11/locale
49 cp -a $x11_locale $fs/usr/share/X11/locale
50 fi
51 ;;
52 esac
53 done
55 # Get locale definition files
56 if [ -d "$WOK/glibc/install" ]; then
57 for def in $locales; do
58 case $def in
59 en_US|en_GB)
60 # already in glibc-base
61 ;;
62 *)
63 echo "* Copying $def locale files"
64 mkdir -p $fs/usr/share/i18n/locales
65 cp -a $WOK/glibc/install/usr/share/i18n/locales/$def \
66 $fs/usr/share/i18n/locales
67 ;;
68 esac
69 done
71 if [ -n "$LOCALE_DEPENDS" ]; then
72 for dep in $LOCALE_DEPENDS; do
73 echo "* Copying additional $dep locale files"
74 cp -a $WOK/glibc/install/usr/share/i18n/locales/$dep \
75 $fs/usr/share/i18n/locales
76 done
77 fi
78 fi
80 #grep -r 'include' $fs/usr/share/i18n/locales # test includes in locales
82 # Get timezones from tzdata
83 if [ -d "$WOK/tzdata/install" ]; then
84 countries=$(echo $locales | \
85 sed 's|@[^ ]*||g; s|[^ _]*_||g' | tr ' ' '\n' | sort -u)
86 echo "* Copy timezone info for countries: "$countries
87 locations=''
88 for country in $countries; do
89 location=$(grep '^'$country \
90 $WOK/tzdata/install/usr/share/zoneinfo/zone.tab | awk '{ print $3}')
91 locations="$locations $location"
92 done
93 for location in $locations; do
94 for tz in $location; do
95 install -Dm644 $WOK/tzdata/install/usr/share/zoneinfo/$tz \
96 $fs/usr/share/zoneinfo/$tz
97 done
98 done
99 fi
101 # Gconv modules for encodings other than default
102 if [ -n "$GCONV" -a -d "$WOK/glibc/install" ]; then
103 mkdir -p $fs/usr/lib/gconv
104 for enc in $GCONV; do
105 case $enc in
106 ISO8859-1|ISO8859-15)
107 # already in glibc-base
108 ;;
109 *)
110 if [ -e "$WOK/glibc/install/usr/lib/gconv/$enc.so" ]; then
111 echo "* Copying $enc gconv module"
112 cp -a $WOK/glibc/install/usr/lib/gconv/$enc.so $fs/usr/lib/gconv
113 fi
114 ;;
115 esac
116 done
117 #ldd $fs/usr/lib/gconv/* # test depends in gconv modules
118 fi
120 # Console keyboard layouts
121 if [ -n "$KBD" -a -d "$WOK/kbd/install" ]; then
122 cd $WOK/kbd/install
123 for map in $KBD; do
124 mapfiles=$(find . -type f -name $map.map.gz)
125 if [ -n "$mapfiles" ]; then
126 echo "* Copying $map kbd map"
127 for mapfile in $mapfiles; do
128 mkdir -p "$fs/$(dirname "${mapfile#./}")"
129 cp "$WOK/kbd/install/${mapfile#./}" "$fs/${mapfile#./}"
130 done
131 fi
132 done
133 fi
135 # Get country flags
136 if [ -d "$WOK/flag-icons/install" ]; then
137 echo "* Copy flag icons for countries: "$countries
138 for country in $countries; do
139 for size in 16x16 48x48; do
140 install -Dm644 \
141 $WOK/flag-icons/install/usr/share/icons/hicolor/$size/intl/$country.png \
142 $fs/usr/share/icons/hicolor/$size/intl/$country.png
143 done
144 done
145 # above icons credits
146 mkdir -p $fs/usr/share/licenses
147 cp $WOK/flag-icons/install/usr/share/licenses/gosquared.txt \
148 $fs/usr/share/licenses
149 fi
151 ;;
153 '')
154 # for locale-* packages ============================================
155 # (locale-related files for only main LXDE-based SliTaz flavor)
157 # Get the core packages translations.
158 case "$SLITAZ_ARCH" in
159 arm*) CORE_PKGS="$CORE_PKGS_ARM" ;;
160 esac
161 mkdir -p $fs/usr/share/locale/$LOCALE
162 for app in $CORE_PKGS; do
163 app_locale="$WOK/$app/install/usr/share/locale/$LOCALE"
164 if [ -d "$app_locale" ]; then
165 echo "* Found $LOCALE translations for: $app"
166 cp -a $app_locale $fs/usr/share/locale
167 fi
168 done
170 case "$SLITAZ_ARCH" in
171 arm*) return 0 ;;
172 esac
174 # Keyboard flags for default LXPanel keyboard applet
175 if [ -n "$KB_FLAGS" -a -d "$WOK/flag-icons/install" ]; then
176 uslix='usr/share/lxpanel/images/xkb-flags'
177 mkdir -p $fs/usr/share/lxpanel/images/xkb-flags
178 for i in $KB_FLAGS; do
179 install -Dm644 \
180 $WOK/flag-icons/install/usr/share/icons/hicolor/16x16/intl/${i%%:*}.png \
181 $fs/usr/share/icons/hicolor/16x16/intl/${i%%:*}.png
182 ln -s ../../../icons/hicolor/16x16/intl/${i%%:*}.png \
183 $fs/usr/share/lxpanel/images/xkb-flags/${i##*:}.png
184 done
185 fi
187 ;;
188 esac
191 # exit code OK
192 echo
193 }