kappa / translator
Simple and intelligent system for translate appliaction
Installs: 11
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/kappa/translator
Requires
- php: >= 5.3.0
- kappa/framework: dev-master
- nette/nette: dev-master
This package is auto-updated.
Last update: 2026-02-04 22:12:18 UTC
README
#Kappa:Translator
Nette Translator (c) Patrik Votoček (Vrtak-CZ), 2010 (http://patrik.votocek.cz)
Note
This is short manual how to use Nette Translator in the newest Nette 2.0 in its most simple version. No need to edit or operate with .po/.mo files required. Written 2012-02-10.
Actual info/manual: http://wiki.nette.org/cs/cookbook/zprovozneni-prekladace-nettetranslator
1. Enable Translator
app/config/services.neon:
services:
translator:
factory: \Kappa\Localization\Translator\Gettext::getTranslator
setup:
- addFile(%appDir%/lang, front) # at leas one file required
- Kappa\Localization\Translator\Panel::register # panel to debug bar
2. Use in templates
template
{_"Dog"}
{_"Cat", $number} // for plural, default are Czech plurals: 1, 2-4, 5+
3. Use in forms
/**
* @autowire
* @var \Kappa\Localization\Translator\Gettext
*/
protected $translator;
createComponentMyForm ()
{
$form = new Form;
// ...
$form->setTranslator($this->translator);
}
###4. Use in Presenters
app/[*Module/ (presenters/)]BasePresenter.php
/**
* @persistent
*/
public $lang;
/**
* @autowire
* @var \Kappa\Localization\Translator\Gettext
*/
protected $translator;
/**
* @autowire
* @var \Nette\Http\Request
*/
protected $request;
public function startup()
{
parent::startup();
if (!$this->lang)
{
$lang = $this->request->detectLanguage(array('en', 'cs')) ?: 'cs';
$this->redirectUrl($lang);
}
}
/**
* @param null $class
* @return \Nette\Templating\ITemplate
*/
public function createTemplate($class = NULL)
{
$template = parent::createTemplate($class);
$this->translator->setLang($this->lang); // set lang
$template->setTranslator($this->translator);
return $template;
}
###Route:
$router[] = new Route('<lang=cs>/<presenter>/<action>[/<id>]', 'Homepage:default');