Skip to content

Commit

Permalink
Merge pull request #24 from erral/translated-menu
Browse files Browse the repository at this point in the history
Show native language name in "Translate into..." menu
  • Loading branch information
jensens committed Feb 28, 2017
2 parents d2f64cd + 4b30cad commit 04531fb
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 5 deletions.
3 changes: 2 additions & 1 deletion CHANGES.rst
Expand Up @@ -10,7 +10,8 @@ Breaking changes:

New features:

- *add item here*
- Show the native language name on the "Translate into..." menu
[erral]

Bug fixes:

Expand Down
12 changes: 10 additions & 2 deletions Products/LinguaPlone/browser/menu.py
@@ -1,5 +1,6 @@
from plone.browserlayer.utils import registered_layers
from zope.interface import implementer
from zope.component import queryUtility
from Products.CMFCore.permissions import AddPortalContent, ModifyPortalContent,\
DeleteObjects

Expand All @@ -17,7 +18,7 @@
from Products.LinguaPlone.browser.interfaces import ITranslateMenu
from Products.LinguaPlone.browser.interfaces import ITranslateSubMenuItem
from Products.LinguaPlone.interfaces import ILinguaPloneProductLayer

from plone.i18n.locales.interfaces import IContentLanguageAvailability

@implementer(ITranslateMenu)
class TranslateMenu(BrowserMenu):
Expand Down Expand Up @@ -45,12 +46,19 @@ def getMenuItems(self, context, request):
if not (can_translate or can_set_language or can_delete):
return []

lang_util = queryUtility(IContentLanguageAvailability)
if lang_util is not None:
all_languages_dict = lang_util.getLanguages()

langs = self.getUntranslatedLanguages(context)
if can_translate:
showflags = lt.showFlags()
langs = self.getUntranslatedLanguages(context)

for (lang_id, lang_name) in langs:
if lang_util is not None:
lang_info = all_languages_dict.get(lang_id, {})
lang_name = lang_info.get('native', '') or lang_info.get('name')

icon=showflags and lt.getFlagForLanguageCode(lang_id) or None
item={
"title": lang_name,
Expand Down
4 changes: 2 additions & 2 deletions Products/LinguaPlone/tests/test_menu.py
Expand Up @@ -14,10 +14,10 @@ def testLanguageSpecificContentCanBeTranslatedIntoOtherLanguages(self):
self.assertEqual(doc.getLanguage(), 'en')
menu = TranslateMenu('translations')
self.assertEqual([i['title'] for i in menu.getMenuItems(doc, None)],
[u'German', u'label_manage_translations'])
[u'Deutsch', u'label_manage_translations'])
self.addLanguage('no')
self.assertEqual([i['title'] for i in menu.getMenuItems(doc, None)],
[u'German', u'Norwegian', u'label_manage_translations'])
[u'Deutsch', u'Norsk', u'label_manage_translations'])

def testNeutralContentCannotBeTranslatedDirectly(self):
self.folder.setLanguage('')
Expand Down

0 comments on commit 04531fb

Please sign in to comment.