private static bool
passSprintf
(mixed &$string, mixed $jsSafe = false, mixed $interpretBackSlashes = true, mixed $script = false)
private static function passSprintf(&$string, $jsSafe = false, $interpretBackSlashes = true, $script = false)
{
if (strpos($string, ',') === false) {
return false;
}
$lang = Factory::getLanguage();
$string_parts = explode(',', $string);
foreach ($string_parts as $i => $str) {
$string_parts[$i] = $lang->_($str, $jsSafe, $interpretBackSlashes);
}
$first_part = array_shift($string_parts);
$first_part = preg_replace('/\\[\\[%([0-9]+):[^\\]]*\\]\\]/', '%\\1$s', $first_part);
if (!preg_match('/%([0-9]+\\$)?s/', $first_part)) {
return false;
}
$final_string = vsprintf($first_part, $string_parts);
if ($first_part === $final_string) {
return false;
}
$string = $final_string;
if ($script) {
foreach ($string_parts as $i => $str) {
static::$strings[$str] = $string_parts[$i];
}
}
return true;
}