diff options
43 files changed, 215 insertions, 169 deletions
@@ -15,7 +15,7 @@ gem 'icalendar', '1.4.3' gem 'jquery-rails', '~> 3.0.4' gem 'jquery-ui-rails', '~> 4.1.0' gem 'json', '~> 1.8.1' -gem 'holidays', '~> 1.0.8' +gem 'holidays', '~> 1.2.0' gem 'iso_country_codes', '~> 0.6.1' gem 'mahoro', '~> 0.4' gem 'memcache-client', '~> 1.8.5' diff --git a/Gemfile.lock b/Gemfile.lock index 9fb037ec7..32b09a723 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -127,7 +127,7 @@ GEM tilt highline (1.6.19) hike (1.2.3) - holidays (1.0.8) + holidays (1.2.0) i18n (0.6.11) icalendar (1.4.3) iso_country_codes (0.6.1) @@ -318,7 +318,7 @@ DEPENDENCIES gettext (~> 2.3.9) gettext_i18n_rails (~> 0.9.4) globalize3! - holidays (~> 1.0.8) + holidays (~> 1.2.0) icalendar (= 1.4.3) iso_country_codes (~> 0.6.1) jquery-rails (~> 3.0.4) diff --git a/app/assets/images/icon_application_octet-stream_large.png b/app/assets/images/icon_application_octet-stream_large.png Binary files differindex a239862e1..a23916e9c 100644 --- a/app/assets/images/icon_application_octet-stream_large.png +++ b/app/assets/images/icon_application_octet-stream_large.png diff --git a/app/assets/images/icon_application_pdf_large.png b/app/assets/images/icon_application_pdf_large.png Binary files differindex 9a38ca33c..990b96c0a 100644 --- a/app/assets/images/icon_application_pdf_large.png +++ b/app/assets/images/icon_application_pdf_large.png diff --git a/app/assets/images/icon_application_rtf_large.png b/app/assets/images/icon_application_rtf_large.png Binary files differindex 2ad990608..977972124 100644 --- a/app/assets/images/icon_application_rtf_large.png +++ b/app/assets/images/icon_application_rtf_large.png diff --git a/app/assets/images/icon_application_vnd.ms-excel_large.png b/app/assets/images/icon_application_vnd.ms-excel_large.png Binary files differindex 3f346f5ef..acca5d92c 100644 --- a/app/assets/images/icon_application_vnd.ms-excel_large.png +++ b/app/assets/images/icon_application_vnd.ms-excel_large.png diff --git a/app/assets/images/icon_application_vnd.ms-powerpoint_large.png b/app/assets/images/icon_application_vnd.ms-powerpoint_large.png Binary files differindex 82c225059..9a1582930 100644 --- a/app/assets/images/icon_application_vnd.ms-powerpoint_large.png +++ b/app/assets/images/icon_application_vnd.ms-powerpoint_large.png diff --git a/app/assets/images/icon_application_vnd.ms-word_large.png b/app/assets/images/icon_application_vnd.ms-word_large.png Binary files differindex 91a696ab5..2f3cb8efa 100644 --- a/app/assets/images/icon_application_vnd.ms-word_large.png +++ b/app/assets/images/icon_application_vnd.ms-word_large.png diff --git a/app/assets/images/icon_application_zip_large.png b/app/assets/images/icon_application_zip_large.png Binary files differindex 0a14e978e..c52d6d5aa 100644 --- a/app/assets/images/icon_application_zip_large.png +++ b/app/assets/images/icon_application_zip_large.png diff --git a/app/assets/images/icon_image_bmp_large.png b/app/assets/images/icon_image_bmp_large.png Binary files differindex f6e8dbaed..347bdaaf1 100644..120000 --- a/app/assets/images/icon_image_bmp_large.png +++ b/app/assets/images/icon_image_bmp_large.png diff --git a/app/assets/images/icon_image_gif_large.png b/app/assets/images/icon_image_gif_large.png Binary files differindex 424d1e0fd..347bdaaf1 100644..120000 --- a/app/assets/images/icon_image_gif_large.png +++ b/app/assets/images/icon_image_gif_large.png diff --git a/app/assets/images/icon_image_img_large.png b/app/assets/images/icon_image_img_large.png Binary files differnew file mode 100644 index 000000000..e19e7553c --- /dev/null +++ b/app/assets/images/icon_image_img_large.png diff --git a/app/assets/images/icon_image_jpeg_large.png b/app/assets/images/icon_image_jpeg_large.png Binary files differindex fd50a889d..347bdaaf1 100644..120000 --- a/app/assets/images/icon_image_jpeg_large.png +++ b/app/assets/images/icon_image_jpeg_large.png diff --git a/app/assets/images/icon_image_png_large.png b/app/assets/images/icon_image_png_large.png Binary files differindex f16edb08e..347bdaaf1 100644..120000 --- a/app/assets/images/icon_image_png_large.png +++ b/app/assets/images/icon_image_png_large.png diff --git a/app/assets/images/icon_image_tiff_large.png b/app/assets/images/icon_image_tiff_large.png Binary files differindex 356f63478..000bd0318 100644 --- a/app/assets/images/icon_image_tiff_large.png +++ b/app/assets/images/icon_image_tiff_large.png diff --git a/app/assets/images/icon_message_delivery-status_large.png b/app/assets/images/icon_message_delivery-status_large.png Binary files differindex a239862e1..dccdbbccd 100644 --- a/app/assets/images/icon_message_delivery-status_large.png +++ b/app/assets/images/icon_message_delivery-status_large.png diff --git a/app/assets/images/icon_text_html_large.png b/app/assets/images/icon_text_html_large.png Binary files differindex 914502cf4..3813d2582 100644 --- a/app/assets/images/icon_text_html_large.png +++ b/app/assets/images/icon_text_html_large.png diff --git a/app/assets/images/icon_text_plain_large.png b/app/assets/images/icon_text_plain_large.png Binary files differindex f74a997ba..f15b0dbdc 100644 --- a/app/assets/images/icon_text_plain_large.png +++ b/app/assets/images/icon_text_plain_large.png diff --git a/app/assets/images/icon_text_x-vcard_large.png b/app/assets/images/icon_text_x-vcard_large.png Binary files differindex cc44d3edc..804066af8 100644 --- a/app/assets/images/icon_text_x-vcard_large.png +++ b/app/assets/images/icon_text_x-vcard_large.png diff --git a/app/assets/images/icon_unknown.png b/app/assets/images/icon_unknown.png Binary files differindex 992c646c0..9a06d9baa 100644 --- a/app/assets/images/icon_unknown.png +++ b/app/assets/images/icon_unknown.png diff --git a/app/assets/stylesheets/responsive/_global_style.scss b/app/assets/stylesheets/responsive/_global_style.scss index 24cddc0d9..27d238962 100644 --- a/app/assets/stylesheets/responsive/_global_style.scss +++ b/app/assets/stylesheets/responsive/_global_style.scss @@ -84,9 +84,6 @@ dd { dt + dd { margin-top: 0.5em; - > p { - margin-top: 0; - } } diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index dbd879a1c..044f8e10f 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -14,7 +14,8 @@ class ApplicationController < ActionController::Base end class RouteNotFound < StandardError end - protect_from_forgery + protect_from_forgery :if => :user? + skip_before_filter :verify_authenticity_token, :unless => :user? # assign our own handler method for non-local exceptions rescue_from Exception, :with => :render_exception @@ -247,6 +248,16 @@ class ApplicationController < ActionController::Base private + def user? + !session[:user_id].nil? + end + + def form_authenticity_token + if user? + session[:_csrf_token] ||= SecureRandom.base64(32) + end + end + # Check the user is logged in def authenticated?(reason_params) unless session[:user_id] diff --git a/app/controllers/public_body_controller.rb b/app/controllers/public_body_controller.rb index cc3d0b64a..854e79a19 100644 --- a/app/controllers/public_body_controller.rb +++ b/app/controllers/public_body_controller.rb @@ -9,9 +9,17 @@ require 'confidence_intervals' require 'tempfile' class PublicBodyController < ApplicationController + + MAX_RESULTS = 500 # TODO: tidy this up with better error messages, and a more standard infrastructure for the redirect to canonical URL def show long_cache + @page = get_search_page_from_params + requests_per_page = 25 + # Later pages are very expensive to load + if @page > MAX_RESULTS / requests_per_page + raise ActiveRecord::RecordNotFound.new("Sorry. No pages after #{MAX_RESULTS / requests_per_page}.") + end if MySociety::Format.simplify_url_part(params[:url_name], 'body') != params[:url_name] redirect_to :url_name => MySociety::Format.simplify_url_part(params[:url_name], 'body'), :status => :moved_permanently return @@ -45,7 +53,7 @@ class PublicBodyController < ApplicationController # TODO: really should just use SQL query here rather than Xapian. sortby = "described" begin - @xapian_requests = perform_search([InfoRequestEvent], query, sortby, 'request_collapse') + @xapian_requests = perform_search([InfoRequestEvent], query, sortby, 'request_collapse', requests_per_page) if (@page > 1) @page_desc = " (page " + @page.to_s + ")" else diff --git a/app/helpers/public_body_helper.rb b/app/helpers/public_body_helper.rb index 332e93284..57c90a9ba 100644 --- a/app/helpers/public_body_helper.rb +++ b/app/helpers/public_body_helper.rb @@ -38,12 +38,13 @@ module PublicBodyHelper # # Returns a string def type_of_authority(public_body) - types = public_body.tags.each_with_index.map do |tag, index| + first = true + types = public_body.tags.each.map do |tag| if PublicBodyCategory.get().by_tag().include?(tag.name) desc = PublicBodyCategory.get().singular_by_tag()[tag.name] - - if index.zero? + if first desc = desc.sub(/\S/) { |m| Unicode.upcase(m) } + first = false end link_to(desc, list_public_bodies_path(tag.name)) end diff --git a/app/models/public_body.rb b/app/models/public_body.rb index 232c0ffa1..cb412f9dc 100644 --- a/app/models/public_body.rb +++ b/app/models/public_body.rb @@ -774,10 +774,7 @@ class PublicBody < ActiveRecord::Base end def empty_translation_in_params?(attributes) - attrs_with_values = attributes.select do |key, value| - value != '' and key.to_s != 'locale' - end - attrs_with_values.empty? + attributes.select { |k, v| !v.blank? && k.to_s != 'locale' }.empty? end def request_email_if_requestable diff --git a/app/views/general/_frontpage_search_box.html.erb b/app/views/general/_frontpage_search_box.html.erb index f77bd97fc..a58d837f8 100644 --- a/app/views/general/_frontpage_search_box.html.erb +++ b/app/views/general/_frontpage_search_box.html.erb @@ -5,7 +5,7 @@ :number_of_requests => number_with_delimiter(InfoRequest.visible.count), :number_of_authorities => number_with_delimiter(PublicBody.visible.count)) %> </h2> -<form id="search_form" method="post" action="<%= search_redirect_path %>"> +<form id="search_form" method="get" action="<%= search_redirect_path %>"> <div> <input id="query" type="text" size="30" name="query" title="type your search term here" > <input type="submit" value="<%= _('Search') %>"> diff --git a/app/views/general/_header.html.erb b/app/views/general/_header.html.erb index 55bf719e2..f465668a5 100644 --- a/app/views/general/_header.html.erb +++ b/app/views/general/_header.html.erb @@ -22,7 +22,7 @@ <% end %> <div id="navigation_search"> - <form id="navigation_search_form" method="post" action="<%= search_redirect_path %>"> + <form id="navigation_search_form" method="get" action="<%= search_redirect_path %>"> <p> <%= text_field_tag 'query', params[:query], { :size => 40, :id => "navigation_search_query", :title => "type your search term here" } %> <input id="navigation_search_button" type="submit" value="search"> diff --git a/app/views/general/_responsive_topnav.html.erb b/app/views/general/_responsive_topnav.html.erb index cb8151467..c99864cab 100644 --- a/app/views/general/_responsive_topnav.html.erb +++ b/app/views/general/_responsive_topnav.html.erb @@ -21,7 +21,7 @@ </li> <li id="navigation_search"> - <form id="navigation_search_form" method="post" action="<%= search_redirect_path %>" role="search"> + <form id="navigation_search_form" method="get" action="<%= search_redirect_path %>" role="search"> <label class="visually-hidden" for="navigation_search_button"> <%= _("Search") %> </label> diff --git a/app/views/help/unhappy.html.erb b/app/views/help/unhappy.html.erb index 79e3f8273..c0444fb54 100644 --- a/app/views/help/unhappy.html.erb +++ b/app/views/help/unhappy.html.erb @@ -101,9 +101,8 @@ contact any registered user from their page. There may be an Internet forum or group that they hang out in. If it is a local matter, use <a href="http://www.groupsnearyou.com">GroupsNearYou</a> to find such a forum.</li> -<li><strong>Start a pledge</strong> on <a href="http://www.pledgebank.com">PledgeBank</a> to get -others to act together with you. For example, you could arrange a meeting with -staff from the authority. Or you could form a small local campaigns group. +<li>You could form a small local campaign group and arrange a meeting +with staff from the authority.</li> </ul> diff --git a/app/views/request/new.html.erb b/app/views/request/new.html.erb index 486a89d45..23f7ad76a 100644 --- a/app/views/request/new.html.erb +++ b/app/views/request/new.html.erb @@ -144,7 +144,7 @@ <% if @info_request.public_body.info_requests.size > 0 %> <%= _("Browse <a href='{{url}}'>other requests</a> to '{{public_body_name}}' for examples of how to word your request.", :public_body_name=>h(@info_request.public_body.name), :url=>public_body_path(@info_request.public_body)) %> <% else %> - <%= _("Browse <a href='{{url}}'>other requests</a> for examples of how to word your request.", :url=>request_list_url) %> + <%= _("Browse <a href='{{url}}'>other requests</a> for examples of how to word your request.", :url=>request_list_successful_url) %> <% end %> </p> <% end %> @@ -156,7 +156,7 @@ this website <a href="{{url}}">forever</a>', :url => (help_privacy_path+"#public_request").html_safe)) %>. </p> <p> - <%= raw(_('<a href="{{url}}">Thinking of using a pseudonym?</a>.', :url => (help_privacy_path+"#real_name").html_safe)) %> + <%= raw(_('<a href="{{url}}">Thinking of using a pseudonym?</a>', :url => (help_privacy_path+"#real_name").html_safe)) %> </p> <% else %> <p> diff --git a/config/initializers/alaveteli.rb b/config/initializers/alaveteli.rb index e5ca9519e..fb6b6113b 100644 --- a/config/initializers/alaveteli.rb +++ b/config/initializers/alaveteli.rb @@ -10,7 +10,7 @@ load "debug_helpers.rb" load "util.rb" # Application version -ALAVETELI_VERSION = '0.21.0.4' +ALAVETELI_VERSION = '0.21.0.15' # Add new inflection rules using the following format # (all these examples are active by default): diff --git a/doc/CHANGES.md b/doc/CHANGES.md index 961a851a3..a654f3b6a 100644 --- a/doc/CHANGES.md +++ b/doc/CHANGES.md @@ -48,7 +48,13 @@ * Admin route names have been standardised so if you have overridden templates that refer to admin routes, check the original templates to - see if these need to be changed. + see if these need to be changed. URLs in rreviously sent admin emails about + requested changes to authorities will need to be tweaked to work - from + `admin/body/new?change_request_id=n` to `admin/bodies/new?change_request_id=n` +* CSRF protection is now used by default on forms using 'POST', and as a result, the navbar and front page + search forms have been converted to use 'GET' rather than 'POST'. If you override `/app/views/general/_frontpage_search_box.html.erb`, `app/views/general/header.html.erb` or `app/views/general/_responsive_topnav.html.erb`, you should update the search forms in your templates to use 'GET'. Any forms of your own + that use the 'POST' method should be generated in Rails or otherwise include a CSRF token. If + they don't, logged-in users will be logged out when they use them. * If you override the `app/views/user/_signin.html.erb` or `app/view/user/_signup.html.erb` templates, check the tabindex order is still sensible - the order of the elements on the page has changed diff --git a/locale/es_NI/app.po b/locale/es_NI/app.po index e91678be5..d79387743 100644 --- a/locale/es_NI/app.po +++ b/locale/es_NI/app.po @@ -5,6 +5,7 @@ # Translators: # fabrizioscrollini <fabrizio.scrollini@gmail.com>, 2012 # gaba <gabelula@gmail.com>, 2012,2014 +# Gareth Rees <gareth@mysociety.org>, 2015 # jbaezni <jbaezni@gmail.com>, 2015 # jbaezni <jbaezni@gmail.com>, 2015 # louisecrow <louise@mysociety.org>, 2014 @@ -18,8 +19,8 @@ msgstr "" "Project-Id-Version: alaveteli\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-03-24 10:21+0000\n" -"PO-Revision-Date: 2015-03-24 11:09+0000\n" -"Last-Translator: louisecrow <louise@mysociety.org>\n" +"PO-Revision-Date: 2015-04-10 01:46+0000\n" +"Last-Translator: jbaezni <jbaezni@gmail.com>\n" "Language-Team: Spanish (Nicaragua) (http://www.transifex.com/projects/p/alaveteli/language/es_NI/)\n" "Language: es_NI\n" "MIME-Version: 1.0\n" @@ -70,7 +71,7 @@ msgid " Advise on how to <strong>best clarify</strong> the request." msgstr "Consejo sobre como <strong>aclarar lo mejor posible</strong> la solicitud." msgid " Ideas on what <strong>other documents to request</strong> which the authority may hold. " -msgstr "Ideas sobre que <strong>otra información</strong> puede solicitar a la institución pública." +msgstr "Ideas sobre que <strong>otra información</strong> puede solicitar a la entidad pública." msgid " If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\\n You may be able to find the address on their website, or by phoning them up and asking." msgstr "Si conoce la dirección a utilizar, por favor <a href=\"{{url}}\">enviárnosla</a>.\\n Puede que la encuentre en la página web de la institución, o llamándoles por teléfono y preguntando." @@ -106,13 +107,13 @@ msgid " when you send this message." msgstr "cuando envíe este mensaje." msgid "'Crime statistics by ward level for Wales'" -msgstr "'Estadísticas de crímenes por región en España'" +msgstr "'Estadísticas de crímenes por región en Nicaragua'" msgid "'Pollution levels over time for the River Tyne'" -msgstr "'Niveles históricos de contaminación en el río Ebro'" +msgstr "'Niveles históricos de contaminación en el Lago de Nicaragua'" msgid "'{{link_to_authority}}', a public authority" -msgstr "'{{link_to_authority}}', una institución pública" +msgstr "'{{link_to_authority}}', una entidad pública" msgid "'{{link_to_request}}', a request" msgstr "'{{link_to_request}}', una solicitud de acceso a la información" @@ -190,7 +191,7 @@ msgstr "" msgid "<p>We recommend that you edit your request and remove the email address.\\n If you leave it, the email address will be sent to the authority, but will not be displayed on the site.</p>" msgstr "" "<p>Te aconsejamos que edites tu solicitud y elimines tu dirección de correo.\n" -" Si la dejas, tu dirección será enviada al organismo público, pero no será visible en esta web.</p>" +" Si la dejas, tu dirección será enviada a la entidad pública, pero no será visible en esta web.</p>" msgid "<p>We're glad you got all the information that you wanted. If you write about or make use of the information, please come back and add an annotation below saying what you did.</p>" msgstr "<p>Nos alegra saber que has obtenido toda la información que solicitaste. Si escribes sobre ella, o te resulta útil de alguna manera, por favor vuelve y añada un comentario a continuación explicándolo.</p>" @@ -264,7 +265,7 @@ msgid "<strong>Anything else</strong>, such as clarifying, prompting, thanking" msgstr "<strong>Otras cosas</strong>, como aclarar, preguntar, dar las gracias" msgid "<strong>By law, they have to respond</strong> (<a href=\"{{url}}\">why?</a>)." -msgstr "" +msgstr "<strong>Por ley, tienen que responder</strong> (<a href=\"{{url}}\">por qué?</a>)." msgid "<strong>Caveat emptor!</strong> To use this data in an honourable way, you will need \\na good internal knowledge of user behaviour on {{site_name}}. How, \\nwhy and by whom requests are categorised is not straightforward, and there will\\nbe user error and ambiguity. You will also need to understand FOI law, and the\\nway authorities use it. Plus you'll need to be an elite statistician. Please\\n<a href=\"{{contact_path}}\">contact us</a> with questions." msgstr "" @@ -285,7 +286,7 @@ msgstr "" " <small>(puede que se trate sólo de un acuse de recibo)</small>" msgid "<strong>Note:</strong> Because we're testing, requests are being sent to {{email}} rather than to the actual authority." -msgstr "<strong>Nota:</strong> Al estar realizando pruebas, las solicitudes se están enviando a {{email}} en vez de al organismo real." +msgstr "<strong>Nota:</strong> Al estar realizando pruebas, las solicitudes se están enviando a {{email}} en vez de la entidad real." msgid "<strong>Note:</strong> You're sending a message to yourself, presumably\\n to try out how it works." msgstr "<strong>Nota:</strong> Te estás enviando un mensaje a ti mismo, suponemos que para probar cómo funciona." @@ -308,13 +309,13 @@ msgid "<strong>Some of the information</strong> has been sent " msgstr "Se ha enviado <strong>parte de la información</strong> " msgid "<strong>Thank</strong> the public authority or " -msgstr "<strong>Dé las gracias</strong> al organismo público o " +msgstr "<strong>Dé las gracias</strong> a la entidad pública o " msgid "<strong>We will email you</strong> when there is a response, or after {{late_number_of_days}} working days if the authority still hasn't replied by then." -msgstr "" +msgstr "<strong>Nosotros le enviaremos un correo electrónico</strong>en cuanto haya una respuesta, o cuando se haya vencido el plazo de {{late_number_of_days}} los días hábiles, que legalmente tiene la entidad para responder." msgid "<strong>We will email you</strong> when they have been sent. We will also email you when there is a response to any of them, or after {{late_number_of_days}} working days if the authorities still haven't replied by then." -msgstr "" +msgstr "<strong>Nosotros le enviaremos un correo electrónico</strong>cuando se haya enviado. También le enviaremos un correo electrónico cuando haya una respuesta a cualquiera de ellos, o después {{late_number_of_days}} de los días de trabajo si las autoridades aún no han respondido para entonces." msgid "<strong>did not have</strong> the information requested." msgstr "<strong>no tenía</strong> la información solicitada." @@ -346,7 +347,7 @@ msgstr "" "\t\t\tpor ejemplo" msgid "A public authority" -msgstr "Un organismo público" +msgstr "Una entidad pública" msgid "A response will be sent <strong>by post</strong>" msgstr "Una respuesta será enviada <strong>por correo ordinario</strong>" @@ -376,7 +377,7 @@ msgid "ActsAsXapian::ActsAsXapianJob|Model" msgstr "ActsAsXapian::ActsAsXapianJob|Model" msgid "Add an annotation to “{{request_title}}”" -msgstr "" +msgstr "Añadir una nota a “{{request_title}}”" msgid "Add an annotation to your request with choice quotes, or\\n a <strong>summary of the response</strong>." msgstr "" @@ -422,7 +423,7 @@ msgid "All the options below can use <strong>variety</strong> or <strong>latest_ msgstr "Todas las opciones a continuación pueden usar <strong>variedad</strong> o <strong>ultima variedad</strong> antes de los dos puntos. Por ejemplo, <strong>variedad:enviado</strong> mostrara solicitudes que alguna vez <em>hayan</em> sido enviadas; <strong> ultima variedad: enviado</strong>mostrara solamente solicitudes que actualmente son <em>son</em> marcadas como enviadas" msgid "Also called {{other_name}}." -msgstr "También conocido como {{other_name}}." +msgstr "También conocida como {{other_name}}." msgid "Also send me alerts by email" msgstr "También envienme alertas por correo electronico" @@ -471,7 +472,7 @@ msgid "Applies to" msgstr "Aplicable a" msgid "Are we missing a public authority?" -msgstr "¿Nos falta algún entidad pública?" +msgstr "¿Nos falta alguna entidad pública?" msgid "Are you the owner of any commercial copyright on this page?" msgstr "¿Posee el copyright de alguna información de esta página?" @@ -509,13 +510,13 @@ msgid "Awaiting classification." msgstr "Esperando clasificación." msgid "Awaiting internal review." -msgstr "Esperando revisión interna." +msgstr "Estoy preguntando por mi solicitud de información." msgid "Awaiting response." msgstr "Esperando respuesta." msgid "Banned users cannot edit their profile" -msgstr "" +msgstr "Prohibido los usuarios no pueden modificar su perfil" msgid "Batch created by {{info_request_user}} on {{date}}." msgstr "Bloque creado por {{info_request_user}} en {{date}}." @@ -718,7 +719,7 @@ msgid "Couldn't understand the image file that you uploaded. PNG, JPEG, GIF and msgstr "No se pudo procesar la imagen subida. Puedes utilizar PNG, JPEG, GIF u otros formatos de imagen populares." msgid "Create a new account" -msgstr "" +msgstr "Crear una nueva cuenta" msgid "Created by {{info_request_user}} on {{date}}." msgstr "Creado por {{info_request_user}} el {{date}}." @@ -765,7 +766,7 @@ msgid "Destroy {{name}}" msgstr "Borrar {{name}}" msgid "Details of request “{{request_title}}”" -msgstr "" +msgstr "Detalles de la solicitud “{{request_title}}”" msgid "Did you mean: {{correction}}" msgstr "¿Quiere decir: {{correction}}?" @@ -833,7 +834,7 @@ msgid "Email:" msgstr "Dirección de correo electrónico:" msgid "Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>" -msgstr "Introduzca las palabras que desee separadas por espacio, es decir <strong>parlamento gasto</strong>" +msgstr "Introduzca las palabras que desee separadas por espacio, es decir <strong>Asamblea Nacional gasto</strong>" msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"{{url}}\">contact us</a> if you need more)." msgstr "Escriba su petición a continuación. Puede adjuntar un fichero (mande un correo o <a href=\"{{url}}\">contáctenos</a> si necesita más)." @@ -875,7 +876,7 @@ msgid "FOI email address for {{public_body}}" msgstr "Dirección de correo para {{public_body}}" msgid "FOI law does not apply to this authority." -msgstr "" +msgstr "La ley de acceso a la información pública no se aplica a esta autoridad." msgid "FOI request – {{title}}" msgstr "Solicitud de información - {{title}}" @@ -908,10 +909,10 @@ msgid "Filter by Request Status (optional)" msgstr "Filtrar por estado de petición (optional)" msgid "Find an authority" -msgstr "Elije el organismo al que escribir" +msgstr "Elije la entidad al que escribir" msgid "Find the authorities" -msgstr "" +msgstr "Encuentra las Entidades Públicas" msgid "Find the authorities to write to" msgstr "Seleccione las autoridades a las que desea escribir " @@ -920,7 +921,7 @@ msgid "First, did your other requests succeed?" msgstr "Antes de nada, ¿tus otras solicitudes tuvieron éxito?" msgid "First, type in the <strong>name of the public authority</strong> you'd\\n like information from." -msgstr "" +msgstr "En primer lugar, el tipo <strong>de nombre de la entidad pública</strong> que había o no como la información de" msgid "Foi attachment" msgstr "Respuesta adjunta" @@ -1004,7 +1005,7 @@ msgid "Follow us on twitter" msgstr "Síguenos en Twitter" msgid "Following" -msgstr "" +msgstr "siguiente" msgid "Followups cannot be sent for this request, as it was made externally, and published here by {{public_body_name}} on the requester's behalf." msgstr "No se pueden mandar mensajes para esta solicitud, porque fue hecha externamente, y publicada aquí por {{public_body_name}} en nombre del solicitante." @@ -1014,8 +1015,8 @@ msgstr "¿Has olvidado tu contraseña?" msgid "Found {{count}} public authority {{description}}" msgid_plural "Found {{count}} public authorities {{description}}" -msgstr[0] "Encontrado {{count}} organismo públicos {{description}}" -msgstr[1] "Encontrados {{count}} Entidades públicas {{description}}" +msgstr[0] "Encontrada {{count}} entidad pública {{description}}" +msgstr[1] "Encontradas {{count}} Entidades públicas {{description}}" msgid "Freedom of Information" msgstr "acceso a la información" @@ -1024,13 +1025,13 @@ msgid "Freedom of Information Act" msgstr "Ley de Acceso a la Información" msgid "Freedom of Information law does not apply to this authority, so you cannot make a request to it." -msgstr "La ley de acceso a la información no es aplicable a este organismo, por lo que no puedes enviarle una solicitud de información." +msgstr "La ley de acceso a la información no es aplicable a esta entidad, por lo que no puedes enviarle una solicitud de información." msgid "Freedom of Information law no longer applies to this authority.Follow up messages to existing requests are sent to " -msgstr "La ley de acceso a la información ya no es aplicable a este organismo. Los mensajes de seguimiento de solicitudes existentes se envían a " +msgstr "La ley de acceso a la información ya no es aplicable a esta entidad. Los mensajes de seguimiento de solicitudes existentes se envían a " msgid "Freedom of Information law no longer applies to {{public_body_name}}." -msgstr "" +msgstr "Ley de Libertad de Información Pública no se aplica a {{public_body_name}}." msgid "Freedom of Information requests made" msgstr "Solicitudes de acceso a información realizadas" @@ -1060,7 +1061,7 @@ msgid "GIVE DETAILS ABOUT YOUR COMPLAINT HERE" msgstr "DETALLA TU QUEJA AQUÍ" msgid "Got an account?" -msgstr "" +msgstr "¿Tienes una cuenta?" msgid "Handled by post." msgstr "Resuelta por correo ordinario" @@ -1093,7 +1094,7 @@ msgid "Help" msgstr "Ayuda" msgid "Help us classify requests that haven't been updated" -msgstr "" +msgstr "Ayúdanos a clasificar las solicitudes que no han sido actualizadas" msgid "Here <strong>described</strong> means when a user selected a status for the request, and\\nthe most recent event had its status updated to that value. <strong>calculated</strong> is then inferred by\\n{{site_name}} for intermediate events, which weren't given an explicit\\ndescription by a user. See the <a href=\"{{search_path}}\">search tips</a> for description of the states." msgstr "" @@ -1130,7 +1131,7 @@ msgid "Home page" msgstr "Sitio web" msgid "Home page of authority" -msgstr "Sitio web del organismo" +msgstr "Sitio web de esta entidad" msgid "However, you have the right to request environmental\\n information under a different law" msgstr "" @@ -1144,10 +1145,12 @@ msgid "I am asking for <strong>new information</strong>" msgstr "Estoy pidiendo <strong>nueva información</strong>" msgid "I am requesting an <strong>internal review</strong>" -msgstr "Estoy pidiendo una <strong>revisión interna</strong>" +msgstr "Estoy Preguntando <strong> Por mi Solicitud de Información </strong>" msgid "I am writing to request an internal review of {{public_body_name}}'s handling of my FOI request '{{info_request_title}}'." -msgstr "Escribo para solicitar una revisión sobre cómo {{public_body_name}} ha gestionado mi solicitud de información '{{info_request_title}}'." +msgstr "" +"Escribo solicitando se me informe sobre cómo {{public_body_name}} ha gestionado\n" +"mi solicitud de información '{{info_request_title}}'." msgid "I don't like these ones — give me some more!" msgstr "Estas no me gustan — ¡dame más!" @@ -1167,10 +1170,10 @@ msgstr "" " <small>(puede que haya obtenido un acuse de recibo)</small>" msgid "I'm still <strong>waiting</strong> for the internal review" -msgstr "Todavía estoy <strong>esperando</strong> por la revisión interna" +msgstr "Todavía estoy <strong>esperando</strong> por mi información (puede que haya obtenido un acuse de recibo)" msgid "I'm waiting for an <strong>internal review</strong> response" -msgstr "Estoy esperando por una respuesta de la <strong>revisión interna</strong>" +msgstr "Estoy preguntando por mi solicitud de información" msgid "I've been asked to <strong>clarify</strong> my request" msgstr "Me han pedido que <strong>aclare</strong> mi solicitud" @@ -1194,7 +1197,7 @@ msgid "If the address is wrong, or you know a better address, please <a href=\"{ msgstr "Si la dirección es incorrecta, o conoce una más actualizada, por favor <a href=\"{{url}}\">contáctenos</a>." msgid "If the error was a delivery failure, and you can find an up to date FOI email address for the authority, please tell us using the form below." -msgstr "Si el error fue un fallo técnico en la entrega, y puedes encontrar una dirección de correo válida para este organismo, por favor dínoslo utilizando el siguiente formulario." +msgstr "Si el error fue un fallo técnico en la entrega, y puedes encontrar una dirección de correo válida para esta entidad, por favor dínoslo utilizando el siguiente formulario." msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help." msgstr "" @@ -1204,8 +1207,8 @@ msgstr "" msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"{{url}}\">details</a>)." msgstr "" -"Si no estás satisfecho con la respuesta que has recibido del\n" -" organismo público, tienes derecho a\n" +"Si no estás satisfecho con la respuesta que has recibido de la\n" +" entidad Pública, tienes derecho a\n" " apelar (<a href=\"{{url}}\">detalles</a>)." msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>." @@ -1243,7 +1246,7 @@ msgstr "" "Por favor intente hacer lo que estaba haciendo inicialmente." msgid "If you have not done so already, please write a message below telling the authority that you have withdrawn your request. Otherwise they will not know it has been withdrawn." -msgstr "Si no lo has hecho ya, por favor escribe un mensaje a continuación informando al organismo público de que has retirado su solicitud. De lo contrario no sabrán que lo has hecho." +msgstr "Si no lo has hecho ya, por favor escribe un mensaje a continuación informando a la entidad pública de que has retirado su solicitud. De lo contrario no sabrán que lo has hecho." msgid "If you reply to this message it will go directly to {{user_name}}, who will\\nlearn your email address. Only reply if that is okay." msgstr "Si respondes a este mensaje irá directamente a {{user_name}}, que podrá entonces ver tu dirección de correo. Responde sólo si esto te parece aceptable." @@ -1259,10 +1262,10 @@ msgstr "" " explicándonos tus razones.\\n" msgid "If you write about these requests (for example in a forum or a blog) please link to this page." -msgstr "" +msgstr "Si usted escribe sobre estas solicitudes (por ejemplo en un foro o un blog) por favor enlace a esta página." msgid "If you write about this request (for example in a forum or a blog) please link to this page, and <a href=\"{{url}}\">add an annotation</a> below telling people about your writing." -msgstr "" +msgstr "Si escribes sobre esta solicitud (por ejemplo, en un foro o un blog) por favor enlace a esta página, y <a href=\"{{url}}\">añadir una nota</a> a continuación y compartir con mas personas acerca de su escritura." msgid "If you're new to {{site_name}}" msgstr "Si es nuevo en {{site_name}}" @@ -1428,16 +1431,16 @@ msgid "Just one more thing" msgstr "Sólo una cosa más" msgid "Keep your request up to date" -msgstr "" +msgstr "Mantenga su solicitud hasta la fecha" msgid "Keep your requests up to date" -msgstr "" +msgstr "Mantenga sus solicitudes al día" msgid "Keywords" msgstr "Términos" msgid "Last authority viewed: " -msgstr "Ultimo organismo visitado: " +msgstr "Ultima entidad visitada: " msgid "Last request viewed: " msgstr "Última solicitud vista: " @@ -1452,7 +1455,7 @@ msgid "Link to this" msgstr "Enlace" msgid "List of all authorities (CSV)" -msgstr "Lista de todos los organismos (CSV)" +msgstr "Lista de todas las entidades (CSV)" msgid "Listing FOI requests" msgstr "Mostrando solicitudes de información" @@ -1524,7 +1527,7 @@ msgid "Make a request to these authorities" msgstr "Enviar una solicitud a estas Instituciones Publicas" msgid "Make a request to this authority" -msgstr "Enviar una solicitud a este organismo" +msgstr "Enviar una solicitud a esta entidad" msgid "Make an {{law_used_short}} request" msgstr "Realizar una {{law_used_short}} solicitud" @@ -1539,7 +1542,7 @@ msgid "Many requests" msgstr "Solicitudes diversas" msgid "Matching authorities" -msgstr "" +msgstr "las autoridades correspondientes" msgid "Message" msgstr "Mensaje" @@ -1554,7 +1557,7 @@ msgid "Missing contact details for '" msgstr "No contamos con los datos de contacto de '" msgid "More about this authority" -msgstr "Más información sobre este organismo" +msgstr "Más información sobre esta entidad" msgid "More requests..." msgstr "Más solicitudes..." @@ -1710,10 +1713,10 @@ msgid "Only requests made using {{site_name}} are shown." msgstr "Sólo se muestran las solicitudes realizadas con {{site_name}}." msgid "Only the authority can reply to this request, and I don't recognise the address this reply was sent from" -msgstr "Sólo el organismo puede responder a esta solicitud, y no reconozco la dirección desde la que se mandó esta respuesta" +msgstr "Sólo la entidad puede responder a esta solicitud, y no reconozco la dirección desde la que se mandó esta respuesta" msgid "Only the authority can reply to this request, but there is no \"From\" address to check against" -msgstr "Sólo el organismo puede responder a esta solicitud, pero no hay un campo \"From\" contra el que comparar" +msgstr "Sólo la entidad puede responder a esta solicitud, pero no hay un campo \"From\" contra el que comparar" msgid "Or make a <a href=\"{{url}}\">batch request</a> to <strong>multiple authorities</strong> at once." msgstr "O hacer una <a href=\"{{url}}\"> bloque de solicitud </a> a <strong> múltiples autoridades </ strong> a la vez." @@ -1794,12 +1797,12 @@ msgid "Please <a href=\"{{url}}\">contact us</a> if you have any questions." msgstr "Por favor, <a href=\"{{url}}\">contáctenos</a> si tiene alguna pregunta." msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it." -msgstr "Por favor <a href=\"{{url}}\">contacta</a> con nosotros para que podamos arreglarlo." +msgstr "Por favor <a href=\"{{url}}\">contáctenos </a> a nosotros para que podamos arreglarlo." msgid "Please <strong>answer the question above</strong> so we know whether the recent response contains useful information." msgid_plural "Please <strong>answer the question above</strong> so we know whether the recent responses contain useful information." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Favor <strong>responder a la pregunta anterior</strong> si sabemos que las respuestas recientes contienen información útil." +msgstr[1] "Favor <strong>responder a la pregunta anterior</strong> si sabemos que las respuestas recientes contienen información útil." msgid "Please <strong>go to the following requests</strong>, and let us\\n know if there was information in the recent responses to them." msgstr "" @@ -1810,7 +1813,7 @@ msgid "Please <strong>only</strong> write messages directly relating to your req msgstr "Por favor escribe <strong>sólo</strong> mensajes directamente relacionados con tu solicitud {{request_link}}. Si quieres pedir información que no estaba en tu solicitud original, entonces <a href=\"{{new_request_link}}\">envía una nueva</a>." msgid "Please ask for environmental information only" -msgstr "Por favor pidae información medio-ambiental solamente" +msgstr "Por favor pida información al medio-ambiental solamente" msgid "Please check the URL (i.e. the long code of letters and numbers) is copied\\ncorrectly from your email." msgstr "" @@ -1913,10 +1916,10 @@ msgid "Please keep the summary short, like in the subject of an email. You can u msgstr "Por favor, mantén el resumen corto, como en el asunto de un correo electrónico" msgid "Please only request information that comes under those categories, <strong>do not waste your\\n time</strong> or the time of the public authority by requesting unrelated information." -msgstr "Por favor, pide información sólo de estas categorias, <strong>no pierdas tu tiempo </strong> o el del organismo público pidiendo información no relacionada." +msgstr "Por favor, pide información sólo de estas categorias, <strong>no pierdas tu tiempo </strong> o de la Entidad Pública pidiendo información no relacionada." msgid "Please pass this on to the person who conducts Freedom of Information reviews." -msgstr "Por favor envie este mensaje a la persona responsable de revisar las solicitudes de información." +msgstr "Por favor envíe este mensaje a la Oficina responsable de tramitar las solicitudes de información." msgid "Please select each of these requests in turn, and <strong>let everyone know</strong>\\nif they are successful yet or not." msgstr "" @@ -2017,7 +2020,7 @@ msgid "Preview your public request" msgstr "Revisa tu solicitud pública" msgid "Preview your request" -msgstr "" +msgstr "Vista previa de la solicitud" msgid "Profile photo" msgstr "Foto de Perfil" @@ -2050,10 +2053,10 @@ msgid "Public authority statistics" msgstr "Estadísticas de la Autoridad" msgid "Public authority – {{name}}" -msgstr "Organismo público - {{name}}" +msgstr "entidad pública - {{name}}" msgid "Public bodies that most frequently replied with \"Not Held\"" -msgstr "Organización publica que responde con más frecuencia \"No tenemos la información\"" +msgstr "Entidad publica que responde con más frecuencia \"No tenemos la información\"" msgid "Public bodies with most overdue requests" msgstr "Instituciones Públicas con más solicitudes vencidas" @@ -2068,19 +2071,19 @@ msgid "Public bodies with the most successful requests" msgstr "Los Entidades públicas con las peticiones de mayor satisfacción " msgid "Public body" -msgstr "Autoridad/Organismo Publico" +msgstr "Autoridad/Entidad Pública" msgid "Public body category" -msgstr "Categoría de organismo público" +msgstr "Categoría de entidades públicas" msgid "Public body category link" -msgstr "Enlace categoría de organismo público" +msgstr "Enlace categoría de entidades públicas" msgid "Public body change request" -msgstr "Solicitud de cambio de organismo público" +msgstr "Solicitud de cambio de entidades públicas" msgid "Public body heading" -msgstr "Nombre de Organismo público" +msgstr "Nombre de entidades públicas" msgid "Public notes" msgstr "Notas públicas" @@ -2218,7 +2221,7 @@ msgid "Refused." msgstr "Rechazada." msgid "Remember me (keeps you signed in longer; do not use on a public computer)" -msgstr "" +msgstr "Recuérdeme (mantenga esta sesión abierta, no utilizar en una computadora pública)" msgid "Report abuse" msgstr "Denuncie abuso" @@ -2242,7 +2245,7 @@ msgid "Request an internal review" msgstr "Pregunta por tu Solicitud" msgid "Request an internal review from {{person_or_body}}" -msgstr "Pregunta por tu solicitud al contacto en {{person_or_body}}" +msgstr "Pregunta por tu solicitud {{person_or_body}}" msgid "Request email" msgstr "Email para solicitudes" @@ -2305,7 +2308,7 @@ msgid "Response by {{public_body_name}} to {{info_request_user}} on {{date}}." msgstr "Respuesta por {{public_body_name}} a {{info_request_user}} el {{date}}." msgid "Response from a public authority" -msgstr "Respuesta de un organismo público" +msgstr "Respuesta de una entidad pública" msgid "Response to '{{title}}'" msgstr "Respuesta a '{{title}}'" @@ -2341,7 +2344,7 @@ msgid "Search contributions by this person" msgstr "Buscar aportaciones de esta persona" msgid "Search for the authorities you'd like information from:" -msgstr "Busque las Instituciones Públicas a las cuales desea solicitarle información :" +msgstr "Busque las Entidades Públicas a las cuales desea solicitarle información :" msgid "Search for words in:" msgstr "Buscar palabras en:" @@ -2350,13 +2353,13 @@ msgid "Search in" msgstr "Buscar en" msgid "Search in their website for this information →" -msgstr "" +msgstr "Buscar en el sitio web esta información →" msgid "Search over<br/>\\n <strong>{{number_of_requests}} requests</strong> <span>and</span><br/>\\n <strong>{{number_of_authorities}} authorities</strong>" msgstr "" "Busque entre<br/>\n" " <strong>{{number_of_requests}} solicitudes</strong> <span>y</span><br/>\n" -" <strong>{{number_of_authorities}} organismos</strong>" +" <strong>{{number_of_authorities}} entidades</strong>" msgid "Search queries" msgstr "Resultados de búsquedas" @@ -2406,13 +2409,13 @@ msgid "Set your profile photo" msgstr "Cambiar foto de perfil" msgid "Share on Facebook" -msgstr "" +msgstr "Compartir en Facebook" msgid "Share your batch request" -msgstr "" +msgstr "Comparte tu solicitud en el blog" msgid "Share your request" -msgstr "" +msgstr "Comparte tu solicitud" msgid "Short name" msgstr "Nombre corto" @@ -2508,7 +2511,7 @@ msgid "Stay up to date" msgstr "Manténgase al día" msgid "Still awaiting an <strong>internal review</strong>" -msgstr "Todavía esperando por una <strong>revisión interna</strong>" +msgstr "Todavía esperando por una <strong>información</strong>" msgid "Subject" msgstr "Asunto" @@ -2621,27 +2624,27 @@ msgid "The accounts have been left as they previously were." msgstr "Las cuentas se han dejado tal y como estaban anteriormente." msgid "The authority do <strong>not have</strong> the information <small>(maybe they say who does)" -msgstr "El organismo <strong>no tiene</strong> la información <small>(tal vez dicen quién la tiene)" +msgstr "La entidad <strong>no tiene</strong> la información <small>(tal vez dicen quién la tiene)" msgid "The authority email doesn't look like a valid address" msgstr "El correo electronico de la autoridad no parece una dirección válida" msgid "The authority only has a <strong>paper copy</strong> of the information." -msgstr "El organismo sólo tiene una <strong>copia en papel</strong> de la información." +msgstr "La entidad sólo tiene una <strong>copia en papel</strong> de la información." msgid "The authority say that they <strong>need a postal\\n address</strong>, not just an email, for it to be a valid FOI request" msgstr "" -"El organismo dice que necesita <strong>una dirección\n" +"La entidad dice que necesita <strong>una dirección\n" " postal</strong>, no sólo un correo electrónico, para que la solicitud sea válida" msgid "The authority would like to / has <strong>responded by post</strong> to this request." -msgstr "El organismo querría / ha respondido <strong>por correo ordinario</strong> a esta solicitud." +msgstr "La entidad querría / ha respondido <strong>por correo ordinario</strong> a esta solicitud." msgid "The classification of requests (e.g. to say whether they were successful or not) is done manually by users and administrators of the site, which means that they are subject to error." msgstr "La clasificación de las solicitudes (por ejemplo, para decir si tuvieron éxito o no) se realiza manualmente por los usuarios y los administradores del sitio, lo que significa que están sujetos a error." msgid "The contact email address for FOI requests to the authority." -msgstr "La dirección de correo electrónico de contacto de las Autoridades para hacer una solicitud de información pública." +msgstr "La dirección de correo electrónico de contacto de las entidades para hacer una solicitud de información pública." msgid "The email that you, on behalf of {{public_body}}, sent to\\n{{user}} to reply to an {{law_used_short}}\\nrequest has not been delivered." msgstr "" @@ -2677,13 +2680,13 @@ msgid "The percentages are calculated with respect to the total number of reques msgstr "Los porcentajes se calculan con respecto al número total de solicitudes, que incluye peticiones no válidas; Este es un problema identificado que se solucionará en una versión posterior." msgid "The public authority does not have the information requested" -msgstr "El organismo no tiene la información solicitada" +msgstr "La entidad no tiene la información solicitada" msgid "The public authority would like part of the request explained" -msgstr "El organismo ha pedido una aclaración a parte de la solicitud" +msgstr "La entidad ha pedido una aclaración a parte de la solicitud" msgid "The public authority would like to / has responded by post" -msgstr "El organismo quiere responder (o ha respondido) por correo ordinario" +msgstr "La entidad quiere responder (o ha respondido) por correo ordinario" msgid "The request has been <strong>refused</strong>" msgstr "La solicitud ha sido <strong>rechazada</strong>" @@ -2704,7 +2707,7 @@ msgid "The request was <strong>successful</strong>." msgstr "La solicitud fue <strong>exitosa</strong>." msgid "The request was refused by the public authority" -msgstr "La solicitud ha sido rechazada por el organismo" +msgstr "La solicitud ha sido rechazada por la entidad" msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions." msgstr "" @@ -2718,17 +2721,17 @@ msgstr "El creador de la solicitud la ha cancelado por algún motivo" msgid "The response to your request has been <strong>delayed</strong>. You can say that,\\n by law, the authority should normally have responded\\n <strong>promptly</strong> and" msgstr "" "La respuesta a tu solicitud ha sido <strong>retrasada</strong>.\n" -" Por ley, el organismo debería normalmente haber respondido\n" +" Por ley, la entidad debería normalmente haber respondido\n" " <strong>rápidamente</strong> y" msgid "The response to your request is <strong>long overdue</strong>. You can say that, by\\n law, under all circumstances, the authority should have responded\\n by now" msgstr "" "La respuesta a tu solicitud ha sido <strong>muy retrasada</strong>.\n" -" Por ley, bajo cualquier circunstancia, el organismo ya debería\n" +" Por ley, bajo cualquier circunstancia, la entidad ya debería\n" " haber respondido" msgid "The search index is currently offline, so we can't show the Freedom of Information requests that have been made to this authority." -msgstr "El motor de búsqueda no está accesible en estos momentos: no podemos mostrar las solicitudes de información realizadas a este organismo." +msgstr "El motor de búsqueda no está accesible en estos momentos: no podemos mostrar las solicitudes de información realizadas a esta entidad." msgid "The search index is currently offline, so we can't show the Freedom of Information requests this person has made." msgstr "El motor de búsqueda no está accesible en estos momentos: no podemos mostrar las solicitudes de información que ha hecho esta persona" @@ -2870,7 +2873,7 @@ msgid "Things you're following" msgstr "Pedidos que estas siguiendo" msgid "This authority no longer exists, so you cannot make a request to it." -msgstr "Este organismo ya no existe, no pueden realizarse solicitudes de información." +msgstr "Esta entidad ya no existe, no pueden realizarse solicitudes de información." msgid "This covers a very wide spectrum of information about the state of\\n the <strong>natural and built environment</strong>, such as:" msgstr "" @@ -2922,7 +2925,7 @@ msgid "This page of public body statistics is currently experimental, so there a msgstr "Esta página de estadísticas de Entidades públicas es actualmente una prueba, por lo que hay algunas advertencias que deben tenerse en cuenta:" msgid "This particular request is finished:" -msgstr "Esta solicitud está cerrada:" +msgstr "Esta solicitud está resuelta según la entidad:" msgid "This person has made no Freedom of Information requests using this site." msgstr "Esta persona no ha realizado solicitudes de información usando esta web." @@ -2998,7 +3001,7 @@ msgid "This table shows the technical details of the internal events that happen msgstr "" "La siguiente tabla muestra datos técnicos sobre los eventos internos relacionados \n" "con la solicitud {{site_name}}. Estos datos pueden ser utilizados para generar\n" -"estadísticas sobre por ejemplo la velocidad de respuesta de los organismos o\n" +"estadísticas sobre por ejemplo la velocidad de respuesta de las entidades o\n" "el número de solicitudes que piden usar correo ordinario." msgid "This user has been banned from {{site_name}} " @@ -3010,7 +3013,7 @@ msgstr "" "de correo {{email}}." msgid "To" -msgstr "" +msgstr "A" msgid "To cancel these alerts" msgstr "Cancelar estas alertas" @@ -3140,7 +3143,7 @@ msgid "Turn off email alerts" msgstr "Descontinuar alertas por correo electronico" msgid "Tweet it" -msgstr "" +msgstr "Twittear" msgid "Tweet this request" msgstr "Tuitear esta solicitud" @@ -3170,7 +3173,7 @@ msgid "Unexpected search result type " msgstr "Se encontró un tipo de resultado inesperado " msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"{{url}}\">contact us</a> to sort it out." -msgstr "Desgraciadamente no tenemos la dirección de correo para este organismo, así que no podemos validarlo. Por favor <a href=\"{{url}}\">contáctenos</a> para arreglarlo." +msgstr "Lamentablemente no tenemos la dirección de correo para esta entidad, así que no podemos validarlo. Por favor <a href=\"{{url}}\">contáctenos</a> para arreglarlo." msgid "Unfortunately, we do not have a working address for {{public_body_names}}." msgstr "Lamentablemente, no tenemos una dirección que funcione para {{public_body_names}}." @@ -3203,7 +3206,7 @@ msgid "Use OR (in capital letters) where you don't mind which word, e.g. <stron msgstr "Escriba OR (en mayúsculas) cuando no le importe qué palabra, e.g. <strong><code>diputado OR parlamento</code></strong>" msgid "Use quotes when you want to find an exact phrase, e.g. <strong><code>\"Liverpool City Council\"</code></strong>" -msgstr "Utiliza comillas cuando quieras buscar una frase exacta, por ejemplo <strong><code>\"Consejo de Europa\"</code></strong>" +msgstr "Utiliza comillas cuando quieras buscar una frase exacta, por ejemplo <strong><code>\"Asamblea Nacional\"</code></strong>" msgid "User" msgstr "usuario" @@ -3218,7 +3221,7 @@ msgid "UserInfoRequestSentAlert|Alert type" msgstr "UserInfoRequestSentAlert|Alert type" msgid "Users cannot usually make batch requests to multiple authorities at once because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. Please <a href=\"{{url}}\">contact us</a> if you think you have good reason to send the same request to multiple authorities at once." -msgstr "Los usuarios no pueden por lo general hacer solicitudes por bloques a varias autoridades a la vez porque no queremos que las autoridades públicas sean saturadas con un gran número de solicitudes inapropiadas. <a Href=\"{{url}}\"> sino contáctenos </a> si usted piensa que tiene una buena razón para enviar la misma petición a múltiples autoridades a la vez." +msgstr "Los usuarios no pueden por lo general hacer solicitudes por bloques a varias autoridades a la vez porque no queremos que las entidades públicas sean saturadas con un gran número de solicitudes inapropiadas. <a Href=\"{{url}}\"> sino contáctenos </a> si usted piensa que tiene una buena razón para enviar la misma petición a múltiples autoridades a la vez." msgid "User|About me" msgstr "User|About me" @@ -3293,7 +3296,7 @@ msgid "View email" msgstr "Ver correo" msgid "View other requests to {{public_body}}" -msgstr "" +msgstr "Ver otras solicitudes a {{public_body}}" msgid "Waiting clarification." msgstr "Esperando aclaración." @@ -3302,10 +3305,10 @@ msgid "Waiting for an <strong>internal review</strong> by {{public_body_link}} o msgstr "Esperando una <strong>revisión interna</strong> por parte de {{public_body_link}} de cómo han respondido a esta solicitud." msgid "Waiting for the public authority to complete an internal review of their handling of the request" -msgstr "Esperando que el organismo termine una revisión interna de tu respuesta a la solicitud" +msgstr "Esperando que la entidad termine una revisión interna de tu respuesta a la solicitud" msgid "Waiting for the public authority to reply" -msgstr "Esperando que el organismo responda" +msgstr "Esperando que la entidad responda" msgid "Was the response you got to your FOI request any good?" msgstr "¿Fue la respuesta a tu solicitud satisfactoria?" @@ -3317,7 +3320,7 @@ msgid "We consider it to be vexatious, and have therefore hidden it from other u msgstr "Consideramos que es ofensiva, por lo que la hemos ocultado para otros usuarios." msgid "We do not have a working request email address for this authority." -msgstr "No tenemos una dirección de correo válida para este organismo." +msgstr "No tenemos una dirección de correo válida para esta entidad." msgid "We do not have a working {{law_used_full}} address for {{public_body_name}}." msgstr "No tenemos una dirección de correo válida para este {{public_body_name}}." @@ -3346,13 +3349,13 @@ msgstr "" msgid "We're waiting for someone to read a recent response and update the status accordingly. Perhaps <strong>you</strong> might like to help out by doing that?" msgid_plural "We're waiting for someone to read recent responses and update the status accordingly. Perhaps <strong>you</strong> might like to help out by doing that?" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Estamos esperando a alguien que lea una respuesta reciente y actualizar el estado en consecuencia. quizás <strong>usted</strong> si quiere puede ayudar hacer eso?" +msgstr[1] "Estamos esperando a alguien que lea una respuesta reciente y actualizar el estado en consecuencia. quizás <strong>usted</strong> si quiere puede ayudar hacer eso?" msgid "We're waiting for {{user}} to read a recent response and update the status." msgid_plural "We're waiting for {{user}} to read recent responses and update the status." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Estamos esperando a{{user}} para leer las respuestas recientes y actualizar su estado." +msgstr[1] "Estamos esperando a{{user}} para leer las respuestas recientes y actualizar su estado." msgid "We've sent an email to your new email address. You'll need to click the link in\\nit before your email address will be changed." msgstr "" @@ -3380,7 +3383,7 @@ msgid "What information has been requested?" msgstr "¿Qué información ha sido solicitada?" msgid "What next?" -msgstr "" +msgstr "Qué sigue?" msgid "When you get there, please update the status to say if the response \\ncontains any useful information." msgstr "" @@ -3515,7 +3518,7 @@ msgstr "" "de la solicitud. Consulte <a href=\"{{api_path}}\">la documentación de nuestro API</a>." msgid "You can only request information about the environment from this authority." -msgstr "Solo puede solicitar información medioambiental a esta institución" +msgstr "Solo puede solicitar información medioambiental a esta entidad." msgid "You have a new response to the {{law_used_full}} request " msgstr "Tienes una nueva respuesta a la solicitud {{law_used_full}} " @@ -3588,7 +3591,7 @@ msgstr "" "<strong>simplemente respondiendo</strong> a ese correo. Para su comodidad, esta es la dirección:" msgid "You want to <strong>give your postal address</strong> to the authority in private." -msgstr "Quieres <strong>darle tu dirección postal</strong> al organismo en privado." +msgstr "Quieres <strong>darle tu dirección postal</strong> a la entidad en privado." msgid "You will be unable to make new requests, send follow ups, add annotations or\\nsend messages to other users. You may continue to view other requests, and set\\nup\\nemail alerts." msgstr "" @@ -3729,7 +3732,7 @@ msgid "Your request:" msgstr "Tu solicitud:" msgid "Your requests will be <strong>sent</strong> shortly!" -msgstr "" +msgstr "Sus solicitudes serán <strong>enviadas</strong> shortly!" msgid "Your response to an FOI request was not delivered" msgstr "Tú respuesta a la solicitud de información no ha sido entregada" @@ -3759,7 +3762,7 @@ msgstr[0] "Sus {{count}} solicitudes por bloques" msgstr[1] "Sus {{count}} solicitudes por bloques" msgid "Your {{law_used_full}} request has been sent" -msgstr "" +msgstr "Su {{law_used_full}} solicitud ha sido enviado" msgid "Your {{site_name}} email alert" msgstr "Tu alerta en {{site_name}}" @@ -3780,7 +3783,7 @@ msgid "[FOI #{{request}} email]" msgstr "[Dirección de correo de la solicitud #{{request}}]" msgid "[{{public_body}} request email]" -msgstr "[Dirección de correo del organismo {{public_body}}]" +msgstr "[Dirección de correo de la entidad pública {{public_body}}]" msgid "[{{site_name}} contact email]" msgstr "[Correo de contacto de {{site_name}}]" @@ -3804,7 +3807,7 @@ msgid "all requests or comments matching text '{{query}}'" msgstr "Todo el texto de peticiones o comentarios coinciden '{{query}}'" msgid "also called {{public_body_short_name}}" -msgstr "también conocido como {{public_body_short_name}}" +msgstr "también conocida como {{public_body_short_name}}" msgid "an anonymous user" msgstr "un usuario anónimo" @@ -3825,7 +3828,7 @@ msgid "at" msgstr "en" msgid "authorities" -msgstr "organismos" +msgstr "entidades" msgid "beginning with ‘{{first_letter}}’" msgstr "comenzando con ‘{{first_letter}}’" @@ -3866,7 +3869,7 @@ msgid "edit text about you" msgstr "edita el texto sobre ti" msgid "email address" -msgstr "" +msgstr "dirección de correo electrónico" msgid "even during holidays" msgstr "incluso durante las vacaciones" @@ -3914,13 +3917,13 @@ msgid "matching the tag ‘{{tag_name}}’" msgstr "con la etiqueta ‘{{tag_name}}’" msgid "messages from authorities" -msgstr "mensajes de organismos" +msgstr "mensajes de las entidades" msgid "messages from users" msgstr "mensajes de usuarios" msgid "mobile number" -msgstr "" +msgstr "número de teléfono móvil" msgid "move..." msgstr "mover..." @@ -3941,7 +3944,7 @@ msgid "please sign in as " msgstr "por favor abra una sesión como " msgid "requesting an internal review" -msgstr "pidiendo una revisión interna" +msgstr "pidiendo una revisión de la información" msgid "requests" msgstr "solicitudes" @@ -3987,7 +3990,7 @@ msgstr "la dirección de contacto de {{public_body}}" #. Send a public reply to... #. Don't want to address your message to... ? msgid "the main FOI contact at {{public_body}}" -msgstr "el contacto en {{public_body}}" +msgstr "al contacto en {{public_body}}" msgid "the requester" msgstr "el solicitante" @@ -4033,8 +4036,8 @@ msgstr "{{count}} solicitudes de información encontradas" msgid "{{count}} follower" msgid_plural "{{count}} followers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "{{count}} seguidores" +msgstr[1] "{{count}} seguidores" msgid "{{count}} request" msgid_plural "{{count}} requests" @@ -4077,7 +4080,7 @@ msgid "{{public_body_link}} was sent a request about" msgstr "{{public_body_link}} recibió una solicitud sobre" msgid "{{public_body_name}} no longer exists. From the request page, try replying to a particular message, rather than sending\\n a general followup. If you need to make a general followup, and know\\n an email which will go to the right place, please <a href=\"{{url}}\">send it to us</a>." -msgstr "" +msgstr "{{public_body_name}}ya no existe. Desde la página de solicitud, trate de responder a un mensaje en particular, en lugar de enviar o un seguimiento general. Si usted necesita para hacer un seguimiento general y saber o no un correo electrónico que irá al lugar correcto, por favor <a href=\"{{url}}\">send it to us</a>." msgid "{{public_body_name}} only:" msgstr "Sólo {{public_body_name}}:" @@ -4101,7 +4104,7 @@ msgid "{{site_name}} covers requests to {{number_of_authorities}} authorities, i msgstr "{{site_name}} incluye solicitudes a {{number_of_authorities}} Entidades públicas, incluyendo:" msgid "{{site_name}} sends new requests to <strong>{{request_email}}</strong> for this authority." -msgstr "{{site_name}} envía nuevas solicitudes a <strong>{{request_email}}</strong> para este organismo." +msgstr "{{site_name}} envía nuevas solicitudes a <strong>{{request_email}}</strong> para esta entidad" msgid "{{site_name}} users have made {{number_of_requests}} requests, including:" msgstr "Los usuarios de {{site_name}} han hecho {{number_of_requests}} solicitudes, incluyendo:" @@ -4157,4 +4160,4 @@ msgid "{{user}} made this {{law_used_full}} request" msgstr "{{user}} hizo esta solicitud de {{law_used_full}}" msgid "« Back to search results" -msgstr "" +msgstr "«Volver a los resultados de búsqueda" diff --git a/locale/hr/app.po b/locale/hr/app.po index c265712c0..e25f68d29 100644 --- a/locale/hr/app.po +++ b/locale/hr/app.po @@ -145,7 +145,6 @@ msgstr "" "\n" "{{user_name}}" - msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>." msgstr "<a href=\"{{browse_url}}\">Pretražite sve</a> ili <a href=\"{{add_url}}\">zamolite nas da dodamo</a>." diff --git a/spec/controllers/public_body_controller_spec.rb b/spec/controllers/public_body_controller_spec.rb index 130631ef6..ff0a70a6f 100644 --- a/spec/controllers/public_body_controller_spec.rb +++ b/spec/controllers/public_body_controller_spec.rb @@ -82,6 +82,13 @@ describe PublicBodyController, "when showing a body" do expect(flash[:search_params]).to eq(search_params) end + + it 'should not show high page offsets as these are extremely slow to generate' do + lambda { + get :show, { :url_name => 'dfh', :view => 'all', :page => 25 } + }.should raise_error(ActiveRecord::RecordNotFound) + end + end describe PublicBodyController, "when listing bodies" do diff --git a/spec/helpers/public_body_helper_spec.rb b/spec/helpers/public_body_helper_spec.rb index 0bf55abb4..d4f3acf78 100644 --- a/spec/helpers/public_body_helper_spec.rb +++ b/spec/helpers/public_body_helper_spec.rb @@ -74,7 +74,7 @@ describe PublicBodyHelper do :description => "spec category #{i}") heading.add_category(category) end - public_body = FactoryGirl.create(:public_body, :tag_string => 'spec_0 spec_2 unknown') + public_body = FactoryGirl.create(:public_body, :tag_string => 'unknown spec_0 spec_2') expected = '<a href="/body/list/spec_0">Spec category 0</a> and <a href="/body/list/spec_2">spec category 2</a>' expect(type_of_authority(public_body)).to eq(expected) end diff --git a/spec/integration/admin_public_body_edit_spec.rb b/spec/integration/admin_public_body_edit_spec.rb index aeec3e65a..21011b172 100644 --- a/spec/integration/admin_public_body_edit_spec.rb +++ b/spec/integration/admin_public_body_edit_spec.rb @@ -39,7 +39,7 @@ describe 'Editing a Public Body' do end end - it 'can add a translation for multiple locales', :focus => true do + it 'can add a translation for multiple locales' do @admin.visit edit_admin_body_path(@body) @admin.fill_in 'public_body_name__en', :with => 'New Quango EN' @admin.click_button 'Save' diff --git a/spec/integration/alaveteli_dsl.rb b/spec/integration/alaveteli_dsl.rb index 370628d98..d7485a094 100644 --- a/spec/integration/alaveteli_dsl.rb +++ b/spec/integration/alaveteli_dsl.rb @@ -74,5 +74,14 @@ def cache_directories_exist?(request) paths.any?{ |path| File.exist?(path) } end +def with_forgery_protection + orig = ActionController::Base.allow_forgery_protection + begin + ActionController::Base.allow_forgery_protection = true + yield if block_given? + ensure + ActionController::Base.allow_forgery_protection = orig + end +end diff --git a/spec/integration/search_request_spec.rb b/spec/integration/search_request_spec.rb index 23a62e97b..699eb2c6c 100644 --- a/spec/integration/search_request_spec.rb +++ b/spec/integration/search_request_spec.rb @@ -1,4 +1,5 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') +require File.expand_path(File.dirname(__FILE__) + '/alaveteli_dsl') describe "When searching" do @@ -8,24 +9,35 @@ describe "When searching" do end it "should not strip quotes from quoted query" do - request_via_redirect("post", "/search", :query => '"mouse stilton"') + request_via_redirect("get", "/search", :query => '"mouse stilton"') response.body.should include(""mouse stilton"") end it "should redirect requests with search in query string to URL-based page" do - post '/search/all?query=bob' + get '/search/all?query=bob' response.should redirect_to "/en/search/bob/all" end it "should correctly execute simple search" do - request_via_redirect("post", "/search", + request_via_redirect("get", "/search", :query => 'bob' ) response.body.should include("FOI requests") end + it "should not log a logged-in user out" do + with_forgery_protection do + user = FactoryGirl.create(:user) + user_session = login(user) + user_session.visit frontpage_path + user_session.fill_in "query", :with => 'test' + user_session.click_button "Search" + user_session.response.body.should include(user.name) + end + end + it "should correctly filter searches for requests" do - request_via_redirect("post", "/search/bob/requests") + request_via_redirect("get", "/search/bob/requests") response.body.should_not include("One person found") n = 4 # The number of requests that contain the word "bob" somewhere # in the email text. At present this is: @@ -39,13 +51,13 @@ describe "When searching" do response.body.should include("FOI requests 1 to #{n} of #{n}") end it "should correctly filter searches for users" do - request_via_redirect("post", "/search/bob/users") + request_via_redirect("get", "/search/bob/users") response.body.should include("One person found") response.body.should_not include("FOI requests 1 to") end it "should correctly filter searches for successful requests" do - request_via_redirect("post", "/search/requests", + request_via_redirect("get", "/search/requests", :query => "bob", :latest_status => ['successful']) n = 2 # The number of *successful* requests that contain the word "bob" somewhere @@ -56,12 +68,12 @@ describe "When searching" do end it "should correctly filter searches for comments" do - request_via_redirect("post", "/search/requests", + request_via_redirect("get", "/search/requests", :query => "daftest", :request_variety => ['comments']) response.body.should include("One FOI request found") - request_via_redirect("post", "/search/requests", + request_via_redirect("get", "/search/requests", :query => "daftest", :request_variety => ['response','sent']) response.body.should include("no results matching your query") diff --git a/spec/integration/xapian_search_highlighting_spec.rb b/spec/integration/xapian_search_highlighting_spec.rb index 65a34cf91..b2994eb31 100644 --- a/spec/integration/xapian_search_highlighting_spec.rb +++ b/spec/integration/xapian_search_highlighting_spec.rb @@ -3,6 +3,10 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') describe 'highlighting search results' do include HighlightHelper + before do + get_fixtures_xapian_index + end + it 'ignores stopwords' do phrase = 'department of humpadinking' search = ActsAsXapian::Search.new([PublicBody], phrase, :limit => 1) diff --git a/spec/lib/mail_handler/mail_handler_spec.rb b/spec/lib/mail_handler/mail_handler_spec.rb index e7ad93300..ea7a99b05 100644 --- a/spec/lib/mail_handler/mail_handler_spec.rb +++ b/spec/lib/mail_handler/mail_handler_spec.rb @@ -9,7 +9,7 @@ end describe 'when creating a mail object from raw data' do - it "should be able to parse a large email without raising an exception", :focus => true do + it "should be able to parse a large email without raising an exception" do m = Mail.new m.add_file(:filename => "attachment.data", :content => "a" * (8 * 1024 * 1024)) raw_email = "From jamis_buck@byu.edu Mon May 2 16:07:05 2005\r\n#{m.to_s}" @@ -22,7 +22,7 @@ describe 'when creating a mail object from raw data' do mail.multipart?.should == true end - it "should not fail on invalid byte sequence in content-disposition header", :focus => true do + it "should not fail on invalid byte sequence in content-disposition header" do part = Mail::Part.new("Content-Disposition: inline; filename=a\xB8z\r\n\r\nThis is the body text.") lambda { part.inline? }.should_not raise_error end diff --git a/spec/models/info_request_batch_spec.rb b/spec/models/info_request_batch_spec.rb index 2881e7745..701422037 100644 --- a/spec/models/info_request_batch_spec.rb +++ b/spec/models/info_request_batch_spec.rb @@ -80,7 +80,7 @@ describe InfoRequestBatch, "when finding an existing batch" do end end -describe InfoRequestBatch, "when creating a batch", :focus => true do +describe InfoRequestBatch, "when creating a batch" do before do @title = 'A test title' diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 93bcfa1ba..4df1b5649 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -124,13 +124,6 @@ Spork.prefork do end end - # TODO: No idea what namespace/class/module to put this in - # Create a clean xapian index based on the fixture files and the raw_email data. - def create_fixtures_xapian_index - load_raw_emails_data - rebuild_xapian_index - end - # Use the before create job hook to simulate a race condition with # another process by creating an acts_as_xapian_job record for the # same model: |