Kdyby/Translator – problém s překladem Phrase

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
chikeet
Člen | 160
+
0
-

Ahoj,
mám problém s překládáním Phrase ve flash message po odeslání formu – dostávám warning

strtr() expects parameter 1 to be string, object given

Při bližším zkoumání to vypadá, že metoda Symfony\Component\Translation\Translator::trans dostává jako výstup z $this->getCatalogue($locale)->get((string) $id, $domain) instanci Nette\Neon\Entity, přičemž očekává string.

Když si vygeneruju testovací flash message v presenteru takto

	public function actionDefault()
	{
		$this->flashSuccess(new Phrase('form.testPhrase', NULL, ['count' => 123]));
	}

tak je vše v pořádku.

V configu mám:

translation:
    default: cs
    fallback: [cs_CZ, cs]

Problém se začal projevovat pravděpodobně po updatu composeru, ale nedaří se mi přijít na to, jestli je pes zakopaný v Kdyby\Translatoru, nebo Symfony\Translatoru, nebo jinde. Nejdivnější je na tom, že v presenteru to normálně funguje, v komponentě po odeslání formu ne…

Pavel Kravčík
Člen | 1196
+
0
-

Nejdivnější je na tom, že v presenteru to normálně funguje, v komponentě po odeslání formu ne…

A nezmizí nějaký parametr, který by měl být třeba persistentní?

David Matějka
Moderator | 6445
+
+1
-

ahoj, jak vypada ta testPhrase prelozena v neonu? nejsou tam nejake ()?

chikeet
Člen | 160
+
0
-

David Matějka napsal(a):

ahoj, jak vypada ta testPhrase prelozena v neonu? nejsou tam nejake ()?

Díky moc, vyřešeno! Byly to závorky hned v první flash message posílané z toho formu. Nenapadlo mě, že v tom může být problém, protože v IDE vypadal neon validně a i parsování v aplikaci prošlo hladce.