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: 2025-10-04 21:17:01 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');