# HG changeset patch # User bsw # Date 1331215743 -3600 # Node ID 2f121e50d15cbcfa50d492a9c8de9b21ec052a0b # Parent 475465da327b143e50e28531a5c7643fb1f5a507 Translation of event messages completed diff -r 475465da327b -r 2f121e50d15c locale/translations.de.lua --- a/locale/translations.de.lua Thu Mar 08 14:36:04 2012 +0100 +++ b/locale/translations.de.lua Thu Mar 08 15:09:03 2012 +0100 @@ -29,9 +29,6 @@ ["Abstention [single entry]"] = "Enthaltung"; ["Accept invitation"] = "Einladung annehmen"; ["Accepted at"] = "Angenommen am/um"; -["Accordion (all expanded)"] = "Akkordeon (alle offen)"; -["Accordion (first expanded)"] = "Akkordeon (erstes offen)"; -["Accordion (none expanded)"] = "Akkordeon (keins offen)"; ["Active?"] = "Aktiv?"; ["Add alternative initiative to issue"] = "Alternative Initiative zum Thema hinzufügen"; ["Add my interest"] = "Mein Interesse anmelden"; @@ -82,6 +79,7 @@ ["Become a member"] = "Mitglied werden"; ["Birthday"] = "Geburtstag"; ["By delegation"] = "Durch Delegationen"; +["Calculation"] = "Auszählung"; ["Can't remove last initiator"] = "Der letzte Initiator kann nicht entfernt werden"; ["Can't send confirmation email"] = "Bestätigungs-E-Mail kann nicht versendet werden."; ["Cancel"] = "Abbrechen"; @@ -89,6 +87,11 @@ ["Cancel refuse of invitation"] = "Ablehnung der Einladung aufheben"; ["Cancel registration"] = "Registrierung abbrechen"; ["Cancelled"] = "Abgebrochen"; +["Cancelled (before accepted due to revocation)"] = false; +["Cancelled (during discussion due to revocation)"] = false; +["Cancelled (during verification due to revocation)"] = false; +["Cancelled (issue not accepted)"] = "Abgebrochen (Thema nicht akzeptiert)"; +["Cancelled (no initiative admitted)"] = "Abgebrochen (Keine Initiative zugelassen)"; ["Change API key"] = "API-Schlüssel ändern"; ["Change area delegation"] = "Delegation für Themenbereich ändern"; ["Change display settings"] = "Anzeige-Einstellungen ändern"; @@ -178,9 +181,9 @@ ["Display settings"] = "Anzeige-Einstellungen"; ["Download"] = "Download"; ["Download database export"] = "Datenbankexport herunterladen"; +["Download documents"] = "Dokumente herunterladen"; ["Draft"] = "Entwurf"; ["Draft history"] = "Entwurfshistorie"; -["EXPERIMENTAL FEATURE"] = "EXPERIMENTELLE FUNKTION"; ["Edit"] = "Bearbeiten"; ["Edit draft"] = "Entwurf bearbeiten"; ["Edit initiative"] = "Initiative bearbeiten"; @@ -194,7 +197,7 @@ ["Email address too short!"] = "E-Mail-Adresse ist zu kurz!"; ["Email confirmation request"] = "Bestätigung deiner E-Mail-Adresse"; ["Email unconfirmed"] = "Unbestätigte E-Mail-Adresse"; -["Empty help text: #{id}.#{lang}.txt"] = false; +["Empty help text: #{id}.#{lang}.txt"] = "Leerer Hilfe-Text: #{id}.#{lang}.txt"; ["Error while converting image. Please note, that only JPG files are supported!"] = "Fehler beim Konvertieren des Bilds. Bitte beachte, dass nur JPG-Dateien unterstützt werden."; ["Error while resolving openid. Internal message: '#{errmsg}'"] = "Fehler beim Auflösen der OpenID. Interne Fehlermeldung: '#{errmsg}'"; ["Error while updating member, database reported:

