#226 — ITranslatable.getTranslation() implementation does not return the self like described by the interface
by
Carsten Senger
—
last modified
Feb 02, 2010 03:00 PM
| State | Resolved |
|---|---|
| Version: | 3.x |
| Area | Functionality |
| Issue type | Bug |
| Severity | Medium |
| Submitted by | Carsten Senger |
| Submitted on | Dec 15, 2009 |
| Responsible |
—
|
| Target release: | 3.x |
Versions: 2.2, 2.4, 3.0rc4
The ITranslatable interface says:
def getTranslation(language='language'):
"""
Return the object corresponding to a translated version or None.
If called without arguments it returns the translation in the currently
selected language, or self.
"""
But I18NBaseObject.getTranslation() does not return self, if it is called with no argument and the prefered translation does not exist, it returns None
If you prefere to change the implementation behaviour, I can provide a unittest and a test.
But that may break existing application (e.g. I call the method without arguments and do something else than using the object itself if the method returns None.
The ITranslatable interface says:
def getTranslation(language='language'):
"""
Return the object corresponding to a translated version or None.
If called without arguments it returns the translation in the currently
selected language, or self.
"""
But I18NBaseObject.getTranslation() does not return self, if it is called with no argument and the prefered translation does not exist, it returns None
If you prefere to change the implementation behaviour, I can provide a unittest and a test.
But that may break existing application (e.g. I call the method without arguments and do something else than using the object itself if the method returns None.
- Steps to reproduce:
- create an Object in one language, switch to another language and call obj.getTranslation()
Added by
Hanno Schlichting
on
Feb 02, 2010 03:00 PM
The "returns self" part happens if the object is already in the selected language:
Issue state:
Unconfirmed
→
Resolved
Target release:
None
→
3.x
lang = self.Language()
if lang == language:
return self
I clarified the interface description to make this more obvious and state that None is returned if no translation exits.
No responses can be added.
If you can, please log in before submitting a reaction.
