Reggel óta bújom a fórumokat, szükségem lenne egy angol nyelvű regisztrációs űrlapra (profilra) egy alapból magyar nyelvű Drupal 6 szájton.
Ehhez telepítettem az i18n modult és aktiváltam a Profile translation funkciót.
Na innentől kezdve nem megy semmi. A Profilok szerkesztése alatt nem jelenik meg fordítás beírását lehetővé tevő funkció. Ekkor arra gondoltam, hogy bennem van a hiba, vagy a modulban és nem is így működik, ekkor angol nyelvű .po fájlt csináltam a magyarból (Személyes adatok > Personal Data, stb.) és beimportáltam. Mondanom sem kell, semmi változás. (Refresht nyomtam, az importáláskor az üzenet "Sikeres fordítás import. 0 új, 0 módosított és 10 törölt karaktersorozat.")
Minden segítséget, javaslatót, útmutatást előre is köszönök.
Szükségem lenne angol nyelvű profilra egy magyar szájton
Melyik modulhoz, modulokhoz kapcsolódik a téma?:
Drupal verzió:
Fórum:
Fejlemények
Tovább folytattam a kutatást és az alábbi patch-ekre esküdtek a készítőik, hogy ettől minden megjavul:
az első egyértelműen az i18n modul ezen hiányosságát hivatott javítani:
http://drupal.org/node/368510#comment-1299328
a másiknak mintha az i18n nélkül is működnie kéne a profile.module átírásával:
http://drupal.org/node/400396
Mindkettő patchelt profile.module verziót tesztelve az alábbi üzenet fogad (nagy fehérség):
Parse error: syntax error, unexpected T_FUNCTION in .../public_html/new/modules/profile/profile.module on line 35
az ominozóus 35-ös sor:
-function profile_help($path, $arg) {
mindkét patch, mint látszik 2009 elején készült valamikor, 6.8-6.10 drupal verzió ideje lehetett
innen hogyan tovább?...
-function
A "-function" helyett "function". Hogyan foltoztál?
A Profile egy core module, nem javasolt foltozgatni (főleg akkor, ha nem tudod, mit jelent a fenti hibaüzenet), mert minden Drupal frissítéskor elvész a változtatásod. Inkább várj, amíg valaki érdemben reagál az eredeti kérdésedre.
Fox Mulder
Köszönöm, már látom a hibát
Mindent mentek, mielőtt buherálok és a szájt még nem megy élesben.
A windowsban patcheltem az unxutils segítségével és minden sor elé "-" jelet tett.
Megpróbálom Linuxban a foltozást.
Nem adom fel...
Keményen próbálkozom, de továbbra sem sikerül az en/user/register alatt angol nyelvű profil címeket és mezőket megjeleníteni.
Foltozás után az alábbiak történnek:
----------------
A fentebb már citált link, ami direkte a profile modult patcheli és a készítő esküszik rá, hogy nála működik, bár megjegyzi, hogy ez az első drupal patch amit életében csinált, visszajelzés, komment nincs alatta:
http://drupal.org/node/400396
Ez nem vágja tönkre a szájtot, rendesen működik, de bármilyen nyelvű register linket behozva fent piros keretben az alábbi hibaüzenet látható, az angol nyelvű mezők továbbra sem jelennek meg persze, a választólistás mező tartalma is olvashatatlanná lesz:
warning: array_map() [function.array-map]: Argument #2 should be an array in /home/fetahu/public_html/new/modules/profile/profile.module on line 586.
warning: Invalid argument supplied for foreach() in /home/fetahu/public_html/new/includes/form.inc on line 1423.
az előbbi hibásnak jelzett kód a foltozott profile.module fájlban:
$field->options = array_map('t', $field->options);
a másik hibásnak talált kód az eredetiben hagyott form.inc fájlban:
foreach ($choices as $key => $choice) {
--------------------
A másik link a content_profile modulhoz való patch:
http://drupal.org/node/368510#comment-1299328
A linken azt írják feljebb, hogy megoldották vele:
1) Profile tabs can not be localized
2) I noticed that there are no "Translate" tab on profile pages, if you're using multilang. I've added it.
Ehhez képest telepítettem a patchelt content_profile modult, semmi, aktiváltam minden funkciót, jogosultságok beállítva, de a profilmezők továbbra sem lokalizálhatók és semmiféle Translate/Fordít fül nem jelenik meg sehol.
(Hibaüzenet sincs, a szájt működik rendesen egyébként.)
----------------------
Ezt a patchet később találtam a drupal.org egy eldugott szegletében:
http://drupal.org/node/248089#comment-847437
valamivel régebbi patch, mint az előzőek, de nagy reményekkel láttam neki, ám foltozás eredménye az alábbi:
A lényeg az hogy nem jutottam előbbre: továbbra sincs angol regisztrációs űrlapom.
Kezd eldurvulni.
Mi lenne, ha visszatérnénk a kályhához?
Fapados megoldás, ha a Felület fordítása oldalon rákeresel az összes érintett stringre és a magyar fordításuk helyett beírod az angol megfelelőt.
Vagy: egy kis saját modulban implementálod a hook_form_alter()-t (vagy a hook_form_FORM_ID_alter()-t). Hosszabb távon ez utóbbi a legkifizetődőbb (főleg, ha hozzáveszed, hogy előbb-utóbb úgyis szükséged lesz valamennyi saját modul fejlesztgetésre).
Fox Mulder
Sikerült!
Köszönöm a rávezetést: admin/build/translate/search alatt rákerestem a Profilra és kézzel szépen egyenként beírogattam. Ha tudtam volna, hogy ezt ilyen egyszerűen is lehet...
Van már működő angol nyelvű regisztrációs űrlapom /en/user/register alatt.
A fórumok átfésülése közben egyébként belefutottam ebbe:
http://drupal.org/node/367323
ez az általad is javasolt saját modulos megoldás, nem tudom az ott megadott kód használható-e, mit kéne még hozzáadni.
Régen emlékszem volt ilyen drupal modul-készítő/tesztelő modul is, egyszer csináltam is vele valamit még drupal 5-ben, de a nevét elfelejtettem vagy lehet hogy most már más nevű használatos.
Állandó magyar kezdőlap?
Nem akarok túl követelőzőnek tűnni, hogyan tudom azt megoldani, hogy a "Home" és egyéb kezdőlapra mutató linkek (pl. logo, szájt cím a fejlécben) mindig az eredeti, magyar nyelvű kezdőlapra mutassanak, még az /en előtaggal rendelkező oldalak alatt is.
Jelenleg az /en előtaggal rendelkező angol felületben ha a behívom a címlapot megjelenik a "Welcome to your new Drupal website!
Please follow these steps to set up and start using your website:"...
angol drupal installt követő standard szöveg.
Érdekes, hogy az elsődleges linkek között az oldal jobb fölső sarkában van egy English link, de az alá csináltam egy külön tartalomtípust, csak 3 vagy max 4 node lenne angolul. Ez az "English" eltűnik az elsődleges linkek közül ha az /en előtagra átváltok, pedig a tartalomtípus nincs definiálva direkte angolként, csak egy a sok közül. Ezért is fontos volna, "Magyar" link hiányában ha a Home-ra vagy a logora kattitva bejönne az eredeti kezdőlap.
Eddig a Path redirect modullal próbálkoztam, de semmi siker, mintha nyelvi verziókat nem kezelne, vagy én nem tudom használni.
Van továbbá egy /chat aloldal sima php kóddal (beilleszti a chatet) ami nem hajlandó betöltődni /en/chat link alatt (Page not found), pedig a kód ugyanaz és ugyanoda mutat.
Kérdés + egyet már majdnem megoldottam
Erre akadtam, 2009-es bejegyzés tehát druapl 6-hoz jó:
http://drupal.org/node/356898
Az itt található snippettel lehet-e valamit kezdeni? Át kell írni az én esetemre tudom, de nem tudom hogyan és mit. Frontpage modult telepítettem közben.
A /chat aloldal problémáját ebben a pillanatban sikerült megoldani Path redirect modullal nagy nehezen, a következőképpen:
1. Rövid webcímek funkciót kikapcsoltam
2. /chat útvonal álnevet megszüntettem és újra node/1 lett
3. a Path redirect modulba beírtam az átriányítást:
?q=en?q=node/1
redirects to
?q=hu?q=node/1
és ekkor működött tökéletesen mindkét nyelvű felületen, amíg a rövid webcímeket vissza nem állítottam. Pedig azokat jó lenne használni.
Minden megoldva
Azért beírom, hátha más is belefutna ebbe a problémába, én napok óta szívtam vele, mindeféle php kóddal és természetesen tök egyszerű volt a megoldás a problémára.
Nos, a megoldás: az Active Translation modul, melynek segítségével a fordítással nem rendelkező node-ok alapértelmezett nyelvű verziója töltődik be alapból. Ennyi.
Hm...
Nem ez az alapértelmezett viselkedés Active Translation nélkül is? Csak kérdezem.
Fox Mulder
Ja, hát nem ez volt beállítva
Viszont, ha erre gondolsz: most deaktiváltam az Active Translation modult és az admin/settings/language/i18n alatt az alábbi opcióra tettem:
Mixed current language (if available) or default language (if not) and language neutral.
és működik, amennyire látom, pontosan úgy ahogy az Active Translation alatt tette, tökéletesen.
Eredetileg ez volt beállítva neki, de korábban nem néztem:
Content selection mode:
Current language and language neutral.
Ezért nem ment. Ha valaki szólt volna....
Akkor ezek szerint az Active Translation teljesen felesleges?
Részemről
Részemről az alapproblémát egyáltalán nem értettem, csak a köztes lépések tűntek "erdő"-nek.
Úgy tűnik...
Fox Mulder
Jogos
Ha belinkeltem volna a készítés alatt álló oldalt és úgy magyaráztam volna, hogy mire meg hova lenne szükségem akkor látható lett volna mi a problémám.
Kérdezhetek még ezen a topikon belül egy utolsót, a fentebb említett /chat útvonal álnév problémával kapcsolatban? (Vagy nyissak neki új topikot?)
Ha van köze az eredeti címhez
Ha van köze az eredeti címhez (Szükségem lenne angol nyelvű profilra egy magyar szájton) akkor igen, egyébként új téma.