作品情報をそろえる!EPUBの言語設定、言語コードを正しく設定する

言語コードの設定の確認工程を、白い原稿用紙と紫色の半透明装置で抽象的に示したアイキャッチ

EPUBの言語コードは、本文の言語を表す値をパッケージ文書へ正しく入れ、出力後に読み戻して確認します。今回のRune Studio CLI実測で成功したのはjaとenです。frは入力検証で拒否され、フランス語版EPUBは生成されませんでした。この境界を曖昧にせず、対応外の値を成功扱いしないことが本記事の要点です。

答え:今回確認できた対応値はjaとen

一般には、EPUBの出版物全体の言語をBCP 47の言語タグで表し、OPFのdc:languageを検査します。ただし、規格上存在するコードが、使用中の制作ツールですべて選べるとは限りません。規格の許容範囲と製品の入力制約は別です。

今回の確認範囲では、日本語本文にja、英語本文にenを指定した出力は成功しました。一方、frを指定した試行はlanguage-invalidで停止しました。したがって、この記事では「EPUBでfrというタグがあり得るか」ではなく、「現在のRune Studio CLI検証で受理されたか」を判定します。

標本:ja、en、frの三つを同じ判定表に置く

開始値は、言語ごとの短い原稿と指定コードです。

標本 本文の想定言語 指定値 期待する判定
日本語版 日本語 ja 出力後のOPFがja
英語版 英語 en 出力後のOPFがen
フランス語試行 フランス語 fr 受理可否を入力検証で確認

日英版は別の作業場所と別の成果物名を使います。フランス語試行では、拒否された後にjaやenへ偽装して出力しません。戻し先は原稿ではなく、まず「現在の製品でその言語を扱うか」という制作方針の判断です。

操作:設定、出力、OPF読み戻し、拒否記録まで行う

製品非依存の確認手順は、本文言語を決め、言語タグを設定し、EPUBを出力し、OPFからdc:languageを読み戻すことです。ツールが入力を拒否した場合は、そのエラーコード、メッセージ、修正案を保存し、成果物がないことも記録します。

今回の記事固有Stage 4では26操作を実行しました。

  1. 日本語版へjaを設定し、別名で出力する。
  2. 英語版へenを設定し、別名で出力する。
  3. 両方のOPFと言語値、構造検査結果を確認する。
  4. frを指定して入力検証を実行する。
  5. 拒否結果を成功へ置き換えず、エラーとヒントを記録する。

jaまたはenのOPFが本文と違えば、情報カードの言語設定へ戻します。frのように入力段階で拒否された場合は、対応言語の選定へ戻し、未生成のEPUBを検査済みとは数えません。

実測:jaとenは成功し、frは入力段階で止まった

記事固有の全体ステータスはpartialです。日英の二つは成功しましたが、三つ目のfrは失敗したためです。

指定値 出力 OPFまたは検証結果 構造検査
ja 成功 dc:language=ja valid: true
en 成功 dc:language=en valid: true
fr 未生成 language-invalid valid: false

frの記録値は、requested_language: fr、supported_by_cli: false、エラーコードlanguage-invalidでした。メッセージは「原稿の言語の指定が正しくありません: fr」、ヒントは「ja か en を指定してください」です。これは警告ではなく入力拒否なので、フランス語EPUBの成功例としては扱えません。

別の共通回帰標本では、2章、横書き、version 1.0を9操作で出力し、spine 6、画像1、欠落0、navとNCXあり、valid: trueでした。この共通標本の成功を使って、記事固有のfr失敗を埋め合わせることはできません。

限界:ストアの自動判定と対応言語の将来値は未確認

今回の判定は2026年8月31日時点のローカルCLI実測です。販売ストアの言語欄、自動判定、審査、外部リーダーでの扱いは確認していません。また、製品の将来版で対応コードが増えるかどうかも、この実測からは分かりません。

frが今回拒否されたことは、EPUB規格そのものがフランス語を認めないという意味ではありません。製品の現在の入力境界として記録します。逆に、jaとenのvalid: trueも、外部サービスでの受理を保証しません。

Rune Studioで使える範囲

Rune Studioの公開機能では、EPUB出力ウィザードで言語を設定し、日本語または英語に応じた目次名、奥付、日付表記を生成できます。製品資料で公開されている言語選択は日本語と英語です。これがStage 3の機能範囲です。

Stage 4で実測したのは、jaとenのOPF一致と構造検査合格、そしてfrの入力拒否です。一般的なEPUB要件はW3C EPUB 3.3で確認でき、製品情報はRune Studio公式ページにあります。

結論:非対応コードを別の値へ置き換えて完了にしない

今回、jaとenは出力後のdc:languageと一致し、両方ともローカル検査でvalid: trueでした。frはlanguage-invalidで拒否され、成果物はありません。このため全体判定はpartialのままです。

言語コードで止まったら、規格名だけを見て入力を通そうとせず、現在の製品対応と制作対象を確認します。対応外の言語をjaやenへ置き換えるのではなく、対応方法を決める地点へ戻すのが安全です。入力前に、詳しくはこちら:Rune Studio公式ページで公開中の言語範囲を確認してください。