diff --git a/lib/SimpleSAML/XHTML/Template.php b/lib/SimpleSAML/XHTML/Template.php index e1b96ab3a2fba7d21e93e68eefec3dad4aa94c62..6b3e4604af2b99291baa316988f4c9253f746eb2 100644 --- a/lib/SimpleSAML/XHTML/Template.php +++ b/lib/SimpleSAML/XHTML/Template.php @@ -166,7 +166,7 @@ class SimpleSAML_XHTML_Template { * @param $replacements An associative array of keys that should be replaced with values in the translated string. * @param $striptags Should HTML tags be stripped from the translation */ - private function t($tag, $fallbacktag = true, $fallbackdefault = true, $replacements = null, $striptags = false) { + private function t($tag, $fallbacktag = true, $fallbackdefault = true, $replacements = array(), $striptags = false) { if (empty($this->langtext) || !is_array($this->langtext)) { SimpleSAML_Logger::error('Template: No language text loaded. Looking up [' . $tag . ']'); @@ -183,23 +183,27 @@ class SimpleSAML_XHTML_Template { * Look up translation of tag in the selected language */ if (array_key_exists($selected_language, $this->langtext[$tag])) { - return $this->langtext[$tag][$selected_language]; + $translated = $this->langtext[$tag][$selected_language]; /** * Look up translation of tag in the default language, only if fallbackdefault = true (method parameter) */ } elseif($fallbackdefault && array_key_exists($default_language, $this->langtext[$tag])) { SimpleSAML_Logger::info('Template: Looking up [' . $tag . ']: not found in language [' . $selected_language . '] using default [' . $default_language . '].'); - return $this->langtext[$tag][$default_language]; + $translated = $this->langtext[$tag][$default_language]; /** * Look up translation of tag in the base language, only if fallbackdefault = true (method parameter) */ } elseif($fallbackdefault && array_key_exists($base_language, $this->langtext[$tag])) { SimpleSAML_Logger::info('Template: Looking up [' . $tag . ']: not found in language default [' . $default_language . '] using base [' . $base_language . '].'); - return $this->langtext[$tag][$base_language]; + $translated = $this->langtext[$tag][$base_language]; } + foreach ($replacements as $k => $v) { + $translated = str_replace($k, $v, $translated); + } + return $translated; } SimpleSAML_Logger::info('Template: Looking up [' . $tag . ']: not translated at all.'); return $this->t_not_translated($tag, $fallbacktag);