diff --git a/config/strings.c b/config/strings.c index 0a3269dd..d898cdc6 100644 --- a/config/strings.c +++ b/config/strings.c @@ -115,6 +115,7 @@ const char *txt[] = { _("Help"), _("About Enlightenment"), _("About this theme"), + _("Theme menu"), _("Restart"), _("Log Out"), /* winops.menu */ diff --git a/config/strings.pl b/config/strings.pl deleted file mode 100644 index b164d760..00000000 --- a/config/strings.pl +++ /dev/null @@ -1,102 +0,0 @@ -#!/usr/bin/perl - -# Script to extract localizable strings from config files -# $ perl strings.pl *.cfg *.menu >strings.c - -sub x() { - - # actionclasses.cfg - $TTT = 0; - $TAT = 0; - - if (/__TOOLTIP_TEXT\s+\"(.*)\"/) { - # print " _(\"$1\"),\n" - if ($ttt) { - $ttt = "$ttt\\n$1"; - } else { - $ttt = "$1"; - } - $TTT = 1; - } elsif (/__TOOLTIP_ACTION_TEXT\s+\"(.*)\"/) { - # print " _(\"$1\"),\n"; - $tat = "$1"; - $TAT = 1; - } - - if (!($TTT) && $ttt) { - print " _(\"$ttt\"),\n"; - $ttt = ""; - } - - if (!($TAT) && $tat) { - print " _(\"$tat\"),\n"; - $tat = ""; - } - - # bindings.cfg - $TDT = 0; - - if (/^Tooltip\s+(.*)$/) { - # print " _(\"$1\"),\n" - if ($tdt) { - $tdt = "$tdt\\n$1"; - } else { - $tdt = "$1"; - } - $TDT = 1; - } - - if (!($TDT) && $tdt) { - print " _(\"$tdt\"),\n"; - $tdt = ""; - } - - # menus.cfg - if (/ADD_MENU_TITLE\s*\(\s*(\".*\")/) { - $t = "$1"; - print " _($t),\n"; - } - elsif (/ADD_.*MENU_TEXT_ITEM\s*\(\s*(\".*\"),/) { - $t = "$1"; - print " _($t),\n"; - } - - # *.menu - if (/^"([^"]+)"/) { - print " _(\"$1\"),\n"; - } -} - -# From e_gen_menu -@sl = ( - "User Menus", - "User Application List", - "Applications", - "Epplets", - "Restart", - "Log Out" -); - -# -# Start -# -print "#define _(x) x\n\n"; -print "const char *txt[] = {\n"; - -for ($i=0; $i <= $#ARGV; $i++) { - $f = $ARGV[$i]; - print "/* $f */\n"; - open F, $f; - for () { - x(); - } - close $f; -} - -# Other strings. -print "\n"; -foreach $s (@sl) { - print " _(\"$s\"),\n"; -} - -print "};\n"; diff --git a/config/strings.py b/config/strings.py new file mode 100755 index 00000000..9a22afa0 --- /dev/null +++ b/config/strings.py @@ -0,0 +1,110 @@ +#!/usr/bin/python3 +# +# Script to extract localizable strings from config files +# $ (cd config && ./strings.py *.cfg *.menu >strings.c) + +import sys + +ttt = '' +tat = '' +tdt = '' + + +def quote1(line): + return line.split('"')[1] + +def do_line_cfg(line): + global ttt, tat + global tdt + + # actionclasses.cfg + TTT = 0 + TAT = 0 + + if line.find('__TOOLTIP_TEXT') >= 0: + txt = quote1(line) + if ttt: + ttt += '\\n' + txt + else: + ttt = txt + TTT = 1 + elif line.find('__TOOLTIP_ACTION_TEXT') > 0: + txt = quote1(line) + tat = txt + TAT = 1 + + if TTT == 0 and ttt: + print(f' _("{ttt}"),') + ttt = '' + + if TAT == 0 and tat: + print(f' _("{tat}"),') + tat = '' + + # bindings.cfg + TDT = 0 + + if line.startswith('Tooltip'): + line = line.strip() + tok = line.split(' ', 1) + if tdt: + tdt += '\\n' + tok[1] + else: + tdt = tok[1] + TDT = 1 + + if TDT == 0 and tdt: + print(f' _("{tdt}"),') + tdt = '' + + # menus.cfg (obsolete) + if line.find('ADD_MENU_TITLE') >= 0: + txt = quote1(line) + print(f' _("{txt}"),') + elif line.find('ADD_MENU_TEXT_ITEM') >= 0 or \ + line.find('ADD_MENU_SUBMENU_TEXT_ITEM') >= 0: + txt = quote1(line) + print(f' _("{txt}"),') + + +def do_line_menu(line): + # *.menu + if line.startswith('"'): + txt = quote1(line) + print(f' _("{txt}"),') + + +# From e_gen_menu +sl = [ + 'User Menus', + 'User Application List', + 'Applications', + 'Epplets', + 'Restart', + 'Log Out', +] + +# +# Start +# +print('#define _(x) x\n') +print('const char *txt[] = {') + + +for arg in sys.argv[1:]: + print(f'/* {arg} */') + f = open(arg, 'r') + if arg.endswith('cfg'): + for line in f: + do_line_cfg(line) + elif arg.endswith('menu'): + for line in f: + do_line_menu(line) + f.close() + +# Other strings. +print('') +for str in sl: + print(f' _("{str}"),') + +print('};')