Modulfrissítés után szétesett a menürendszer

turboczi képe

Sziasztok!

Augusztus 18-án frissítettem a modulokat a Drupal felületén, kb. 6 modul frissült, köztük az i18n is. Frissítés után viszont szétesett a menürendszer: a három nyelv menüpontjai (angol, német, magyar) egymás után jelennek meg, szépen sorban, holott mindegyiknek csak akkor kellene látszania, amikor az adott nyelvnél vagyunk.

Próbáltam utánaolvasni a fórumokban, de nem találtam rá megoldást, sajnos. Annyi tény, hogy nem angolul telepítettem az oldalt, hanem magyarul, és utólag vettem fel az angolt meg a németet is a választható nyelvek közé, de amennyire láttam, nem volt egyértelmű konszenzus abban, hogy ez hiba-e. Ráadásul egészen a frissítésig minden jól ment, nem volt ilyen gond.

Próbálkoztam kézi frissítéssel, korábbi modulverziók felrakásával, de nem jött össsze. Itt tudjátok megnézni, hogy fest a dolog: www.balazsjanos.com

Nagyon örülnék, ha tudnátok segíteni, hogyan hozzam helyre az oldalt!

Előre is köszönöm:
A.

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
gyogyika képe

Kár, hogy éles oldalon frissítettél.
Ha meg lennének a modulok korábbi verziói akkor localhoszton próbálkoznék a modulok frissítésével, egyesével.
Figyelném, hogy mikor romlik el az oldal.

Üdv.

József.

3
0
turboczi képe

Most már én is sajnálom.

0
0

Turóczi Attila

nevergone képe

„a három nyelv menüpontjai (angol, német, magyar) egymás után jelennek meg, szépen sorban, holott mindegyiknek csak akkor kellene látszania, amikor az adott nyelvnél vagyunk.”

A kérdés az, hogy ennyi csak-e a hiba? Mert ha igen, akkor egy kis modullal össze lehetne rá hozni egy workaround-ot: A hibát ténylegesen nem javítja, de az oldal működését igen.

Több lehetőség is eszembe jutott, de mindegyik ugyanarra a logikára épül. Nézzük a sminkeset.

A localhost-os tesztoldaladon a sminked template.php fájljában definiálod a theme_link() függvényt. A Devel modul dsm() függvényével megnézed a $variables paraméter értékét, ugyanis ezzel a függvénnyel is tudod szabályozni az oldalon megjelenő linkeket. Ha minden igaz, akkor ott meg fog bújni az adott menüelemhez tartozó nyelvi kód is. Aztán megvan neked az aktuális felhasználó nyelvi kódja is: kell egy global $user, és máris eléred a $user objektumot minden adattal.
Most már egyszerű a dolgod: A menőpontot csak akkor jelenítsd meg, ha a két nyelvi kód egyezik.

Ui.: Ha sok link van, akkor a dsm() gyakran fut le és kifagyhat tőle a böngésződ. Ebben az esetben a dd() használata javasolt, ami az oldalhoz tartozó temp könyvtárban létrehoz egy drupal_debug.txt fájlt és abba dolgozik.

Felelősség elhárítása, blablabla: A fenti gondolatmenetet nem próbáltam ki és valószínűleg nem is a legideálisabb, nyugodtan tovább lehet gondolni a megoldást, akár saját modulban megvalósítva.

Ui.: Én azért utána kinyomoznám a hiba okát és javítanám. A frissítéseket pedig tesztoldalon próbáld ki, különösen akkor, ha valamilyen modulból főverziót frissítesz, pl. 7.x-1.2 -> 7.x 2.0

0
0
turboczi képe

...de sajnos nem tudok. Én amolyan klikkelgetős fajta vagyok, aki ilyenkor nagyon meg van lőve. Köszi az ötletet, ha nem jön össze, lehet, hogy megkérek valakit!

0
0

Turóczi Attila

gellert képe

Nekem is ez volt ma a problémám. Ráadásul Superfish menüben is gond volt.

Amennyiben a main menu-ben vannak a linkjeid, úgy a .../admin/structure/menu/manage/main-menu/edit oldal alján kapcsold be a Translation mode-ból a második opciót:

"Translate and Localize. Menu items with language will allow translations. Menu items without language will be localized."

