Szükségem lenne angol nyelvű profilra egy magyar szájton

tiwaz képe

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.

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
tiwaz képe

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?...

0
0
fox mulder képe

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.

0
0

Fox Mulder

tiwaz képe

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.

0
0
tiwaz képe

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:

patching file i18nprofile/i18nprofile.module
Hunk #1 succeeded at 52 with fuzz 2 (offset 7 lines).
Hunk #2 succeeded at 78 (offset 7 lines).
Hunk #3 FAILED at 93.
Hunk #4 FAILED at 134.
Hunk #5 FAILED at 146.
Hunk #6 FAILED at 160.
Hunk #7 FAILED at 229.
Hunk #8 FAILED at 278.
6 out of 8 hunks FAILED -- saving rejects to file i18nprofile/i18nprofile.module.rej
patching file i18nstrings/i18nstrings.module
Hunk #1 FAILED at 71.
1 out of 1 hunk FAILED -- saving rejects to file i18nstrings/i18nstrings.module.rej

A lényeg az hogy nem jutottam előbbre: továbbra sincs angol regisztrációs űrlapom.

0
0
fox mulder képe

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).

0
0

Fox Mulder

tiwaz képe

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.

0
0
tiwaz képe

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.

0
0
tiwaz képe

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.

<?php
if isset($_SERVER['HTTP_REFERER']) { // check to see if there was a referer url
 
  $homeref = $_SERVER['HTTP_REFERER'];  // check where the visitor came from
 
  $langref = parse_url($homeref, PHP_URL_PATH); // check which language path was in the referer url
 
  if ($langref = 'fa') {
       print "Persian content";
     }
 
  else {
       print "English content"; // defaults to english contrent
     }
else {
    drupal_goto($path = 'node/1'); // redirect direct links to node/1
   }
?>

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.

0
0
tiwaz képe

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.

0
0
fox mulder képe

a fordítással nem rendelkező node-ok alapértelmezett nyelvű verziója töltődik be alapból.

Nem ez az alapértelmezett viselkedés Active Translation nélkül is? Csak kérdezem.

0
0

Fox Mulder

tiwaz képe

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?

0
0
fox mulder képe

Ha valaki szólt volna....

Részemről az alapproblémát egyáltalán nem értettem, csak a köztes lépések tűntek "erdő"-nek.

Akkor ezek szerint az Active Translation teljesen felesleges?

Úgy tűnik...

0
0

Fox Mulder

tiwaz képe

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?)

0
0
aries képe

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.

0
0