summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2009-04-25 21:09:42 +0000
committerrubidium <rubidium@openttd.org>2009-04-25 21:09:42 +0000
commita36ab04d5dd345a020ab4168de11db8f7ea087cb (patch)
tree42e82146ba552b8ef44f2d55b8c6ba657b6f64ac
parent802d31aab683d1e6baeafd8f53bbe7187b39e69a (diff)
downloadopenttd-a36ab04d5dd345a020ab4168de11db8f7ea087cb.tar.xz
(svn r16145) -Add: '-export-pragmas' to strgen so external tools can (hopefully) automatically be updated to support new pragmas
-rw-r--r--src/strgen/strgen.cpp10
-rw-r--r--src/table/strgen_tables.h28
2 files changed, 38 insertions, 0 deletions
diff --git a/src/strgen/strgen.cpp b/src/strgen/strgen.cpp
index 8aeab932e..594b778a9 100644
--- a/src/strgen/strgen.cpp
+++ b/src/strgen/strgen.cpp
@@ -1249,6 +1249,15 @@ int CDECL main(int argc, char *argv[])
return 0;
}
+ if (strcmp(argv[1], "-export-pragmas") == 0) {
+ printf("name\tflags\tdefault\tdescription\n");
+ for (int i = 0; i < lengthof(_pragmas); i++) {
+ printf("\"%s\"\t%s\t\"%s\"\t\"%s\"\n",
+ _pragmas[i][0], _pragmas[i][1], _pragmas[i][2], _pragmas[i][3]);
+ }
+ return 0;
+ }
+
if (strcmp(argv[1], "-t") == 0 || strcmp(argv[1], "--todo") == 0) {
_show_todo |= 1;
argc--, argv++;
@@ -1272,6 +1281,7 @@ int CDECL main(int argc, char *argv[])
" -d | --dest_dir put output file in the specified directory, create if needed\n"
" -export-commands export all commands and exit\n"
" -export-plurals export all plural forms and exit\n"
+ " -export-pragmas export all pragmas and exit\n"
" Run without parameters and strgen will search for english.txt and parse it,\n"
" creating strings.h. Passing an argument, strgen will translate that language\n"
" file using english.txt as a reference and output <language>.lng."
diff --git a/src/table/strgen_tables.h b/src/table/strgen_tables.h
index 99b412f98..e3024ba8f 100644
--- a/src/table/strgen_tables.h
+++ b/src/table/strgen_tables.h
@@ -162,3 +162,31 @@ static const PluralForm _plural_forms[] = {
{ 2, "Two forms, singular used for everything ending in 1 but not in 11" },
{ 3, "Three forms, special case for 1 and 2, 3, or 4" },
};
+
+/* Flags:
+ * 0 = nothing
+ * t = translator editable
+ * l = ltr/rtl choice
+ * p = plural choice
+ * d = separator char (replace spaces with {NBSP})
+ * x1 = hexadecimal number of 1 byte
+ * x2 = hexadecimal number of 2 bytes
+ * g = gender
+ * c = cases
+ * a = array, i.e. list of strings
+ */
+ /** All pragmas used */
+static const char *_pragmas[][4] = {
+ /* name flags default description */
+ { "name", "0", "", "English name for the language" },
+ { "ownname", "t", "", "Localised name for the language" },
+ { "isocode", "0", "", "ISO code for the language" },
+ { "plural", "tp", "0", "Plural form to use" },
+ { "textdir", "tl", "ltr", "Text direction. Either ltr (left-to-right) or rtl (right-to-left)" },
+ { "digitsep", "td", ",", "Digit grouping separator for non-currency numbers" },
+ { "digitsepcur", "td", ",", "Digit grouping seprarator for currency numbers" },
+ { "winlangid", "x2", "0x0000", "Language ID for Windows" },
+ { "grflangid", "x1", "0x00", "Language ID for NewGRFs" },
+ { "gender", "tag", "", "List of genders" },
+ { "case", "tac", "", "List of cases" },
+};