From a429f9ca76ada9338dbb0a2af20588428f5b3915 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Thu, 22 Nov 2012 12:40:01 +0100 Subject: [PATCH] fix translation of state information --- locales/de/LC_MESSAGES/loops.mo | Bin 19050 -> 19168 bytes locales/de/LC_MESSAGES/loops.po | 61 +++++++++++++++++++------------ organize/stateful/browser.py | 11 +++--- organize/stateful/task.py | 15 +++++--- organize/stateful/view_macros.pt | 3 +- 5 files changed, 55 insertions(+), 35 deletions(-) diff --git a/locales/de/LC_MESSAGES/loops.mo b/locales/de/LC_MESSAGES/loops.mo index ebb7cbedc511a4b7c1bd788544f33e2447fc6014..845ab899f549becb8a417b94945544956f133d8e 100644 GIT binary patch delta 7323 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 delta 7224 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 H\n" "Language-Team: loops developers \n" "MIME-Version: 1.0\n" @@ -883,38 +883,53 @@ msgstr "an" msgid "move_to_task" msgstr "nach" +# state definitions + +msgid "task_states" +msgstr "Status" + +# state names + +msgid "accepted" +msgstr "angenommen" + +msgid "active" +msgstr "aktiv" + +msgid "cancelled" +msgstr "abgebrochen" + +msgid "closed" +msgstr "abgeschlossen" + +msgid "delegated" +msgstr "delegiert" + +msgid "done" +msgstr "bearbeitet" + +msgid "draft" +msgstr "Entwurf" + +msgid "finished" +msgstr "beendet" + +msgid "moved" +msgstr "verschoben" + msgid "new" msgstr "neu" msgid "planned" msgstr "geplant" -msgid "accepted" -msgstr "angenommen" - -msgid "delegated" -msgstr "delegiert" +msgid "replaced" +msgstr "ersetzt" msgid "running" msgstr "in Arbeit" -msgid "done" -msgstr "bearbeitet" - -msgid "finished" -msgstr "beendet" - -msgid "closed" -msgstr "abgeschlossen" - -msgid "cancelled" -msgstr "abgebrochen" - -msgid "moved" -msgstr "verschoben" - -msgid "replaced" -msgstr "ersetzt" +# transitions msgid "plan" msgstr "planen" diff --git a/organize/stateful/browser.py b/organize/stateful/browser.py index 1e4c49b..da9a340 100644 --- a/organize/stateful/browser.py +++ b/organize/stateful/browser.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2008 Helmut Merz helmutm@cy55.de +# Copyright (c) 2012 Helmut Merz helmutm@cy55.de # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,13 +18,12 @@ """ Views and actions for states management. - -$Id$ """ from zope import component from zope.app.pagetemplate import ViewPageTemplateFile from zope.cachedescriptors.property import Lazy +from zope.i18n import translate from cybertools.browser.action import Action, actions from cybertools.stateful.interfaces import IStateful, IStatesDefinition @@ -53,9 +52,11 @@ class StateAction(Action): @Lazy def description(self): + lang = self.view.languageInfo.language + definition = translate(_(self.definition), target_language=lang) + title = translate(_(self.stateObject.title), target_language=lang) return _(u'State information for $definition: $title', - mapping=dict(definition=self.definition, - title=self.stateObject.title)) + mapping=dict(definition=definition, title=title)) @Lazy def stateObject(self): diff --git a/organize/stateful/task.py b/organize/stateful/task.py index 7a99273..6a02fcd 100644 --- a/organize/stateful/task.py +++ b/organize/stateful/task.py @@ -35,16 +35,21 @@ from loops.organize.stateful.base import StatefulLoopsObject @implementer(IStatesDefinition) def taskStates(): return StatesDefinition('task_states', - State('planned', 'planned', ('finish', 'cancel'), + State('draft', 'draft', ('start', 'cancel',), color='yellow'), - State('finished', 'finished', ('reopen'), + State('active', 'active', ('finish', 'cancel',), + color='yellow'), + State('finished', 'finished', ('reopen', 'archive',), color='green'), - State('cancelled', 'cancelled', ('reopen'), + State('cancelled', 'cancelled', ('reopen',), color='grey'), + State('archived', 'archived', ('reopen',), + color='grey'), + Transition('start', 'start', 'active'), Transition('finish', 'finish', 'finished'), Transition('cancel', 'cancel', 'cancelled'), - Transition('reopen', 're-open', 'planned'), - initialState='planned') + Transition('reopen', 're-open', 'draft'), + initialState='draft') class StatefulTask(StatefulLoopsObject): diff --git a/organize/stateful/view_macros.pt b/organize/stateful/view_macros.pt index c9473c2..0d7c742 100644 --- a/organize/stateful/view_macros.pt +++ b/organize/stateful/view_macros.pt @@ -1,4 +1,3 @@ - @@ -32,7 +31,7 @@ tal:attributes="name string:$name:list; value value; checked python: - value in item.selectedStates.get(name, ()); + value in item.selectedStates.get(name, ()); id string:$name.$value" />