blob: d9d6cfdc76d5d5325a8814ec9b6d6b89844cced6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
<?php
/*
* File: ratatoeskr/sys/translation.php
* Load translation.
*
* License:
* This file is part of Ratatöskr.
* Ratatöskr is licensed unter the MIT / X11 License.
* See "ratatoeskr/licenses/ratatoeskr" for more information.
*/
use r7r\ste;
use r7r\cms\sys\Esc;
require_once(dirname(__FILE__) . "/utils.php");
require_once(dirname(__FILE__) . "/init_ste.php");
/** @var ste\STECore $ste */
assert(isset($ste));
if (!defined("SETUP")) {
require_once(dirname(__FILE__) . "/models.php");
}
if (!defined("TRANSLATION_PLUGIN_LOADED")) {
$ste->register_tag(
"get_translation",
function ($ste, $params, $sub) {
global $translation;
if ((!isset($translation)) or empty($params["for"]) or (!isset($translation[$params["for"]]))) {
return "";
}
$rv = $translation[$params["for"]];
return (!empty($params["raw"])) ? $rv : Esc::esc($rv);
}
);
define("TRANSLATION_PLUGIN_LOADED", true);
}
/*
* Function: load_language
* Load a language (i.e. set the global $translation variable).
*
* Parameters:
* $lang - The language (2-Letter code, e.g. "en", "de", "it" ...) to load. NULL for default (from database).
*/
function load_language($lang=null)
{
if (!defined("SETUP")) {
global $ratatoeskr_settings;
if ($lang === null) {
$lang = $ratatoeskr_settings["default_language"];
}
} else {
if ($lang === null) {
$lang = "en";
}
}
/*
* Because we will include an file defined by the $lang param, we will
* only allow alphabetic characters, so this function should not be
* vulnerable to LFI-Exploits...
*/
$lang = implode("", array_filter(str_split($lang, 1), "ctype_alpha"));
$translation = require(dirname(__FILE__) . "/../translations/$lang.php");
$GLOBALS["translation"] = $translation;
}
|