XLSX- und CSV-Dateiformat

Das Schema der Roundtrip-Arbeitsmappe: ein Blatt je Kultur, der Spaltenaufbau, den Daxlate zurückliest, und wann eine Zeile importiert wird.

Zuletzt aktualisiert:

Daxlate exportiert Übersetzungen entweder als XLSX (über ClosedXML) oder als CSV (über CsvHelper). Eine Datei mit Berichtsebene exportiert zwei Blätter, Modell und Bericht (oder das Paar .model.csv und .report.csv); eine Datei ohne Berichtsebene exportiert nur die Modellebene. Diese Seite beschreibt zuerst das Modellblatt im Detail, dann das Berichtsblatt.

Aufbau des Modellblatts #

Das Arbeitsblatt des Modells heißt Model (Exporte älterer Builds mit nur einer Ebene nannten es Translations). Seine Zeilen:

ZeileInhalt
1Markierung der Schemaversion in Zelle A1 (Daxlate/1.0, kursiv, grau)
2Kopfzeile, fett, mit beigem Hintergrund
3+Eine Zeile pro übersetzbarem Objekt

Die Kopfzeile ist fixiert, damit die Spaltentitel beim Scrollen sichtbar bleiben. Auch die ersten vier Spalten sind fixiert, damit die Identitätsspalten sichtbar bleiben, während man nach rechts über die Kulturspalten scrollt.

Spalten #

Zuerst kommen vier feste Informationsspalten:

SpalteHinweise
Object IDIdentitätsschlüssel beim Import. Nicht bearbeiten.
TypeEiner von Table, Column, Measure, Hierarchy, Level.
ParentName des übergeordneten Objekts (z. B. die Tabelle, in der eine Kennzahl liegt).
NameDer Name des Objekts im Modell (die Beschriftung der Standardkultur).

Danach für jede Kultur im Modell zwei Spalten:

Caption ({culture})    Description ({culture})

Die Spalten der Standardkultur des Modells erhalten einen schattierten Hintergrund, damit klar ist, welche Spalte die maßgebliche Quelle ist.

Welche der beiden Spalten geschrieben werden, folgt dem ANSICHT-Schalter des Rasters zum Zeitpunkt des Exports: Beschriftung schreibt nur Beschriftungsspalten, Beschreibung nur Beschreibungsspalten, Beides schreibt beide. Jedes Objekt bekommt in jedem Modus eine Zeile, auch solche ohne Beschreibung.

Konvention für Object ID #

Daxlate setzt IDs aus der Art des Objekts und seinem qualifizierten Namen zusammen:

ArtFormBeispiel
Tabellet.{Name}t.Sales
Spaltec.{Table}.{Name}c.Sales.Revenue
Kennzahlm.{Table}.{Name}m.Sales.Total Revenue
Hierarchieh.{Table}.{Name}h.Date.Calendar
Hierarchieebene{HierarchyId}.l{Ordinal}h.Date.Calendar.l1

Ein Objekt im Modell umzubenennen ändert seine ID. Beim Reimport werden Zeilen mit unbekannter Object ID im Vorschaudialog als Warnung angezeigt und übersprungen; der Import verwirft sie nicht stillschweigend.

Schemaversion #

Zelle A1 der XLSX-Datei (oder die erste Kommentarzeile der CSV-Datei) trägt die Schemaversion. Der Leser lehnt Dateien aus einer neueren Hauptversion mit einer klaren Warnung ab und behandelt fehlende Markierungen als 1.0, damit Exporte von vor der Versionierung weiter funktionieren.

Die aktuelle Markierung ist Daxlate/1.0. Erhöhungen sind minor bei zusätzlichen Spalten (neue Spalten werden mit einer Warnung ignoriert) und major bei brechenden Änderungen (z. B. einer anderen Konvention für Object ID).

Berichtsblatt #

Bei einer Datei mit Berichtsebene trägt ein zweites Blatt namens Report den Text des Berichtscanvas (Visualtitel, Kopfzeilen, Schaltflächen, Textfelder). Es nutzt eine breite, übersetzerfreundliche Form: eine Zeile pro Textelement mit einer einzigen Spalte Value ({culture}) je Sprache, statt des Paars aus Beschriftung und Beschreibung im Modellblatt, sodass ein Übersetzer alle Sprachen einer Zeichenfolge in einer Zeile ausfüllt. Der Import erkennt am Inhalt, ob eine Datei ein Modellblatt, ein Berichtsblatt oder eine Arbeitsmappe mit zwei Blättern ist, und wendet die passende Ebene an.

Auf der Festplatte liegen Berichtsübersetzungen als Begleitdatei pro Datei neben der Datei, benannt {datei}.daxlate.csv, die funktionale CSV-Datei, die Power BI bei der Aktualisierung liest. Die Modellübersetzungen liegen in der .pbit-Datei; eine Kopie davon erhalten Sie über Export. Siehe Berichtsvisuals übersetzen.

CSV-Aufbau #

CSV nutzt denselben Spaltenaufbau, kommagetrennt. Zeile 1 enthält die Schemamarkierung als Kommentar:

# Daxlate/1.0
Object ID,Type,Parent,Name,Caption (en-US),Description (en-US),Caption (fr-FR),Description (fr-FR)
t.Sales,Table,,Sales,Sales,,Ventes,
c.Sales.Revenue,Column,Sales,Revenue,Revenue,,Chiffre d'affaires,

UTF-8 mit BOM, CRLF-Zeilenenden, damit sich die Datei in Excel per Doppelklick öffnen lässt.

Leere Zellen #

Eine leere Zelle bedeutet “noch nicht übersetzt” und bleibt beim Import unangetastet; sie löscht keine vorhandene Übersetzung. Das entspricht XLIFF, gettext und den gängigen Übersetzungsplattformen, sodass die Rückgabe einer halbfertigen Datei nie die Zeilen löscht, zu denen ein Übersetzer noch nicht gekommen ist. Die Importvorschau meldet, wie viele Leerzellen übersprungen wurden. Um eine Übersetzung zu entfernen, leeren Sie sie im Raster oder entfernen Sie die Sprache über die Dropdownliste Kulturen. Den vollständigen Ablauf des Reimports finden Sie unter Excel-Roundtrip.