]> git.plutz.net Git - shellwiki/blob - handlers/10_translations.sh
Merge commit 'be3b0b1f0ea6b499b79122bcf159b5a2d7d92228'
[shellwiki] / handlers / 10_translations.sh
1 #!/bin/sh
2
3 # Set LANGUAGE_DEFAULT to enable Plugin
4 [ ! "$LANGUAGE_DEFAULT" ] && return 1
5
6 export LANGUAGE_DEFAULT="${LANGUAGE_DEFAULT:-en}"
7 export HTTP_REFERER="${HTTP_REFERER:-$(HEADER Referer)}"
8 export LANGUAGE ERROR_MSG
9
10 case ${HTTP_REFERER} in
11   */:*/*):;;
12   */:*)
13    LANGUAGE_REFERRED="${HTTP_REFERER##*/:}"
14    ;;
15 esac
16
17 LANGUAGE="${LANGUAGE_REFERRED:-${LANGUAGE_DEFAULT}}"
18
19 case ${PATH_INFO} in
20   */:?*/\[attachment\]/?*)
21     LANGUAGE="${PATH_INFO#*/:}"
22     LANGUAGE="${LANGUAGE%%/*}"
23     PATH_INFO="${PATH_INFO%%:?*/*}${PATH_INFO#*/:?*/}"
24     ;;
25   */:?*/\[attachment\])
26     LANGUAGE="${PATH_INFO#*/:}"
27     LANGUAGE="${LANGUAGE%%/*}"
28     PATH_INFO="${PATH_INFO%:?*/\[attachment\]}[attachment]"
29     ;;
30   */:?*/\[*\])
31     LANGUAGE="${PATH_INFO#*/:}"
32     LANGUAGE="${LANGUAGE%%/*}"
33     ;;
34   */:?*/:?*)
35     # Accidental double language link, last one stays valid!
36     REDIRECT "${_BASE}${PATH_INFO%/:?*/:?*}/:${PATH_INFO##*/:}"
37     ;;
38   */:?*/?*)
39     :;;  # Default attachment handler
40   */:?*/)   # Faulty URL build
41     REDIRECT "${_BASE}${PATH_INFO%/}"
42     ;;
43 # */:"${LANGUAGE_DEFAULT}")
44 #   REDIRECT "${_BASE}${PATH_INFO%:*}"
45 #   ;;
46   */:?*)
47     LANGUAGE="${PATH_INFO##*/:}"
48     PATH_INFO="${PATH_INFO%:*}"
49
50     [ "$LANGUAGE" != "$LANGUAGE_DEFAULT" ] \
51     && case "$(mdfile "${PATH_INFO}")" in
52       *"/:$LANGUAGE/#page.md")
53         :;;
54       '')
55         :;;
56       *)ERROR_MSG="TRANSLATION NOT FOUND"
57         ;;
58     esac
59     ;;
60   /|*/*/)  # Keep Language from Referer
61     if [ "$LANGUAGE_REFERRED" -a "$LANGUAGE_REFERRED" != "$LANGUAGE_DEFAULT" ]; then
62       REDIRECT "${_BASE}${PATH_INFO}:${LANGUAGE_REFERRED}"
63     fi
64     ;;
65   */\[*\])  # Keep Language from Referer
66     if [ "$LANGUAGE_REFERRED" -a "$LANGUAGE_REFERRED" != "$LANGUAGE_DEFAULT" ]; then
67       REDIRECT "${_BASE}${PATH_INFO%\[*\]}:${LANGUAGE_REFERRED}/[${PATH_INFO##*/\[}"
68     fi
69     ;;
70 esac
71
72 _(){ printf %s\\n "$*"; }
73 [ -r "${_EXEC}/l10n/${LANGUAGE}.sh" ] && . "${_EXEC}/l10n/${LANGUAGE}.sh"
74
75 return 1