ヘルプトピック
お問い合わせ
フィードバックがありますか? ヘルプページで回答が見つかりませんでしたか?
辞書の作成
目次
辞書の概要
辞書とは、検索および参照機能を有効にするための追加タグが追加された Kindle 電子書籍 (MOBI) のことです。辞書は、次の要件を満たしている必要があります。
- アルファベット順に並べられている単語や文書のリストのプライマリ インデックスが含まれている。単語の見出しを入力すると、探しているエントリーを選択することができ、リストで素早く単語の意味を検索することができる必要があります。
- 辞書であるという表記が記されている。辞書の入出力言語は正しく定義する必要があります。これにより、Kindle 端末がブック内ルックアップで辞書を使用できます。
たとえば、英語 (モノリンガル) 辞書では、入出力の両方の言語として英語を表記します。仏英辞書では、フランス語を入力言語、英語を出力言語として表記します。双方向の多言語辞書を作成するには (例: スペイン語からフランス語と、フランス語からスペイン語の辞書)、スペイン語からフランス語用の電子書籍を 1 冊とフランス語からスペイン語用の電子書籍を 1 冊、別々に 2 冊の電子書籍を作成する必要があります。
Kindle 辞書には、通常の Kindle 本に含まれるすべてのコンポーネントと同じものを含める必要があります。CSS には、OPF ファイルと HTML ファイルの両方がなければなりません。特に、各辞書には次のコンポーネントが必要です。
- 表紙の画像
- 著作権ページ
- 関連するすべての事項 (記号の説明、付録など)
- 言葉の定義 (これがファイルの大部分です)
現時点で、この形式はタイプセッティングの改善でサポートされていません。
メタデータのガイドライン
Kindle 辞書の OPF ファイルは、辞書用に特化されたメタデータ タグが <x-metadata> セクションに含まれていること以外は、他の Kindle 本の OPF ファイルと同様です。Kindle 辞書の OPF ファイルにあるこれらの追加タグは、辞書の原文言語と訳文言語を設定します。辞書に複数のインデックスが存在する場合、OPF ファイルもプライマリ検索インデックスの名前を指定します。
- <DictionaryInLanguage> 要素には、その辞書が使用できるようデザインされた本の言語を示す ISO 639-1 言語コードが含まれます。スペイン語からフランス語を検索する辞書を作成する場合、入力言語はスペイン語です。
- <DictionaryOutLanguage> 要素には、辞書から返される定義に使用される言語を示す ISO 639-1 言語コードが含まれます。スペイン語からフランス語を検索する辞書を作成する場合、出力言語はフランス語です。
- <DefaultLookupIndex> 要素は、辞書が別の電子書籍で使用されるとき、最初に開くインデックスを示しています。辞書に 1 つ以上のインデックスがある場合、デフォルトのインデックスを指定する必要があります。OPF ファイルの中にある <DefaultLookupIndex> タグで囲まれるインデックス名は、辞書のコンテンツにある <idx:entry> 要素の name 属性の値としても出現する必要があります (HTML の詳細を参照)。
たとえば、スペイン語/フランス語辞書では、入力言語コードは es、出力言語コードは fr、メイン インデックス名は Spanish のようになります。国コードの一覧を参照してください。
例: (2 か国語辞書のメタデータ)
<x-metadata> <DictionaryInLanguage>es</DictionaryInLanguage> <DictionaryOutLanguage>fr</DictionaryOutLanguage> <DefaultLookupIndex>Spanish</DefaultLookupIndex> ... </x-metadata> |
1 言語の辞書の場合、1 度目に入力言語を、2 度目はターゲット言語を特定するために、同じ言語コードを 2 度表示する必要があります。ソース言語およびターゲット言語の地域による異形を特定するために、ISO 639-1 コードに地域接尾辞が付けられることがあります。たとえば、en-gb はイギリス英語、en-us はアメリカ英語を意味しています。
例: (1 言語の辞書メタデータ、地域による異形)
<x-metadata> <DictionaryInLanguage>en-us</DictionaryInLanguage> <DictionaryOutLanguage>en-us</DictionaryOutLanguage> <DefaultLookupIndex>headword</DefaultLookupIndex> ... </x-metadata> |
テキストのガイドライン
ブック内ルックアップには、簡潔でクリーンなフォーマットが最もよく機能します。Amazon では、読書体験の質を高めるために、辞書のコンテンツとフォーマット機能をお勧めします。
- 見出し語 (定義されている単語) がエントリーの最初に表示され、周辺コンテンツとは区別されている (例: 独自の行、左揃え、太字等)。
- 個々の辞書項目には定義を含める (2 か国語辞書では翻訳も含める)。
- 水平罫線が各エントリーの間に表示されている。
- 各アルファベットの文字セクションを新規ページで始める。
- 画像の使用を避ける (画像使用の制限を参照)。
- 表の使用を避ける (表使用の制限を参照)。
- フォントの色、サイズ、活字書体を強制しない (テキスト ガイドラインを参照)。
辞書の基本 HTML
フォーマット
Kindle の辞書は KF8 ではなく、MOBI 7 フォーマットでなければなりません。そのため、辞書レイアウトには単一列フォーマットを使用する必要があります。複数列およびサイドバーは、MOBI 7 ではサポートされていません。フレームセット要素
辞書はすべて <body> 要素の最初のサブ要素として <mbp:frameset> を使用する必要があります。このフレームセット要素は辞書にある <idx:entry> 要素のすべてを含みます。
この <mbp:frameset> 要素のネームスペースは、
xmlns:mbp="https://kindlegen.s3.amazonaws.com/AmazonKindlePublishingGuidelines_JP.pdf" で、XHTML ドキュメントのルート <html> 要素で宣言する必要があります。
例:
<html xmlns:math="http://exslt.org/math" xmlns:svg="http://www.w3.org/2000/svg" xmlns:tl="https://kindlegen.s3.amazonaws.com/AmazonKindlePublishingGuidelines.pdf" xmlns:saxon="http://saxon.sf.net/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cx="https://kindlegen.s3.amazonaws.com/AmazonKindlePublishingGuidelines.pdf" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:mbp="https://kindlegen.s3.amazonaws.com/AmazonKindlePublishingGuidelines.pdf" xmlns:mmc="https://kindlegen.s3.amazonaws.com/AmazonKindlePublishingGuidelines.pdf" xmlns:idx="https://kindlegen.s3.amazonaws.com/AmazonKindlePublishingGuidelines.pdf"> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head> <body> <mbp:frameset> <idx:entry name="english" scriptable="yes" spell="yes"> <idx:short><a id="1"></a> <idx:orth value="aardvark"><b>aard•vark</b> <idx:infl> <idx:iform value="aardvarks"></idx:iform> <idx:iform value="aardvark's"></idx:iform> <idx:iform value="aardvarks'"></idx:iform> </idx:infl> </idx:orth> <p>ツチブタ: サハラ以南アフリカに生息する夜行性の穴居性動物。アリやシロアリを主食とする。</p> </idx:short> </idx:entry> [...other entries…] </mbp:frameset> </body> </html> |
見出し語インデックス
見出し語のアルファベット順インデックスを作成するためには、標準 HTML ではなく、特別タグを使用する必要があります。ソースは、<idx> マークアップを追加することで有効な XHTML になります。
<idx:entry>..</idx:entry>
<idx:entry> タグは、インデックスされる各エントリーの範囲を指定します。辞書では、定義付きの各見出し語は、<idx:entry> と </idx:entry> の間に置きます。どのような種類の HTML もこのタグ内に置くことができます。
<idx:entry> タグは、name 属性、scriptable 属性、spell 属性を含めることができます。name 属性は、見出し語が属するインデックスを示しています。name 属性の値は OPF にリストされているデフォルトの参照インデックス名と同じでなければなりません。scriptable 属性により、インデックスからエントリーへのアクセスが可能になります。scriptable 属性で使用できる値は「yes」のみです。spell 属性により、語句検索の際に、ワイルドカード検索と綴り修正が可能になります。spell 属性で使用できる値は「yes」のみです。
例:
<idx:entry name="english" scriptable="yes" spell="yes"> |
また、<idx:entry> タグは、エントリーの連続 id 番号を伴う id 属性を有することもできます。この番号は、相互参照リンクに使用するアンカー タグの id 属性の値と一致させる必要があります。
例:
<idx:entry name="japanese" scriptable="yes" spell="yes" id="12345"> <a id="12345"></a> |
エントリー id 番号は、ブック内ルックアップには使用しません。その代わりに、参照用にインデックスされる語形エンティティが、次のセクションで説明するように <idx:orth> 要素に含まれていなければなりません。
<idx:orth>..</idx:orth>
<idx:orth> タグは、インデックスのリストに表示され、参照見出し語として検索可能となるラベルの範囲を定めるために使用します。これは、読者がエントリーを見つけるために検索ボックスに入力することができるテキストです。
例:
<idx:orth>インデックス エントリーのラベル</idx:orth> |
ここでは、英語の辞書の一部となる非常に単純なエントリーの例を示します。このコードの例では、「chair」という言葉が索引リストに表示され、読者による検索が可能になります。
例:
<idx:entry> <idx:orth>chair</idx:orth> 人が座るための家具。背もたれがあり、通常は脚が 4 本。肘掛けが 2 つ付いている場合もある。 <idx:entry> |
value 属性は、エントリーの非表示ラベルを含むために <idx:orth> タグ内で使用できます。この属性は、辞書内の見出し語によく使われる特別フォーマットの体裁を保ちながら、参照機能を維持します。
例:
<idx:orth value="インデックス エントリーの非表示ラベル">表示形式</orth> |
見出し語を辞書内で表示する際に、同形異義語であることを示す上付き数字、登録商標マーク、音節の区切りを示す中点、またはその他の記号を付加する必要がある場合、この特別な書式は value 属性のテキスト内ではなく <idx:orth> タグの間にあるテキスト内に設定する必要があります。value 属性のテキストは、参照に使用されるフォームと正確に一致する必要があります。value 属性がない場合、<idx:orth> タグの間のエンティティが参照用のインデックスとして追加されます。中点、上付き数字、またはその他の記号が <idx:orth> タグの間のテキストに含まれている場合、参照フォームの非表示ラベルが value 属性で指定されていない限り、ブック内ルックアップは機能しません。
例:
<idx:orth value="Amazon">A•ma•zon®<sup>3</sup></orth> |
辞書に複数の綴りスクリプトが使用されている場合、<orth> タグの format 属性は、インデックスを構築するための各スクリプトを特定するために使用できます。
例:
<idx:orth format="script name"> |
辞書内のすべてのエントリーの見出し語を表示するプライマリ インデックスと伴に、ブック内ルックアップには、各見出し語の語尾変化形を表示する補助インデックスが必要になります。非表示の語尾変化形インデックスの作成には、以下のように追加データを <idx:orth> タグ内にネストさせる必要があります。
辞書の語尾変化
辞書は、1 つの単語の標準形に対して複数の語尾変化形がすべて同じエントリーでアクセスできるように作成してください。語尾変化形の完全なリストを、各見出し語に付け必要があります。エントリーに複数の綴り形が使用される場合、各綴りに対し個別の語尾変化を表示しなければなりません。
語尾変化形インデックス
非表示の語尾変化形インデックスを作成するには、語尾変化の語形データが、<idx:orth> 要素内にネストする <idx:infl> タグと <idx:iform /> タグ内に含まれる必要があります。このインデックスは、読者が直接検索するものではありませんが、ブック内ルックアップで使われます。
<idx:infl>..</idx:infl>
<idx:infl> 要素には複数の <idx:iform /> 要素を含めることができます。<idx:iform /> 要素は常に空要素であり、表示コンテンツではなく、属性を指定するためだけに使用します。value 属性は、語尾変化形インデックスを構成する語尾変化形フォームを意味しています。
例:
<idx:orth>record <idx:infl> <idx:iform value="records" /> <idx:iform value="recording" /> <idx:iform value="recorded" /> </idx:infl> </idx:orth> |
<idx:infl> タグ、<idx:iform /> タグ、value 属性は必須です。<idx:infl> 要素には、品詞を表すために inflgrp 属性をオプションで含めることができます。また、<idx:iform /> 要素に name 属性を追加して、語形変化カテゴリーを示すこともできます。これらのオプション カテゴリーを含む語尾変化が多く使われる言語については、語尾変化形インデックスのサイズを大きくなり、単語の参照時にパフォーマンスが低下することがあります。
例:
<idx:orth>record <idx:infl inflgrp="noun"> <idx:iform name="plural" value="records" /> </idx:infl> <idx:infl inflgrp="verb"> <idx:iform name="present participle" value="recording" /> <idx:iform name="past participle" value="recorded" /> <idx:iform name="present 3ps" value="records" /> </idx:infl> </idx:orth> |
<idx:iform /> タグの属性として指定されている値は、読者の目に触れることはありません。この情報は、ブック内ルックアップの際に、語尾変化形から対応する見出し語にリダイレクトするために必要になります。品詞や語尾変化系列を読者に示すには、エントリーの本文に追加テキストを含める必要があります (定義や用例に併記するなど)。
<idx:key>..</idx:key> (DEPRECATED)
<idx:infl> タグと同様、<idx:key> タグは、代替ルックアップ語形を使用してインデックス内のエントリーを検索する目的で設計されたものです。ただし、Kindle 辞書内に <idx:key> タグが含まれていると参照機能が不安定になり、完全一致パラメーターの機能に影響が及ぶことがあります。そのため、Kindle 辞書で <idx:key> タグを使用することは推奨しません。その代わりに、<idx:infl> タグと <idx:iform /> タグで代替ルックアップ語形を囲むようにします。
完全一致パラメーター
デフォルトで、Kindle 端末は語句検索に際し、発音区別記号の合致に関してファジー アルゴリズムを使用しています。固有の語形を区別するために発音区別符号を使用する言語には、検索に際し、発音区別記号の完全一致を強制するために、<idx:iform /> タグ内で exact="yes" 属性を使用します。
例:
<idx:entry name="spanish" scriptable="yes" spell="yes"> <a id="12345"></a> <idx:orth value="uña"><b>uña</b> <idx:infl> <idx:iform value="uñas" exact="yes" /> </idx:infl> </idx:orth> exact パラメーターを "yes" に設定すると、uñas は見出し語 uña (‘爪’) には一致するが、una (‘1’) には一致しないものと見なされます。 |
KindleGen での辞書の作成
KindleGen を使用してコマンド ラインで辞書を作成する場合、次の構文を使用します。
kindlegen.exe [filename.opf] -c2 –verbose -dont_append_source |
辞書のエントリーが、単一の非常に大きいサイズの XHTML ファイルに含まれていると、KindleGen では辞書を作成できないことがあります。辞書の作成に失敗した場合、辞書のコンテンツを複数の XHTML ファイルに分割すると問題が解決することがあります。
KindleGen の使い方に関するガイダンスを参照してください。
Kindle 辞書のテスト
フォーマットのテスト
読者に優れた視覚体験を提供するために、辞書のフォーマットが適切に変換されたことを検証するようお勧めします。
- 辞書をめくり、いくつかの単語の定義を読み、それらのフォーマットが正しいかを確認します(辞書のフォーマットは、Kindle Previewer や、どの Kindle 端末からも確認できますが、検索テストには E-reader 端末を使用する必要があります)。
- サポートされていない文字、不完全または連結している単語、アクセント文字、記号、発音ガイドなどが正しく表示されていることを確認します。
- 誤字脱字がないことを確認します。
- リンクがある場合、適切に機能しているかを確認します(リンクはブック内ルックアップのウィンドウでは無効になっていますが、辞書自体の内部では機能します)。
- 画像を使用している場合は、それらの画像が鮮明に表示され、判読できることを確認します。
- フォントの色と活字書体が強制されていないことを確認します。
参照機能のテスト
辞書が他の本にある語句検索に使用される場合、正しい定義が検索結果として表示されることを検証するようにお勧めします。読者が参照用にデフォルト辞書を設定できるのは E-reader 端末のみのため、このコンポーネントのテストを実行できるのは E-reader 端末のみです (プレビューアーは含まれません)。
- 辞書を E-reader 端末にサイドロードすることから始めます。サイドロードするには、Kindle を USB/ミニ USB ケーブル コネクターを介してコンピューターと接続します。コンピューターで端末が検出されるはずです。ポップアップ ウィンドウに「ドキュメント」というフォルダーがあります。辞書ファイルをこのフォルダーにコピーし、Kindle をコンピューターから取り外します。
- 参照用にテスト辞書をデフォルト辞書として設定します。
- Kindle Paperwhite: 「ホーム」 > 「メニュー」 > 「設定」 > 「端末オプション」 > 「言語と辞書」 > 「辞書」 > 「ソース言語」
- 辞書から返される定義を確認するため、さまざまな単語を参照してみます。別の本を開き、単語を選択し、参照ウィンドウに返ってくる定義をメモします。参照が完全に失敗する場合、HTML のタグを確認してください。参照する単語の例は次のとおりです。
- 単語の標準形と規則的および不規則動詞の活用形
- 例: 歩く、歩いた、歩いている、行く、行った、行っている
- 名詞、形容詞、副詞とその動詞または存在する場合は語尾変化形
- 例: 机、オオカミ、熱い、さらに熱い、最も熱い
- その言語でよく使われる文法、句読点
- 例: 縮約形、音脱落、接語代名詞付きの動詞
- 単語の標準形と規則的および不規則動詞の活用形
- 辞書の索引表示を確認します。これを行うには、辞書を開き、「検索」ボックスに単語を入力します。入力している最中にアルファベット順の単語の見出しが表示され、入力されて行く文字に基づいて、動的に更新されます。索引リストから見出し語を選択すると、読者はその見出し語の辞書項目に移動します。