A nyelvi linkek módosítása a node linknél

Laza képe

Üdv!
Van egy többnyelvű oldalam. A lefordított nodeok alatt ugye megjelenik az adott nyelv zászlaja (language icons modul) és a nyelv neve, amelyre kattintva bejön a node fordítása.

Hol tudom ezt módosítani? A kikapcsolást megtaláltam, de az nekem nem lesz jó, mert a nyelv neve helyett azt szeretném odaírni, hogy Read this article in English

A válaszokat előre is köszi:
Laza

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

a sminked template.php fajljaban

function SMINKNEV_translation_link_alter(&$links, $path) {
  foreach ($links as $lang_code => $link {
    $links[$lang_code]['title'] = t('Read this article in %language', array('%language' => t($link['language']->name)));
  }
}

a kodot nem probaltam ki. Minden mas beallitas a link szovegere valoszinuleg eltunik (pl zaszlok)

Annak aki nem erti az aktualis nyelvet az nehezen talalja meg a forditast, mert peldaul a "Olvassa el a cikket angol nyelven" szoveg egy csak angolul tudo valakinek nem sok segitseget nyujt.

igy talan jobb lenne

t('Read this article in %language', array('%language' => $link['language']->native, $link['language']->language);

mert ez ilyet irna ki:
"Read this article in English", "Olvassa el a cikket magyar nyelven"
0
0
Laza képe

Szia!
Sajnos valahol szintaxis hiba lesz, amit nem tudok orvosolni.
Amit észrevettem (talán), hogy a $lang_code az $langcode, de ez sem segít.
(Természetesen a SMINKNEV-et átírtam :) )

0
0
Pasqualle képe

mindket kodbol hianyzik egy zaro zarojel

function SMINKNEV_translation_link_alter(&$links, $path) {
  foreach ($links as $lang_code => $link) {
    $links[$lang_code]['title'] = t('Read this article in %language', array('%language' => $link['language']->native), $link['language']->language);
  }
}
0
0
Laza képe

Most nincs error, de hatástalan sajnos. Cache törlés volt.

0
0
Pasqualle képe

admin/build/themes oldalon mentes

ird bele a fuggveny elso soraba, hogy
drupal_set_message('teszt');
igy ha megjelenik az uzenet akkor tudod, hogy lefutott a fuggveny..

0
0
Laza képe

A téma template.phpjának végére pakoltam...

/**
* Altering language links
*/
 
function greenNblack_translation_link_alter(&$links, $path) {
drupal_set_message('teszt');
  foreach ($links as $lang_code => $link) {
    $links[$lang_code]['title'] = t('Read this article in %language', array('%language' => $link['language']->native), $link['language']->language);
  }
}

Viszont ezt: drupal_set_message('teszt'); beletettem egy biztosan lefutó függvénybe (egyéb dolgait módosítottam, és módosult), azonban ott sem csinál semmit.

0
0
Pasqualle képe

ok, a problema az lesz, hogy a template.php fajlban csak egyetlen hook-ot lehet megvalositani ami a hook_theme(). Minden mas hook megvalositashoz modult kell letrehozni..
hogy en ezt nem tudtam..

tehat probald meg egy sajat kis szimpla modulban, egyetlen MUDULNEV_translation_link_alter funkcioval..

0
0
Laza képe

Más lesz a gond, mégis lefut...
Csak a nyelv nevét módosítja... Tehát pl. amikor a menüből ki akarom választani, hogy egy menüpont milyen nyelvű, ott nem English van, hanem Read it in English... Máshol nem láttam módosulni.
Szóval valami mást kell átírni...

0
0
Pasqualle képe

igaz, az a nyelvvalaszto blokkban levo linkekre vonatkozo _alter

a node linkekre ez kell:

/**
 * Implementation of hook_link_alter().
 *
 * Alter language links.
 */
function MODULNEV_link_alter(&$links, $node) {
  if (!empty($node->tnid) && module_exists('translation')) {
    $translations = translation_node_get_translations($node->tnid);
    foreach ($translations as $langcode => $translation) {
      $index = 'node_translation_'. $langcode;
      if (!empty($links[$index])) {
        // Change link title.
        $links[$index]['title'] = t('Read this article in %language', array('%language' => $links[$index]['language']->native), $links[$index]['language']->language);
 
        // Show node title as a tooltip.
        $links[$index]['attributes']['title'] = check_plain($translations->title);
      }
    }
  }
}

ezt a kodot szinten nem probaltam ki.
0
0
Laza képe

Hálás köszönet, kiváló, kiváló! Ráadásul a modulírás alapjait is elsajátítottam :)

0
0
Pasqualle képe

a $translations->title helyett $translation->title kell, hogy a node cime megjelenjen..

0
0
Laza képe

Javítva :)

0
0