182 lines
5.1 KiB
Bash
Executable File
182 lines
5.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# Version 9
|
|
# Requires plasmoidviewer v5.13.0
|
|
|
|
function checkIfLangInstalled {
|
|
if [ -x "$(command -v dpkg)" ]; then
|
|
dpkg -l ${1} >/dev/null 2>&1 || ( \
|
|
echo -e "${1} not installed.\nInstalling now before continuing.\n" \
|
|
; sudo apt install ${1} \
|
|
) || ( \
|
|
echo -e "\nError trying to install ${1}\nPlease run 'sudo apt install ${1}'\n" \
|
|
; exit 1 \
|
|
)
|
|
elif [ -x "$(command -v pacman)" ]; then
|
|
# TODO: run `locale -a` and check if the locale is enabled.
|
|
if false; then
|
|
# https://wiki.archlinux.org/index.php/Locale
|
|
# Uncomment the locale in /etc/locale.gen
|
|
# Then run `locale-gen`
|
|
echo -e "\nPlease install this locale in System Settings first.\n"
|
|
exit 1
|
|
else
|
|
echo ""
|
|
fi
|
|
else
|
|
echo -e "\nPackage manager not recognized. If the widget is not translated, please install the package '${1}'\n"
|
|
fi
|
|
}
|
|
|
|
langInput="${1}"
|
|
lang=""
|
|
languagePack=""
|
|
|
|
if [[ "$langInput" =~ ":" ]]; then # String contains a colon so assume it's a locale code.
|
|
lang="${langInput}"
|
|
IFS=: read -r l1 l2 <<< "${lang}"
|
|
languagePack="language-pack-${l2}"
|
|
fi
|
|
|
|
# https://stackoverflow.com/questions/3191664/list-of-all-locales-and-their-short-codes/28357857#28357857
|
|
declare -a langArr=(
|
|
"af_ZA:af:Afrikaans (South Africa)"
|
|
"ak_GH:ak:Akan (Ghana)"
|
|
"am_ET:am:Amharic (Ethiopia)"
|
|
"ar_EG:ar:Arabic (Egypt)"
|
|
"as_IN:as:Assamese (India)"
|
|
"az_AZ:az:Azerbaijani (Azerbaijan)"
|
|
"be_BY:be:Belarusian (Belarus)"
|
|
"bem_ZM:bem:Bemba (Zambia)"
|
|
"bg_BG:bg:Bulgarian (Bulgaria)"
|
|
"bo_IN:bo:Tibetan (India)"
|
|
"bs_BA:bs:Bosnian (Bosnia and Herzegovina)"
|
|
"ca_ES:ca:Catalan (Spain)"
|
|
"chr_US:ch:Cherokee (United States)"
|
|
"cs_CZ:cs:Czech (Czech Republic)"
|
|
"cy_GB:cy:Welsh (United Kingdom)"
|
|
"da_DK:da:Danish (Denmark)"
|
|
"de_DE:de:German (Germany)"
|
|
"el_GR:el:Greek (Greece)"
|
|
"es_MX:es:Spanish (Mexico)"
|
|
"et_EE:et:Estonian (Estonia)"
|
|
"eu_ES:eu:Basque (Spain)"
|
|
"fa_IR:fa:Persian (Iran)"
|
|
"ff_SN:ff:Fulah (Senegal)"
|
|
"fi_FI:fi:Finnish (Finland)"
|
|
"fo_FO:fo:Faroese (Faroe Islands)"
|
|
"fr_CA:fr:French (Canada)"
|
|
"ga_IE:ga:Irish (Ireland)"
|
|
"gl_ES:gl:Galician (Spain)"
|
|
"gu_IN:gu:Gujarati (India)"
|
|
"gv_GB:gv:Manx (United Kingdom)"
|
|
"ha_NG:ha:Hausa (Nigeria)"
|
|
"he_IL:he:Hebrew (Israel)"
|
|
"hi_IN:hi:Hindi (India)"
|
|
"hr_HR:hr:Croatian (Croatia)"
|
|
"hu_HU:hu:Hungarian (Hungary)"
|
|
"hy_AM:hy:Armenian (Armenia)"
|
|
"id_ID:id:Indonesian (Indonesia)"
|
|
"ig_NG:ig:Igbo (Nigeria)"
|
|
"is_IS:is:Icelandic (Iceland)"
|
|
"it_IT:it:Italian (Italy)"
|
|
"ja_JP:ja:Japanese (Japan)"
|
|
"ka_GE:ka:Georgian (Georgia)"
|
|
"kk_KZ:kk:Kazakh (Kazakhstan)"
|
|
"kl_GL:kl:Kalaallisut (Greenland)"
|
|
"km_KH:km:Khmer (Cambodia)"
|
|
"kn_IN:kn:Kannada (India)"
|
|
"ko_KR:ko:Korean (South Korea)"
|
|
"ko_KR:ko:Korean (South Korea)"
|
|
"lg_UG:lg:Ganda (Uganda)"
|
|
"lt_LT:lt:Lithuanian (Lithuania)"
|
|
"lv_LV:lv:Latvian (Latvia)"
|
|
"mg_MG:mg:Malagasy (Madagascar)"
|
|
"mk_MK:mk:Macedonian (Macedonia)"
|
|
"ml_IN:ml:Malayalam (India)"
|
|
"mr_IN:mr:Marathi (India)"
|
|
"ms_MY:ms:Malay (Malaysia)"
|
|
"mt_MT:mt:Maltese (Malta)"
|
|
"my_MM:my:Burmese (Myanmar [Burma])"
|
|
"nb_NO:nb:Norwegian Bokmål (Norway)"
|
|
"ne_NP:ne:Nepali (Nepal)"
|
|
"nl_NL:nl:Dutch (Netherlands)"
|
|
"nn_NO:nn:Norwegian Nynorsk (Norway)"
|
|
"om_ET:om:Oromo (Ethiopia)"
|
|
"or_IN:or:Oriya (India)"
|
|
"pa_PK:pa:Punjabi (Pakistan)"
|
|
"pl_PL:pl:Polish (Poland)"
|
|
"ps_AF:ps:Pashto (Afghanistan)"
|
|
"pt_BR:pt:Portuguese (Brazil)"
|
|
"ro_RO:ro:Romanian (Romania)"
|
|
"ru_RU:ru:Russian (Russia)"
|
|
"rw_RW:rw:Kinyarwanda (Rwanda)"
|
|
"si_LK:si:Sinhala (Sri Lanka)"
|
|
"sk_SK:sk:Slovak (Slovakia)"
|
|
"sl_SI:sl:Slovenian (Slovenia)"
|
|
"so_SO:so:Somali (Somalia)"
|
|
"sq_AL:sq:Albanian (Albania)"
|
|
"sr_RS:sr:Serbian (Serbia)"
|
|
"sv_SE:sv:Swedish (Sweden)"
|
|
"sw_KE:sw:Swahili (Kenya)"
|
|
"ta_IN:ta:Tamil (India)"
|
|
"te_IN:te:Telugu (India)"
|
|
"th_TH:th:Thai (Thailand)"
|
|
"ti_ER:ti:Tigrinya (Eritrea)"
|
|
"to_TO:to:Tonga (Tonga)"
|
|
"tr_TR:tr:Turkish (Turkey)"
|
|
"uk_UA:uk:Ukrainian (Ukraine)"
|
|
"ur_IN:ur:Urdu (India)"
|
|
"uz_UZ:uz:Uzbek (Uzbekistan)"
|
|
"vi_VN:vi:Vietnamese (Vietnam)"
|
|
"yo_NG:yo:Yoruba (Nigeria)"
|
|
"yo_NG:yo:Yoruba (Nigeria)"
|
|
"yue_HK:yu:Cantonese (Hong Kong)"
|
|
"zh_CN:zh:Chinese (China)"
|
|
"zu_ZA:zu:Zulu (South Africa)"
|
|
)
|
|
|
|
for i in "${langArr[@]}"; do
|
|
IFS=: read -r l1 l2 l3 <<< "$i"
|
|
if [ "$langInput" == "$l2" ]; then
|
|
lang="${l1}:${l2}"
|
|
languagePack="language-pack-${l2}"
|
|
fi
|
|
done
|
|
|
|
if [ -z "$lang" ]; then
|
|
echo "plasmoidlocaletest doesn't recognize the language '$lang'"
|
|
echo "Eg:"
|
|
scriptcmd='sh ./plasmoidlocaletest'
|
|
for i in "${langArr[@]}"; do
|
|
IFS=: read -r l1 l2 l3 <<< "$i"
|
|
echo " ${scriptcmd} ${l2} | ${l3}"
|
|
done
|
|
echo ""
|
|
echo "Or use a the full locale code:"
|
|
echo " ${scriptcmd} ar_EG:ar"
|
|
exit 1
|
|
fi
|
|
|
|
IFS=: read -r l1 l2 <<< "${lang}"
|
|
l1="${l1}.UTF-8"
|
|
|
|
# Check if language is installed
|
|
if [ ! -z "$languagePack" ]; then
|
|
if [ "$lang" == "zh_CN:zh" ]; then languagePack="language-pack-zh-hans"
|
|
fi
|
|
|
|
checkIfLangInstalled "$languagePack" || exit 1
|
|
fi
|
|
|
|
|
|
echo "LANGUAGE=\"${lang}\""
|
|
echo "LANG=\"${l1}\""
|
|
|
|
scriptDir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
packageDir="${scriptDir}/.."
|
|
|
|
# Build local translations for plasmoidviewer
|
|
sh "${scriptDir}/build"
|
|
|
|
LANGUAGE="${lang}" LANG="${l1}" LC_TIME="${l1}" QML_DISABLE_DISK_CACHE=true plasmoidviewer -a "$packageDir" -l topedge -f horizontal -x 0 -y 0
|