属性の「$ID/」接頭辞

IDMLの中のXMLファイルを見ていると、「$ID/」という接頭辞が付いた文字列があちこちに見られます。例えば、フォントの指定は、ストーリーファイルの中では、

<AppliedFont type="string">$ID/新ゴB</AppliedFont>

Fonts.xmlの中では、

<FontFamily Self="difb" Name="$ID/新ゴB">

というようになっています。この接頭辞にどういう意味があるのか調べてみました。

IDMLの要素や属性は、InDesignドキュメントのさまざまな設定値を表します。これら設定値を表す文字列のことをキー文字列(Key String)と呼びます。
日本語版のInDesignを使用している場合は、それらキー文字列は日本語で表されています。キー文字列がロケールに依存していると、例えば「英語版InDesignで作ったIDMLファイルは、日本語版のInDesignでは開けない」ということになりかねません。このロケール依存の問題を解決するために、キー文字列には「$ID/」という接頭辞を付けるというルールが設けられました。InDesignIDMLファイルを読み込むとき、「$ID/」という接頭辞が付いたキー文字列をローカライズされた文字列に置換します。