| 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 | }; |