<?php
require_once 'PHPTAL.php';
require_once 'PHPTAL/GetTextTranslator.php';
try {
$tr = new PHPTAL_GetTextTranslator();
// set language to use for this session (first valid language will
// be used)
$tr->setLanguage('en_GB.utf8', 'en_GB');
// register gettext domain to use
$tr->addDomain('mydomain', '/path/to/your/translation_root');
// specify current domain
$tr->useDomain('mydomain');
$tpl = new PHPTAL('mytemplate.xhtml');
// tell PHPTAL to use our translator
$tpl->setTranslator($tr);
// output translated template
echo $tpl->execute();
}
catch (Exception $e){
echo $e;
}
If you need to translate some other text, that is not in the template (e.g. plaintext e-mail message), you can reuse PHPTAL's translator:
$tr = $tpl->getTranslator();
$subject = $tr->translate("Registration information");
$tr->setVar("user",$username);
$message = $tr->translate("Dear ${user}, thanks for registering!");
mail($email, $subject, $message);
If you're using PHPTAL's standard gettext
translator, you can use gettext()
too.