From 7b03ee7cb31725389aa888e9d2856a92e2e9b28e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois-Xavier=20Algrain?= <fxalgrain@tiolive.com> Date: Tue, 28 Jun 2011 12:45:35 +0200 Subject: [PATCH] Add Po File Generation from a Category File Add an action on the category tool. See tips on the dialog to know how to use it. This script is based on category file import --- .../generate_translation_file.xml | 85 ++++++++++ .../CategoryTool_generateTranslationFile.xml | 152 ++++++++++++++++++ ...Tool_viewGenerateTranslationFileDialog.xml | 134 +++++++++++++++ .../category_import_tips.xml | 114 +++++++++++++ .../your_error_report.xml | 101 ++++++++++++ .../your_import_file.xml | 106 ++++++++++++ .../your_translation_prefix.xml | 101 ++++++++++++ bt5/erp5_forge/bt/revision | 2 +- bt5/erp5_forge/bt/template_action_path_list | 1 + 9 files changed, 795 insertions(+), 1 deletion(-) create mode 100644 bt5/erp5_forge/ActionTemplateItem/portal_types/Category%20Tool/generate_translation_file.xml create mode 100644 bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/CategoryTool_generateTranslationFile.xml create mode 100644 bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/CategoryTool_viewGenerateTranslationFileDialog.xml create mode 100644 bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/CategoryTool_viewGenerateTranslationFileDialog/category_import_tips.xml create mode 100644 bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/CategoryTool_viewGenerateTranslationFileDialog/your_error_report.xml create mode 100644 bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/CategoryTool_viewGenerateTranslationFileDialog/your_import_file.xml create mode 100644 bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/CategoryTool_viewGenerateTranslationFileDialog/your_translation_prefix.xml diff --git a/bt5/erp5_forge/ActionTemplateItem/portal_types/Category%20Tool/generate_translation_file.xml b/bt5/erp5_forge/ActionTemplateItem/portal_types/Category%20Tool/generate_translation_file.xml new file mode 100644 index 0000000000..906ebe9dc7 --- /dev/null +++ b/bt5/erp5_forge/ActionTemplateItem/portal_types/Category%20Tool/generate_translation_file.xml @@ -0,0 +1,85 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>action_type/object_exchange</string> + </tuple> + </value> + </item> + <item> + <key> <string>category</string> </key> + <value> <string>object_exchange</string> </value> + </item> + <item> + <key> <string>condition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>generate_translation_file</string> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>View</string> + </tuple> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Action Information</string> </value> + </item> + <item> + <key> <string>priority</string> </key> + <value> <float>3.1</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Generate Translation File</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Expression" module="Products.CMFCore.Expression"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>string:${object_url}/CategoryTool_viewGenerateTranslationFileDialog</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/CategoryTool_generateTranslationFile.xml b/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/CategoryTool_generateTranslationFile.xml new file mode 100644 index 0000000000..8695e52198 --- /dev/null +++ b/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/CategoryTool_generateTranslationFile.xml @@ -0,0 +1,152 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>Script_magic</string> </key> + <value> <int>3</int> </value> + </item> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_container</string> </key> + <value> <string>container</string> </value> + </item> + <item> + <key> <string>name_context</string> </key> + <value> <string>context</string> </value> + </item> + <item> + <key> <string>name_m_self</string> </key> + <value> <string>script</string> </value> + </item> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_body</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +"""Return a po file from a spreadsheet of categories."""\n +from Products.ERP5Type.Message import translateString\n +from Products.ERP5Type.Document import newTempBase\n +\n +# Initialise some general variables\n +detailed_report_result = []\n +detailed_report_append = detailed_report_result.append\n +category_dict = {}\n +translation_dict = {}\n +translated_attributes_list = ["title", "description", "short_title"]\n +import_filename = getattr(import_file, \'filename\', \'?\')\n +request = container.REQUEST\n +response = request.RESPONSE\n +\n +if import_filename==\'\':\n + raise ValueError, "You must upload a file"\n +\n +def addReportLine(error, category, message):\n + report_line = newTempBase(context, \'item\')\n + report_line.edit(field_type=error, field_category=category, field_message=message) \n + detailed_report_append(report_line)\n +\n +def invalid_category_spreadsheet_handler(message):\n + # action taken when an invalid spreadsheet is provided.\n + # we *raise* a Redirect, because we don\'t want the transaction to succeed\n + # note, we could make a dialog parameter to allow import invalid spreadsheet:\n + raise \'Redirect\', \'%s/view?portal_status_message=%s\' % (\n + context.portal_categories.absolute_url(),\n + message)\n +\n +category_list_mapping = context.Base_getCategoriesSpreadSheetMapping(import_file,\n + invalid_spreadsheet_error_handler=invalid_category_spreadsheet_handler)\n +\n +if category_list_mapping.has_key(\'error_list\'):\n + context.REQUEST.other[\'category_import_report\'] = initial_category_list_mapping[\'error_list\']\n + return context.CategoryTool_viewImportReport()\n +\n +\n +\n +#Process on each category\n +for base_category, category_list in category_list_mapping.items():\n + for category in category_list:\n + #Take only needed attributes\n + for attribute in translated_attributes_list:\n + #Test attribute exist\n + if category.has_key(attribute) and category.has_key(translation_prefix+attribute):\n + initial_value = category.get(attribute,\'\').strip().replace(\'"\',"\'")\n + if initial_value != \'\':\n + translate_value = category.get(translation_prefix+attribute,\'\').strip().replace(\'"\',"\'")\n + if translate_value != \'\':\n + if translation_dict.has_key(initial_value):\n + #Test any duplicate translation (\'car\' can\'t be translated to \'voiture\' and \'auto\', \n + #user should be choice \'voiture\' or \'car\')\n + if translation_dict[initial_value] != translate_value: \n + message = "\'%s\' can\'t be translated by \'%s\'. It\'s already translated by \'%s\'" % (initial_value, translate_value, translation_dict[initial_value])\n + addReportLine(error="Duplicate",category=category[\'path\'], message=message)\n + else:\n + translation_dict[initial_value] = translate_value\n + else:\n + message = "No translation for attribute " + attribute\n + addReportLine(error="No translation",category=category[\'path\'], message=message) \n +\n +if len(translation_dict) == 0:\n + message = "Empty File"\n + addReportLine(error="No Results",category="General", message=message)\n +\n +if error_report and len(detailed_report_result) > 0:\n + context.REQUEST.other[\'category_import_report\'] = detailed_report_result\n + return context.CategoryTool_viewImportReport()\n +\n +#No error, we build the file\n +po_data = ""\n +for msgid, msgstr in translation_dict.items():\n + po_data += \'msgid "%s"\\nmsgstr "%s"\\n\\n\' % (msgid, msgstr)\n +\n +filename = "%s%s.po" % (translation_prefix,"".join(import_filename.split(\'.\')[:-1]))\n +document = context.portal_contributions.newContent(data=po_data,\n + temp_object=1,\n + filename=filename)\n +\n +response.setHeader(\'Content-disposition\', \'attachment; filename="%s"\' % filename)\n +return document.index_html(request, response, None)\n + + +]]></string> </value> + </item> + <item> + <key> <string>_params</string> </key> + <value> <string>import_file, error_report, translation_prefix, **kw</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>CategoryTool_generateTranslationFile</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/CategoryTool_viewGenerateTranslationFileDialog.xml b/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/CategoryTool_viewGenerateTranslationFileDialog.xml new file mode 100644 index 0000000000..5035645ea1 --- /dev/null +++ b/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/CategoryTool_viewGenerateTranslationFileDialog.xml @@ -0,0 +1,134 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ERP5Form" module="Products.ERP5Form.Form"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary/> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>action</string> </key> + <value> <string>CategoryTool_generateTranslationFile</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>edit_order</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>enctype</string> </key> + <value> <string>multipart/form-data</string> </value> + </item> + <item> + <key> <string>group_list</string> </key> + <value> + <list> + <string>left</string> + <string>center</string> + </list> + </value> + </item> + <item> + <key> <string>groups</string> </key> + <value> + <dictionary> + <item> + <key> <string>center</string> </key> + <value> + <list> + <string>your_import_file</string> + <string>your_translation_prefix</string> + <string>your_error_report</string> + <string>category_import_tips</string> + </list> + </value> + </item> + <item> + <key> <string>left</string> </key> + <value> + <list/> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>CategoryTool_viewGenerateTranslationFileDialog</string> </value> + </item> + <item> + <key> <string>method</string> </key> + <value> <string>POST</string> </value> + </item> + <item> + <key> <string>name</string> </key> + <value> <string>CategoryTool_viewGenerateTranslationFileDialog</string> </value> + </item> + <item> + <key> <string>pt</string> </key> + <value> <string>form_dialog</string> </value> + </item> + <item> + <key> <string>row_length</string> </key> + <value> <int>4</int> </value> + </item> + <item> + <key> <string>stored_encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Generate Translation File</string> </value> + </item> + <item> + <key> <string>unicode_mode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>update_action</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>update_action_title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/CategoryTool_viewGenerateTranslationFileDialog/category_import_tips.xml b/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/CategoryTool_viewGenerateTranslationFileDialog/category_import_tips.xml new file mode 100644 index 0000000000..6c73aa51a2 --- /dev/null +++ b/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/CategoryTool_viewGenerateTranslationFileDialog/category_import_tips.xml @@ -0,0 +1,114 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>default</string> + <string>editable</string> + <string>title</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>category_import_tips</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>default</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +Title, Description and Short Title can be translated.\n +<br/>\n +If your translation prefix is "french_", please add the column french_title to perform translation on this attribute.\n +<br />\n +Disable the error report will force to generate the file. + +]]></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_editor_field</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Tips</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/CategoryTool_viewGenerateTranslationFileDialog/your_error_report.xml b/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/CategoryTool_viewGenerateTranslationFileDialog/your_error_report.xml new file mode 100644 index 0000000000..f39d69c27e --- /dev/null +++ b/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/CategoryTool_viewGenerateTranslationFileDialog/your_error_report.xml @@ -0,0 +1,101 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>default</string> + <string>title</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>your_error_report</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>default</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_checkbox</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Display Error Report</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/CategoryTool_viewGenerateTranslationFileDialog/your_import_file.xml b/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/CategoryTool_viewGenerateTranslationFileDialog/your_import_file.xml new file mode 100644 index 0000000000..258146f89c --- /dev/null +++ b/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/CategoryTool_viewGenerateTranslationFileDialog/your_import_file.xml @@ -0,0 +1,106 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>display_width</string> + <string>required</string> + <string>title</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>your_import_file</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>display_width</string> </key> + <value> <int>80</int> </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_file_field</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Category Definition File</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/CategoryTool_viewGenerateTranslationFileDialog/your_translation_prefix.xml b/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/CategoryTool_viewGenerateTranslationFileDialog/your_translation_prefix.xml new file mode 100644 index 0000000000..704b157f70 --- /dev/null +++ b/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/CategoryTool_viewGenerateTranslationFileDialog/your_translation_prefix.xml @@ -0,0 +1,101 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>required</string> + <string>title</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>your_translation_prefix</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>your_string_field</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Translation Prefix</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_forge/bt/revision b/bt5/erp5_forge/bt/revision index 5cb222c0b2..9ecf271983 100644 --- a/bt5/erp5_forge/bt/revision +++ b/bt5/erp5_forge/bt/revision @@ -1 +1 @@ -659 \ No newline at end of file +660 \ No newline at end of file diff --git a/bt5/erp5_forge/bt/template_action_path_list b/bt5/erp5_forge/bt/template_action_path_list index dc540318d6..6478f210dc 100644 --- a/bt5/erp5_forge/bt/template_action_path_list +++ b/bt5/erp5_forge/bt/template_action_path_list @@ -19,6 +19,7 @@ Business Template | svn_commit Business Template | update_vcs_bt Business Template | update_vcs_bt_norevert Business Template | view_svn_repos_info +Category Tool | generate_translation_file Glossary Module | create_term_for_translation Glossary Module | export_po_file Glossary Module | find_duplicate_terms -- 2.30.9