Translator
Extension from Nette\Localization, (*1)
Required:
- nette/di
- nette/caching
- nette/neon
- nette/utils
- nettpack/stage, (*2)
Install
composer require chomenko/translator
In base config.neon:, (*3)
translator:
localDir: %appDir%/Localization
defaultLang: cs
#pattern: '/%+([a-z0-9]+)/u' #old pattern style %value, new style is {{ value }}
extensions:
translator: Chomenko\Translator\DI\TranslatorExtension
In base presenter:, (*4)
<?php
namespace App\Presenters;
use Nette\Application\UI\Presenter;
use Chomenko\Translator\Translate;
class BasePresenter extends Presenter
{
/**
* Install Translator
*/
use Translate;
public function startup() {
parent::startup();
$config = $this->translator->getConfig();
$this->template->setTranslator($this->translator);
}
}
In latte:, (*5)
{_"name", ["Jméno"]} {*Default value. Used if value is not stored*}
{_"Name is: {{ name }}", ["name" => "Franta"]}
{_"Birthdate: {{ date }}", 1991}
Translate Modal
, (*6)
Use only in the developer mode. Do not use for production!!, (*7)
The translation modal can be invoked by pressing CTRL + ALT + mouse CLICK translate item
. Translating elements turn red
Modal is required Bootstrap and JQuery. If you are developing on Unix you will need to set the right to write, (*8)
In presenter:, (*9)
<?php
$config = $this->translator->getConfig();
$config->translateModalEnable();
In @layout.latte:, (*10)
{control translateModal}