Bár nálam most az i18n és a variables is dev verzió, lehet, hogy ez is kell hozzá.

0
0
turboczi képe

hát ez biztató, hogy Nálad is ez a helyzet. Hiába állítom át a fordítást a főmenünél, ahogy írtad, nem oldja meg sajnos. Úgy tűnt, hogy szétment a fordított tartalmak meg az eredeti között az asszociáció, ezeket helyreállítottam ugyan, de még mindig bénán néznek ki a menük. Azazhogy az a gond, hogy ha valamelyik zászlóra kattintunk, akkor bejön mondjuk az x.com/en, a blokkok szépen átváltanak angolra, de a menük nem. Ha a főmenüben minden link (vagyis a magyar linkek és azok angol-német fordításai) mind engedélyezve vannak, akkor mind látszik. Egyszerűen a menü valamiért nem vált nyelvet, már alig van hajam... :-)

Köszi!

1
0

Turóczi Attila

turboczi képe

...de sajnos nem lett jó. Az a baj, hogy valahogy szétzilálódtak a fordítás révén összekötött tartalmak. Van egy /hu/akármi álnevű tartalom, aminek mondjuk a német megfelelője nem /de/etwas lesz, hanem /hu/node/51 például. Na, erre kössünk csomót!

0
0

Turóczi Attila

Sk8erPeter képe

Azóta már javult az a hiba, hogy minden nyelvhez tartozó menüelem egymás mellett megjelenik? Nálam legalábbis ilyen para nincs.
Az viszont nagyon zavaró, hogy megkérdezi minden alkalommal a tartózkodási helyemet, minek? Ha ez volt a megrendelő kérése, én lebeszélném róla, mert csak egyből negatívvá teszi az élményt. :)

Nálam most ilyen:
Ifj Balázs János oldala

Mindenesetre nálam minden nyelvnél most csak a magyar menücímek jelennek meg. Vagy épp ez a baj?
Már összekuszálódtam kicsit.

Konkrétan melyik modulokat frissítetted az i18n modulon kívül, amikor megtörtént a baj? És melyik verzióról mire, azt meg tudod mondani?
Ja, és egyáltalán Drupal 7-ről vagy korábbiról van szó? Azt nem jelölted be.

0
0
turboczi képe

Mondom sorjában.

7-es Drupal, és mindent frissítettem aug. 18-án, amit felajánlott. A bejegyzésed alapján tegnap localhoston mindent frissítettem, kivéve a két dev állapotban lévő modult. Mikor láttam, hogy semmi nem változott, azokat is frissítettem, de sajnos megint nem változott.

Igen, pontosan az a para, hogy nyelvváltáskor nem vált a menü, holott pl. a blokkok menüje vált rendesen, ahogy kell. Az általad küldött képen még ott van a Kontakt menüpont is, ami a Kapcsolat német változata és véletlenül ott maradt mellette a pipa az egyik próbálgatáskor. Mostanra már azt is kiszedtem. Ha minden menüpontot engedélyezek, ahogy más többnyelvű oldalakon szokás, akkor azok mind megjelennek, tehát itt egy ideiglenes megoldást látunk. Érthető, hogy nem vált a menü a nyelvváltáskor, mert nincsenek engedélyezve az angol és német linkek. De ha engedélyezem őket, akkor mind látszani fognak, ami elég béna...

Ami a helyszínt illeti: be lehet állítani, hogy mindig engedélyezve, de igazad van, lehet, hogy utálják és elrettennek tőle... Megbeszélem.

Arra most nem tudok válaszolni, hogy milyen modulokat frissítettem és mit mire, mert nem írtam fel. De utánatúrok és ha meglesz, akkor szólok.

Köszi szépen!
A.

1
0

Turóczi Attila

Sk8erPeter képe

Tudnál mutatni egy-két screenshotot valamelyik menüpont beállításáról, a fordítás fülről, meg magának a main menunek beállításáról, és azonbelül is a fordítás fülről? Sokat segítenének ezek a screenshotok a megoldásban, mert így csak a sötétben tapogatózunk. Lehet, hogy a képen egyből meglátnánk valami helytelen beállítást.
Ja, nem is biztos, hogy a main menube raktad. Miért nem? :)
Ezenkívül mintha nem a beépített nyelvváltó blokkot használnád (forráskódja alapján). Miért nem? :)
Milyen többnyelvűséggel kapcsolatos modulok vannak fent nálad?

