diff --git a/browser/action.py b/browser/action.py index 3428ee8..b1ab948 100644 --- a/browser/action.py +++ b/browser/action.py @@ -75,6 +75,7 @@ class DialogAction(Action): dialogName = 'create' qualifier = typeToken = innerForm = None fixedType = False + addParams = {} @Lazy def url(self): @@ -91,6 +92,7 @@ class DialogAction(Action): urlParams['inner_form'] = self.innerForm if self.fixedType: urlParams['fixed_type'] = 'yes' + urlParams.update(self.addParams) return self.jsOnClick % (self.dialogName, self.page.virtualTargetUrl, self.viewName, urlencode(urlParams)) diff --git a/browser/form.py b/browser/form.py index 134d75b..e5a3d2c 100644 --- a/browser/form.py +++ b/browser/form.py @@ -364,7 +364,8 @@ class EditObject(FormController, I18NView): self.object = obj formState = self.updateFields() # TODO: error handling - self.request.response.redirect(self.view.virtualTargetUrl + '?version=this') + url = self.view.virtualTargetUrl + '?version=this' + self.request.response.redirect(url) return False def updateFields(self): diff --git a/i18n/README.txt b/i18n/README.txt index bf1658a..4104537 100644 --- a/i18n/README.txt +++ b/i18n/README.txt @@ -144,6 +144,12 @@ to the default language at the time of the attribute creation. >>> topic01.title.lower() u'loops for zope 3' +Viewing translations +-------------------- + + >>> view.adapted.translations() + {'en': u'loops for Zope 3', 'it': u'loops per Zope 3'} + Fin de partie ============= diff --git a/i18n/common.py b/i18n/common.py index 2f483c8..e181937 100644 --- a/i18n/common.py +++ b/i18n/common.py @@ -128,3 +128,15 @@ class I18NAdapterBase(AdapterBase): self.checkAttr(attr) setI18nValue(self.context, '_' + attr, value, langInfo) + def translations(self, attr='title', omitCurrent=True): + langInfo = self.languageInfo + if langInfo: + langs = langInfo.availableLanguages + if len(langs) > 1: + value = getattr(removeSecurityProxy(self.context), '_' + attr, None) + if isinstance(value, I18NValue): + result = dict((k, v) for k, v in value.items() if v) + if omitCurrent and langInfo.language in result: + del result[langInfo.language] + return result + return {} diff --git a/knowledge/glossary/browser.py b/knowledge/glossary/browser.py index 73bfd12..49f0ab0 100755 --- a/knowledge/glossary/browser.py +++ b/knowledge/glossary/browser.py @@ -68,10 +68,13 @@ class GlossaryItemView(ConceptView): def getActions(self, category='object', page=None): actions = [] if category == 'portlet': + lang = self.request.get('loops.language') + langParam = lang and {'loops.language': lang} or {} actions.append(DialogAction(self, title='Edit Glossary Item...', description='Modify glossary item.', viewName='edit_glossaryitem.html', dialogName='editGlossaryItem', + addParams=langParam, page=page)) return actions diff --git a/knowledge/glossary/view_macros.pt b/knowledge/glossary/view_macros.pt index 241e1f7..a9abf18 100755 --- a/knowledge/glossary/view_macros.pt +++ b/knowledge/glossary/view_macros.pt @@ -27,6 +27,16 @@ title related/description"> Topic + + (en, ) + @@ -34,10 +44,21 @@ +

+ Translations: + en, +

- siehe: + See also: diff --git a/locales/de/LC_MESSAGES/loops.mo b/locales/de/LC_MESSAGES/loops.mo index 0357d4e..5058cef 100644 Binary files a/locales/de/LC_MESSAGES/loops.mo and b/locales/de/LC_MESSAGES/loops.mo differ diff --git a/locales/de/LC_MESSAGES/loops.po b/locales/de/LC_MESSAGES/loops.po index 625ca74..4a842f0 100644 --- a/locales/de/LC_MESSAGES/loops.po +++ b/locales/de/LC_MESSAGES/loops.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: $Id$\n" "POT-Creation-Date: 2007-05-22 12:00 CET\n" -"PO-Revision-Date: 2007-12-04 12:00 CET\n" +"PO-Revision-Date: 2007-12-17 12:00 CET\n" "Last-Translator: Helmut Merz \n" "Language-Team: loops developers \n" "MIME-Version: 1.0\n" @@ -197,8 +197,11 @@ msgstr "major" msgid "minor" msgstr "minor" -msgid "see" -msgstr "siehe" +msgid "See also" +msgstr "Siehe auch" + +msgid "Translations" +msgstr "Übersetzungen" msgid "Change Password" msgstr "Passwort ändern"