#!/bin/sh
+# Set LANGUAGE_DEFAULT to enable Plugin
+[ ! "$LANGUAGE_DEFAULT" ] && return 1
+
export LANGUAGE_DEFAULT="${LANGUAGE_DEFAULT:-en}"
export HTTP_REFERER="${HTTP_REFERER:-$(HEADER Referer)}"
+export LANGUAGE ERROR_MSG
case ${HTTP_REFERER} in
*/:*/*):;;
;;
esac
-export LANGUAGE="${LANGUAGE_REFERRED:-${LANGUAGE_DEFAULT}}"
+LANGUAGE="${LANGUAGE_REFERRED:-${LANGUAGE_DEFAULT}}"
case ${PATH_INFO} in
*/:?*/\[attachment\]/?*)
- export LANGUAGE="${PATH_INFO#*/:}"
- LANGUAGE="${LANGUAGE%%/*}"
+ LANGUAGE="${PATH_INFO#*/:}"
+ LANGUAGE="${LANGUAGE%%/*}"
PATH_INFO="${PATH_INFO%%:?*/*}${PATH_INFO#*/:?*/}"
;;
*/:?*/\[attachment\])
- export LANGUAGE="${PATH_INFO#*/:}"
- LANGUAGE="${LANGUAGE%%/*}"
+ LANGUAGE="${PATH_INFO#*/:}"
+ LANGUAGE="${LANGUAGE%%/*}"
PATH_INFO="${PATH_INFO%:?*/\[attachment\]}[attachment]"
;;
- */:*/?*) # Never occurs
- :;;
+ */:?*/\[*\])
+ :;; # Default handler, considered valid in most cases
+ */:?*/?*)
+ :;; # Default attachment handler
*/:?*/) # Faulty URL build
REDIRECT "${_BASE}${PATH_INFO%/}"
;;
# REDIRECT "${_BASE}${PATH_INFO%:*}"
# ;;
*/:?*)
- export LANGUAGE="${PATH_INFO##*/:}"
- if mdfile "${PATH_INFO}/"; then
- PATH_INFO="${PATH_INFO}/"
- elif [ "$LANGUAGE" = "$LANGUAGE_DEFAULT" ]; then
- PATH_INFO="${PATH_INFO%:*}"
- else
- export ERROR_MSG="TRANSLATION NOT FOUND"
- PATH_INFO="${PATH_INFO%:*}"
- fi
+ LANGUAGE="${PATH_INFO##*/:}"
+ PATH_INFO="${PATH_INFO%:*}"
+
+ [ "$LANGUAGE" != "$LANGUAGE_DEFAULT" ] \
+ && case "$(mdfile "${PATH_INFO}")" in
+ *"/:$LANGUAGE/#page.md")
+ :;;
+ '')
+ :;;
+ *)ERROR_MSG="TRANSLATION NOT FOUND"
+ ;;
+ esac
;;
- /|*/*/)
+ /|*/*/) # Keep Language from Referer
if [ "$LANGUAGE_REFERRED" -a "$LANGUAGE_REFERRED" != "$LANGUAGE_DEFAULT" ]; then
REDIRECT "${_BASE}${PATH_INFO}:${LANGUAGE_REFERRED}"
fi
;;
- */:*/\[*\]) # Considered valid in most cases
- :;;
- */\[*\])
+ */\[*\]) # Keep Language from Referer
if [ "$LANGUAGE_REFERRED" -a "$LANGUAGE_REFERRED" != "$LANGUAGE_DEFAULT" ]; then
REDIRECT "${_BASE}${PATH_INFO%\[*\]}:${LANGUAGE_REFERRED}/[${PATH_INFO##*/\[}"
fi
;;
esac
+[ -r "${_EXEC}/l10n/${LANGUAGE}.sh" ] && . "${_EXEC}/l10n/${LANGUAGE}.sh"
+
return 1