Übersetzung von Blockinhalten
Drupals i18n-Modul kann Blockinhalte übersetzen.
Um Blöcke in verschiedenen Sprachen anzuzeigen, können Sie eine dieser Vorgehensweisen verwenden:
- Einen verschiedenen Block für jede Sprache erstellen.
- Lokalisierung von Strings verwenden
Wenn Sie einen Block erstellen, können Sie sich entscheiden, diesem einer bestimmten Sprache zuzuordnen oder allen Sprachen und die String-Übersetzung zu benutzen.
Methode 1 - verschiedene Blöcke pro Sprache
Wählen Sie eine einzelne Sprache für den Block und geben Sie an, welche Knoten für diesen angezeigt werden sollen. Sie sollten nur Knoten auswählen, die in derselben Sprache wie der Block geschrieben sind.
Erstellen Sie dann ähnliche Blöcke in anderen Sprachen und aktivieren Sie diese für die Knoten in diesen Sprachen.
Dieser Vorgang wird Blöcke in verschiedenen Sprachen komplett voneinander trennen. Sie können Übersetzungen voneinander sein, doch sie können auch gänzlich unabhängige Inhalte haben. Drupal und i18n bieten keinerlei Funktionen zur Synchronisation zwischen Blockinhalten in verschiedenen Sprachen an.
Methode 2 - Lokalisierung von Strings
Drupal kann Strings aus dem Englischen in andere Sprachen übersetzen (derzeit gibt es keine Lösung für die Übersetzung aus einer anderen Sprache als Englisch). Sie können Drupal sagen, den Titel und die Inhalte der Blöcke wie Strings zu behandeln und mit Hilfe von Drupals String-Übersetzungsfunktion nach Übersetzungen zu suchen.
Wenn ein Block in einer anderen Sprache angezeigt wird, wird Drupal den Titel und den Textkörper des Blocks nachschlagen, um herauszufinden, ob eine String-Übersetzung für den Titel und den Körper besteht. Wenn diese verfügbar ist, wird die Übersetzung angezeigt, ansonsten wird der Originaltext angezeigt.
Um diese Methode zu benutzen, stellen Sie die Blocksprache auf „All languages (Translatable)" [„Alle Sprachen (Übersetzbar)" ] ein, während Sie einen Block erstellen oder editieren.

BEACHTEN SIE: Ein wichtiger Punkt bei der Verwendung dieser Methode ist, dass die voreingestellte Sprache Englisch sein sollte. Drupal lokalisiert diese Strings mit der t()-Funktion, die immer dann aufgerufen werden soll, wenn ein Modul einen englischen Textstring ausgibt.
Hier ist ein Beispiel. Wir werden einen neuen Block erstellen und seine Strings übersetzen.
Erstellen Sie den Block und stellen Sie „Alle Sprachen (Übersetzbar") ein

Auswählen, wo der Block angezeigt wird
Wir werden diesen Block an der rechten Seitenleiste anzeigen. Die Anzeigeposition ist eigentlich egal und der Block muss nicht angezeigt werden, um übersetzt zu werden.

Was jetzt angezeigt wird als:

Bei Umschaltung auf Spanisch wird der Block sichtbar, aber ohne Übersetzung:

Manuelle Eingabe der Übersetzung für Blockinhalte
Die Strings für den Titel und den Textkörper werden mit Hilfe der Übersetzungsoberfläche übersetzt.
Gehen Sie auf /admin/build/translate/search und suchen Sie nach den im Block verwendeten Strings.

Klicken Sie auf „Editieren" und geben Sie die Übersetzung ein.

Wiederholen Sie dies für den Textkörper des Blocks und suchen Sie nach Text im Textkörper.
Sie sollten jetzt einen vollständig übersetzten Block auf der spanischen Homepage erhalten.

Übersetzung von Blöcken mit ICanLocalize Translator
ICanLocalize Translator übernimmt Blockübersetzungen mit Drupals String-Übersetzungsfunkion.
Auch wenn interne Knoten und Blöcke kompliziert aufgebaut sind, lässt ICanLocalize Translator deren Übersetzung gleich einfach erscheinen.
Blöcke werden auf dem Übersetzungs-Dashboard wie alle anderen Inhaltsarten erscheinen. Hinter den Kulissen wird ICanLocalize Translator die von den Drupal-Blöcken erstellten Strings abholen und die übersetzten Inhalte als String-Übersetzungen zurück liefern. Benutzer müssen sich nicht manuell darum kümmern, da das Modul alles automatisch erledigt.
