[Erp5-report] r23200 - in /erp5/trunk/bt5/erp5_forge: ExtensionTemplateItem/ SkinTemplateIt...

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Aug 27 16:41:51 CEST 2008


Author: yusei
Date: Wed Aug 27 16:41:44 2008
New Revision: 23200

URL: http://svn.erp5.org?rev=23200&view=rev
Log:
2008-08-27 yusei
* Improve pot file export.

Modified:
    erp5/trunk/bt5/erp5_forge/ExtensionTemplateItem/Glossary.py
    erp5/trunk/bt5/erp5_forge/ExtensionTemplateItem/PythonScriptParserUtility.py
    erp5/trunk/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_toolbox/ERP5Site_getToBeTranslatedMessageListFromEntireSystemAsPot.xml
    erp5/trunk/bt5/erp5_forge/bt/revision

Modified: erp5/trunk/bt5/erp5_forge/ExtensionTemplateItem/Glossary.py
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_forge/ExtensionTemplateItem/Glossary.py?rev=23200&r1=23199&r2=23200&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_forge/ExtensionTemplateItem/Glossary.py (original)
+++ erp5/trunk/bt5/erp5_forge/ExtensionTemplateItem/Glossary.py Wed Aug 27 16:41:44 2008
@@ -34,7 +34,8 @@
 from TAL.HTMLTALParser import HTMLTALParser
 from TAL.TALParser import TALParser
 from TAL.TALGenerator import TALGenerator
-def findStaticTranslationText(page_template):
+from TAL.DummyEngine import name_match
+def findStaticTranslationText(page_template, func_name_list):
   def iterate(node, target_name, function):
     if type(node) is list:
       for i in node:
@@ -59,6 +60,23 @@
     if interpreter._i18n_message_id_dict is not None:
       text_dict.update(interpreter._i18n_message_id_dict)
 
+  def addTextFromPythonExpression(node):
+    tal_expression = node[1]
+    if isinstance(tal_expression, (tuple, list)):
+      tal_expression = tal_expression[0]
+    tal_expression = tal_expression[1:-1]
+    match = name_match(tal_expression)
+    if match:
+      type, expression = match.group(1, 2)
+      if type=='python':
+        # clean up expression
+        expression = expression.strip()
+        expression = expression.replace('\n', ' ')
+        Base_getFunctionFirstArgumentValue = page_template.Base_getFunctionFirstArgumentValue
+        for func_name in func_name_list:
+          for message in Base_getFunctionFirstArgumentValue(func_name, expression):
+            text_dict[message] = None
+
   if page_template.html():
     generator = TALGenerator(xml=0)
     parser = HTMLTALParser(generator)
@@ -67,6 +85,7 @@
     parser = TALParser(generator)
   parser.parseString(page_template._text)
   iterate(parser.gen.program, 'insertTranslation', addText)
+  iterate(parser.gen.program, 'insertText', addTextFromPythonExpression)
   return text_dict.keys()
 
 #
@@ -74,11 +93,11 @@
 #
 from TAL.TALInterpreter import TALInterpreter
 from TAL.DummyEngine import DummyEngine
+class MyDummyEngine(DummyEngine):
 
-class MyDummyEngine(DummyEngine):
-  
   def evaluate(self, expression):
     return None
+
 
 class MyDummyTALInterpreter(TALInterpreter):
 

Modified: erp5/trunk/bt5/erp5_forge/ExtensionTemplateItem/PythonScriptParserUtility.py
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_forge/ExtensionTemplateItem/PythonScriptParserUtility.py?rev=23200&r1=23199&r2=23200&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_forge/ExtensionTemplateItem/PythonScriptParserUtility.py (original)
+++ erp5/trunk/bt5/erp5_forge/ExtensionTemplateItem/PythonScriptParserUtility.py Wed Aug 27 16:41:44 2008
@@ -11,8 +11,12 @@
     self.result = []
 
   def visitCallFunc(self, node, *args):
-    if (isinstance(node.node, compiler.ast.Name) and
-        node.node.name==self.func_name):
+    if ((isinstance(node.node, compiler.ast.Name) and
+         node.node.name==self.func_name)
+        or
+        (isinstance(node.node, compiler.ast.Getattr) and
+         node.node.attrname==self.func_name)
+        ):
       arg = node.args[0]
       value = None
       if isinstance(arg, compiler.ast.Const):

Modified: erp5/trunk/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_toolbox/ERP5Site_getToBeTranslatedMessageListFromEntireSystemAsPot.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_toolbox/ERP5Site_getToBeTranslatedMessageListFromEntireSystemAsPot.xml?rev=23200&r1=23199&r2=23200&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_toolbox/ERP5Site_getToBeTranslatedMessageListFromEntireSystemAsPot.xml (original)
+++ erp5/trunk/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_toolbox/ERP5Site_getToBeTranslatedMessageListFromEntireSystemAsPot.xml Wed Aug 27 16:41:44 2008
@@ -151,7 +151,7 @@
 #\n
 Base_findStaticTranslationText = context.Base_findStaticTranslationText\n
 for i in page_template_list:\n
-  for m in Base_findStaticTranslationText(i):\n
+  for m in Base_findStaticTranslationText(i, FUNC_NAME_LIST):\n
     add_message(m, portal_url.getRelativeContentURL(i))\n
 \n
 #\n

Modified: erp5/trunk/bt5/erp5_forge/bt/revision
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_forge/bt/revision?rev=23200&r1=23199&r2=23200&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_forge/bt/revision (original)
+++ erp5/trunk/bt5/erp5_forge/bt/revision Wed Aug 27 16:41:44 2008
@@ -1,1 +1,1 @@
-321
+323




More information about the Erp5-report mailing list