uxzentrisch erörtert:
Funktionstexte aus Axure exportieren

Mehrsprachige Projekte bringen immer zeitaufwändige Übersetzungsprozesse mit sich. Mit Hilfe von Axure kann man nicht nur die Übersetzung mit der Entwicklung parallelisieren, sondern dabei gleichzeitig auch die Qualität und den Aufwand für Übersetzer und Entwickler minimieren.

Dieser Artikel erklärt im Detail, wie wir diesen Prozess mit Hilfe von Axure und Excel-Makros abgebildet haben.

Workflow zu Beginn definieren

Im letzten Projekt habe ich an einem Konzept mitgearbeitet, welches in mehreren Sprachen umgesetzt wird.

Nicht nur die Inhalte werden mehrsprachig sein, sondern auch die GUI Elemente. Wir haben uns schon früh Gedanken gemacht, Funktionstexte zu erfassen und so aufzubereiten, dass sie von Textern übersetzt und von Entwicklern implementiert werden können.

Die Funktionstexte schon auf Wireframe Ebene zu spezifizieren ist deshalb sinnvoll, weil dann schon Texter vor bzw. während der Entwicklung die Funktionstexte in verschiedenen Sprachen erstellen können.

Anforderungen an unseren Workflow

Bei der Erstellung unseres Arbeitsablaufes sind wir von diesen Anforderungen für Texter und Entwickler ausgegagen:

Was die Texter benötigen: Ein Dokument mit den Funktionstexten, eventuellen Zeichenbeschränkungen sowie den Kontext, in dem die Texte verwendet werden. Alle drei Informationen können wir aus Axure heraus liefern und vor allem der Bezug zum Wireframe ist ein Service, den Axure sehr gut und mit wenig Aufwand bereit stellt.

Was die Entwickler benötigen: Überall dort, wo Funktionstexte im GUI stehen, muss jeweils eine eindeutige Text-ID angegeben sein, über die die Funktionstexte aus einer Datenquelle bezogen werden können. Die Funktionstexte sollten im besten Fall so vorliegen, dass sie automatisiert verarbeitet werden können.

Zusammengefasst: Daraus leiten sich diese Anforderungen für die Konzept- und Workflowerstellung ab.

  • Jeder Funktionstext darf nur einmal in der Übersetzungs-Tabelle vorkommen, auch wenn er mehrfach im GUI verwendet wird.
  • Jeder Funktionstext muss einer eindeutigen ID zugewiesen werden.
  • Eine eventuelle Zeichenbegrenzung muss erfasst werden.
  • Die Funktionstexte müssen eindeutig im Wireframe wiederzufinden sein.

Die Funktionstexte Excel-Datei

In Absprache mit den Textern und Entwicklern, haben wir uns auf eine Excel Tabelle geeinigt, in der die Funktionstexte übersetzt werden.

Der Prozess: Aus Axure heraus generieren wir die CSV-Datei, auf deren Basis die Excel-Tabelle erstellt wird. Unsere Texter ergänzen in Excel weitere Informationen in zusätzlichen Spalten. Zum Schluss exportieren unsere Entwickler die Excel-Datei nach ihren Wünschen für die technische Weiterverarbeitung/den Import.

Schritt für Schritt, unser Workflow im Detail

In dieser Anleitung zeige ich, wie wir unsere Axure Wireframes so aufbereiten, dass Funktionstexte in eine Excel Tabelle exportiert werden können.

Die Anleitung eignet sich für Axure 5.6 und 6 gleichmaßen, da sich die Programme in diesem Bereich gleichen.

Schritt 1: Annotationen in Axure anlegen

So sehen unsere Axure-Annotationsfelder aus:

Label:

Im Label gebe ich eine eindeutige ID an, die einer einfachen Namenskonvention folgt. Beispiele: »ab-001«, »ab-002«

  1. Jedes Funktionstext-Label beginnt mit den gleichen Zeichen bspw. »ab«. Unser Script filtert später alle anderen Labels raus.
  2. Eine fortlaufende Zahl wie »001«.
  3. Tip: die Labels sollten nicht zu lange sein.

Functional Text Lenght Restriction:

In »Functional Text Lenght Restriction« wird die Anzahl an maximalen Zeichen angegeben. Dieser Richtwert hilft den Übersetzern, um unnötige Korrekturschleifen zu minimieren.

Functional Text [DE]:

Hier steht der eigentliche Funktionstext, den ich schon im Wireframe ausfülle. Natürlich kann er später in Excel noch einmal korrigiert werden.

Tooltip [DE]:

Unter Tooltip sind die Texte zu verstehen, die als title-Atribut eines Links angegeben werden. Auch die Tooltips habe ich schon im Wireframe ausgefüllt, und kann ggf. vom Übersetzer geändert werden.

Schritt 2 Export der Annotations

Nachdem überall eine eindeutige ID, Funktionstext und ggf. Tooltips angeben wurde, exportiere ich aus Axure eine CVS.