0
0
Sk8erPeter képe

Azóta rákukkantottam az oldalra, kiderült, hogy a BlueMasters smink kissé gagyin van megírva, mert eleve minden menüelemet kiír.
Kipróbáltam tesztcélú Drupalon is, és a megoldás az alábbi volt:

sites/all/themes/bluemasters/page.tpl.php
ÉS
sites/all/themes/bluemasters/page--front.tpl.php

felülbírálása:

  1. <?php $menu_name = variable_get('menu_main_links_source', 'main-menu');
  2. $main_menu_tree = menu_tree($menu_name);
  3. print drupal_render($main_menu_tree); ?>

KICSERÉLNI ERRE (Zen sminkből származó kódrészlet!!):

  1. <?php
  2. // This code snippet is hard to modify. We recommend turning off the
  3. // "Main menu" on your sub-theme's settings form, deleting this PHP
  4. // code block, and, instead, using the "Menu block" module.
  5. // @see http://drupal.org/project/menu_block
  6. print theme('links__system_main_menu', array(
  7. 'links' => $main_menu,
  8. 'attributes' => array(
  9. 'class' => array('links', 'inline', 'clearfix', 'menu'),
  10. ),
  11. 'heading' => array(
  12. 'text' => t('Main menu'),
  13. 'level' => 'h2',
  14. 'class' => array('element-invisible'),
  15. ),
  16. )); ?>

Így már az adott nyelvhez tartozó menüelemek jelennek csak meg.

2
0
gellert képe

Sajnos nálam a Bartik smink esetén is fennáll ez a probléma, és az így van megírva.

0
0
Sk8erPeter képe

Próbáltam a Bartikkal is, de az teljesen jó. Angolnál az angol menüelemet jeleníti meg, magyarnál a magyart, nincs keveredés.
Megnéztem, és Bartiknál pontosan az a kódrészlet van a page.tpl.php-ben, mint amit bemásoltam a Zenből, tehát az jó.

Amúgy ha tudsz mutatni screenshotokat egy példamenüpontodról, hogy hogyan próbálkozol a fordításokkal, akkor lehet, hogy meg tudjuk oldani a gondot nálad is!

0
0
gellert képe

A Bartikban is ugyanaz a kód van, amit bemásoltál a zenből, ezt akartam jelezni a hozzászólással, de a probléma ennek ellenére nálam is jelentkezett, és csak az által oldódott meg, hogy a menü fordítást átállítottam, és aztán egyesével elmentettem a node-okat.

Pár screenshot:

Node fordítás

Node fordítás

Node fordítás

Node fordítás

Node fordítás

0
0
gellert képe

Meg voltam győződve róla, hogy az általam felvázolt megoldás sikerül majd nálad is...

Ezért megpróbáltam a saját weboldalamnál, hogy a menü fordítást elállítom:

"No multilingual options for menu items. Only the menu will be translatable"-ról
"Translate and Localize. Menu items with language will allow translations. Menu items without language will be localized."-ra

aztán visszaállítottam "Translate and Localize..."-ra, és most már nekem se működőtt, ugyanúgy megjelent minden menüpont minden nyelven, kivéve amiket views-zal raktam ki. A node-ok természetesen össze vannak kapcsolva.

Én is sokáig kerestem a megoldást, és egyelőre nem tudom, hogy miért romlott el újra.

Elkezdtem újra megnyitni és elmenteni a node-okat, és így egyesével mentegetve helyreáll a rend... furcsa.

0
0
turboczi képe

Sziasztok!

Hát, én vért izzadtam, és egy délelőttöm ment el rá, mire rájöttem, hogyan kell újra összekötögetni a tartalmakat... Az a lényeg, hogy nem mindegy, honnan indítjuk a tranzakciót. A menüt kell kilistáztatni, ott rámenni a kiinduló tartalomra, és onnan a fordítás fülre. Aztán az egészet le kell ellenőrizni a menü fordítási egységeinél, mert van, hogy hiába kötöm össze a tartalmakat egy fordítási egységgé (tehát egy azon tartalom különböző fordításaiként), ez nem mindig így jelenik meg a menü fordítási egységeinél. Ráadásul én azzal is megkínlódtam, hogy a fordítási egységeknél bizonyos tartalmakat egyszerűen nem adott fel a legördülő menüben... ekkor segített az adott tartalom újra megnyitása, a nyelv átállítása nyelvfüggetlenre, mentés, utána vissza és nyelv visszaállítása, mentés. Innen a fordításokra, aztán a fordítási egységekre... És még nem vagyok teljesen kész vele.

