From 4d12385eab0d00a5b87f8277a3c116a0e8138d71 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Wed, 17 Aug 2011 13:28:28 +0200 Subject: [PATCH] [imp] improved i18n to scan all files bzr revid: nicolas.vanhoren@openerp.com-20110817112828-tghtfms3zm3r0044 --- addons/base/po/base.pot | 452 +++++++++++++++++- addons/base_calendar/po/base_calendar.pot | 6 +- addons/base_dashboard/po/base_dashboard.pot | 30 +- .../po/base_default_home.pot | 24 +- addons/base_diagram/po/base_diagram.pot | 2 +- addons/base_gantt/po/base_gantt.pot | 2 +- addons/base_graph/po/base_graph.pot | 2 +- addons/base_hello/po/base_hello.pot | 2 +- addons/web_chat/po/web_chat.pot | 2 +- addons/web_mobile/po/web_mobile.pot | 54 ++- babel.cfg | 2 + npybabel.py | 53 +- 12 files changed, 604 insertions(+), 27 deletions(-) diff --git a/addons/base/po/base.pot b/addons/base/po/base.pot index e6fc85cfa0a..fb5285610d8 100644 --- a/addons/base/po/base.pot +++ b/addons/base/po/base.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-08-16 15:47+0200\n" +"POT-Creation-Date: 2011-08-17 13:28+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -30,3 +30,453 @@ msgstr "" msgid "   Create and Edit..." msgstr "" +#: addons/base/static/src/xml/base.xml:0 +msgid "x" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "#{title}" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "#{text}" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Powered by" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "openerp.com" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "." +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Loading..." +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Create" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Drop" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Backup" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Restore" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Password" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Back to Login" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "CREATE DATABASE" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Master password:" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "New database name:" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Load Demonstration data:" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Default language:" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Admin password:" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Confirm password:" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "DROP DATABASE" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Database:" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Master Password:" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "BACKUP DATABASE" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "RESTORE DATABASE" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "File:" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "CHANGE MASTER PASSWORD" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "New master password:" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Confirm new master password:" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "User:" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Password:" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Database" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Login" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Bad username or password" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "" +"We think that daily job activities can be more intuitive, efficient, " +"automated, .. and even fun." +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "OpenERP's vision to be:" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Full featured" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "" +"Today's enterprise challenges are multiple. We provide one module for " +"each need." +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Open Source" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "" +"To Build a great product, we rely on the knowledge of thousands of " +"contributors." +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "User Friendly" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "In order to be productive, people need clean and easy to use interface." +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "-" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "rpc_session_id:" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "1" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "LOGOUT" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "h3" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "<" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid ">" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid ">" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Add" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Unhandled widget" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "?" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid ":" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Open..." +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Create..." +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Search..." +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "One2Many widget" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Uploading ..." +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Select" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Save As" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Clear" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Advanced Filter" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "-- Filters --" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "-- Actions --" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Save Filter" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Manage Filters" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Filter Name:" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "(Any existing filter with the same name will be replaced)" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "(?)" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Any of the following conditions must match" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "All the following conditions must match" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "None of the following conditions must match" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Add condition" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "and" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Cancel" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Save" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Save & New" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Save & Close" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Export" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "" +"This wizard will export all data that matches the current search criteria" +" to a CSV file.\n" +" You can export all data or only the fields that can be " +"reimported after modification." +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Export Type:" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Import Compatible Export" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Export all Data" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Export Format" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "CSV" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Excel" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Available fields" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Fields to export" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Save fields list" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Remove" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Remove All" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Name" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid " " +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Save as:" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Ok" +msgstr "" + +#: addons/base/static/src/xml/base.xml:0 +msgid "Saved exports:" +msgstr "" + diff --git a/addons/base_calendar/po/base_calendar.pot b/addons/base_calendar/po/base_calendar.pot index 5e81313e02c..a4133788361 100644 --- a/addons/base_calendar/po/base_calendar.pot +++ b/addons/base_calendar/po/base_calendar.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-08-16 15:47+0200\n" +"POT-Creation-Date: 2011-08-17 13:28+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,3 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 0.9.6\n" +#: addons/base_calendar/static/src/xml/base_calendar.xml:0 +msgid " " +msgstr "" + diff --git a/addons/base_dashboard/po/base_dashboard.pot b/addons/base_dashboard/po/base_dashboard.pot index 5e81313e02c..0a243063b4e 100644 --- a/addons/base_dashboard/po/base_dashboard.pot +++ b/addons/base_dashboard/po/base_dashboard.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-08-16 15:47+0200\n" +"POT-Creation-Date: 2011-08-17 13:28+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,3 +17,31 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 0.9.6\n" +#: addons/base_dashboard/static/src/xml/base_dashboard.xml:0 +msgid "Reset" +msgstr "" + +#: addons/base_dashboard/static/src/xml/base_dashboard.xml:0 +msgid "Undo" +msgstr "" + +#: addons/base_dashboard/static/src/xml/base_dashboard.xml:0 +msgid "Add Widget" +msgstr "" + +#: addons/base_dashboard/static/src/xml/base_dashboard.xml:0 +msgid "Change layout" +msgstr "" + +#: addons/base_dashboard/static/src/xml/base_dashboard.xml:0 +msgid "Choose dashboard layout" +msgstr "" + +#: addons/base_dashboard/static/src/xml/base_dashboard.xml:0 +msgid "progress:" +msgstr "" + +#: addons/base_dashboard/static/src/xml/base_dashboard.xml:0 +msgid "%" +msgstr "" + diff --git a/addons/base_default_home/po/base_default_home.pot b/addons/base_default_home/po/base_default_home.pot index 5e81313e02c..efd2cc81004 100644 --- a/addons/base_default_home/po/base_default_home.pot +++ b/addons/base_default_home/po/base_default_home.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-08-16 15:47+0200\n" +"POT-Creation-Date: 2011-08-17 13:28+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,3 +17,25 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 0.9.6\n" +#: addons/base_default_home/static/src/xml/base_default_home.xml:0 +msgid "Welcome to OpenERP" +msgstr "" + +#: addons/base_default_home/static/src/xml/base_default_home.xml:0 +msgid "" +"Don't forget to bookmark your application address to come back\n" +" later:" +msgstr "" + +#: addons/base_default_home/static/src/xml/base_default_home.xml:0 +msgid "URL:" +msgstr "" + +#: addons/base_default_home/static/src/xml/base_default_home.xml:0 +msgid "login:" +msgstr "" + +#: addons/base_default_home/static/src/xml/base_default_home.xml:0 +msgid "Install" +msgstr "" + diff --git a/addons/base_diagram/po/base_diagram.pot b/addons/base_diagram/po/base_diagram.pot index 5e81313e02c..b1700659a8f 100644 --- a/addons/base_diagram/po/base_diagram.pot +++ b/addons/base_diagram/po/base_diagram.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-08-16 15:47+0200\n" +"POT-Creation-Date: 2011-08-17 13:28+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/addons/base_gantt/po/base_gantt.pot b/addons/base_gantt/po/base_gantt.pot index 5e81313e02c..b1700659a8f 100644 --- a/addons/base_gantt/po/base_gantt.pot +++ b/addons/base_gantt/po/base_gantt.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-08-16 15:47+0200\n" +"POT-Creation-Date: 2011-08-17 13:28+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/addons/base_graph/po/base_graph.pot b/addons/base_graph/po/base_graph.pot index 5e81313e02c..b1700659a8f 100644 --- a/addons/base_graph/po/base_graph.pot +++ b/addons/base_graph/po/base_graph.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-08-16 15:47+0200\n" +"POT-Creation-Date: 2011-08-17 13:28+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/addons/base_hello/po/base_hello.pot b/addons/base_hello/po/base_hello.pot index 5e81313e02c..b1700659a8f 100644 --- a/addons/base_hello/po/base_hello.pot +++ b/addons/base_hello/po/base_hello.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-08-16 15:47+0200\n" +"POT-Creation-Date: 2011-08-17 13:28+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/addons/web_chat/po/web_chat.pot b/addons/web_chat/po/web_chat.pot index 5e81313e02c..b1700659a8f 100644 --- a/addons/web_chat/po/web_chat.pot +++ b/addons/web_chat/po/web_chat.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-08-16 15:47+0200\n" +"POT-Creation-Date: 2011-08-17 13:28+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/addons/web_mobile/po/web_mobile.pot b/addons/web_mobile/po/web_mobile.pot index 5e81313e02c..b8582b3f12f 100644 --- a/addons/web_mobile/po/web_mobile.pot +++ b/addons/web_mobile/po/web_mobile.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-08-16 15:47+0200\n" +"POT-Creation-Date: 2011-08-17 13:28+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,3 +17,55 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 0.9.6\n" +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "OpenERP" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Home" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Database:" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Choose Database..." +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Login:" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Password:" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Login" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid ":" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Shortcuts" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Menu" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Options" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Logout" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Preferences" +msgstr "" + diff --git a/babel.cfg b/babel.cfg index c8899df863f..02820af13d6 100644 --- a/babel.cfg +++ b/babel.cfg @@ -1,6 +1,8 @@ [extractors] qweb = npybabel:extract_qweb +xmljs = npybabel:extract_xmljs [javascript: static/src/js/**.js] [qweb: static/src/xml/**.xml] +[xmljs: static/src/xml/**.xml] diff --git a/npybabel.py b/npybabel.py index 3d9deaec676..0a3c75025c9 100755 --- a/npybabel.py +++ b/npybabel.py @@ -5,15 +5,30 @@ import sys from pkg_resources import load_entry_point import re import json +import xml.etree.ElementTree as elt if __name__ == '__main__': sys.exit( load_entry_point('Babel==0.9.6', 'console_scripts', 'pybabel')() ) -QWEB_EXPR = re.compile(r"""(?:\< *t\-tr *\>(.*?)\< *\/t\-tr *\>)|(?:\_t *\( *((?:"(?:[^"\\]|\\.)*")|(?:'(?:[^'\\]|\\.)*')) *\))""") -XML_GROUP = 1 -JS_GROUP = 2 +XMLJS_EXPR = re.compile(r"""(?:\_t *\( *((?:"(?:[^"\\]|\\.)*")|(?:'(?:[^'\\]|\\.)*')) *\))""") + +def extract_xmljs(fileobj, keywords, comment_tags, options): + content = fileobj.read() + found = XMLJS_EXPR.finditer(content) + result = [] + index = 0 + line_nbr = 0 + for f in found: + mes = f.group(1) + mes = json.loads(mes) + while index < f.start(): + if content[index] == "\n": + line_nbr += 1 + index += 1 + result.append((line_nbr, None, mes, "")) + return result def extract_qweb(fileobj, keywords, comment_tags, options): """Extract messages from XXX files. @@ -28,19 +43,23 @@ def extract_qweb(fileobj, keywords, comment_tags, options): tuples :rtype: ``iterator`` """ - content = fileobj.read() - found = QWEB_EXPR.finditer(content) result = [] - index = 0 - line_nbr = 0 - for f in found: - group = XML_GROUP if f.group(XML_GROUP) else JS_GROUP - mes = f.group(group) - if group == JS_GROUP: - mes = json.loads(mes) - while index < f.start(): - if content[index] == "\n": - line_nbr += 1 - index += 1 - result.append((line_nbr, None, mes, "")) + def handle_text(str): + str = (str or "").strip() + if not str: + return + result.append((0, None, str, "")) + + def iter_elements(current_element): + for el in current_element: + if "t-js" not in el.attrib and \ + not ("t-jquery" in el.attrib and "t-operation" not in el.attrib) and \ + not ("t-trad" in el.attrib and el.attrib["t-trad"].strip() == "off"): + handle_text(el.text) + iter_elements(el) + handle_text(el.tail) + + tree = elt.parse(fileobj) + iter_elements(tree.getroot()) + return result