liquid_feedback_frontend

changeset 405:2f121e50d15c

Translation of event messages completed
author bsw
date Thu Mar 08 15:09:03 2012 +0100 (2012-03-08)
parents 475465da327b
children b297b85dc569
files locale/translations.de.lua model/event.lua
line diff
     1.1 --- a/locale/translations.de.lua	Thu Mar 08 14:36:04 2012 +0100
     1.2 +++ b/locale/translations.de.lua	Thu Mar 08 15:09:03 2012 +0100
     1.3 @@ -29,9 +29,6 @@
     1.4  ["Abstention [single entry]"] = "Enthaltung";
     1.5  ["Accept invitation"] = "Einladung annehmen";
     1.6  ["Accepted at"] = "Angenommen am/um";
     1.7 -["Accordion (all expanded)"] = "Akkordeon (alle offen)";
     1.8 -["Accordion (first expanded)"] = "Akkordeon (erstes offen)";
     1.9 -["Accordion (none expanded)"] = "Akkordeon (keins offen)";
    1.10  ["Active?"] = "Aktiv?";
    1.11  ["Add alternative initiative to issue"] = "Alternative Initiative zum Thema hinzufügen";
    1.12  ["Add my interest"] = "Mein Interesse anmelden";
    1.13 @@ -82,6 +79,7 @@
    1.14  ["Become a member"] = "Mitglied werden";
    1.15  ["Birthday"] = "Geburtstag";
    1.16  ["By delegation"] = "Durch Delegationen";
    1.17 +["Calculation"] = "Auszählung";
    1.18  ["Can't remove last initiator"] = "Der letzte Initiator kann nicht entfernt werden";
    1.19  ["Can't send confirmation email"] = "Bestätigungs-E-Mail kann nicht versendet werden.";
    1.20  ["Cancel"] = "Abbrechen";
    1.21 @@ -89,6 +87,11 @@
    1.22  ["Cancel refuse of invitation"] = "Ablehnung der Einladung aufheben";
    1.23  ["Cancel registration"] = "Registrierung abbrechen";
    1.24  ["Cancelled"] = "Abgebrochen";
    1.25 +["Cancelled (before accepted due to revocation)"] = false;
    1.26 +["Cancelled (during discussion due to revocation)"] = false;
    1.27 +["Cancelled (during verification due to revocation)"] = false;
    1.28 +["Cancelled (issue not accepted)"] = "Abgebrochen (Thema nicht akzeptiert)";
    1.29 +["Cancelled (no initiative admitted)"] = "Abgebrochen (Keine Initiative zugelassen)";
    1.30  ["Change API key"] = "API-Schlüssel ändern";
    1.31  ["Change area delegation"] = "Delegation für Themenbereich ändern";
    1.32  ["Change display settings"] = "Anzeige-Einstellungen ändern";
    1.33 @@ -178,9 +181,9 @@
    1.34  ["Display settings"] = "Anzeige-Einstellungen";
    1.35  ["Download"] = "Download";
    1.36  ["Download database export"] = "Datenbankexport herunterladen";
    1.37 +["Download documents"] = "Dokumente herunterladen";
    1.38  ["Draft"] = "Entwurf";
    1.39  ["Draft history"] = "Entwurfshistorie";
    1.40 -["EXPERIMENTAL FEATURE"] = "EXPERIMENTELLE FUNKTION";
    1.41  ["Edit"] = "Bearbeiten";
    1.42  ["Edit draft"] = "Entwurf bearbeiten";
    1.43  ["Edit initiative"] = "Initiative bearbeiten";
    1.44 @@ -194,7 +197,7 @@
    1.45  ["Email address too short!"] = "E-Mail-Adresse ist zu kurz!";
    1.46  ["Email confirmation request"] = "Bestätigung deiner E-Mail-Adresse";
    1.47  ["Email unconfirmed"] = "Unbestätigte E-Mail-Adresse";
    1.48 -["Empty help text: #{id}.#{lang}.txt"] = false;
    1.49 +["Empty help text: #{id}.#{lang}.txt"] = "Leerer Hilfe-Text: #{id}.#{lang}.txt";
    1.50  ["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.";
    1.51  ["Error while resolving openid. Internal message: '#{errmsg}'"] = "Fehler beim Auflösen der OpenID. Interne Fehlermeldung: '#{errmsg}'";
    1.52  ["Error while updating member, database reported:<br /><br /> (#{errormessage})"] = "Fehler beim aktualisieren des Mitglieds, die Datenbank berichtet folgenden Fehler:<br /><br /> (#{errormessage})";
    1.53 @@ -204,6 +207,7 @@
    1.54  ["External posts"] = "Externe Ämter";
    1.55  ["Finish voting"] = "Stimmabgabe abschließen";
    1.56  ["Finished"] = "Abgeschlossen";
    1.57 +["Finished (without winner)"] = "Abgeschlossen (ohne Gewinner)";
    1.58  ["Friday"] = "Freitag";
    1.59  ["Frozen"] = "Eingefroren";
    1.60  ["Frozen and voting phase"] = "Eingefroren- und Abstimmphase";
    1.61 @@ -289,6 +293,7 @@
    1.62  ["Issue quorum"] = "Quorum Thema";
    1.63  ["Issue quorum denumerator"] = "Themen-Quorum Nenner";
    1.64  ["Issue quorum numerator"] = "Themen-Quorum Zähler";
    1.65 +["Issue reached next phase"] = "Thema hat die nächster Phase erreicht";
    1.66  ["Issues"] = "Themen";
    1.67  ["JavaScript is disabled or not available."] = "JavaScript ist abgeschaltet oder nicht verfügbar.";
    1.68  ["Last activity (updated daily)"] = "Letzte Aktivität (täglich aktualisiert)";
    1.69 @@ -341,6 +346,8 @@
    1.70  ["New draft"] = "Neuer Entwurf";
    1.71  ["New draft has been added to initiative"] = "Neuer Entwurf wurde der Initiative hinzugefügt";
    1.72  ["New initiative"] = "Neue Initiative";
    1.73 +["New initiative draft"] = "Neuer Entwurfstext der Initiative";
    1.74 +["New initiative in existing issue"] = "Neue Initiative in bestehenden Thema";
    1.75  ["New issue"] = "Neues Thema";
    1.76  ["New password"] = "Neues Kennwort";
    1.77  ["New passwords does not match."] = "Du hast nicht zweimal das gleiche Kennwort eingegeben";
    1.78 @@ -527,7 +534,6 @@
    1.79  ["Supporter"] = "Unterstützer";
    1.80  ["Supporter count"] = "Anzahl der Unterstützer";
    1.81  ["Syntax help"] = "Syntax-Hilfe";
    1.82 -["Tabs"] = "Registerkarten";
    1.83  ["Terms of use"] = "Nutzungsbedingungen";
    1.84  ["The API key has been changed too fast."] = "Der API-Schlüssel wurde zu schnell geändert.";
    1.85  ["The code you've entered is invalid"] = "Der Code, den Du eingeben hast, ist nicht gültig!";
    1.86 @@ -571,7 +577,6 @@
    1.87  ["Trustee"] = "Bevollmächtigter";
    1.88  ["Trustee has no voting right in this unit"] = "Bevollmächtigter hat kein Stimmrecht in dieser Gliederung";
    1.89  ["Tuesday"] = "Dienstag";
    1.90 -["Type of tabs"] = "Tabulatortyp";
    1.91  ["Unconfirmed address"] = "Unbestätigte E-Mail";
    1.92  ["Unit"] = "Gliederung";
    1.93  ["Unit delegated to '#{name}'"] = "Gliederung an '#{name}' delegiert";
    1.94 @@ -662,12 +667,12 @@
    1.95  ["Z-A"] = "Z-A";
    1.96  ["[No voting privilege]"] = "[Kein Stimmrecht]";
    1.97  ["[Registered members only]"] = "[nur für Registrierte]";
    1.98 -["[event mail]       URL: #{url}"]    = "         URL: #{url}";
    1.99 -["[event mail]      Area: #{name}"]   = "Themengebiet: #{name}";
   1.100 -["[event mail]      Unit: #{name}"]   = "  Gliederung: #{name}";
   1.101 -["[event mail]     Event: #{event}"]  = "    Ereignis: #{event}";
   1.102 -["[event mail]     Issue: ##{id}"]    = "       Thema: ##{id}";
   1.103 -["[event mail]     Phase: #{phase}"]  = "       Phase: #{phase}";
   1.104 +["[event mail]       URL: #{url}"] = "         URL: #{url}";
   1.105 +["[event mail]      Area: #{name}"] = "Themengebiet: #{name}";
   1.106 +["[event mail]      Unit: #{name}"] = "  Gliederung: #{name}";
   1.107 +["[event mail]     Event: #{event}"] = "    Ereignis: #{event}";
   1.108 +["[event mail]     Issue: ##{id}"] = "       Thema: ##{id}";
   1.109 +["[event mail]     Phase: #{phase}"] = "       Phase: #{phase}";
   1.110  ["[event mail]    Policy: #{policy}"] = "   Regelwerk: #{policy}";
   1.111  ["[not displayed public]"] = "[nicht öffentlich]";
   1.112  ["a bit unsatisfied"] = "etwas unzufrieden";
   1.113 @@ -683,7 +688,7 @@
   1.114  ["days"] = "Tage";
   1.115  ["deactivated"] = "deaktiviert";
   1.116  ["delegated to"] = "delegiert an";
   1.117 -["delete<br /><br />"] = false;
   1.118 +["delete<br /><br />"] = "löschen<br /><br />";
   1.119  ["disabled"] = "ausgeschaltet";
   1.120  ["email"] = "E-Mail";
   1.121  ["global"] = "Global";
     2.1 --- a/model/event.lua	Thu Mar 08 14:36:04 2012 +0100
     2.2 +++ b/model/event.lua	Thu Mar 08 15:09:03 2012 +0100
     2.3 @@ -9,6 +9,34 @@
     2.4    ref           = 'issue',
     2.5  }
     2.6  
     2.7 +function Event.object_get:event_name()
     2.8 +  return ({
     2.9 +    issue_state_changed = _"Issue reached next phase",
    2.10 +    initiative_created_in_new_issue = _"New issue",
    2.11 +    initiative_created_in_existing_issue = _"New initiative in existing issue",
    2.12 +    initiative_revoked = _"Initiative revoked",
    2.13 +    new_draft_created = _"New initiative draft",
    2.14 +    suggestion_created = _"New suggestion"
    2.15 +  })[self.event]
    2.16 +end
    2.17 +  
    2.18 +function Event.object_get:state_name()
    2.19 +  return ({
    2.20 +    admission = _"New",
    2.21 +    discussion = _"Discussion",
    2.22 +    verification = _"Frozen",
    2.23 +    voting = _"Voting",
    2.24 +    canceled_revoked_before_accepted = _"Cancelled (before accepted due to revocation)",
    2.25 +    canceled_issue_not_accepted = _"Cancelled (issue not accepted)",
    2.26 +    canceled_after_revocation_during_discussion = _"Cancelled (during discussion due to revocation)",
    2.27 +    canceled_after_revocation_during_verification = _"Cancelled (during verification due to revocation)",
    2.28 +    calculation = _"Calculation",
    2.29 +    canceled_no_initiative_admitted = _"Cancelled (no initiative admitted)",
    2.30 +    finished_without_winner = _"Finished (without winner)",
    2.31 +    finished_with_winner = "Finished (with winner)"
    2.32 +  })[self.state]
    2.33 +end
    2.34 +  
    2.35  function Event.object:send_notification() 
    2.36  
    2.37    local members_to_notify = Member:new_selector()
    2.38 @@ -21,62 +49,71 @@
    2.39  
    2.40    local url
    2.41  
    2.42 -  local body = ""
    2.43 +  for i, member in ipairs(members_to_notify) do
    2.44 +    local subject
    2.45 +    local body = ""
    2.46 +    
    2.47 +    locale.do_with(
    2.48 +      { lang = member.lang or config.default_lang or 'en' },
    2.49 +      function()
    2.50 +        subject = config.mail_subject_prefix .. _("##{id} #{event}", { id = self.issue_id, event = self.event })
    2.51 +        body = body .. _("[event mail]      Unit: #{name}", { name = self.issue.area.unit.name }) .. "\n"
    2.52 +        body = body .. _("[event mail]      Area: #{name}", { name = self.issue.area.name }) .. "\n"
    2.53 +        body = body .. _("[event mail]     Issue: ##{id}", { id = self.issue_id }) .. "\n\n"
    2.54 +        body = body .. _("[event mail]    Policy: #{policy}", { policy = self.issue.policy.name }) .. "\n\n"
    2.55 +        body = body .. _("[event mail]     Event: #{event}", { event = self.event_name }) .. "\n\n"
    2.56 +        body = body .. _("[event mail]     Phase: #{phase}", { phase = self.state_name }) .. "\n\n"
    2.57 +
    2.58 +        if self.initiative_id then
    2.59 +          url = request.get_absolute_baseurl() .. "initiative/show/" .. self.initiative_id .. ".html"
    2.60 +        elseif self.suggestion_id then
    2.61 +          url = request.get_absolute_baseurl() .. "suggestion/show/" .. self.suggestion_id .. ".html"
    2.62 +        else
    2.63 +          url = request.get_absolute_baseurl() .. "issue/show/" .. self.issue_id .. ".html"
    2.64 +        end
    2.65 +        
    2.66 +        body = body .. _("[event mail]       URL: #{url}", { url = url }) .. "\n\n"
    2.67 +        
    2.68 +        if self.initiative_id then
    2.69 +          local initiative = Initiative:by_id(self.initiative_id)
    2.70 +          body = body .. _("i#{id}: #{name}", { id = initiative.id, name = initiative.name }) .. "\n\n"
    2.71 +        else
    2.72 +          local initiative_count = Initiative:new_selector()
    2.73 +            :add_where{ "initiative.issue_id = ?", self.issue_id }
    2.74 +            :count()
    2.75 +          local initiatives = Initiative:new_selector()
    2.76 +            :add_where{ "initiative.issue_id = ?", self.issue_id }
    2.77 +            :add_order_by("initiative.supporter_count DESC")
    2.78 +            :limit(3)
    2.79 +            :exec()
    2.80 +          for i, initiative in ipairs(initiatives) do
    2.81 +            body = body .. _("i#{id}: #{name}", { id = initiative.id, name = initiative.name }) .. "\n"
    2.82 +          end
    2.83 +          if initiative_count - 3 > 0 then
    2.84 +            body = body .. _("and #{count} more initiatives", { count = initiative_count }) .. "\n"
    2.85 +          end
    2.86 +          body = body .. "\n"
    2.87 +        end
    2.88 +        
    2.89 +        if self.suggestion_id then
    2.90 +          local suggestion = Suggestion:by_id(self.suggestion_id)
    2.91 +          body = body .. _("#{name}\n\n", { name = suggestion.name })
    2.92 +        end
    2.93    
    2.94 -  body = body .. _("[event mail]      Unit: #{name}", { name = self.issue.area.unit.name }) .. "\n"
    2.95 -  body = body .. _("[event mail]      Area: #{name}", { name = self.issue.area.name }) .. "\n"
    2.96 -  body = body .. _("[event mail]     Issue: ##{id}", { id = self.issue_id }) .. "\n"
    2.97 -  body = body .. _("[event mail]    Policy: #{policy}", { phase = self.issue.policy.name }) .. "\n"
    2.98 -  body = body .. _("[event mail]     Phase: #{phase}", { phase = self.state }) .. "\n\n"
    2.99 -  body = body .. _("[event mail]     Event: #{event}", { event = self.event }) .. "\n\n"
   2.100 -
   2.101 -  if self.initiative_id then
   2.102 -    url = request.get_absolute_baseurl() .. "initiative/show/" .. self.initiative_id .. ".html"
   2.103 -  elseif self.suggestion_id then
   2.104 -    url = request.get_absolute_baseurl() .. "suggestion/show/" .. self.suggestion_id .. ".html"
   2.105 -  else
   2.106 -    url = request.get_absolute_baseurl() .. "issue/show/" .. self.issue_id .. ".html"
   2.107 +        local success = net.send_mail{
   2.108 +          envelope_from = config.mail_envelope_from,
   2.109 +          from          = config.mail_from,
   2.110 +          reply_to      = config.mail_reply_to,
   2.111 +          to            = member.notify_email,
   2.112 +          subject       = ,
   2.113 +          content_type  = "text/plain; charset=UTF-8",
   2.114 +          content       = body
   2.115 +        }
   2.116 +    
   2.117 +      end
   2.118 +    )
   2.119    end
   2.120    
   2.121 -  body = body .. _("[event mail]       URL: #{url}", { url = url }) .. "\n\n"
   2.122 -  
   2.123 -  if self.initiative_id then
   2.124 -    local initiative = Initiative:by_id(self.initiative_id)
   2.125 -    body = body .. _("i#{id}: #{name}", { id = initiative.id, name = initiative.name }) .. "\n\n"
   2.126 -  else
   2.127 -    local initiative_count = Initiative:new_selector()
   2.128 -      :add_where{ "initiative.issue_id = ?", self.issue_id }
   2.129 -      :count()
   2.130 -    local initiatives = Initiative:new_selector()
   2.131 -      :add_where{ "initiative.issue_id = ?", self.issue_id }
   2.132 -      :add_order_by("initiative.supporter_count DESC")
   2.133 -      :limit(3)
   2.134 -      :exec()
   2.135 -    for i, initiative in ipairs(initiatives) do
   2.136 -      body = body .. _("i#{id}: #{name}", { id = initiative.id, name = initiative.name }) .. "\n"
   2.137 -    end
   2.138 -    if initiative_count - 3 > 0 then
   2.139 -      body = body .. _("and #{count} more initiatives", { count = initiative_count }) .. "\n"
   2.140 -    end
   2.141 -    body = body .. "\n"
   2.142 -  end
   2.143 -  
   2.144 -  if self.suggestion_id then
   2.145 -    local suggestion = Suggestion:by_id(self.suggestion_id)
   2.146 -    body = body .. _("#{name}\n\n", { name = suggestion.name })
   2.147 -  end
   2.148 -  
   2.149 -  for i, member in ipairs(members_to_notify) do
   2.150 -    local success = net.send_mail{
   2.151 -      envelope_from = config.mail_envelope_from,
   2.152 -      from          = config.mail_from,
   2.153 -      reply_to      = config.mail_reply_to,
   2.154 -      to            = member.notify_email,
   2.155 -      subject       = config.mail_subject_prefix .. _("##{id} #{event}", { id = self.issue_id, event = self.event }),      content_type  = "text/plain; charset=UTF-8",
   2.156 -      content       = body
   2.157 -    }
   2.158 -  end
   2.159 -
   2.160  end
   2.161  
   2.162  function Event:send_next_notification()

Impressum / About Us