// Fix sprintf translation for theme and modules

This commit is contained in:
lLefevre
2012-05-02 16:07:45 +00:00
parent 5a41715956
commit 2788d1b2a6
4 changed files with 21 additions and 4 deletions
+10 -1
View File
@@ -34,6 +34,7 @@ function smartyTranslate($params, &$smarty)
if (!isset($params['js'])) $params['js'] = 0;
if (!isset($params['pdf'])) $params['pdf'] = false;
if (!isset($params['mod'])) $params['mod'] = false;
if (!isset($params['sprintf'])) $params['sprintf'] = false;
$string = str_replace('\'', '\\\'', $params['s']);
$filename = ((!isset($smarty->compiler_object) || !is_object($smarty->compiler_object->template)) ? $smarty->template_resource : $smarty->compiler_object->template->getTemplateFilepath());
@@ -46,7 +47,7 @@ function smartyTranslate($params, &$smarty)
$lang_array = $_LANG;
if ($params['mod'])
return Translate::getModuleTranslation($params['mod'], $params['s'], $basename);
return Translate::getModuleTranslation($params['mod'], $params['s'], $basename, $params['sprintf']);
else if ($params['pdf'])
return Translate::getPdfTranslation($params['s']);
@@ -60,6 +61,14 @@ function smartyTranslate($params, &$smarty)
if ($msg != $params['s'])
$msg = $params['js'] ? addslashes($msg) : stripslashes($msg);
if ($params['sprintf'])
{
if (!is_array($params['sprintf']))
$params['sprintf'] = array($params['sprintf']);
$msg = vsprintf($msg, $params['sprintf']);
}
return $params['js'] ? $msg : Tools::htmlentitiesUTF8($msg);
}