app.yml i18n

3 views
Skip to first unread message

Hofferek Attila

unread,
Nov 27, 2009, 3:48:45 AM11/27/09
to symfo...@googlegroups.com
Hello,

a menu strukturamat az app.yml-ben tarolom, ott modositgatom, abbol
generalok egy sajat helperrel <ul><li>stb menut. Most ezt tobbnyelvuve
kene tennem. Hogyan lehet?

A kerdes tovabbi resze: az sfguard plugin altal keszitett uzeneteket
hogyan lehet kibanyaszni, betenni a messages.xml-be?

Elore is koszonom
--
Hofferek Attila

Ágoston Fung

unread,
Nov 27, 2009, 4:00:54 AM11/27/09
to symfo...@googlegroups.com
ugyanugy hívhatod onnan az i18n-et, pl

menu:
 level1:
  home: <?php echo sfContext::getInstance()->getI18N()->__('Home') ?>
  contact: <?php echo sfContext::getInstance()->getI18N()->__('Contact') ?> 

asszem

2009/11/27 Hofferek Attila <ho...@soka.co.hu>

Hofferek Attila

unread,
Nov 27, 2009, 4:21:54 AM11/27/09
to symfo...@googlegroups.com
Ágoston Fung írta:

> ugyanugy hívhatod onnan az i18n-et, pl
>
> menu:
> level1:
> home: <?php echo sfContext::getInstance()->getI18N()->__('Home') ?>
> contact: <?php echo sfContext::getInstance()->getI18N()->__('Contact') ?>
>
> asszem

Közeledek, de valahonnan máshonnan kéne elérnem a __() függvényt, mert
ahogy ajánlottad, ezt kapom:

Fatal error: Uncaught exception 'sfException' with message 'The
"default" context does not exist

csak nincs ötletem, hogy honnan.
--
Hofferek Attila

János Krnák

unread,
Nov 27, 2009, 4:46:59 AM11/27/09
to symfo...@googlegroups.com
Hi,

ha te irod ki a menut, akkor egyszeruen beteszed a menupont nevenet kiirasat egy __() i18n helperbe, es maris i18n kompatibilis.
Symfony 1.2ben lattam valami i18n extract dolgot, de vegso megoldaskent rakereshetsz erre a fuggvenyre is, es kigyujtheted magadnak.

udv
Jani

2009/11/27 Hofferek Attila <ho...@soka.co.hu>

Hofferek Attila

unread,
Nov 27, 2009, 4:58:24 AM11/27/09
to symfo...@googlegroups.com
János Krnák írta:

> ha te irod ki a menut, akkor egyszeruen beteszed a menupont nevenet
> kiirasat egy __() i18n helperbe, es maris i18n kompatibilis.

Oke, kiirom egy ciklusban a menupontokat, az aktualis menu mindig a
$menu valtozoban lesz. Ezzel mit kezd a __() hivas, hogyan allapitja meg
$menu osszes lehetseges erteket? Gyanum szerint sehogy, ez igy rossz lesz.

> Symfony 1.2ben lattam valami i18n extract dolgot, de vegso megoldaskent
> rakereshetsz erre a fuggvenyre is, es kigyujtheted magadnak.

Az odaig rendben van, az mar regota van, ki is szedi a __() kozti
stringeket a messages.xml-be, de nekem az app.yml-ben kene
internacionalizalni. Ott hogy hivom a __() fuggvenyt?

János Krnák

unread,
Nov 27, 2009, 5:47:57 AM11/27/09
to symfo...@googlegroups.com
A menu valtozoban, a X nyelv erteke lesz, arra megirod az i18n xml-t es amikor kiiratod azt az erteket a __() fuggvennyel, akkor a fuggveny beteszi oda az aktualis nyelvu forditast.

Nem forditanek a yml-ben, eleg ha oda beirod egy adott nyelven. Ha mar az app.yml-ben forditassz, ami utana cachelve lesz, erdekes eredemenyekre juthatnak a tobbi felhasznaloid, akik angolul varjak a menupontokat, de az elso ember aki megnezte a weblapot nemet volt.

Miert kell az app.yml-ben forditanod?

