翻訳のサポート
非公式翻訳 (Unofficial translation). これはデータパッケージスタンダードの有志による日本語訳です。 正典は英語原典 datapackage.org 。未訳の箇所は英語の原文を参照してください。
| Authors | Paul Walsh |
|---|
言語サポートの一般的なパターン、および Frictionless Data ディスクリプタ (descriptor) におけるメタデータ翻訳の明示的なサポートを踏まえると、ソースデータにおける翻訳もサポートできることが望ましい。
これについては現在 2 つのパターンが議論されている。どちらのパターンも、Frictionless Data に特に結びついているわけではない実世界の実装に由来する。
一方のパターンは、ソースデータとともにインラインで翻訳を提供することを示唆しており、フィールドの命名において翻訳を表すために @ 記号を予約する。
もう一方は、ディスクリプタの data で記述された「ソース」ファイルと同じ場所に配置される、追加の翻訳ソースを保存するためのパターンを記述する。
実装
現時点で Frictionless Data のコアライブラリにこのパターンの既知の実装はない。
仕様
インライン
翻訳にアクセスするために列の命名規則を使用する。
表形式リソースのディスクリプタは、翻訳されたフィールド名のために {field_name}@{lang_code} 構文を用いて翻訳をサポートする。lang_code は、リソースに適用される languages 配列に存在しなければならない (MUST)。
@ 記号を持つフィールドは、別のデータフィールドのための翻訳フィールドでなければならず (MUST)、{field_name}@{lang_code} パターンに従って解析可能でなければならない (MUST)。
対応する field を持たない翻訳フィールドがデータ内に見つかった場合(例: title@es はあるが title がない)、その翻訳フィールドは無視されるべきである (SHOULD)。
適用される languages 配列で宣言されて いない lang_code を使用する翻訳フィールドがデータ内に見つかった場合、その翻訳フィールドは無視されるべきである (SHOULD)。
翻訳フィールドは、スキーマの fields 配列に記述されてはならない (MUST NOT)。
翻訳フィールドは、それが翻訳する対象フィールドの type、format、constraints に一致しなければならない (MUST)。ただし 1 つだけ例外がある。翻訳フィールドは決して必須ではないため、翻訳フィールドの constraints.required は常に false である。
同じ場所に配置された翻訳ソース
翻訳にアクセスするためにファイル保存の規則を使用する。
@jheeffer によって寄稿される予定。
- ローカルおよびリモートのリソースを扱えなければならない
- 翻訳ファイルにおける翻訳のキー/値パターンについて明示的でなければならない
# localdata/file1.csvdata/lang/file1-en.csvdata/lang/file1-es.csv
# remotehttp://example/com/data/file2.csvhttp://example/com/data/lang/file2-en.csvhttp://example/com/data/lang/file2-es.csv