Reply to comment

Blockinhalte pro Sprache oder mittels String-Übersetzung übersetzen?

Bei der Erstellung von ICanLocalize Übersetzer haben wir die eine oder andere Sache über die Übersetzung von Drupal-Blöcken gelernt.

Wenn Ihre mehrsprachige Drupal-Seite Blöcke enthält, gibt es zwei mögliche Herangehensweisen:

  1. Einzelne Blöcke pro Sprache
  2. Einen Block für alle Sprachen, der mit Hilfe von String-Übersetzung übersetzt wird

 

Methode 1: Einzelne Blöcke pro Sprache

Drupal-Knoten werden pro Sprache erstellt. Jeder Knoten enthält Inhalte in einer einzigen Sprache, wobei das 18in-Modul sie als Übersetzungsgruppen miteinander verbindet.

Es erscheint nur logisch, bei Blöcken auf dieselbe Weise vorzugehen. Was Sie nun machen könnten, ist mehrere Blöcke zu erstellen, jedem seine Sprache zuzuordnen und ihn für die Knoten in dieser Sprache zu aktivieren.

Der Nachteil dieser Vorgehensweise ist, dass Blöcke dupliziert werden und Drupal keine Funktion für die Synchronisierung von Block-Übersetzungen anbietet. Im Gegensatz zu Knoten, für welche das i18n-Modul Sprachgruppierung anbietet und die Synchronisierung des Inhalts einfach macht, ist die Übersetzung von Blöcken ein manueller Vorgang.

Wenn Sie pro Sprache verschiedene Versionen desselben Blocks erstellen, müssen Sie diese selbst verwalten, ohne viel Hilfe von i18n.

Vorteile:

  1. Jeder Block in jeder Sprache ist unabhängig, sodass Sie volle Kontrolle darüber haben, wie der Block verwendet wird.

Nachteile:

  1. Die Anzahl der zu verwaltenden Blöcke ist größer. Wenn Sie 7 Originalblöcke haben und 5 Sprachen, müssen Sie am Ende insgesamt 7x5 = 35 Blöcke verwalten.

 

Methode 2: Einen Block für alle Sprachen, der mit Hilfe von String-Übersetzung übersetzt wird

Sie werden eine einzelne Version jedes Blocks erstellen, der in allen Sprachen angezeigt werden. Die Inhalte der Blöcke werden mit Hilfe von Drupals String-Übersetzungsfunktion übersetzt.

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 verfügbar ist. Wenn sie verfügbar ist, wird die Übersetzung angezeigt, ansonsten erscheint der Originaltext.

Um diese Methode zu verwenden, stellen Sie die Blocksprache auf „Alle Sprachen (Übersetzbar)" ein, während Sie einen Block erstellen oder editieren. Verwenden Sie dann die Übersetzungsoberfläche, um nach dem Blocktext zu suchen und den übersetzen Text zur Verfügung zu stellen. Sobald Sie die Übersetzung eingegeben haben, wird Drupal sie automatisch anstelle des Originals anzeigen.

Block auf einer Startseite

Ins Spanische übersetzter Block

Wenn Sie Blöcke so eingestellt haben, dass Sie für bestimmte Knoten angezeigt werden, müssen Sie die übersetzten Knoten zur Knotenliste auf der „Seite bestimmter Sichtbarkeitseinstellungen" hinzufügen, wenn Sie einen Block editieren. Wenn Sie möchten, dass ein Block nur auf der Startseite angezeigt wird (sagen wir Knoten/23), dann müssen Sie den übersetzten Knoten, der zum Beispiel Knoten/56 sein könnte, zur Anzeigeliste hinzufügen.

Die Knotenliste zur Anzeige des Blocks wäre also:

  • Knoten/23 (der englische Knoten)
  • Knoten/56 (die Übersetzung für Knoten/23)

Blöcke müssen nicht aus reinem Text bestehen, in ihnen kann HTML und PHP enthalten sein. Sie können Links zu anderen Inhalten enthalten. Bei der Übersetzung dieser Inhalte muss sorgfältig vorgegangen werden, um sicher zu stellen, dass die Links auf die übersetzten Inhalte verweisen, sofern diese verfügbar sind.

Vorteile:

  1. Sie müssen sich nur mit einem Block befassen.
  2. Die Verwaltung der Seiten eines Blocks, welche angezeigt werden sollen, ist einfacher.

Nachteile:

  1. Die voreingestellte Sprache muss Englisch sein und der Original-Blocktext muss auf Englisch sein. Drupal lokalisiert diese Strings mit der t()-Funktion, die immer dann aufgerufen werden soll, wenn ein Modul einen englischen Text-String ausgibt.
  2. Wenn keine String-Übersetzungen geliefert werden, wird vielleicht der unübersetzte Block angezeigt.
  3. Die Übersetzung komplizierter Blöcke ist schwieriger. Drupals String-Lokalisierung macht das Editieren von HTML kompliziert.

 

Wie ICanLocalize Übersetzer sich um Block-Übersetzungen kümmert

Für ICanLocalize Übersetzer haben wir uns entschieden, Blöcke mit Hilfe der String-Lokalisierung zu übersetzen. Diese Herangehensweise ist etwas kompliziert, wenn sie manuell ausgeführt wird, aber da sich das Modul um alles kümmert, bleibt die gesamte Komplexität vorm Benutzer verborgen.

Dies macht das Modul:

  • Der Titel und der Textkörper werden an unseren Server versendet und dann an menschliche Übersetzer. Anschließend werden die zurück erhaltenen Übersetzungen automatisch zu den String-Übersetzungen hinzugefügt.
  • Übersetzte Knoten werden zu der Liste der „Seite bestimmter Sichtbarkeitseinstellungen" hinzugefügt, sodass der Block je nach Bedarf bei den verschiedenen übersetzten Knoten sichtbar oder verborgen ist.
  • Übersetzte Knoten werden auch zu der „Seite bestimmter Sichtbarkeitseinstellungen" hinzugefügt, wenn neue Übersetzungen verfügbar werden.
  • Links zu Inhalten werden auch verändert, sodass sie auf den übersetzten Inhalt verlinken, wenn dieser verfügbar ist.
  • Änderungen am Ausgangsblock werden überwacht, sodass die Übersetzungen auf dem neuesten Stand sind.
  • Blocks werden auf dem Übersetzungs-Dashboard genau wie jede andere Inhaltsart angezeigt.

Das bedeutet, dass der Nutzer Blöcke genau wie Knoten betrachten kann. Benutzer müssen nur die Inhalte in der Originalsprache verwalten und ICanLocalize Übersetzer kümmert sich um alles Weitere, das für die Erstellung und Pflege der Übersetzungen nötig ist.

Das Übersetzungs-Dashboard macht es auch einfach, auf einen Blick eine Übersicht über alle Inhalte, einschließlich Knoten und Blöcke zu erhalten, die übersetzt werden müssen, und alles gleichzeitig einzusenden.

Reply

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options