2009/11/27 Hofferek Attila <ho...@soka.co.hu>

Hofferek Attila

unread,
Nov 27, 2009, 5:52:52 AM11/27/09
to symfo...@googlegroups.com
János Krnák írta:

> A menu valtozoban, a X nyelv erteke lesz, arra megirod az i18n xml-t es
> amikor kiiratod azt az erteket a __() fuggvennyel, akkor a fuggveny
> beteszi oda az aktualis nyelvu forditast.
>
> Nem forditanek a yml-ben, eleg ha oda beirod egy adott nyelven. Ha mar
> az app.yml-ben forditassz, ami utana cachelve lesz, erdekes
> eredemenyekre juthatnak a tobbi felhasznaloid, akik angolul varjak a
> menupontokat, de az elso ember aki megnezte a weblapot nemet volt.
>
> Miert kell az app.yml-ben forditanod?

Nem kell, nem is akarok, oda csak a __() kodot tennem. A
messages.xml-ben forditok, az app/i18n alatt.

János Krnák

unread,
Nov 27, 2009, 5:58:29 AM11/27/09
to symfo...@googlegroups.com
De szerintem ne oda tedd a __() kodot, hanem oda ahol az <li>-ket kiirod.
Miert akarsz mar ott forditani? Szerintem a cachelesnel is gondjaid lesznek. Fordits a templateben.

2009/11/27 Hofferek Attila <ho...@soka.co.hu>

Hofferek Attila

unread,
Nov 27, 2009, 6:04:52 AM11/27/09
to symfo...@googlegroups.com
János Krnák írta:

> De szerintem ne oda tedd a __() kodot, hanem oda ahol az <li>-ket kiirod.
> Miert akarsz mar ott forditani?

Mert ott van a string. A helperben mar csak valtozok vannak. A yamelben
akarom konfigolni a menut, nem a helperbe beledrotozni.

> Szerintem a cachelesnel is gondjaid
> lesznek. Fordits a templateben.

Szerettem volna elkerulni, de ugy tunik nem megy. Talan adatbazisba
teszem az egesz menut, de azt meg mar agyu-vereb viszonylatnak erzem,
viszont az i18n adatbazis szinten meg van oldva megnyugtatoan. Meg
gondolkodom... :-)
--
Hofferek Attila

János Krnák

unread,
Nov 27, 2009, 6:11:20 AM11/27/09
to symfo...@googlegroups.com
De nem ertem, bocs. Ha valtozoban vannak, akkor mi a gond? Egyszeruen kiirod, h

<li><?php echo __($menu)?></li>

Ettol meg az app ymlben configolod a menut. Ha megvaltoztatod az app.yml-t akkor ugyis ujra fel kell raknod majd a siteot, akkor meg tudod valtoztatni a messages.xml-t is. Semmi nem lesz beledrotozva a helperedbe.

Lehet kimaradt nekem valami. Hol irod most ki a menut, es milyen modon (komponens, vmi symfony plugin)?

udv
Jani

2009/11/27 Hofferek Attila <ho...@soka.co.hu>

Hofferek Attila

unread,
Nov 27, 2009, 6:20:14 AM11/27/09
to symfo...@googlegroups.com
János Krnák írta:

> De nem ertem, bocs. Ha valtozoban vannak, akkor mi a gond? Egyszeruen
> kiirod, h
>
> <li><?php echo __($menu)?></li>

Es ebbol mi lesz, ha "symfony i18n:extract" után? Honnan fogja tudni a
$menu osszes lehetseges erteket? Es ha a $menut egy form input boxabol
is taplalom, akkor eloallitottam a google translatort? :-)

> Lehet kimaradt nekem valami. Hol irod most ki a menut, es milyen modon
> (komponens, vmi symfony plugin)?

Az apps/frontend/templates/layout.php-ban, egy helperrel, ami a
lib/helpers alatt van, ami az app.yamelből tölti be a google maps api
keyt, a menüstruktúrát, a map ikonok elérési útját, meg még ezer mindent.

János Krnák

