XLSX と CSV のファイル形式

ラウンドトリップ用ブックのスキーマ。カルチャごとに 1 シート、Daxlate が読み戻す列構成、行が取り込まれる条件を説明します。

最終更新:

Daxlate は翻訳を XLSX(ClosedXML 経由)または CSV(CsvHelper 経由)として エクスポートします。レポートのレイヤーを持つファイルはモデルレポート の 2 枚のシート(または .model.csv.report.csv の組)を書き出し、モデル だけのファイルはモデルのレイヤーのみを書き出します。このページではまずモデルの シートを詳しく説明し、そのあとレポートのシートを説明します。

モデルシートの構成 #

モデルのワークシート名は Model です(レイヤーが 1 つだけだった以前のビルド の書き出しでは Translations でした)。行の構成は次のとおりです。

内容
1セル A1 のスキーマバージョンの目印(Daxlate/1.0、斜体、グレー)
2ヘッダー行。太字、ベージュの背景
3 以降翻訳対象オブジェクトごとに 1 行

ヘッダー行は固定されるので、翻訳者がスクロールしても列名が見えたままです。 最初の 4 列も固定されるので、カルチャーの列を右へたどっても同一性を示す列が 見えたままになります。

#

まず固定の情報列が 4 つ並びます。

備考
Object IDインポート時の同一性キー。編集しないでください。
TypeTableColumnMeasureHierarchyLevel のいずれか。
Parent親オブジェクトの名前(例: メジャーが属するテーブル)。
Nameモデル内でのオブジェクト名(既定のカルチャーのキャプション)。

続いて、モデル内のカルチャーごとに 2 列が並びます。

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

モデルの既定のカルチャーの列には背景の網掛けが入り、どれが基準の列かがすぐに 分かります。

この 2 列のどちらが書き出されるかは、エクスポート時点のグリッドの表示 切り替えに従います。キャプションならキャプション列のみ、説明なら説明 列のみ、両方なら両方です。どのモードでも、説明がまだ無いものも含めて オブジェクトごとに 1 行が出力されます。

Object ID の規則 #

Daxlate は、オブジェクトの種類と修飾名から ID を組み立てます。

種類形式
テーブルt.{Name}t.Sales
c.{Table}.{Name}c.Sales.Revenue
メジャーm.{Table}.{Name}m.Sales.Total Revenue
階層h.{Table}.{Name}h.Date.Calendar
階層レベル{HierarchyId}.l{Ordinal}h.Date.Calendar.l1

モデル内でオブジェクトの名前を変えると ID も変わります。再インポート時、 未知の Object ID を持つ行はプレビューのダイアログで警告として示され、スキップ されます。インポートが黙って捨てることはありません。

スキーマバージョン #

XLSX のセル A1(または CSV の 1 行目のコメント)にスキーマバージョンが入ります。 読み込み側は、メジャーバージョンがより新しいファイルを明確な警告とともに拒否し、 目印が無いファイルは後方互換のため 1.0 として扱います。バージョン管理を入れる 前に書き出したファイルのためです。

現在の目印は Daxlate/1.0 です。列の追加はマイナー(新しい列は警告付きで無視 されます)、互換性を壊す変更(例: Object ID の規則の変更)はメジャーとして 上げます。

レポートシート #

レポートのレイヤーを持つファイルでは、Report という 2 枚目のシートが レポートキャンバスのテキスト(ビジュアルのタイトル、ヘッダー、ボタン、テキスト ボックス)を持ちます。こちらは横長で翻訳者に扱いやすい形です。テキスト要素 ごとに 1 行、言語ごとに Value ({culture}) の 1 列という構成で、モデルシートの キャプションと説明の組とは異なります。おかげで翻訳者は 1 行の中で 1 つの文字列の 全言語を埋められます。インポートは内容からモデルシートか、レポートシートか、 2 枚組のブックかを判別し、対応するレイヤーに適用します。

ディスク上では、レポートの翻訳はファイルの隣にファイル単位の伴走ファイル {file}.daxlate.csv として置かれます。Power BI が更新時に読む実働の CSV です。 モデルの翻訳は .pbit の中にあり、そのコピーはエクスポートから取得でき ます。レポートビジュアルを翻訳するを参照 してください。

CSV の構成 #

CSV は同じ列構成をカンマ区切りで使います。1 行目にはスキーマの目印がコメントと して入ります。

# 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,

Excel でダブルクリックして開けるよう、BOM 付き UTF-8 と CRLF の改行を使います。

空のセル #

空のセルは**「まだ翻訳していない」**という意味で、インポート時に手を付けずに 残されます。既存の翻訳を消すことはありません。これは XLIFF、gettext、主要な翻訳 プラットフォームと同じ挙動なので、途中まで埋めたファイルを返しても、翻訳者が まだ手を付けていない行が消えることはありません。インポートのプレビューには、 いくつの空セルを飛ばしたかが表示されます。翻訳を削除するには、グリッドで空に するか、カルチャーのドロップダウンから言語を外してください。再インポートの 全体の流れは Excel ラウンドトリップを参照して ください。