Modul nyelv nem vált

makgab képe

Üdv!

Egy egyedi teszt modulba szépen betettem a fordításokat:

# .module
...
$item['...'] = array(
 'title' => t('Menu item'),
 'description' => t('Menu item'),
...

Az oldalon nyelvváltáskor minden működik, kivéve a .module fájlban megadott fordítások, azaz a menüpontok nem váltanak át. Maradnak magyar nyelvűek.

Miért nem vált át a menüben a kiválasztott nyelvre?

Az admin felületen megnéztem, minden menünek megvan a fordítása. Csak nem vált át.

Drupal verzió: 
dj képe

gyorstárt.

0
0

Üdv!
Dudás József

eMeLA képe


kivéve a .module fájlban megadott fordítások

Vagy rosszul fogalmazol, vagy rosszul csinálsz valamit.

A .module fájlban a t() függvényben mindig angol szövegnek kell lennie. Ezt az angolt szöveget az admin felületen tudod lefordítani más nyelvekre.

Fordítást még a .po fájlban lehet megadni, amit vagy modulbekapcsoláskor vagy importálva lehet hozzáadni a fordításokhoz.

0
0

...mit tudok: http://web.termuves.hu

nevergone képe

Ott kezdődik, hogy a t() függvény csak angolról fordít. Szóval magyarul, urduul nem írunk bele.

0
0
makgab képe

* A cache törlés megvolt természetesen. De mégsem működik.
* A t() fv-ben ahogy a példában is van, angolul írtam a szöveget pl.: 'Menu item'! Tehát sehol nem használtam magyar nyelvű szöveget!!

Érdekes módon csak a menük nem fordulnak le. A modulban levő más szövegek lefordulnak! Tehát csak a .module fájlban definiált menük nem váltanak át.
Ezért nem is értem... :o

0
0
pp képe

Menünél nem kell a t()!

http://api.drupal.org/api/drupal/modules!system!system.api.php/function/...

(és a watchdog-ba se rakjál változó szövegeket, mert hamar megtelik az adatbázisod :))

pp

1
0
makgab képe

Akkor a hook_menu() menüket hogy kellene fordítani?
http://api.drupal.org/api/drupal/includes!menu.inc/function/_menu_link_t...

Ezt kellene használni? Hogyan is?

0
0
pp képe

„Akkor a hook_menu() menüket hogy kellene fordítani?”

Ugyan úgy, ahogy a többi kódból jövő szöveget.

A kérdés az, hogy hogyan kell fordíthatóvá tenni?

A válasz pedig az, hogy sehogy, mert fordíthatóvá van már téve.

"title callback": Function to generate the title; defaults to t(). If you require only the raw string to be output, set this to FALSE.

A probléma ott van, hogy mivel átkergetted a t()-n, a Drupal meg ezt a szöveget kergette át a t()-n, ezért a magyar oldalon a magyar szöveg lett az angol, amit aztán begyorstárazott és úgy maradt.

pp

2
0
makgab képe

hogyan kellett volna használni?
nem egészen értem.

0
0
aboros képe

simán, csak t() nélkül adod meg őket, mert az érték amit megadsz majd még átmegy egy title callbacken (mint ahogy van access callback is, csak ez a címet generálja) ami alapértelmezetten a t() függvény. azért van ez, hogy megadhass te másik title callbacket is, mert lehet hogy olyan menü itemet akarsz, ami mondjuk mindig a 'Hello %username', akkor nem a t() lesz a title callback, hanem irsz rá saját függvényt. csak simán fordításhoz nem kell.

tehát így:

# .module
...
$item['...'] = array(
 'title' => 'Menu item',
 'description' => 'Menu item',
...
1
0

-
clear: both;

makgab képe

Most ez van a felületfordításban pl.:

Eredeti szöveg:
"Menü item"
 
Magyar:
"Menüpont"

De a t('Menu item') miatt az eredeti is a magyar és a lefordított is a magyar. Ha jól értem.

0
0
makgab képe

'title' => 'Menu item',

Ok, köszönöm.
Működik.

0
0