[GELÖST!] Wie kann ich den "Read More" Link meiner mehrsprachigen Seite anpassen?
Eingetragen von Crouchie (157)
am 21.10.2009 - 19:27 Uhr in
am 21.10.2009 - 19:27 Uhr in
Hallo zusammen,
meine node-xy.tpl.php sieht folgendermaßen aus:
<?php
// $Id: node.tpl.php,v 3.0.6.11 2008/11/10 19:00:00 hass Exp $
?>
<div id="node-<?php print $node->nid; ?>" class="node<?php if ($sticky) { print " sticky"; } ?><?php if (!$status) { print " node-unpublished"; } ?>">
<div class="clearfix">
<?php if ($page == 0): ?>
<h4><a href="<?php print $node_url ?>" title="<?php print $field_headline ?>"><?php print $text_link = $node->field_headline[0]['value'] ?></a></h4>
<?php endif; ?>
<?php print $picture ?>
<?php if ($terms || $submitted): ?>
<div class="meta">
<?php if ($submitted): ?>
<span class="submitted"><?php print $submitted ?></span>
<?php endif; ?>
<?php if ($terms): ?>
<div class="terms"><?php print $terms ?></div>
<?php endif;?>
</div>
<?php endif; ?>
<div class="content"><?php print $content ?></div>
</div>
<?php if (!$page) { ?>
<a href="<?php print $node_url ?>" class="node_view_more" title="Zum Artikel">Erfahren Sie mehr...</a>
<?php } else { print $links; } ?>
</div>
Es erscheint also immer schön "Erfahren Sie mehr..." statt dem standart "Read More". Nur wird unsere Seite nun mehrsprachig. Wie kann ich nun den übersetzten Seiten jetzt "Read More", "Per saperne di più", etc zuweisen?
Falls es hilft: Ich habe die Seite mit den Modulen i18n, internationalization und languageicons übersetzt. Diese scheinen den Link nicht zu beeinflussen.
Vielen Dank schon mal.
Gruß Crouchie
- Anmelden oder Registrieren um Kommentare zu schreiben
textranslation mit der drupal t() funktion
am 23.10.2009 - 14:36 Uhr
dein problem kannst du mit der drupal funktion t() für text-translation lösen
drupal api text translation
füge folgende zeilen in deine template.php datei ein:
[edit]update: es heist t("...")nicht t(...) (der fehler wurde im beispiel behoben)
function mytheme_preprocess_node(&$vars, $hook) {
$vars['mylink'] = '<a href="'.$node_url.'" class="node_view_more" title="Zum Artikel">'.t("Erfahren Sie mehr...").'</a>' ;
}
ersetze mytheme durch deinen theme name und node druch deinen spezielen node name (node-xlp).
und ersetze folgende zeile in deiner node.tpl.php
<a href="<?php print $node_url ?>" class="node_view_more" title="Zum Artikel">Erfahren Sie mehr...</a>
druch
<?php print $mylink; ?>
lösche jetzt den cache und der link wird angezeigt (admin/settings/performance)
jetzt kannst du den string "Erfahren Sie mehr..." unter (/admin/build/translate/search) suchen und mit deinem text in der belibigen sprache ersetzen
Hi Karl, erst mal vielen
am 22.10.2009 - 08:11 Uhr
Hi Karl,
erst mal vielen Dank. Dein Lösungsweg klingt logisch und einfach. Doch leider wird nach dem Ändern der template.php nur eine weiße Seite angezeigt.
function yaml_3col_standard_preprocess_node-587(&$vars, $hook) {
$vars['mylink'] = '<a href="'.$node_url.'" class="node_view_more" title="Zum Artikel">'.t(Erfahren Sie mehr...).'</a>' ;
}
Ich verstehe leider nicht was du mit
spezielen node name (node-xlp)
meinst. Könntest du das bitte noch mal beschreiben?
Gruß Crouchie
spezielen node name (node-xlp)
am 22.10.2009 - 13:54 Uhr
Hallo zusammen,
meine node-xy.tpl.php sieht folgendermaßen aus:
function mytheme_preprocess_node(&$vars, $hook) {
}
würde sich ja auf alle node typen deines themes auswirken
function yaml_3col_standard_preprocess_node-587(&$vars, $hook) {
}
meiner meinung nach müsste es genau so stimmen
(dumme frage aber hast du die zeile die mit $vars['mylink'] =... anfängt genauso übernommen oder in eine zeile geschrieben so das sie mit $vars['mylink'= anfängt und mit ; aufhört)
Zitat: würde sich ja auf
am 22.10.2009 - 14:53 Uhr
würde sich ja auf alle node typen deines themes auswirken
Es soll sich auf alle Nodes/Node Typen auswirken.
(dumme frage aber hast du die zeile die mit $vars['mylink'] =... anfängt genauso übernommen oder in eine zeile geschrieben so das sie mit $vars['mylink'= anfängt und mit ; aufhört)
Ich habe den Code genau so eingefügt wie du ihn gepostet hast. Also zeilenmäßig so:
function... {
$vars['mylink'] =... ;
}
fehlerteufel :(
am 22.10.2009 - 21:37 Uhr
da hat sich bei mir der fehlerteufel eingeschlichen und zwar im t() natürlich heist es t("")
function mytheme_preprocess_node(&$vars, $hook) {
$vars['mylink'] = '<a href="'.$node_url.'" class="node_view_more" title="Zum Artikel">' . t("Erfahren Sie mehr") . '</a>' ;
}
Ja super, hat geklappt,
am 23.10.2009 - 08:10 Uhr
Ja super, hat geklappt, vielen Dank für deine Hilfe :)
PS an alle die das Problem auch haben: Nach dem Upload gleich erst ma die update.php ausführen! Sonst wundert Ihr euch erst ma ne viertel Stunde warum die Zeichenkette immer noch net gefunden wird, bis ihr auf die Idee kommt ;)
Gruß Crouchie
Schade. Der Tip funktioniert
am 24.07.2012 - 16:39 Uhr
Schade. Der Tip funktioniert in Drupal 7 nicht mehr. Sobald ich in der node.tpl.php auf so eine benutzerdefinierte Variable zugreifen will, liefert Drupal nichts mehr aus (weiße Seite).
Geh einfach zu Oberfläche
am 25.07.2012 - 08:55 Uhr
Geh einfach zu Oberfläche übersetzen ( admin/config/regional/translate/translate ), gib bei "Zeichenkette enthält" read more ein. Dann die unten erscheinende Zeichenkette bearbeiten und die gewünschten Übersetzungen eintragen.
Gruß Crouchie