Mehrsprachige Panels / Blöcke
Eingetragen von thomy79 (72)
am 19.08.2008 - 12:36 Uhr in
am 19.08.2008 - 12:36 Uhr in
Hi. Ich nutze i18n, um eine mehrsprachige Site zu erstellen. Wie kann ich Blocküberschriften bzw. Blöcke mehrsprachig machen? Als Startseite habe ich ein 3-spaltiges Panel angelegt, welches 6 Blöcke anzeigt. Diese haben deutsche Überschriften. Wie kann ich diese nun länderspezifisch anpassen?
Da das Thema "brennt", wäre ich Euch für eine schnelle Rückantwort sehr dankbar!
- Anmelden oder Registrieren um Kommentare zu schreiben
mehrsprachige Blocktitel
am 19.08.2008 - 13:02 Uhr
Moin!
Wie kann ich Blocküberschriften bzw. Blöcke mehrsprachig machen?
Probier mal Folgendes: lege in dem Verzeichnis Deines Themes eine Template-Datei für Blöcke an (block.tpl.php)
<div id="block-<?php print $block->module .'-'. $block->delta; ?>" class="block block-<?php print $block->module ?>">
<?php if ($block->subject): ?>
<h2><?php print $block->subject ?></h2>
<?php endif;?>
<div class="content"><?php print $block->content ?></div>
</div>
Um den Titel jetzt übersetzen zu können, muss der Titel in die Funktion t() eingebettet werden:
<div id="block-<?php print $block->module .'-'. $block->delta; ?>" class="block block-<?php print $block->module ?>">
<?php if ($block->subject): ?>
<h2><?php print t($block->subject) ?></h2>
<?php endif;?>
<div class="content"><?php print $block->content ?></div>
</div>
Jetzt kannst Du den Titel übersetzen. Eigentlich müsste dann auch der richtige Titel für die entsprechende Sprache angezeigt werden.
Wenn das nicht funktioniert, bleibt Dir immer noch die Möglichkeit, den Block für jede Sprache inzeln zu erstellen und den Titel dementsprechend anzupassen. Dann setzt Du noch, wo der Block erscheinen soll ("/de/*" oder "/en/*") und fertig.
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Hi Stefan,
am 19.08.2008 - 15:44 Uhr
ich habe mal die Fkt. t() eingefügt. Leider kann ich noch keinen Effekt erkennen. Wo sollen die unterschiedlichen Block-Überschriften gepflegt werden? Unter Blöcke -> Block_XY -> Konfigurieren?
Danke erstmal und Gruß
Thomas
"Repetitio est mater studiorum."
locale
am 19.08.2008 - 15:50 Uhr
Sofern Du locale aktiviert hast, unter [admin/settings/locale/string/search]. Sonst schlägt die zweite Option zu :-)
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
sorry, dass ich nochmal nachhaken muss,
am 19.08.2008 - 16:27 Uhr
habe das mit dem ersten von sechs Blocks versucht, mit dem Ergebnis, das er nach der Übersetzung nur noch auf der Standardsprache (D) angezeigt wird, bei den drei restlichen Sprachen fehlt er. Hat jemand eine Ahnung woran das liegt?!
Grundsätzliche Verständnisfrage: Könnte man grundsätzlich alles über admin/settings/locale/string/search übersetzen und sich so die Übersetzung zB der Menüs sparen?
Sorry, aber ich bin absoluter newbie...
"Repetitio est mater studiorum."
locale
am 19.08.2008 - 16:41 Uhr
Grundsätzliche Verständnisfrage: Könnte man grundsätzlich alles über admin/settings/locale/string/search übersetzen und sich so die Übersetzung zB der Menüs sparen?
Leider nicht. Nur Texte, die in die Funktion t() eingebettet sind, sind mittels locale übersetzbar.
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Der Block erscheint nicht wieder,
am 20.08.2008 - 08:48 Uhr
obwohl ich die Übersetzungen gelöscht habe und die block.tpl.php wieder in den Ursprungszustand geändert habe. Hat hier jemand eine Idee? Wie sollte man vorgehen, wenn man ein Panel mit mehreren Blocks hat und dieses übersetzen will? Best-Practice?
Grüße
Thomas
"Repetitio est mater studiorum."
Problem erkannt...
am 20.08.2008 - 10:58 Uhr
Zunächst einmal vielen Dank Stefan für Deine schnelle Hilfe! Das funktioniert genau so, wie Du es beschrieben hast.
Mein Problem war folgendes: Ich habe einen Content-Type "News". Aus dem habe ich einen View mit Blockansicht gebastelt. Diesen Block habe ich dann in mein Panel eingebaut. Dann hatte ich die von Dir o.g. t()-Funktion in die block.tpl.php eingebaut. Nun erschien der Block nur noch in der Standardsprache (deutsch). Ursache: Die Inhalte des C.-Types "News" wurden von mir noch noch nicht übersetzt. Somit wird gar nichts angezeigt, auch keine in der Lokalisierung übersetzte Überschrift.
Da hätte ich auch früher draufkommen können, eben Wohl ein typischer Newbie-Fehler... Trotzdem macht Drupal Spaß! Unglaublich, was man damit allein mit HTML- und CSS-Kenntnissen machen kann...Drupal rockt gewaltig!
"Repetitio est mater studiorum."