Překlad u položek selectu potlačit, ale u pravidel selectu povolit
- Ondřej Brejla
- Člen | 746
Možná jsem diletant a špatně hledám…ale docela by se mi hodilo, aby se
mi prvky addSelect()
nepřekládaly, ale pravidla, která mám na
tomto formulářovém prvku navěšena, se naopak překládaly.
Použití setTranslator(NULL)
na select prvek vypne překlad jak
u prvků, tak u pravidel.
Řešil jste to někdy někdo? Díky…
- David Grudl
- Nette Core | 8218
To v tuto chvíli to nejde, ale vede mě to k otázce, jestli vůbec někdy má smysl vypnout translator na prvku a zároveň ho vypnout i na chybové zprávy pro prvek.
- Ondřej Brejla
- Člen | 746
David Grudl napsal(a):
To v tuto chvíli to nejde, ale vede mě to k otázce, jestli vůbec někdy má smysl vypnout translator na prvku a zároveň ho vypnout i na chybové zprávy pro prvek.
Nevím, jestli jsi se upsal, nebo to myslíš tak, jak jsi napsal ;-)
Každopádně…smysl má, alespoň u addSelect()
, vypnout
translate u prvků (čti option
s), a přitom ho nechat na prvku
jako takovém.
Př.: Mám option
s nacpané 1st level doménami, potřebuji,
aby nějakou z nich uživatel zadal, ale opravdu je nechci překládat.
Pravidlo přeložit musím.
Řešením by byla možnost nastavit translator u pravidel separátně.
Pokud by nastaven nebyl, vzal by se z Control
u, případně by se
mohl u pravidla nastavit na NULL
. Což by ale znamenalo změny v
Rule
(resp. Rules
) třídě.
$form->addSelect('myElement', ...)->setTranslator(NULL);
$form['myElement']->addRule(new Rule(Form::FILLED, 'Lorem.')->addTranslator($myTranslator));
by bylo hezké :-)
- David Grudl
- Nette Core | 8218
Ondřej Brejla napsal(a):
Nevím, jestli jsi se upsal, nebo to myslíš tak, jak jsi napsal ;-)
Zkusím to přeformulovat: může nastat situace, kdy by se hodilo, aby
vypnutí translatoru u formulářových prvků
$form['neco']->translator = NULL
zároveň vypnulo i překlad
chybových zpráv? Nebo ještě jinak: mám současné chování bez náhrady
změnit?
- Ondřej Brejla
- Člen | 746
Abych pravdu řekl, nedokáži si dost dobře představit situaci, kdy bych chtěl překládat formulářový prvek, ale NEchtěl překládat chybové zprávy.
Naopak si dokáži představit, že chci vypnout překlad na formulářovém
prvku, ale na chybových zprávách překlad ponechat (resp. ne na
formulářovém prvku, ale na jeho option
ech – v tuto chvíli
tedy na celém prvku).
Stejně tak si dokáži představit situaci, kdy bych chtěl překlad jak na formulářovém prvku, tak na chybových zprávách.
Ale opravdu nevím, k čemu by bylo, kdyby byl vypnutý překlad jak na formulářovém prvku, tak na chybových zprávách. Není to nesmysl? Proč bych to dělal? Přeci nebudu mít půlku chyb v češtině a půlku v angličtině?
Obecně si myslím, že překlad na chybových zprávách bude vyžadovaný nezávisle na překladu formulářového prvku, na kterém jsou navěšeny. Dle mého je tedy zbytečné vazbit `$form[‚neco‘]->translator = NULL ` na vypnutí překladu i chybových zpráv.
Další věc je, že u select
u vypnutím překladu na prvku
(typicky – potřebuju NEpřekládat pouze option
s!) vypnu
i překlad labelu
. Což je dle mého taky špatně. Bylo by
nejlepší, kdyby šlo nějakým způsobem tedy nastavovat
translator
: na prvek (label
), na jeho
Rule
s a na jeho option
s (pokud prvek nějaké
opation
s má).
Šlo by to? Pak by se, myslím, překlad choval tak, jak se od něj očekává.
V tuto chvíli tedy je možné pouze zapnout/vypnout překlad na kompletním
prvku, tedy – label
, rules a option
s.
(na 1.0-dev jsem zatím něměl čas se podívat)
- Ondřej Brejla
- Člen | 746
Ještě koukám, že se nepřekládá
setOption('description', 'Text k prelozeni');
, což by asi taky
přeložené být mělo.
- David Grudl
- Nette Core | 8218
Ondřej Brejla napsal(a):
Ještě koukám, že se nepřekládá
setOption('description', 'Text k prelozeni');
, což by asi taky přeložené být mělo.
je to tam.
- Ondřej Brejla
- Člen | 746
Paráda, děkuji. Škoda, že se to nevešlo do 0.9.3 stable, na které mi běží překládaný web :-) Nevadí, hlavně, že to bylo odhaleno a implementováno :-)
- Ondřej Brejla
- Člen | 746
Ano, jistě, můžu si s tím hrát. Nechci. Chci mít „oficiální“ stable verzi. Netřeba tvořit hybridy (ani to není žádoucí). S 0.9.3 jsem spokojen.