Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
erp5
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Cédric Le Ninivin
erp5
Commits
56af7ab3
Commit
56af7ab3
authored
6 years ago
by
Cédric Le Ninivin
Committed by
Your Name
5 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Translation: Workflow State can have specific translation by portal_type
parent
3aa95537
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
31 additions
and
23 deletions
+31
-23
product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/ERP5Site_updateTranslationTable.py
...portal_skins/erp5_core/ERP5Site_updateTranslationTable.py
+2
-6
product/ERP5Type/Accessor/WorkflowState.py
product/ERP5Type/Accessor/WorkflowState.py
+8
-8
product/ERP5Type/Utils.py
product/ERP5Type/Utils.py
+16
-0
product/ERP5Type/__init__.py
product/ERP5Type/__init__.py
+1
-0
product/ERP5Type/patches/DCWorkflowGraph.py
product/ERP5Type/patches/DCWorkflowGraph.py
+4
-9
No files found.
product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/ERP5Site_updateTranslationTable.py
View file @
56af7ab3
from
Products.ERP5Type.Utils
import
get
MessageIdWithContext
from
Products.ERP5Type.Utils
import
get
TranslatedWorkflowStateWithPortalType
supported_languages
=
context
.
Localizer
.
get_supported_languages
()
translated_keys
=
{}
# This dict prevents entering the same key twice
...
...
@@ -38,11 +38,7 @@ for wf_id, portal_type_list in portal_workflow.getChainDict().items():
# translate state title as well
if
state
.
title
!=
''
:
state_var_title
=
'%s_title'
%
state_var
msg_id
=
getMessageIdWithContext
(
state
.
title
,
'state'
,
wf
.
id
)
translated_message
=
context
.
Localizer
.
erp5_ui
.
gettext
(
msg_id
,
default
=
''
,
lang
=
lang
).
encode
(
'utf-8'
)
if
translated_message
==
''
:
msg_id
=
state
.
title
translated_message
=
context
.
Localizer
.
erp5_ui
.
gettext
(
state
.
title
.
decode
(
'utf-8'
),
lang
=
lang
).
encode
(
'utf-8'
)
translated_message
,
msg_id
=
getTranslatedWorkflowStateWithPortalType
(
context
.
Localizer
,
wf
.
id
,
lang
,
portal_type
,
state
.
title
)
key
=
(
lang
,
portal_type
,
state_var_title
,
state_id
,
msg_id
)
if
not
translated_keys
.
has_key
(
key
):
translated_keys
[
key
]
=
None
# mark as translated
...
...
This diff is collapsed.
Click to expand it.
product/ERP5Type/Accessor/WorkflowState.py
View file @
56af7ab3
...
...
@@ -28,6 +28,7 @@
from
Acquisition
import
aq_base
from
Products.ERP5Type.PsycoWrapper
import
psyco
from
Products.ERP5Type.Utils
import
getTranslatedWorkflowStateWithPortalType
from
Base
import
Getter
as
BaseGetter
,
Setter
as
BaseSetter
from
warnings
import
warn
...
...
@@ -111,14 +112,13 @@ class TranslatedTitleGetter(TitleGetter):
wf
=
portal
.
portal_workflow
.
getWorkflowById
(
wf_id
)
selected_language
=
localizer
.
get_selected_language
()
state_title
=
wf
.
_getWorkflowStateOf
(
instance
).
title
msg_id
=
'%s [state in %s]'
%
(
state_title
,
wf_id
)
result
=
localizer
.
erp5_ui
.
gettext
(
msg_id
,
lang
=
selected_language
,
default
=
''
)
if
result
==
''
:
result
=
localizer
.
erp5_ui
.
gettext
(
state_title
,
lang
=
selected_language
)
return
result
.
encode
(
'utf8'
)
return
getTranslatedWorkflowStateWithPortalType
(
localizer
,
self
.
_key
,
selected_language
,
instance
.
getPortalType
(),
state_title
)[
0
]
psyco
.
bind
(
__call__
)
...
...
This diff is collapsed.
Click to expand it.
product/ERP5Type/Utils.py
View file @
56af7ab3
...
...
@@ -367,6 +367,22 @@ def int2letter(i):
def
getMessageIdWithContext
(
msg_id
,
context
,
context_id
):
return
'%s [%s in %s]'
%
(
msg_id
,
context
,
context_id
)
def
getTranslatedWorkflowStateWithPortalType
(
localizer
,
workflow_id
,
lang
,
portal_type
,
state_title
):
for
msg_id
,
default
in
[
(
getMessageIdWithContext
(
state_title
,
'state'
,
portal_type
),
''
),
(
getMessageIdWithContext
(
state_title
,
'state'
,
workflow_id
),
''
),
(
state_title
.
decode
(
'utf-8'
),
None
),
]:
translated_message
=
localizer
.
erp5_ui
.
gettext
(
msg_id
,
default
=
default
,
lang
=
lang
).
encode
(
'utf-8'
)
if
translated_message
:
return
translated_message
,
msg_id
#Get translation of msg id
def
getTranslationStringWithContext
(
self
,
msg_id
,
context
,
context_id
):
portal
=
self
.
getPortalObject
()
...
...
This diff is collapsed.
Click to expand it.
product/ERP5Type/__init__.py
View file @
56af7ab3
...
...
@@ -165,6 +165,7 @@ ModuleSecurityInfo('Products.ERP5Type.Utils').declarePublic(
'sortValueList'
,
'convertToUpperCase'
,
'UpperCase'
,
'convertToMixedCase'
,
'cartesianProduct'
,
'sleep'
,
'getCommonTimeZoneList'
,
'int2letter'
,
'getMessageIdWithContext'
,
'getTranslationStringWithContext'
,
'getTranslatedWorkflowStateWithPortalType'
,
'Email_parseAddressHeader'
,
'guessEncodingFromText'
,
'isValidTALESExpression'
)
...
...
This diff is collapsed.
Click to expand it.
product/ERP5Type/patches/DCWorkflowGraph.py
View file @
56af7ab3
...
...
@@ -30,6 +30,7 @@
from
AccessControl
import
ClassSecurityInfo
from
Products.ERP5Type.Globals
import
InitializeClass
from
Products.ERP5Type.Utils
import
getTranslatedWorkflowStateWithPortalType
from
Products.ERP5Type
import
Permissions
# Products.DCWorkflowGraph.config does not check the return value of
...
...
@@ -107,15 +108,9 @@ def getObjectTitle(obj, REQUEST=None):
localizer
=
obj
.
Localizer
original_title
=
title
for
lang
in
localizer
.
get_supported_languages
():
msg_id
=
'%s [state in %s]'
%
(
title
,
wf_id
)
translated_title
=
localizer
.
erp5_ui
.
gettext
(
msg_id
,
lang
=
lang
,
# Fallback on non-workflow state translation
default
=
localizer
.
erp5_ui
.
gettext
(
original_title
,
lang
=
lang
,
default
=
None
))
translated_message
,
msg_id
=
getTranslatedWorkflowStateWithPortalType
(
localizer
,
wf_id
,
lang
,
obj
.
getPortalType
(),
title
)
if
(
translated_title
is
not
None
and
translated_title
!=
original_title
):
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment