Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] Internationalization i18 form
Forum PHP.pl > Forum > PHP > Frameworki
lukasz10
witam wszystkich
Natrafiłem na pewien problem z tłumaczeniem formularz ich labeli oraz zawartości np selecta, chodzi oczywiscie o klase formularza:
sfLoader::loadHelpers(array('I18N'));
$sub = array('Wszedzie'=>__('Wszedzie'));
$this->setWidgets(array(
'sel' => new sfWidgetFormSelect(array('choices'=> $sub),array('class'=>'sel','id'=>'sell')),
))

$this->widgetSchema->setLabels(array(
'username'=>__('Login')

));
Podwójny podkreślnik działa w widoku, a jak mam poradzić sobie w formularzu
zgóry dzięki za podpowiedz
Wave
Cytat
Calling the Translation Helper Outside a Template

Not all the text that is displayed in a page comes from templates. That's why you often need to call the __() helper in other parts of your application: actions, filters, model classes, and so on. Listing 13-19 shows how to call the helper in an action by retrieving the current instance of the I18N object through the context singleton.

Listing 13-19 - Calling __() in an Action

  1. $this->getContext()->getI18N()->__($text, $args, 'messages');
lukasz10
Nie wiem w jaki sposób twoja podpowiedz ma mi pomoc , np w labelach formularza lub zawartosci selecta w pliku klasy formularza, w kwestii przetlumaczenia tego na inny jezyk, bo task: php symfony i18n:extract frontend en --auto-save mi tego nie gwarantuje, prosiłbym o przykład zastosowania o ile mozna


zgodnie z tym co jest na tej stronie: http://www.symfony-project.org/forms/1_4/e...nd-Localisation
wystarczy do pliku z tlumaczeniem message.xml

$this->setWidgets(array(
'name' => new sfWidgetFormInputText(), // the default label is "Name"
'email' => new sfWidgetFormInputText(), // the default label is "Email"
'body' => new sfWidgetFormTextarea(), // the default label is "Body"
));
<?xml version="1.0" ?>
<xliff version="1.0">
<file original="global" source-language="en" datatype="plaintext">
<body>
<trans-unit>
<source>Name</source>
<target>Nom</target>
</trans-unit>
<trans-unit>
<source>Email address</source>
<target>Adresse email</target>
</trans-unit>
<trans-unit>
<source>Body</source>
<target>Message</target>
</trans-unit>
</body>
</file>
</xliff>

a mi to nie dziala. czemu??
destroyerr
Może dlatego, że nie włączyłeś w ogóle i18n, może dlatego, że nie wyczyściłeś cache'a, może nie ten katalog tłumaczeń.

@Wave miło, że wstawiłeś kawałek dokumentacji, ale czy o niego chodziło? Przecież formularze nie mają bezpośredniego dostępu do kontekstu. Metody sfContext::getInstance() należy unikać zawsze kiedy tylko można, a w tym przypadku można
lukasz10
wszystko mam właczone bo mi tłumaczy z widoku, przy wykorzystaniu helpera __('') , a formularzu niestety nie
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.