Kdyby/Translation integrace … nejde mi překládat formulář

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

Zdravím,

vím, že tu je toho spousta, ale pokaždé když něco zkusím tak to nejde. Projel jsem dokumentaci Kdyby/Translation a všechno mo jde. Ale chtěl bych překládat formuláře.

presenter

<?php
protected function createComponentNewIngForm() {
        $form = $this->factory->create();
        $form->onSuccess[] = function ($form) {
            //$form->getPresenter()->redirect('Homepage:');
        };
        return $form;
    }
?>

form

<?php
$form = new Form;
        $form->setTranslator($this->translator);

        $form->addText('nazev', 'messages.homepage.hello')
                ->setRequired('Please enter your username.');

        $form->onSuccess[] = array($this, 'formSucceeded');
        return $form;
?>

nad create mám

<?php
/** @var \Kdyby\Translation\Translator @inject */
    private $translator;
?>

Ví někdo kde mi něco chybí nebo kde mám problém.

Předem děkuji

David Matějka
Moderator | 6445
+
+1
-

Koukni do tracy panelu, kdyby/translation tam ma vlastni panel, ve kterym najdes jaky jazyk se pouziva, jake slovniky byly nalezeny atd., takze to ti napovi, kde je problem.

jiri.pudil
Nette Blogger | 1032
+
+3
-

@inject anotace fungují jen v presenterech a injektovaná property musí být public. Předej si tam ten translator raději přes konstruktor.

stulda
Člen | 8
+
0
-

Tak to je fakt super :-) to je rychlost ;-) moc moc děkuji

Fakt mi to moc pomohlo :-) je pro další jako jsem já ;-) sem přidám jak jsem to vyřešil.

do form jsem přidal toto

<?php

    protected $translator;

    public function __construct(\Kdyby\Translation\Translator $translator) {
        $this->translator = $translator;
    }

?>

ps: jo jinak dávejte si pozor na správnost souborů ;-) pořád jsem přemýšlel proč je v panelu jeden soubor ignorovaný :-)

ještě jednou díky