Skip to content
Snippets Groups Projects
Commit 99468397 authored by Mads Freek Petersen's avatar Mads Freek Petersen
Browse files

Added support for using the parameter 'replacements' when calling t(...)

Makes it possible to insert 'dynamic' strings into translated strings


git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@513 44740490-163a-0410-bde0-09ae8108e29a
parent 5949a6e4
No related branches found
No related tags found
No related merge requests found
......@@ -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);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment