I have translate function t($var);
function t($word) {
return $this->words[$word];
}
where $this->words
is
You can define the t function like below :
function t($array)
{
return sprintf($array['sentence'],$array['word1'],$array['word1']);
}
Where array is :
$array = array(
'word1' => 'word',
'word2' => 'something',
'sentence' => 'Hello, my name is %s. I am %d years old.'
);
Call the function : echo t($array);
I've seen people recommend using sprintf
but personally I'd recommend using vsprintf
: http://www.php.net/manual/en/function.vsprintf.php
function t($word, $vars = array()) {
return vsprintf($this->words[$word], $vars);
}
This allows you to pass in an array of variables instead of passing them in as separate parameters.
Generally translate functions will first check for a translation and if not found just return the lookup key.
function t($word, $vars = array()) {
return isset($this->words[$word]) ? vsprintf($this->words[$word], $vars) : $word;
}