liquid_feedback_frontend

changeset 1843:b01d9920371b

merge
author jbe
date Thu Feb 03 15:57:22 2022 +0100 (2022-02-03)
parents 27d2a7609cc1 7d000a357704
children 138a1508cdf3
files
line diff
     1.1 --- a/INSTALL.html	Thu Feb 03 15:54:23 2022 +0100
     1.2 +++ b/INSTALL.html	Thu Feb 03 15:57:22 2022 +0100
     1.3 @@ -20,6 +20,7 @@
     1.4  <li>bmake</li>
     1.5  <li>lsb-release</li>
     1.6  <li>imagemagick</li>
     1.7 +<li>sassc</li>
     1.8  </ul>
     1.9  
    1.10  <p>If you're using any other Linux distribution or BSD system, install the
     2.1 --- a/INSTALL.mkd	Thu Feb 03 15:54:23 2022 +0100
     2.2 +++ b/INSTALL.mkd	Thu Feb 03 15:57:22 2022 +0100
     2.3 @@ -21,6 +21,7 @@
     2.4    * bmake
     2.5    * lsb-release
     2.6    * imagemagick
     2.7 +  * sassc
     2.8  
     2.9  If you're using any other Linux distribution or BSD system, install the
    2.10  necessary software components accordingly.
     3.1 --- a/app/main/_filter/20_session.lua	Thu Feb 03 15:54:23 2022 +0100
     3.2 +++ b/app/main/_filter/20_session.lua	Thu Feb 03 15:57:22 2022 +0100
     3.3 @@ -66,4 +66,13 @@
     3.4    }
     3.5  end
     3.6  
     3.7 +app.single_unit_id = config.single_unit_id
     3.8 +
     3.9 +if app.session.member then
    3.10 +  local member_single_unit_id = app.session.member:get_single_unit_id() or config.single_unit_id
    3.11 +  if member_single_unit_id then
    3.12 +    app.single_unit_id = member_single_unit_id
    3.13 +  end
    3.14 +end
    3.15 +
    3.16  execute.inner()
     4.1 --- a/app/main/_filter/21_auth.lua	Thu Feb 03 15:54:23 2022 +0100
     4.2 +++ b/app/main/_filter/21_auth.lua	Thu Feb 03 15:57:22 2022 +0100
     4.3 @@ -22,6 +22,8 @@
     4.4    or view   == "403"
     4.5    or view   == "404"
     4.6    or view   == "405"
     4.7 +  or view == "usage_terms" and config.use_terms_public_access == true
     4.8 +  or view == "privacy" and config.privacy_policy_public_access == true
     4.9  ) then
    4.10    auth_needed = false
    4.11  end
    4.12 @@ -61,8 +63,6 @@
    4.13      module == "index" and view == "index"
    4.14      or module == "area" and view == "show"
    4.15      or module == "unit" and view == "show"
    4.16 -    or module == "policy" and view == "show"
    4.17 -    or module == "policy" and view == "list"
    4.18      or module == "issue" and view == "show"
    4.19      or module == "issue" and view == "history"
    4.20      or module == "initiative" and view == "show"
    4.21 @@ -73,6 +73,7 @@
    4.22      or module == "file" and view == "show.jpg"
    4.23      or module == "index" and view == "search"
    4.24      or module == "index" and view == "usage_terms"
    4.25 +    or module == "index" and view == "privacy"
    4.26      or module == "help" and view == "introduction"
    4.27      or module == "style"
    4.28    then
    4.29 @@ -113,8 +114,8 @@
    4.30  end
    4.31  
    4.32  if app.session:has_access("anonymous") and not app.session.member_id and auth_needed and module == "index" and view == "index" then
    4.33 -  if config.single_unit_id then
    4.34 -    request.redirect{ module = "unit", view = "show", id = config.single_unit_id }
    4.35 +  if app.single_unit_id then
    4.36 +    request.redirect{ module = "unit", view = "show", id = app.single_unit_id }
    4.37    else
    4.38      request.redirect{ module = "unit", view = "list" }
    4.39    end
    4.40 @@ -137,14 +138,22 @@
    4.41        error("array type params not implemented")
    4.42      end
    4.43    end
    4.44 -  request.redirect{
    4.45 -    module = 'index', view = 'login', params = {
    4.46 -      redirect_module = module,
    4.47 -      redirect_view = view,
    4.48 -      redirect_id = param.get_id(),
    4.49 -      redirect_params = params
    4.50 +  if config.login and config.login.method == "oauth2" then
    4.51 +    request.redirect{
    4.52 +      module = "oauth2_client",
    4.53 +      view = "redirect",
    4.54 +      params = { provider = config.login.provider }
    4.55      }
    4.56 -  }
    4.57 +  else
    4.58 +    request.redirect{
    4.59 +      module = 'index', view = 'login', params = {
    4.60 +        redirect_module = module,
    4.61 +        redirect_view = view,
    4.62 +        redirect_id = param.get_id(),
    4.63 +        redirect_params = params
    4.64 +      }
    4.65 +    }
    4.66 +  end
    4.67  elseif auth_needed and app.session.member.locked then
    4.68    trace.debug("Member locked.")
    4.69    request.redirect{ module = 'index', view = 'login' }
     5.1 --- a/app/main/_filter_view/30_navigation.lua	Thu Feb 03 15:54:23 2022 +0100
     5.2 +++ b/app/main/_filter_view/30_navigation.lua	Thu Feb 03 15:57:22 2022 +0100
     5.3 @@ -70,10 +70,9 @@
     5.4                  ui.tag{ tag = "i", attr = { class = "material-icons", ["aria-hidden"] = "true", role="presentation" }, content = "exit_to_app" }
     5.5                  slot.put(" ")
     5.6                  ui.tag{ attr = { class = "mdl-layout--large-screen-only" }, content = function()
     5.7 -                  ui.tag{ content = _"Login" }
     5.8 +                  ui.tag{ content = _"Login [button]" }
     5.9                  end }
    5.10                end,
    5.11 -              text   = _"Login",
    5.12                attr = { class = "mdl-navigation__link" }
    5.13              }
    5.14              if config.login and config.login.method == "oauth2" then
    5.15 @@ -116,6 +115,10 @@
    5.16    end)
    5.17  end
    5.18  
    5.19 +if config.survey and request.get_module() ~= "survey" then
    5.20 +  execute.view{ module = "survey", view = "_notification" }
    5.21 +end
    5.22 +
    5.23  -- show notifications about things the user should take care of
    5.24  --[[
    5.25  if app.session.member then
    5.26 @@ -152,16 +155,25 @@
    5.27        view   = 'about'
    5.28      }
    5.29    end }
    5.30 -  if not config.extra_footer_func then
    5.31 -    if config.use_terms and app.session.member then
    5.32 +  if not config.extra_footer_func and (config.use_terms_public_access or app.session.member)then
    5.33 +    if config.use_terms then
    5.34        ui.tag{ tag = "li", content = function()
    5.35          ui.link{
    5.36 -          text   = _"Use terms",
    5.37 +          text   = config.use_terms_linktext or _"Use terms",
    5.38            module = 'index',
    5.39            view   = 'usage_terms'
    5.40          }
    5.41        end }
    5.42      end
    5.43 +    if config.privacy_policy then
    5.44 +      ui.tag{ tag = "li", content = function()
    5.45 +        ui.link{
    5.46 +          text   = config.privacy_policy_linktext or _"Privacy policy",
    5.47 +          module = 'index',
    5.48 +          view   = 'privacy'
    5.49 +        }
    5.50 +      end }
    5.51 +    end
    5.52    end
    5.53    if config.extra_footer_func then
    5.54      config.extra_footer_func()
     6.1 --- a/app/main/_layout/default.html	Thu Feb 03 15:54:23 2022 +0100
     6.2 +++ b/app/main/_layout/default.html	Thu Feb 03 15:57:22 2022 +0100
     6.3 @@ -4,8 +4,8 @@
     6.4    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
     6.5    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
     6.6    <title><!-- WEBMCP SLOTNODIV html_title --></title>
     6.7 -  <link rel="stylesheet" type="text/css" media="screen" href="__BASEURL__/style/style.css" />
     6.8 -  <link rel="stylesheet" type="text/css" media="screen" href="__BASEURL__/static/lf4.css" />
     6.9 +  <link rel="stylesheet" type="text/css" media="screen" href="__BASEURL__/style/style.css?version=2" />
    6.10 +  <link rel="stylesheet" type="text/css" media="screen" href="__BASEURL__/static/lf4.css?version=2" />
    6.11    <!-- WEBMCP SLOTNODIV html_head -->
    6.12    <script type="text/javascript">var baseURL = "__BASEURL__";</script>
    6.13    <script type="text/javascript">jsFail = true;</script>
     7.1 --- a/app/main/_prefork/10_init.lua	Thu Feb 03 15:54:23 2022 +0100
     7.2 +++ b/app/main/_prefork/10_init.lua	Thu Feb 03 15:57:22 2022 +0100
     7.3 @@ -38,7 +38,7 @@
     7.4  end
     7.5  
     7.6  if config.notification_digest_template == nil then
     7.7 -  config.notification_digest_template = "Hello #{name},\n\nthis is your personal digest.\n\n#{digest}\n"
     7.8 +  config.notification_digest_template = _"Hello #{name},\n\nthis is your personal digest.\n\n#{digest}\n"
     7.9  end
    7.10  
    7.11  if config.member_image_content_type == nil then
    7.12 @@ -272,7 +272,7 @@
    7.13    listen{
    7.14      {
    7.15        proto = "interval",
    7.16 -      name  = "send_pending_notifications",
    7.17 +      name  = "mirror_firstlife_groups",
    7.18        delay = 5,
    7.19        handler = function()
    7.20          firstlife_mirror_groups()
     8.1 --- a/app/main/admin/cancel_issue.lua	Thu Feb 03 15:54:23 2022 +0100
     8.2 +++ b/app/main/admin/cancel_issue.lua	Thu Feb 03 15:57:22 2022 +0100
     8.3 @@ -10,30 +10,57 @@
     8.4  
     8.5  ui.titleAdmin(_"Cancel issue")
     8.6  
     8.7 -ui.form{
     8.8 -  module = "admin",
     8.9 -  action = "cancel_issue",
    8.10 -  id = id,
    8.11 -  attr = { class = "vertical section" },
    8.12 -  content = function()
    8.13 -    
    8.14 -    ui.sectionHead( function()
    8.15 -      ui.heading { level = 1, content = _("Cancel issue ##{id}", { id = issue.id }) }
    8.16 -    end )
    8.17 +ui.grid{ content = function()
    8.18 +
    8.19 +  ui.cell_main{ content = function()
    8.20 +    ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function()
    8.21 +      ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
    8.22 +        ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = _"public administrative notice:" }
    8.23 +      end }
    8.24 +      ui.container{ attr = { class = "mdl-card__content" }, content = function()
    8.25  
    8.26 -    ui.sectionRow( function()
    8.27 +        ui.form{
    8.28 +          module = "admin",
    8.29 +          action = "cancel_issue",
    8.30 +          id = id,
    8.31 +          attr = { class = "vertical section" },
    8.32 +          content = function()
    8.33 +            
    8.34 +            ui.sectionRow( function()
    8.35 +              ui.field.text{ name = "admin_notice", multiline = true }
    8.36 +              ui.tag{
    8.37 +                tag = "input",
    8.38 +                attr = {
    8.39 +                  type = "submit",
    8.40 +                  class = "mdl-button mdl-js-button mdl-button--raised",
    8.41 +                  value = _"cancel issue now"
    8.42 +                }
    8.43 +              }
    8.44 +              slot.put(" &nbsp; ")
    8.45 +              ui.link {
    8.46 +                attr = { class = "mdl-button mdl-js-button mdl-js-ripple-effect mdl-button--underlined" },
    8.47 +                module = "admin", view = "index", content = _"do nothing"
    8.48 +               }
    8.49 +            end )
    8.50 +          end
    8.51 +        }
    8.52 +      end }
    8.53 +    end }
    8.54 +  end }
    8.55 +
    8.56 +  ui.cell_sidebar{ content = function()
    8.57 +
    8.58 +    ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function()
    8.59 +      ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
    8.60 +        ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = _("Issue ##{id}", { id = issue.id }) }
    8.61 +      end }
    8.62        execute.view{ module = "initiative", view = "_list", params = {
    8.63          issue = issue,
    8.64          initiatives = issue.initiatives
    8.65        } }
    8.66 -    end )
    8.67 -    
    8.68 -    ui.sectionRow( function()
    8.69 -      ui.field.text{ label = _"public administrative notice:", name = "admin_notice", multiline = true }
    8.70 -      ui.submit{ text = _"cancel issue now" }
    8.71 -      slot.put(" ")
    8.72 -      ui.link { module = "admin", view = "index", content = "go back to safety" }
    8.73 -    end )
    8.74 -  end
    8.75 -}
    8.76 +    end }
    8.77 +  end }
    8.78  
    8.79 +
    8.80 +end }
    8.81 +
     9.1 --- a/app/main/admin/index.lua	Thu Feb 03 15:54:23 2022 +0100
     9.2 +++ b/app/main/admin/index.lua	Thu Feb 03 15:57:22 2022 +0100
     9.3 @@ -1,8 +1,11 @@
     9.4  local inactive = param.get("inactive", atom.boolean)
     9.5 +local inactive_policies = param.get("inactive_policies", atom.boolean)
     9.6 +
     9.7 +
     9.8  
     9.9  local units = Unit:get_flattened_tree{ include_inactive = inactive, include_hidden = true }
    9.10  
    9.11 -local policies = Policy:build_selector{ active = not inactive }:exec()
    9.12 +local policies = Policy:build_selector{ active = not inactive_policies }:exec()
    9.13  --local policies = Policy:build_selector{}:add_order_by("index"):exec()
    9.14  
    9.15  ui.titleAdmin()
    9.16 @@ -46,21 +49,28 @@
    9.17                  ui.tag { tag = "li", content = function ()
    9.18                    ui.link { module = "admin", view = "area_show", params = { unit_id = unit.id }, content = _"+ add new subject area" }
    9.19                  end }
    9.20 -                slot.put("<br />")
    9.21                end }
    9.22              end
    9.23            }
    9.24          end
    9.25 -        
    9.26 -        slot.put("<br />")
    9.27 -        ui.link { module = "admin", view = "unit_edit", content = _"Create new unit" }
    9.28 -        slot.put("<br />")
    9.29 -        slot.put("<br />")
    9.30 +     end }
    9.31 +
    9.32 +     ui.container{ attr = { class = "mdl-card__actions mdl-card--border" }, content = function()
    9.33 +        ui.link {
    9.34 +          attr = { class = "mdl-button mdl-js-button" },
    9.35 +          module = "admin", view = "unit_edit", content = _"Create new unit"
    9.36 +        }
    9.37          
    9.38          if (not inactive) then
    9.39 -          ui.link { module = "admin", view = "index", params = { inactive = true }, content = _"Show inactive" }
    9.40 +          ui.link {
    9.41 +            attr = { class = "mdl-button mdl-js-button" },
    9.42 +            module = "admin", view = "index", params = { inactive = true }, content = _"Show inactive"
    9.43 +          }
    9.44          else
    9.45 -          ui.link { module = "admin", view = "index", content = _"Hide inactive" }
    9.46 +          ui.link {
    9.47 +            attr = { class = "mdl-button mdl-js-button" },
    9.48 +            module = "admin", view = "index", content = _"Hide inactive"
    9.49 +          }
    9.50          end
    9.51      
    9.52        end }
    9.53 @@ -74,27 +84,23 @@
    9.54          ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = _"Members" }
    9.55        end }
    9.56        ui.container{ attr = { class = "mdl-card__content" }, content = function()
    9.57 -        ui.tag { tag = "ul", attr = { class = "ul" }, content = function()
    9.58 -          ui.tag { tag = "li", content = function()
    9.59 -            ui.form{
    9.60 -              module = "admin", view = "member_list",
    9.61 -              content = function()
    9.62 -              
    9.63 -                ui.field.text{ container_attr = { style = "display: inline-block;" }, label = _"search", name = "search" }
    9.64 -                
    9.65 -                ui.submit{ value = _"search" }
    9.66 -              
    9.67 -              end
    9.68 -            }
    9.69 -          end }
    9.70 -        end }
    9.71 -        ui.sidebarSection( "moreLink", function()
    9.72 -          ui.link{
    9.73 -            text = _"Register new member",
    9.74 -            module = "admin",
    9.75 -            view = "member_edit"
    9.76 -          }
    9.77 -        end )
    9.78 +        ui.form{
    9.79 +          module = "admin", view = "member_list",
    9.80 +          content = function()
    9.81 +            ui.field.text{ container_attr = { style = "display: inline-block;" }, label = _"search", name = "search" }
    9.82 +            slot.put(" ")
    9.83 +            ui.submit{ value = _"OK" }
    9.84 +          end
    9.85 +        }
    9.86 +      end }
    9.87 +
    9.88 +      ui.container{ attr = { class = "mdl-card__actions mdl-card--border" }, content = function()
    9.89 +        ui.link{
    9.90 +          attr = { class = "mdl-button mdl-js-button" },
    9.91 +          text = _"Add member",
    9.92 +          module = "admin",
    9.93 +          view = "member_edit"
    9.94 +        }
    9.95        end }
    9.96      end }
    9.97  
    9.98 @@ -115,17 +121,26 @@
    9.99              end }
   9.100            end
   9.101          end }
   9.102 +      end }
   9.103  
   9.104 +      ui.container{ attr = { class = "mdl-card__actions mdl-card--border" }, content = function()
   9.105          ui.link{
   9.106 -          text = _"Create new policy",
   9.107 +          attr = { class = "mdl-button mdl-js-button" },
   9.108 +          text = _"Add policy",
   9.109            module = "admin",
   9.110            view = "policy_show"
   9.111          }
   9.112          slot.put(" &nbsp; ")
   9.113 -        if (not inactive) then
   9.114 -          ui.link { module = "admin", view = "index", params = { inactive = true }, content = _"Show inactive" }
   9.115 +        if (not inactive_policies) then
   9.116 +          ui.link {
   9.117 +            attr = { class = "mdl-button mdl-js-button" },
   9.118 +            module = "admin", view = "index", params = { inactive_policies = true }, content = _"Show inactive"
   9.119 +          }
   9.120          else
   9.121 -          ui.link { module = "admin", view = "index", content = _"Hide inactive" }
   9.122 +          ui.link {
   9.123 +            attr = { class = "mdl-button mdl-js-button" },
   9.124 +            module = "admin", view = "index", content = _"Hide inactive"
   9.125 +          }
   9.126          end
   9.127        end }
   9.128      end }
   9.129 @@ -158,12 +173,9 @@
   9.130            module = "admin",
   9.131            view = "cancel_issue",
   9.132            content = function()
   9.133 -            ui.tag { tag = "ul", attr = { class = "ul" }, content = function()
   9.134 -              ui.tag { tag = "li", content = function()
   9.135 -                ui.field.text{ container_attr = { style = "display: inline-block;" }, label = _"Issue #", name = "id" }
   9.136 -                ui.submit{ text = _"cancel issue" }
   9.137 -              end }
   9.138 -            end }
   9.139 +            ui.field.text{ container_attr = { style = "display: inline-block;" }, label = _"Issue #", name = "id" }
   9.140 +            slot.put(" ")
   9.141 +            ui.submit{ text = _"OK" }
   9.142            end
   9.143          }
   9.144        end }
    10.1 --- a/app/main/admin/member_edit.lua	Thu Feb 03 15:54:23 2022 +0100
    10.2 +++ b/app/main/admin/member_edit.lua	Thu Feb 03 15:57:22 2022 +0100
    10.3 @@ -12,8 +12,8 @@
    10.4    end
    10.5  end
    10.6  
    10.7 -local function field_boolean(id, name, checked, label)
    10.8 -  ui.container{ content = function()
    10.9 +local function field_boolean(id, name, checked, label, depth)
   10.10 +  ui.container{ attr = { style = "margin-left: " .. (depth -1) * 24 .. "px;" }, content = function()
   10.11      ui.tag{ tag = "label", attr = {
   10.12          class = "mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect",
   10.13          ["for"] = id
   10.14 @@ -45,16 +45,7 @@
   10.15  
   10.16  ui.titleAdmin(_"Member")
   10.17  
   10.18 -local units_selector = Unit:new_selector()
   10.19 -  
   10.20 -if member then
   10.21 -  units_selector
   10.22 -    :left_join("privilege", nil, { "privilege.member_id = ? AND privilege.unit_id = unit.id", member.id })
   10.23 -    :add_field("privilege.voting_right", "voting_right")
   10.24 -    :add_order_by("unit.name")
   10.25 -end
   10.26 -
   10.27 -local units = units_selector:exec()
   10.28 +local units = Unit:get_flattened_tree{ include_inactive = inactive, include_hidden = true, member_id = member and member.id }
   10.29    
   10.30  ui.grid{ content = function()
   10.31  
   10.32 @@ -104,7 +95,7 @@
   10.33              end
   10.34  
   10.35              for i, unit in ipairs(units) do
   10.36 -              field_boolean("checkbox_unit_" .. unit.id, "unit_" .. unit.id, unit.voting_right, unit.name)
   10.37 +              field_boolean("checkbox_unit_" .. unit.id, "unit_" .. unit.id, unit.voting_right, unit.name, unit.depth)
   10.38                
   10.39              end
   10.40              slot.put("<br />")
    11.1 --- a/app/main/admin/newsletter_edit.lua	Thu Feb 03 15:54:23 2022 +0100
    11.2 +++ b/app/main/admin/newsletter_edit.lua	Thu Feb 03 15:57:22 2022 +0100
    11.3 @@ -40,7 +40,7 @@
    11.4              end
    11.5              ui.field.text{ label = _"Date", name = "published" }
    11.6              ui.field.select{
    11.7 -              label = "Recipient",
    11.8 +              label = _"Recipient",
    11.9                name = "unit_id",
   11.10                foreign_records = units,
   11.11                foreign_id = "id",
    12.1 --- a/app/main/admin/policy_show.lua	Thu Feb 03 15:54:23 2022 +0100
    12.2 +++ b/app/main/admin/policy_show.lua	Thu Feb 03 15:57:22 2022 +0100
    12.3 @@ -107,13 +107,13 @@
    12.4            id = policy.id,
    12.5            content = function()
    12.6  
    12.7 -            field("index", "Index (for sorting)", hint and "1" or nil)
    12.8 +            field("index", _"Index (for sorting)", hint and "1" or nil)
    12.9              ui.field.boolean{ label = _"Active?", name = "active", value = hint and true or nil }
   12.10  
   12.11 -            field("name", "Name")
   12.12 +            field("name", _"Name")
   12.13            
   12.14              ui.field.text{ label = _"Description", name = "description", multiline = true }
   12.15 -            ui.field.text{ label = _"Hint",        readonly = true, 
   12.16 +            ui.field.text{ label = "",        readonly = true, 
   12.17                              value = _"Interval format:" .. " 3 mons 2 weeks 1 day 10:30:15" }
   12.18  
   12.19                              
    13.1 --- a/app/main/admin/unit_edit.lua	Thu Feb 03 15:54:23 2022 +0100
    13.2 +++ b/app/main/admin/unit_edit.lua	Thu Feb 03 15:57:22 2022 +0100
    13.3 @@ -11,7 +11,12 @@
    13.4  }
    13.5  
    13.6  for i, unit in ipairs(Unit:get_flattened_tree()) do
    13.7 -  units[#units+1] = { id = unit.id, name = unit.name }
    13.8 +  local name = ""
    13.9 +  for j = 2, unit.depth do
   13.10 +    name = name .. utf8.char(160).. utf8.char(160).. utf8.char(160).. utf8.char(160)
   13.11 +  end
   13.12 +  local name = name .. unit.name
   13.13 +  units[#units+1] = { id = unit.id, name = name }
   13.14  end
   13.15  
   13.16  ui.grid{ content = function()
    14.1 --- a/app/main/agent/_action/accept.lua	Thu Feb 03 15:54:23 2022 +0100
    14.2 +++ b/app/main/agent/_action/accept.lua	Thu Feb 03 15:57:22 2022 +0100
    14.3 @@ -3,24 +3,19 @@
    14.4  local agent = Agent:by_pk(controlled_id, app.session.member_id)
    14.5  
    14.6  if not agent then
    14.7 -  print("A")
    14.8    return false
    14.9  end
   14.10  
   14.11  if agent.accepted ~= nil then
   14.12 -  print("B")
   14.13    return false
   14.14  end
   14.15  
   14.16  if param.get("rejected") then
   14.17 -  print("C")
   14.18    agent.accepted = false
   14.19  elseif param.get("accepted") then
   14.20 -  print("D")
   14.21    agent.accepted = true
   14.22  else
   14.23 -  print("E")
   14.24    return false
   14.25  end
   14.26 -print("F")
   14.27 +
   14.28  agent:save()
    15.1 --- a/app/main/api/member.lua	Thu Feb 03 15:54:23 2022 +0100
    15.2 +++ b/app/main/api/member.lua	Thu Feb 03 15:57:22 2022 +0100
    15.3 @@ -54,6 +54,23 @@
    15.4    selector:add_where{ "name ILIKE ? OR identification ILIKE ?", search, search }
    15.5  end
    15.6  
    15.7 +if app.scopes.read_profiles then
    15.8 +  local profile_lookups = false
    15.9 +  for i, field in ipairs(config.member_profile_fields) do
   15.10 +    if field.api_lookup then
   15.11 +      local value = param.get("profile_" .. field.id)
   15.12 +      if value then
   15.13 +        selector:add_where{ "member_profile.profile->>? = ?", field.id, value }
   15.14 +        profile_lookups = true
   15.15 +      end
   15.16 +    end
   15.17 +  end
   15.18 +  if profile_lookups then
   15.19 +    selector:join("member_profile", nil, "member_profile.member_id = member.id")
   15.20 +  end
   15.21 +end
   15.22 +
   15.23 +
   15.24  local members = selector:exec()
   15.25  local r = json.object()
   15.26  r.result = execute.chunk{ module = "api", chunk = "_member", params = { 
    16.1 --- a/app/main/api/profile.lua	Thu Feb 03 15:54:23 2022 +0100
    16.2 +++ b/app/main/api/profile.lua	Thu Feb 03 15:57:22 2022 +0100
    16.3 @@ -17,6 +17,12 @@
    16.4        if value ~= nil and (field.type == "string" or field.type == "text") and json.type(value) ~= "string" then
    16.5          return util.api_error(400, "Bad Request", "string_expected", "JSON encoded string value expected")
    16.6        end
    16.7 +      if field.validate_func then
    16.8 +        local success = field.validate_func(field, fields)
    16.9 +        if not success then
   16.10 +          return util.api_error(403, "Forbidden", "validation_failure", "Request could not be validated")
   16.11 +        end
   16.12 +      end
   16.13        profile.profile[field.id] = value
   16.14      end
   16.15    end
    17.1 --- a/app/main/area/_head.lua	Thu Feb 03 15:54:23 2022 +0100
    17.2 +++ b/app/main/area/_head.lua	Thu Feb 03 15:57:22 2022 +0100
    17.3 @@ -2,19 +2,21 @@
    17.4  
    17.5  ui.title ( function ()
    17.6  
    17.7 -  -- unit link
    17.8 -  ui.link {
    17.9 -    attr = { class = "unit" },
   17.10 -    content = function()
   17.11 -      ui.tag{ attr = { class = "name" }, content = area.unit.name }
   17.12 -    end,
   17.13 -    module = "index", view = "index",
   17.14 -    params = { unit = area.unit_id }
   17.15 -  }
   17.16 +  if not app.single_unit_id then
   17.17 +    -- unit link
   17.18 +    ui.link {
   17.19 +      attr = { class = "unit" },
   17.20 +      content = function()
   17.21 +        ui.tag{ attr = { class = "name" }, content = area.unit.name }
   17.22 +      end,
   17.23 +      module = "index", view = "index",
   17.24 +      params = { unit = area.unit_id }
   17.25 +    }
   17.26  
   17.27 -  ui.tag { attr = { class = "spacer" }, content = function()
   17.28 -    slot.put ( " » " )
   17.29 -  end }
   17.30 +    ui.tag { attr = { class = "spacer" }, content = function()
   17.31 +      slot.put ( " » " )
   17.32 +    end }
   17.33 +  end
   17.34  
   17.35    ui.tag{ content = area.name }
   17.36    
    18.1 --- a/app/main/area/_list_entry.lua	Thu Feb 03 15:54:23 2022 +0100
    18.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.3 @@ -1,42 +0,0 @@
    18.4 -local area = param.get("area", "table")
    18.5 -local member = param.get("member", "table")
    18.6 -
    18.7 -ui.container{ attr = { class = "area" }, content = function()
    18.8 -
    18.9 -  execute.view{ module = "area", view = "_head", params = { area = area, hide_unit = true, show_content = true, member = member } }
   18.10 -  
   18.11 -  ui.container{ attr = { class = "content" }, content = function()
   18.12 -    ui.tag{ content = _"Issues:" }
   18.13 -    slot.put(" ")
   18.14 -    ui.link{ 
   18.15 -      module = "area", view = "show", id = area.id, params = { tab = "open", filter = "new" },
   18.16 -      text = _("#{count} new", { count = area.issues_new_count }) 
   18.17 -    }
   18.18 -    slot.put(" &middot; ")
   18.19 -    ui.link{ 
   18.20 -      module = "area", view = "show", id = area.id, params = { tab = "open", filter = "accepted" },
   18.21 -      text = _("#{count} in discussion", { count = area.issues_discussion_count }) 
   18.22 -    }
   18.23 -    slot.put(" &middot; ")
   18.24 -    ui.link{ 
   18.25 -      module = "area", view = "show", id = area.id, params = { tab = "open", filter = "half_frozen" },
   18.26 -      text = _("#{count} in verification", { count = area.issues_frozen_count }) 
   18.27 -    }
   18.28 -    slot.put(" &middot; ")
   18.29 -    ui.link{ 
   18.30 -      module = "area", view = "show", id = area.id, params = { tab = "open", filter = "frozen" },
   18.31 -      text = _("#{count} in voting", { count = area.issues_voting_count }) 
   18.32 -    }
   18.33 -    slot.put(" &middot; ")
   18.34 -    ui.link{ 
   18.35 -      module = "area", view = "show", id = area.id, params = { tab = "closed", filter = "finished" },
   18.36 -      text = _("#{count} finished", { count = area.issues_finished_count }) 
   18.37 -    }
   18.38 -    slot.put(" &middot; ")
   18.39 -    ui.link{ 
   18.40 -      module = "area", view = "show", id = area.id, params = { tab = "closed", filter = "canceled" },
   18.41 -      text = _("#{count} canceled", { count = area.issues_canceled_count }) 
   18.42 -    }
   18.43 -  end }
   18.44 -
   18.45 -end }
    19.1 --- a/app/main/area/_sidebar_whatcanido.lua	Thu Feb 03 15:54:23 2022 +0100
    19.2 +++ b/app/main/area/_sidebar_whatcanido.lua	Thu Feb 03 15:57:22 2022 +0100
    19.3 @@ -71,32 +71,21 @@
    19.4            ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
    19.5              ui.tag { tag = "li", content = function ()
    19.6                ui.tag { content = function ()
    19.7 -                ui.tag{ content = _"Edit your global " }
    19.8 +                local text = _"Edit your global <link>notification settings</link> to receive updates by email."
    19.9 +                local text_pre, text_link, text_post = string.match(text, "([^<]*)<link>([^<]+)</link>([^<]*)")
   19.10 +                ui.tag{ content = text_pre }
   19.11                  ui.link {
   19.12                    module = "member", view = "settings_notification",
   19.13                    params = { return_to = "area", return_to_area_id = area.id },
   19.14 -                  text = _"notification settings"
   19.15 +                  text = text_link
   19.16                  }
   19.17 -                ui.tag{ content = _" to receive updates by email" }
   19.18 +                ui.tag{ content = text_post }
   19.19                end }
   19.20              end }
   19.21            end }
   19.22          end }
   19.23        end
   19.24        
   19.25 -      if app.session.member:has_voting_right_for_unit_id ( area.unit_id ) then
   19.26 -        ui.container{ attr = { class = "mdl-card__content mdl-card--border" }, content = function()
   19.27 -          ui.tag{ content = _"I want to vote" }
   19.28 -          ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
   19.29 -            ui.tag { tag = "li", content = _"check the issues on the right, and click on 'Vote now' to vote on an issue which is in voting phase." }
   19.30 -          end }
   19.31 -        end }
   19.32 -      end
   19.33 -      
   19.34 -      if app.session.member and not app.session.member:has_voting_right_for_unit_id(area.unit_id) then
   19.35 -        ui.container{ attr = { class = "mdl-card__content mdl-card--border" }, content = _"You are not entitled to vote in this unit" }
   19.36 -      end
   19.37 -      
   19.38        if app.session.member and app.session.member:has_voting_right_for_unit_id(area.unit_id) then
   19.39  
   19.40          if not config.disable_delegations then
   19.41 @@ -175,16 +164,27 @@
   19.42              end }
   19.43            end }
   19.44          end
   19.45 -            
   19.46 +      end
   19.47 +      if app.session.member:has_voting_right_for_unit_id ( area.unit_id ) then
   19.48 +        ui.container{ attr = { class = "mdl-card__content mdl-card--border" }, content = function()
   19.49 +          ui.tag{ content = _"I want to vote" }
   19.50 +          ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
   19.51 +            ui.tag { tag = "li", content = _"check the issues on the right, and click on 'Vote now' to vote on an issue which is in voting phase." }
   19.52 +          end }
   19.53 +        end }
   19.54        end
   19.55      else
   19.56        ui.container { attr = { class = "mdl-card__content mdl-card--border" }, content = function ()
   19.57 -        ui.tag{ content = _"You are not entitled to vote in this unit" }
   19.58 -        ui.tag{ tag = "ul", content = function()
   19.59 -          ui.tag{ tag = "li", content = function()
   19.60 -            ui.link{ module = "index", view = "login", content = _"Login" }
   19.61 +        if not app.session.member_id then
   19.62 +          ui.tag{ content = _"Login to participate" }
   19.63 +          ui.tag{ tag = "ul", content = function()
   19.64 +            ui.tag{ tag = "li", content = function()
   19.65 +              ui.link{ module = "index", view = "login", content = _"Login [button]" }
   19.66 +            end }
   19.67            end }
   19.68 -        end }
   19.69 +        else
   19.70 +          ui.tag{ content = _"You are not entitled to vote in this unit" }
   19.71 +        end
   19.72        end }
   19.73      end
   19.74    end }
    20.1 --- a/app/main/contact/list.lua	Thu Feb 03 15:54:23 2022 +0100
    20.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.3 @@ -1,116 +0,0 @@
    20.4 -local contacts_selector = Contact:build_selector{
    20.5 -  member_id = app.session.member_id,
    20.6 -  order = "name"
    20.7 -}
    20.8 -
    20.9 -ui.title(_"Contacts")
   20.10 -
   20.11 -ui.grid{ content = function()
   20.12 -  ui.cell_main{ content = function()
   20.13 -
   20.14 -    ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function()
   20.15 -      ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
   20.16 -        ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = _"Contacts" }
   20.17 -      end }
   20.18 -      ui.container{ attr = { class = "mdl-card__content mdl-card--border" }, content = function()
   20.19 -
   20.20 -
   20.21 -        ui.paginate{
   20.22 -          selector = contacts_selector,
   20.23 -          content = function()
   20.24 -            local contacts = contacts_selector:exec()
   20.25 -            if #contacts == 0 then
   20.26 -              ui.field.text{ value = _"You didn't save any member as contact yet." }
   20.27 -            else
   20.28 -              ui.list{
   20.29 -                attr = { class = "mdl-data-table mdl-js-data-table mdl-shadow--2dp" },
   20.30 -                records = contacts,
   20.31 -                columns = {
   20.32 -                  {
   20.33 -                    label = _"Name",
   20.34 -                    content = function(record)
   20.35 -                      ui.link{
   20.36 -                        text = record.other_member.name,
   20.37 -                        module = "member",
   20.38 -                        view = "show",
   20.39 -                        id = record.other_member_id
   20.40 -                      }
   20.41 -                    end
   20.42 -                  },
   20.43 -                  {
   20.44 -                    label = _"Published",
   20.45 -                    content = function(record)
   20.46 -                      ui.field.boolean{ value = record.public }
   20.47 -                    end
   20.48 -                  },
   20.49 -                  {
   20.50 -                    content = function(record)
   20.51 -                      if record.public then
   20.52 -                        ui.link{
   20.53 -                          attr = { class = "action" },
   20.54 -                          text = _"Hide",
   20.55 -                          module = "contact",
   20.56 -                          action = "add_member",
   20.57 -                          id = record.other_member_id,
   20.58 -                          params = { public = false },
   20.59 -                          routing = {
   20.60 -                            default = {
   20.61 -                              mode = "redirect",
   20.62 -                              module = request.get_module(),
   20.63 -                              view = request.get_view(),
   20.64 -                              id = request.get_id_string(),
   20.65 -                              params = request.get_param_strings()
   20.66 -                            }
   20.67 -                          }
   20.68 -                        }
   20.69 -                      else
   20.70 -                        ui.link{
   20.71 -                          attr = { class = "action" },
   20.72 -                          text = _"Publish",
   20.73 -                          module = "contact",
   20.74 -                          action = "add_member",
   20.75 -                          id = record.other_member_id,
   20.76 -                          params = { public = true },
   20.77 -                          routing = {
   20.78 -                            default = {
   20.79 -                              mode = "redirect",
   20.80 -                              module = request.get_module(),
   20.81 -                              view = request.get_view(),
   20.82 -                              id = request.get_id_string(),
   20.83 -                              params = request.get_param_strings()
   20.84 -                            }
   20.85 -                          }
   20.86 -                        }
   20.87 -                      end
   20.88 -                    end
   20.89 -                  },
   20.90 -                  {
   20.91 -                    content = function(record)
   20.92 -                      ui.link{
   20.93 -                        attr = { class = "action" },
   20.94 -                        text = _"Remove",
   20.95 -                        module = "contact",
   20.96 -                        action = "remove_member",
   20.97 -                        id = record.other_member_id,
   20.98 -                        routing = {
   20.99 -                          default = {
  20.100 -                            mode = "redirect",
  20.101 -                            module = request.get_module(),
  20.102 -                            view = request.get_view(),
  20.103 -                            id = request.get_id_string(),
  20.104 -                            params = request.get_param_strings()
  20.105 -                          }
  20.106 -                        }
  20.107 -                      }
  20.108 -                    end
  20.109 -                  },
  20.110 -                }
  20.111 -              }
  20.112 -            end
  20.113 -          end
  20.114 -        }
  20.115 -
  20.116 -      end }
  20.117 -    end }
  20.118 -  end }
  20.119 -end }
    21.1 --- a/app/main/delegation/show.lua	Thu Feb 03 15:54:23 2022 +0100
    21.2 +++ b/app/main/delegation/show.lua	Thu Feb 03 15:57:22 2022 +0100
    21.3 @@ -156,12 +156,12 @@
    21.4                  local unit_delegation = Delegation:by_pk(app.session.member_id, issue.area.unit_id)
    21.5                  if unit_delegation then
    21.6                    delegate_name = unit_delegation.trustee.name
    21.7 -                  scope = config.single_unit_id and _"global" or _"unit"
    21.8 +                  scope = app.single_unit_id and _"global" or _"unit"
    21.9                  end
   21.10                end
   21.11                local text_apply
   21.12                local text_abandon
   21.13 -              if config.single_unit_id then
   21.14 +              if app.single_unit_id then
   21.15                  text_apply = _("Apply global or area delegation for this issue (Currently: #{delegate_name} [#{scope}])", { delegate_name = delegate_name, scope = scope })
   21.16                  text_abandon = _"Abandon unit and area delegations for this issue"
   21.17                else
   21.18 @@ -179,11 +179,11 @@
   21.19                local unit_delegation = Delegation:by_pk(app.session.member_id, area.unit_id)
   21.20                if unit_delegation then
   21.21                  delegate_name = unit_delegation.trustee.name
   21.22 -                scope = config.single_unit_id and _"global" or _"unit"
   21.23 +                scope = app.single_unit_id and _"global" or _"unit"
   21.24                end
   21.25                local text_apply
   21.26                local text_abandon
   21.27 -              if config.single_unit_id then
   21.28 +              if app.single_unit_id then
   21.29                  text_apply = _("Apply global delegation for this area (Currently: #{delegate_name} [#{scope}])", { delegate_name = delegate_name, scope = scope })
   21.30                  text_abandon = _"Abandon global delegation for this area"
   21.31                else
    22.1 --- a/app/main/draft/new.lua	Thu Feb 03 15:54:23 2022 +0100
    22.2 +++ b/app/main/draft/new.lua	Thu Feb 03 15:57:22 2022 +0100
    22.3 @@ -72,6 +72,12 @@
    22.4    return false
    22.5  end
    22.6  
    22.7 +if not initiative and not issue and #(area.allowed_policies) < 1 then
    22.8 +  slot.put_into("error", _"Subject area configuration invalid. Please contact the administrator.")
    22.9 +  return false
   22.10 +end
   22.11 +
   22.12 +
   22.13  ui.form{
   22.14    record = draft,
   22.15    attr = { class = "vertical section", enctype = 'multipart/form-data' },
   22.16 @@ -128,13 +134,14 @@
   22.17  -- -------- PREVIEW
   22.18              if param.get("preview") and slot.get_content("error") == "" then
   22.19                ui.sectionRow( function()
   22.20 -                if not issue and not initiative then
   22.21 +                if not issue and not initiative and #area.allowed_policies > 1 then
   22.22                    ui.container { content = policy and policy.name or "" }
   22.23 +                  slot.put("<br />")
   22.24                  end
   22.25                  if param.get("free_timing") then
   22.26                    ui.container { content = param.get("free_timing") }
   22.27 +                  slot.put("<br />")
   22.28                  end
   22.29 -                slot.put("<br />")
   22.30                  ui.field.hidden{ name = "policy_id", value = param.get("policy_id") }
   22.31                  ui.field.hidden{ name = "name", value = param.get("name") }
   22.32                  if config.initiative_abstract then
   22.33 @@ -253,14 +260,21 @@
   22.34                      tmp[#tmp+1] = allowed_policy
   22.35                    end
   22.36                  end
   22.37 -                ui.container{ content = _"Please choose a policy for the new issue:" }
   22.38 -                ui.field.select{
   22.39 -                  name = "policy_id",
   22.40 -                  foreign_records = tmp,
   22.41 -                  foreign_id = "id",
   22.42 -                  foreign_name = "name",
   22.43 -                  value = param.get("policy_id", atom.integer) or area.default_policy and area.default_policy.id
   22.44 -                }
   22.45 +                if #area.allowed_policies > 1 then
   22.46 +                  ui.container{ content = _"Please choose a policy for the new issue:" }
   22.47 +                  ui.field.select{
   22.48 +                    name = "policy_id",
   22.49 +                    foreign_records = tmp,
   22.50 +                    foreign_id = "id",
   22.51 +                    foreign_name = "name",
   22.52 +                    value = param.get("policy_id", atom.integer) or area.default_policy and area.default_policy.id
   22.53 +                  }
   22.54 +                else
   22.55 +                  ui.field.hidden{
   22.56 +                    name = "policy_id",
   22.57 +                    value = area.allowed_policies[1].id
   22.58 +                  }
   22.59 +                end
   22.60                  if policy and policy.free_timeable then
   22.61                    local available_timings
   22.62                    if config.free_timing and config.free_timing.available_func then
    23.1 --- a/app/main/help/introduction.lua	Thu Feb 03 15:54:23 2022 +0100
    23.2 +++ b/app/main/help/introduction.lua	Thu Feb 03 15:57:22 2022 +0100
    23.3 @@ -5,30 +5,39 @@
    23.4  
    23.5      ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function()
    23.6        ui.container{ attr = { class = "mdl-card__title mdl-card--has-fab mdl-card--border" }, content = function ()
    23.7 -        ui.heading { attr = { class = "mdl-card__title-text" }, level = 1, content = _"Quick guide" }
    23.8 +        ui.heading { attr = { class = "mdl-card__title-text" }, level = 1, content = function()
    23.9 +          if config.quick_guide and config.quick_guide.title then
   23.10 +            slot.put(config.quick_guide.title)
   23.11 +          else
   23.12 +            ui.tag{ content = _"Quick guide" }
   23.13 +          end
   23.14 +        end }
   23.15        end }
   23.16        ui.container { attr = { class = "draft mdl-card__content mdl-card--border" }, content = function()
   23.17 -        ui.heading{ level = 2, content = _"Initiatives and issues" }
   23.18 -        ui.tag{ tag = "p", content = _"[introduction] iniatives and issues" }
   23.19 -        ui.heading{ level = 2, content = _"Subject areas" }
   23.20 -        ui.tag{ tag = "p", content = _"[introduction] subject areas" }
   23.21 -        ui.heading{ level = 2, content = _"Organizational units" }
   23.22 -        ui.tag{ tag = "p", content = _"[introduction] organizational units" }
   23.23 -        ui.heading{ level = 2, content = _"Rules of procedure" }
   23.24 -        ui.tag{ tag = "p", content = _"[introduction] rules of procedure" }
   23.25 -        ui.heading{ level = 2, content = _"Admission phase" }
   23.26 -        ui.tag{ tag = "p", content = _"[introduction] phase 1 admission" }
   23.27 -        ui.heading{ level = 2, content = _"Discussion phase" }
   23.28 -        ui.tag{ tag = "p", content = _"[introduction] phase 2 discussion" }
   23.29 -        ui.heading{ level = 2, content = _"Verification phase" }
   23.30 -        ui.tag{ tag = "p", content = _"[introduction] phase 3 verification" }
   23.31 -        ui.heading{ level = 2, content = _"Voting phase" }
   23.32 -        ui.tag{ tag = "p", content = _"[introduction] phase 4 voting" }
   23.33 -        ui.heading{ level = 2, content = _"Vote delegation" }
   23.34 -        ui.tag{ tag = "p", content = _"[introduction] vote delegation" }
   23.35 -        ui.heading{ level = 2, content = _"Preference voting" }
   23.36 -        ui.tag{ tag = "p", content = _"[introduction] preference voting" }
   23.37 -
   23.38 +        if config.quick_guide and config.quick_guide.content then
   23.39 +          slot.put(config.quick_guide.content)
   23.40 +        else
   23.41 +          ui.heading{ level = 2, content = _"Initiatives and issues" }
   23.42 +          ui.tag{ tag = "p", content = _"[introduction] iniatives and issues" }
   23.43 +          ui.heading{ level = 2, content = _"Subject areas" }
   23.44 +          ui.tag{ tag = "p", content = _"[introduction] subject areas" }
   23.45 +          ui.heading{ level = 2, content = _"Organizational units" }
   23.46 +          ui.tag{ tag = "p", content = _"[introduction] organizational units" }
   23.47 +          ui.heading{ level = 2, content = _"Rules of procedure" }
   23.48 +          ui.tag{ tag = "p", content = _"[introduction] rules of procedure" }
   23.49 +          ui.heading{ level = 2, content = _"Admission phase" }
   23.50 +          ui.tag{ tag = "p", content = _"[introduction] phase 1 admission" }
   23.51 +          ui.heading{ level = 2, content = _"Discussion phase" }
   23.52 +          ui.tag{ tag = "p", content = _"[introduction] phase 2 discussion" }
   23.53 +          ui.heading{ level = 2, content = _"Verification phase" }
   23.54 +          ui.tag{ tag = "p", content = _"[introduction] phase 3 verification" }
   23.55 +          ui.heading{ level = 2, content = _"Voting phase" }
   23.56 +          ui.tag{ tag = "p", content = _"[introduction] phase 4 voting" }
   23.57 +          ui.heading{ level = 2, content = _"Vote delegation" }
   23.58 +          ui.tag{ tag = "p", content = _"[introduction] vote delegation" }
   23.59 +          ui.heading{ level = 2, content = _"Preference voting" }
   23.60 +          ui.tag{ tag = "p", content = _"[introduction] preference voting" }
   23.61 +        end
   23.62        end }
   23.63      end }
   23.64    end }
    24.1 --- a/app/main/index/_head.lua	Thu Feb 03 15:54:23 2022 +0100
    24.2 +++ b/app/main/index/_head.lua	Thu Feb 03 15:57:22 2022 +0100
    24.3 @@ -1,4 +1,4 @@
    24.4 -local unit_id = config.single_unit_id or request.get_param{ name = "unit" }
    24.5 +local unit_id = config.single_unit_id or request.get_param{ name = "unit" } or app.single_unit_id
    24.6  local area_id = config.single_area_id or request.get_param{ name = "area" }
    24.7  
    24.8  local initiative = param.get("initiative", "table")
    24.9 @@ -28,13 +28,17 @@
   24.10    ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function()
   24.11      ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
   24.12        ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = unit.name }
   24.13 -      if unit.description and #(unit.description) > 0 then
   24.14 -        ui.container{ attr = { class = "mdl-card__subtitle-text" }, content = unit.description }
   24.15 -      end
   24.16 -      if config.render_external_reference_unit then
   24.17 +    end }
   24.18 +    if unit.description and #(unit.description) > 0 then
   24.19 +      ui.container{ attr = { class = "mdl-card__content mdl-card--border" }, content = function()
   24.20 +        slot.put(format.text_with_links(unit.description))
   24.21 +      end }
   24.22 +    end
   24.23 +    if config.render_external_reference_unit then
   24.24 +      ui.container{ attr = { class = "mdl-card__content mdl-card--border" }, content = function()
   24.25          config.render_external_reference_unit(unit)
   24.26 -      end
   24.27 -    end }
   24.28 +      end }
   24.29 +    end
   24.30  
   24.31  
   24.32      if not (config.voting_only and config.disable_delegations) and app.session.member_id and (
   24.33 @@ -80,10 +84,12 @@
   24.34      if unit then
   24.35        ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
   24.36          ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = area.name }
   24.37 -        if area.description and #(area.description) > 0 then
   24.38 -          ui.container{ attr = { class = "mdl-card__subtitle-text" }, content = area.description }
   24.39 -        end
   24.40        end }
   24.41 +      if area.description and #(area.description) > 0 then
   24.42 +        ui.container{ attr = { class = "mdl-card__content mdl-card--border" }, content = function()
   24.43 +          slot.put(format.text_with_links(area.description))
   24.44 +        end }
   24.45 +      end
   24.46      end
   24.47      if not (config.voting_only and config.disable_delegations) and app.session.member_id and (
   24.48        app.session.member:has_voting_right_for_unit_id(area.unit_id) 
    25.1 --- a/app/main/index/_not_voted_issues.lua	Thu Feb 03 15:54:23 2022 +0100
    25.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    25.3 @@ -1,67 +0,0 @@
    25.4 -local areas = param.get("areas", "table")
    25.5 -
    25.6 -if #areas > 0 then
    25.7 -  ui.container{
    25.8 -    attr = { style = "font-weight: bold;" },
    25.9 -    content = _"Current votings in areas you are member of and issues you are interested in:"
   25.10 -  }
   25.11 -  
   25.12 -  ui.list{
   25.13 -    records = areas,
   25.14 -    columns = {
   25.15 -      {
   25.16 -        name = "name"
   25.17 -      },
   25.18 -      {
   25.19 -        content = function(record)
   25.20 -          if record.is_member and record.issues_to_vote_count > 0 then
   25.21 -            ui.link{
   25.22 -              content = function()
   25.23 -                if record.issues_to_vote_count > 1 then
   25.24 -                  slot.put(_("#{issues_to_vote_count} issue(s)", { issues_to_vote_count = record.issues_to_vote_count }))
   25.25 -                else
   25.26 -                  slot.put(_("One issue"))
   25.27 -                end
   25.28 -              end,
   25.29 -              module = "area",
   25.30 -              view = "show",
   25.31 -              id = record.id,
   25.32 -              params = { 
   25.33 -                tab = "open",
   25.34 -                filter = "frozen",
   25.35 -                filter_interest = "any",
   25.36 -                filter_voting = "not_voted"
   25.37 -              }
   25.38 -            }
   25.39 -          else
   25.40 -            slot.put(_"Not a member")
   25.41 -          end
   25.42 -        end
   25.43 -      },
   25.44 -      {
   25.45 -        content = function(record)
   25.46 -          if record.interested_issues_to_vote_count > 0 then
   25.47 -            ui.link{
   25.48 -              content = function()
   25.49 -                if record.interested_issues_to_vote_count > 1 then
   25.50 -                  slot.put(_("#{interested_issues_to_vote_count} issue(s) you are interested in", { interested_issues_to_vote_count = record.interested_issues_to_vote_count }))
   25.51 -                else
   25.52 -                  slot.put(_"One issue you are interested in")
   25.53 -                end
   25.54 -              end,
   25.55 -              module = "area",
   25.56 -              view = "show",
   25.57 -              id = record.id,
   25.58 -              params = { 
   25.59 -                tab = "open",
   25.60 -                filter = "frozen",
   25.61 -                filter_interest = "issue",
   25.62 -                filter_voting = "not_voted"
   25.63 -              }
   25.64 -            }
   25.65 -          end
   25.66 -        end
   25.67 -      },
   25.68 -    }
   25.69 -  }
   25.70 -end
    26.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    26.2 +++ b/app/main/index/_sidebar_motd_intern_top.lua	Thu Feb 03 15:57:22 2022 +0100
    26.3 @@ -0,0 +1,12 @@
    26.4 +if app.session.member and config.motd_intern_top then
    26.5 +  ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function()
    26.6 +    ui.container{ attr = { class = "mdl-card__content" }, content = function()
    26.7 +      ui.container{
    26.8 +        attr = { class = "motd" },
    26.9 +        content = function()
   26.10 +          slot.put(config.motd_intern_top)
   26.11 +        end
   26.12 +      }
   26.13 +    end }
   26.14 +  end }
   26.15 +end
    27.1 --- a/app/main/index/_sidebar_motd_public.lua	Thu Feb 03 15:54:23 2022 +0100
    27.2 +++ b/app/main/index/_sidebar_motd_public.lua	Thu Feb 03 15:57:22 2022 +0100
    27.3 @@ -5,3 +5,11 @@
    27.4      end }
    27.5    end }
    27.6  end
    27.7 +
    27.8 +if not app.session.member and config.motd_only_public then
    27.9 +  ui.container{ attr = { class = "mdl-special-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function()
   27.10 +    ui.container{ attr = { class = "mdl-card__content" }, content = function()
   27.11 +      slot.put(config.motd_only_public)
   27.12 +    end }
   27.13 +  end }
   27.14 +end
    28.1 --- a/app/main/index/_sidebar_whatcanido.lua	Thu Feb 03 15:54:23 2022 +0100
    28.2 +++ b/app/main/index/_sidebar_whatcanido.lua	Thu Feb 03 15:57:22 2022 +0100
    28.3 @@ -30,6 +30,14 @@
    28.4            end
    28.5          end } 
    28.6        end }
    28.7 +      if not config.voting_only and app.session.member.has_initiative_right then
    28.8 +        ui.container{ attr = { class = "mdl-card__content mdl-card--border" }, content = function()
    28.9 +          ui.tag{ content = _"I want to start a new initiative" }
   28.10 +          ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
   28.11 +            ui.tag { tag = "li", content = _"open the appropriate subject area for your issue and follow the instruction on that page." }
   28.12 +          end } 
   28.13 +        end }
   28.14 +      end
   28.15        if app.session.member.has_voting_right then
   28.16          ui.container{ attr = { class = "mdl-card__content mdl-card--border" }, content = function()
   28.17            ui.tag{ content = _"I want to vote" }
   28.18 @@ -46,15 +54,7 @@
   28.19            end }
   28.20          end
   28.21        end
   28.22 -      if not config.voting_only and app.session.member.has_initiative_right then
   28.23 -        ui.container{ attr = { class = "mdl-card__content mdl-card--border" }, content = function()
   28.24 -          ui.tag{ content = _"I want to start a new initiative" }
   28.25 -          ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
   28.26 -            ui.tag { tag = "li", content = _"open the appropriate subject area for your issue and follow the instruction on that page." }
   28.27 -          end } 
   28.28 -        end }
   28.29 -      end
   28.30 -      if not config.single_unit_id then
   28.31 +      if not config.single_unit_id and not config.do_not_show_other_units_link then
   28.32          ui.container{ attr = { class = "mdl-card__content mdl-card--border" }, content = function()
   28.33            ui.tag{ content = _"I want to take a look at other organizational units" }
   28.34            ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
   28.35 @@ -83,10 +83,10 @@
   28.36      end
   28.37      if not app.session.member then
   28.38        ui.container { attr = { class = "mdl-card__content mdl-card--border" }, content = function ()
   28.39 -        ui.tag{ content = _"You are not entitled to vote in this unit" }
   28.40 +        ui.tag{ content = _"Login to participate" }
   28.41          ui.tag{ tag = "ul", content = function()
   28.42            ui.tag{ tag = "li", content = function()
   28.43 -            ui.link{ module = "index", view = "login", content = _"Login" }
   28.44 +            ui.link{ module = "index", view = "login", content = _"Login [button]" }
   28.45            end }
   28.46          end }
   28.47        end }
   28.48 @@ -94,22 +94,26 @@
   28.49      if not config.voting_only then
   28.50        ui.container{ attr = { class = "mdl-card__content mdl-card--border" }, content = function()
   28.51          ui.tag{ content = _"I want to learn more about LiquidFeedback" }
   28.52 -        ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
   28.53 -          ui.tag { tag = "li", content = function()
   28.54 -            ui.link { module = "help", view = "introduction", content = _"structured discussion" }
   28.55 -          end }
   28.56 -          ui.tag { tag = "li", content = function()
   28.57 -            ui.link { module = "help", view = "introduction", content = _"4 phases of a decision" }
   28.58 -          end }
   28.59 -          if not config.disable_delegations then
   28.60 +        if config.quick_guide and config.quick_guide.links then
   28.61 +          ui.container{ content = config.quick_guide.links }
   28.62 +        else
   28.63 +          ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
   28.64 +            ui.tag { tag = "li", content = function()
   28.65 +              ui.link { module = "help", view = "introduction", content = _"structured discussion" }
   28.66 +            end }
   28.67              ui.tag { tag = "li", content = function()
   28.68 -              ui.link { module = "help", view = "introduction", content = _"vote delegation" }
   28.69 +              ui.link { module = "help", view = "introduction", content = _"4 phases of a decision" }
   28.70              end }
   28.71 -          end
   28.72 -          ui.tag { tag = "li", content = function()
   28.73 -            ui.link { module = "help", view = "introduction", content = _"preference voting" }
   28.74 -          end }
   28.75 -        end } 
   28.76 +            if not config.disable_delegations then
   28.77 +              ui.tag { tag = "li", content = function()
   28.78 +                ui.link { module = "help", view = "introduction", content = _"vote delegation" }
   28.79 +              end }
   28.80 +            end
   28.81 +            ui.tag { tag = "li", content = function()
   28.82 +              ui.link { module = "help", view = "introduction", content = _"preference voting" }
   28.83 +            end }
   28.84 +          end } 
   28.85 +        end
   28.86        end }
   28.87      end
   28.88    end }
    29.1 --- a/app/main/index/confirm_notify_email.lua	Thu Feb 03 15:54:23 2022 +0100
    29.2 +++ b/app/main/index/confirm_notify_email.lua	Thu Feb 03 15:57:22 2022 +0100
    29.3 @@ -1,29 +1,48 @@
    29.4  ui.title(_"Email address confirmation")
    29.5  
    29.6 -ui.section(function() 
    29.7 -
    29.8 -  ui.sectionHead(function()
    29.9 -
   29.10 -    ui.form{
   29.11 -      attr = { class = "vertical" },
   29.12 -      module = "index",
   29.13 -      action = "confirm_notify_email",
   29.14 -      routing = {
   29.15 -        ok = {
   29.16 -          mode = "redirect",
   29.17 +ui.grid{ content = function()
   29.18 +  ui.cell_full{ content = function()
   29.19 +    ui.container { attr = { class = "mdl-card mdl-shadow--2dp mdl-card__fullwidth" }, content = function()
   29.20 +      ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
   29.21 +        ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = _"Email address confirmation" }
   29.22 +      end }
   29.23 +      ui.container{ attr = { class = "mdl-card__content mdl-card--border" }, content = function()
   29.24 +        ui.form{
   29.25 +          attr = { class = "vertical" },
   29.26            module = "index",
   29.27 -          view = "index"
   29.28 +          action = "confirm_notify_email",
   29.29 +          routing = {
   29.30 +            ok = {
   29.31 +              mode = "redirect",
   29.32 +              module = "index",
   29.33 +              view = "index"
   29.34 +            }
   29.35 +          },
   29.36 +          content = function()
   29.37 +            local secret = param.get("secret")
   29.38 +            if secret then
   29.39 +              ui.field.hidden{
   29.40 +                name = "secret",
   29.41 +                value = secret
   29.42 +              }
   29.43 +            else
   29.44 +              ui.field.text{
   29.45 +                label = _"Confirmation code",
   29.46 +                name = "secret"
   29.47 +              }
   29.48 +            end
   29.49 +            ui.tag{
   29.50 +              tag = "input",
   29.51 +              attr = {
   29.52 +                type = "submit",
   29.53 +                class = "mdl-button mdl-js-button mdl-button--raised mdl-button--colored",
   29.54 +                value = _'Confirm'
   29.55 +              }
   29.56 +            }
   29.57 +          end
   29.58          }
   29.59 -      },
   29.60 -      content = function()
   29.61 -        ui.field.text{
   29.62 -          label = _"Confirmation code",
   29.63 -          name = "secret",
   29.64 -          value = param.get("secret")
   29.65 -        }
   29.66 -        ui.submit{ text = _"Confirm" }
   29.67 -      end
   29.68 -    }
   29.69  
   29.70 -  end)
   29.71 -end)
   29.72 \ No newline at end of file
   29.73 +      end }
   29.74 +    end }
   29.75 +  end }
   29.76 +end }
    30.1 --- a/app/main/index/index.lua	Thu Feb 03 15:54:23 2022 +0100
    30.2 +++ b/app/main/index/index.lua	Thu Feb 03 15:57:22 2022 +0100
    30.3 @@ -26,9 +26,14 @@
    30.4  
    30.5  if area_id then
    30.6    area = Area:by_id(area_id)
    30.7 -  if not area or area.unit_id ~= unit.id then
    30.8 -    execute.view { module = "index", view = "404" }
    30.9 -    request.set_status("404 Not Found")
   30.10 +  if not area or (unit and area.unit_id ~= unit.id) then
   30.11 +    request.redirect{ 
   30.12 +      external = encode.url{
   30.13 +        module = "index", view = "index", params = {
   30.14 +          unit = unit_id
   30.15 +        }
   30.16 +      }
   30.17 +    }
   30.18      return
   30.19    end
   30.20    area:load_delegation_info_once_for_member_id(app.session.member_id)
   30.21 @@ -45,11 +50,17 @@
   30.22    ui.cell_main{ content = function()
   30.23  
   30.24      execute.view{ module = "index", view = "_sidebar_motd_public" }
   30.25 +    if not unit_id and not area_id then
   30.26 +      execute.view{ module = "index", view = "_sidebar_motd_intern_top" }
   30.27 +    end
   30.28  
   30.29      execute.view{ module = "issue", view = "_list" }
   30.30    end }
   30.31  
   30.32    ui.cell_sidebar{ content = function()
   30.33 +    if not unit and not area and config.logo_startpage then
   30.34 +      config.logo_startpage()
   30.35 +    end
   30.36      execute.view{ module = "index", view = "_head" }
   30.37      
   30.38      execute.view{ module = "index", view = "_sidebar_motd" }
    31.1 --- a/app/main/index/initiator_invites.lua	Thu Feb 03 15:54:23 2022 +0100
    31.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    31.3 @@ -1,13 +0,0 @@
    31.4 -local initiatives_selector = Initiator:selector_for_invites(app.session.member_id)
    31.5 -
    31.6 -ui.title(_"Initiatives that invited you to become initiator:")
    31.7 -
    31.8 -if initiatives_selector:count() > 0 then
    31.9 -  execute.view{
   31.10 -    module = "initiative",
   31.11 -    view = "_list",
   31.12 -    params = { initiatives_selector = initiatives_selector }
   31.13 -  }
   31.14 -else
   31.15 -  ui.field.text{ value = _"You are currently not invited to any initiative." }
   31.16 -end
   31.17 \ No newline at end of file
    32.1 --- a/app/main/index/login.lua	Thu Feb 03 15:54:23 2022 +0100
    32.2 +++ b/app/main/index/login.lua	Thu Feb 03 15:57:22 2022 +0100
    32.3 @@ -5,8 +5,8 @@
    32.4    end
    32.5  }
    32.6  
    32.7 -ui.title(_"Login")
    32.8 -app.html_title.title = _"Login"
    32.9 +ui.title(_"Login [headline]")
   32.10 +app.html_title.title = _"Login [headline]"
   32.11  
   32.12  ui.container{ attr = { class = "mdl-grid" }, content = function()
   32.13    ui.container{ attr = { class = "mdl-cell mdl-cell--12-col" }, content = function()
   32.14 @@ -14,7 +14,7 @@
   32.15  
   32.16      execute.view{ module = "index", view = "_lang_chooser" }
   32.17  
   32.18 -    ui.heading{ level = 1, content = _"Login" }
   32.19 +    ui.heading{ level = 1, content = _"Login [headline]" }
   32.20  
   32.21      local redirect_params = {}
   32.22      local redirect_params_string = param.get("redirect_params") 
   32.23 @@ -80,7 +80,7 @@
   32.24            attr = {
   32.25              type = "submit",
   32.26              class = "mdl-button mdl-js-button mdl-button--raised mdl-button--colored",
   32.27 -            value = _'Login'
   32.28 +            value = _"Login [button]"
   32.29            }
   32.30          }
   32.31          slot.put(" &nbsp; ")
    33.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    33.2 +++ b/app/main/index/privacy.lua	Thu Feb 03 15:57:22 2022 +0100
    33.3 @@ -0,0 +1,24 @@
    33.4 +if not config.privacy_policy then
    33.5 +  return execute.view { module = "index", view = "404" }
    33.6 +end
    33.7 +
    33.8 +ui.title(config.privacy_policy_headline or _"Privacy policy")
    33.9 +
   33.10 +ui.grid{ content = function()
   33.11 +  ui.cell_main{ content = function()
   33.12 +    ui.container { attr = { class = "mdl-card mdl-shadow--2dp mdl-card__fullwidth" }, content = function()
   33.13 +      ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
   33.14 +        ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = function()
   33.15 +           ui.tag{ content = config.privacy_policy_headline or _"Privacy policy" }
   33.16 +           if config.privacy_policy_subheadline then
   33.17 +            slot.put("<br>")
   33.18 +            ui.tag{ attr = { style = "font-size: 75%;" }, content = config.privacy_policy_subheadline }
   33.19 +          end
   33.20 +        end }
   33.21 +      end }
   33.22 +      ui.container{ attr = { class = "mdl-card__content draft" }, content = function()
   33.23 +        slot.put(config.privacy_policy)
   33.24 +      end }
   33.25 +    end }
   33.26 +  end }
   33.27 +end }
    34.1 --- a/app/main/index/reset_password.lua	Thu Feb 03 15:54:23 2022 +0100
    34.2 +++ b/app/main/index/reset_password.lua	Thu Feb 03 15:57:22 2022 +0100
    34.3 @@ -101,11 +101,11 @@
    34.4              content = _'Please enter your new password twice.'
    34.5            }
    34.6            ui.field.password{
    34.7 -            label = "New password",
    34.8 +            label = _"New password",
    34.9              name = "password1"
   34.10            }
   34.11            ui.field.password{
   34.12 -            label = "New password (repeat)",
   34.13 +            label = _"Repeat new password",
   34.14              name = "password2"
   34.15            }
   34.16            
    35.1 --- a/app/main/index/usage_terms.lua	Thu Feb 03 15:54:23 2022 +0100
    35.2 +++ b/app/main/index/usage_terms.lua	Thu Feb 03 15:57:22 2022 +0100
    35.3 @@ -1,19 +1,24 @@
    35.4 -ui.title(_"Terms of use")
    35.5 -
    35.6 -ui.section( function()
    35.7 +if not config.use_terms then
    35.8 +  return execute.view { module = "index", view = "404" }
    35.9 +end
   35.10  
   35.11 -  ui.sectionHead( function()
   35.12 -    ui.heading { level = 1, content = _"Terms of use" }
   35.13 -  end )
   35.14 -
   35.15 -  ui.sectionRow( function()
   35.16 +ui.title(config.use_terms_headline or _"Terms of use")
   35.17  
   35.18 -    ui.container{
   35.19 -      attr = { class = "wiki use_terms" },
   35.20 -      content = function()
   35.21 +ui.grid{ content = function()
   35.22 +  ui.cell_main{ content = function()
   35.23 +    ui.container { attr = { class = "mdl-card mdl-shadow--2dp mdl-card__fullwidth" }, content = function()
   35.24 +      ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
   35.25 +        ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = function()
   35.26 +           ui.tag{ content = config.use_terms_headline or _"Terms of use" }
   35.27 +           if config.use_terms_subheadline then
   35.28 +            slot.put("<br>")
   35.29 +            ui.tag{ attr = { style = "font-size: 75%;" }, content = config.use_terms_subheadline }
   35.30 +           end
   35.31 +         end }
   35.32 +      end }
   35.33 +      ui.container{ attr = { class = "mdl-card__content draft" }, content = function()
   35.34          slot.put(config.use_terms)
   35.35 -      end
   35.36 -    }
   35.37 -
   35.38 -  end )
   35.39 -end )
   35.40 \ No newline at end of file
   35.41 +      end }
   35.42 +    end }
   35.43 +  end }
   35.44 +end }
    36.1 --- a/app/main/initiative/_list.lua	Thu Feb 03 15:54:23 2022 +0100
    36.2 +++ b/app/main/initiative/_list.lua	Thu Feb 03 15:57:22 2022 +0100
    36.3 @@ -40,7 +40,9 @@
    36.4              text = _"Competing initiatives in pairwise comparison to best initiative:"
    36.5            end
    36.6          end
    36.7 -        if group == "not_admitted" and initiative.issue.state ~= "canceled_no_initiative_admitted" then
    36.8 +        if group == "not_admitted" and initiative.issue.state == "canceled_issue_not_accepted" then
    36.9 +          text = _"Failed 1st quorum"
   36.10 +        elseif group == "not_admitted" and initiative.issue.state ~= "canceled_no_initiative_admitted" then
   36.11            text = _("Competing initiatives failed the 2nd quorum (#{num}/#{den}):", {
   36.12              num = initiative.issue.policy.initiative_quorum_num,
   36.13              den = initiative.issue.policy.initiative_quorum_den
    37.1 --- a/app/main/initiative/_list_element.lua	Thu Feb 03 15:54:23 2022 +0100
    37.2 +++ b/app/main/initiative/_list_element.lua	Thu Feb 03 15:57:22 2022 +0100
    37.3 @@ -6,21 +6,6 @@
    37.4  
    37.5  local position = param.get("position", atom.number)
    37.6  
    37.7 -if initiative.vote_grade ~= nil then
    37.8 -  if initiative.vote_grade > 0 then
    37.9 -    local text = _"voted yes"
   37.10 -    ui.container{ attr = { class = "mdl-list__item-avatar positive" }, content = function()
   37.11 -      ui.tag{ tag = "i", attr = { class = "material-icons", title = text }, content = "thumb_up" }
   37.12 -    end }
   37.13 -  elseif initiative.vote_grade == 0 then
   37.14 -  elseif initiative.vote_grade < 0 then
   37.15 -    local text = _"voted no"
   37.16 -    ui.container{ attr = { class = "mdl-list__item-avatar negative" }, content = function()
   37.17 -      ui.tag{ tag = "i", attr = { class = "material-icons", title = text }, content = "thumb_down" }
   37.18 -    end }
   37.19 -  end
   37.20 -end
   37.21 -
   37.22  local class = "initiative mdl-list__item-primary-content"
   37.23  if initiative.rank == 1 then
   37.24    class = class .. " rank1"
   37.25 @@ -41,6 +26,20 @@
   37.26      ui.container {
   37.27        attr = { class = "initiative_name" },
   37.28        content = function()
   37.29 +        if initiative.vote_grade ~= nil then
   37.30 +          if initiative.vote_grade > 0 then
   37.31 +            local text = _"voted yes"
   37.32 +            ui.container{ attr = { class = "mdl-list__item-avatar positive" }, content = function()
   37.33 +              ui.tag{ tag = "i", attr = { class = "material-icons", title = text }, content = "thumb_up" }
   37.34 +            end }
   37.35 +          elseif initiative.vote_grade == 0 then
   37.36 +          elseif initiative.vote_grade < 0 then
   37.37 +            local text = _"voted no"
   37.38 +            ui.container{ attr = { class = "mdl-list__item-avatar negative" }, content = function()
   37.39 +              ui.tag{ tag = "i", attr = { class = "material-icons", title = text }, content = "thumb_down" }
   37.40 +            end }
   37.41 +          end
   37.42 +        end
   37.43          if not for_member and app.session.member then
   37.44            if initiative.member_info.supported then
   37.45              if initiative.member_info.satisfied then
   37.46 @@ -104,7 +103,7 @@
   37.47        
   37.48        if initiative.positive_votes ~= nil then
   37.49  
   37.50 -        local result_text 
   37.51 +        local result_text = ""
   37.52  
   37.53          if issue.voter_count == 0 then
   37.54            result_text = _("No votes (0)", { result = result })
   37.55 @@ -135,11 +134,11 @@
   37.56              no_count = initiative.negative_votes,
   37.57              no_percent = format.percent_floor(initiative.negative_votes, issue.voter_count)
   37.58            })
   37.59 -        
   37.60 +
   37.61          end
   37.62  
   37.63          ui.container { attr = { class = "result" }, content = result_text }
   37.64 -        
   37.65 +
   37.66        end
   37.67  
   37.68      end }
    38.1 --- a/app/main/initiative/_sidebar_policies.lua	Thu Feb 03 15:54:23 2022 +0100
    38.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    38.3 @@ -1,10 +0,0 @@
    38.4 -local area = param.get("area", "table")
    38.5 -
    38.6 -ui.sidebar ( "tab-whatcanido", function ()
    38.7 -  ui.sidebarHead( function()
    38.8 -    ui.heading { level = 2, content = _"Available policies" }
    38.9 -  end )
   38.10 -  execute.view { module = "policy", view = "_list", params = {
   38.11 -    for_area = area
   38.12 -  } }
   38.13 -end )
   38.14 \ No newline at end of file
    39.1 --- a/app/main/initiative/_sidebar_state.lua	Thu Feb 03 15:54:23 2022 +0100
    39.2 +++ b/app/main/initiative/_sidebar_state.lua	Thu Feb 03 15:57:22 2022 +0100
    39.3 @@ -23,7 +23,7 @@
    39.4        elseif initiative.rank then
    39.5          head_text = _("Rejected (rank #{rank})", { rank = initiative.rank })
    39.6        else
    39.7 -        head_text = _"Rejected"
    39.8 +        head_text = _"Rejected [initiative]"
    39.9        end
   39.10  
   39.11        ui.heading { level = 1, content = head_text }
    40.1 --- a/app/main/initiative/_sidebar_wikisyntax.lua	Thu Feb 03 15:54:23 2022 +0100
    40.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    40.3 @@ -1,61 +0,0 @@
    40.4 -if config.enforce_formatting_engine ~= 'markdown2' then
    40.5 -  return
    40.6 -end
    40.7 -
    40.8 -ui.sidebar( "tab-whatcanido", function()
    40.9 -  ui.sidebarHead( function()
   40.10 -    ui.heading { level = 2, content = _"Formatting help" }
   40.11 -  end )
   40.12 -  ui.sidebarSection( function ()
   40.13 -    ui.heading { level = 3, content = _"Paragraphs" }
   40.14 -    ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
   40.15 -      ui.tag { tag = "li", content = function ()
   40.16 -        ui.tag { content = _"Separate each paragraph with at least one blank line" }
   40.17 -      end }
   40.18 -    end }
   40.19 -
   40.20 -    ui.heading { level = 3, content = _"Headlines" }
   40.21 -    ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
   40.22 -      ui.tag { tag = "li", content = function ()
   40.23 -        ui.tag { content = _"Underline main headlines with ===" }
   40.24 -      end }
   40.25 -      ui.tag { tag = "li", content = function ()
   40.26 -        ui.tag { content = _"Underline sub headlines with ---" }
   40.27 -      end }
   40.28 -    end }
   40.29 -
   40.30 -    ui.heading { level = 3, content = _"Emphasis" }
   40.31 -    ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
   40.32 -      ui.tag { tag = "li", content = function ()
   40.33 -        ui.tag { content = _"Put *asterisks* or around a phrase to make it italic" }
   40.34 -      end }
   40.35 -      ui.tag { tag = "li", content = function ()
   40.36 -        ui.tag { content = _"Put **double asterisks** around a phrase to make it bold" }
   40.37 -      end }
   40.38 -    end }
   40.39 -
   40.40 -    ui.heading { level = 3, content = _"Lists" }
   40.41 -    ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
   40.42 -      ui.tag { tag = "li", content = function ()
   40.43 -        ui.tag { content = _"Lists must be preceeded and followed by at least one blank line" }
   40.44 -      end }
   40.45 -      ui.tag { tag = "li", content = function ()
   40.46 -        ui.tag { content = _"Put a hypen (-) or asterisk (*) followed by a space in front of each item" }
   40.47 -      end }
   40.48 -      ui.tag { tag = "li", content = function ()
   40.49 -        ui.tag { content = _"For numbered items use a digit (e.g. 1) followed by a dot (.) and a space" }
   40.50 -      end }
   40.51 -      ui.tag { tag = "li", content = function ()
   40.52 -        ui.tag { content = _"Indent sub items with spaces" }
   40.53 -      end }
   40.54 -    end }
   40.55 -
   40.56 -    ui.heading { level = 3, content = _"Links" }
   40.57 -    ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
   40.58 -      ui.tag { tag = "li", content = function ()
   40.59 -        ui.tag { content = _"Use [Text](http://example.com/) for links" }
   40.60 -      end }
   40.61 -    end }
   40.62 -
   40.63 -  end )
   40.64 -end )
    41.1 --- a/app/main/initiative/_suggestions.lua	Thu Feb 03 15:54:23 2022 +0100
    41.2 +++ b/app/main/initiative/_suggestions.lua	Thu Feb 03 15:57:22 2022 +0100
    41.3 @@ -6,7 +6,7 @@
    41.4  
    41.5  
    41.6  if direct_supporter then
    41.7 -  ui.tag{ tag = "dialog", attr = { id = "rating_dialog" }, content = function ()
    41.8 +  ui.tag{ tag = "div", attr = { id = "rating_dialog", class = "hidden" }, content = function ()
    41.9  
   41.10      local opinion = {}
   41.11      ui.form { 
   41.12 @@ -112,7 +112,7 @@
   41.13          ui.tag{
   41.14            tag = "input",
   41.15            attr = {
   41.16 -            onclick = "document.getElementById('rating_dialog').close(); return false;",
   41.17 +            onclick = "document.getElementById('rating_dialog').classList.add('hidden'); return false;",
   41.18              type = "submit",
   41.19              class = "mdl-button mdl-js-button",
   41.20              value = _"cancel"
   41.21 @@ -133,214 +133,228 @@
   41.22    attr = { class = "section suggestions" },
   41.23    content = function ()
   41.24  
   41.25 -    if # ( initiative.suggestions ) > 0 then
   41.26 -  
   41.27 -      ui.heading { 
   41.28 -        level = 1, 
   41.29 -        content = _("Suggestions for improvement (#{count})", { count = # ( initiative.suggestions ) } ) 
   41.30 +    ui.heading { 
   41.31 +      level = 1, 
   41.32 +      content = _("Suggestions for improvement (#{count})", { count = # ( initiative.suggestions ) } ) 
   41.33 +    }
   41.34 +
   41.35 +    ui.container { content = _"written and rated by the supportes of this initiative to improve the proposal and its reasons" }
   41.36 +
   41.37 +    if app.session.member_id and initiative.member_info.supported and not active_trustee_id then
   41.38 +      ui.link {
   41.39 +        attr = {
   41.40 +            style = "margin-top: 1ex;",
   41.41 +            class = "mdl-button mdl-js-button mdl-button--raised mdl-button--colored",
   41.42 +        },
   41.43 +        module = "suggestion", view = "new", params = {
   41.44 +          initiative_id = initiative.id
   41.45 +        },
   41.46 +        content = _"write a new suggestion" 
   41.47        }
   41.48 -      ui.container { content = _"written and rated by the supportes of this initiative to improve the proposal and its reasons" }
   41.49 -      slot.put("<br />")
   41.50 -      
   41.51 -      for i, suggestion in ipairs(initiative.suggestions) do
   41.52 -        
   41.53 -        local opinion = Opinion:by_pk(app.session.member_id, suggestion.id)
   41.54 +    end
   41.55 +
   41.56 +    slot.put("<br /><br />")
   41.57 +
   41.58 +    for i, suggestion in ipairs(initiative.suggestions) do
   41.59 +
   41.60 +      local opinion = Opinion:by_pk(app.session.member_id, suggestion.id)
   41.61  
   41.62 -        local class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp not-folded"
   41.63 -        if suggestion.id == param.get("suggestion_id", atom.number) then
   41.64 -          class = class .. " highlighted"
   41.65 -        end
   41.66 -        if member and not initiative.issue.fully_frozen and not initiative.issue.closed and initiative.member_info.supported then
   41.67 -          class = class .. " rateable"
   41.68 -        end
   41.69 +      local class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp not-folded"
   41.70 +      if suggestion.id == param.get("suggestion_id", atom.number) then
   41.71 +        class = class .. " highlighted"
   41.72 +      end
   41.73 +      if member and not initiative.issue.fully_frozen and not initiative.issue.closed and initiative.member_info.supported then
   41.74 +        class = class .. " rateable"
   41.75 +      end
   41.76 +    
   41.77 +      ui.link { attr = { name = "s" .. suggestion.id }, text = "" }
   41.78 +      ui.tag { tag = "div", attr = { class = class, id = "s" .. suggestion.id }, content = function ()
   41.79 +        ui.tag{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
   41.80 +          ui.heading { level = 2, 
   41.81 +            attr = { class = "mdl-card__title-text" },
   41.82 +            content = function()
   41.83 +              ui.tag{ content = format.string(suggestion.name, {
   41.84 +                truncate_at = 160, truncate_suffix = true })
   41.85 +              }
   41.86 +            end
   41.87 +          }
   41.88 +        end }
   41.89 +
   41.90 +          
   41.91 +    
   41.92 +        ui.container{ attr = { class = "suggestion-content" }, content = function()
   41.93        
   41.94 -        ui.link { attr = { name = "s" .. suggestion.id }, text = "" }
   41.95 -        ui.tag { tag = "div", attr = { class = class, id = "s" .. suggestion.id }, content = function ()
   41.96 -          ui.tag{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
   41.97 -            ui.heading { level = 2, 
   41.98 -              attr = { class = "mdl-card__title-text" },
   41.99 -              content = function()
  41.100 -                ui.tag{ content = format.string(suggestion.name, {
  41.101 -                  truncate_at = 160, truncate_suffix = true })
  41.102 +          ui.container { 
  41.103 +            attr = { class = "mdl-card__content mdl-card--border suggestionInfo" },
  41.104 +            content = function ()
  41.105 +            
  41.106 +              if app.session:has_access("authors_pseudonymous") then
  41.107 +                ui.tag{ content = _"by" }
  41.108 +                slot.put(" ")
  41.109 +                ui.link{
  41.110 +                  module = "member", view = "show", id = suggestion.author_id,
  41.111 +                  content = suggestion.author.name
  41.112                  }
  41.113                end
  41.114 -            }
  41.115 -          end }
  41.116 +              
  41.117 +              execute.view{
  41.118 +                module = "suggestion", view = "_collective_rating", params = {
  41.119 +                  suggestion = suggestion
  41.120 +                }
  41.121 +              }
  41.122  
  41.123 -            
  41.124 -      
  41.125 -          ui.container{ attr = { class = "suggestion-content" }, content = function()
  41.126 -        
  41.127 -            ui.container { 
  41.128 -              attr = { class = "mdl-card__content mdl-card--border suggestionInfo" },
  41.129 -              content = function ()
  41.130 +            end 
  41.131 +          }
  41.132                
  41.133 -                if app.session:has_access("authors_pseudonymous") then
  41.134 -                  ui.tag{ content = _"by" }
  41.135 -                  slot.put(" ")
  41.136 -                  ui.link{
  41.137 -                    module = "member", view = "show", id = suggestion.author_id,
  41.138 -                    content = suggestion.author.name
  41.139 -                  }
  41.140 -                end
  41.141 -                
  41.142 -                execute.view{
  41.143 -                  module = "suggestion", view = "_collective_rating", params = {
  41.144 -                    suggestion = suggestion
  41.145 -                  }
  41.146 +          ui.container {
  41.147 +            attr = { class = "mdl-card__content suggestion-text draft" },
  41.148 +            content = function ()
  41.149 +              slot.put ( suggestion:get_content( "html" ) )
  41.150 +
  41.151 +              ui.container { attr = { class = "floatx-right" }, content = function()
  41.152 +              
  41.153 +                ui.link { 
  41.154 +                  attr = { 
  41.155 +                    class = "mdl-button mdl-js-button mdl-button--icon suggestion-more",
  41.156 +                    onclick = "document.querySelector('#s" .. suggestion.id .. "').classList.remove('folded');document.querySelector('#s" .. suggestion.id .. "').classList.add('unfolded'); return false;"
  41.157 +                  },
  41.158 +                  content = function()
  41.159 +                    ui.tag{ tag = "i", attr = { class = "material-icons" }, content = "expand_more" }
  41.160 +                  end
  41.161                  }
  41.162 -
  41.163 -              end 
  41.164 -            }
  41.165                  
  41.166 -            ui.container {
  41.167 -              attr = { class = "mdl-card__content suggestion-text draft" },
  41.168 -              content = function ()
  41.169 -                slot.put ( suggestion:get_content( "html" ) )
  41.170 +                ui.link { 
  41.171 +                  attr = { 
  41.172 +                    class = "mdl-button mdl-js-button mdl-button--icon suggestion-less",
  41.173 +                    onclick = "document.querySelector('#s" .. suggestion.id .. "').classList.add('folded');document.querySelector('#s" .. suggestion.id .. "').classList.remove('unfolded'); return false;"
  41.174 +                  },
  41.175 +                  content = function()
  41.176 +                    ui.tag{ tag = "i", attr = { class = "material-icons" }, content = "expand_less" }
  41.177 +                  end
  41.178 +                }
  41.179 +                --[[
  41.180 +                ui.link{
  41.181 +                  attr = { class = "mdl-button" },
  41.182 +                  content = _"Details",
  41.183 +                  module = "suggestion", view = "show", id = suggestion.id
  41.184 +                }
  41.185 +                --]]
  41.186 +              end }
  41.187 +             
  41.188 +            end
  41.189 +          }
  41.190 +
  41.191 +        end }
  41.192 +
  41.193 +        ui.container { attr = { class = "mdl-card__actions mdl-card--border" }, content = function()
  41.194  
  41.195 -                ui.container { attr = { class = "floatx-right" }, content = function()
  41.196 -                
  41.197 -                  ui.link { 
  41.198 -                    attr = { 
  41.199 -                      class = "mdl-button mdl-js-button mdl-button--icon suggestion-more",
  41.200 -                      onclick = "document.querySelector('#s" .. suggestion.id .. "').classList.remove('folded');document.querySelector('#s" .. suggestion.id .. "').classList.add('unfolded'); return false;"
  41.201 -                    },
  41.202 -                    content = function()
  41.203 -                      ui.tag{ tag = "i", attr = { class = "material-icons" }, content = "expand_more" }
  41.204 -                    end
  41.205 -                  }
  41.206 -                  
  41.207 -                  ui.link { 
  41.208 -                    attr = { 
  41.209 -                      class = "mdl-button mdl-js-button mdl-button--icon suggestion-less",
  41.210 -                      onclick = "document.querySelector('#s" .. suggestion.id .. "').classList.add('folded');document.querySelector('#s" .. suggestion.id .. "').classList.remove('unfolded'); return false;"
  41.211 -                    },
  41.212 -                    content = function()
  41.213 -                      ui.tag{ tag = "i", attr = { class = "material-icons" }, content = "expand_less" }
  41.214 -                    end
  41.215 -                  }
  41.216 -                  --[[
  41.217 -                  ui.link{
  41.218 -                    attr = { class = "mdl-button" },
  41.219 -                    content = _"Details",
  41.220 -                    module = "suggestion", view = "show", id = suggestion.id
  41.221 -                  }
  41.222 -                  --]]
  41.223 -                end }
  41.224 -               
  41.225 +          if direct_supporter then
  41.226 +            ui.container{ attr = { class = "suggestion_rating_info" }, content = function()
  41.227 +              ui.tag{ attr = { id = "s" .. suggestion.id .. "_rating_text" }, content = function()
  41.228 +                local text_opinion = ""
  41.229 +                if opinion then
  41.230 +                  local text_template
  41.231 +                  if 
  41.232 +                    (opinion.degree > 0 and not opinion.fulfilled)
  41.233 +                    or (opinion.degree < 0 and opinion.fulfilled)
  41.234 +                  then
  41.235 +                    text_template = _"#{opinion} but #{implemented}"
  41.236 +                  else
  41.237 +                    text_template = _"#{opinion} and #{implemented}"
  41.238 +                  end
  41.239 +                  if opinion.degree == 2 then
  41.240 +                    text_opinion = _"must"
  41.241 +                  elseif opinion.degree == 1 then
  41.242 +                    text_opinion = _"should"
  41.243 +                  elseif opinion.degree == 0 then
  41.244 +                    text_opinion = _"neutral"
  41.245 +                  elseif opinion.degree == -1 then
  41.246 +                    text_opinion = _"should not"
  41.247 +                  elseif opinion.degree == -2 then
  41.248 +                    text_opinion = _"must not"
  41.249 +                  end
  41.250 +                  local text_implemented = ""
  41.251 +                  if opinion.fulfilled then
  41.252 +                    text_implemented = _"is implemented"
  41.253 +                  else
  41.254 +                    text_implemented = _"is not implemented"
  41.255 +                  end
  41.256 +                  ui.tag { content = _(text_template, {
  41.257 +                    opinion = text_opinion,
  41.258 +                    implemented = text_implemented
  41.259 +                  }) }
  41.260 +                end
  41.261 +              end }
  41.262 +              local id = "s" .. suggestion.id .. "_rating_icon"
  41.263 +              if opinion and (
  41.264 +                  (opinion.degree > 0 and not opinion.fulfilled)
  41.265 +                  or (opinion.degree < 0 and opinion.fulfilled)
  41.266 +                )
  41.267 +              then
  41.268 +                slot.put(" ")
  41.269 +                if math.abs(opinion.degree) > 1 then
  41.270 +                  ui.icon("warning", "red", id)
  41.271 +                else
  41.272 +                  ui.icon("warning", nil, id)
  41.273 +                end
  41.274 +              elseif opinion then
  41.275 +                slot.put(" ")
  41.276 +                ui.icon("done", nil, id)
  41.277 +              else
  41.278 +                slot.put(" ")
  41.279 +                ui.icon("blank", nil, id)
  41.280 +              end
  41.281 +            end }
  41.282 +            
  41.283 +            ui.tag{
  41.284 +              tag = "a",
  41.285 +              attr = {
  41.286 +                id = "s" .. suggestion.id .. "_rate_button",
  41.287 +                class = "mdl-button",
  41.288 +                onclick = "rateSuggestion(" .. suggestion.id .. ", " .. (opinion and opinion.degree or 0) .. ", " .. (opinion and (opinion.fulfilled and "true" or "false") or "null") .. ");return false;"
  41.289 +              },
  41.290 +              content = function()
  41.291 +                if opinion then
  41.292 +                  ui.tag { content = _"update rating" }
  41.293 +                else
  41.294 +                  ui.tag { content = _"rate suggestion" }
  41.295 +                end
  41.296                end
  41.297              }
  41.298 - 
  41.299 -          end }
  41.300 -
  41.301 -          ui.container { attr = { class = "mdl-card__actions mdl-card--border" }, content = function()
  41.302 +          end
  41.303 +                    
  41.304 +          ui.link{
  41.305 +            attr = { class = "mdl-button" },
  41.306 +            content = _"Details",
  41.307 +            module = "suggestion", view = "show", id = suggestion.id
  41.308 +          }
  41.309  
  41.310 -            if direct_supporter then
  41.311 -              ui.container{ attr = { class = "suggestion_rating_info" }, content = function()
  41.312 -                ui.tag{ attr = { id = "s" .. suggestion.id .. "_rating_text" }, content = function()
  41.313 -                  local text = ""
  41.314 -                  if opinion then
  41.315 -                    if opinion.degree == 2 then
  41.316 -                      text = _"must"
  41.317 -                    elseif opinion.degree == 1 then
  41.318 -                      text = _"should"
  41.319 -                    elseif opinion.degree == 0 then
  41.320 -                      text = _"neutral"
  41.321 -                    elseif opinion.degree == -1 then
  41.322 -                      text = _"should not"
  41.323 -                    elseif opinion.degree == -2 then
  41.324 -                      text = _"must not"
  41.325 -                    end
  41.326 -                    ui.tag { content = text }
  41.327 -                    slot.put ( " " )
  41.328 -                    if 
  41.329 -                      (opinion.degree > 0 and not opinion.fulfilled)
  41.330 -                      or (opinion.degree < 0 and opinion.fulfilled)
  41.331 -                    then
  41.332 -                      ui.tag{ content = _"but" }
  41.333 -                    else
  41.334 -                      ui.tag{ content = _"and" }
  41.335 -                    end
  41.336 -                    slot.put ( " " )
  41.337 -                    local text = ""
  41.338 -                    if opinion.fulfilled then
  41.339 -                      text = _"is implemented"
  41.340 -                    else
  41.341 -                      text = _"is not implemented"
  41.342 -                    end
  41.343 -                    ui.tag { content = text }
  41.344 -                  end
  41.345 -                end }
  41.346 -                local id = "s" .. suggestion.id .. "_rating_icon"
  41.347 -                if opinion and (
  41.348 -                    (opinion.degree > 0 and not opinion.fulfilled)
  41.349 -                    or (opinion.degree < 0 and opinion.fulfilled)
  41.350 -                  )
  41.351 -                then
  41.352 -                  slot.put(" ")
  41.353 -                  if math.abs(opinion.degree) > 1 then
  41.354 -                    ui.icon("warning", "red", id)
  41.355 -                  else
  41.356 -                    ui.icon("warning", nil, id)
  41.357 -                  end
  41.358 -                elseif opinion then
  41.359 -                  slot.put(" ")
  41.360 -                  ui.icon("done", nil, id)
  41.361 -                else
  41.362 -                  slot.put(" ")
  41.363 -                  ui.icon("blank", nil, id)
  41.364 -                end
  41.365 -              end }
  41.366 -              
  41.367 -              ui.link{
  41.368 -                attr = {
  41.369 -                  id = "s" .. suggestion.id .. "_rate_button",
  41.370 -                  class = "mdl-button",
  41.371 -                  onclick = "rateSuggestion(" .. suggestion.id .. ", " .. (opinion and opinion.degree or 0) .. ", " .. (opinion and (opinion.fulfilled and "true" or "false") or "null") .. ");return false;"
  41.372 -                },
  41.373 -                content = function()
  41.374 -                  if opinion then
  41.375 -                    ui.tag { content = _"update rating" }
  41.376 -                  else
  41.377 -                    ui.tag { content = _"rate suggestion" }
  41.378 -                  end
  41.379 -                end
  41.380 -              }
  41.381 -            end
  41.382 -                      
  41.383 -            ui.link{
  41.384 -              attr = { class = "mdl-button" },
  41.385 -              content = _"Details",
  41.386 -              module = "suggestion", view = "show", id = suggestion.id
  41.387 +        end }
  41.388 +        ui.script{ script = [[
  41.389 +          var rateSuggestionRateText = "]] .. _"rate suggestion" .. [[";
  41.390 +          var rateSuggestionUpdateRatingText = "]] .. _"update rating" .. [[";
  41.391 +          var rateSuggestionAndText = "]] .. _"#{opinion} and #{implemented}" .. [[";
  41.392 +          var rateSuggestionButText = "]] .. _"#{opinion} but #{implemented}" .. [[";
  41.393 +          var rateSuggestionDegreeTexts = {
  41.394 +            "-2": "]] .. _"must not" .. [[",
  41.395 +            "-1": "]] .. _"should not" .. [[",
  41.396 +            "1": "]] .. _"should" .. [[",
  41.397 +            "2": "]] .. _"must" .. [["
  41.398 +          }
  41.399 +          var rateSuggestionFulfilledText = "]] .. _"is implemented" .. [[";
  41.400 +          var rateSuggestionNotFulfilledText = "]] .. _"is not implemented" .. [[";
  41.401 +          window.addEventListener("load", function() {
  41.402 +            var textEl = document.querySelector('#s]] .. suggestion.id .. [[ .suggestion-content');
  41.403 +            var height = textEl.clientHeight;
  41.404 +            if (height > 250) {
  41.405 +              document.querySelector('#s]] .. suggestion.id .. [[').classList.add('folded');
  41.406              }
  41.407 +          });
  41.408 +        ]] }
  41.409 +        
  41.410 +      end } 
  41.411  
  41.412 -          end }
  41.413 -          ui.script{ script = [[
  41.414 -            var rateSuggestionRateText = "]] .. _"rate suggestion" .. [[";
  41.415 -            var rateSuggestionUpdateRatingText = "]] .. _"update rating" .. [[";
  41.416 -            var rateSuggestionDegreeTexts = {
  41.417 -              "-2": "]] .. _"must not" .. [[",
  41.418 -              "-1": "]] .. _"should not" .. [[",
  41.419 -              "1": "]] .. _"should" .. [[",
  41.420 -              "2": "]] .. _"must" .. [["
  41.421 -            }
  41.422 -            var rateSuggestionAndText = "]] .. _"and" .. [[";
  41.423 -            var rateSuggestionButText = "]] .. _"but" .. [[";
  41.424 -            var rateSuggestionFulfilledText = "]] .. _"is implemented" .. [[";
  41.425 -            var rateSuggestionNotFulfilledText = "]] .. _"is not implemented" .. [[";
  41.426 -            window.addEventListener("load", function() {
  41.427 -              var textEl = document.querySelector('#s]] .. suggestion.id .. [[ .suggestion-content');
  41.428 -              var height = textEl.clientHeight;
  41.429 -              if (height > 250) {
  41.430 -                document.querySelector('#s]] .. suggestion.id .. [[').classList.add('folded');
  41.431 -              }
  41.432 -            });
  41.433 -          ]] }
  41.434 -          
  41.435 -        end } 
  41.436 -
  41.437 -      end -- for i, suggestion
  41.438 -    
  41.439 -    end -- if #initiative.suggestions > 0
  41.440 +    end -- for i, suggestion
  41.441 +  
  41.442    end
  41.443  }
    42.1 --- a/app/main/initiative/history.lua	Thu Feb 03 15:54:23 2022 +0100
    42.2 +++ b/app/main/initiative/history.lua	Thu Feb 03 15:57:22 2022 +0100
    42.3 @@ -39,7 +39,7 @@
    42.4                    {
    42.5                      content = function(record)
    42.6                        slot.put('<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="old_draft_id_' .. record.id .. '"><input type="radio" class="mdl-radio__button" id="old_draft_id_' .. record.id .. '" name="old_draft_id" value="' .. tostring(record.id) .. '">') 
    42.7 -                      ui.tag { content = "compare" }
    42.8 +                      ui.tag { content = _"compare" }
    42.9                        slot.put(" ")
   42.10                        ui.link{
   42.11                          attr = { class = "action" },
    43.1 --- a/app/main/issue/_filters.lua	Thu Feb 03 15:54:23 2022 +0100
    43.2 +++ b/app/main/issue/_filters.lua	Thu Feb 03 15:57:22 2022 +0100
    43.3 @@ -5,7 +5,7 @@
    43.4  local member = param.get("member", "table")
    43.5  local phase = request.get_param{ name = "phase" }
    43.6  
    43.7 -local selected_unit_id = config.single_unit_id or request.get_param{ name = "unit" }
    43.8 +local selected_unit_id = config.single_unit_id or request.get_param{ name = "unit" } or app.single_unit_id
    43.9  if selected_unit_id == "all" then
   43.10    selected_unit_id = nil 
   43.11  end
   43.12 @@ -38,7 +38,7 @@
   43.13  
   43.14    -- units
   43.15    
   43.16 -  if not config.single_unit_id then
   43.17 +  if not app.single_unit_id then
   43.18  
   43.19      local units_selector  
   43.20  
   43.21 @@ -177,7 +177,7 @@
   43.22        selector_modifier = function()  end
   43.23      }
   43.24  
   43.25 -    if member and not for_unit and not for_area and not config.single_unit_id then
   43.26 +    if member and not for_unit and not for_area and not app.single_unit_id then
   43.27        filter[#filter+1] = {
   43.28          name = "my_units",
   43.29          label = _"in my units",
    44.1 --- a/app/main/issue/_head.lua	Thu Feb 03 15:54:23 2022 +0100
    44.2 +++ b/app/main/issue/_head.lua	Thu Feb 03 15:57:22 2022 +0100
    44.3 @@ -5,7 +5,7 @@
    44.4  
    44.5  ui.title ( function ()
    44.6    
    44.7 -  if not config.single_unit_id then
    44.8 +  if not app.single_unit_id then
    44.9      ui.link {
   44.10        attr = { class = "unit" },
   44.11        content = function()
    45.1 --- a/app/main/issue/_list.lua	Thu Feb 03 15:54:23 2022 +0100
    45.2 +++ b/app/main/issue/_list.lua	Thu Feb 03 15:57:22 2022 +0100
    45.3 @@ -15,8 +15,12 @@
    45.4    mode = "timeline"
    45.5  end
    45.6  
    45.7 -if config.single_unit_id then
    45.8 -  for_unit = Unit:by_id(config.single_unit_id)
    45.9 +if app.single_unit_id then
   45.10 +  if request.get_param{ name = "unit" } then
   45.11 +    for_unit = Unit:by_id(request.get_param{ name = "unit" })
   45.12 +  else
   45.13 +    for_unit = Unit:by_id(app.single_unit_id)
   45.14 +  end
   45.15  end
   45.16  
   45.17  local selector
   45.18 @@ -201,8 +205,8 @@
   45.19        if not for_issue and not for_initiative then
   45.20          ui.container{ attr = { class = "mdl-card__title mdl-card--has-fab mdl-card--border card-issue" }, content = function()
   45.21            ui.container{ attr = { class = "contextlinks" }, content = function()
   45.22 -            if not (config.single_unit_id and config.single_area_id) then
   45.23 -              if not config.single_unit_id then
   45.24 +            if not (app.single_unit_id and config.single_area_id) then
   45.25 +              if not app.single_unit_id then
   45.26                  ui.icon("group")
   45.27                  slot.put(" ")
   45.28                  ui.link{
   45.29 @@ -210,7 +214,7 @@
   45.30                    attr = { class = "unit" }, content = issue.area.unit.name                 }
   45.31                end
   45.32                if not config.single_area_id then
   45.33 -                if not config.single_unit_id then
   45.34 +                if not app.single_unit_id then
   45.35                    slot.put(" &nbsp;&nbsp;&nbsp; ")
   45.36                  end
   45.37                  ui.icon("category")
   45.38 @@ -413,6 +417,9 @@
   45.39      ui.paginate{
   45.40        selector = selector,
   45.41        per_page = 25,
   45.42 +      link_attr = { class = "mdl-button mdl-js-button mdl-button--raised" },
   45.43 +      active_link_attr = { class = "mdl-button mdl-js-button mdl-button--raised mdl-button--colored" },
   45.44 +      position = "after",
   45.45        content = doit
   45.46      }
   45.47    end
    46.1 --- a/app/main/issue/_sidebar_whatcanido.lua	Thu Feb 03 15:54:23 2022 +0100
    46.2 +++ b/app/main/issue/_sidebar_whatcanido.lua	Thu Feb 03 15:57:22 2022 +0100
    46.3 @@ -603,12 +603,16 @@
    46.4      
    46.5      if not app.session.member or not privileged_to_vote then
    46.6        ui.container { attr = { class = "mdl-card__content mdl-card--border" }, content = function ()
    46.7 -        ui.tag{ content = _"You are not entitled to vote in this unit" }
    46.8 -        ui.tag{ tag = "ul", content = function()
    46.9 -          ui.tag{ tag = "li", content = function()
   46.10 -            ui.link{ module = "index", view = "login", content = _"Login" }
   46.11 +        if not app.session.member_id then
   46.12 +          ui.tag{ content = _"Login to participate" }
   46.13 +          ui.tag{ tag = "ul", content = function()
   46.14 +            ui.tag{ tag = "li", content = function()
   46.15 +              ui.link{ module = "index", view = "login", content = _"Login [button]" }
   46.16 +            end }
   46.17            end }
   46.18 -        end }
   46.19 +        else
   46.20 +          ui.tag{ content = _"You are not entitled to vote in this unit" }
   46.21 +        end
   46.22        end }
   46.23      end
   46.24      
    47.1 --- a/app/main/member/_action/update.lua	Thu Feb 03 15:54:23 2022 +0100
    47.2 +++ b/app/main/member/_action/update.lua	Thu Feb 03 15:57:22 2022 +0100
    47.3 @@ -1,7 +1,7 @@
    47.4  local profile = app.session.member.profile
    47.5  
    47.6  for i, field in ipairs(config.member_profile_fields) do
    47.7 -  if not util.is_profile_field_locked(app.session.member, field.id) then
    47.8 +  if not util.is_profile_field_locked(app.session.member, field.id) and not field.validate_func then
    47.9      local value = param.get(field.id)
   47.10      if value == "" then 
   47.11        value = null
    48.1 --- a/app/main/member/_list.lua	Thu Feb 03 15:54:23 2022 +0100
    48.2 +++ b/app/main/member/_list.lua	Thu Feb 03 15:57:22 2022 +0100
    48.3 @@ -72,6 +72,7 @@
    48.4  
    48.5  
    48.6  local function list_members()
    48.7 +  ui.tag{ tag = "a", attr = { name = "member_list" }, content = "" }
    48.8    local ui_paginate = ui.paginate
    48.9    if no_paginate then
   48.10      ui_paginate = function (args) args.content() end
    49.1 --- a/app/main/member/_show_thumb.lua	Thu Feb 03 15:54:23 2022 +0100
    49.2 +++ b/app/main/member/_show_thumb.lua	Thu Feb 03 15:57:22 2022 +0100
    49.3 @@ -128,9 +128,9 @@
    49.4  
    49.5      if initiator and initiator.accepted then
    49.6        if member.accepted == nil then
    49.7 -        slot.put(_"Invited")
    49.8 +        slot.put(_"Invited [as initiator]")
    49.9        elseif member.accepted == false then
   49.10 -        slot.put(_"Rejected")
   49.11 +        slot.put(_"Rejected [initiator invitation]")
   49.12        end
   49.13      end
   49.14  
   49.15 @@ -176,7 +176,7 @@
   49.16          ui.link{ attr = { class = "mdl-menu__link" }, content = _"show profile", module = "member", view = "show", id = member.id }
   49.17        end }
   49.18      end
   49.19 -    if app.session.member_id then
   49.20 +    if app.session.member_id and app.session.member_id ~= member.id then
   49.21        ui.tag{ tag = "li", attr = { class = "mdl-menu__item" }, content = function()
   49.22          ui.link{
   49.23            attr = { class = "mdl-menu__link" },
   49.24 @@ -190,7 +190,8 @@
   49.25                module = request.get_module(),
   49.26                view = request.get_view(),
   49.27                id = request.get_id_string(),
   49.28 -              params = request.get_param_strings()
   49.29 +              params = request.get_param_strings(),
   49.30 +              anchor = "member_list"
   49.31              }
   49.32            }
   49.33          }
    50.1 --- a/app/main/member/edit.lua	Thu Feb 03 15:54:23 2022 +0100
    50.2 +++ b/app/main/member/edit.lua	Thu Feb 03 15:57:22 2022 +0100
    50.3 @@ -32,52 +32,12 @@
    50.4                  ui.container{
    50.5                    attr = { class = "mdl-textfield mdl-js-textfield mdl-textfield--floating-label" },
    50.6                    content = function()
    50.7 -                    ui.tag{ tag = "input", attr = { class = "mdl-textfield__input", name = field.id, id = "input_" .. field.id, readonly = config.locked_profile_fields[field.id], value = profile and profile.profile and profile.profile[field.id] or nil } }
    50.8 +                    ui.tag{ tag = "input", attr = { class = "mdl-textfield__input", name = field.id, id = "input_" .. field.id, readonly = field.validate_func and "readonly" or nil, value = profile and profile.profile and profile.profile[field.id] or nil } }
    50.9                      ui.tag{ tag = "label", attr = { class = "mdl-textfield__label", ["for"] = "input_" .. field.id }, content = field.name }
   50.10                  end }
   50.11                  slot.put("<br />")
   50.12                end
   50.13              end
   50.14 -            if not config.enforce_formatting_engine then
   50.15 -              ui.field.select{
   50.16 -                label = _"Wiki engine for statement",
   50.17 -                name = "formatting_engine",
   50.18 -                foreign_records = config.formatting_engines,
   50.19 -                attr = {id = "formatting_engine"},
   50.20 -                foreign_id = "id",
   50.21 -                foreign_name = "name",
   50.22 -                value = param.get("formatting_engine")
   50.23 -              }
   50.24 -              ui.tag{
   50.25 -                tag = "div",
   50.26 -                content = function()
   50.27 -                  ui.tag{
   50.28 -                    tag = "label",
   50.29 -                    attr = { class = "ui_field_label" },
   50.30 -                    content = function() slot.put("&nbsp;") end,
   50.31 -                  }
   50.32 -                  ui.tag{
   50.33 -                    content = function()
   50.34 -                      ui.link{
   50.35 -                        text = _"Syntax help",
   50.36 -                        module = "help",
   50.37 -                        view = "show",
   50.38 -                        id = "wikisyntax",
   50.39 -                        attr = {onClick="this.href=this.href.replace(/wikisyntax[^.]*/g, 'wikisyntax_'+getElementById('formatting_engine').value)"}
   50.40 -                      }
   50.41 -                      slot.put(" ")
   50.42 -                      ui.link{
   50.43 -                        text = _"(new window)",
   50.44 -                        module = "help",
   50.45 -                        view = "show",
   50.46 -                        id = "wikisyntax",
   50.47 -                        attr = {target = "_blank", onClick="this.href=this.href.replace(/wikisyntax[^.]*/g, 'wikisyntax_'+getElementById('formatting_engine').value)"}
   50.48 -                      }
   50.49 -                    end
   50.50 -                  }
   50.51 -                end
   50.52 -              }
   50.53 -            end
   50.54              ui.field.text{
   50.55                label = _"Statement",
   50.56                name = "statement",
    51.1 --- a/app/main/member/settings_agent.lua	Thu Feb 03 15:54:23 2022 +0100
    51.2 +++ b/app/main/member/settings_agent.lua	Thu Feb 03 15:57:22 2022 +0100
    51.3 @@ -32,9 +32,9 @@
    51.4                  content = function(record)
    51.5                    local text
    51.6                    if record.accepted then
    51.7 -                    text = _"accepted"
    51.8 +                    text = _"accepted [account access]"
    51.9                    elseif record.accepted == false then
   51.10 -                    text = _"rejected"
   51.11 +                    text = _"rejected [account access]"
   51.12                    else
   51.13                      text = _"not decided yet"
   51.14                    end
    52.1 --- a/app/main/member/settings_password.lua	Thu Feb 03 15:54:23 2022 +0100
    52.2 +++ b/app/main/member/settings_password.lua	Thu Feb 03 15:57:22 2022 +0100
    52.3 @@ -26,7 +26,7 @@
    52.4                container_attr = { class = "mdl-textfield mdl-js-textfield mdl-textfield--floating-label" },
    52.5                attr = { id = "lf-member__old_password", class = "mdl-textfield__input" },
    52.6                label_attr = { class = "mdl-textfield__label", ["for"] = "lf-member__old_password" },
    52.7 -              label= _'Curent password',
    52.8 +              label= _'Current password',
    52.9                name = 'old_password',
   52.10                value = ""
   52.11              }
    53.1 --- a/app/main/oauth2/token.lua	Thu Feb 03 15:54:23 2022 +0100
    53.2 +++ b/app/main/oauth2/token.lua	Thu Feb 03 15:57:22 2022 +0100
    53.3 @@ -62,6 +62,9 @@
    53.4      if cert_distinguished_name then
    53.5        cert_common_name = string.match(cert_distinguished_name, "%f[^/\0]CN=([A-Za-z0-9_.-]+)%f[/\0]")
    53.6        if not cert_common_name then
    53.7 +        cert_common_name = string.match(cert_distinguished_name, "^CN=([A-Za-z0-9_.-]+)")
    53.8 +      end
    53.9 +      if not cert_common_name then
   53.10          return error_result("invalid_client", "CN in X.509 certificate invalid")
   53.11        end
   53.12      else
    54.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    54.2 +++ b/app/main/oauth2_client/callback.lua	Thu Feb 03 15:57:22 2022 +0100
    54.3 @@ -0,0 +1,88 @@
    54.4 +local provider = param.get("provider")
    54.5 +local provider_config = config.oauth2_providers[provider]
    54.6 +if not provider_config then
    54.7 +  return
    54.8 +end
    54.9 +
   54.10 +
   54.11 +local error = param.get("error")
   54.12 +
   54.13 +if error then
   54.14 +  ui.heading{ content = "OAuth error" }
   54.15 +  ui.container{ content = error }
   54.16 +  return
   54.17 +end
   54.18 +
   54.19 +local state = param.get("state")
   54.20 +
   54.21 +if state ~= app.session:additional_secret_for("oauth") then
   54.22 +  ui.heading{ content = "OAuth error" }
   54.23 +  ui.container{ content = "state invalid" }
   54.24 +  return
   54.25 +end
   54.26 +
   54.27 +local code = param.get("code")
   54.28 +
   54.29 +local params = {
   54.30 +  code = code,
   54.31 +  client_id = provider_config.client_id,
   54.32 +  client_secret = provider_config.client_secret,
   54.33 +  redirect_uri = request.get_absolute_baseurl() .. "oauth2_client/callback.html?provider=" .. provider,
   54.34 +  grant_type = "authorization_code"
   54.35 +}
   54.36 +
   54.37 +local params_list = {}
   54.38 +for key, val in pairs(params) do
   54.39 +  table.insert(params_list, encode.url_part(key) .. "=" .. encode.url_part(val))
   54.40 +end
   54.41 +
   54.42 +local r = table.concat(params_list, "&")
   54.43 +
   54.44 +local output, err, status = extos.pfilter(nil, "curl", "-X", "POST", "-d", r, provider_config.token_url)
   54.45 +
   54.46 +local result = json.import(output)
   54.47 +
   54.48 +local url = provider_config.id_url .. "?access_token=" .. encode.url_part(result.access_token)
   54.49 +
   54.50 +local output, err, status = extos.pfilter(nil, "curl", url)
   54.51 +
   54.52 +local id_result = json.import(output)
   54.53 +
   54.54 +local id = id_result[provider_config.id_field]
   54.55 +local email = id_result[provider_config.email_field]
   54.56 +
   54.57 +if id then
   54.58 +  local member = Member:new_selector()
   54.59 +    :add_where{ "authority = ?", "oauth2_" .. provider }
   54.60 +    :add_where{ "authority_uid = ?", id }
   54.61 +    :optional_object_mode()
   54.62 +    :exec()
   54.63 +    
   54.64 +  if not member then
   54.65 +    member = Member:new()
   54.66 +    member.authority = "oauth2_" .. provider
   54.67 +    member.authority_uid = id
   54.68 +    member.notify_email = email
   54.69 +    member.name = "Member " .. id
   54.70 +    member.identification = "Member " .. id
   54.71 +    member.activated = "now"
   54.72 +    member:save()
   54.73 +    for i, unit_id in ipairs(provider_config.unit_ids) do
   54.74 +      local privilege = Privilege:new()
   54.75 +      privilege.member_id = member.id
   54.76 +      privilege.unit_id = unit_id
   54.77 +      privilege.initiative_right = true
   54.78 +      privilege.voting_right = true
   54.79 +      privilege:save()
   54.80 +    end
   54.81 +  end
   54.82 +  member.last_login = "now"
   54.83 +  member.last_activity = "now"
   54.84 +  member.active = true
   54.85 +  member:save()
   54.86 +  app.session.member = member
   54.87 +  app.session:save()
   54.88 +  request.redirect{ external = request.get_absolute_baseurl() }
   54.89 +  
   54.90 +end
   54.91 +
    55.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    55.2 +++ b/app/main/oauth2_client/redirect.lua	Thu Feb 03 15:57:22 2022 +0100
    55.3 @@ -0,0 +1,29 @@
    55.4 +local provider = param.get("provider")
    55.5 +local provider_config = config.oauth2_providers[provider]
    55.6 +if not provider_config then
    55.7 +  return
    55.8 +end
    55.9 +
   55.10 +local params = {
   55.11 +  response_type = "code",
   55.12 +  redirect_uri = request.get_absolute_baseurl() .. "oauth2_client/callback.html?provider=" .. provider,
   55.13 +  client_id = provider_config.client_id,
   55.14 +  --scope = provider_config.scope,
   55.15 +  state = app.session:additional_secret_for("oauth"),
   55.16 +}
   55.17 +
   55.18 +if provider_config.additional_auth_params then
   55.19 +  for key, val in pairs(provider_config.additional_auth_params) do
   55.20 +    params[key] = val
   55.21 +  end
   55.22 +end
   55.23 +
   55.24 +local params_list = {}
   55.25 +for key, val in pairs(params) do
   55.26 +  table.insert(params_list, encode.url_part(key) .. "=" .. encode.url_part(val))
   55.27 +end
   55.28 +
   55.29 +local url = provider_config.auth_url .. "?" .. table.concat(params_list, "&")
   55.30 +
   55.31 +request.redirect{ external = url }
   55.32 +
    56.1 --- a/app/main/policy/_list.lua	Thu Feb 03 15:54:23 2022 +0100
    56.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    56.3 @@ -1,92 +0,0 @@
    56.4 -local for_area = param.get("for_area", "table")
    56.5 -
    56.6 -local selector = Policy:new_selector()
    56.7 -  :add_where("policy.active")
    56.8 -  :add_order_by("policy.index")
    56.9 -
   56.10 -if for_area then
   56.11 -  selector:join("allowed_policy", nil,
   56.12 -    { "allowed_policy.policy_id = policy.id AND allowed_policy.area_id = ?", for_area.id }
   56.13 -  )
   56.14 -end
   56.15 -
   56.16 -local policies = selector:exec()
   56.17 -
   56.18 -
   56.19 -for i, policy in ipairs(policies) do
   56.20 -  ui.container { 
   56.21 -    attr = { class = "sidebarRow", id = "policy" .. policy.id },
   56.22 -    content = function ()
   56.23 -
   56.24 -      ui.heading { level = 3, content = policy.name }
   56.25 -      
   56.26 -      if policy.description and #(policy.description) > 0 then
   56.27 -        ui.tag{
   56.28 -          content = policy.description
   56.29 -        }
   56.30 -        slot.put ( "<br />" )
   56.31 -      end
   56.32 -      
   56.33 -      ui.link {
   56.34 -        attr = {
   56.35 -          class = "policy-show-details",
   56.36 -          onclick = "$('#policy" .. policy.id .. " .policy-details').show(); $('#policy" .. policy.id .. " .policy-show-details').hide(); $('#policy" .. policy.id .. " .policy-hide-details').show(); return false;"
   56.37 -        },
   56.38 -        content = _"show details"
   56.39 -      }
   56.40 -      
   56.41 -      ui.link {
   56.42 -        attr = {
   56.43 -          class = "policy-hide-details",
   56.44 -          onclick = "$('#policy" .. policy.id .. " .policy-details').hide(); $('#policy" .. policy.id .. " .policy-show-details').show(); $('#policy" .. policy.id .. " .policy-hide-details').hide(); return false;",
   56.45 -          style = "display: none;"
   56.46 -        },
   56.47 -        content = _"hide details"
   56.48 -      }
   56.49 -      
   56.50 -      ui.container {
   56.51 -        attr = {
   56.52 -          class = "policy-details",
   56.53 -          style = "display: none;"
   56.54 -        },
   56.55 -        content = function ()
   56.56 -
   56.57 -          ui.heading { level = 4, content = _"Phase durations" }
   56.58 -
   56.59 -          if policy.polling then
   56.60 -            ui.field.text{ label = _"New" .. ":", value = _"without" }
   56.61 -          else
   56.62 -            ui.field.text{ label = _"New" .. ":", value = "≥ " .. format.interval_text(policy.min_admission_time) }
   56.63 -            ui.field.text{ label = _"New" .. ":", value = "≤ " .. format.interval_text(policy.max_admission_time) }
   56.64 -          end
   56.65 -          ui.field.text{ label = _"Discussion" .. ":", value = format.interval_text(policy.discussion_time) or _"variable" }
   56.66 -          ui.field.text{ label = _"Frozen" .. ":", value = format.interval_text(policy.verification_time) or _"variable" }
   56.67 -          ui.field.text{ label = _"Voting" .. ":", value = format.interval_text(policy.voting_time) or _"variable" }
   56.68 -
   56.69 -          ui.heading { level = 4, content = _"Quorums" }
   56.70 -          
   56.71 -          if policy.polling then
   56.72 -            ui.field.text{ label = _"Issue quorum" .. ":", value = _"without" }
   56.73 -          else
   56.74 -            ui.field.text{
   56.75 -              label = _"Issue quorum" .. ":", 
   56.76 -              value = "≥ " .. tostring(policy.issue_quorum)
   56.77 -            }
   56.78 -          end
   56.79 -          ui.field.text{
   56.80 -            label = _"Initiative quorum" .. ":", 
   56.81 -            value = "≥ " .. tostring(policy.initiative_quorum_num) .. "/" .. tostring(policy.initiative_quorum_den)
   56.82 -          }
   56.83 -          ui.field.text{
   56.84 -            label = _"Direct majority" .. ":", 
   56.85 -            value = (policy.direct_majority_strict and ">" or "≥" ) .. " " .. tostring(policy.direct_majority_num) .. "/" .. tostring(policy.direct_majority_den)
   56.86 -          }
   56.87 -          ui.field.text{
   56.88 -            label = _"Indirect majority" .. ":", 
   56.89 -            value = (policy.indirect_majority_strict and ">" or "≥" ) .. " " .. tostring(policy.indirect_majority_num) .. "/" .. tostring(policy.indirect_majority_den)
   56.90 -          }
   56.91 -        end
   56.92 -      }
   56.93 -    end
   56.94 -  }
   56.95 -end
    57.1 --- a/app/main/policy/list.lua	Thu Feb 03 15:54:23 2022 +0100
    57.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    57.3 @@ -1,3 +0,0 @@
    57.4 -ui.title(_"Policies")
    57.5 -
    57.6 -execute.view { module = "policy", view = "_list" }
    57.7 \ No newline at end of file
    58.1 --- a/app/main/policy/show.lua	Thu Feb 03 15:54:23 2022 +0100
    58.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    58.3 @@ -1,75 +0,0 @@
    58.4 -local policy = Policy:by_id(param.get_id())
    58.5 -
    58.6 -slot.put_into("title", encode.html(_("Policy '#{name}'", { name = policy.name })))
    58.7 -
    58.8 -ui.form{
    58.9 -  attr = { class = "vertical" },
   58.10 -  record = policy,
   58.11 -  content = function()
   58.12 -    if policy.polling then
   58.13 -      ui.field.text{ label = _"New" .. ":", value = _"without" }
   58.14 -    else
   58.15 -      ui.field.text{ label = _"New" .. ":", value = "≤ min " .. policy.min_admission_time }
   58.16 -      ui.field.text{ label = _"New" .. ":", value = "≤ max " .. policy.max_admission_time }
   58.17 -    end
   58.18 -    ui.field.text{ label = _"Discussion" .. ":", value = policy.discussion_time or _"variable" }
   58.19 -    ui.field.text{ label = _"Frozen" .. ":", value = policy.verification_time or _"variable" }
   58.20 -    ui.field.text{ label = _"Voting" .. ":", value = policy.voting_time or _"variable" }
   58.21 -    
   58.22 -    if policy.polling then
   58.23 -      ui.field.text{ label = _"Issue quorum" .. ":", value = _"without" }
   58.24 -    else
   58.25 -      ui.field.text{
   58.26 -        label = _"Issue quorum",
   58.27 -        value = "≥ " .. tostring(policy.issue_quorum_num) .. "/" .. tostring(policy.issue_quorum_den)
   58.28 -      }
   58.29 -    end
   58.30 -    ui.field.text{
   58.31 -      label = _"Initiative quorum",
   58.32 -      value = "≥ " .. tostring(policy.initiative_quorum_num) .. "/" .. tostring(policy.initiative_quorum_den)
   58.33 -    }
   58.34 -    ui.field.text{
   58.35 -      label = _"Direct majority",
   58.36 -      value = 
   58.37 -        (policy.direct_majority_strict and ">" or "≥" ) .. " "
   58.38 -        .. tostring(policy.direct_majority_num) .. "/"
   58.39 -        .. tostring(policy.direct_majority_den) 
   58.40 -        .. (policy.direct_majority_positive > 1 and ", " .. _("at least #{count} approvals", { count = policy.direct_majority_positive }) or "")
   58.41 -        .. (policy.direct_majority_non_negative > 1 and ", " .. _("at least #{count} approvals or abstentions", { count = policy.direct_majority_non_negative }) or "")
   58.42 -    }
   58.43 -
   58.44 -    ui.field.text{
   58.45 -      label = _"Indirect majority",
   58.46 -      value = 
   58.47 -        (policy.indirect_majority_strict and ">" or "≥" ) .. " "
   58.48 -        .. tostring(policy.indirect_majority_num) .. "/"
   58.49 -        .. tostring(policy.indirect_majority_den) 
   58.50 -        .. (policy.indirect_majority_positive > 1 and ", " .. _("at least #{count} approvals", { count = policy.indirect_majority_positive }) or "")
   58.51 -        .. (policy.indirect_majority_non_negative > 1 and ", " .. _("at least #{count} approvals or abstentions", { count = policy.indirect_majority_non_negative }) or "")
   58.52 -    }
   58.53 -
   58.54 -    local texts = {}
   58.55 -    if policy.no_reverse_beat_path then
   58.56 -      texts[#texts+1] = _"no reverse beat path to status quo (including ties)"
   58.57 -    end
   58.58 -    if policy.no_multistage_majority then
   58.59 -      texts[#texts+1] = _"prohibit potentially instable results caused by multistage majorities"
   58.60 -    end
   58.61 -    ui.field.text{
   58.62 -      label = _"Options",
   58.63 -      value = table.concat(texts, ", ")
   58.64 -    }
   58.65 -    if policy.description and #policy.description > 0 then
   58.66 -      ui.container{
   58.67 -        attr = { class = "suggestion_content wiki" },
   58.68 -        content = function()
   58.69 -          ui.tag{
   58.70 -            tag = "p",
   58.71 -            content = policy.description
   58.72 -          }
   58.73 -        end
   58.74 -      }
   58.75 -    end
   58.76 -
   58.77 -  end
   58.78 -}
    59.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    59.2 +++ b/app/main/registration/_action/_verify.lua	Thu Feb 03 15:57:22 2022 +0100
    59.3 @@ -0,0 +1,38 @@
    59.4 +local verification = param.get("verification", "table")
    59.5 +
    59.6 +local identification = config.self_registration.identification_func(verification.request_data)
    59.7 +
    59.8 +local members_with_same_identification = Member:new_selector()
    59.9 +  :add_where{ "identification = ?", identification }
   59.10 +  :exec()
   59.11 +
   59.12 +if #members_with_same_identification > 0 then
   59.13 +  verification.comment = (verification.comment or "").. " /// Manual verification needed: user with same name already exists"
   59.14 +  verification:save()
   59.15 +  request.redirect{ external = encode.url { module = "registration", view = "register_manual_check_needed" } }
   59.16 +  return false
   59.17 +end
   59.18 +
   59.19 +local member = Member:by_id(verification.requesting_member_id)
   59.20 +
   59.21 +member.identification = identification
   59.22 +member.notify_email = verification.request_data.email
   59.23 +
   59.24 +member:send_invitation()
   59.25 +
   59.26 +for i, unit_id in ipairs(config.self_registration.grant_privileges_for_unit_ids) do
   59.27 +  local privilege = Privilege:new()
   59.28 +  privilege.member_id = member.id
   59.29 +  privilege.unit_id = unit_id
   59.30 +  privilege.initiative_right = true
   59.31 +  privilege.voting_right = true
   59.32 +  privilege:save()
   59.33 +end
   59.34 +
   59.35 +verification.verified = "now"
   59.36 +verification.verification_data = verification.request_data
   59.37 +verification.verified_member_id = member.id
   59.38 +verification.comment = (verification.comment or "").. " /// Account created"
   59.39 +
   59.40 +verification:save()
   59.41 +
    60.1 --- a/app/main/registration/_action/register.lua	Thu Feb 03 15:54:23 2022 +0100
    60.2 +++ b/app/main/registration/_action/register.lua	Thu Feb 03 15:57:22 2022 +0100
    60.3 @@ -138,8 +138,46 @@
    60.4        end
    60.5        verification.request_data[field.name] = string.format("%04i-%02i-%02i", year, month, day)
    60.6      
    60.7 +    elseif field.type == "multiselect" then
    60.8 +      local values = {}
    60.9 +      for i_options, option in ipairs(field.options) do
   60.10 +        if not option.id then
   60.11 +          option.id = option.name
   60.12 +        end
   60.13 +        local value = param.get("verification_data_" .. field.name .. "__" .. option.id)
   60.14 +        if value == "1" then
   60.15 +          if option.other then
   60.16 +            table.insert(values, param.get("verification_data_" .. field.name .. "_other"))
   60.17 +          else
   60.18 +            table.insert(values, option.id)
   60.19 +          end
   60.20 +        end
   60.21 +      end
   60.22 +      if not field.optional and #values < 1 then
   60.23 +        slot.put_into("self_registration__invalid_" .. field.name, "to_short")
   60.24 +        slot.select("error", function()
   60.25 +          ui.container{ content = _("Please enter: #{field_name}", { field_name = field.label or field.title }) }
   60.26 +        end)
   60.27 +        errors = errors + 1
   60.28 +      end
   60.29 +      verification.request_data[field.name] = table.concat(values, ", ")
   60.30      else
   60.31        local value = param.get("verification_data_" .. field.name)
   60.32 +      if field.type == "dropdown" then
   60.33 +      local other_option_id
   60.34 +        for i_options, option in ipairs(field.options) do
   60.35 +          if not option.id then
   60.36 +            option.id = option.name
   60.37 +          end
   60.38 +          if option.other then
   60.39 +            other_option_id = option.id
   60.40 +          end
   60.41 +        end
   60.42 +        if other_option_id and other_option_id == value then
   60.43 +          value = param.get("verification_data_" .. field.name .. "_other")
   60.44 +        end
   60.45 +      end
   60.46 +      
   60.47        local optional = false
   60.48        if field.optional then
   60.49          optional = true
   60.50 @@ -150,7 +188,7 @@
   60.51        if not optional and (not value or (#value < 1 and (not manual_verification or field.name ~= "mobile_phone"))) then
   60.52          slot.put_into("self_registration__invalid_" .. field.name, "to_short")
   60.53          slot.select("error", function()
   60.54 -          ui.container{ content = _("Please enter: #{field_name}", { field_name = field.label }) }
   60.55 +          ui.container{ content = _("Please enter: #{field_name}", { field_name = field.label or field.title }) }
   60.56          end)
   60.57          errors = errors + 1
   60.58        end
   60.59 @@ -244,17 +282,19 @@
   60.60    table.insert(manual_check_reasons, "User requested manual verification (during step 1)")
   60.61  end
   60.62  
   60.63 -if not config.self_registration.sms_id then
   60.64 -  table.insert(manual_check_reasons, "User requested manual verification (during step 1)")
   60.65 +if config.self_registration.sms_id then
   60.66 +  local existing_verifications = Verification:new_selector()
   60.67 +    :add_where{ "request_data->>'mobile_phone' = ?", mobile_phone }
   60.68 +    :add_where("comment ilike '%SMS code%'")
   60.69 +    :exec()
   60.70 +
   60.71 +  if #existing_verifications > 0 then
   60.72 +    table.insert(manual_check_reasons, "mobile phone number already used before")
   60.73 +  end
   60.74  end
   60.75  
   60.76 -local existing_verifications = Verification:new_selector()
   60.77 -  :add_where{ "request_data->>'mobile_phone' = ?", mobile_phone }
   60.78 -  :add_where("comment ilike '%SMS code%'")
   60.79 -  :exec()
   60.80 -
   60.81 -if #existing_verifications > 0 then
   60.82 -  table.insert(manual_check_reasons, "mobile phone number already used before")
   60.83 +if config.self_registration.force_manual_check then
   60.84 +  table.insert(manual_check_reasons, "Manual check enforced by configuration")
   60.85  end
   60.86  
   60.87  if #manual_check_reasons > 0 then
   60.88 @@ -263,13 +303,12 @@
   60.89    verification:save()
   60.90    request.redirect{ external = encode.url { module = "registration", view = "register_manual_check_needed" } } 
   60.91  
   60.92 -else
   60.93 +elseif config.self_registration.sms_id then
   60.94    local pin = multirand.string(6, "0123456789")
   60.95    verification.request_data.sms_code = pin
   60.96    verification.request_data.sms_code_tries = 3
   60.97    local sms_text = config.self_registration.sms_text
   60.98    local sms_text = string.gsub(sms_text, "{PIN}", pin)
   60.99 -  print("SMS Code: " .. sms_text)
  60.100    local phone_number
  60.101    if config.self_registration.sms_strip_leading_zero then
  60.102      phone_number = string.match(verification.request_data.mobile_phone, "0(.+)")
  60.103 @@ -293,9 +332,7 @@
  60.104    
  60.105    local params_string = table.concat(params_list, "&")
  60.106    local url = "http://gateway.any-sms.biz/send_sms.php?" .. params_string
  60.107 -  print("curl " .. url)
  60.108    local output, err, status = extos.pfilter(nil, "curl", url)
  60.109 -  print(output)
  60.110    verification.request_data.sms_code_sent_status = output
  60.111    if not string.match(output, "^err:0") then
  60.112      verification.comment = (verification.comment or "").. " /// Manual verification needed: sending SMS failed (" .. output .. ")"
  60.113 @@ -306,6 +343,25 @@
  60.114    verification.comment = (verification.comment or "") .. " /// SMS code " .. pin .. " sent"
  60.115    verification:save()
  60.116    request.redirect{ external = encode.url { module = "registration", view = "register_enter_pin", id = verification.id } }
  60.117 +  
  60.118 +else
  60.119 +  local success = execute.action{
  60.120 +    module = "registration", action = "_verify", params = {
  60.121 +      verification = verification
  60.122 +    }
  60.123 +  }
  60.124 +  if success == "ok" then
  60.125 +    if verification.request_data.unit then
  60.126 +      local unit_privilege = Privilege:new()
  60.127 +      unit_privilege.member_id = verification.requesting_member_id
  60.128 +      unit_privilege.unit_id = tonumber(verification.request_data.unit)
  60.129 +      unit_privilege.voting_right = true
  60.130 +      unit_privilege.initiative_right = true
  60.131 +      unit_privilege:save()
  60.132 +    end
  60.133 +    request.redirect{ external = encode.url { module = "registration", view = "register_completed" } } 
  60.134 +  end
  60.135 +  
  60.136  end
  60.137  
  60.138  
    61.1 --- a/app/main/registration/_action/register_pin.lua	Thu Feb 03 15:54:23 2022 +0100
    61.2 +++ b/app/main/registration/_action/register_pin.lua	Thu Feb 03 15:57:22 2022 +0100
    61.3 @@ -29,43 +29,12 @@
    61.4  
    61.5  verification.comment = (verification.comment or "").. " /// User entered correct PIN code"
    61.6  
    61.7 -verification.verified = "now"
    61.8 -verification.verification_data = verification.request_data
    61.9 -
   61.10 -local identification = config.self_registration.identification_func(verification.request_data)
   61.11 -
   61.12 -local members_with_same_identification = Member:new_selector()
   61.13 -  :add_where{ "identification = ?", identification }
   61.14 -  :exec()
   61.15 -
   61.16 -if #members_with_same_identification > 0 then
   61.17 -  verification.comment = (verification.comment or "").. " /// Manual verification needed: user with same name already exists"
   61.18 -  verification:save()
   61.19 -  request.redirect{ external = encode.url { module = "registration", view = "register_manual_check_needed" } }
   61.20 -  return false
   61.21 +local success = execute.action{
   61.22 +  module = "registration", action = "_verify", params = {
   61.23 +    verification = verification
   61.24 +  }
   61.25 +}
   61.26 +if success == "ok" then
   61.27 +  request.redirect{ external = encode.url { module = "registration", view = "register_completed" } } 
   61.28  end
   61.29  
   61.30 -local member = Member:by_id(verification.requesting_member_id)
   61.31 -
   61.32 -member.identification = identification
   61.33 -member.notify_email = verification.request_data.email
   61.34 -
   61.35 -member:send_invitation()
   61.36 -
   61.37 -for i, unit_id in ipairs(config.self_registration.grant_privileges_for_unit_ids) do
   61.38 -  local privilege = Privilege:new()
   61.39 -  privilege.member_id = member.id
   61.40 -  privilege.unit_id = unit_id
   61.41 -  privilege.initiative_right = true
   61.42 -  privilege.voting_right = true
   61.43 -  privilege:save()
   61.44 -end
   61.45 -
   61.46 -verification.verified_member_id = member.id
   61.47 -
   61.48 -verification.comment = (verification.comment or "").. " /// Account created"
   61.49 -
   61.50 -verification:save()
   61.51 -
   61.52 -
   61.53 -request.redirect{ external = encode.url { module = "registration", view = "register_completed" } } 
    62.1 --- a/app/main/registration/_register_form.lua	Thu Feb 03 15:54:23 2022 +0100
    62.2 +++ b/app/main/registration/_register_form.lua	Thu Feb 03 15:57:22 2022 +0100
    62.3 @@ -7,6 +7,12 @@
    62.4    if field_error then
    62.5      class = " is-invalid"
    62.6    end
    62.7 +  if field.title then
    62.8 +    ui.container{ attr = { style = "font-weight: bold;" }, content = field.title }
    62.9 +  end
   62.10 +  if field.text then
   62.11 +    ui.container{ content = field.text }
   62.12 +  end
   62.13    if not field.internal then
   62.14      if field.type == "comment" then
   62.15        ui.tag { content = field.label }
   62.16 @@ -108,20 +114,96 @@
   62.17      
   62.18      elseif field.type == "dropdown" then
   62.19        local options = { { id = "", name = "" } }
   62.20 +      local other_option_id
   62.21        for i_options, option in ipairs(field.options) do
   62.22 +        if not option.id then
   62.23 +          option.id = option.name
   62.24 +        end
   62.25 +        if option.other then
   62.26 +          other_option_id = option.id
   62.27 +        end
   62.28          table.insert(options, option)
   62.29        end
   62.30 -      ui.tag{ tag = "label", attr = { style = "vertical-align: bottom; border-bottom: 1px solid rgba(0,0,0, 0.12); color: #777; font-size: 16px;" }, content = field.label .. ":" }
   62.31 -      slot.put(" &nbsp; ")
   62.32 +      if field.label then
   62.33 +        ui.tag{ tag = "label", attr = { style = "vertical-align: bottom; border-bottom: 1px solid rgba(0,0,0, 0.12); color: #777; font-size: 16px;" }, content = field.label .. ":" }
   62.34 +        slot.put(" &nbsp; ")
   62.35 +      end
   62.36 +      local onchange_script
   62.37 +      if other_option_id then
   62.38 +        onchange_script = "var el = document.getElementById('lf-register__data_other_container_" .. field.name .. "'); if (this.value == '" .. other_option_id .. "') { console.log(el); el.classList.remove('hidden'); } else { el.classList.add('hidden'); };"
   62.39 +      end
   62.40        ui.field.select{
   62.41          container_attr = { style = "display: inline-block; " },
   62.42 -        attr = { class = class },
   62.43 +        attr = { class = class, onchange = onchange_script },
   62.44          foreign_records = options,
   62.45          foreign_id = "id",
   62.46          foreign_name = "name",
   62.47          name = "verification_data_" .. field.name,
   62.48 -        value = tonumber(request.get_param{ name = "verification_data_" .. field.name })
   62.49 +        value = request.get_param{ name = "verification_data_" .. field.name }
   62.50        }
   62.51 +      if other_option_id then
   62.52 +        slot.put(" ")
   62.53 +        ui.field.text{
   62.54 +          container_attr = { id = "lf-register__data_other_container_" .. field.name, class = "hidden mdl-textfield mdl-js-textfield mdl-textfield--floating-label" .. class },
   62.55 +          attr = { id = "lf-register__data_other_" .. field.name, class = "mdl-textfield__input" },
   62.56 +          name = "verification_data_" .. field.name .. "_other",
   62.57 +        label_attr = { class = "mdl-textfield__label", ["for"] = "lf-register__data" .. field.name },
   62.58 +          label = field.name,
   62.59 +          value = request.get_param{ name = "verification_data_" .. field.name .. "_other" }
   62.60 +        }
   62.61 +      end
   62.62 +      slot.put("<br />")
   62.63 +
   62.64 +    elseif field.type == "multiselect" then
   62.65 +      local options = { { id = "", name = "" } }
   62.66 +      local other_option_id
   62.67 +      for i_options, option in ipairs(field.options) do
   62.68 +        if not option.id then
   62.69 +          option.id = option.name
   62.70 +        end
   62.71 +        local onchange_script
   62.72 +        if option.other then
   62.73 +          onchange_script = "var el = document.getElementById('lf-register__data_other_container_" .. field.name .. "'); if (this.checked) { console.log(el); el.classList.remove('hidden'); } else { el.classList.add('hidden'); };"
   62.74 +        end
   62.75 +        ui.container{ content = function()
   62.76 +          ui.tag{ tag = "label", attr = {
   62.77 +              class = "mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect",
   62.78 +              style = "display: inline;",
   62.79 +              ["for"] = "verification_data_" .. field.name .. "__" .. option.id,
   62.80 +            },
   62.81 +            content = function()
   62.82 +              ui.tag{
   62.83 +                tag = "input",
   62.84 +                attr = {
   62.85 +                  type = "checkbox",
   62.86 +                  class = "mdl-checkbox__input",
   62.87 +                  onchange = onchange_script,
   62.88 +                  id = "verification_data_" .. field.name .. "__" .. option.id,
   62.89 +                  name = "verification_data_" .. field.name .. "__" .. option.id,
   62.90 +                  value = "1",
   62.91 +                  style = "float: left;",
   62.92 +                  checked = request.get_param{ name = "verification_data_" .. field.name .. "__" .. option.id } and "checked" or nil,
   62.93 +                }
   62.94 +              }
   62.95 +              ui.tag{
   62.96 +                attr = { class = "mdl-checkbox__label" },
   62.97 +                content = option.name
   62.98 +              }
   62.99 +            end
  62.100 +          }
  62.101 +        end }
  62.102 +        if option.other then
  62.103 +          slot.put(" ")
  62.104 +          ui.field.text{
  62.105 +            container_attr = { id = "lf-register__data_other_container_" .. field.name, class = "hidden mdl-textfield mdl-js-textfield mdl-textfield--floating-label" .. class },
  62.106 +            attr = { id = "lf-register__data_other_" .. field.name, class = "mdl-textfield__input" },
  62.107 +            name = "verification_data_" .. field.name .. "_other",
  62.108 +          label_attr = { class = "mdl-textfield__label", ["for"] = "lf-register__data" .. field.name },
  62.109 +            label = field.name,
  62.110 +            value = request.get_param{ name = "verification_data_" .. field.name .. "_other" }
  62.111 +          }
  62.112 +        end
  62.113 +      end
  62.114        slot.put("<br />")
  62.115  
  62.116      elseif field.type == "image" then
  62.117 @@ -184,7 +266,7 @@
  62.118        if field.where then
  62.119          units_selector:add_where(field.where)
  62.120        end
  62.121 -      local units = {}
  62.122 +      local units = { { id = "", name = "" } }
  62.123        if field.optional then
  62.124          table.insert(units, {
  62.125            id = "",
    63.1 --- a/app/main/registration_admin/_action/update_verification.lua	Thu Feb 03 15:54:23 2022 +0100
    63.2 +++ b/app/main/registration_admin/_action/update_verification.lua	Thu Feb 03 15:57:22 2022 +0100
    63.3 @@ -12,7 +12,7 @@
    63.4        value = string.gsub(value, "[^0-9]", "")
    63.5      elseif field.name == "unit" then
    63.6        value = string.gsub(value, "[^0-9]", "")
    63.7 -      if old_verification_data.unit and old_verification_data.unit ~= "" then
    63.8 +      if old_verification_data.unit and old_verification_data.unit ~= "" and old_verification_data.unit ~= value then
    63.9          local old_unit_privilege = Privilege:by_pk(old_verification_data.unit, verification.requesting_member_id)
   63.10          if old_unit_privilege then
   63.11            old_unit_privilege:destroy()
   63.12 @@ -50,22 +50,44 @@
   63.13    end
   63.14  end
   63.15  
   63.16 +local function check_db_error(db_error)
   63.17 +  if db_error then
   63.18 +    if db_error:is_kind_of("IntegrityConstraintViolation.UniqueViolation") then
   63.19 +      slot.select("error", function()
   63.20 +        ui.tag{ content = _"Identification unique violation: This identification is already in use for another member." }
   63.21 +      end )
   63.22 +      return false
   63.23 +    else
   63.24 +      error(db_error)
   63.25 +    end
   63.26 +  end
   63.27 +end
   63.28 +
   63.29  if verification.verified_member_id then
   63.30    
   63.31    local member = Member:by_id(verification.verified_member_id)
   63.32    
   63.33 +  local identification = param.get("identification")
   63.34 +  if identification and #identification == 0 then
   63.35 +    identification = nil
   63.36 +  end
   63.37 +  member.identification = identification
   63.38 +
   63.39 +  member.notify_email = param.get("email")
   63.40 +
   63.41 +  local success = check_db_error(member:try_save())
   63.42 +  if not success then
   63.43 +    return false
   63.44 +  end
   63.45 +
   63.46 +  update_data()
   63.47 +
   63.48 +  verification:save()
   63.49 +
   63.50    if param.get("cancel") then
   63.51      db:query({ "SELECT delete_member(?)", member.id })
   63.52      return
   63.53    end
   63.54 -  
   63.55 -  member.identification = param.get("identification")
   63.56 -  member.notify_email = param.get("email")
   63.57 -  member:save()
   63.58 -  
   63.59 -  update_data()
   63.60 -  
   63.61 -  verification:save()
   63.62  
   63.63    if param.get("invite") then
   63.64      member:send_invitation()
   63.65 @@ -80,9 +102,19 @@
   63.66  elseif param.get("accredit") then
   63.67    
   63.68    local member = Member:by_id(verification.requesting_member_id)
   63.69 -  member.identification = param.get("identification")
   63.70 +
   63.71 +  local identification = param.get("identification")
   63.72 +  if identification and #identification == 0 then
   63.73 +    identification = nil
   63.74 +  end
   63.75 +  member.identification = identification
   63.76 +
   63.77    member.notify_email = param.get("email")
   63.78 -  member:save()
   63.79 +
   63.80 +  local success = check_db_error(member:try_save())
   63.81 +  if not success then
   63.82 +    return false
   63.83 +  end
   63.84  
   63.85    if config.self_registration.manual_invitation then
   63.86      local function secret_token()
    64.1 --- a/app/main/registration_admin/verification_accredited.lua	Thu Feb 03 15:54:23 2022 +0100
    64.2 +++ b/app/main/registration_admin/verification_accredited.lua	Thu Feb 03 15:57:22 2022 +0100
    64.3 @@ -87,7 +87,7 @@
    64.4                        slot.put(" ")
    64.5                        ui.tag{ content = state } 
    64.6                      elseif record.verified then
    64.7 -                      ui.tag{ content = _"SMS" }
    64.8 +                      ui.tag{ content = _"automatically verified" }
    64.9                      end
   64.10                      
   64.11                    end
    65.1 --- a/app/main/slideshow/_index.lua	Thu Feb 03 15:54:23 2022 +0100
    65.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    65.3 @@ -1,64 +0,0 @@
    65.4 -local unit = param.get( "unit", "table" )
    65.5 -local area = param.get( "area", "table" )
    65.6 -
    65.7 -local args = {
    65.8 -  unit_id = unit and unit.id or nil,
    65.9 -  area_id = area and area.id or nil
   65.10 -}
   65.11 -
   65.12 -local lastWinner = Initiative:getLastWinner( args )
   65.13 -local lastLooser = Initiative:getLastLoser( args )
   65.14 -local nextEndingVoting = Initiative:getNextEndingVoting( args )
   65.15 -local nextEndingVerification = Initiative:getNextEndingVerification( args )
   65.16 -local nextEndingDiscussion = Initiative:getNextEndingDiscussion( args )
   65.17 -local bestInAdmission = Initiative:getBestInAdmission( args )
   65.18 -
   65.19 -local slides = { }
   65.20 -
   65.21 -if lastWinner then
   65.22 -  slides[#slides+1] = {
   65.23 -    title = _"Latest approved issue",
   65.24 -    initiative = lastWinner
   65.25 -  }
   65.26 -end
   65.27 -
   65.28 -if lastLooser then
   65.29 -  slides[#slides+1] = {
   65.30 -    title = _"Latest disapproved issue",
   65.31 -    initiative = lastLooser
   65.32 -  }
   65.33 -end
   65.34 -
   65.35 -if nextEndingVoting then
   65.36 -  slides[#slides+1] = {
   65.37 -    title = _("Voting #{time_info}", { time_info = nextEndingVoting.issue.state_time_text }),
   65.38 -    initiative = nextEndingVoting
   65.39 -  }
   65.40 -end
   65.41 -
   65.42 -if nextEndingVerification then
   65.43 -  slides[#slides+1] = {
   65.44 -    title = _("Verification #{time_info}", { time_info = nextEndingVerification.issue.state_time_text }),
   65.45 -    initiative = nextEndingVerification
   65.46 -  }
   65.47 -end
   65.48 -
   65.49 -if nextEndingDiscussion then
   65.50 -  slides[#slides+1] = {
   65.51 -    title = _("Discussion #{time_info}", { time_info = nextEndingDiscussion.issue.state_time_text }),
   65.52 -    initiative = nextEndingDiscussion
   65.53 -  }
   65.54 -end
   65.55 -
   65.56 -if bestInAdmission then
   65.57 -  slides[#slides+1] = {
   65.58 -    title = _"Best not admitted initiative",
   65.59 -    initiative = bestInAdmission
   65.60 -  }
   65.61 -end
   65.62 -
   65.63 -execute.view { 
   65.64 -  module = "slideshow", view = "_slideshow", params = {
   65.65 -    slides = slides
   65.66 -  }
   65.67 -}
    66.1 --- a/app/main/slideshow/_slideshow.lua	Thu Feb 03 15:54:23 2022 +0100
    66.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    66.3 @@ -1,79 +0,0 @@
    66.4 -local slides = param.get( "slides", "table" )
    66.5 -
    66.6 -local show_slides = {}
    66.7 -
    66.8 -for i, slide in ipairs( slides ) do
    66.9 -  
   66.10 -  if slide.initiative then
   66.11 -    show_slides[ #show_slides + 1 ] = slide
   66.12 -  end
   66.13 -  
   66.14 -end
   66.15 -  
   66.16 -slot.select( "slideshow", function ()
   66.17 -  
   66.18 -  ui.container { attr = { class = "slideshow" }, content = function ()
   66.19 -    
   66.20 -    for i, slide in ipairs( show_slides ) do
   66.21 -      
   66.22 -      if slide.initiative.issue.closed then
   66.23 -        view = "finished"
   66.24 -      elseif slide.initiative.issue.fully_frozen then
   66.25 -        view = "voting"
   66.26 -      elseif slide.initiative.issue.half_frozen then
   66.27 -        view = "verification"
   66.28 -      elseif slide.initiative.issue.admitted then
   66.29 -        view = "discussion"
   66.30 -      else
   66.31 -        view = "admission"
   66.32 -      end
   66.33 -      
   66.34 -      ui.container { attr = { class = "slide slide-" .. i }, content = function ()
   66.35 -
   66.36 -        if slide.initiative.issue.closed then
   66.37 -          util.initiative_pie(slide.initiative, 150)
   66.38 -        end
   66.39 -
   66.40 -        ui.container {
   66.41 -          attr = { class = "slideshowTitle" },
   66.42 -          content = slide.title
   66.43 -        }
   66.44 -
   66.45 -        execute.view {
   66.46 -          module = "initiative", view = "_list_element", params = {
   66.47 -            initiative = slide.initiative
   66.48 -          }
   66.49 -        }
   66.50 -
   66.51 -      end }
   66.52 -      
   66.53 -    end
   66.54 -
   66.55 -    
   66.56 -  end }
   66.57 -    
   66.58 -end )
   66.59 -
   66.60 -ui.script{ script = [[
   66.61 -
   66.62 -var slideshowCurrent = 0;
   66.63 -var slideshowCount = ]] .. #show_slides .. [[ ;
   66.64 -function slideshowShowSlide(i) {
   66.65 -  $(".slideshow .slide").slideUp();
   66.66 -  $(".slideshow .slide-" + i).slideDown();
   66.67 -  slideshowCurrent = i;
   66.68 -}
   66.69 -
   66.70 -function slideshowShowNext() {
   66.71 -  var next = slideshowCurrent + 1;
   66.72 -  if (next > slideshowCount) {
   66.73 -    next = 1;
   66.74 -  }
   66.75 -  slideshowShowSlide(next);
   66.76 -  window.setTimeout(slideshowShowNext, 7500);
   66.77 -}
   66.78 -
   66.79 -slideshowShowNext();
   66.80 -
   66.81 -  
   66.82 -  ]]}
   66.83 \ No newline at end of file
    67.1 --- a/app/main/slideshow/index.lua	Thu Feb 03 15:54:23 2022 +0100
    67.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    67.3 @@ -1,26 +0,0 @@
    67.4 -local unit = param.get( "unit", "table" )
    67.5 -local area = param.get( "area", "table" )
    67.6 -
    67.7 -local args = {
    67.8 -  unit_id = unit and unit.id or nil,
    67.9 -  area_id = area and area.id or nil
   67.10 -}
   67.11 -
   67.12 -local issues = Issue:new_selector():exec()
   67.13 -
   67.14 -
   67.15 -local slides = {}
   67.16 -
   67.17 -for i, issue in ipairs( issues ) do
   67.18 -  slides[ #slides+1 ] = {
   67.19 -    title = issue.state_name,
   67.20 -    initiative = issue.initiatives[1]
   67.21 -  }
   67.22 -end
   67.23 -
   67.24 -
   67.25 -execute.view { 
   67.26 -  module = "slideshow", view = "_slideshow", params = {
   67.27 -    slides = slides
   67.28 -  }
   67.29 -}
   67.30 \ No newline at end of file
    68.1 --- a/app/main/style/style.css.lua	Thu Feb 03 15:54:23 2022 +0100
    68.2 +++ b/app/main/style/style.css.lua	Thu Feb 03 15:57:22 2022 +0100
    68.3 @@ -9,7 +9,7 @@
    68.4  $color-primary-contrast: ]] .. style.color.primary_contrast .. [[;
    68.5  $color-accent: ]] .. style.color.accent .. [[;
    68.6  $color-accent-contrast: ]] .. style.color.accent_contrast .. [[;
    68.7 -$checkbox-image-path: "]] .. request.get_absolute_baseurl() .. "static/mdl" .. [[";
    68.8 +$image-path: "]] .. request.get_absolute_baseurl() .. "static/mdl" .. [[";
    68.9  @import "../style/mdl/material-design-lite"
   68.10  ]]
   68.11  
    69.1 --- a/app/main/suggestion/_list.lua	Thu Feb 03 15:54:23 2022 +0100
    69.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    69.3 @@ -1,103 +0,0 @@
    69.4 -
    69.5 -local initiative = param.get("initiative", "table")
    69.6 -local suggestions_selector = param.get("suggestions_selector", "table")
    69.7 -
    69.8 -suggestions_selector:add_order_by("proportional_order NULLS LAST, plus2_unfulfilled_count + plus1_unfulfilled_count DESC, id")
    69.9 -
   69.10 -local ui_filters = ui.filters
   69.11 -if true or not show_filter then
   69.12 -  ui_filters = function(args) args.content() end
   69.13 -end
   69.14 -
   69.15 -ui.container{ attr = { class = "initiative_head" },
   69.16 -  content = function()
   69.17 -    ui.tag{ tag = "a", attr = { class = "title", name = "suggestions" }, content = _"Suggestions" }
   69.18 -    ui.container{ attr = { class = "content" }, content = function()
   69.19 -      ui.paginate{
   69.20 -        selector = suggestions_selector,
   69.21 -        anchor = "suggestions",
   69.22 -        content = function()
   69.23 -          local suggestions = suggestions_selector:exec()
   69.24 -          if #suggestions < 1 then
   69.25 -            if not initiative.issue.fully_frozen and not initiative.issue.closed then
   69.26 -              ui.tag{ content = _"No suggestions yet" }
   69.27 -            else
   69.28 -              ui.tag{ content = _"No suggestions" }
   69.29 -            end
   69.30 -          else
   69.31 -            ui.list{
   69.32 -              attr = { style = "table-layout: fixed;" },
   69.33 -              records = suggestions,
   69.34 -              columns = {
   69.35 -                {
   69.36 -                  label_attr = { style = "width: 101px;" },
   69.37 -                  content = function(record)
   69.38 -                    if record.minus2_unfulfilled_count then
   69.39 -                      local max_value = record.initiative.supporter_count
   69.40 -                      ui.bargraph{
   69.41 -                        max_value = max_value,
   69.42 -                        width = 100,
   69.43 -                        bars = {
   69.44 -                          { color = "#0a0", value = record.plus2_unfulfilled_count + record.plus2_fulfilled_count },
   69.45 -                          { color = "#8f8", value = record.plus1_unfulfilled_count + record.plus1_fulfilled_count },
   69.46 -                          { color = "#eee", value = max_value - record.minus2_unfulfilled_count - record.minus1_unfulfilled_count - record.minus2_fulfilled_count - record.minus1_fulfilled_count - record.plus1_unfulfilled_count - record.plus2_unfulfilled_count - record.plus1_fulfilled_count - record.plus2_fulfilled_count},
   69.47 -                          { color = "#f88", value = record.minus1_unfulfilled_count + record.minus1_fulfilled_count },
   69.48 -                          { color = "#a00", value = record.minus2_unfulfilled_count + record.minus2_fulfilled_count },
   69.49 -                        }
   69.50 -                      }
   69.51 -                    end
   69.52 -                  end
   69.53 -                },
   69.54 -                {
   69.55 -                  content = function(record)
   69.56 -                    ui.link{
   69.57 -                      text = record.name,
   69.58 -                      module = "suggestion",
   69.59 -                      view = "show",
   69.60 -                      id = record.id
   69.61 -                    }
   69.62 -                    local degree
   69.63 -                    local opinion
   69.64 -                    if app.session.member_id then
   69.65 -                      opinion = Opinion:by_pk(app.session.member.id, record.id)
   69.66 -                    end
   69.67 -                    if opinion then
   69.68 -                      local degrees = {
   69.69 -                        ["-2"] = _"must not",
   69.70 -                        ["-1"] = _"should not",
   69.71 -                        ["0"] = _"neutral",
   69.72 -                        ["1"] = _"should",
   69.73 -                        ["2"] = _"must"
   69.74 -                      }
   69.75 -                      slot.put(" &middot; ")
   69.76 -                      ui.tag{ content = degrees[tostring(opinion.degree)] }
   69.77 -                      slot.put(" &middot; ")
   69.78 -                      if opinion.fulfilled then
   69.79 -                        ui.tag{ content = _"implemented" }
   69.80 -                      else
   69.81 -                        ui.tag{ content = _"not implemented" }
   69.82 -                      end
   69.83 -                    end
   69.84 -                  end
   69.85 -                },
   69.86 -              }
   69.87 -            }
   69.88 -          end
   69.89 -        end
   69.90 -      }
   69.91 -    end }
   69.92 -    if app.session.member_id
   69.93 -      and not initiative.issue.half_frozen
   69.94 -      and not initiative.issue.closed
   69.95 -      and not initiative.revoked
   69.96 -      and app.session.member:has_voting_right_for_unit_id(initiative.issue.area.unit_id)
   69.97 -    then
   69.98 -      ui.container{ attr = { class = "content" }, content = function()
   69.99 -        ui.link{
  69.100 -          module = "suggestion", view = "new", params = { initiative_id = initiative.id },
  69.101 -          text = _"New suggestion"
  69.102 -        }
  69.103 -      end }
  69.104 -    end
  69.105 -  end
  69.106 -}
    70.1 --- a/app/main/suggestion/new.lua	Thu Feb 03 15:54:23 2022 +0100
    70.2 +++ b/app/main/suggestion/new.lua	Thu Feb 03 15:57:22 2022 +0100
    70.3 @@ -19,6 +19,12 @@
    70.4                view = "show",
    70.5                id = initiative_id,
    70.6                params = { tab = "suggestions" }
    70.7 +            },
    70.8 +            error = {
    70.9 +              mode = "forward",
   70.10 +              module = "suggestion",
   70.11 +              view = "new",
   70.12 +              params = { initiative_id = initiative_id }
   70.13              }
   70.14            },
   70.15            attr = { class = "section vertical" },
   70.16 @@ -31,48 +37,15 @@
   70.17                  value = _"You are currently not supporting this initiative directly. By adding suggestions to this initiative you will automatically become a potential supporter."
   70.18                }
   70.19              end
   70.20 -            ui.field.text{ label = _"A short title (80 chars max)", name = "name" }
   70.21 -            
   70.22 -            if not config.enforce_formatting_engine then
   70.23 -              ui.field.select{
   70.24 -                label = _"Wiki engine",
   70.25 -                name = "formatting_engine",
   70.26 -                foreign_records = config.formatting_engines,
   70.27 -                attr = {id = "formatting_engine"},
   70.28 -                foreign_id = "id",
   70.29 -                foreign_name = "name",
   70.30 -                value = param.get("formatting_engine")
   70.31 +
   70.32 +            ui.container{ attr = { class = "mdl-textfield mdl-js-textfield mdl-textfield--floating-label mdl-card__fullwidth" }, content = function ()
   70.33 +              ui.field.text{
   70.34 +                attr = { id = "lf-initiative__name", class = "mdl-textfield__input" },
   70.35 +                label_attr = { class = "mdl-textfield__label", ["for"] = "lf-initiative__name" },
   70.36 +                label = _"A short title (80 chars max)",
   70.37 +                name  = "name"
   70.38                }
   70.39 -              ui.tag{
   70.40 -                tag = "div",
   70.41 -                content = function()
   70.42 -                  ui.tag{
   70.43 -                    tag = "label",
   70.44 -                    attr = { class = "ui_field_label" },
   70.45 -                    content = function() slot.put("&nbsp;") end,
   70.46 -                  }
   70.47 -                  ui.tag{
   70.48 -                    content = function()
   70.49 -                      ui.link{
   70.50 -                        text = _"Syntax help",
   70.51 -                        module = "help",
   70.52 -                        view = "show",
   70.53 -                        id = "wikisyntax",
   70.54 -                        attr = {onClick="this.href=this.href.replace(/wikisyntax[^.]*/g, 'wikisyntax_'+getElementById('formatting_engine').value)"}
   70.55 -                      }
   70.56 -                      slot.put(" ")
   70.57 -                      ui.link{
   70.58 -                        text = _"(new window)",
   70.59 -                        module = "help",
   70.60 -                        view = "show",
   70.61 -                        id = "wikisyntax",
   70.62 -                        attr = {target = "_blank", onClick="this.href=this.href.replace(/wikisyntax[^.]*/g, 'wikisyntax_'+getElementById('formatting_engine').value)"}
   70.63 -                      }
   70.64 -                    end
   70.65 -                  }
   70.66 -                end
   70.67 -              }
   70.68 -            end
   70.69 +            end }
   70.70  
   70.71              ui.field.text{
   70.72                label = _"Describe how the proposal and/or the reasons of the initiative could be improved",
   70.73 @@ -92,7 +65,9 @@
   70.74                foreign_id = "id",
   70.75                foreign_name = "name"
   70.76              }
   70.77 -            
   70.78 +
   70.79 +            slot.put("<br>")
   70.80 +
   70.81              ui.submit{ 
   70.82                attr = { class = "mdl-button mdl-js-button mdl-button--raised mdl-button--colored mdl-js-ripple-effect" },
   70.83                text = _"publish suggestion" 
    71.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    71.2 +++ b/app/main/survey/_action/answer.lua	Thu Feb 03 15:57:22 2022 +0100
    71.3 @@ -0,0 +1,82 @@
    71.4 +local id = param.get("question_id", atom.integer)
    71.5 +
    71.6 +local question = SurveyQuestion:by_id(id)
    71.7 +
    71.8 +local survey = Survey:get_open()
    71.9 +
   71.10 +if question.survey_id ~= survey.id then
   71.11 +  slot.put_into("error", _"Internal error 2")
   71.12 +  return false
   71.13 +end
   71.14 +
   71.15 +if not question or not question.survey.open then
   71.16 +  slot.put_into("error", _"Internal error 3")
   71.17 +  return false
   71.18 +end
   71.19 +
   71.20 +local survey_member = SurveyMember:by_pk(question.survey.id, app.session.member_id)
   71.21 +if not survey_member then
   71.22 +  return execute.view { module = "index", view = "404" }
   71.23 +end
   71.24 +
   71.25 +local answer_set = survey_member.answer_set
   71.26 +if not answer_set then
   71.27 +  return execute.view { module = "index", view = "404" }
   71.28 +end
   71.29 +
   71.30 +local answer = SurveyAnswer:by_pk(answer_set.ident, question.id)
   71.31 +if not answer then
   71.32 +  answer = SurveyAnswer:new()
   71.33 +  answer.survey_answer_set_ident = answer_set.ident
   71.34 +  answer.survey_question_id = question.id
   71.35 +end
   71.36 +
   71.37 +if question.answer_type == "radio" then
   71.38 +  local given_answer = param.get("answer")
   71.39 +  if not given_answer then
   71.40 +    slot.put_into("error", _"Please choose an option!")
   71.41 +    return false
   71.42 +  end
   71.43 +  local answer_valid = false
   71.44 +  for i, answer_option in ipairs(question.answer_options) do
   71.45 +    if given_answer == answer_option then
   71.46 +      answer_valid = true
   71.47 +    end
   71.48 +  end
   71.49 +  if not answer_valid then
   71.50 +    slot.put_into("error", _"Internal error 1")
   71.51 +    return false
   71.52 +  end
   71.53 +  answer.answer = given_answer
   71.54 +
   71.55 +elseif question.answer_type == "checkbox" then
   71.56 +  local answers = json.array()
   71.57 +  for i, answer_option in ipairs(question.answer_options) do
   71.58 +    local answer = param.get("answer_" .. answer_option)
   71.59 +    if answer then
   71.60 +      table.insert(answers, answer_option)
   71.61 +    end
   71.62 +  end
   71.63 +  answer.answer = answers
   71.64 +end
   71.65 +
   71.66 +answer:save()
   71.67 +
   71.68 +local question
   71.69 +local answers_by_question_id = {}
   71.70 +for i, answer in ipairs(answer_set.answers) do
   71.71 +  answers_by_question_id[answer.survey_question_id] = answer
   71.72 +end
   71.73 +for i, q in ipairs(survey.questions) do
   71.74 +  if not question and not answers_by_question_id[q.id] then
   71.75 +    question = q
   71.76 +  end
   71.77 +end
   71.78 +
   71.79 +if not question then
   71.80 +  survey_member.survey_answer_set_ident = nil
   71.81 +  survey_member.finished = 'now'
   71.82 +  survey_member:save()
   71.83 +end
   71.84 +
   71.85 +return true
    72.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    72.2 +++ b/app/main/survey/_action/participate.lua	Thu Feb 03 15:57:22 2022 +0100
    72.3 @@ -0,0 +1,63 @@
    72.4 +local skip_survey = param.get("skip_survey")
    72.5 +
    72.6 +local survey = Survey:get_open()
    72.7 +
    72.8 +local survey_member = SurveyMember:by_pk(survey.id, app.session.member_id)
    72.9 +
   72.10 +if survey_member and not skip_survey then
   72.11 +  return true
   72.12 +end
   72.13 +
   72.14 +local secret_length = 24
   72.15 +local secret_alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
   72.16 +local secret_purposes = { "oauth", "_other" }
   72.17 +for idx, purpose in ipairs(secret_purposes) do
   72.18 +  secret_purposes[purpose] = idx
   72.19 +end
   72.20 +
   72.21 +local function random_string(length_multiplier)
   72.22 +  return multirand.string(
   72.23 +    secret_length * (length_multiplier or 1),
   72.24 +    secret_alphabet
   72.25 +  )
   72.26 +end
   72.27 +
   72.28 +if not survey_member then
   72.29 +  survey_member = SurveyMember:new()
   72.30 +  survey_member.survey_id = survey.id
   72.31 +  survey_member.member_id = app.session.member_id
   72.32 +end
   72.33 +
   72.34 +if skip_survey then
   72.35 +  local answer_set = survey_member.answer_set
   72.36 +  if answer_set then
   72.37 +    survey_member.survey_answer_set_ident = nil
   72.38 +    survey_member:save()
   72.39 +    answer_set:destroy()
   72.40 +  end
   72.41 +  survey_member.rejected = 'now'
   72.42 +else
   72.43 +  local answer_set = SurveyAnswerSet:new()
   72.44 +  answer_set.ident = random_string()
   72.45 +  answer_set.survey_id = survey.id
   72.46 +  local verification = Verification:new_selector()
   72.47 +    :add_where{ "verified_member_id = ?", app.session.member_id }
   72.48 +    :optional_object_mode()
   72.49 +    :exec()
   72.50 +  if verification then
   72.51 +    answer_set.data = verification.request_data
   72.52 +    answer_set.data.name = nil
   72.53 +    answer_set.data.email = nil
   72.54 +  end
   72.55 +  answer_set:save()
   72.56 +  survey_member.survey_answer_set_ident = answer_set.ident
   72.57 +end
   72.58 +
   72.59 +survey_member:save()
   72.60 +
   72.61 +if skip_survey then
   72.62 +  return "skip_survey"
   72.63 +end
   72.64 +
   72.65 +return true
   72.66 +
    73.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    73.2 +++ b/app/main/survey/_notification.lua	Thu Feb 03 15:57:22 2022 +0100
    73.3 @@ -0,0 +1,61 @@
    73.4 +if not app.session.member then
    73.5 +  return
    73.6 +end
    73.7 +local survey = Survey:get_open()
    73.8 +
    73.9 +if not survey then
   73.10 +  return
   73.11 +end
   73.12 +
   73.13 +local survey_member = SurveyMember:by_pk(survey.id, app.session.member_id)
   73.14 +
   73.15 +if not survey_member or survey_member.answer_set and not survey_member.finished then
   73.16 +  slot.select("motd", function()
   73.17 +    ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function()
   73.18 +      ui.container{ attr = { class = "mdl-card__content mdl-card--border" }, content = function()
   73.19 +        ui.form{
   73.20 +          module = "survey", action = "participate",
   73.21 +          routing = {
   73.22 +            ok = { mode = "redirect", module = "survey", view = "participate" },
   73.23 +            error = { mode = "forward", module = "survey", view = "participate" },
   73.24 +            skip_survey = { mode = "redirect", module = "index", view = "index" },
   73.25 +          },
   73.26 +          content = function()
   73.27 +            ui.heading{ content = survey.title }
   73.28 +            ui.container{ content = function()
   73.29 +              slot.put(survey.text)
   73.30 +            end }
   73.31 +            slot.put("<br>")
   73.32 +            local start_text = _"Start survey"
   73.33 +            local cancel_text = _"I don't want to particiapte"
   73.34 +            if survey_member then
   73.35 +              start_text = _"Continue survey"
   73.36 +              cancel_text = _"Cancel survey"
   73.37 +            end
   73.38 +            ui.tag{
   73.39 +              tag = "input",
   73.40 +              attr = {
   73.41 +                type = "submit",
   73.42 +                class = "mdl-button mdl-js-button mdl-button--raised mdl-button--colored",
   73.43 +                value = start_text
   73.44 +              },
   73.45 +              content = ""
   73.46 +            }
   73.47 +            slot.put(" &nbsp; ")
   73.48 +            ui.tag{
   73.49 +              tag = "input",
   73.50 +              attr = {
   73.51 +                type = "submit",
   73.52 +                name = "skip_survey",
   73.53 +                class = "mdl-button mdl-js-button",
   73.54 +                value = cancel_text
   73.55 +              },
   73.56 +              content = ""
   73.57 +            }
   73.58 +          end
   73.59 +        }
   73.60 +      end }
   73.61 +    end }
   73.62 +  end)
   73.63 +end
   73.64 +
    74.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    74.2 +++ b/app/main/survey/index.lua	Thu Feb 03 15:57:22 2022 +0100
    74.3 @@ -0,0 +1,15 @@
    74.4 +ui.heading{ level = 1, content = _"Surveys" }
    74.5 +
    74.6 +local surveys = Survey:get_open()
    74.7 +
    74.8 +for i, survey in ipairs(surveys) do
    74.9 +
   74.10 +  ui.container{ content = function()
   74.11 +  
   74.12 +    ui.link{ module = "survey", view = "participate", id = survey.id, content = survey.name }
   74.13 +    
   74.14 +    ui.container{ content = survey.description }
   74.15 +  
   74.16 +  end }
   74.17 +
   74.18 +end
    75.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    75.2 +++ b/app/main/survey/participate.lua	Thu Feb 03 15:57:22 2022 +0100
    75.3 @@ -0,0 +1,153 @@
    75.4 +local survey = Survey:get_open()
    75.5 +if not survey then
    75.6 +  return execute.view { module = "index", view = "404" }
    75.7 +end
    75.8 +
    75.9 +local survey_member = SurveyMember:by_pk(survey.id, app.session.member_id)
   75.10 +if not survey_member then
   75.11 +  return execute.view { module = "index", view = "404" }
   75.12 +end
   75.13 +
   75.14 +local question
   75.15 +local question_number = #survey.questions
   75.16 +
   75.17 +if survey_member then
   75.18 +  local answer_set = survey_member.answer_set
   75.19 +  if answer_set then
   75.20 +    local answers_by_question_id = {}
   75.21 +    for i, answer in ipairs(answer_set.answers) do
   75.22 +      answers_by_question_id[answer.survey_question_id] = answer
   75.23 +    end
   75.24 +    for i, q in ipairs(survey.questions) do
   75.25 +      if not question and not answers_by_question_id[q.id] then
   75.26 +        question = q
   75.27 +        question_number = i - 1
   75.28 +      end
   75.29 +    end
   75.30 +  end
   75.31 +end
   75.32 +
   75.33 +ui.title(survey.title)
   75.34 +ui.grid{ content = function()
   75.35 +  ui.cell_main{ content = function()
   75.36 +
   75.37 +    ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp survey" }, content = function()
   75.38 +      ui.container{ attr = { class = "mdl-card__title" }, content = function()
   75.39 +        ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = function()
   75.40 +          if survey_member.finished then
   75.41 +            slot.put(survey.finished_title)
   75.42 +          else
   75.43 +            ui.tag{ attr = { class = "survey_counter" }, content = (question_number + 1) .. " / " .. #survey.questions }
   75.44 +            ui.tag{ tag = "span", content = question.question }
   75.45 +          end
   75.46 +        end }
   75.47 +      end }
   75.48 +      slot.put('<div id = "progressbar1" style="width: 100%;" class = "mdl-progress mdl-js-progress"></div>')
   75.49 +      
   75.50 +      ui.script{ script = [[
   75.51 +        document.querySelector('#progressbar1').addEventListener('mdl-componentupgraded', 
   75.52 +            function() {
   75.53 +            this.MaterialProgress.setProgress(]] .. question_number / #survey.questions * 100 .. [[);
   75.54 +         }); 
   75.55 +      
   75.56 +      ]] }
   75.57 +      ui.container{ attr = { class = "mdl-card__content mdl-card--border" }, content = function()
   75.58 +        if survey_member.finished then
   75.59 +          ui.container{ content = function()
   75.60 +            slot.put(survey.finished_text)
   75.61 +          end }
   75.62 +          slot.put("<br>")
   75.63 +          ui.link{
   75.64 +            attr = { class = "mdl-button mdl-js-button mdl-button--raised mdl-button--colored" },
   75.65 +            module = "index", view = "index", content = _"Go to start page"
   75.66 +          }
   75.67 +          return
   75.68 +        else
   75.69 +          if question.description then
   75.70 +            ui.container{ content = question.description }
   75.71 +            slot.put("<br>")
   75.72 +          end
   75.73 +          ui.form{
   75.74 +            module = "survey", action = "answer",
   75.75 +            routing = {
   75.76 +              ok = { mode = "redirect", module = "survey", view = "participate" },
   75.77 +              error = { mode = "forward", module = "survey", view = "participate" },
   75.78 +            },
   75.79 +            content = function()
   75.80 +            
   75.81 +              ui.field.hidden{ name = "question_id", value = question.id }
   75.82 +
   75.83 +              if question.answer_type == "radio" then
   75.84 +                for i, answer_option in ipairs(question.answer_options) do
   75.85 +                  ui.container{ content = function()
   75.86 +                    ui.tag{ tag = "label", attr = {
   75.87 +                        class = "mdl-radio mdl-js-radio mdl-js-ripple-effect",
   75.88 +                        ["for"] = "answer_" .. i
   75.89 +                      },
   75.90 +                      content = function()
   75.91 +                        ui.tag{
   75.92 +                          tag = "input",
   75.93 +                          attr = {
   75.94 +                            id = "answer_" .. i,
   75.95 +                            class = "mdl-radio__button",
   75.96 +                            type = "radio",
   75.97 +                            name = "answer",
   75.98 +                            value = answer_option,
   75.99 +                            checked = param.get("answer") == answer_option and "checked" or nil,
  75.100 +                          }
  75.101 +                        }
  75.102 +                        ui.tag{
  75.103 +                          attr = { class = "mdl-radio__label", ['for'] = "answer_" .. i },
  75.104 +                          content = answer_option
  75.105 +                        }
  75.106 +                      end
  75.107 +                    }
  75.108 +                  end }
  75.109 +                end
  75.110 +
  75.111 +              elseif question.answer_type == "checkbox" then
  75.112 +                for i, answer_option in ipairs(question.answer_options) do
  75.113 +                  ui.container{ content = function()
  75.114 +                    ui.tag{ tag = "label", attr = {
  75.115 +                        class = "mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect",
  75.116 +                        ["for"] = "answer_" .. i
  75.117 +                      },
  75.118 +                      content = function()
  75.119 +                        ui.tag{
  75.120 +                          tag = "input",
  75.121 +                          attr = {
  75.122 +                            id = "answer_" .. i,
  75.123 +                            class = "mdl-checkbox__input",
  75.124 +                            type = "checkbox",
  75.125 +                            name = "answer_" .. answer_option,
  75.126 +                            value = "1",
  75.127 +                            checked = param.get("answer_" .. answer_option) and "checked" or nil,
  75.128 +                          }
  75.129 +                        }
  75.130 +                        ui.tag{
  75.131 +                          attr = { class = "mdl-checkbox__label", ['for'] = "answer_" .. i },
  75.132 +                          content = answer_option
  75.133 +                        }
  75.134 +                      end
  75.135 +                    }
  75.136 +                  end }
  75.137 +                end
  75.138 +              end
  75.139 +
  75.140 +              slot.put("<br>")
  75.141 +              ui.tag{
  75.142 +                tag = "input",
  75.143 +                attr = {
  75.144 +                  type = "submit",
  75.145 +                  class = "mdl-button mdl-js-button mdl-button--raised mdl-button--colored",
  75.146 +                  value = _"Next step"
  75.147 +                },
  75.148 +                content = ""
  75.149 +              }
  75.150 +            end
  75.151 +          }
  75.152 +        end
  75.153 +      end }
  75.154 +    end }
  75.155 +  end }
  75.156 +end }
    76.1 --- a/app/main/unit/_sidebar_whatcanido.lua	Thu Feb 03 15:54:23 2022 +0100
    76.2 +++ b/app/main/unit/_sidebar_whatcanido.lua	Thu Feb 03 15:57:22 2022 +0100
    76.3 @@ -61,7 +61,14 @@
    76.4            end
    76.5          end }
    76.6        end
    76.7 -      
    76.8 +      if not config.voting_only and app.session.member_id and app.session.member:has_initiative_right_for_unit_id ( unit.id ) then
    76.9 +        ui.container{ attr = { class = "mdl-card__content mdl-card--border" }, content = function()
   76.10 +          ui.tag{ content = _"I want to start a new initiative" }
   76.11 +          ui.tag{ tag = "ul", attr = { class = "ul" }, content = function ()
   76.12 +            ui.tag { tag = "li", content = _"open the appropriate subject area for your issue and follow the instruction on that page." }
   76.13 +          end } 
   76.14 +        end }
   76.15 +      end
   76.16        ui.container{ attr = { class = "mdl-card__content mdl-card--border" }, content = function()
   76.17          ui.tag{
   76.18            content = _"I want to vote" 
   76.19 @@ -73,26 +80,17 @@
   76.20  
   76.21      else
   76.22        ui.container { attr = { class = "mdl-card__content mdl-card--border" }, content = function ()
   76.23 -        ui.tag{ content = _"You are not entitled to vote in this unit" }
   76.24          if not app.session.member_id then
   76.25 +          ui.tag{ content = _"Login to participate" }
   76.26            ui.tag{ tag = "ul", content = function()
   76.27              ui.tag{ tag = "li", content = function()
   76.28 -              ui.link{ module = "index", view = "login", content = _"Login" }
   76.29 +              ui.link{ module = "index", view = "login", content = _"Login [button]" }
   76.30              end }
   76.31            end }
   76.32 +        else
   76.33 +          ui.tag{ content = _"You are not entitled to vote in this unit" }
   76.34          end
   76.35        end }
   76.36      end
   76.37 -    
   76.38 -    if not config.voting_only and app.session.member_id and app.session.member:has_initiative_right_for_unit_id ( unit.id ) then
   76.39 -      ui.container{ attr = { class = "mdl-card__content mdl-card--border" }, content = function()
   76.40 -        ui.tag{ content = _"I want to start a new initiative" }
   76.41 -        ui.tag{ tag = "ul", attr = { class = "ul" }, content = function ()
   76.42 -          ui.tag { tag = "li", content = _"open the appropriate subject area for your issue and follow the instruction on that page." }
   76.43 -        end } 
   76.44 -      end }
   76.45 -    end
   76.46 -   
   76.47    end }
   76.48 -  
   76.49  end }
    77.1 --- a/app/main/vote/list.lua	Thu Feb 03 15:54:23 2022 +0100
    77.2 +++ b/app/main/vote/list.lua	Thu Feb 03 15:57:22 2022 +0100
    77.3 @@ -462,17 +462,6 @@
    77.4              if app.session.member_id and app.session.member_id == member.id then
    77.5                if (not readonly or direct_voter) and not preview then
    77.6                  ui.container{ content = function()
    77.7 -                  if not config.enforce_formatting_engine then
    77.8 -                    ui.field.select{
    77.9 -                      label = _"Wiki engine for statement",
   77.10 -                      name = "formatting_engine",
   77.11 -                      foreign_records = config.formatting_engines,
   77.12 -                      attr = {id = "formatting_engine"},
   77.13 -                      foreign_id = "id",
   77.14 -                      foreign_name = "name",
   77.15 -                      value = param.get("formatting_engine") or direct_voter and direct_voter.formatting_engine
   77.16 -                    }
   77.17 -                  end
   77.18                    ui.container{ content = _"Voting comment (optional)" }
   77.19                    ui.field.text{
   77.20                      name = "comment",
    78.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    78.2 +++ b/db/survey.sql	Thu Feb 03 15:57:22 2022 +0100
    78.3 @@ -0,0 +1,59 @@
    78.4 +CREATE TABLE survey (
    78.5 +  id SERIAL4 PRIMARY KEY,
    78.6 +  title TEXT NOT NULL,
    78.7 +  text TEXT NOT NULL,
    78.8 +  finished_title TEXT NOT NULL,
    78.9 +  finished_text TEXT NOT NULL,
   78.10 +  created TIMESTAMPTZ NOT NULL DEFAULT now(),
   78.11 +  open_from TIMESTAMPTZ NOT NULL,
   78.12 +  open_until TIMESTAMPTZ NOT NULL
   78.13 +);
   78.14 +
   78.15 +CREATE TABLE survey_question (
   78.16 +  id SERIAL4 PRIMARY KEY,
   78.17 +  survey_id INT4 NOT NULL REFERENCES survey(id),
   78.18 +  position INT4 NOT NULL,
   78.19 +  question TEXT NOT NULL,
   78.20 +  description TEXT,
   78.21 +  answer_type TEXT NOT NULL,
   78.22 +  answer_options json
   78.23 +);
   78.24 +
   78.25 +CREATE TABLE survey_answer_set (
   78.26 +  ident TEXT NOT NULL PRIMARY KEY,
   78.27 +  survey_id INT4 NOT NULL REFERENCES survey(id),
   78.28 +  data JSON
   78.29 +);
   78.30 +
   78.31 +CREATE TABLE survey_answer (
   78.32 +  id SERIAL8 PRIMARY KEY,
   78.33 +  survey_answer_set_ident TEXT NOT NULL REFERENCES survey_answer_set(ident) ON DELETE CASCADE,
   78.34 +  survey_question_id INT4 NOT NULL REFERENCES survey_question(id),
   78.35 +  answer TEXT NOT NULL
   78.36 +);
   78.37 +
   78.38 +CREATE TABLE survey_member (
   78.39 +  id SERIAL4 PRIMARY KEY,
   78.40 +  survey_id INT4 NOT NULL REFERENCES survey(id),
   78.41 +  member_id INT4 NOT NULL REFERENCES member(id),
   78.42 +  survey_answer_set_ident TEXT REFERENCES survey_answer_set(ident),
   78.43 +  started TIMESTAMPTZ DEFAULT now(),
   78.44 +  finished TIMESTAMPTZ,
   78.45 +  rejected TIMESTAMPTZ
   78.46 +);
   78.47 +
   78.48 +INSERT INTO survey (id, title, text, finished_text, open_from, open_until) VALUES (
   78.49 +  1,
   78.50 +  'Example survey',
   78.51 +  'This is just an example',
   78.52 +  '<strong>Done!</strong><br>You finished it. Thank you very much.',
   78.53 +  '2021-10-06 12:00',
   78.54 +  '2021-10-14 12:00'
   78.55 +);
   78.56 +
   78.57 +INSERT INTO survey_question (survey_id, position, question, answer_type, answer_options) VALUES
   78.58 +  (1, 1, 'What color do you like?', 'radio', '[ "Red", "Green", "Blue" ]'),
   78.59 +  (1, 2, 'What form do you like?', 'radio', '[ "Square", "Circle", "Hexagon" ]')
   78.60 +;
   78.61 +
   78.62 +  
    79.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    79.2 +++ b/env/format/text_with_links.lua	Thu Feb 03 15:57:22 2022 +0100
    79.3 @@ -0,0 +1,8 @@
    79.4 +function format.text_with_links(value)
    79.5 +  value = encode.html(value)
    79.6 +  value = encode.html_newlines(value)
    79.7 +  value = string.gsub(value, "http[^%s:]*://[^%s]+", function(match)
    79.8 +    return "<a href=\"" .. match .. "\">" .. match .. "</a>"
    79.9 +  end)
   79.10 +  return value
   79.11 +end
    80.1 --- a/locale/translations.de.lua	Thu Feb 03 15:54:23 2022 +0100
    80.2 +++ b/locale/translations.de.lua	Thu Feb 03 15:57:22 2022 +0100
    80.3 @@ -2,7 +2,6 @@
    80.4  return {
    80.5  [" + file_upload_id); html = html.replace("] = false;
    80.6  [" + file_upload_id); var el = document.createElement("] = false;
    80.7 -[" to receive updates by email"] = " bearbeiten um Aktualisierungen per E-Mail zu erhalten";
    80.8  ["#{closed_ago} ago"] = "vor #{closed_ago}";
    80.9  ["#{count} Neutral"] = "#{count} Enthaltung";
   80.10  ["#{count} No"] = "#{count} Nein";
   80.11 @@ -226,7 +225,7 @@
   80.12  ["Edit"] = "Bearbeiten";
   80.13  ["Edit again"] = "Nochmal bearbeiten";
   80.14  ["Edit voting comment"] = "Abstimmungskommentar bearbeiten";
   80.15 -["Edit your global "] = "Die globalen ";
   80.16 +["Edit your global <link>notification settings</link> to receive updates by email."] = "Die globalen <link>Benachrichtigungseinstellungen</link> bearbeiten, um Aktualisierungen per E-Mail zu erhalten.";
   80.17  ["Edit your profile data"] = "Profildaten bearbeiten";
   80.18  ["Eligible as winner"] = "Als Gewinner qualifiziert";
   80.19  ["Eligible members (#{count})"] = "Stimmberechtigte Teilnehmende (#{count})";
   80.20 @@ -379,7 +378,8 @@
   80.21  ["Lists must be preceeded and followed by at least one blank line"] = "Listen müssen von Leerzeilen umgeben sein";
   80.22  ["Lock member?"] = "Mitglied sperren?";
   80.23  ["Locked?"] = "Gesperrt?";
   80.24 -["Login"] = "Anmeldung";
   80.25 +["Login [headline]"] = "Anmeldung";
   80.26 +["Login [button]"] = "anmelden";
   80.27  ["Login name"] = "Anmeldename";
   80.28  ["Login name request"] = "Anmeldename anfordern";
   80.29  ["Login-Name: "] = "Anmeldename: ";
   80.30 @@ -861,8 +861,9 @@
   80.31  ["all results"] = "Alle Ergebnisse";
   80.32  ["all subject areas"] = "Alle Themenbereiche";
   80.33  ["allow invitation again"] = "Einladen wieder erlauben";
   80.34 -["and"] = "und";
   80.35  ["and #{count} more initiatives"] = "und #{count} weitere Initiativen";
   80.36 +["#{opinion} and #{implemented}"] = "#{opinion} und #{implemented}";
   80.37 +["#{opinion} but #{implemented}"] = "#{opinion} aber #{implemented}";
   80.38  ["area"] = "Themenbereich";
   80.39  ["at least #{count} approvals"] = "mindestens #{count} Zustimmungen";
   80.40  ["at least #{count} approvals or abstentions"] = "mindestens #{count} Zustimmungen oder Enthaltungen";
   80.41 @@ -873,7 +874,6 @@
   80.42  ["browse the platform as a guest"] = "Die Plattform als Gast erkunden";
   80.43  ["browse the portal as an unregistered user"] = "Die Plattform als nicht-registrierter Benutzer erkunden";
   80.44  ["browse through the competing initiatives"] = "durch die konkurrierenden Initiativen sehen";
   80.45 -["but"] = "aber";
   80.46  ["by"] = "von";
   80.47  ["by A-Z"] = "nach A-Z";
   80.48  ["by Z-A"] = "nach Z-A";
   80.49 @@ -905,6 +905,7 @@
   80.50  ["closed"] = "geschlossen";
   80.51  ["collective rating:"] = "kollektive Bewertung:";
   80.52  ["compare revisions"] = "Revisionen vergleichen";
   80.53 +["compare"] = "vergleiche";
   80.54  ["confirm"] = "bestätigen";
   80.55  ["confirmed address"] = "bestätigte Adresse";
   80.56  ["connected applications"] = "verbundene Anwendungen";
   80.57 @@ -1109,4 +1110,5 @@
   80.58  ["you have #{count} incoming delegations"] = "#{count} eingehende Delegationen";
   80.59  ["you restricted your support by rating suggestions as must or must not"] = "deine Untersützung ist aufgrund von 'muss'- oder 'darf nicht'-Verbesserungsvorschlägen beschränkt";
   80.60  ["you voted"] = "du hast abgestimmt";
   80.61 +["do nothing"] = "nichts machen";
   80.62  }
    81.1 --- a/locale/translations.el.lua	Thu Feb 03 15:54:23 2022 +0100
    81.2 +++ b/locale/translations.el.lua	Thu Feb 03 15:57:22 2022 +0100
    81.3 @@ -1,814 +1,916 @@
    81.4  #!/usr/bin/env lua
    81.5  return {
    81.6 -["#{closed_ago} ago"] = false;
    81.7 -["#{count} Neutral"] = false;
    81.8 -["#{count} No"] = false;
    81.9 -["#{count} Yes, alternative choice"] = false;
   81.10 -["#{count} Yes, first choice"] = false;
   81.11 -["#{count} canceled"] = "#{count} ακυρώθηκαν";
   81.12 -["#{count} finished"] = "#{count} ολοκληρώθηκαν";
   81.13 -["#{count} in discussion"] = "#{count} σε διαβούλευση";
   81.14 -["#{count} in verification"] = "#{count} σε επιβεβαίωση";
   81.15 +[" + file_upload_id); html = html.replace("] = false;
   81.16 +[" + file_upload_id); var el = document.createElement("] = false;
   81.17 +["#{closed_ago} ago"] = "#{closed_ago} πριν";
   81.18 +["#{count} Neutral"] = "#{count} Ουδέτεροι";
   81.19 +["#{count} No"] = "#{count} Όχι";
   81.20 +["#{count} Yes, alternative choice"] = "#{count} Nαι, ως εναλλακτική επιλογή";
   81.21 +["#{count} Yes, first choice"] = "#{count} Ναι, πρώτη επιλογή";
   81.22 +["#{count} canceled"] = "#{count} άκυρα";
   81.23 +["#{count} finished"] = "#{count} ολοκληρωμένα";
   81.24 +["#{count} in discussion"] = "#{count} υπό συζήτηση";
   81.25 +["#{count} in verification"] = "#{count} υπό επιβεβαίωση";
   81.26  ["#{count} in voting"] = "#{count} σε ψηφοφορία";
   81.27 -["#{count} matching issues found"] = false;
   81.28 -["#{count} matching members found"] = false;
   81.29 -["#{count} more areas in this unit"] = "#{count} επιπλέον τομείς σε αυτή την ενότητα";
   81.30 +["#{count} matching issues found"] = "βρέθηκαν #{count} σχετικές θεματικές";
   81.31 +["#{count} matching members found"] = "βρέθηκαν #{count} σχετικά μέλη";
   81.32  ["#{count} new"] = "#{count} νέα";
   81.33 -["#{count} of them have an area delegation set"] = "#{count} από αυτές έχουν ανάθεση τομέα";
   81.34 -["#{count} of your outgoing delegation(s) are broken"] = "#{count} από τις αναθέσεις σας δεν ισχύουν πια";
   81.35 -["#{count} supporter"] = false;
   81.36 -["#{duration}"] = false;
   81.37 -["#{interested_issues_to_vote_count} issue(s) you are interested in"] = "#{interested_issues_to_vote_count} θέμα(τα) που σας ενδιαφέρουν";
   81.38 +["#{count} suggestions added"] = "#{count} νέες προτάσεις";
   81.39 +["#{count} suggestions added for #{initiative}"] = "#{count} νέες προτάσεις για την #{initiative}";
   81.40 +["#{count} supporter"] = "#{count} υποστηρικτές";
   81.41 +["#{duration}"] = "#{duration}";
   81.42 +["#{interested_issues_to_vote_count} issue(s) you are interested in"] = "#{interested_issues_to_vote_count} θεματικές που σε ενδιαφέρουν";
   81.43  ["#{interval_text} [interval]"] = "#{interval_text}";
   81.44 -["#{interval_text} ago"] = "#{interval_text} πριν";
   81.45 -["#{interval_text} left"] = "απομένουν #{interval_text}";
   81.46 -["#{interval} ago"] = false;
   81.47 -["#{issues_to_vote_count} issue(s)"] = "#{issues_to_vote_count} θέμα(τα)";
   81.48 -["#{issue} is in voting"] = false;
   81.49 -["#{name}\n\n"] = "#{name}\n\n";
   81.50 -["#{number} Image(s) has been deleted"] = "Διαγράφηκαν #{number} εικόνες";
   81.51 -["#{number} Image(s) has been updated"] = "Ενημερώθηκαν #{number} εικόνες";
   81.52 -["#{percentage}%"] = false;
   81.53 -["#{policy_name} ##{issue_id}"] = "#{policy_name} ##{issue_id}";
   81.54 -["#{policy} ##{id}"] = "#{policy} ##{id}";
   81.55 -["#{result}: #{yes_count} Yes (#{yes_percent}), #{no_count} No (#{no_percent}), #{neutral_count} Abstention (#{neutral_percent})"] = false;
   81.56 -["#{result}: No votes (0)"] = false;
   81.57 -["(+ #{count} potential)"] = false;
   81.58 -["(1) Admission"] = false;
   81.59 -["(1) Admission phase"] = false;
   81.60 -["(2) Discussion"] = false;
   81.61 -["(2) Discussion phase"] = false;
   81.62 -["(3) Verification"] = false;
   81.63 -["(3) Verification phase"] = false;
   81.64 -["(4) Voting"] = false;
   81.65 -["(4) Voting phase"] = false;
   81.66 -["(5) Result"] = false;
   81.67 -["(invited)"] = false;
   81.68 +["#{interval_text} ago"] = "πριν από #{interval_text}";
   81.69 +["#{interval_text} left"] = "#{interval_text} υπόλοιπο";
   81.70 +["#{interval} ago"] = "πριν #{interval}";
   81.71 +["#{issues_to_vote_count} issue(s)"] = "#{issues_to_vote_count} θεματικές";
   81.72 +["#{issue} is in voting"] = "#{issue} σε ψηφοφορία";
   81.73 +["#{number} Image(s) has been deleted"] = "#{number} εικόνες έχουν διαγραφεί";
   81.74 +["#{number} Image(s) has been updated"] = "#{number} εικόνες έχουν ενημερωθεί";
   81.75 +["#{percentage}%"] = "#{percentage}%";
   81.76 +["#{result}: #{yes_count} Yes (#{yes_percent}), #{no_count} No (#{no_percent}), #{neutral_count} Abstention (#{neutral_percent})"] = "#{result}: #{yes_count} Ναι (#{yes_percent}), #{no_count} Όχι (#{no_percent}), #{neutral_count} αποχή (#{neutral_percent})";
   81.77 +["(+ #{count} potential)"] = "(+ #{count} potential)";
   81.78 +["(detached)"] = "(μεμονωμένος)";
   81.79  ["(new window)"] = "(νέο παράθυρο)";
   81.80 -["+ #{weight}"] = "+ #{weight}";
   81.81 -["+ add new subject area"] = false;
   81.82 +["(new)"] = "(νέο)";
   81.83 +["+ add new subject area"] = "+ προσθήκη νέας περιοχής";
   81.84  ["+getElementById("] = "+getElementById(";
   81.85 -["1 matching issue found"] = false;
   81.86 -["1 matching member found"] = false;
   81.87 -["4 phases of a decision"] = false;
   81.88 -["A short title (80 chars max)"] = false;
   81.89 -["API key has been created"] = "Το API κλειδί δημιουργήθηκε";
   81.90 -["API key has been deleted"] = "Το API κλειδί διαγράφηκε";
   81.91 -["Abandon global delegation for this area"] = "Ακύρωση καθολικής ανάθεσης για αυτόν τον τομέα";
   81.92 -["Abandon unit and area delegations for this issue"] = "Ακύρωση ανάθεσης ενότητας και τομέα για αυτό το θέμα";
   81.93 -["Abandon unit delegation"] = "Ακύρωση ανάθεσης ενότητας";
   81.94 -["Abandon unit delegation for this area"] = "Ακύρωση ανάθεσης ενότητας για αυτόν τον τομέα";
   81.95 -["About site"] = "Πληροφορίες";
   81.96 -["Abstention"] = "Ουδέτερο";
   81.97 -["Abstention [many entries]"] = "Ουδέτερο";
   81.98 -["Abstention [single entry]"] = "Ουδέτερο";
   81.99 -["Accepted at"] = "Εγκρίθηκε στις";
  81.100 -["Account history"] = false;
  81.101 -["Activated"] = false;
  81.102 -["Active?"] = "Ενεργό;";
  81.103 -["Add a new competing initiative to issue"] = false;
  81.104 -["Add a new suggestion for improvement"] = false;
  81.105 -["Address"] = "Διεύθυνση";
  81.106 +["1 matching issue found"] = "βρέθηκε 1 σχετική θεματική";
  81.107 +["1 matching member found"] = "βρέθηκε 1 σχετικό μέλος";
  81.108 +["4 phases of a decision"] = "4 φάσεις απόφασης";
  81.109 +["A short title (80 chars max)"] = "Σύντομος τίτλος (μέγιστο 80 χαρακτήρες)";
  81.110 +["Abandon global delegation for this area"] = "Ακύρωση όλης της εξουσιοδότησης για αυτή την περιοχή";
  81.111 +["Abandon unit and area delegations for this issue"] = "Ακύρωση των εξουσιοδοτήσεων κατηγορίας και περιοχής για αυτή την θεματική";
  81.112 +["Abandon unit delegation"] = "Ακύρωση της εξουσιοδότησης κατηγορίας";
  81.113 +["Abandon unit delegation for this area"] = "Ακύρωση της εξουσιοδότησης κατηγορίας για αυτή την περιοχή";
  81.114 +["About site"] = "Πληροφορίες ιστοσελίδας";
  81.115 +["Absolute initiative quorum"] = "Απόλυτη απαρτία πρωτοβουλίας";
  81.116 +["Absolute issue quorum"] = "Απόλυτη απαρτία θέματος";
  81.117 +["Absolute number of approval and abstention votes"] = "Απόλυτος αριθμός θετικών ψήφων και αποχής";
  81.118 +["Absolute number of approval votes"] = "Απόλυτος αριθμός θετικών ψήφων";
  81.119 +["Abstention"] = "Αποχή";
  81.120 +["Abstention [many entries]"] = "Αποχές";
  81.121 +["Abstention [single entry]"] = "Αποχή";
  81.122 +["Accept access privilege"] = "Αποδοχή δικαιώματος πρόσβασης";
  81.123 +["Accepted at"] = "Πρόσβαση στις";
  81.124 +["Account"] = "Λογαριασμός";
  81.125 +["Account access"] = "Πρόσβαση λογαριασμού";
  81.126 +["Account access by member"] = "Πρόσβαση λογαριασμού από μέλος";
  81.127 +["Account access invitation from '#{member_name}'"] = "Πρόσκληση πρόσβασης λογαριασμού από '#{member_name}'";
  81.128 +["Account history"] = "Ιστορικό λογαριασμού";
  81.129 +["Account not activated (yet) (#{count})"] = "Μη ενεργοποιημένοι λογαριασμοί (#{count})";
  81.130 +["Account registration"] = "Εγγραφή λογαριασμού";
  81.131 +["Accredited (#{count})"] = "Διαπιστευμένοι (#{count})";
  81.132 +["Accredited role accounts"] = "Διαπιστευμένοι ρόλοι λογαριασμών";
  81.133 +["Accredited users"] = "Διαπιστευμένοι χρήστες";
  81.134 +["Activated"] = "Ενεργοποιημένος";
  81.135 +["Activated accounts (#{count})"] = "Ενεργοποιημένοι λογαριασμοί (#{count})";
  81.136 +["Active?"] = "Ενεργός;";
  81.137 +["Add a new suggestion for improvement"] = "Προσθήκη νέας πρότασης";
  81.138 +["Add new account access privilege"] = "Προσθήκη νέου δικαιώματος πρόσβασης λογαριασμού";
  81.139 +["Added attachments"] = "Επισυνάψεις";
  81.140  ["Admin?"] = "Διαχειριστής;";
  81.141 -["Administrative notice:"] = false;
  81.142 -["Admission"] = false;
  81.143 -["Admission time"] = "Διάρκεια πρόκρισης";
  81.144 -["Admitted"] = "Προκρίθηκε";
  81.145 -["All areas in my units"] = "Όλοι οι τομείς στις ενότητές μου";
  81.146 -["All fields are optional. Please enter only data which should be published."] = false;
  81.147 -["All initiatives failed 2nd quorum"] = false;
  81.148 -["All units"] = "Όλες οι ενότητες";
  81.149 -["Allowed policies"] = false;
  81.150 -["Apply global delegation for this area (Currently: #{delegate_name} [#{scope}])"] = "Εφαρμογή καθολικής ανάθεσης για αυτόν τον τομέα (Αυτή τη στιγμή: #{delegate_name} [#{scope}])";
  81.151 -["Apply global or area delegation for this issue (Currently: #{delegate_name} [#{scope}])"] = "Εφαρμογή καθολικής ανάθεσης ή ανάθεσης τομέα για αυτό το θέμα (Αυτή τη στιγμή: #{delegate_name} [#{scope}])";
  81.152 -["Apply unit delegation for this area (Currently: #{delegate_name} [#{scope}])"] = "Εφαρμογή ανάθεσης ενότητας για αυτόν τον τομέα (Αυτή τη στιγμή: #{delegate_name} [#{scope}])";
  81.153 -["Apply unit or area delegation for this issue (Currently: #{delegate_name} [#{scope}])"] = "Εφαρμογή ανάθεσης ενότητας ή τομέα για αυτό το θέμα (Αυτή τη στιγμή: #{delegate_name} [#{scope}])";
  81.154 -["Approval (#th preference) [many entries]"] = "Επιδοκιμασία (νιοστές προτιμήσεις)";
  81.155 -["Approval (#th preference) [single entry]"] = "Επιδοκιμασία (νιοστή προτίμηση)";
  81.156 -["Approval (first preference) [many entries]"] = "Επιδοκιμασία (πρώτες προτιμήσεις)";
  81.157 -["Approval (first preference) [single entry]"] = "Επιδοκιμασία (πρώτη προτίμηση)";
  81.158 -["Approval (second preference) [many entries]"] = "Επιδοκιμασία (δεύτερες προτιμήσεις)";
  81.159 -["Approval (second preference) [single entry]"] = "Επιδοκιμασία (δεύτερη προτίμηση)";
  81.160 -["Approval (third preference) [many entries]"] = "Επιδοκιμασία (τρίτες προτιμήσεις)";
  81.161 -["Approval (third preference) [single entry]"] = "Επιδοκιμασία (τρίτη προτίμηση)";
  81.162 -["Approval [many entries]"] = "Επιδοκιμασία";
  81.163 -["Approval [single entry]"] = "Επιδοκιμασία";
  81.164 -["Approved"] = "Εγκεκριμμένο";
  81.165 -["Are you aware that revoking an initiative is irrevocable?"] = false;
  81.166 -["Area"] = "Τομέας";
  81.167 -["Area delegation"] = "Ανάθεση τομέα";
  81.168 -["As long as you are interested in this issue yourself, the delegation is suspended for this issue, but it will be applied again in the voting phase unless you vote yourself."] = false;
  81.169 -["As soon as one initiative of this issue reaches the 1st quorum of #{quorum} support, the issue will proceed to discussion phase."] = false;
  81.170 -["Author"] = "Συντάκτης";
  81.171 -["Available policies"] = false;
  81.172 -["Avatar"] = "Εικόνα";
  81.173 -["Ballot of '#{member_name}'"] = false;
  81.174 -["Become a member"] = "Γίνε μέλος";
  81.175 -["Before creating a new issue, please check any existant issues before, if the topic is already in discussion."] = false;
  81.176 -["Best not admitted initiative"] = false;
  81.177 -["Birthday"] = "Ημερομηνία γέννησης";
  81.178 -["Broken delegations"] = "Άκυρες αναθέσεις";
  81.179 +["Admission"] = "Υποβολή;";
  81.180 +["Admission phase"] = "Φάση υποβολής";
  81.181 +["Admission qourum factor"] = "Συντελεστής απαρτίας αποδοχής";
  81.182 +["Admission quorum exponent"] = "Εκθέτης απαρτίας αποδοχής";
  81.183 +["Admission quorum issues"] = "Απαρτία αποδοχής θεμάτων";
  81.184 +["Admission quorum standard"] = "Κανόνας απαρτίας αποδοχής";
  81.185 +["Admission quorum time"] = "Χρόνος απαρτίας αποδοχής";
  81.186 +["Admission time"] = "Ώρα υποβολής";
  81.187 +["Admitted"] = "Υποβλήθηκε";
  81.188 +["Agents"] = "Αντιπρόσωποι";
  81.189 +["All fields are optional. Please enter only data which should be published."] = "Όλα τα πεδία είναι προεραιτικά. Παρακαλούμε συμπληρώστε μόνο τα σχετικά πεδία.";
  81.190 +["All initiatives failed 2nd quorum"] = "Όλες οι πρωτοβουλίες απέτυχαν στην 2η απαρτία";
  81.191 +["All members"] = "Όλα τα μέλη";
  81.192 +["All units"] = "Όλες οι κατηγορίες";
  81.193 +["Allowed policies"] = "Επιτρεπτές πολιτικές";
  81.194 +["Application authorization"] = "Επιβεβαίωση εφαρμογής";
  81.195 +["Apply global delegation for this area (Currently: #{delegate_name} [#{scope}])"] = "Εφαρμογή ολικής εξουσιοδότησης σε αυτή την περιοχή (τώρα: #{delegate_name} [#{scope}])";
  81.196 +["Apply global or area delegation for this issue (Currently: #{delegate_name} [#{scope}])"] = "Εφαρμογή ολικής εξουσιοδότησης ή εξουσιοδότησης περιοχής για αυτή την θεματική (τώρα: #{delegate_name} [#{scope}])";
  81.197 +["Apply unit delegation for this area (Currently: #{delegate_name} [#{scope}])"] = "Εφαρμογή εξουσιοδότησης κατηγορίας για αυτή την περιοχή (τώρα: #{delegate_name} [#{scope}])";
  81.198 +["Apply unit or area delegation for this issue (Currently: #{delegate_name} [#{scope}])"] = "Εφαρμογή εξουσιοδότησης κατηγορίας ή περιοχής για αυτή την θεματική (τώρα: #{delegate_name} [#{scope}])";
  81.199 +["Approval (#th preference) [many entries]"] = "Επιβεβαίωση (#ων προτιμήσεων)";
  81.200 +["Approval (#th preference) [single entry]"] = "Επιβεβαίωση (#ης προτίμησης)";
  81.201 +["Approval (first preference) [many entries]"] = "Επιβεβαίωση (1ων προτίμησεων)";
  81.202 +["Approval (first preference) [single entry]"] = "Επιβεβαίωση (1ης προτίμησης)";
  81.203 +["Approval (second preference) [many entries]"] = "Επιβεβαίωση (2ων προτιμήσεων)";
  81.204 +["Approval (second preference) [single entry]"] = "Επιβεβαίωση (2ης προτίμησης)";
  81.205 +["Approval (third preference) [many entries]"] = "Επιβεβαίωση (3ων προτιμήσεων)";
  81.206 +["Approval (third preference) [single entry]"] = "Επιβεβαίωση (3ης προτίμησης)";
  81.207 +["Approval [many entries]"] = "Επιβεβαίωση";
  81.208 +["Approval [single entry]"] = "Επιβεβαίωση";
  81.209 +["Approved"] = "Επιβεβαιωμένα";
  81.210 +["Are you aware that revoking an initiative is irrevocable?"] = "Γνωρίζετε πως η απόσυρση της πρωτοβουλίας είναι αμετάκλητη;?";
  81.211 +["Area delegation"] = "Εξουσιοδότηση περιοχής";
  81.212 +["As long as you are interested in this issue yourself, the delegation is suspended for this issue, but it will be applied again in the voting phase unless you vote yourself."] = "Εφόσον ενδιαφέρεστε για αυτή την θεματική, η εξουσιοδότηση θεματικής δεν είναι ενεργή. Θα εφαρμοστεί στην φάση ψηφοφορίας εκτός αν ψηφίσετε εσείς.";
  81.213 +["As soon as one initiative of this issue reaches the 1st quorum of #{quorum} support, the issue will proceed to discussion phase."] = "Όταν μια πρωτοβουλία της θεματικής φτάσει την 1η απαρτία των #{quorum} υποστηρικτών, η θεματική θα περάσει σε φάση συζήτησης.";
  81.214 +["Attach image"] = "Επισύναψη εικόνας";
  81.215 +["Attr"] = "Χαρακτηριστικό";
  81.216 +["Author"] = "Συγγραφέας";
  81.217 +["Available policies"] = "Διαθέσιμες πολιτικές";
  81.218 +["Avatar"] = "Avatar";
  81.219 +["Ballot of '#{member_name}'"] = "Ψήφος του #{member_name}";
  81.220 +["Best not admitted initiative"] = "Καλύτερη πρωτοβουλία που δεν έχει υποβληθεί";
  81.221 +["Broken delegations"] = "Εξουσιοδοτήσεις με διακοπή";
  81.222  ["Calculation"] = "Υπολογισμός";
  81.223 -["Can't remove last initiator"] = "Δεν μπορεί να αφαιρεθεί ο τελευταίος εισηγητής";
  81.224 -["Can't send confirmation email"] = "Δεν ήταν δυνατή η αποστολή email επιβεβαίωσης.";
  81.225 -["Cancel"] = "Άκυρο";
  81.226 -["Cancel issue"] = "Ακύρωση θέματος";
  81.227 -["Cancel issue ##{id}"] = false;
  81.228 -["Canceled by administrative intervention"] = "Ακυρωμένο με παρέμβαση διαχειριστή";
  81.229 +["Can't remove last initiator"] = "Δεν είναι δυνατή η διαγραφή του τελευταίου χρήστη που υπέβαλε πρωτοβουλία";
  81.230 +["Can't send confirmation email"] = "Δεν είναι δυνατή η αποστολή email επιβεβαίωσης";
  81.231 +["Cancel"] = "Ακύρωση";
  81.232 +["Cancel issue"] = "Ακύρωση θεματικής";
  81.233 +["Cancel issue ##{id}"] = "Ακύρωση θεματικής ##{id}";
  81.234 +["Canceled by administrative intervention"] = "Ακυρώθηκε λόγω παρέμβασης του διαχειριστή";
  81.235 +["Cancelled (#{count})"] = "Διεγραμμένοι(#{count})";
  81.236 +["Cancelled account"] = "Διεγραμμένος λογαριασμός";
  81.237 +["Cancelled accounts"] = "Διεγραμμένοι λογαριασμοί";
  81.238 +["Cancelled accounts (#{count})"] = "Διεγραμμένοι λογαριασμοί (#{count})";
  81.239  ["Change email address"] = "Αλλαγή διεύθυνσης email";
  81.240 -["Change order"] = "Αλλαγή ταξινόμησης";
  81.241 -["Check and enter personal data"] = false;
  81.242 -["Check your #{scope} delegation to '#{trustee_name}' for '#{context}'"] = false;
  81.243 -["Check your delegations!"] = "Έλεγξε τις αναθέσεις σου!";
  81.244 -["Check your outgoing delegations"] = false;
  81.245 -["Choose a formatting engine:"] = false;
  81.246 -["Choose a member to invite"] = false;
  81.247 -["Choose an initiator to remove"] = false;
  81.248 -["Choose member"] = "Επιλογή μέλους";
  81.249 -["Choose timing"] = false;
  81.250 -["Choose your delegatee"] = false;
  81.251 +["Change order"] = "Αλλαγή σειράς";
  81.252 +["Changeset graph:"] = "Γράφος συνόλου αλλαγών:";
  81.253 +["Changeset:"] = "Συνόλο αλλαγών:";
  81.254 +["Check your #{scope} delegation to '#{trustee_name}' for '#{context}'"] = "Έλεγξε την #{scope} εξουδιοδότησή σου στον '#{trustee_name}' για το '#{context}'";
  81.255 +["Check your outgoing delegations"] = "Έλεγξε τις εξουσιοδοτήσεις που έχεις στείλει";
  81.256 +["Choose member"] = "Επέλεξε μέλος";
  81.257 +["Choose timing"] = "Επέλεξε διάρκεια";
  81.258 +["Choose your delegatee"] = "Επέλεξε ποιο μέλος θέλεις να εξουσιοδοτήσεις";
  81.259 +["City"] = "Πόλη";
  81.260 +["Client ID invalid"] = "Άκυρο ID πελάτη";
  81.261  ["Closed"] = "Κλειστό";
  81.262 -["Closed issues"] = "Κλειστά θέματα";
  81.263 -["Closed user group"] = false;
  81.264 +["Closed issues"] = "Κλειστές θεματικές";
  81.265 +["Closed user group"] = "Κλειστή ομάδα μελών";
  81.266  ["Collective opinion of supporters"] = "Συλλογική γνώμη των υποστηρικτών";
  81.267 -["Collective rating"] = false;
  81.268 +["Comment"] = "Σχόλιο";
  81.269  ["Compare"] = "Σύγκριση";
  81.270 -["Comparision of revisions #{id1} and #{id2}"] = false;
  81.271 -["Competing initiatives"] = false;
  81.272 -["Competing initiatives failed the 2nd quorum (#{num}/#{den}):"] = false;
  81.273 -["Competing initiatives in pairwise comparison to best initiative:"] = false;
  81.274 -["Competing initiatives in pairwise comparison to winner:"] = false;
  81.275 -["Configure notifications now"] = "Ρύθμισε τις ειδοποιήσεις τώρα";
  81.276 +["Comparision of revisions #{id1} and #{id2}"] = "Σύγκριση εκδόσεων #{id1} και #{id2}";
  81.277 +["Competing initiatives"] = "Ανταγωνιστικές πρωτοβουλίες";
  81.278 +["Competing initiatives failed the 2nd quorum (#{num}/#{den}):"] = "Ανταγωνιστικές πρωτοβουλίες που απέτυχαν στην 2η απαρτία (#{num}/#{den}):";
  81.279 +["Competing initiatives in pairwise comparison to best initiative:"] = "Ανταγωνιστικές πρωτοβουλίες προς σύγκριση ανά ζεύγη με την καλύτερη πρωτοβουλία:";
  81.280 +["Competing initiatives in pairwise comparison to winner:"] = "Ανταγωνιστικές πρωτοβουλίες προς σύγκριση ανά ζεύγη με την πρωτοβουλία που κέρδισε:";
  81.281 +["Configure notifications now"] = "Επεξεργασία των ειδοποιήσεων τώρα";
  81.282  ["Confirm"] = "Επιβεβαίωση";
  81.283 -["Confirm notification address"] = false;
  81.284 -["Confirm your email address"] = false;
  81.285 +["Confirm notification address"] = "Επιβεβαίωση της διεύθυνσης για τις ειδοποιήσεις";
  81.286 +["Confirm your email address"] = "Επιβεβαίωση email";
  81.287  ["Confirmation code"] = "Κωδικός επιβεβαίωσης";
  81.288 -["Confirmation code invalid!"] = "Άκυρος κωδικός επιβεβαίωσης!";
  81.289 +["Confirmation code invalid!"] = "’κυρος κωδικός επιβεβαίωσης!";
  81.290 +["Connected applications"] = "Συνδεδεμένες εφαρμογές";
  81.291 +["Contact"] = "Επαφή";
  81.292  ["Contacts"] = "Επαφές";
  81.293 -["Create a new issue"] = false;
  81.294 -["Create new policy"] = "Δημιουργία νέου κανονισμού";
  81.295 -["Create new unit"] = "Δημιουργία νέας ενότητας";
  81.296 +["Content"] = "Περιεχόμενο";
  81.297 +["Cookie error. Try restarting your web browser and login again."] = "Σφάλμα cookie. Προσπαθήστε να επαναφέρεται τον browser σας και συνδεθείτε ξανά";
  81.298 +["Create a newsletter"] = "Δημιουργία newsletter";
  81.299 +["Create new policy"] = "Δημιουργία πολιτικής";
  81.300 +["Create new unit"] = "Δημιουργία κατηγορίας";
  81.301  ["Created at"] = "Δημιουργήθηκε στις";
  81.302 -["Current delegatee"] = false;
  81.303 -["Current name"] = "Τρέχουσα ονομασία";
  81.304 -["Current phase is already closed."] = "Το τρέχον στάδιο έχει ήδη κλείσει.";
  81.305 +["Current delegatee"] = "Τρέχουσες εξουσιοδοτήσεις";
  81.306 +["Current name"] = "Τρέχον όνομα";
  81.307 +["Current password"] = "Παρόν κωδικός";
  81.308 +["Current phase is already closed."] = "Η τρέχουσα φάση έχει ήδη κλείσει.";
  81.309  ["Current status"] = "Τρέχουσα κατάσταση";
  81.310 -["Current unit and area delegations need confirmation"] = "Οι τρέχουσες αναθέσεις ενοτητών και τομέων χρειάζονται επιβεβαίωση";
  81.311 -["Current votings in areas you are member of and issues you are interested in:"] = "Τρέχουσες ψηφοφορίες σε τομείς που είσαι μέλη και θέματα που σε ενδιαφέρουν:";
  81.312 -["Currently no API key is set."] = "Δεν υπάρχει καθορισμένο API κλειδί αυτή τη στιγμή.";
  81.313 -["Currently required"] = "Αυτή τη στιγμή απαιτείται";
  81.314 -["Currently this is the only initiative in this issue, because nobody started a competing initiative (yet)."] = false;
  81.315 -["Date format is not valid. Please use following format: YYYY-MM-DD"] = "Η μορφή της ημερομηνίας δεν είναι έγκυρη. Παρακαλώ χρησιμοποίησε την μορφή ΕΕΕΕ-ΜΜ-ΗΗ (π.χ. 2012-05-16)";
  81.316 -["Deactivate member"] = false;
  81.317 -["Default Policy"] = "Τυπικός κανονισμός";
  81.318 -["Degree"] = "Βαθμός";
  81.319 -["Delegate area"] = "Ανάθεση τομέα";
  81.320 -["Delegate issue"] = "Ανάθεση θέματος";
  81.321 -["Delegate unit"] = "Ανάθεση ενότητας";
  81.322 -["Delegation abandoned"] = "Ακύρωση ανάθεσης";
  81.323 -["Delegation turned off for area"] = "Η ανάθεση απενεργοποιήθηκε για τον τομέα";
  81.324 -["Delegation turned off for issue"] = "Η ανάθεση απενεργοποιήθηκε για το θέμα";
  81.325 -["Delegations"] = "Αναθέσεις";
  81.326 -["Describe how the proposal and/or the reasons of the initiative could be improved"] = false;
  81.327 +["Current unit and area delegations need confirmation"] = "Πρέπει να επιβεβειωθούν οι τρέχουσες εξουσιοδοτήσεις κατηγορίας και περιοχής";
  81.328 +["Current votings in areas you are member of and issues you are interested in:"] = "Τρέχουσες ψήφοι στις περιοχές που είσαι μέλος και στις θεματικές που σε ενδιαφέρουν:";
  81.329 +["Currently this is the only initiative in this issue, because nobody started a competing initiative (yet)."] = "Τώρα αυτή είναι η μόνη πρωτοβουλία σε αυτή την θεματική, γιατί δεν έχει αρχίσει καμία άλλη πρωτοβουλία ακόμα.";
  81.330 +["Date"] = "Ημερομηνία";
  81.331 +["Date format is not valid. Please use following format: YYYY-MM-DD"] = "Η μορφή της ημερομηνίας είναι άκυρη. Παρακαλούμε χρησιμοποίησε την μορφή: ΕΕΕΕ-ΜΜ-ΗΗ";
  81.332 +["Date/place of birth"] = "Ημερομηνία/τόπος γέννησης";
  81.333 +["Deactivate member"] = "Απενεργοποίηση μέλους";
  81.334 +["Decline authorization"] = "Απόρριψη επιβεβαίωσης";
  81.335 +["Default Policy"] = "Προκαθορισμένη πολιτική";
  81.336 +["Degree"] = "Βαθμοί";
  81.337 +["Delegate area"] = "Εξουσιοδότηση περιοχής";
  81.338 +["Delegate issue"] = "Εξουσιοδότηση θεματικής";
  81.339 +["Delegate unit"] = "Εξουσιοδότηση κατηγορίας";
  81.340 +["Delegation abandoned"] = "Ακύρωση εξουσιοδότησης";
  81.341 +["Delegation turned off for area"] = "Η εξουσιοδότηση περιοχής είναι απενεργοποιημένη";
  81.342 +["Delegation turned off for issue"] = "Η εξουσιοδότηση θεματικής είναι απενεργοποιημένη";
  81.343 +["Delete account"] = "Διαγραφή λογαριασμού";
  81.344 +["Denied at"] = "Αππορρίφθηκε στις";
  81.345 +["Deny request"] = "Απόρριψη αιτήματος";
  81.346 +["Describe how the proposal and/or the reasons of the initiative could be improved"] = "Περιέγραψε πως η πρόταση θα βελιτωθεί και/ή τους λόγους της πρωτοβουλίας";
  81.347  ["Description"] = "Περιγραφή";
  81.348 -["Details"] = "Λεπτομέρειες";
  81.349 -["Developer settings"] = "Ρυθμίσεις για προγραμματιστές";
  81.350 -["Did the initiator implement this suggestion?"] = false;
  81.351 -["Direct majority"] = "Άμεση πλειοψηφία";
  81.352 -["Direct majority denominator"] = false;
  81.353 -["Direct majority non negative"] = "Άμεση πλειοψηφία μη αρνητικών";
  81.354 -["Direct majority numerator"] = "Αριθμητής άμεσης πλειοψηφίας";
  81.355 -["Direct majority positive"] = "Άμεση πλειοψηφία θετικών";
  81.356 -["Disapproval (prefer to last block) [many entries]"] = "Αποδοκιμασία (αλλά προτιμότερα από το τελευταίο πλαίσιο)";
  81.357 -["Disapproval (prefer to last block) [single entry]"] = "Αποδοκιμασία (αλλά προτιμότερο από το τελευταίο πλαίσιο)";
  81.358 -["Disapproval (prefer to lower block) [many entries]"] = "Αποδοκιμασία (αλλά προτιμότερα από το παρακάτω)";
  81.359 -["Disapproval (prefer to lower block) [single entry]"] = "Αποδοκιμασία (αλλά προτιμότερο από το παρακάτω)";
  81.360 -["Disapproval (prefer to lower blocks) [many entries]"] = "Αποδοκιμασία (αλλά προτιμότερα από τα παρακάτω)";
  81.361 -["Disapproval (prefer to lower blocks) [single entry]"] = "Αποδοκιμασία (αλλά προτιμότερο από τα παρακάτω)";
  81.362 -["Disapproval [many entries]"] = "Αποδοκιμασία";
  81.363 +["Details"] = "Λεπτομέριες";
  81.364 +["Did the initiator implement this suggestion?"] = "Αυτή η πρόταση έγινε από το μέλος που ξεκίνησε την πρωτοβουλία;";
  81.365 +["Digest #{id}: #{info}"] = "Σύνοψη #{id}: #{info}";
  81.366 +["Direct majority"] = "’μεση πλειοψηφία";
  81.367 +["Disapproval (prefer to last block) [many entries]"] = "Αποδοκιμασία (επιλογή στο τελευταίο μπλοκ)";
  81.368 +["Disapproval (prefer to last block) [single entry]"] = "Αποδοκιμασία (επιλογή στο τελευταίο μπλοκ)";
  81.369 +["Disapproval (prefer to lower block) [many entries]"] = "Αποδοκιμασία (επιλογή σε χαμηλότερο μπλοκ)";
  81.370 +["Disapproval (prefer to lower block) [single entry]"] = "Αποδοκιμασία (επιλογή σε χαμηλότερο μπλοκ)";
  81.371 +["Disapproval (prefer to lower blocks) [many entries]"] = "Αποδοκιμασία (επιλογή σε χαμηλότερα μπλοκ)";
  81.372 +["Disapproval (prefer to lower blocks) [single entry]"] = "Αποδοκιμασία (επιλογή σε χαμηλότερα μπλοκ)";
  81.373 +["Disapproval [many entries]"] = "Αποδοκιμασίες";
  81.374  ["Disapproval [single entry]"] = "Αποδοκιμασία";
  81.375 -["Disapproved"] = false;
  81.376 -["Discard my vote"] = false;
  81.377 +["Disapproved"] = "Αποδοκιμάστηκε";
  81.378 +["Discard my vote"] = "Διαγραφή ψήφου";
  81.379  ["Discussion"] = "Συζήτηση";
  81.380 -["Discussion #{time_info}"] = false;
  81.381 -["Discussion URL"] = "URL συζήτησης";
  81.382 -["Discussion started"] = "Η συζήτηση ξεκίνησε";
  81.383 -["Discussion time"] = "Διάρκεια διαβούλευσης";
  81.384 -["Do you really want to irrevocably deactive this member?"] = false;
  81.385 -["Do you want to suggest to support another initiative?"] = false;
  81.386 -["Download"] = "Κατέβασμα";
  81.387 -["Download database export"] = "Κατέβασμα βάσης δεδομένων";
  81.388 -["Download documents"] = "Κατέβασμα εγγράφων";
  81.389 -["Draft history"] = false;
  81.390 -["Draft revision #{id}"] = false;
  81.391 -["During the discussion phase, the issue is debated on while the initiators improve the proposals and reasons in their initiatives. Supporters of initiatives can write and rate suggestions for improvement."] = false;
  81.392 -["During the verification phase, existing initiatives cannot be changed anymore. Initiatives need to pass the 2nd quorum of #{quorum} at end of verification phase to become admitted for voting."] = false;
  81.393 -["During the voting phase, votes for all admitted initiatives in this issue can be cast. The final result will be calculated as soon as this phase ends."] = false;
  81.394 -["Edit again"] = false;
  81.395 -["Edit initiative"] = "Επεξεργασία πρωτοβουλίας";
  81.396 -["Edit voting comment"] = false;
  81.397 -["Edit your profile data"] = false;
  81.398 -["Eligible as winner"] = "Επιλέξιμο ως νικητής";
  81.399 -["Eligible members (#{count})"] = false;
  81.400 -["Eligible voters"] = "Ψηφοφόροι";
  81.401 +["Discussion #{time_info}"] = "Συζήτηση #{time_info}";
  81.402 +["Discussion phase"] = "Φάση συζήτησης";
  81.403 +["Discussion started"] = "Έναρξη συζήτησης";
  81.404 +["Discussion time"] = "Χρόνος συζήτησης";
  81.405 +["Do you really want to irrevocably deactive this member?"] = "Θέλεις σίγουρα να διαγράψεις οριστικά αυτό το μέλος;";
  81.406 +["Do you want to suggest to support another initiative?"] = "Θέλεις να προτείνεις την υποστήριξη μιας άλλης πρωτοβουλίας;";
  81.407 +["Domain too long"] = "Μεγάλη διεύθυνση δικτύου";
  81.408 +["Download"] = "Λήψη";
  81.409 +["Download database export"] = "Λήψη export βάσης δεδομένων";
  81.410 +["Download documents"] = "Λήψη αρχείων";
  81.411 +["Draft contains invalid formatting or character sequence: #{error_message}"] = "Περιέχεται άκυρη μορφή ή ακολουθία χαρακτήρων #{error_message}";
  81.412 +["Draft history"] = "Ιστορικό προσχεδίων";
  81.413 +["Draft revision #{id}"] = "Προσχέδιο αναθεώρησης #{id}";
  81.414 +["Duration of discussion phase of an issue."] = "Διάρκεια φάσης συζήτησης θέματος.";
  81.415 +["Duration of verification phase of an issue."] = "Διάρκεια φάσης επιβεβαίωσης θέματος.";
  81.416 +["Duration of voting phase of an issue."] = "Διάρκεια φάσης ψηφοφορίας θέματος.";
  81.417 +["During the discussion phase, the issue is debated on while the initiators improve the proposals and reasons in their initiatives. Supporters of initiatives can write and rate suggestions for improvement."] = "Κατά την φάση συζήτησης η θεματική αναλύεται ενώ τα μέλη βελτιώνουν τις προτάσεις και τους λόγους των πρωτοβουλιών τους. Οι υποστηρικτές των πρωτοβουλιών μπορούν να γράψουν προτάσεις για βελτίωση και να τις βαθμολογήσουν.";
  81.418 +["During the verification phase, existing initiatives cannot be changed anymore. Initiatives need to pass the 2nd quorum of #{quorum} at end of verification phase to become admitted for voting."] = "Durante la fase di verifica, le iniziative esistenti non possono essere piΓΉ modificate. Le iniziative devono passare il secondo quorum di #{quorum} per essere ammesse alla fase di voto.";
  81.419 +["During the voting phase, votes for all admitted initiatives in this issue can be cast. The final result will be calculated as soon as this phase ends."] = "Κατά την φάση ψηφοφορίας οι ψήφοι σε όλες τις πρωτοβουλίες μπορούν να αποσυρθούν. Το τελικό αποτέλεσμα θα υπολογιστεί μετά το τέλος της φάσης ψηφοφορίας.";
  81.420 +["Edit"] = "Επεξεργασία";
  81.421 +["Edit again"] = "Επεξεργασία ξανά";
  81.422 +["Edit voting comment"] = "Επεξεργασία του σχολίου της ψήφου";
  81.423 +["Edit your global <link>notification settings</link> to receive updates by email."] = "Επεξεργασία του ολικού <link>ρυθμίσεις ειδοποιήσης</link> λήψη ενημερώσεων μέσω email.";
  81.424 +["Edit your profile data"] = "Επεξεργασία στοιχείων προφίλ";
  81.425 +["Eligible as winner"] = "Επιλέξιμος ως νικητής";
  81.426 +["Eligible members (#{count})"] = "Επιλέξιμα μέλη (#{count})";
  81.427  ["Email address"] = "Διεύθυνση email";
  81.428  ["Email address confirmation"] = "Επιβεβαίωση διεύθυνσης email";
  81.429 -["Email address for notifications"] = false;
  81.430 -["Email address is confirmed now"] = "Η διεύθυνση email είναι πλέον επιβεβαιωμένη";
  81.431 +["Email address for notifications"] = "Διεύθυνση email ειδοποίησεων";
  81.432 +["Email address is confirmed now"] = "Η διεύθυνση email επιβεβαιώθηκε";
  81.433  ["Email address too short!"] = "Η διεύθυνση email είναι πολύ μικρή!";
  81.434 -["Email confirmation request"] = "Αίτημα για email επιβεβαίωσης";
  81.435 -["Emphasis"] = false;
  81.436 -["Enter a new email address:"] = false;
  81.437 -["Enter a new login name"] = false;
  81.438 -["Enter a new password:"] = false;
  81.439 -["Enter a new screen name:"] = false;
  81.440 -["Enter a title for your initiative (max. 140 chars):"] = false;
  81.441 -["Enter your current password:"] = false;
  81.442 -["Enter your new password again please:"] = false;
  81.443 -["Enter your proposal and/or reasons"] = false;
  81.444 -["Enter your proposal and/or reasons:"] = false;
  81.445 -["Error while converting image. Please note, that only JPG files are supported!"] = "Σφάλμα κατά την μετατροπή της εικόνας. Έχετε υπόψη ότι υποστηρίζονται μόνο αρχεία JPG.";
  81.446 -["Error while updating member, database reported:<br /><br /> (#{errormessage})"] = "Σφάλμα κατά την ενημέρωση του μέλους. Αναφορά βάσης δεδομένων:<br /><br /> (#{errormessage})";
  81.447 -["Etherpad authentication failed"] = "Η πιστοποίηση μέσω Etherpad απέτυχε";
  81.448 -["External memberships"] = "Εξωτερικές συμμετοχές";
  81.449 -["External posts"] = "Εξωτερικές θέσεις";
  81.450 -["Failed  #{sign}#{num}/#{den}"] = false;
  81.451 -["Failed 1st quorum"] = false;
  81.452 -["Finish delegation check"] = "Ολοκλήρωση ελέγχου αναθέσεων";
  81.453 -["Finish voting"] = "Ολοκλήρωση ψήφου";
  81.454 -["Finished with winner"] = false;
  81.455 -["For numbered items use a digit (e.g. 1) followed by a dot (.) and a space"] = false;
  81.456 -["For which issue phases do you like to receive notification emails?"] = false;
  81.457 -["Forgot login name?"] = "Ξέχασες το όνομα σύνδεσής σου;";
  81.458 +["Email confirmation request"] = "Αίτημα επιβεβαίωσης  διεύθυνσης email";
  81.459 +["Emphasis"] = "Έμφαση";
  81.460 +["Enter a new email address:"] = "Πληκτρολόγησε νέα διεύθυνση  email";
  81.461 +["Enter abstract:"] = "Προσθήκη περιγραφής:";
  81.462 +["Enter your proposal and/or reasons:"] = "Γράψε την πρότασή σου και/ή τους λόγους:";
  81.463 +["Error during authorization"] = "Σφάλμα κατά την επιβεβαίωση";
  81.464 +["Error while converting image. Please note, that only JPG files are supported!"] = "Σφάλμα κατά την μετατροπή της εικόνας. Υποστηρίζονται μόνο αρχεία JPG!";
  81.465 +["Error while updating member, database reported:<br /><br /> (#{errormessage})"] = "Σφάλμα κατά την ενημέρωση του μέλους, μήνυμα βάσης δεδομένων:<br /><br /> (#{errormessage})";
  81.466 +["Etherpad authentication failed"] = "Απέτυχε η ταυτοποίηση Etherpad";
  81.467 +["Experimental features"] = "Πειραματικές επιλογές";
  81.468 +["External reference"] = "Εξωτερική αναφορά";
  81.469 +["Failed  #{sign}#{num}/#{den}"] = "Απέτυχε #{sign}#{num}/#{den}";
  81.470 +["Failed 1st quorum"] = "Απέτυχε η 1η απαρτία";
  81.471 +["Field"] = "Πεδίο";
  81.472 +["Filter issues:"] = "Φιλτράρισμα θεμάτων:";
  81.473 +["Finish delegation check"] = "Ολοκλήρωση ελέγχου εξουσιοδοτήσεων";
  81.474 +["Finish voting"] = "Τέλος ψηφοφορίας";
  81.475 +["Finished with winner"] = "Ολοκληρώθηκε με νικητή";
  81.476 +["First quorum"] = "Πρώτη απαρτία";
  81.477 +["Fiscal code"] = "Ταχυδρομικός κώδικας";
  81.478 +["Fiscal code does not match"] = "Ο ταχυδρομικός κώδικαας δεν ταιριάζει";
  81.479 +["Fiscal code does not match (#{count})"] = "Ο ταχυδρομικός κώδικαας δεν ταιριάζει (#{count})";
  81.480 +["For numbered items use a digit (e.g. 1) followed by a dot (.) and a space"] = "Για αριθμημένα στοιχεία χρησιμοποίησε ένα ψηφίο (π.χ. 1) ακολουθούμενο από μια τελεία (.) και ένα κενό";
  81.481 +["Forbidden"] = "Μη-επιτρεπτό";
  81.482 +["Forgot login name?"] = "Ξέχασες το όνομα login;";
  81.483  ["Forgot password?"] = "Ξέχασες τον κωδικό σου;";
  81.484 -["Formatting help"] = false;
  81.485 -["Free timing:"] = false;
  81.486 -["Frozen"] = "Παγωμένο";
  81.487 -["Fully frozen at"] = "Πλήρως παγωμένο στις";
  81.488 -["Generate API key"] = "Παραγωγή κλειδιού API";
  81.489 -["Global delegation"] = "Καθολική ανάθεση";
  81.490 -["Go back to home page"] = false;
  81.491 -["Half frozen at"] = "Μερικώς παγωμένο στις";
  81.492 -["Headlines"] = false;
  81.493 -["Hello\n\n"] = "Γειά σου\n\n";
  81.494 -["Hello "] = "Γειά σου ";
  81.495 -["Hello,\n\n"] = "Γειά σου,\n\n";
  81.496 -["Help #{id}"] = "Βοήθεια #{id}";
  81.497 +["Formatting help"] = "Βοήθεια μορφοποίησης";
  81.498 +["Free timing:"] = "Ελεύθερη χρονομέτρηση:";
  81.499 +["Friday"] = "Παρασκευή";
  81.500 +["Frozen"] = "Σε παύση";
  81.501 +["Fully frozen at"] = "Σε πλήρη παύση στο";
  81.502 +["Global delegation"] = "Ολική εξουσιοδότηση";
  81.503 +["Go back to home page"] = "Επιστροφή στην αρχική σελίδα";
  81.504 +["Grant account access"] = "Παραχώρηση πρόσβασης λογαριασμού";
  81.505 +["Grant authorization"] = "Παραχώρηση πρόσβασης";
  81.506 +["Half frozen at"] = "Μερική παύση στο";
  81.507 +["Headlines"] = "Τίτλοι";
  81.508 +["Hello\n\n"] = "Γεια\n\n";
  81.509 +["Hello "] = "Γεια";
  81.510 +["Hello,\n\n"] = "Γεια,\n\n";
  81.511  ["Hide"] = "Απόκρυψη";
  81.512 -["Hide inactive"] = false;
  81.513 +["Hide inactive"] = "Απενεργοποιημένη απόκρυψη";
  81.514  ["Hint"] = "Συμβουλή";
  81.515  ["History"] = "Ιστορικό";
  81.516 -["Home"] = "Κεντρική Σελίδα";
  81.517 -["How important is your suggestions for you?"] = false;
  81.518 -["How this member voted"] = false;
  81.519 -["I do not like to hear from this member"] = false;
  81.520 -["I do not like to receive notifications by email"] = false;
  81.521 -["I don't like any of the initiative in this issue and I want to add my opinion or counter proposal"] = false;
  81.522 -["I don't like this initiative and I want to add my opinion or counter proposal"] = false;
  81.523 -["I don't like to vote this issue (myself):"] = false;
  81.524 -["I like this initiative and I want to support it"] = false;
  81.525 -["I like to change/revoke my vote:"] = false;
  81.526 -["I like to receive notifications"] = false;
  81.527 -["I like to vote on this issue:"] = false;
  81.528 -["I understand, that this is not revocable"] = false;
  81.529 -["I want to change account settings"] = false;
  81.530 -["I want to change the interface language"] = false;
  81.531 -["I want to customize my profile"] = false;
  81.532 -["I want to deactive this member irrevocably"] = false;
  81.533 -["I want to delegate my vote"] = false;
  81.534 -["I want to delegate this issue"] = false;
  81.535 -["I want to delegate this organizational unit"] = false;
  81.536 -["I want to delegate this subject area"] = false;
  81.537 -["I want to download all data"] = false;
  81.538 -["I want to improve this initiative"] = false;
  81.539 -["I want to know whats going on"] = false;
  81.540 -["I want to learn more about LiquidFeedback"] = false;
  81.541 -["I want to logout"] = false;
  81.542 -["I want to manage my saved contacts"] = false;
  81.543 -["I want to participate in this issue"] = false;
  81.544 -["I want to participate in this subject area"] = false;
  81.545 -["I want to save this member as contact (i.e. to use as delegatee)"] = false;
  81.546 -["I want to start a new initiative"] = false;
  81.547 -["I want to stay informed"] = false;
  81.548 -["I want to take a look at other organizational units"] = false;
  81.549 -["I'm interested in this issue"] = false;
  81.550 -["I'm supporting this initiative"] = false;
  81.551 +["Home"] = "Αρχή";
  81.552 +["Hostname"] = "Hostname";
  81.553 +["How important is your suggestions for you?"] = "Πόσο σημαντικές είναι οι προτάσεις σου για εσένα;";
  81.554 +["How this member voted"] = "Πως ψήφησε αυτό το μέλος";
  81.555 +["I do not like to hear from this member"] = "Δεν επιθυμώ ειδοποιήσεις από αυτό το μέλος";
  81.556 +["I don't like any of the initiative in this issue and I want to add my opinion or counter proposal"] = "Δεν μου αρέσει καμία πρωτοβουλία της θεματικής και θέλω να προσθέσω την άποψή μου ή αντι-πρόταση";
  81.557 +["I don't like this initiative and I want to add my opinion or counter proposal"] = "Δεν μου αρέσει η θεματική και θέλω να προσθέσω την άποψή μου ή αντι-πρόταση";
  81.558 +["I don't like to vote this issue (myself):"] = "Δεν θέλω να ψηφίζω για αυτή την θεματική (αυτοπροσώπως)";
  81.559 +["I like this initiative and I want to support it"] = "Μου αρέσει η θεματική και θέλω να την υποστηρίξω";
  81.560 +["I like to change/revoke my vote:"] = "Θέλω να αλλάξω/αποσύρω την ψήφο μου:";
  81.561 +["I like to receive notifications"] = "Θέλω να λαμβάνω ειδοποιήσεις";
  81.562 +["I like to vote on this issue:"] = "Θέλω να ψηφίσω στην θεματική:";
  81.563 +["I understand, that this is not revocable"] = "Καταλαβαίνω πως η ενέργεια είναι μη αναστρέψιμη";
  81.564 +["I want to change account settings"] = "Θέλω να αλλάξω τις ρυθμίσεις λογαριασμού";
  81.565 +["I want to deactive this member irrevocably"] = "Θέλω να απενεργοποιήσω αυτό το μέλος οριστικά";
  81.566 +["I want to delegate my vote"] = "Θέλω να εξουσιοδοτήσω την ψήφο μου";
  81.567 +["I want to delegate this issue"] = "Θέλω να εξουσιοδοτήσω την θεματική";
  81.568 +["I want to delegate this organizational unit"] = "Θέλω να εξουσιοδοτήσω την μονάδα";
  81.569 +["I want to delegate this subject area"] = "Θέλω να εξουσιοδοτήσω την περιοχή";
  81.570 +["I want to download all data"] = "Θέλω να κατεβάσω όλα τα δεδομένα";
  81.571 +["I want to improve this initiative"] = "Θέλω να βελτιώσω την πρωτοβουλία";
  81.572 +["I want to know whats going on"] = "Θέλω να γνωρίζω τι συμβαίνει";
  81.573 +["I want to learn more about LiquidFeedback"] = "Θέλω να μάθω περισσότερα για το LiquidFeedback";
  81.574 +["I want to participate in this issue"] = "Θέλω να συμμετάσχω στην θεματική";
  81.575 +["I want to receive a regular digest"] = "Θέλω να λαμβάνω τακτικά σύνοψη";
  81.576 +["I want to save this member as contact (i.e. to use as delegatee)"] = "Θέλω να αποθηκεύσω το μέλος ως επαφή (π.χ. για αν το εξουσιοδοτήσω)";
  81.577 +["I want to show or edit my profile"] = "Θέλω να προβάλω ή επεξεργαστώ το προφίλ μου";
  81.578 +["I want to start a new initiative"] = "Θέλω να ξεκινήσω μια νέα πρωτοβουλία";
  81.579 +["I want to stay informed"] = "Θέλω να ενημερώνομαι";
  81.580 +["I want to stay informed about this subject area"] = "Θέλω να ενημερώνομαι για την περιοχή";
  81.581 +["I want to switch to another account"] = "Αλλαγή σε άλλο λογαριασμό";
  81.582 +["I want to take a look at other organizational units"] = "Θέλω να δω άλλες μονάδες";
  81.583 +["I want to vote"] = "Θέλω να ψηφίσω";
  81.584 +["ID"] = "ID";
  81.585 +["IP address"] = "Διεύθυνση IP";
  81.586  ["Id"] = "Id";
  81.587 -["Identification"] = "Αναγνωριστικό";
  81.588 -["If this link is not working, please open following url in your web browser:\n\n"] = "Εάν δεν λειτουργεί αυτός ο σύνδεσμος, παρακαλώ άνοιξε την παρακάτω διεύθυνση με το πρόγραμμα περιήγησης στον ιστό:\n\n";
  81.589 -["If you cannot find any appropriate existing issue, "] = false;
  81.590 -["Implicitly admitted"] = "Εισήχθη εμμέσως";
  81.591 -["Incoming delegations"] = "Εισερχόμενες αναθέσεις";
  81.592 -["Incoming delegations for '#{member_name}'"] = false;
  81.593 -["Incoming delegations for '#{member}'"] = false;
  81.594 -["Indent sub items with spaces"] = false;
  81.595 -["Index"] = "Δείκτης";
  81.596 +["Identification"] = "Ταυτοποίηση";
  81.597 +["Identification used before"] = "Η ταυτοποίηση έχει ξανα-χρησιμοποιηθεί";
  81.598 +["Identification used before (#{count})"] = "Η ταυτοποίηση έχει ξανα-χρησιμοποιηθεί (#{count})";
  81.599 +["If this link is not working, please open following url in your web browser:\n\n"] = "Αν δεν δουλεύει ο υπερσύνδεσμος, παρακαλούμε άνοιξε το url στον browser:\n\n";
  81.600 +["If you cannot find any appropriate existing issue, "] = "Αν δεν βρίσκεις κάποια σχετική υπάρχουσα θεματική, ";
  81.601 +["If you have not received a PIN code, our team will need to check your registration manually. We will be in touch within two working days. Please accept our apologies for the inconvenience."] = "Αν δεν έλαβες κωδικό PIN, η ομάδα μας πρέπει να ελέγξει την εγγραφή σου. Θα επανέλθουμε σε δύο εργάσιμες μέρες. Μας συγχωρείς για την ταλαιπωρία.";
  81.602 +["Implicitly admitted"] = "Σιωπηρή υποβολή";
  81.603 +["Incoming delegations"] = "Εισερχόμενες εξουσιοδοτήσεις";
  81.604 +["Incoming delegations for '#{member}'"] = "Εισερχόμενες εξουσιοδοτήσεις για '#{member}'";
  81.605 +["Indent sub items with spaces"] = "Εσοχή υπο-στοιχείων με διαστήματα";
  81.606  ["Indirect majority"] = "Έμμεση πλειοψηφία";
  81.607 -["Indirect majority denominator"] = false;
  81.608 -["Indirect majority non negative"] = "Έμμεση πλειοψηφία μη αρνητικών";
  81.609 +["Indirect majority denominator"] = "Παρονομαστής έμμεσης πλειοψηφίας";
  81.610 +["Indirect majority non negative"] = "Έμμεση πλειοψηφία μη αρνητική";
  81.611  ["Indirect majority numerator"] = "Αριθμητής έμμεσης πλειοψηφίας";
  81.612 -["Indirect majority positive"] = "Έμμεση πλειοψηφία θετικών";
  81.613 -["Individual ratings"] = false;
  81.614 -["Initiative is revoked now"] = "Η πρωτοβουλία έχει πλέον ανακληθεί";
  81.615 -["Initiative not admitted"] = false;
  81.616 +["Indirect majority positive"] = "Έμμεση πλειοψηφία θετική";
  81.617 +["Initiative is revoked now"] = "Η πρωτοβουλία αποσύρθηκε";
  81.618 +["Initiative not admitted"] = "Η πρωτοβουλία δεν έγινε δεκτή";
  81.619  ["Initiative quorum"] = "Απαρτία πρωτοβουλίας";
  81.620 -["Initiative quorum denominator"] = false;
  81.621 -["Initiative quorum numerator"] = "Αριθμητής απαρτίας πρωτοβουλίας";
  81.622 -["Initiative revoked"] = "Η πρωτοβουλία ανακλήθηκε";
  81.623 -["Initiative successfully created"] = "Η πρωτοβουλία δημιουργήθηκε επιτυχώς";
  81.624 -["Initiative successfully updated"] = "Η πρωτοβουλία ενημερώθηκε επιτυχώς";
  81.625 -["Initiative: "] = "Πρωτοβουλία: ";
  81.626 -["Initiatives"] = false;
  81.627 -["Initiatives and issues"] = false;
  81.628 -["Initiatives created by this member"] = false;
  81.629 -["Initiatives that invited you to become initiator:"] = "Πρωτοβουλίες που κλήθηκες να εισηγηθείς:";
  81.630 -["Initiator invites"] = "Προσκλήσεις εισηγητών";
  81.631 -["Initiators"] = "Εισηγητές";
  81.632 -["Interest already removed"] = false;
  81.633 -["Interest removed"] = "Το ενδιαφέρον αφαιρέθηκε";
  81.634 -["Interest updated"] = "Το ενδιαφέρον ανανεώθηκε";
  81.635 -["Interested members"] = "Ενδιαφερόμενα μέλη";
  81.636 -["Internal posts"] = "Εσωτερικές δημοσιεύσεις";
  81.637 -["Interval format:"] = "Μορφή διαστήματος";
  81.638 -["Introduction"] = false;
  81.639 -["Invalid login name or password!"] = "Μη έγκυρο όνομα σύνδεσης ή κωδικός πρόσβασης";
  81.640 -["Invalid timing"] = false;
  81.641 +["Initiative revoked"] = "Η πρωτοβουλία αποσύρθηκε";
  81.642 +["Initiative revoked: #{initiative_name}"] = "Αποσυρμένη πρωτοβουλία: #{initiative_name}";
  81.643 +["Initiative: "] = "Πρωτοβουλία:";
  81.644 +["Initiatives and issues"] = "Πρωτοβουλίες και θεματικές";
  81.645 +["Initiatives created by this member"] = "Πρωτοβουλίες που δημιουργήθηκαν αυτό το μέλος";
  81.646 +["Initiatives that invited you to become initiator:"] = "Πρωτοβουλίες που προσκαλέστηκες να γίνεις δημιουργός:";
  81.647 +["Initiators"] = "Δημιουργεί";
  81.648 +["Interested members"] = "Μέλη που ενδιαφέρονται";
  81.649 +["Interval format:"] = "Μορφή διαλλείματος:";
  81.650 +["Introduction"] = "Εισαγωγή";
  81.651 +["Invalid PIN entered"] = "Εισαγωγή λάθος PIN";
  81.652 +["Invalid PIN entered (#{count})"] = "Εισαγωγή λάθος PIN (#{count})";
  81.653 +["Invalid PIN, please try again!"] = "’κυρο PIN, παρακαλούμε προσπάθησε ξανά!";
  81.654 +["Invalid domain format"] = "Λάθος μορφή διεύθυνσης δικτύου";
  81.655 +["Invalid login name or password!"] = "’κυρο όνομα login ή κωδικός!";
  81.656 +["Invalid timing"] = "’κυρος χρόνος";
  81.657  ["Invitation has been refused"] = "Η πρόσκληση απορρίφθηκε";
  81.658 -["Invitation to LiquidFeedback"] = "Πρόσκληση στο Liquid Feedback";
  81.659 -["Invite an initiator to initiative"] = "Πρόσκληση εισηγητή στην πρωτοβουλία";
  81.660 +["Invitation to LiquidFeedback"] = "Πρόσκληση στο LiquidFeedback";
  81.661 +["Invite an initiator to initiative"] = "Πρόσκληση ενός δημιουργού στην πρωτοβουλία";
  81.662  ["Invite code"] = "Κωδικός πρόσκλησης";
  81.663 -["Invite member"] = false;
  81.664 -["Invited"] = "Προσκεκλημένος";
  81.665 -["Issue #"] = false;
  81.666 -["Issue ##{id}"] = "Θέμα ##{id}";
  81.667 -["Issue ##{issue_id}: #{initiative_name}"] = false;
  81.668 -["Issue delegation"] = "Ανάθεση θέματος";
  81.669 -["Issue has been canceled"] = "Το θέμα έχει ακυρωθεί";
  81.670 -["Issue quorum"] = "Απαρτία θέματος";
  81.671 -["Issue quorum denominator"] = false;
  81.672 -["Issue quorum numerator"] = "Αριθμητής απαρτίας θέματος";
  81.673 -["Issue reached next phase"] = "Το θέμα έφτασε το επόμενο στάδιο";
  81.674 -["Issues in admission phase"] = false;
  81.675 -["Issues in discussion phase"] = false;
  81.676 -["Issues in verification phase"] = false;
  81.677 -["Issues in voting phase"] = false;
  81.678 -["Issues:"] = "Θέματα:";
  81.679 -["JavaScript is disabled or not available."] = "Η JavaScript είναι απενεργοποιημένη ή μη διαθέσιμη.";
  81.680 -["Last activity (updated daily)"] = "Τελευταία δραστηριότητα (ενημερώνεται καθημερινά)";
  81.681 -["Last counting:"] = false;
  81.682 -["Latest approved issue"] = false;
  81.683 -["Latest disapproved issue"] = false;
  81.684 -["Latest events"] = "Πρόσφατα συμβάντα";
  81.685 -["Links"] = false;
  81.686 +["Invite letter"] = "Γράμμα πρόσκλησης";
  81.687 +["Invite member"] = "Πρόσκληση μέλους";
  81.688 +["Invited"] = "Προσκλήθηκε";
  81.689 +["Issue #"] = "Θεματική #";
  81.690 +["Issue ##{id}"] = "Θεματική ##{id}";
  81.691 +["Issue ##{issue_id}: #{initiative_name}"] = "Θεματική ##{issue_id}: #{initiative_name}";
  81.692 +["Issue delegation"] = "Εξουσιοδότηση θεματικής";
  81.693 +["Issue has been canceled"] = "Η θεματική ακυρώθηκε";
  81.694 +["Issue quorum"] = "Απαρτία θεματικής";
  81.695 +["Issue reached next phase"] = "Η θεματική πέρασε στην επόμενη φάση";
  81.696 +["Issues in admission phase"] = "Θεματικές σε φάση αποδοχής";
  81.697 +["Issues in discussion phase"] = "Θεματικές σε φάση συζήτησης";
  81.698 +["Issues in verification phase"] = "Θεματικές σε φάση επιβεβαίωσης";
  81.699 +["Issues in voting phase"] = "Θεματικές σε φάση ψηφοφορίας";
  81.700 +["Issues:"] = "Tematiche:";
  81.701 +["JavaScript is disabled or not available."] = "Η JavaScript έχει απενεργοποιηθεί ή δεν είναι διαθέσιμη.";
  81.702 +["Last activity (updated daily)"] = "Τελευταία δραστηριότητα (ανανεώνεται καθημερινά)";
  81.703 +["Last counting:"] = "Τελευταία καταμέτρηση:";
  81.704 +["Latest approved issue"] = "Τελευταία αποδεκτή θεματική";
  81.705 +["Latest disapproved issue"] = "Τελευταία απορριφθείσα θεματική";
  81.706 +["Links"] = "Σύνδεσμοι";
  81.707  ["LiquidFeedback"] = "LiquidFeedback";
  81.708 -["Lists"] = false;
  81.709 -["Lists must be preceeded and followed by at least one blank line"] = false;
  81.710 -["Lock member?"] = "Κλείδωμα μέλους;";
  81.711 -["Locked?"] = "Κλειστό;";
  81.712 -["Login"] = "Σύνδεση";
  81.713 -["Login name"] = "Όνομα σύνδεσης";
  81.714 -["Login name request"] = "Αίτηση ονόματος σύνδεσης";
  81.715 -["Login-Name: "] = "Όνομα Σύνδεσης";
  81.716 +["Lists"] = "Λίστες";
  81.717 +["Lists must be preceeded and followed by at least one blank line"] = "Οι λίστες πρέπει να ακολουθούνται και να προηγείται τουλάχιστον ένα κενό διάστημα";
  81.718 +["Lock member?"] = "Κλέιδωμα μέλους;";
  81.719 +["Locked?"] = "Κλειδωμένο;";
  81.720 +["Login [headline]"] = "Σύνδεση";
  81.721 +["Login [button]"] = "Σύνδεση";
  81.722 +["Login name"] = "Όνομα login";
  81.723 +["Login name request"] = "Αίτημα ονόματος login";
  81.724 +["Login-Name: "] = "Όνομα login: ";
  81.725 +["Logout"] = "Αποσύνδεση";
  81.726  ["Logout successful"] = "Επιτυχής αποσύνδεση";
  81.727 -["Make your choice by placing the initiatives"] = false;
  81.728 +["Majority"] = "Πλειοψηφία";
  81.729 +["Make your choice by placing the initiatives"] = "Κάνε τις επιλογές σου τοποθετώντας τις πρωτοβουλίες";
  81.730 +["Manage newsletters"] = "Διαχείριση newsletters";
  81.731 +["Manual verification (w/o mobile)"] = "Μη αυτόματη επιβεβαίωση (με/χωρίς κινητό)";
  81.732 +["Manual verification needed"] = "Απαιτείται επαλήθευση";
  81.733 +["Manual verification requested during step 1"] = "Μη αυτόματη επιβεβαίωση ζητήθηκε κατά το βήμα 1";
  81.734 +["Manual verification requested during step 1 (#{count})"] = "Μη αυτόματη επιβεβαίωση ζητήθηκε κατά το βήμα 1 (#{count})";
  81.735 +["Manual verification requested during step 2"] = "Μη αυτόματη επιβεβαίωση ζητήθηκε κατά το βήμα 2";
  81.736 +["Manual verification requested during step 2 (#{count})"] = "Μη αυτόματη επιβεβαίωση ζητήθηκε κατά το βήμα 2 (#{count})";
  81.737 +["Maximum admission time"] = "Μέγιστος χρόνος αποδοχής";
  81.738 +["Maximum time within which an issue has to reach the 1st quorum, otherwise it will be canceled."] = "Μέγιστος χρόνος που απαιτείται ώστε το θέμα να φτάσει στην πρώτη απαρτία, αλλιώς ακυρώνεται";
  81.739  ["Member"] = "Μέλος";
  81.740 -["Member has been removed from initiators"] = "Το μέλος αφαιρέθηκε από τους εισηγητές";
  81.741 -["Member has been removed from your contacts"] = "Το μέλος αφαιρέθηκε από τις επαφές σου";
  81.742 -["Member has not approved latest draft"] = "Το μέλος δεν έχει εγκρίνει το τελευταίο προσχέδιο";
  81.743 -["Member inactive?"] = "Απενεργοποιημένο μέλος;";
  81.744 -["Member is already saved in your contacts!"] = "Αυτό το μέλος είναι ήδη αποθηκευμένο στις επαφές σου!";
  81.745 -["Member is not participating in any of the #{count} areas in this unit"] = "Το μέλος δεν συμμετέχει σε κανέναν από τους #{count} τομείς σ' αυτή την ενότητα";
  81.746 -["Member is not participating in the only area of the unit"] = "Το μέλος συμμετέχει στον μοναδικό τομέα αυτής της ενότητας";
  81.747 -["Member is now invited to be initiator"] = "Το μέλος έχει προσκληθεί ως εισηγητής";
  81.748 -["Member list"] = "Κατάλογος μελών";
  81.749 +["Member has been removed from initiators"] = "Το μέλος έχει διαγραφεί από τους δημιουργούς";
  81.750 +["Member has been removed from your contacts"] = "Το μέλος διαγράφηκε από τις επαφές σου";
  81.751 +["Member has not approved latest draft"] = "Το μέλος δεν έχει αποδεχθεί την τελευταία έκδοση";
  81.752 +["Member inactive?"] = "Ανενεργό μέλος;";
  81.753 +["Member is already saved in your contacts!"] = "Το μέλος είναι ήδη στις επαφές σου!";
  81.754 +["Member is now invited to be initiator"] = "Το μέλος προσκαλέστηκε ως δημιουργός";
  81.755 +["Member list"] = "Λίστα μελών";
  81.756  ["Member name"] = "Όνομα μέλους";
  81.757 -["Member successfully deactivated"] = false;
  81.758 -["Member successfully registered"] = "Το μέλος έχει εγγραφεί επιτυχώς";
  81.759 +["Member successfully deactivated"] = "Το μέλος απενεργοποιήθηκε επιτυχώς";
  81.760 +["Member successfully registered"] = "Το μέλος καταχωρήθηκε επιτυχώς";
  81.761  ["Member successfully updated"] = "Το μέλος ενημερώθηκε επιτυχώς";
  81.762  ["Members"] = "Μέλη";
  81.763 -["Memberships"] = "Συμμετοχές";
  81.764 -["Missing help text: #{id}.#{lang}.txt"] = "Λείπει κείμενο βοήθειας: #{id}.#{lang}.txt";
  81.765 -["Mobile phone"] = "Κινητό τηλέφωνο";
  81.766 -["Move down"] = "Μετακίνηση προς τα κάτω";
  81.767 -["Move up"] = "Μετακίνηση προς τα πάνω";
  81.768 -["My areas"] = "Οι τομείς μου";
  81.769 +["Message of the day"] = "Μήνυμα ημέρας";
  81.770 +["Method not allowed"] = "Μη-επιτρεπτή μέθοδος";
  81.771 +["Minimum absolute number of supporters."] = "Ελάχιστος απόλυτος αριθμός υποστηρικτών";
  81.772 +["Minimum admission time"] = "Ελάχιστος χρόνος αποδοχής";
  81.773 +["Minimum number of supporters relative to the number of active participants in the organizational unit."] = "Ελάχιστος απόλυτος αριθμός υποστηρικτών";
  81.774 +["Minimum supporter count (including support via delegation) an initiative has to reach to be an eligible candidate for the voting phase."] = "Ελάχιστος αριθμός υποστηρικτών (περιλαμβανομένης και της υποστήριξης μέσω εξουσιοδότησης) που η πρωτοβουλία πρέπει να φτάσει για να περάσει στη φάση ψηφοφορίας";
  81.775 +["Minimum supporter count (including support via delegation) one initiative of an issue has to reach to let the issue pass the 1st quorum and to proceed to discussion phase. Further requirements can occur due to per subject area issue limiter settings. See subject area settings."] = "Ελάχιστος αριθμός υποστηρικτών (περιλαμβανομένης και της υποστήριξης μέσω εξουσιοδότησης) που η πρωτοβουλία ενός θέματος πρέπει να φτάσει ώστε το θέμα να περάσει την πρώτη απαρτία και στην φάση συζήτησης. Περαιτέρω περιορισμοί μπορεί να προκύψουν σύμφωνα με τους περιορισμούς της θεματικής περιοχής. Δείτε τους περιορισμούς θεματικής περιοχής.";
  81.776 +["Minimum time an issue has to stay in admission phase before it can be accepted for discussion (if it reaches the 1st quorum)."] = "Ελάχιστος χρόνος παραμονής θέματος στη φάση υποβολής πριν γίνει δεκτό προς συζήτηση (αν φτάσει στην πρώτη απαρτία).";
  81.777 +["Missing parameter"] = "Λείπει παράμετρος";
  81.778 +["Monday"] = "Δευτέρα";
  81.779 +["Move down"] = "Μετακίνηση κάτω";
  81.780 +["Move up"] = "Μετακίνηση πάνω";
  81.781  ["Name"] = "Όνομα";
  81.782  ["New"] = "Νέο";
  81.783 -["New area"] = false;
  81.784 -["New draft for initiative '#{initiative_name}'"] = false;
  81.785 -["New drafts for #{count} initiative(s) you are supporting"] = "Νέα προσχέδια για #{count} πρωτοβουλία/ες που υποστηρίζεις";
  81.786 +["New area"] = "Νέα περιοχή";
  81.787 +["New competing initiative in issue '#{issue}'"] = "Νέα πρωοτβουλία στο θέμα '#{issue}'";
  81.788 +["New draft for initiative '#{initiative_name}'"] = "Νέα έκδοση για την πρωτοβουλία '#{initiative_name}'";
  81.789  ["New initiative"] = "Νέα πρωτοβουλία";
  81.790 -["New initiative draft"] = "Νέο προσχέδιο της πρωτοβουλίας";
  81.791 -["New issue"] = "Νέο θέμα";
  81.792 -["New member"] = false;
  81.793 -["New organizational unit"] = false;
  81.794 -["New passwords does not match."] = "Έχεις εισάγει δύο διαφορετικούς κωδικούς.";
  81.795 -["New passwords is too short."] = "Ο νέος κωδικός είναι πολύ μικρός.";
  81.796 -["New policy"] = false;
  81.797 +["New initiative draft"] = "Νέα έκδοση πρωτοβουλίας";
  81.798 +["New issue"] = "Νέα θεματική";
  81.799 +["New newsletter"] = "Νέο newsletter";
  81.800 +["New organizational unit"] = "Νέα οργανωτική περιοχή";
  81.801 +["New password"] = "Νέος κωδικός";
  81.802 +["New passwords does not match."] = "Ο νέος κωδικός δεν είναι ίδιος.";
  81.803 +["New passwords is too short."] = "Ο νέος κωδικός είναι πολύ σύντομος.";
  81.804 +["New policy"] = "Νέα πολιτική";
  81.805  ["New suggestion"] = "Νέα πρόταση";
  81.806 +["Newsletter"] = "Newsletter";
  81.807 +["Newsletter has already been sent out"] = "Το newsletter έχει ήδη σταλεί";
  81.808 +["Newsletter list"] = "Λίστα newsletter";
  81.809  ["No"] = "Όχι";
  81.810 -["No (not yet)"] = false;
  81.811 -["No admission needed"] = "Δεν χρειάζεται πρόκριση";
  81.812 -["No changes to your images were made"] = "Δεν έγιναν αλλαγές στις εικόνες σου";
  81.813 -["No default"] = "Χωρίς προεπιλογή";
  81.814 -["No delegation"] = "Χωρίς ανάθεση";
  81.815 -["No matching issues found"] = false;
  81.816 -["No matching members found"] = false;
  81.817 -["No more events available"] = "Δεν υπάρχουν άλλα διαθέσιμα συμβάντα";
  81.818 -["No multistage majority"] = "Χωρίς πολυσταδιακή πλειοψηφία";
  81.819 -["No published contacts"] = false;
  81.820 -["No results for this selection"] = false;
  81.821 -["No reverse beat path"] = "Χωρίς reverse beat path";
  81.822 -["No suggestions"] = "Δεν υπάρχουν προτάσεις";
  81.823 -["No suggestions yet"] = "Δεν υπάρχουν ακόμη προτάσεις";
  81.824 -["Not a member"] = "Δεν είναι μέλος";
  81.825 -["Not voted issues"] = "Θέματα που δεν έχουν ψηφιστεί";
  81.826 -["Notification address unconfirmed"] = "Ανεπιβεβαίωτη διεύθυνση email για ειδοποιήσεις";
  81.827 -["Notification email"] = "Email για ειδοποιήσεις";
  81.828 -["Notification level not set yet"] = "To επίπεδο ειδοποιήσεων δεν έχει οριστεί ακόμα";
  81.829 -["Notifications"] = false;
  81.830 -["Notifications are only send to you about events in the subject areas you subscribed, the issues you are interested in and the initiatives you are supporting."] = false;
  81.831 -["Number of incoming delegations, follow link to see more details"] = "Πλήθος εισερχόμενων αναθέσεων, ακολούθησε τον σύνδεσμο για περισσότερες λεπτομέρειες";
  81.832 -["Old password is wrong"] = "Ο παλιός κωδικός πρόσβασης είναι λανθασμένος";
  81.833 -["On that page please enter the confirmation code:\n\n"] = "Σε εκείνη την σελίδα κάνε εισαγωγή του κωδικού επιβεβαίωσης:\n\n";
  81.834 -["On that page please enter the invite key:\n\n"] = "Σε εκείνη την σελίδα κάνε εισαγωγή του κωδικού πρόσκλησης:\n\n";
  81.835 -["On that page please enter the reset code:\n\n"] = "Σε εκείνη την σελίδα κάνε εισαγωγή του κωδικού επαναφοράς:\n\n";
  81.836 -["One issue"] = "Ένα θέμα";
  81.837 -["One issue you are interested in"] = "Ένα θέμα που σε ενδιαφέρει";
  81.838 -["One more area in this unit"] = "Ένας ακόμη τομέας σε αυτή την ενότητα";
  81.839 -["One of them have an area delegation set"] = "Ένας απ' αυτούς έχει ανατεθεί σε άλλο μέλος";
  81.840 -["Only for issues reaching the discussion phase"] = "Μόνο για θέματα που φτάνουν στο στάδιο της συζήτησης.";
  81.841 -["Only for issues reaching the verification phase"] = false;
  81.842 -["Only for issues reaching the voting phase"] = "Μόνο για θέματα που φτάνουν στο στάδιο της ψηφοφορίας.";
  81.843 -["Open initiatives you are supporting which has been updated their draft:"] = "Ανοιχτές πρωτοβουλίες που υποστηρίζεις και έχουν ανανεωμένο προσχέδιο";
  81.844 -["Open issues"] = "Ανοιχτά θέματα";
  81.845 -["Open the appropriate subject area where your issue fits in and follow the instruction on that page."] = false;
  81.846 +["No (not yet)"] = "Όχι(Όχι ακόμα)";
  81.847 +["No PIN code received?"] = "Δεν έλαβες κωδικό PIN;";
  81.848 +["No account yet?"] = "Δεν έχεις ακόμα λογαριασμό;";
  81.849 +["No admission needed"] = "Δεν απαιτείται αποδοχή";
  81.850 +["No applications connected"] = "Δεν υπάρχουν συνδεδεμένες εφαρμογές";
  81.851 +["No changes to your images were made"] = "Δεν έγιναν αλλαγές στις φωτογραφίες σου";
  81.852 +["No default"] = "Καμία προεπιλογή";
  81.853 +["No delegation"] = "Καμία εξουσιοδότηση";
  81.854 +["No matching issues found"] = "Δεν βρέθηκαν σχετικές θεματικές";
  81.855 +["No matching members found"] = "Δεν βρέθηκαν σχετικά μέλη";
  81.856 +["No more events available"] = "Δεν υπάρχουν άλλα διαθέσιμα θέματα";
  81.857 +["No multistage majority"] = "Καμία multistage πλειοψηφία";
  81.858 +["No other members are allowed to use this account."] = "Δεν επιτρέπεται να χρησιμοποιούν το λογαριασμό άλλα μέλη.";
  81.859 +["No published contacts"] = "Καμία δημόσια επαφή";
  81.860 +["No results for this selection"] = "Κανένα αποτέλεσμα για αυτή την επιλογή";
  81.861 +["No reverse beat path"] = "Κανένα reverse beat μονοπάτι";
  81.862 +["No suggestions"] = "Καμία πρόταση";
  81.863 +["No suggestions yet"] = "Καμία πρόταση ακόμα";
  81.864 +["No votes (0)"] = "(0) ψήφοι";
  81.865 +["No voting rights."] = "Δεν υπάρχουν δικαιώματα ψηφοφορίας";
  81.866 +["None"] = "Κανένα";
  81.867 +["None yet"] = "Κανένα ακόμα";
  81.868 +["Not a member"] = "Δεν είσαι μέλος";
  81.869 +["Notification address unconfirmed"] = "Η διεύθυνση ειδοποιήσεων δεν έχει επιβεβαιωθεί";
  81.870 +["Notification email"] = "Email ειδοποιήσεων";
  81.871 +["Notification email (confirmed)"] = "Email ειδοποίησης (επιβεβαιωμένο)";
  81.872 +["Notification email (unconfirmed)"] = "= Email ειδοποίησης (μη επιβεβαιωμένο)";
  81.873 +["Notification level not set yet"] = "Το επίπεδο ειδοποιήσεων δεν έχει οριστεί";
  81.874 +["Notifications"] = "Ειδοποιήσεις";
  81.875 +["Old password is wrong"] = "Ο παλιός κωδικός είναι λάθος";
  81.876 +["On that page please enter the confirmation code:\n\n"] = "Παρακαλούμε πρόσθεσε τον κωδικό επιβεβαίωσης στη σελίδα:\n\n";
  81.877 +["On that page please enter the invite key:\n\n"] = "Παρακαλούμε πρόσθεσε το κλειδί πρόσκλησης στη σελίδα:\n\n";
  81.878 +["On that page please enter the reset code:\n\n"] = "Παρακαλούμε πρόσθεσε τον κωδικό επαναφοράς στη σελίδα:\n\n";
  81.879 +["One issue"] = "Μια θεματική";
  81.880 +["One issue you are interested in"] = "Ενδιαφέρεσαι για μια θεματική";
  81.881 +["Open in FirstLife"] = "'Ανοιγμα στο FirstLife";
  81.882 +["Open initiatives you are supporting which has been updated their draft:"] = "Ανοιχτές πρωτοβουλίες που υποστηρίζεις και έχουν ενημερώσει τις εκδόσεις τους:";
  81.883 +["Open request"] = "'Ανοιγμα αιτήματος";
  81.884 +["Open requests"] = "'Ανοιγμα αιτημάτων";
  81.885 +["Open requests (#{count})"] = "'Ανοιγμα αιτημάτων (#{count})";
  81.886 +["Open role requests"] = "'Ανοιγμα αιτημάτων ρόλων";
  81.887  ["Options"] = "Επιλογές";
  81.888 -["Organizational unit"] = "Ενότητα";
  81.889 -["Organizational units"] = false;
  81.890 -["Organizational units and subject areas"] = false;
  81.891 -["Other failures"] = "Άλλες αποτυχίες";
  81.892 -["Outgoing delegations"] = "Εξερχόμενες αναθέσεις";
  81.893 -["Page not found"] = false;
  81.894 -["Paragraphs"] = false;
  81.895 -["Parent unit"] = "Γονική ενότητα";
  81.896 -["Password"] = "Κωδικός πρόσβασης";
  81.897 -["Password has been reset successfully"] = "Ο κωδικός πρόσβασης επαναφέρθηκε επιτυχώς";
  81.898 -["Password reset request"] = "Αίτηση επαναφοράς κωδικού πρόσβασης";
  81.899 -["Passwords don't match!"] = "Οι κωδικοί είναι διαφορετικοί!";
  81.900 -["Passwords must consist of at least 8 characters!"] = "Οι κωδικοί πρόσβασης πρέπει να έχουν τουλάχιστον 8 χαρακτήρες!";
  81.901 -["Personal information"] = false;
  81.902 -["Phase durations"] = false;
  81.903 -["Phone"] = "Τηλέφωνο";
  81.904 +["Organizational unit"] = "Οργανωτική μονάδα";
  81.905 +["Organizational units"] = "Οργανωτικές μονάδες";
  81.906 +["Organizational units and subject areas"] = "Οργανωτικές μονάδες και περιοχές θεμάτων";
  81.907 +["Other failures"] = "’λλα σφάλματα";
  81.908 +["Other reasons"] = "’λλοι λόγοι";
  81.909 +["Outgoing delegations"] = "Εξερχόμενες εξουσιοδοτήσεις";
  81.910 +["Override disable notifications?"] = "Αντικατάσταση απενεργοποιημένων ειδοποιήσεων;";
  81.911 +["PIN code not entered"] = "Δεν εισήχθη κωδικός PIN";
  81.912 +["PIN code not entered (yet) (#{count})"] = "Δεν εισήχθη κωδικός PIN (#{count})";
  81.913 +["PIN page"] = "Σελίδα PIN";
  81.914 +["Page not found"] = "Η σελίδα δεν βρέθηκε";
  81.915 +["Paragraphs"] = "Παράγραφοι";
  81.916 +["Parent unit"] = "Μητρική μονάδα";
  81.917 +["Password"] = "Κωδικός";
  81.918 +["Password has been reset successfully"] = "Ο κωδικός αλλάχθηκε επιτυχώς";
  81.919 +["Password reset request"] = "Αίτημα αλλαγής κωδικού";
  81.920 +["Passwords don't match!"] = "Οι κωδικοί δεν ταιριάζουν!";
  81.921 +["Passwords must consist of at least 8 characters!"] = "Οι κωδικοί πρέπει να έχουν τουλάχιστον 8 χαρακτήρες!";
  81.922 +["Personal information"] = "Προσωπικές πληροφορίες";
  81.923 +["Phase durations"] = "Διάρκεια φάσης";
  81.924 +["Phase ends soon"] = "Η φάση λήγει σύντομα";
  81.925 +["Phone number used before"] = "Ο αριθμός τηλεφώνου χρησιμοποιείται";
  81.926 +["Phone number used before (#{count})"] = "Ο αριθμός τηλεφώνου χρησιμοποιείται (#{count})";
  81.927  ["Photo"] = "Φωτογραφία";
  81.928 -["Please choose a login name. This name will not be shown to others and is used only by you to login into the system. The login name is case sensitive."] = "Παρακαλώ επέλεξε ένα όνομα σύνδεσης. Αυτό το όνομα δεν θα εμφανίζεται σε άλλους και χρησιμοποιείται μόνο για την σύνδεσή σου στο σύστημα. Προσοχή στα κεφαλαία/πεζά γράμματα, έχουν σημασία.";
  81.929 -["Please choose a member"] = "Παρακαλώ επέλεξε ένα μέλος";
  81.930 -["Please choose a name, i.e. your real name or your nick name. This name will be shown to others to identify you."] = "Παρακαλώ επέλεξε ένα όνομα, π.χ. το πραγματικό σου ή κάποιο ψευδόνυμο. Το όνομα αυτό θα εμφανίζεται στους άλλους για να σε αναγνωρίζουν.";
  81.931 -["Please choose a password and enter it twice. The password is case sensitive."] = "Παρακαλώ επέλεξε έναν κωδικό πρόσβασης και κάνε την εισαγωγή του δύο φορές. Προσοχή στα κεφαλαία/πεζά γράμματα, έχουν σημασία.";
  81.932 -["Please choose a policy"] = "Παρακαλώ επέλεξε έναν κανονισμό";
  81.933 -["Please choose a policy for the new issue:"] = false;
  81.934 -["Please choose an area name"] = false;
  81.935 -["Please choose two different versions of the draft to compare"] = "Παρακαλώ επέλεξε δύο διαφορετικές εκδόσεις του προσχεδίου για να τις συγκρίνεις";
  81.936 -["Please confirm your email address"] = "Παρακαλώ επιβεβαίωσε την διεύθυνση του ηλ. ταχυδρομείου σου";
  81.937 -["Please confirm your email address by clicking the following link:\n\n"] = "Παρακαλώ να επιβεβαίωσε  την διεύθυνση του ηλ. ταχυδρομείου σου επιλέγοντας τον παρακάτω σύνδεσμο:\n\n";
  81.938 -["Please decide for each delegation to confirm or to revoke it!"] = "Παρακαλώ αποφάσισε για κάθε μια ανάθεση αν την επιβεβαιώνεις ή την ανακαλείς!";
  81.939 -["Please enter a meaningful title for your initiative!"] = false;
  81.940 -["Please enter the email reset code you have received:"] = "Παρακαλώ κάνε εισαγωγή του κωδικού επαναφοράς που έχεις λάβει:";
  81.941 -["Please enter the invite code you've received"] = false;
  81.942 -["Please enter your email address. This address will be used for automatic notifications (if you request them) and in case you've lost your password. This address will not be published. After registration you will receive an email with a confirmation link."] = "Παρακαλώ κάνε εισαγωγή της διεύθυνσης του ηλ. τχυδρομείου σου. Αυτή η διεύθυνση θα χρησιμοποιηθεί για αυτόματες ειδοποιήσεις (αν το επιλέξεις) και σε περίπτωση που έχεις χάσει τον κωδικό πρόσβασής σου. Αυτή η διεύθυνση δεν θα δημοσιευθεί. Μετά την εγγραφή θα λάβεις ένα email με έναν σύνδεσμο επιβεβαίωσης.";
  81.943 -["Please enter your email address. You will receive an email with your login name."] = "Παρακαλώ κάνε εισαγωγή της διεύθυνσης του ηλ. ταχυδρομείου. Θα λάβεις εκεί μήνυμα με το Όνομα Σύνδεσης.";
  81.944 -["Please enter your login name. You will receive an email with a link to reset your password."] = "Παρακαλώ κάνε εισαγωγή του ονόματος σύνδεσής σου. Θα λάβεις ένα email με ένα σύνδεσμο για να επαναφέρεις τον κωδικό πρόσβασής σου. Προσοχή στα κεφαλαία/πεζά γράμματα, έχουν σημασία.";
  81.945 -["Please enter your new password twice."] = "Παρακαλώ κάνε εισαγωγή  του νέο κωδικού πρόσβασης σου, δύο φορες:";
  81.946 -["Please select your preferred notification level"] = "Παρακαλώ επέλεξε το προτιμώμενο επίπεδο ειδοποίησης σου";
  81.947 -["Policies"] = "Κανονισμοί";
  81.948 -["Policy"] = "Κανονισμός";
  81.949 -["Policy '#{name}'"] = "Κανονισμός '#{name}'";
  81.950 -["Policy list"] = "Κατάλογος κανονισμών";
  81.951 -["Polling mode"] = "Τύπος δημοσκόπησης";
  81.952 +["Please also check your SPAM folder."] = "Παρακαλούμε έλεγξε επίσης το φάκελο SPAM/ανεπιθύμητων.";
  81.953 +["Please check date of birth"] = "Παρακαλούμε έλεγξε την ημερομηνία γέννησης";
  81.954 +["Please check the fiscal code (invalid format or does not match name, first name and/or date of birth)"] = "Παρακαλούμε έλεγξε το ΑΦΜ σου (έχει άκυρη μορφή ή δεν ταιριάζει με το όνομα, επώνυμο και/ή ημερομηνία γέννησης)";
  81.955 +["Please check the mobile phone number (invalid format)"] = "Παρακαλούμε έλεγξε τον αριθμό τηλεφώνου (άκυρη μορφή)";
  81.956 +["Please choose a login name. This name will not be shown to others and is used only by you to login into the system. The login name is case sensitive."] = "Παρακαλούμε επέλεξε ένα όνομα login. Το όνομα δεν θα εμφανίζεται σε τρίτους και θα χρησιμοποιείται μόνο για τη σύνδεση στο σύστημα. Το όνομα login αναγνωρίζει κεφαλαίους χαρακτήρες.";
  81.957 +["Please choose a member"] = "Παρακαλούμε επέλεξε ένα μέλος";
  81.958 +["Please choose a name, i.e. your real name or your nick name. This name will be shown to others to identify you."] = "Παρακαλούμε επέλεξε ένα όνομα π.χ. το πραγματικό σου ή ένα nickname. Με αυτό το όνομα θα εμφανίζεσαι στα άλλα μέλη.";
  81.959 +["Please choose a password and enter it twice. The password is case sensitive."] = "Παρακαλούμε επέλεξε έναν κωδικό και συμπλήρωσέ τον δύο φορές. Ο κωδικός αναγνωρίζει κεφαλαίους χαρακτήρες.";
  81.960 +["Please choose a policy"] = "Παρακαλούμε επέλεξε μια πολιτική";
  81.961 +["Please choose a policy for the new issue:"] = "Παρακαλούμε επέλεξε μια πολιτική για τη νέα θεματική:";
  81.962 +["Please choose an area name"] = "Παρακαλούμε επέλεξε ένα όνομα περιοχής";
  81.963 +["Please choose one project to vote for."] = "Παρακαλούμε επιλέξτε ένα project για ψηφοφορία.";
  81.964 +["Please choose two different versions of the draft to compare"] = "Παρακαλούμε επέλεξε δυο διαφορετικές εκδοχές της έκδοσης για σύγκριση";
  81.965 +["Please confirm your email address by clicking the following link:\n\n"] = "Παρακαλούμε επιβεβαίωσε την διεύθυνση email στον παρακάτω σύνδεσμο:\n\n";
  81.966 +["Please decide for each delegation to confirm or to revoke it!"] = "Παρακαλούμε επέλεξε για κάθε εξουσιοδότηση επιβαίωση ή απόσυρση!";
  81.967 +["Please enter a meaningful title for your initiative!"] = "Παρακαλούμε επέλεξε έναν τίτλο για την πρωτοβουλία σου!";
  81.968 +["Please enter the email reset code you have received:"] = "Παρακαλούμε συμπλήρωσε τον κωδικό επαναφοράς που έλαβες:";
  81.969 +["Please enter the invite code you've received"] = "Παρακαλούμε συμπλήρωσε τον κωδικό πρόσκλησης που έλαβες";
  81.970 +["Please enter your email address. This address will be used for automatic notifications (if you request them) and in case you've lost your password. This address will not be published. After registration you will receive an email with a confirmation link."] = "Παρακαλούμε συμπλήρωσε το email σου. Θα χρησιμοποιηθεί για αυτόματες ειδοποιήσεις (αν τις επιλέξεις) και σε περίπτωση που ξεχάσεις τον κωδικό σου. Το email δεν θα δημοσιοποιηθεί. Μετά την εγγραφή θα λάβεις ένα email με το link επιβεβαίωσης.";
  81.971 +["Please enter your email address. You will receive an email with your login name."] = "Παρακαλούμε συμπλήρωσε το email σου. Θα λάβεις ένα email με το όνομα login.";
  81.972 +["Please enter your login name. You will receive an email with a link to reset your password."] = "Παρακαλούμε συμπλήρωσε το  όνομα login. Θα λάβεις ένα email με το link για επαναφορά κωδικού.";
  81.973 +["Please enter your new password twice."] = "Παρακαλούμε συμπλήρωσε τον νέο κωδικό δύο φορές.";
  81.974 +["Please enter: #{field_name}"] = "Παρακαλούμε συμπλήρωσε: #{field_name}";
  81.975 +["Policies"] = "Πολιτικές";
  81.976 +["Policy"] = "Πολιτική";
  81.977 +["Policy '#{name}'"] = "Πολιτική '#{name}'";
  81.978 +["Policy list"] = "Λίστα πολιτικών";
  81.979 +["Polling mode"] = "Λειτουργία σφυγμομέτρησης";
  81.980  ["Population"] = "Πληθυσμός";
  81.981 -["Posts"] = "Δημοσιέυσεις";
  81.982 -["Preference comparison"] = false;
  81.983 -["Preference voting"] = false;
  81.984 +["Preference comparison"] = "Σύγκριση προτιμήσεων";
  81.985 +["Preference voting"] = "Ψηφοφορία προτιμήσεων";
  81.986  ["Preview"] = "Προεπισκόπηση";
  81.987 -["Preview of delegation"] = false;
  81.988 -["Preview of voting ballot"] = false;
  81.989 -["Private contacts"] = false;
  81.990 -["Profession"] = "Επάγγελμα";
  81.991 +["Preview of delegation"] = "Προεπισκόπηση εξουσιοδότησης";
  81.992 +["Preview of voting ballot"] = "Προεπισκόπηση ψήφου";
  81.993 +["Private contacts"] = "Ιδιωτικές επαφές";
  81.994 +["Proceed with registration"] = "Συνέχεια στην εγγραφή";
  81.995  ["Publish"] = "Δημοσίευση";
  81.996 -["Publish now"] = false;
  81.997 +["Publish now"] = "Δημοσίευση τώρα";
  81.998  ["Published"] = "Δημοσιευμένο";
  81.999 -["Published contacts"] = false;
 81.1000 -["Put **double asterisks** around a phrase to make it bold"] = false;
 81.1001 -["Put *asterisks* or around a phrase to make it italic"] = false;
 81.1002 -["Put a hypen (-) or asterisk (*) followed by a space in front of each item"] = false;
 81.1003 -["Quorums"] = false;
 81.1004 -["Reached #{sign}#{num}/#{den}"] = false;
 81.1005 -["Read and accept the terms and choose a password"] = false;
 81.1006 -["Read more"] = false;
 81.1007 -["Real name"] = "Πραγματικό όνομα";
 81.1008 -["Recover login name"] = false;
 81.1009 +["Published contacts"] = "Δημόσιες επαφές";
 81.1010 +["Put **double asterisks** around a phrase to make it bold"] = "Βάλε **διπλό αστερίσκο** στην φράση ώστε να τονιστεί";
 81.1011 +["Put *asterisks* or around a phrase to make it italic"] = "Βάλε *αστερίσκο* στην φράση ώστε να γίνει πλάγια";
 81.1012 +["Put a hypen (-) or asterisk (*) followed by a space in front of each item"] = "Προσθήκη παύλας (-) ή αστερίσκου (*) και ενός κενού πριν από κάθε αντικείμενο";
 81.1013 +["Quick guide"] = "Γρήγορος οδηγός";
 81.1014 +["Quorums"] = "Απαρτίες";
 81.1015 +["Reached #{sign}#{num}/#{den}"] = "Έφτασε #{sign}#{num}/#{den}";
 81.1016 +["Recover login name"] = "Ανέκτησε το όνομα login";
 81.1017 +["Redirect URI forbidden"] = "Δεν επιτρέπεται η ανακατεύθυνση URI";
 81.1018 +["Redirect URI invalid"] = "’κυρη ανακατεύθυνση URI";
 81.1019 +["Redirect URI or response type not registered"] = "Η ανακατεύθυνση URI ή ο τύπος απόκρισης δεν έχει εισαχθεί";
 81.1020  ["Register new member"] = "Εγγραφή νέου μέλους";
 81.1021 -["Registered members (#{count})"] = false;
 81.1022 -["Registration"] = "Εγγραφή";
 81.1023 -["Registration (step 1 of 3: Invite code)"] = "Εγγραφή (βήμα 1 από 3: Κωδικός πρόσκλησης)";
 81.1024 -["Registration (step 2 of 3: Personal information)"] = "Εγγραφή (βήμα 2 από 3: Προσωπικά στοιχεία)";
 81.1025 -["Registration (step 3 of 3: Terms of use and password)"] = "Εγγραφή (βήμα 3 από 3: Όροι χρήσης και κωδικός πρόσβασης)";
 81.1026 +["Register now"] = "Εγγραφή";
 81.1027 +["Registered members (#{count})"] = "Εγγεγραμμένα μέλη (#{count})";
 81.1028 +["Registration (step 1 of 3: Invite code)"] = "Εγγραφή (βήμα 1 από 3: κωδικός πρόσκλησης)";
 81.1029 +["Registration (step 2 of 3: Personal information)"] = "Εγγραφή (βήμα 2 από 3: προσωπικές πληροφορίες)";
 81.1030 +["Registration (step 3 of 3: Terms of use and password)"] = "Εγγραφή (βήμα 3 από 3: όροι χρήσης και κωδικός)";
 81.1031 +["Registration rejected"] = "Απορριπτέα εγγραφή";
 81.1032 +["Registration succeeded"] = "Επιτυχής εγγραφή";
 81.1033 +["Reject access privilege"] = "Απόρριψη δικαιώματος πρόσβασης";
 81.1034  ["Rejected"] = "Απορρίφθηκε";
 81.1035 -["Rejected (rank #{rank})"] = false;
 81.1036 -["Remove"] = "Αφαίρεση";
 81.1037 -["Remove an initiator from initiative"] = false;
 81.1038 -["Remove initiator"] = "Αφαίρεση εισηγητή";
 81.1039 -["Rendered"] = "Μορφοποιημένο";
 81.1040 -["Request email with login name"] = "Αίτηση email με το όνομα σύνδεσης";
 81.1041 -["Request password reset link"] = "Αίτηση συνδέσμου επαναφοράς κωδικού πρόσβασης";
 81.1042 -["Resend activation email to '#{email}'"] = "Επανάληψη αποστολής του email ενεργοποίησης στο '#{email}'";
 81.1043 +["Rejected (#{count})"] = "Απορριπτέα (#{count})";
 81.1044 +["Rejected (rank #{rank})"] = "Απορρίφθηκε (θέση #{rank})";
 81.1045 +["Rejected accreditation requests"] = "Απορριπτέα αιτήματα διαπίστευσης";
 81.1046 +["Rejected request"] = "Απορριπτέο αίτημα";
 81.1047 +["Rejected requests (#{count})"] = "Απορριπτέα αιτήματα (#{count})";
 81.1048 +["Rejected role accreditation requests"] = "Απορριπτέα αιτήματα διαπίστευσης ρόλων";
 81.1049 +["Remove"] = "Διαγραφή";
 81.1050 +["Remove an initiator from initiative"] = "Διαγραφή δημιουργού από την πρωτοβουλία";
 81.1051 +["Remove application"] = "Διαγραφή εφαρμογής";
 81.1052 +["Remove initiator"] = "Διαγραφή δημιουργού";
 81.1053 +["Removed attachments"] = "Διαγραφή συνημμένων";
 81.1054 +["Rendered"] = "Αποκατεστημένο";
 81.1055 +["Repeat new password"] = "Επανάληψη νέου κωδικού";
 81.1056 +["Repeat password"] = "Επανάληψη κωδικού";
 81.1057 +["Request email with login name"] = "Ζήτησε email με το όνομα login";
 81.1058 +["Request password reset link"] = "Ζήτησε link επαναφοράς κωδικού";
 81.1059 +["Request role account"] = "Αίτημα ρόλων λογαριασμού";
 81.1060 +["Request role accounts"] = "Αίτημα ρόλων λογαριασμών";
 81.1061 +["Requested at"] = "Αιτήθηκε στις";
 81.1062 +["Requested by account"] = "Αιτήματα ανά λογαριασμό";
 81.1063 +["Requested by:"] = "Αιτήθηκε από:";
 81.1064 +["Requested privileges:"] = "Αιτήματα προνομίων:";
 81.1065 +["Required majorities"] = "Απαιτούμενες πλειοψηφίες";
 81.1066 +["Resend activation email to '#{email}'"] = "Ξαναστείλε email ενεργοποίησης στο '#{email}'";
 81.1067  ["Reset code"] = "Κωδικός επαναφοράς";
 81.1068 -["Reset code is invalid!"] = "Ο κωδικός επαναφοράς δεν είναι έγκυρος";
 81.1069 +["Reset code is invalid!"] = "Ο κωδικός επαναφοράς είναι άκυρος!";
 81.1070  ["Reset password"] = "Επαναφορά κωδικού";
 81.1071 -["Revoke initiative"] = "Ανάκληση πρωτοβουλίας";
 81.1072 -["Revoke now"] = false;
 81.1073 -["Revoked (during admission)"] = false;
 81.1074 -["Revoked (during discussion)"] = false;
 81.1075 -["Revoked (during verification)"] = false;
 81.1076 -["Revoked at"] = "Ανακλήθηκε στις";
 81.1077 -["Rules of procedure"] = false;
 81.1078 +["Response type not allowed for given client"] = "Ο τύπος απόκρισης είναι άκυρος για τον πελάτη";
 81.1079 +["Results"] = "Αποτελέσματα";
 81.1080 +["Revoke"] = "Επαναφορά";
 81.1081 +["Revoke initiative"] = "Απόσυρση πρωτοβουλίας";
 81.1082 +["Revoke now"] = "Απόσυρση τώρα";
 81.1083 +["Revoked (during admission)"] = "Αποσύρθηκε (κατά την αποδοχή)";
 81.1084 +["Revoked (during discussion)"] = "Αποσύρθηκε (κατά την συζήτηση)";
 81.1085 +["Revoked (during verification)"] = "Αποσύρθηκε (κατά την επιβεβαίωση)";
 81.1086 +["Revoked at"] = "Αποσύρθηκε στις";
 81.1087 +["Role accounts"] = "Ρόλοι λογαριασμών";
 81.1088 +["Role management"] = "Διαχείρηση ρόλων";
 81.1089 +["Rules of procedure"] = "Κανόνες διαδικασίας";
 81.1090 +["SMS"] = "SMS";
 81.1091 +["Same "] = "Ίδια";
 81.1092 +["Same identification"] = "Ίδια ταυτόποίηση";
 81.1093 +["Same name already exists"] = "Το όνομα υπάρχει ήδη";
 81.1094 +["Saturday"] = "Σάββατο";
 81.1095  ["Save"] = "Αποθήκευση";
 81.1096 -["Save new password"] = false;
 81.1097 -["Save voting comment"] = false;
 81.1098 +["Save new password"] = "Αποθήκευση νέου κωδικού";
 81.1099 +["Save voting comment"] = "Αποθήκευση σχολίου ψηφοφορίας";
 81.1100  ["Saved contacts"] = "Αποθηκευμένες επαφές";
 81.1101  ["Schulze rank"] = "Κατάταξη Schulze";
 81.1102 -["Screen name"] = "Ονομασία";
 81.1103 +["Screen name"] = "Δημόσιο όνομα";
 81.1104  ["Search"] = "Αναζήτηση";
 81.1105 -["Search results for: '#{search}'"] = "Αποτελέσματα αναζήτησης για: '#{search}'";
 81.1106 -["Search term (only complete words)"] = "Όροι αναζήτησης (μόνο πλήρεις λέξεις)";
 81.1107 -["Select a notification level"] = false;
 81.1108 -["Select language \"#{langcode}\""] = "Επιλογή γλώσσας \"#{langcode}\"";
 81.1109 +["Search results for: '#{search}'"] = "Αποτελέσματα αναζήτησης: '#{search}'";
 81.1110 +["Second quorum"] = "Δεύτερη απαρτία";
 81.1111 +["Select unit first"] = "Αρχικά επιλέξτε κατηγορία";
 81.1112 +["Self registration"] = "Εγγραφή";
 81.1113 +["Self registration completed"] = "Η εγγραφή ολοκληρώθηκε";
 81.1114  ["Send invite?"] = "Αποστολή πρόσκλησης;";
 81.1115 -["Separate each paragraph with at least one blank line"] = false;
 81.1116 -["Set URL"] = "Ορισμός URL";
 81.1117 -["Set area delegation"] = false;
 81.1118 -["Set issue delegation"] = false;
 81.1119 -["Set unit delegation"] = "Ανάθεση ενότητας";
 81.1120 -["Should the initiator implement this suggestion?"] = false;
 81.1121 -["Show"] = "Προβολή";
 81.1122 -["Show all members"] = false;
 81.1123 -["Show full history"] = false;
 81.1124 -["Show full member list"] = false;
 81.1125 -["Show inactive"] = false;
 81.1126 -["Show less"] = false;
 81.1127 -["Show member"] = "Προβολή μέλους";
 81.1128 -["Show more and rate this"] = false;
 81.1129 -["Show my voting ballot"] = false;
 81.1130 -["Show older events"] = "Προβολή παλαιοτέρων συμβάντων";
 81.1131 -["Show policies in use"] = "Προβολή κανονισμών σε χρήση";
 81.1132 -["Show policies not in use"] = "Προβολή κανονισμών που δεν χρησιμοποιούνται";
 81.1133 -["Show voting ballot"] = false;
 81.1134 -["Sorry, but there is not confirmed email address for your account. Please contact the administrator or support."] = "Λυπούμαστε, αλλά δεν υπάρχει καμία επιβεβαιωμένη διεύθυνση email για τον λογαριασμό σου. Παρακαλούμε επικοινώνησε με τον διαχειριστή ή την υποστήριξη.";
 81.1135 -["Sorry, but you are currently not invited"] = "Λυπούμαστε, αλλά δεν έχεις προσκληθεί αυτή τη στιγμή";
 81.1136 -["Sorry, you have reached your personal flood limit. Please be slower..."] = "Λυπούμαστε, έχεις προσωπικά φτάσει το όριο ταχύτητας. Παρακαλώ χαλάρωσε...";
 81.1137 -["Sorry, your contingent for creating initiatives has been used up. Please try again later."] = "Λυπούμαστε, έχεις εξαντλήσει το όριο υποβολής πρωτοβουλιών για τώρα. Παρακαλώ ξαναδοκίμασε αργότερα.";
 81.1138 +["Separate each paragraph with at least one blank line"] = "Διαχώρισε κάθε παράγραφο με τουλάχιστον μια κενή γραμμή";
 81.1139 +["Set area delegation"] = "Όρισε εξουσιοδότηση περιοχής";
 81.1140 +["Set issue delegation"] = "Όρισε εξουσιοδότηση θεματικής";
 81.1141 +["Set unit delegation"] = "Όρισε εξουσιοδότηση κατηγορίας";
 81.1142 +["Settings"] = "Ρυθμίσεις";
 81.1143 +["Should the initiator implement this suggestion?"] = "Πρέπει αυτή την πρόταση να την υλοποιήσει ο δημιουργός;";
 81.1144 +["Show"] = "Εμφάνιση";
 81.1145 +["Show all members"] = "Εμφάνιση όλων των μελών";
 81.1146 +["Show full history"] = "Εμφάνιση συνολικού ιστορικού";
 81.1147 +["Show full member list"] = "Εμφάνιση όλης της λίστας μελών";
 81.1148 +["Show inactive"] = "Εμφάνιση ανενεργών";
 81.1149 +["Show older events"] = "Εμφάνιση παλαιότερων εκδηλώσεων";
 81.1150 +["Show policies in use"] = "Εμφάνιση χρησιμοποιούμενων πολιτικών";
 81.1151 +["Show policies not in use"] = "Εμφάνιση μη χρησιμοποιούμενων πολιτικών";
 81.1152 +["Show voting ballot"] = "Εμφάνιση ψήφου";
 81.1153 +["Skip admission phase and start issue in discussion phase (can only be started by members with polling privilege). If enabled, minimum and maximum admission time as well as 1st quorum needs to be cleared."] = "Παράλειψη φάσης υποβολής και έναρξη φάσης συζήτησης για το θέμα (είναι δυνατό μόνο για μέλη με προνόμια ψηφοφορίας). Αν ενεργοποιηθεί, ο μέγιστος και ελάχιστος χρόνος υποβολής και η πρώτη απαρτία πρέπει να διαγραφούν.";
 81.1154 +["Sorry, but there is not confirmed email address for your account. Please contact the administrator or support."] = "Συγνώμη, δεν υπάρχει επιβεβαιωμένο email για τον λογαριασμό σου. Παρακαλούμε επικοινώνησε με τον διαχειριστή ή την υποστήριξη.";
 81.1155 +["Sorry, but you are currently not invited"] = "Συγνώμη, δεν έχεις προσκαλεστεί";
 81.1156 +["Sorry, but you need to be at least 16 years old to participate. You can "] = "Συγνώμη, πρέπει να είσαι τουλάχιστον 16 χρονών για να συμμετέχεις. Μπορείς να ";
 81.1157 +["Sorry, you have reached your personal flood limit. Please be slower..."] = "Συγνώμη, έχεις εξαντλήσει το προσωπικό σου όριο δραστηριοτήτων. Παρακαλούμε να έιναι πιο αργός...";
 81.1158 +["Sorry, your contingent for creating initiatives has been used up. Please try again later."] = "Συγνώμη, το όριό σου για την δημιουργία πρωτοβουλίων έχει εξαντληθεί. Παρακαλούμε προσπάθησε αργότερα.";
 81.1159  ["Source"] = "Πηγή";
 81.1160 +["Start manual verification"] = "Έναρξη μη αυτόματης επιβεβαίωσης";
 81.1161 +["State of #{issue} changed to #{state} / #{initiative}"] = "Η κατάσταση της '#{issue}' άλλαξε σε #{state}";
 81.1162  ["Statement"] = "Δήλωση";
 81.1163  ["Status"] = "Κατάσταση";
 81.1164  ["Status quo: #{rank}"] = "Παρούσα κατάσταση: #{rank}";
 81.1165 -["Strict direct majority"] = "Αυστηρή άμεση πλειοψηφία";
 81.1166  ["Strict indirect majority"] = "Αυστηρή έμμεση πλειοψηφία";
 81.1167 -["Structured discussion"] = false;
 81.1168 -["Stylesheet URL has been updated"] = "Το URL του stylesheet ανανεώθηκε";
 81.1169 -["Subject area subscribed"] = false;
 81.1170 -["Subject areas"] = false;
 81.1171 -["Subscribed members (#{count})"] = false;
 81.1172 -["Subscription already removed"] = false;
 81.1173 -["Subscription removed"] = false;
 81.1174 -["Suggest no initiative"] = "Μην προτείνεις καμία πρωτοβουλία";
 81.1175 +["Subject"] = "Θέμα";
 81.1176 +["Subject areas"] = "Περιοχές θέματος";
 81.1177 +["Subscribed members (#{count})"] = "Εγγεγραμμένα μέλη (#{count})";
 81.1178 +["Suggest no initiative"] = "Καμία πρόταση πρωτοβουλίας";
 81.1179  ["Suggestion"] = "Πρόταση";
 81.1180 -["Suggestion currently implemented"] = "Η πρόταση υλοποιείται αυτή τη στιγμή";
 81.1181 -["Suggestion currently not implemented"] = "Η πρόταση δεν υλοποιείται αυτή τη στιγμή";
 81.1182 +["Suggestion currently implemented"] = "Πρόταση που υλοποιείται";
 81.1183 +["Suggestion currently not implemented"] = "Πρόταση που δεν υλοποιείται";
 81.1184  ["Suggestion does not exist anymore"] = "Η πρόταση δεν υπάρχει πια";
 81.1185 -["Suggestion for improvement #{id}"] = false;
 81.1186  ["Suggestions"] = "Προτάσεις";
 81.1187 -["Suggestions for improvement (#{count})"] = false;
 81.1188 -["Syntax help"] = "Βοήθεια σύνταξης";
 81.1189 -["System administration"] = false;
 81.1190 -["System settings"] = false;
 81.1191 -["Take a look through the existing issues. Maybe someone else started a debate on your topic (and you can join it) or the topic has been decided already in the past."] = false;
 81.1192 -["Tell others about this initiative:"] = false;
 81.1193 +["Suggestions for improvement (#{count})"] = "Προτάσεις βελτίωσης (#{count})";
 81.1194 +["Sunday"] = "Κυριακή";
 81.1195 +["Syntax help"] = "Βοήθεια συντακτικού";
 81.1196 +["System settings"] = "Ρυθμίσεις συστήματος";
 81.1197 +["Take a look through the existing issues. Maybe someone else started a debate on your topic (and you can join it) or the topic has been decided already in the past."] = "Κοίταξε τις υπάρχουσες θεματικές. Ίσως κάποιος έχει ξεκινήσει μια συζήτηση στο θέμα σου (και μπορείς να συμμετέχεις) ή το θέμα έχει ήδη αποφασιστεί.";
 81.1198 +["Tell others about this initiative:"] = "Μίλησε σε άλλους για την πρωτοβουλία:";
 81.1199  ["Terms of use"] = "Όροι χρήσης";
 81.1200 -["The code you've entered is invalid"] = "Ο κωδικός που έδωσες δεν είναι έγκυρος!";
 81.1201 -["The draft of this initiative has been updated!"] = "Το προσχέδιο της πρωτοβουλίας έχει ενημερωθεί!";
 81.1202 +["The code you've entered is invalid"] = "Ο κωδικός που συμπλήρωσες είναι άκυρος";
 81.1203 +["The draft of this initiative has been updated!"] = "Το προσχέδιο της πρωτοβουλίας έχει ανανεωθεί!";
 81.1204  ["The drafts do not differ"] = "Τα προσχέδια δεν διαφέρουν";
 81.1205 -["The initiative draft has been updated again in the meanwhile, support not updated!"] = false;
 81.1206 -["The initiative text has been updated"] = false;
 81.1207 -["The initiators suggest to support the following initiative:"] = "Οι εισηγητές προτείνουν να υποστηρίξεις την ακόλουθη πρωτοβουλία:";
 81.1208 -["The title is the figurehead of your iniative. It should be short but meaningful! As others identifies your initiative by this title, you cannot change it later!"] = false;
 81.1209 -["This delegation is suspended, because you voted yourself."] = false;
 81.1210 -["This email address is too short!"] = "Η διεύθυνση email είναι πολύ μικρή!";
 81.1211 +["The following settings for experimental features should only be changed with sufficient knowledge about the Schulze method and its implementation in LiquidFeedback."] = "Οι παρακάτω ρυθμίσεις πειραματικών επιλογών πρέπει να μεταβάλλονται μόνο με επαρκή γνώση της μεθόδου Schulze και της εφαρμογής της στο LiquidFeedback.";
 81.1212 +["The initiative draft has been updated again in the meanwhile, support not updated!"] = "Το προσχέδιο της πρωτοβουλίας έχει ανανεωθεί στο ενδιάμεσο, η υποστήριξη δεν ανανεώθηκε!";
 81.1213 +["The initiative text has been updated"] = "Το κείμενο της πρωτοβουλίας ανανεώθηκε";
 81.1214 +["The initiators suggest to support the following initiative:"] = "Οι δημιουργοί προτείνουν να υποστηρίξεις την πρωτοβουλία:";
 81.1215 +["The minimum absolute number of approval votes."] = "Ο ελάχιστος απόλυτος αριθμός των ψήφων αποδοχής.";
 81.1216 +["This delegation is suspended, because you voted yourself."] = "Αυτή η εξουσιοδότητη έληξε, γιατί ψήφισες μόνος σου.";
 81.1217 +["This email address already been used. Please check your inbox for an invitation or contact us."] = "Αυτό το email έχει ξαναχρησιμοποιηθεί. Παρακαλούμε έλεγξε στα εισερχόμενα για την πρόσκληση ή επικοινώνησε μαζί μας.";
 81.1218 +["This email address is too short!"] = "Αυτό το email είναι πολύ μικρό!";
 81.1219  ["This initiative"] = "Αυτή η πρωτοβουλία";
 81.1220 -["This initiative has been revoked at #{revoked} by:"] = false;
 81.1221 -["This initiative has not been admitted! It failed the 2nd quorum of #{quorum}."] = false;
 81.1222 -["This initiative is already revoked"] = "Αυτή η πρωτοβουλία έχει ήδη ανακληθεί";
 81.1223 -["This initiative is revoked"] = "Αυτή η πρωτοβουλία έχει ανακληθεί";
 81.1224 -["This invite key is connected with the following information:"] = "Αυτός ο κωδικός πρόσκλησης σχετίζεται με τα ακόλουθα στοιχεία:";
 81.1225 -["This is the only initiative in this issue, because nobody started a competing initiative."] = false;
 81.1226 -["This issue is already closed."] = "Αυτό το θέμα έχει ήδη κλείσει.";
 81.1227 -["This issue is already frozen."] = "Αυτό το θέμα έχει ήδη παγώσει.";
 81.1228 -["This issue is closed"] = false;
 81.1229 -["This login is already taken, please choose another one!"] = "Αυτό το όνομα σύνδεσης υπάρχει ήδη, παρακαλώ επέλεξε κάποιο άλλο!";
 81.1230 -["This login is too short!"] = "Αυτό το όνομα σύνδεσης είναι πολύ μικρό!";
 81.1231 -["This member account has been created at #{created}"] = "Ο λογαριασμός αυτού του μέλους δημιουργήθηκε στις #{created}.";
 81.1232 -["This member has rejected to become initiator of this initiative"] = "Το μέλος απέρριψε την πρόσκληση να γίνει εισηγητής αυτής της πρωτοβουλίας";
 81.1233 -["This member is already initiator of this initiative"] = "Αυτό το μέλος είναι ήδη εισηγητής αυτής της πρωτοβουλίας";
 81.1234 -["This member is already invited to become initiator of this initiative"] = "Αυτό το μέλος έχει ήδη προσκληθεί να γίνει εισηγητής αυτής της πρωτοβουλίας";
 81.1235 -["This member is currently participating in this issue."] = false;
 81.1236 -["This member is inactive"] = "Αυτό το μέλος είναι ανενεργό";
 81.1237 -["This member is locked"] = "Αυτό το μέλος είναι κλειδωμένο";
 81.1238 -["This member is participating, the remaining delegation chain is suspended during discussing."] = false;
 81.1239 -["This name is already taken, please choose another one!"] = "Αυτό το όνομα υπάρχει ήδη, παρακαλώ επιλέξτε κάποιο άλλο!";
 81.1240 -["This name is too short!"] = "Αυτό το όνομα είναι πολύ μικρό!";
 81.1241 -["This screen name is too short!"] = "Αυτό το όνομα είναι πολύ μικρό!";
 81.1242 -["This service is provided by:"] = "Η υπηρεσία παρέχεται από:";
 81.1243 -["This service is provided using the following software components:"] = "Η υπηρεσία αυτή έχει υλοποιηθεί με το ακόλουθο λογισμικό:";
 81.1244 -["This suggestion has been meanwhile deleted"] = "Εν τω μεταξύ, αυτή η πρόταση διαγράφθηκε";
 81.1245 -["This title is really too short!"] = "Αυτός ο τίτλος είναι πραγματικά πολύ μικρός!";
 81.1246 -["This title is too long!"] = false;
 81.1247 +["This initiative has been revoked at #{revoked} by:"] = "Αυτή η πρωτοβουλία αποσύρθηκε στις #{revoked} από:";
 81.1248 +["This initiative has not been admitted! It failed the 2nd quorum of #{quorum}."] = "Αυτή η πρωτοβουλία δεν εγινε δεκτή! Απέτυχε στην 2η απαρτία του #{quorum}.";
 81.1249 +["This initiative is already revoked"] = "Αυτή η πρωτοβουλία  έχει ήδη αποσυρθεί";
 81.1250 +["This initiative is revoked"] = "Αυτή η πρωτοβουλία αποσύρθηκε";
 81.1251 +["This initiative references a FirstLife object."] = "Αυτή η πρωτοβουλία αναφέρεται σε αντικείμενο FirstLife.";
 81.1252 +["This invite key is connected with the following information:"] = "Αυτό το κλειδί πρόσκλησης είναι συνδεδεμένο με τις πληροφορίες:";
 81.1253 +["This is the only initiative in this issue, because nobody started a competing initiative."] = "Αυτή είναι η μόνη πρωτοβουλία στην θεματική, γιατί κανείς δεν έχει αρχίσει εναλλακτική πρωτοβουλία.";
 81.1254 +["This issue is already closed."] = "Η θεματική έχει κλείσει.";
 81.1255 +["This issue is already frozen."] = "Η θεματική είναι σε παύση.";
 81.1256 +["This issue is closed"] = "Η θεματική έχει κλείσει";
 81.1257 +["This login is already taken, please choose another one!"] = "Το όνομα login έχει ήδη χρησιμοποιηθεί, παρακαλούμε διάλεξε άλλο!";
 81.1258 +["This login is too short!"] = "Το όνομα login είναι πολύ μικρό!";
 81.1259 +["This member account has been created at #{created}"] = "Ο λογαριασμός μέλους δημιουργήθηκε στις #{created}";
 81.1260 +["This member has rejected to become initiator of this initiative"] = "Το μέλος δεν δέχτηκε να γίνει δημιουργός της πρωτοβουλίας";
 81.1261 +["This member is already initiator of this initiative"] = "Το μέλος είναι ήδη δημιουργός της πρωτοβουλίας";
 81.1262 +["This member is already invited to become initiator of this initiative"] = "Το μέλος έχει ήδη προσκληθεί να γίνει δημιουργός της πρωτοβουλίας";
 81.1263 +["This member is currently participating in this issue."] = "Το μέλος ήδη συμμετέχει στην θεματική";
 81.1264 +["This member is inactive"] = "Το μέλος είναι ανενεργό";
 81.1265 +["This member is locked"] = "Το μέλος έχει μπλοκαριστεί";
 81.1266 +["This member is participating, the remaining delegation chain is suspended during discussing."] = "Το μέλος συμμετέχει, η υπόλοιπη αλυσίδα εξουσιοδότησης είναι σε παύση κατά την συζήτηση.";
 81.1267 +["This name is already taken, please choose another one!"] = "Το όνομα έχει ήδη χρησιμοποιηθεί, παρακαλούμε διάλεξε ένα άλλο!";
 81.1268 +["This name is too short!"] = "Το όνομα είναι πολύ μικρό!";
 81.1269 +["This screen name is too short!"] = "Το όνομα που θα εμφανίζεται είναι πολύ μικρό!";
 81.1270 +["This service is provided by:"] = "Η υπηρεσία προσφέρεται από:";
 81.1271 +["This service is provided using the following software components:"] = "Η υπηρεσία προσφέρεται με την χρήση των παρακάτω components λογισμικού:";
 81.1272 +["This suggestion has been meanwhile deleted"] = "Η πρόταση στο ενδιάμεσο διαγράφηκε";
 81.1273 +["This title is really too short!"] = "Ο τίτλος είναι πολύ μικρός!";
 81.1274 +["This title is too long!"] = "Ο τίτλος είναι πολύ μεγάλος!";
 81.1275 +["Thursday"] = "Πέμπτη";
 81.1276  ["Title"] = "Τίτλος";
 81.1277 -["To create a competing initiative see below."] = false;
 81.1278 -["Trustee has no voting right in this unit"] = "Ο αντιπρόσωπος δεν έχει δικαίωμα ψήφου σε αυτή την ενότητα";
 81.1279 -["Underline main headlines with ==="] = false;
 81.1280 -["Underline sub headlines with ---"] = false;
 81.1281 -["Unit"] = "Ενότητα";
 81.1282 -["Unit delegation"] = "Ανάθεση ενότητας";
 81.1283 -["Unit list"] = "Κατάλογος ενοτήτων";
 81.1284 -["Unknown author"] = "Άγνωστος συντάκτης";
 81.1285 -["Updated drafts"] = "Νέα προσχέδια";
 81.1286 -["Upload avatar/photo"] = "Ανέβασμα εικόνας/φωτό";
 81.1287 -["Use [Text](http://example.com/) for links"] = false;
 81.1288 +["Trustee has no voting right in this unit"] = "Ο επιμελητής δεν έχει δικαίωμα ψήφου σε αυτή την κατηγορία";
 81.1289 +["Tuesday"] = "Τρίτη";
 81.1290 +["Underline main headlines with ==="] = "Υπογράμμισε τις βασικές επικεφαλίδες με ===";
 81.1291 +["Underline sub headlines with ---"] = "Υπογράμμισε τις δευτερεύουσες επικεφαλίδες με ---";
 81.1292 +["Unit"] = "Κατηγορία";
 81.1293 +["Unit delegation"] = "Εξουσιοδότηση κατηγορίας";
 81.1294 +["Unit list"] = "Λίστα κατηγορίας";
 81.1295 +["Unknown author"] = "Άγνωστος συγγραφέας";
 81.1296 +["Upload avatar/photo"] = "Ανέβασε avatar/φωτογραφία";
 81.1297 +["Use [Text](http://example.com/) for links"] = "Χρησιμοποίησε το [Text](http://example.com/) για τον σύνδεσμο";
 81.1298  ["Use terms"] = "Όροι χρήσης";
 81.1299 -["Verification"] = false;
 81.1300 -["Verification #{time_info}"] = false;
 81.1301 -["Verification started"] = "Η επιβεβαίωση άρχισε";
 81.1302 -["Verification time"] = "Διάρκεια επιβεβαίωσης";
 81.1303 -["Vote delegation"] = false;
 81.1304 -["Voted no"] = "Ψήφισε όχι";
 81.1305 -["Voted yes"] = "Ψήφισε ναι";
 81.1306 +["Used by account"] = "Χρησιμοποιείται από το λογαριασμό";
 81.1307 +["User accounts"] = "Λογαριασμοί χρηστών";
 81.1308 +["User management"] = "Διαχείριση χρηστών";
 81.1309 +["User with same name already exists (#{count})"] = "Υπάρχει χρήστης με το ίδιο όνομα (#{count})";
 81.1310 +["Value"] = "Τιμή";
 81.1311 +["Verfication time"] = "Χρόνος επιβεβαίωσης";
 81.1312 +["Verification"] = "Επιβεβαίωση";
 81.1313 +["Verification #{time_info}"] = "Επιβεβαίωση #{time_info}";
 81.1314 +["Verification data"] = "Δεδομένα επιβεβαίωσης";
 81.1315 +["Verification phase"] = "Φάση επιβεβαίωσης";
 81.1316 +["Verification requests"] = "Αιτήματα επιβεβαίωσης";
 81.1317 +["Verification started"] = "Αρχή επιβεβαίωσης";
 81.1318 +["Verification time"] = "Χρόνος επιβεβαίωσης";
 81.1319 +["Verified at"] = "Επιβεβαιώθηκε στις";
 81.1320 +["Verified by"] = "Επιβεβαιώθηκε από";
 81.1321 +["Verified by account"] = "Επιβεβαιώθηκε από το λογαριασμό";
 81.1322 +["Verify account"] = "Επιβεβαίωση λογαριασμού";
 81.1323 +["Vote delegation"] = "Εξουσιοδότηση ψήφου";
 81.1324  ["Voters"] = "Ψηφοφόροι";
 81.1325  ["Voting"] = "Ψηφοφορία";
 81.1326 -["Voting #{time_info}"] = false;
 81.1327 +["Voting #{time_info}"] = "Ψηφοφορία #{time_info}";
 81.1328  ["Voting comment"] = "Σχόλιο ψήφου";
 81.1329 -["Voting comment (last updated: #{timestamp})"] = "Σχόλια ψήφου (τελευταία ενημέρωση: #{timestamp})";
 81.1330 -["Voting comment (optional)"] = "Σχόλια ψήφου (προαιρετικό)";
 81.1331 -["Voting comment available"] = "Σχόλια ψήφου διαθέσιμα";
 81.1332 -["Voting for this issue has already begun."] = "Η ψηφοφορία για αυτό το θέμα έχει ξεκινήσει ήδη.";
 81.1333 -["Voting has not started yet."] = "Η ψηφοφορία δεν ξεκίνησε ακόμα.";
 81.1334 -["Voting started"] = "Η ψηφοφορία ξεκίνησε";
 81.1335 -["Voting time"] = "Διάρκεια ψηφοφορίας";
 81.1336 -["We couldn't deliver a confirmation mail to this address. Please check entered email address."] = "Δεν καταφέραμε να στείλουμε μήνυμα επιβεβαίωσης σ' αυτήν την διεύθυνση email. Παρακαλώ έλεγξε την διεύθυνση email που έχεις εισάγει.";
 81.1337 -["We have sent an email with activation link already in the last hour. Please try again later."] = "Έχουμε ήδη στήλει μήνυμα με σύνδεσμο ενεργοποίησης μέσα στην τελευταία ώρα. Παρακαλώ ξαναδοκίμασε αργότερα.";
 81.1338 -["Website"] = "Ιστοσελίδα";
 81.1339 -["What can I do here?"] = false;
 81.1340 -["What this member is currently supporting"] = false;
 81.1341 -["Wiki engine"] = "Μηχανισμός wiki";
 81.1342 -["Wiki engine for statement"] = "Μηχανισμός wiki για την δήλωση";
 81.1343 -["Withdraw membership"] = "Απόσυρση συμμετοχής";
 81.1344 +["Voting comment (last updated: #{timestamp})"] = "Σχόλιο ψήφου (τελευταία ενημέρωση: #{timestamp})";
 81.1345 +["Voting comment (optional)"] = "Σχόλιο ψήφου (προαιρετικό)";
 81.1346 +["Voting comment available"] = "Διαθέσιμο σχόλιο ψήφου";
 81.1347 +["Voting for this issue has already begun."] = "Η ψηφοφορία για την θεματική έχει αρχίσει.";
 81.1348 +["Voting has not started yet."] = "Η ψηφοφορία δεν έχει αρχίσει ακόμα";
 81.1349 +["Voting phase"] = "Φάση ψηφοφορίας";
 81.1350 +["Voting started"] = "Αρχή ψηφοφορίας";
 81.1351 +["Voting time"] = "Χρόνος ψηφοφορίας";
 81.1352 +["Warning: Untrusted third party application."] = "Προειδοποίηση: μη-έμπιστη εφαρμογή.";
 81.1353 +["We couldn't deliver a confirmation mail to this address. Please check entered email address."] = "Δεν μπορέσαμε να παραδώσουμε το mail επιβεβαίωσης στην διεύθυνσή σου. Παρακαλούμε έλεγξε την διεύθυνση email που συμπλήρωσες.";
 81.1354 +["We have sent an email with activation link already in the last hour. Please try again later."] = "Σου στείλαμε ένα mail με το link ενεργοποίησης την προηγούμενη ώρα. Παρακαλούμε προσπάθησε ξανά αργότερα.";
 81.1355 +["We have sent you an invitation email to finish the account setup."] = "Σου στείλαμε email πρόσκληση για να ολοκληρώσεις τη διαδικασία εγγραφής.";
 81.1356 +["Wednesday"] = "Τετάρτη";
 81.1357 +["What can I do here?"] = "Τι μπορώ να κάνω εδώ;";
 81.1358 +["What this member is currently supporting"] = "Τι υποστηρίζει τώρα αυτό το μέλος;";
 81.1359 +["Wiki engine"] = "Wiki engine";
 81.1360 +["Wiki engine for statement"] = "Wiki engine για προτάσεις";
 81.1361  ["Yes"] = "Ναι";
 81.1362 -["Yes, it's implemented"] = false;
 81.1363 -["You already voted this issue"] = "Έχεις ήδη ψηφίσει για αυτό το θέμα";
 81.1364 -["You are already initiator"] = "Είσαιε ήδη εισηγητής";
 81.1365 -["You are already supporting the latest draft"] = "Ήδη υποστηρίζεις το τελευταίο προσχέδιο";
 81.1366 -["You are currently not invited to any initiative."] = "Δεν είσαι προσκεκλημένος σε κάποια πρωτοβουλία προς το παρόν.";
 81.1367 -["You are currently not supporting this initiative directly. By adding suggestions to this initiative you will automatically become a potential supporter."] = "Δεν υποστηρίζεις άμεσα αυτή την πρωτοβουλία προς το παρόν. Κάνοντας προτάσεις θα γίνεις αυτόματα δυνητικός υποστηρικτής.";
 81.1368 -["You are initiator of this initiative"] = "Είσαι εισηγητής αυτής της πρωτοβουλίας";
 81.1369 -["You are interested in this issue"] = "Το θέμα σε ενδιαφέρει";
 81.1370 -["You are invited to #{count} initiative(s)"] = "Είσαι προσκεκλημένος σε #{count} πρωτοβουλία/ες";
 81.1371 -["You are invited to LiquidFeedback. To register please click the following link:\n\n"] = "Σε προσκάλεσαν στο Liquid Feedback. Κάνε κλικ στον παρακάτω σύνδεσμο για να εγγραφείς:";
 81.1372 -["You are invited to become initiator of '#{initiative_name}'"] = false;
 81.1373 -["You are invited to become initiator of this initiative"] = false;
 81.1374 -["You are member"] = "Είσαι μέλος";
 81.1375 -["You are not eligible to participate"] = false;
 81.1376 -["You are not entitled to vote in this unit"] = false;
 81.1377 -["You are not participating in any of the #{count} areas in this unit"] = "Δεν συμμετέχεις σε κανέναν από τους #{count} τομείς αυτής της ενότητας";
 81.1378 -["You are not participating in the only area of the unit"] = "Δεν συμμετέχεις στον μοναδικό τομέα αυτής της ενότητας";
 81.1379 -["You are now initiator of this initiative"] = "Είσαι τώρα εισηγητής αυτής της πρωτοβουλίας";
 81.1380 -["You are subscribed for this subject area"] = false;
 81.1381 +["Yes, it's implemented"] = "Ναι, έχει υλοποιηθεί";
 81.1382 +["You already voted this issue"] = "Έχεις ψηφίσει για αυτή την θεματική";
 81.1383 +["You are already initiator"] = "Είσαι ήδη δημιουργός";
 81.1384 +["You are already supporting the latest draft"] = "Υποστηρίζεις ήδη την τελευταία έκδοση";
 81.1385 +["You are currently not invited to any initiative."] = "Δεν έχεις προσκαλεστεί σε κάποια πρωτοβουλία.";
 81.1386 +["You are currently not supporting this initiative directly. By adding suggestions to this initiative you will automatically become a potential supporter."] = "Δεν υποστηρίζεις την πρωτοβουλία άμεσα. Με την προσθήκη προτάσεων στην πρωτοβουλία θα γίνεις αυτομάτως δυνητικός υποστηρικτής.";
 81.1387 +["You are initiator of this initiative"] = "Είσαι δημιουργός της πρωτοβουλίας";
 81.1388 +["You are interested in this issue"] = "Ενδιαφέρεσαι για την θεματική";
 81.1389 +["You are invited to LiquidFeedback. To register please click the following link:\n\n"] = "Προσκαλέστηκες στο  LiquidFeedback. Για εγγραφή παρακαλούμε ακολούθησε το link:\n\n";
 81.1390 +["You are invited to become initiator of '#{initiative_name}'"] = "Προσκαλέστηκες να γίνεις δημιουργός στο '#{initiative_name}'";
 81.1391 +["You are invited to become initiator of this initiative"] = "Προσκαλέστηκες να γίνεις δημιουργός στην πρωτοβουλία";
 81.1392 +["You are not entitled to vote in this unit"] = "Δεν έχεις δικαίωμα να ψηφίσεις σε αυτή την κατηγορία";
 81.1393 +["You are now initiator of this initiative"] = "Είσαι τώρα δημιουργός της πρωτοβουλίας";
 81.1394 +["You are receiving updates by email for this subject area"] = "Θα λαμβάνεις ενημερώσεις μέσω email για αυτή την περιοχή";
 81.1395  ["You are supporter"] = "Είσαι υποστηρικτής";
 81.1396 -["You are supporting this initiative"] = false;
 81.1397 -["You blocked this member (i.e. you will not be notified about this members actions)"] = false;
 81.1398 -["You can change your email address only once per hour. Please try again later."] = "Μπορείς να αλλάξεις την διεύθυνση του email σου μόνο μια φορά ανά ώρα. Παρακαλώ προσπάθησε ξανά αργότερα.";
 81.1399 -["You can change your text again anytime during admission and discussion phase"] = false;
 81.1400 -["You can choose only members which you have been saved as contact before."] = false;
 81.1401 -["You can't suggest the initiative you are revoking"] = "Δεν μπορείς να προτείνεις την πρωτοβουλία που ανακάλεσες";
 81.1402 -["You cannot change your text again later, because this issue is already in verfication phase!"] = false;
 81.1403 -["You delegated this issue"] = false;
 81.1404 -["You delegated this organizational unit"] = false;
 81.1405 -["You delegated this subject area"] = false;
 81.1406 -["You delegated this unit"] = false;
 81.1407 -["You didn't confirm your email address '#{email}' within 7 days."] = "Δεν επιβεβαίωσες την διεύθυνση του email σου ('#{email}') μέσα σε 7 ημέρες.";
 81.1408 -["You didn't confirm your email address '#{email}'. You have received an email with an activation link."] = "Δεν έχεις επιβεβαιώσει την διεύθυνση του email σου ('#{email}'). Έχεις λάβει ένα email με ένα σύνδεσμο επιβεβαίωσης.";
 81.1409 -["You didn't save any member as contact yet."] = "Δεν έχεις αποθηκεύσει κανένα μέλος στις επαφές σου ακόμα!";
 81.1410 -["You didn't set the level of notifications you like to receive"] = "Δεν έχεις ορίσει το επίπεδο ειδοποιήσεων που θέλεις να λαμβάνεις.";
 81.1411 -["You do not like to vote this issue (yourself)"] = false;
 81.1412 -["You have been voted"] = false;
 81.1413 -["You have not voted #{count} issue(s) you were interested in"] = "Δεν έχεις ψηφίσει σε #{count} θέμα(τα) που σε ενδιέφεραν";
 81.1414 -["You have to mark 'Are you sure' to revoke!"] = "Πρέπει να μαρκάρεις το 'Είστε σίγουροι;' για να ανακαλέσεις";
 81.1415 -["You have voted"] = false;
 81.1416 -["You have voted via delegation"] = false;
 81.1417 -["You may choose one of the ongoing initiatives you are currently supporting"] = false;
 81.1418 -["You need to confirm to deactivate!"] = false;
 81.1419 -["You refused to become initiator of this initiative"] = false;
 81.1420 -["You saved this member as contact (i.e. to use as delegatee)"] = false;
 81.1421 -["You saved this member as contact (i.e. to use as delegatee) and others can see it"] = false;
 81.1422 -["You've successfully registered and you can login now with your login and password!"] = "Η εγγραφή σου ήταν επιτυχής. Μπορείς πλέον να συνδεθείς με το όνομα σύνδεσης και τον κωδικό πρόσβασής σου!";
 81.1423 -["Your avatar is a small photo, which will be shown always next to your name."] = false;
 81.1424 -["Your choice"] = false;
 81.1425 -["Your email address has been changed, please check for confirmation email with activation link!"] = "Η διεύθυνση email σου άλλαξε, παρακαλώ έλεγξε τα εισερχόμενά σου για το email επιβεβαίωσης και ενεργοποίησης!";
 81.1426 -["Your login has been changed to '#{login}'"] = "Το όνομα σύνδεσής σου άλλαξε σε: '#{login}'";
 81.1427 -["Your name has been changed"] = "Το όνομά σου άλλαξε";
 81.1428 -["Your page has been updated"] = "Η σελίδα σου ανανεώθηκε";
 81.1429 -["Your password has been updated successfully"] = "Ο κωδικός πρόσβασής σου ανανεώθηκε επιτυχώς";
 81.1430 -["Your photo will be shown in your profile."] = false;
 81.1431 -["Your rating has been deleted"] = "Η βαθμολογία σου διαγράφηκε";
 81.1432 -["Your rating has been updated"] = "Η βαθμολογία σου ενημερώθηκε";
 81.1433 -["Your request has been processed."] = "Το αίτημά σου επεξεργάστηκε.";
 81.1434 -["Your suggestion has been added"] = "Η πρόταση σου προστέθηκε";
 81.1435 -["Your support has been updated to the latest draft"] = "Η υποστήριξή σου έχει ενημερωθεί επί του τελευταίου σχεδίου";
 81.1436 -["Your vote has been discarded. Delegation rules apply if set."] = "Η ψήφος σου έχει ανακληθεί. Οι κανόνες ανάθεσης ισχύουν αν έχουν οριστεί.";
 81.1437 +["You are supporter of this initiative"] = "Είσαι υποστηρικτής της πρωτοβουλίας";
 81.1438 +["You are supporting this initiative"] = "Είσαι υποστηρικτής της πρωτοβουλίας";
 81.1439 +["You blocked this member (i.e. you will not be notified about this members actions)"] = "Μπλόκαρες αυτό το μέλος (π.χ. δεν θα ενημερώνεσαι για τη δραστηριότητα του μέλους)";
 81.1440 +["You can change your email address only once per hour. Please try again later."] = "Μπορείς να αλλάξεις το email σου μόνο μια φορά την ώρα. Παρακαλούμε προσπάθησε ξανά αργότερα.";
 81.1441 +["You can change your text again anytime during admission and discussion phase"] = "Μπορείς να αλλάξεις το κείμενο κατά τη διάρκεια της φάσης αποδοχής και συζήτησης";
 81.1442 +["You can choose only members which you have been saved as contact before."] = "Μπορείς να διαλέξεις μόνο μέλη που έχεις αποθηκεύσει ως επαφές.";
 81.1443 +["You can't suggest the initiative you are revoking"] = "Δεν μπορείς να προτείνεις την πρωτοβουλία που αποσύρεις";
 81.1444 +["You cannot change your text again later, because this issue is already in verfication phase!"] = "Δεν μπορείς να αλλάξεις ξανά το κείμενο, γιατί η θεματική είναι σε φάση επιβεβαίωσης!";
 81.1445 +["You delegated this issue"] = "Έχεις εξουσιοδοτήσει την θεματική";
 81.1446 +["You delegated this organizational unit"] = "Έχεις εξουσιοδοτήσει την οργανωτική μονάδα";
 81.1447 +["You delegated this subject area"] = "Έχεις εξουσιοδοτήσει την περιοχή";
 81.1448 +["You delegated this unit"] = "Έχεις εξουσιοδοτήσει την οργανωτική μονάδα";
 81.1449 +["You didn't confirm your email address '#{email}' within 7 days."] = "Δεν επιβεβαίωσες το email '#{email}' μέσα σε 7 μέρες.";
 81.1450 +["You didn't confirm your email address '#{email}'. You have received an email with an activation link."] = "Δεν επιβεβαίωσες το email '#{email}'. Έχεις λάβει email με το link επιβεβαίωσης.";
 81.1451 +["You didn't save any member as contact yet."] = "Δεν έχεις αποθηκεύσει κανένα μέλος στις επαφές σου.";
 81.1452 +["You didn't set the level of notifications you like to receive"] = "Δεν έχεις ορίσει τις ειδοποιήσεις που επιθυμείς να λαμβάνεις";
 81.1453 +["You do not like to vote this issue (yourself)"] = "Δεν επιθυμείς να ψηφίσεις για την θεματική (αυτοπροσώπως)";
 81.1454 +["You have accepted access privileges for the following account:"] = "Έχουν αποδεχτεί προνόμια πρόσβασης στο λογαριασμό:";
 81.1455 +["You have been granted access privileges for the following account:"] = "Έχουν παραχωρηθεί προνόμια πρόσβασης στο λογαριασμό:";
 81.1456 +["You have been granted access to the following account(s):"] = "Έχει παραχωρηθεί πρόσβασης στους λογαριασμούς:";
 81.1457 +["You have been subscribed for update emails about this subject area"] = "Έχεις εγγραφεί να λαμβάνεις ενημερωτικά emails για την περιοχή";
 81.1458 +["You have rejected access privileges for the following account:"] = "Έχουν απορριφθεί τα προνόμια πρόσβασης για τον λογαριασμό:";
 81.1459 +["You have to mark 'Are you sure' to revoke!"] = "Πρέπει να επιλέξεις 'Είμαι σίγουρος' για απόσυρση!";
 81.1460 +["You have voted"] = "Έχεις ψηφισει";
 81.1461 +["You have voted via delegation"] = "Έχεις ψηφισει μέσω εξουσιοδότησης";
 81.1462 +["You may choose one of the ongoing initiatives you are currently supporting"] = "Μπορείς να διαλέξεις μια από τις εξερχόμενες πρωτοβουλίες που υποστηρίζεις";
 81.1463 +["You need to confirm to deactivate!"] = "Πρέπει να επιβεβαιώσεις την απενεργοποίηση!";
 81.1464 +["You refused to become initiator of this initiative"] = "Αρνήθηκες να γίνεις δημιουργός της πρωτοβουλίας";
 81.1465 +["You saved this member as contact (i.e. to use as delegatee)"] = "Αποθήκευσες το μέλος ως επαφή (π.χ. μπορείς να το εξουσιοδοτήσεις)";
 81.1466 +["You saved this member as contact (i.e. to use as delegatee) and others can see it"] = "Αποθήκευσες το μέλος ως επαφή (π.χ. μπορείς να το εξουσιοδοτήσεις) και να είναι δημόσιο";
 81.1467 +["You should receive a PIN code via SMS shortly. Please enter the PIN."] = "Θα λάβεις σύντομα έναν κωδικό PIN μέσω SMS. Παρακαλούμε συμπλήρωσε το PIN.";
 81.1468 +["You will no longer receive update emails about this subject area"] = "Δεν θα λαμβάνεις πια ενημερωτικά emails για την θεματική περιοχή";
 81.1469 +["You will receive status update notification on issue phase changes. Additionally you can subscribe for a regular digest including updates on initiative drafts and new suggestions."] = "Θα λάβεις ειδοποίηση ενημέρωσης της κατάστασης πάνω στην θεματική. Επιπλέον μπορείς να εγγραφείς να λαμβάνεις τακτική σύνοψη με τις ενημερώσεις στα προσχέδια της πρωτοβουλίας και σε νέες προτάσεις.";
 81.1470 +["Your avatar is a small photo, which will be shown always next to your name."] = "Το avatar σου είναι η φωτογραφία που θα εμφανίζεται πάντα δίπλα στο όνομά σου.";
 81.1471 +["Your choice"] = "Η επιλογή σου";
 81.1472 +["Your email address has been changed, please check for confirmation email with activation link!"] = "Το email σου έχει αλλαχθεί, παρακαλούμε έλεγξε για το mail επιβεβαίωσης με το link ενεργοποίησης!";
 81.1473 +["Your login has been changed to '#{login}'"] = "Το όνομα login άλλαξε σε '#{login}'";
 81.1474 +["Your name has been changed"] = "Το όνομα login άλλαξε.";
 81.1475 +["Your page has been updated"] = "Η σελίδα σου ενημερώθηκε";
 81.1476 +["Your password has been updated successfully"] = "Ο κωδικός σου ενημερώθηκε επιτυχώς";
 81.1477 +["Your photo will be shown in your profile."] = "Η φωτογραφία σου θα εμφανίζεται στο προφίλ σου";
 81.1478 +["Your request has been processed."] = "Το αίτημά σου επεξεργάζεται";
 81.1479 +["Your suggestion has been added"] = "Η πρότασή σου προστέθηκε";
 81.1480 +["Your support has been updated to the latest draft"] = "Η υποστήριξή σου ενημερώθηκε στην τελευταία έκδοση";
 81.1481 +["Your vote has been discarded. Delegation rules apply if set."] = "Η ψήφος σου απορρίφθηκε. Οι κανόνες εξουσιοδότησης θα εφαρμοστούν εφόσον οριστούν.";
 81.1482  ["[Name of Language]"] = "Ελληνικά";
 81.1483 -["[Not public]"] = false;
 81.1484 -["[calculating]"] = false;
 81.1485 -["[event mail]       URL: #{url}"] = "         URL: #{url}";
 81.1486 -["[event mail]      Area: #{name}"] = "      Τομέας: #{name}";
 81.1487 -["[event mail]      Unit: #{name}"] = "     Ενότητα: #{name}";
 81.1488 -["[event mail]     Event: #{event}"] = "      Συμβάν: #{event}";
 81.1489 -["[event mail]     Issue: ##{id}"] = "        Θέμα: ##{id}";
 81.1490 -["[event mail]     Phase: #{phase}"] = "      Στάδιο: #{phase}";
 81.1491 -["[event mail]    Policy: #{policy}"] = "  Κανονισμός: #{policy}";
 81.1492 -["[introduction] iniatives and issues"] = false;
 81.1493 -["[introduction] organizational units"] = false;
 81.1494 -["[introduction] phase 1 admission"] = false;
 81.1495 -["[introduction] phase 2 discussion"] = false;
 81.1496 -["[introduction] phase 3 verification"] = false;
 81.1497 -["[introduction] phase 4 voting"] = false;
 81.1498 -["[introduction] preference voting"] = false;
 81.1499 -["[introduction] rules of procedure"] = false;
 81.1500 -["[introduction] subject areas"] = false;
 81.1501 -["[introduction] vote delegation"] = false;
 81.1502 +["[Not public]"] = "[μη δημόσιο]";
 81.1503 +["[calculating]"] = "[υπολογισμός]";
 81.1504 +["[event mail]       URL: #{url}"] = "          URL: #{url}";
 81.1505 +["[event mail]      Area: #{name}"] = "Περιοχή θεματικής: #{name}";
 81.1506 +["[event mail]      Unit: #{name}"] = "      Κατηγορία: #{name}";
 81.1507 +["[event mail]     Issue: ##{id}"] = "     Θεματική: ##{id}";
 81.1508 +["[event mail]     Phase: #{phase}"] = "         Φάση: #{phase}";
 81.1509 +["[event mail]    Policy: #{policy}"] = "    Πολιτική: #{policy}";
 81.1510 +["[introduction] iniatives and issues"] = "Το LiquidFeedback δεν είναι έρευνα, δεν περιλαμβάνει προκαθορισμένες ερωτήσεις. Αντίθετα, κάθε συμμετέχων μπορεί να δημοσιεύει νέες πρωτοβουλίες προσθέτωντας μια πρόταση και/ή αιτιολογηση. Όταν η πρωτοβουλία δημοσιευθεί, όλοι οι συμμετέχοντες μπορούν να δημιουργήσουν εναλλακτικές πρωτοβουλίες με αντι-προτάσεις και/ή αιτιολόγηση. Μια ομάδα πρωτοβουλίων που συμφωνούν δημιουργούν μια θεματική. Οι θεματικές στο LiquidFeedback αριθμούνται με # (π.χ. # 123) ενώ οι πρωτοβουλίες αριθμούνται με \"i\" (i456). Εν συντομία: Μια θεματική μπορεί να περιλαμβάνει πολλαπλές πρωτοβουλίες. Μόνο μια πρωτοβουλία μπορεί να κερδίσει.";
 81.1511 +["[introduction] organizational units"] = "Οι συμμετέχοντες μπορούν να ανατεθούν σε διαφορετικές μονάδες επιτρέποντας συζητήσεις και αποφάσεις από υπο-ομάδες συμμετεχόντων (π.χ. από μέλη μιας υποδιεύθυνσης ενός οργανισμού). Κάθε οργανωτική μονάδα μπορεί να έχει τις δικές τις θεματικές περιοχές.";
 81.1512 +["[introduction] phase 1 admission"] = "Καθώς κάθε συμμετέχοντας μπορεί να ξεκινήσει μια νέα θεματική στο  LiquidFeedback, δεν θα είναι όλες ενδιαφέρουσες για έναν ελάχιστο αριθμό συμμετεχόντων. Για το λόγο αυτό οι νέες θεματικές πρέπει να κερδίσουν την υποστήριξη ενός αριθμού ψήφων ώστε να προχωρήσουν σε περαιτέρω συζήτηση. Οι θεματικές που δεν φτάνουν τις απαραίτητες ψήφους θα κλείνουν στο τέλος της φάσης αποδοχής.";
 81.1513 +["[introduction] phase 2 discussion"] = "Κατά την φάση συζήτησης όλες οι πρωτοβουλίες προσπαθούν να βελιτώσουν τις προτάσεις τους και την αιτιολόγηση ώστε να κερδίσουν περισσότερους υποστηρικτές. Στόχος είναι σταδιακά να φτάσουν στην απαραίτητη πλειοψηφία και να συναγωνιστούν εναλλακτικές πρωτοβουλίες.";
 81.1514 +["[introduction] phase 3 verification"] = "Κατά την φάση επιβεβαίωσης τα προσχέδια πρωτοβουλιών με την πρόταση και την αιτιολόγηση οριστικοποιούνται και δεν μπορούν να μεταβληθούν περαιτέρω. Σε περίπτωση έκτακτης κατάστασης, είναι δυνατόν να προστεθούν πρωτοβουλίες, αλλά δεν μπορούν αν μεταβληθούν ξανά και πρέπει να κερδίσουν υποστηρικτές από την αρχή.";
 81.1515 +["[introduction] phase 4 voting"] = "Κάθε πρωτοβουλία που έχει φτάσει σε επαρκή αριθμό υποστηρικτών στο τέλος της φάσης επιβεβαίωσης προωθείται σε ψηφοφορία. Κατά τη φάση ψηφοφορίας κάθε επιλέξιμος συμμετέχων μπορεί να ψηφίσει χρησιμοποιώντας ένα σύστημα ψηφοφορίας με προτιμήσεις που επιτρέπει να εκφράζονται οι προσωπικές προτιμήσεις μεταξύ των πρωτοβουλιών επιπλέον των ψήφων ναι/ουδέτερο/όχι.";
 81.1516 +["[introduction] preference voting"] = "Αν έχουν τεθεί παρόμοιες προτάσεις προς ψηφοφορία, δεν είναι απαραίτητο να επιλεχθεί μόνο μια. Αντιθέτως, είναι δυνατόν ένας συμμετέχων να ψηφίσει υπέρ (και κατά) όσες πρωτοβουλίες επιλέγει ενώ παράλληλα μπορεί να εκφράσει τις προσωπικές του προτιμήσεις μεταξύ αυτών κατά την ψηφοφορία. Οι προτιμήσεις θα καθορίσουν τη νικήτρια αν περισσότερες από μια πρωτοβουλίες έχουν φτάσει στην απαραίτητη πλειοψηφία στο τέλος της ψηφοφορίας. Με τον τρόπο αυτό, κανείς δεν ενθαρρύνεται να ψηφίσει υπέρ μια πρωτοβουλίας για να μειώσει κάποια άλλη, και κανείς δεν ενθαρρύνεται να ψηφίσει κατά μιας πρωτοβουλίας μόνο για να αυξήσει τις πιθανότητες μιας άλλης να κερδίζει.";
 81.1517 +["[introduction] rules of procedure"] = "Στο LiquidFeedback η πολιτική καθορίζει τη διάρκεια, τις απαρτίες και τις απαραίτητες πλειοψηφίες για μια θεματική. Οι δημιουργοί επιλέγουν την κατάλληλη πολιτική όταν εισάγουν μια νέα θεματική.";
 81.1518 +["[introduction] subject areas"] = "Οι θεματικές αναθέτονται πάντα σε μια περιοχή ώστε να καθορίσουν την συζήτηση και την διαδικασία απόφασης.";
 81.1519 +["[introduction] vote delegation"] = "Οι εξουσιοδοτήσεις επιτρέπουν έναν δυναμικό καταμερισμό εργασίας. Η εξουσιοδότηση είναι μια πρόταση πληρεξούσιου (δικαίωμα ψήφου), μπορεί να μεταβληθεί οποιαδήποτε στιγμή, δεν δεσμεύεται από οδηγίες και μπορεί να εξουσιοδοτηθεί περαιτέρω. Οι εξουσιοδοτήσεις μπορούν να χρησιμοποιηθούν σε μια οργανωτική μονάδα, σε μια περιοχή μιας μονάδας, ή σε μια θεματική. Οι επιμέρους εξουσιοδοτήσεις υπερτερούν των γενικών εξουσιοδοτήσεων. Οι εξουσιοδοτήσεις χρησιμοποιούνται τόσο κατά την συζήτηση (φάση 1 με 3) όσο και κατά την ψηφοφορία. Κάθε δραστηριότητα αναστέλλει τις υπάρχουσες εξουσιοδοτήσεις για τη συγκεκριμένη δραστηριότητα.";
 81.1520  ["[not displayed public]"] = "[δεν εμφανίζεται δημόσια]";
 81.1521 -["abandoned"] = "ακυρωμένο";
 81.1522 -["accept invitation"] = false;
 81.1523 +["abandoned"] = "εγκαταλείφθηκε";
 81.1524 +["accept invitation"] = "αποδοχή πρόσκλησης";
 81.1525 +["accepted"] = "αποδεκτό";
 81.1526 +["account activated"] = "ενεργοποιημένος λογαριασμός";
 81.1527  ["action"] = "ενέργεια";
 81.1528 -["activate account"] = false;
 81.1529 -["activated"] = "ενεργοποιημένο";
 81.1530 -["add my interest"] = false;
 81.1531 -["add my support"] = false;
 81.1532 -["add to my list of private contacts"] = false;
 81.1533 -["add to my list of public contacts"] = false;
 81.1534 -["add your support (see above) and rate or write new suggestions (and thereby restrict your support to certain conditions if necessary)"] = false;
 81.1535 -["all issues"] = false;
 81.1536 -["allow invitation again"] = false;
 81.1537 -["and"] = false;
 81.1538 -["and #{count} more initiatives"] = "και #{count} ακόμη πρωτοβουλίες";
 81.1539 -["area"] = "Τομέας";
 81.1540 -["at least #{count} approvals"] = "τουλάχιστον #{count} επιδοκιμασίες";
 81.1541 -["at least #{count} approvals or abstentions"] = "τουλάχιστον #{count} επιδοκιμασίες ή ουδέτερα";
 81.1542 -["author"] = false;
 81.1543 -["avatar/photo"] = false;
 81.1544 -["block this member"] = false;
 81.1545 -["browse through the competing initiatives"] = false;
 81.1546 -["but"] = false;
 81.1547 -["by A-Z"] = false;
 81.1548 -["by Z-A"] = false;
 81.1549 -["by default only those issues are shown, for which your are eligible to participate (change filters on top of the list)"] = false;
 81.1550 -["by latest activity"] = false;
 81.1551 -["cancel"] = false;
 81.1552 -["cancel issue"] = false;
 81.1553 -["cancel issue now"] = false;
 81.1554 -["cancel registration"] = false;
 81.1555 -["canceled"] = false;
 81.1556 -["change avatar/photo"] = false;
 81.1557 -["change my vote"] = false;
 81.1558 -["change vote"] = false;
 81.1559 -["change your login"] = false;
 81.1560 -["change your notification email address"] = false;
 81.1561 -["change your password"] = false;
 81.1562 -["change your screen name"] = false;
 81.1563 -["change/revoke area delegation"] = false;
 81.1564 -["change/revoke delegation"] = false;
 81.1565 -["change/revoke delegation of organizational unit"] = false;
 81.1566 -["change/revoke delegation of subject area"] = false;
 81.1567 -["change/revoke delegation only for this issue"] = false;
 81.1568 -["change/revoke delegation only for this subject area"] = false;
 81.1569 -["change/revoke issue delegation"] = false;
 81.1570 -["check your "] = false;
 81.1571 -["choose delegatee"] = false;
 81.1572 -["choose issue delegatee"] = false;
 81.1573 -["choose subject area delegatee"] = false;
 81.1574 -["collapse subject areas"] = false;
 81.1575 -["collective rating:"] = false;
 81.1576 -["compare"] = false;
 81.1577 -["compare revisions"] = false;
 81.1578 +["activate account"] = "ενεργοποιήση λογαριασμού";
 81.1579 +["activated"] = "ενεργοποιήθηκε";
 81.1580 +["add my interest"] = "προσθήκη του ενδιαφέροντός μου";
 81.1581 +["add my support"] = "προσθήκη της υποστήριξής μου";
 81.1582 +["add to my list of private contacts"] = "προσθήκη στην λίστα των ιδιωτικών επαφών μου";
 81.1583 +["add to my list of public contacts"] = "προσθήκη στην λίστα των δημόσιων επαφών μου";
 81.1584 +["add your support (see above) and rate or write new suggestions (and thereby restrict your support to certain conditions if necessary)"] = "πρόσθεσε την υποστήριξή σου (δες πιο πάνω) και αξιολόγησε ή γράψε νέες προτάσεις (και έτσι περιόρισε την υποστήριξή σου σε συγκεκριμένες συνθήκες αν είναι απαραίτητο)";
 81.1585 +["added interest to #{issue}"] = "προσθήκη υποστήριξης στο #{issue}";
 81.1586 +["added support to #{initiative}"] = "προσθήκη υποστήριξης στο #{initiative}";
 81.1587 +["agents"] = "agents";
 81.1588 +["all issues"] = "όλες οι θεματικές";
 81.1589 +["all results"] = "όλα τα αποτελέσματα";
 81.1590 +["all subject areas"] = "όλες οι περιοχές";
 81.1591 +["allow invitation again"] = "Να επιτρέπονται ξανά προσκλήσεις";
 81.1592 +["#{opinion} and #{implemented}"] = "#{opinion} και #{implemented}";
 81.1593 +["and #{count} more initiatives"] = "και #{count} περισσότερες πρωτοβουλίες";
 81.1594 +["area"] = "περιοχή";
 81.1595 +["at least #{count} approvals"] = "τουλάχιστον #{count} αποδοχές";
 81.1596 +["at least #{count} approvals or abstentions"] = "τουλάχιστον #{count} αποδοχές ή αποχές";
 81.1597 +["author"] = "συντάκτης";
 81.1598 +["avatar/photo"] = "avatar/φωτογραφία";
 81.1599 +["between"] = "μεταξύ";
 81.1600 +["block this member"] = "μπλοκάρισμα μέλους";
 81.1601 +["browse the platform as a guest"] = "δες την πλατφόρμα ως επισκέπτης";
 81.1602 +["browse the portal as an unregistered user"] = "εξερεύνησε το πόρταλ ως μη εγγεγραμμένος χρήστης";
 81.1603 +["browse through the competing initiatives"] = "δες τις ανταγωνιστικές πρωτοβουλίες";
 81.1604 +["#{opinion} but #{implemented}"] = "#{opinion} αλλά #{implemented}";
 81.1605 +["by"] = "από";
 81.1606 +["by A-Z"] = "ανά A-Z";
 81.1607 +["by Z-A"] = "ανά Z-A";
 81.1608 +["by default only those issues are shown, for which your are eligible to participate (change filters on top of the list)"] = "Προεπιλεγμένα εμφανίζονται μόνο οι θεματικές στις οποίες είναι δυνατόν να συμμετέχεις (μπορείς να αλλάξεις τα φίλτρα πάνω από τη λίστα)";
 81.1609 +["by latest activity"] = "ανά τελευταία δραστηριότητα ";
 81.1610 +["cancel"] = "ακύρωση";
 81.1611 +["cancel issue"] = "ακύρωση θεματικής";
 81.1612 +["cancel issue now"] = "ακύρωση θεματικής τώρα";
 81.1613 +["canceled"] = "ακυρώθηκε";
 81.1614 +["change avatar/photo"] = "αλλαγή avatar/φωτογραφίας";
 81.1615 +["change delegation..."] = "αλλαγή εξουσιοδότησης...";
 81.1616 +["change my login"] = "αλλαγή ονόματος login";
 81.1617 +["change my password"] = "αλλαγή κωδικού";
 81.1618 +["change my screen name"] = "αλλαγή screen name";
 81.1619 +["change my vote"] = "αλλαγή της ψήφου μου";
 81.1620 +["change vote"] = "αλλαγή ψήφου";
 81.1621 +["change/revoke area delegation"] = "αλλαγή/απόσυρση εξουσιοδότησης περιοχής";
 81.1622 +["change/revoke delegation"] = "αλλαγή/απόσυρση εξουσιοδότησης";
 81.1623 +["change/revoke delegation of organizational unit"] = "αλλαγή/απόσυρση εξουσιοδότησης οργανωτικής μονάδας";
 81.1624 +["change/revoke delegation of subject area"] = "αλλαγή/απόσυρση εξουσιοδότησης θεματικής περιοχής";
 81.1625 +["change/revoke delegation only for this issue"] = "αλλαγή/απόσυρση εξουσιοδότησης μόνο για αυτή την θεματική";
 81.1626 +["change/revoke delegation only for this subject area"] = "αλλαγή/απόσυρση εξουσιοδότησης μόνο για αυτή την περιοχή";
 81.1627 +["change/revoke issue delegation"] = "αλλαγή/απόσυρση εξουσιοδότησης θεματικής";
 81.1628 +["check the issues on the right, and click on 'Vote now' to vote on an issue which is in voting phase."] = "Έλεγξε τις θεματικές στα δεξιά και επέλεξε 'Ψήφος' για να ψηφίσεις μια θεματική που είναι σε φάση ψηφοφορίας";
 81.1629 +["check your "] = "έλεγξε το ";
 81.1630 +["choose delegatee"] = "διάλεξε εκπρόσωπο για εξουσιοδότηση";
 81.1631 +["choose issue delegatee"] = "διάλεξε εκπρόσωπο για εξουσιοδότηση θεματικής";
 81.1632 +["choose subject area delegatee"] = "διάλεξε εκπρόσωπο για εξουσιοδότηση περιοχής";
 81.1633 +["closed"] = "κλειστό";
 81.1634 +["collective rating:"] = "συλλογική αξιολόγηση:";
 81.1635 +["compare revisions"] = "σύγκριση εκδόσεων";
 81.1636  ["confirm"] = "επιβεβαίωση";
 81.1637 -["confirmed address"] = false;
 81.1638 -["database download"] = false;
 81.1639 +["confirmed address"] = "επιβεβαιωμένη διεύθυνση";
 81.1640 +["connected applications"] = "συνδεδεμένες εφαρμογές";
 81.1641 +["create newsletter"] = "δημιουργία newsletter";
 81.1642 +["created #{initiative} (as new issue)"] = "δημιουργήθηκε #{initiative} (ως νεό θέμα)";
 81.1643 +["currently leading"] = "πρώτος επί του παρόντος";
 81.1644 +["database download"] = "λήψη βάσης δεδομένων";
 81.1645 +["day"] = "ημέρα";
 81.1646  ["day [interval ago]"] = "ημέρα";
 81.1647  ["day [interval time left]"] = "ημέρα";
 81.1648  ["day [interval]"] = "ημέρα";
 81.1649 @@ -816,167 +918,193 @@
 81.1650  ["days [interval time left]"] = "ημέρες";
 81.1651  ["days [interval]"] = "ημέρες";
 81.1652  ["deactivated"] = "απενεργοποιημένο";
 81.1653 -["delegated to"] = "έχει ανατεθεί στον/στην";
 81.1654 -["delegates to"] = "αναθέτει στον/στην";
 81.1655 -["delegation suspended during discussion"] = false;
 81.1656 +["delegate..."] = "εξουσιοδότηση...";
 81.1657 +["delegated to"] = "εξουσιοδοτημένο στον";
 81.1658 +["delegates to"] = "εξουσιοδοτεί τον";
 81.1659 +["delegation"] = "εξουσιοδότηση";
 81.1660 +["delete"] = "διαγραφή";
 81.1661  ["delete<br /><br />"] = "διαγραφή<br /><br />";
 81.1662 -["developer settings"] = false;
 81.1663 -["direct interest"] = false;
 81.1664 -["discard"] = false;
 81.1665 -["discard my vote"] = false;
 81.1666 -["do not notify me about this voting anymore"] = false;
 81.1667 -["download database"] = false;
 81.1668 -["draft ID"] = false;
 81.1669 -["draft history (#{count})"] = false;
 81.1670 -["edit profile data"] = false;
 81.1671 -["edit proposal and/or reasons"] = false;
 81.1672 -["email"] = "Email";
 81.1673 -["ends in #{state_time_left}"] = false;
 81.1674 -["ends soon"] = false;
 81.1675 -["failed #{quorum}"] = false;
 81.1676 -["finished"] = false;
 81.1677 -["global"] = "Καθολικό";
 81.1678 -["hide details"] = false;
 81.1679 -["i#{id}: #{name}"] = "i#{id}: #{name}";
 81.1680 -["if you like to implement a suggestion in your proposal and/or reasons, update your initiative draft"] = false;
 81.1681 -["implemented"] = "υλοποιημένη";
 81.1682 -["implemented:"] = false;
 81.1683 -["in all phases"] = false;
 81.1684 -["in my areas"] = false;
 81.1685 -["in my units"] = false;
 81.1686 -["inactive"] = "ανενεργός/ή";
 81.1687 -["initiated by me"] = false;
 81.1688 -["interest via delegation"] = false;
 81.1689 -["interested directly or via delegation"] = false;
 81.1690 -["invite another initiator"] = false;
 81.1691 -["is implemented"] = false;
 81.1692 -["is not implemented"] = false;
 81.1693 -["issue"] = false;
 81.1694 -["issue view"] = false;
 81.1695 -["login name"] = "Όνομα σύνδεσης";
 81.1696 -["login to participate"] = false;
 81.1697 -["logout"] = false;
 81.1698 -["make this contact private"] = false;
 81.1699 -["make this contact public"] = false;
 81.1700 -["member inactive"] = false;
 81.1701 +["denied"] = "απορρίφθηκε";
 81.1702 +["direct interest"] = "άμεσο ενδιαφέρον";
 81.1703 +["discard"] = "διαγραφή";
 81.1704 +["discard my vote"] = "διαγραφή της ψήφου μου";
 81.1705 +["do not notify me about this voting anymore"] = "να μην ενημερώνομαι πλέον για αυτή την ψηφοφορία";
 81.1706 +["download database"] = "λήψη βάσης δεδομένων";
 81.1707 +["draft history (#{count})"] = "ιστορικό εκδόσεων (#{count})";
 81.1708 +["draft updated"] = "ενημερωμένη έκδοση";
 81.1709 +["draft updated for "] = "ενημερωμένη έκδοση για";
 81.1710 +["drafts of #{draft_count} initiatives updated"] = "οι εκδόσεις #{draft_count} πρωτοβουλιών ανανεώθηκαν";
 81.1711 +["edit my profile"] = "επεξεργασία προφίλ";
 81.1712 +["edit proposal and/or reasons"] = "επεξεργασία πρότασης και/ή αξιολόγησης";
 81.1713 +["email address"] = "διεύθυνση email";
 81.1714 +["ends in #{state_time_left}"] = "λήγει σε #{state_time_left}";
 81.1715 +["ends soon"] = "λήγει σύντομα";
 81.1716 +["every"] = "κάθε";
 81.1717 +["expert editor (HTML)"] = "expert editor (HTML)";
 81.1718 +["external reference"] = "εξωτερική πηγή";
 81.1719 +["failed #{quorum}"] = "απέτυχε #{quorum}";
 81.1720 +["featured"] = "προτεινόμενο";
 81.1721 +["featured initiatives"] = "προτεινόμενες πρωτοβουλίες";
 81.1722 +["finished"] = "ολοκληρωμένο";
 81.1723 +["global"] = "καθολικό";
 81.1724 +["has my support"] = "έχει την υποστήριξή μου";
 81.1725 +["hide details"] = "απόκρυψη λεπτομεριών";
 81.1726 +["i#{id}: #{name}"] = "ο/η #{id}: #{name}";
 81.1727 +["if you like to implement a suggestion in your proposal and/or reasons, update your initiative draft"] = "αν θέλεις να κάνεις μια αλλαγή στην πρότασή σου και/ή στην αιτιολόγηση, ενημέρωσε το προσχέδιο της πρωτοβουλίας σου";
 81.1728 +["implemented"] = "υλοποιημένο";
 81.1729 +["implemented:"] = "υλοποιήθηκε:";
 81.1730 +["in all phases"] = "σε όλες τις φάσεις";
 81.1731 +["in my units"] = "στις κατηγορίες μου";
 81.1732 +["initiated by me"] = "δημιουργήθηκε από εμένα";
 81.1733 +["interest"] = "ενδιαφέρον";
 81.1734 +["interest via delegation"] = "ενδιαφέρον μέσω εξουσιοδότησης";
 81.1735 +["interested directly or via delegation"] = "άμεσο ενδιαφέρον ή μέσω εξουσιοδότησης";
 81.1736 +["invite another initiator"] = "πρόσκληση άλλου δημιουργού";
 81.1737 +["is implemented"] = "υλοποιείται";
 81.1738 +["is not implemented"] = "δεν υλοποιείται";
 81.1739 +["issue"] = "θεματική";
 81.1740 +["issue list"] = "λίστα θεμάτων";
 81.1741 +["login name"] = "όνομα login";
 81.1742 +["login to participate"] = "εγγραφή για συμμετοχή";
 81.1743 +["logout"] = "αποσύνδεση";
 81.1744 +["make this contact private"] = "κάνε την επαφή ιδιωτική";
 81.1745 +["make this contact public"] = "κάνε την επαφή δημόσια";
 81.1746 +["member inactive"] = "ανενεργό μέλος";
 81.1747 +["mode"] = "τρόπος";
 81.1748 +["month"] = "μήνας";
 81.1749  ["month [interval ago]"] = "μήνας";
 81.1750  ["month [interval time left]"] = "μήνας";
 81.1751  ["month [interval]"] = "μήνας";
 81.1752  ["months [interval ago]"] = "μήνες";
 81.1753  ["months [interval time left]"] = "μήνες";
 81.1754  ["months [interval]"] = "μήνες";
 81.1755 -["must"] = "οπωσδήποτε";
 81.1756 -["must be implemented"] = false;
 81.1757 -["must not"] = "με τίποτα";
 81.1758 -["my issues"] = false;
 81.1759 -["neutral"] = "ουδέτερη";
 81.1760 -["newest first"] = false;
 81.1761 -["no delegation set"] = false;
 81.1762 -["no reverse beat path to status quo (including ties)"] = "Χωρίς reverse beat path προς την παρούσα κατάσταση (συμπεριλαμβάνοντας ισοπαλίες)";
 81.1763 +["more: #{url}"] = "περισσότερα: #{url}";
 81.1764 +["must"] = "πρέπει";
 81.1765 +["must be implemented"] = "πρέπει να υλοποιηθεί";
 81.1766 +["must not"] = "δεν πρέπει";
 81.1767 +["my issues"] = "οι θεματικές μου";
 81.1768 +["neutral"] = "ουδέτερο";
 81.1769 +["new issue"] = "νέα θεματική";
 81.1770 +["new requests"] = "νέα αιτήματα";
 81.1771 +["new suggestion added"] = "προστέθηκε νέα πρόταση";
 81.1772 +["new suggestion for "] = "νέα πρόταση για ";
 81.1773 +["newest first"] = "πιο πρόσφατο";
 81.1774 +["no delegation set"] = "καμία εξουσιοδότηση";
 81.1775 +["no reverse beat path to status quo (including ties)"] = "δεν υπάρχει reverse beat path για την παρούσα κατάσταση (συμπεριλαμβανομένων των συνδέσμων)";
 81.1776  ["none"] = "κανένα";
 81.1777 -["not admitted"] = false;
 81.1778 -["not implemented"] = "δεν έχει υλοποιηθεί";
 81.1779 -["not voted by me"] = false;
 81.1780 -["not yet"] = "όχι ακόμη";
 81.1781 -["notification settings"] = false;
 81.1782 -["notifications"] = false;
 81.1783 -["notifications settings"] = false;
 81.1784 -["oldest first"] = false;
 81.1785 -["one step back"] = false;
 81.1786 -["open the appropriate subject area for your issue and follow the instruction on that page."] = false;
 81.1787 -["open the organizational unit, subject area or issue you like to delegate and follow the instruction on that page."] = false;
 81.1788 -["or swipe"] = false;
 81.1789 -["ordered by delegation count"] = false;
 81.1790 -["phase ends soon"] = false;
 81.1791 -["possibly instable result caused by multistage majority"] = "Ενδεχομένως ασταθές αποτέλεσμα λόγω πολυσταδιακής πλειοψηφίας";
 81.1792 -["preference voting"] = false;
 81.1793 -["proceed with registration"] = false;
 81.1794 -["prohibit potentially instable results caused by multistage majorities"] = "Απαγόρευση δυνητικά ασταθών αποτελεσμάτων που προκαλούνται από πολυσταδιακές πλειοψηφίες";
 81.1795 -["public administrative notice:"] = false;
 81.1796 -["publish avatar/photo"] = false;
 81.1797 -["publish my rating"] = false;
 81.1798 -["publish profile data"] = false;
 81.1799 -["publish suggestion"] = false;
 81.1800 -["published at"] = false;
 81.1801 -["reached #{quorum}"] = false;
 81.1802 -["refresh my support"] = false;
 81.1803 -["refuse invitation"] = false;
 81.1804 -["remove an initiator"] = false;
 81.1805 -["remove from my contact list"] = false;
 81.1806 -["remove my interest"] = false;
 81.1807 -["remove my support"] = false;
 81.1808 -["reverse beat path to status quo (including ties)"] = "Reverse beat path προς την παρούσα κατάσταση (συμπεριλαμβάνοντας ισοπαλίες)";
 81.1809 +["not activated (yet)"] = "δεν έχει επιβεβαιωθεί ακόμα";
 81.1810 +["not admitted"] = "μη αποδεκτό";
 81.1811 +["not decided yet"] = "αναποφάσιστος";
 81.1812 +["not implemented"] = "μη υλοποιημένο";
 81.1813 +["not voted by me"] = "μη ψηφισμένο από εμένα";
 81.1814 +["not yet"] = "όχι ακόμα";
 81.1815 +["notification email address"] = "διεύθυνση email ειδοποιήσεων";
 81.1816 +["notification settings"] = "ρυθμίσεις ειδοποιήσης";
 81.1817 +["notifications settings"] = "ρυθμίσεις ειδοποιήσεων";
 81.1818 +["oldest first"] = "πιο παλιό";
 81.1819 +["one step back"] = "πίσω";
 81.1820 +["open the appropriate subject area for your issue and follow the instruction on that page."] = "άνοιξε την κατάλληλη περιοχή για τη θεματική σου και ακολούθησε τις οδηγίες στην σελίδα";
 81.1821 +["open the organizational unit, subject area or issue you like to delegate and follow the instruction on that page."] = "άνοιξε την οργανωτική μονάδα, περιοχή ή θεματική που θέλεις να εξουσιοδοτήσεις και ακολούθησε τις οδηγίες στη σελίδα.";
 81.1822 +["ordered by delegation count"] = "ταξινομημένο ανά αρίθμηση εξουσιοδότησης";
 81.1823 +["other reasons (#{count})"] = "άλλοι λόγοι (#{count})";
 81.1824 +["phase"] = "φάση";
 81.1825 +["phase ends soon"] = "η φάση λήγει σύντομα";
 81.1826 +["possibly instable result caused by multistage majority"] = "πιθανώς ασταθές αποτέλεσμα που προκύπτει από multistage πλειοψηφία";
 81.1827 +["preference voting"] = "ψηφοφορία προτιμήσεων";
 81.1828 +["proceed with registration"] = "συνέχεια στην εγγραφή";
 81.1829 +["profile and settings"] = "προφίλ και ρυθμίσεις";
 81.1830 +["prohibit potentially instable results caused by multistage majorities"] = "απαγόρευση πιθανώς ασταθών αποτελεσμάτων λόγω  multistage πλειοψηφία";
 81.1831 +["public administrative notice:"] = "δημόσιο μήνυμα διαχεριστή:";
 81.1832 +["publish avatar/photo"] = "δημοσίευση avatar/φωτογραφίας";
 81.1833 +["publish my rating"] = "δημοσίευση της αξιολόγησής μου";
 81.1834 +["publish profile data"] = "δημοσίευση δεδομένων προφίλ";
 81.1835 +["publish suggestion"] = "δημοσίευση πρότασης";
 81.1836 +["rate suggestion"] = "αξιολόγηση πρότασης";
 81.1837 +["reached #{quorum}"] = "έφτασε στις ";
 81.1838 +["refresh my support"] = "ανανέωση της υποστήριξής μου";
 81.1839 +["refuse invitation"] = "απόρριψη πρόσκλησης";
 81.1840 +["rejected"] = "απορρίφθηκε";
 81.1841 +["remove an initiator"] = "διαγραφή δημιουργού";
 81.1842 +["remove from my contact list"] = "διαγραφή από τη λίστα επαφών μου";
 81.1843 +["remove my interest"] = "διαγραφή του ενδιαφέροντός μου";
 81.1844 +["remove my support"] = "διαγραφή της υποστήριξής μου";
 81.1845 +["removed interest"] = "διαγραφή ενδιαφέροντος";
 81.1846 +["removed support"] = "διαγραφή υποστήριξης";
 81.1847 +["request role account"] = "αίτημα ρόλου λογαριασμού";
 81.1848 +["reverse beat path to status quo (including ties)"] = "reverse beat path της παρούσας κατάστασης (συμπεριλαμβανομένων των συνδέσμων)";
 81.1849  ["revoke"] = "ανάκληση";
 81.1850 -["revoke initiative"] = false;
 81.1851 -["revoked"] = false;
 81.1852 -["search"] = false;
 81.1853 -["select tabs"] = false;
 81.1854 -["should"] = "καλό θα ήταν";
 81.1855 -["should be implemented"] = false;
 81.1856 -["should not"] = "καλύτερα όχι";
 81.1857 -["show all units"] = false;
 81.1858 -["show details"] = false;
 81.1859 -["show differences"] = false;
 81.1860 -["show other subject areas"] = false;
 81.1861 -["show saved contacts"] = false;
 81.1862 -["show subject areas"] = false;
 81.1863 -["show vote"] = false;
 81.1864 -["start a new competing initiative"] = false;
 81.1865 -["start an initiative in a new issue"] = false;
 81.1866 -["structured discussion"] = false;
 81.1867 -["subscribe"] = false;
 81.1868 -["subscribe subject areas or add your interested to issues and you will be notified about changes (follow the instruction on the area or issue page)"] = false;
 81.1869 -["subscribed"] = false;
 81.1870 -["suggestions (#{count}) ↓"] = false;
 81.1871 -["supporter"] = false;
 81.1872 -["supporter with restricting suggestions"] = false;
 81.1873 -["take a look at the competing initiatives"] = false;
 81.1874 -["take a look at the suggestions (see left) and rate them"] = false;
 81.1875 -["take a look at the suggestions of your supporters"] = false;
 81.1876 -["take a look on the issues (see left)"] = false;
 81.1877 -["the following login is connected to this email address:\n\n"] = "η παρακάτω εγγραφή είναι συνδεδεμένη με αυτήν την διεύθυνση ηλ. ταχυδρομείου: \n\n";
 81.1878 -["this issue is in verification phase, therefore the initiative text cannot be updated anymore"] = false;
 81.1879 -["this issue is in voting phase, therefore the initiative text cannot be updated anymore"] = false;
 81.1880 -["timeline"] = false;
 81.1881 -["to argue about suggestions, just add your arguments to your reasons in the initiative draft, so your supporters can learn about your opinion"] = false;
 81.1882 -["to reset your password please click on the following link:\n\n"] = "Επέλεξε τον παρακάτω σύνδεσμο για να επαναφέρεις τον κωδικό πρόσβασής σου:\n\n";
 81.1883 -["to show more info and learn what you can do"] = false;
 81.1884 -["today at #{time}"] = false;
 81.1885 -["unblock member"] = false;
 81.1886 -["unconfirmed address"] = false;
 81.1887 -["unit"] = "ενότητα";
 81.1888 -["unit / area"] = "ενότητα / τομέας";
 81.1889 -["unsubscribe"] = false;
 81.1890 +["revoke initiative"] = "ανάκληση πρωτοβουλίας";
 81.1891 +["revoked"] = "ανακλήθηκε";
 81.1892 +["search"] = "αναζήτηση";
 81.1893 +["sent"] = "απεσταλμένο";
 81.1894 +["should"] = "έπρεπε";
 81.1895 +["should be implemented"] = "έπρεπε να υλοποιηθεί";
 81.1896 +["should not"] = "δεν έπρεπε";
 81.1897 +["show"] = "προβολή";
 81.1898 +["show all units"] = "εμφάνιση όλων των κατηγοριών";
 81.1899 +["show ballot"] = "προβολή ψηφοφορίας";
 81.1900 +["show details"] = "εμφάνιση λεπτομεριών";
 81.1901 +["show differences"] = "εμφάνιση  διαφορών";
 81.1902 +["show incoming delegations"] = "προβολή εισερχόμενων εξουσιοδοτήσεων";
 81.1903 +["show my profile"] = "εμφάνιση του προφίλ μου";
 81.1904 +["show profile"] = "προβολή προφίλ";
 81.1905 +["show vote"] = "εμφάνιση  ψήφου";
 81.1906 +["start a new competing initiative"] = "έναρξη νέας ανταγωνιστικής πρωτοβουλίας";
 81.1907 +["start an initiative in a new issue"] = "έναρξη πρωτοβουλίας σε νέα θεματική";
 81.1908 +["structured discussion"] = "δομημένη συζήτηση";
 81.1909 +["subscribe for update emails about this area"] = "εγγραφή στα ενημερωτικά emails της περιοχής";
 81.1910 +["subscribe subject areas or add your interested to issues and you will be notified about changes (follow the instruction on the area or issue page)"] = "εγγράψου σε περιοχές ή δήλωσε το ενδιαφέρον σου για θεματικές ώστε να λαμβάνεις ειδοποιήσεις για αλλαγές (ακολούθησε τις οδηγίες στην σελίδα περιοχής ή θεματικής)";
 81.1911 +["supporter"] = "υποστηρικτής";
 81.1912 +["supporter with restricting suggestions"] = "υποστηρικτής με περιορισμένες προτάσεις";
 81.1913 +["switch to: #{member_name}"] = "αλλαγή σε: #{member_name}";
 81.1914 +["take a look at the competing initiatives"] = "δες τις ανταγωνιστικές πρωτοβουλίες";
 81.1915 +["take a look at the suggestions (see right) and rate them"] = "δες τις προτάσεις (στα δεξιά) και αξιολόγησέ τες";
 81.1916 +["take a look at the suggestions of your supporters"] = "δες τις προτάσεις των υποστηρικτών σου";
 81.1917 +["take a look on the issues (see right)"] = "δες τις θεματικές (στα δεξιά)";
 81.1918 +["the following login is connected to this email address:\n\n"] = "το παρακάτω login συνδέεται με την διεύθυνση email:\n\n";
 81.1919 +["this issue is in verification phase, therefore the initiative text cannot be updated anymore"] = "η θεματική είναι σε φάση επιβεβαίωσης, συνεπώς το κείμενο της θεματικής δεν μπορεί να ανανεωθεί πια";
 81.1920 +["this issue is in voting phase, therefore the initiative text cannot be updated anymore"] = "η θεματική είναι σε φάση ψηφοφορίας, συνεπώς το κείμενο της πρωτοβουλίας δεν μπορεί να ανανεωθεί πια";
 81.1921 +["timeline"] = "χρονολόγιο";
 81.1922 +["to argue about suggestions, just add your arguments to your reasons in the initiative draft, so your supporters can learn about your opinion"] = "για να επιχειρηματολογήσεις στις προτάσεις, πρόσθεσε απλά τα επιχειρήματά σου στις αιτιολογήσεις της θεματικής, ώστε οι υποστηρικτές σου να μάθουν τις απόψεις σου";
 81.1923 +["to reset your password please click on the following link:\n\n"] = "για να ορίσεις κωδικό παρακαλούμε ακολούθησε το παρακάτω link sottostante:\n\n";
 81.1924 +["today at #{time}"] = "σήμερα στις #{time}";
 81.1925 +["unblock member"] = "ξεμπλοκάρισμα μέλους";
 81.1926 +["unconfirmed address"] = "μη επιβεβαιωμένη διεύθυνση";
 81.1927 +["unit"] = "κατηγορία";
 81.1928 +["unsubscribe from update emails about this area"] = "απεγγραφή από τα ενημερωτικά emails της περιοχής";
 81.1929  ["until"] = "μέχρι";
 81.1930 -["update area"] = false;
 81.1931 -["update member"] = false;
 81.1932 -["update policy"] = false;
 81.1933 -["update unit"] = false;
 81.1934 -["variable"] = "μεταβλητό";
 81.1935 -["via delegation"] = false;
 81.1936 -["vote delegation"] = false;
 81.1937 -["vote now"] = false;
 81.1938 -["voted and not voted by me"] = false;
 81.1939 -["voted by me"] = false;
 81.1940 -["voted directly by me"] = false;
 81.1941 -["voted no"] = false;
 81.1942 -["voted via delegation"] = false;
 81.1943 -["voted yes"] = false;
 81.1944 +["update area"] = "ανανέωση περιοχής";
 81.1945 +["update member"] = "ανανέωση μέλους";
 81.1946 +["update policy"] = "ανανέωση πολιτικής";
 81.1947 +["update rating"] = "ανανέωση ψηφοφορίας";
 81.1948 +["update unit"] = "ανανέωση κατηγορίας";
 81.1949 +["variable"] = "μεταβλητή";
 81.1950 +["verified"] = "επιβεβαιώθηκε";
 81.1951 +["via delegation"] = "μέσω εξουσιοδότησης";
 81.1952 +["vote delegation"] = "εξουσιοδότηση ψήφου";
 81.1953 +["vote now"] = "ψήφισε τώρα";
 81.1954 +["voted"] = "ψηφήστηκε";
 81.1955 +["voted and not voted by me"] = "ψηφισμένα και μη ψηφισμένα από εμένα";
 81.1956 +["voted by me"] = "ψηφισμένα από εμένα";
 81.1957 +["voted directly by me"] = "ψηφισμένα άμεσα από εμένα";
 81.1958 +["voted no"] = "ψηφισμένα όχι";
 81.1959 +["voted via delegation"] = "ψηφισμένα μέσω εξουσιοδότησης";
 81.1960 +["voted yes"] = "ψηφισμένα όχι";
 81.1961 +["wants to access your account"] = "θέλει να έχει πρόσβαση στον λογαριασμό σου";
 81.1962 +["with"] = "με";
 81.1963  ["without"] = "χωρίς";
 81.1964 -["without quorum"] = false;
 81.1965 -["write a new suggestion"] = false;
 81.1966 -["written and rated by the supportes of this initiative to improve the proposal and its reasons"] = false;
 81.1967 -["xmpp"] = "Jabber (XMPP)";
 81.1968 +["without quorum"] = "χωρίς απαρτία";
 81.1969 +["write a new suggestion"] = "γράψε νέα πρόταση";
 81.1970 +["written and rated by the supportes of this initiative to improve the proposal and its reasons"] = "γραμμένο και αξιολογημένο από τους υποστηρικτές της πρωτοβουλίας ώστε να βελτιωθεί η πρόταση και η αιτιολογία της";
 81.1971 +["year"] = "έτος";
 81.1972  ["year [interval ago]"] = "έτος";
 81.1973  ["year [interval time left]"] = "έτος";
 81.1974  ["year [interval]"] = "έτος";
 81.1975  ["years [interval ago]"] = "έτη";
 81.1976  ["years [interval time left]"] = "έτη";
 81.1977  ["years [interval]"] = "έτη";
 81.1978 -["yesterday at #{time}"] = false;
 81.1979 -["you are interested"] = false;
 81.1980 -["you are subscribed"] = false;
 81.1981 -["you have #{count} incoming delegations"] = false;
 81.1982 -["you restricted your support by rating suggestions as must or must not"] = false;
 81.1983 -["you voted"] = false;
 81.1984 +["yesterday at #{time}"] = "χθες στις #{time}";
 81.1985 +["you have #{count} incoming delegations"] = "έχεις #{count} εισερχόμενες εξουσιοδοτήσεις";
 81.1986 +["you restricted your support by rating suggestions as must or must not"] = "περιόρισες την υποστήριξή σου αξιολογώντας τις προτάσεις ως απαραίτητες ή μη απαραίτητες";
 81.1987 +["you voted"] = "έχεις ψηφίσει";
 81.1988  }
    82.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    82.2 +++ b/locale/translations.en-city.lua	Thu Feb 03 15:57:22 2022 +0100
    82.3 @@ -0,0 +1,47 @@
    82.4 +#!/usr/bin/env lua
    82.5 +local translations = loadcached(encode.file_path(WEBMCP_BASE_PATH, "locale", "translations.en.lua"))()
    82.6 +
    82.7 +local additional_translations = {
    82.8 +["Abandon unit and area delegations for this issue"] = "Abandon city and subject area delegations for this issue";
    82.9 +["Abandon unit delegation"] = "Abandon city delegation";
   82.10 +["Abandon unit delegation for this area"] = "Abandon city delegation for this subject area";
   82.11 +["All units"] = "All cities";
   82.12 +["Apply unit delegation for this area (Currently: #{delegate_name} [#{scope}])"] = "Apply city delegation for this subject area (Currently: #{delegate_name} [#{scope}])";
   82.13 +["Apply unit or area delegation for this issue (Currently: #{delegate_name} [#{scope}])"] = "Apply city or subject area delegation for this issue (Currently: #{delegate_name} [#{scope}])";
   82.14 +["Create new unit"] = "Create new city";
   82.15 +["Current unit and area delegations need confirmation"] = "Current city and subject area delegations need confirmation";
   82.16 +["Delegate unit"] = "Delegate city";
   82.17 +["I want to delegate this organizational unit"] = "I want to delegate this city";
   82.18 +["I want to take a look at other organizational units"] = "I want to take a look at other cities";
   82.19 +["Minimum number of supporters relative to the number of active participants in the organizational unit."] = "Minimum number of supporters relative to the number of active participants in the city.";
   82.20 +["New organizational unit"] = "New organizational city";
   82.21 +["Organizational unit"] = "City";
   82.22 +["Organizational units"] = "Cities";
   82.23 +["Organizational units and subject areas"] = "Cities and subject areas";
   82.24 +["Parent unit"] = "Parent city";
   82.25 +["Select unit first"] = "Select city first";
   82.26 +["Set unit delegation"] = "Set city delegation";
   82.27 +["Trustee has no voting right in this unit"] = "Trustee has no voting right in this city";
   82.28 +["Unit"] = "City";
   82.29 +["Unit delegation"] = "City delegation";
   82.30 +["Unit list"] = "City list";
   82.31 +["You are not entitled to vote in this unit"] = "You are not entitled to vote in this city";
   82.32 +["You delegated this organizational unit"] = "You delegated this city";
   82.33 +["You delegated this unit"] = "You delegated this city";
   82.34 +["[event mail]      Unit: #{name}"] = "      City: #{name}";
   82.35 +["[introduction] organizational units"] = "To allow discussions and decisions by sub groups of participants (e.g. by the members of a subdivision of an organization), participants can be assigned to different units. Every organizational unit can have its own subject areas.";
   82.36 +["[introduction] vote delegation"] = "Delegations allow for a dynamic division of labor. A delegation is a proxy statement (voting power under a power of attorney), can be altered at any time, is not bound to directives and can be delegated onward. Delegations can be used for a whole organizational unit, for a subject area within an organizational unit, or for a specific issue. More specific delegations overrule more general delegations. Delegations are used in both the discourse (phase 1 to 3) and the voting phase. Any activity suspends existing delegations for the given activity.";
   82.37 +["change/revoke delegation of organizational unit"] = "change/revoke delegation of city";
   82.38 +["in my units"] = "in my cities";
   82.39 +["new unit created"] = "new city created";
   82.40 +["open the organizational unit, subject area or issue you like to delegate and follow the instruction on that page."] = "open the city, subject area or issue you want to delegate and follow the instruction on that page.";
   82.41 +["show all units"] = "Show all cities";
   82.42 +["unit"] = "city";
   82.43 +["unit updated"] = "city updated";
   82.44 +["update unit"] = "update city";
   82.45 +}
   82.46 +
   82.47 +for k, v in pairs(additional_translations) do
   82.48 +  translations[k] = v
   82.49 +end
   82.50 +return translations;
    83.1 --- a/locale/translations.en.lua	Thu Feb 03 15:54:23 2022 +0100
    83.2 +++ b/locale/translations.en.lua	Thu Feb 03 15:57:22 2022 +0100
    83.3 @@ -1,86 +1,86 @@
    83.4  #!/usr/bin/env lua
    83.5  return {
    83.6 +[" + file_upload_id); html = html.replace("] = false;
    83.7 +[" + file_upload_id); var el = document.createElement("] = false;
    83.8 +[" to receive updates by email"] = false;
    83.9  ["#{closed_ago} ago"] = false;
   83.10  ["#{count} Neutral"] = false;
   83.11  ["#{count} No"] = false;
   83.12  ["#{count} Yes, alternative choice"] = false;
   83.13  ["#{count} Yes, first choice"] = false;
   83.14 -["#{count} canceled"] = false;
   83.15 -["#{count} finished"] = false;
   83.16 -["#{count} in discussion"] = false;
   83.17 -["#{count} in verification"] = false;
   83.18 -["#{count} in voting"] = false;
   83.19  ["#{count} matching issues found"] = false;
   83.20  ["#{count} matching members found"] = false;
   83.21 -["#{count} more areas in this unit"] = false;
   83.22 -["#{count} new"] = false;
   83.23 -["#{count} of them have an area delegation set"] = false;
   83.24 -["#{count} of your outgoing delegation(s) are broken"] = false;
   83.25 +["#{count} suggestions added"] = false;
   83.26 +["#{count} suggestions added for #{initiative}"] = false;
   83.27  ["#{count} supporter"] = false;
   83.28  ["#{duration}"] = false;
   83.29 -["#{interested_issues_to_vote_count} issue(s) you are interested in"] = false;
   83.30  ["#{interval_text} [interval]"] = "#{interval_text}";
   83.31  ["#{interval_text} ago"] = false;
   83.32  ["#{interval_text} left"] = false;
   83.33  ["#{interval} ago"] = false;
   83.34 -["#{issues_to_vote_count} issue(s)"] = false;
   83.35  ["#{issue} is in voting"] = false;
   83.36 -["#{name}\n\n"] = false;
   83.37  ["#{number} Image(s) has been deleted"] = false;
   83.38  ["#{number} Image(s) has been updated"] = false;
   83.39  ["#{percentage}%"] = false;
   83.40 -["#{policy_name} ##{issue_id}"] = false;
   83.41 -["#{policy} ##{id}"] = false;
   83.42  ["#{result}: #{yes_count} Yes (#{yes_percent}), #{no_count} No (#{no_percent}), #{neutral_count} Abstention (#{neutral_percent})"] = false;
   83.43 -["#{result}: No votes (0)"] = false;
   83.44  ["(+ #{count} potential)"] = false;
   83.45 -["(1) Admission"] = false;
   83.46 -["(1) Admission phase"] = false;
   83.47 -["(2) Discussion"] = false;
   83.48 -["(2) Discussion phase"] = false;
   83.49 -["(3) Verification"] = false;
   83.50 -["(3) Verification phase"] = false;
   83.51 -["(4) Voting"] = false;
   83.52 -["(4) Voting phase"] = false;
   83.53 -["(5) Result"] = false;
   83.54 -["(invited)"] = false;
   83.55 +["(detached)"] = false;
   83.56  ["(new window)"] = false;
   83.57 -["+ #{weight}"] = false;
   83.58 +["(new)"] = false;
   83.59  ["+ add new subject area"] = false;
   83.60 -["+getElementById("] = false;
   83.61  ["1 matching issue found"] = false;
   83.62  ["1 matching member found"] = false;
   83.63  ["4 phases of a decision"] = false;
   83.64  ["A short title (80 chars max)"] = false;
   83.65 -["API key has been created"] = false;
   83.66 -["API key has been deleted"] = false;
   83.67  ["Abandon global delegation for this area"] = false;
   83.68  ["Abandon unit and area delegations for this issue"] = false;
   83.69  ["Abandon unit delegation"] = false;
   83.70  ["Abandon unit delegation for this area"] = false;
   83.71  ["About site"] = false;
   83.72 +["Absolute initiative quorum"] = false;
   83.73 +["Absolute issue quorum"] = false;
   83.74 +["Absolute number of approval and abstention votes"] = false;
   83.75 +["Absolute number of approval votes"] = false;
   83.76  ["Abstention"] = false;
   83.77 -["Abstention [many entries]"] = "Abstention";
   83.78 +["Abstention [many entries]"] = "Abstentions";
   83.79  ["Abstention [single entry]"] = "Abstention";
   83.80 +["Accept access privilege"] = false;
   83.81  ["Accepted at"] = false;
   83.82 +["Account"] = false;
   83.83 +["Account access"] = false;
   83.84 +["Account access by member"] = false;
   83.85 +["Account access invitation from '#{member_name}'"] = false;
   83.86  ["Account history"] = false;
   83.87 +["Account not activated (yet) (#{count})"] = false;
   83.88 +["Account registration"] = false;
   83.89 +["Accredited (#{count})"] = false;
   83.90 +["Accredited role accounts"] = false;
   83.91 +["Accredited users"] = false;
   83.92  ["Activated"] = false;
   83.93 +["Activated accounts (#{count})"] = false;
   83.94  ["Active?"] = false;
   83.95 -["Add a new competing initiative to issue"] = false;
   83.96  ["Add a new suggestion for improvement"] = false;
   83.97 -["Address"] = false;
   83.98 +["Add new account access privilege"] = false;
   83.99 +["Added attachments"] = false;
  83.100  ["Admin?"] = false;
  83.101 -["Administrative notice:"] = false;
  83.102  ["Admission"] = false;
  83.103 +["Admission phase"] = false;
  83.104 +["Admission qourum factor"] = false;
  83.105 +["Admission quorum exponent"] = false;
  83.106 +["Admission quorum issues"] = false;
  83.107 +["Admission quorum standard"] = false;
  83.108 +["Admission quorum time"] = false;
  83.109  ["Admission time"] = false;
  83.110  ["Admitted"] = false;
  83.111 -["All areas in my units"] = false;
  83.112 +["Agents"] = false;
  83.113  ["All fields are optional. Please enter only data which should be published."] = false;
  83.114 -["All initiatives failed 2nd quorum"] = false;
  83.115 +["All initiatives failed 2nd quorum"] = "All initiatives failed to reach the 2nd quorum";
  83.116 +["All members"] = false;
  83.117  ["All units"] = false;
  83.118 -["Allowed policies"] = false;
  83.119 -["Apply global delegation for this area (Currently: #{delegate_name} [#{scope}])"] = false;
  83.120 -["Apply global or area delegation for this issue (Currently: #{delegate_name} [#{scope}])"] = false;
  83.121 +["Allowed policies"] = "Policies allowed";
  83.122 +["Application authorization"] = false;
  83.123 +["Apply global delegation for this area (Currently: #{delegate_name} [#{scope}])"] = "Apply unit delegation for this area (Currently: #{delegate_name} [#{scope}])";
  83.124 +["Apply global or area delegation for this issue (Currently: #{delegate_name} [#{scope}])"] = "Apply unit or area delegation for this issue (Currently: #{delegate_name} [#{scope}])";
  83.125  ["Apply unit delegation for this area (Currently: #{delegate_name} [#{scope}])"] = false;
  83.126  ["Apply unit or area delegation for this issue (Currently: #{delegate_name} [#{scope}])"] = false;
  83.127  ["Approval (#th preference) [many entries]"] = "Approval (#th preference)";
  83.128 @@ -95,18 +95,14 @@
  83.129  ["Approval [single entry]"] = "Approval";
  83.130  ["Approved"] = false;
  83.131  ["Are you aware that revoking an initiative is irrevocable?"] = false;
  83.132 -["Area"] = false;
  83.133  ["Area delegation"] = false;
  83.134 -["As long as you are interested in this issue yourself, the delegation is suspended for this issue, but it will be applied again in the voting phase unless you vote yourself."] = false;
  83.135 -["As soon as one initiative of this issue reaches the 1st quorum of #{quorum} support, the issue will proceed to discussion phase."] = false;
  83.136 +["As long as you are interested in this issue yourself, the delegation is suspended for this issue, but it will be applied again in the voting phase unless you vote yourself."] = "As long as you are interested in this issue yourself, your delegation will be automatically suspended for this issue. But it will be applied again in the voting phase unless you vote yourself.";
  83.137 +["As soon as one initiative of this issue reaches the 1st quorum of #{quorum} support, the issue will proceed to discussion phase."] = "As soon as one initiative of this issue reaches the 1st quorum of #{quorum} supporters, the issue will proceed to discussion phase.";
  83.138 +["Attach image"] = false;
  83.139 +["Attr"] = false;
  83.140  ["Author"] = false;
  83.141 -["Available policies"] = false;
  83.142  ["Avatar"] = false;
  83.143  ["Ballot of '#{member_name}'"] = false;
  83.144 -["Become a member"] = false;
  83.145 -["Before creating a new issue, please check any existant issues before, if the topic is already in discussion."] = false;
  83.146 -["Best not admitted initiative"] = false;
  83.147 -["Birthday"] = false;
  83.148  ["Broken delegations"] = false;
  83.149  ["Calculation"] = false;
  83.150  ["Can't remove last initiator"] = false;
  83.151 @@ -114,28 +110,32 @@
  83.152  ["Cancel"] = false;
  83.153  ["Cancel issue"] = false;
  83.154  ["Cancel issue ##{id}"] = false;
  83.155 +["Cancel survey"] = false;
  83.156  ["Canceled by administrative intervention"] = false;
  83.157 +["Cancelled (#{count})"] = "Canceled (#{count})";
  83.158 +["Cancelled account"] = "Canceled account";
  83.159 +["Cancelled accounts"] = "Canceled accounts";
  83.160 +["Cancelled accounts (#{count})"] = "Canceled accounts (#{count})";
  83.161  ["Change email address"] = false;
  83.162  ["Change order"] = false;
  83.163 -["Check and enter personal data"] = false;
  83.164 +["Changeset graph:"] = false;
  83.165 +["Changeset:"] = false;
  83.166  ["Check your #{scope} delegation to '#{trustee_name}' for '#{context}'"] = false;
  83.167 -["Check your delegations!"] = false;
  83.168  ["Check your outgoing delegations"] = false;
  83.169 -["Choose a formatting engine:"] = false;
  83.170 -["Choose a member to invite"] = false;
  83.171 -["Choose an initiator to remove"] = false;
  83.172  ["Choose member"] = false;
  83.173  ["Choose timing"] = false;
  83.174  ["Choose your delegatee"] = false;
  83.175 +["City"] = false;
  83.176 +["Client ID invalid"] = false;
  83.177  ["Closed"] = false;
  83.178  ["Closed issues"] = false;
  83.179  ["Closed user group"] = false;
  83.180  ["Collective opinion of supporters"] = false;
  83.181 -["Collective rating"] = false;
  83.182 +["Comment"] = false;
  83.183  ["Compare"] = false;
  83.184  ["Comparision of revisions #{id1} and #{id2}"] = false;
  83.185  ["Competing initiatives"] = false;
  83.186 -["Competing initiatives failed the 2nd quorum (#{num}/#{den}):"] = false;
  83.187 +["Competing initiatives failed the 2nd quorum (#{num}/#{den}):"] = "Competing initiatives failed to reach the 2nd quorum (#{num}/#{den}):";
  83.188  ["Competing initiatives in pairwise comparison to best initiative:"] = false;
  83.189  ["Competing initiatives in pairwise comparison to winner:"] = false;
  83.190  ["Configure notifications now"] = false;
  83.191 @@ -144,22 +144,27 @@
  83.192  ["Confirm your email address"] = false;
  83.193  ["Confirmation code"] = false;
  83.194  ["Confirmation code invalid!"] = false;
  83.195 -["Contacts"] = false;
  83.196 -["Create a new issue"] = false;
  83.197 +["Connected applications"] = false;
  83.198 +["Contact"] = false;
  83.199 +["Content"] = false;
  83.200 +["Continue survey"] = false;
  83.201 +["Cookie error. Try restarting your web browser and login again."] = false;
  83.202 +["Create a newsletter"] = false;
  83.203  ["Create new policy"] = false;
  83.204  ["Create new unit"] = false;
  83.205  ["Created at"] = false;
  83.206  ["Current delegatee"] = false;
  83.207  ["Current name"] = false;
  83.208 +["Current password"] = false;
  83.209  ["Current phase is already closed."] = false;
  83.210  ["Current status"] = false;
  83.211  ["Current unit and area delegations need confirmation"] = false;
  83.212 -["Current votings in areas you are member of and issues you are interested in:"] = false;
  83.213 -["Currently no API key is set."] = false;
  83.214 -["Currently required"] = false;
  83.215  ["Currently this is the only initiative in this issue, because nobody started a competing initiative (yet)."] = false;
  83.216 +["Date"] = false;
  83.217  ["Date format is not valid. Please use following format: YYYY-MM-DD"] = false;
  83.218 +["Date/place of birth"] = false;
  83.219  ["Deactivate member"] = false;
  83.220 +["Decline authorization"] = false;
  83.221  ["Default Policy"] = false;
  83.222  ["Degree"] = false;
  83.223  ["Delegate area"] = false;
  83.224 @@ -168,17 +173,15 @@
  83.225  ["Delegation abandoned"] = false;
  83.226  ["Delegation turned off for area"] = false;
  83.227  ["Delegation turned off for issue"] = false;
  83.228 -["Delegations"] = false;
  83.229 -["Describe how the proposal and/or the reasons of the initiative could be improved"] = false;
  83.230 +["Delete account"] = false;
  83.231 +["Denied at"] = false;
  83.232 +["Deny request"] = false;
  83.233 +["Describe how the proposal and/or the reasons of the initiative could be improved"] = "Describe how the proposal and the reasoning for this initiative could be improved";
  83.234  ["Description"] = false;
  83.235  ["Details"] = false;
  83.236 -["Developer settings"] = false;
  83.237  ["Did the initiator implement this suggestion?"] = false;
  83.238 +["Digest #{id}: #{info}"] = false;
  83.239  ["Direct majority"] = false;
  83.240 -["Direct majority denominator"] = false;
  83.241 -["Direct majority non negative"] = false;
  83.242 -["Direct majority numerator"] = false;
  83.243 -["Direct majority positive"] = false;
  83.244  ["Disapproval (prefer to last block) [many entries]"] = "Disapproval (prefer to last block)";
  83.245  ["Disapproval (prefer to last block) [single entry]"] = "Disapproval (prefer to last block)";
  83.246  ["Disapproval (prefer to lower block) [many entries]"] = "Disapproval (prefer to lower block)";
  83.247 @@ -190,195 +193,196 @@
  83.248  ["Disapproved"] = false;
  83.249  ["Discard my vote"] = false;
  83.250  ["Discussion"] = false;
  83.251 -["Discussion #{time_info}"] = false;
  83.252 -["Discussion URL"] = false;
  83.253 +["Discussion phase"] = false;
  83.254  ["Discussion started"] = false;
  83.255  ["Discussion time"] = false;
  83.256 -["Do you really want to irrevocably deactive this member?"] = false;
  83.257 -["Do you want to suggest to support another initiative?"] = false;
  83.258 +["Do you really want to irrevocably deactive this member?"] = "Do you really want to irrevocably deactivate this member?";
  83.259 +["Do you want to suggest to support another initiative?"] = "Do you want to suggest another initiative to your supporters?";
  83.260 +["Domain too long"] = false;
  83.261  ["Download"] = false;
  83.262  ["Download database export"] = false;
  83.263  ["Download documents"] = false;
  83.264 +["Draft contains invalid formatting or character sequence: #{error_message}"] = false;
  83.265  ["Draft history"] = false;
  83.266  ["Draft revision #{id}"] = false;
  83.267 +["Duration of discussion phase of an issue."] = false;
  83.268 +["Duration of verification phase of an issue."] = false;
  83.269 +["Duration of voting phase of an issue."] = false;
  83.270  ["During the discussion phase, the issue is debated on while the initiators improve the proposals and reasons in their initiatives. Supporters of initiatives can write and rate suggestions for improvement."] = false;
  83.271  ["During the verification phase, existing initiatives cannot be changed anymore. Initiatives need to pass the 2nd quorum of #{quorum} at end of verification phase to become admitted for voting."] = false;
  83.272  ["During the voting phase, votes for all admitted initiatives in this issue can be cast. The final result will be calculated as soon as this phase ends."] = false;
  83.273 +["Edit"] = false;
  83.274  ["Edit again"] = false;
  83.275 -["Edit initiative"] = false;
  83.276  ["Edit voting comment"] = false;
  83.277 +["Edit your global "] = false;
  83.278  ["Edit your profile data"] = false;
  83.279  ["Eligible as winner"] = false;
  83.280  ["Eligible members (#{count})"] = false;
  83.281 -["Eligible voters"] = false;
  83.282  ["Email address"] = false;
  83.283  ["Email address confirmation"] = false;
  83.284  ["Email address for notifications"] = false;
  83.285  ["Email address is confirmed now"] = false;
  83.286  ["Email address too short!"] = false;
  83.287  ["Email confirmation request"] = false;
  83.288 -["Emphasis"] = false;
  83.289  ["Enter a new email address:"] = false;
  83.290 -["Enter a new login name"] = false;
  83.291 -["Enter a new password:"] = false;
  83.292 -["Enter a new screen name:"] = false;
  83.293 -["Enter a title for your initiative (max. 140 chars):"] = false;
  83.294 -["Enter your current password:"] = false;
  83.295 -["Enter your new password again please:"] = false;
  83.296 -["Enter your proposal and/or reasons"] = false;
  83.297 +["Enter abstract:"] = false;
  83.298  ["Enter your proposal and/or reasons:"] = false;
  83.299 +["Error during authorization"] = false;
  83.300  ["Error while converting image. Please note, that only JPG files are supported!"] = false;
  83.301  ["Error while updating member, database reported:<br /><br /> (#{errormessage})"] = false;
  83.302  ["Etherpad authentication failed"] = false;
  83.303 -["External memberships"] = false;
  83.304 -["External posts"] = false;
  83.305 +["Experimental features"] = false;
  83.306 +["External reference"] = false;
  83.307  ["Failed  #{sign}#{num}/#{den}"] = false;
  83.308  ["Failed 1st quorum"] = false;
  83.309 +["Field"] = false;
  83.310 +["Filter issues:"] = false;
  83.311  ["Finish delegation check"] = false;
  83.312  ["Finish voting"] = false;
  83.313  ["Finished with winner"] = false;
  83.314 -["For numbered items use a digit (e.g. 1) followed by a dot (.) and a space"] = false;
  83.315 -["For which issue phases do you like to receive notification emails?"] = false;
  83.316 +["First quorum"] = false;
  83.317 +["Fiscal code"] = false;
  83.318 +["Fiscal code does not match"] = false;
  83.319 +["Fiscal code does not match (#{count})"] = false;
  83.320 +["Forbidden"] = false;
  83.321  ["Forgot login name?"] = false;
  83.322  ["Forgot password?"] = false;
  83.323 -["Formatting help"] = false;
  83.324  ["Free timing:"] = false;
  83.325 -["Frozen"] = false;
  83.326 -["Fully frozen at"] = false;
  83.327 -["Generate API key"] = false;
  83.328 +["Friday"] = false;
  83.329 +["Fully frozen at"] = "Voting phase started at";
  83.330  ["Global delegation"] = false;
  83.331  ["Go back to home page"] = false;
  83.332 -["Half frozen at"] = false;
  83.333 -["Headlines"] = false;
  83.334 +["Go to start page"] = false;
  83.335 +["Grant account access"] = false;
  83.336 +["Grant authorization"] = false;
  83.337 +["Half frozen at"] = "Verification phase started at";
  83.338  ["Hello\n\n"] = false;
  83.339  ["Hello "] = false;
  83.340  ["Hello,\n\n"] = false;
  83.341 -["Help #{id}"] = false;
  83.342 -["Hide"] = false;
  83.343  ["Hide inactive"] = false;
  83.344  ["Hint"] = false;
  83.345  ["History"] = false;
  83.346  ["Home"] = false;
  83.347 -["How important is your suggestions for you?"] = false;
  83.348 +["Hostname"] = false;
  83.349 +["How important is your suggestions for you?"] = "How important is this suggestion to you?";
  83.350  ["How this member voted"] = false;
  83.351 -["I do not like to hear from this member"] = false;
  83.352 -["I do not like to receive notifications by email"] = false;
  83.353 -["I don't like any of the initiative in this issue and I want to add my opinion or counter proposal"] = false;
  83.354 +["I do not like to hear from this member"] = "I would not like to hear from this member";
  83.355 +["I don't like any of the initiative in this issue and I want to add my opinion or counter proposal"] = "I do not like any of the initiatives in this issue, and I want to add my opinion or counter proposal";
  83.356  ["I don't like this initiative and I want to add my opinion or counter proposal"] = false;
  83.357 -["I don't like to vote this issue (myself):"] = false;
  83.358 +["I don't like to vote this issue (myself):"] = "I do not wish to vote on this issue myself";
  83.359 +["I don't want to particiapte"] = false;
  83.360  ["I like this initiative and I want to support it"] = false;
  83.361 -["I like to change/revoke my vote:"] = false;
  83.362 -["I like to receive notifications"] = false;
  83.363 -["I like to vote on this issue:"] = false;
  83.364 -["I understand, that this is not revocable"] = false;
  83.365 +["I like to change/revoke my vote:"] = "I'd like to change/revoke my vote";
  83.366 +["I like to receive notifications"] = "I'd like to receive notifications";
  83.367 +["I like to vote on this issue:"] = "I'd like to vote on this issue:";
  83.368 +["I understand, that this is not revocable"] = "I understand that this is not revocable";
  83.369  ["I want to change account settings"] = false;
  83.370 -["I want to change the interface language"] = false;
  83.371 -["I want to customize my profile"] = false;
  83.372 -["I want to deactive this member irrevocably"] = false;
  83.373 +["I want to deactive this member irrevocably"] = "I want to deactivate this member irrevocably";
  83.374  ["I want to delegate my vote"] = false;
  83.375  ["I want to delegate this issue"] = false;
  83.376  ["I want to delegate this organizational unit"] = false;
  83.377  ["I want to delegate this subject area"] = false;
  83.378  ["I want to download all data"] = false;
  83.379  ["I want to improve this initiative"] = false;
  83.380 -["I want to know whats going on"] = false;
  83.381 +["I want to know whats going on"] = "I want to know what's going on";
  83.382  ["I want to learn more about LiquidFeedback"] = false;
  83.383 -["I want to logout"] = false;
  83.384 -["I want to manage my saved contacts"] = false;
  83.385  ["I want to participate in this issue"] = false;
  83.386 -["I want to participate in this subject area"] = false;
  83.387 -["I want to save this member as contact (i.e. to use as delegatee)"] = false;
  83.388 -["I want to start a new initiative"] = false;
  83.389 +["I want to receive a regular digest"] = false;
  83.390 +["I want to save this member as contact (i.e. to use as delegatee)"] = "I want to save this member as a contact (i.e. to use as delegatee)";
  83.391 +["I want to show or edit my profile"] = false;
  83.392 +["I want to start a new initiative"] = "I want to start a new issue";
  83.393  ["I want to stay informed"] = false;
  83.394 +["I want to stay informed about this subject area"] = false;
  83.395 +["I want to switch to another account"] = false;
  83.396  ["I want to take a look at other organizational units"] = false;
  83.397 -["I'm interested in this issue"] = false;
  83.398 -["I'm supporting this initiative"] = false;
  83.399 +["I want to vote"] = false;
  83.400 +["ID"] = false;
  83.401 +["IP address"] = false;
  83.402  ["Id"] = false;
  83.403  ["Identification"] = false;
  83.404 +["Identification used before"] = false;
  83.405 +["Identification used before (#{count})"] = false;
  83.406  ["If this link is not working, please open following url in your web browser:\n\n"] = false;
  83.407 -["If you cannot find any appropriate existing issue, "] = false;
  83.408 +["If you cannot find any appropriate existing issue, "] = "You can also ";
  83.409 +["If you have not received a PIN code, our team will need to check your registration manually. We will be in touch within two working days. Please accept our apologies for the inconvenience."] = false;
  83.410  ["Implicitly admitted"] = false;
  83.411  ["Incoming delegations"] = false;
  83.412 -["Incoming delegations for '#{member_name}'"] = false;
  83.413  ["Incoming delegations for '#{member}'"] = false;
  83.414 -["Indent sub items with spaces"] = false;
  83.415 -["Index"] = false;
  83.416  ["Indirect majority"] = false;
  83.417  ["Indirect majority denominator"] = false;
  83.418  ["Indirect majority non negative"] = false;
  83.419  ["Indirect majority numerator"] = false;
  83.420  ["Indirect majority positive"] = false;
  83.421 -["Individual ratings"] = false;
  83.422 -["Initiative is revoked now"] = false;
  83.423 +["Initiative is revoked now"] = "Initiative is now revoked";
  83.424  ["Initiative not admitted"] = false;
  83.425  ["Initiative quorum"] = false;
  83.426 -["Initiative quorum denominator"] = false;
  83.427 -["Initiative quorum numerator"] = false;
  83.428  ["Initiative revoked"] = false;
  83.429 -["Initiative successfully created"] = false;
  83.430 -["Initiative successfully updated"] = false;
  83.431 +["Initiative revoked: #{initiative_name}"] = false;
  83.432  ["Initiative: "] = false;
  83.433 -["Initiatives"] = false;
  83.434  ["Initiatives and issues"] = false;
  83.435  ["Initiatives created by this member"] = false;
  83.436 -["Initiatives that invited you to become initiator:"] = false;
  83.437 -["Initiator invites"] = false;
  83.438  ["Initiators"] = false;
  83.439 -["Interest already removed"] = false;
  83.440 -["Interest removed"] = false;
  83.441 -["Interest updated"] = false;
  83.442  ["Interested members"] = false;
  83.443 -["Internal posts"] = false;
  83.444 +["Internal error 1"] = false;
  83.445 +["Internal error 2"] = false;
  83.446 +["Internal error 3"] = false;
  83.447  ["Interval format:"] = false;
  83.448  ["Introduction"] = false;
  83.449 +["Invalid PIN entered"] = false;
  83.450 +["Invalid PIN entered (#{count})"] = false;
  83.451 +["Invalid PIN, please try again!"] = false;
  83.452 +["Invalid domain format"] = false;
  83.453  ["Invalid login name or password!"] = false;
  83.454  ["Invalid timing"] = false;
  83.455  ["Invitation has been refused"] = false;
  83.456  ["Invitation to LiquidFeedback"] = false;
  83.457  ["Invite an initiator to initiative"] = false;
  83.458  ["Invite code"] = false;
  83.459 +["Invite letter"] = "Invitation letter";
  83.460  ["Invite member"] = false;
  83.461 -["Invited"] = false;
  83.462 +["Invited [as initiator]"] = false;
  83.463  ["Issue #"] = false;
  83.464  ["Issue ##{id}"] = false;
  83.465  ["Issue ##{issue_id}: #{initiative_name}"] = false;
  83.466  ["Issue delegation"] = false;
  83.467  ["Issue has been canceled"] = false;
  83.468  ["Issue quorum"] = false;
  83.469 -["Issue quorum denominator"] = false;
  83.470 -["Issue quorum numerator"] = false;
  83.471  ["Issue reached next phase"] = false;
  83.472  ["Issues in admission phase"] = false;
  83.473  ["Issues in discussion phase"] = false;
  83.474  ["Issues in verification phase"] = false;
  83.475  ["Issues in voting phase"] = false;
  83.476 -["Issues:"] = false;
  83.477  ["JavaScript is disabled or not available."] = false;
  83.478  ["Last activity (updated daily)"] = false;
  83.479  ["Last counting:"] = false;
  83.480 -["Latest approved issue"] = false;
  83.481 -["Latest disapproved issue"] = false;
  83.482 -["Latest events"] = false;
  83.483 -["Links"] = false;
  83.484  ["LiquidFeedback"] = false;
  83.485 -["Lists"] = false;
  83.486 -["Lists must be preceeded and followed by at least one blank line"] = false;
  83.487 -["Lock member?"] = false;
  83.488 +["Lock member?"] = "Lock member out?";
  83.489  ["Locked?"] = false;
  83.490 -["Login"] = false;
  83.491 +["Login [headline]"] = "Login";
  83.492 +["Login [button]"] = "Login";
  83.493  ["Login name"] = false;
  83.494  ["Login name request"] = false;
  83.495 +["Login to participate"] = false;
  83.496  ["Login-Name: "] = false;
  83.497 +["Logout"] = false;
  83.498  ["Logout successful"] = false;
  83.499 +["Majority"] = false;
  83.500  ["Make your choice by placing the initiatives"] = false;
  83.501 +["Manage newsletters"] = false;
  83.502 +["Manual verification (w/o mobile)"] = false;
  83.503 +["Manual verification needed"] = false;
  83.504 +["Manual verification requested during step 1"] = false;
  83.505 +["Manual verification requested during step 1 (#{count})"] = false;
  83.506 +["Manual verification requested during step 2"] = false;
  83.507 +["Manual verification requested during step 2 (#{count})"] = false;
  83.508 +["Maximum admission time"] = false;
  83.509 +["Maximum time within which an issue has to reach the 1st quorum, otherwise it will be canceled."] = false;
  83.510  ["Member"] = false;
  83.511  ["Member has been removed from initiators"] = false;
  83.512  ["Member has been removed from your contacts"] = false;
  83.513  ["Member has not approved latest draft"] = false;
  83.514  ["Member inactive?"] = false;
  83.515  ["Member is already saved in your contacts!"] = false;
  83.516 -["Member is not participating in any of the #{count} areas in this unit"] = false;
  83.517 -["Member is not participating in the only area of the unit"] = false;
  83.518  ["Member is now invited to be initiator"] = false;
  83.519  ["Member list"] = false;
  83.520  ["Member name"] = false;
  83.521 @@ -386,29 +390,42 @@
  83.522  ["Member successfully registered"] = false;
  83.523  ["Member successfully updated"] = false;
  83.524  ["Members"] = false;
  83.525 -["Memberships"] = false;
  83.526 -["Missing help text: #{id}.#{lang}.txt"] = false;
  83.527 -["Mobile phone"] = false;
  83.528 +["Message of the day"] = false;
  83.529 +["Method not allowed"] = false;
  83.530 +["Minimum absolute number of supporters."] = false;
  83.531 +["Minimum admission time"] = false;
  83.532 +["Minimum number of supporters relative to the number of active participants in the organizational unit."] = false;
  83.533 +["Minimum supporter count (including support via delegation) an initiative has to reach to be an eligible candidate for the voting phase."] = false;
  83.534 +["Minimum supporter count (including support via delegation) one initiative of an issue has to reach to let the issue pass the 1st quorum and to proceed to discussion phase. Further requirements can occur due to per subject area issue limiter settings. See subject area settings."] = false;
  83.535 +["Minimum time an issue has to stay in admission phase before it can be accepted for discussion (if it reaches the 1st quorum)."] = false;
  83.536 +["Missing parameter"] = false;
  83.537 +["Monday"] = false;
  83.538  ["Move down"] = false;
  83.539  ["Move up"] = false;
  83.540 -["My areas"] = false;
  83.541  ["Name"] = false;
  83.542 -["New"] = false;
  83.543  ["New area"] = false;
  83.544 +["New competing initiative in issue '#{issue}'"] = false;
  83.545  ["New draft for initiative '#{initiative_name}'"] = false;
  83.546 -["New drafts for #{count} initiative(s) you are supporting"] = false;
  83.547  ["New initiative"] = false;
  83.548  ["New initiative draft"] = false;
  83.549  ["New issue"] = false;
  83.550 -["New member"] = false;
  83.551 +["New newsletter"] = false;
  83.552  ["New organizational unit"] = false;
  83.553 -["New passwords does not match."] = false;
  83.554 -["New passwords is too short."] = false;
  83.555 +["New password"] = false;
  83.556 +["New passwords does not match."] = "New password does not match.";
  83.557 +["New passwords is too short."] = "New password is too short.";
  83.558  ["New policy"] = false;
  83.559  ["New suggestion"] = false;
  83.560 +["Newsletter"] = false;
  83.561 +["Newsletter has already been sent out"] = false;
  83.562 +["Newsletter list"] = false;
  83.563 +["Next step"] = false;
  83.564  ["No"] = false;
  83.565  ["No (not yet)"] = false;
  83.566 +["No PIN code received?"] = false;
  83.567 +["No account yet?"] = false;
  83.568  ["No admission needed"] = false;
  83.569 +["No applications connected"] = false;
  83.570  ["No changes to your images were made"] = false;
  83.571  ["No default"] = false;
  83.572  ["No delegation"] = false;
  83.573 @@ -416,41 +433,41 @@
  83.574  ["No matching members found"] = false;
  83.575  ["No more events available"] = false;
  83.576  ["No multistage majority"] = false;
  83.577 +["No other members are allowed to use this account."] = false;
  83.578  ["No published contacts"] = false;
  83.579  ["No results for this selection"] = false;
  83.580  ["No reverse beat path"] = false;
  83.581 -["No suggestions"] = false;
  83.582 -["No suggestions yet"] = false;
  83.583 -["Not a member"] = false;
  83.584 -["Not voted issues"] = false;
  83.585 +["No votes (0)"] = false;
  83.586 +["No voting rights."] = false;
  83.587 +["None"] = false;
  83.588 +["None yet"] = false;
  83.589  ["Notification address unconfirmed"] = false;
  83.590  ["Notification email"] = false;
  83.591 -["Notification level not set yet"] = false;
  83.592 +["Notification email (confirmed)"] = false;
  83.593 +["Notification email (unconfirmed)"] = false;
  83.594 +["Notification level not set yet"] = "Notification level unset";
  83.595  ["Notifications"] = false;
  83.596 -["Notifications are only send to you about events in the subject areas you subscribed, the issues you are interested in and the initiatives you are supporting."] = false;
  83.597 -["Number of incoming delegations, follow link to see more details"] = false;
  83.598  ["Old password is wrong"] = false;
  83.599 -["On that page please enter the confirmation code:\n\n"] = false;
  83.600 -["On that page please enter the invite key:\n\n"] = false;
  83.601 -["On that page please enter the reset code:\n\n"] = false;
  83.602 -["One issue"] = false;
  83.603 -["One issue you are interested in"] = false;
  83.604 -["One more area in this unit"] = false;
  83.605 -["One of them have an area delegation set"] = false;
  83.606 -["Only for issues reaching the discussion phase"] = false;
  83.607 -["Only for issues reaching the verification phase"] = false;
  83.608 -["Only for issues reaching the voting phase"] = false;
  83.609 -["Open initiatives you are supporting which has been updated their draft:"] = false;
  83.610 -["Open issues"] = false;
  83.611 -["Open the appropriate subject area where your issue fits in and follow the instruction on that page."] = false;
  83.612 -["Options"] = false;
  83.613 +["On that page please enter the confirmation code:\n\n"] = "Please enter the confirmation code on that page: .\n\n";
  83.614 +["On that page please enter the invite key:\n\n"] = "Please enter the invite key on that page:\n\n";
  83.615 +["On that page please enter the reset code:\n\n"] = "Please enter the reset code on that page:\n\n";
  83.616 +["Open in FirstLife"] = false;
  83.617 +["Open initiatives you are supporting which has been updated their draft:"] = "Open initiatives you're supporting whose drafts have been updated";
  83.618 +["Open request"] = false;
  83.619 +["Open requests"] = false;
  83.620 +["Open requests (#{count})"] = false;
  83.621 +["Open role requests"] = false;
  83.622  ["Organizational unit"] = false;
  83.623  ["Organizational units"] = false;
  83.624  ["Organizational units and subject areas"] = false;
  83.625  ["Other failures"] = false;
  83.626 +["Other reasons"] = false;
  83.627  ["Outgoing delegations"] = false;
  83.628 +["Override disable notifications?"] = false;
  83.629 +["PIN code not entered"] = false;
  83.630 +["PIN code not entered (yet) (#{count})"] = false;
  83.631 +["PIN page"] = false;
  83.632  ["Page not found"] = false;
  83.633 -["Paragraphs"] = false;
  83.634  ["Parent unit"] = false;
  83.635  ["Password"] = false;
  83.636  ["Password has been reset successfully"] = false;
  83.637 @@ -458,9 +475,14 @@
  83.638  ["Passwords don't match!"] = false;
  83.639  ["Passwords must consist of at least 8 characters!"] = false;
  83.640  ["Personal information"] = false;
  83.641 -["Phase durations"] = false;
  83.642 -["Phone"] = false;
  83.643 +["Phase ends soon"] = false;
  83.644 +["Phone number used before"] = false;
  83.645 +["Phone number used before (#{count})"] = false;
  83.646  ["Photo"] = false;
  83.647 +["Please also check your SPAM folder."] = false;
  83.648 +["Please check date of birth"] = false;
  83.649 +["Please check the fiscal code (invalid format or does not match name, first name and/or date of birth)"] = false;
  83.650 +["Please check the mobile phone number (invalid format)"] = false;
  83.651  ["Please choose a login name. This name will not be shown to others and is used only by you to login into the system. The login name is case sensitive."] = false;
  83.652  ["Please choose a member"] = false;
  83.653  ["Please choose a name, i.e. your real name or your nick name. This name will be shown to others to identify you."] = false;
  83.654 @@ -468,10 +490,11 @@
  83.655  ["Please choose a policy"] = false;
  83.656  ["Please choose a policy for the new issue:"] = false;
  83.657  ["Please choose an area name"] = false;
  83.658 +["Please choose an option!"] = false;
  83.659 +["Please choose one project to vote for."] = false;
  83.660  ["Please choose two different versions of the draft to compare"] = false;
  83.661 -["Please confirm your email address"] = false;
  83.662  ["Please confirm your email address by clicking the following link:\n\n"] = false;
  83.663 -["Please decide for each delegation to confirm or to revoke it!"] = false;
  83.664 +["Please decide for each delegation to confirm or to revoke it!"] = "Please decide to confirm or revoke each delegation!";
  83.665  ["Please enter a meaningful title for your initiative!"] = false;
  83.666  ["Please enter the email reset code you have received:"] = false;
  83.667  ["Please enter the invite code you've received"] = false;
  83.668 @@ -479,59 +502,81 @@
  83.669  ["Please enter your email address. You will receive an email with your login name."] = false;
  83.670  ["Please enter your login name. You will receive an email with a link to reset your password."] = false;
  83.671  ["Please enter your new password twice."] = false;
  83.672 -["Please select your preferred notification level"] = false;
  83.673 +["Please enter: #{field_name}"] = false;
  83.674  ["Policies"] = false;
  83.675  ["Policy"] = false;
  83.676 -["Policy '#{name}'"] = false;
  83.677  ["Policy list"] = false;
  83.678  ["Polling mode"] = false;
  83.679  ["Population"] = false;
  83.680 -["Posts"] = false;
  83.681  ["Preference comparison"] = false;
  83.682 -["Preference voting"] = false;
  83.683 +["Preference voting"] = "Preferential voting";
  83.684  ["Preview"] = false;
  83.685  ["Preview of delegation"] = false;
  83.686  ["Preview of voting ballot"] = false;
  83.687  ["Private contacts"] = false;
  83.688 -["Profession"] = false;
  83.689 -["Publish"] = false;
  83.690 +["Proceed with registration"] = false;
  83.691  ["Publish now"] = false;
  83.692  ["Published"] = false;
  83.693  ["Published contacts"] = false;
  83.694 -["Put **double asterisks** around a phrase to make it bold"] = false;
  83.695 -["Put *asterisks* or around a phrase to make it italic"] = false;
  83.696 -["Put a hypen (-) or asterisk (*) followed by a space in front of each item"] = false;
  83.697 -["Quorums"] = false;
  83.698 +["Quick guide"] = false;
  83.699  ["Reached #{sign}#{num}/#{den}"] = false;
  83.700 -["Read and accept the terms and choose a password"] = false;
  83.701 -["Read more"] = false;
  83.702 -["Real name"] = false;
  83.703  ["Recover login name"] = false;
  83.704 +["Redirect URI forbidden"] = false;
  83.705 +["Redirect URI invalid"] = false;
  83.706 +["Redirect URI or response type not registered"] = false;
  83.707  ["Register new member"] = false;
  83.708 +["Register now"] = false;
  83.709  ["Registered members (#{count})"] = false;
  83.710 -["Registration"] = false;
  83.711  ["Registration (step 1 of 3: Invite code)"] = false;
  83.712  ["Registration (step 2 of 3: Personal information)"] = false;
  83.713  ["Registration (step 3 of 3: Terms of use and password)"] = false;
  83.714 -["Rejected"] = false;
  83.715 +["Registration rejected"] = false;
  83.716 +["Registration succeeded"] = "Registration successful";
  83.717 +["Reject access privilege"] = false;
  83.718 +["Rejected [initiator invitation]"] = "Rejected";
  83.719 +["Rejected [initiative]"] = "Rejected";
  83.720 +["Rejected (#{count})"] = false;
  83.721  ["Rejected (rank #{rank})"] = false;
  83.722 -["Remove"] = false;
  83.723 +["Rejected accreditation requests"] = false;
  83.724 +["Rejected request"] = false;
  83.725 +["Rejected requests (#{count})"] = false;
  83.726 +["Rejected role accreditation requests"] = false;
  83.727  ["Remove an initiator from initiative"] = false;
  83.728 +["Remove application"] = false;
  83.729  ["Remove initiator"] = false;
  83.730 +["Removed attachments"] = false;
  83.731  ["Rendered"] = false;
  83.732 +["Repeat new password"] = false;
  83.733 +["Repeat password"] = false;
  83.734  ["Request email with login name"] = false;
  83.735  ["Request password reset link"] = false;
  83.736 +["Request role account"] = false;
  83.737 +["Request role accounts"] = false;
  83.738 +["Requested at"] = false;
  83.739 +["Requested by account"] = false;
  83.740 +["Requested by:"] = false;
  83.741 +["Requested privileges:"] = false;
  83.742 +["Required majorities"] = false;
  83.743  ["Resend activation email to '#{email}'"] = false;
  83.744  ["Reset code"] = false;
  83.745  ["Reset code is invalid!"] = false;
  83.746  ["Reset password"] = false;
  83.747 +["Response type not allowed for given client"] = false;
  83.748 +["Results"] = false;
  83.749 +["Revoke"] = false;
  83.750  ["Revoke initiative"] = false;
  83.751  ["Revoke now"] = false;
  83.752  ["Revoked (during admission)"] = false;
  83.753  ["Revoked (during discussion)"] = false;
  83.754  ["Revoked (during verification)"] = false;
  83.755  ["Revoked at"] = false;
  83.756 +["Role accounts"] = false;
  83.757 +["Role management"] = false;
  83.758  ["Rules of procedure"] = false;
  83.759 +["Same "] = false;
  83.760 +["Same identification"] = false;
  83.761 +["Same name already exists"] = false;
  83.762 +["Saturday"] = false;
  83.763  ["Save"] = false;
  83.764  ["Save new password"] = false;
  83.765  ["Save voting comment"] = false;
  83.766 @@ -540,80 +585,77 @@
  83.767  ["Screen name"] = false;
  83.768  ["Search"] = false;
  83.769  ["Search results for: '#{search}'"] = false;
  83.770 -["Search term (only complete words)"] = false;
  83.771 -["Select a notification level"] = false;
  83.772 -["Select language \"#{langcode}\""] = false;
  83.773 +["Second quorum"] = false;
  83.774 +["Select unit first"] = false;
  83.775 +["Self registration"] = false;
  83.776 +["Self registration completed"] = false;
  83.777  ["Send invite?"] = false;
  83.778 -["Separate each paragraph with at least one blank line"] = false;
  83.779 -["Set URL"] = false;
  83.780  ["Set area delegation"] = false;
  83.781  ["Set issue delegation"] = false;
  83.782  ["Set unit delegation"] = false;
  83.783 -["Should the initiator implement this suggestion?"] = false;
  83.784 +["Settings"] = false;
  83.785 +["Should the initiator implement this suggestion?"] = "To what extent should the initiator implement this suggestion?";
  83.786  ["Show"] = false;
  83.787  ["Show all members"] = false;
  83.788  ["Show full history"] = false;
  83.789  ["Show full member list"] = false;
  83.790  ["Show inactive"] = false;
  83.791 -["Show less"] = false;
  83.792 -["Show member"] = false;
  83.793 -["Show more and rate this"] = false;
  83.794 -["Show my voting ballot"] = false;
  83.795  ["Show older events"] = false;
  83.796  ["Show policies in use"] = false;
  83.797  ["Show policies not in use"] = false;
  83.798  ["Show voting ballot"] = false;
  83.799 -["Sorry, but there is not confirmed email address for your account. Please contact the administrator or support."] = false;
  83.800 +["Skip admission phase and start issue in discussion phase (can only be started by members with polling privilege). If enabled, minimum and maximum admission time as well as 1st quorum needs to be cleared."] = false;
  83.801 +["Sorry, but there is not confirmed email address for your account. Please contact the administrator or support."] = "Unfortunately, there is no confirmed email address for your account. Please contact the administrator or support.";
  83.802  ["Sorry, but you are currently not invited"] = false;
  83.803 +["Sorry, but you need to be at least 16 years old to participate. You can "] = false;
  83.804  ["Sorry, you have reached your personal flood limit. Please be slower..."] = false;
  83.805  ["Sorry, your contingent for creating initiatives has been used up. Please try again later."] = false;
  83.806  ["Source"] = false;
  83.807 +["Start manual verification"] = false;
  83.808 +["Start survey"] = false;
  83.809 +["State of #{issue} changed to #{state} / #{initiative}"] = false;
  83.810  ["Statement"] = false;
  83.811  ["Status"] = false;
  83.812  ["Status quo: #{rank}"] = false;
  83.813 -["Strict direct majority"] = false;
  83.814  ["Strict indirect majority"] = false;
  83.815 -["Structured discussion"] = false;
  83.816 -["Stylesheet URL has been updated"] = false;
  83.817 -["Subject area subscribed"] = false;
  83.818 +["Subject"] = false;
  83.819  ["Subject areas"] = false;
  83.820  ["Subscribed members (#{count})"] = false;
  83.821 -["Subscription already removed"] = false;
  83.822 -["Subscription removed"] = false;
  83.823  ["Suggest no initiative"] = false;
  83.824  ["Suggestion"] = false;
  83.825  ["Suggestion currently implemented"] = false;
  83.826  ["Suggestion currently not implemented"] = false;
  83.827  ["Suggestion does not exist anymore"] = false;
  83.828 -["Suggestion for improvement #{id}"] = false;
  83.829 -["Suggestions"] = false;
  83.830  ["Suggestions for improvement (#{count})"] = false;
  83.831 -["Syntax help"] = false;
  83.832 -["System administration"] = false;
  83.833 +["Sunday"] = false;
  83.834 +["Surveys"] = false;
  83.835  ["System settings"] = false;
  83.836 -["Take a look through the existing issues. Maybe someone else started a debate on your topic (and you can join it) or the topic has been decided already in the past."] = false;
  83.837 +["Take a look through the existing issues. Maybe someone else started a debate on your topic (and you can join it) or the topic has been decided already in the past."] = "Take a look through the existing issues. It's possible someone else started a debate on your topic (and you can join it), or the topic has already been decided on in the past.";
  83.838  ["Tell others about this initiative:"] = false;
  83.839  ["Terms of use"] = false;
  83.840  ["The code you've entered is invalid"] = false;
  83.841  ["The draft of this initiative has been updated!"] = false;
  83.842  ["The drafts do not differ"] = false;
  83.843 -["The initiative draft has been updated again in the meanwhile, support not updated!"] = false;
  83.844 +["The following settings for experimental features should only be changed with sufficient knowledge about the Schulze method and its implementation in LiquidFeedback."] = false;
  83.845 +["The initiative draft has been updated again in the meanwhile, support not updated!"] = "The initiative draft has been updated again. Support has not updated in the meantime, however";
  83.846  ["The initiative text has been updated"] = false;
  83.847 -["The initiators suggest to support the following initiative:"] = false;
  83.848 -["The title is the figurehead of your iniative. It should be short but meaningful! As others identifies your initiative by this title, you cannot change it later!"] = false;
  83.849 +["The initiators suggest to support the following initiative:"] = "The initiators suggest supporting the following initiative";
  83.850 +["The minimum absolute number of approval votes."] = false;
  83.851  ["This delegation is suspended, because you voted yourself."] = false;
  83.852 +["This email address already been used. Please check your inbox for an invitation or contact us."] = "This email address is already being used. Please check your inbox for an invitation or contact us.";
  83.853  ["This email address is too short!"] = false;
  83.854  ["This initiative"] = false;
  83.855  ["This initiative has been revoked at #{revoked} by:"] = false;
  83.856  ["This initiative has not been admitted! It failed the 2nd quorum of #{quorum}."] = false;
  83.857 -["This initiative is already revoked"] = false;
  83.858 -["This initiative is revoked"] = false;
  83.859 +["This initiative is already revoked"] = "This initiative has already been revoked";
  83.860 +["This initiative is revoked"] = "This initiative has been revoked";
  83.861 +["This initiative references a FirstLife object."] = false;
  83.862  ["This invite key is connected with the following information:"] = false;
  83.863  ["This is the only initiative in this issue, because nobody started a competing initiative."] = false;
  83.864  ["This issue is already closed."] = false;
  83.865 -["This issue is already frozen."] = false;
  83.866 +["This issue is already frozen."] = "The voting phase has already begun";
  83.867  ["This issue is closed"] = false;
  83.868 -["This login is already taken, please choose another one!"] = false;
  83.869 +["This login is already taken, please choose another one!"] = "This login has already been taken. Please choose another one!";
  83.870  ["This login is too short!"] = false;
  83.871  ["This member account has been created at #{created}"] = false;
  83.872  ["This member has rejected to become initiator of this initiative"] = false;
  83.873 @@ -622,93 +664,96 @@
  83.874  ["This member is currently participating in this issue."] = false;
  83.875  ["This member is inactive"] = false;
  83.876  ["This member is locked"] = false;
  83.877 -["This member is participating, the remaining delegation chain is suspended during discussing."] = false;
  83.878 +["This member is participating, the remaining delegation chain is suspended during discussing."] = "This member is currently participating in this issue, so the remaining delegation chain will be suspended during the discussion.";
  83.879  ["This name is already taken, please choose another one!"] = false;
  83.880  ["This name is too short!"] = false;
  83.881  ["This screen name is too short!"] = false;
  83.882  ["This service is provided by:"] = false;
  83.883  ["This service is provided using the following software components:"] = false;
  83.884  ["This suggestion has been meanwhile deleted"] = false;
  83.885 -["This title is really too short!"] = false;
  83.886 +["This title is really too short!"] = "This title is too short";
  83.887  ["This title is too long!"] = false;
  83.888 +["Thursday"] = false;
  83.889  ["Title"] = false;
  83.890 -["To create a competing initiative see below."] = false;
  83.891 -["Trustee has no voting right in this unit"] = false;
  83.892 -["Underline main headlines with ==="] = false;
  83.893 -["Underline sub headlines with ---"] = false;
  83.894 +["Trustee has no voting right in this unit"] = "Delegatee has no voting rights in this unit";
  83.895 +["Tuesday"] = false;
  83.896  ["Unit"] = false;
  83.897  ["Unit delegation"] = false;
  83.898  ["Unit list"] = false;
  83.899  ["Unknown author"] = false;
  83.900 -["Updated drafts"] = false;
  83.901  ["Upload avatar/photo"] = false;
  83.902 -["Use [Text](http://example.com/) for links"] = false;
  83.903  ["Use terms"] = false;
  83.904 +["Used by account"] = false;
  83.905 +["User accounts"] = false;
  83.906 +["User management"] = false;
  83.907 +["User with same name already exists (#{count})"] = false;
  83.908 +["Value"] = false;
  83.909 +["Verfication time"] = false;
  83.910  ["Verification"] = false;
  83.911 -["Verification #{time_info}"] = false;
  83.912 +["Verification data"] = false;
  83.913 +["Verification phase"] = false;
  83.914 +["Verification requests"] = false;
  83.915  ["Verification started"] = false;
  83.916  ["Verification time"] = false;
  83.917 +["Verified at"] = false;
  83.918 +["Verified by"] = false;
  83.919 +["Verified by account"] = false;
  83.920 +["Verify account"] = false;
  83.921  ["Vote delegation"] = false;
  83.922 -["Voted no"] = false;
  83.923 -["Voted yes"] = false;
  83.924  ["Voters"] = false;
  83.925  ["Voting"] = false;
  83.926 -["Voting #{time_info}"] = false;
  83.927  ["Voting comment"] = false;
  83.928  ["Voting comment (last updated: #{timestamp})"] = false;
  83.929  ["Voting comment (optional)"] = false;
  83.930  ["Voting comment available"] = false;
  83.931  ["Voting for this issue has already begun."] = false;
  83.932  ["Voting has not started yet."] = false;
  83.933 +["Voting phase"] = false;
  83.934  ["Voting started"] = false;
  83.935  ["Voting time"] = false;
  83.936 +["Warning: Untrusted third party application."] = false;
  83.937  ["We couldn't deliver a confirmation mail to this address. Please check entered email address."] = false;
  83.938  ["We have sent an email with activation link already in the last hour. Please try again later."] = false;
  83.939 -["Website"] = false;
  83.940 +["We have sent you an invitation email to finish the account setup."] = false;
  83.941 +["Wednesday"] = false;
  83.942  ["What can I do here?"] = false;
  83.943  ["What this member is currently supporting"] = false;
  83.944 -["Wiki engine"] = false;
  83.945 -["Wiki engine for statement"] = false;
  83.946 -["Withdraw membership"] = false;
  83.947  ["Yes"] = false;
  83.948  ["Yes, it's implemented"] = false;
  83.949  ["You already voted this issue"] = false;
  83.950 -["You are already initiator"] = false;
  83.951 +["You are already initiator"] = "You are already an initiator";
  83.952  ["You are already supporting the latest draft"] = false;
  83.953 -["You are currently not invited to any initiative."] = false;
  83.954  ["You are currently not supporting this initiative directly. By adding suggestions to this initiative you will automatically become a potential supporter."] = false;
  83.955 -["You are initiator of this initiative"] = false;
  83.956 +["You are initiator of this initiative"] = "You are the initiator of this initiative";
  83.957  ["You are interested in this issue"] = false;
  83.958 -["You are invited to #{count} initiative(s)"] = false;
  83.959  ["You are invited to LiquidFeedback. To register please click the following link:\n\n"] = false;
  83.960 -["You are invited to become initiator of '#{initiative_name}'"] = false;
  83.961 -["You are invited to become initiator of this initiative"] = false;
  83.962 -["You are member"] = false;
  83.963 -["You are not eligible to participate"] = false;
  83.964 +["You are invited to become initiator of '#{initiative_name}'"] = "You have been invited to become an initiator for '#{initiative_name}'";
  83.965 +["You are invited to become initiator of this initiative"] = "You have been invited to become an initiator for this initiative";
  83.966  ["You are not entitled to vote in this unit"] = false;
  83.967 -["You are not participating in any of the #{count} areas in this unit"] = false;
  83.968 -["You are not participating in the only area of the unit"] = false;
  83.969  ["You are now initiator of this initiative"] = false;
  83.970 -["You are subscribed for this subject area"] = false;
  83.971 -["You are supporter"] = false;
  83.972 +["You are receiving updates by email for this subject area"] = false;
  83.973 +["You are supporter"] = "You are a supporter";
  83.974 +["You are supporter of this initiative"] = "You are a supporter of this initiative";
  83.975  ["You are supporting this initiative"] = false;
  83.976 -["You blocked this member (i.e. you will not be notified about this members actions)"] = false;
  83.977 +["You blocked this member (i.e. you will not be notified about this members actions)"] = "You blocked this member (i.e. you will not be notified about this member's actions)";
  83.978  ["You can change your email address only once per hour. Please try again later."] = false;
  83.979  ["You can change your text again anytime during admission and discussion phase"] = false;
  83.980 -["You can choose only members which you have been saved as contact before."] = false;
  83.981 +["You can choose only members which you have been saved as contact before."] = "You can only choose members which you have previously saved as contacts.";
  83.982  ["You can't suggest the initiative you are revoking"] = false;
  83.983 -["You cannot change your text again later, because this issue is already in verfication phase!"] = false;
  83.984 +["You cannot change your text again later, because this issue is already in verfication phase!"] = "You cannot change your text again later, because this issue is already in the verification phase!";
  83.985  ["You delegated this issue"] = false;
  83.986  ["You delegated this organizational unit"] = false;
  83.987  ["You delegated this subject area"] = false;
  83.988  ["You delegated this unit"] = false;
  83.989  ["You didn't confirm your email address '#{email}' within 7 days."] = false;
  83.990  ["You didn't confirm your email address '#{email}'. You have received an email with an activation link."] = false;
  83.991 -["You didn't save any member as contact yet."] = false;
  83.992 -["You didn't set the level of notifications you like to receive"] = false;
  83.993 -["You do not like to vote this issue (yourself)"] = false;
  83.994 -["You have been voted"] = false;
  83.995 -["You have not voted #{count} issue(s) you were interested in"] = false;
  83.996 +["You didn't set the level of notifications you like to receive"] = "You didn't set the level of notifications you'd like to receive";
  83.997 +["You do not like to vote this issue (yourself)"] = "You don't wish to vote on this issue yourself";
  83.998 +["You have accepted access privileges for the following account:"] = false;
  83.999 +["You have been granted access privileges for the following account:"] = false;
 83.1000 +["You have been granted access to the following account(s):"] = false;
 83.1001 +["You have been subscribed for update emails about this subject area"] = "You have subscribed to receive update emails about this subject area";
 83.1002 +["You have rejected access privileges for the following account:"] = false;
 83.1003  ["You have to mark 'Are you sure' to revoke!"] = false;
 83.1004  ["You have voted"] = false;
 83.1005  ["You have voted via delegation"] = false;
 83.1006 @@ -717,8 +762,10 @@
 83.1007  ["You refused to become initiator of this initiative"] = false;
 83.1008  ["You saved this member as contact (i.e. to use as delegatee)"] = false;
 83.1009  ["You saved this member as contact (i.e. to use as delegatee) and others can see it"] = false;
 83.1010 -["You've successfully registered and you can login now with your login and password!"] = false;
 83.1011 -["Your avatar is a small photo, which will be shown always next to your name."] = false;
 83.1012 +["You should receive a PIN code via SMS shortly. Please enter the PIN."] = false;
 83.1013 +["You will no longer receive update emails about this subject area"] = false;
 83.1014 +["You will receive status update notification on issue phase changes. Additionally you can subscribe for a regular digest including updates on initiative drafts and new suggestions."] = "You will receive status update notifications on issue phase changes. Additionally, you can subscribe for a regular digest, which includes updates on initiative drafts and new suggestions.";
 83.1015 +["Your avatar is a small photo, which will be shown always next to your name."] = "Your avatar is a small photo that will be shown always next to your name.";
 83.1016  ["Your choice"] = false;
 83.1017  ["Your email address has been changed, please check for confirmation email with activation link!"] = false;
 83.1018  ["Your login has been changed to '#{login}'"] = false;
 83.1019 @@ -726,19 +773,16 @@
 83.1020  ["Your page has been updated"] = false;
 83.1021  ["Your password has been updated successfully"] = false;
 83.1022  ["Your photo will be shown in your profile."] = false;
 83.1023 -["Your rating has been deleted"] = false;
 83.1024 -["Your rating has been updated"] = false;
 83.1025  ["Your request has been processed."] = false;
 83.1026  ["Your suggestion has been added"] = false;
 83.1027  ["Your support has been updated to the latest draft"] = false;
 83.1028  ["Your vote has been discarded. Delegation rules apply if set."] = false;
 83.1029  ["[Name of Language]"] = "English";
 83.1030 -["[Not public]"] = false;
 83.1031 +["[Not public]"] = "Not displayed publically";
 83.1032  ["[calculating]"] = false;
 83.1033  ["[event mail]       URL: #{url}"] = "       URL: #{url}";
 83.1034  ["[event mail]      Area: #{name}"] = "      Area: #{name}";
 83.1035  ["[event mail]      Unit: #{name}"] = "      Unit: #{name}";
 83.1036 -["[event mail]     Event: #{event}"] = "     Event: #{event}";
 83.1037  ["[event mail]     Issue: ##{id}"] = "     Issue: ##{id}";
 83.1038  ["[event mail]     Phase: #{phase}"] = "     Phase: #{phase}";
 83.1039  ["[event mail]    Policy: #{policy}"] = "    Policy: #{policy}";
 83.1040 @@ -755,60 +799,75 @@
 83.1041  ["[not displayed public]"] = false;
 83.1042  ["abandoned"] = false;
 83.1043  ["accept invitation"] = false;
 83.1044 +["accepted [account access]"] = "accepted";
 83.1045 +["account activated"] = false;
 83.1046  ["action"] = false;
 83.1047  ["activate account"] = false;
 83.1048  ["activated"] = false;
 83.1049  ["add my interest"] = false;
 83.1050  ["add my support"] = false;
 83.1051 -["add to my list of private contacts"] = false;
 83.1052 -["add to my list of public contacts"] = false;
 83.1053 +["add to my list of private contacts"] = "Add to my list of private contacts";
 83.1054 +["add to my list of public contacts"] = "Add to my list of public contacts";
 83.1055  ["add your support (see above) and rate or write new suggestions (and thereby restrict your support to certain conditions if necessary)"] = false;
 83.1056 +["added interest to #{issue}"] = false;
 83.1057 +["added support to #{initiative}"] = false;
 83.1058 +["agents"] = false;
 83.1059  ["all issues"] = false;
 83.1060 +["all results"] = false;
 83.1061 +["all subject areas"] = false;
 83.1062  ["allow invitation again"] = false;
 83.1063 -["and"] = false;
 83.1064 +["#{opinion} and #{implemented}"] = "#{opinion} and #{implemented}";
 83.1065 +["#{opinion} but #{implemented}"] = "#{opinion} but #{implemented}";
 83.1066  ["and #{count} more initiatives"] = false;
 83.1067  ["area"] = false;
 83.1068 -["at least #{count} approvals"] = false;
 83.1069 -["at least #{count} approvals or abstentions"] = false;
 83.1070  ["author"] = false;
 83.1071 +["automatically verified"] = false;
 83.1072  ["avatar/photo"] = false;
 83.1073 +["between"] = false;
 83.1074  ["block this member"] = false;
 83.1075 +["browse the platform as a guest"] = false;
 83.1076 +["browse the portal as an unregistered user"] = false;
 83.1077  ["browse through the competing initiatives"] = false;
 83.1078 -["but"] = false;
 83.1079 +["by"] = false;
 83.1080  ["by A-Z"] = false;
 83.1081  ["by Z-A"] = false;
 83.1082 -["by default only those issues are shown, for which your are eligible to participate (change filters on top of the list)"] = false;
 83.1083 +["by default only those issues are shown, for which your are eligible to participate (change filters on top of the list)"] = "By default, only those issues are shown for which your are eligible to participate (change filters on top of the list)";
 83.1084  ["by latest activity"] = false;
 83.1085  ["cancel"] = false;
 83.1086  ["cancel issue"] = false;
 83.1087  ["cancel issue now"] = false;
 83.1088 -["cancel registration"] = false;
 83.1089  ["canceled"] = false;
 83.1090 -["change avatar/photo"] = false;
 83.1091 +["change avatar/photo"] = "Change avatar/photo";
 83.1092 +["change delegation..."] = false;
 83.1093 +["change my login"] = "Change my login";
 83.1094 +["change my password"] = "Change my password";
 83.1095 +["change my screen name"] = "Change my screen name";
 83.1096  ["change my vote"] = false;
 83.1097  ["change vote"] = false;
 83.1098 -["change your login"] = false;
 83.1099 -["change your notification email address"] = false;
 83.1100 -["change your password"] = false;
 83.1101 -["change your screen name"] = false;
 83.1102 -["change/revoke area delegation"] = false;
 83.1103 -["change/revoke delegation"] = false;
 83.1104 +["change/revoke area delegation"] = "Change/revoke area delegation";
 83.1105 +["change/revoke delegation"] = "Change/revoke delegation";
 83.1106  ["change/revoke delegation of organizational unit"] = false;
 83.1107  ["change/revoke delegation of subject area"] = false;
 83.1108  ["change/revoke delegation only for this issue"] = false;
 83.1109  ["change/revoke delegation only for this subject area"] = false;
 83.1110  ["change/revoke issue delegation"] = false;
 83.1111 -["check your "] = false;
 83.1112 +["check the issues on the right, and click on 'Vote now' to vote on an issue which is in voting phase."] = "Check the issues on the right, and click on 'Vote now' to vote on an issue which is in voting phase.";
 83.1113 +["check your "] = "Check your ";
 83.1114  ["choose delegatee"] = false;
 83.1115 -["choose issue delegatee"] = false;
 83.1116 -["choose subject area delegatee"] = false;
 83.1117 -["collapse subject areas"] = false;
 83.1118 +["choose issue delegatee"] = "Choose issue delegatee";
 83.1119 +["choose subject area delegatee"] = "Choose subject area delegatee";
 83.1120 +["closed"] = false;
 83.1121  ["collective rating:"] = false;
 83.1122  ["compare"] = false;
 83.1123  ["compare revisions"] = false;
 83.1124  ["confirm"] = false;
 83.1125  ["confirmed address"] = false;
 83.1126 +["connected applications"] = false;
 83.1127 +["create newsletter"] = false;
 83.1128 +["created #{initiative} (as new issue)"] = false;
 83.1129 +["currently leading"] = false;
 83.1130  ["database download"] = false;
 83.1131 +["day"] = false;
 83.1132  ["day [interval ago]"] = "day";
 83.1133  ["day [interval time left]"] = "day";
 83.1134  ["day [interval]"] = "day";
 83.1135 @@ -816,157 +875,177 @@
 83.1136  ["days [interval time left]"] = "days";
 83.1137  ["days [interval]"] = "days";
 83.1138  ["deactivated"] = false;
 83.1139 +["delegate..."] = false;
 83.1140  ["delegated to"] = false;
 83.1141  ["delegates to"] = false;
 83.1142 -["delegation suspended during discussion"] = false;
 83.1143 +["delegation"] = false;
 83.1144 +["delete"] = false;
 83.1145  ["delete<br /><br />"] = false;
 83.1146 -["developer settings"] = false;
 83.1147 +["denied"] = false;
 83.1148  ["direct interest"] = false;
 83.1149  ["discard"] = false;
 83.1150  ["discard my vote"] = false;
 83.1151  ["do not notify me about this voting anymore"] = false;
 83.1152  ["download database"] = false;
 83.1153 -["draft ID"] = false;
 83.1154  ["draft history (#{count})"] = false;
 83.1155 -["edit profile data"] = false;
 83.1156 -["edit proposal and/or reasons"] = false;
 83.1157 -["email"] = false;
 83.1158 +["draft updated"] = false;
 83.1159 +["draft updated for "] = false;
 83.1160 +["drafts of #{draft_count} initiatives updated"] = "The drafts of #{draft_count} initiatives have been updated";
 83.1161 +["edit my profile"] = "Edit my profile";
 83.1162 +["edit proposal and/or reasons"] = "Edit proposal and/or reasons";
 83.1163 +["email address"] = false;
 83.1164  ["ends in #{state_time_left}"] = false;
 83.1165  ["ends soon"] = false;
 83.1166 +["every"] = false;
 83.1167 +["expert editor (HTML)"] = false;
 83.1168 +["external reference"] = false;
 83.1169  ["failed #{quorum}"] = false;
 83.1170 +["featured"] = false;
 83.1171 +["featured initiatives"] = false;
 83.1172  ["finished"] = false;
 83.1173  ["global"] = false;
 83.1174 -["hide details"] = false;
 83.1175 +["has my support"] = false;
 83.1176  ["i#{id}: #{name}"] = false;
 83.1177 -["if you like to implement a suggestion in your proposal and/or reasons, update your initiative draft"] = false;
 83.1178 -["implemented"] = false;
 83.1179 +["if you like to implement a suggestion in your proposal and/or reasons, update your initiative draft"] = "If you'd like to implement a suggestion in your proposal and/or reasons, update your initiative draft";
 83.1180  ["implemented:"] = false;
 83.1181  ["in all phases"] = false;
 83.1182 -["in my areas"] = false;
 83.1183  ["in my units"] = false;
 83.1184 -["inactive"] = false;
 83.1185  ["initiated by me"] = false;
 83.1186 +["interest"] = false;
 83.1187  ["interest via delegation"] = false;
 83.1188  ["interested directly or via delegation"] = false;
 83.1189 -["invite another initiator"] = false;
 83.1190 +["invite another initiator"] = "Invite another initiator";
 83.1191  ["is implemented"] = false;
 83.1192  ["is not implemented"] = false;
 83.1193  ["issue"] = false;
 83.1194 -["issue view"] = false;
 83.1195 +["issue list"] = false;
 83.1196  ["login name"] = false;
 83.1197  ["login to participate"] = false;
 83.1198 -["logout"] = false;
 83.1199 +["logout"] = "Logout";
 83.1200  ["make this contact private"] = false;
 83.1201  ["make this contact public"] = false;
 83.1202  ["member inactive"] = false;
 83.1203 +["mode"] = false;
 83.1204 +["month"] = false;
 83.1205  ["month [interval ago]"] = "month";
 83.1206  ["month [interval time left]"] = "month";
 83.1207  ["month [interval]"] = "month";
 83.1208  ["months [interval ago]"] = "months";
 83.1209  ["months [interval time left]"] = "months";
 83.1210  ["months [interval]"] = "months";
 83.1211 +["more: #{url}"] = false;
 83.1212  ["must"] = false;
 83.1213  ["must be implemented"] = false;
 83.1214  ["must not"] = false;
 83.1215  ["my issues"] = false;
 83.1216  ["neutral"] = false;
 83.1217 +["new issue"] = false;
 83.1218 +["new requests"] = false;
 83.1219 +["new suggestion added"] = false;
 83.1220 +["new suggestion for "] = false;
 83.1221  ["newest first"] = false;
 83.1222  ["no delegation set"] = false;
 83.1223 -["no reverse beat path to status quo (including ties)"] = false;
 83.1224  ["none"] = false;
 83.1225 +["not activated (yet)"] = false;
 83.1226  ["not admitted"] = false;
 83.1227 -["not implemented"] = false;
 83.1228 +["not decided yet"] = false;
 83.1229  ["not voted by me"] = false;
 83.1230  ["not yet"] = false;
 83.1231 -["notification settings"] = false;
 83.1232 -["notifications"] = false;
 83.1233 -["notifications settings"] = false;
 83.1234 +["notification email address"] = "Notification email address";
 83.1235 +["notification settings"] = "Notification settings";
 83.1236 +["notifications settings"] = "notification settings";
 83.1237  ["oldest first"] = false;
 83.1238  ["one step back"] = false;
 83.1239 -["open the appropriate subject area for your issue and follow the instruction on that page."] = false;
 83.1240 -["open the organizational unit, subject area or issue you like to delegate and follow the instruction on that page."] = false;
 83.1241 -["or swipe"] = false;
 83.1242 +["open the appropriate subject area for your issue and follow the instruction on that page."] = "Open the appropriate subject area for your issue and follow the instructions on that page.";
 83.1243 +["open the organizational unit, subject area or issue you like to delegate and follow the instruction on that page."] = "Open the organizational unit, subject area or issue you want to delegate and follow the instruction on that page.";
 83.1244  ["ordered by delegation count"] = false;
 83.1245 +["other reasons (#{count})"] = false;
 83.1246 +["phase"] = false;
 83.1247  ["phase ends soon"] = false;
 83.1248 -["possibly instable result caused by multistage majority"] = false;
 83.1249 -["preference voting"] = false;
 83.1250 +["possibly instable result caused by multistage majority"] = "possibly unstable result caused by multistage majority";
 83.1251 +["preference voting"] = "Preference voting";
 83.1252  ["proceed with registration"] = false;
 83.1253 -["prohibit potentially instable results caused by multistage majorities"] = false;
 83.1254 +["profile and settings"] = "Profile and settings";
 83.1255  ["public administrative notice:"] = false;
 83.1256  ["publish avatar/photo"] = false;
 83.1257  ["publish my rating"] = false;
 83.1258  ["publish profile data"] = false;
 83.1259  ["publish suggestion"] = false;
 83.1260 -["published at"] = false;
 83.1261 +["rate suggestion"] = false;
 83.1262  ["reached #{quorum}"] = false;
 83.1263  ["refresh my support"] = false;
 83.1264  ["refuse invitation"] = false;
 83.1265 +["rejected [account access]"] = "rejected";
 83.1266  ["remove an initiator"] = false;
 83.1267  ["remove from my contact list"] = false;
 83.1268 -["remove my interest"] = false;
 83.1269 -["remove my support"] = false;
 83.1270 +["remove my interest"] = "Remove my interest";
 83.1271 +["remove my support"] = "Remove my support";
 83.1272 +["removed interest"] = false;
 83.1273 +["removed support"] = false;
 83.1274 +["request role account"] = false;
 83.1275  ["reverse beat path to status quo (including ties)"] = false;
 83.1276  ["revoke"] = false;
 83.1277 -["revoke initiative"] = false;
 83.1278 +["revoke initiative"] = "Revoke initiative";
 83.1279  ["revoked"] = false;
 83.1280  ["search"] = false;
 83.1281 -["select tabs"] = false;
 83.1282 +["sent"] = false;
 83.1283  ["should"] = false;
 83.1284  ["should be implemented"] = false;
 83.1285  ["should not"] = false;
 83.1286 -["show all units"] = false;
 83.1287 -["show details"] = false;
 83.1288 +["show"] = false;
 83.1289 +["show all units"] = "Show all units";
 83.1290 +["show ballot"] = false;
 83.1291  ["show differences"] = false;
 83.1292 -["show other subject areas"] = false;
 83.1293 -["show saved contacts"] = false;
 83.1294 -["show subject areas"] = false;
 83.1295 +["show incoming delegations"] = false;
 83.1296 +["show my profile"] = "Show my profile";
 83.1297 +["show profile"] = "Show profile";
 83.1298  ["show vote"] = false;
 83.1299 -["start a new competing initiative"] = false;
 83.1300 -["start an initiative in a new issue"] = false;
 83.1301 -["structured discussion"] = false;
 83.1302 -["subscribe"] = false;
 83.1303 -["subscribe subject areas or add your interested to issues and you will be notified about changes (follow the instruction on the area or issue page)"] = false;
 83.1304 -["subscribed"] = false;
 83.1305 -["suggestions (#{count}) ↓"] = false;
 83.1306 -["supporter"] = false;
 83.1307 -["supporter with restricting suggestions"] = false;
 83.1308 -["take a look at the competing initiatives"] = false;
 83.1309 -["take a look at the suggestions (see left) and rate them"] = false;
 83.1310 -["take a look at the suggestions of your supporters"] = false;
 83.1311 -["take a look on the issues (see left)"] = false;
 83.1312 +["start a new competing initiative"] = "Start a new competing initiative";
 83.1313 +["start an initiative in a new issue"] = "start a new issue";
 83.1314 +["structured discussion"] = "Structured discussion";
 83.1315 +["subscribe for update emails about this area"] = false;
 83.1316 +["subscribe subject areas or add your interested to issues and you will be notified about changes (follow the instruction on the area or issue page)"] = "Subscribe to subject areas or show you interest for certain issues. You will then be notified about changes to those issues (follow the instructions on the area or issue page)";
 83.1317 +["supporter"] = "supporters";
 83.1318 +["supporter with restricting suggestions"] = "supporters with restricting suggestions";
 83.1319 +["switch to: #{member_name}"] = false;
 83.1320 +["take a look at the competing initiatives"] = "Take a look at the competing initiatives";
 83.1321 +["take a look at the suggestions (see right) and rate them"] = "Take a look at the suggestions (see right) and rate them";
 83.1322 +["take a look at the suggestions of your supporters"] = "Take a look at the suggestions of your supporters";
 83.1323 +["take a look on the issues (see right)"] = "Take a look at the issues (see right side)";
 83.1324  ["the following login is connected to this email address:\n\n"] = false;
 83.1325  ["this issue is in verification phase, therefore the initiative text cannot be updated anymore"] = false;
 83.1326  ["this issue is in voting phase, therefore the initiative text cannot be updated anymore"] = false;
 83.1327  ["timeline"] = false;
 83.1328 -["to argue about suggestions, just add your arguments to your reasons in the initiative draft, so your supporters can learn about your opinion"] = false;
 83.1329 +["to argue about suggestions, just add your arguments to your reasons in the initiative draft, so your supporters can learn about your opinion"] = "To debate suggestions, just add your arguments to your reasons in the initiative draft, so your supporters can learn about your opinion";
 83.1330  ["to reset your password please click on the following link:\n\n"] = false;
 83.1331 -["to show more info and learn what you can do"] = false;
 83.1332  ["today at #{time}"] = false;
 83.1333  ["unblock member"] = false;
 83.1334  ["unconfirmed address"] = false;
 83.1335  ["unit"] = false;
 83.1336 -["unit / area"] = false;
 83.1337 -["unsubscribe"] = false;
 83.1338 +["unsubscribe from update emails about this area"] = "Unsubscribe from update emails about this area";
 83.1339  ["until"] = false;
 83.1340  ["update area"] = false;
 83.1341  ["update member"] = false;
 83.1342  ["update policy"] = false;
 83.1343 +["update rating"] = false;
 83.1344  ["update unit"] = false;
 83.1345 -["variable"] = false;
 83.1346 +["verified"] = false;
 83.1347  ["via delegation"] = false;
 83.1348 -["vote delegation"] = false;
 83.1349 +["vote delegation"] = "Vote delegation";
 83.1350  ["vote now"] = false;
 83.1351 +["voted"] = false;
 83.1352  ["voted and not voted by me"] = false;
 83.1353  ["voted by me"] = false;
 83.1354  ["voted directly by me"] = false;
 83.1355  ["voted no"] = false;
 83.1356  ["voted via delegation"] = false;
 83.1357  ["voted yes"] = false;
 83.1358 -["without"] = false;
 83.1359 +["wants to access your account"] = false;
 83.1360 +["with"] = false;
 83.1361  ["without quorum"] = false;
 83.1362 -["write a new suggestion"] = false;
 83.1363 -["written and rated by the supportes of this initiative to improve the proposal and its reasons"] = false;
 83.1364 -["xmpp"] = false;
 83.1365 +["write a new suggestion"] = "Write a new suggestion";
 83.1366 +["written and rated by the supportes of this initiative to improve the proposal and its reasons"] = "written and rated by the supporters of this initiative to improve the proposal and its reasons";
 83.1367 +["year"] = false;
 83.1368  ["year [interval ago]"] = "year";
 83.1369  ["year [interval time left]"] = "year";
 83.1370  ["year [interval]"] = "year";
 83.1371 @@ -974,8 +1053,6 @@
 83.1372  ["years [interval time left]"] = "years";
 83.1373  ["years [interval]"] = "years";
 83.1374  ["yesterday at #{time}"] = false;
 83.1375 -["you are interested"] = false;
 83.1376 -["you are subscribed"] = false;
 83.1377  ["you have #{count} incoming delegations"] = false;
 83.1378  ["you restricted your support by rating suggestions as must or must not"] = false;
 83.1379  ["you voted"] = false;
    84.1 --- a/locale/translations.eo.lua	Thu Feb 03 15:54:23 2022 +0100
    84.2 +++ b/locale/translations.eo.lua	Thu Feb 03 15:57:22 2022 +0100
    84.3 @@ -338,7 +338,7 @@
    84.4  ["Invite an initiator to initiative"] = "Inviti inicionton al la iniciato";
    84.5  ["Invite code"] = "Invitokodo";
    84.6  ["Invite member"] = false;
    84.7 -["Invited"] = "Invitita";
    84.8 +["Invited [as initiator]"] = "Invitita";
    84.9  ["Issue #"] = false;
   84.10  ["Issue ##{id}"] = "Temo ##{id}";
   84.11  ["Issue ##{issue_id}: #{initiative_name}"] = false;
   84.12 @@ -365,7 +365,8 @@
   84.13  ["Lists must be preceeded and followed by at least one blank line"] = false;
   84.14  ["Lock member?"] = false;
   84.15  ["Locked?"] = "Ĉu blokita?";
   84.16 -["Login"] = "Ensaluti";
   84.17 +["Login [headline]"] = "Ensaluti";
   84.18 +["Login [button]"] = "Ensaluti";
   84.19  ["Login name"] = "Salutnomo";
   84.20  ["Login name request"] = false;
   84.21  ["Login-Name: "] = false;
    85.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    85.2 +++ b/locale/translations.es.lua	Thu Feb 03 15:57:22 2022 +0100
    85.3 @@ -0,0 +1,1062 @@
    85.4 +#!/usr/bin/env lua
    85.5 +return {
    85.6 +[" + file_upload_id); html = html.replace("] = false;
    85.7 +[" + file_upload_id); var el = document.createElement("] = false;
    85.8 +["#{closed_ago} ago"] = "hace #{closed_ago}";
    85.9 +["#{count} Neutral"] = "#{count} Neutral";
   85.10 +["#{count} No"] = "#{count} No";
   85.11 +["#{count} Yes, alternative choice"] = "#{count} Sí, opción alternativa";
   85.12 +["#{count} Yes, first choice"] = "#{count} Sí, primera opción";
   85.13 +["#{count} matching issues found"] = "#{count} temas correspondientes encontrados";
   85.14 +["#{count} matching members found"] = "#{count} miembros correspondientes encontrados";
   85.15 +["#{count} suggestions added"] = "#{count} sugerencias añadidas";
   85.16 +["#{count} suggestions added for #{initiative}"] = "#{count} sugerencias añadidas para #{initiative}";
   85.17 +["#{count} supporter"] = "#{count} partidario";
   85.18 +["#{duration}"] = "#{duration}";
   85.19 +["#{interval_text} [interval]"] = "#{interval_text}";
   85.20 +["#{interval_text} ago"] = "hace #{interval_text}";
   85.21 +["#{interval_text} left"] = "faltan #{interval_text}";
   85.22 +["#{interval} ago"] = "hace #{interval}";
   85.23 +["#{issue} is in voting"] = "#{issue} está en votación";
   85.24 +["#{number} Image(s) has been deleted"] = "#{number} imagen(es) ha(n) sido borrada(s)";
   85.25 +["#{number} Image(s) has been updated"] = "#{number}imagen(es) ha(n) sido actualizada(s)";
   85.26 +["#{opinion} and #{implemented}"] = "\"#{opinion}\" y #{implemented}";
   85.27 +["#{opinion} but #{implemented}"] = "\"#{opinion}\" pero #{implemented}";
   85.28 +["#{percentage}%"] = "#{percentage}%";
   85.29 +["#{result}: #{yes_count} Yes (#{yes_percent}), #{no_count} No (#{no_percent}), #{neutral_count} Abstention (#{neutral_percent})"] = "#{result}: #{yes_count} Sí (#{yes_percent}), #{no_count} No (#{no_percent}), #{neutral_count} Abstención (#{neutral_percent})";
   85.30 +["(+ #{count} potential)"] = "(+ #{count} posible)";
   85.31 +["(detached)"] = "(separado)";
   85.32 +["(new window)"] = "(en una ventana nueva)";
   85.33 +["(new)"] = "(nuevo(a)(s))";
   85.34 +["+ add new subject area"] = "+ añadir nueva área temática";
   85.35 +["1 matching issue found"] = "1 tema correspondiente encontrado";
   85.36 +["1 matching member found"] = "1 miembro correspondiente encontrado";
   85.37 +["4 phases of a decision"] = "Las 4 fases de una decisión";
   85.38 +["A short title (80 chars max)"] = "Un título breve (80 carácteres máximo)";
   85.39 +["Abandon global delegation for this area"] = "Abandonar delegación global para esta área";
   85.40 +["Abandon unit and area delegations for this issue"] = "Abandonar  delegaciones de unidad y de área para este tema";
   85.41 +["Abandon unit delegation"] = "abandonar delegación de unidad";
   85.42 +["Abandon unit delegation for this area"] = "Abandonar delegación de unidad para esta área";
   85.43 +["About site"] = "Acerca del sitio web";
   85.44 +["Absolute initiative quorum"] = "Quórum absoluto de la iniciativa";
   85.45 +["Absolute issue quorum"] = "Quórum absoluto de un tema";
   85.46 +["Absolute number of approval and abstention votes"] = "Número absoluto de votos de aprobación y abstención";
   85.47 +["Absolute number of approval votes"] = "Número absoluto de votos de aprobación";
   85.48 +["Abstention"] = "Abstención";
   85.49 +["Abstention [many entries]"] = "Abstenciones";
   85.50 +["Abstention [single entry]"] = "Abstención";
   85.51 +["Accept access privilege"] = "Aceptar privilegio de acceso";
   85.52 +["Accepted at"] = "Aceptado el";
   85.53 +["Account"] = "Cuenta";
   85.54 +["Account access"] = "Acceso a la cuenta";
   85.55 +["Account access by member"] = "Acceso a la cuenta por un miembro";
   85.56 +["Account access invitation from '#{member_name}'"] = "Invitación de acceso a la cuenta enviada por";
   85.57 +["Account history"] = "Historial de la cuenta";
   85.58 +["Account not activated (yet) (#{count})"] = "Cuenta (aún) no activada (#{count})";
   85.59 +["Account registration"] = "Registro de cuentas";
   85.60 +["Accredited (#{count})"] = "Acreditado (#{count})";
   85.61 +["Accredited role accounts"] = "Cuentas de rol acreditadas";
   85.62 +["Accredited users"] = "Usuarios acreditados";
   85.63 +["Activated"] = "Activado";
   85.64 +["Activated accounts (#{count})"] = "Cuentas activadas (#{count})";
   85.65 +["Active?"] = "¿Activo?";
   85.66 +["Add a new suggestion for improvement"] = "Añadir una nueva sugerencia de mejora";
   85.67 +["Add new account access privilege"] = "Añadir nuevo privilegio de acceso de cuenta";
   85.68 +["Added attachments"] = "Anexos añadidos";
   85.69 +["Admin?"] = "¿Adminstrador?";
   85.70 +["Admission"] = "Admisión";
   85.71 +["Admission phase"] = "Fase de admisión";
   85.72 +["Admission qourum factor"] = "Factor de admisión de quórum";
   85.73 +["Admission quorum exponent"] = "Exponente del quórum de admisión";
   85.74 +["Admission quorum issues"] = "Temas de quórum de admisión";
   85.75 +["Admission quorum standard"] = "Norma de quórum de admisión";
   85.76 +["Admission quorum time"] = "Tiempo de quórum de admisión";
   85.77 +["Admission time"] = "Tiempo de admisión";
   85.78 +["Admitted"] = "Admitida";
   85.79 +["Agents"] = "Agentes";
   85.80 +["All fields are optional. Please enter only data which should be published."] = "Todos los campos son opcionales. Introduce sólo los datos que deban publicarse";
   85.81 +["All initiatives failed 2nd quorum"] = "Todas las iniciativas no lograron llegar el segundo quórum";
   85.82 +["All members"] = "Todos los miembros";
   85.83 +["All units"] = "Todas las unidades";
   85.84 +["Allowed policies"] = "Políticas permitidas";
   85.85 +["Application authorization"] = "Autorización de la aplicación";
   85.86 +["Apply global delegation for this area (Currently: #{delegate_name} [#{scope}])"] = "Aplicar delegación global para esta área (Actualmente: #{delegate_name} [#{scope}])";
   85.87 +["Apply global or area delegation for this issue (Currently: #{delegate_name} [#{scope}])"] = "Aplicar  delegación global o de área para este tema (Actualmente: #{delegate_name} [#{scope}])";
   85.88 +["Apply unit delegation for this area (Currently: #{delegate_name} [#{scope}])"] = "Aplicar delegación de unidad para esta área (Actualmente: #{delegate_name} [#{scope}])";
   85.89 +["Apply unit or area delegation for this issue (Currently: #{delegate_name} [#{scope}])"] = "Aplicar delegación de unidad o área para este tema (Actualmente:# {delegate_name} [#{scope}])";
   85.90 +["Approval (#th preference) [many entries]"] = "Aprobación (preferencia #)";
   85.91 +["Approval (#th preference) [single entry]"] = "Aprobación (preferencia #)";
   85.92 +["Approval (first preference) [many entries]"] = "Aprobación (primera preferencia)";
   85.93 +["Approval (first preference) [single entry]"] = "Aprobación (primera preferencia)";
   85.94 +["Approval (second preference) [many entries]"] = "Aprobación (segunda preferencia)";
   85.95 +["Approval (second preference) [single entry]"] = "Aprobación (segunda preferencia)";
   85.96 +["Approval (third preference) [many entries]"] = "Aprobación (tercera preferencia)";
   85.97 +["Approval (third preference) [single entry]"] = "Aprobación (tercera preferencia)";
   85.98 +["Approval [many entries]"] = "Aprobación";
   85.99 +["Approval [single entry]"] = "Aprobación";
  85.100 +["Approved"] = "Aprobada";
  85.101 +["Are you aware that revoking an initiative is irrevocable?"] = "¿Sabías que la revocación de una iniciativa es irrevocable?";
  85.102 +["Area delegation"] = "Delegación de área";
  85.103 +["As long as you are interested in this issue yourself, the delegation is suspended for this issue, but it will be applied again in the voting phase unless you vote yourself."] = "Mientras tú mismo estés interesado en este tema, tu delegación quedará automáticamente suspendida para este tema. Pero se aplicará de nuevo en la fase de votación a menos que tú mismo votes.";
  85.104 +["As soon as one initiative of this issue reaches the 1st quorum of #{quorum} support, the issue will proceed to discussion phase."] = "En el momento en que una iniciativa de este tema alcance el 1er quórum de apoyo #{quorum}, el tema pasará a la fase de discusión.";
  85.105 +["Attach image"] = "Adjuntar imagen";
  85.106 +["Attr"] = false;
  85.107 +["Author"] = "Autor";
  85.108 +["Avatar"] = "Avatar";
  85.109 +["Ballot of '#{member_name}'"] = "Papeleta de '#{member_name}'";
  85.110 +["Broken delegations"] = "Delegaciones rotas";
  85.111 +["Calculation"] = "Cálculo";
  85.112 +["Can't remove last initiator"] = "No se puede eliminar el último iniciador";
  85.113 +["Can't send confirmation email"] = "No se puede enviar un correo de confirmación";
  85.114 +["Cancel"] = "Cancelar";
  85.115 +["Cancel issue"] = "Cancelar tema";
  85.116 +["Cancel issue ##{id}"] = "Cancelar tema ##{id}";
  85.117 +["Cancel survey"] = "Cancelar encuesta";
  85.118 +["Canceled by administrative intervention"] = "Cancelado por intervención administrativa";
  85.119 +["Cancelled (#{count})"] = "Cancelada(s) (#{count})";
  85.120 +["Cancelled account"] = "Cuenta cancelada";
  85.121 +["Cancelled accounts"] = "Cuentas canceladas";
  85.122 +["Cancelled accounts (#{count})"] = "Cuentas canceladas (#{count})";
  85.123 +["Change email address"] = "Cambiar dirección de email";
  85.124 +["Change order"] = "Cambiar orden";
  85.125 +["Changeset graph:"] = "Gráfico de conjunto de cambios";
  85.126 +["Changeset:"] = "Conjunto de cambio:";
  85.127 +["Check your #{scope} delegation to '#{trustee_name}' for '#{context}'"] = "Comprueba tu delegación de #{scope} a '#{trustee_name}' para '#{context}'";
  85.128 +["Check your outgoing delegations"] = "Comprueba tus delegaciones salientes";
  85.129 +["Choose member"] = "Elegir miembro";
  85.130 +["Choose timing"] = "Escoger hora";
  85.131 +["Choose your delegatee"] = "Elegir tu delegado";
  85.132 +["City"] = "Ciudad";
  85.133 +["Client ID invalid"] = "ID de cliente inválido";
  85.134 +["Closed"] = "Cerrado";
  85.135 +["Closed issues"] = "Temas cerrados";
  85.136 +["Closed user group"] = "Grupo de usuarios cerrado";
  85.137 +["Collective opinion of supporters"] = "Opinión colectiva de los partidarios";
  85.138 +["Comment"] = "Comentar";
  85.139 +["Compare"] = "Comparar";
  85.140 +["Comparision of revisions #{id1} and #{id2}"] = "Comparación de revisiones de #{id1} y #{id2}";
  85.141 +["Competing initiatives"] = "Iniciativas en competencia";
  85.142 +["Competing initiatives failed the 2nd quorum (#{num}/#{den}):"] = "Las iniciativas en competencia no alcanzaron el segundo quórum (#{num}/#{den}):";
  85.143 +["Competing initiatives in pairwise comparison to best initiative:"] = "Iniciativas en competencia en comparación por pares con la mejor iniciativa:";
  85.144 +["Competing initiatives in pairwise comparison to winner:"] = "Iniciativas en competencia en comparación por parejas con el ganador:";
  85.145 +["Configure notifications now"] = "Configurar notificaciones ahora";
  85.146 +["Confirm"] = "Confirmar";
  85.147 +["Confirm notification address"] = "Confirmar dirección para recibir notificaciones";
  85.148 +["Confirm your email address"] = "Confirmar dirección de email";
  85.149 +["Confirmation code"] = "Código de confirmación";
  85.150 +["Confirmation code invalid!"] = "¡Código de confirmación inválido!";
  85.151 +["Connected applications"] = "Aplicaciones conectadas";
  85.152 +["Contact"] = "Contacto";
  85.153 +["Content"] = "Contenido";
  85.154 +["Continue survey"] = "Continuar la encuesta";
  85.155 +["Cookie error. Try restarting your web browser and login again."] = "Error en las cookies. Intenta reiniciar tu navegador web e iniciar sesión de nuevo";
  85.156 +["Create a newsletter"] = "Crear un boletín de noticias";
  85.157 +["Create new policy"] = "Crear una nueva política";
  85.158 +["Create new unit"] = "Crear nueva unidad";
  85.159 +["Created at"] = "Creado el";
  85.160 +["Current delegatee"] = "Delegado actual";
  85.161 +["Current name"] = "Nombre actual";
  85.162 +["Current password"] = "Contraseña actual";
  85.163 +["Current phase is already closed."] = "La fase actual ya está cerrada";
  85.164 +["Current status"] = "Estado actual";
  85.165 +["Current unit and area delegations need confirmation"] = "Las delegaciones actuales de unidad y de área requieren confirmación";
  85.166 +["Currently this is the only initiative in this issue, because nobody started a competing initiative (yet)."] = "Por el momento, ésta es la única iniciativa en este tema, porque nadie ha empezado una iniciativa competidora (hasta ahora).";
  85.167 +["Date"] = "Fecha";
  85.168 +["Date format is not valid. Please use following format: YYYY-MM-DD"] = "El formato de la fecha no es válido. Por favor, utiliza el siguiente formato: AAAA-MM-DD";
  85.169 +["Date/place of birth"] = "Fecha/lugar de nacimiento";
  85.170 +["Deactivate member"] = "Desactivar miembro";
  85.171 +["Decline authorization"] = "Rechazar autorización";
  85.172 +["Default Policy"] = "Política por Defecto";
  85.173 +["Degree"] = "Grado";
  85.174 +["Delegate area"] = "Delegar área";
  85.175 +["Delegate issue"] = "Delegar tema";
  85.176 +["Delegate unit"] = "Delegar unidad";
  85.177 +["Delegation abandoned"] = "Delegación abandonada";
  85.178 +["Delegation turned off for area"] = "Delegación desactivada para esta área";
  85.179 +["Delegation turned off for issue"] = "Delegación desactivada para este tema";
  85.180 +["Delete account"] = "Borrar cuenta";
  85.181 +["Denied at"] = "Denegado a las";
  85.182 +["Deny request"] = "Denegar solicitud";
  85.183 +["Describe how the proposal and/or the reasons of the initiative could be improved"] = "Describe cómo se podría mejorar la propuesta, y/o las razones para hacerlo";
  85.184 +["Description"] = "Descripción";
  85.185 +["Details"] = "Detalles";
  85.186 +["Did the initiator implement this suggestion?"] = "¿Ha implementado el iniciador esta sugerencia?";
  85.187 +["Digest #{id}: #{info}"] = "Boletín #{id}: #{info}";
  85.188 +["Direct majority"] = "Mayoría directa";
  85.189 +["Disapproval (prefer to last block) [many entries]"] = "Desaprobación (preferir al último bloque)";
  85.190 +["Disapproval (prefer to last block) [single entry]"] = "Desaprobación (preferir al último bloque)";
  85.191 +["Disapproval (prefer to lower block) [many entries]"] = "Desaprobación (preferir el bloque menor)";
  85.192 +["Disapproval (prefer to lower block) [single entry]"] = "Desaprobación (preferir el bloque menor)";
  85.193 +["Disapproval (prefer to lower blocks) [many entries]"] = "Desaprobación (preferir bloques menores)";
  85.194 +["Disapproval (prefer to lower blocks) [single entry]"] = "Desaprobación (preferir bloques menores)";
  85.195 +["Disapproval [many entries]"] = "Desaprobación";
  85.196 +["Disapproval [single entry]"] = "Desaprobación";
  85.197 +["Disapproved"] = "Desaprobado";
  85.198 +["Discard my vote"] = "Descartar mi voto";
  85.199 +["Discussion"] = "Discusión";
  85.200 +["Discussion phase"] = "Fase de discusión";
  85.201 +["Discussion started"] = "Discusión comenzada";
  85.202 +["Discussion time"] = "Tiempo de discusión";
  85.203 +["Do you really want to irrevocably deactive this member?"] = "¿Estás seguro que quieres desactivar a este miembro?";
  85.204 +["Do you want to suggest to support another initiative?"] = "¿Quieres sugerir otra iniciativa para apoyar?";
  85.205 +["Domain too long"] = "Dominio demasiado largo";
  85.206 +["Download"] = "Descargar";
  85.207 +["Download database export"] = "Descargar la exportación de la base de datos";
  85.208 +["Download documents"] = "Descargar documentos";
  85.209 +["Draft contains invalid formatting or character sequence: #{error_message}"] = "El borrador contiene un formato o una secuencia de caracteres no válidos: #{error_message}";
  85.210 +["Draft history"] = "Historia del borrador";
  85.211 +["Draft revision #{id}"] = "Borrador de revisión #{id}";
  85.212 +["Duration of discussion phase of an issue."] = "Duración de la fase de discusión de un tema.";
  85.213 +["Duration of verification phase of an issue."] = "Duración de la fase de verificación de un tema.";
  85.214 +["Duration of voting phase of an issue."] = "Duración de la fase de votación de un tema.";
  85.215 +["During the discussion phase, the issue is debated on while the initiators improve the proposals and reasons in their initiatives. Supporters of initiatives can write and rate suggestions for improvement."] = "Durante la fase de discusión, el tema se debate mientras los iniciadores mejoran las propuestas y las razones de sus iniciativas. Los partidarios de las iniciativas pueden escribir y calificar las sugerencias de mejora.";
  85.216 +["During the verification phase, existing initiatives cannot be changed anymore. Initiatives need to pass the 2nd quorum of #{quorum} at end of verification phase to become admitted for voting."] = "Durante la fase de verificación, las iniciativas existentes ya no pueden ser modificadas. Las iniciativas deben superar el 2º quórum de #{quorum} al final de la fase de verificación para ser admitidas a votación.";
  85.217 +["During the voting phase, votes for all admitted initiatives in this issue can be cast. The final result will be calculated as soon as this phase ends."] = "Durante la fase de votación, se puede votar por todas las iniciativas admitidas en este tema. El resultado final se calculará tan pronto como termine esta fase.";
  85.218 +["Edit"] = "Editar";
  85.219 +["Edit again"] = "Editar de nuevo";
  85.220 +["Edit voting comment"] = "Editar comentario de votación";
  85.221 +["Edit your global <link>notification settings</link> to receive updates by email."] = "Edita tu <link>configuración de notificaciones</link> global para recibir actualizaciones por email." ;
  85.222 +["Edit your profile data"] = "Editar tus datos de perfil";
  85.223 +["Eligible as winner"] = "Elegible como ganador";
  85.224 +["Eligible members (#{count})"] = "Miembros elegibles (#{count})";
  85.225 +["Email address"] = "Dirección de email";
  85.226 +["Email address confirmation"] = "Confirmación de correo electrónico";
  85.227 +["Email address for notifications"] = "Dirección de e-mail para notificaciones";
  85.228 +["Email address is confirmed now"] = "Dirección de e-mail confirmada";
  85.229 +["Email address too short!"] = "¡La dirección de e-mail es demasiado corta!";
  85.230 +["Email confirmation request"] = "Solicitud de confirmación por correo electrónico";
  85.231 +["Enter a new email address:"] = "Introduce una nueva dirección de e-mail:";
  85.232 +["Enter abstract:"] = "Introducir el resumen:";
  85.233 +["Enter your proposal and/or reasons:"] = "Introduce tu propuesta y/o razones:";
  85.234 +["Error during authorization"] = "Error durante la autorización";
  85.235 +["Error while converting image. Please note, that only JPG files are supported!"] = "Error al convertir la imagen. Atención: sólo se admiten archivos JPG.";
  85.236 +["Error while updating member, database reported:<br /><br /> (#{errormessage})"] = "Error al actualizar el miembro, la base de datos informó: <br /><br /> (#{errormessage})";
  85.237 +["Etherpad authentication failed"] = "Error en la autentificación del Etherpad";
  85.238 +["Experimental features"] = "Características experimentales";
  85.239 +["External reference"] = "Referencia externa";
  85.240 +["Failed  #{sign}#{num}/#{den}"] = "Error #{sign}#{num}/#{den}";
  85.241 +["Failed 1st quorum"] = "No pasó el primer quórum 1er quórum";
  85.242 +["Field"] = "Campo";
  85.243 +["Filter issues:"] = "Filtrar temas";
  85.244 +["Finish delegation check"] = "Terminar comprobación de delegación";
  85.245 +["Finish voting"] = "Terminar de votar";
  85.246 +["Finished with winner"] = "Terminó con un ganador";
  85.247 +["First quorum"] = "Primer quórum";
  85.248 +["Fiscal code"] = "Código fiscal";
  85.249 +["Fiscal code does not match"] = "El código fiscal no corresponde";
  85.250 +["Fiscal code does not match (#{count})"] = "El código fiscal no corresponde a (#{count}";
  85.251 +["Forbidden"] = "Prohibido";
  85.252 +["Forgot login name?"] = "¿Olvidaste tu nombre de usuario?";
  85.253 +["Forgot password?"] = "¿Olvidaste tu contraseña?";
  85.254 +["Free timing:"] = "Cronología libre:";
  85.255 +["Friday"] = "Viernes";
  85.256 +["Fully frozen at"] = "Totalmente congelado a las";
  85.257 +["Global delegation"] = "Delegación global";
  85.258 +["Go back to home page"] = "Volver a la página de inicio";
  85.259 +["Go to start page"] = "Ir a la página de inicio";
  85.260 +["Grant account access"] = "Conceder acceso a la cuenta";
  85.261 +["Grant authorization"] = "Conceder autorización";
  85.262 +["Half frozen at"] = "Medio congelado a las";
  85.263 +["Hello\n\n"] = "Hola\n\n";
  85.264 +["Hello "] = "Hola ";
  85.265 +["Hello,\n\n"] = "Hola,\n\n";
  85.266 +["Hello #{name},\n\nthis is your personal digest.\n\n#{digest}\n"] = "Hola #{name},\n\neste es tu boletín personal.\n\n#{digest}\n";
  85.267 +["Hide inactive"] = "Ocultar inactividad";
  85.268 +["Hint"] = "Sugerencia";
  85.269 +["History"] = "Historia";
  85.270 +["Home"] = "Inicio";
  85.271 +["Hostname"] = "Nombre de host";
  85.272 +["How important is your suggestions for you?"] = "¿Qué tan importantes son estas sugerencias para ti?";
  85.273 +["How this member voted"] = "Cómo ha votado este miembro";
  85.274 +["I do not like to hear from this member"] = "No quiero recibir noticias de este miembro";
  85.275 +["I don't like any of the initiative in this issue and I want to add my opinion or counter proposal"] = "No me gusta ninguna de las iniciativas de este tema, y quiero añadir mi opinión o contrapropuesta";
  85.276 +["I don't like this initiative and I want to add my opinion or counter proposal"] = "No me gusta ninguna de las iniciativas de este tema, y quiero añadir mi opinión o contrapropuesta";
  85.277 +["I don't like to vote this issue (myself):"] = "No quiero votar sobre este tema";
  85.278 +["I don't want to particiapte"] = "No quiero participar";
  85.279 +["I like this initiative and I want to support it"] = "Me gusta esta iniciativa y quiero apoyarla";
  85.280 +["I like to change/revoke my vote:"] = "Me gusta cambiar/revocar mi voto:";
  85.281 +["I like to receive notifications"] = "Me gustaría recibir notificaciones";
  85.282 +["I like to vote on this issue:"] = "Me gustaría votar sobre esta tema:";
  85.283 +["I understand, that this is not revocable"] = "Sí, entiendo que no es revocable";
  85.284 +["I want to change account settings"] = "Quiero cambiar la configuración de mi cuenta";
  85.285 +["I want to deactive this member irrevocably"] = "Quiero desactivar este miembro de forma irreversible";
  85.286 +["I want to delegate my vote"] = "Quiero delegar mi voto";
  85.287 +["I want to delegate this issue"] = "Quiero delegar este tema";
  85.288 +["I want to delegate this organizational unit"] = "Quiero delegar esta unidad organizativa";
  85.289 +["I want to delegate this subject area"] = "Quiero delegar esta área temática";
  85.290 +["I want to download all data"] = "Quiero descargar todos los datos";
  85.291 +["I want to improve this initiative"] = "Quiero mejorar esta iniciativa";
  85.292 +["I want to know whats going on"] = "Quiero saber qué está pasando";
  85.293 +["I want to learn more about LiquidFeedback"] = "Quiero saber más sobre LiquidFeedback";
  85.294 +["I want to participate in this issue"] = "Quiero participar en este tema";
  85.295 +["I want to receive a regular digest"] = "Quiero recibir un boletín periódico";
  85.296 +["I want to save this member as contact (i.e. to use as delegatee)"] = "Quiero guardar este miembro como contacto (por ejemplo, para usarlo como delegado)";
  85.297 +["I want to show or edit my profile"] = "Quiero mostrar o editar mi perfil";
  85.298 +["I want to start a new initiative"] = "Quiero empezar una iniciativa nueva";
  85.299 +["I want to stay informed"] = "Quiero mantenerme informado";
  85.300 +["I want to stay informed about this subject area"] = "Quiero mantenerme informado sobre esta área temática";
  85.301 +["I want to switch to another account"] = "Quiero cambiar de cuenta";
  85.302 +["I want to take a look at other organizational units"] = "Quiero ver otras unidades organizativas";
  85.303 +["I want to vote"] = "Quiero votar";
  85.304 +["ID"] = "ID";
  85.305 +["IP address"] = "IP address";
  85.306 +["Id"] = "Id";
  85.307 +["Identification"] = "Identificación";
  85.308 +["Identification used before"] = "Identificación utilizada antes";
  85.309 +["Identification used before (#{count})"] = "Identificación utilizada antes de (#{count})";
  85.310 +["If this link is not working, please open following url in your web browser:\n\n"] = "Si no funciona este enlace, abre la siguiente URL en tu navegador:\n\n";
  85.311 +["If you cannot find any appropriate existing issue, "] = "Si no puedes encontrar un tema apropiado existente, ";
  85.312 +["If you have not received a PIN code, our team will need to check your registration manually. We will be in touch within two working days. Please accept our apologies for the inconvenience."] = "Si no has recibido un código PIN, nuestro equipo tendrá que comprobar tu registro manualmente. Nos pondremos en contacto contigo en un plazo de dos días laborables. Te pedimos disculpas por las molestias.";
  85.313 +["Implicitly admitted"] = "Admitido implícitamente";
  85.314 +["Index (for sorting)"] = "Índice (para clasificar)";
  85.315 +["Incoming delegations"] = "Delegaciones entrantes";
  85.316 +["Incoming delegations for '#{member}'"] = "Delegaciones entrantes para '#{member}'";
  85.317 +["Indirect majority"] = "Mayoría indirecta";
  85.318 +["Indirect majority denominator"] = "Denominador mayoritario indirecto";
  85.319 +["Indirect majority non negative"] = "Mayoría indirecta no negativa";
  85.320 +["Indirect majority numerator"] = "Numerador mayoritario indirecto";
  85.321 +["Indirect majority positive"] = "Mayoría indirecta positiva";
  85.322 +["Initiative is revoked now"] = "Iniciativa ha sido revocada";
  85.323 +["Initiative not admitted"] = "Iniciativa no admitida";
  85.324 +["Initiative quorum"] = "Quórum de iniciativa";
  85.325 +["Initiative revoked"] = "Iniciativa revocada";
  85.326 +["Initiative revoked: #{initiative_name}"] = "Iniciativa revocada: #{initiative_name}";
  85.327 +["Initiative: "] = "Iniciativa: ";
  85.328 +["Initiatives and issues"] = "Iniciativas y temas";
  85.329 +["Initiatives created by this member"] = "Iniciativas creadas por este miembro";
  85.330 +["Initiators"] = "Iniciadores";
  85.331 +["Interested members"] = "Miembros interesados";
  85.332 +["Internal error 1"] = "Error interno 1";
  85.333 +["Internal error 2"] = "Error interno 2";
  85.334 +["Internal error 3"] = "Error interno 3";
  85.335 +["Interval format:"] = "Formato de intervalo:";
  85.336 +["Introduction"] = "Introducción";
  85.337 +["Invalid PIN entered"] = "PIN inválido ingresado";
  85.338 +["Invalid PIN entered (#{count})"] = "PIN inválido ingresado (#{count})";
  85.339 +["Invalid PIN, please try again!"] = "¡PIN inválido, por favor inténtalo de nuevo!";
  85.340 +["Invalid domain format"] = "Formato de dominio inválido";
  85.341 +["Invalid login name or password!"] = "¡Nombre de usuario o contraseña inválido!";
  85.342 +["Invalid timing"] = "Tiempo inválido";
  85.343 +["Invitation has been refused"] = "La invitación ha sido rechazada";
  85.344 +["Invitation to LiquidFeedback"] = "Invitación a LiquidFeedback";
  85.345 +["Invite an initiator to initiative"] = "Invitar a otro iniciador a esta iniciativa";
  85.346 +["Invite code"] = "Código de invitación";
  85.347 +["Invite letter"] = "Carta de invitación";
  85.348 +["Invite member"] = "Invitar a un miembro";
  85.349 +["Invited [as initiator]"] = "Invitado";
  85.350 +["Issue #"] = "Tema #";
  85.351 +["Issue ##{id}"] = "Tema ##{id}";
  85.352 +["Issue ##{issue_id}: #{initiative_name}"] = "Tema ##{issue_id}: #{initiative_name}";
  85.353 +["Issue delegation"] = "Delegación de tema";
  85.354 +["Issue has been canceled"] = "El tema ha sido cancelado";
  85.355 +["Issue quorum"] = "Quórum de temas";
  85.356 +["Issue reached next phase"] = "El tema ha alcanzado la siguiente fase";
  85.357 +["Issues in admission phase"] = "Temas en la fase de admisión";
  85.358 +["Issues in discussion phase"] = "Temas en la fase de discusión";
  85.359 +["Issues in verification phase"] = "Temas en la fase de verificación";
  85.360 +["Issues in voting phase"] = "Temas en la fase de votación";
  85.361 +["JavaScript is disabled or not available."] = "JavaScript está desactivado o no está disponible.";
  85.362 +["Last activity (updated daily)"] = "Última actividad (actualizado diariamente)";
  85.363 +["Last counting:"] = "Último conteo:";
  85.364 +["LiquidFeedback"] = "LiquidFeedback";
  85.365 +["Lock member?"] = "Bloquear miembro";
  85.366 +["Locked?"] = "¿Bloqueado?";
  85.367 +["Login"] = "Inicio de sesión";
  85.368 +["Login [button]"] = "Iniciar sesión";
  85.369 +["Login [headline]"] = "Inicio de sesión";
  85.370 +["Login name"] = "Nombre de usuario";
  85.371 +["Login name request"] = "Solicitud de nombre de usuario";
  85.372 +["Login to participate"] = "Iniciar sesión para participar";
  85.373 +["Login-Name: "] = "Nombre de usuario: ";
  85.374 +["Logout"] = "Cierre de sesión";
  85.375 +["Logout successful"] = "Cierre de sesión con éxito";
  85.376 +["Majority"] = "Mayoría";
  85.377 +["Make your choice by placing the initiatives"] = "Haz tu elección clasificando las iniciativas";
  85.378 +["Manage newsletters"] = "Gestionar boletines";
  85.379 +["Manual verification (w/o mobile)"] = "Verificación manual (sin celular)";
  85.380 +["Manual verification needed"] = "Se necesita una verificación manual";
  85.381 +["Manual verification requested during step 1"] = "Verificación manual solicitada en la fase 1";
  85.382 +["Manual verification requested during step 1 (#{count})"] = "Verificación manual solicitada en el paso 1 (#{count})";
  85.383 +["Manual verification requested during step 2"] = "Verificación manual solicitada en el paso 2";
  85.384 +["Manual verification requested during step 2 (#{count})"] = "Verificación manual solicitada en el paso 2 (#{count})";
  85.385 +["Maximum admission time"] = "Tiempo máximo de admisión";
  85.386 +["Maximum time within which an issue has to reach the 1st quorum, otherwise it will be canceled."] = "Tiempo máximo en el que un tema tiene que llegar al 1er quórum, si no, se cancelará.";
  85.387 +["Member"] = "Miembro";
  85.388 +["Member has been removed from initiators"] = "El miembro ha sido eliminado como iniciador";
  85.389 +["Member has been removed from your contacts"] = "El miembro ha sido eliminado de tus contactos";
  85.390 +["Member has not approved latest draft"] = "El miembro no ha aprobado el borrador más reciente";
  85.391 +["Member inactive?"] = "¿Miembro inactivo?";
  85.392 +["Member is already saved in your contacts!"] = "¡El miembro ya está guardado en tus contactos!";
  85.393 +["Member is now invited to be initiator"] = "El miembro ahora está invitado a ser un iniciador";
  85.394 +["Member list"] = "Lista de miembros";
  85.395 +["Member name"] = "Nombre del miembro";
  85.396 +["Member successfully deactivated"] = "Member successfully deactivated";
  85.397 +["Member successfully registered"] = "Miembro registrado satisfactoriamente";
  85.398 +["Member successfully updated"] = "Miembro actualizado satisfactoriamente";
  85.399 +["Members"] = "Miembros";
  85.400 +["Message of the day"] = "Mensaje del día";
  85.401 +["Method not allowed"] = "Método no permitido";
  85.402 +["Minimum absolute number of supporters."] = "Número mínimo absoluto de partidarios.";
  85.403 +["Minimum admission time"] = "Tiempo mínimo de admisión";
  85.404 +["Minimum number of supporters relative to the number of active participants in the organizational unit."] = "Número mínimo de partidarios respecto al número de participantes activos en la unidad organizativa.";
  85.405 +["Minimum supporter count (including support via delegation) an initiative has to reach to be an eligible candidate for the voting phase."] = " Número mínimo de partidarios (incluido el apoyo a través de la delegación) que debe alcanzar una iniciativa para ser elegible en la fase de votación.";
  85.406 +["Minimum supporter count (including support via delegation) one initiative of an issue has to reach to let the issue pass the 1st quorum and to proceed to discussion phase. Further requirements can occur due to per subject area issue limiter settings. See subject area settings."] = "El número mínimo de partidarios (incluido el apoyo por delegación) que debe alcanzar una iniciativa de un tema para que el tema pase el primer quórum y pase a la fase de discusión. Pueden darse otros requisitos debido a la configuración del limitador de asuntos por área temática. Consulta la configuración de las áreas temáticas.";
  85.407 +["Minimum time an issue has to stay in admission phase before it can be accepted for discussion (if it reaches the 1st quorum)."] = "El tiempo mínimo que debe permanecer un tema en la fase de admisión antes de ser aceptado para su discusión (si alcanza el 1er quórum).";
  85.408 +["Missing parameter"] = "Falta un parámetro";
  85.409 +["Monday"] = "Lunes";
  85.410 +["Move down"] = "Mover abajo";
  85.411 +["Move up"] = "Mover arriba";
  85.412 +["Name"] = "Nombre";
  85.413 +["New area"] = "Nueva área";
  85.414 +["New competing initiative in issue '#{issue}'"] = "Nueva iniciativa en competencia en el número '#{issue}'";
  85.415 +["New draft for initiative '#{initiative_name}'"] = "Nuevo borrador para la iniciativa '#{initiative_name}'";
  85.416 +["New initiative"] = "Nueva iniciativa";
  85.417 +["New initiative draft"] = "Borrador de una nueva iniciativa";
  85.418 +["New issue"] = "Tema nuevo";
  85.419 +["New newsletter"] = "Nuevo boletín de noticias";
  85.420 +["New organizational unit"] = "Nueva unidad organizativa";
  85.421 +["New password"] = "Nueva contraseña";
  85.422 +["New passwords does not match."] = "La nueva contraseña no coincide.";
  85.423 +["New passwords is too short."] = "La nueva contraseña es demasiado corta.";
  85.424 +["New policy"] = "Nueva política";
  85.425 +["New suggestion"] = "Nueva sugerencia";
  85.426 +["Newsletter"] = "Boletín de noticias";
  85.427 +["Newsletter has already been sent out"] = "El boletín ya ha sido enviado";
  85.428 +["Newsletter list"] = "Lista de boletines";
  85.429 +["Next step"] = "Próximo paso";
  85.430 +["No"] = "No";
  85.431 +["No (not yet)"] = "No (todavía no)";
  85.432 +["No PIN code received?"] = "¿No has recibido un código PIN?";
  85.433 +["No account yet?"] = "¿No tienes una cuenta?";
  85.434 +["No admission needed"] = "admisión no es necesaria";
  85.435 +["No applications connected"] = "No hay aplicaciones conectadas";
  85.436 +["No changes to your images were made"] = "No se han realizado cambios a tus imágenes";
  85.437 +["No default"] = "Sin defecto";
  85.438 +["No delegation"] = "No hay delegación";
  85.439 +["No matching issues found"] = "No se han encontrado temas correspondientes";
  85.440 +["No matching members found"] = "No se han encontrado miembros correspondientes";
  85.441 +["No more events available"] = "No hay más eventos disponibles";
  85.442 +["No multistage majority"] = "No hay mayoría multietapa";
  85.443 +["No other members are allowed to use this account."] = "Ningún otro miembro puede utilizar esta cuenta.";
  85.444 +["No published contacts"] = "No hay contactos publicados";
  85.445 +["No results for this selection"] = "No hay resultados para esta selección";
  85.446 +["No reverse beat path"] = "No hay reverse beat path";
  85.447 +["No votes (0)"] = "No hay votos (0)";
  85.448 +["No voting rights."] = "No hay derecho de voto.";
  85.449 +["None"] = "Ninguno seleccionado";
  85.450 +["None yet"] = "Ninguno todavía";
  85.451 +["Notification address unconfirmed"] = "Dirección de notificaciones no confirmada";
  85.452 +["Notification email"] = "E-mail de notificación";
  85.453 +["Notification email (confirmed)"] = "E-mail de notificación (confirmado)";
  85.454 +["Notification email (unconfirmed)"] = "E-mail de notificación (no confirmado)";
  85.455 +["Notification level not set yet"] = "Nivel de notificación no establecido";
  85.456 +["Notifications"] = "Notificaciones";
  85.457 +["Old password is wrong"] = "La contraseña antigua es incorrecta";
  85.458 +["On that page please enter the confirmation code:\n\n"] = "Por favor, introduce el código de confirmación en esa página:\n\n";
  85.459 +["On that page please enter the invite key:\n\n"] = "Por favor, introduce la clave de invitación en esa página:\n\n";
  85.460 +["On that page please enter the reset code:\n\n"] = "Por favor, introduce el código de restablecimiento en esa página:\n\n";
  85.461 +["Open in FirstLife"] = "Abrir en FirstLife";
  85.462 +["Open initiatives you are supporting which has been updated their draft:"] = "Iniciativas abiertas que estás apoyando cuyos borradores han sido actualizados:";
  85.463 +["Open request"] = "Solicitud abierta";
  85.464 +["Open requests"] = "Solicitudes abiertas";
  85.465 +["Open requests (#{count})"] = "Solicitudes abiertas (#{count})";
  85.466 +["Open role requests"] = "Solicitudes de rol abierto";
  85.467 +["Organizational unit"] = "Unidad organizativa";
  85.468 +["Organizational units"] = "Unidades organizativas";
  85.469 +["Organizational units and subject areas"] = "Unidades organizativas y áreas temáticas";
  85.470 +["Other failures"] = "Otros fallos";
  85.471 +["Other reasons"] = "Otras razones";
  85.472 +["Outgoing delegations"] = "Delegaciones salientes";
  85.473 +["Override disable notifications?"] = "¿Anular notificaciones de desactivación?";
  85.474 +["PIN code not entered"] = "Código PIN no ingresado";
  85.475 +["PIN code not entered (yet) (#{count})"] = "Código PIN no introducido (aún) (#{count})";
  85.476 +["PIN page"] = "Página de PIN";
  85.477 +["Page not found"] = "Página no encontrada";
  85.478 +["Parent unit"] = "Unidad matriz";
  85.479 +["Password"] = "Contraseña";
  85.480 +["Password has been reset successfully"] = "La contraseña se ha restablecido con éxito";
  85.481 +["Password reset request"] = "Solicitud para restablecer contraseña";
  85.482 +["Passwords don't match!"] = "¡Las contraseñas no coinciden!";
  85.483 +["Passwords must consist of at least 8 characters!"] = "¡Las contraseñas deben tener al menos 8 caracteres!";
  85.484 +["Personal information"] = "Información personal";
  85.485 +["Phase ends soon"] = "La fase termina pronto";
  85.486 +["Phone number used before"] = "Número de teléfono utilizado anteriormente";
  85.487 +["Phone number used before (#{count})"] = "Número de teléfono utilizado antes (#{count})";
  85.488 +["Photo"] = "Foto";
  85.489 +["Please also check your SPAM folder."] = "Por favor, también revisa tu carpeta de spam.";
  85.490 +["Please check date of birth"] = "Por favor, revisa tu fecha de nacimiento";
  85.491 +["Please check the fiscal code (invalid format or does not match name, first name and/or date of birth)"] = "Por favor, revisa tu código fiscal (formato no válido o no coincide con el nombre, apellidos y/o fecha de nacimiento)";
  85.492 +["Please check the mobile phone number (invalid format)"] = "Por favor, verifica tu número de teléfono móvil (formato no válido)";
  85.493 +["Please choose a login name. This name will not be shown to others and is used only by you to login into the system. The login name is case sensitive."] = "Por favor, elige un nombre de usuario. Este nombre no se mostrará a los demás y sólo lo utilizarás tú para acceder al sistema. El nombre de usuario es sensible a las mayúsculas y minúsculas.";
  85.494 +["Please choose a member"] = "Por favor, elige un miembro";
  85.495 +["Please choose a name, i.e. your real name or your nick name. This name will be shown to others to identify you."] = "Por favor, elige un nombre, (por ejemplo, tu nombre real o tu apodo).  Este nombre se mostrará a los demás para identificarte.";
  85.496 +["Please choose a password and enter it twice. The password is case sensitive."] = "Por favor, elige una contraseña e introdúcela dos veces. La contraseña distingue entre mayúsculas y minúsculas.";
  85.497 +["Please choose a policy"] = "Por favor, escoje una política";
  85.498 +["Please choose a policy for the new issue:"] = "Por favor, elige una política para el tema nuevo:";
  85.499 +["Please choose an area name"] = "Por favor, elige un nombre para el área";
  85.500 +["Please choose an option!"] = "¡Por favor, elija una opción!";
  85.501 +["Please choose one project to vote for."] = "Por favor, elige un proyecto para votar.";
  85.502 +["Please choose two different versions of the draft to compare"] = "Por favor, escoge dos versiones diferentes del borrador para compararlas";
  85.503 +["Please confirm your email address by clicking the following link:\n\n"] = "Por favor, confirma tu dirección de e-mail haciendo clic en el siguiente enlace:\n\n";
  85.504 +["Please decide for each delegation to confirm or to revoke it!"] = "Para cada delegación, por favor, decide si deseas confirmarla o revocarla.";
  85.505 +["Please enter a meaningful title for your initiative!"] = "¡Por favor, escribe un título apropiado para tu iniciativa!";
  85.506 +["Please enter the email reset code you have received:"] = "Por favor, introduce el código de restablecimiento del correo electrónico que has recibido:";
  85.507 +["Please enter the invite code you've received"] = "Por favor, introduce el código de invitación que has recibido";
  85.508 +["Please enter your email address. This address will be used for automatic notifications (if you request them) and in case you've lost your password. This address will not be published. After registration you will receive an email with a confirmation link."] = "Por favor, introduce tu dirección de e-mail. Esta dirección se utilizará para las notificaciones automáticas (si las pides) y en caso de que hayas perdido tu contraseña. Esta dirección no se publicará. Tras el registro, recibirás un e-mail con un enlace de confirmación.";
  85.509 +["Please enter your email address. You will receive an email with your login name."] = "Por favor, introduce tu dirección de e-mail. Recibirás un correo electrónico con tu nombre de usuario.";
  85.510 +["Please enter your login name. You will receive an email with a link to reset your password."] = "Por favor, introduce tu nombre de usuario. Recibirás un correo electrónico con un enlace para resetear tu contraseña.";
  85.511 +["Please enter your new password twice."] = "Por favor, introduce tu nueva contraseña dos veces.";
  85.512 +["Please enter: #{field_name}"] = "Favor de ingresar: #{field_name}";
  85.513 +["Policies"] = "Políticas";
  85.514 +["Policy"] = "Política";
  85.515 +["Policy list"] = "Lista de políticas";
  85.516 +["Polling mode"] = "Modo de sondeo";
  85.517 +["Population"] = "Población";
  85.518 +["Preference comparison"] = "Comparación de preferencias";
  85.519 +["Preference voting"] = "Voto preferencial";
  85.520 +["Preview"] = "Vista previa";
  85.521 +["Preview of delegation"] = "Vista previa de la delegación ";
  85.522 +["Preview of voting ballot"] = "Vista previa de la papeleta de votación";
  85.523 +["Private contacts"] = "Contactos privados";
  85.524 +["Proceed with registration"] = "Proceder al registro";
  85.525 +["Publish now"] = "Publicar ahora";
  85.526 +["Published"] = "Publicado";
  85.527 +["Published contacts"] = "Contactos publicados";
  85.528 +["Quick guide"] = "Guía rápida";
  85.529 +["Reached #{sign}#{num}/#{den}"] = "Alcanzó #{sign}#{num}/#{den}";
  85.530 +["Recipient"] = "Destinario";
  85.531 +["Recover login name"] = "Recuperar nombre de usuario";
  85.532 +["Redirect URI forbidden"] = "Redirección URI prohibida";
  85.533 +["Redirect URI invalid"] = "Redirección URI invalida";
  85.534 +["Redirect URI or response type not registered"] = "URI de redirección o tipo de respuesta no registrado";
  85.535 +["Register new member"] = "Registrar miembro nuevo";
  85.536 +["Register now"] = "Registrarse ahora";
  85.537 +["Registered members (#{count})"] = "Miembros registrados (#{count})";
  85.538 +["Registration (step 1 of 3: Invite code)"] = "Registro (paso 1 de 3: código de invitación)";
  85.539 +["Registration (step 2 of 3: Personal information)"] = "Registro (paso 2 de 3: información personal)";
  85.540 +["Registration (step 3 of 3: Terms of use and password)"] = "Registro (paso 3 de 3: Condiciones de uso y contraseña)";
  85.541 +["Registration rejected"] = "Registro rechazado";
  85.542 +["Registration succeeded"] = "Registro exitoso";
  85.543 +["Reject access privilege"] = "Rechazar privilegio de acceso";
  85.544 +["Rejected (#{count})"] = "Rechazado (#{count})";
  85.545 +["Rejected (rank #{rank})"] = "Rechazado (rank #{rank})";
  85.546 +["Rejected [initiative]"] = "Rechazada";
  85.547 +["Rejected [initiator invitation]"] = "Rechazada";
  85.548 +["Rejected accreditation requests"] = "Solicitudes de acreditación rechazadas";
  85.549 +["Rejected request"] = "Solicitud rechazada";
  85.550 +["Rejected requests (#{count})"] = "Solicitudes rechazadas (#{count})";
  85.551 +["Rejected role accreditation requests"] = "Solicitudes de acreditación de roles rechazadas";
  85.552 +["Remove an initiator from initiative"] = "Eliminar un iniciador de la iniciativa";
  85.553 +["Remove application"] = "Eliminar aplicación";
  85.554 +["Remove initiator"] = "Eliminar iniciador";
  85.555 +["Removed attachments"] = "Adjuntos eliminados";
  85.556 +["Rendered"] = "Renderizado";
  85.557 +["Repeat new password"] = "Repetir nueva contraseña";
  85.558 +["Repeat password"] = "Repetir contraseña";
  85.559 +["Request email with login name"] = "Solicitar e-mail";
  85.560 +["Request password reset link"] = "Solicitar enlace";
  85.561 +["Request role account"] = "Solicitar cuenta de rol";
  85.562 +["Request role accounts"] = "Solicitar cuentas de rol";
  85.563 +["Requested at"] = "Solicitado a las";
  85.564 +["Requested by account"] = "Solicitado por una cuenta";
  85.565 +["Requested by:"] = "Solicitado por:";
  85.566 +["Requested privileges:"] = "Privilegios solicitados:";
  85.567 +["Required majorities"] = "Mayorías requeridas";
  85.568 +["Resend activation email to '#{email}'"] = "Reenviar correo de activación a '#{email}'";
  85.569 +["Reset code"] = "Código de reinicio";
  85.570 +["Reset code is invalid!"] = "Código de reinicio no es válido!";
  85.571 +["Reset password"] = "Restablecer contraseña";
  85.572 +["Response type not allowed for given client"] = "Tipo de respuesta no permitida para el cliente especificado";
  85.573 +["Results"] = "Resultados";
  85.574 +["Revoke"] = "Revocar";
  85.575 +["Revoke initiative"] = "Revocar iniciativa";
  85.576 +["Revoke now"] = "Revocar ahora";
  85.577 +["Revoked (during admission)"] = "Revocado (durante la fase de admisión)";
  85.578 +["Revoked (during discussion)"] = "Revocado (durante la fase de discusión)";
  85.579 +["Revoked (during verification)"] = "Revocado (durante la fase de verificación)";
  85.580 +["Revoked at"] = "Revocada a las";
  85.581 +["Role accounts"] = "Cuentas de rol";
  85.582 +["Role management"] = "Gestión de roles";
  85.583 +["Rules of procedure"] = "Reglamento";
  85.584 +["Same "] = false;
  85.585 +["Same identification"] = "Misma identificación";
  85.586 +["Same name already exists"] = "Ya existe el mismo nombre";
  85.587 +["Saturday"] = "Sábado";
  85.588 +["Save"] = "Guardar";
  85.589 +["Save new password"] = "Guardar nueva contraseña";
  85.590 +["Save voting comment"] = "Guardar comentario sobre la votación";
  85.591 +["Saved contacts"] = "Contactos guardados";
  85.592 +["Schulze rank"] = "Rango de Schulze";
  85.593 +["Screen name"] = "Nombre de pantalla";
  85.594 +["Search"] = "Buscar";
  85.595 +["Search results for: '#{search}'"] = "Resultados: '#{search}'";
  85.596 +["Second quorum"] = "Segundo quórum";
  85.597 +["Select unit first"] = "Selecciona primero la unidad";
  85.598 +["Self registration"] = "Autorregistro";
  85.599 +["Self registration completed"] = "Autorregistro completado";
  85.600 +["Send invite?"] = "¿Enviar invitación?";
  85.601 +["Set area delegation"] = "Crear delegación de área";
  85.602 +["Set issue delegation"] = "Crear delegación de tema";
  85.603 +["Set unit delegation"] = "Crear delegación de unidad";
  85.604 +["Settings"] = "Configuración";
  85.605 +["Should the initiator implement this suggestion?"] = "¿Debería el iniciador implementar esta sugerencia?";
  85.606 +["Show"] = "Mostrar";
  85.607 +["Show all members"] = "Mostrar todos los miembros";
  85.608 +["Show full history"] = "Mostrar el historial completo";
  85.609 +["Show full member list"] = "Mostrar la lista completa de miembros";
  85.610 +["Show inactive"] = "Mostrar";
  85.611 +["Show older events"] = "Mostrar eventos anteriores";
  85.612 +["Show policies in use"] = "Mostrar políticas en uso";
  85.613 +["Show policies not in use"] = "Mostrar políticas que no están en uso";
  85.614 +["Show voting ballot"] = "Mostrar papeleta de votación";
  85.615 +["Skip admission phase and start issue in discussion phase (can only be started by members with polling privilege). If enabled, minimum and maximum admission time as well as 1st quorum needs to be cleared."] = "Omitir la fase de admisión e iniciar el tema en la fase de discusión (sólo puede ser iniciado por los miembros con privilegio de votación). Si se habilita, el tiempo mínimo y máximo de admisión, así como el primer quórum, deben ser eliminados.";
  85.616 +["Sorry, but there is not confirmed email address for your account. Please contact the administrator or support."] = "Desafortunadamente, no hay una dirección de correo electrónico confirmada para su cuenta. Por favor, contacta  el administrador el servicio técnico.";
  85.617 +["Sorry, but you are currently not invited"] = "Desafortunadamente, no estás invitado en este momento";
  85.618 +["Sorry, but you need to be at least 16 years old to participate. You can "] = "Disculpa, pero necesitas tener al menos 16 años para participar. Puedes ";
  85.619 +["Sorry, you have reached your personal flood limit. Please be slower..."] = "Desafortunadamente, has llegado a tu límite de inundación personal. Por favor, sé más lento...";
  85.620 +["Sorry, your contingent for creating initiatives has been used up. Please try again later."] = "Desafortunadamente, tu contingente para crear iniciativas se ha agotado.  Por favor, inténtalo de nuevo más tarde.";
  85.621 +["Source"] = "Fuente";
  85.622 +["Start manual verification"] = "Iniciar verificación manual";
  85.623 +["Start survey"] = "Iniciar encuesta";
  85.624 +["State of #{issue} changed to #{state} / #{initiative}"] = "Estado de #{issue} cambiado a #{state} / #{iniciativa}";
  85.625 +["Statement"] = "Declaración";
  85.626 +["Status"] = "Estado";
  85.627 +["Status quo: #{rank}"] = "Statuto quo: #{rank}";
  85.628 +["Strict indirect majority"] = "Mayoría indirecta estricta";
  85.629 +["Subject"] = "Asunto";
  85.630 +["Subject areas"] = "Áreas temáticas";
  85.631 +["Subscribed members (#{count})"] = "Miembros suscritos (#{count})";
  85.632 +["Suggest no initiative"] = "No sugerir una iniciativa";
  85.633 +["Suggestion"] = "Sugerencia";
  85.634 +["Suggestion currently implemented"] = "Sugerencia implementada en este momento";
  85.635 +["Suggestion currently not implemented"] = "Sugerencia no implementada en este momento";
  85.636 +["Suggestion does not exist anymore"] = "Sugerencia ya no existe";
  85.637 +["Suggestions for improvement (#{count})"] = "Sugerencias de mejora (#{count})";
  85.638 +["Sunday"] = "Domingo";
  85.639 +["Surveys"] = "Encuestas";
  85.640 +["System settings"] = "Configuración de sistema";
  85.641 +["Take a look through the existing issues. Maybe someone else started a debate on your topic (and you can join it) or the topic has been decided already in the past."] = "Échale un vistazo a los temas disponibles. Es posible que alguien haya iniciado un debate sobre tu tema (y puedas unirte a él), o que el tema ya se haya decidido en el pasado.";
  85.642 +["Tell others about this initiative:"] = "Cuéntale a los demás sobre esta iniciativa:";
  85.643 +["Terms of use"] = "Términos de uso";
  85.644 +["The code you've entered is invalid"] = "El código que ha introducido no es válido";
  85.645 +["The draft of this initiative has been updated!"] = "¡El borrador de esta iniciativa ha sido actualizado!";
  85.646 +["The drafts do not differ"] = "Los borradores son idénticos";
  85.647 +["The following settings for experimental features should only be changed with sufficient knowledge about the Schulze method and its implementation in LiquidFeedback."] = "Los siguientes parámetros de las características experimentales sólo deben modificarse con un conocimiento suficiente sobre el método de Schulze y su implementación en LiquidFeedback.";
  85.648 +["The initiative draft has been updated again in the meanwhile, support not updated!"] = "El proyecto de iniciativa se ha actualizado de nuevo. Sin embargo, el apoyo no se ha actualizado mientras tanto";
  85.649 +["The initiative text has been updated"] = "El texto de la iniciativa ha sido actualizado";
  85.650 +["The initiators suggest to support the following initiative:"] = "Los iniciadores sugieren apoyar la siguiente iniciativa:";
  85.651 +["The minimum absolute number of approval votes."] = "El número mínimo absoluto de votos de aprobación.";
  85.652 +["This delegation is suspended, because you voted yourself."] = "Esta delegación ha sido suspendida porque tú mismo has votado.";
  85.653 +["This email address already been used. Please check your inbox for an invitation or contact us."] = "Esta dirección de correo electrónico ya está siendo utilizada. Por favor, revisa tu bandeja de entrada para recibir una invitación o ponte en contacto con nosotros.";
  85.654 +["This email address is too short!"] = "¡Esta dirección de e-mail es demasiado corta!";
  85.655 +["This initiative"] = "Esta iniciativa";
  85.656 +["This initiative has been revoked at #{revoked} by:"] = "Esta iniciativa ha sido revocada a las #{revoked} por:";
  85.657 +["This initiative has not been admitted! It failed the 2nd quorum of #{quorum}."] = "¡Esta iniciativa no ha sido admitida! Ha fallado el segundo quórum de #{quorum}.";
  85.658 +["This initiative is already revoked"] = "Esta iniciativa ha sido revocada";
  85.659 +["This initiative is revoked"] = "Esta iniciativa ya ha sido revocada";
  85.660 +["This initiative references a FirstLife object."] = "Esta iniciativa hace referencia a un objeto de FirstLife.";
  85.661 +["This invite key is connected with the following information:"] = "Esta invitación está conectada con la siguiente información:";
  85.662 +["This is the only initiative in this issue, because nobody started a competing initiative."] = "Esta es la única iniciativa en este tema, porque nadie inició una iniciativa competitiva.";
  85.663 +["This issue is already closed."] = "Este tema ya está cerrado.";
  85.664 +["This issue is already frozen."] = "Este tema ya está congelado.";
  85.665 +["This issue is closed"] = "Este tema está cerrado";
  85.666 +["This login is already taken, please choose another one!"] = "Este nombre de usuario ya ha sido utilizado, por elige otro";
  85.667 +["This login is too short!"] = "¡Este nombre de usuario es demasiado corto!";
  85.668 +["This member account has been created at #{created}"] = "Esta cuenta de miembro fue creada a las #{created}";
  85.669 +["This member has rejected to become initiator of this initiative"] = "Este miembro ha rechazado ser el iniciador de esta iniciativa";
  85.670 +["This member is already initiator of this initiative"] = "Este miembro ya es el iniciador de esta iniciativa";
  85.671 +["This member is already invited to become initiator of this initiative"] = "Este miembro ya está invitado a ser el iniciador de esta iniciativa";
  85.672 +["This member is currently participating in this issue."] = "Este miembro está participando en este tema.";
  85.673 +["This member is inactive"] = "Este miembro está inactivo";
  85.674 +["This member is locked"] = "Este miembro está bloqueado";
  85.675 +["This member is participating, the remaining delegation chain is suspended during discussing."] = "Este miembro está participando activamente en este asunto, así que el resto de la cadena de delegaciones se suspenderá durante el debate.";
  85.676 +["This name is already taken, please choose another one!"] = "Este nombre no esta disponible, ¡por favor, elige otro!";
  85.677 +["This name is too short!"] = "¡Este nombre es demasiado corto!";
  85.678 +["This screen name is too short!"] = "¡Este nombre de pantalla es demasiado corto!";
  85.679 +["This service is provided by:"] = "Este servicio es prestado por:";
  85.680 +["This service is provided using the following software components:"] = "Este servicio se presta utilizando los siguientes componentes de software:";
  85.681 +["This suggestion has been meanwhile deleted"] = "Esta sugerencia ha sido eliminada mientras tanto.";
  85.682 +["This title is really too short!"] = "¡Este título es demasiado corto!";
  85.683 +["This title is too long!"] = "¡Este título es demasiado largo!";
  85.684 +["Thursday"] = "Jueves";
  85.685 +["Title"] = "Título";
  85.686 +["Trustee has no voting right in this unit"] = "El delegado no tiene derechos de votación en esta unidad";
  85.687 +["Tuesday"] = "Martes";
  85.688 +["Unit"] = "Unidad";
  85.689 +["Unit delegation"] = "Delegación de unidad";
  85.690 +["Unit list"] = "Lista de unidades";
  85.691 +["Unknown author"] = "Autor desconocido";
  85.692 +["Upload avatar/photo"] = "Subir avatar/foto";
  85.693 +["Use terms"] = "Términos de uso";
  85.694 +["Used by account"] = "Usado por cuenta";
  85.695 +["User accounts"] = "Cuentas de usuario";
  85.696 +["User management"] = "Gestión de usuarios";
  85.697 +["User with same name already exists (#{count})"] = "Ya existe un usuario con el mismo nombre (#{count})";
  85.698 +["Value"] = "Valor";
  85.699 +["Verfication time"] = "Tiempo de verificación";
  85.700 +["Verification"] = "Verificación";
  85.701 +["Verification data"] = "Datos de verificación";
  85.702 +["Verification phase"] = "Fase de verificación";
  85.703 +["Verification requests"] = "Solicitudes de verificación";
  85.704 +["Verification started"] = "Verificación iniciada";
  85.705 +["Verification time"] = "Hora de verificación";
  85.706 +["Verified at"] = "Verificado a las";
  85.707 +["Verified by"] = "Verificado por";
  85.708 +["Verified by account"] = "Verificado por cuenta";
  85.709 +["Verify account"] = "Verificar cuenta";
  85.710 +["Vote delegation"] = "Delegación de voto";
  85.711 +["Voters"] = "Votantes";
  85.712 +["Voting"] = "Votación";
  85.713 +["Voting comment"] = "Comentario sobre la votación";
  85.714 +["Voting comment (last updated: #{timestamp})"] = "Comentario de la votación (última actualización: #{timestamp})";
  85.715 +["Voting comment (optional)"] = "Comentario sobre la votación (opcional)";
  85.716 +["Voting comment available"] = "Comentario sobre la votación disponible";
  85.717 +["Voting for this issue has already begun."] = "La votación para este tema ya ha comenzado.";
  85.718 +["Voting has not started yet."] = "La votación aún no ha comenzado.";
  85.719 +["Voting phase"] = "Fase de votación";
  85.720 +["Voting started"] = "La votación ha comenzado";
  85.721 +["Voting time"] = "Tiempo hasta la votación";
  85.722 +["Warning: Untrusted third party application."] = "Atención: Aplicación de terceros no confiable.";
  85.723 +["We couldn't deliver a confirmation mail to this address. Please check entered email address."] = "No hemos podido enviar un correo de confirmación a esta dirección. Por favor, revisa la dirección de e-mail que has indicado.";
  85.724 +["We have sent an email with activation link already in the last hour. Please try again later."] = "Hemos enviado un e-mail con el enlace de activación durante la última hora. Por favor, inténtalo de nuevo más tarde.";
  85.725 +["We have sent you an invitation email to finish the account setup."] = "Te hemos enviado un e-mail de invitación para finalizar la configuración de tu cuenta.";
  85.726 +["Wednesday"] = "Miércoles";
  85.727 +["What can I do here?"] = "¿Qué puedo hacer aquí?";
  85.728 +["What this member is currently supporting"] = "Lo que este miembro está apoyando ahora mismo";
  85.729 +["Yes"] = "Sí";
  85.730 +["Yes, it's implemented"] = "Sí, ha sido implementado";
  85.731 +["You already voted this issue"] = "Ya has votado por este tema";
  85.732 +["You are already initiator"] = "Ya eres un iniciador";
  85.733 +["You are already supporting the latest draft"] = "Ya estás apoyando el último borrador";
  85.734 +["You are currently not supporting this initiative directly. By adding suggestions to this initiative you will automatically become a potential supporter."] = "En este momento no estás apoyando esta iniciativa directamente. Al añadir sugerencias a esta iniciativa, te convertirás automáticamente en un posible colaborador.";
  85.735 +["You are initiator of this initiative"] = "Tú eres el iniciador de esta iniciativa";
  85.736 +["You are interested in this issue"] = "Estás interesado en esta iniciativa";
  85.737 +["You are invited to LiquidFeedback. To register please click the following link:\n\n"] = "Estás invitado a usar LiquidFeedback. Para registrarte, por favor haz clic en el siguiente enlace:\n\n";
  85.738 +["You are invited to become initiator of '#{initiative_name}'"] = "Has sido invitado a ser el iniciador de '#{initiative_name}'";
  85.739 +["You are invited to become initiator of this initiative"] = "Estás invitado a convertirte en iniciador de esta iniciativa";
  85.740 +["You are not entitled to vote in this unit"] = "No tienes derecho a votar en esta unidad ";
  85.741 +["You are now initiator of this initiative"] = "Ahora eres el iniciador de esta iniciativa";
  85.742 +["You are receiving updates by email for this subject area"] = "Estás recibiendo actualizaciones por e-mail para esta área temática";
  85.743 +["You are supporter"] = "Eres un partidario";
  85.744 +["You are supporter of this initiative"] = "Tú eres un partidario de esta iniciativa";
  85.745 +["You are supporting this initiative"] = "Estás apoyando esta iniciativa";
  85.746 +["You blocked this member (i.e. you will not be notified about this members actions)"] = "Has bloqueado a este miembro (es decir, no recibirás notificaciones sobre las acciones de este miembro)";
  85.747 +["You can change your email address only once per hour. Please try again later."] = "Sólo puedes cambiar tu dirección de correo electrónico una vez por hora. Por favor, inténtalo de nuevo más tarde.";
  85.748 +["You can change your text again anytime during admission and discussion phase"] = "Puedes cambiar tu texto en cualquier momento durante la fase de admisión y discusión.";
  85.749 +["You can choose only members which you have been saved as contact before."] = "Sólo puedes elegir miembros que hayas guardado previamente como contactos.";
  85.750 +["You can't suggest the initiative you are revoking"] = "No puedes sugerir la iniciativa que estás revocando";
  85.751 +["You cannot change your text again later, because this issue is already in verfication phase!"] = "¡No puedes volver a cambiar tu texto más tarde, porque este tema ya ha pasado a la fase de verificación!";
  85.752 +["You delegated this issue"] = "Has delegado este tema";
  85.753 +["You delegated this organizational unit"] = "Has delegado esta unidad organizativa";
  85.754 +["You delegated this subject area"] = "Has delegado esta área temática";
  85.755 +["You delegated this unit"] = "Has delegado esta unidad";
  85.756 +["You didn't confirm your email address '#{email}' within 7 days."] = "No has confirmado tu dirección de e-mail '#{email}' en los 7 días requeridos.";
  85.757 +["You didn't confirm your email address '#{email}'. You have received an email with an activation link."] = "No has confirmado tu dirección de e-mail '#{email}'. Has recibido un e-mail con un enlace de activación.";
  85.758 +["You didn't set the level of notifications you like to receive"] = "No has establecido el nivel de notificaciones que te gustaría recibir";
  85.759 +["You do not like to vote this issue (yourself)"] = "No quieres votar sobre este tema tú mismo";
  85.760 +["You have accepted access privileges for the following account:"] = "Ha aceptado privilegios de acceso para la siguiente cuenta:";
  85.761 +["You have been granted access privileges for the following account:"] = "Has recibido privilegios de acceso para la siguiente cuenta:";
  85.762 +["You have been granted access to the following account(s):"] = "Has recibido acceso a la(s) siguiente(s) cuenta(s):";
  85.763 +["You have been subscribed for update emails about this subject area"] = "Te has suscrito para recibir correos electrónicos sobre novedades en esta área temática";
  85.764 +["You have rejected access privileges for the following account:"] = "Has rechazado los privilegios de acceso de la siguiente cuenta:";
  85.765 +["You have to mark 'Are you sure' to revoke!"] = "¡Tienes que marcar 'Estás seguro' para revocar!";
  85.766 +["You have voted"] = "Has votado";
  85.767 +["You have voted via delegation"] = "Has votado por delegación";
  85.768 +["You may choose one of the ongoing initiatives you are currently supporting"] = "Puedes elegir una de las iniciativas existentes que apoyas en este momento";
  85.769 +["You need to confirm to deactivate!"] = "¡Necesitas confirmar para desactivar!";
  85.770 +["You refused to become initiator of this initiative"] = "Te negaste a ser el iniciador de esta iniciativa";
  85.771 +["You saved this member as contact (i.e. to use as delegatee)"] = "Has guardado a este miembro como contacto (por ejemplo, para utilizarlo como delegado)";
  85.772 +["You saved this member as contact (i.e. to use as delegatee) and others can see it"] = "Has guardado a este miembro como contacto (por ejemplo, para usarlo como delegado) y los demás lo pueden ver";
  85.773 +["You should receive a PIN code via SMS shortly. Please enter the PIN."] = "En breve recibirás un código PIN por SMS. Por favor, introduce el PIN.";
  85.774 +["You will no longer receive update emails about this subject area"] = "Ya no recibirás más e-mails con novedades sobre este tema";
  85.775 +["You will receive status update notification on issue phase changes. Additionally you can subscribe for a regular digest including updates on initiative drafts and new suggestions."] = "Recibirás información actualizada sobre los cambios en las fases de los temas. También puedes suscribirte para recibir un resumen periódico que incluye actualizaciones sobre los borradores de las iniciativas y nuevas sugerencias.";
  85.776 +["Your avatar is a small photo, which will be shown always next to your name."] = "Tu avatar es una pequeña foto que se mostrará siempre junto a tu nombre.";
  85.777 +["Your choice"] = "Tu decisión";
  85.778 +["Your email address has been changed, please check for confirmation email with activation link!"] = "Tu dirección de e-mail ha cambiado, por favor revisa el e-mail de confirmación con el enlace de activación.";
  85.779 +["Your login has been changed to '#{login}'"] = "Tu nombre de usuario ha sido cambiado a '#{login}'";
  85.780 +["Your name has been changed"] = "Tu nombre ha sido modificado";
  85.781 +["Your page has been updated"] = "Tu página ha sido actualizada";
  85.782 +["Your password has been updated successfully"] = "Tu contraseña ha sido actualizada con éxito";
  85.783 +["Your photo will be shown in your profile."] = "Tu foto aparecerá en tu perfil.";
  85.784 +["Your request has been processed."] = "Tu solicitud ha sido procesada.";
  85.785 +["Your suggestion has been added"] = "Tu sugerencia ha sido añadida";
  85.786 +["Your support has been updated to the latest draft"] = "Tu soporte ha sido actualizado al último borrador";
  85.787 +["Your vote has been discarded. Delegation rules apply if set."] = "Tu voto ha sido descartado. Ahora se aplicarán las reglas de delegación si se han previamente establecido.";
  85.788 +["[Name of Language]"] = "Español";
  85.789 +["[Not public]"] = "[No mostrado públicamente]";
  85.790 +["[calculating]"] = "[calculando]";
  85.791 +["[event mail]       URL: #{url}"] = "       URL: #{url}";
  85.792 +["[event mail]      Area: #{name}"] = "       Área: #{name}";
  85.793 +["[event mail]      Unit: #{name}"] = "       Unidad: #{name}";
  85.794 +["[event mail]     Issue: ##{id}"] = "       Tema: #{id}";
  85.795 +["[event mail]     Phase: #{phase}"] = "       Fase: #{phase}";
  85.796 +["[event mail]    Policy: #{policy}"] = "       Política: #{policy}";
  85.797 +["[introduction] iniatives and issues"] = "[introducción] iniciativas y temas";
  85.798 +["[introduction] organizational units"] = "[introducción] unidades organizativas";
  85.799 +["[introduction] phase 1 admission"] = "[introducción] fase 1: admisión";
  85.800 +["[introduction] phase 2 discussion"] = "[introducción] fase 2: discusión";
  85.801 +["[introduction] phase 3 verification"] = "[introducción] fase 3: verificación";
  85.802 +["[introduction] phase 4 voting"] = "[introducción] fase 3: votación";
  85.803 +["[introduction] preference voting"] = "[introducción] voto preferencial";
  85.804 +["[introduction] rules of procedure"] = "[introducción] reglamento";
  85.805 +["[introduction] subject areas"] = "[introducción] áreas temáticas";
  85.806 +["[introduction] vote delegation"] = "[introducción] delegación de voto";
  85.807 +["[not displayed public]"] = "[no se muestra públicamente]";
  85.808 +["abandoned"] = "abandonado";
  85.809 +["accept invitation"] = "aceptar invitación";
  85.810 +["accepted [account access]"] = "acceptado";
  85.811 +["account activated"] = "cuenta activada";
  85.812 +["action"] = "acción";
  85.813 +["activate account"] = "activar cuenta";
  85.814 +["activated"] = "activado";
  85.815 +["add my interest"] = "Añadir mi interés";
  85.816 +["add my support"] = "Añadir mi apoyo";
  85.817 +["add to my list of private contacts"] = "añadir a mi lista de contactos privados";
  85.818 +["add to my list of public contacts"] = "añadir a mi lista de contactos públicos";
  85.819 +["add your support (see above) and rate or write new suggestions (and thereby restrict your support to certain conditions if necessary)"] = "Añadir mi apoyo (ver arriba) y calificar su importancia, o escribir nuevas sugerencias (y así restringir mi apoyo a ciertas condiciones si es necesario).";
  85.820 +["added interest to #{issue}"] = "has añadido interés a #{issue}";
  85.821 +["added support to #{initiative}"] = "has añadido apoyo a #{issue}";
  85.822 +["agents"] = "agentes";
  85.823 +["all issues"] = "Todos los temas";
  85.824 +["all results"] = "Todos los resultados";
  85.825 +["all subject areas"] = "todas las áreas temáticas";
  85.826 +["allow invitation again"] = "permitir invitación de nuevo";
  85.827 +["and #{count} more initiatives"] = "y #{count} más iniciativas";
  85.828 +["area"] = "área";
  85.829 +["author"] = "autor";
  85.830 +["automatically verified"] = "verificado automáticamente";
  85.831 +["avatar/photo"] = "avatar/foto";
  85.832 +["between"] = "entre";
  85.833 +["block this member"] = "bloquear a este miembro";
  85.834 +["browse the platform as a guest"] = "ver la plataforma como un invitado";
  85.835 +["browse the portal as an unregistered user"] = "navegar por el portal como un usuario no registrado";
  85.836 +["browse through the competing initiatives"] = "Navegar las iniciativas de la competencia";
  85.837 +["by"] = "por";
  85.838 +["by A-Z"] = "por A-Z";
  85.839 +["by Z-A"] = "por Z-A";
  85.840 +["by default only those issues are shown, for which your are eligible to participate (change filters on top of the list)"] = "Por defecto, sólo se muestran los temas en los que se puede participar (cambiar los filtros en la parte superior de la lista).";
  85.841 +["by latest activity"] = "por última actividad";
  85.842 +["cancel"] = "cancelar";
  85.843 +["cancel issue"] = "cancelar tema";
  85.844 +["cancel issue now"] = "cancelar tema ahora";
  85.845 +["canceled"] = "Cancelado";
  85.846 +["change avatar/photo"] = "Cambiar avatar/foto";
  85.847 +["change delegation..."] = "cambiar delegación...";
  85.848 +["change my login"] = "Cambiar mi nombre de usuario";
  85.849 +["change my password"] = "Cambiar mi contraseña";
  85.850 +["change my screen name"] = "Cambiar mi nombre de pantalla";
  85.851 +["change my vote"] = "change my vote";
  85.852 +["change vote"] = "cambiar voto";
  85.853 +["change/revoke area delegation"] = "Cambiar/revocar delegación de área";
  85.854 +["change/revoke delegation"] = "cambiar/revocar delegación";
  85.855 +["change/revoke delegation of organizational unit"] = "modificar/revocar delegación de la unidad organizativa";
  85.856 +["change/revoke delegation of subject area"] = "cambiar/revocar delegación de la área temática";
  85.857 +["change/revoke delegation only for this issue"] = "cambiar/revocar delegación sólo para este tema";
  85.858 +["change/revoke delegation only for this subject area"] = "cambiar/revocar delegación sólo para esta área temática";
  85.859 +["change/revoke issue delegation"] = "cambiar/revocar la delegación sólo para esta materia";
  85.860 +["check the issues on the right, and click on 'Vote now' to vote on an issue which is in voting phase."] = "Mira los temas a la derecha, y haz clic en 'Votar ahora' para votar sobre una tema que está en la fase de votación.";
  85.861 +["check your "] = "Configura tus ";
  85.862 +["choose delegatee"] = "elegir delegado";
  85.863 +["choose issue delegatee"] = "Elegir delegado de tema";
  85.864 +["choose subject area delegatee"] = "elegir delegado de área temática";
  85.865 +["closed"] = "cerrado";
  85.866 +["collective rating:"] = "Clasificación colectiva:";
  85.867 +["compare"] = "comparar";
  85.868 +["compare revisions"] = "comparar revisiones";
  85.869 +["confirm"] = "confirmar";
  85.870 +["confirmed address"] = "Dirección registrada";
  85.871 +["connected applications"] = "aplicaciones conectadas";
  85.872 +["create newsletter"] = "crear boletín de noticias";
  85.873 +["created #{initiative} (as new issue)"] = "creada #{initiative} (como tema nuevo)";
  85.874 +["currently leading"] = "actualmente liderando";
  85.875 +["database download"] = "descarga de la base de datos";
  85.876 +["day"] = "día";
  85.877 +["day [interval ago]"] = "días";
  85.878 +["day [interval time left]"] = "días";
  85.879 +["day [interval]"] = "días";
  85.880 +["days [interval ago]"] = "días";
  85.881 +["days [interval time left]"] = "días";
  85.882 +["days [interval]"] = "días";
  85.883 +["deactivated"] = "desactivado";
  85.884 +["delegate..."] = "delegar...";
  85.885 +["delegated to"] = "delegado a";
  85.886 +["delegates to"] = "delega a";
  85.887 +["delegation"] = "delegación";
  85.888 +["delete"] = "borrar";
  85.889 +["delete<br /><br />"] = "borrar<br /><br />";
  85.890 +["denied"] = "denegado";
  85.891 +["direct interest"] = "Interés directo";
  85.892 +["discard"] = "descartar";
  85.893 +["discard my vote"] = "descarta mi voto";
  85.894 +["do not notify me about this voting anymore"] = "no me notifiques más sobre esta votación";
  85.895 +["download database"] = "descargar base de datos";
  85.896 +["draft history (#{count})"] = "historia de borrador (#{count})";
  85.897 +["draft updated"] = "borrador actualizado";
  85.898 +["draft updated for "] = "borrador actualizado para";
  85.899 +["drafts of #{draft_count} initiatives updated"] = "los borradores de las iniciativas #{draft_count} actualizados";
  85.900 +["edit my profile"] = "Editar mi perfil";
  85.901 +["edit proposal and/or reasons"] = "Editar propuesta y/o razones";
  85.902 +["email address"] = "dirección de e-mail";
  85.903 +["ends in #{state_time_left}"] = "termina en #{state_time_left}";
  85.904 +["ends soon"] = "termina pronto";
  85.905 +["every"] = "cada";
  85.906 +["expert editor (HTML)"] = "editor experto (HTML)";
  85.907 +["external reference"] = "referencia externa";
  85.908 +["failed #{quorum}"] = "no logró el #{quorum}";
  85.909 +["featured"] = "destacado";
  85.910 +["featured initiatives"] = "iniciativas destacadas";
  85.911 +["finished"] = "Terminado";
  85.912 +["global"] = "global";
  85.913 +["has my support"] = "tiene mi apoyo";
  85.914 +["i#{id}: #{name}"] = "i#{id}: #{name}";
  85.915 +["if you like to implement a suggestion in your proposal and/or reasons, update your initiative draft"] = "Si quieres implementar una sugerencia en tu propuesta y/o razones por hacerlo, actualiza el borrador de tu iniciativa.";
  85.916 +["implemented:"] = "Implementado";
  85.917 +["in all phases"] = "En todas las fases";
  85.918 +["in my units"] = "En mis unidades";
  85.919 +["initiated by me"] = "Iniciado por mí";
  85.920 +["interest"] = "interés";
  85.921 +["interest via delegation"] = "Interés vía delegación";
  85.922 +["interested directly or via delegation"] = "Interés directo o via delegación";
  85.923 +["invite another initiator"] = "Invitar a otro iniciador";
  85.924 +["is implemented"] = "ha sido implementado";
  85.925 +["is not implemented"] = "no ha sido implementado";
  85.926 +["issue"] = "tema";
  85.927 +["issue list"] = "lista de temas";
  85.928 +["login name"] = "nombre de usuario";
  85.929 +["login to participate"] = "iniciar sesión para participar";
  85.930 +["logout"] = "Cerrar la sesión";
  85.931 +["make this contact private"] = "hacer este contacto privado";
  85.932 +["make this contact public"] = "hacer este contacto público";
  85.933 +["member inactive"] = "miembro inactivo";
  85.934 +["mode"] = "modo";
  85.935 +["month"] = "mes";
  85.936 +["month [interval ago]"] = "mes";
  85.937 +["month [interval time left]"] = "mes";
  85.938 +["month [interval]"] = "mes";
  85.939 +["months [interval ago]"] = "meses";
  85.940 +["months [interval time left]"] = "meses";
  85.941 +["months [interval]"] = "meses";
  85.942 +["more: #{url}"] = "más: #{url}";
  85.943 +["must"] = "debe";
  85.944 +["must be implemented"] = "tiene que ser implementado";
  85.945 +["must not"] = "no debe";
  85.946 +["my issues"] = "Mis temas";
  85.947 +["neutral"] = "neutral";
  85.948 +["new issue"] = "tema nuevo";
  85.949 +["new requests"] = "nuevas solicitudes";
  85.950 +["new suggestion added"] = "nueva sugerencia añadida";
  85.951 +["new suggestion for "] = "nueva sugerencia para ";
  85.952 +["newest first"] = "lo más nuevo primero";
  85.953 +["no delegation set"] = "no hay conjunto de delegaciones.";
  85.954 +["none"] = "ninguno";
  85.955 +["not activated (yet)"] = "no se ha activado (todavía)";
  85.956 +["not admitted"] = "No admitido";
  85.957 +["not decided yet"] = "aún no está decidido";
  85.958 +["not voted by me"] = "No votado por mí";
  85.959 +["not yet"] = "aún no";
  85.960 +["notification email address"] = "Dirección de e-mail para recibir notificaciones";
  85.961 +["notification settings"] = "Configuracion de notificaciónes";
  85.962 +["notifications settings"] = "ajustes de notificaciones.";
  85.963 +["oldest first"] = "el más viejo primero";
  85.964 +["one step back"] = "un paso atrás";
  85.965 +["open the appropriate subject area for your issue and follow the instruction on that page."] = "Abre el área temática que corresponda a tu tema y sigue las instrucciones en esa página.";
  85.966 +["open the organizational unit, subject area or issue you like to delegate and follow the instruction on that page."] = "Abre la unidad organizativa, el área temática o el tema que quieras delegar y sigue las instrucciones en esa página.";
  85.967 +["ordered by delegation count"] = "ordenado por conteo de delegaciones";
  85.968 +["other reasons (#{count})"] = "otras razones (#{count})";
  85.969 +["phase"] = "fase";
  85.970 +["phase ends soon"] = "la fase termina pronto";
  85.971 +["possibly instable result caused by multistage majority"] = "resultado posiblemente inestable causado por una mayoría multietapa";
  85.972 +["preference voting"] = "Voto preferencial";
  85.973 +["proceed with registration"] = "proceder al registro";
  85.974 +["profile and settings"] = "Perfil y configuración";
  85.975 +["public administrative notice:"] = "aviso administrativo público:";
  85.976 +["publish avatar/photo"] = "publicar avatar/foto";
  85.977 +["publish my rating"] = "publicar mi calificación";
  85.978 +["publish profile data"] = "publicar datos del perfil";
  85.979 +["publish suggestion"] = "publicar sugerencia";
  85.980 +["rate suggestion"] = "calificar la sugerencia";
  85.981 +["reached #{quorum}"] = "alcanzó #{quorum}";
  85.982 +["refresh my support"] = "renovar mi apoyo";
  85.983 +["refuse invitation"] = "rechazar la invitación";
  85.984 +["rejected [account access]"] = "rechazado";
  85.985 +["remove an initiator"] = "Eliminar un iniciador";
  85.986 +["remove from my contact list"] = "eliminar de mi lista de contactos";
  85.987 +["remove my interest"] = "Eliminar mi interés";
  85.988 +["remove my support"] = "Quitar mi apoyo";
  85.989 +["removed interest"] = "interés eliminado";
  85.990 +["removed support"] = "apoyo eliminado";
  85.991 +["request role account"] = "solicitar cuenta de rol";
  85.992 +["reverse beat path to status quo (including ties)"] = "reverse-beat-path hacia el statu quo (incluyendo las corbatas)";
  85.993 +["revoke"] = "revocar";
  85.994 +["revoke initiative"] = "Revocar iniciativa";
  85.995 +["revoked"] = "revocado";
  85.996 +["search"] = "buscar";
  85.997 +["sent"] = "Enviado";
  85.998 +["should"] = "debería";
  85.999 +["should be implemented"] = "debería ser implementado";
 85.1000 +["should not"] = "no debería";
 85.1001 +["show"] = "mostrar";
 85.1002 +["show all units"] = "Mostrar todas las unidades";
 85.1003 +["show ballot"] = "mostrar boleta";
 85.1004 +["show differences"] = "mostrar diferencias";
 85.1005 +["show incoming delegations"] = "mostrar las delegaciones entrantes";
 85.1006 +["show my profile"] = "Mostrar mi perfil";
 85.1007 +["show profile"] = "mostrar perfil";
 85.1008 +["show vote"] = "mostrar voto";
 85.1009 +["start a new competing initiative"] = "Empezar una nueva iniciativa competidora";
 85.1010 +["start an initiative in a new issue"] = "también puedes empezar una iniciativa nueva.";
 85.1011 +["structured discussion"] = "Discusión estructurada";
 85.1012 +["subscribe for update emails about this area"] = "suscríbete para recibir e-mails con novedades sobre esta área";
 85.1013 +["subscribe subject areas or add your interested to issues and you will be notified about changes (follow the instruction on the area or issue page)"] = "Suscríbete a las áreas temáticas o muestra tu interés por ciertos temas. Luego recibirás notificaciones sobre los cambios realizados en esos temas (sigue las instrucciones en la página del área o del tema).";
 85.1014 +["supporter"] = "partidario";
 85.1015 +["supporter with restricting suggestions"] = "partidario con sugerencias restrictivas";
 85.1016 +["switch to: #{member_name}"] = "cambiar a: #{member_name}";
 85.1017 +["take a look at the competing initiatives"] = "Ver iniciativas en competencia";
 85.1018 +["take a look at the suggestions (see right) and rate them"] = "Echale un vistazo a las sugerencias (ver el costado derecho) y califícalas.";
 85.1019 +["take a look at the suggestions of your supporters"] = "Echale un vistazo a las sugerencias de tus partidarios.";
 85.1020 +["take a look on the issues (see right)"] = "Echale un vistazo a los temas (al costado derecho).";
 85.1021 +["the following login is connected to this email address:\n\n"] = "el siguiente nombre de usuario está conectado a esta dirección de e-mail:\n\n";
 85.1022 +["this issue is in verification phase, therefore the initiative text cannot be updated anymore"] = "este tema está en la fase de verificación, así que el texto de la iniciativa ya no se puede actualizar";
 85.1023 +["this issue is in voting phase, therefore the initiative text cannot be updated anymore"] = "este tema está en la fase de votación, así que el texto de la iniciativa ya no se puede actualizar";
 85.1024 +["timeline"] = "cronología de eventos";
 85.1025 +["to argue about suggestions, just add your arguments to your reasons in the initiative draft, so your supporters can learn about your opinion"] = "Para debatir las sugerencias, sólo tienes que añadir tus argumentos a tus razones en el borrador de la iniciativa, y así tus partidarios pueden ver tu opinión.";
 85.1026 +["to reset your password please click on the following link:\n\n"] = "Para restablecer tu contraseña, por favor haz clic en el siguiente enlace:\n\n";
 85.1027 +["today at #{time}"] = "hoy a las #{time}";
 85.1028 +["unblock member"] = "desbloquear miembro";
 85.1029 +["unconfirmed address"] = "dirección no confirmada";
 85.1030 +["unit"] = "unidad";
 85.1031 +["unsubscribe from update emails about this area"] = "Cancelar tu suscripción para no recibir e-mails de actualización sobre esta área";
 85.1032 +["until"] = "hasta";
 85.1033 +["update area"] = "actualizar área";
 85.1034 +["update member"] = "actualizar miembro";
 85.1035 +["update policy"] = "política de actualización";
 85.1036 +["update rating"] = "actualizar clasificación";
 85.1037 +["update unit"] = "actualizar unidad";
 85.1038 +["verified"] = "verificado";
 85.1039 +["via delegation"] = "vía delegación";
 85.1040 +["vote delegation"] = "Delegación de voto";
 85.1041 +["vote now"] = "votar ahora";
 85.1042 +["voted"] = "votado";
 85.1043 +["voted and not voted by me"] = "Votado y no votado por mí";
 85.1044 +["voted by me"] = "Votado por mí";
 85.1045 +["voted directly by me"] = "Votado por mi directamente";
 85.1046 +["voted no"] = "votó no";
 85.1047 +["voted via delegation"] = "Votado vía delegación";
 85.1048 +["voted yes"] = "votó sí";
 85.1049 +["wants to access your account"] = "quiere acceder a tu cuenta";
 85.1050 +["with"] = "con";
 85.1051 +["without quorum"] = "sin quórum";
 85.1052 +["write a new suggestion"] = "Escribir una nueva sugerencia";
 85.1053 +["written and rated by the supportes of this initiative to improve the proposal and its reasons"] = "Escrito y calificado por los partidarios de esta iniciativa para mejorar la propuesta y sus razones";
 85.1054 +["year"] = "año";
 85.1055 +["year [interval ago]"] = "años";
 85.1056 +["year [interval time left]"] = "años";
 85.1057 +["year [interval]"] = "años";
 85.1058 +["years [interval ago]"] = "años";
 85.1059 +["years [interval time left]"] = "años";
 85.1060 +["years [interval]"] = "años";
 85.1061 +["yesterday at #{time}"] = "ayer a las #{time}";
 85.1062 +["you have #{count} incoming delegations"] = "tienes #{count} delegaciones entrantes";
 85.1063 +["you restricted your support by rating suggestions as must or must not"] = "Has restringido tu apoyo al calificar las sugerencias como 'debe' o 'no debe'";
 85.1064 +["you voted"] = "has votado";
 85.1065 +}
    86.1 --- a/locale/translations.fr.lua	Thu Feb 03 15:54:23 2022 +0100
    86.2 +++ b/locale/translations.fr.lua	Thu Feb 03 15:57:22 2022 +0100
    86.3 @@ -1,7 +1,8 @@
    86.4  #!/usr/bin/env lua
    86.5  return {
    86.6 -[" to receive updates by email"] = " pour recevoir les actualités par email";
    86.7 -["#{closed_ago} ago"] = "#{closed_ago} il y a"; 
    86.8 +[" + file_upload_id); html = html.replace("] = false;
    86.9 +[" + file_upload_id); var el = document.createElement("] = false;
   86.10 +["#{closed_ago} ago"] = "#{closed_ago} il y a";
   86.11  ["#{count} Neutral"] = "#{count} Neutre";
   86.12  ["#{count} No"] = "#{count} Non";
   86.13  ["#{count} Yes, alternative choice"] = "#{count} Oui, option alternative";
   86.14 @@ -13,18 +14,16 @@
   86.15  ["#{count} in voting"] = "#{count} en cours de vote";
   86.16  ["#{count} matching issues found"] = "#{count} thématiques correspondantes trouvées";
   86.17  ["#{count} matching members found"] = "#{count} utilisateurs correspondants trouvés";
   86.18 -["#{count} more areas in this unit"] = "#{count} autres domaines dans cette section";
   86.19  ["#{count} new"] = "#{count} nouveaux/nouvelles";
   86.20 -["#{count} of them have an area delegation set"] = "#{count} desquels ont la délégation de section définie";
   86.21  ["#{count} suggestions added"] = "#{count} suggestions ajoutées";
   86.22  ["#{count} suggestions added for #{initiative}"] = "#{count} suggestions ajoutées pour #{initiative}";
   86.23  ["#{count} supporter"] = "#{count} partisan";
   86.24  ["#{duration}"] = "#{duration}";
   86.25 -["#{interested_issues_to_vote_count} issue(s) you are interested in"] = "#{interested_issues_to_vote_count} thématiques auxquelles tu es interessé(e)"; ***
   86.26 +["#{interested_issues_to_vote_count} issue(s) you are interested in"] = "#{interested_issues_to_vote_count} thématiques auxquelles tu es interessé(e)";
   86.27  ["#{interval_text} [interval]"] = "#{interval_text}";
   86.28 -["#{interval_text} ago"] = "#{interval_text} il y a"; 
   86.29 +["#{interval_text} ago"] = "#{interval_text} il y a";
   86.30  ["#{interval_text} left"] = "#{interval_text} resté(s)";
   86.31 -["#{interval} ago"] = "#{interval} il y a "; 
   86.32 +["#{interval} ago"] = "#{interval} il y a ";
   86.33  ["#{issues_to_vote_count} issue(s)"] = "#{issues_to_vote_count} thématique(s)";
   86.34  ["#{issue} is in voting"] = "#{issue} est en cours de votation";
   86.35  ["#{number} Image(s) has been deleted"] = "#{number} Les images ont été supprimées";
   86.36 @@ -33,29 +32,45 @@
   86.37  ["#{result}: #{yes_count} Yes (#{yes_percent}), #{no_count} No (#{no_percent}), #{neutral_count} Abstention (#{neutral_percent})"] = "#{result}: #{yes_count} Oui (#{yes_percent}), #{no_count} Non (#{no_percent}), #{neutral_count} Abstentions (#{neutral_percent})";
   86.38  ["(+ #{count} potential)"] = "(+ #{count} potentiel)";
   86.39  ["(detached)"] = false;
   86.40 -["(new window)"] = "(nouvelle fênetre)"; 
   86.41 +["(new window)"] = "(nouvelle fênetre)";
   86.42  ["(new)"] = false;
   86.43  ["+ add new subject area"] = "+ créer un nouveau domaine";
   86.44  ["+getElementById("] = "+getElementById(";
   86.45  ["1 matching issue found"] = "1 thématique correspondante trouvée";
   86.46  ["1 matching member found"] = "1 utilisateur correspondant trouvé";
   86.47 -["4 phases of a decision"] = "4 étapes d'une décision"; 
   86.48 +["4 phases of a decision"] = "4 étapes d'une décision";
   86.49  ["A short title (80 chars max)"] = "Titre bref (80 caractères max)";
   86.50 -["Abandon global delegation for this area"] = "Renoncer à la délégation globale pour ce domaine"; 
   86.51 +["Abandon global delegation for this area"] = "Renoncer à la délégation globale pour ce domaine";
   86.52  ["Abandon unit and area delegations for this issue"] = "Renoncer aux délégations de section et de domaine pour cette thématique";
   86.53  ["Abandon unit delegation"] = "Renoncer à la délégation de section";
   86.54  ["Abandon unit delegation for this area"] = "Renoncer à la délégation de section pour ce domaine";
   86.55 -["About site"] = "A propos du site"; 
   86.56 +["About site"] = "A propos du site";
   86.57 +["Absolute initiative quorum"] = false;
   86.58 +["Absolute issue quorum"] = false;
   86.59 +["Absolute number of approval and abstention votes"] = false;
   86.60 +["Absolute number of approval votes"] = false;
   86.61  ["Abstention"] = "Abstention";
   86.62  ["Abstention [many entries]"] = "Abstention";
   86.63  ["Abstention [single entry]"] = "Abstention";
   86.64 -["Accepted at"] = "Accepté à"; 
   86.65 -["Account history"] = "Historique du compte"; 
   86.66 +["Accept access privilege"] = false;
   86.67 +["Accepted at"] = "Accepté à";
   86.68 +["Account"] = false;
   86.69 +["Account access"] = false;
   86.70 +["Account access by member"] = false;
   86.71 +["Account access invitation from '#{member_name}'"] = false;
   86.72 +["Account history"] = "Historique du compte";
   86.73 +["Account not activated (yet) (#{count})"] = false;
   86.74  ["Account registration"] = "Enregistrement de compte";
   86.75 +["Accredited (#{count})"] = false;
   86.76 +["Accredited role accounts"] = false;
   86.77 +["Accredited users"] = false;
   86.78  ["Activated"] = "Activé";
   86.79 +["Activated accounts (#{count})"] = false;
   86.80  ["Active?"] = "Active?";
   86.81  ["Add a new suggestion for improvement"] = "Ajoutez une nouvelle proposition d'amélioration";
   86.82 -["Admin?"] = "Admin"; 
   86.83 +["Add new account access privilege"] = false;
   86.84 +["Added attachments"] = false;
   86.85 +["Admin?"] = "Admin";
   86.86  ["Admission"] = "Admission";
   86.87  ["Admission phase"] = "Phase d'admission";
   86.88  ["Admission qourum factor"] = false;
   86.89 @@ -64,13 +79,14 @@
   86.90  ["Admission quorum standard"] = false;
   86.91  ["Admission quorum time"] = false;
   86.92  ["Admission time"] = "Heure d'admission";
   86.93 -["Admitted"] = "Accepté"; 
   86.94 -["All areas in my units"] = "Tous les domaines dans mes sections"; 
   86.95 +["Admitted"] = "Accepté";
   86.96 +["Agents"] = false;
   86.97  ["All fields are optional. Please enter only data which should be published."] = "Tous les champs sont optionnels. Veuillez ne saisir que les données qui devraient être publiées";
   86.98  ["All initiatives failed 2nd quorum"] = "Toutes les initiatives ont échouées le 2ème quorum";
   86.99  ["All members"] = "Tous les utilisateurs";
  86.100  ["All units"] = "Tous les sections";
  86.101  ["Allowed policies"] = "Mesures autorisées";
  86.102 +["Application authorization"] = false;
  86.103  ["Apply global delegation for this area (Currently: #{delegate_name} [#{scope}])"] = "Disponible à la délégation globale pour ce domaine (Currently: #{delegate_name} [#{scope}])";
  86.104  ["Apply global or area delegation for this issue (Currently: #{delegate_name} [#{scope}])"] = "Disponible à la délégation globale ou de domaine pour cette thématique (Currently: #{delegate_name} [#{scope}])";
  86.105  ["Apply unit delegation for this area (Currently: #{delegate_name} [#{scope}])"] = "Disponible à la délégation de domaine pour cette section (Currently: #{delegate_name} [#{scope}])";
  86.106 @@ -87,16 +103,15 @@
  86.107  ["Approval [single entry]"] = "Valider";
  86.108  ["Approved"] = "Validé";
  86.109  ["Are you aware that revoking an initiative is irrevocable?"] = "Savez-vous que la révocation d'une initiative est irrévocable?";
  86.110 -["Area"] = "Domaine";
  86.111  ["Area delegation"] = "Délegation de domaine";
  86.112  ["As long as you are interested in this issue yourself, the delegation is suspended for this issue, but it will be applied again in the voting phase unless you vote yourself."] = "Tant que vous êtes intéressé par cette thématique, la délégation est suspendue. Elle sera appliquée à nouveau lors de la phase de vote, à moins que vous ne votiez vous-même.";
  86.113  ["As soon as one initiative of this issue reaches the 1st quorum of #{quorum} support, the issue will proceed to discussion phase."] = "Dès qu'une initiative de cette thématique atteindra le 1er quorum de #{quorum} soutien, la thématique passera à la phase de discussion.";
  86.114 +["Attach image"] = false;
  86.115 +["Attr"] = false;
  86.116  ["Author"] = "Auteur";
  86.117  ["Available policies"] = "Mesures disponibles";
  86.118  ["Avatar"] = "Avatar";
  86.119 -["Back"] = "Retour";
  86.120  ["Ballot of '#{member_name}'"] = "Scrutin de '#{member_name}'";
  86.121 -["Before creating a new issue, please check any existant issues before, if the topic is already in discussion."] = "Avant de créer une thématique, controlez les thématiques existantes: le sujet pourrait être déjà en cours de discussion";
  86.122  ["Best not admitted initiative"] = "Meilleure initiative non admise";
  86.123  ["Broken delegations"] = "Délégations avec erreurs";
  86.124  ["Calculation"] = "Calcul";
  86.125 @@ -106,23 +121,25 @@
  86.126  ["Cancel issue"] = "Eliminer la thématique";
  86.127  ["Cancel issue ##{id}"] = "Eliminer la thématique ##{id}";
  86.128  ["Canceled by administrative intervention"] = "Eliminé par intervention administrative";
  86.129 +["Cancelled (#{count})"] = false;
  86.130 +["Cancelled account"] = false;
  86.131 +["Cancelled accounts"] = false;
  86.132 +["Cancelled accounts (#{count})"] = false;
  86.133  ["Change email address"] = "Changer l'adresse email";
  86.134  ["Change order"] = "Changer l'ordre";
  86.135  ["Changeset graph:"] = "Changeset graph:";
  86.136  ["Changeset:"] = "Changeset:";
  86.137  ["Check your #{scope} delegation to '#{trustee_name}' for '#{context}'"] = "Change ta délegation #{scope} à '#{trustee_name}' pour '#{context}'";
  86.138  ["Check your outgoing delegations"] = "Vérifier les délegations assignées";
  86.139 -["Choose a member to invite"] = "Choisir un membre à inviter";
  86.140 -["Choose an initiator to remove"] = "Choisir un promoteur à supprimer";
  86.141  ["Choose member"] = "Choisir un membre";
  86.142  ["Choose timing"] = "Choisir la durée";
  86.143  ["Choose your delegatee"] = "Choisir votre délégué";
  86.144 +["City"] = false;
  86.145  ["Client ID invalid"] = false;
  86.146  ["Closed"] = "Fermé";
  86.147  ["Closed issues"] = "Thématiques fermées";
  86.148  ["Closed user group"] = "Groupe d'utilisateurs fermé";
  86.149  ["Collective opinion of supporters"] = "Opinion collective des partisans";
  86.150 -["Collective rating"] = "Note collective";
  86.151  ["Comment"] = false;
  86.152  ["Compare"] = "Comparer";
  86.153  ["Comparision of revisions #{id1} and #{id2}"] = "Comparaison des versions #{id1} and #{id2}";
  86.154 @@ -137,24 +154,25 @@
  86.155  ["Confirmation code"] = "Code de confirmation";
  86.156  ["Confirmation code invalid!"] = "Code de confirmation invalide";
  86.157  ["Connected applications"] = "Applications connectées";
  86.158 +["Contact"] = false;
  86.159  ["Contacts"] = "Contacts";
  86.160  ["Content"] = "Contenu";
  86.161 -["Create a new issue"] = "Créer une nouvelle thématique";
  86.162 +["Cookie error. Try restarting your web browser and login again."] = false;
  86.163  ["Create a newsletter"] = "Créer une newsletter";
  86.164  ["Create new policy"] = "Créer une nouvelle politique";
  86.165  ["Create new unit"] = "Créer une nouvelle section";
  86.166  ["Created at"] = "Créer à";
  86.167 -["Curent password"] = false;
  86.168  ["Current delegatee"] = "Délégataire actuel";
  86.169  ["Current name"] = "Nom Actuel";
  86.170 +["Current password"] = false;
  86.171  ["Current phase is already closed."] = "L'étape actuelle est déjà close.";
  86.172  ["Current status"] = "Statut actuel";
  86.173  ["Current unit and area delegations need confirmation"] = "Les délégations actuelles de section ou de domaine doivent être confirmées";
  86.174  ["Current votings in areas you are member of and issues you are interested in:"] = "Votes en cours dans les domaines dont vous êtes membre et vos thèmes d'intérêt";
  86.175 -["Currently required"] = "Actuellement obligatoire";
  86.176  ["Currently this is the only initiative in this issue, because nobody started a competing initiative (yet)."] = "C'est actuellement la seule initiative sur ce thème, parce que personne n'a proposé d'initiative concurrente.";
  86.177  ["Date"] = "Date";
  86.178  ["Date format is not valid. Please use following format: YYYY-MM-DD"] = "Le format indiqué pour la date n'est pas valide. Veuillez utiliser le format suivant : AAAA-MM-GG";
  86.179 +["Date/place of birth"] = false;
  86.180  ["Deactivate member"] = "Desactiver l'utilisateur";
  86.181  ["Decline authorization"] = false;
  86.182  ["Default Policy"] = "Mesure par défaut";
  86.183 @@ -165,7 +183,7 @@
  86.184  ["Delegation abandoned"] = "Delegation abandonnée";
  86.185  ["Delegation turned off for area"] = "Delegation désactivée pour ce domaine";
  86.186  ["Delegation turned off for issue"] = "Delegation désactivée pour ce thème";
  86.187 -["Delegations"] = "Delegations";
  86.188 +["Delete account"] = false;
  86.189  ["Denied at"] = false;
  86.190  ["Deny request"] = false;
  86.191  ["Describe how the proposal and/or the reasons of the initiative could be improved"] = "Décrivez comment la proposition et/ou les motivations sous-jacentes à cette initiative pourraient être améliorées";
  86.192 @@ -174,10 +192,6 @@
  86.193  ["Did the initiator implement this suggestion?"] = "Le promoteur a-t-il appliqué cette suggestion ?";
  86.194  ["Digest #{id}: #{info}"] = "Résumé #{id}: #{info}";
  86.195  ["Direct majority"] = "Majorité directe";
  86.196 -["Direct majority denominator"] = "Dénominateur de la majorité directe";
  86.197 -["Direct majority non negative"] = "Majorité directe non négative";
  86.198 -["Direct majority numerator"] = "Numérateur pour la majorité directe";
  86.199 -["Direct majority positive"] = "Majorité directe positive";
  86.200  ["Disapproval (prefer to last block) [many entries]"] = "Désapprobation (préférence sur le dernier bloc)";
  86.201  ["Disapproval (prefer to last block) [single entry]"] = "Désapprobation (préférence sur le dernier bloc)";
  86.202  ["Disapproval (prefer to lower block) [many entries]"] = "Désapprobation (préférence sur le bloc inférieur)";
  86.203 @@ -202,17 +216,19 @@
  86.204  ["Draft contains invalid formatting or character sequence: #{error_message}"] = false;
  86.205  ["Draft history"] = "Historique des vérsions";
  86.206  ["Draft revision #{id}"] = "Révision des brouillons #{id}";
  86.207 +["Duration of discussion phase of an issue."] = false;
  86.208 +["Duration of verification phase of an issue."] = false;
  86.209 +["Duration of voting phase of an issue."] = false;
  86.210  ["During the discussion phase, the issue is debated on while the initiators improve the proposals and reasons in their initiatives. Supporters of initiatives can write and rate suggestions for improvement."] = "Pendant la phase de discussion, la thématique est discutée pendant que les promoteurs améliorent les propositions et les motivations de leurs initiatives. Les partisans des initiatives peuvent écrire et évaluer les suggestions pour l'amélioration.";
  86.211  ["During the verification phase, existing initiatives cannot be changed anymore. Initiatives need to pass the 2nd quorum of #{quorum} at end of verification phase to become admitted for voting."] = "Pendant la phase de vérification, les initiatives créées ne peuvent plus être modifiées. Les initiatives doivent passer le deuxième quorum de #{quorum} pour être admises à la phase de vote.";
  86.212  ["During the voting phase, votes for all admitted initiatives in this issue can be cast. The final result will be calculated as soon as this phase ends."] = "Pendant la phase de vote, les votes sont visibles pour chaque initiative admise. Le résultat final sera calculé à la fin de la votation.";
  86.213  ["Edit"] = "Éditer";
  86.214  ["Edit again"] = "Éditer encore";
  86.215  ["Edit voting comment"] = "Éditer le commentaire du vote";
  86.216 -["Edit your global "] = "Éditer le tout";
  86.217 +["Edit your global <link>notification settings</link> to receive updates by email."] = "Éditer le tout <link>paramètres de notification</link> pour recevoir les actualités par email.";
  86.218  ["Edit your profile data"] = "Éditer les données de votre profil";
  86.219  ["Eligible as winner"] = "Candidato all'approvazione";
  86.220  ["Eligible members (#{count})"] = "Membres éligibles (#{count})";
  86.221 -["Eligible voters"] = "Aventi diritto al voto";
  86.222  ["Email address"] = "Adresse mail";
  86.223  ["Email address confirmation"] = "Confirmation de l'adresse mail";
  86.224  ["Email address for notifications"] = "Adresse mail pour les notifications";
  86.225 @@ -220,21 +236,26 @@
  86.226  ["Email address too short!"] = "Adresse mail trop courte !";
  86.227  ["Email confirmation request"] = "Confirmation de l'adresse mail requise";
  86.228  ["Emphasis"] = "Emphase";
  86.229 -["PIN page"] = "Code PIN";
  86.230  ["Enter a new email address:"] = "Entrer une nouvelle adresse mail";
  86.231 +["Enter abstract:"] = false;
  86.232  ["Enter your proposal and/or reasons:"] = "Entrer votre proposition et/ou vos motivations:";
  86.233  ["Error during authorization"] = false;
  86.234  ["Error while converting image. Please note, that only JPG files are supported!"] = "Erreur lors de la conversion de l'image. Seul les fichiers JPG sont supportés !";
  86.235  ["Error while updating member, database reported:<br /><br /> (#{errormessage})"] = "Erreur lors de la mise à jour du membre, message de la base de données:<br /><br /> (#{errormessage})";
  86.236  ["Etherpad authentication failed"] = "Authentification Etherpad échouée";
  86.237 +["Experimental features"] = false;
  86.238  ["External reference"] = "Référence externe";
  86.239 -["Facebook Login"] = false;
  86.240  ["Failed  #{sign}#{num}/#{den}"] = "Échoué #{sign}#{num}/#{den}";
  86.241  ["Failed 1st quorum"] = "1er quorum échoué";
  86.242  ["Field"] = false;
  86.243 +["Filter issues:"] = false;
  86.244  ["Finish delegation check"] = "Fin de la vérification de délégations";
  86.245  ["Finish voting"] = "Fin du vote";
  86.246  ["Finished with winner"] = "Complété avec un gagnant";
  86.247 +["First quorum"] = false;
  86.248 +["Fiscal code"] = false;
  86.249 +["Fiscal code does not match"] = false;
  86.250 +["Fiscal code does not match (#{count})"] = false;
  86.251  ["For numbered items use a digit (e.g. 1) followed by a dot (.) and a space"] = "Pour les listes numérotées, utiliser un chiffre (e.g. 1) suivi par un point (.) et un espace";
  86.252  ["Forbidden"] = false;
  86.253  ["Forgot login name?"] = "Nom d'utilisateur oublié ?";
  86.254 @@ -246,7 +267,7 @@
  86.255  ["Fully frozen at"] = "Suspendu depuis";
  86.256  ["Global delegation"] = "Délégation globale";
  86.257  ["Go back to home page"] = "Retour à la page d'accueil";
  86.258 -["Google ID"] = false;
  86.259 +["Grant account access"] = false;
  86.260  ["Grant authorization"] = false;
  86.261  ["Half frozen at"] = "Partiellement suspendu depuis";
  86.262  ["Headlines"] = "Titres";
  86.263 @@ -287,50 +308,42 @@
  86.264  ["I want to start a new initiative"] = "Je veux démarrer une nouvelle initiative";
  86.265  ["I want to stay informed"] = "Je veux être informé(e)";
  86.266  ["I want to stay informed about this subject area"] = "Je veux recevoir des informations à propos de ce domaine";
  86.267 +["I want to switch to another account"] = false;
  86.268  ["I want to take a look at other organizational units"] = "Je veux explorer d'autres sections";
  86.269  ["I want to vote"] = "Je veux voter";
  86.270 -["check the issues on the right, and click on 'Vote now' to vote on an issue which is in voting phase."] = "Régarder les propositions sur la droite et cliquer sur le bouton 'Vote' pour donner ta préférence à une proposition en phase de votation";
  86.271 -["I'm interested in this issue"] = "Je suis intéressé par cette thématique";
  86.272 -["I'm supporting this initiative"] = "Je supporte cette initiative";
  86.273 +["ID"] = false;
  86.274  ["IP address"] = false;
  86.275  ["Id"] = "Id";
  86.276  ["Identification"] = "Identification";
  86.277 +["Identification used before"] = false;
  86.278 +["Identification used before (#{count})"] = false;
  86.279  ["If this link is not working, please open following url in your web browser:\n\n"] = "Si ce lien ne fonctionne pas, veuillez ouvrir le lien suivant dans votre navigateur:\n\n";
  86.280  ["If you cannot find any appropriate existing issue, "] = "Si vous ne trouvez aucune thématique appropriée, ";
  86.281 +["If you have not received a PIN code, our team will need to check your registration manually. We will be in touch within two working days. Please accept our apologies for the inconvenience."] = "Si vous n'avez pas reçu le code PIN, vos données seront vérifiées. Vous serez contacté(e) par mail dans un délai de deux jours ouvrés. Nous nous excusons pour l'attente et vous remercions de votre collaboration.";
  86.282  ["Implicitly admitted"] = "Admission implicite";
  86.283 -["If you have not received a PIN code, our team will need to check your registration manually. We will be in touch within two working days. Please accept our apologies for the inconvenience."] = "Si vous n'avez pas reçu le code PIN, vos données seront vérifiées. Vous serez contacté(e) par mail dans un délai de deux jours ouvrés. Nous nous excusons pour l'attente et vous remercions de votre collaboration.";
  86.284  ["Incoming delegations"] = "Délégations reçues";
  86.285 -["Incoming delegations for '#{member_name}'"] = "Délégations reçues pour '#{member_name}'";
  86.286  ["Incoming delegations for '#{member}'"] = "Délégations reçues pour '#{member}'";
  86.287  ["Indent sub items with spaces"] = "Indenter les sous-éléments avec des espaces";
  86.288 -["Index"] = "Index";
  86.289  ["Indirect majority"] = "Majorité indirecte";
  86.290  ["Indirect majority denominator"] = "Dénominateur de majorité indirecte";
  86.291  ["Indirect majority non negative"] = "Majorité indirecte non négative";
  86.292  ["Indirect majority numerator"] = "Numérateur de majorité indirecte";
  86.293  ["Indirect majority positive"] = "Majorité indirecte positive";
  86.294 -["Individual ratings"] = "évaluation individuelles";
  86.295  ["Initiative is revoked now"] = "L'initiative est maintenant révoquée";
  86.296  ["Initiative not admitted"] = "Initiative non acceptée";
  86.297  ["Initiative quorum"] = "Quorum de l'initiative";
  86.298 -["Initiative quorum absolute"] = false;
  86.299 -["Initiative quorum denominator"] = "Dénominateur du quorum de l'initiative";
  86.300 -["Initiative quorum numerator"] = "Numérateur pour le quorum de l'initiative";
  86.301  ["Initiative revoked"] = "Initiative révoquée";
  86.302  ["Initiative revoked: #{initiative_name}"] = "Initiative révoquée: #{initiative_name}";
  86.303 -["Initiative successfully created"] = "Initiative créée avec succès";
  86.304  ["Initiative: "] = "Initiative:";
  86.305  ["Initiatives and issues"] = "Initiatives et thématiques";
  86.306  ["Initiatives created by this member"] = "Initiatives créées par ce membre";
  86.307  ["Initiatives that invited you to become initiator:"] = "Initiatives avec invitation à être promoteur";
  86.308 -["Initiator invites"] = "Inviter à être promoteur ad essere promoteur";
  86.309  ["Initiators"] = "Promoteurs";
  86.310 -["Interest already removed"] = "Intérêt déjà supprimé";
  86.311 -["Interest removed"] = "Intérêt supprimé";
  86.312 -["Interest updated"] = "Intérêt mis à jour";
  86.313  ["Interested members"] = "Persone interessate";
  86.314  ["Interval format:"] = "Format d'interval:";
  86.315  ["Introduction"] = "Introduction";
  86.316 +["Invalid PIN entered"] = false;
  86.317 +["Invalid PIN entered (#{count})"] = false;
  86.318  ["Invalid PIN, please try again!"] = "PIN invalide, Veuillez rééssayer !";
  86.319  ["Invalid domain format"] = false;
  86.320  ["Invalid login name or password!"] = "Nom d'utilisateur ou mot de passe invalide !";
  86.321 @@ -341,15 +354,13 @@
  86.322  ["Invite code"] = "Code d'invitation";
  86.323  ["Invite letter"] = false;
  86.324  ["Invite member"] = "Inviter un membre";
  86.325 -["Invited"] = "Invité";
  86.326 +["Invited [as initiator]"] = "Invité";
  86.327  ["Issue #"] = "Thématique #";
  86.328  ["Issue ##{id}"] = "Thématique ##{id}";
  86.329  ["Issue ##{issue_id}: #{initiative_name}"] = "Thématique ##{issue_id}: #{initiative_name}";
  86.330  ["Issue delegation"] = "Délégation de la thématique";
  86.331  ["Issue has been canceled"] = "La thématique a été annulée";
  86.332  ["Issue quorum"] = "Qorum de la thématique";
  86.333 -["Issue quorum denominator"] = "Démoniateur du quorum de la thématique";
  86.334 -["Issue quorum numerator"] = "Numérateur du quorum de la thématique";
  86.335  ["Issue reached next phase"] = "La thématique est passée à la phase suivante";
  86.336  ["Issues in admission phase"] = "Thématique en phase d'admission";
  86.337  ["Issues in discussion phase"] = "Thématique en phase de discussion";
  86.338 @@ -367,24 +378,30 @@
  86.339  ["Lists must be preceeded and followed by at least one blank line"] = "Les listes doivent être précédées et suivies par au moins une ligne vide";
  86.340  ["Lock member?"] = "Bloquer le membre?";
  86.341  ["Locked?"] = "Bloqué(e)?";
  86.342 -["Login"] = "Login";
  86.343 +["Login [headline]"] = "Login";
  86.344 +["Login [button]"] = "Login";
  86.345  ["Login name"] = "Nom d'utilisateur";
  86.346  ["Login name request"] = "Nom d'utilisateur exigé";
  86.347  ["Login-Name: "] = "Nom-Utilisateur";
  86.348  ["Logout"] = "Se déconnecter";
  86.349  ["Logout successful"] = "Déconnexion effectuée";
  86.350 +["Majority"] = false;
  86.351  ["Make your choice by placing the initiatives"] = "Classer les initiatives";
  86.352  ["Manage newsletters"] = "Gérer les newsletters";
  86.353 +["Manual verification (w/o mobile)"] = false;
  86.354  ["Manual verification needed"] = "Vérification manuelle nécessaire";
  86.355 +["Manual verification requested during step 1"] = false;
  86.356 +["Manual verification requested during step 1 (#{count})"] = false;
  86.357 +["Manual verification requested during step 2"] = false;
  86.358 +["Manual verification requested during step 2 (#{count})"] = false;
  86.359  ["Maximum admission time"] = "Durée d'admission maximale";
  86.360 +["Maximum time within which an issue has to reach the 1st quorum, otherwise it will be canceled."] = false;
  86.361  ["Member"] = "Membre";
  86.362  ["Member has been removed from initiators"] = "Ce membre a été retiré des promoteurs";
  86.363  ["Member has been removed from your contacts"] = "Ce membre a été retiré de vos contacts";
  86.364  ["Member has not approved latest draft"] = "Ce membre n'a pas approuvé la dernière version";
  86.365  ["Member inactive?"] = "Membre inactif ?";
  86.366  ["Member is already saved in your contacts!"] = "Ce membre fait déjà parti de vos contacts !";
  86.367 -["Member is not participating in any of the #{count} areas in this unit"] = "Ce membre ne participe à aucun des #{count} domaines de la section";
  86.368 -["Member is not participating in the only area of the unit"] = "Ce membre ne participe pas au domaine de la section";
  86.369  ["Member is now invited to be initiator"] = "Ce membre est maintenant invité à devenir promoteur";
  86.370  ["Member list"] = "listes des membres";
  86.371  ["Member name"] = "Nom du membre";
  86.372 @@ -394,20 +411,24 @@
  86.373  ["Members"] = "Membres";
  86.374  ["Message of the day"] = false;
  86.375  ["Method not allowed"] = false;
  86.376 +["Minimum absolute number of supporters."] = false;
  86.377  ["Minimum admission time"] = "Durée minimale d'admission";
  86.378 +["Minimum number of supporters relative to the number of active participants in the organizational unit."] = false;
  86.379 +["Minimum supporter count (including support via delegation) an initiative has to reach to be an eligible candidate for the voting phase."] = false;
  86.380 +["Minimum supporter count (including support via delegation) one initiative of an issue has to reach to let the issue pass the 1st quorum and to proceed to discussion phase. Further requirements can occur due to per subject area issue limiter settings. See subject area settings."] = false;
  86.381 +["Minimum time an issue has to stay in admission phase before it can be accepted for discussion (if it reaches the 1st quorum)."] = false;
  86.382 +["Missing parameter"] = false;
  86.383  ["Monday"] = "Lundi";
  86.384  ["Move down"] = "Descendre";
  86.385  ["Move up"] = "Monter";
  86.386 -["My areas"] = "Mes domaines";
  86.387  ["Name"] = "Nom";
  86.388  ["New"] = "Nouveau";
  86.389  ["New area"] = "Nouveau domaine";
  86.390 -["New competing initiative"] = false;
  86.391 +["New competing initiative in issue '#{issue}'"] = false;
  86.392  ["New draft for initiative '#{initiative_name}'"] = "Nouveau texte pour l'initiative '#{initiative_name}'";
  86.393  ["New initiative"] = "Nouvelle initiative";
  86.394  ["New initiative draft"] = "Nouvelle version de l'initiative";
  86.395  ["New issue"] = "Nouvelle thématique";
  86.396 -["New member"] = "Nouveau membre";
  86.397  ["New newsletter"] = "Nouvelle newsletter";
  86.398  ["New organizational unit"] = "Nouvelle section";
  86.399  ["New password"] = false;
  86.400 @@ -423,6 +444,7 @@
  86.401  ["No PIN code received?"] = "Aucun code PIN reçu ?";
  86.402  ["No account yet?"] = "Pas encore de compte ? Enregistrez-vous";
  86.403  ["No admission needed"] = "Pas d'admission nécessaire";
  86.404 +["No applications connected"] = false;
  86.405  ["No changes to your images were made"] = "Les images n'ont pas été modifiées";
  86.406  ["No default"] = "Aucune valeur prédéfinie";
  86.407  ["No delegation"] = "Aucune délégation";
  86.408 @@ -430,14 +452,17 @@
  86.409  ["No matching members found"] = "Aucun membre corrispondant";
  86.410  ["No more events available"] = "Aucun évènement est disponible";
  86.411  ["No multistage majority"] = "Aucune majorité multistage";
  86.412 +["No other members are allowed to use this account."] = false;
  86.413  ["No published contacts"] = "Aucun contact publié";
  86.414  ["No results for this selection"] = "Aucun résultats pour cette séléction";
  86.415  ["No reverse beat path"] = "Aucun 'reverse beat path'";
  86.416  ["No suggestions"] = "Aucune suggestion";
  86.417  ["No suggestions yet"] = "Aucune suggestion pour le moment";
  86.418  ["No votes (0)"] = "(0) votes";
  86.419 +["No voting rights."] = false;
  86.420 +["None"] = false;
  86.421 +["None yet"] = false;
  86.422  ["Not a member"] = "N'est pas un membre";
  86.423 -["Not voted issues"] = "Thématiques qui n'ont pas été votées";
  86.424  ["Notification address unconfirmed"] = "Adresse de notification non confirmée";
  86.425  ["Notification email"] = "Mail de notification";
  86.426  ["Notification email (confirmed)"] = false;
  86.427 @@ -450,16 +475,23 @@
  86.428  ["On that page please enter the reset code:\n\n"] = "Insérer le code de reset dans cette page:\n\n";
  86.429  ["One issue"] = "Une thématique";
  86.430  ["One issue you are interested in"] = "Une thématique qui vous intéresse";
  86.431 -["One more area in this unit"] = "Un ou plusieurs domains dans cette section";
  86.432 -["One of them have an area delegation set"] = "L'une d'entre elles a un domaine de délégation";
  86.433 +["Open in FirstLife"] = false;
  86.434  ["Open initiatives you are supporting which has been updated their draft:"] = "Nouvelle version des initiatives ouvertes et supportées:";
  86.435 +["Open request"] = false;
  86.436 +["Open requests"] = false;
  86.437 +["Open requests (#{count})"] = false;
  86.438 +["Open role requests"] = false;
  86.439  ["Options"] = "Options";
  86.440  ["Organizational unit"] = "Section";
  86.441  ["Organizational units"] = "Sections";
  86.442  ["Organizational units and subject areas"] = "Sections et domaines";
  86.443  ["Other failures"] = "Autres erreurs";
  86.444 +["Other reasons"] = false;
  86.445  ["Outgoing delegations"] = "Délégations sortantes";
  86.446  ["Override disable notifications?"] = "passer outre la désactivation des notification ?";
  86.447 +["PIN code not entered"] = false;
  86.448 +["PIN code not entered (yet) (#{count})"] = false;
  86.449 +["PIN page"] = "Code PIN";
  86.450  ["Page not found"] = "Page non trouvée";
  86.451  ["Paragraphs"] = "Paragraphes";
  86.452  ["Parent unit"] = "Section supérieure";
  86.453 @@ -471,8 +503,12 @@
  86.454  ["Personal information"] = "Informations personnelles";
  86.455  ["Phase durations"] = "Durée de la phase";
  86.456  ["Phase ends soon"] = "La phase se termine bientôt";
  86.457 +["Phone number used before"] = false;
  86.458 +["Phone number used before (#{count})"] = false;
  86.459  ["Photo"] = "Photo";
  86.460 +["Please also check your SPAM folder."] = "Contrôlez dans le SPAM.";
  86.461  ["Please check date of birth"] = "Veuillez vérifier la date de naissance";
  86.462 +["Please check the fiscal code (invalid format or does not match name, first name and/or date of birth)"] = "Le numéro de sécurité sociale ne corresponde avec les données insérées (prénom, deuxième prénom, nom, lieu et/ou date de naissance). Nous vous invitons à vous reinscrire, en faisant attention à l'exactitude des données.";
  86.463  ["Please check the mobile phone number (invalid format)"] = "Veuillez vérifier le numéro de téléphone (format invalide)";
  86.464  ["Please choose a login name. This name will not be shown to others and is used only by you to login into the system. The login name is case sensitive."] = "Veuillez choisir un nom d'utilisateur. Ce nom ne sera pas montré aux autres utilisateurs et ne sert qu'à vous connecter au système. Ce nom d'utilisateur est sensible à la casse";
  86.465  ["Please choose a member"] = "Veuillez choisir un membre";
  86.466 @@ -506,57 +542,74 @@
  86.467  ["Preview of voting ballot"] = "Prévisualisation du bulletin de vote";
  86.468  ["Private contacts"] = "Contacts privés";
  86.469  ["Proceed with registration"] = "Procéder avec l'inscription";
  86.470 -["Project voting"] = false;
  86.471  ["Publish"] = "Publier";
  86.472  ["Publish now"] = "Publier maintenant";
  86.473  ["Published"] = "Publié";
  86.474  ["Published contacts"] = "Contacts publiés";
  86.475  ["Put **double asterisks** around a phrase to make it bold"] = "Mettez des **doubles astériques** autour d'une phrase pour la mettre en gras";
  86.476  ["Put *asterisks* or around a phrase to make it italic"] = "Mettez des *astériques* autour d'une phrase pour la mettre en italique";
  86.477 -["Put a hypen (-) or asterisk (*) followed by a space in front of each list item"] = false;
  86.478 +["Put a hypen (-) or asterisk (*) followed by a space in front of each item"] = false;
  86.479  ["Quick guide"] = false;
  86.480  ["Quorums"] = "Quorums";
  86.481 -["Rate suggestion"] = false;
  86.482  ["Reached #{sign}#{num}/#{den}"] = "Atteint #{sign}#{num}/#{den}";
  86.483 -["Read more"] = "Lire plus";
  86.484  ["Recover login name"] = "Récupérer votre nom d'utilisateur";
  86.485  ["Redirect URI forbidden"] = false;
  86.486  ["Redirect URI invalid"] = false;
  86.487  ["Redirect URI or response type not registered"] = false;
  86.488  ["Register new member"] = "Inscrire un nouveau membre";
  86.489 +["Register now"] = false;
  86.490  ["Registered members (#{count})"] = "Membres inscrits (#{count})";
  86.491  ["Registration (step 1 of 3: Invite code)"] = "Inscription (étape 1 de 3: Code invitation)";
  86.492  ["Registration (step 2 of 3: Personal information)"] = "Inscription (étape 2 de 3: Informations personnelles)";
  86.493  ["Registration (step 3 of 3: Terms of use and password)"] = "Inscription (étape 3 de 3: Condition d'utilisation et mot de passe)";
  86.494  ["Registration rejected"] = false;
  86.495  ["Registration succeeded"] = false;
  86.496 -["Rejected"] = "Rejeté";
  86.497 +["Reject access privilege"] = false;
  86.498 +["Rejected [initiator invitation]"] = "Rejeté";
  86.499 +["Rejected [initiative]"] = "Rejeté";
  86.500 +["Rejected (#{count})"] = false;
  86.501  ["Rejected (rank #{rank})"] = "Rejeté (position #{rank})";
  86.502 +["Rejected accreditation requests"] = false;
  86.503 +["Rejected request"] = false;
  86.504 +["Rejected requests (#{count})"] = false;
  86.505 +["Rejected role accreditation requests"] = false;
  86.506  ["Remove"] = "Supprimer";
  86.507  ["Remove an initiator from initiative"] = "Supprimer un promoteur de l'initiative";
  86.508  ["Remove application"] = false;
  86.509  ["Remove initiator"] = "Retirer le promoteur";
  86.510 +["Removed attachments"] = false;
  86.511  ["Rendered"] = "Rendu";
  86.512  ["Repeat new password"] = false;
  86.513  ["Repeat password"] = false;
  86.514  ["Request email with login name"] = "Demande du mail avec le nom d'utilisateur";
  86.515  ["Request password reset link"] = "Demande du lien de réinitialisation du mot de passe";
  86.516 +["Request role account"] = false;
  86.517 +["Request role accounts"] = false;
  86.518  ["Requested at"] = false;
  86.519  ["Requested by account"] = false;
  86.520 +["Requested by:"] = false;
  86.521  ["Requested privileges:"] = false;
  86.522 +["Required majorities"] = false;
  86.523  ["Resend activation email to '#{email}'"] = "Renvoyer le mail d'activation à '#{email}'";
  86.524  ["Reset code"] = "Réinitialisation du code";
  86.525  ["Reset code is invalid!"] = "Code de réinitialisation invalide!";
  86.526  ["Reset password"] = "Réinitialisation du mot de passe";
  86.527  ["Response type not allowed for given client"] = false;
  86.528  ["Results"] = false;
  86.529 +["Revoke"] = false;
  86.530  ["Revoke initiative"] = "Révoquer l'initiative";
  86.531  ["Revoke now"] = "Révoquer maintenant";
  86.532  ["Revoked (during admission)"] = "Révoqué (pendant l'admission)";
  86.533  ["Revoked (during discussion)"] = "Révoqué (pendant la discussion)";
  86.534  ["Revoked (during verification)"] = "Révoqué (pendant la vérification)";
  86.535  ["Revoked at"] = "Révoqué à";
  86.536 +["Role accounts"] = false;
  86.537 +["Role management"] = false;
  86.538  ["Rules of procedure"] = "Règles de la procédure";
  86.539 +["SMS"] = false;
  86.540 +["Same "] = false;
  86.541 +["Same identification"] = false;
  86.542 +["Same name already exists"] = false;
  86.543  ["Saturday"] = "Samedi";
  86.544  ["Save"] = "Sauvegarder";
  86.545  ["Save new password"] = "Sauvegarder le nouveau mot de passe";
  86.546 @@ -566,7 +619,8 @@
  86.547  ["Screen name"] = "Nom public";
  86.548  ["Search"] = "Recherche";
  86.549  ["Search results for: '#{search}'"] = "Résultats de recherche pour : '#{search}'";
  86.550 -["Search term (only complete words)"] = "Terme recherché (seulement mots entière)";
  86.551 +["Second quorum"] = false;
  86.552 +["Select unit first"] = false;
  86.553  ["Self registration"] = "Inscription";
  86.554  ["Self registration completed"] = "Inscription complétée";
  86.555  ["Send invite?"] = "Envoyer l'invitation";
  86.556 @@ -581,16 +635,14 @@
  86.557  ["Show full history"] = "Montrer l'histoire complète";
  86.558  ["Show full member list"] = "Montrer la liste de membres complète";
  86.559  ["Show inactive"] = "Montrer inactive";
  86.560 -["Show less"] = "Cacher";
  86.561 -["Show my voting ballot"] = "Montrer mon bulletin de vote";
  86.562  ["Show older events"] = "Montrer les anciens événements";
  86.563  ["Show policies in use"] = "Montrer les programmes en usage";
  86.564  ["Show policies not in use"] = "Montrer les programmes hors d'usage";
  86.565  ["Show voting ballot"] = "Montrer mon bulletin de vote";
  86.566 +["Skip admission phase and start issue in discussion phase (can only be started by members with polling privilege). If enabled, minimum and maximum admission time as well as 1st quorum needs to be cleared."] = false;
  86.567  ["Sorry, but there is not confirmed email address for your account. Please contact the administrator or support."] = "Désolé, il n'existe pas un mail confirmé pour ce compte. Veuillez contacter l'administrateur ou l'assistance.";
  86.568  ["Sorry, but you are currently not invited"] = "Désolé, vous n'êtes pas invité pour le moment.";
  86.569  ["Sorry, but you need to be at least 16 years old to participate. You can "] = "Désolé, mais vous devez avoir au moins 16 ans pour participer. Vous pouvez";
  86.570 -["Sorry, we were unable to verify your personal data automatically. Your data has been submitted for manual verification. We will contact you within the next 2 business days. Thank you for your patience. You can close this window now or "] = "Désolé, la vérification automatique des données personnelles a échouée. Vos données seront vérfiées par les administrateurs. Nous nous excusons et vous remercions pour votre collaboration. Dans l'attente, vous pouvez continuer à";
  86.571  ["Sorry, you have reached your personal flood limit. Please be slower..."] = "Désolé, vous avez atteind votre limite de flux. Soyez plus lent...";
  86.572  ["Sorry, your contingent for creating initiatives has been used up. Please try again later."] = "Désolé, votre contingent pour mener des initiatives a été épuisé. Réessayez plus tard.";
  86.573  ["Source"] = "Source";
  86.574 @@ -599,7 +651,6 @@
  86.575  ["Statement"] = "Texte";
  86.576  ["Status"] = "Statuts";
  86.577  ["Status quo: #{rank}"] = "Status quo: #{rank}";
  86.578 -["Strict direct majority"] = "Majorité directe absolue";
  86.579  ["Strict indirect majority"] = "Majorité indirecte absolue";
  86.580  ["Subject"] = "Sujet";
  86.581  ["Subject areas"] = "Domaines";
  86.582 @@ -609,12 +660,10 @@
  86.583  ["Suggestion currently implemented"] = "Suggestion intégrée";
  86.584  ["Suggestion currently not implemented"] = "Suggestion non intégrée";
  86.585  ["Suggestion does not exist anymore"] = "La suggestion n'existe plus";
  86.586 -["Suggestion for improvement #{id}"] = "Suggestion d'amélioration #{id}";
  86.587  ["Suggestions"] = "Suggestions";
  86.588  ["Suggestions for improvement (#{count})"] = "Suggestions pour l'amélioration (#{count})";
  86.589  ["Sunday"] = "Dimanche";
  86.590  ["Syntax help"] = "Manuel d'aide";
  86.591 -["System administration"] = "Administration du système";
  86.592  ["System settings"] = "Paramètres du système";
  86.593  ["Take a look through the existing issues. Maybe someone else started a debate on your topic (and you can join it) or the topic has been decided already in the past."] = "Visionnez les thématiques existantes. Il se peut que quelqu'un a déjà lancé une discussion sur le même sujet que le votre, ou que cette discussion a déjà eu lieu auparavant.";
  86.594  ["Tell others about this initiative:"] = "Informer les autres de cette initiative :";
  86.595 @@ -622,9 +671,11 @@
  86.596  ["The code you've entered is invalid"] = "Le code entré n'est pas valide";
  86.597  ["The draft of this initiative has been updated!"] = "La version de cette initiative a été mise à jour";
  86.598  ["The drafts do not differ"] = "Les versions ne différencient pas";
  86.599 +["The following settings for experimental features should only be changed with sufficient knowledge about the Schulze method and its implementation in LiquidFeedback."] = false;
  86.600  ["The initiative draft has been updated again in the meanwhile, support not updated!"] = "La version d'initiative a été mise à jour encore une fois, en attendant l'assistance n'est pas mise à jour!";
  86.601  ["The initiative text has been updated"] = "Le texte d'initative a été mis à jour";
  86.602  ["The initiators suggest to support the following initiative:"] = "Les initiateurs suggèrent de soutenir les initiatives suvantes:";
  86.603 +["The minimum absolute number of approval votes."] = false;
  86.604  ["This delegation is suspended, because you voted yourself."] = "Cette délégation est suspendue, parce que vous avez voté différement.";
  86.605  ["This email address already been used. Please check your inbox for an invitation or contact us."] = "Cette adresse email a déjà été utilisé. Regardez dans votre boite mail pour une invitation ou contactez-nous.";
  86.606  ["This email address is too short!"] = "L'adresse mail est trop courte !";
  86.607 @@ -633,6 +684,7 @@
  86.608  ["This initiative has not been admitted! It failed the 2nd quorum of #{quorum}."] = "Cette initiative n'a pas été admise car le deuxième quorum n'a pas été atteint de #{quorum}.";
  86.609  ["This initiative is already revoked"] = "Cette initiative est déjà révoquée";
  86.610  ["This initiative is revoked"] = "Cette initiative a été révoquée";
  86.611 +["This initiative references a FirstLife object."] = false;
  86.612  ["This invite key is connected with the following information:"] = "Ce code d'invitation est connecté à l'information suivante:";
  86.613  ["This is the only initiative in this issue, because nobody started a competing initiative."] = "Ceci est l'unique initiative dans cette thématique, parce que personne n'a commencé une initiative concurrente.";
  86.614  ["This issue is already closed."] = "Cette thématique est déjà close.";
  86.615 @@ -666,12 +718,15 @@
  86.616  ["Unit delegation"] = "Délegation de section";
  86.617  ["Unit list"] = "Liste de sections";
  86.618  ["Unknown author"] = "Auteur inconnu";
  86.619 -["Updated drafts"] = "Versions mises à jour";
  86.620  ["Upload avatar/photo"] = "Télécharger un avatar/une photo";
  86.621  ["Use [Text](http://example.com/) for links"] = "Utilisez [Text](http://example.com/) pour les liens";
  86.622  ["Use terms"] = "Conditions d'utilisation";
  86.623  ["Used by account"] = false;
  86.624 +["User accounts"] = false;
  86.625 +["User management"] = false;
  86.626 +["User with same name already exists (#{count})"] = false;
  86.627  ["Value"] = false;
  86.628 +["Verfication time"] = false;
  86.629  ["Verification"] = "Vérification";
  86.630  ["Verification #{time_info}"] = "Véfification #{time_info}";
  86.631  ["Verification data"] = false;
  86.632 @@ -680,10 +735,10 @@
  86.633  ["Verification started"] = "Vérification commencée";
  86.634  ["Verification time"] = "Vérification en cours";
  86.635  ["Verified at"] = false;
  86.636 +["Verified by"] = false;
  86.637  ["Verified by account"] = false;
  86.638  ["Verify account"] = false;
  86.639  ["Vote delegation"] = "Délégation du vote";
  86.640 -["Voted no"] = "À voté non";
  86.641  ["Voters"] = "Votants";
  86.642  ["Voting"] = "Vote";
  86.643  ["Voting #{time_info}"] = "Votation #{time_info}";
  86.644 @@ -718,8 +773,6 @@
  86.645  ["You are invited to become initiator of '#{initiative_name}'"] = "Vous êtes invité(e) à devenir initiateur de '#{initiative_name}'";
  86.646  ["You are invited to become initiator of this initiative"] = "e";
  86.647  ["You are not entitled to vote in this unit"] = "Vous n'avez pas le droit de voter dans cette section";
  86.648 -["You are not participating in any of the #{count} areas in this unit"] = "Vous ne participez par aux #{count} domaines dans cette section";
  86.649 -["You are not participating in the only area of the unit"] = "Vous ne participez dans le domaine de cette section";
  86.650  ["You are now initiator of this initiative"] = "Vous êtes promoteur de cette initiative";
  86.651  ["You are receiving updates by email for this subject area"] = "Vous recevez des mises à jour par email pour ce domaine";
  86.652  ["You are supporter"] = "Vous êtes partisan";
  86.653 @@ -740,45 +793,47 @@
  86.654  ["You didn't save any member as contact yet."] = "Vous n'avez pas encore sauvegardé aucun membre dans vos contacts.";
  86.655  ["You didn't set the level of notifications you like to receive"] = "Vous n'avez pas encore configuré le niveau de notifications que vous souhaitez recevoir.";
  86.656  ["You do not like to vote this issue (yourself)"] = "Vous préférez ne pas voter directement dans cette thématique";
  86.657 +["You have accepted access privileges for the following account:"] = false;
  86.658 +["You have been granted access privileges for the following account:"] = false;
  86.659 +["You have been granted access to the following account(s):"] = false;
  86.660  ["You have been subscribed for update emails about this subject area"] = "Vous êtes inscrits pour recevoir des notifications pour ce domaine";
  86.661 -["You have been voted"] = "Vous avez été voté";
  86.662 -["You have to mark 'Are you sure' to revoke!"] = "Vous devez selectionner 'Confirmer' pour révoquer!";
  86.663 +["You have rejected access privileges for the following account:"] = false;
  86.664 +["You have to mark 'Are you sure' to revoke!"] = "Vous devez crocher 'êtes-vous sûr' pour révoquer!";
  86.665  ["You have voted"] = "Vous avez voté";
  86.666 +["You have voted via delegation"] = "Vous avez voté via la délégation";
  86.667  ["You may choose one of the ongoing initiatives you are currently supporting"] = "Vous pouvez choisir une des initiatives en cours que vous soutenez actuellement";
  86.668  ["You need to confirm to deactivate!"] = "Vous devez confirmer pour désactiver";
  86.669 -["You refused to become initiator of this initiative"] = "Vous avez réfusé de devenir l'initiateur de cette initiative";
  86.670 -["You saved this member as contact (i.e. to use as delegatee)"] = "Vous avez sauvegardé ce membre en tant que contact (c.-à-d comme délégataire)";
  86.671 -["You saved this member as contact (i.e. to use as delegatee) and others can see it"] = "Vous avez sauvegardé ce membre en tant que contact (c.-à-d pour utiliser comme délégataire) et les autres peuvent le voir";
  86.672 -["You should receive a PIN code via SMS shortly. Please enter the PIN."] = "Vous devez bientôt recevoir un PIN via sms. Veuillez entrer le PIN.";
  86.673 -["You will no longer receive update emails about this subject area"] = "Vous ne receverez plus de notifications email pour concernantes cette thématique";
  86.674 -["You will receive status update notification on issue phase changes. Additionally you can subscribe for a regular digest including updates on initiative drafts and new suggestions."] = "Vous receverez des notifications de mises à jour sur des changemenets de phases thématiques. De plus vous pouvez vous inscrire pour un résumé quotidien comprenant des mises à jour sur les versions d'initiations et de nouvelles suggestions";
  86.675 -["Your avatar is a small photo, which will be shown always next to your name."] = "Votre avatar est une petite photo, qui sera affiché avec votre nom.";
  86.676 +["You refused to become initiator of this initiative"] = "Vous avez réfusé de devenir initiateur de cette initiative";
  86.677 +["You saved this member as contact (i.e. to use as delegatee)"] = "Vous avez sauvegardé ce membre en tant que contact (c.-à-d pour utiliser comme délégataire)";
  86.678 +["You saved this member as contact (i.e. to use as delegatee) and others can see it"] = "Vous avez sauvegardé ce membre parmi les contacts publics (es. pour lui proposer d'être un délégué). Il peut être vu par tous les utilisateurs";
  86.679 +["You should receive a PIN code via SMS shortly. Please enter the PIN."] = "Bientôt vous recevrez un code PIN via SMS. Insérez le PIN.";
  86.680 +["You will no longer receive update emails about this subject area"] = "Vous ne récevrez plus de notifications concernant cette section thématique";
  86.681 +["You will receive status update notification on issue phase changes. Additionally you can subscribe for a regular digest including updates on initiative drafts and new suggestions."] = "Vous recevrez une mise à jour sur l'état d'avancement de phase pour cette thématique. En plus, vous pouvez vous souscrire pour un digest périodique que include les mises à jour sur les initiatives e sur les nouvelles suggestions.";
  86.682 +["Your avatar is a small photo, which will be shown always next to your name."] = "Votre avatar est une petite photo qui sera affichée à côté de votre prénom.";
  86.683  ["Your choice"] = "Votre choix";
  86.684 -["Your email address has been changed, please check for confirmation email with activation link!"] = "Votre email a été changé, vous receverez un email de confirmation avec un lien d'activation";
  86.685 +["Your email address has been changed, please check for confirmation email with activation link!"] = "Votre email a été changé. Vous récevrez un message avec le lien de confirmation à votre nouveau adresse!";
  86.686  ["Your login has been changed to '#{login}'"] = "Votre nom d'utilisateur a été changé en '#{login}'";
  86.687  ["Your name has been changed"] = "Votre nom a été changé";
  86.688  ["Your page has been updated"] = "Votre nom a été mis à jour";
  86.689  ["Your password has been updated successfully"] = "Votre mot de passe a été mis à jour avec succès";
  86.690  ["Your photo will be shown in your profile."] = "Votre photo sera visible depuis votre profil";
  86.691 -["Your rating has been deleted"] = "Votre évaluation a été supprimé";
  86.692 -["Your rating has been updated"] = "Votre évaluation a été mis à jour";
  86.693 -["Your request has been processed."] = "Votre demande a été traitée. Vous receverez un email à l'adresse email que vous avez enregistré dans le système";
  86.694 +["Your request has been processed."] = "Votre demande a été prise en compte. Si l'email/username sont présents dans le système, vous récevrez un email de confirmation";
  86.695  ["Your suggestion has been added"] = "Votre suggestion a été ajouté";
  86.696  ["Your support has been updated to the latest draft"] = "Votre soutien a été mis à jour sur la dernière version";
  86.697 -["Your vote has been discarded. Les règles de délégation s'appliquent si elles sont définies."] = "Votre vote a été écarté";
  86.698 +["Your vote has been discarded. Delegation rules apply if set."] = false;
  86.699  ["[Name of Language]"] = "Français";
  86.700  ["[Not public]"] = false;
  86.701  ["[calculating]"] = false;
  86.702 -["[event mail]       URL: #{url}"] =    "          URL: #{url}";
  86.703 -["[event mail]      Area: #{name}"] =   "      Domaine: #{name}";
  86.704 -["[event mail]      Unit: #{name}"] =   "      Session: #{name}";
  86.705 -["[event mail]     Issue: ##{id}"] =    "   Thématique: ##{id}";
  86.706 -["[event mail]     Phase: #{phase}"] =  "        Phase: #{phase}";
  86.707 -["[event mail]    Policy: #{policy}"] = "    Procédure: #{policy}";
  86.708 -["[introduction] iniatives and issues"] = "LiquidFeedback n'est pas un questionnaire constitué par des questions prédéfinies. Chaque participant peut ajouter des nouvelles initiatives qui continnent des propositions et/ou des thématiques. Dès que l'initiative est ajoutée, tous les autres participants peuvent en créer des alternatives, en présentant leurs propositions ou thématiques. Un groupe d'initiatives corrélées forme une domaine. Les domaines dans LiquidFeedback sont identifiées à travers un hashtag (par exemple, #123). Les initiatives sont identifiées par un 'i' (par exemple i456). Un domaine peut donc contenir plusieures initiatives. Une seule initiative peut gagner.";
  86.709 -["[introduction] organizational units"] = "Pour permettre aux sous-groupes de membres (comme ceux qui font part d'une organisation) de continuer leurs discussions et décisions, chaque utilisateur peut faire partie de différentes sections. Chaque sections peut avoir ses propres domaines.";
  86.710 -["[introduction] phase 1 admission"] = "Sur Liquid Feedback, chaque utilisateur peut créer une nouvelle thématique : pour faire si que la discussion se concentre sur les thématiques souhaitées pour un nombre minimal d'utilisateur, un système de quorum est mis en place. Chaque nouvelle thématique devra atteindre un certain nombre d'utilisateur qui la supportent pour pouvoir rentrer dans la phase suivante de discussion. Les thématiques qui atteignent le quorum seront fermées à la fin de la phase d'admission.";
  86.711 -["[introduction] phase 2 discussion"] = "Pendant la phase de discussion, toutes les initiatives essayent d'enrichir et d'améliorer leur propositions et arguments pour obtenir plus partisans pour atteindre la majorité nécessaire pour gagner.";
  86.712 +["[event mail]       URL: #{url}"] = "          URL: #{url}";
  86.713 +["[event mail]      Area: #{name}"] = "Area tematica: #{name}";
  86.714 +["[event mail]      Unit: #{name}"] = "      Sezione: #{name}";
  86.715 +["[event mail]     Issue: ##{id}"] = "     Tematica: ##{id}";
  86.716 +["[event mail]     Phase: #{phase}"] = "         Fase: #{phase}";
  86.717 +["[event mail]    Policy: #{policy}"] = "    Procedura: #{policy}";
  86.718 +["[introduction] iniatives and issues"] = "LiquidFeedback n'est pas un questionnaire constitué par des questions prédéfinies. Au contraire, chaque participant(e) peut ajouter de nouvelles initiatives qui contiennent une proposition et/ou des suggestions. Dès que l'initiative est ajoutée, tous les autres participants peuvent en créer d'alternatives, en présentant leurs contre-propositions et/ou suggestions. Un group d'initiatives corrélées forment une thématique. Les thématiques dans LiquidFeedback sont identifiées à travers un hashtag et sont suivies par un numéro (ex. #123), cependant que les initiatives sont identifiées par un 'i' (ex. i456). Bref: une thématique peut ragrouper plusieurs initiatives, mais seulement une initiative peut gagner.";
  86.719 +["[introduction] organizational units"] = "Pour permettre aux sous-groupes de membres (ex. les afférents d'une unité d'une organisation) de poursuivre des discussions et des décisions, chaque utilisateur peut faire partie de divers sections. Chaque section peut avoir ses propres domaines.";
  86.720 +["[introduction] phase 1 admission"] = "Dans Liquid Feedback chaque utilisateur peut créer une nouvelle thématique: pour faire si que la discussion se concentre sur les plus intéressantes, un mécanisme de quorum est en place. Chaque nouvelle thématique doit ajouter un certain nombre d'utilisateurs qui l'ont soutenue pour pouvoir entrer dans la phase successive de discussion. Les thématiques qui n'atteignent pas le quorum seront fermées à la fin de la phase de l'ammission.";
  86.721 +["[introduction] phase 2 discussion"] = "Pendant la phase de discussion toutes les initiatives tentent d'enrichir et améliorer leurs propositions et argumentations pour obtenir plus de partisans pour atteindre le quota de majorité nécessaire pour gagner sur les initiatives alternatives.";
  86.722  ["[introduction] phase 3 verification"] = "Pendant la phase de vérification les propositions et les argumentations des initiatives deviennent définitives et ne peuvent plus être modifiées. De cette façon, tout le monde peut contrôler qu'aucune modification a été faite au dernier au moment. En cas de nécessité, il est possibile d'ajouter davantage d'initiatives, mais ces dernières ne peuvent pas être modifiées et doivent obtenir le support des utilisateurs telle qu'elles ont été écrites.";
  86.723  ["[introduction] phase 4 voting"] = "Chaque initiative qui a atteint le nombre nécessaire de partisans à la fin de la phase de vérification est admise à cette phase  è peut être votée. Pendant cette phase, chaque utilisateur admis au vote peut voter, à travers un système qui permet non seulement d'exprimer pour chaque initiative un avis (oui/neutral/non) mais aussi d'ordonner les initiatives selon ses préférences";
  86.724  ["[introduction] preference voting"] = "Si deux initiatives similaires ont été présentées dans la même phase de vote, il n'est pas nécessaire d'en choisir une. Il est possible de voter pour ou contre pour plusieures initiatives en donnant un ordre de préférences individuelles. Ces préférences détermineront le gagnant dans le cas une initiative atteinte la majorité demandé à la fin de la phase de votation. De cette manière, personne sera encouragé à voter pour une initiative seulement pour en noyer d'autres, ni à voter contre une initiative seulement pour augmenter la probabilité qu'une autre puisse gagner.";
  86.725 @@ -788,6 +843,7 @@
  86.726  ["[not displayed public]"] = "[affichage non public]";
  86.727  ["abandoned"] = "abandonné";
  86.728  ["accept invitation"] = "accepter l'invitation";
  86.729 +["accepted [account access]"] = false;
  86.730  ["account activated"] = false;
  86.731  ["action"] = "action";
  86.732  ["activate account"] = "activer le compte";
  86.733 @@ -799,12 +855,13 @@
  86.734  ["add your support (see above) and rate or write new suggestions (and thereby restrict your support to certain conditions if necessary)"] = "ajouter mon soutien (voir ci-dessus) et évaluer ou créer des nouveaux suggestions";
  86.735  ["added interest to #{issue}"] = false;
  86.736  ["added support to #{initiative}"] = false;
  86.737 +["agents"] = false;
  86.738  ["all issues"] = "Toutes les thématiques";
  86.739  ["all results"] = false;
  86.740  ["all subject areas"] = "Tous les domaines";
  86.741 -["all units"] = false;
  86.742  ["allow invitation again"] = "Autoriser l'invitation de nouveau";
  86.743 -["and"] = "et";
  86.744 +["#{opinion} and #{implemented}"] = "#{opinion} et #{implemented}";
  86.745 +["#{opinion} but #{implemented}"] = "#{opinion} mais #{implemented}";
  86.746  ["and #{count} more initiatives"] = "et #{compter} plus d'initiatives";
  86.747  ["area"] = "domaine";
  86.748  ["at least #{count} approvals"] = "au moins #{compter} approvazioni";
  86.749 @@ -814,8 +871,9 @@
  86.750  ["between"] = "tra";
  86.751  ["block this member"] = "Bloquer ce membre";
  86.752  ["browse the platform as a guest"] = "Naviguer sur la plateforme en tant que visiteur";
  86.753 +["browse the portal as an unregistered user"] = "naviguez dans le portal sans vous authentifier";
  86.754  ["browse through the competing initiatives"] = "Explorer les initiativs alternative";
  86.755 -["but"] = "mais";
  86.756 +["by"] = false;
  86.757  ["by A-Z"] = "de A-Z";
  86.758  ["by Z-A"] = "de Z-A";
  86.759  ["by default only those issues are shown, for which your are eligible to participate (change filters on top of the list)"] = "Seulement les thématiques dans lesquelles vous êtes invitées à participer seront affichées (vous pouvez changer les préférences du filtre d'affichage en haut de la liste)";
  86.760 @@ -825,6 +883,7 @@
  86.761  ["cancel issue now"] = "Annuler la thématique maintenant";
  86.762  ["canceled"] = "Annulé";
  86.763  ["change avatar/photo"] = "Changer l'avatar/la photo";
  86.764 +["change delegation..."] = false;
  86.765  ["change my login"] = "Modifier mon nom d'utilisateur";
  86.766  ["change my password"] = "Modifier le mot de passe";
  86.767  ["change my screen name"] = "Changer votre nom public";
  86.768 @@ -837,13 +896,13 @@
  86.769  ["change/revoke delegation only for this issue"] = "Changer/révoquer la délégation seulement pour cette thématique";
  86.770  ["change/revoke delegation only for this subject area"] = "Changer/révoquer la délégation seulement pour cette section";
  86.771  ["change/revoke issue delegation"] = "Changer/révoquer la délégation pour la thématique";
  86.772 +["check the issues on the right, and click on 'Vote now' to vote on an issue which is in voting phase."] = "Régarder les propositions sur la droite et cliquer sur le bouton 'Vote' pour donner ta préférence à une proposition en phase de votation";
  86.773  ["check your "] = "Côtrolez votre ";
  86.774  ["choose delegatee"] = "Choisir le délégué";
  86.775  ["choose issue delegatee"] = "Choisissez le délégué pour la thématique";
  86.776  ["choose subject area delegatee"] = "Choisissez le délégué pour la section thématique";
  86.777  ["closed"] = false;
  86.778  ["collective rating:"] = "Valutation collective:";
  86.779 -["compare"] = "Comparer";
  86.780  ["compare revisions"] = "Comparer les revisions";
  86.781  ["confirm"] = "Confirmer";
  86.782  ["confirmed address"] = "Confirmer l'adresse";
  86.783 @@ -860,20 +919,18 @@
  86.784  ["days [interval time left]"] = "jours [interval time left]";
  86.785  ["days [interval]"] = "jours [interval]";
  86.786  ["deactivated"] = "désactivé";
  86.787 +["delegate..."] = false;
  86.788  ["delegated to"] = "délégué à";
  86.789  ["delegates to"] = "délégue à";
  86.790  ["delegation"] = false;
  86.791 -["delegation suspended during discussion"] = "délégation suspendue pendant la phase de discussion";
  86.792 +["delete"] = false;
  86.793  ["delete<br /><br />"] = "effacer<br /><br />";
  86.794  ["denied"] = false;
  86.795  ["direct interest"] = "intérêt directe";
  86.796  ["discard"] = "supprimer";
  86.797  ["discard my vote"] = "supprimer mon vote";
  86.798  ["do not notify me about this voting anymore"] = "ne pas me notifier par rapport à cette votation";
  86.799 -["don't send me a digest"] = "ne pas m'envoyer le résumé";
  86.800 -["don't send me notifications by email"] = "ne pas m'envoyer les notifications par email";
  86.801  ["download database"] = "télécharger la base des données";
  86.802 -["draft ID"] = "version ID";
  86.803  ["draft history (#{count})"] = "versions (#{count})";
  86.804  ["draft updated"] = "texte mis à jour";
  86.805  ["draft updated for "] = "texte mis à jour pour";
  86.806 @@ -884,6 +941,7 @@
  86.807  ["ends in #{state_time_left}"] = "terminera en #{state_time_left}";
  86.808  ["ends soon"] = "prend bientôt fin";
  86.809  ["every"] = "chaque";
  86.810 +["expert editor (HTML)"] = false;
  86.811  ["external reference"] = "lien externe";
  86.812  ["failed #{quorum}"] = "n'a pas atteint le quorum #{quorum}";
  86.813  ["featured"] = "à la une";
  86.814 @@ -898,7 +956,6 @@
  86.815  ["implemented:"] = "acceptés:";
  86.816  ["in all phases"] = "dans toutes les phases";
  86.817  ["in my units"] = "dans ma section";
  86.818 -["inactive"] = "inactive";
  86.819  ["initiated by me"] = "lancé par moi";
  86.820  ["interest"] = false;
  86.821  ["interest via delegation"] = "intéressé via délégation";
  86.822 @@ -927,7 +984,6 @@
  86.823  ["must be implemented"] = "doit être adopté";
  86.824  ["must not"] = "ne doit pas";
  86.825  ["my issues"] = "mes thématiques";
  86.826 -["my user account"] = "Mon compte";
  86.827  ["neutral"] = "neutre";
  86.828  ["new issue"] = "Nouvelle thématique";
  86.829  ["new requests"] = false;
  86.830 @@ -937,7 +993,9 @@
  86.831  ["no delegation set"] = "aucune délégation paramétrée";
  86.832  ["no reverse beat path to status quo (including ties)"] = "aucun 'reverse beat path' par rapport au status quo (même en cas d'équivalence)";
  86.833  ["none"] = "aucun";
  86.834 +["not activated (yet)"] = false;
  86.835  ["not admitted"] = "pas accepté ";
  86.836 +["not decided yet"] = false;
  86.837  ["not implemented"] = "pas adopté ";
  86.838  ["not voted by me"] = "pas voté par moi";
  86.839  ["not yet"] = "pas encore";
  86.840 @@ -948,9 +1006,8 @@
  86.841  ["one step back"] = "revenir en arrière";
  86.842  ["open the appropriate subject area for your issue and follow the instruction on that page."] = "ouvrez la section appropriée pour ta thématique et suivez les instructions présentes dans la page";
  86.843  ["open the organizational unit, subject area or issue you like to delegate and follow the instruction on that page."] = "ouvrez la section, le domaine ou la thématique que vous voulez déléguer e suivez les instructions présentes sur la page";
  86.844 -["or register"] = "ou enregistrement";
  86.845 -["or swipe"] = "ou swipe";
  86.846  ["ordered by delegation count"] = "ordonné par ordre de délégations";
  86.847 +["other reasons (#{count})"] = false;
  86.848  ["phase"] = false;
  86.849  ["phase ends soon"] = "cette phase terminera bientôt";
  86.850  ["possibly instable result caused by multistage majority"] = "le résultat peut être instable à cause de 'majorité multistage'";
  86.851 @@ -963,32 +1020,33 @@
  86.852  ["publish my rating"] = "publiez votre valutation";
  86.853  ["publish profile data"] = "publiez les données du compte";
  86.854  ["publish suggestion"] = "publiez suggestion";
  86.855 -["published at"] = "publié le";
  86.856 +["rate suggestion"] = false;
  86.857  ["reached #{quorum}"] = "atteint";
  86.858  ["refresh my support"] = "rénover mon soutien";
  86.859  ["refuse invitation"] = "réfuser l'invitation";
  86.860 +["rejected [account access]"] = false;
  86.861  ["remove an initiator"] = "retirer un promoteur";
  86.862  ["remove from my contact list"] = "retirer de ma liste des contacts";
  86.863  ["remove my interest"] = "retirer mon intérêt";
  86.864  ["remove my support"] = "retirer mon soutien";
  86.865  ["removed interest"] = false;
  86.866  ["removed support"] = false;
  86.867 +["request role account"] = false;
  86.868  ["reverse beat path to status quo (including ties)"] = "permettre le 'reverse beat path' par rapport au status quo (équivalence inclue)";
  86.869  ["revoke"] = "revoquer";
  86.870  ["revoke initiative"] = "revoquer l'initiative";
  86.871  ["revoked"] = "revoqué";
  86.872  ["search"] = "rechercher";
  86.873 -["select tabs"] = "séléctionner une fiche";
  86.874  ["sent"] = "envoyé";
  86.875  ["should"] = "devrait";
  86.876  ["should be implemented"] = "devrait être implementé(e)";
  86.877  ["should not"] = "ne devrait pas";
  86.878  ["show"] = false;
  86.879  ["show all units"] = "montre toutes les sections";
  86.880 +["show ballot"] = false;
  86.881  ["show details"] = "montre les détails";
  86.882  ["show differences"] = "montre les différences";
  86.883  ["show incoming delegations"] = false;
  86.884 -["show initiative"] = false;
  86.885  ["show my profile"] = "Mon compte";
  86.886  ["show profile"] = false;
  86.887  ["show vote"] = "montre le vote";
  86.888 @@ -999,6 +1057,7 @@
  86.889  ["subscribe subject areas or add your interested to issues and you will be notified about changes (follow the instruction on the area or issue page)"] = "inscrivez-vous à une section thématique ou singulièrement aux thématiques pour recevoir les notifications en mérite aux mises à jour (suivez les instructions dans les pages de la section thématique)";
  86.890  ["supporter"] = "partisans";
  86.891  ["supporter with restricting suggestions"] = "partisans avec suggéstions restrictives";
  86.892 +["switch to: #{member_name}"] = false;
  86.893  ["take a look at the competing initiatives"] = "contrôler les initiatives alternatives";
  86.894  ["take a look at the suggestions (see right) and rate them"] = "contrôlez les suggestions (à droite) et évaluez-les";
  86.895  ["take a look at the suggestions of your supporters"] = "contrôlez les suggestions des partisans";
  86.896 @@ -1009,17 +1068,16 @@
  86.897  ["timeline"] = "chronologie";
  86.898  ["to argue about suggestions, just add your arguments to your reasons in the initiative draft, so your supporters can learn about your opinion"] = "pour débattre les suggestions, ajoutez vos raisons au texte de l'initiative vos motivations au texte de l'initative, pour faire si que les partisans puissent apprendre de vos opinions";
  86.899  ["to reset your password please click on the following link:\n\n"] = "pour réinitialiser votre mot de passe, veuillez suivre le lien ci-dessous:\n\n";
  86.900 -["to show more info and learn what you can do"] = "pour montrer plus d'informations et découvrir ce que vous pouvez faire";
  86.901  ["today at #{time}"] = "aujourd'hui à #{time}";
  86.902  ["unblock member"] = "débloquer utilisateur";
  86.903  ["unconfirmed address"] = "cette adresse n'a pas été confirmé";
  86.904  ["unit"] = "section";
  86.905 -["unit / area"] = "section / thématique";
  86.906  ["unsubscribe from update emails about this area"] = "Se désinscrire des mises à jour via email pour cette thématique";
  86.907  ["until"] = "jusqu'à";
  86.908  ["update area"] = "modifier la section thématique";
  86.909  ["update member"] = "modifier un membre";
  86.910  ["update policy"] = "modifier la procédure";
  86.911 +["update rating"] = false;
  86.912  ["update unit"] = "modifier la section";
  86.913  ["variable"] = "variable";
  86.914  ["verified"] = false;
  86.915 @@ -1033,6 +1091,8 @@
  86.916  ["voted no"] = "votés contre";
  86.917  ["voted via delegation"] = "votés par délégation";
  86.918  ["voted yes"] = "votés oui";
  86.919 +["wants to access your account"] = false;
  86.920 +["with"] = false;
  86.921  ["without"] = "sans";
  86.922  ["without quorum"] = "sans quorum";
  86.923  ["write a new suggestion"] = "écrire une nouvelle suggestion";
  86.924 @@ -1045,327 +1105,7 @@
  86.925  ["years [interval time left]"] = "années";
  86.926  ["years [interval]"] = "années";
  86.927  ["yesterday at #{time}"] = "hier à #{time}";
  86.928 -["you are interested"] = "vous êtes intéressé";
  86.929 -["you are subscribed"] = "vous êtes souscrit";
  86.930  ["you have #{count} incoming delegations"] = "vous avez reçu #{count} délégations";
  86.931  ["you restricted your support by rating suggestions as must or must not"] = "vous avez limité votre support en classifiant les suggestions selon les critères : 'doit' ou 'ne doit pas' être adopté";
  86.932  ["you voted"] = "vous avez voté";
  86.933 -["Please also check your SPAM folder."] = "Contrôlez dans le SPAM.";
  86.934 -["Please check the fiscal code (invalid format or does not match name, first name and/or date of birth)"] = "Le numéro de sécurité sociale ne corresponde avec les données insérées (prénom, deuxième prénom, nom, lieu et/ou date de naissance). Nous vous invitons à vous reinscrire, en faisant attention à l'exactitude des données.";
  86.935 -["We are sorry but the automatic verification of personal data has not been successful. We will need to verify your information manually. We apologise for the wait, and thank you for your cooperation. Until your information is verified, you can continue to "] = "Nous sommes désolés, mais la vérification automatique des données personnels n'a pas marché. Vos données devront être vérifiées manuellement. Nous nous excusons pour l'attente et vous remercions pour votre collaboration. Vous pouvez continuer à";
  86.936 -["browse the portal as an unregistered user"] = "naviguez dans le portal sans vous authentifier";
  86.937 -["For problems related to registration and use of the platform, please email "] = "Pour des problèmes liés à l'inscription et à l'utilisation de la plateforme, nous vous prions d'écrire un email à ";
  86.938 -["You have been voted"] = "Vous avez voté";
  86.939 -["You have to mark 'Are you sure' to revoke!"] = "Vous devez crocher 'êtes-vous sûr' pour révoquer!";
  86.940 -["You have voted"] = "Vous avez voté";
  86.941 -["You have voted via delegation"] = "Vous avez voté via la délégation";
  86.942 -["You may choose one of the ongoing initiatives you are currently supporting"] = "Vous pouvez choisir une des initiatives en cours que vous soutenez actuellement";
  86.943 -["You need to confirm to deactivate!"] = "Vous devez confirmer pour désactiver";
  86.944 -["You refused to become initiator of this initiative"] = "Vous avez réfusé de devenir initiateur de cette initiative";
  86.945 -["You saved this member as contact (i.e. to use as delegatee)"] = "Vous avez sauvegardé ce membre en tant que contact (c.-à-d pour utiliser comme délégataire)";
  86.946 -["You saved this member as contact (i.e. to use as delegatee) and others can see it"] = "Vous avez sauvegardé ce membre parmi les contacts publics (es. pour lui proposer d'être un délégué). Il peut être vu par tous les utilisateurs";
  86.947 -["You should receive a PIN code via SMS shortly. Please enter the PIN."] = "Bientôt vous recevrez un code PIN via SMS. Insérez le PIN.";
  86.948 -["You will no longer receive update emails about this subject area"] = "Vous ne récevrez plus de notifications concernant cette section thématique";
  86.949 -["You will receive status update notification on issue phase changes. Additionally you can subscribe for a regular digest including updates on initiative drafts and new suggestions."] = "Vous recevrez une mise à jour sur l'état d'avancement de phase pour cette thématique. En plus, vous pouvez vous souscrire pour un digest périodique que include les mises à jour sur les initiatives e sur les nouvelles suggestions.";
  86.950 -["Your avatar is a small photo, which will be shown always next to your name."] = "Votre avatar est une petite photo qui sera affichée à côté de votre prénom.";
  86.951 -["Your choice"] = "Votre choix";
  86.952 -["Your email address has been changed, please check for confirmation email with activation link!"] = "Votre email a été changé. Vous récevrez un message avec le lien de confirmation à votre nouveau adresse!";
  86.953 -["Your login has been changed to '#{login}'"] = "Votre nom d'utilisateur a été changé en '#{login}'";
  86.954 -["Your name has been changed"] = "Votre nom a été changé";
  86.955 -["Your page has been updated"] = "Votre nom a été mis à jour";
  86.956 -["Your password has been updated successfully"] = "Votre mot de passe a été mis à jour avec succès";
  86.957 -["Your photo will be shown in your profile."] = "Votre photo sera visible depuis votre profil";
  86.958 -["Your rating has been deleted"] = "Votre évaluation a été supprimé";
  86.959 -["Your rating has been updated"] = "Votre évaluation a été mis à jour";
  86.960 -["Your request has been processed."] = "Votre demande a été prise en compte. Si l'email/username sont présents dans le système, vous récevrez un email de confirmation";
  86.961 -["Your suggestion has been added"] = "Votre suggestion a été ajouté";
  86.962 -["Your support has been updated to the latest draft"] = "Votre soutien a été mis à jour sur la dernière version";
  86.963 -["Your vote has been discarded. Delegation rules apply if set"] = "Votre vote a été écarté. Les règles de délégation s'appliquent si elles sont définies";
  86.964 -["[Name of Language]"] = "Français";
  86.965 -["[Not public]"] = false;
  86.966 -["[calculating]"] = false;
  86.967 -["[event mail]       URL: #{url}"] =    "          URL: #{url}";
  86.968 -["[event mail]      Area: #{name}"] =   "Area tematica: #{name}";
  86.969 -["[event mail]      Unit: #{name}"] =   "      Sezione: #{name}";
  86.970 -["[event mail]     Issue: ##{id}"] =    "     Tematica: ##{id}";
  86.971 -["[event mail]     Phase: #{phase}"] =  "         Fase: #{phase}";
  86.972 -["[event mail]    Policy: #{policy}"] = "    Procedura: #{policy}";
  86.973 -["[introduction] iniatives and issues"] = "LiquidFeedback n'est pas un questionnaire constitué par des questions prédéfinies. Au contraire, chaque participant(e) peut ajouter de nouvelles initiatives qui contiennent une proposition et/ou des suggestions. Dès que l'initiative est ajoutée, tous les autres participants peuvent en créer d'alternatives, en présentant leurs contre-propositions et/ou suggestions. Un group d'initiatives corrélées forment une thématique. Les thématiques dans LiquidFeedback sont identifiées à travers un hashtag et sont suivies par un numéro (ex. #123), cependant que les initiatives sont identifiées par un 'i' (ex. i456). Bref: une thématique peut ragrouper plusieurs initiatives, mais seulement une initiative peut gagner.";
  86.974 -["[introduction] organizational units"] = "Pour permettre aux sous-groupes de membres (ex. les afférents d'une unité d'une organisation) de poursuivre des discussions et des décisions, chaque utilisateur peut faire partie de divers sections. Chaque section peut avoir ses propres domaines.";
  86.975 -["[introduction] phase 1 admission"] = "Dans Liquid Feedback chaque utilisateur peut créer une nouvelle thématique: pour faire si que la discussion se concentre sur les plus intéressantes, un mécanisme de quorum est en place. Chaque nouvelle thématique doit ajouter un certain nombre d'utilisateurs qui l'ont soutenue pour pouvoir entrer dans la phase successive de discussion. Les thématiques qui n'atteignent pas le quorum seront fermées à la fin de la phase de l'ammission.";
  86.976 -["[introduction] phase 2 discussion"] = "Pendant la phase de discussion toutes les initiatives tentent d'enrichir et améliorer leurs propositions et argumentations pour obtenir plus de partisans pour atteindre le quota de majorité nécessaire pour gagner sur les initiatives alternatives.";
  86.977 -["[introduction] phase 3 verification"] = "Pendant la phase de vérification les propositions et les argumentations des initiatives deviennent définitives et ne peuvent plus être modifiées. De cette façon, tout le monde peut contrôler qu'aucune modification a été faite au dernier au moment. En cas de nécessité, il est possibile d'ajouter davantage d'initiatives, mais ces dernières ne peuvent pas être modifiées et doivent obtenir le support des utilisateurs telle qu'elles ont été écrites.";
  86.978 -["[introduction] phase 4 voting"] = "Chaque initiative qui a atteint le nombre nécessaire de partisans à la fin de la phase de vérification est admise à cette phase  è peut être votée. Pendant cette phase, chaque utilisateur admis au vote peut voter, à travers un système qui permet non seulement d'exprimer pour chaque initiative un avis (oui/neutral/non) mais aussi d'ordonner les initiatives selon ses préférences";
  86.979 -["[introduction] preference voting"] = "Si deux initiatives similaires ont été présentées dans la même phase de vote, il n'est pas nécessaire d'en choisir une. Il est possible de voter pour ou contre pour plusieures initiatives en donnant un ordre de préférences individuelles. Ces préférences détermineront le gagnant dans le cas une initiative atteinte la majorité demandé à la fin de la phase de votation. De cette manière, personne sera encouragé à voter pour une initiative seulement pour en noyer d'autres, ni à voter contre une initiative seulement pour augmenter la probabilité qu'une autre puisse gagner.";
  86.980 -["[introduction] rules of procedure"] = "Dans LiquidFeedback il y a des règles qui définissent les temps de votation, les quora et la participation majoritaire adoptées pour chaque thématique. La personne ou le groupe qui crée une thématique décide les règles les plus adaptées à son but.";
  86.981 -["[introduction] subject areas"] = "Pour chaque thématique est associée une section pour structurer la discussion et la procedure décisionnelle.";
  86.982 -["[introduction] vote delegation"] = "Les délégations permettent de diviser de manière dynamique l'effort de participation. Une délégation est une déclaration que donne le droit de vote en vertu d'une procuration. Elle peut être changée à tout moment, n'est pas liée à aucune restriction sur le vote et peut être déléguée ultérieurement. Les délégations peuvent être appliées à une section entière, à un seul domaine ou à une seule thématique. Les délégation assignées à un niveau plus spécifique ont la priorité sur des délégations plus générales. Les délégations peuvent être utilisées pendant la discussion (phase d'ammission, discussion et vérification) et lors de la phase de votation.";
  86.983 -["[not displayed public]"] = "[affichage non public]";
  86.984 -["abandoned"] = "abandonné";
  86.985 -["accept invitation"] = "accepter l'invitation";
  86.986 -["account activated"] = false;
  86.987 -["action"] = "action";
  86.988 -["activate account"] = "activer le compte";
  86.989 -["activated"] = "activé";
  86.990 -["add my interest"] = "ajouter mon intérêt";
  86.991 -["add my support"] = "ajouter mon soutien";
  86.992 -["add to my list of private contacts"] = "ajouter à ma liste de contacts privés";
  86.993 -["add to my list of public contacts"] = "ajouter à ma liste de contacts publics";
  86.994 -["add your support (see above) and rate or write new suggestions (and thereby restrict your support to certain conditions if necessary)"] = "ajouter mon soutien (voir ci-dessus) et évaluer ou créer des nouveaux suggestions";
  86.995 -["added interest to #{issue}"] = false;
  86.996 -["added support to #{initiative}"] = false;
  86.997 -["all issues"] = "Toutes les thématiques";
  86.998 -["all results"] = false;
  86.999 -["all subject areas"] = "Tous les domaines";
 86.1000 -["all units"] = false;
 86.1001 -["allow invitation again"] = "Autoriser l'invitation de nouveau";
 86.1002 -["and"] = "et";
 86.1003 -["and #{count} more initiatives"] = "et #{compter} plus d'initiatives";
 86.1004 -["area"] = "domaine";
 86.1005 -["at least #{count} approvals"] = "au moins #{compter} approvazioni";
 86.1006 -["at least #{count} approvals or abstentions"] = "almeno #{count} approvazioni o astensioni";
 86.1007 -["author"] = "autore";
 86.1008 -["avatar/photo"] = "avatar/photo";
 86.1009 -["between"] = "tra";
 86.1010 -["block this member"] = "Bloquer ce membre";
 86.1011 -["browse the platform as a guest"] = "Naviguer sur la plateforme en tant que visiteur";
 86.1012 -["browse through the competing initiatives"] = "Explorer les initiativs alternative";
 86.1013 -["but"] = "mais";
 86.1014 -["by A-Z"] = "de A-Z";
 86.1015 -["by Z-A"] = "de Z-A";
 86.1016 -["by default only those issues are shown, for which your are eligible to participate (change filters on top of the list)"] = "Seulement les thématiques dans lesquelles vous êtes invitées à participer seront affichées (vous pouvez changer les préférences du filtre d'affichage en haut de la liste)";
 86.1017 -["by latest activity"] = "par activités les plus récentes";
 86.1018 -["cancel"] = "Annuler";
 86.1019 -["cancel issue"] = "Annuler la thématique";
 86.1020 -["cancel issue now"] = "Annuler la thématique maintenant";
 86.1021 -["canceled"] = "Annulé";
 86.1022 -["change avatar/photo"] = "Changer l'avatar/la photo";
 86.1023 -["change my login"] = "Modifier mon nom d'utilisateur";
 86.1024 -["change my password"] = "Modifier le mot de passe";
 86.1025 -["change my screen name"] = "Changer votre nom public";
 86.1026 -["change my vote"] = "Changer mon vote";
 86.1027 -["change vote"] = "Changer de vote";
 86.1028 -["change/revoke area delegation"] = "Changer/révoquer la délégation de la thématique";
 86.1029 -["change/revoke delegation"] = "Changer/révoquer la délégation";
 86.1030 -["change/revoke delegation of organizational unit"] = "Changer/révoquer la délégation pour la section";
 86.1031 -["change/revoke delegation of subject area"] = "Changer/révoquer la délégation pour pour le domaine";
 86.1032 -["change/revoke delegation only for this issue"] = "Changer/révoquer la délégation seulement pour cette thématique";
 86.1033 -["change/revoke delegation only for this subject area"] = "Changer/révoquer la délégation seulement pour cette section";
 86.1034 -["change/revoke issue delegation"] = "Changer/révoquer la délégation pour la thématique";
 86.1035 -["check your "] = "Côtrolez votre ";
 86.1036 -["choose delegatee"] = "Choisir le délégué";
 86.1037 -["choose issue delegatee"] = "Choisissez le délégué pour la thématique";
 86.1038 -["choose subject area delegatee"] = "Choisissez le délégué pour la section thématique";
 86.1039 -["closed"] = false;
 86.1040 -["collective rating:"] = "Valutation collective:";
 86.1041 -["compare"] = "Comparer";
 86.1042 -["compare revisions"] = "Comparer les revisions";
 86.1043 -["confirm"] = "Confirmer";
 86.1044 -["confirmed address"] = "Confirmer l'adresse";
 86.1045 -["connected applications"] = false;
 86.1046 -["create newsletter"] = "Créer une newsletter";
 86.1047 -["created #{initiative} (as new issue)"] = false;
 86.1048 -["currently leading"] = false;
 86.1049 -["database download"] = "Télécharger la base de données";
 86.1050 -["day"] = "jour";
 86.1051 -["day [interval ago]"] = "jour [interval ago]";
 86.1052 -["day [interval time left]"] = "jour [interval time left]";
 86.1053 -["day [interval]"] = "jour [interval]";
 86.1054 -["days [interval ago]"] = "jours [interval ago]";
 86.1055 -["days [interval time left]"] = "jours [interval time left]";
 86.1056 -["days [interval]"] = "jours [interval]";
 86.1057 -["deactivated"] = "désactivé";
 86.1058 -["delegated to"] = "délégué à";
 86.1059 -["delegates to"] = "délégue à";
 86.1060 -["delegation"] = false;
 86.1061 -["delegation suspended during discussion"] = "délégation suspendue pendant la phase de discussion";
 86.1062 -["delete<br /><br />"] = "effacer<br /><br />";
 86.1063 -["denied"] = false;
 86.1064 -["direct interest"] = "intérêt directe";
 86.1065 -["discard"] = "supprimer";
 86.1066 -["discard my vote"] = "supprimer mon vote";
 86.1067 -["do not notify me about this voting anymore"] = "ne pas me notifier par rapport à cette votation";
 86.1068 -["don't send me a digest"] = "ne pas m'envoyer le résumé";
 86.1069 -["don't send me notifications by email"] = "ne pas m'envoyer les notifications par email";
 86.1070 -["download database"] = "télécharger la base des données";
 86.1071 -["draft ID"] = "version ID";
 86.1072 -["draft history (#{count})"] = "versions (#{count})";
 86.1073 -["draft updated"] = "texte mis à jour";
 86.1074 -["draft updated for "] = "texte mis à jour pour";
 86.1075 -["drafts of #{draft_count} initiatives updated"] = "versions de #{draft_count} initiatives mises à jour";
 86.1076 -["edit my profile"] = "modifier le compte";
 86.1077 -["edit proposal and/or reasons"] = "modifier le texte (proposition et/ou motivations) ";
 86.1078 -["email address"] = false;
 86.1079 -["ends in #{state_time_left}"] = "terminera en #{state_time_left}";
 86.1080 -["ends soon"] = "prend bientôt fin";
 86.1081 -["every"] = "chaque";
 86.1082 -["external reference"] = "lien externe";
 86.1083 -["failed #{quorum}"] = "n'a pas atteint le quorum #{quorum}";
 86.1084 -["featured"] = "à la une";
 86.1085 -["featured initiatives"] = "initiatives à la une";
 86.1086 -["finished"] = "complété";
 86.1087 -["global"] = "global";
 86.1088 -["has my support"] = "a mon support";
 86.1089 -["hide details"] = "cacher les détails";
 86.1090 -["i#{id}: #{name}"] = "i#{id}: #{name}";
 86.1091 -["if you like to implement a suggestion in your proposal and/or reasons, update your initiative draft"] = "Si vous désirez accepter ou discuter une suggestion dans votre proposition, mettez à jour le texte de votre initiative";
 86.1092 -["implemented"] = "accepté";
 86.1093 -["implemented:"] = "acceptés:";
 86.1094 -["in all phases"] = "dans toutes les phases";
 86.1095 -["in my units"] = "dans ma section";
 86.1096 -["inactive"] = "inactive";
 86.1097 -["initiated by me"] = "lancé par moi";
 86.1098 -["interest"] = false;
 86.1099 -["interest via delegation"] = "intéressé via délégation";
 86.1100 -["interested directly or via delegation"] = "intéressé directement ou via délégation";
 86.1101 -["invite another initiator"] = "invitez un autre initiateur";
 86.1102 -["is implemented"] = "accepté";
 86.1103 -["is not implemented"] = "n'a pas été accepté";
 86.1104 -["issue"] = "thématique";
 86.1105 -["issue list"] = false;
 86.1106 -["login name"] = "nom d'utilisateur";
 86.1107 -["login to participate"] = "Connectez-vous pour participer";
 86.1108 -["logout"] = "Déconnexion";
 86.1109 -["make this contact private"] = "rendre ce contact privé";
 86.1110 -["make this contact public"] = "rendre ce contact public";
 86.1111 -["member inactive"] = "utilisateur non active";
 86.1112 -["mode"] = false;
 86.1113 -["month"] = "mois";
 86.1114 -["month [interval ago]"] = "mois";
 86.1115 -["month [interval time left]"] = "mois";
 86.1116 -["month [interval]"] = "mois";
 86.1117 -["months [interval ago]"] = "mois";
 86.1118 -["months [interval time left]"] = "mois";
 86.1119 -["months [interval]"] = "mois";
 86.1120 -["more: #{url}"] = "plus d'information : #{url}";
 86.1121 -["must"] = "doit";
 86.1122 -["must be implemented"] = "doit être adopté";
 86.1123 -["must not"] = "ne doit pas";
 86.1124 -["my issues"] = "mes thématiques";
 86.1125 -["my user account"] = "Mon compte";
 86.1126 -["neutral"] = "neutre";
 86.1127 -["new issue"] = "Nouvelle thématique";
 86.1128 -["new requests"] = false;
 86.1129 -["new suggestion added"] = "nouvelles suggestions ajoutées";
 86.1130 -["new suggestion for "] = "nouvelles suggestions pour ";
 86.1131 -["newest first"] = "afficher d'abord les nouvelles suggestions";
 86.1132 -["no delegation set"] = "aucune délégation paramétrée";
 86.1133 -["no reverse beat path to status quo (including ties)"] = "aucun 'reverse beat path' par rapport au status quo (même en cas d'équivalence)";
 86.1134 -["none"] = "aucun";
 86.1135 -["not admitted"] = "pas accepté ";
 86.1136 -["not implemented"] = "pas adopté ";
 86.1137 -["not voted by me"] = "pas voté par moi";
 86.1138 -["not yet"] = "pas encore";
 86.1139 -["notification email address"] = "adresse mail pour les notifications";
 86.1140 -["notification settings"] = "paramètres de notification";
 86.1141 -["notifications settings"] = "paramètres de notifications";
 86.1142 -["oldest first"] = "afficher d'abord les plus vieux";
 86.1143 -["one step back"] = "revenir en arrière";
 86.1144 -["open the appropriate subject area for your issue and follow the instruction on that page."] = "ouvrez la section appropriée pour ta thématique et suivez les instructions présentes dans la page";
 86.1145 -["open the organizational unit, subject area or issue you like to delegate and follow the instruction on that page."] = "ouvrez la section, le domaine ou la thématique que vous voulez déléguer e suivez les instructions présentes sur la page";
 86.1146 -["or register"] = "ou enregistrement";
 86.1147 -["or swipe"] = "ou swipe";
 86.1148 -["ordered by delegation count"] = "ordonné par ordre de délégations";
 86.1149 -["phase"] = false;
 86.1150 -["phase ends soon"] = "cette phase terminera bientôt";
 86.1151 -["possibly instable result caused by multistage majority"] = "le résultat peut être instable à cause de 'majorité multistage'";
 86.1152 -["preference voting"] = "vote de préférence";
 86.1153 -["proceed with registration"] = "continuez avec l'enregistrement";
 86.1154 -["profile and settings"] = false;
 86.1155 -["prohibit potentially instable results caused by multistage majorities"] = "interdisez les résultats instable causés par les 'majorité multistage'";
 86.1156 -["public administrative notice:"] = "message public de l'administrateur:";
 86.1157 -["publish avatar/photo"] = "publiez votre avatar/photo";
 86.1158 -["publish my rating"] = "publiez votre valutation";
 86.1159 -["publish profile data"] = "publiez les données du compte";
 86.1160 -["publish suggestion"] = "publiez suggestion";
 86.1161 -["published at"] = "publié le";
 86.1162 -["reached #{quorum}"] = "atteint";
 86.1163 -["refresh my support"] = "rénover mon soutien";
 86.1164 -["refuse invitation"] = "réfuser l'invitation";
 86.1165 -["remove an initiator"] = "retirer un promoteur";
 86.1166 -["remove from my contact list"] = "retirer de ma liste des contacts";
 86.1167 -["remove my interest"] = "retirer mon intérêt";
 86.1168 -["remove my support"] = "retirer mon soutien";
 86.1169 -["removed interest"] = false;
 86.1170 -["removed support"] = false;
 86.1171 -["reverse beat path to status quo (including ties)"] = "permettre le 'reverse beat path' par rapport au status quo (équivalence inclue)";
 86.1172 -["revoke"] = "revoquer";
 86.1173 -["revoke initiative"] = "revoquer l'initiative";
 86.1174 -["revoked"] = "revoqué";
 86.1175 -["search"] = "rechercher";
 86.1176 -["select tabs"] = "séléctionner une fiche";
 86.1177 -["sent"] = "envoyé";
 86.1178 -["should"] = "devrait";
 86.1179 -["should be implemented"] = "devrait être implementé(e)";
 86.1180 -["should not"] = "ne devrait pas";
 86.1181 -["show"] = false;
 86.1182 -["show all units"] = "montre toutes les sections";
 86.1183 -["show details"] = "montre les détails";
 86.1184 -["show differences"] = "montre les différences";
 86.1185 -["show incoming delegations"] = false;
 86.1186 -["show initiative"] = false;
 86.1187 -["show my profile"] = "Mon compte";
 86.1188 -["show profile"] = false;
 86.1189 -["show vote"] = "montre le vote";
 86.1190 -["start a new competing initiative"] = "lance une initiative alternative";
 86.1191 -["start an initiative in a new issue"] = "lance une initiative dans une nouvelle thématique";
 86.1192 -["structured discussion"] = "discussion structurée";
 86.1193 -["subscribe for update emails about this area"] = "inscrivez-vous pour recevoir les notifications email pour cette section thématique";
 86.1194 -["subscribe subject areas or add your interested to issues and you will be notified about changes (follow the instruction on the area or issue page)"] = "inscrivez-vous à une section thématique ou singulièrement aux thématiques pour recevoir les notifications en mérite aux mises à jour (suivez les instructions dans les pages de la section thématique)";
 86.1195 -["supporter"] = "partisans";
 86.1196 -["supporter with restricting suggestions"] = "partisans avec suggéstions restrictives";
 86.1197 -["take a look at the competing initiatives"] = "contrôler les initiatives alternatives";
 86.1198 -["take a look at the suggestions (see right) and rate them"] = "contrôlez les suggestions (à droite) et évaluez-les";
 86.1199 -["take a look at the suggestions of your supporters"] = "contrôlez les suggestions des partisans";
 86.1200 -["take a look on the issues (see right)"] = "contrôlez la thématique (à droite)";
 86.1201 -["the following login is connected to this email address:\n\n"] = "l'username suivant est connecté à l'email suivant:\n\n";
 86.1202 -["this issue is in verification phase, therefore the initiative text cannot be updated anymore"] = "cette thématique est en phase de vérification, pour cette raison son texte ne peut pas être modifié";
 86.1203 -["this issue is in voting phase, therefore the initiative text cannot be updated anymore"] = "cette thématique est en phase de vote, pour cette raison son texte ne peut plus être modifié";
 86.1204 -["timeline"] = "chronologie";
 86.1205 -["to argue about suggestions, just add your arguments to your reasons in the initiative draft, so your supporters can learn about your opinion"] = "pour débattre les suggestions, ajoutez vos raisons au texte de l'initiative vos motivations au texte de l'initative, pour faire si que les partisans puissent apprendre de vos opinions";
 86.1206 -["to reset your password please click on the following link:\n\n"] = "pour réinitialiser votre mot de passe, veuillez suivre le lien ci-dessous:\n\n";
 86.1207 -["to show more info and learn what you can do"] = "pour montrer plus d'informations et découvrir ce que vous pouvez faire";
 86.1208 -["today at #{time}"] = "aujourd'hui à #{time}";
 86.1209 -["unblock member"] = "débloquer utilisateur";
 86.1210 -["unconfirmed address"] = "cette adresse n'a pas été confirmé";
 86.1211 -["unit"] = "section";
 86.1212 -["unit / area"] = "section / thématique";
 86.1213 -["unsubscribe from update emails about this area"] = "Se désinscrire des mises à jour via email pour cette thématique";
 86.1214 -["until"] = "jusqu'à";
 86.1215 -["update area"] = "modifier la section thématique";
 86.1216 -["update member"] = "modifier un membre";
 86.1217 -["update policy"] = "modifier la procédure";
 86.1218 -["update unit"] = "modifier la section";
 86.1219 -["variable"] = "variable";
 86.1220 -["verified"] = false;
 86.1221 -["via delegation"] = "par délégation";
 86.1222 -["vote delegation"] = "délégation du vote";
 86.1223 -["vote now"] = "voter maintenant";
 86.1224 -["voted"] = false;
 86.1225 -["voted and not voted by me"] = "votés et non votés par moi";
 86.1226 -["voted by me"] = "votés par moi";
 86.1227 -["voted directly by me"] = "voté directement par moi";
 86.1228 -["voted no"] = "votés contre";
 86.1229 -["voted via delegation"] = "votés par délégation";
 86.1230 -["voted yes"] = "votés oui";
 86.1231 -["without"] = "sans";
 86.1232 -["without quorum"] = "sans quorum";
 86.1233 -["write a new suggestion"] = "écrire une nouvelle suggestion";
 86.1234 -["written and rated by the supportes of this initiative to improve the proposal and its reasons"] = "écrit et évalué pour l'amélioration de l'initiative par ses partisans";
 86.1235 -["year"] = "année";
 86.1236 -["year [interval ago]"] = "année";
 86.1237 -["year [interval time left]"] = "année";
 86.1238 -["year [interval]"] = "année";
 86.1239 -["years [interval ago]"] = "années";
 86.1240 -["years [interval time left]"] = "années";
 86.1241 -["years [interval]"] = "années";
 86.1242 -["yesterday at #{time}"] = "hier à #{time}";
 86.1243 -["you are interested"] = "vous êtes intéressé";
 86.1244 -["you are subscribed"] = "vous êtes souscrit";
 86.1245 -["you have #{count} incoming delegations"] = "vous avez reçu #{count} délégations";
 86.1246 -["you restricted your support by rating suggestions as must or must not"] = "vous avez limité votre support en classifiant les suggestions selon les critères : 'doit' ou 'ne doit pas' être adopté";
 86.1247 -["you voted"] = "vous avez voté";
 86.1248 -["Please also check your SPAM folder."] = "Contrôlez dans le SPAM.";
 86.1249 -["Please check the fiscal code (invalid format or does not match name, first name and/or date of birth)"] = "Le numéro de sécurité sociale ne corresponde avec les données insérées (prénom, deuxième prénom, nom, lieu et/ou date de naissance). Nous vous invitons à vous reinscrire, en faisant attention à l'exactitude des données.";
 86.1250 -["We are sorry but the automatic verification of personal data has not been successful. We will need to verify your information manually. We apologise for the wait, and thank you for your cooperation. Until your information is verified, you can continue to "] = "Nous sommes désolés, mais la vérification automatique des données personnels n'a pas marché. Vos données devront être vérifiées manuellement. Nous nous excusons pour l'attente et vous remercions pour votre collaboration. Vous pouvez continuer à";
 86.1251 -["browse the portal as an unregistered user"] = "naviguez dans le portal sans vous authentifier";
 86.1252 \ No newline at end of file
 86.1253 +}
    87.1 --- a/locale/translations.hu.lua	Thu Feb 03 15:54:23 2022 +0100
    87.2 +++ b/locale/translations.hu.lua	Thu Feb 03 15:57:22 2022 +0100
    87.3 @@ -338,7 +338,7 @@
    87.4  ["Invite an initiator to initiative"] = "Kezdeményezõ meghívása a kezdeményezéshez";
    87.5  ["Invite code"] = "Meghívókód";
    87.6  ["Invite member"] = false;
    87.7 -["Invited"] = "Meghívva";
    87.8 +["Invited [as initiator]"] = "Meghívva";
    87.9  ["Issue #"] = false;
   87.10  ["Issue ##{id}"] = "Téma: ##{id}";
   87.11  ["Issue ##{issue_id}: #{initiative_name}"] = false;
   87.12 @@ -365,7 +365,8 @@
   87.13  ["Lists must be preceeded and followed by at least one blank line"] = false;
   87.14  ["Lock member?"] = false;
   87.15  ["Locked?"] = "Zárva?";
   87.16 -["Login"] = "Bejelentkezés";
   87.17 +["Login [headline]"] = "Bejelentkezés";
   87.18 +["Login [button]"] = "Bejelentkezés";
   87.19  ["Login name"] = "Bejelentkezési név";
   87.20  ["Login name request"] = false;
   87.21  ["Login-Name: "] = false;
   87.22 @@ -513,7 +514,8 @@
   87.23  ["Registration (step 1 of 3: Invite code)"] = false;
   87.24  ["Registration (step 2 of 3: Personal information)"] = false;
   87.25  ["Registration (step 3 of 3: Terms of use and password)"] = false;
   87.26 -["Rejected"] = "Elutasítva";
   87.27 +["Rejected [initiator invitation]"] = "Elutasítva";
   87.28 +["Rejected [initiative]"] = "Elutasítva";
   87.29  ["Rejected (rank #{rank})"] = false;
   87.30  ["Remove"] = "Eltávolítás";
   87.31  ["Remove an initiator from initiative"] = false;
    88.1 --- a/locale/translations.it.lua	Thu Feb 03 15:54:23 2022 +0100
    88.2 +++ b/locale/translations.it.lua	Thu Feb 03 15:57:22 2022 +0100
    88.3 @@ -1,6 +1,5 @@
    88.4  #!/usr/bin/env lua
    88.5  return {
    88.6 -[" to receive updates by email"] = " di ricevere aggiornamenti via email";
    88.7  ["#{closed_ago} ago"] = "#{closed_ago} fa";
    88.8  ["#{count} Neutral"] = "#{count} Neutrali";
    88.9  ["#{count} No"] = "#{count} No";
   88.10 @@ -231,7 +230,7 @@
   88.11  ["Edit"] = "Modifica";
   88.12  ["Edit again"] = "Modifica ancora";
   88.13  ["Edit voting comment"] = "Modifica il commento al voto";
   88.14 -["Edit your global "] = "Modifica le tue ";
   88.15 +["Edit your global <link>notification settings</link> to receive updates by email."] = "Modifica le tue <link>impostazioni notifiche</link> di ricevere aggiornamenti via email.";
   88.16  ["Edit your profile data"] = "Modifica i dati del tuo profilo";
   88.17  ["Eligible as winner"] = "Candidato all'approvazione";
   88.18  ["Eligible members (#{count})"] = "Utenti abilitati (#{count})";
   88.19 @@ -370,7 +369,7 @@
   88.20  ["Invite code"] = "Codice di invito";
   88.21  ["Invite letter"] = false;
   88.22  ["Invite member"] = "Invita utente";
   88.23 -["Invited"] = "Invitato";
   88.24 +["Invited [as initiator]"] = "Invitato";
   88.25  ["Issue #"] = "Tematica #";
   88.26  ["Issue ##{id}"] = "Tematica ##{id}";
   88.27  ["Issue ##{issue_id}: #{initiative_name}"] = "Tematica ##{issue_id}: #{initiative_name}";
   88.28 @@ -394,7 +393,8 @@
   88.29  ["Lists must be preceeded and followed by at least one blank line"] = "Le liste devono essere precedute da almeno una linea vuota";
   88.30  ["Lock member?"] = "Blocca membro?";
   88.31  ["Locked?"] = "Bloccato?";
   88.32 -["Login"] = "Login";
   88.33 +["Login [headline]"] = "Login";
   88.34 +["Login [button]"] = "Login";
   88.35  ["Login name"] = "Nome utente";
   88.36  ["Login name request"] = "Richiedi login username";
   88.37  ["Login-Name: "] = "Login username";
   88.38 @@ -585,7 +585,8 @@
   88.39  ["Registration rejected"] = false;
   88.40  ["Registration succeeded"] = false;
   88.41  ["Reject access privilege"] = false;
   88.42 -["Rejected"] = "Rifiutato";
   88.43 +["Rejected [initiator invitation]"] = "Rifiutato";
   88.44 +["Rejected [initiative]"] = "Rifiutato";
   88.45  ["Rejected (#{count})"] = false;
   88.46  ["Rejected (rank #{rank})"] = "Rifiutata (posizione #{rank})";
   88.47  ["Rejected accreditation requests"] = false;
   88.48 @@ -877,7 +878,7 @@
   88.49  ["[not displayed public]"] = "[non visibile pubblicamente]";
   88.50  ["abandoned"] = "abbandonato";
   88.51  ["accept invitation"] = "accetta invito";
   88.52 -["accepted"] = false;
   88.53 +["accepted [account access]"] = false;
   88.54  ["account activated"] = false;
   88.55  ["action"] = "azione";
   88.56  ["activate account"] = "attiva account";
   88.57 @@ -894,7 +895,8 @@
   88.58  ["all results"] = false;
   88.59  ["all subject areas"] = "Tutte aree tematiche";
   88.60  ["allow invitation again"] = "abilita nuovamente inviti";
   88.61 -["and"] = "e";
   88.62 +["#{opinion} and #{implemented}"] = "#{opinion} e #{implemented}";
   88.63 +["#{opinion} but #{implemented}"] = "#{opinion} ma #{implemented}";
   88.64  ["and #{count} more initiatives"] = "ed altre #{count} iniziative";
   88.65  ["area"] = "area";
   88.66  ["at least #{count} approvals"] = "almeno #{count} approvazioni";
   88.67 @@ -906,7 +908,6 @@
   88.68  ["browse the platform as a guest"] = "navigare il portale come utente non registrato";
   88.69  ["browse the portal as an unregistered user"] = "navigare il portale come utente non registrato";
   88.70  ["browse through the competing initiatives"] = "esplora le iniziative alternative";
   88.71 -["but"] = "ma";
   88.72  ["by"] = false;
   88.73  ["by A-Z"] = "da A-Z";
   88.74  ["by Z-A"] = "da Z-A";
   88.75 @@ -1057,7 +1058,7 @@
   88.76  ["reached #{quorum}"] = "raggiunto ";
   88.77  ["refresh my support"] = "rinnova il mio supporto";
   88.78  ["refuse invitation"] = "rifiuta l'invito";
   88.79 -["rejected"] = false;
   88.80 +["rejected [account access]"] = false;
   88.81  ["remove an initiator"] = "rimuovi un promotore";
   88.82  ["remove from my contact list"] = "rimuovi dalla lista dei contatti";
   88.83  ["remove my interest"] = "togli il mio interesse";
    89.1 --- a/locale/translations.ka.lua	Thu Feb 03 15:54:23 2022 +0100
    89.2 +++ b/locale/translations.ka.lua	Thu Feb 03 15:57:22 2022 +0100
    89.3 @@ -338,7 +338,7 @@
    89.4  ["Invite an initiator to initiative"] = "მოიწვიეთ ინიციატორი ინიციატივაზე";
    89.5  ["Invite code"] = "მოწვევის კოდი";
    89.6  ["Invite member"] = "მოიწვიეთ წევრი";
    89.7 -["Invited"] = "მოწვეულია";
    89.8 +["Invited [as initiator]"] = "მოწვეულია";
    89.9  ["Issue #"] = "საკითხი #";
   89.10  ["Issue ##{id}"] = "საკითხი ##{id}";
   89.11  ["Issue ##{issue_id}: #{initiative_name}"] = "საკითხი ##{issue_id}: #{initiative_name}";
   89.12 @@ -365,7 +365,8 @@
   89.13  ["Lists must be preceeded and followed by at least one blank line"] = "ყოველ ახალ წინადადებას წინ უნდა უსწრებდეს და უკან მოყვებოდეს სულ მცირე ერთი ცარიელი ხაზი";
   89.14  ["Lock member?"] = "წევრის დაბლოკვა გსურთ?";
   89.15  ["Locked?"] = "დაბლოკილია?";
   89.16 -["Login"] = "შესვლა";
   89.17 +["Login [headline]"] = "შესვლა";
   89.18 +["Login [button]"] = "შესვლა";
   89.19  ["Login name"] = "მომხმარებლის სახელი";
   89.20  ["Login name request"] = "მომხმარებლის სახელის მოთხოვნა";
   89.21  ["Login-Name: "] = "მომხმარებლის სახელი: ";
   89.22 @@ -513,7 +514,8 @@
   89.23  ["Registration (step 1 of 3: Invite code)"] = "რეგისტრაცია (3-დან 1 საფეხური: მოწვევის კოდი)";
   89.24  ["Registration (step 2 of 3: Personal information)"] = "რეგისტრაცია (3-დან 2 საფეხური: პერსონალური ინფორმაცია)";
   89.25  ["Registration (step 3 of 3: Terms of use and password)"] = "რეგისტრაცია (3-დან 3 საფეხური: მოხმარების პირობები და პაროლი)";
   89.26 -["Rejected"] = "უარყოფილია";
   89.27 +["Rejected [initiator invitation]"] = "უარყოფილია";
   89.28 +["Rejected [initiative]"] = "უარყოფილია";
   89.29  ["Rejected (rank #{rank})"] = "უარყოფილია (rank #{rank})";
   89.30  ["Remove"] = "მოხსნა";
   89.31  ["Remove an initiator from initiative"] = "ინიციატორის ინიციატივიდან მოხსნა";
   89.32 @@ -765,7 +767,8 @@
   89.33  ["add your support (see above) and rate or write new suggestions (and thereby restrict your support to certain conditions if necessary)"] = "მხარი დაუჭირეთ და შეაფასეთ ან დაწერეთ ახალი შეთავაზება (შესაბამისად შეზღუდეთ თქვენი მხარდაჭერა საჭიროებისამებრ)";
   89.34  ["all issues"] = "ყველა საკითხი";
   89.35  ["allow invitation again"] = "მოწვევაზე ნების დართვა";
   89.36 -["and"] = "და";
   89.37 +["#{opinion} and #{implemented}"] = "#{opinion} და #{implemented}";
   89.38 +["#{opinion} but #{implemented}"] = "#{opinion} მაგრამ #{implemented}";
   89.39  ["and #{count} more initiatives"] = "და #{count} მეტი ინიციატივა";
   89.40  ["area"] = "თემატური სფერო";
   89.41  ["at least #{count} approvals"] = "სულ მცირე #{count} მოწონება";
   89.42 @@ -774,7 +777,6 @@
   89.43  ["avatar/photo"] = "ავატარი/ფოტო";
   89.44  ["block this member"] = "წევრის დაბლოკვა";
   89.45  ["browse through the competing initiatives"] = "გაეცანით კონკურენტ ინიციატივებს";
   89.46 -["but"] = "მაგრამ";
   89.47  ["by A-Z"] = "A-Z მიხედვით";
   89.48  ["by Z-A"] = "Z-A მიხედვით";
   89.49  ["by default only those issues are shown, for which your are eligible to participate (change filters on top of the list)"] = "მხოლოდ იმ საკითხთა ჩამონათვალი ჩანს, სადაც უფლებამოსილი ხართ მონაწილეობა მიიღოთ (შეცვალეთ არსებული პარამეტრები)";
    90.1 --- a/locale/translations.nl.lua	Thu Feb 03 15:54:23 2022 +0100
    90.2 +++ b/locale/translations.nl.lua	Thu Feb 03 15:57:22 2022 +0100
    90.3 @@ -338,7 +338,7 @@
    90.4  ["Invite an initiator to initiative"] = "Nodig een initiatiefnemer bij een initiatief uit";
    90.5  ["Invite code"] = "Invite-Code";
    90.6  ["Invite member"] = false;
    90.7 -["Invited"] = "Uitgenodigd";
    90.8 +["Invited [as initiator]"] = "Uitgenodigd";
    90.9  ["Issue #"] = false;
   90.10  ["Issue ##{id}"] = "Onderwerp ##{id}";
   90.11  ["Issue ##{issue_id}: #{initiative_name}"] = false;
   90.12 @@ -365,7 +365,8 @@
   90.13  ["Lists must be preceeded and followed by at least one blank line"] = false;
   90.14  ["Lock member?"] = "Vergrendel deelnemer?";
   90.15  ["Locked?"] = "Gesloten?";
   90.16 -["Login"] = "Login";
   90.17 +["Login [headline]"] = "Login";
   90.18 +["Login [button]"] = "Login";
   90.19  ["Login name"] = "Login naam";
   90.20  ["Login name request"] = false;
   90.21  ["Login-Name: "] = false;
   90.22 @@ -513,7 +514,8 @@
   90.23  ["Registration (step 1 of 3: Invite code)"] = "Registratie (stap 1 van 3: uitnodigingscode)";
   90.24  ["Registration (step 2 of 3: Personal information)"] = "Registratie (stap 1 van 3: persoonlijke informatie)";
   90.25  ["Registration (step 3 of 3: Terms of use and password)"] = "Registratie (stap 1 van 3: gebruikershandleiding en wachtwoord)";
   90.26 -["Rejected"] = "Verworpen";
   90.27 +["Rejected [initiative]"] = "Verworpen";
   90.28 +["Rejected [initiator invitation]"] = "Verworpen";
   90.29  ["Rejected (rank #{rank})"] = false;
   90.30  ["Remove"] = "Verwijderen";
   90.31  ["Remove an initiator from initiative"] = false;
    91.1 --- a/locale/translations.zh-Hans.lua	Thu Feb 03 15:54:23 2022 +0100
    91.2 +++ b/locale/translations.zh-Hans.lua	Thu Feb 03 15:57:22 2022 +0100
    91.3 @@ -338,7 +338,7 @@
    91.4  ["Invite an initiator to initiative"] = "邀请发起者来提案";
    91.5  ["Invite code"] = "邀请码";
    91.6  ["Invite member"] = false;
    91.7 -["Invited"] = "已被邀请";
    91.8 +["Invited [as initiator]"] = "已被邀请";
    91.9  ["Issue #"] = false;
   91.10  ["Issue ##{id}"] = "议题 ##{id}";
   91.11  ["Issue ##{issue_id}: #{initiative_name}"] = false;
   91.12 @@ -365,7 +365,8 @@
   91.13  ["Lists must be preceeded and followed by at least one blank line"] = false;
   91.14  ["Lock member?"] = "封锁成员?";
   91.15  ["Locked?"] = "被封锁?";
   91.16 -["Login"] = "登入";
   91.17 +["Login [headline]"] = "登入";
   91.18 +["Login [button]"] = "登入";
   91.19  ["Login name"] = "帐号";
   91.20  ["Login name request"] = false;
   91.21  ["Login-Name: "] = false;
   91.22 @@ -513,7 +514,8 @@
   91.23  ["Registration (step 1 of 3: Invite code)"] = "注册 (三步骤之一:邀请码)";
   91.24  ["Registration (step 2 of 3: Personal information)"] = "注册 (三步骤之二:个人资料)";
   91.25  ["Registration (step 3 of 3: Terms of use and password)"] = "注册 (三步骤之三:使用条款及密码)";
   91.26 -["Rejected"] = "被婉拒";
   91.27 +["Rejected [initiator invitation]"] = "被婉拒";
   91.28 +["Rejected [initiative]"] = "被婉拒";
   91.29  ["Rejected (rank #{rank})"] = false;
   91.30  ["Remove"] = "移除";
   91.31  ["Remove an initiator from initiative"] = false;
    92.1 --- a/locale/translations.zh-TW.lua	Thu Feb 03 15:54:23 2022 +0100
    92.2 +++ b/locale/translations.zh-TW.lua	Thu Feb 03 15:57:22 2022 +0100
    92.3 @@ -338,7 +338,7 @@
    92.4  ["Invite an initiator to initiative"] = "邀請發起者來提案";
    92.5  ["Invite code"] = "邀請碼";
    92.6  ["Invite member"] = false;
    92.7 -["Invited"] = "已被邀請";
    92.8 +["Invited [as initiator]"] = "已被邀請";
    92.9  ["Issue #"] = false;
   92.10  ["Issue ##{id}"] = "議題 ##{id}";
   92.11  ["Issue ##{issue_id}: #{initiative_name}"] = false;
   92.12 @@ -365,7 +365,8 @@
   92.13  ["Lists must be preceeded and followed by at least one blank line"] = false;
   92.14  ["Lock member?"] = "封鎖成員?";
   92.15  ["Locked?"] = "被封鎖?";
   92.16 -["Login"] = "登入";
   92.17 +["Login [headline]"] = "登入";
   92.18 +["Login [button]"] = "登入";
   92.19  ["Login name"] = "帳號";
   92.20  ["Login name request"] = false;
   92.21  ["Login-Name: "] = false;
   92.22 @@ -513,7 +514,8 @@
   92.23  ["Registration (step 1 of 3: Invite code)"] = "註冊 (三步驟之一:邀請碼)";
   92.24  ["Registration (step 2 of 3: Personal information)"] = "註冊 (三步驟之二:個人資料)";
   92.25  ["Registration (step 3 of 3: Terms of use and password)"] = "註冊 (三步驟之三:使用條款及密碼)";
   92.26 -["Rejected"] = "被婉拒";
   92.27 +["Rejected [initiator invitation]"] = "被婉拒";
   92.28 +["Rejected [initiative]"] = "被婉拒";
   92.29  ["Rejected (rank #{rank})"] = false;
   92.30  ["Remove"] = "移除";
   92.31  ["Remove an initiator from initiative"] = false;
    93.1 --- a/model/member.lua	Thu Feb 03 15:54:23 2022 +0100
    93.2 +++ b/model/member.lua	Thu Feb 03 15:57:22 2022 +0100
    93.3 @@ -837,6 +837,19 @@
    93.4    return self.__units_with_polling_right_hash[unit_id] and true or false
    93.5  end
    93.6  
    93.7 +function Member.object:get_single_unit_id()
    93.8 +  populate_units_with_voting_right_hash(self)
    93.9 +  local single_unit_id
   93.10 +  local count = 0
   93.11 +  for unit_id in pairs(self.__units_with_voting_right_hash) do
   93.12 +    single_unit_id = unit_id
   93.13 +    count = count + 1
   93.14 +  end
   93.15 +  if count == 1 then
   93.16 +    return single_unit_id
   93.17 +  end
   93.18 +end
   93.19 +
   93.20  function Member.object:get_delegatee_member(unit_id, area_id, issue_id)
   93.21    local selector = Member:new_selector()
   93.22    if unit_id then
    94.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    94.2 +++ b/model/survey.lua	Thu Feb 03 15:57:22 2022 +0100
    94.3 @@ -0,0 +1,35 @@
    94.4 +Survey = mondelefant.new_class()
    94.5 +Survey.table = 'survey'
    94.6 +
    94.7 +Survey:add_reference{
    94.8 +  mode          = '1m',
    94.9 +  to            = "SurveyQuestion",
   94.10 +  this_key      = 'id',
   94.11 +  that_key      = 'survey_id',
   94.12 +  ref           = 'questions',
   94.13 +  back_ref      = 'survey',
   94.14 +  default_order = 'position'
   94.15 +}
   94.16 +
   94.17 +
   94.18 +local new_selector = Survey.new_selector
   94.19 +
   94.20 +function Survey:new_selector()
   94.21 +  local selector = new_selector(self)
   94.22 +  selector:add_field("CASE WHEN (open_until NOTNULL AND open_until > now()) THEN open_until - now() ELSE NULL END", "time_left")
   94.23 +  return selector
   94.24 +end
   94.25 +
   94.26 +function Survey:get_open()
   94.27 +  return self:new_selector()
   94.28 +    :add_where("open_from < now() and open_until > now()")
   94.29 +    :optional_object_mode()
   94.30 +    :exec()
   94.31 +end
   94.32 +
   94.33 +function Survey.object_get:open()
   94.34 +  if self.open_from < atom.timestamp:get_current() and self.open_until > atom.timestamp:get_current() then
   94.35 +    return true
   94.36 +  end
   94.37 +  return false
   94.38 +end
    95.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    95.2 +++ b/model/survey_answer.lua	Thu Feb 03 15:57:22 2022 +0100
    95.3 @@ -0,0 +1,10 @@
    95.4 +SurveyAnswer = mondelefant.new_class()
    95.5 +SurveyAnswer.table = 'survey_answer'
    95.6 +
    95.7 +function SurveyAnswer:by_pk(survey_answer_set_ident, member_id)
    95.8 +  return self:new_selector()
    95.9 +    :add_where{ "survey_answer_set_ident = ?", survey_answer_set_ident }
   95.10 +    :add_where{ "survey_question_id = ?", question_id }
   95.11 +    :optional_object_mode()
   95.12 +    :exec()
   95.13 +end
    96.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    96.2 +++ b/model/survey_answer_set.lua	Thu Feb 03 15:57:22 2022 +0100
    96.3 @@ -0,0 +1,12 @@
    96.4 +SurveyAnswerSet = mondelefant.new_class()
    96.5 +SurveyAnswerSet.table = 'survey_answer_set'
    96.6 +SurveyAnswerSet.primary_key = "ident"
    96.7 +
    96.8 +SurveyAnswerSet:add_reference{
    96.9 +  mode          = '1m',
   96.10 +  to            = "SurveyAnswer",
   96.11 +  this_key      = 'ident',
   96.12 +  that_key      = 'survey_answer_set_ident',
   96.13 +  ref           = 'answers',
   96.14 +  back_ref      = 'answer_set'
   96.15 +}
    97.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    97.2 +++ b/model/survey_member.lua	Thu Feb 03 15:57:22 2022 +0100
    97.3 @@ -0,0 +1,19 @@
    97.4 +SurveyMember = mondelefant.new_class()
    97.5 +SurveyMember.table = 'survey_member'
    97.6 +
    97.7 +SurveyMember:add_reference{
    97.8 +  mode          = '11',
    97.9 +  to            = "SurveyAnswerSet",
   97.10 +  this_key      = 'survey_answer_set_ident',
   97.11 +  that_key      = 'ident',
   97.12 +  ref           = 'answer_set',
   97.13 +  back_ref      = 'member'
   97.14 +}
   97.15 +
   97.16 +function SurveyMember:by_pk(survey_id, member_id)
   97.17 +  return self:new_selector()
   97.18 +    :add_where{ "survey_id = ?", survey_id }
   97.19 +    :add_where{ "member_id = ?", member_id }
   97.20 +    :optional_object_mode()
   97.21 +    :exec()
   97.22 +end
    98.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    98.2 +++ b/model/survey_question.lua	Thu Feb 03 15:57:22 2022 +0100
    98.3 @@ -0,0 +1,10 @@
    98.4 +SurveyQuestion = mondelefant.new_class()
    98.5 +SurveyQuestion.table = 'survey_question'
    98.6 +
    98.7 +SurveyQuestion:add_reference{
    98.8 +  mode          = 'm1',
    98.9 +  to            = "Survey",
   98.10 +  this_key      = 'survey_id',
   98.11 +  that_key      = 'id',
   98.12 +  ref           = 'survey',
   98.13 +}
    99.1 --- a/model/unit.lua	Thu Feb 03 15:54:23 2022 +0100
    99.2 +++ b/model/unit.lua	Thu Feb 03 15:57:22 2022 +0100
    99.3 @@ -104,6 +104,11 @@
    99.4    if not args or not args.include_hidden then
    99.5      units_selector:add_where("attr->'hidden' ISNULL OR NOT (attr->'hidden' = 'true')")
    99.6    end
    99.7 +  if args and args.member_id then
    99.8 +    units_selector
    99.9 +      :left_join("privilege", nil, { "privilege.member_id = ? AND privilege.unit_id = unit.id", args.member_id })
   99.10 +      :add_field("privilege.voting_right", "voting_right")
   99.11 +  end
   99.12    local units = units_selector:exec()
   99.13    local unit_tree = {}
   99.14    for i, unit in ipairs(units) do
   100.1 --- a/static/js/xhr.js	Thu Feb 03 15:54:23 2022 +0100
   100.2 +++ b/static/js/xhr.js	Thu Feb 03 15:57:22 2022 +0100
   100.3 @@ -41,7 +41,9 @@
   100.4      document.getElementById('rating_fulfilled').MaterialRadio.uncheck();    
   100.5      document.getElementById('rating_notfulfilled').MaterialRadio.uncheck();    
   100.6    }
   100.7 -  document.getElementById('rating_dialog').showModal();
   100.8 +//  document.getElementById('rating_dialog').showModal();
   100.9 +  document.getElementById('rating_dialog').classList.remove("hidden");
  100.10 +
  100.11  }
  100.12  
  100.13  function updateOpinion() {
  100.14 @@ -68,7 +70,7 @@
  100.15  
  100.16    var degreeText = rateSuggestionDegreeTexts[degree];
  100.17    var fulfilledText = fulfilled ? rateSuggestionFulfilledText : rateSuggestionNotFulfilledText;
  100.18 -  var andButText;
  100.19 +  var textTemplate;
  100.20    var icon;
  100.21    var iconColor;
  100.22    if (
  100.23 @@ -79,12 +81,14 @@
  100.24      if (degree == 2 || degree == -2) { 
  100.25        iconColor = "red";
  100.26      }
  100.27 -    andButText = rateSuggestionButText;
  100.28 +    textTemplate = rateSuggestionButText;
  100.29    } else {
  100.30 -    andButText = rateSuggestionAndText;
  100.31 +    textTemplate = rateSuggestionAndText;
  100.32      icon = "done";
  100.33    }
  100.34 -  var text = degreeText + " " + andButText + " " + fulfilledText;
  100.35 +  textTemplate = textTemplate.replace("#{opinion}", degreeText);
  100.36 +  textTemplate = textTemplate.replace("#{implemented}", fulfilledText);
  100.37 +  var text = textTemplate;
  100.38    if (degree == 0) {
  100.39      text = "";
  100.40      icon = "blank";
  100.41 @@ -102,7 +106,8 @@
  100.42      document.getElementById("s" + suggestionId + "_rate_button").innerHTML = rateSuggestionUpdateRatingText;
  100.43    }
  100.44    document.getElementById("s" + suggestionId + "_rate_button").setAttribute("onclick", "rateSuggestion(" + suggestionId + ", " + degree + ", " + fulfilled + ");return false;")
  100.45 -  document.getElementById('rating_dialog').close();
  100.46 +//  document.getElementById('rating_dialog').close();
  100.47 +  document.getElementById('rating_dialog').classList.add("hidden");
  100.48  
  100.49    fetch(baseURL + "opinion/xhr_update", {
  100.50      method: "POST",
   101.1 --- a/static/lf4.css	Thu Feb 03 15:54:23 2022 +0100
   101.2 +++ b/static/lf4.css	Thu Feb 03 15:57:22 2022 +0100
   101.3 @@ -123,6 +123,10 @@
   101.4    font-size: 18px;
   101.5    line-height: normal;
   101.6  }
   101.7 +.mdl-list__item .revoked .initiative_name {
   101.8 +  text-decoration: line-through;
   101.9 +}
  101.10 +
  101.11  .initiatives.mdl-list  {
  101.12    margin-top: 5px;
  101.13    margin-bottom: 5px;
  101.14 @@ -588,6 +592,7 @@
  101.15  .initiatives .attachment {
  101.16    max-width: 180px;
  101.17    max-height: 80px;
  101.18 +  margin-bottom: 10px;
  101.19  }
  101.20  
  101.21  .competing_initiatives .initiatives .attachment {
  101.22 @@ -737,6 +742,57 @@
  101.23    margin-top: 0;
  101.24  }
  101.25  
  101.26 +#rating_dialog {
  101.27 +  position: fixed;
  101.28 +  top: 0px;
  101.29 +  bottom: 0px;
  101.30 +  max-width: calc((100% - 6px) - 2em);
  101.31 +  max-height: calc((100% - 6px) - 2em);
  101.32 +  overflow: auto;  
  101.33 +  display: block;
  101.34 +  left: 0px;
  101.35 +  right: 0px;
  101.36 +  width: fit-content;
  101.37 +  width: -moz-fit-content;
  101.38 +  height: fit-content;
  101.39 +  height: -moz-fit-content;
  101.40 +  color: #000;
  101.41 +  margin: auto;
  101.42 +  border-width: initial;
  101.43 +  border-style: solid;
  101.44 +  border-color: initial;
  101.45 +  border-image: initial;
  101.46 +  padding: 1em;
  101.47 +  background: #fff;
  101.48 +  z-index: 1;
  101.49 +}
  101.50 +
  101.51 +.survey h2 {
  101.52 +  display: block;
  101.53 +}
  101.54 +
  101.55 +.survey_counter {
  101.56 +  float: right;
  101.57 +  margin-left: 1em;
  101.58 +}
  101.59 +
  101.60 +.survey form > div {
  101.61 +  margin-bottom: 0.75ex;
  101.62 +}
  101.63 +
  101.64 +.survey .mdl-checkbox {
  101.65 +  height: unset;
  101.66 +}
  101.67 +
  101.68 +.survey .mdl-checkbox__label {
  101.69 +  line-height: 22px;
  101.70 +}
  101.71 +
  101.72 +.ui_paginate_select .mdl-button {
  101.73 +  min-width: unset;
  101.74 +  margin-right: 0.3em;
  101.75 +}
  101.76 +
  101.77  .trace_list {
  101.78    margin-left: 10px;
  101.79    list-style-type: none;
  101.80 @@ -795,5 +851,3 @@
  101.81    padding: 0px 3px;
  101.82    border-radius: 5px;
  101.83  }
  101.84 -
  101.85 -

Impressum / About Us