kappa / translator
此软件包最新版本(dev-master)的许可证信息不可用。
简单智能的翻译应用系统
dev-master
2013-01-27 13:27 UTC
Requires
- php: >= 5.3.0
- kappa/framework: dev-master
- nette/nette: dev-master
This package is auto-updated.
Last update: 2024-09-04 18:50:48 UTC
README
#Kappa:Translator
Nette Translator (c) Patrik Votoček (Vrtak-CZ), 2010 (http://patrik.votocek.cz)
注意
这是一份简短的手册,说明如何在最新版本的Nette 2.0中最简单地使用Nette Translator。不需要编辑或操作 .po/.mo 文件。撰写于2012-02-10。
实际信息/手册:http://wiki.nette.org/cs/cookbook/zprovozneni-prekladace-nettetranslator
1. 启用翻译器
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. 在模板中使用
template
{_"Dog"} {_"Cat", $number} // for plural, default are Czech plurals: 1, 2-4, 5+
3. 在表单中使用
/** * @autowire * @var \Kappa\Localization\Translator\Gettext */ protected $translator; createComponentMyForm () { $form = new Form; // ... $form->setTranslator($this->translator); }
###4. 在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; }
###路由
$router[] = new Route('<lang=cs>/<presenter>/<action>[/<id>]', 'Homepage:default');