Übersetzung von Blockinhalten

Drupals i18n-Modul kann Blockinhalte übersetzen.

Um Blöcke in verschiedenen Sprachen anzuzeigen, können Sie eine dieser Vorgehensweisen verwenden:

  1. Einen verschiedenen Block für jede Sprache erstellen.
  2. 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.

Block übersetzbar

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

einen Block erstellen

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.

Block an der rechten Seitenleiste

Was jetzt angezeigt wird als:

Block auf einer Homepage

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

Block nicht übersetzt.

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.

Blocksuche

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

Eingabe der Blockübersetzung

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.

 

Block auf Spanisch übersetzt

 

 

 

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