unread,
Nov 27, 2009, 6:24:48 AM11/27/09
to symfo...@googlegroups.com
Nem fogja tudni az I18n extract utan. De a menud lehet kulon i18n fileban amit te irsz. nem kell az extractalthoz ragaszkodni.
De mivel te irod a menud, tudod mit irsz oda, ergo meg tudod irni a forditashoz szukseges filet.

Ha dinamikus a menud, (form inputbol valtoztatod) akkor tenyleg hasznalj inkabb adatbazist.


2009/11/27 Hofferek Attila <ho...@soka.co.hu>

Hofferek Attila

unread,
Nov 27, 2009, 6:28:13 AM11/27/09
to symfo...@googlegroups.com
János Krnák írta:

> Nem fogja tudni az I18n extract utan. De a menud lehet kulon i18n
> fileban amit te irsz. nem kell az extractalthoz ragaszkodni.
> De mivel te irod a menud, tudod mit irsz oda, ergo meg tudod irni a
> forditashoz szukseges filet.

Jo, csak a symfony sajat megoldasa kenyelmes. Persze irhatnek egy
switch($lang)
case "hu":
echo "szia";
case "us":
echo "hello";

jellegu dolgot is, nem kell az extractalthoz ragaszkodni, symfonyt sem
kell hasznalni, de ha mar hasznalom akkor nem symfony alatt akarom
megirni ujra a meleg vizet, hanem hasznalnam a mar letezot.

János Krnák

unread,
Nov 27, 2009, 6:32:47 AM11/27/09
to symfo...@googlegroups.com
Na varj, en nem azt mondtam irj egy uj fordito modult :)
"You don't have to reinvent the wheel" - es en ehhez nagyon is ragaszkodom, plusz iszonyat lusta is vagyok, ezert nem is irnek egy adatbazisos megoldast.
Reg nem hasznaltam i18n-t de ha jol emlexem tobb szotar filet is tud kezelni (nyelvenkent), nem csak egyet.
Milyen gyakran fogod valtoztatni a menupontok szoveget?
Es hany menuponttal dolgozol?
Plusz ha mar megvan a yml fileod, es megvannak a menupontjaid, akkor abbol egy xliff-et csinalnod a menure csak egy pake task, amit te irsz meg. Es ez meg mindig gyorsabb, mint kulon tablakat csinalni stbstb.

Az extract tok jol fog jonni akkor amikor a templatejeidbol akarod kinyerni a szovegeket.

Es azon kivul van meg a yml fileod, amibol pedig te kezzel irsz egy szotar filet, vagy hasznalod az extractnak az xliff keszitojet.


2009/11/27 Hofferek Attila <ho...@soka.co.hu>

Hofferek Attila

unread,
Nov 27, 2009, 6:36:59 AM11/27/09
to symfo...@googlegroups.com
János Krnák írta:

> Plusz ha mar megvan a yml fileod, es megvannak a menupontjaid, akkor
> abbol egy xliff-et csinalnod a menure csak egy pake task, amit te irsz
> meg. Es ez meg mindig gyorsabb, mint kulon tablakat csinalni stbstb.

Na ezt egy kicsit tudnad reszletezni, hogy a yamel file-ban hogy adom
meg, hogy ez egy internationalizable string ez meg nem, mert mondjuk egy
tombindex?

János Krnák

unread,
Nov 27, 2009, 6:42:19 AM11/27/09
to symfo...@googlegroups.com
Egy parameterben megadod, h melyik agtol generaljon xliff-et.
./symfony i18n-extract-yml app.yml app_menu
pl. Ez igy tok kiraly lenne, meg akar postolhatnad is utana symfonyra + pake tasknak, hatha kell vkinek, sot, ra is keresek, hatha mar vki csinalt ilyet, mert akar miert is ne.

2009/11/27 Hofferek Attila <ho...@soka.co.hu>

János Krnák

unread,
Nov 27, 2009, 6:44:08 AM11/27/09
to symfo...@googlegroups.com
No itt pl a generator.yml-bol olvassa ki a srac a szovegeket

http://trac.symfony-project.org/ticket/7515

2009/11/27 János Krnák <janos...@gmail.com>
Reply all
Reply to author
Forward
0 new messages