Dazu wähle ich im Menü »Generate« → »More Generators and Configurations« (F8). Danach öffnet sich ein weiteres Fenster in dem ich »CSV Report 1« sowie »Generate« klicke.

axure generator configuration

 

Konfiguration des Exports:

Unter »Pages« wähle ich nur die Seiten aus, deren Funktionstexte ich auch benötige.

Unter Annotations wähle ich folgende Annotations aus. Die Annotations sollten genau in dieser Reihenfolge erfolgen, damit später mit dem unten genannten Makro die Excel Tabelle nach Duplikaten durchsucht werden kann.

 

Der erste Schritt ist geschafft. Leider ist die von Axure generierte CSV noch nicht für unsere Texter und Entwickler geeignet. Dazu müssen zuerst noch die Tabelle bereinigt und nach Duplikaten durchsucht  werden. Dafür haben wir uns Excel-Makros geschrieben.

Schritt 3 Nachbereitung der Excel Tabelle

Sofern die Tabelle wie im Beispiel exportiert wurde, kann dieses Makro verwendet werden und muss nur an einer Stelle angepasst werden.

Dass Makro »Remove«

Das Makro entfernt alle Zeilen, die im Label nicht mit der Namenskonvention übereinstimmt. Es werden die ersten 2 Buchstaben im Label-Namen überprüft. Stimmt dies mit der Vorgabe nicht überein, wird die Zeile gelöscht. Im Makro muss der rot markierte Text  durch den eigenen ersetzt werden. Reichen Zwei Zeichen nicht aus und man möchte mehr Zeichen als Vorgabe angeben, muss auch die rote Zahl angepasst werden. Diese muss die Anzahl der Zeichen der Vorgabe entsprechen.

Sub Remove()
On Error Resume Next
Dim Z As Integer
Sheets(«Tabelle1″).Activate
ActiveSheet.Unprotect = »Passwort«
Application.ScreenUpdating = False
For Z = 1000 To 2 Step -1
If Mid(Cells(Z, 3), 1, 2) <> »ab» Or Mid(Cells(Z, 3), 1, 2) = »ab« And Cells(Z, 5) = »« And Cells(Z, 6) = »« Then Rows(Z).Delete
Next Z
Application.ScreenUpdating = True
End Sub

 

Das Makro »Clean«

Das Makro »Clean« formatiert die Tabelle. Sprich formatiert die erste Zeile als Header und friert diese ein, Textspalten werden auf die nötige Breite angepasst.

Das Makro »Doppelte_Labels«

Das Makro »Doppelte_Label« durchsucht die Spalte nach doppelten Label-Namen und löscht die Duplikate.

Makro in Excel ausführen

Um das Makro in Excel auszuführen, wähle ich unter dem Reiter »Ansicht« den Punkt »Makros anzeigen« aus.

 

Es öffnet sich ein Pop Up. Dort gebe ich unter Makroname einen Namen an und drücke ich auf »erstellen«.

 

Nun füge ich das Makro ein, wähle »Main« aus und drücke den Play Button. Nun wird das Makro ausgeführt.

 

Zum Schluss können noch weitere Spalten je Sprache angelegt werden. Zum Beispiel Functional Text [EN], Tooltip Text [EN], Functional Text [FR], Tooltip Text [FR], etc.

Bezug zum Wireframe herstellen

Um einen leichteren Bezug zwischen der Excel Tabelle und dem HTML-Wireframe herzustellen, ist es sinnvoll die Label-Bezeichnung als Notiznamen zu verwenden.

Dazu wähle ich im Menü »Generate« → »Prototype« (F5). Danach öffnet sich ein weiteres Fenster in dem ich »Annotations«  auswähle. Dort setze ich ein Häckchen bei «Use Label as note« und klicke »Generate«.

 

Nun liegt uns eine saubere Excel Tabelle vor , die alle Funktionstexte enthält, mit der Texter und Entwickler gleichermaßen arbeiten können.

Habt ihr Erfahrungen mit anderen Vorgehensweisen, Funktionstexte zu erstellen?

 

 

4 Kommentare

Fabian vor 4 Jahren

Danke für den Tipp. Wie »merged« ihr neue Versionen von eurem Axure Dokument mit bestehenden Copybooks?

Nikolai Merk Autor vor 4 Jahren

Ein bestehendes Copybook gab es bei diesem Projekt nicht.

Eine interessante Frage. Hat schon jemand Erfahrung sammeln können, wie man in diesem Fall am besten vorgeht?

Florian Ammann vor 4 Jahren

Bei Funktionstexten natürlich etwas komplexe Angelegenheit. Ansonsten habe ich gute Erfahrung damit, das Copybook ab einem definierten Zeitpunkt von dem html Prototypen zu trennen und als führendes Dokument einzusetzen. Dafür sollte allerdings der funktionale Umfang abgenommen sein.

Trackbacks und Pingbacks