From 3c6ad988fb4e7df65cba635f86dd594bfa23fd35 Mon Sep 17 00:00:00 2001 From: rubidium Date: Sat, 25 Apr 2009 21:09:42 +0000 Subject: [PATCH] (svn r16145) -Add: '-export-pragmas' to strgen so external tools can (hopefully) automatically be updated to support new pragmas --- src/strgen/strgen.cpp | 10 ++++++++++ src/table/strgen_tables.h | 28 ++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/src/strgen/strgen.cpp b/src/strgen/strgen.cpp index 8aeab932ee..594b778a93 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 .lng." diff --git a/src/table/strgen_tables.h b/src/table/strgen_tables.h index 99b412f98b..e3024ba8f2 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" }, +};