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"