|View Issue Details|
|Type||Category||Severity||Reproducibility||Date Submitted||Last Update|
|feature request||[Openbravo ERP] E. Translation||minor||N/A||2020-09-01 17:29||2020-09-10 07:17|
|Priority||normal||Resolution||open||Fixed in Version|
|Status||scheduled||Fix in branch||Fixed in SCM revision|
|OS Version||Database version||Ant version|
|Product Version||SCM revision|
|Review Assigned To||vmromanos|
|Regression introduced in release|
|Regression introduced by commit|
|Triggers an Emergency Pack||No|
0044956: Reduce translation effort project
|Description||Creating a full translation from scratch for Openbravo, especially for the backend, is a very time consuming task. Only the backend (Core + embedded modules) adds more than 19.000 terms to translate.|
The project is about to reduce the translation scope to the "most important" parts only, so the translation effort can be heavily reduced without a big impact on the user experience.
The things that should be excluded from the translation are:
1. Description and help. This adds an important effort to the translation as they usually include long sentences.
2. Anything that is not active.
3. Any text interfaces belonging to JRXML files, as they will be superseded by the new reporting tool based on jasper reports.
4. Anything related to legacy/unsupported or not key Openbravo areas (like Manufacturing, Projects, etc.)
5. Anything that a normal end user doesn't see (like for example the Application Dictionary stuff, which is more oriented to developers).
To easily track what is elegible for a reduced translation, there will be a new flag at Menu level called "Included in Reduced Translation". This flag will control whether anything directly or indirectly linked to this menu entry (windows, tabs, fields, elements, processes, etc.) will be included into a reduced translation.
By default any existing menu entry will be included for reduced translation, however as part of the project we will define the proper configuration based on the above rules for the existing backend menu entries.
When Exporting the translation through the Import/Export Translations window, the user could select whether to export the full or the reduced version based on a new flag "Export Reduced Version", which will be unset by default.
|Steps To Reproduce||NA|
|Proposed Solution||1. Create a new flag at Menu window called "Included in Reduced Translation"|
2. Add an EventObserver to automatically update on cascade any entry inside the summary level updated entity. So if I unset "Application Dictionary" record (which is a summary level record), any other record inside will be automatically unset too.
3. Add a new flag "Export Reduced Version" in Import/Export Translations window to allow the user to export the full/reduced version.
4. Modify the export translation engine to exclude the necessary parts according to the AD_Menu definition. Note this is the most complex part as some entities require deep navigation to reach the AD_Menu configuration. For example: Field -> Tab -> Window -> Menu.
Each of the entities will have its own logic, and the code should be ready to be adapted to new entities if necessary.
Please note that for the specific entities "AD_Message" and "AD_TextInterfaces" it will be very difficult to reach the Menu entry, so these two entities are out of the scope of this phase.
|Tags||No tags attached.|
Test plan 1: "General behavior"
1. In a backend only environment without this development
2. Login as System Admin
3. Go to Language window
4. Select es_ES and set the System Language flag. Press Verify Languages
5. Go to Import/Export translations and select Spanish (Spain).
6. Press export.
7. Go to the place where the attachment folder is configured in your instance (see Openbravo.properties). Move the lang/es_ES folder to another place, for example to /tmp/xml/allWithoutBranch.
8. Now update your instance to have this development.
9. Export again the es_ES language as we did before, but this time select the Export Reduced Version flag.
10. Run a meld between the previous export folder and this one. Verify many records don't appear anymore in this version. Verify neither help nor description are available anymore.
11. Move the es_ES folder to the /tmp/xml/reducedWithBranch2/
For the next group of test plans you must run the following commands inside the /tmp/xml/ folder, which contains two folders with the full and the reduced translations.
Test plan 2: "AD_TextInterfaces"
1. Run grep -r "ACCS_ACCOUNT_ID_D" *
2. Verify it doesn't appear into the reduced version as it belongs to a JRXML file
Test plan 3: "AD_Element direct access through window"
1. Run fgrep -r "\"Application\"" * | grep AD_ELEMENT
2. Verify it doesn't appear into the reduced version as it is only used in a window not available for reduced translation. The window is directly accessed through the "Applications" menu entry.
3. Now go to the Menu window, search for Applications entry and set the Included In Reduced Version
4. Export the reduced translation again
5. Run fgrep -r "\"Application\"" * | grep AD_ELEMENT. Verify the element does appear
Test plan 4: "AD_Element indirect access through process definition"
1. Run fgrep -r "\"Logger\"" * | grep AD_ELEMENT
2. Verify it doesn't appear into the reduced version as it is only used in a window not available for reduced translation. The window is indirectly linked to through the "Log Management" window reference which is used by the "Log Management Process" definition , which is defined as a menu entry.
Test plan 5: "AD_Field"
1. Run fgrep -r "Copy from Attribute" *
2. Verify it doesn't appear into the reduced version as it is only used in a window not available for reduced translation. The window is directly accessed through the "Process Plan" menu entry.
3. Set the "Process Plan" menu entry as available for reduced translation.
4. Export the reduced translation again.
5. Repeat grep and verify this time it properly appears
Test plan 6: "AD_Process and AD_Menu"
1. Run fgrep -r "Project Status Summary" *
2. Verify it doesn't appear into the reduced version as it is only used in a report not available for reduced translation. The report is directly accessed through the "Project Status Summary" menu entry.
3. Verify also the grep doesn't detect neither the associated menu entry.
Test plan 6: "Process Definition and AD_Menu"
1. Run grep -r "Log Management" *
2. Verify it doesn't appear the related process definition and menu entry, as the menu entry "Log Management" is not available for reduced translation.
Test plan 7: "AD_Process_Para"
1. Run grep -r "Target Payment Rule" *
2. Verify the param doesn't appear in the reduced translation as it belongs to a process without a menu entry.
Test plan 8: "AD_Window and AD_Menu"
1. Run grep -r "Windows, Tabs, and Fields" *
2. Verify neither the window nor the menu entry is available in the reduced translation as the "Windows, Tabs and Fields" menu entry is not included for reduced translation
Test plan 9: "AD_Tab"
1. Run grep -r "Window Translation" *
2. Verify neither the Tab nor the element is available in the reduced translation as the "Windows, Tabs and Fields" menu entry is not included for reduced translation
Test plan 10: "AD_Reference"
1. Open AD_REFERENCE_TRL_es_ES.xml
2. Verify it doesn't contain any record to translate
Test plan 11: "OBUISEL_SELECTOR"
1. Open OBUISEL_SELECTOR_TRL_es_ES.xml
2. Verify it doesn't contain any record to translate
Test plan 12: "AD_FIELDGROUP"
1. Run fgrep -r "\"Assets\"" * | grep AD_FIELDGROUP
2. Verify the fieldgroup is not available in reduced translation, because it is only used in the "General Ledger Configuration" whose menu entry "General Ledger Configuration" is not configured for reduced translation
Test plan 13: "AD_REF_LIST"
1. Run fgrep -r "\"Servlet\"" *
2. Verify the reference list value is not available in reduced translation, because it is only used by the "AD Implementation Mapping" window, whose menu entry "AD Implementation Mapping" is not configured for reduced translation
Test plan 14: "Menu Event Observer"
1. Login as System admin and go to Menu window
2. Search for Application Dictionary record. Set "Included in Reduced Translation" and save it.
3. Go to tree view and verify every record inside this folder has the flag to Yes too.
4. Set the flag to No in Application Dictionary record and save.
5. Go to tree view and verify every record inside this folder has the flag to No too.
|Statistics about the translation reduction in Core can be found at https://docs.google.com/spreadsheets/d/1m1CoGiKzJ5MIwi08KvJCIgZNRp0T1Ev9vS7Vx2f38ro/edit?usp=sharing [^]|
Merge Request created: https://gitlab.com/openbravo/product/openbravo/-/merge_requests/146 [^]
Merge Request created: https://gitlab.com/openbravo/tools/translations/org.openbravo.translator.helper/-/merge_requests/1 [^]
|2020-09-01 17:29||vmromanos||New Issue|
|2020-09-01 17:29||vmromanos||Assigned To||=> AtulOpenbravo|
|2020-09-01 17:29||vmromanos||Modules||=> Core|
|2020-09-01 17:29||vmromanos||Triggers an Emergency Pack||=> No|
|2020-09-01 17:29||vmromanos||Status||new => scheduled|
|2020-09-03 16:15||vmromanos||Review Assigned To||=> vmromanos|
|2020-09-03 16:23||vmromanos||Note Added: 0122597|
|2020-09-03 16:42||vmromanos||Note Added: 0122598|
|2020-09-04 12:29||hgbot||Note Added: 0122686|
|2020-09-10 07:17||hgbot||Note Added: 0122895|
|Copyright © 2000 - 2009 MantisBT Group|