Simple and dirty approach:
$translations = array(
'en' => array(), // default language
'de' => array(
'Hello world!' => 'Hallo Welt!'
),
'es' => array(
'Hello world!' => 'Hola mundo!'
)
);
function translate($string) {
global $translations;
/**
* e.g. url?language=es or url?language=de
*
* language should be store in session or cookie
*/
$language = fRequest::getValid('language', array_keys($translations));
return (isset($translations[$language][$string]))
? $translations[$language][$string]
: $string;
}
fText::registerComposeCallback('pre', 'translate');
echo fText::compose('Hello world!');
In your layout/view file:
#!text/html
<p>
<a href="url">English</a> |
<a href="url?language=de">Deutsch</a> |
<a href="url?language=es">Espaol</a>
</p>
)