Merge branch 'master' into subtree
[nikiroo-utils.git] / output / InfoText.java
CommitLineData
08fe2e33
NR
1package be.nikiroo.fanfix.output;
2
3import java.io.IOException;
4
5import be.nikiroo.fanfix.Instance;
6import be.nikiroo.fanfix.bundles.StringId;
7import be.nikiroo.fanfix.data.Chapter;
8import be.nikiroo.fanfix.data.Paragraph.ParagraphType;
9
10class InfoText extends Text {
11 // quote chars
d66deb8d
NR
12 private char openQuote = Instance.getInstance().getTrans().getCharacter(StringId.OPEN_SINGLE_QUOTE);
13 private char closeQuote = Instance.getInstance().getTrans().getCharacter(StringId.CLOSE_SINGLE_QUOTE);
14 private char openDoubleQuote = Instance.getInstance().getTrans().getCharacter(StringId.OPEN_DOUBLE_QUOTE);
15 private char closeDoubleQuote = Instance.getInstance().getTrans().getCharacter(StringId.CLOSE_DOUBLE_QUOTE);
08fe2e33
NR
16
17 @Override
10d558d2 18 public String getDefaultExtension(boolean readerTarget) {
08fe2e33
NR
19 return "";
20 }
21
22 @Override
23 protected void writeChapterHeader(Chapter chap) throws IOException {
24 writer.write("\n");
25
26 if (chap.getName() != null && !chap.getName().isEmpty()) {
d66deb8d
NR
27 writer.write(Instance.getInstance().getTrans().getString(StringId.CHAPTER_NAMED, chap.getNumber(),
28 chap.getName()));
08fe2e33 29 } else {
d66deb8d 30 writer.write(Instance.getInstance().getTrans().getString(StringId.CHAPTER_UNNAMED, chap.getNumber()));
08fe2e33
NR
31 }
32
33 writer.write("\n\n");
34 }
35
36 @Override
37 protected void writeTextLine(ParagraphType type, String line)
38 throws IOException {
39 switch (type) {
40 case NORMAL:
41 case QUOTE:
42 StringBuilder builder = new StringBuilder();
43 for (char car : line.toCharArray()) {
44 if (car == '—') {
45 builder.append("---");
46 } else if (car == '–') {
47 builder.append("--");
48 } else if (car == openDoubleQuote) {
49 builder.append("\"");
50 } else if (car == closeDoubleQuote) {
51 builder.append("\"");
52 } else if (car == openQuote) {
53 builder.append("'");
54 } else if (car == closeQuote) {
55 builder.append("'");
56 } else {
57 builder.append(car);
58 }
59 }
60
61 line = builder.toString();
62 break;
63 default:
64 break;
65 }
66
67 super.writeTextLine(type, line);
68 }
69}