A Views alapértelmezése és a t() kapcsolata

Szeretném felhívni a figyelmedet egy kis turpisságra. A Views modul haladó beállításai között (admin/structure/views/settings/advanced) vagy egy olyan, hogy fordítási mód. Nem biztos, hogy ezt az oldalt mindenki felkeresi. Ennek az az alapértelmezése, hogy Core, vagyis alaprendszer. Ebből következően a Views modul alapértelmezés szerint minden szöveget keresztül fog tolni a t() függvényen. Az összes fejléc, lábléc, üres szöveg, stb. elemeket is. És most figyelj, ez akkor is így lesz, ha mondjuk ezeknek a mezőknek a beviteli formáját PHP kódra állítottad.

Ugye sejted, hogy mi történhet a többnyelvű webhelyeddel, ha ezt az alapértelmezést óvatlanul így hagytad, majd valakinek adsz egy Localization Client modulra jogot, hogy fordítson a webhelyeden. Biza, biza, ott fog neki vírítani a fordítandó dolgok között, hogy <?php és ezek között gyakorlatilag bármi szerepelhet, amit Te fejlécnek, láblécnek, üres szövegnek szántál ?>. Írhat neked egy olyan fordítást a <?php ?> közé, hogy hoppácska, és fogalmad sincs, mitől változott meg az uid 1 jelszava. Mert az adott nyelven, amire az illető fordít, pontosan az fog lefutni fejléc gyanánt, amit Ő „fordított”.

Tehát, ha a többnyelvű webhelyeden van Views (biztos van) és használtál bármire (fejléc, lábléc, üres szöveg, stb.) PHP kódot a Views modulon belül, akár csak egyet is, és ráadásul még más is fordíthat szövegeket a webhelyeden, akkor odahasítasz az oldaladon a admin/structure/views/settings/advanced oldalra, és azonnal átkapcsolod az alapértelmezést arra, hogy Nincs fordítás. Én szóltam.

Ja, és BUÉK mindenkinek.

Címke: 

Hozzászólások

És ha pár dolgot mégis le kellene fordítani?

Használsz ott is PHP kódot, melyben print t().

Érdemes lenne erről egy issue-t is írni. Hm?

Nem, mert ez elvileg egy sima user error. Nem a Views dolga annak ellenőrzése, hogy az adott szöveges mezők beviteli formájában a PHP kiértékelő be van-e kapcsolva, avagy sem. Mert ugye bármelyikben be lehet kapcsolva. A kérdéses mezőnél oda van írva a magyarázatban, hogy ha Core, akkor keresztül fogja tolni a t()-n.