review 1.4.0 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -1
  3. data/.travis.yml +1 -0
  4. data/ChangeLog +87 -0
  5. data/bin/review-check +2 -2
  6. data/bin/review-compile +15 -30
  7. data/bin/review-index +1 -1
  8. data/bin/review-init +12 -7
  9. data/bin/review-vol +9 -1
  10. data/doc/catalog.ja.md +53 -0
  11. data/doc/catalog.md +52 -0
  12. data/doc/format.ja.md +734 -0
  13. data/doc/format.md +746 -0
  14. data/doc/format_idg.ja.md +203 -0
  15. data/doc/{quickstart.rdoc → quickstart.ja.md} +138 -104
  16. data/doc/quickstart.md +252 -0
  17. data/doc/sample.yml +216 -48
  18. data/lib/epubmaker.rb +0 -1
  19. data/lib/epubmaker/content.rb +2 -2
  20. data/lib/epubmaker/epubcommon.rb +440 -0
  21. data/lib/epubmaker/epubv2.rb +8 -418
  22. data/lib/epubmaker/epubv3.rb +67 -61
  23. data/lib/epubmaker/producer.rb +60 -19
  24. data/lib/review/book.rb +1 -3
  25. data/lib/review/book/base.rb +18 -11
  26. data/lib/review/book/chapter.rb +5 -24
  27. data/lib/review/book/compilable.rb +5 -1
  28. data/lib/review/book/index.rb +48 -17
  29. data/lib/review/book/page_metric.rb +17 -8
  30. data/lib/review/book/part.rb +12 -2
  31. data/lib/review/book/volume.rb +3 -2
  32. data/lib/review/builder.rb +30 -10
  33. data/lib/review/compiler.rb +6 -4
  34. data/lib/review/configure.rb +3 -3
  35. data/lib/review/epubmaker.rb +56 -26
  36. data/lib/review/htmlbuilder.rb +33 -42
  37. data/lib/review/htmlutils.rb +12 -7
  38. data/lib/review/i18n.rb +77 -17
  39. data/lib/review/i18n.yml +80 -4
  40. data/lib/review/idgxmlbuilder.rb +27 -57
  41. data/lib/review/inaobuilder.rb +3 -3
  42. data/lib/review/latexbuilder.rb +90 -67
  43. data/lib/review/layout.tex.erb +54 -7
  44. data/lib/review/markdownbuilder.rb +21 -3
  45. data/lib/review/pdfmaker.rb +67 -38
  46. data/lib/review/sec_counter.rb +1 -1
  47. data/lib/review/tocparser.rb +9 -5
  48. data/lib/review/topbuilder.rb +6 -6
  49. data/lib/review/version.rb +1 -1
  50. data/review.gemspec +3 -1
  51. data/test/book_test_helper.rb +1 -1
  52. data/test/sample-book/README.md +2 -0
  53. data/test/sample-book/src/Rakefile +31 -0
  54. data/test/sample-book/src/_cover.html +0 -0
  55. data/test/sample-book/src/catalog.yml +10 -0
  56. data/test/sample-book/src/ch01.re +0 -0
  57. data/test/sample-book/src/ch02.re +0 -0
  58. data/test/sample-book/src/config.yml +160 -32
  59. data/test/sample-book/src/images/ch01-imgsample.jpg +0 -0
  60. data/test/sample-book/src/images/cover.jpg +0 -0
  61. data/test/sample-book/src/preface.re +0 -0
  62. data/test/sample-book/src/sty/jumoline.sty +0 -0
  63. data/test/sample-book/src/sty/reviewmacro.sty +18 -0
  64. data/test/sample-book/src/style.css +0 -0
  65. data/test/test_book.rb +25 -27
  66. data/test/test_book_chapter.rb +4 -73
  67. data/test/test_book_part.rb +5 -4
  68. data/test/test_builder.rb +3 -3
  69. data/test/test_epub3maker.rb +527 -0
  70. data/test/test_epubmaker.rb +6 -6
  71. data/test/test_htmlbuilder.rb +143 -6
  72. data/test/test_i18n.rb +95 -10
  73. data/test/test_idgxmlbuilder.rb +28 -2
  74. data/test/test_index.rb +109 -1
  75. data/test/test_latexbuilder.rb +51 -0
  76. data/test/test_markdownbuilder.rb +54 -1
  77. data/test/test_pdfmaker.rb +7 -6
  78. data/test/test_review_ext.rb +31 -0
  79. data/test/test_topbuilder.rb +3 -1
  80. metadata +46 -13
  81. data/doc/catalog.rdoc +0 -49
  82. data/doc/format.rdoc +0 -618
  83. data/doc/format_idg.rdoc +0 -180
  84. data/doc/libepubmaker/config.yml +0 -207
  85. data/lib/epubmaker/resource.rb +0 -82
  86. data/test/sample-book/src/CHAPS +0 -2
  87. data/test/sample-book/src/PREDEF +0 -1
