l20n が標準の HTML 要素のデフォルト属性にのみ適用されるという問題が発生しています。
私の場合、JSON 形式で翻訳を処理しようとしています。私のダミーデータは次のとおりです。
{
"test": {
"attrs": {
"title": "my_title_value",
"custom": "my_custom_value",
"placeholder": "my_placeholder_value"
}
}
}
私のテスト HMTL は次のとおりです。
<input type="text" data-l10n-id="test" title="" custom="" placeholder="" />
ただし、ブラウザは次の HTML を生成します。
<input type="text" data-l10n-id="test" title="my_title_value" custom="" placeholder="my_placeholder_value">
属性の順序と属性名のさまざまな組み合わせを試してみましたが、l20n によってローカライズされているのは、各要素タイプに適切なデフォルトの HTML 属性だけのようです。
この問題は、"title" などの標準 HTML 属性がカスタム要素内で使用されている場合にも明らかですが、l20n は標準要素の標準属性が<content>
カスタム要素のタグ内に配置されている場合に処理できます。
属性の処理に関する l20n のドキュメントはあまり広範ではないようです。これまでのところ、Stack Overflow や Google で回答を検索しても無駄であることが判明しており、Mozilla は独自のディスカッション リストとバグ トラッカーをホストしており、一般の人にはあまりアクセスできないようです。
l20n プロジェクトは流動的な状態にあるようで、私が使用しているバージョン (3.0.5) の ES5 と互換性があると思われる webcompat/l20n.js は、Array.from(); の使用のために Polyfill を必要とします。さらに、例と学習リソースは、フレームワークの使用方法と完全に一致していないようです。ソース コードは完全に文書化されていませんが、それにもかかわらず、フレームワークについて私がこれまでに得た理解のほとんどは、そこを見ることで得られました。コード内に属性名のフィルタリングが見られないため、この問題は、l20n がデータ属性をパスする前に、要素 (およびその属性) をブラウザーに登録する必要があることが原因であると思われます。
助けていただける方、よろしくお願いします。