Translator podle kuchařky v nette 2.1dev
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- miler
- Člen | 75
Zdravím, funguje vám prosím translator podle kuchařky v dev verzi nette? Mně to totiž spadne na:
Service 'params': Unknown or deprecated key 'lang' in definition of service.
Odkaz na kuchařku: https://componette.org/search/?…
- miler
- Člen | 75
Smazal jsem z něj DB, v nette 2.0 to funguje.
common:
parameters:
lang: en
php:
date.timezone: Europe/Prague
# session.save_path: "%tempDir%/sessions"
# zlib.output_compression: yes
nette:
session:
autoStart: smart
services:
translator:
create: NetteTranslator\Gettext::getTranslator
setup:
- addFile(%appDir%/lang, frontend)
- NetteTranslator\Panel::register
factories:
production < common:
development < common:
- enumag
- Člen | 2118
Možná je problém v tom že v Nette 2.1 se nějak rušily sekce, respektive jsou deprecated. Nevím ale jak je to se zpětnou kompatibilitou. Zkus config upravit dle sandboxu, možná ještě bootstrap.
- miler
- Člen | 75
Možná jsem mohl doplnit na čem to tu chybu hlásí
($lang = $container->params['lang'];
):
/**
* Constructor
*
* @param array $files
* @param string $lang
*/
public function __construct(Nette\DI\Container $container, array $files = NULL, $lang = NULL)
{
$this->container = $container;
$this->session = $storage = $container->session->getSection(static::SESSION_NAMESPACE);
$this->cache = new Nette\Caching\Cache($container->cacheStorage, static::SESSION_NAMESPACE);
if (count($files) > 0) {
foreach($files as $identifier => $dir) {
$this->addFile($dir, $identifier);
}
}
if(empty($lang))
$lang = $container->params['lang'];
$this->lang = $lang;
if (empty($this->lang))
throw new Nette\InvalidStateException('Language must be defined.');
if(!isset($storage->newStrings) || !is_array($storage->newStrings))
$storage->newStrings = array();
}
}
- enumag
- Člen | 2118
Ono už ve 2.0 je Container::$params deprecated, ve 2.1 byl tento deprecated pozůstatek úplně odebrán, toť vše.