data/doc/format_idg.rdoc DELETED
@@ -1,180 +0,0 @@
1
- = Re:VIEW フォーマット InDesign XML 形式拡張
2
-
3
- Re:VIEW フォーマットから、Adobe 社の DTP ソフトウェア「InDesign」
4
- で読み込んで利用しやすい XML 形式に変換できます (通常の XML とほぼ同じ
5
- ですが、文書構造ではなく見た目を指向した形態になっています)。
6
- 現時点では idgxmlbuilder.rb と topbuilder.rb のみが拡張に対応しています。
7
- 実際には出力された XML を InDesign のスタイルに割り当てるフィルタをさらに
8
- 作成・適用する必要があります。
9
-
10
- == 章・節・項・段
11
-
12
- 従来の[column]のほかに、オプションを追加しています。
13
-
14
- * [nonum] : これを指定している章・節・項・段には連番を振りません。
15
- * [circle]: 「・」を先頭に付けた小さな見出し(連番なし)を作成します。
16
- * [world]: Real Worldコラム。
17
- * [hood]: Under the Hoodコラム。
18
- * [edition]: Editionコラム。
19
- * [insideout]: インサイドアウトコラム。
20
-
21
- == 書式ブロック
22
- //insn[タイトル]{ 〜 //} または //box[タイトル]{ 〜 //} で書式を指定し
23
- ます。
24
-
25
- == ノート
26
- //note{ 〜 //} または //note[タイトル]{ 〜 //} で注意文章を指定します。
27
-
28
- == メモ
29
- //memo{ 〜 //} または //memo[タイトル]{ 〜 //} でメモ文章を指定します。
30
-
31
- == ヒント
32
- //tip{ 〜 //} または //tip[タイトル]{ 〜 //} でヒント(Tip)文章を指定します。
33
-
34
- == 参照ブロック
35
- //info{ 〜 //} または //info[タイトル]{ 〜 //} で参照文章を指定します。
36
-
37
- == プランニング
38
- //planning{ 〜 //} または //planning[タイトル]{ 〜 //} でプランニング文章を
39
- 指定します。
40
-
41
- == ベストプラクティス
42
- //best{ 〜 //} または //best[タイトル]{ 〜 //} でベストプラクティス文章を
43
- 指定します。
44
-
45
- == ここが重要 (キーワード)
46
- //important[タイトル]{ 〜 //} で重要項目を指定します。
47
-
48
- == セキュリティ
49
- //security{ 〜 //} または //security[タイトル]{ 〜 //} でセキュリティ文章を
50
- 指定します。
51
-
52
- == 警告
53
- //caution{ 〜 //} または //caution[タイトル]{ 〜 //} で警告文章を指定します。
54
-
55
- == エキスパートに訊く
56
- //expert{ 〜 //} で「エキスパートに訊く」を指定します (rawで<expert>〜
57
- </expert>を使うほうがよいかもしれません)。
58
- QとAは@<b>{Q}:〜 と @<b>{A}:〜 で示します。
59
-
60
- == 注意
61
- //notice{ 〜 //} または //notice[タイトル]{ 〜 //} で注意を指定します。
62
-
63
- == ワンポイント
64
- //point{ 〜 //} または //point[タイトル]{ 〜 //} でワンポイントを指定します。
65
-
66
- == トラブルシューティング
67
- //shoot{ 〜 //} または //shoot[タイトル]{ 〜 //} でトラブルシューティングを
68
- 指定します。
69
-
70
- == 用語解説
71
- //term{ 〜 //} で用語解説を指定します(ただし、ブロック指定ができないので
72
- 実質的にはrawで<term>〜</term>を通常使うことになるでしょう)。
73
-
74
- == リンク
75
- //link{ 〜 //} または //link[タイトル]{ 〜 //} で他の章やファイルなどへの
76
- 参照内容を指定します。
77
-
78
- == 練習問題
79
- //practice{ 〜 //} で練習問題を指定します。
80
-
81
- == 参考
82
- //reference{ 〜 //} で参考情報を指定します。
83
-
84
- == 相互参照
85
- //label[〜]でラベルを定義し、@<labelref>{〜}で参照します。
86
- XMLとしては<label id='〜' />と<labelref idref='〜' />というタグに
87
- 置き換えられます。
88
- 実際にどのような相互参照関係にするかは、処理系に依存します。
89
- 想定の用途では、章や節の番号およびタイトルを記憶し、labelrefの出現箇所
90
- に"「節(あるいは章)番号 タイトル」"という文字列を配置します。
91
-
92
- @<chapref>の展開形式を、--chapref="前装飾文字列,中間装飾文字列,後装飾文字列"
93
- でコンパイル実行時に指定できます。デフォルトは",「,」"です。たとえば
94
- "第2章「コンパイラ」" のように普通は展開されます。
95
- "「, ,」"と指定すると、"「第2章 コンパイラ」" に展開されます。
96
-
97
- == 丸数字
98
- @<maru>{数値} で丸数字を出力します。
99
-
100
- == キートップ
101
- @<keytop>{キー文字} でキーボードマークを出力します。
102
-
103
- == 吹き出し
104
- @<balloon>{〜} でコード内などでの吹き出しを作成します。吹き出しは右に寄せ
105
- られ、記入した箇所から吹き出しまで線が引かれます。
106
- @<>オペレータは入れ子ができないため、丸数字を使いたいときには@maru[数値]
107
- という特別な書式を代わりに使います。
108
-
109
- == ロー指定
110
- 現時点で Re:VIEW はブロックの入れ子処理ができないため、ロー指定で XML
111
- エレメントを指定しなければならないこともあります。
112
-
113
- インラインの@<raw>{ 〜 }の他に、単一行の//raw[〜]、ブロック版の //rawblock{ 〜 //} でも、フォーマット処理をせずにそのままの文字列が出力できます。
114
-
115
- == キャプションなし表
116
- //table{ 〜 //} のように id もキャプションも付けないブロックを利用できます。
117
- この場合、その表の連番付けを飛ばします。
118
-
119
- == 表セル幅の指定
120
- //tsize[1列目の幅,2列目の幅,...] で、続く //table の表の列幅を指定します
121
- (単位mm)。これを利用するときには、review2idgxml を実行する際、オプション
122
- --table=表幅 を付ける必要があります (表幅の単位は mm)。列幅指定の個数が
123
- 実際の列数に満たない場合、残りの列は均等分割したものとなります。列幅の
124
- 合計が表幅を超えるとエラーになります。
125
-
126
- == DTP 命令指定
127
- @<dtp>{ 〜 } で InDesign 向けに「<? dtp 〜 ?>」型の XML インストラクション
128
- を埋め込みます。処理系に渡す任意の文字列を指定できますが、次のような文字列
129
- を特殊文字指定できます。
130
-
131
- * maru 番号リストの各段落先頭で使い、このリスト段落の番号は丸数字であることを示す
132
- * return 改行記号文字
133
-
134
- * autopagenumber 現ページ番号
135
- * nextpageunmber 次ページ番号
136
- * previouspagenumber 前ページ番号
137
- * sectionmarker セクションマーカー
138
- * bulletcharacter ビュレット (ナカグロ)
139
- * copyrightsymbol 著作権記号
140
- * degreesymbol 度記号
141
- * ellipsischaracter 省略記号
142
- * forcedlinebreak 強制改行
143
- * discretionarylinebreak 任意の改行
144
- * paragraphsymbol 段落記号
145
- * registeredtrademark 登録商標記号
146
- * sectionsymbol セクション記号
147
- * trademarksymbol 商標記号
148
- * rightindenttab 右インデントタブ
149
- * indentheretab 「ここまでインデント」タブ
150
- * zerowidthnonjoiner 結合なし
151
- * emdash EMダッシュ
152
- * endash ENダッシュ
153
- * discretionaryhyphen 任意ハイフン
154
- * nonbreakinghyphen 分散禁止ハイフン
155
- * endnestedstyle 先頭文字スタイルの終了文字
156
- * doubleleftquote 左二重引用符
157
- * doublerightquote 右二重引用符
158
- * singleleftquote 左用符
159
- * singlerightquote 右引用符
160
- * singlestraightquote 半角一重左用符
161
- * doublestraightquote 半角二重引用符
162
- * emspace EMスペース
163
- * enspace ENスペース
164
- * flushspace フラッシュスペース
165
- * hairspace 極細スペース
166
- * nonbreakingspace 分散禁止スペース
167
- * fixedwidthnonbreakingspace 分散禁止スペース(固定幅)
168
- * textvariable 全角スペース
169
- * thinspace 細いスペース
170
- * figurespace 数字の間隔
171
- * punctuationspace 句読点等の間隔
172
- * sixthspace 1/6スペース
173
- * quarterspace 1/4スペース
174
- * thirdspace 1/3スペース
175
- * columnbreak 改段
176
- * framebreak 改フレーム
177
- * pagebreak 改ページ
178
- * oddpagebreak 奇数改ページ
179
- * evenpagebreak 偶数改ページ
180
- * footnotesymbol 脚注記号
@@ -1,207 +0,0 @@
1
- # review-epubmaker-ng向けYAMLファイルのサンプル
2
- #
3
- # このファイルはUTF-8エンコーディングで記述してください
4
- # YAMLにおける空は、「nil」ではなく「null」であることに注意してください
5
-
6
- # ブック名(ファイル名になるもの。ASCII範囲の文字を使用)
7
- bookname: sample
8
- # 記述言語
9
- language: ja
10
- # 書名
11
- title: "Re:VIEW EPUBのサンプル"
12
-
13
- # 固有IDに使用するドメイン。指定しない場合には、時刻に基づくランダムUUIDが入る
14
- # urnid: urn:uid:http://example.com/some-book-title/1.0.2/
15
-
16
- # ISBN。省略した場合はランダム生成したUUIDが入る
17
- # isbn: null
18
-
19
- # 著者名。「, 」で区切って複数指定できる
20
- aut: ["Minero Aoki", "Kenshi Muto", "Masayoshi Takahashi", "Masanori Kado"]
21
-
22
- # 以下はオプション(autと同じように配列書式で複数指定可能)。
23
- # a-が付いているものはcreator側、
24
- # 付いていないものはcontributor側(二次協力者)に入る
25
- # a-adp, adp: 異なるメディア向けに作り直した者
26
- # a-ann, ann: 注釈記述者
27
- # a-arr, arr: アレンジした者
28
- # a-art, art: グラフィックデザインおよび芸術家
29
- # a-asn, asn: 関連・かつての所有者・関係者
30
- # a-aqt, aqt: 大きく引用された人物
31
- # a-aft, aft: 後書き・奥付の責任者
32
- # a-aui, aui: 序論・序文・前書きの責任者
33
- # a-ant, ant: 目録責任者
34
- # a-bkp, bkp: メディア制作責任者
35
- # a-clb, clb: 限定参加または補足者
36
- # a-cmm, cmm: 解釈・分析・考察者
37
- # a-dsr, dsr: デザイナ
38
- # a-edt, edt: 編集者
39
- # a-ill, ill: イラストレータ
40
- # a-lyr, lyr: 歌詞作成者
41
- # a-mdc, mdc: メタデータセットの一次的責任者
42
- # a-mus, mus: 音楽家
43
- # a-nrt, nrt: 語り手
44
- # a-oth, oth: その他
45
- # a-pht, pht: 撮影責任者
46
- # a-prt, prt: 出版社
47
- # a-red, red: 項目の枠組起草者
48
- # a-rev, rev: 評論者
49
- # a-spn, spn: 援助者
50
- # a-ths, ths: 監督者
51
- # a-trc, trc: 筆記・タイプ作業者
52
- # a-trl, trl: 翻訳者
53
-
54
- # rights: 権利表記(配列で複数指定可)
55
- # date: 刊行日(省略した場合は実行時の日付)
56
- # description: 説明
57
- # subject: 短い説明用タグ(配列で複数指定可)
58
- # type: 書籍のカテゴリーなど(配列で複数指定可)
59
- # format: メディアタイプおよび特徴(配列で複数指定可)
60
- # source: 出版物生成の重要なリソース情報(配列で複数指定可)
61
- # relation: 補助的リソース(配列で複数指定可)
62
- # coverage: 内容の範囲や領域(配列で複数指定可)
63
-
64
- # htmlext: HTMLファイルの拡張子(省略した場合はhtml)
65
- #
66
- # CSSファイル(配列で複数指定可)
67
- stylesheet: ["stylesheet.css"]
68
-
69
- # ePUBのバージョン (2か3)
70
- # epubversion: 2
71
- # HTMLのバージョン (4か5。epubversionを3にしたときには5にする)
72
- # htmlversion: 4
73
-
74
- # 目次として抽出する見出しレベル
75
- # toclevel: 2
76
- # 目次を要素の階層表現にしない。省略した場合(null)は階層化する。
77
- # 特に部扉が入るなどの理由で、構成によっては階層化目次でepubcheckに
78
- # パスしない目次ができるが、そのようなときにはこれをtrueにする
79
- # flattoc: null
80
- # 目次のインデントレベルをスペース文字で表現する(flattocがtrueのときのみ)
81
- # flattocindent: true
82
-
83
- # 採番の設定。採番させたくない見出しには「==[nonum]」のようにnonum指定をする
84
- #
85
- # 本文でセクション番号を表示する見出しレベル
86
- # secnolevel: 2
87
-
88
- # 付録の連番のスタイル。null(アラビア数字1〜。デフォルト)、alpha(英字A〜)、roman(ローマ数字I〜)
89
- # appendix_format: null
90
-
91
- # 以下のsecnolevelはまだ未実装。
92
- # 前付でセクション番号を表示する見出しレベル(未実装)
93
- # pre_secnolevel: 0
94
- # 後付(付録)でセクション番号を表示する見出しレベル(未実装)
95
- # post_secnolevel: 1
96
- # 部番号を表示する見出しレベル(未実装)
97
- # part_secnolevel: 1
98
-
99
- # NCX目次の見出しレベルごとの飾り(配列で設定)。EPUB3ではNCXは作られない
100
- #ncxindent:
101
- #-
102
- #- -
103
-
104
- # EPUB2標準の目次以外に物理目次ファイルを作成するか。省略した場合はnull (作成しない)
105
- # ePUB3においてはこの設定によらず必ず作成される
106
- # mytoc: true
107
-
108
- # 表紙にするHTMLファイル。ファイル名を指定すると表紙として入る
109
- # cover: null
110
- # 表紙に配置し、書籍の影絵にも利用する画像ファイル。省略した場合はnull (画像を使わない)
111
- # coverimage: null
112
- # 表紙の後に大扉ページを作成するか。省略した場合はnull (作成しない)
113
- # titlepage: null
114
- # 自動生成される大扉ページを上書きするファイル。ファイル名を指定すると大扉として入る
115
- # titlefile: null
116
- # 原書大扉ページにするHTMLファイル。ファイル名を指定すると原書大扉として入る
117
- # originaltitlefile: null
118
- # 権利表記ページファイル。ファイル名を指定すると権利表記として入る
119
- # creditfile: null
120
-
121
- # プロフィールページファイル。ファイル名を指定すると著者紹介として入る
122
- # profile: null
123
- # プロフィールページの目次上の見出し
124
- # profiletitle: 著者紹介
125
-
126
- # 広告ファイル。ファイル名を指定すると広告として入る
127
- # advfile: null
128
-
129
- # 奥付を作成するか。デフォルトでは作成されない。trueを指定するとデフォルトの奥付、ファイル名を指定するとそれがcolophon.htmlとしてコピーされる
130
- # colophon: true
131
-
132
- # 裏表紙ファイル (画像はcoversまたはimagesに配置する)。ファイル名を指定すると裏表紙として入る
133
- # backcover: null
134
-
135
- # フックは、各段階で介入したいときのプログラムを指定する。自動で適切な引数が渡される
136
- # プログラムには実行権限が必要
137
-
138
- # ファイル変換処理の前に実行するプログラム。スタイルシートのコンパイルをしたいときなどに利用する。
139
- # 渡される引数1=作業用展開ディレクトリ
140
- # hook_beforeprocess: null
141
-
142
- # 前付の作成後に実行するプログラム。作業用展開ディレクトリにある目次ファイル(toc-html.txt)を操作したいときなどに利用する。
143
- # 渡される引数1=作業用展開ディレクトリ
144
- # hook_afterfrontmatter: null
145
-
146
- # 本文の変換後に実行するプログラム。作業用展開ディレクトリにある目次ファイル(toc-html.txt)を操作したいときなどに利用する。
147
- # 渡される引数1=作業用展開ディレクトリ
148
- # hook_afterbody: null
149
-
150
- # 後付の作成後に実行するプログラム。作業用展開ディレクトリにある目次ファイル(toc-html.txt)を操作したいときなどに利用する。
151
- # 渡される引数1=作業用展開ディレクトリ
152
- # hook_afterbackmatter: null
153
-
154
- # 画像およびフォントをコピーした後に実行するプログラム。別の画像やフォントを追加したいときなどに利用する。
155
- # 渡される引数1=作業用展開ディレクトリ
156
- # hook_aftercopyimage: null
157
-
158
- # ePUB zipアーカイブ直前に実行するプログラム。メタ情報などを加工したいときなどに利用する。
159
- # 渡される引数1=ePUB準備ディレクトリ
160
- # hook_prepack: null
161
-
162
- # ハイライトを有効にするか。pygments.gemが必要
163
- # pygments: null
164
-
165
- # 取り込む画像が格納されているディレクトリ。省略した場合は以下
166
- # imagedir: images
167
-
168
- # 取り込むフォントが格納されているディレクトリ。省略した場合は以下
169
- # fontdir: fonts
170
-
171
- # imagedir内から取り込まれる対象となるファイル拡張子。省略した場合は以下
172
- # image_ext: ["png", "gif", "jpg", "jpeg", "svg", "ttf", "woff", "otf"]
173
-
174
- # fontdir内から取り込まれる対象となるファイル拡張子。省略した場合は以下
175
- # font_ext: ["ttf", "woff", "otf"]
176
-
177
- # 変換したHTMLファイルおよびCSSを解析して厳密に使用している画像ファイルだけを取り込むか。デフォルトはnull(imagesディレクトリすべてを取り込む)
178
- # なお、フォント、カバー、広告についてはこの設定によらずディレクトリ内のものがすべて取り込まれる
179
- # verify_target_images: null
180
- # verify_target_imagesがtrueの状態において、解析で発見されなくても強制的に取り込むファイルの相対パスの配列
181
- # force_include_images: []
182
-
183
- # Re:VIEWファイル名を使わず、前付にpre01,pre02...、本文にchap01,chap02l...、後付にpost01,post02...という名前付けルールにするか
184
- # rename_for_legacy: null
185
-
186
- # ePUBアーカイブの非圧縮実行
187
- # zip_stage1: "zip -0Xq"
188
- # ePUBアーカイブの圧縮実行
189
- # zip_stage2: "zip -Xr9Dq"
190
- # ePUBアーカイブに追加するパス(デフォルトはmimetype、META-INF、OEBPS)
191
- # zip_addpath: null
192
-
193
- # 以下は古いreview-epubmaker実装で使用されていたパラメータで、
194
- # 互換性のために同じ機能を提供しているが、将来廃止予定であり、使うべきではない。
195
- #
196
- # ヘッダ・フッタのない、表紙のHTMLファイル。
197
- # (※ヘッダ・フッタを入れたcoverを使うように変更することを勧告する。)
198
- # coverfile: null
199
- # ヘッダ・フッタのない、大扉ページ差し替えのHTMLファイル。
200
- # (※ヘッダ・フッタを入れたtitlefileを使うように変更することを勧告する。)
201
- # titlepagefile: null
202
- # ヘッダ・フッタのない、裏表紙のHTMLファイル。
203
- # (※ヘッダ・フッタを入れたbackcoverを使うように変更することを勧告する。)
204
- # backcoverfile: null
205
- # 奥付の日付文字列。
206
- # (※history配列を使うように変更することを勧告する。)
207
- # pubhistory: 奥付履歴文字列
@@ -1,82 +0,0 @@
1
- # encoding: utf-8
2
- # = resource.rb -- Message resources for EPUBMaker.
3
- #
4
- # Copyright (c) 2010-2014 Kenshi Muto
5
- #
6
- # This program is free software.
7
- # You can distribute or modify this program under the terms of
8
- # the GNU LGPL, Lesser General Public License version 2.1.
9
- # For details of the GNU LGPL, see the file "COPYING".
10
- #
11
-
12
- module EPUBMaker
13
-
14
- # EPUBMaker::Resource contains message translation resources for EPUBMaker.
15
- class Resource
16
- # Construct message resource object with using +params+["language"] value.
17
- def initialize(params)
18
- @hash = nil
19
- begin
20
- @hash = __send__ params["language"]
21
- rescue
22
- @hash = __send__ :en
23
- end
24
-
25
- @hash.each_pair do |k, v|
26
- @hash[k] = params[k] unless params[k].nil?
27
- end
28
- end
29
-
30
- # Return message translation for +key+.
31
- def v(key)
32
- return @hash[key]
33
- end
34
-
35
- private
36
- # English message catalog
37
- def en
38
- {
39
- "toctitle" => "Table of Contents",
40
- "covertitle" => "Cover",
41
- "titlepagetitle" => "Title Page",
42
- "originaltitle" => "Title Page of Original",
43
- "credittitle" => "Credit",
44
- "colophontitle" => "Colophon",
45
- "profiletitle" => "Profile",
46
- "advtitle" => "Advertisement",
47
- "backcovertitle" => "Back Cover",
48
- "c-aut" => "Author",
49
- "c-csl" => "Consultant",
50
- "c-dsr" => "Designer",
51
- "c-ill" => "Illustrator",
52
- "c-edt" => "Editor",
53
- "c-pht" => "Director of Photography",
54
- "c-trl" => "Translator",
55
- "c-prt" => "Publisher",
56
- }
57
- end
58
-
59
- # Japanese message catalog
60
- def ja
61
- {
62
- "toctitle" => "目次",
63
- "covertitle" => "表紙",
64
- "titlepagetitle" => "大扉",
65
- "originaltitle" => "原書大扉",
66
- "credittitle" => "クレジット",
67
- "colophontitle" => "奥付",
68
- "advtitle" => "広告",
69
- "profiletitle" => "著者紹介",
70
- "backcovertitle" => "裏表紙",
71
- "c-aut" => "著 者",
72
- "c-csl" => "監 修",
73
- "c-dsr" => "デザイン",
74
- "c-ill" => "イラスト",
75
- "c-edt" => "編 集",
76
- "c-pht" => "撮 影",
77
- "c-trl" => "翻 訳",
78
- "c-prt" => "発行所",
79
- }
80
- end
81
- end
82
- end