Initial commit (working)
[fanfix.git] / src / be / nikiroo / fanfix / bundles / StringId.java
1 package be.nikiroo.fanfix.bundles;
2
3 import java.io.IOException;
4 import java.io.Writer;
5
6 import be.nikiroo.utils.resources.Meta;
7 import be.nikiroo.utils.resources.bundles.Bundle;
8
9 /**
10 * The {@link Enum} representing textual information to be translated to the
11 * user as a key.
12 *
13 * Note that each key that should be translated <b>must</b> be annotated with a
14 * {@link Meta} annotation.
15 *
16 * @author niki
17 */
18 public enum StringId {
19 /**
20 * A special key used for technical reasons only, without annotations so it
21 * is not visible in <tt>.properties</tt> files.
22 * <p>
23 * Use it when you need NO translation.
24 */
25 NULL, //
26 /**
27 * A special key used for technical reasons only, without annotations so it
28 * is not visible in <tt>.properties</tt> files.
29 * <p>
30 * Use it when you need a real translation but still don't have a key.
31 */
32 DUMMY, //
33 @Meta(what = "error message", where = "cli", format = "%s = supported input, %s = supported output", info = "syntax error message")
34 ERR_SYNTAX, //
35 @Meta(what = "error message", where = "cli", format = "%s = support name, %s = support desc", info = "an input or output support type description")
36 ERR_SYNTAX_TYPE, //
37 @Meta(what = "error message", where = "cli", format = "%s = input string", info = "Error when retrieving data")
38 ERR_LOADING, //
39 @Meta(what = "error message", where = "cli", format = "%s = save target", info = "Error when saving to given target")
40 ERR_SAVING, //
41 @Meta(what = "error message", where = "cli", format = "%s = bad output format", info = "Error when unknown output format")
42 ERR_BAD_OUTPUT_TYPE, //
43 @Meta(what = "error message", where = "cli", format = "%s = input string", info = "Error when converting input to URL/File")
44 ERR_BAD_URL, //
45 @Meta(what = "error message", where = "cli", format = "%s = input url", info = "URL/File not supported")
46 ERR_NOT_SUPPORTED, //
47 @Meta(what = "error message", where = "BasicSupport", format = "%s = cover URL", info = "Failed to download cover : %s")
48 ERR_BS_NO_COVER, //
49 @Meta(what = "char", where = "LaTeX/BasicSupport", format = "single char", info = "Canonical OPEN SINGLE QUOTE char (for instance: `)")
50 OPEN_SINGLE_QUOTE, //
51 @Meta(what = "char", where = "LaTeX/BasicSupport", format = "single char", info = "Canonical CLOSE SINGLE QUOTE char (for instance: ‘)")
52 CLOSE_SINGLE_QUOTE, //
53 @Meta(what = "char", where = "LaTeX/BasicSupport", format = "single char", info = "Canonical OPEN DOUBLE QUOTE char (for instance: “)")
54 OPEN_DOUBLE_QUOTE, //
55 @Meta(what = "char", where = "LaTeX/BasicSupport", format = "single char", info = "Canonical CLOSE DOUBLE QUOTE char (for instance: ”)")
56 CLOSE_DOUBLE_QUOTE, //
57 @Meta(what = "chapter name", where = "BasicSupport", format = "", info = "Name of the description fake chapter")
58 DESCRIPTION, //
59 @Meta(what = "chapter name", where = "", format = "%d = number, %s = name", info = "Name of a chapter with a name")
60 CHAPTER_NAMED, //
61 @Meta(what = "chapter name", where = "", format = "%d = number, %s = name", info = "Name of a chapter without name")
62 CHAPTER_UNNAMED, //
63 @Meta(what = "input format description", where = "SupportType", format = "%s = type", info = "Default description when the type is not known by i18n")
64 INPUT_DESC, //
65 @Meta(what = "input format description", where = "SupportType", format = "", info = "Description of this input type")
66 INPUT_DESC_EPUB, //
67 @Meta(what = "input format description", where = "SupportType", format = "", info = "Description of this input type")
68 INPUT_DESC_TEXT, //
69 @Meta(what = "input format description", where = "SupportType", format = "", info = "Description of this input type")
70 INPUT_DESC_INFO_TEXT, //
71 @Meta(what = "input format description", where = "SupportType", format = "", info = "Description of this input type")
72 INPUT_DESC_FANFICTION, //
73 @Meta(what = "input format description", where = "SupportType", format = "", info = "Description of this input type")
74 INPUT_DESC_FIMFICTION, //
75 @Meta(what = "input format description", where = "SupportType", format = "", info = "Description of this input type")
76 INPUT_DESC_MANGAFOX, //
77 @Meta(what = "input format description", where = "SupportType", format = "", info = "Description of this input type")
78 INPUT_DESC_E621, //
79 @Meta(what = "output format description", where = "OutputType", format = "%s = type", info = "Default description when the type is not known by i18n")
80 OUTPUT_DESC, //
81 @Meta(what = "output format description", where = "OutputType", format = "", info = "Description of this output type")
82 OUTPUT_DESC_EPUB, //
83 @Meta(what = "output format description", where = "OutputType", format = "", info = "Description of this output type")
84 OUTPUT_DESC_TEXT, //
85 @Meta(what = "output format description", where = "OutputType", format = "", info = "Description of this output type")
86 OUTPUT_DESC_INFO_TEXT, //
87 @Meta(what = "output format description", where = "OutputType", format = "", info = "Description of this output type")
88 OUTPUT_DESC_CBZ, //
89 @Meta(what = "output format description", where = "OutputType", format = "", info = "Description of this output type")
90 OUTPUT_DESC_LATEX, //
91 @Meta(what = "output format description", where = "OutputType", format = "", info = "Description of this output type")
92 OUTPUT_DESC_SYSOUT, //
93 @Meta(what = "error message", where = "LaTeX", format = "%s = the unknown 2-code language", info = "Error message for unknown 2-letter LaTeX language code")
94 LATEX_LANG_UNKNOWN, //
95 @Meta(what = "'by' prefix before author name", where = "", format = "", info = "used to output the author, make sure it is covered by Config.BYS for input detection")
96 BY, //
97
98 ;
99
100 /**
101 * Write the header found in the configuration <tt>.properties</tt> file of
102 * this {@link Bundle}.
103 *
104 * @param writer
105 * the {@link Writer} to write the header in
106 * @param name
107 * the file name
108 *
109 * @throws IOException
110 * in case of IO error
111 */
112 static public void writeHeader(Writer writer, String name)
113 throws IOException {
114 writer.write("# " + name + " translation file (UTF-8)\n");
115 writer.write("# \n");
116 writer.write("# Note that any key can be doubled with a _NOUTF suffix\n");
117 writer.write("# to use when the NOUTF env variable is set to 1\n");
118 writer.write("# \n");
119 writer.write("# Also, the comments always refer to the key below them.\n");
120 writer.write("# \n");
121 }
122 };