show translations on glossary and glossary items

git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@2257 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
helmutm 2007-12-17 10:21:16 +00:00
parent b6bbc076cd
commit c03bd7e8ac
8 changed files with 53 additions and 5 deletions

View file

@ -75,6 +75,7 @@ class DialogAction(Action):
dialogName = 'create' dialogName = 'create'
qualifier = typeToken = innerForm = None qualifier = typeToken = innerForm = None
fixedType = False fixedType = False
addParams = {}
@Lazy @Lazy
def url(self): def url(self):
@ -91,6 +92,7 @@ class DialogAction(Action):
urlParams['inner_form'] = self.innerForm urlParams['inner_form'] = self.innerForm
if self.fixedType: if self.fixedType:
urlParams['fixed_type'] = 'yes' urlParams['fixed_type'] = 'yes'
urlParams.update(self.addParams)
return self.jsOnClick % (self.dialogName, self.page.virtualTargetUrl, return self.jsOnClick % (self.dialogName, self.page.virtualTargetUrl,
self.viewName, urlencode(urlParams)) self.viewName, urlencode(urlParams))

View file

@ -364,7 +364,8 @@ class EditObject(FormController, I18NView):
self.object = obj self.object = obj
formState = self.updateFields() formState = self.updateFields()
# TODO: error handling # 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 return False
def updateFields(self): def updateFields(self):

View file

@ -144,6 +144,12 @@ to the default language at the time of the attribute creation.
>>> topic01.title.lower() >>> topic01.title.lower()
u'loops for zope 3' 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 Fin de partie
============= =============

View file

@ -128,3 +128,15 @@ class I18NAdapterBase(AdapterBase):
self.checkAttr(attr) self.checkAttr(attr)
setI18nValue(self.context, '_' + attr, value, langInfo) 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 {}

View file

@ -68,10 +68,13 @@ class GlossaryItemView(ConceptView):
def getActions(self, category='object', page=None): def getActions(self, category='object', page=None):
actions = [] actions = []
if category == 'portlet': if category == 'portlet':
lang = self.request.get('loops.language')
langParam = lang and {'loops.language': lang} or {}
actions.append(DialogAction(self, title='Edit Glossary Item...', actions.append(DialogAction(self, title='Edit Glossary Item...',
description='Modify glossary item.', description='Modify glossary item.',
viewName='edit_glossaryitem.html', viewName='edit_glossaryitem.html',
dialogName='editGlossaryItem', dialogName='editGlossaryItem',
addParams=langParam,
page=page)) page=page))
return actions return actions

View file

@ -27,6 +27,16 @@
title related/description"> title related/description">
Topic Topic
</a> </a>
<span tal:define="translations related/adapted/translations"
tal:condition="translations">
(<tal:trans repeat="trans translations"><a href="#"
tal:attributes="href python: '%s?loops.language=%s' %
(view.getUrlForTarget(related), trans);
title translations/?trans"><i
tal:content="trans">en</i></a><tal:comma
condition="not:repeat/trans/end"
>, </tal:comma></tal:trans>)
</span>
</div> </div>
</div> </div>
</metal:block> </metal:block>
@ -34,10 +44,21 @@
<metal:block define-macro="glossaryitem"> <metal:block define-macro="glossaryitem">
<metal:title use-macro="item/conceptMacros/concepttitle" /> <metal:title use-macro="item/conceptMacros/concepttitle" />
<p tal:define="translations item/adapted/translations"
tal:condition="translations">
<span i18n:translate="">Translations</span>:
<tal:trans repeat="trans translations"><a href="#"
tal:attributes="href python: '%s?loops.language=%s' %
(view.getUrlForTarget(item), trans);
title translations/?trans"><i
tal:content="trans">en</i></a><tal:comma
condition="not:repeat/trans/end"
>, </tal:comma></tal:trans>
</p>
<p> <p>
<span tal:repeat="related item/children"> <span tal:repeat="related item/children">
<tal:start condition="repeat/related/start"> <tal:start condition="repeat/related/start">
<span i18n:translate="">siehe</span>:</tal:start> <span i18n:translate="">See also</span>:</tal:start>
<a href="#" <a href="#"
tal:content="related/title" tal:content="related/title"
tal:attributes="href python: view.getUrlForTarget(related)"> tal:attributes="href python: view.getUrlForTarget(related)">

Binary file not shown.

View file

@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: $Id$\n" "Project-Id-Version: $Id$\n"
"POT-Creation-Date: 2007-05-22 12:00 CET\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 <helmutm@cy55.de>\n" "Last-Translator: Helmut Merz <helmutm@cy55.de>\n"
"Language-Team: loops developers <helmutm@cy55.de>\n" "Language-Team: loops developers <helmutm@cy55.de>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -197,8 +197,11 @@ msgstr "major"
msgid "minor" msgid "minor"
msgstr "minor" msgstr "minor"
msgid "see" msgid "See also"
msgstr "siehe" msgstr "Siehe auch"
msgid "Translations"
msgstr "Übersetzungen"
msgid "Change Password" msgid "Change Password"
msgstr "Passwort ändern" msgstr "Passwort ändern"