X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3321fc55fcf59f8f2da668a0845e2a547681d630..24a39c0dd5b46ad2de22da1c21758e651a24bd9b:/misc/languages/genlang.py diff --git a/misc/languages/genlang.py b/misc/languages/genlang.py index 91b4483020..c2765d10d2 100755 --- a/misc/languages/genlang.py +++ b/misc/languages/genlang.py @@ -12,7 +12,7 @@ def ReadTable(): f = open('langtabl.txt') for i in f.readlines(): ispl = i.split() - table.append((ispl[0], ispl[1], ispl[2], ispl[3], string.join(ispl[4:]))) + table.append((ispl[0], ispl[1], ispl[2], ispl[3], ispl[4], string.join(ispl[5:]))) f.close() return table @@ -20,6 +20,9 @@ def ReadTable(): def GenEnum(table): f = open('_wxlang.h', 'wt') f.write(""" + +// --- --- --- generated code begins here --- --- --- + // This enum is generated by misc/languages/genlang.py // When making changes, please put them into misc/languages/langtabl.txt enum wxLanguage @@ -36,6 +39,9 @@ enum wxLanguage // for custom, user-defined languages: wxLANGUAGE_USER_DEFINED }; + +// --- --- --- generated code ends here --- --- --- + """) f.close() @@ -43,6 +49,9 @@ enum wxLanguage def GenDocs(table): f = open('_wxlang.tex', 'wt') f.write(""" + +%% --- --- --- generated code begins here --- --- --- + %% This enum is generated by misc/languages/genlang.py %% When making changes, please put them into misc/languages/langtabl.txt \\begin{itemize}\\itemsep=0pt @@ -55,6 +64,9 @@ this for i in table: f.write('\\item %s\n' % (i[0].replace('_','\\_'))) f.write("""\\end{itemize} + +%% --- --- --- generated code ends here --- --- --- + """) f.close() @@ -62,22 +74,62 @@ this def GenTable(table): + all_langs = [] + all_sublangs = [] + + lngtable = '' + ifdefs = '' + + for i in table: + ican = '"%s"' % i[1] + if ican == '"-"': ican = '""' + ilang = i[2] + if ilang == '-': ilang = '0' + isublang = i[3] + if isublang == '-': isublang = '0' + if (i[4] == "LTR") : + ilayout = "wxLayout_LeftToRight" + elif (i[4] == "RTL"): + ilayout = "wxLayout_RightToLeft" + else: + print "ERROR: Invalid value for the layout direction"; + lngtable += ' LNG(%-38s %-7s, %-15s, %-34s, %s, %s)\n' % \ + ((i[0]+','), ican, ilang, isublang, ilayout, i[5]) + if ilang not in all_langs: all_langs.append(ilang) + if isublang not in all_sublangs: all_sublangs.append(isublang) + + for s in all_langs: + if s != '0': + ifdefs += '#ifndef %s\n#define %s (0)\n#endif\n' % (s, s) + for s in all_sublangs: + if s != '0' and s != 'SUBLANG_DEFAULT': + ifdefs += '#ifndef %s\n#define %s SUBLANG_DEFAULT\n#endif\n' % (s, s) + f = open('_wxlang.cpp', 'wt') f.write(""" +// --- --- --- generated code begins here --- --- --- + // This table is generated by misc/languages/genlang.py // When making changes, please put them into misc/languages/langtabl.txt -#ifdef __WXMSW__ +#ifndef __WIN32__ + +#define SETWINLANG(info,lang,sublang) + +#else + #define SETWINLANG(info,lang,sublang) \\ info.WinLang = lang, info.WinSublang = sublang; -#else -#define SETWINLANG(info,lang,sublang) -#endif -#define LNG(wxlang, canonical, winlang, winsublang, desc) \\ +%s + +#endif // __WIN32__ + +#define LNG(wxlang, canonical, winlang, winsublang, layout, desc) \\ info.Language = wxlang; \\ info.CanonicalName = wxT(canonical); \\ - info.Description = desc; \\ + info.LayoutDirection = layout; \\ + info.Description = wxT(desc); \\ SETWINLANG(info, winlang, winsublang) \\ AddLanguage(info); @@ -85,21 +137,14 @@ void wxLocale::InitLanguagesDB() { wxLanguageInfo info; wxStringTokenizer tkn; - -"""); - for i in table: - ican = '"%s"' % i[1] - if ican == '"-"': ican = '""' - ilang = i[2] - if ilang == '-': ilang = '0' - isublang = i[3] - if isublang == '-': isublang = '0' - f.write(' LNG(%-38s %-7s, %-15s, %-34s, %s)\n' % \ - ((i[0]+','), ican, ilang, isublang, i[4])) - f.write("""}; + %s +}; #undef LNG -""") + +// --- --- --- generated code ends here --- --- --- + +""" % (ifdefs, lngtable)) f.close()