(#{errormessage})"] = "Fehler beim aktualisieren des Mitglieds, die Datenbank berichtet folgenden Fehler:

(#{errormessage})"; @@ -204,6 +207,7 @@ ["External posts"] = "Externe Ämter"; ["Finish voting"] = "Stimmabgabe abschließen"; ["Finished"] = "Abgeschlossen"; +["Finished (without winner)"] = "Abgeschlossen (ohne Gewinner)"; ["Friday"] = "Freitag"; ["Frozen"] = "Eingefroren"; ["Frozen and voting phase"] = "Eingefroren- und Abstimmphase"; @@ -289,6 +293,7 @@ ["Issue quorum"] = "Quorum Thema"; ["Issue quorum denumerator"] = "Themen-Quorum Nenner"; ["Issue quorum numerator"] = "Themen-Quorum Zähler"; +["Issue reached next phase"] = "Thema hat die nächster Phase erreicht"; ["Issues"] = "Themen"; ["JavaScript is disabled or not available."] = "JavaScript ist abgeschaltet oder nicht verfügbar."; ["Last activity (updated daily)"] = "Letzte Aktivität (täglich aktualisiert)"; @@ -341,6 +346,8 @@ ["New draft"] = "Neuer Entwurf"; ["New draft has been added to initiative"] = "Neuer Entwurf wurde der Initiative hinzugefügt"; ["New initiative"] = "Neue Initiative"; +["New initiative draft"] = "Neuer Entwurfstext der Initiative"; +["New initiative in existing issue"] = "Neue Initiative in bestehenden Thema"; ["New issue"] = "Neues Thema"; ["New password"] = "Neues Kennwort"; ["New passwords does not match."] = "Du hast nicht zweimal das gleiche Kennwort eingegeben"; @@ -527,7 +534,6 @@ ["Supporter"] = "Unterstützer"; ["Supporter count"] = "Anzahl der Unterstützer"; ["Syntax help"] = "Syntax-Hilfe"; -["Tabs"] = "Registerkarten"; ["Terms of use"] = "Nutzungsbedingungen"; ["The API key has been changed too fast."] = "Der API-Schlüssel wurde zu schnell geändert."; ["The code you've entered is invalid"] = "Der Code, den Du eingeben hast, ist nicht gültig!"; @@ -571,7 +577,6 @@ ["Trustee"] = "Bevollmächtigter"; ["Trustee has no voting right in this unit"] = "Bevollmächtigter hat kein Stimmrecht in dieser Gliederung"; ["Tuesday"] = "Dienstag"; -["Type of tabs"] = "Tabulatortyp"; ["Unconfirmed address"] = "Unbestätigte E-Mail"; ["Unit"] = "Gliederung"; ["Unit delegated to '#{name}'"] = "Gliederung an '#{name}' delegiert"; @@ -662,12 +667,12 @@ ["Z-A"] = "Z-A"; ["[No voting privilege]"] = "[Kein Stimmrecht]"; ["[Registered members only]"] = "[nur für Registrierte]"; -["[event mail] URL: #{url}"] = " URL: #{url}"; -["[event mail] Area: #{name}"] = "Themengebiet: #{name}"; -["[event mail] Unit: #{name}"] = " Gliederung: #{name}"; -["[event mail] Event: #{event}"] = " Ereignis: #{event}"; -["[event mail] Issue: ##{id}"] = " Thema: ##{id}"; -["[event mail] Phase: #{phase}"] = " Phase: #{phase}"; +["[event mail] URL: #{url}"] = " URL: #{url}"; +["[event mail] Area: #{name}"] = "Themengebiet: #{name}"; +["[event mail] Unit: #{name}"] = " Gliederung: #{name}"; +["[event mail] Event: #{event}"] = " Ereignis: #{event}"; +["[event mail] Issue: ##{id}"] = " Thema: ##{id}"; +["[event mail] Phase: #{phase}"] = " Phase: #{phase}"; ["[event mail] Policy: #{policy}"] = " Regelwerk: #{policy}"; ["[not displayed public]"] = "[nicht öffentlich]"; ["a bit unsatisfied"] = "etwas unzufrieden"; @@ -683,7 +688,7 @@ ["days"] = "Tage"; ["deactivated"] = "deaktiviert"; ["delegated to"] = "delegiert an"; -["delete

"] = false; +["delete

"] = "löschen

"; ["disabled"] = "ausgeschaltet"; ["email"] = "E-Mail"; ["global"] = "Global"; diff -r 475465da327b -r 2f121e50d15c model/event.lua --- a/model/event.lua Thu Mar 08 14:36:04 2012 +0100 +++ b/model/event.lua Thu Mar 08 15:09:03 2012 +0100 @@ -9,6 +9,34 @@ ref = 'issue', } +function Event.object_get:event_name() + return ({ + issue_state_changed = _"Issue reached next phase", + initiative_created_in_new_issue = _"New issue", + initiative_created_in_existing_issue = _"New initiative in existing issue", + initiative_revoked = _"Initiative revoked", + new_draft_created = _"New initiative draft", + suggestion_created = _"New suggestion" + })[self.event] +end + +function Event.object_get:state_name() + return ({ + admission = _"New", + discussion = _"Discussion", + verification = _"Frozen", + voting = _"Voting", + canceled_revoked_before_accepted = _"Cancelled (before accepted due to revocation)", + canceled_issue_not_accepted = _"Cancelled (issue not accepted)", + canceled_after_revocation_during_discussion = _"Cancelled (during discussion due to revocation)", + canceled_after_revocation_during_verification = _"Cancelled (during verification due to revocation)", + calculation = _"Calculation", + canceled_no_initiative_admitted = _"Cancelled (no initiative admitted)", + finished_without_winner = _"Finished (without winner)", + finished_with_winner = "Finished (with winner)" + })[self.state] +end + function Event.object:send_notification() local members_to_notify = Member:new_selector() @@ -21,62 +49,71 @@ local url - local body = "" + for i, member in ipairs(members_to_notify) do + local subject + local body = "" + + locale.do_with( + { lang = member.lang or config.default_lang or 'en' }, + function() + subject = config.mail_subject_prefix .. _("##{id} #{event}", { id = self.issue_id, event = self.event }) + body = body .. _("[event mail] Unit: #{name}", { name = self.issue.area.unit.name }) .. "\n" + body = body .. _("[event mail] Area: #{name}", { name = self.issue.area.name }) .. "\n" + body = body .. _("[event mail] Issue: ##{id}", { id = self.issue_id }) .. "\n\n" + body = body .. _("[event mail] Policy: #{policy}", { policy = self.issue.policy.name }) .. "\n\n" + body = body .. _("[event mail] Event: #{event}", { event = self.event_name }) .. "\n\n" + body = body .. _("[event mail] Phase: #{phase}", { phase = self.state_name }) .. "\n\n" + + if self.initiative_id then + url = request.get_absolute_baseurl() .. "initiative/show/" .. self.initiative_id .. ".html" + elseif self.suggestion_id then + url = request.get_absolute_baseurl() .. "suggestion/show/" .. self.suggestion_id .. ".html" + else + url = request.get_absolute_baseurl() .. "issue/show/" .. self.issue_id .. ".html" + end + + body = body .. _("[event mail] URL: #{url}", { url = url }) .. "\n\n" + + if self.initiative_id then + local initiative = Initiative:by_id(self.initiative_id) + body = body .. _("i#{id}: #{name}", { id = initiative.id, name = initiative.name }) .. "\n\n" + else + local initiative_count = Initiative:new_selector() + :add_where{ "initiative.issue_id = ?", self.issue_id } + :count() + local initiatives = Initiative:new_selector() + :add_where{ "initiative.issue_id = ?", self.issue_id } + :add_order_by("initiative.supporter_count DESC") + :limit(3) + :exec() + for i, initiative in ipairs(initiatives) do + body = body .. _("i#{id}: #{name}", { id = initiative.id, name = initiative.name }) .. "\n" + end + if initiative_count - 3 > 0 then + body = body .. _("and #{count} more initiatives", { count = initiative_count }) .. "\n" + end + body = body .. "\n" + end + + if self.suggestion_id then + local suggestion = Suggestion:by_id(self.suggestion_id) + body = body .. _("#{name}\n\n", { name = suggestion.name }) + end - body = body .. _("[event mail] Unit: #{name}", { name = self.issue.area.unit.name }) .. "\n" - body = body .. _("[event mail] Area: #{name}", { name = self.issue.area.name }) .. "\n" - body = body .. _("[event mail] Issue: ##{id}", { id = self.issue_id }) .. "\n" - body = body .. _("[event mail] Policy: #{policy}", { phase = self.issue.policy.name }) .. "\n" - body = body .. _("[event mail] Phase: #{phase}", { phase = self.state }) .. "\n\n" - body = body .. _("[event mail] Event: #{event}", { event = self.event }) .. "\n\n" - - if self.initiative_id then - url = request.get_absolute_baseurl() .. "initiative/show/" .. self.initiative_id .. ".html" - elseif self.suggestion_id then - url = request.get_absolute_baseurl() .. "suggestion/show/" .. self.suggestion_id .. ".html" - else - url = request.get_absolute_baseurl() .. "issue/show/" .. self.issue_id .. ".html" + local success = net.send_mail{ + envelope_from = config.mail_envelope_from, + from = config.mail_from, + reply_to = config.mail_reply_to, + to = member.notify_email, + subject = , + content_type = "text/plain; charset=UTF-8", + content = body + } + + end + ) end - body = body .. _("[event mail] URL: #{url}", { url = url }) .. "\n\n" - - if self.initiative_id then - local initiative = Initiative:by_id(self.initiative_id) - body = body .. _("i#{id}: #{name}", { id = initiative.id, name = initiative.name }) .. "\n\n" - else - local initiative_count = Initiative:new_selector() - :add_where{ "initiative.issue_id = ?", self.issue_id } - :count() - local initiatives = Initiative:new_selector() - :add_where{ "initiative.issue_id = ?", self.issue_id } - :add_order_by("initiative.supporter_count DESC") - :limit(3) - :exec() - for i, initiative in ipairs(initiatives) do - body = body .. _("i#{id}: #{name}", { id = initiative.id, name = initiative.name }) .. "\n" - end - if initiative_count - 3 > 0 then - body = body .. _("and #{count} more initiatives", { count = initiative_count }) .. "\n" - end - body = body .. "\n" - end - - if self.suggestion_id then - local suggestion = Suggestion:by_id(self.suggestion_id) - body = body .. _("#{name}\n\n", { name = suggestion.name }) - end - - for i, member in ipairs(members_to_notify) do - local success = net.send_mail{ - envelope_from = config.mail_envelope_from, - from = config.mail_from, - reply_to = config.mail_reply_to, - to = member.notify_email, - subject = config.mail_subject_prefix .. _("##{id} #{event}", { id = self.issue_id, event = self.event }), content_type = "text/plain; charset=UTF-8", - content = body - } - end - end function Event:send_next_notification()