A kódcsere egyébként meggyógyította a menüket, most már megy a nyelvváltás (ahol nem, ott a fordítási egységekkel lesz a gond, szerintem.)

Csak arra sikerülne rájönni, hogy egyáltalán hol ment félre. Mert lehet, hogy rosszul van megírva a smink, de egy fél évig tökéletesen működött!!!

Külön köszönet Péternek a hősies kitartásáért és segítségéért. Nélküle nem működne most már majdnem normálisan a honlap!

2
0

Turóczi Attila

eager képe

"Csak arra sikerülne rájönni, hogy egyáltalán hol ment félre. Mert lehet, hogy rosszul van megírva a smink, de egy fél évig tökéletesen működött!!!"

Megváltozott a modul működése (asszem az 1.6-tól fogva): itt a fejlesztő kommentje a releváns issue queue-ban:

"Language selection is not using node access anymore for menu items."
( http://drupal.org/node/1658748#comment-6174690 )

Nekem amúgy nem kellett ennyi kört futnom a működésre bírással.

A kiindulópara (i18n verzió 1.7):

  1. A node-ok létrehozásakor kipipáltam a "Menüpontot hoz létre" beállítást, és kitöltöttem a menüpont adatait (alapértelmezett main menüt használtam).
  2. Az így létrehozott öszes menüpont látszik a menüben, nem szűrődik nyelvre.
  3. Elmegyek a menüpontot lefordítani, és írja, hogy:

    "Language:
    Undefined
    This menu item belongs to a node, so it will have the same language as the node and cannot be localized."

    - emiatt nem szűrődnek: a language most undefined, az öröklés meg valamiért nem jön át (pedig a node-nak tutira megvan a nyelve) (szóval lehet, hogy ez egy bug? (hiszen azt írja, hogy "it will have the same language as the node" és mégis "undefined")).

Gyógyítás:

  1. Kinyitottam a menüpontok listáját, és töröltem a meglévő menüpontokat.
  2. Egyesével nekiálltam létrehozni újra a menüpontokat, kézzel beírva, hogy pl. node/14, és hogy a nyelv magyar (nekem a default) (mindig a default language legyen először létrehozva a fordítandó dolgoknál).
  3. Ugyanígy az angol menüpontot, node/15, angol nyelvű, mentés (nem en/node/15, hanem csak így, simán).

Az így létrehozott menüpontok már szűrődnek nyelvre a multilingual ("Fordítás és honosítás" beállítású) menüben.

Azt, hogy node/14 meg node/15 az admin/content oldalról néztem ki (tartalmak áttekintő oldala), a szerkesztés linkre hoverelve szépen mutatja az elérési utakat.

Ami megdöbbentett, hogy nem kell a menüpontokat fordítási egységekbe (translation set) rendezni. Igazából szépen szűrődnek nyelvre a menüpontok anélkül is, és jelenleg még nem tudom, milyen plusz szolgáltatást nyerünk, ha a menüpontokat is fordítási egységbe rendezzük...

(persze, mint fentebb írtam, a nodeoknál már be van állítva, hogy melyik melyiknek a fordítása; az újabb meglepetés, hogy az admin/config/regional/i18n_translation oldal, (címe: Fordítási egységek) csak a "menühivatkozás" típusú fordítási egységeket listáz, a node-ok egymáshoz való viszonyának itt nincs nyoma)

EDIT:

http://drupal.org/project/i18n_contrib

ebben a modulcsomagban van egy modul, ami segíthet, hogy ha 30 site-od van 100-100 menüponttal, akkor talán ne kelljen újradefiniálni a menüket:

"Multilingual select menu filter: Filters out menu items by language using node access (Unsupported module, only for backwards compatibility)"

(Amúgy az egész egy új csomag, szintén Jose Reyro-tól, April 1, 2012-kor jött ki (nem tudom, vicc-e, gondolom nem :) ))

