# Shared i18n library for JDownloader-Autoenc-rename # Source this file from your scripts, then use tr("key") to get translations. # Determine script name (jdautoenc, rename, addrename, removerename, config) SCRIPT_NAME=$(basename "${BASH_SOURCE[1]}" .sh 2>/dev/null) if [[ -z "$SCRIPT_NAME" ]]; then SCRIPT_NAME=$(basename "$0" .sh 2>/dev/null) fi # Find language folder if [[ -n "$language_folder" ]]; then : # already set elif [[ -n "$JDAutoConfig" && -f "$JDAutoConfig" ]]; then language_folder=$(grep "language_folder=" "$JDAutoConfig" 2>/dev/null | sed 's/.*=//g') fi # Determine language if [[ -z "$language" ]]; then if [[ -n "$JDAutoConfig" && -f "$JDAutoConfig" && -n "$(grep "language=" "$JDAutoConfig" 2>/dev/null | sed 's/.*=//g')" ]]; then language=$(grep "language=" "$JDAutoConfig" | sed 's/.*=//g') else language=$(locale 2>/dev/null | head -n 1 | sed 's/.*=\|\..*//g') fi fi if [[ "$language" == "C" ]] || [[ ! -d "$language_folder/$language" ]]; then language=en_US fi # The lang file for the current script LANG_FILE="$language_folder/$language/${SCRIPT_NAME}.lang" FALLBACK_LANG_FILE="$language_folder/en_US/${SCRIPT_NAME}.lang" tr() { local key="$1" # Try local lang file if [[ -f "$LANG_FILE" ]]; then local result result=$(grep "^${key} " "$LANG_FILE" 2>/dev/null | head -n 1 | sed "s/^${key} //") if [[ -n "$result" ]]; then echo "$result" return fi fi # Try fallback (en_US) if [[ -f "$FALLBACK_LANG_FILE" ]]; then local result result=$(grep "^${key} " "$FALLBACK_LANG_FILE" 2>/dev/null | head -n 1 | sed "s/^${key} //") if [[ -n "$result" ]]; then echo "$result" return fi fi # Try remote fallback local remote_url="https://raw.githubusercontent.com/Pakobbix/JDownloader-Autoenc-rename/main/lang/en_US/${SCRIPT_NAME}.lang" local result result=$(curl -s "$remote_url" 2>/dev/null | grep "^${key} " | head -n 1 | sed "s/^${key} //") if [[ -n "$result" ]]; then echo "$result" return fi # Return the key itself as last resort echo "$key" }