Server : nginx/1.18.0 System : Linux localhost 6.14.3-x86_64-linode168 #1 SMP PREEMPT_DYNAMIC Mon Apr 21 19:47:55 EDT 2025 x86_64 User : www-data ( 33) PHP Version : 8.0.16 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, Directory : /usr/share/language-tools/ |
#!/bin/sh -pe
lang=$1
validated_language=
test -n "$lang" || exit 1
langtoolsdir=/usr/share/language-tools
#
# discard possible fallback languages
#
lang=${lang%%:*}
#
# remove possible encoding part
#
if [ $lang != ${lang%.utf8*} ]; then
lang=${lang%.*}${lang#*.utf8}
elif [ $lang != ${lang%.UTF-8*} ]; then
lang=${lang%.*}${lang#*.UTF-8}
fi
#
# make sure that the output is a valid language option
#
options=$( $langtoolsdir/language-options )
# exact match
for opt in $options; do
if [ $opt = $lang ]; then
validated_language=$lang
break
fi
done
if [ -z "$validated_language" ]; then
langcode=${lang%%[_@]*}
# try the "main" country code if any
main_country=
is_variant=false
while read line; do
if [ "${line%%[[:space:]]*}" = $langcode ]; then
main_country=${line##*[[:space:]]}
if [ $lang != ${lang#*@} ]; then
main_country=$main_country@${lang#*@}
is_variant=true
fi
break
fi
done < $langtoolsdir/main-countries
if [ -n "$main_country" ]; then
for opt in $options; do
if [ $main_country = $opt ]; then
validated_language=$main_country
break
fi
done
fi
# try out fitting language option without paying regard to
# country code
if [ -z "$validated_language" ]; then
for opt in $options; do
if [ "${opt%%[_@]*}" = $langcode -a $langcode != 'zh' ]; then
if $is_variant && [ $opt = ${opt#*@} ]; then
continue
fi
validated_language=$opt
break
fi
done
fi
fi
if [ -z "$validated_language" ]; then
validated_language='en'
fi
echo $validated_language