2
0
turboczi képe

Igen, logikusnak tűnik, amit írsz. A fordítási egységekkel nekem se volt dolgom egészen addig, amíg újra nem definiáltam a lapok közötti kapcsolatokat, elsőre működött minden. Lehet, hogy nálam két hiba volt egyszerre: egy sminkes és egy i18n-es, és ettől kavarogtam annyit.

Köszi a leírást, bár ne lenne rá szükségünk legközelebb!!! :-)
A.

0
0

Turóczi Attila

turboczi képe

A http://www.jungmagyarul.hu/ oldalhoz kb. egy éve nem nyúltam hozzá, mégis ugyanazt a hibát produkálja, mint a fenti.

Itt még 7.14-es Drupal fut, 1.1-es Localization Client és 1.7-es Többnyelvűség -- Nemzetköziesítés. Természetesen a smink is más.

A német menü ugyanúgy betolakszik, mint a zenész srác honlapján. Miért???

0
0

Turóczi Attila

Sk8erPeter képe

"kb. egy éve nem nyúltam hozzá"
De modulfrissítés volt?

Amúgy az angol is ott van:
Contact - Kapcsolat - Kontaktaufnahme

Hát sanszos, hogy ugyanezeket a lépéseket le kell darálni, a miértre könnyebb lenne válaszolni, ha tudnánk, volt-e modulfrissítés.
Ha nem volt, akkor nem is sejtem. :)

0
0
turboczi képe

Nem volt modulfrissítés, a "kb. egy éve nem nyúltam hozzá" az pontosan ezt jelenti.

0
0

Turóczi Attila

Sk8erPeter képe

Akkor olvasd már el eager hozzászólásait :D Elég jól összeszedte az infókat.
Meg írj infókat az érintett modulok (i18n és a többi) verziószámairól és hasonlókról. De legfőképp játszd végig a lépéseket, amikről korábban beszéltünk, még egyszer úgysem valószínű, hogy kéne. :)

0
0
eager képe

Valamelyik info pontatlan lesz itt, mert ebben a kommentedben ezt olvasom: "és 1.7-es Többnyelvűség -- Nemzetköziesítés."

Az 1.7-es i18n sokkal fiatalabb egy évesnél.

(Lehet hogy valaki más frissítette?)

1
0
turboczi képe

... megnéztem én is azóta, hogy a 7.14-es Drupal mikori, és akkor láttam, hogy májusban adták ki. Ez tehát azt jelenti, hogy májusban frissíthettem utoljára, vagy júniusban. Tehát rosszul mondtam, amikor kb. 1 évet írtam, ezexerint olyan fél éve nem nyúltam hozzá. És azóta nem láttuk, hogy valami félrement volna, most szólt a lány, aki infóval tölti fel a honlapot, hogy hülyén néz ki és furcsákat csinál. Ránéztem, és akkor láttam, hogy olyan, mint a zenész srác lapja volt.

Most nem érek rá, de megcsinálom a lépéseket, amelyeket írtál, és mindenképpen visszajelzek, hogy állunk, hogy sikerült.

Addig is köszi!
A.

0
0

Turóczi Attila

eager képe

A fejlesztő magyarázata:
"Language selection is not using node access anymore for menu items."

Írtam a fentebbi kommentemben is. Az 1.6-tól (vagy 1.7-től?) ilyen a multilingual menu modul. Nem szól, nem figyelmeztet, csak már nem nézi a paramétert, amit addig nézett.

A fejlesztő azt írta a (fentebb is linkelt) issue queue-ban, hogy olvasd el a release notest frissítés előtt (egy sor utal erre, én magamtól nem jöttem volna rá, hogy ez azt jelenti, hogy közepesen hazavágja az oldalt, de mindegy).

A relatíve egyszerűbb megoldás is a felsőbb kommentemben van (az alján, a segéd-modul-csomag) (én nem próbáltam).

2
0
turboczi képe

Na, a fenti egyszerűbb módszer nálam is bevált, úgyhogy köszönöm szépen mindenkinek a segítséget és a jó tanácsokat!

0
0

Turóczi Attila

Sk8erPeter képe

Melyik? Az i18n_contrib?

0
0