aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md3
-rw-r--r--app/controllers/admin_controller.rb12
-rw-r--r--app/controllers/admin_public_body_controller.rb67
-rw-r--r--app/controllers/application_controller.rb5
-rw-r--r--app/controllers/comment_controller.rb13
-rw-r--r--app/controllers/general_controller.rb56
-rw-r--r--app/controllers/help_controller.rb2
-rw-r--r--app/controllers/public_body_controller.rb9
-rw-r--r--app/controllers/request_controller.rb131
-rw-r--r--app/controllers/request_game_controller.rb10
-rw-r--r--app/controllers/track_controller.rb20
-rw-r--r--app/controllers/user_controller.rb52
-rw-r--r--app/helpers/application_helper.rb5
-rwxr-xr-x[-rw-r--r--]app/helpers/link_to_helper.rb4
-rw-r--r--app/models/about_me_validator.rb2
-rw-r--r--app/models/application_mailer.rb4
-rw-r--r--app/models/change_email_validator.rb8
-rw-r--r--app/models/comment.rb4
-rw-r--r--app/models/contact_validator.rb2
-rw-r--r--app/models/info_request.rb96
-rw-r--r--app/models/info_request_event.rb38
-rw-r--r--app/models/outgoing_message.rb8
-rw-r--r--app/models/public_body.rb50
-rw-r--r--app/models/track_thing.rb16
-rw-r--r--app/models/user.rb16
-rw-r--r--app/models/user_mailer.rb4
-rw-r--r--app/views/admin_general/stats.rhtml3
-rw-r--r--app/views/comment/_comment_form.rhtml4
-rw-r--r--app/views/comment/_single_comment.rhtml5
-rw-r--r--app/views/comment/new.rhtml38
-rw-r--r--app/views/comment/preview.rhtml10
-rw-r--r--app/views/contact_mailer/message.rhtml6
-rw-r--r--app/views/contact_mailer/user_message.rhtml6
-rw-r--r--app/views/general/_before_body_end.rhtml17
-rw-r--r--app/views/general/_credits.rhtml6
-rw-r--r--app/views/general/_custom_state_descriptions.rhtml1
-rw-r--r--app/views/general/_custom_state_transitions_complete.rhtml0
-rw-r--r--app/views/general/_custom_state_transitions_pending.rhtml0
-rw-r--r--app/views/general/_locale_switcher.rhtml23
-rw-r--r--app/views/general/_orglink.rhtml2
-rw-r--r--app/views/general/blog.rhtml68
-rw-r--r--app/views/general/exception_caught.rhtml17
-rw-r--r--app/views/general/frontpage.rhtml11
-rw-r--r--app/views/help/about.rhtml18
-rw-r--r--app/views/help/requesting.rhtml8
-rw-r--r--app/views/layouts/default.rhtml19
-rw-r--r--app/views/outgoing_mailer/_followup_footer.rhtml4
-rw-r--r--app/views/outgoing_mailer/followup.rhtml7
-rw-r--r--app/views/outgoing_mailer/initial_request.rhtml10
-rw-r--r--app/views/public_body/_body_listing.rhtml2
-rw-r--r--app/views/public_body/_body_listing_single.rhtml2
-rw-r--r--app/views/public_body/list.rhtml14
-rw-r--r--app/views/public_body/show.rhtml19
-rw-r--r--app/views/public_body/view_email.rhtml17
-rw-r--r--app/views/public_body/view_email_captcha.rhtml11
-rw-r--r--app/views/request/_after_actions.rhtml24
-rw-r--r--app/views/request/_correspondence.rhtml8
-rw-r--r--app/views/request/_describe_state.rhtml51
-rw-r--r--app/views/request/_followup.rhtml56
-rw-r--r--app/views/request/_hidden_correspondence.rhtml22
-rw-r--r--app/views/request/_other_describe_state.rhtml35
-rw-r--r--app/views/request/_request_listing.rhtml2
-rw-r--r--app/views/request/_request_listing_short_via_event.rhtml5
-rw-r--r--app/views/request/_request_listing_single.rhtml4
-rw-r--r--app/views/request/_request_listing_via_event.rhtml19
-rw-r--r--app/views/request/_sidebar.rhtml12
-rw-r--r--app/views/request/_sidebar_request_listing.rhtml2
-rw-r--r--app/views/request/_view_html_prefix.rhtml4
-rw-r--r--app/views/request/details.rhtml30
-rw-r--r--app/views/request/followup_bad.rhtml21
-rw-r--r--app/views/request/followup_preview.rhtml22
-rw-r--r--app/views/request/hidden.rhtml13
-rw-r--r--app/views/request/list.rhtml10
-rw-r--r--app/views/request/new.rhtml103
-rw-r--r--app/views/request/new_bad_contact.rhtml8
-rw-r--r--app/views/request/new_please_describe.rhtml14
-rw-r--r--app/views/request/preview.rhtml22
-rw-r--r--app/views/request/show.rhtml109
-rw-r--r--app/views/request/show_response.rhtml44
-rw-r--r--app/views/request/similar.rhtml4
-rw-r--r--app/views/request/upload_response.rhtml26
-rw-r--r--app/views/request_game/play.rhtml22
-rw-r--r--app/views/request_mailer/comment_on_alert.rhtml6
-rw-r--r--app/views/request_mailer/comment_on_alert_plural.rhtml7
-rw-r--r--app/views/request_mailer/new_response.rhtml16
-rw-r--r--app/views/request_mailer/new_response_reminder_alert.rhtml7
-rw-r--r--app/views/request_mailer/not_clarified_alert.rhtml11
-rw-r--r--app/views/request_mailer/old_unclassified_updated.rhtml13
-rw-r--r--app/views/request_mailer/overdue_alert.rhtml10
-rw-r--r--app/views/request_mailer/requires_admin.rhtml8
-rw-r--r--app/views/request_mailer/stopped_responses.rhtml26
-rw-r--r--app/views/request_mailer/very_overdue_alert.rhtml15
-rw-r--r--app/views/track/_tracking_links.rhtml2
-rw-r--r--app/views/track_mailer/event_digest.rhtml8
-rw-r--r--app/views/user/_signin.rhtml14
-rw-r--r--app/views/user/_signup.rhtml23
-rw-r--r--app/views/user/_user_listing_single.rhtml6
-rw-r--r--app/views/user/bad_token.rhtml12
-rw-r--r--app/views/user/banned.rhtml8
-rw-r--r--app/views/user/confirm.rhtml8
-rw-r--r--app/views/user/contact.rhtml8
-rw-r--r--app/views/user/no_cookies.rhtml23
-rw-r--r--app/views/user/set_crop_profile_photo.rhtml8
-rw-r--r--app/views/user/set_draft_profile_photo.rhtml14
-rw-r--r--app/views/user/set_profile_about_me.rhtml20
-rw-r--r--app/views/user/show.rhtml76
-rw-r--r--app/views/user/sign.rhtml10
-rw-r--r--app/views/user/signchangeemail.rhtml16
-rw-r--r--app/views/user/signchangeemail_confirm.rhtml10
-rw-r--r--app/views/user/signchangepassword.rhtml10
-rw-r--r--app/views/user/signchangepassword_confirm.rhtml10
-rw-r--r--app/views/user/signchangepassword_send_confirm.rhtml12
-rw-r--r--app/views/user/wrong_user.rhtml4
-rw-r--r--app/views/user/wrong_user_unknown_email.rhtml6
-rw-r--r--app/views/user_mailer/already_registered.rhtml6
-rw-r--r--app/views/user_mailer/changeemail_already_used.rhtml12
-rw-r--r--app/views/user_mailer/changeemail_confirm.rhtml10
-rw-r--r--app/views/user_mailer/confirm_login.rhtml8
-rw-r--r--config/environment.rb10
-rw-r--r--config/general-example89
-rw-r--r--config/i18n-routes.yml8
-rw-r--r--config/routes.rb8
-rw-r--r--doc/INSTALL-exim4.md (renamed from INSTALL-exim4.md)0
-rw-r--r--doc/INSTALL.md (renamed from INSTALL.md)0
-rw-r--r--doc/THEMES.md112
-rw-r--r--doc/todo.txt (renamed from todo.txt)0
-rw-r--r--lib/languages.rb193
-rw-r--r--lib/public_body_categories.rb79
-rw-r--r--lib/public_body_categories_en.rb93
-rw-r--r--locale/app.pot3123
-rw-r--r--locale/en/app.po2338
-rw-r--r--locale/model_attributes.rb89
-rw-r--r--locale/sq/.giosavePIKAVV1
-rw-r--r--locale/sq/app.po3063
-rw-r--r--locale/sr/.giosavePIKAVV1
-rw-r--r--locale/sr/app.po3021
-rw-r--r--public/images/rss.pngbin14005 -> 6171 bytes
-rw-r--r--public/images/twitter.pngbin3276 -> 1486 bytes
-rw-r--r--public/stylesheets/main.css29
-rw-r--r--spec/controllers/admin_public_body_controller_spec.rb52
-rw-r--r--spec/controllers/public_body_controller_spec.rb26
-rw-r--r--spec/controllers/request_controller_spec.rb18
-rw-r--r--spec/controllers/track_controller_spec.rb2
-rw-r--r--spec/controllers/user_controller_spec.rb7
-rw-r--r--spec/helpers/link_to_helper_spec.rb3
-rw-r--r--spec/models/customstates.rb62
-rw-r--r--spec/models/info_request_spec.rb36
-rw-r--r--spec/spec_helper.rb19
-rw-r--r--spec/views/request/show.rhtml_spec.rb4
-rw-r--r--vendor/gems/routing-filter-0.2.3/.specification151
-rw-r--r--vendor/gems/routing-filter-0.2.3/Gemfile8
-rw-r--r--vendor/gems/routing-filter-0.2.3/Gemfile.lock82
-rw-r--r--vendor/gems/routing-filter-0.2.3/MIT-LICENSE20
-rw-r--r--vendor/gems/routing-filter-0.2.3/README.markdown204
-rw-r--r--vendor/gems/routing-filter-0.2.3/lib/routing-filter.rb1
-rw-r--r--vendor/gems/routing-filter-0.2.3/lib/routing_filter.rb27
-rw-r--r--vendor/gems/routing-filter-0.2.3/lib/routing_filter/adapters/rails_2.rb69
-rw-r--r--vendor/gems/routing-filter-0.2.3/lib/routing_filter/adapters/rails_3.rb77
-rw-r--r--vendor/gems/routing-filter-0.2.3/lib/routing_filter/chain.rb22
-rw-r--r--vendor/gems/routing-filter-0.2.3/lib/routing_filter/filter.rb37
-rw-r--r--vendor/gems/routing-filter-0.2.3/lib/routing_filter/filters/extension.rb76
-rw-r--r--vendor/gems/routing-filter-0.2.3/lib/routing_filter/filters/locale.rb82
-rw-r--r--vendor/gems/routing-filter-0.2.3/lib/routing_filter/filters/pagination.rb47
-rw-r--r--vendor/gems/routing-filter-0.2.3/lib/routing_filter/filters/uuid.rb40
-rw-r--r--vendor/gems/routing-filter-0.2.3/lib/routing_filter/version.rb3
-rw-r--r--vendor/gems/routing-filter-0.2.3/test/all.rb1
-rw-r--r--vendor/gems/routing-filter-0.2.3/test/blocks.rb33
-rw-r--r--vendor/gems/routing-filter-0.2.3/test/filters/all_filters/generation.rb42
-rw-r--r--vendor/gems/routing-filter-0.2.3/test/filters/all_filters/recognition.rb92
-rw-r--r--vendor/gems/routing-filter-0.2.3/test/filters/all_filters_test.rb25
-rw-r--r--vendor/gems/routing-filter-0.2.3/test/filters/extension_test.rb54
-rw-r--r--vendor/gems/routing-filter-0.2.3/test/filters/locale_test.rb69
-rw-r--r--vendor/gems/routing-filter-0.2.3/test/filters/pagination_test.rb29
-rw-r--r--vendor/gems/routing-filter-0.2.3/test/filters/uuid_test.rb40
-rw-r--r--vendor/gems/routing-filter-0.2.3/test/rails_test.rb92
-rw-r--r--vendor/gems/routing-filter-0.2.3/test/routes_test.rb31
-rw-r--r--vendor/gems/routing-filter-0.2.3/test/routing_filter_test.rb47
-rw-r--r--vendor/gems/routing-filter-0.2.3/test/test_adapters/rails_2.rb17
-rw-r--r--vendor/gems/routing-filter-0.2.3/test/test_adapters/rails_3.rb28
-rw-r--r--vendor/gems/routing-filter-0.2.3/test/test_helper.rb41
180 files changed, 14835 insertions, 1378 deletions
diff --git a/README.md b/README.md
index 8e639d7db..c76f48abd 100644
--- a/README.md
+++ b/README.md
@@ -14,7 +14,8 @@ norm, rather than the exception.
Please join our mailing list at
https://groups.google.com/group/alaveteli-dev and introduce yourself.
-There's background information on
+Some documentation can be found in the [`doc/` folder](./doc/). There's
+background information and a little more documentation on
[our wiki](https://github.com/sebbacon/alaveteli/wiki/Home/), and
hopefully we'll make [our homepage](http://alaveteli.org) more useful
in due course.
diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb
index 004d460c5..8598091d9 100644
--- a/app/controllers/admin_controller.rb
+++ b/app/controllers/admin_controller.rb
@@ -10,7 +10,7 @@ require 'fileutils'
class AdminController < ApplicationController
layout "admin"
- before_filter :assign_http_auth_user
+ before_filter :authenticate
protect_from_forgery # See ActionController::RequestForgeryProtection for details
# action to take if expecting an authenticity token and one isn't received
@@ -44,5 +44,15 @@ class AdminController < ApplicationController
expire_for_request(info_request)
end
end
+ private
+ def authenticate
+ username = MySociety::Config.get('ADMIN_USERNAME', '')
+ password = MySociety::Config.get('ADMIN_PASSWORD', '')
+ if !(username && password).empty?
+ authenticate_or_request_with_http_basic do |user_name, password|
+ user_name == username && password == password
+ end
+ end
+ end
end
diff --git a/app/controllers/admin_public_body_controller.rb b/app/controllers/admin_public_body_controller.rb
index 4b212c24b..f88b25572 100644
--- a/app/controllers/admin_public_body_controller.rb
+++ b/app/controllers/admin_public_body_controller.rb
@@ -9,50 +9,49 @@
class AdminPublicBodyController < AdminController
def index
list
+ render :action => 'list'
end
def _lookup_query_internal
- @query = params[:query]
- if @query == ""
- @query = nil
- end
- @page = params[:page]
- if @page == ""
- @page = nil
+ @locale = self.locale_from_params()
+ PublicBody.with_locale(@locale) do
+ @query = params[:query]
+ if @query == ""
+ @query = nil
+ end
+ @page = params[:page]
+ if @page == ""
+ @page = nil
+ end
+ @public_bodies = PublicBody.paginate :order => "public_body_translations.name", :page => @page, :per_page => 100,
+ :conditions => @query.nil? ? "public_body_translations.locale = '#{@locale}'" :
+ ["(lower(public_body_translations.name) like lower('%'||?||'%') or
+ lower(public_body_translations.short_name) like lower('%'||?||'%') or
+ lower(public_body_translations.request_email) like lower('%'||?||'%' )) AND (public_body_translations.locale = '#{@locale}')", @query, @query, @query],
+ :joins => :translations
+ @public_bodies_by_tag = PublicBody::Translation.find_by_tag(@query)
end
- @public_bodies = PublicBody.paginate :order => "name", :page => @page, :per_page => 100,
- :conditions => @query.nil? ? nil : ["lower(name) like lower('%'||?||'%') or
- lower(short_name) like lower('%'||?||'%') or
- lower(request_email) like lower('%'||?||'%')", @query, @query, @query]
- @public_bodies_by_tag = PublicBody.find_by_tag(@query)
end
def list
- @locale = self.locale_from_params()
- PublicBody.with_locale(@locale) do
- self._lookup_query_internal
- render :action => 'list'
- end
+ self._lookup_query_internal
end
def mass_tag_add
- @locale = self.locale_from_params()
- PublicBody.with_locale(@locale) do
- self._lookup_query_internal
-
- if params[:new_tag] and params[:new_tag] != ""
- if params[:table_name] == 'exact'
- bodies = @public_bodies_by_tag
- elsif params[:table_name] == 'substring'
- bodies = @public_bodies
- else
- raise "Unknown table_name " + params[:table_name]
- end
- for body in bodies
- body.add_tag_if_not_already_present(params[:new_tag])
- end
- flash[:notice] = "Added tag to table of bodies."
- end
+ self._lookup_query_internal
+
+ if params[:new_tag] and params[:new_tag] != ""
+ if params[:table_name] == 'exact'
+ bodies = @public_bodies_by_tag
+ elsif params[:table_name] == 'substring'
+ bodies = @public_bodies
+ else
+ raise "Unknown table_name " + params[:table_name]
+ end
+ for body in bodies
+ body.add_tag_if_not_already_present(params[:new_tag])
+ end
+ flash[:notice] = "Added tag to table of bodies."
end
redirect_to admin_url('body/list') + "?query=" + @query + (@page.nil? ? "" : "&page=" + @page) # XXX construct this URL properly
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index e39865dd9..405327952 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -29,9 +29,8 @@ class ApplicationController < ActionController::Base
helper_method :site_name, :locale_from_params
def site_name
- # XXX should come from database:
- site_name = "WhatDoTheyKnow"
- return site_name
+ site_name = MySociety::Config.get('SITE_NAME', 'Alaveteli')
+ return site_name
end
# Help work out which request causes RAM spike.
diff --git a/app/controllers/comment_controller.rb b/app/controllers/comment_controller.rb
index 4a0661f34..86d5b0a06 100644
--- a/app/controllers/comment_controller.rb
+++ b/app/controllers/comment_controller.rb
@@ -52,14 +52,15 @@ class CommentController < ApplicationController
end
if authenticated?(
- :web => "To post your annotation",
- :email => "Then your annotation to " + @info_request.title + " will be posted.",
- :email_subject => "Confirm your annotation to " + @info_request.title
+ :web => _("To post your annotation"),
+ :email => _("Then your annotation to {{info_request_title}} will be posted.",:info_request_title=>@info_request.title),
+ :email_subject => _("Confirm your annotation to {{info_request_title}}",:info_request_title=>@info_request.title)
)
# Also subscribe to track for this request, so they get updates
# (do this first, so definitely don't send alert)
- flash[:notice] = "Thank you for making an annotation!"
+ flash[:notice] = _("Thank you for making an annotation!")
+
if params[:subscribe_to_request]
@track_thing = TrackThing.create_track_for_request(@info_request)
@existing_track = TrackThing.find_by_existing_track(@user, @track_thing)
@@ -69,9 +70,9 @@ class CommentController < ApplicationController
@track_thing.track_medium = 'email_daily'
@track_thing.tracking_user_id = @user.id
@track_thing.save!
- flash[:notice] += " You will also be emailed updates about the request."
+ flash[:notice] += _(" You will also be emailed updates about the request.")
else
- flash[:notice] += " You are already being emailed updates about the request."
+ flash[:notice] += _(" You are already being emailed updates about the request.")
end
end
diff --git a/app/controllers/general_controller.rb b/app/controllers/general_controller.rb
index 47962d60a..6e5c8c3fd 100644
--- a/app/controllers/general_controller.rb
+++ b/app/controllers/general_controller.rb
@@ -20,23 +20,36 @@ class GeneralController < ApplicationController
# New, improved front page!
def frontpage
+
behavior_cache do
# get some example searches and public bodies to display
# either from config, or based on a (slow!) query if not set
body_short_names = MySociety::Config.get('FRONTPAGE_PUBLICBODY_EXAMPLES', '').split(/\s*;\s*/).map{|s| "'%s'" % s.gsub(/'/, "''") }.join(", ")
- if body_short_names.empty?
- # This is too slow
- @popular_bodies = PublicBody.find(:all, :select => "*, (select count(*) from info_requests where info_requests.public_body_id = public_bodies.id) as c", :order => "c desc", :limit => 32)
- else
- @popular_bodies = PublicBody.find(:all, :conditions => ["url_name in (" + body_short_names + ")"])
+ @locale = self.locale_from_params()
+ locale_condition = 'public_body_translations.locale = ?'
+ conditions = [locale_condition, @locale]
+ PublicBody.with_locale(@locale) do
+ if body_short_names.empty?
+ # This is too slow
+ @popular_bodies = PublicBody.find(:all,
+ :select => "public_bodies.*, (select count(*) from info_requests where info_requests.public_body_id = public_bodies.id) as c",
+ :order => "c desc",
+ :limit => 32,
+ :conditions => conditions,
+ :joins => :translations
+ )
+ else
+ conditions[0] += " and public_bodies.url_name in (" + body_short_names + ")"
+ @popular_bodies = PublicBody.find(:all,
+ :conditions => conditions,
+ :joins => :translations)
+ end
end
@search_examples = MySociety::Config.get('FRONTPAGE_SEARCH_EXAMPLES', '').split(/\s*;\s*/)
if @search_examples.empty?
@search_examples = @popular_bodies.map { |body| body.name }
end
-
-
# Get some successful requests #
begin
query = 'variety:response (status:successful OR status:partially_successful)'
@@ -53,23 +66,18 @@ class GeneralController < ApplicationController
# Display WhatDoTheyKnow category from mySociety blog
def blog
- feed_url = 'http://www.mysociety.org/category/projects/whatdotheyknow/feed/'
- content = open(feed_url).read
- @data = XmlSimple.xml_in(content)
- @channel = @data['channel'][0]
- @items = @channel['item']
-
- @feed_autodetect = [ { :url => feed_url, :title => "WhatDoTheyKnow blog"} ]
-
- twitter_url = 'http://api.twitter.com/1/statuses/user_timeline/whatdotheyknow.rss' # @whatdotheyknow
- content = open(twitter_url).read
- @data = XmlSimple.xml_in(content)
- @channel = @data['channel'][0]
- @items = @channel['item'] + @items
-
- @feed_autodetect += [ { :url => twitter_url, :title => "WhatDoTheyKnow tweets"} ]
-
- @items.sort! { |a,b| Time.parse(b['pubDate'][0]) <=> Time.parse(a['pubDate'][0]) }
+ @feed_autodetect = []
+ feed_url = MySociety::Config.get('BLOG_FEED', '')
+ if not feed_url.empty?
+ content = open(feed_url).read
+ @data = XmlSimple.xml_in(content)
+ @channel = @data['channel'][0]
+ @blog_items = @channel['item']
+ @feed_autodetect = [ { :url => feed_url, :title => "WhatDoTheyKnow blog"} ]
+ else
+ @blog_items = []
+ end
+ @twitter_user = MySociety::Config.get('TWITTER_USERNAME', '')
end
# Just does a redirect from ?query= search to /query
diff --git a/app/controllers/help_controller.rb b/app/controllers/help_controller.rb
index 5df701543..ab1ef5c5f 100644
--- a/app/controllers/help_controller.rb
+++ b/app/controllers/help_controller.rb
@@ -58,7 +58,7 @@ class HelpController < ApplicationController
@user,
@last_request, @last_body
)
- flash[:notice] = "Your message has been sent. Thank you for getting in touch! We'll get back to you soon."
+ flash[:notice] = _("Your message has been sent. Thank you for getting in touch! We'll get back to you soon.")
redirect_to frontpage_url
return
end
diff --git a/app/controllers/public_body_controller.rb b/app/controllers/public_body_controller.rb
index 4e5bf8ad7..c74959b17 100644
--- a/app/controllers/public_body_controller.rb
+++ b/app/controllers/public_body_controller.rb
@@ -20,7 +20,10 @@ class PublicBodyController < ApplicationController
PublicBody.with_locale(@locale) do
@public_body = PublicBody.find_by_url_name_with_historic(params[:url_name])
raise "None found" if @public_body.nil? # XXX proper 404
-
+ if @public_body.url_name.nil?
+ redirect_to :back
+ return
+ end
# If found by historic name, or alternate locale name, redirect to new name
if @public_body.url_name != params[:url_name]
redirect_to show_public_body_url(:url_name => @public_body.url_name)
@@ -70,7 +73,7 @@ class PublicBodyController < ApplicationController
render :template => "public_body/view_email"
return
end
- flash.now[:error] = "There was an error with the words you entered, please try again."
+ flash.now[:error] = _("There was an error with the words you entered, please try again.")
end
render :template => "public_body/view_email_captcha"
end
@@ -103,7 +106,7 @@ class PublicBodyController < ApplicationController
and has_tag_string_tags.name = ?) > 0', @locale, @tag]
end
if @tag.size == 1
- @description = "beginning with '" + @tag + "'"
+ @description = _("beginning with") + " '" + @tag + "'"
else
@description = PublicBodyCategories::CATEGORIES_BY_TAG[@tag]
if @description.nil?
diff --git a/app/controllers/request_controller.rb b/app/controllers/request_controller.rb
index 578e247d1..9fc0a4e26 100644
--- a/app/controllers/request_controller.rb
+++ b/app/controllers/request_controller.rb
@@ -12,6 +12,21 @@ class RequestController < ApplicationController
before_filter :check_read_only, :only => [ :new, :show_response, :describe_state, :upload_response ]
protect_from_forgery :only => [ :new, :show_response, :describe_state, :upload_response ] # See ActionController::RequestForgeryProtection for details
+ def load_custom_states
+ begin
+ # InfoRequestCustomStates may be `require`d in a theme
+ # plugin, or by a test
+ RequestController.send(:include, RequestControllerCustomStates)
+ @@custom_states_loaded = true
+ rescue NameError
+ @@custom_states_loaded = false
+ end
+ end
+
+ def initialize
+ self.load_custom_states
+ end
+
def show
@locale = self.locale_from_params()
PublicBody.with_locale(@locale) do
@@ -46,12 +61,13 @@ class RequestController < ApplicationController
if @update_status
return if !@is_owning_user && !authenticated_as_user?(@info_request.user,
- :web => "To update the status of this FOI request",
- :email => "Then you can update the status of your request to " + @info_request.public_body.name + ".",
- :email_subject => "Update the status of your request to " + @info_request.public_body.name
+ :web => _("To update the status of this FOI request"),
+ :email => _("Then you can update the status of your request to ") + @info_request.public_body.name + ".",
+ :email_subject => _("Update the status of your request to ") + @info_request.public_body.name
)
end
+
@last_info_request_event_id = @info_request.last_event_id_needing_description
@new_responses_count = @info_request.events_needing_description.select {|i| i.event_type == 'response'}.size
1
@@ -121,12 +137,12 @@ class RequestController < ApplicationController
end
if @view == 'recent'
- @title = "Recently sent Freedom of Information requests"
+ @title = _("Recently sent Freedom of Information requests")
query = "variety:sent";
sortby = "newest"
@track_thing = TrackThing.create_track_for_all_new_requests
elsif @view == 'successful'
- @title = "Recently successful responses"
+ @title = _("Recently successful responses")
query = 'variety:response (status:successful OR status:partially_successful)'
sortby = "described"
@track_thing = TrackThing.create_track_for_all_successful_requests
@@ -262,15 +278,15 @@ class RequestController < ApplicationController
message = ""
if @outgoing_message.contains_email?
if @user.nil?
- message += "<p>You do not need to include your email in the request in order to get a reply, as we will ask for it on the next screen (<a href=\"/help/privacy#email_address\">details</a>).</p>";
+ message += _("<p>You do not need to include your email in the request in order to get a reply, as we will ask for it on the next screen (<a href=\"%s\">details</a>).</p>") % [help_privacy_path+"#email_address"];
else
- message += "<p>You do not need to include your email in the request in order to get a reply (<a href=\"/help/privacy#email_address\">details</a>).</p>";
+ message += _("<p>You do not need to include your email in the request in order to get a reply (<a href=\"%s\">details</a>).</p>") % [help_privacy_path+"#email_address"];
end
- message += "<p>We recommend that you edit your request and remove the email address.
- If you leave it, the email address will be sent to the authority, but will not be displayed on the site.</p>"
+ message += _("<p>We recommend that you edit your request and remove the email address.
+ If you leave it, the email address will be sent to the authority, but will not be displayed on the site.</p>")
end
if @outgoing_message.contains_postcode?
- message += "<p>Your request contains a <strong>postcode</strong>. Unless it directly relates to the subject of your request, please remove any address as it will <strong>appear publicly on the Internet</strong>.</p>";
+ message += _("<p>Your request contains a <strong>postcode</strong>. Unless it directly relates to the subject of your request, please remove any address as it will <strong>appear publicly on the Internet</strong>.</p>");
end
if not message.empty?
flash.now[:error] = message
@@ -280,9 +296,9 @@ class RequestController < ApplicationController
end
if !authenticated?(
- :web => "To send your FOI request",
- :email => "Then your FOI request to " + @info_request.public_body.name + " will be sent.",
- :email_subject => "Confirm your FOI request to " + @info_request.public_body.name
+ :web => _("To send your FOI request"),
+ :email => _("Then your FOI request to {{public_body_name}} will be sent.",:public_body_name=>@info_request.public_body.name),
+ :email_subject => _("Confirm your FOI request to ") + @info_request.public_body.name
)
# do nothing - as "authenticated?" has done the redirect to signin page for us
return
@@ -293,11 +309,11 @@ class RequestController < ApplicationController
@info_request.save!
# XXX send_message needs the database id, so we send after saving, which isn't ideal if the request broke here.
@outgoing_message.send_message
- flash[:notice] = "<p>Your " + @info_request.law_used_full + " request has been <strong>sent on its way</strong>!</p>
+ flash[:notice] = _("<p>Your {{law_used_full}} request has been <strong>sent on its way</strong>!</p>
<p><strong>We will email you</strong> when there is a response, or after 20 working days if the authority still hasn't
replied by then.</p>
<p>If you write about this request (for example in a forum or a blog) please link to this page, and add an
- annotation below telling people about your writing.</p>"
+ annotation below telling people about your writing.</p>",:law_used_full=>@info_request.law_used_full)
redirect_to request_url(@info_request)
end
@@ -319,22 +335,22 @@ class RequestController < ApplicationController
# Check authenticated, and parameters set. We check is_owning_user
# to get admin overrides (see is_owning_user? above)
if !@old_unclassified && !@is_owning_user && !authenticated_as_user?(@info_request.user,
- :web => "To classify the response to this FOI request",
- :email => "Then you can classify the FOI response you have got from " + @info_request.public_body.name + ".",
- :email_subject => "Classify an FOI response from " + @info_request.public_body.name
+ :web => _("To classify the response to this FOI request"),
+ :email => _("Then you can classify the FOI response you have got from ") + @info_request.public_body.name + ".",
+ :email_subject => _("Classify an FOI response from ") + @info_request.public_body.name
)
# do nothing - as "authenticated?" has done the redirect to signin page for us
return
end
if !params[:incoming_message]
- flash[:error] = "Please choose whether or not you got some of the information that you wanted."
+ flash[:error] = _("Please choose whether or not you got some of the information that you wanted.")
redirect_to request_url(@info_request)
return
end
if params[:last_info_request_event_id].to_i != @last_info_request_event_id
- flash[:error] = "The request has been updated since you originally loaded this page. Please check for any new incoming messages below, and try again."
+ flash[:error] = _("The request has been updated since you originally loaded this page. Please check for any new incoming messages below, and try again.")
redirect_to request_url(@info_request)
return
end
@@ -360,66 +376,71 @@ class RequestController < ApplicationController
# Don't give advice on what to do next, as it isn't their request
RequestMailer.deliver_old_unclassified_updated(@info_request)
if session[:request_game]
- flash[:notice] = 'Thank you for updating the status of the request \'<a href="' + CGI.escapeHTML(request_url(@info_request)) + '">' + CGI.escapeHTML(@info_request.title) + '</a>\'. There are some more requests below for you to classify.'
+ flash[:notice] = _('Thank you for updating the status of the request \'<a href="%s">{{info_request_title}}</a>\'. There are some more requests below for you to classify.',:info_request_title=>CGI.escapeHTML(@info_request.title)) % [CGI.escapeHTML(request_url(@info_request))]
redirect_to play_url
else
- flash[:notice] = 'Thank you for updating this request!'
+ flash[:notice] = _('Thank you for updating this request!')
redirect_to request_url(@info_request)
end
return
end
-
+
# Display advice for requester on what to do next, as appropriate
if @info_request.calculate_status == 'waiting_response'
- flash[:notice] = "<p>Thank you! Hopefully your wait isn't too long.</p> <p>By law, you should get a response promptly, and " + (@info_request.public_body.is_school? ? "in term time" : "") + " normally before the end of <strong>" + simple_date(@info_request.date_response_required_by) + "</strong>.</p>"
+ flash[:notice] = _("<p>Thank you! Hopefully your wait isn't too long.</p> <p>By law, you should get a response promptly, and normally before the end of <strong>
+{{date_response_required_by}}</strong>.</p>",:date_response_required_by=>simple_date(@info_request.date_response_required_by))
redirect_to request_url(@info_request)
elsif @info_request.calculate_status == 'waiting_response_overdue'
- flash[:notice] = "<p>Thank you! Hope you don't have to wait much longer.</p> <p>By law, you should have got a response promptly, and " + (@info_request.public_body.is_school? ? "in term time" : "") + " normally before the end of <strong>" + simple_date(@info_request.date_response_required_by) + "</strong>.</p>"
+ flash[:notice] = _("<p>Thank you! Hope you don't have to wait much longer.</p> <p>By law, you should have got a response promptly, and normally before the end of <strong>{{date_response_required_by}}</strong>.</p>",:date_response_required_by=>simple_date(@info_request.date_response_required_by))
redirect_to request_url(@info_request)
elsif @info_request.calculate_status == 'waiting_response_very_overdue'
- flash[:notice] = "<p>Thank you! Your request is long overdue, by more than 40 working days. Most requests should be answered within 20 working days. You might like to complain about this, see below.</p>"
+ flash[:notice] = _("<p>Thank you! Your request is long overdue, by more than 40 working days. Most requests should be answered within 20 working days. You might like to complain about this, see below.</p>")
redirect_to unhappy_url(@info_request)
elsif @info_request.calculate_status == 'not_held'
- flash[:notice] = "<p>Thank you! Here are some ideas on what to do next:</p>
+ flash[:notice] = _("<p>Thank you! Here are some ideas on what to do next:</p>
<ul>
- <li>To send your request to another authority, first copy the text of your request below, then <a href=\"/new\">find the other authority</a>.</li>
+ <li>To send your request to another authority, first copy the text of your request below, then <a href=\"%s\">find the other authority</a>.</li>
<li>If you would like to contest the authority's claim that they do not hold the information, here is
- <a href=\"" + CGI.escapeHTML(unhappy_url(@info_request)) + "\">how to complain</a>.
+ <a href=\"%s\">how to complain</a>.
</li>
- <li>We have <a href=\"" + CGI.escapeHTML(unhappy_url(@info_request)) + "#other_means\">suggestions</a>
+ <li>We have <a href=\"%s\">suggestions</a>
on other means to answer your question.
</li>
</ul>
- "
+ ") % ["/new",CGI.escapeHTML(unhappy_url(@info_request)),CGI.escapeHTML(unhappy_url(@info_request)) + "#other_means"]
redirect_to request_url(@info_request)
elsif @info_request.calculate_status == 'rejected'
- flash[:notice] = "Oh no! Sorry to hear that your request was refused. Here is what to do now."
+ flash[:notice] = _("Oh no! Sorry to hear that your request was refused. Here is what to do now.")
redirect_to unhappy_url(@info_request)
elsif @info_request.calculate_status == 'successful'
- flash[:notice] = "<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><p>If you found WhatDoTheyKnow useful, <a href=\"http://www.mysociety.org/donate/\">make a donation</a> to the charity which runs it.</p>"
+ flash[:notice] = _("<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><p>If you found WhatDoTheyKnow useful, <a href=\"%s\">make a donation</a> to the charity which runs it.</p>") % ["http://www.mysociety.org/donate/"]
redirect_to request_url(@info_request)
elsif @info_request.calculate_status == 'partially_successful'
- flash[:notice] = "<p>We're glad you got some of the information that you wanted. If you found WhatDoTheyKnow useful, <a href=\"http://www.mysociety.org/donate/\">make a donation</a> to the charity which runs it.</p><p>If you want to try and get the rest of the information, here's what to do now.</p>"
+ flash[:notice] = _("<p>We're glad you got some of the information that you wanted. If you found WhatDoTheyKnow useful, <a href=\"%s\">make a donation</a> to the charity which runs it.</p><p>If you want to try and get the rest of the information, here's what to do now.</p>") % ["http://www.mysociety.org/donate/"]
redirect_to unhappy_url(@info_request)
elsif @info_request.calculate_status == 'waiting_clarification'
- flash[:notice] = "Please write your follow up message containing the necessary clarifications below."
+ flash[:notice] = _("Please write your follow up message containing the necessary clarifications below.")
redirect_to respond_to_last_url(@info_request)
elsif @info_request.calculate_status == 'gone_postal'
redirect_to respond_to_last_url(@info_request) + "?gone_postal=1"
elsif @info_request.calculate_status == 'internal_review'
- flash[:notice] = "<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within 20 days, or be told if it will take longer (<a href=\"" + unhappy_url(@info_request) + "#internal_review\">details</a>).</p>"
+ flash[:notice] = _("<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within 20 days, or be told if it will take longer (<a href=\"%s\">details</a>).</p>") % [unhappy_url(@info_request) + "#internal_review"]
redirect_to request_url(@info_request)
elsif @info_request.calculate_status == 'error_message'
- flash[:notice] = "<p>Thank you! We'll look into what happened and try and fix it up.</p><p>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.</p>"
+ flash[:notice] = _("<p>Thank you! We'll look into what happened and try and fix it up.</p><p>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.</p>")
redirect_to help_general_url(:action => 'contact')
elsif @info_request.calculate_status == 'requires_admin'
- flash[:notice] = "Please use the form below to tell us more."
+ flash[:notice] = _("Please use the form below to tell us more.")
redirect_to help_general_url(:action => 'contact')
elsif @info_request.calculate_status == 'user_withdrawn'
- flash[:notice] = "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."
+ flash[:notice] = _("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.")
redirect_to respond_to_last_url(@info_request)
else
- raise "unknown calculate_status " + @info_request.calculate_status
+ if @@custom_states_loaded
+ return self.theme_describe_state(@info_request)
+ else
+ raise "unknown calculate_status " + @info_request.calculate_status
+ end
end
end
@@ -517,24 +538,24 @@ class RequestController < ApplicationController
# message and wasting their time if they are not the requester.
if !authenticated_as_user?(@info_request.user,
:web => @incoming_message.nil? ?
- "To send a follow up message to " + @info_request.public_body.name :
- "To reply to " + @info_request.public_body.name,
+ _("To send a follow up message to ") + @info_request.public_body.name :
+ _("To reply to ") + @info_request.public_body.name,
:email => @incoming_message.nil? ?
- "Then you can write follow up message to " + @info_request.public_body.name + "." :
- "Then you can write your reply to " + @info_request.public_body.name + ".",
+ _("Then you can write follow up message to ") + @info_request.public_body.name + "." :
+ _("Then you can write your reply to ") + @info_request.public_body.name + ".",
:email_subject => @incoming_message.nil? ?
- "Write your FOI follow up message to " + @info_request.public_body.name :
- "Write a reply to " + @info_request.public_body.name
+ _("Write your FOI follow up message to ") + @info_request.public_body.name :
+ _("Write a reply to ") + @info_request.public_body.name
)
return
end
if !params[:submitted_followup].nil? && !params[:reedit]
if @info_request.allow_new_responses_from == 'nobody'
- flash[:error] = 'Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href="/help/contact">contact us</a> if you really want to send a follow up message.'
+ flash[:error] = _('Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href="%s">contact us</a> if you really want to send a follow up message.') % [help_contact_path]
else
if @info_request.find_existing_outgoing_message(params[:outgoing_message][:body])
- flash[:error] = 'You previously submitted that exact follow up message for this request.'
+ flash[:error] = _('You previously submitted that exact follow up message for this request.')
render :action => 'show_response'
return
end
@@ -557,9 +578,9 @@ class RequestController < ApplicationController
@outgoing_message.send_message
@outgoing_message.save!
if @outgoing_message.what_doing == 'internal_review'
- flash[:notice] = "Your internal review request has been sent on its way."
+ flash[:notice] = _("Your internal review request has been sent on its way.")
else
- flash[:notice] = "Your follow up message has been sent on its way."
+ flash[:notice] = _("Your follow up message has been sent on its way.")
end
redirect_to request_url(@info_request)
end
@@ -676,9 +697,9 @@ class RequestController < ApplicationController
@info_request = InfoRequest.find_by_url_title(params[:url_title])
@reason_params = {
- :web => "To upload a response, you must be logged in using an email address from " + CGI.escapeHTML(@info_request.public_body.name),
- :email => "Then you can upload an FOI response. ",
- :email_subject => "Confirm your account on WhatDoTheyKnow.com"
+ :web => _("To upload a response, you must be logged in using an email address from ") + CGI.escapeHTML(@info_request.public_body.name),
+ :email => _("Then you can upload an FOI response. "),
+ :email_subject => _("Confirm your account on {{site_name}}",:site_name=>site_name)
}
if !authenticated?(@reason_params)
return
@@ -705,13 +726,13 @@ class RequestController < ApplicationController
body = params[:body] || ""
if file_name.nil? && body.empty?
- flash[:error] = "Please type a message and/or choose a file containing your response."
+ flash[:error] = _("Please type a message and/or choose a file containing your response.")
return
end
mail = RequestMailer.create_fake_response(@info_request, @user, body, file_name, file_content)
@info_request.receive(mail, mail.encoded, true)
- flash[:notice] = "Thank you for responding to this FOI request! Your response has been published below, and a link to your response has been emailed to " + CGI.escapeHTML(@info_request.user.name) + "."
+ flash[:notice] = _("Thank you for responding to this FOI request! Your response has been published below, and a link to your response has been emailed to ") + CGI.escapeHTML(@info_request.user.name) + "."
redirect_to request_url(@info_request)
return
end
diff --git a/app/controllers/request_game_controller.rb b/app/controllers/request_game_controller.rb
index 0d70a2e03..b9440a906 100644
--- a/app/controllers/request_game_controller.rb
+++ b/app/controllers/request_game_controller.rb
@@ -20,7 +20,7 @@ class RequestGameController < ApplicationController
@requests = old.sort_by{ rand }.slice(0..2)
if @missing == 0
- flash[:notice] = '<p>All done! Thank you very much for your help.</p><p>There are <a href="/help/credits#helpus">more things you can do</a> to help WhatDoTheyKnow.</p>'
+ flash[:notice] = _('<p>All done! Thank you very much for your help.</p><p>There are <a href="%s">more things you can do</a> to help WhatDoTheyKnow.</p>') % [help_credits_path+"#helpus"]
end
@league_table_28_days = InfoRequestEvent.make_league_table(
@@ -35,9 +35,9 @@ class RequestGameController < ApplicationController
def show
url_title = params[:url_title]
if !authenticated?(
- :web => "To play the request categorisation game",
- :email => "Then you can play the request categorisation game.",
- :email_subject => "Play the request categorisation game"
+ :web => _("To play the request categorisation game"),
+ :email => _("Then you can play the request categorisation game."),
+ :email_subject => _("Play the request categorisation game")
)
# do nothing - as "authenticated?" has done the redirect to signin page for us
return
@@ -47,7 +47,7 @@ class RequestGameController < ApplicationController
def stop
session[:request_game] = nil
- flash[:notice] = 'Thank you for helping us keep the site tidy!'
+ flash[:notice] = _('Thank you for helping us keep the site tidy!')
redirect_to frontpage_url
end
diff --git a/app/controllers/track_controller.rb b/app/controllers/track_controller.rb
index e262db099..10b3418bd 100644
--- a/app/controllers/track_controller.rb
+++ b/app/controllers/track_controller.rb
@@ -93,7 +93,7 @@ class TrackController < ApplicationController
if @user
@existing_track = TrackThing.find_by_existing_track(@user, @track_thing)
if @existing_track
- flash[:notice] = "You are already being emailed updates about " + @track_thing.params[:list_description]
+ flash[:notice] = _("You are already being emailed updates about ") + @track_thing.params[:list_description]
return true
end
end
@@ -106,7 +106,7 @@ class TrackController < ApplicationController
@track_thing.tracking_user_id = @user.id
@track_thing.save!
- flash[:notice] = "You will now be emailed updates about " + @track_thing.params[:list_description]
+ flash[:notice] = _("You will now be emailed updates about ") + @track_thing.params[:list_description]
return true
end
@@ -138,9 +138,9 @@ class TrackController < ApplicationController
track_thing = TrackThing.find(params[:track_id].to_i)
if not authenticated_as_user?(track_thing.tracking_user,
- :web => "To cancel this alert",
- :email => "Then you can cancel the alert.",
- :email_subject => "Cancel a WhatDoTheyKnow alert"
+ :web => _("To cancel this alert"),
+ :email => _("Then you can cancel the alert."),
+ :email_subject => _("Cancel a {{site_name}} alert",:site_name=>site_name)
)
# do nothing - as "authenticated?" has done the redirect to signin page for us
return
@@ -149,7 +149,7 @@ class TrackController < ApplicationController
new_medium = params[:track_medium]
if new_medium == 'delete'
track_thing.destroy
- flash[:notice] = "You will no longer be emailed updates about " + track_thing.params[:list_description]
+ flash[:notice] = _("You will no longer be emailed updates about ") + track_thing.params[:list_description]
redirect_to params[:r]
# Reuse code like this if we let medium change again.
#elsif new_medium == 'email_daily'
@@ -168,9 +168,9 @@ class TrackController < ApplicationController
user_id = User.find(params[:user].to_i)
if not authenticated_as_user?(user_id,
- :web => "To cancel these alerts",
- :email => "Then you can cancel the alerts.",
- :email_subject => "Cancel some WhatDoTheyKnow alerts"
+ :web => _("To cancel these alerts"),
+ :email => _("Then you can cancel the alerts."),
+ :email_subject => _("Cancel some {{site_name}} alerts",:site_name=>site_name)
)
# do nothing - as "authenticated?" has done the redirect to signin page for us
return
@@ -178,7 +178,7 @@ class TrackController < ApplicationController
track_type = params[:track_type]
- flash[:notice] = "You will no longer be emailed updates for those alerts"
+ flash[:notice] = _("You will no longer be emailed updates for those alerts")
for track_thing in TrackThing.find(:all, :conditions => [ "track_type = ? and tracking_user_id = ?", track_type, user_id ])
track_thing.destroy
end
diff --git a/app/controllers/user_controller.rb b/app/controllers/user_controller.rb
index a2348bb08..2e3f6c9e0 100644
--- a/app/controllers/user_controller.rb
+++ b/app/controllers/user_controller.rb
@@ -185,7 +185,7 @@ class UserController < ApplicationController
if params[:submitted_signchangepassword_send_confirm]
# They've entered the email, check it is OK and user exists
if not MySociety::Validate.is_valid_email(params[:signchangepassword][:email])
- flash[:error] = "That doesn't look like a valid email address. Please check you have typed it correctly."
+ flash[:error] = _("That doesn't look like a valid email address. Please check you have typed it correctly.")
render :action => 'signchangepassword_send_confirm'
return
end
@@ -199,8 +199,8 @@ class UserController < ApplicationController
post_redirect = PostRedirect.new(:uri => url , :post_params => {},
:reason_params => {
:web => "",
- :email => "Then you can change your password on WhatDoTheyKnow.com",
- :email_subject => "Change your password on WhatDoTheyKnow.com"
+ :email => _("Then you can change your password on {{site_name}}",:site_name=>site_name),
+ :email_subject => _("Change your password {{site_name}}",:site_name=>site_name)
},
:circumstance => "change_password" # special login that lets you change your password
)
@@ -227,7 +227,7 @@ class UserController < ApplicationController
render :action => 'signchangepassword'
else
@user.save!
- flash[:notice] = "Your password has been changed."
+ flash[:notice] = _("Your password has been changed.")
if params[:pretoken] and not params[:pretoken].empty?
post_redirect = PostRedirect.find_by_token(params[:pretoken])
do_post_redirect post_redirect
@@ -244,9 +244,9 @@ class UserController < ApplicationController
# Change your email
def signchangeemail
if not authenticated?(
- :web => "To change your email address used on WhatDoTheyKnow.com",
- :email => "Then you can change your email address used on WhatDoTheyKnow.com",
- :email_subject => "Change your email address used on WhatDoTheyKnow.com"
+ :web => _("To change your email address used on {{site_name}}",:site_name=>site_name),
+ :email => _("Then you can change your email address used on {{site_name}}",:site_name=>site_name),
+ :email_subject => _("Change your email address used on {{site_name}}",:site_name=>site_name)
)
# "authenticated?" has done the redirect to signin page for us
return
@@ -306,7 +306,7 @@ class UserController < ApplicationController
# Now clear the circumstance
session[:user_circumstance] = nil
- flash[:notice] = "You have now changed your email address used on WhatDoTheyKnow.com"
+ flash[:notice] = _("You have now changed your email address used on {{site_name}}",:site_name=>site_name)
redirect_to user_url(@user)
end
@@ -325,9 +325,9 @@ class UserController < ApplicationController
# partly to avoid spam, and partly to have some equanimity of openess
# between the two users)
if not authenticated?(
- :web => "To send a message to " + CGI.escapeHTML(@recipient_user.name),
- :email => "Then you can send a message to " + @recipient_user.name + ".",
- :email_subject => "Send a message to " + @recipient_user.name
+ :web => _("To send a message to ") + CGI.escapeHTML(@recipient_user.name),
+ :email => _("Then you can send a message to ") + @recipient_user.name + ".",
+ :email_subject => _("Send a message to ") + @recipient_user.name
)
# "authenticated?" has done the redirect to signin page for us
return
@@ -345,13 +345,13 @@ class UserController < ApplicationController
params[:contact][:subject],
params[:contact][:message]
)
- flash[:notice] = "Your message to " + CGI.escapeHTML(@recipient_user.name) + " has been sent!"
+ flash[:notice] = _("Your message to {{recipient_user_name}} has been sent!",:recipient_user_name=>CGI.escapeHTML(@recipient_user.name))
redirect_to user_url(@recipient_user)
return
end
else
@contact = ContactValidator.new(
- { :message => "" + @recipient_user.name + ",\n\n\n\nYours,\n\n" + @user.name }
+ { :message => "" + @recipient_user.name + _(",\n\n\n\nYours,\n\n{{user_name}}",:user_name=>@user.name) }
)
end
@@ -367,7 +367,7 @@ class UserController < ApplicationController
def set_profile_photo
# check they are logged in (the upload photo option is anyway only available when logged in)
if authenticated_user.nil?
- flash[:error] = "You need to be logged in to change your profile photo."
+ flash[:error] = _("You need to be logged in to change your profile photo.")
redirect_to frontpage_url
return
end
@@ -394,7 +394,7 @@ class UserController < ApplicationController
@profile_photo = ProfilePhoto.new(:data => @draft_profile_photo.data, :draft => false)
@user.set_profile_photo(@profile_photo)
@draft_profile_photo.destroy
- flash[:notice] = "Thank you for updating your profile photo"
+ flash[:notice] = _("Thank you for updating your profile photo")
redirect_to user_url(@user)
return
end
@@ -410,11 +410,11 @@ class UserController < ApplicationController
draft_profile_photo.destroy
if !@user.get_about_me_for_html_display.empty?
- flash[:notice] = "Thank you for updating your profile photo"
+ flash[:notice] = _("Thank you for updating your profile photo")
redirect_to user_url(@user)
else
- flash[:notice] = "<p>Thanks for updating your profile photo.</p>
- <p><strong>Next...</strong> You can put some text about you and your research on your profile.</p>"
+ flash[:notice] = _("<p>Thanks for updating your profile photo.</p>
+ <p><strong>Next...</strong> You can put some text about you and your research on your profile.</p>")
redirect_to set_profile_about_me_url()
end
else
@@ -429,7 +429,7 @@ class UserController < ApplicationController
# check they are logged in (the upload photo option is anyway only available when logged in)
if authenticated_user.nil?
- flash[:error] = "You need to be logged in to clear your profile photo."
+ flash[:error] = _("You need to be logged in to clear your profile photo.")
redirect_to frontpage_url
return
end
@@ -438,7 +438,7 @@ class UserController < ApplicationController
@user.profile_photo.destroy
end
- flash[:notice] = "You've now cleared your profile photo"
+ flash[:notice] = _("You've now cleared your profile photo")
redirect_to user_url(@user)
end
@@ -466,7 +466,7 @@ class UserController < ApplicationController
# Change about me text on your profile page
def set_profile_about_me
if authenticated_user.nil?
- flash[:error] = "You need to be logged in to change the text about you on your profile."
+ flash[:error] = _("You need to be logged in to change the text about you on your profile.")
redirect_to frontpage_url
return
end
@@ -488,11 +488,11 @@ class UserController < ApplicationController
@user.about_me = @about_me.about_me
@user.save!
if @user.profile_photo
- flash[:notice] = "You have now changed the text about you on your profile."
+ flash[:notice] = _("You have now changed the text about you on your profile.")
redirect_to user_url(@user)
else
- flash[:notice] = "<p>Thanks for changing the text about you on your profile.</p>
- <p><strong>Next...</strong> You can upload a profile photograph too.</p>"
+ flash[:notice] = _("<p>Thanks for changing the text about you on your profile.</p>
+ <p><strong>Next...</strong> You can upload a profile photograph too.</p>")
redirect_to set_profile_photo_url()
end
end
@@ -510,8 +510,8 @@ class UserController < ApplicationController
@post_redirect = PostRedirect.new(:uri => params[:r], :post_params => {},
:reason_params => {
:web => "",
- :email => "Then you can sign in to WhatDoTheyKnow.com",
- :email_subject => "Confirm your account on WhatDoTheyKnow.com"
+ :email => _("Then you can sign in to {{site_name}}",:site_name=>site_name),
+ :email_subject => _("Confirm your account on {{site_name}}",:site_name=>site_name)
})
@post_redirect.save!
params[:token] = @post_redirect.token
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index e46404a72..9bdcb98cd 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -6,6 +6,7 @@
# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
#
# $Id: application_helper.rb,v 1.22 2008-07-09 07:24:50 francis Exp $
+require 'languages'
module ApplicationHelper
# URL generating functions are needed by all controllers (for redirects),
@@ -66,6 +67,10 @@ module ApplicationHelper
t = highlight_words(t, words, html)
return t
end
+
+ def locale_name(locale)
+ return LanguageNames::get_language_name(locale)
+ end
# Use our own algorithm for finding path of cache
def foi_cache(name = {}, options = nil, &block)
diff --git a/app/helpers/link_to_helper.rb b/app/helpers/link_to_helper.rb
index 85913b12e..935912a61 100644..100755
--- a/app/helpers/link_to_helper.rb
+++ b/app/helpers/link_to_helper.rb
@@ -162,7 +162,7 @@ module LinkToHelper
# Admin pages
def admin_url(relative_path)
- admin_url_prefix = MySociety::Config.get("ADMIN_BASE_URL", "/admin/")
+ admin_url_prefix = admin_general_index_path+"/"
return admin_url_prefix + relative_path
end
@@ -203,6 +203,6 @@ module LinkToHelper
params['locale'] = locale
return url_for(params)
end
-
+
end
diff --git a/app/models/about_me_validator.rb b/app/models/about_me_validator.rb
index f7b88f7dd..ec2b03201 100644
--- a/app/models/about_me_validator.rb
+++ b/app/models/about_me_validator.rb
@@ -21,7 +21,7 @@ class AboutMeValidator < ActiveRecord::BaseWithoutTable
def validate
if !self.about_me.blank? && self.about_me.size > 500
- errors.add(:about_me, N_("Please keep it shorter than 500 characters"))
+ errors.add(_("Please keep it shorter than 500 characters"))
end
end
diff --git a/app/models/application_mailer.rb b/app/models/application_mailer.rb
index 8ee467b60..508ff2016 100644
--- a/app/models/application_mailer.rb
+++ b/app/models/application_mailer.rb
@@ -15,7 +15,9 @@ class ApplicationMailer < ActionMailer::Base
self.raise_delivery_errors = true
def contact_from_name_and_email
- "WhatDoTheyKnow <"+MySociety::Config.get("CONTACT_EMAIL", 'contact@localhost')+">"
+ contact_name = MySociety::Config.get("CONTACT_NAME", 'contact@localhost')
+ contact_email = MySociety::Config.get("CONTACT_EMAIL", 'Alaveteli')
+ return "#{contact_name} <#{contact_email}>"
end
def blackhole_email
diff --git a/app/models/change_email_validator.rb b/app/models/change_email_validator.rb
index 5cead4b4c..f7ec6d17e 100644
--- a/app/models/change_email_validator.rb
+++ b/app/models/change_email_validator.rb
@@ -36,21 +36,21 @@ class ChangeEmailValidator < ActiveRecord::BaseWithoutTable
def validate
if !self.old_email.blank? && !MySociety::Validate.is_valid_email(self.old_email)
- errors.add(:old_email, "Old email doesn't look like a valid address")
+ errors.add(:old_email, _("Old email doesn't look like a valid address"))
end
if !errors[:old_email]
if self.old_email.downcase != self.logged_in_user.email.downcase
- errors.add(:old_email, "Old email address isn't the same as the address of the account you are logged in with")
+ errors.add(:old_email, _("Old email address isn't the same as the address of the account you are logged in with"))
elsif (!self.changing_email) && (!self.logged_in_user.has_this_password?(self.password))
if !errors[:password]
- errors.add(:password, "Password is not correct")
+ errors.add(:password, _("Password is not correct"))
end
end
end
if !self.new_email.blank? && !MySociety::Validate.is_valid_email(self.new_email)
- errors.add(:new_email, "New email doesn't look like a valid address")
+ errors.add(:new_email, _("New email doesn't look like a valid address"))
end
end
diff --git a/app/models/comment.rb b/app/models/comment.rb
index 3d69b1108..b7ece9ba9 100644
--- a/app/models/comment.rb
+++ b/app/models/comment.rb
@@ -56,10 +56,10 @@ class Comment < ActiveRecord::Base
# Check have edited comment
def validate
if self.body.empty? || self.body =~ /^\s+$/
- errors.add(:body, N_("Please enter your annotation"))
+ errors.add(:body, _("Please enter your annotation"))
end
if !MySociety::Validate.uses_mixed_capitals(self.body)
- errors.add(:body, N_('Please write your annotation using a mixture of capital and lower case letters. This makes it easier for others to read.'))
+ errors.add(:body, _('Please write your annotation using a mixture of capital and lower case letters. This makes it easier for others to read.'))
end
end
diff --git a/app/models/contact_validator.rb b/app/models/contact_validator.rb
index 9d8c54095..0bc562835 100644
--- a/app/models/contact_validator.rb
+++ b/app/models/contact_validator.rb
@@ -31,7 +31,7 @@ class ContactValidator < ActiveRecord::BaseWithoutTable
validates_presence_of :message, :message => N_("Please enter the message you want to send")
def validate
- errors.add(:email, "Email doesn't look like a valid address") unless MySociety::Validate.is_valid_email(self.email)
+ errors.add(:email, _("Email doesn't look like a valid address")) unless MySociety::Validate.is_valid_email(self.email)
end
end
diff --git a/app/models/info_request.rb b/app/models/info_request.rb
index cab28b8f1..16e66c44a 100644
--- a/app/models/info_request.rb
+++ b/app/models/info_request.rb
@@ -53,19 +53,7 @@ class InfoRequest < ActiveRecord::Base
has_tag_string
# user described state (also update in info_request_event, admin_request/edit.rhtml)
- validates_inclusion_of :described_state, :in => [
- 'waiting_response',
- 'waiting_clarification',
- 'gone_postal',
- 'not_held',
- 'rejected', # this is called 'refused' in UK FOI law and the user interface, but 'rejected' internally for historic reasons
- 'successful',
- 'partially_successful',
- 'internal_review',
- 'error_message',
- 'requires_admin',
- 'user_withdrawn'
- ]
+ validate :must_be_valid_state
validates_inclusion_of :prominence, :in => [
'normal',
@@ -92,6 +80,31 @@ class InfoRequest < ActiveRecord::Base
'blackhole' # just dump them
]
+ def enumerate_states
+ states = [
+ 'waiting_response',
+ 'waiting_clarification',
+ 'gone_postal',
+ 'not_held',
+ 'rejected', # this is called 'refused' in UK FOI law and the user interface, but 'rejected' internally for historic reasons
+ 'successful',
+ 'partially_successful',
+ 'internal_review',
+ 'error_message',
+ 'requires_admin',
+ 'user_withdrawn'
+ ]
+
+ if @@custom_states_loaded
+ states += self.theme_extra_states
+ end
+ states
+ end
+
+ def must_be_valid_state
+ errors.add(:described_state, "is not a valid state") if
+ !self.enumerate_states.include? described_state
+ end
# only check on create, so existing models with mixed case are allowed
def validate_on_create
if !self.title.nil? && !MySociety::Validate.uses_mixed_capitals(self.title, 10)
@@ -108,6 +121,7 @@ class InfoRequest < ActiveRecord::Base
OLD_AGE_IN_DAYS = 21.days
def after_initialize
+ self.load_custom_states
if self.described_state.nil?
self.described_state = 'waiting_response'
end
@@ -117,6 +131,17 @@ class InfoRequest < ActiveRecord::Base
end
end
+ def load_custom_states
+ begin
+ # InfoRequestCustomStates may be `require`d in a theme
+ # plugin, or by a test
+ InfoRequest.send(:include, InfoRequestCustomStates)
+ @@custom_states_loaded = true
+ rescue NameError
+ @@custom_states_loaded = false
+ end
+ end
+
def visible_comments
self.comments.find(:all, :conditions => 'visible')
end
@@ -510,6 +535,14 @@ public
# waiting_response_overdue
# waiting_response_very_overdue
def calculate_status
+ if @@custom_states_loaded
+ return self.theme_calculate_status
+ else
+ self.base_calculate_status
+ end
+ end
+
+ def base_calculate_status
return 'waiting_classification' if self.awaiting_description
return described_state unless self.described_state == "waiting_response"
# Compare by date, so only overdue on next day, not if 1 second late
@@ -607,7 +640,8 @@ public
# last_event_forming_initial_request. There may be more obscure
# things, e.g. fees, not properly covered.
def date_response_required_by
- return Holiday.due_date_from(self.date_initial_request_last_sent_at, 20)
+ days_later = MySociety::Config.get('REPLY_LATE_AFTER_DAYS', 20)
+ return Holiday.due_date_from(self.date_initial_request_last_sent_at, days_later)
end
# This is a long stop - even with UK public interest test extensions, 40
# days is a very long time.
@@ -741,35 +775,39 @@ public
def display_status
status = self.calculate_status
if status == 'waiting_classification'
- "Awaiting classification."
+ _("Awaiting classification.")
elsif status == 'waiting_response'
- "Awaiting response."
+ _("Awaiting response.")
elsif status == 'waiting_response_overdue'
- "Delayed."
+ _("Delayed.")
elsif status == 'waiting_response_very_overdue'
- "Long overdue."
+ _("Long overdue.")
elsif status == 'not_held'
- "Information not held."
+ _("Information not held.")
elsif status == 'rejected'
- "Refused."
+ _("Refused.")
elsif status == 'partially_successful'
- "Partially successful."
+ _("Partially successful.")
elsif status == 'successful'
- "Successful."
+ _("Successful.")
elsif status == 'waiting_clarification'
- "Waiting clarification."
+ _("Waiting clarification.")
elsif status == 'gone_postal'
- "Handled by post."
+ _("Handled by post.")
elsif status == 'internal_review'
- "Awaiting internal review."
+ _("Awaiting internal review.")
elsif status == 'error_message'
- "Delivery error"
+ _("Delivery error")
elsif status == 'requires_admin'
- "Unusual response."
+ _("Unusual response.")
elsif status == 'user_withdrawn'
- "Withdrawn by the requester."
+ _("Withdrawn by the requester.")
else
- raise "unknown status " + status
+ begin
+ return self.theme_display_status(status)
+ rescue NoMethodError
+ raise _("unknown status ") + status
+ end
end
end
diff --git a/app/models/info_request_event.rb b/app/models/info_request_event.rb
index 1b22fa547..02b9a34ac 100644
--- a/app/models/info_request_event.rb
+++ b/app/models/info_request_event.rb
@@ -62,6 +62,8 @@ class InfoRequestEvent < ActiveRecord::Base
'waiting_response',
'waiting_clarification',
'gone_postal',
+ 'deadline_extended',
+ 'wrong_response',
'not_held',
'rejected',
'successful',
@@ -283,27 +285,31 @@ class InfoRequestEvent < ActiveRecord::Base
status = self.calculated_state
if !status.nil?
if status == 'waiting_response'
- return "Acknowledgement"
+ return _("Acknowledgement")
elsif status == 'waiting_clarification'
- return "Clarification required"
+ return _("Clarification required")
elsif status == 'gone_postal'
- return "Handled by post"
+ return _("Handled by post")
+ elsif status == 'deadline_extended'
+ return _("Deadline Extended")
+ elsif status == 'wrong_response'
+ return _("Wrong Response")
elsif status == 'not_held'
- return "Information not held"
+ return _("Information not held")
elsif status == 'rejected'
- return "Refused"
+ return _("Refused")
elsif status == 'partially_successful'
- return "Some information sent"
+ return _("Some information sent")
elsif status == 'successful'
- return "All information sent"
+ return _("All information sent")
elsif status == 'internal_review'
- return "Internal review acknowledgement"
+ return _("Internal review acknowledgement")
elsif status == 'user_withdrawn'
- return "Withdrawn by requester"
+ return _("Withdrawn by requester")
elsif status == 'error_message'
- return "Delivery error"
+ return _("Delivery error")
elsif status == 'requires_admin'
- return "Unusual response"
+ return _("Unusual response")
end
raise "unknown status " + status
end
@@ -314,17 +320,17 @@ class InfoRequestEvent < ActiveRecord::Base
status = self.calculated_state
if !status.nil?
if status == 'internal_review'
- return "Internal review request"
+ return _("Internal review request")
end
if status == 'waiting_response'
- return "Clarification"
+ return _("Clarification")
end
- raise "unknown status " + status
+ raise _("unknown status ") + status
end
- return "Follow up"
+ return _("Follow up")
end
- raise "display_status only works for incoming and outgoing messages right now"
+ raise _("display_status only works for incoming and outgoing messages right now")
end
def is_sent_sort?
diff --git a/app/models/outgoing_message.rb b/app/models/outgoing_message.rb
index bbd227793..c7ba362e0 100644
--- a/app/models/outgoing_message.rb
+++ b/app/models/outgoing_message.rb
@@ -54,7 +54,7 @@ class OutgoingMessage < ActiveRecord::Base
# How the default letter starts and ends
def get_salutation
- ret = "Dear "
+ ret = _("Dear ")
if self.message_type == 'followup' && !self.incoming_message_followup.nil? && !self.incoming_message_followup.safe_mail_from.nil? && self.incoming_message_followup.valid_to_reply_to?
ret = ret + OutgoingMailer.name_for_followup(self.info_request, self.incoming_message_followup)
else
@@ -64,13 +64,13 @@ class OutgoingMessage < ActiveRecord::Base
end
def get_signoff
if self.message_type == 'followup' && !self.incoming_message_followup.nil? && !self.incoming_message_followup.safe_mail_from.nil? && self.incoming_message_followup.valid_to_reply_to?
- return "Yours sincerely,"
+ return _("Yours sincerely,")
else
- return "Yours faithfully,"
+ return _("Yours faithfully,")
end
end
def get_internal_review_insert_here_note
- return "GIVE DETAILS ABOUT YOUR COMPLAINT HERE"
+ return _("GIVE DETAILS ABOUT YOUR COMPLAINT HERE")
end
def get_default_letter
if self.default_letter
diff --git a/app/models/public_body.rb b/app/models/public_body.rb
index 520e28aab..0e32a5164 100644
--- a/app/models/public_body.rb
+++ b/app/models/public_body.rb
@@ -54,24 +54,39 @@ class PublicBody < ActiveRecord::Base
# like find_by_url_name but also search historic url_name if none found
def self.find_by_url_name_with_historic(name)
- found = PublicBody.find_all_by_url_name(name)
- return found.first if found.size == 1
- # Shouldn't we just make url_name unique?
- raise "Two bodies with the same URL name: #{name}" if found.size > 1
- # If none found, then search the history of short names
- old = PublicBody::Version.find_all_by_url_name(name)
- # Find unique public bodies in it
- old = old.map { |x| x.public_body_id }
- old = old.uniq
- # Maybe return the first one, so we show something relevant,
- # rather than throwing an error?
- raise "Two bodies with the same historical URL name: #{name}" if old.size > 1
- return unless old.size == 1
- # does acts_as_versioned provide a method that returns the current version?
- return PublicBody.find(old.first)
+ @locale = I18n.locale.to_s
+ PublicBody.with_locale(@locale) do
+ found = PublicBody.find(:all,
+ :conditions => ["public_body_translations.url_name='#{name}'"],
+ :joins => :translations,
+ :readonly => false)
+ return found.first if found.size == 1
+ # Shouldn't we just make url_name unique?
+ raise "Two bodies with the same URL name: #{name}" if found.size > 1
+ # If none found, then search the history of short names
+ old = PublicBody::Version.find_all_by_url_name(name)
+ # Find unique public bodies in it
+ old = old.map { |x| x.public_body_id }
+ old = old.uniq
+ # Maybe return the first one, so we show something relevant,
+ # rather than throwing an error?
+ raise "Two bodies with the same historical URL name: #{name}" if old.size > 1
+ return unless old.size == 1
+ # does acts_as_versioned provide a method that returns the current version?
+ return PublicBody.find(old.first)
+ end
end
-
+ # XXX this should be saner; probably implement categories as data
+ begin
+ load "public_body_categories_#{I18n.locale.to_s}.rb"
+ rescue MissingSourceFile
+ begin
+ load "public_body_categories_#{I18n.default_locale.to_s}.rb"
+ rescue MissingSourceFile
+ load "public_body_categories.rb"
+ end
+ end
# Set the first letter, which is used for faster queries
before_save(:set_first_letter)
def set_first_letter
@@ -278,6 +293,7 @@ class PublicBody < ActiveRecord::Base
:request_email => MySociety::Config.get("CONTACT_EMAIL", 'contact@localhost'),
:home_page => "",
:notes => "",
+ :publication_scheme => "",
:last_edit_editor => "internal_admin",
:last_edit_comment => "Made by PublicBody.internal_admin_body"
)
@@ -343,7 +359,7 @@ class PublicBody < ActiveRecord::Base
else
# New public body
notes.push "line " + line.to_s + ": new authority '" + name + "' with email " + email
- public_body = PublicBody.new(:name => name, :request_email => email, :short_name => "", :home_page => "", :notes => "", :last_edit_editor => editor, :last_edit_comment => 'Created from spreadsheet')
+ public_body = PublicBody.new(:name => name, :request_email => email, :short_name => "", :home_page => "", :publication_scheme => "", :notes => "", :last_edit_editor => editor, :last_edit_comment => 'Created from spreadsheet')
public_body.tag_string = tag
public_body.save!
end
diff --git a/app/models/track_thing.rb b/app/models/track_thing.rb
index 9d6f40ed7..aee1ed1da 100644
--- a/app/models/track_thing.rb
+++ b/app/models/track_thing.rb
@@ -152,15 +152,15 @@ class TrackThing < ActiveRecord::Base
@params = {
# Website
:list_description => "any <a href=\"/list/successful\">successful requests</a>",
- :verb_on_page => "Email me new successful responses",
- :verb_on_page_already => "You are being emailed about any new successful responses",
+ :verb_on_page => _("Email me new successful responses "),
+ :verb_on_page_already => _("You are being emailed about any new successful responses"),
# Email
- :title_in_email => "Successful Freedom of Information requests",
- :title_in_rss => "Successful Freedom of Information requests",
+ :title_in_email => _("Successful Freedom of Information requests"),
+ :title_in_rss => _("Successful Freedom of Information requests"),
# Authentication
- :web => "To be emailed about any successful requests",
- :email => "Then you will be emailed whenever an FOI request succeeds.",
- :email_subject => "Confirm you want to be emailed when an FOI request succeeds",
+ :web => _("To be emailed about any successful requests"),
+ :email => _("Then you will be emailed whenever an FOI request succeeds."),
+ :email_subject => _("Confirm you want to be emailed when an FOI request succeeds"),
# RSS sorting - used described date, as newest would give a
# date for responses possibly days before description, so
# wouldn't appear at top of list when description (known
@@ -171,7 +171,7 @@ class TrackThing < ActiveRecord::Base
@params = {
# Website
:list_description => "'<a href=\"/body/" + CGI.escapeHTML(self.public_body.url_name) + "\">" + CGI.escapeHTML(self.public_body.name) + "</a>', a public authority", # XXX yeuch, sometimes I just want to call view helpers from the model, sorry! can't work out how
- :verb_on_page => "Track requests to " + CGI.escapeHTML(self.public_body.name) + " by email",
+ :verb_on_page => _("Track requests to {{public_body_name}} by email",:public_body_name=>CGI.escapeHTML(self.public_body.name)),
:verb_on_page_already => "You are already tracking requests to " + CGI.escapeHTML(self.public_body.name) + " by email",
# Email
:title_in_email => self.public_body.law_only_short + " requests to '" + self.public_body.name + "'",
diff --git a/app/models/user.rb b/app/models/user.rb
index 2fd6d9dbe..e29ae3101 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -31,11 +31,11 @@ require 'digest/sha1'
class User < ActiveRecord::Base
strip_attributes!
- validates_presence_of :email, :message => N_("Please enter your email address")
+ validates_presence_of :email, :message => _("Please enter your email address")
- validates_presence_of :name, :message => N_("Please enter your name")
+ validates_presence_of :name, :message => _("Please enter your name")
- validates_presence_of :hashed_password, :message => N_("Please enter a password")
+ validates_presence_of :hashed_password, :message => _("Please enter a password")
has_many :info_requests, :order => 'created_at desc'
has_many :user_info_request_sent_alerts
@@ -46,7 +46,7 @@ class User < ActiveRecord::Base
has_many :censor_rules, :order => 'created_at desc'
attr_accessor :password_confirmation, :no_xapian_reindex
- validates_confirmation_of :password, :message => N_("Please enter the same password twice")
+ validates_confirmation_of :password, :message => _("Please enter the same password twice")
validates_inclusion_of :admin_level, :in => [
'none',
@@ -103,10 +103,10 @@ class User < ActiveRecord::Base
def validate
if self.email != "" && !MySociety::Validate.is_valid_email(self.email)
- errors.add(:email, N_("Please enter a valid email address"))
+ errors.add(:email, _("Please enter a valid email address"))
end
if MySociety::Validate.is_valid_email(self.name)
- errors.add(:name, N_("Please enter your name, not your email address, in the name field."))
+ errors.add(:name, _("Please enter your name, not your email address, in the name field."))
end
end
@@ -129,9 +129,9 @@ class User < ActiveRecord::Base
params[:email].strip!
if specific_user_login
- auth_fail_message = "Either the email or password was not recognised, please try again."
+ auth_fail_message = _("Either the email or password was not recognised, please try again.")
else
- auth_fail_message = "Either the email or password was not recognised, please try again. Or create a new account using the form on the right."
+ auth_fail_message = _("Either the email or password was not recognised, please try again. Or create a new account using the form on the right.")
end
user = self.find_user_by_email(params[:email])
diff --git a/app/models/user_mailer.rb b/app/models/user_mailer.rb
index 70ca42675..f164f684e 100644
--- a/app/models/user_mailer.rb
+++ b/app/models/user_mailer.rb
@@ -31,7 +31,7 @@ class UserMailer < ApplicationMailer
@from = contact_from_name_and_email
headers 'Return-Path' => blackhole_email, 'Reply-To' => @from # we don't care about bounces when people are fiddling with their account
@recipients = new_email
- @subject = "Confirm your new email address on WhatDoTheyKnow.com"
+ @subject = _("Confirm your new email address on WhatDoTheyKnow.com")
@body[:name] = user.name
@body[:url] = url
@body[:old_email] = user.email
@@ -42,7 +42,7 @@ class UserMailer < ApplicationMailer
@from = contact_from_name_and_email
headers 'Return-Path' => blackhole_email, 'Reply-To' => @from # we don't care about bounces when people are fiddling with their account
@recipients = new_email
- @subject = "Unable to change email address on WhatDoTheyKnow.com"
+ @subject = _("Unable to change email address on WhatDoTheyKnow.com")
@body[:old_email] = old_email
@body[:new_email] = new_email
end
diff --git a/app/views/admin_general/stats.rhtml b/app/views/admin_general/stats.rhtml
index f95d381fb..b22adb581 100644
--- a/app/views/admin_general/stats.rhtml
+++ b/app/views/admin_general/stats.rhtml
@@ -32,8 +32,7 @@
<h2>Web analytics</h2>
-<p><a href="http://piwik.mysociety.org/index.php?module=CoreHome&action=index&idSite=4&period=month&date=yesterday">WhatDoTheyKnow on piwik</a>
-<br><a href="https://secure.mysociety.org/admin/awstats.pl?config=www.whatdotheyknow.com">WhatDoTheyKnow on awstats</a>
+
</p>
diff --git a/app/views/comment/_comment_form.rhtml b/app/views/comment/_comment_form.rhtml
index 509cc05bb..d430f25c8 100644
--- a/app/views/comment/_comment_form.rhtml
+++ b/app/views/comment/_comment_form.rhtml
@@ -12,8 +12,8 @@
<p>
<%= hidden_field_tag 'submitted_comment', 1 %>
<%= hidden_field_tag 'preview', 1 %>
- <%= submit_tag "Preview your annotation" %>
- (<strong>no ranty</strong> politics, read our <a href="/help/requesting#moderation">moderation policy</a>)
+ <%= submit_tag _('Preview your annotation') %>
+ <%= _(' (<strong>no ranty</strong> politics, read our <a href="%s">moderation policy</a>)') % [help_requesting_path+'#moderation'] %>
</p>
<% end %>
diff --git a/app/views/comment/_single_comment.rhtml b/app/views/comment/_single_comment.rhtml
index d4282ced8..e6a1728a8 100644
--- a/app/views/comment/_single_comment.rhtml
+++ b/app/views/comment/_single_comment.rhtml
@@ -7,8 +7,7 @@
<h2>
<%# When not logged in, but mid-comment-leaving, there'll be no comment.user %>
- <%= comment.user ? user_link(comment.user) : "You" %>
- left an annotation (<%= simple_date(comment.created_at || Time.now) %>)
+ <%= comment.user ? user_link(comment.user) : _("You") %> <%= _("left an annotation") %> (<%= simple_date(comment.created_at || Time.now) %>)
</h2>
<div class="comment_in_request_text">
<p>
@@ -22,7 +21,7 @@
<% if !@user.nil? && @user.admin_page_links? %>
| <%= link_to "Admin", admin_url("request/edit_comment/" + comment.id.to_s) %>
<% end %>
- <!-- | <%= link_to "Report abuse", comment_url(comment) %> -->
+ <!-- | <%= link_to _('Report abuse'), comment_url(comment) %> -->
<% end %>
</p>
</div>
diff --git a/app/views/comment/new.rhtml b/app/views/comment/new.rhtml
index 7d7dfee6f..25380d23f 100644
--- a/app/views/comment/new.rhtml
+++ b/app/views/comment/new.rhtml
@@ -11,63 +11,63 @@
<%= foi_error_messages_for :comment %>
-<h1>Add an annotation to '<%=request_link(@info_request)%>'</h1>
+<h1><%= _('Add an annotation to ')%>'<%=request_link(@info_request)%>'</h1>
<p>
-Annotations are so anyone, including you, can help the requester with their request. For example:
+<%= _('Annotations are so anyone, including you, can help the requester with their request. For example:')%>
</p>
<ul>
<% if [ 'waiting_clarification' ].include?(@info_request.described_state) %>
- <li> Advise on how to <strong>best clarify</strong> the request.</li>
+ <li><%= _(' Advise on how to <strong>best clarify</strong> the request.')%></li>
<% end %>
<% if not [ 'successful', 'partially_successful' ].include?(@info_request.described_state) %>
- <li> Link to the information requested, if it is <strong>already available</strong> on the Internet. </li>
- <li> Suggest <strong>where else</strong> the requester might find the information. </li>
- <li> Offer better ways of <strong>wording the request</strong> to get the information. </li>
+ <li><%= _(' Link to the information requested, if it is <strong>already available</strong> on the Internet. ')%></li>
+ <li><%= _(' Suggest <strong>where else</strong> the requester might find the information. ')%></li>
+ <li><%= _(' Offer better ways of <strong>wording the request</strong> to get the information. ')%></li>
<% end %>
<% if [ 'successful', 'partially_successful' ].include?(@info_request.described_state) %>
- <li> <strong>Summarise</strong> the content of any information returned. </li>
- <li> Say how you've <strong>used the information</strong>, with links if possible. </li>
- <li> <strong>Thank</strong> the public authority or <%=h @info_request.user.name %>. </li>
+ <li><%= _(' <strong>Summarise</strong> the content of any information returned. ')%></li>
+ <li><%= _(' Say how you\'ve <strong>used the information</strong>, with links if possible.')%> </li>
+ <li> <%= _('<strong>Thank</strong> the public authority or ')%><%=h @info_request.user.name %>. </li>
<% end %>
<% if [ 'partially_successful' ].include?(@info_request.described_state) %>
- <li> Suggest how the requester can find the <strong>rest of the information</strong>. </li>
+ <li> <%= _('Suggest how the requester can find the <strong>rest of the information</strong>.')%></li>
<% end %>
<% if [ 'successful', 'partially_successful' ].include?(@info_request.described_state) %>
- <li> Point to <strong>related information</strong>, campaigns or forums which may be useful. </li>
+ <li> <%= _('Point to <strong>related information</strong>, campaigns or forums which may be useful.')%></li>
<% end %>
<% if [ 'gone_postal' ].include?(@info_request.described_state) %>
- <li> A <strong>summary</strong> of the response if you have received it by post. </li>
+ <li> <%= _('A <strong>summary</strong> of the response if you have received it by post. ')%></li>
<% end %>
<% if [ 'not_held' ].include?(@info_request.described_state) %>
- <li> Ideas on what <strong>other documents to request</strong> which the authority may hold. </li>
+ <li><%= _(' Ideas on what <strong>other documents to request</strong> which the authority may hold. ')%></li>
<% end %>
<% if [ 'rejected' ].include?(@info_request.described_state) %>
- <li> Advise on whether the <strong>refusal is legal</strong>, and how to complain about it if not. </li>
+ <li> <%= _('Advise on whether the <strong>refusal is legal</strong>, and how to complain about it if not.') %> </li>
<% end %>
<% if [ 'internal_review' ].include?(@info_request.described_state) %>
- <li> <strong>Advice</strong> on how to get a response that will satisfy the requester. </li>
+ <li> <%= _('<strong>Advice</strong> on how to get a response that will satisfy the requester. </li>') %>
<% end %>
<% if [ 'error_message' ].include?(@info_request.described_state) %>
- <li> You know what caused the error, and can <strong>suggest a solution</strong>, such as a working email address. </li>
+ <li> <%= _('You know what caused the error, and can <strong>suggest a solution</strong>, such as a working email address.')%> </li>
<% end %>
<% if [ 'requires_admin' ].include?(@info_request.described_state) %>
- <li> Your thoughts on what the WhatDoTheyKnow <strong>administrators</strong> should do about the request. </li>
+ <li> <%= _('Your thoughts on what the WhatDoTheyKnow <strong>administrators</strong> should do about the request.') %> </li>
<% end %>
</ul>
<p>
- <big>Annotations will be posted publicly here, and are
- <strong>not</strong> sent to <%=h @info_request.public_body.name %>.</big>
+ <big><%= _('Annotations will be posted publicly here, and are
+ <strong>not</strong> sent to {{public_body_name}}.',:public_body_name=>h(@info_request.public_body.name)) %></big>
</p>
<%= render :partial => 'comment/comment_form', :locals => { :track_thing => @track_thing } %>
diff --git a/app/views/comment/preview.rhtml b/app/views/comment/preview.rhtml
index 38c5fe1ff..702bd9a9b 100644
--- a/app/views/comment/preview.rhtml
+++ b/app/views/comment/preview.rhtml
@@ -1,13 +1,13 @@
-<% @title = "Preview new annotation on '" + h(@info_request.title) + "'" %>
+<% @title = _("Preview new annotation on '{{info_request_title}}'",:info_request_title=>h(@info_request.title)) %>
<% form_for(:comment, @comment, :html => { :id => 'preview_form' }, :url => { :controller => "comment", :action => "new", :type => "request" } ) do |f| %>
- <h1>Now preview your annotation</h1>
+ <h1><%= _('Now preview your annotation') %></h1>
<%= render :partial => 'comment/single_comment', :locals => { :comment => @comment } %>
<p>
- Your name and annotation will appear in <strong>search engines</strong>.
+ <%= _('Your name and annotation will appear in <strong>search engines</strong>.')%>
</p>
<p>
@@ -17,8 +17,8 @@
<% end %>
<%= hidden_field_tag(:submitted_comment, 1) %>
<%= hidden_field_tag(:preview, 0 ) %>
- <%= submit_tag "Re-edit this annotation", :name => 'reedit' %>
- <%= submit_tag "Post annotation", :name => 'submit' %>
+ <%= submit_tag _("Re-edit this annotation"), :name => 'reedit' %>
+ <%= submit_tag _("Post annotation"), :name => 'submit' %>
</p>
<% end %>
diff --git a/app/views/contact_mailer/message.rhtml b/app/views/contact_mailer/message.rhtml
index ad868ec5b..a28d9603b 100644
--- a/app/views/contact_mailer/message.rhtml
+++ b/app/views/contact_mailer/message.rhtml
@@ -1,11 +1,11 @@
<%= @message.strip %>
---------------------------------------------------------------------
-Message sent using WhatDoTheyKnow contact form,
+<%= _('Message sent using WhatDoTheyKnow contact form, ')%>
<%=(@logged_in_user ? ("logged in as user " + main_url(user_url(@logged_in_user))) : "not logged in")%><% if !@last_request.nil? %>
-Last request viewed: <%= main_url(request_url(@last_request)) %>
+<%= _('Last request viewed: ')%><%= main_url(request_url(@last_request)) %>
<% end %> <% if !@last_body.nil? %>
-Last authority viewed: <%= main_url(public_body_url(@last_body)) %>
+<%= _('Last authority viewed: ')%><%= main_url(public_body_url(@last_body)) %>
<% end %>---------------------------------------------------------------------
diff --git a/app/views/contact_mailer/user_message.rhtml b/app/views/contact_mailer/user_message.rhtml
index 436b73d1e..7a685c452 100644
--- a/app/views/contact_mailer/user_message.rhtml
+++ b/app/views/contact_mailer/user_message.rhtml
@@ -1,12 +1,12 @@
---------------------------------------------------------------------
<%=@from_user.name%> has used WhatDoTheyKnow to send you the message below.
-Your details have not been given to anyone, unless you choose to reply to this
-message, which will then go directly to the person who wrote the message.
+<%= _('Your details have not been given to anyone, unless you choose to reply to this
+message, which will then go directly to the person who wrote the message.')%>
---------------------------------------------------------------------
<%= @message.strip %>
---------------------------------------------------------------------
-View Freedom of Information requests made by <%=@from_user.name %>:
+<%= _('View Freedom of Information requests made by')%> <%=@from_user.name %>:
<%= @from_user_url %>
---------------------------------------------------------------------
diff --git a/app/views/general/_before_body_end.rhtml b/app/views/general/_before_body_end.rhtml
index 8d7ebeeb5..4374a3f28 100644
--- a/app/views/general/_before_body_end.rhtml
+++ b/app/views/general/_before_body_end.rhtml
@@ -1,16 +1 @@
-<% if MySociety::Config.get("DOMAIN", '127.0.0.1:3000') == 'www.whatdotheyknow.com' %>
-<!-- Piwik -->
-<script type="text/javascript">
-var pkBaseURL = (("https:" == document.location.protocol) ? "https://piwik.mysociety.org/" : "http://piwik.mysociety.org/");
-document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
-</script><script type="text/javascript">
-try {
-var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 4);
-piwikTracker.trackPageView();
-piwikTracker.enableLinkTracking();
-} catch( err ) {}
-</script><noscript><p><img src="http://piwik.mysociety.org/piwik.php?idsite=4" style="border:0" alt=""/></p></noscript>
-<!-- End Piwik Tag -->
-<% end %>
-
-
+<!-- TO DO: add here Analytics Scripts (Google or something else) -->
diff --git a/app/views/general/_credits.rhtml b/app/views/general/_credits.rhtml
index a2f7a9cb2..8c519ce7e 100644
--- a/app/views/general/_credits.rhtml
+++ b/app/views/general/_credits.rhtml
@@ -1,5 +1 @@
-|
- Built by <a href="http://www.mysociety.org/">mySociety</a> ...
- <a href="/help/credits#helpus">and you</a>
- |
- Dedicated to <a href="http://mk.ucant.org/archives/000129.html">Chris Lightfoot</a>
+| <%= _('Powered by <a href="http://www.alaveteli.org/">Alaveteli</a>.') %>
diff --git a/app/views/general/_custom_state_descriptions.rhtml b/app/views/general/_custom_state_descriptions.rhtml
new file mode 100644
index 000000000..913a6d50a
--- /dev/null
+++ b/app/views/general/_custom_state_descriptions.rhtml
@@ -0,0 +1 @@
+ <% raise "unknown status " + status %>
diff --git a/app/views/general/_custom_state_transitions_complete.rhtml b/app/views/general/_custom_state_transitions_complete.rhtml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/app/views/general/_custom_state_transitions_complete.rhtml
diff --git a/app/views/general/_custom_state_transitions_pending.rhtml b/app/views/general/_custom_state_transitions_pending.rhtml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/app/views/general/_custom_state_transitions_pending.rhtml
diff --git a/app/views/general/_locale_switcher.rhtml b/app/views/general/_locale_switcher.rhtml
index 530fbc40c..27e492e84 100644
--- a/app/views/general/_locale_switcher.rhtml
+++ b/app/views/general/_locale_switcher.rhtml
@@ -1,12 +1,11 @@
-<% if FastGettext.default_available_locales.length > 1 && !params.empty? %>
- <div id="user_locale_switcher">
- Language:
- <% for possible_locale in FastGettext.default_available_locales %>
- <% if possible_locale == I18n.locale.to_s %>
- <%= possible_locale %>
- <% else %>
- <a href="<%= locale_switcher(possible_locale, params) %>"><%= possible_locale %></a>
- <% end %>
- <% end %>
- </div>
-<% end %>
+ <% if FastGettext.default_available_locales.length > 1 && !params.empty? %>
+ <div id="user_locale_switcher">
+ <% for possible_locale in FastGettext.default_available_locales %>
+ <% if possible_locale == I18n.locale.to_s %>
+ <span class="active"><%= locale_name(possible_locale) %></span>
+ <% else %>
+ <a href="<%= locale_switcher(possible_locale, params) %>"><%= locale_name(possible_locale) %></a>
+ <% end %>
+ <% end %>
+ </div>
+ <% end %>
diff --git a/app/views/general/_orglink.rhtml b/app/views/general/_orglink.rhtml
index 551b18646..20d0d6ce4 100644
--- a/app/views/general/_orglink.rhtml
+++ b/app/views/general/_orglink.rhtml
@@ -1,2 +1,2 @@
<%-# Put the link to your organisation here, or leave blank -%>
-<a href="http://www.mysociety.org">a site by mysociety.org</a>
+<a href="http://www.alaveteli.org">an Alaveteli site</a>
diff --git a/app/views/general/blog.rhtml b/app/views/general/blog.rhtml
index cda1c5769..cbd37240e 100644
--- a/app/views/general/blog.rhtml
+++ b/app/views/general/blog.rhtml
@@ -1,16 +1,47 @@
-<% @title = "WhatDoTheyKnow blog and tweets" %>
-
-<div id="blog_sidebar">
- <h1><img src="/images/twitter.png" alt=""> <a href="http://www.twitter.com/whatdotheyknow">Follow us on twitter</a></h1>
- <h1><img src="/images/rss.png" alt=""> <a href="http://www.mysociety.org/category/projects/whatdotheyknow/feed/">Subscribe to blog</h1>
-</div>
+<% @title = "#{site_name} blog and tweets" %>
<h1><%=@title %></h1>
+ <img src="/images/twitter.png" alt="twitter icon" valign="middle"> <a href="http://www.twitter.com/whatdotheyknow">Follow us on twitter</a>&nbsp;
+ <img src="/images/rss.png" alt="RSS icon" valign="middle"> <a href="http://www.mysociety.org/category/projects/whatdotheyknow/feed/">Subscribe to blog</a>
+<% if !@twitter_user.empty? %>
+<div id="twitter">
+<script src="http://widgets.twimg.com/j/2/widget.js"></script>
+<script>
+new TWTR.Widget({
+ version: 2,
+ type: 'profile',
+ rpp: 15,
+ interval: 6000,
+ width: 'auto',
+ height: 500,
+ theme: {
+ shell: {
+ background: '#eaeaea',
+ color: '#000000'
+ },
+ tweets: {
+ background: '#ffffff',
+ color: '#000000',
+ links: '#0b004a'
+ }
+ },
+ features: {
+ scrollbar: false,
+ loop: false,
+ live: false,
+ hashtags: true,
+ timestamp: true,
+ avatars: true,
+ behavior: 'all'
+ }
+}).render().setUser('<%=@twitter_user %>').start();
+</script>
-<div id="blog">
+</div>
+<% end %>
-<% for item in @items: %>
- <% if item['comments'] %>
+<div id="blog">
+ <% for item in @blog_items: %>
<div class="blog_post">
<h2><a href="<%=item['link']%>"><%=h item['title'] %></a></h2>
<p class="subtitle">Posted on <%= simple_date(Time.parse(item['pubDate'][0])) %> by <%=h item['creator'] %></p>
@@ -20,18 +51,9 @@
</em>
</p>
</div>
- <% else %>
- <div class="twitter_post">
- <h2><a href="<%=item['link']%>">@whatdotheyknow on <%= simple_date(Time.parse(item['pubDate'][0])) %></a></h2>
- <p><%=MySociety::Format.make_clickable(h(item['title'][0].sub("WhatDoTheyKnow: ", ""))) %></a></p>
- <div>
- <% end %>
-
-<% end %>
-
-<p>
- <a href="http://www.mysociety.org/category/projects/whatdotheyknow/">All blog posts</a> |
- <a href="http://www.twitter.com/whatdotheyknow">@whatdotheyknow on twitter</a>
-</p>
-
+ <% end %>
+ <p>
+ <a href="http://www.mysociety.org/category/projects/whatdotheyknow/">All blog posts</a>
+ </p>
</div>
+
diff --git a/app/views/general/exception_caught.rhtml b/app/views/general/exception_caught.rhtml
index 44d5803de..ca36b592b 100644
--- a/app/views/general/exception_caught.rhtml
+++ b/app/views/general/exception_caught.rhtml
@@ -1,18 +1,17 @@
-<h1>Sorry, we couldn't find that page</h1>
+<h1><%= _("Sorry, we couldn't find that page") %></h1>
-<p>The page either doesn't exist, or is broken. Things you can try now:</p>
+<p><%= _("The page either doesn't exist, or is broken. Things you can try now:")%></p>
<ul>
-<li>Check for mistakes if you typed or copied the address.</li>
-<li>Search the site to find what you were looking for.
+<li><%= _("Check for mistakes if you typed or copied the address.")%></li>
+<li><%= _("Search the site to find what you were looking for.")%>
<% form_tag({:controller => "general", :action => "search_redirect"}, {:id => "search_form"}) do %>
<%= text_field_tag 'query', params[:query], { :size => 30 } %>
- <%= submit_tag "Search" %>
+ <%= submit_tag _("Search") %>
<% end %>
</li>
-<li><a href="/help/contact">Contact us</a> to tell us about
- the problem</li>
-<li>Go to our <a href="/">front page</a></li>
+<li><%= _('<a href="%s">Contact us</a> to tell us about the problem</li>') % [help_contact_path] %>
+<li><%= _('Go to our <a href="%s">front page</a></li>') % ["/"] %>
</ul>
-<p id="error_technical_details"><strong>Technical details:</strong> <%=@exception_class ? @exception_class : "Unknown"%></p>
+<p id="error_technical_details"><%= _("<strong>Technical details:</strong>")%> <%=@exception_class ? @exception_class : _("Unknown")%></p>
diff --git a/app/views/general/frontpage.rhtml b/app/views/general/frontpage.rhtml
index f412a6964..b879cf7b8 100644
--- a/app/views/general/frontpage.rhtml
+++ b/app/views/general/frontpage.rhtml
@@ -29,14 +29,14 @@
<div id="frontpage_examples">
<% if @popular_bodies.size > 0 %>
- <div id="examples_0">
- <ul>
+ <div id="examples_0">
+ <ul>
<% for popular_body in @popular_bodies %>
- <li><%=public_body_link(popular_body)%>
- <%= n_('%d request', '%d requests', popular_body.info_requests.count) % popular_body.info_requests.count %>
+ <li><%=public_body_link(popular_body)%>
+ <%= n_('%d request', '%d requests', popular_body.info_requests.count) % popular_body.info_requests.count %>
</li>
<% end%>
- </ul>
+ </ul>
<p><strong>
<%= link_to _('More authorities...'), list_public_bodies_default %>
</strong></p>
@@ -57,4 +57,5 @@
<% end %>
</div>
+
<% end %>
diff --git a/app/views/help/about.rhtml b/app/views/help/about.rhtml
index d1654c641..89a67d069 100644
--- a/app/views/help/about.rhtml
+++ b/app/views/help/about.rhtml
@@ -7,23 +7,23 @@
<dt id="purpose">What is WhatDoTheyKnow for? <a href="#purpose">#</a> </dt>
<dd>To help you find out inside information about what the UK government
-is doing.
-</dd>
+is doing.
+</dd>
<dt id="premise">How does the site work? <a href="#premise">#</a> </dt>
<dd>You choose the public authority that you would like information from, then
write a brief note describing what you want to know. We then send your request
to the public authority. Any response they make is automatically published on the
website for you and anyone else to find and read.
-</dd>
+</dd>
<dt id="whybother_me">Why would I bother to do this? <a href="#whybother_me">#</a> </dt>
<dd>You pay taxes, and then government does things with the money. All sorts of
things that affect your life, from healthcare through to national defence. Some
it does badly, some it does well. The more we find out about how government
works, the better able we are to make suggestions to improve the things that
-are done badly, and to celebrate the things that are done well.
-</dd>
+are done badly, and to celebrate the things that are done well.
+</dd>
<dt id="whybother_them">Why would the public authority bother to reply? <a href="#whybother_them">#</a> </dt>
<dd>Under Freedom of Information (FOI) law, they have to respond. The response
@@ -33,9 +33,9 @@ it must be kept confidential.
<dt id="who">Who makes WhatDoTheyKnow? <a href="#who">#</a> </dt>
<dd>WhatDoTheyKnow is created and run by <a href="http://www.mysociety.org">mySociety</a>,
-and was initially <a href="http://www.mysociety.org/2006/12/06/funding-for-freedom-of-information/">funded by the JRSST Charitable Trust</a>. mySociety is a project of the
-registered charity <a href="http://www.ukcod.org.uk/UK_Citizens_Online_Democracy">UK Citizens Online Democracy</a>.
-If you like what we're doing, then you can
+and was initially <a href="http://www.mysociety.org/2006/12/06/funding-for-freedom-of-information/">funded by the JRSST Charitable Trust</a>. mySociety is a project of the
+registered charity <a href="http://www.ukcod.org.uk/UK_Citizens_Online_Democracy">UK Citizens Online Democracy</a>.
+If you like what we're doing, then you can
<a href="https://secure.mysociety.org/donate/">make a donation</a>.
</dd>
@@ -49,5 +49,3 @@ If you like what we're doing, then you can
<p><strong>Next</strong>, read about <a href="/help/requesting">making requests</a> --&gt;
<div id="hash_link_padding"></div>
-
-
diff --git a/app/views/help/requesting.rhtml b/app/views/help/requesting.rhtml
index 034bb31e5..dc70f3f89 100644
--- a/app/views/help/requesting.rhtml
+++ b/app/views/help/requesting.rhtml
@@ -140,6 +140,14 @@ are breaking the law.</p>
</dd>
+<dt id="deadline_extended">Deadline extended <a href="#deadline_extended">#</a> </dt>
+
+<dd>
+<p>By law, public authorities must needs <strong>more time</strong> for request ... (TO DO)
+</p>
+
+
+</dd>
<dt id="no_response">What if I never get a response?<a href="#no_response">#</a> </dt>
<dd>
diff --git a/app/views/layouts/default.rhtml b/app/views/layouts/default.rhtml
index de02a87b2..159aa1e62 100644
--- a/app/views/layouts/default.rhtml
+++ b/app/views/layouts/default.rhtml
@@ -75,22 +75,22 @@
</div>
=end
%>
-
- <div id="banner">
- </div>
+<div class="entirebody">
+ <div id="banner"></div>
<div id="header">
<h1>
<%= link_to site_name, frontpage_url %>
</h1>
+
<div id="tagline">
<%= _('Make and explore Freedom of Information requests') %>
</div>
- <%= render :partial => 'general/locale_switcher' %>
</div>
- <div id="orglogo">
- <%= render :partial => 'general/orglink' %>
- </div>
+ <div id="orglogo">
+ <%= render :partial => 'general/orglink' %>
+ </div>
+ <div class="lang"><%= render :partial => 'general/locale_switcher' %></div>
<div id="navigation_search">
<% form_tag({:controller => "general", :action => "search_redirect"}, {:id => "navigation_search_form"}) do %>
@@ -99,6 +99,7 @@
<%= submit_tag _("Search") %>
</p>
<% end %>
+
</div>
<div id="topnav">
<ul id="navigation">
@@ -125,6 +126,7 @@
</div>
<div id="wrapper">
+
<div id="content">
<% if flash[:notice] %>
@@ -144,8 +146,9 @@
<%= link_to _("Contact {{site_name}}", :site_name => site_name), help_contact_url %>
<%= render :partial => 'general/credits' %>
</div>
+ <div class="after-footer">&nbsp;</div>
<%= render :partial => 'general/before_body_end' %>
-
+</div>
</body>
</html>
diff --git a/app/views/outgoing_mailer/_followup_footer.rhtml b/app/views/outgoing_mailer/_followup_footer.rhtml
new file mode 100644
index 000000000..d7bc7c5aa
--- /dev/null
+++ b/app/views/outgoing_mailer/_followup_footer.rhtml
@@ -0,0 +1,4 @@
+<%= _('Disclaimer: This message and any reply that you make will be published on the internet. Our privacy and copyright policies:')%>
+<%= help_officers_url %>
+
+<%= _('If you find this service useful as an FOI officer, please ask your web manager to link to us from your organisation\'s FOI page.')%>
diff --git a/app/views/outgoing_mailer/followup.rhtml b/app/views/outgoing_mailer/followup.rhtml
index 361a819a2..7050a295b 100644
--- a/app/views/outgoing_mailer/followup.rhtml
+++ b/app/views/outgoing_mailer/followup.rhtml
@@ -3,11 +3,8 @@
<%= @outgoing_message.quoted_part_to_append_to_email.strip %>
-------------------------------------------------------------------
-Disclaimer: This message and any reply that you make will be published on the internet. Our privacy and copyright policies:
-http://www.whatdotheyknow.com/help/officers
-
-Please use this email address for all replies to this request:
+<%= _('Please use this email address for all replies to this request:')%>
<%= @info_request.incoming_email %>
-If you find WhatDoTheyKnow useful as an FOI officer, please ask your web manager to suggest us on your organisation's FOI page.
+<%= render :partial => 'followup_footer' %>
-------------------------------------------------------------------
diff --git a/app/views/outgoing_mailer/initial_request.rhtml b/app/views/outgoing_mailer/initial_request.rhtml
index e0acdb4a0..13b356c6e 100644
--- a/app/views/outgoing_mailer/initial_request.rhtml
+++ b/app/views/outgoing_mailer/initial_request.rhtml
@@ -1,14 +1,12 @@
<%= @outgoing_message.body.strip %>
-------------------------------------------------------------------
-Disclaimer: This message and any reply that you make will be published on the internet. Our privacy and copyright policies:
-http://www.whatdotheyknow.com/help/officers
-Please use this email address for all replies to this request:
+<%= _('Please use this email address for all replies to this request:')%>
<%= @info_request.incoming_email %>
-Is <%= @info_request.public_body.request_email%> the wrong address for <%= @info_request.law_used_full %> requests to <%= @info_request.public_body.name%>? If so please contact us using this form:
-http://www.whatdotheyknow.com/help/contact
+<%= _('Is {{email_address}} the wrong address for {{type_of_request}} requests tp {{public_body_name}}? If so, please contact us using this form:', :email_address => @info_request.public_body.request_email, :type_of_request => @info_request.law_used_full, :public_body_name => @info_request.public_body.name)%>
+
+<%= render :partial => 'followup_footer' %>
-If you find WhatDoTheyKnow useful as an FOI officer, please ask your web manager to suggest us on your organisation's FOI page.
-------------------------------------------------------------------
diff --git a/app/views/public_body/_body_listing.rhtml b/app/views/public_body/_body_listing.rhtml
index 48eb649c2..48b6e8245 100644
--- a/app/views/public_body/_body_listing.rhtml
+++ b/app/views/public_body/_body_listing.rhtml
@@ -1,5 +1,5 @@
<% if public_bodies.empty? %>
- None found.
+ <%= _("None found.")%>
<% else %>
<% for public_body in public_bodies %>
<%= render :partial => 'public_body/body_listing_single', :locals => { :public_body => public_body } %>
diff --git a/app/views/public_body/_body_listing_single.rhtml b/app/views/public_body/_body_listing_single.rhtml
index fdd0c6b75..97cfd2e71 100644
--- a/app/views/public_body/_body_listing_single.rhtml
+++ b/app/views/public_body/_body_listing_single.rhtml
@@ -20,7 +20,7 @@
<span class="bottomline">
<%= pluralize(public_body.info_requests.size, "request") %> made.
<% if !@include_request_link_in_authority_listing.nil? %>
- <%= link_to "Make your own request", public_body_url(public_body) %>.
+ <%= link_to _("Make your own request"), public_body_url(public_body) %>.
<% end %>
<br>
Added on <%= simple_date(public_body.created_at) %>.
diff --git a/app/views/public_body/list.rhtml b/app/views/public_body/list.rhtml
index dc6d0ca0e..5d88b1501 100644
--- a/app/views/public_body/list.rhtml
+++ b/app/views/public_body/list.rhtml
@@ -1,8 +1,8 @@
<div id="body_sidebar">
- <h1>Show only...</h1>
+ <h1><%=_('Show only...')%></h1>
- <h2>Alphabet</h2>
+ <h2><%=_('Alphabet') %></h2>
<ul><li>
<%= render :partial => 'alphabet' %>
</li></ul>
@@ -26,21 +26,21 @@
</ul>
<p>
- <a href="/help/requesting#missing_body">Are we missing a public authority?</a>
+ <%= _('<a href="%s">Are we missing a public authority?</a>.') % [help_requesting_path + '#missing_body'] %>
</p>
<p>
- <%= link_to "List of all authorities (CSV)", all_public_bodies_csv_url() %>
+ <%= link_to _('List of all authorities (CSV)'), all_public_bodies_csv_url() %>
</p>
</div>
-<% @title = "Public authorities - " + @description %>
+<% @title = _("Public authorities - {{description}}", :description => @description) %>
<h1><%=@title%></h1>
<p class="subtitle">
- <%= @public_bodies.size %> in total
- (<a href="/help/requesting#missing_body">can't find the one you want?</a>)
+ <%= @public_bodies.size %> <%= _('in total') %>
+ (<%= _('<a href="%s">can\'t find the one you want?</a>') % [help_requesting_path + '#missing_body'] %>)
</p>
<% if @tag.size == 1 %>
diff --git a/app/views/public_body/show.rhtml b/app/views/public_body/show.rhtml
index 94022198a..dce7ca4f8 100644
--- a/app/views/public_body/show.rhtml
+++ b/app/views/public_body/show.rhtml
@@ -1,5 +1,4 @@
<% @title = h(@public_body.name) + " - view and make Freedom of Information requests" %>
-
<div id="request_sidebar">
<h2><%= _('Track this authority')%></h2>
<%= render :partial => 'track/tracking_links', :locals => { :track_thing => @track_thing, :own_request => false, :location => 'sidebar' } %>
@@ -25,7 +24,9 @@
<h1><%=h(@public_body.name)%></h1>
<p class="subtitle">
-<%=@public_body.type_of_authority(true)%><% if not @public_body.short_name.empty? %>, <%= _('also called {{public_body_short_name}}', :public_body_short_name => h(@public_body.short_name))%><% end %>
+<%=@public_body.type_of_authority(true)%>
+<% if not @public_body.short_name.empty? %>,
+<%= _('also called {{public_body_short_name}}', :public_body_short_name => h(@public_body.short_name))%><% end %>
<% if !@user.nil? && @user.admin_page_links? %>
(<%= link_to _("admin"), public_body_admin_url(@public_body) %>)
<% end %>
@@ -43,7 +44,7 @@
<strong>
<% if @public_body.is_requestable? || @public_body.not_requestable_reason == 'bad_contact' %>
<% if @public_body.eir_only? %>
- <%= link_to "Make a new Environmental Information request", new_request_to_body_url(:url_name => @public_body.url_name)%> to <%= h(@public_body.name) %>
+ <%= link_to _("Make a new Environmental Information request"), new_request_to_body_url(:url_name => @public_body.url_name)%> to <%= h(@public_body.name) %>
<% else %>
<%= _('<a href="%s">Make a new Freedom of Information request</a> to {{public_body_name}}',
@@ -65,18 +66,18 @@
<% if !@xapian_requests.nil? %>
<% if @xapian_requests.results.empty? %>
<% if @public_body.eir_only? %>
- <h2>Environmental Information Regulations requests made using this site</h2>
+ <h2><%= _('Environmental Information Regulations requests made using this site') %></h2>
<p>Nobody has made any Environmental Information Regulations requests to <%=h(@public_body.name)%> using this site yet.</p>
<% else %>
- <h2> <%= _('Freedom of Information requests made using this site')%></h2>
- <p> <%= _('Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet.', :public_body_name => h(@public_body.name))%></p>
+ <h2><%= _('Freedom of Information requests made using this site')%></h2>
+ <p><%= _('Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet.', :public_body_name => h(@public_body.name))%></p>
<% end %>
<% else %>
<h2>
<% if @public_body.eir_only? %>
- <%=pluralize(@public_body.info_requests.size, "Environmental Information Regulations request") %> made using this site
+ <%= pluralize(@public_body.info_requests.size, "Environmental Information Regulations request made using this site") %>
<% else %>
- <%= n_('%d Freedom of Information request', '%d Freedom of Information requests', @public_body.info_requests.size) % @public_body.info_requests.size %> made using this site
+ <%= n_('%d Freedom of Information request', '%d Freedom of Information requests', @public_body.info_requests.size) % @public_body.info_requests.size %> made using this site
<% end %>
<%= @page_desc %>
</h2>
@@ -92,7 +93,7 @@
<% end %>
<% else %>
<% if @public_body.eir_only? %>
- <h2>Environmental Information Regulations requests made</h2>
+ <h2><%= _('Environmental Information Regulations requests made') %></h2>
<% else %>
<h2> <%= _('Freedom of Information requests made')%></h2>
<% end %>
diff --git a/app/views/public_body/view_email.rhtml b/app/views/public_body/view_email.rhtml
index 2bd7c38c4..d6c8d85fe 100644
--- a/app/views/public_body/view_email.rhtml
+++ b/app/views/public_body/view_email.rhtml
@@ -1,21 +1,20 @@
<% @title = "FOI email address for '" + h(@public_body.name) + "'" %>
-<h1>FOI email address for '<%=public_body_link(@public_body)%>'</h1>
+<h1><%= _('FOI email address for {{public_body}}',:public_body=> public_body_link(@public_body))%></h1>
<p>
<% if @public_body.is_requestable? %>
- WhatDoTheyKnow sends new requests to <strong><%=h @public_body.request_email%></strong> for this authority.
+<%= _('WhatDoTheyKnow sends new requests to <strong>{{request_email}}</strong> for this authority.',:request_email=> h(@public_body.request_email))%>
<% else %>
<% if @public_body.not_requestable_reason == 'not_apply' %>
- <p>Freedom of Information law no longer applies to this authority.
- Follow up messages to existing requests are sent to <strong><%=h @public_body.request_email%></strong>.
+ <p><%= _('Freedom of Information law no longer applies to this authority.Follow up messages to existing requests are sent to ')%><strong><%=h @public_body.request_email%></strong>.
</p>
<% elsif @public_body.not_requestable_reason == 'defunct' %>
<p><%=h @public_body.name %> no longer exists.
- Follow up messages to existing requests are sent to <strong><%=h @public_body.request_email%></strong>.
+ <%= _('Follow up messages to existing requests are sent to ')%><strong><%=h @public_body.request_email%></strong>.
</p>
<% elsif @public_body.not_requestable_reason == 'bad_contact' %>
- <p>We do not have a working request email address for this authority.
+ <p><%= _('We do not have a working request email address for this authority.')%>
</p>
<% else %>
<% raise "unknown reason " + @reason %>
@@ -26,10 +25,10 @@
<p>
<% if @public_body.is_requestable? || @public_body.not_requestable_reason != 'bad_contact' %>
- If the address is wrong, or you know a better address, please <a href="/help/contact">contact us</a>.
+ <%= _('If the address is wrong, or you know a better address, please <a href="%s">contact us</a>.')% [help_contact_path]%>
<% else %>
- If you know the address to use, then please <a href="/help/contact">send it to us</a>.
- You may be able to find the address on their website, or by phoning them up and asking.
+ <%= _(' If you know the address to use, then please <a href="%s">send it to us</a>.
+ You may be able to find the address on their website, or by phoning them up and asking.')% [help_contact_path] %>
<% end %>
</p>
diff --git a/app/views/public_body/view_email_captcha.rhtml b/app/views/public_body/view_email_captcha.rhtml
index 13741c292..6f301e055 100644
--- a/app/views/public_body/view_email_captcha.rhtml
+++ b/app/views/public_body/view_email_captcha.rhtml
@@ -1,16 +1,13 @@
-<% @title = "View FOI email address for '" + h(@public_body.name) + "'" %>
+<% @title = _("View FOI email address for '{{public_body_name}}'",:public_body_name => h(@public_body.name)) %>
-<h1>View FOI email address for '<%=public_body_link(@public_body)%>'</h1>
+<h1><%= _('View FOI email address for {{public_body_name}}',:public_body_name=>public_body_link(@public_body))%></h1>
-<p>To view the email address that we use to send FOI requests to <%=h @public_body.name%>,
-please enter these words.<p>
+<p><%= _('To view the email address that we use to send FOI requests to {{public_body_name}}, please enter these words.', :public_body_name => h(@public_body.name))%></p>
<% form_for :contact do |f| %>
<%= recaptcha_tags %>
<%= hidden_field_tag(:submitted_view_email, { :value => 1 } ) %>
- <p><%= submit_tag "View email" %></p>
+ <p><%= submit_tag _("View email") %></p>
<% end %>
-
-
diff --git a/app/views/request/_after_actions.rhtml b/app/views/request/_after_actions.rhtml
index 9bef04ce4..797ecaea5 100644
--- a/app/views/request/_after_actions.rhtml
+++ b/app/views/request/_after_actions.rhtml
@@ -1,52 +1,50 @@
<div id="after_actions">
- <h2>Things to do with this request</h2>
+ <h2><%= _('Things to do with this request') %></h2>
<div id="anyone_actions">
- <strong>Anyone:</strong>
+ <strong><%= _('Anyone:') %></strong>
<ul>
<li>
- <%= link_to "Add an annotation", new_comment_url(:url_title => @info_request.url_title) %> (to help
- the requester or others)
+ <%= _('<a href="%s">Add an annotation</a> (to help the requester or others)') % [new_comment_url(:url_title => @info_request.url_title)] %>
</li>
<% if @old_unclassified %>
<li>
- <%= link_to "Update the status of this request", '#describe_state_form_1' %>
+ <%= link_to _('Update the status of this request'), '#describe_state_form_1' %>
</li>
<% end %>
</ul>
</div>
<div id="owner_actions">
- <strong><%=h @info_request.user.name %> only:</strong>
+ <strong><%= _('{{info_request_user_name}} only:',:info_request_user_name=>h(@info_request.user.name)) %></strong>
<ul>
<li>
<% if @last_response.nil? %>
- <%= link_to "Send follow up to " + OutgoingMailer.name_for_followup(@info_request, @last_response), show_response_no_followup_url(:id => @info_request.id, :incoming_message_id => nil) + "#followup" %>
+ <%= link_to "Send follow up to " + OutgoingMailer.name_for_followup(@info_request, @last_response), show_response_no_followup_url(:id => @info_request.id, :incoming_message_id => nil) + "#followup" %>
<% else %>
<% foi_cache(:controller => "request", :action => "show_response", :id => @info_request.id, :incoming_message_id => @last_response.id, :only_path => true, :template => "_after_actions", :section => "reply_to_link") do %>
- <%= link_to "Reply to " + OutgoingMailer.name_for_followup(@info_request, @last_response), show_response_url(:id => @info_request.id, :incoming_message_id => @last_response.id) + "#followup" %>
+ <%= link_to "Reply to " + OutgoingMailer.name_for_followup(@info_request, @last_response), show_response_url(:id => @info_request.id, :incoming_message_id => @last_response.id) + "#followup" %>
<% end %>
<% end %>
</li>
<% if !@old_unclassified %>
<li>
- <%= link_to "Update the status of this request", request_url(@info_request, :update_status => 1) %>
+ <%= link_to _("Update the status of this request"), request_url(@info_request, :update_status => 1) %>
</li>
<% end %>
<li>
- <%= link_to "Request an internal review", show_response_no_followup_url(:id => @info_request.id, :incoming_message_id => nil) + "?internal_review=1#followup" %>
+ <%= link_to _("Request an internal review"), show_response_no_followup_url(:id => @info_request.id, :incoming_message_id => nil) + "?internal_review=1#followup" %>
</li>
</ul>
</div>
<div id="public_body_actions">
- <strong><%=h @info_request.public_body.name %> only:</strong>
+ <strong><%= _('{{public_body_name}} only:',:public_body_name=>h(@info_request.public_body.name) ) %> </strong>
<ul>
<li>
- <%= link_to "Respond to request", upload_response_url(:url_title => @info_request.url_title) %>
+ <%= link_to _("Respond to request"), upload_response_url(:url_title => @info_request.url_title) %>
</li>
</ul>
</div>
-
</div>
diff --git a/app/views/request/_correspondence.rhtml b/app/views/request/_correspondence.rhtml
index 090f5a728..4e46347b8 100644
--- a/app/views/request/_correspondence.rhtml
+++ b/app/views/request/_correspondence.rhtml
@@ -24,8 +24,8 @@ if not incoming_message.nil?
<% if !@user.nil? && @user.admin_page_links? %>
<%= link_to "Admin", admin_url("request/show_raw_email/" + incoming_message.raw_email_id.to_s) %> |
<% end %>
- <%= link_to "Link to this", incoming_message_url(incoming_message) %> |
- <%= link_to "Reply to this message", show_response_url(:id => incoming_message.info_request.id, :incoming_message_id => incoming_message.id) + "#followup" %>
+ <%= link_to _("Link to this"), incoming_message_url(incoming_message) %> |
+ <%= link_to _("Reply to this message"), show_response_url(:id => incoming_message.info_request.id, :incoming_message_id => incoming_message.id) + "#followup" %>
</p>
</div>
@@ -54,8 +54,8 @@ elsif [ 'sent', 'followup_sent' ].include?(info_request_event.event_type)
<% end %>
-->
- <%= link_to "Link to this", outgoing_message_url(outgoing_message) %> |
- <%= link_to "Send follow up", show_response_no_followup_url(:id => outgoing_message.info_request.id, :incoming_message_id => nil) + "#followup" %>
+ <%= link_to _("Link to this"), outgoing_message_url(outgoing_message) %> |
+ <%= link_to _("Send follow up"), show_response_no_followup_url(:id => outgoing_message.info_request.id, :incoming_message_id => nil) + "#followup" %>
</p>
</div>
<% elsif [ 'resent', 'followup_resent' ].include?(info_request_event.event_type) %>
diff --git a/app/views/request/_describe_state.rhtml b/app/views/request/_describe_state.rhtml
index a91231ae8..8164637bf 100644
--- a/app/views/request/_describe_state.rhtml
+++ b/app/views/request/_describe_state.rhtml
@@ -1,72 +1,79 @@
<% if @is_owning_user %>
<% form_for(:incoming_message, @info_request, :url => describe_state_url(:id => @info_request.id)) do |f| %>
- <h2>What best describes the status of this request now?</h2>
+ <h2><%= _('What best describes the status of this request now?') %></h2>
<hr> <!------------------------------------------------>
-
+ <h3>This request is still in progress:</h3>
<% if @info_request.described_state != 'internal_review' %>
<div>
<%= radio_button "incoming_message", "described_state", "waiting_response", :id => 'waiting_response' + id_suffix %>
- <label for="waiting_response<%=id_suffix%>">I'm still <strong>waiting</strong> for my information
- <small>(maybe you got an acknowledgement)</small></label>
+ <label for="waiting_response<%=id_suffix%>"><%= _('I\'m still <strong>waiting</strong> for my information
+ <small>(maybe you got an acknowledgement)</small>') %></label>
</div>
<% end %>
<% if @info_request.described_state == 'internal_review' %>
<div>
<%= radio_button "incoming_message", "described_state", "internal_review", :id => 'internal_review' + id_suffix %>
- <label for="internal_review<%=id_suffix%>">I'm still <strong>waiting</strong> for the internal review</label>
+ <label for="internal_review<%=id_suffix%>"><%= _('I\'m still <strong>waiting</strong> for the internal review') %></label>
</div>
<% end %>
<% if @info_request.described_state != 'internal_review' %>
<div>
<%= radio_button "incoming_message", "described_state", "waiting_clarification", :id => 'waiting_clarification' + id_suffix %>
- <label for="waiting_clarification<%=id_suffix%>">I've been asked to <strong>clarify</strong> my request</label>
+ <label for="waiting_clarification<%=id_suffix%>"><%= _('I\'ve been asked to <strong>clarify</strong> my request') %></label>
</div>
<% end %>
<% if @update_status && @info_request.described_state != 'internal_review' %>
<div>
<%= radio_button "incoming_message", "described_state", "internal_review", :id => 'internal_review' + id_suffix %>
- <label for="internal_review<%=id_suffix%>">I'm waiting for an <strong>internal review</strong> response</label>
+ <label for="internal_review<%=id_suffix%>"><%= _('I\'m waiting for an <strong>internal review</strong> response') %></label>
</div>
<% end %>
<div>
<%= radio_button "incoming_message", "described_state", "gone_postal", :id => 'gone_postal' + id_suffix %>
- <label for="gone_postal<%=id_suffix%>">They are going to reply <strong>by post</strong></label>
+ <label for="gone_postal<%=id_suffix%>"><%= _('They are going to reply <strong>by post</strong>') %></label>
</div>
+ <%= render :partial => 'general/custom_state_transitions_pending', :locals => {:id_suffix => id_suffix } %>
+
<hr> <!------------------------------------------------>
+ <h3>This particular request is finished:</h3>
<% if @info_request.described_state == 'internal_review' %>
- <p>The <strong>review has finished</strong> and overall:</p>
+ <p><%= _('The <strong>review has finished</strong> and overall:') %></p>
<% end %>
<div>
<%= radio_button "incoming_message", "described_state", "not_held", :id => 'not_held' + id_suffix %>
- <label for="not_held<%=id_suffix%>">They do <strong>not have</strong> the information <small>(maybe they say who does)</small></label>
+ <label for="not_held<%=id_suffix%>"><%= _('They do <strong>not have</strong> the information <small>(maybe they say who does)</small>') %></label>
</div>
<div>
<%= radio_button "incoming_message", "described_state", "partially_successful", :id => 'partially_successful' + id_suffix %>
- <label for="partially_successful<%=id_suffix%>">I've received <strong>some of the information</strong> </label>
+ <label for="partially_successful<%=id_suffix%>"><%= _('I\'ve received <strong>some of the information</strong>') %> </label>
</div>
<div>
<%= radio_button "incoming_message", "described_state", "successful", :id => 'successful' + id_suffix %>
- <label for="successful<%=id_suffix%>">I've received <strong>all the information</strong> </label>
+ <label for="successful<%=id_suffix%>"><%= _('I\'ve received <strong>all the information') %></strong> </label>
</div>
<div>
<%= radio_button "incoming_message", "described_state", "rejected", :id => 'rejected' + id_suffix %>
- <label for="rejected<%=id_suffix%>">My request has been <strong>refused</strong></label>
+ <label for="rejected<%=id_suffix%>"><%= _('My request has been <strong>refused</strong>') %></label>
</div>
+ <%= render :partial => 'general/custom_state_transitions_complete', :locals => {:id_suffix => id_suffix } %>
+
+
<hr> <!------------------------------------------------>
+ <h3>Other:</h3>
<div>
<%= radio_button "incoming_message", "described_state", "error_message", :id => 'error_message' + id_suffix %>
<label for="error_message<%=id_suffix%>">
- I've received an <strong>error message</strong>
+ <%= _('I\'ve received an <strong>error message</strong>') %>
</label>
</div>
@@ -74,14 +81,14 @@
<div>
<%= radio_button "incoming_message", "described_state", "requires_admin", :id => 'requires_admin' + id_suffix %>
<label for="error_message<%=id_suffix%>">
- This request <strong>requires administrator attention</strong>
+ <%= _('This request <strong>requires administrator attention</strong>') %>
</label>
</div>
<div>
<%= radio_button "incoming_message", "described_state", "user_withdrawn", :id => 'user_withdrawn' + id_suffix %>
<label for="user_withdrawn<%=id_suffix%>">
- I would like to <strong>withdraw this request</strong>
+ <%= _('I would like to <strong>withdraw this request</strong>') %>
</label>
</div>
<% end %>
@@ -91,19 +98,15 @@
<p>
<%= hidden_field_tag 'last_info_request_event_id', @last_info_request_event_id, :id => 'last_info_request_event_id' + id_suffix %>
<%= hidden_field_tag 'submitted_describe_state', 1, :id => 'submitted_describe_state' + id_suffix %>
- <%= submit_tag "Submit status" %> (and we'll suggest <strong>what to do next</strong>)
+ <%= submit_tag _("Submit status") %> (<%= _('and we\'ll suggest <strong>what to do next</strong>') %>)
</p>
<% end %>
<% elsif @old_unclassified %>
<%= render :partial => 'other_describe_state', :locals => {:id_suffix => id_suffix } %>
<% else %>
- We don't know whether the most recent response to this request contains
- information or not
+<%= _('We don\'t know whether the most recent response to this request contains
+ information or not
&ndash;
- if you are
- <%= user_link(@info_request.user) %>,
- please
- <%= link_to "sign in", signin_url(:r => request.request_uri) %>
- and let everyone know.
+ if you are {{user_link}} please <a href="%s">sign in</a> and let everyone know.',:user_link=>user_link(@info_request.user)) % [signin_url(:r => request.request_uri)] %>
<% end %>
diff --git a/app/views/request/_followup.rhtml b/app/views/request/_followup.rhtml
index c2be323a2..8c279d234 100644
--- a/app/views/request/_followup.rhtml
+++ b/app/views/request/_followup.rhtml
@@ -1,54 +1,52 @@
<div id="followup">
<% if @internal_review %>
- <h1>Request an internal review
- from <%=h OutgoingMailer.name_for_followup(@info_request, nil) %>
+ <h1><%= _('Request an internal review from') %> <%=h OutgoingMailer.name_for_followup(@info_request, nil) %>
</h1>
<% elsif incoming_message.nil? || !incoming_message.valid_to_reply_to? %>
- <h2>Send a public follow up message
- to <%=h OutgoingMailer.name_for_followup(@info_request, nil) %>
+ <h2><%= _('Send a public follow up message to') %> <%=h OutgoingMailer.name_for_followup(@info_request, nil) %>
</h2>
<% else %>
- <h2>Send a public reply to
+ <h2><%= _('Send a public reply to') %>
<%=h OutgoingMailer.name_for_followup(@info_request, incoming_message) %>
</h2>
<% end %>
<% if @info_request.allow_new_responses_from == 'nobody' %>
- <p>Follow ups and new responses to this request have been stopped to prevent spam. Please
- <a href="/help/contact">contact us</a> if you are <%= user_link(@info_request.user) %>
- and need to send a follow up.</p>
+ <p><%= _('Follow ups and new responses to this request have been stopped to prevent spam. Please
+ <a href="%s">contact us</a> if you are {{user_link}} and need to send a follow up.',:user_link=>user_link(@info_request.user) ) % [help_contact_path] %></p>
<% else %>
<% if @internal_review %>
<p>
- If you are dissatisfied by the response you got from
+ <%= _('If you are dissatisfied by the response you got from
the public authority, you have the right to
- complain (<a href="http://foiwiki.com/foiwiki/index.php/Internal_reviews">details</a>).
+ complain (<a href="%s">details</a>).') % "http://foiwiki.com/foiwiki/index.php/Internal_reviews" %>
</p>
<% end %>
- <p>Please <strong>only</strong> write messages directly relating to your
- request '<%= request_link(@info_request) %>'. If you would like to ask for information
- that was not in your original request, then
- <%= link_to "file a new request", new_request_to_body_url(:url_name => @info_request.public_body.url_name) %>.
+ <p>
+ <%= _('Please <strong>only</strong> write messages directly relating to your
+ request {{request_link}}. If you would like to ask for information
+ that was not in your original request, then <a href="%s">file a new request</a>.',:request_link=>request_link(@info_request)) % [new_request_to_body_url(:url_name => @info_request.public_body.url_name)] %>
</p>
<% status = @info_request.calculate_status %>
<% if status == 'waiting_response_overdue' %>
- <p>The response to your request has been <strong>delayed</strong>. You can say that,
+ <p><%= _('The response to your request has been <strong>delayed</strong>. You can say that,
by law, the authority should normally have responded
- <strong>promptly</strong> and
+ <strong>promptly</strong> and') %>
<% if @info_request.public_body.is_school? %>
- in term time
+ <%= _('in term time') %>
<% end %>
- by <strong><%= simple_date(@info_request.date_response_required_by) %></strong>
- (<%= link_to "details", "/help/requesting#quickly_response" %>).
+ <%= _('by <strong>{{date}}</strong>',:date=>simple_date(@info_request.date_response_required_by)) %>
+ (<%= _('<a href="%s">details</a>') % ["#{help_requesting_path}#quickly_response"] %>).
+
</p>
<% elsif status == 'waiting_response_very_overdue' %>
<p>
- The response to your request is <strong>long overdue</strong>. You can say that, by
+ <%= _('The response to your request is <strong>long overdue</strong>. You can say that, by
law, under all circumstances, the authority should have responded
- by now (<%= link_to "details", "/help/requesting#quickly_response" %>).
+ by now') %> (<%= _('<a href="%s">details</a>') % ["#{help_requesting_path}#quickly_response"] %>).
</p>
<% end %>
@@ -60,7 +58,7 @@
<% if @internal_review %>
<%= hidden_field_tag "outgoing_message[what_doing]", "internal_review" %>
<% else %>
- <h3>What are you doing?</h3>
+ <h3><%= _('What are you doing?') %></h3>
<% if !@outgoing_message.errors[:what_doing_dummy].nil? %>
<div class="fieldWithErrors">
@@ -70,25 +68,25 @@
<!--
<div>
<%= radio_button "outgoing_message", "what_doing", "new_information", :id => "new_information" %>
- <label for="new_information">I am asking for <strong>new information</strong> </label>
+ <label for="new_information"><%= _('I am asking for <strong>new information</strong>') %> </label>
</div>
-->
<div>
<%= radio_button "outgoing_message", "what_doing", "internal_review", :id => "internal_review" %>
- <label for="internal_review">I am requesting an <strong>internal review</strong>
- (<a href="/help/unhappy">what's that?</a>)
+ <label for="internal_review"><%= _('I am requesting an <strong>internal review</strong>') %>
+ <%= _('<a href="%s">what\'s that?</a>') % ["/help/unhappy"] %>
</label>
</div>
<div>
<%= radio_button "outgoing_message", "what_doing", "normal_sort", :id => "sort_normal" %>
- <label for="sort_normal"><strong>Anything else</strong>, such as clarifying, prompting, thanking</label>
+ <label for="sort_normal"><%= _('<strong>Anything else</strong>, such as clarifying, prompting, thanking') %></label>
</div>
</div>
<% end %>
<% if @internal_review %>
- <p>Edit and add <strong>more details</strong> to the message above,
- explaining why you are dissatisfied with their response.
+ <p><%= _('Edit and add <strong>more details</strong> to the message above,
+ explaining why you are dissatisfied with their response.') %>
</p>
<% end %>
@@ -98,7 +96,7 @@
<% if @internal_review_pass_on %>
<%= hidden_field_tag(:internal_review, 1 ) %>
<% end %>
- <%= submit_tag "Preview your message" %>
+ <%= submit_tag _("Preview your message") %>
</p>
<% end %>
diff --git a/app/views/request/_hidden_correspondence.rhtml b/app/views/request/_hidden_correspondence.rhtml
index 2c168c3fb..0ea6fcddd 100644
--- a/app/views/request/_hidden_correspondence.rhtml
+++ b/app/views/request/_hidden_correspondence.rhtml
@@ -6,26 +6,22 @@
if not incoming_message.nil?
%>
<div class="correspondence" id="incoming-<%=incoming_message.id.to_s%>">
- <p>This response has been hidden. See annotations to find out why.
- If you are the requester, then you may
- <%= link_to "sign in", signin_url(:r => request.request_uri) %>
- to view the response.
+ <p>
+ <%= _('This response has been hidden. See annotations to find out why.
+ If you are the requester, then you may <a href="%s">sign in</a> to view the response.') % [signin_url(:r => request.request_uri)] %>
</p>
</div>
<% elsif [ 'sent', 'followup_sent', 'resent', 'followup_resent' ].include?(info_request_event.event_type) %>
<div class="correspondence" id="outgoing-<%=outgoing_message.id.to_s%>">
- <p>This outgoing message has been hidden. See annotations to
- find out why. If you are the requester, then you may <%= link_to
- "sign in", signin_url(:r => request.request_uri) %> to view the
- response.
+ <p>
+ <%= _('This outgoing message has been hidden. See annotations to
+ find out why. If you are the requester, then you may <a href="%s">sign in</a> to view the response.') % [signin_url(:r => request.request_uri)] %>
</p>
</div>
<% elsif info_request_event.event_type == 'comment' %>
<div class="comment_in_request" id="comment-<%=comment.id.to_s%>">
- <p>This comment has been hidden. See annotations to
- find out why. If you are the requester, then you may <%= link_to
- "sign in", signin_url(:r => request.request_uri) %> to view the
- response.
+ <p><%= _('This comment has been hidden. See annotations to
+ find out why. If you are the requester, then you may <a href="%s">sign in</a> to view the response.') % [signin_url(:r => request.request_uri)]%>
</p>
</div>
<% end %>
@@ -33,5 +29,5 @@
<% elsif info_request_event.prominence == 'hidden' %>
<% # show nothing when hidden %>
<% else %>
- <% raise "unexpected prominence on request event" %>
+ <% raise _("unexpected prominence on request event") %>
<% end %>
diff --git a/app/views/request/_other_describe_state.rhtml b/app/views/request/_other_describe_state.rhtml
index 66f64c27a..1c88f97f8 100644
--- a/app/views/request/_other_describe_state.rhtml
+++ b/app/views/request/_other_describe_state.rhtml
@@ -1,68 +1,73 @@
<% form_for(:incoming_message, @info_request, :url => describe_state_url(:id => @info_request.id)) do |f| %>
- <h2>Hi! We need your help. The person who made the following request
- hasn't told us whether or not it was successful. Would you mind taking
+ <h2><%= _('Hi! We need your help. The person who made the following request
+ hasn\'t told us whether or not it was successful. Would you mind taking
a moment to read it and help us keep the place tidy for everyone?
- Thanks.</h2>
+ Thanks.') %></h2>
<hr> <!------------------------------------------------>
-
+ <h3>This request is still in progress:</h3>
<% if @info_request.described_state != 'internal_review' %>
<div>
<%= radio_button "incoming_message", "described_state", "waiting_response", :id => 'waiting_response' + id_suffix %>
- <label for="waiting_response<%=id_suffix%>"><strong>No response</strong> has been received
- <small>(maybe there's just an acknowledgement)</small></label>
+ <label for="waiting_response<%=id_suffix%>"><%= _('<strong>No response</strong> has been received
+ <small>(maybe there\'s just an acknowledgement)</small>') %></label>
</div>
<% end %>
<% if @info_request.described_state == 'internal_review' %>
<div>
<%= radio_button "incoming_message", "described_state", "internal_review", :id => 'internal_review' + id_suffix %>
- <label for="internal_review<%=id_suffix%>">Still awaiting an <strong>internal review</strong></label>
+ <label for="internal_review<%=id_suffix%>"><%= _('Still awaiting an <strong>internal review</strong>') %></label>
</div>
<% end %>
<% if @info_request.described_state != 'internal_review' %>
<div>
<%= radio_button "incoming_message", "described_state", "waiting_clarification", :id => 'waiting_clarification' + id_suffix %>
- <label for="waiting_clarification<%=id_suffix%>"><strong>Clarification</strong> has been requested</label>
+ <label for="waiting_clarification<%=id_suffix%>"><%= _('<strong>Clarification</strong> has been requested') %></label>
</div>
<% end %>
<div>
<%= radio_button "incoming_message", "described_state", "gone_postal", :id => 'gone_postal' + id_suffix %>
- <label for="gone_postal<%=id_suffix%>">A response will be sent <strong>by post</strong></label>
+ <label for="gone_postal<%=id_suffix%>"><%= _('A response will be sent <strong>by post</strong>') %></label>
</div>
+ <%= render :partial => 'general/custom_state_transitions_pending', :locals => {:id_suffix => id_suffix } %>
+
<hr> <!------------------------------------------------>
+ <h3>This particular request is finished:</h3>
<% if @info_request.described_state == 'internal_review' %>
- <p>The <strong>review has finished</strong> and overall:</p>
+ <p><%= _('The <strong>review has finished</strong> and overall:') %></p>
<% end %>
<div>
<%= radio_button "incoming_message", "described_state", "not_held", :id => 'not_held' + id_suffix %>
- <label for="not_held<%=id_suffix%>">The authority do <strong>not have</strong> the information <small>(maybe they say who does)</small></label>
+ <label for="not_held<%=id_suffix%>"><%= _('The authority do <strong>not have</strong> the information <small>(maybe they say who does)') %></small></label>
</div>
<div>
<%= radio_button "incoming_message", "described_state", "partially_successful", :id => 'partially_successful' + id_suffix %>
- <label for="partially_successful<%=id_suffix%>"><strong>Some of the information</strong> has been sent </label>
+ <label for="partially_successful<%=id_suffix%>"><%= _('<strong>Some of the information</strong> has been sent ') %></label>
</div>
<div>
<%= radio_button "incoming_message", "described_state", "successful", :id => 'successful' + id_suffix %>
- <label for="successful<%=id_suffix%>"><strong>All the information</strong> has been sent</label>
+ <label for="successful<%=id_suffix%>"><%= _('<strong>All the information</strong> has been sent') %></label>
</div>
<div>
<%= radio_button "incoming_message", "described_state", "rejected", :id => 'rejected' + id_suffix %>
- <label for="rejected<%=id_suffix%>">The request has been <strong>refused</strong></label>
+ <label for="rejected<%=id_suffix%>"><%= _('The request has been <strong>refused</strong>') %></label>
</div>
+
+ <%= render :partial => 'general/custom_state_transitions_complete', :locals => {:id_suffix => id_suffix } %>
<hr> <!------------------------------------------------>
<div>
<%= radio_button "incoming_message", "described_state", "error_message", :id => 'error_message' + id_suffix %>
<label for="error_message<%=id_suffix%>">
- An <strong>error message</strong> has been received
+ <%= _('An <strong>error message</strong> has been received') %>
</label>
</div>
diff --git a/app/views/request/_request_listing.rhtml b/app/views/request/_request_listing.rhtml
index ebfbc60a4..492f874f3 100644
--- a/app/views/request/_request_listing.rhtml
+++ b/app/views/request/_request_listing.rhtml
@@ -1,5 +1,5 @@
<% if info_requests.empty? %>
- None found.
+ <%= _('None found.') %>
<% else %>
<% for info_request in info_requests %>
<%= render :partial => 'request/request_listing_single', :locals => { :info_request => info_request } %>
diff --git a/app/views/request/_request_listing_short_via_event.rhtml b/app/views/request/_request_listing_short_via_event.rhtml
index 7cc86a684..cc2a5a162 100644
--- a/app/views/request/_request_listing_short_via_event.rhtml
+++ b/app/views/request/_request_listing_short_via_event.rhtml
@@ -5,8 +5,9 @@ end %>
<div class="request_short_listing">
<h3><%= link_to highlight_words(info_request.title, @highlight_words), request_url(info_request) %></h3>
<p>
- To <%= public_body_link_absolute(info_request.public_body) %>
- by <%= user_link_absolute(info_request.user) %>,
+
+<%= _('To {{public_body_link_absolute}}',:public_body_link_absolute => public_body_link_absolute(info_request.public_body))%>
+<%= _('by {{user_link_absolute}}',:user_link_absolute => user_link_absolute(info_request.user))%>
<%= simple_date(info_request.created_at) %>
</p>
</div>
diff --git a/app/views/request/_request_listing_single.rhtml b/app/views/request/_request_listing_single.rhtml
index 0f6bf33ec..a300010cd 100644
--- a/app/views/request/_request_listing_single.rhtml
+++ b/app/views/request/_request_listing_single.rhtml
@@ -9,9 +9,7 @@
<strong>
<%= info_request.display_status %>
</strong><br>
- Requested from <%= public_body_link(info_request.public_body) %>
- by <%= user_link(info_request.user) %>
- on <%= simple_date(info_request.created_at) %>.
+ <%= _('Requested from {{public_body_name}} by {{info_request_user}} on {{date}}',:public_body_name=>public_body_link(info_request.public_body),:info_request_user=>user_link(info_request.user),:date=>simple_date(info_request.created_at)) %>
</span>
</div>
diff --git a/app/views/request/_request_listing_via_event.rhtml b/app/views/request/_request_listing_via_event.rhtml
index 831ab5836..afacabea5 100644
--- a/app/views/request/_request_listing_via_event.rhtml
+++ b/app/views/request/_request_listing_via_event.rhtml
@@ -25,26 +25,17 @@ end %>
</strong><br>
<% if event.event_type == 'sent' %>
- Request sent to <%= public_body_link_absolute(info_request.public_body) %>
- by <%= user_link_absolute(info_request.user) %>
- on <%= simple_date(event.created_at) %>.
+ <%= _('Request sent to {{public_body_name}} by {{info_request_user}} on {{date}}.',:public_body_name=>public_body_link_absolute(info_request.public_body),:info_request_user=>user_link_absolute(info_request.user),:date=>simple_date(event.created_at )) %>
<% elsif event.event_type == 'followup_sent' %>
<%=event.display_status %>
- sent to <%= public_body_link_absolute(info_request.public_body) %>
- by <%= user_link_absolute(info_request.user) %>
- on <%= simple_date(event.created_at) %>.
+ <%= _('sent to {{public_body_name}} by {{info_request_user}} on {{date}}.',:public_body_name=>public_body_link_absolute(info_request.public_body),:info_request_user=>user_link_absolute(info_request.user),:date=>simple_date(event.created_at )) %>
<% elsif event.event_type == 'response' %>
<%=event.display_status %>
- by <%= public_body_link_absolute(info_request.public_body) %>
- to <%= user_link_absolute(info_request.user) %>
- on <%= simple_date(event.created_at) %>.
+ <%= _('by {{public_body_name}} to {{info_request_user}} on {{date}}.',:public_body_name=>public_body_link_absolute(info_request.public_body),:info_request_user=>user_link_absolute(info_request.user),:date=>simple_date(event.created_at )) %>
<% elsif event.event_type == 'comment' %>
- Request to <%= public_body_link_absolute(info_request.public_body) %>
- by <%= user_link_absolute(info_request.user) %>.
- Annotated by <%= user_link_absolute(event.comment.user) %>
- on <%= simple_date(event.created_at) %>.
+ <%= _('Request to {{public_body_name}} by {{info_request_user}}. Annotated by {{event_comment_user}} on {{date}}.',:public_body_name=>public_body_link_absolute(info_request.public_body),:info_request_user=>user_link_absolute(info_request.user),:event_comment_user=>user_link_absolute(event.comment.user),:date=>simple_date(event.created_at)) %>
<% else %>
- <% raise "unknown event type indexed " + event.event_type %>
+ <% raise _("unknown event type indexed ") + event.event_type %>
<% end %>
</span>
</div>
diff --git a/app/views/request/_sidebar.rhtml b/app/views/request/_sidebar.rhtml
index 12d1e315b..10be34ab9 100644
--- a/app/views/request/_sidebar.rhtml
+++ b/app/views/request/_sidebar.rhtml
@@ -1,8 +1,8 @@
<div id="request_sidebar">
- <h2>Track this request</h2>
+ <h2><%= _('Track this request') %></h2>
<%= render :partial => 'track/tracking_links', :locals => { :track_thing => @track_thing, :own_request => @info_request.user == @user, :location => 'sidebar' } %>
- <h2>Act on what you've learnt</h2>
+ <h2><%= _("Act on what you've learnt") %></h2>
<div class="act_link">
<%= link_to '<img src="/images/helpmeinvestigate.png" alt="" class="rss">', "http://helpmeinvestigate.com/"%>
<%= link_to 'Get help investigating', "http://helpmeinvestigate.com/"%>
@@ -27,7 +27,7 @@
<% view_cache :ttl => 1.day, :tag => ['similar', @info_request.id] do %>
<% if !@xapian_similar.nil? && @xapian_similar.results.size > 0 %>
- <h2>Similar requests</h2>
+ <h2><% _('Similar requests')%></h2>
<% for result in @xapian_similar.results %>
<%= render :partial => 'request/request_listing_short_via_event', :locals => { :event => result[:model], :info_request => result[:model].info_request } %>
<% end %>
@@ -38,11 +38,11 @@
<% end %>
<% end %>
- <p><%= link_to "Event history details", request_details_url(@info_request) %></p>
+ <p><%= link_to _('Event history details'), request_details_url(@info_request) %></p>
<!-- this link with this wording is here for legal reasons, discuss with
board and our lawyer before changing or removing it -->
- <p><small><a href="/help/officers#copyright">Are you the owner of
- any commercial copyright on this page?</a></small></p>
+ <p><small><%= _('<a href="%s">Are you the owner of
+ any commercial copyright on this page?</a>') % [help_officers_path+"#copyright"] %></small></p>
</div>
diff --git a/app/views/request/_sidebar_request_listing.rhtml b/app/views/request/_sidebar_request_listing.rhtml
index e9aeb4f73..ec5a5813d 100644
--- a/app/views/request/_sidebar_request_listing.rhtml
+++ b/app/views/request/_sidebar_request_listing.rhtml
@@ -10,7 +10,7 @@
<strong>
<%= info_request.display_status %>
</strong><br>
- Requested on <%= simple_date(info_request.created_at) %>.
+ <% _('Requested on {{date}}',:date=>simple_date(info_request.created_at)) %>.
</span>
</div>
<% end %>
diff --git a/app/views/request/_view_html_prefix.rhtml b/app/views/request/_view_html_prefix.rhtml
index 486b62d5d..f425735cd 100644
--- a/app/views/request/_view_html_prefix.rhtml
+++ b/app/views/request/_view_html_prefix.rhtml
@@ -3,10 +3,10 @@
<a href="/"><img src="/images/navimg/logo-trans-small.png" alt="WhatDotheyKnow?"></a>
</div>
<div class="view_html_download_link">
- <%=link_to "Download original attachment", @attachment_url %>
+ <%=link_to _("Download original attachment"), @attachment_url %>
<br>(<%=h @attachment.name_of_content_type %>)
</div>
- This is an HTML version of an attachment to the Freedom of Information request
+ <%= _('This is an HTML version of an attachment to the Freedom of Information request')%>
'<%=link_to h(@info_request.title), incoming_message_url(@incoming_message)%>'.
</div>
diff --git a/app/views/request/details.rhtml b/app/views/request/details.rhtml
index 03e5148ef..94d87306d 100644
--- a/app/views/request/details.rhtml
+++ b/app/views/request/details.rhtml
@@ -1,20 +1,20 @@
-<% @title = "Details of request '" + h(@info_request.title) + "'" %>
-<h1><%="Details of request '" + request_link(@info_request) + "'" %></h1>
+<% @title = _("Details of request '") + h(@info_request.title) + "'" %>
+<h1><%= _("Details of request '") + request_link(@info_request) + "'" %></h1>
-<h2>Event history</h2>
+<h2><%= _('Event history') %></h2>
-<p>This table shows the technical details of the internal events that happened
+<p><%= _('This table shows the technical details of the internal events that happened
to this request on WhatDoTheyKnow. This could be used to generate information about
the speed with which authorities respond to requests, the number of requests
-which require a postal response and much more.
+which require a postal response and much more.') %>
</p>
-<p><strong>Caveat emptor!</strong> To use this data in an honourable way, you will need
+<p><%= _('<strong>Caveat emptor!</strong> To use this data in an honourable way, you will need
a good internal knowledge of user behaviour on WhatDoTheyKnow. How,
why and by whom requests are categorised is not straightforward, and there will
be user error and ambiguity. You will also need to understand FOI law, and the
-way authorities use it. Plus you'll need to be an elite statistician. Please
-<a href="/help/contact">contact us</a> with questions.
+way authorities use it. Plus you\'ll need to be an elite statistician. Please
+<a href="%s">contact us</a> with questions.') % [help_contact_path] %>
</p>
<% columns = ['id', 'event_type', 'created_at', 'described_state', 'calculated_state', 'last_described_at' ] %>
@@ -46,10 +46,14 @@ way authorities use it. Plus you'll need to be an elite statistician. Please
<% end %>
</table>
-<p>Here <strong>described</strong> means when a user selected a status for the request, and
+<p>
+<%= _('Here <strong>described</strong> means when a user selected a status for the request, and
the most recent event had its status updated to that value. <strong>calculated</strong> is then inferred by
-WhatDoTheyKnow for intermediate events, which weren't given an explicit
-description by a user. See the <a href="/search">search tips</a> for description of the states.</p>
+WhatDoTheyKnow for intermediate events, which weren\'t given an explicit
+description by a user. See the <a href="%s">search tips</a> for description of the states.') % [search_redirect_path] %>
+</p>
-<p>You can get this page in computer-readable format as part of the main JSON
-page for the request. See the <a href="/help/api">API documentation</a>.</p>
+<p>
+<%= _('You can get this page in computer-readable format as part of the main JSON
+page for the request. See the <a href="%s">API documentation</a>.') % [help_api_path] %>
+</p>
diff --git a/app/views/request/followup_bad.rhtml b/app/views/request/followup_bad.rhtml
index f3e9f07d7..306eddd10 100644
--- a/app/views/request/followup_bad.rhtml
+++ b/app/views/request/followup_bad.rhtml
@@ -1,32 +1,31 @@
<% if @incoming_message.nil? || !@incoming_message.valid_to_reply_to? %>
- <% @title = "Unable to send follow up message to " + OutgoingMailer.name_for_followup(@info_request, nil) %>
+ <% @title = _("Unable to send follow up message to {{username}}",:username=>OutgoingMailer.name_for_followup(@info_request, nil)) %>
<% else %>
- <% @title = "Unable to send a reply to " + OutgoingMailer.name_for_followup(@info_request, @incoming_message) %>
+ <% @title = _("Unable to send a reply to {{username}}",:username=>OutgoingMailer.name_for_followup(@info_request, @incoming_message)) %>
<% end %>
<h1><%=@title%></h1>
<% if @reason == 'not_apply' %>
<!-- we should never get here, but just in case give a sensible message -->
- <p>Freedom of Information law no longer applies to <%=h @info_request.public_body.name %>.
- From the request page, try replying to a particular message, rather than sending
+ <p><%= _('Freedom of Information law no longer applies to') %> <%=h @info_request.public_body.name %>.
+ <%= _('From the request page, try replying to a particular message, rather than sending
a general followup. If you need to make a general followup, and know
- an email which will go to the right place, please <a href="/help/contact">send it to us</a>.
+ an email which will go to the right place, please <a href="%s">send it to us</a>.') % [help_contact_path] %>
</p>
<% elsif @reason == 'defunct' %>
<!-- we should never get here, but just in case give a sensible message -->
- <p><%=h @info_request.public_body.name %> no longer exists. If you are trying to make
+ <p><%=h @info_request.public_body.name %> <%= _('no longer exists. If you are trying to make
From the request page, try replying to a particular message, rather than sending
a general followup. If you need to make a general followup, and know
- an email which will go to the right place, please <a href="/help/contact">send it to us</a>.
+ an email which will go to the right place, please <a href="%s">send it to us</a>.') % [help_contact_path] %>
</p>
<% elsif @reason == 'bad_contact' %>
- <p>We do not have a working <%=h @info_request.law_used_full %>
- address for <%=h @info_request.public_body.name %>. You may be able to find
+ <p><%= _('We do not have a working {{law_used_full}} address for {{public_body_name}}.',:law_used_full=>h(@info_request.law_used_full),:public_body_name=>h(@info_request.public_body.name)) %> <%= _('You may be able to find
one on their website, or by phoning them up and asking. If you manage
- to find one, then please <a href="/help/contact">send it to us</a>.
+ to find one, then please <a href="%s">send it to us</a>.') % [help_contact_path] %>
</p>
<% else %>
- <% raise "unknown reason " + @reason %>
+ <% raise _("unknown reason ") + @reason %>
<% end %>
diff --git a/app/views/request/followup_preview.rhtml b/app/views/request/followup_preview.rhtml
index f711575a8..50c64138f 100644
--- a/app/views/request/followup_preview.rhtml
+++ b/app/views/request/followup_preview.rhtml
@@ -1,26 +1,26 @@
-<% @title = "Preview follow up to '" + h(@info_request.public_body.name) + "'" %>
+<% @title = _("Preview follow up to '") + h(@info_request.public_body.name) + "'" %>
<div id="followup">
<% form_for(:outgoing_message, @outgoing_message, :html => { :id => 'preview_form' }, :url => (@incoming_message.nil? ? show_response_no_followup_url(:id => @info_request.id) : show_response_url(:id => @info_request.id, :incoming_message_id => @incoming_message.id)) + "#followup" ) do |o| %>
<% if @internal_review %>
- <h1>Now preview your message asking for an internal review</h1>
+ <h1><%= _('Now preview your message asking for an internal review') %></h1>
<% else %>
- <h1>Now preview your follow up</h1>
+ <h1><%= _('Now preview your follow up') %></h1>
<% end %>
<ul>
- <li>Check you haven't included any <strong>personal information</strong>.</li>
- <li>Your message will appear in <strong>search engines</strong></li>
+ <li><%= _('Check you haven\'t included any <strong>personal information</strong>.') %></li>
+ <li><%= _('Your message will appear in <strong>search engines</strong>') %></li>
</ul>
<% fields_for :outgoing_message do |o| %>
<div class="correspondence" id="outgoing-0">
<p class="preview_subject">
- <strong>To:</strong> <%=h OutgoingMailer.name_for_followup(@info_request, @incoming_message) %>
- <br><strong>Subject:</strong> <%=h OutgoingMailer.subject_for_followup(@info_request, @outgoing_message) %>
+ <strong><%= _('To:') %></strong> <%=h OutgoingMailer.name_for_followup(@info_request, @incoming_message) %>
+ <br><strong><%= _('Subject:') %></strong> <%=h OutgoingMailer.subject_for_followup(@info_request, @outgoing_message) %>
</p>
<div class="correspondence_text">
@@ -34,8 +34,8 @@
<% end %>
<p>
- <strong>Privacy warning:</strong> Your message, and any response
- to it, will be displayed publicly on this website.
+ <%= _('<strong>Privacy warning:</strong> Your message, and any response
+ to it, will be displayed publicly on this website.') %>
<%= o.hidden_field(:what_doing) %>
</p>
@@ -46,8 +46,8 @@
<% if @internal_review_pass_on %>
<%= hidden_field_tag(:internal_review, 1 ) %>
<% end %>
- <%= submit_tag "Re-edit this message", :name => 'reedit' %>
- <%= submit_tag "Send message", :name => 'submit' %>
+ <%= submit_tag _("Re-edit this message"), :name => 'reedit' %>
+ <%= submit_tag _("Send message"), :name => 'submit' %>
</p>
<% end %>
diff --git a/app/views/request/hidden.rhtml b/app/views/request/hidden.rhtml
index 0dcd66cb4..a4afb63c6 100644
--- a/app/views/request/hidden.rhtml
+++ b/app/views/request/hidden.rhtml
@@ -1,4 +1,4 @@
-<% @title = "Request has been removed" %>
+<% @title = _("Request has been removed") %>
<h1><%=@title%></h1>
@@ -6,16 +6,13 @@
<%=@details%>
</p>
-<p>The request you have tried to view has been removed. There are
-various reasons why we might have done this, sorry we can't
-be more specific here. Please <a
- href="/help/contact">contact us</a> if you have any questions.
+<p><%= _('The request you have tried to view has been removed. There are
+various reasons why we might have done this, sorry we can\'t be more specific here. Please <a
+ href="%s">contact us</a> if you have any questions.') % [help_contact_path] %>
</p>
<% if @info_request.prominence == 'requester_only' %>
<p>
- If you are the requester, then you may
- <%= link_to "sign in", signin_url(:r => request.request_uri) %>
- to view the request.
+ <%= _('If you are the requester, then you may <a href="%s">sign in</a> to view the request.') % [signin_url(:r => request.request_uri)] %>
</p>
<% end %>
diff --git a/app/views/request/list.rhtml b/app/views/request/list.rhtml
index 90e5f4605..9e12b4175 100644
--- a/app/views/request/list.rhtml
+++ b/app/views/request/list.rhtml
@@ -1,9 +1,9 @@
<div id="list_sidebar">
-<h1>Show only...</h1>
+<h1><%= _('Show only...')%></h1>
<ul>
<% for view, description, target in [
- ['successful', "Successful responses", request_list_successful_url(:view => 'successful')],
- ['recent', "Recently sent requests", request_list_recent_url(:view => 'recent')]
+ ['successful', _('Successful responses'), request_list_successful_url(:view => 'successful')],
+ ['recent', _('Recently sent requests'), request_list_recent_url(:view => 'recent')]
] %>
<li>
<%= link_to_unless (@view == view), description, target %>
@@ -20,13 +20,13 @@
<% view_cache :ttl => 5.minutes, :tag => [@view, @page] do %>
<% if @list_results.empty? %>
- <p>No requests of this sort yet.</p>
+ <p> <%= _('No requests of this sort yet.')%></p>
<% else %>
<% for result in @list_results%>
<% if result.class.to_s == 'InfoRequestEvent' %>
<%= render :partial => 'request/request_listing_via_event', :locals => { :event => result, :info_request => result.info_request } %>
<% else %>
- <p><strong>Unexpected search result type <%=result.class.to_s%></strong></p>
+ <p><strong><%= _('Unexpected search result type') %> <%=result.class.to_s%></strong></p>
<% end %>
<% end %>
<% end %>
diff --git a/app/views/request/new.rhtml b/app/views/request/new.rhtml
index e9e89aa5d..a97116aa3 100644
--- a/app/views/request/new.rhtml
+++ b/app/views/request/new.rhtml
@@ -1,12 +1,11 @@
-<% @title = "Make an " + h(@info_request.law_used_short) + " request to '" + h(@info_request.public_body.name) + "'" %>
+<% @title = _("Make an {{law_used_short}} request to '{{public_body_name}}'",:law_used_short=>h(@info_request.law_used_short),:public_body_name=>h(@info_request.public_body.name)) %>
<% if @existing_request %>
<div class="errorExplanation" id="errorExplanation"><ul>
<li>
- <%= user_or_you_capital_link(@existing_request.user) %> already
- created the same request on <%=simple_date(@existing_request.created_at)%>.
- You can either view the <a href="<%=request_url(@existing_request)%>">existing request</a>,
- or edit the details below to make a new but similar request.
+ <%= _('{{existing_request_user}} already
+ created the same request on {{date}}. You can either view the <a href="{{existing_request}}">existing request</a>,
+ or edit the details below to make a new but similar request.',:existing_request_user=>user_or_you_capital_link(@existing_request.user), :date=>simple_date(@existing_request.created_at), :existing_request=>request_url(@existing_request)) %>
</li>
</ul></div>
<% end %>
@@ -14,75 +13,71 @@
<%= foi_error_messages_for :info_request, :outgoing_message %>
<div id="request_advice">
- <h1>Read this before writing your <%=h(@info_request.law_used_full)%> request</h1>
+ <h1><%= _('Read this before writing your {{info_request_law_used_full}} request', :info_request_law_used_full=>h(@info_request.law_used_full)) %></h1>
<ul>
<li>
<% form_tag("http://www.google.co.uk/search", {:id => "search_body_website_form", :method => "get"} ) do %>
<p>
- First,
+ <%= _('First,') %>
<% if !@info_request.public_body.publication_scheme.empty? %>
- <strong>browse</strong> the authority's
- <%= link_to "publication scheme", @info_request.public_body.publication_scheme %>
- or <strong>search</strong> their web site ...
+ <%= _('<strong>browse</strong> the authority\'s <a href="%s">publication scheme</a> or <strong>search</strong> their web site ...') % [@info_request.public_body.publication_scheme] %>
<% else %>
- <strong>search</strong> the authority's web site ...
+ <%= _('<strong>search</strong> the authority\'s web site ...') %>
<% end %>
<% if !@info_request.public_body.calculated_home_page.nil? %>
<br>
&nbsp; &nbsp; &nbsp; &nbsp; <%= text_field_tag 'q', params[:q], { :size => 20 } %>
<%= hidden_field_tag 'as_sitesearch', @info_request.public_body.calculated_home_page %>
- <%= submit_tag "Search" %>
+ <%= submit_tag _("Search") %>
<% end %>
<br>
- ... to check that the info isn't already published.
+ ... <%= _('to check that the info isn\'t already published.') %>
</p>
<% end %>
</li>
<li>
<% if @info_request.public_body.info_requests.size > 0 %>
- Browse <%= link_to "other requests", public_body_url(@info_request.public_body) %>
- to '<%= h(@info_request.public_body.name) %>'
- for examples of how to word your request.
+ <%= _("Browse <a href='%s'>other requests</a> to '{{public_body_name}}' for examples of how to word your request.", :public_body_name=>h(@info_request.public_body.name)) % [public_body_url(@info_request.public_body)] %>
<% else %>
- Browse <%= link_to "other requests", request_list_url %> for examples of how to word your request.
+ <%= _('Browse <a href="%s">other requests</a> for examples of how to word your request.') % [request_list_url] %>
<% end %>
</li>
- <li>Write your request in <strong>simple, precise language</strong>.</li>
- <li>Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries.</li>
- <li>Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href="/help/requesting#focused">why?</a>).</li>
- <li>This site is <strong>public</strong>. Everything you type and any response will be published.</li>
+ <li><%= _('Write your request in <strong>simple, precise language</strong>.') %></li>
+ <li><%= _('Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries.') %></li>
+ <li><%= _('Keep it <strong>focused</strong>, you\'ll be more likely to get what you want (<a href="%s">why?</a>).') % [help_requesting_path + '#focused'] %></li>
+ <li><%= _('This site is <strong>public</strong>. Everything you type and any response will be published.') %></li>
</ul>
<% if @info_request.public_body.has_notes? %>
- <h1>Special note for this authority!</h1>
+ <h1><%= _('Special note for this authority!') %></h1>
<ul>
<li><p><%= @info_request.public_body.notes_as_html %></p></li>
</ul>
<% end %>
<% if @info_request.public_body.eir_only? %>
- <h1>Please ask for environmental information only</h1>
+ <h1><%= _('Please ask for environmental information only') %></h1>
- <p>The Freedom of Information Act <strong>does not apply</strong> to <%=h(@info_request.public_body.name)%>.
- However, you have the right to request environmental
- information under a different law (<a href="/help/requesting#eir">explanation</a>).
- This covers a very wide spectrum of information about the state of
- the <strong>natural and built environment</strong>, such as:
+ <p><%= _('The Freedom of Information Act <strong>does not apply</strong> to') %> <%=h(@info_request.public_body.name)%>.
+ <%= _('However, you have the right to request environmental
+ information under a different law') %> (<a href="/help/requesting#eir">explanation</a>).
+ <%= _('This covers a very wide spectrum of information about the state of
+ the <strong>natural and built environment</strong>, such as:') %>
<ul>
- <li>Air, water, soil, land, flora and fauna (including how these effect
- human beings)</li>
- <li>Information on emissions and discharges (e.g. noise, energy,
- radiation, waste materials)</li>
- <li>Human health and safety</li>
- <li>Cultural sites and built structures (as they may be affected by the
- environmental factors listed above)</li>
- <li>Plans and administrative measures that affect these matters</li>
+ <li><%= _('Air, water, soil, land, flora and fauna (including how these effect
+ human beings)') %></li>
+ <li><%= _('Information on emissions and discharges (e.g. noise, energy,
+ radiation, waste materials)') %></li>
+ <li><%= _('Human health and safety') %></li>
+ <li><%= _('Cultural sites and built structures (as they may be affected by the
+ environmental factors listed above)') %></li>
+ <li><%= _('Plans and administrative measures that affect these matters') %></li>
</ul>
- <p>Please only request information that comes under those categories, <strong>do not waste your
- time</strong> or the time of the public authority by requesting unrelated information.</p>
+ <p><%= _('Please only request information that comes under those categories, <strong>do not waste your
+ time</strong> or the time of the public authority by requesting unrelated information.') %></p>
<% end %>
</div>
@@ -90,58 +85,58 @@
<div id="request_form">
<h1>
- <label class="form_label" for="info_request_public_body_id">To:</label>
+ <label class="form_label" for="info_request_public_body_id"><%= _('To:') %></label>
<span id="to_public_body"><%=h(@info_request.public_body.name)%></span>
</h1>
<p>
- <label class="form_label" for="info_request_title">Summary:</label>
+ <label class="form_label" for="info_request_title"><%= _('Summary:') %></label>
<%= f.text_field :title, :size => 50 %>
</p>
<div class="form_item_note">
- (a one line summary of the information you are requesting,
- e.g.
+ (<%= _('a one line summary of the information you are requesting,
+ e.g.') %>
<% if @info_request.law_used == 'eir' %>
- 'Pollution levels over time for the River Tyne'
+ <%= _("'Pollution levels over time for the River Tyne'") %>
<% else %>
- 'Crime statistics by ward level for Wales'
+ <%= _("'Crime statistics by ward level for Wales'") %>
<% end %>
)
</div>
<% fields_for :outgoing_message do |o| %>
<p>
- <label class="form_label" for="outgoing_message_body">Your request:</label>
+ <label class="form_label" for="outgoing_message_body"><%= _('Your request:') %></label>
<%= o.text_area :body, :rows => 20, :cols => 60 %>
</p>
<% end %>
<% if !@user %>
<p class="form_note">
- Everything that you enter on this page, including <strong>your name</strong>,
+ <%= _('Everything that you enter on this page, including <strong>your name</strong>,
will be <strong>displayed publicly</strong> on
- this website forever (<a href="/help/privacy#public_request">why?</a>).
- If you are thinking of using a pseudonym,
- please <a href="/help/privacy#real_name">read this first</a>.
+ this website forever (<a href="%s">why?</a>).') % [help_privacy_path+"#public_request"] %>
+ <%= _('If you are thinking of using a pseudonym,
+ please <a href="%s">read this first</a>.') % [help_privacy_path+"#public_request"] %>
</p>
<% else %>
<p class="form_note">
- Everything that you enter on this page
+ <%= _('Everything that you enter on this page
will be <strong>displayed publicly</strong> on
- this website forever (<a href="/help/privacy#public_request">why?</a>).
+ this website forever (<a href="%s">why?</a>).') % [help_privacy_path+"#public_request"] %>
</p>
<% end %>
<p class="form_note">
- <strong>Can I request information about myself?</strong>
- <a href="/help/requesting#data_protection">No! (Click here for details)</a>
+ <%= _('<strong> Can I request information about myself?</strong>
+ <a href="%s">No! (Click here for details)</a>') % [help_requesting_path+"#data_protection"] %>
</p>
<div class="form_button">
<%= f.hidden_field(:public_body_id, { :value => @info_request.public_body_id } ) %>
<%= hidden_field_tag(:submitted_new_request, 1 ) %>
<%= hidden_field_tag(:preview, 1 ) %>
- <%= submit_tag "Preview your public request" %>
+ <%= submit_tag _("Preview your public request") %>
</div>
<% if !@info_request.tag_string.empty? %>
diff --git a/app/views/request/new_bad_contact.rhtml b/app/views/request/new_bad_contact.rhtml
index 86dac9899..41a2cef4d 100644
--- a/app/views/request/new_bad_contact.rhtml
+++ b/app/views/request/new_bad_contact.rhtml
@@ -1,10 +1,10 @@
-<% @title = "Missing contact details for '" + h(@info_request.public_body.name) + "'" %>
+<% @title = _("Missing contact details for '") + h(@info_request.public_body.name) + "'" %>
<h1><%=@title%></h1>
-<p>Unfortunately, we do not have a working <%=h @info_request.law_used_full %>
-address for <%=h @info_request.public_body.name %>. You may be able to find
+<p><%= _('Unfortunately, we do not have a working {{info_request_law_used_full}}
+address for'),:info_request_law_used_full => @info_request.law_used_full %> <%=h @info_request.public_body.name %>. <%= _('You may be able to find
one on their website, or by phoning them up and asking. If you manage
-to find one, then please <a href="/help/contact">send it to us</a>.
+to find one, then please <a href="%s">send it to us</a>.') % [help_contact_path] %>
</p>
diff --git a/app/views/request/new_please_describe.rhtml b/app/views/request/new_please_describe.rhtml
index 932731e37..ce80f51f0 100644
--- a/app/views/request/new_please_describe.rhtml
+++ b/app/views/request/new_please_describe.rhtml
@@ -2,8 +2,8 @@
<h1><%=@title%></h1>
-<p>Please select each of these requests in turn, and <strong>let everyone know</strong>
-if they are successful yet or not.
+<p><%= _('Please select each of these requests in turn, and <strong>let everyone know</strong>
+if they are successful yet or not.') %>
</p>
<ul>
@@ -13,13 +13,11 @@ if they are successful yet or not.
</ul>
<p>
- When you're done, <strong>come back here</strong>,
- <%= link_to "reload this page", request.request_uri %>
- and file your new request.
+ <%= _('When you\'re done, <strong>come back here</strong>, <a href="%s">reload this page</a> and file your new request.') % [request.request_uri] %>
</p>
<p>
- Thanks very much for helping keep everything <strong>neat and organised</strong>.
- We'll also, if you need it, give you advice on what to do next about each of your
- requests.
+ <%= _('Thanks very much for helping keep everything <strong>neat and organised</strong>.
+ We\'ll also, if you need it, give you advice on what to do next about each of your
+ requests.') %>
</p>
diff --git a/app/views/request/preview.rhtml b/app/views/request/preview.rhtml
index 8c651bb36..6f6ecb2f9 100644
--- a/app/views/request/preview.rhtml
+++ b/app/views/request/preview.rhtml
@@ -2,11 +2,11 @@
<% form_for(:info_request, @info_request, :html => { :id => 'preview_form' } ) do |f| %>
- <h1>Now preview your request</h1>
+ <h1><%= _('Now preview your request') %></h1>
<ul>
- <li>Check you haven't included any <strong>personal information</strong>.</li>
- <li>Your name, request and any responses will appear in <strong>search engines</strong>
- (<a href="/help/privacy#public_request">details</a>).
+ <li><%= _('Check you haven\'t included any <strong>personal information</strong>.') %></li>
+ <li><%= _('Your name, request and any responses will appear in <strong>search engines</strong>
+ (<a href="%s">details</a>).') % [help_privacy_path+"#public_request"] %>
</li>
</ul>
@@ -14,8 +14,8 @@
<div class="correspondence" id="outgoing-0">
<p class="preview_subject">
- <strong>To:</strong> <%=h @info_request.public_body.name %>
- <br><strong>Subject:</strong> <%=h @info_request.email_subject_request %>
+ <strong><%= _('To:') %></strong> <%=h @info_request.public_body.name %>
+ <br><strong><%= _('Subject:') %></strong> <%=h @info_request.email_subject_request %>
</p>
<div class="correspondence_text">
@@ -28,8 +28,8 @@
</div>
<% end %>
- <p><strong>Privacy note:</strong> If you want to request private information about
- yourself then <a href="/help/requesting#data_protection">click here</a>.
+ <p><%= _('<strong>Privacy note:</strong> If you want to request private information about
+ yourself then <a href="%s">click here</a>.') % [help_requesting_path+"#data_protection"] %>
<p>
<%= f.hidden_field(:title) %>
@@ -37,12 +37,12 @@
<%= f.hidden_field(:tag_string) %>
<%= hidden_field_tag(:submitted_new_request, 1) %>
<%= hidden_field_tag(:preview, 0 ) %>
- <%= submit_tag "Re-edit this request", :name => 'reedit' %>
- <%= submit_tag "Send public " + h(@info_request.law_used_full) + " request", :name => 'submit' %>
+ <%= submit_tag _("Re-edit this request"), :name => 'reedit' %>
+ <%= submit_tag _("Send public ") + h(@info_request.law_used_full) + " request", :name => 'submit' %>
</p>
<% if !@info_request.tag_string.empty? %>
- <p><strong>Tags:</strong> <%=h @info_request.tag_string %></p>
+ <p><strong><%= _('Tags:') %></strong> <%=h @info_request.tag_string %></p>
<% end %>
<% end %>
diff --git a/app/views/request/show.rhtml b/app/views/request/show.rhtml
index a092ac90a..c8f5f3eed 100644
--- a/app/views/request/show.rhtml
+++ b/app/views/request/show.rhtml
@@ -2,14 +2,14 @@
<% if @info_request.prominence == 'hidden' %>
<p id="hidden_request">
- This request has prominence 'hidden'. You can only see it because you are logged
- in as a super user.
+ <%= _('This request has prominence \'hidden\'. You can only see it because you are logged
+ in as a super user.') %>
</p>
<% end %>
<% if @info_request.prominence == 'requester_only' %>
<p id="hidden_request">
- This request is hidden, so that only you the requester can see it. Please
- <a href="/help/contact">contact us</a> if you are not sure why.
+ <%= _('This request is hidden, so that only you the requester can see it. Please
+ <a href="%s">contact us</a> if you are not sure why.') % [help_requesting_path] %>
</p>
<% end %>
@@ -32,98 +32,85 @@
<% end %>
<p class="subtitle">
- <%= user_link(@info_request.user) %>
- <% if !@user.nil? && @user.admin_page_links? %>
- (<%= link_to "admin", user_admin_url(@info_request.user) %>)
- <% end %>
- made this
- <%=h @info_request.law_used_full%> request
- <% if !@user.nil? && @user.admin_page_links? %>
- (<%= link_to "admin", request_admin_url(@info_request) %>)
- <% end %>
- to
- <%= public_body_link(@info_request.public_body) %>
- <% if !@user.nil? && @user.admin_page_links? %>
- (<%= link_to "admin", public_body_admin_url(@info_request.public_body) %>)
- <% end %>
+ <%= _('{{user}} made this {{law_used_full}} request',:user=>user_link(@info_request.user), :law_used_full=>h(@info_request.law_used_full)) %>
+ <% if !@user.nil? && @user.admin_page_links? %>
+ (<%= link_to "admin", request_admin_url(@info_request) %>)
+ <% end %>
+ <%= _('to {{public_body}}',:public_body=>public_body_link(@info_request.public_body)) %>
</p>
<p id="request_status" class="request_icon_line icon_<%= @info_request.calculate_status %>">
<% if @info_request.awaiting_description %>
<% if @is_owning_user %>
- Please <strong>answer the question above</strong> so we know whether the
- <%= MySociety::Format.fancy_pluralize(@new_responses_count, 'recent response contains', 'recent responses contain') %> useful information.
+ <%= _('Please <strong>answer the question above</strong> so we know whether the ')%>
+ <%= MySociety::Format.fancy_pluralize(@new_responses_count, 'recent response contains', 'recent responses contain') %> <%= _('useful information.') %>
<% else %>
- This request has an <strong>unknown status</strong>.
+ <%= _('This request has an <strong>unknown status</strong>.') %>
<% if @old_unclassified %>
- We're waiting for someone to read
+ <%= _('We\'re waiting for someone to read') %>
<%= MySociety::Format.fancy_pluralize(@new_responses_count, 'a recent response', 'recent responses') %>
- and update the status accordingly. Perhaps <strong>you</strong> might like to help out by doing that?
+ <%= _('and update the status accordingly. Perhaps <strong>you</strong> might like to help out by doing that?') %>
<% else %>
- We're waiting for
- <%= user_link(@info_request.user) %> to read
+ <%= _('We\'re waiting for') %>
+ <%= user_link(@info_request.user) %> <%= _('to read') %>
<%= MySociety::Format.fancy_pluralize(@new_responses_count, 'a recent response', 'recent responses') %>
- and update the status.
+ <%= _('and update the status.') %>
<% end %>
<% end %>
<% elsif @status == 'waiting_response' %>
- Currently <strong>waiting for a response</strong> from <%= public_body_link(@info_request.public_body) %>,
- they must respond promptly and
+ <%= _('Currently <strong>waiting for a response</strong> from {{public_body_link}}, they must respond promptly and', :public_body_link=> public_body_link(@info_request.public_body)) %>
<% if @info_request.public_body.is_school? %>
- in term time
+ <%= _('in term time') %>
<% else %>
- normally
+ <%= _('normally') %>
<% end %>
- no later than <strong><%= simple_date(@info_request.date_response_required_by) %></strong>
+ <%= _('no later than') %> <strong><%= simple_date(@info_request.date_response_required_by) %></strong>
(<%= link_to "details", "/help/requesting#quickly_response" %>).
<% elsif @status == 'waiting_response_overdue' %>
- Response to this request is <strong>delayed</strong>.
- By law, <%= public_body_link(@info_request.public_body) %> should
- normally have responded <strong>promptly</strong> and
+ <%= _('Response to this request is <strong>delayed</strong>.') %>
+ <%= _('By law, {{public_body_link}} should normally have responded <strong>promptly</strong> and',:public_body_link=>public_body_link(@info_request.public_body)) %>
<% if @info_request.public_body.is_school? %>
- in term time
+ <%= _('in term time') %>
<% end %>
- by <strong><%= simple_date(@info_request.date_response_required_by) %></strong>
- (<%= link_to "details", "/help/requesting#quickly_response" %>).
+ <%= _('by') %> <strong><%= simple_date(@info_request.date_response_required_by) %></strong>
+ (<%= _('<a href="%s">details</a>') % [help_requesting_path + '#quickly_response'] %>)
<% elsif @status == 'waiting_response_very_overdue' %>
- Response to this request is <strong>long overdue</strong>.
- By law, under all circumstances, <%= public_body_link(@info_request.public_body) %>
- should have responded by now
- (<%= link_to "details", "/help/requesting#quickly_response" %>).
- You can <strong>complain</strong> by
- <%= link_to "requesting an internal review", show_response_no_followup_url(:id => @info_request.id, :incoming_message_id => nil) + "?internal_review=1#followup" %>.
+ <%= _('Response to this request is <strong>long overdue</strong>.') %>
+ <%= _('By law, under all circumstances, {{public_body_link}} should have responded by now',:public_body_link => public_body_link(@info_request.public_body)) %>
+ (<%= _('<a href="%s">details</a>') % [help_requesting_path + '#quickly_response'] %>).
+ <%= _('You can <strong>complain</strong> by') %>
+ <%= link_to _("requesting an internal review"), show_response_no_followup_url(:id => @info_request.id, :incoming_message_id => nil) + "?internal_review=1#followup" %>.
<% elsif @status == 'not_held' %>
- <%= public_body_link(@info_request.public_body) %> <strong>did not have</strong> the information requested.
+ <%= public_body_link(@info_request.public_body) %> <%= _('<strong>did not have</strong> the information requested.') %>
<% elsif @status == 'rejected' %>
- The request was <strong>refused</strong> by <%= public_body_link(@info_request.public_body) %>.
+ <%= _('The request was <strong>refused</strong> by') %> <%= public_body_link(@info_request.public_body) %>.
<% elsif @status == 'successful' %>
- The request was <strong>successful</strong>.
+ <%= _('The request was <strong>successful</strong>.') %>
<% elsif @status == 'partially_successful' %>
- The request was <strong>partially successful</strong>.
+ <%= _('The request was <strong>partially successful</strong>.') %>
<% elsif @status == 'waiting_clarification' %>
<% if @is_owning_user %>
- <%=h @info_request.public_body.name %> is <strong>waiting for your clarification</strong>.
- Please
- <%= link_to "send a follow up message", respond_to_last_url(@info_request) + '#followup' %>.
+ <%=h @info_request.public_body.name %> <%= _('is <strong>waiting for your clarification</strong>.') %>
+ <%= _('Please') %>
+ <%= link_to _("send a follow up message"), respond_to_last_url(@info_request) + '#followup' %>.
<% else %>
- The request is <strong>waiting for clarification</strong>.
- If you are
- <%= user_link(@info_request.user) %>, please
- <%= link_to "sign in", signin_url(:r => request.request_uri) %> to send a follow up message.
+ <%= _('The request is <strong>waiting for clarification</strong>.') %>
+ <%= _('If you are {{user_link}}, please',:user_link=>user_link(@info_request.user)) %>
+ <%= link_to _("sign in"), signin_url(:r => request.request_uri) %> <%= _('to send a follow up message.') %>
<% end %>
<% elsif @status == 'gone_postal' %>
- The authority would like to / has <strong>responded by post</strong> to this request.
+ <%= _('The authority would like to / has <strong>responded by post</strong> to this request.') %>
<% elsif @status == 'internal_review' %>
- Waiting for an <strong>internal review</strong> by <%= public_body_link(@info_request.public_body) %> of their handling of this request.
+ <%= _('Waiting for an <strong>internal review</strong> by {{public_body_link}} of their handling of this request.',:public_body_link=>public_body_link(@info_request.public_body)) %>
<% elsif @status == 'error_message' %>
- There was a <strong>delivery error</strong> or similar, which needs fixing by the WhatDoTheyKnow team.
+ <%= _('There was a <strong>delivery error</strong> or similar, which needs fixing by the WhatDoTheyKnow team.') %>
<% elsif @status == 'requires_admin' %>
- This request has had an unusual response, and <strong>requires attention</strong> from the WhatDoTheyKnow team.
+ <%= _('This request has had an unusual response, and <strong>requires attention</strong> from the WhatDoTheyKnow team.') %>
<% elsif @status == 'user_withdrawn' %>
- This request has been <strong>withdrawn</strong> by the person who made it.
- There may be an explanation in the correspondence below.
+ <%= _('This request has been <strong>withdrawn</strong> by the person who made it.
+ There may be an explanation in the correspondence below.') %>
<% else %>
- <% raise "unknown status " + @status %>
+ <%= render :partial => 'general/custom_state_descriptions', :locals => { :status => @status } %>
<% end %>
</p>
diff --git a/app/views/request/show_response.rhtml b/app/views/request/show_response.rhtml
index 771081694..40c3b3d5b 100644
--- a/app/views/request/show_response.rhtml
+++ b/app/views/request/show_response.rhtml
@@ -10,44 +10,44 @@
<% if @gone_postal %>
<div class="gone_postal_help">
- <h1>Which of these is happening?</h1>
+ <h1><%= _('Which of these is happening?') %></h1>
<dl>
<dt>
- The authority say that they <strong>need a postal
- address</strong>, not just an email, for it to be a valid FOI request
+ <%= _('The authority say that they <strong>need a postal
+ address</strong>, not just an email, for it to be a valid FOI request') %>
</dt>
<dd>
- The law, the Ministry of Justice and the Information Commissioner
- all say that an email is sufficient (<a href="/help/privacy#full_address">more details</a>).
- At the bottom of this page, write a reply to the authority explaining this to them.
+ <%= _('The law, the Ministry of Justice and the Information Commissioner
+ all say that an email is sufficient (<a href="%s">more details</a>).
+ At the bottom of this page, write a reply to the authority explaining this to them.') % [help_privacy_path + '#full_address'] %>
</dd>
<dt>
- The authority only has a <strong>paper copy</strong> of the information.
+ <%= _('The authority only has a <strong>paper copy</strong> of the information.') %>
</dt>
<dd>
- At the bottom of this page, write a reply to them trying to persuade them to scan it in
- (<a href="/help/privacy#postal_answer">more details</a>).
+ <%= _('At the bottom of this page, write a reply to them trying to persuade them to scan it in
+ (<a href="%s">more details</a>).') % [help_privacy_path + '#postal_answer'] %>
</dd>
<dt>
- You want to <strong>give your postal address</strong> to the authority in private.
+ <%= _('You want to <strong>give your postal address</strong> to the authority in private.') %>
</dt>
<dd>
- To do that please send a private email to <%=h(@postal_email_name)%>
+ <%= _('To do that please send a private email to ') %><%=h(@postal_email_name)%>
&lt;<%=link_to h(@postal_email), "mailto:" + @postal_email%>&gt;
- containing your postal address, and asking them to reply to this request.
- Or you could phone them.
+ <%= _('containing your postal address, and asking them to reply to this request.
+ Or you could phone them.') %>
- When you receive the paper response, please help
- others find out what it says:
+ <%= _('When you receive the paper response, please help
+ others find out what it says:') %>
<ul>
- <li>Add an annotation to your request with choice quotes, or
- a <strong>summary of the response</strong>.</li>
- <li>If you can, scan in or photograph the response, and <strong>send us
- a copy to upload</strong>.</li>
+ <li><%= _('Add an annotation to your request with choice quotes, or
+ a <strong>summary of the response</strong>.') %></li>
+ <li><%= _('If you can, scan in or photograph the response, and <strong>send us
+ a copy to upload</strong>.') %></li>
</ul>
</dd>
@@ -59,13 +59,13 @@
<% if !@incoming_message.nil? %>
<% if @is_owning_user %>
<% if @incoming_message.recently_arrived %>
- <h2>New response to your request '<%= request_link @info_request %>'</h2>
+ <h2><%= _('New response to your request') %> '<%= request_link @info_request %>'</h2>
<% else %>
- <h2>Response to your request '<%= request_link @info_request %>'</h2>
+ <h2><%= _('Response to your request') %> '<%= request_link @info_request %>'</h2>
<% end %>
<% else %>
<% if @incoming_message.recently_arrived %>
- <h2>New response to <%=h(@info_request.law_used_short)%> request '<%= request_link @info_request %>'</h2>
+ <h2><%= _('New response to {{law_used_short}} request',:law_used_short => h(@info_request.law_used_short))%> '<%= request_link @info_request %>'</h2>
<% else %>
<h2>Response to <%=h(@info_request.law_used_short)%> request '<%= request_link @info_request %>'</h2>
<% end %>
diff --git a/app/views/request/similar.rhtml b/app/views/request/similar.rhtml
index 33034d43b..d9806aeb1 100644
--- a/app/views/request/similar.rhtml
+++ b/app/views/request/similar.rhtml
@@ -4,7 +4,7 @@
<!-- Important terms: <%= @xapian_object.important_terms.join(" ") %> -->
<% if @xapian_object.results.empty? %>
- <p>No similar requests found.</p>
+ <p><%= _('No similar requests found.')%></p>
<% else %>
<!--
<p class="subtitle">
@@ -15,7 +15,7 @@
<% if result[:model].class.to_s == 'InfoRequestEvent' %>
<%= render :partial => 'request/request_listing_via_event', :locals => { :event => result[:model], :info_request => result[:model].info_request } %>
<% else %>
- <p><strong>Unexpected search result type <%=result[:model].class.to_s%></strong></p>
+ <p><strong><%= _('Unexpected search result type ')%><%=result[:model].class.to_s%></strong></p>
<% end %>
<% end %>
<% end %>
diff --git a/app/views/request/upload_response.rhtml b/app/views/request/upload_response.rhtml
index 0f8329f8a..eaa6602a1 100644
--- a/app/views/request/upload_response.rhtml
+++ b/app/views/request/upload_response.rhtml
@@ -2,42 +2,42 @@
<%= foi_error_messages_for :comment %>
-<h1>Respond to the FOI request '<%=request_link(@info_request)%>' made by <%=user_link(@info_request.user) %></h1>
+<h1><%= _('Respond to the FOI request')%> '<%=request_link(@info_request)%>'<% _(' made by ')%><%=user_link(@info_request.user) %></h1>
<p>
- Your response will <strong>appear on the Internet</strong>, <a href="/help/officers">read why</a> and answers to other questions.
+ <%= _('Your response will <strong>appear on the Internet</strong>, <a href="%s">read why</a> and answers to other questions.')% [help_officers_path] %>
</p>
-<h2>Respond by email</h2>
+<h2><%= _('Respond by email')%></h2>
-<p>You should have received a copy of the request by email, and you can respond
-by <strong>simply replying</strong> to that email. For your convenience, here is the address:
+<p><%= _('You should have received a copy of the request by email, and you can respond
+by <strong>simply replying</strong> to that email. For your convenience, here is the address:')%>
<a href="mailto:<%=h @info_request.incoming_email%>"><%=h @info_request.incoming_email%></a>.
-You may <strong>include attachments</strong>. If you would like to attach a
-file too large for email, use the form below.
+<%= _('You may <strong>include attachments</strong>. If you would like to attach a
+file too large for email, use the form below.')%>
</p>
-<h2>Respond using the web</h2>
+<h2><%= _('Respond using the web')%></h2>
-<p>Enter your response below. You may attach one file (use email, or
-<a href="/help/contact">contact us</a> if you need more).</p>
+<p><%= _('Enter your response below. You may attach one file (use email, or
+<a href="%s">contact us</a> if you need more).')% [help_contact_path] %></p>
<% form_tag '', :html => { :id => 'upload_response_form' }, :multipart => true do %>
<p>
- <label class="form_label" for="body">Response:</label>
+ <label class="form_label" for="body"><% _('Response:')%></label>
<%= text_area_tag :body, "", :rows => 10, :cols => 55 %>
</p>
<p>
- <label class="form_label" for="file_1">Attachment (optional):</label>
+ <label class="form_label" for="file_1"><% _('Attachment (optional):')%></label>
<%= file_field_tag :file_1, :size => 35 %>
</p>
<p>
<%= hidden_field_tag 'submitted_upload_response', 1 %>
<%= submit_tag "Upload FOI response" %>
- (<strong>patience</strong>, especially for large files, it may take a while!)
+ <%= _(' (<strong>patience</strong>, especially for large files, it may take a while!)')%>
</p>
<% end %>
diff --git a/app/views/request_game/play.rhtml b/app/views/request_game/play.rhtml
index 36e9adac7..acf6cce87 100644
--- a/app/views/request_game/play.rhtml
+++ b/app/views/request_game/play.rhtml
@@ -1,11 +1,10 @@
-<% @title = 'Play the request categorisation game!' %>
+<% @title = _("Play the request categorisation game!") %>
<div id="game_sidebar">
<p style="text-align: center">
<img width=250 height=125 src="http://chart.apis.google.com/chart?chs=250x125&cht=gom&chd=t:<%=@percentage%>" alt="<%=@percentage%>% of requests have been categorised">
<br><%=pluralize(@missing, 'request')%> left to categorise / <%=@total %> total
</p>
-
<h2>Top recent players</h2>
<table>
<% c = 0; for user, count in @league_table_28_days %>
@@ -28,25 +27,20 @@
<% end %>
</table>
</div>
-
-<h2>Play the request categorisation game!</h2>
-
-<p>Some people who've made requests haven't let us know whether they were
+<h2><%= _("Play the request categorisation game!")%></h2>
+<p><%= _("Some people who've made requests haven't let us know whether they were
successful or not. We need <strong>your</strong> help &ndash;
choose one of these requests, read it, and let everyone know whether or not the
-information has been provided. Everyone'll be exceedingly grateful.</p>
-
+information has been provided. Everyone'll be exceedingly grateful.")%></p>
<% for info_request in @requests %>
<%= render :partial => 'request/request_listing_single', :locals => { :info_request => info_request } %>
<% end %>
-
<p id="game_buttons">
-<%= button_to "I don't like these ones &mdash; give me some more!", play_url %>
-<%= button_to "I don't want to do any more tidying now!", stop_url %>
+<%= button_to _('I don\'t like these ones &mdash; give me some more!'), play_url %>
+<%= button_to _('I don\'t want to do any more tidying now!'), stop_url %>
</p>
-
-<p>Thanks for helping - your work will make it easier for everyone to find successful
-responses, and maybe even let us make league tables...</p>
+<p><%= _('Thanks for helping - your work will make it easier for everyone to find successful
+responses, and maybe even let us make league tables...')%></p>
diff --git a/app/views/request_mailer/comment_on_alert.rhtml b/app/views/request_mailer/comment_on_alert.rhtml
index b1650318d..46cee3b1a 100644
--- a/app/views/request_mailer/comment_on_alert.rhtml
+++ b/app/views/request_mailer/comment_on_alert.rhtml
@@ -1,6 +1,6 @@
-<%=@comment.user.name%> has annotated your <%=@info_request.law_used_short%>
-request. Follow this link to see what they wrote.
+<%= _('{{user_name}} has annotated your {{law_used_short}}
+request. Follow this link to see what they wrote.',:user_name=>@comment.user.name,:law_used_short=>@info_request.law_used_short) %>
<%=@url%>
--- the WhatDoTheyKnow team
+-- <%= _('the WhatDoTheyKnow team') %>
diff --git a/app/views/request_mailer/comment_on_alert_plural.rhtml b/app/views/request_mailer/comment_on_alert_plural.rhtml
index ee12ba975..3871a9598 100644
--- a/app/views/request_mailer/comment_on_alert_plural.rhtml
+++ b/app/views/request_mailer/comment_on_alert_plural.rhtml
@@ -1,6 +1,7 @@
-There are <%=@count%> new annotations on your <%=@info_request.law_used_short%>
-request. Follow this link to see what they wrote.
+<%= _('There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote.',:count=>@count,:info_request=>@info_request.law_used_short)%>
<%=@url%>
--- the WhatDoTheyKnow team
+-- <%= _('the WhatDoTheyKnow team') %>
+
+
diff --git a/app/views/request_mailer/new_response.rhtml b/app/views/request_mailer/new_response.rhtml
index c9d7e64fb..c3e979cd6 100644
--- a/app/views/request_mailer/new_response.rhtml
+++ b/app/views/request_mailer/new_response.rhtml
@@ -1,17 +1,17 @@
-You have a new response to the <%= @info_request.law_used_full %> request
-'<%= @info_request.title %>' that you made to
+<%= _('You have a new response to the {{law_used_full}} request ',:law_used_full=>@info_request.law_used_full)%>
+'<%= @info_request.title %>' <%=_('that you made to')%>
<%= @info_request.public_body.name %>.
-To view the response, click on the link below.
+<%= _('To view the response, click on the link below.')%>
<%=@url%>
-When you get there, please update the status to say if the response
-contains any useful information.
+<%= _('When you get there, please update the status to say if the response
+contains any useful information.' )%>
-Although all responses are automatically published, we depend on
-you, the original requester, to evaluate them.
+<%= _('Although all responses are automatically published, we depend on
+you, the original requester, to evaluate them.')%>
--- the WhatDoTheyKnow team
+-- <%= _('the WhatDoTheyKnow team') %>
diff --git a/app/views/request_mailer/new_response_reminder_alert.rhtml b/app/views/request_mailer/new_response_reminder_alert.rhtml
index aa65c5196..cde7851db 100644
--- a/app/views/request_mailer/new_response_reminder_alert.rhtml
+++ b/app/views/request_mailer/new_response_reminder_alert.rhtml
@@ -1,11 +1,10 @@
-To let us know, follow this link and then select the appropriate box.
+<%=_('To let us know, follow this link and then select the appropriate box.')%>
<%=@url%>
-Your request was called '<%= @info_request.title %>'. Letting everyone know
-whether you got the information will help us keep tabs on
+<%= _('Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on',:info_request=>@info_request.title)%>
<%= @info_request.public_body.name %>.
--- the WhatDoTheyKnow team
+-- <%= _('the WhatDoTheyKnow team') %>
diff --git a/app/views/request_mailer/not_clarified_alert.rhtml b/app/views/request_mailer/not_clarified_alert.rhtml
index 40124d190..2e6cf6a05 100644
--- a/app/views/request_mailer/not_clarified_alert.rhtml
+++ b/app/views/request_mailer/not_clarified_alert.rhtml
@@ -1,10 +1,9 @@
-<%=@info_request.public_body.name%> has asked you to explain
-part of your <%=@info_request.law_used_short%> request.
-To do this, first click on the link below.
+<%=@info_request.public_body.name%> <%=('has asked you to explain part of your')%> <%=@info_request.law_used_short%> <%= _('request.')%>
+<%= _('To do this, first click on the link below.')%>
<%=@url%>
-You will only get an answer to your request if you follow up
-with the clarification.
+<%= _('You will only get an answer to your request if you follow up
+with the clarification.')%>
--- the WhatDoTheyKnow team
+-- <%= _('the WhatDoTheyKnow team') %>
diff --git a/app/views/request_mailer/old_unclassified_updated.rhtml b/app/views/request_mailer/old_unclassified_updated.rhtml
index 715fcde3e..b03780016 100644
--- a/app/views/request_mailer/old_unclassified_updated.rhtml
+++ b/app/views/request_mailer/old_unclassified_updated.rhtml
@@ -1,12 +1,9 @@
-To help us keep the site tidy, someone else has updated the status of the
-<%= @info_request.law_used_full %> request '<%= @info_request.title %>'
-that you made to <%= @info_request.public_body.name %>, to
-"<%= @info_request.display_status.downcase %>" If you disagree with
-their categorisation, please update the status again yourself to what
-you believe to be more accurate.
+<%= _('To help us keep the site tidy, someone else has updated the status of the
+{{law_used_full}} request {{title}} that you made to {{public_body}}, to "{{display_status}}" If you disagree with their categorisation, please update the status again yourself to what you believe to be more accurate.',:law_used_full=>@info_request.law_used_full,:title=>@info_request.title, :public_body=>@info_request.public_body.name,:display_status=>@info_request.display_status.downcase)%>
-Follow this link to see the request:
+<%=_ ('Follow this link to see the request:')%>
<%= @url %>
--- the WhatDoTheyKnow team
+-- <%= _('the WhatDoTheyKnow team') %>
+
diff --git a/app/views/request_mailer/overdue_alert.rhtml b/app/views/request_mailer/overdue_alert.rhtml
index 29a1a1d68..65ae207a2 100644
--- a/app/views/request_mailer/overdue_alert.rhtml
+++ b/app/views/request_mailer/overdue_alert.rhtml
@@ -1,13 +1,11 @@
-<%= @info_request.public_body.name %> have delayed.
+<%= @info_request.public_body.name %> <%= _('have delayed.')%>
-They have not replied to your <%=@info_request.law_used_short%> request '<%= @info_request.title %>'
-promptly, as normally required by law<% if @info_request.public_body.is_school? %> during term time<% end %>.
+<%=_ ('They have not replied to your {{law_used_short}} request {{title}} promptly, as normally required by law',:law_used_short=>@info_request.law_used_short,:title=>@info_request.title)%><% if @info_request.public_body.is_school? %> <%=_ ('during term time')%> <% end %>.
-Click on the link below to send a message to <%= @info_request.public_body.name
-%> reminding them to reply to your request.
+<%= _('Click on the link below to send a message to {{public_body}} reminding them to reply to your request.',:public_body=>@info_request.public_body.name)%>
<%=@url%>
--- the WhatDoTheyKnow team
+-- <%= _('the WhatDoTheyKnow team') %>
diff --git a/app/views/request_mailer/requires_admin.rhtml b/app/views/request_mailer/requires_admin.rhtml
index b0b2e926a..acd37f405 100644
--- a/app/views/request_mailer/requires_admin.rhtml
+++ b/app/views/request_mailer/requires_admin.rhtml
@@ -1,11 +1,11 @@
---------------------------------------------------------------------
-<%=@info_request.user.name%> has reported an <%=@info_request.law_used_short%>
-response as needing administrator attention. Take a look, and reply to this
-email to let them know what you are going to do about it.
+<%=@info_request.user.name%> <%= _('has reported an')%> <%=@info_request.law_used_short%>
+<%= _('response as needing administrator attention. Take a look, and reply to this
+email to let them know what you are going to do about it.')%>
Request '<%=@info_request.title%>':
<%= @url %>
-Administration URL:
+<%= _('Administration URL:') %>
<%= @admin_url %>
---------------------------------------------------------------------
diff --git a/app/views/request_mailer/stopped_responses.rhtml b/app/views/request_mailer/stopped_responses.rhtml
index 5c4fe704d..eb53cee1c 100644
--- a/app/views/request_mailer/stopped_responses.rhtml
+++ b/app/views/request_mailer/stopped_responses.rhtml
@@ -1,14 +1,20 @@
-The email that you, on behalf of <%= @info_request.public_body.name%>, sent to
-<%= @info_request.user.name %> to reply to an <%= @info_request.law_used_short %>
-request has not been delivered.
+<%= _('The email that you, on behalf of {{public_body}}, sent to
+{{user}} to reply to an {{law_used_short}}
+request has not been delivered.',:public_body=>@info_request.public_body.name,:user=>@info_request.user.name,:law_used_short=>@info_request.law_used_short)%>
+
+<%= _('This is because {{title}} is an old request that has been
+marked to no longer receive responses.',:title=>@info_request.title)%>
+
+
+
+<%= _('If this is incorrect, or you would like to send a late response to the request
+or an email on another subject to {{user}}, then please
+email {{contact_email}} for help.',:user=>@info_request.user.name,:contact_email=>@contact_email)%>
+
+<%= _('Your original message is attached.')%>
+
+-- <%= _('the WhatDoTheyKnow team') %>
-This is because '<%= @info_request.title %>' is an old request that has been
-marked to no longer receive responses.
-If this is incorrect, or you would like to send a late response to the request
-or an email on another subject to <%= @info_request.user.name %>, then please
-email <%=@contact_email%> for help.
-Your original message is attached.
--- the WhatDoTheyKnow team
diff --git a/app/views/request_mailer/very_overdue_alert.rhtml b/app/views/request_mailer/very_overdue_alert.rhtml
index 2393d29e5..e61b3a206 100644
--- a/app/views/request_mailer/very_overdue_alert.rhtml
+++ b/app/views/request_mailer/very_overdue_alert.rhtml
@@ -1,14 +1,11 @@
-<%= @info_request.public_body.name %> are long overdue.
+<%= @info_request.public_body.name %> <%= _('are long overdue.')%>
-They have not replied to your <%=@info_request.law_used_short%> request '<%= @info_request.title %>',
-as required by law<% if @info_request.public_body.is_school? %> even during holidays<% end %>.
+<%= _('They have not replied to your {{law_used_short}} request {{title}},
+as required by law',:law_used_short=>@info_request.law_used_short,:title=>@info_request.title)%><% if @info_request.public_body.is_school? %> <%= _('even during holidays')%><% end %>.
-Click on the link below to send a message to <%= @info_request.public_body.name
-%> telling them to reply to your request. You might like to ask for an internal
-review, asking them to find out why response to the request has been so slow.
+<%= _('Click on the link below to send a message to {{public_body_name}} telling them to reply to your request. You might like to ask for an internal
+review, asking them to find out why response to the request has been so slow.',:public_body_name=>@info_request.public_body.name)%>
<%=@url%>
--- the WhatDoTheyKnow team
-
-
+-- <%= _('the WhatDoTheyKnow team') %>
diff --git a/app/views/track/_tracking_links.rhtml b/app/views/track/_tracking_links.rhtml
index c078d6db7..a08f97c08 100644
--- a/app/views/track/_tracking_links.rhtml
+++ b/app/views/track/_tracking_links.rhtml
@@ -6,7 +6,7 @@
<% if own_request %>
- <p>This is your own request, so you will be automatically emailed when new responses arrive.</p>
+ <p><%= _('This is your own request, so you will be automatically emailed when new responses arrive.')%></p>
<% elsif existing_track %>
<% form_tag({:controller => 'track', :action => 'update', :track_id => existing_track.id}, :class => "feed_form_" + location) do %>
<p>
diff --git a/app/views/track_mailer/event_digest.rhtml b/app/views/track_mailer/event_digest.rhtml
index 45515e25f..df27a5cbd 100644
--- a/app/views/track_mailer/event_digest.rhtml
+++ b/app/views/track_mailer/event_digest.rhtml
@@ -1,4 +1,4 @@
-<%
+<%
# Construct the main text of the mail
main_text = ''
for track_thing, alert_results, xapian_object in @email_about_things
@@ -18,14 +18,14 @@
# e.g. Julian Burgess sent a request to Royal Mail Group (15 May 2008)
if event.event_type == 'response'
url = main_url(incoming_message_url(event.incoming_message))
- main_text += event.info_request.public_body.name + " sent a response to " + event.info_request.user.name
+ main_text += event.info_request.public_body.name + " sent a response to " + event.info_request.user.name
elsif event.event_type == 'followup_sent'
url = main_url(outgoing_message_url(event.outgoing_message))
- main_text += event.info_request.user.name + " sent a follow up message to " + event.info_request.public_body.name
+ main_text += event.info_request.user.name + " sent a follow up message to " + event.info_request.public_body.name
elsif event.event_type == 'sent'
# this is unlikely to happen in real life, but happens in the test code
url = main_url(outgoing_message_url(event.outgoing_message))
- main_text += event.info_request.user.name + " sent a request to " + event.info_request.public_body.name
+ main_text += event.info_request.user.name + " sent a request to " + event.info_request.public_body.name
elsif event.event_type == 'comment'
url = main_url(comment_url(event.comment))
main_text += event.comment.user.name + " added an annotation"
diff --git a/app/views/user/_signin.rhtml b/app/views/user/_signin.rhtml
index 52c2a9e71..c6661696e 100644
--- a/app/views/user/_signin.rhtml
+++ b/app/views/user/_signin.rhtml
@@ -4,31 +4,31 @@
<%= foi_error_messages_for :user_signin %>
<% if not sign_in_as_existing_user %>
- <h2>If you've used WhatDoTheyKnow before</h2>
+ <h2><%= _('If you\'ve used WhatDoTheyKnow before')%></h2>
<% end %>
<p>
- <label class="form_label" for="user_signin_email">Your e-mail:</label>
+ <label class="form_label" for="user_signin_email"><%= _('Your e-mail:')%></label>
<%= text_field 'user_signin', 'email', { :size => 20 } %>
</p>
<p>
- <label class="form_label" for="user_signin_password">Password:</label>
+ <label class="form_label" for="user_signin_password"><%= _('Password:')%></label>
<%= password_field 'user_signin', 'password', { :size => 15 } %>
</p>
<p class="form_note">
- <%= link_to "Forgotten your password?", signchangepassword_url + "?pretoken=" + h(params[:token]) %>
+ <%= link_to _('Forgotten your password?'), signchangepassword_url + "?pretoken=" + h(params[:token]) %>
</p>
<p class="form_checkbox">
<%= check_box_tag 'remember_me', "1" %>
- <label for="remember_me">Remember me</label> (keeps you signed in longer;
- do not use on a public computer) </p>
+ <label for="remember_me"><%= _('Remember me</label> (keeps you signed in longer;
+ do not use on a public computer) ')%></p>
<div class="form_button">
<%= hidden_field_tag 'token', params[:token], { :id => 'signin_token' } %>
- <%= submit_tag "Sign in" %>
+ <%= submit_tag _('Sign in') %>
</div>
<% end %>
diff --git a/app/views/user/_signup.rhtml b/app/views/user/_signup.rhtml
index 65b5ce6f2..70120bc5f 100644
--- a/app/views/user/_signup.rhtml
+++ b/app/views/user/_signup.rhtml
@@ -3,43 +3,42 @@
<% form_tag({:action => "signup"}, {:id => "signup_form"}) do %>
<%= foi_error_messages_for :user_signup %>
- <h2>If you're new to WhatDoTheyKnow</h2>
+ <h2><%= _('If you\'re new to WhatDoTheyKnow')%></h2>
<p>
- <label class="form_label" for="user_signup_email">Your e-mail:</label>
+ <label class="form_label" for="user_signup_email"><%= _('Your e-mail:')%></label>
<%= text_field 'user_signup', 'email', { :size => 20 } %>
</p>
<div class="form_item_note">
- We will not reveal your email address to anybody unless you or
- the law tell us to
- (<a href="/help/privacy">details</a>).
+ <%= ('We will not reveal your email address to anybody unless you or
+ the law tell us to (<a href="%s">_details</a>). ') %[help_privacy_path] %>
</div>
<p>
- <label class="form_label" for="user_signup_name">Your name:</label>
+ <label class="form_label" for="user_signup_name"> <%= _('Your name:')%></label>
<%= text_field 'user_signup', 'name', { :size => 20 } %>
</p>
<div class="form_item_note">
- Your <strong>name will appear publicly</strong>
- (<a href="/help/privacy#public_request">why?</a>)
+ <%= _('Your <strong>name will appear publicly</strong>
+ (<a href="%s">why?</a>)
on this website and in search engines. If you
are thinking of using a pseudonym, please
- <a href="/help/privacy#real_name">read this first</a>.
+ <a href="%s">read this first</a>.') % [help_privacy_path+"#public_request", help_privacy_path+"#real_name"] %>
</div>
<p>
- <label class="form_label" for="user_signup_password">Password:</label>
+ <label class="form_label" for="user_signup_password"> <%= _('Password:')%></label>
<%= password_field 'user_signup', 'password', { :size => 15 } %>
</p>
<p>
- <label class="form_label" for="user_signup_password_confirmation">Password: (again)</label>
+ <label class="form_label" for="user_signup_password_confirmation"> <%= _('Password: (again)')%></label>
<%= password_field 'user_signup', 'password_confirmation', { :size => 15 } %>
</p>
<div class="form_button">
<%= hidden_field_tag 'token', params[:token], { :id => 'signup_token' } %>
- <%= submit_tag "Sign up" %>
+ <%= submit_tag _('Sign up') %>
</div>
<% end %>
diff --git a/app/views/user/_user_listing_single.rhtml b/app/views/user/_user_listing_single.rhtml
index 9fa70c779..53df3a7e8 100644
--- a/app/views/user/_user_listing_single.rhtml
+++ b/app/views/user/_user_listing_single.rhtml
@@ -16,9 +16,9 @@ end %>
</span>
<span class="bottomline">
- <%= pluralize(display_user.info_requests.size, "request") %> made.
- <%= pluralize(display_user.visible_comments.size, "annotation") %> made.
- Joined in <%= year_from_date(display_user.created_at) %>.
+ <%= pluralize(display_user.info_requests.size, "request") %> <%= _('made.')%>
+ <%= pluralize(display_user.visible_comments.size, "annotation") %> <%= _('made.')%>
+ <%= _('Joined in')%> <%= year_from_date(display_user.created_at) %>.
</span>
</div>
diff --git a/app/views/user/bad_token.rhtml b/app/views/user/bad_token.rhtml
index 9855fb546..443835382 100644
--- a/app/views/user/bad_token.rhtml
+++ b/app/views/user/bad_token.rhtml
@@ -1,17 +1,17 @@
<h1>
-Please check the URL (i.e. the long code of letters and numbers) is copied
-correctly from your email.
+<%= _('Please check the URL (i.e. the long code of letters and numbers) is copied
+correctly from your email.'%>
</h1>
<p>
-If you can't click on it in the email, you'll have to <strong>select and copy
+<%= _('If you can\'t click on it in the email, you\'ll have to <strong>select and copy
it</strong> from the email. Then <strong>paste it into your browser</strong>, into the place
-you would type the address of any other webpage.
+you would type the address of any other webpage.')%>
</p>
<p>
-If you got the email <strong>more than six months ago</strong>, then this login link won't work any
-more. Please try doing what you were doing from the beginning.
+<%= _('If you got the email <strong>more than six months ago</strong>, then this login link won\'t work any
+more. Please try doing what you were doing from the beginning.')%>
</p>
diff --git a/app/views/user/banned.rhtml b/app/views/user/banned.rhtml
index 6bbdf4774..475c10977 100644
--- a/app/views/user/banned.rhtml
+++ b/app/views/user/banned.rhtml
@@ -6,14 +6,14 @@
<%=@details%>
</p>
-<p>You will be unable to make new requests, send follow ups, add annotations or
+<p><%= _('You will be unable to make new requests, send follow ups, add annotations or
send messages to other users. You may continue to view other requests, and set
up
-email alerts.</p>
+email alerts.')%></p>
<p>
-If you would like us to lift this ban, then you may politely
+<%= _('If you would like us to lift this ban, then you may politely
<a href="/help/contact">contact us</a> giving reasons.
-</p>
+')%></p>
diff --git a/app/views/user/confirm.rhtml b/app/views/user/confirm.rhtml
index bc9b259cc..bdaf5c8e9 100644
--- a/app/views/user/confirm.rhtml
+++ b/app/views/user/confirm.rhtml
@@ -3,12 +3,12 @@
<h1 class="confirmation_heading">Now check your email!</h1>
<p class="confirmation_message">
-We've sent you an email, and you'll need to click the link in it before you can
-continue.
+<%= _('We\'ve sent you an email, and you\'ll need to click the link in it before you can
+continue.') %>
</p>
<p class="confirmation_message">
-<small>If you use web-based email or have "junk mail" filters, also check your
+<%= _('<small>If you use web-based email or have "junk mail" filters, also check your
bulk/spam mail folders. Sometimes, our messages are marked that way.</small>
-</p>
+</p>') %>
diff --git a/app/views/user/contact.rhtml b/app/views/user/contact.rhtml
index 7069b671a..4bbb15789 100644
--- a/app/views/user/contact.rhtml
+++ b/app/views/user/contact.rhtml
@@ -29,11 +29,11 @@
<p class="form_note">
<% if @user == @recipient_user %>
- <strong>Note:</strong> You're sending a message to yourself, presumably
- to try out how it works.
+ <%= _('<strong>Note:</strong> You\'re sending a message to yourself, presumably
+ to try out how it works.')%>
<% else %>
- <strong>Privacy note:</strong> Your email address will be given to
- <%= user_link(@recipient_user) %> when you send this message.
+ <%= _(' <strong>Privacy note:</strong> Your email address will be given to')%>
+ <%= user_link(@recipient_user) %><%= _(' when you send this message.')%>
<% end %>
</p>
diff --git a/app/views/user/no_cookies.rhtml b/app/views/user/no_cookies.rhtml
index 4681547d3..b5c36b57e 100644
--- a/app/views/user/no_cookies.rhtml
+++ b/app/views/user/no_cookies.rhtml
@@ -1,19 +1,22 @@
<% @title = "Cookies not enabled" %>
-<h1>Please enable "cookies" to carry on</h1>
+<h1><%= _('Please enable "cookies" to carry on')%></h1>
-<p>To carry on, you need to sign in or make an account. Unfortunately, there
-was a technical problem trying to do this.</p>
+<p><%= _('To carry on, you need to sign in or make an account. Unfortunately, there
+was a technical problem trying to do this.')%></p>
-<p>It may be that your browser is not set to accept a thing called "cookies",
+<p><%= _('It may be that your browser is not set to accept a thing called "cookies",
or cannot do so. If you can, please enable cookies, or try using a different
-browser. Then press refresh to have another go.</p>
+browser. Then press refresh to have another go.')%></p>
-<p>If your browser is set to accept cookies and you are seeing this message,
-then there is probably a fault with our server. Please <a href="/help/contact">get in touch</a>
-with us so we can fix it. Let us know what you were doing when this message
-appeared and your browser and operating system type and version.</p>
+<p><%= _('If your browser is set to accept cookies and you are seeing this message,
+then there is probably a fault with our server.')%>
-<p>If you are still having trouble, please <a href="/help/contact">contact us</a>.
+<%= _('Please <a href="%s">get in touch</a> with us so we can fix it.') % [help_contact_path] %>
+
+ <%= _('Let us know what you were doing when this message
+appeared and your browser and operating system type and version.')%></p>
+
+<p><%= _('If you are still having trouble, please <a href="%s">contact us</a>.') % [help_contact_path] %>
</p>
diff --git a/app/views/user/set_crop_profile_photo.rhtml b/app/views/user/set_crop_profile_photo.rhtml
index 12ba4eba2..33b78e193 100644
--- a/app/views/user/set_crop_profile_photo.rhtml
+++ b/app/views/user/set_crop_profile_photo.rhtml
@@ -1,9 +1,9 @@
-<% @title = "Change profile photo" %>
+<% @title = _("Change profile photo") %>
<% @profile_photo_javascript = true %>
<% raise "internal error" if not @user %>
-<h2>Crop your profile photo</h2>
+<h2><%= _('Crop your profile photo') %></h2>
<%= foi_error_messages_for :set_profile_photo %>
@@ -32,8 +32,8 @@
<%= hidden_field_tag 'draft_profile_photo_id', @draft_profile_photo.id %>
- <p><strong>Privacy note:</strong> Your photo will be shown in public on the Internet,
- wherever you do something on WhatDoTheyKnow.
+ <p><%= _('<strong>Privacy note:</strong> Your photo will be shown in public on the Internet,
+ wherever you do something on WhatDoTheyKnow.')%>
<p>
<%= hidden_field_tag 'submitted_crop_profile_photo', 1 %>
diff --git a/app/views/user/set_draft_profile_photo.rhtml b/app/views/user/set_draft_profile_photo.rhtml
index a3d28cf92..b6a39df5e 100644
--- a/app/views/user/set_draft_profile_photo.rhtml
+++ b/app/views/user/set_draft_profile_photo.rhtml
@@ -10,17 +10,17 @@
<% form_tag 'set_photo', :id => 'set_draft_profile_photo_form', :multipart => true do %>
<p>
- <label class="form_label" for="file_1">Photo of you:</label>
+ <label class="form_label" for="file_1"><%= _('Photo of you:')%></label>
<%= file_field_tag :file, :size => 35, :id => 'file_1' %>
</p>
<ul>
- <li>Your photo will be shown in public <strong>on the Internet</strong>,
- wherever you do something on WhatDoTheyKnow.
+ <li><%= _('Your photo will be shown in public <strong>on the Internet</strong>,
+ wherever you do something on WhatDoTheyKnow.')%>
</li>
- <li>Please don't upload offensive pictures. We will take down images
- that we consider inappropriate.
+ <li><%= _('Please don\'t upload offensive pictures. We will take down images
+ that we consider inappropriate.')%>
</li>
</ul>
@@ -29,7 +29,7 @@
<%= hidden_field_tag 'submitted_draft_profile_photo', 1 %>
<script type="text/javascript" charset="utf-8">
- document.write('<%= submit_tag "Next, crop your photo &gt;&gt;" %>');
+ document.write('<%= submit_tag _("Next, crop your photo &gt;&gt;") %>');
</script>
</p>
@@ -43,7 +43,7 @@
<% if @user.profile_photo %>
- <h2>OR remove the existing photo</h2>
+ <h2><%= _('OR remove the existing photo')%></h2>
<% form_tag 'clear_photo', :id => 'clear_profile_photo_form', :multipart => true do %>
<%= submit_tag "Clear photo" %>
diff --git a/app/views/user/set_profile_about_me.rhtml b/app/views/user/set_profile_about_me.rhtml
index 8e83dc870..aa53d6720 100644
--- a/app/views/user/set_profile_about_me.rhtml
+++ b/app/views/user/set_profile_about_me.rhtml
@@ -1,37 +1,37 @@
-<% @title = "Change the text about you on your profile at WhatDoTheyKnow.com" %>
+<% @title = _('Change the text about you on your profile at WhatDoTheyKnow.com') %>
-<% raise "internal error" if not @user %>
+<% raise _('internal error') if not @user %>
<%= foi_error_messages_for :about_me %>
<% form_for :about_me do |f| %>
<div class="form_note">
- <h1>Edit text about you</h1>
+ <h1><%= _('Edit text about you')%></h1>
<p>
- What are you investigating using Freedom of Information?
+ <%= _(' What are you investigating using Freedom of Information? ')%>
</p>
<p>
- This will appear on your WhatDoTheyKnow profile, to make it
- easier for others to get involved with what you're doing.
+ <%= _(' This will appear on your WhatDoTheyKnow profile, to make it
+ easier for others to get involved with what you\'re doing.')%>
</p>
</div>
<p>
- <label class="form_label" for="set_profile_about_me">About you:</label>
+ <label class="form_label" for="set_profile_about_me"><%= _('About you:')%></label>
<%= f.text_area :about_me, :rows => 5, :cols => 55 %>
</p>
<div class="form_note">
<p>
- Include relevant links, such as to a campaign page, your blog or a
+ <%= _(' Include relevant links, such as to a campaign page, your blog or a
twitter account. They will be made clickable.
- e.g.
+ e.g.')%>
<a href="http://www.twitter.com/whatdotheyknow">http://www.twitter.com/whatdotheyknow</a>
</p>
</div>
<div class="form_button">
<%= hidden_field_tag 'submitted_about_me', 1 %>
- <%= submit_tag "Save" %>
+ <%= submit_tag _('Save') %>
</div>
<% end %>
diff --git a/app/views/user/show.rhtml b/app/views/user/show.rhtml
index 8bd758f78..09bf3de5f 100644
--- a/app/views/user/show.rhtml
+++ b/app/views/user/show.rhtml
@@ -1,39 +1,39 @@
<% @title = h(@display_user.name) + " - Freedom of Information requests" %>
<% if (@same_name_users.size >= 1) %>
- <p>There is <strong>more than one person</strong> who uses this site and has this name.
- One of them is shown below, you may mean a different one: <% for @same_name_user in @same_name_users %>
+ <p><%= _('There is <strong>more than one person</strong> who uses this site and has this name.
+ One of them is shown below, you may mean a different one:')%> <% for @same_name_user in @same_name_users %>
<%= user_link(@same_name_user) %>
<% end %>
<% end%>
<% if @is_you && @undescribed_requests.size > 0 %>
<div class="undescribed_requests">
- <p>Please <strong>go to the following requests</strong>, and let us
- know if there was information in the recent responses to them.</p>
+ <p><%= _('Please <strong>go to the following requests</strong>, and let us
+ know if there was information in the recent responses to them.')%></p>
<ul>
<% for undescribed_request in @undescribed_requests %>
<li><%=request_link(undescribed_request)%></li>
<% end %>
</ul>
<p>
- Thanks very much - this will help others find useful stuff. We'll
+ <%= _('Thanks very much - this will help others find useful stuff. We\'ll
also, if you need it, give advice on what to do next about your
- requests.
+ requests.')%>
</p>
</div>
<% end %>
<div id="request_sidebar">
- <h2>Track this person</h2>
+ <h2><%= _('Track this person')%></h2>
<%= render :partial => 'track/tracking_links', :locals => { :track_thing => @track_thing, :own_request => false, :location => 'sidebar' } %>
- <h2>On this page</h2>
- <a href="#foi_requests">FOI requests</a>
- <br><a href="#annotations">Annotations</a>
+ <h2><%= _('On this page')%></h2>
+ <a href="#foi_requests"><%= _('FOI requests')%></a>
+ <br><a href="#annotations"><%= _('Annotations')%></a>
<% if @is_you %>
- <br><a href="#email_subscriptions">Email subscriptions</a>
+ <br><a href="#email_subscriptions"><%= _('Email subscriptions')%></a>
<% end %>
</div>
@@ -50,25 +50,25 @@
<% else %>
<% if @is_you %>
<span id="set_photo">
- <%= link_to "Set your profile photo", set_profile_photo_url() %>
+ <%= link_to _('Set your profile photo'), set_profile_photo_url() %>
</span>
<% end %>
<% end %>
</p>
- <h1> <%= h(@display_user.name) + (@is_you ? " (you)" : "") %> </h1>
+ <h1> <%= h(@display_user.name) + (@is_you ? _(" (you)") : "") %></h1>
<p class="subtitle">
- Joined WhatDoTheyKnow in <%= year_from_date(@display_user.created_at) %>
+ <%= _('Joined WhatDoTheyKnow in') %> <%= year_from_date(@display_user.created_at) %>
<% if !@user.nil? && @user.admin_page_links? %>
(<%= link_to "admin", user_admin_url(@display_user) %>)
<% end %>
</p>
<p>
- <%= link_to "Send message to " + h(@display_user.name), contact_user_url(:id => @display_user.id) %>
+ <%= link_to _('Send message to ') + h(@display_user.name), contact_user_url(:id => @display_user.id) %>
<% if @is_you %>
- (just to see how it works)
+ (<%= _('just to see how it works')%>)
<% end %>
</p>
@@ -76,11 +76,11 @@
<div id="user_public_banned">
<p>
<strong>
- This user has been banned from WhatDoTheyKnow.com
+ <%= _('This user has been banned from WhatDoTheyKnow.com ')%>
</strong>
</p>
<p>
- They have been given the following explanation:
+ <%= _('They have been given the following explanation:')%>
</p>
<p class="details">
<%= @display_user.can_fail_html %>
@@ -93,7 +93,7 @@
<img class="comment_quote" src="/images/quote.png" alt="">
<%= @display_user.get_about_me_for_html_display %>
<% if @is_you %>
- (<%= link_to "edit text about you", set_profile_about_me_url() %>)
+ (<%= link_to _("edit text about you"), set_profile_about_me_url() %>)
<% end %>
</div>
<% end %>
@@ -101,31 +101,31 @@
<% if @is_you %>
<p id="user_change_password_email">
<% if @display_user.profile_photo %>
- <%= link_to "Change profile photo", set_profile_photo_url() %> |
+ <%= link_to _('Change profile photo'), set_profile_photo_url() %> |
<% end %>
- <%= link_to "Change your password", signchangepassword_url() %> |
- <%= link_to "Change your email", signchangeemail_url() %>
+ <%= link_to _('Change your password'), signchangepassword_url() %> |
+ <%= link_to _('Change your email'), signchangeemail_url() %>
</p>
<% end %>
<% if not @is_you %>
<p id="user_not_logged_in">
- <%= link_to "Sign in", signin_url(:r => request.request_uri) %> to change password,
- subscriptions and more (<%=h @display_user.name %> only)
+ <%= link_to _('Sign in'), signin_url(:r => request.request_uri) %><%= _('to change password,
+ subscriptions and more')%> (<%=h @display_user.name %> <%= _('only')%>)
</p>
<% end %>
<% if !@xapian_requests.nil? %>
<% if @xapian_requests.results.empty? %>
<% if @page == 1 %>
- <h2 id="foi_requests">Freedom of Information requests made by <%= @is_you ? 'you' : 'this person' %> </h2>
- <p><%= @is_you ? 'You have' : 'This person has' %>
- made no Freedom of Information requests using this site.</p>
+ <h2 id="foi_requests"><%= _('Freedom of Information requests made by')%> <%= @is_you ? 'you' : 'this person' %> </h2>
+ <p><%= @is_you ? _('You have') : _('This person has') %>
+ <%= _(' made no Freedom of Information requests using this site.')%></p>
<% end %>
<% else %>
<h2 id="foi_requests">
<%= @is_you ? 'Your ' : "This person's " %>
- <%=pluralize(@display_user.info_requests.size, "Freedom of Information request") %>
+ <%=pluralize(@display_user.info_requests.size, _('Freedom of Information request')) %>
<!-- matches_estimated <%=@xapian_requests.matches_estimated%> -->
<%= @page_desc %>
</h2>
@@ -137,20 +137,20 @@
<%= will_paginate WillPaginate::Collection.new(@page, @per_page, @display_user.info_requests.size) %>
<% end %>
<% else %>
- <h2 id="foi_requests">Freedom of Information requests made by <%= @is_you ? 'you' : 'this person' %> </h2>
- <p>The search index is currently offline, so we can't show the Freedom of Information requests this person has made.</p>
+ <h2 id="foi_requests"><%= _('Freedom of Information requests made by')%> <%= @is_you ? _('you') : _('this person') %> </h2>
+ <p><%= _('The search index is currently offline, so we can\'t show the Freedom of Information requests this person has made.')%></p>
<% end %>
<% if !@xapian_comments.nil? %>
<% if @xapian_comments.results.empty? %>
<% if @page == 1 %>
- <h2><%= @is_you ? 'Your' : 'This person\'s' %> annotations </h2>
+ <h2><%= @is_you ? 'Your' : 'This person\'s' %> <%= _('annotations')%> </h2>
<p>None made.</p>
<% end %>
<% else %>
<h2 id="annotations">
- <%= @is_you ? 'Your ' : "This person's " %>
- <%=pluralize(@display_user.visible_comments.size, "annotation") %>
+ <%= @is_you ? _('Your ') : _('This person\'s') %>
+ <%=pluralize(@display_user.visible_comments.size, _('annotation')) %>
<!-- matches_estimated <%=@xapian_comments.matches_estimated%> -->
<%= @page_desc %>
</h2>
@@ -165,10 +165,10 @@
<% if @is_you %>
<% if @track_things.empty? %>
- <h2 id="email_subscriptions"> Your email subscriptions</h2>
+ <h2 id="email_subscriptions"> <%= _('Your email subscriptions')%></h2>
<p>None made.</p>
<% else %>
- <h2 id="email_subscriptions"> Your <%=pluralize(@track_things.size, "email subscription") %> </h2>
+ <h2 id="email_subscriptions"> Your <%=pluralize(@track_things.size, _('email subscription')) %> </h2>
<% if @track_things_grouped.size == 1 %>
<% form_tag :controller => 'track', :action => 'delete_all_type' do %>
<h3>
@@ -177,7 +177,7 @@
<%= hidden_field_tag 'user', @display_user.id %>
<%= hidden_field_tag 'r', request.request_uri %>
<% if @track_things.size > 1 %>
- <%= submit_tag "unsubscribe all" %>
+ <%= submit_tag _('unsubscribe all') %>
<% end %>
</h3>
<% end %>
@@ -191,7 +191,7 @@
<%= hidden_field_tag 'user', @display_user.id %>
<%= hidden_field_tag 'r', request.request_uri %>
<% if track_things.size > 1 %>
- <%= submit_tag "unsubscribe all" %>
+ <%= submit_tag _('unsubscribe all')%>
<% end %>
</h3>
<% end %>
@@ -205,7 +205,7 @@
<%= track_thing.params[:list_description] %>
<%= hidden_field_tag 'track_medium', "delete", { :id => 'track_medium_' + track_thing.id.to_s } %>
<%= hidden_field_tag 'r', request.request_uri, { :id => 'r_' + track_thing.id.to_s } %>
- <%= submit_tag "unsubscribe" %>
+ <%= submit_tag _('unsubscribe') %>
</div>
<% end %>
</li>
diff --git a/app/views/user/sign.rhtml b/app/views/user/sign.rhtml
index 81dc64cd2..b76edbc64 100644
--- a/app/views/user/sign.rhtml
+++ b/app/views/user/sign.rhtml
@@ -5,10 +5,10 @@
<p id="sign_in_reason">
<% if @post_redirect.reason_params[:web].empty? %>
- Please sign in as <%= link_to h(@post_redirect.reason_params[:user_name]), @post_redirect.reason_params[:user_url] %>.
+ <%= _('Please sign in as ')%><%= link_to h(@post_redirect.reason_params[:user_name]), @post_redirect.reason_params[:user_url] %>.
<% else %>
<%= @post_redirect.reason_params[:web] %>,
- please sign in as <%= link_to h(@post_redirect.reason_params[:user_name]), @post_redirect.reason_params[:user_url] %>.
+ <%= _('please sign in as ')%><%= link_to h(@post_redirect.reason_params[:user_name]), @post_redirect.reason_params[:user_url] %>.
<% end %>
</p>
@@ -17,15 +17,15 @@
</div>
<% else %>
- <% @title = "Sign in or make a new account" %>
+ <% @title = _('Sign in or make a new account') %>
<div id="sign_together">
<p id="sign_in_reason">
<% if @post_redirect.reason_params[:web].empty? %>
- Please sign in or make a new account.
+ <%= _(' Please sign in or make a new account.') %>
<% else %>
- <%= @post_redirect.reason_params[:web] %>, please sign in or make a new account.
+ <%= @post_redirect.reason_params[:web] %>, <%= _('please sign in or make a new account.') %>
<% end %>
</p>
diff --git a/app/views/user/signchangeemail.rhtml b/app/views/user/signchangeemail.rhtml
index b98dc383c..c0c559380 100644
--- a/app/views/user/signchangeemail.rhtml
+++ b/app/views/user/signchangeemail.rhtml
@@ -1,6 +1,6 @@
-<% @title = "Change your email address used on WhatDoTheyKnow.com" %>
+<% @title = _('Change your email address used on {{site_name}}', :site_name => site_name) %>
-<% raise "internal error" if not @user %>
+<% raise _('internal error') if not @user %>
<div id="change_email">
@@ -8,28 +8,28 @@
<%= foi_error_messages_for :signchangeemail %>
<div class="form_note">
- <h1>Change your email address used on WhatDoTheyKnow.com</h1>
+ <h1> <% _('Change your email address used on {{site_name}}', :site_name => site_name) %></h1>
</div>
<p>
- <label class="form_label" for="signchangeemail_old_email">Old e-mail:</label>
+ <label class="form_label" for="signchangeemail_old_email"> <%= _('Old e-mail:')%></label>
<%= text_field 'signchangeemail', 'old_email', { :size => 20 } %>
</p>
<p>
- <label class="form_label" for="signchangeemail_new_email">New e-mail:</label>
+ <label class="form_label" for="signchangeemail_new_email"> <%= _('New e-mail:')%></label>
<%= text_field 'signchangeemail', 'new_email', { :size => 20 } %>
</p>
<p>
- <label class="form_label" for="signchangeemail_password">Your password:</label>
+ <label class="form_label" for="signchangeemail_password"> <%= _('Your password:')%></label>
<%= password_field 'signchangeemail', 'password', { :size => 15 } %>
</p>
<p class="form_note">
- <strong>Note:</strong>
+ <%= _('<strong>Note:</strong>
We will send an email to your new email address. Follow the
- instructions in it to confirm changing your email.
+ instructions in it to confirm changing your email.')%>
</p>
<div class="form_button">
diff --git a/app/views/user/signchangeemail_confirm.rhtml b/app/views/user/signchangeemail_confirm.rhtml
index 96acbf424..bfedbac2d 100644
--- a/app/views/user/signchangeemail_confirm.rhtml
+++ b/app/views/user/signchangeemail_confirm.rhtml
@@ -1,14 +1,14 @@
<% @title = h("Now check your email!") %>
-<h1 class="confirmation_heading">Now check your email!</h1>
+<h1 class="confirmation_heading"> <%= _('Now check your email!')%></h1>
<p class="confirmation_message">
-We've sent an email to your new email address. You'll need to click the link in
-it before your email address will be changed.
+ <%= _('We\'ve sent an email to your new email address. You\'ll need to click the link in
+it before your email address will be changed.')%>
</p>
<p class="confirmation_message">
-<small>If you use web-based email or have "junk mail" filters, also check your
-bulk/spam mail folders. Sometimes, our messages are marked that way.</small>
+<small> <%= _('If you use web-based email or have "junk mail" filters, also check your
+bulk/spam mail folders. Sometimes, our messages are marked that way.')%></small>
</p>
diff --git a/app/views/user/signchangepassword.rhtml b/app/views/user/signchangepassword.rhtml
index 4191344cb..edb980b9f 100644
--- a/app/views/user/signchangepassword.rhtml
+++ b/app/views/user/signchangepassword.rhtml
@@ -1,4 +1,4 @@
-<% @title = "Change your password on WhatDoTheyKnow.com" %>
+<% @title = _('Change your password on {{site_name}}', :site_name => site_name) %>
<% raise "internal error" if not @user %>
@@ -8,23 +8,23 @@
<%= foi_error_messages_for :user %>
<div class="form_note">
- <h1>Change your password on WhatDoTheyKnow.com</h1>
+ <h1><%= _('Change your password on {{site_name}}', :site_name => site_name)%></h1>
</div>
<p>
- <label class="form_label" for="user_password">New password:</label>
+ <label class="form_label" for="user_password"><%= _('New password:')%></label>
<%= password_field 'user', 'password', { :size => 15 } %>
</p>
<p>
- <label class="form_label" for="user_password_confirmation">New password: (again)</label>
+ <label class="form_label" for="user_password_confirmation"><%= _('New password: (again)')%></label>
<%= password_field 'user', 'password_confirmation', { :size => 15 } %>
</p>
<div class="form_button">
<%= hidden_field_tag 'submitted_signchangepassword_do', 1 %>
<%= hidden_field_tag 'pretoken', params[:pretoken] %>
- <%= submit_tag "Change password on WhatDoTheyKnow.com" %>
+ <%= submit_tag _('Change password on {{site_name}}', :site_name => site_name) %>
</div>
<% end %>
diff --git a/app/views/user/signchangepassword_confirm.rhtml b/app/views/user/signchangepassword_confirm.rhtml
index baad6729b..63b6515cd 100644
--- a/app/views/user/signchangepassword_confirm.rhtml
+++ b/app/views/user/signchangepassword_confirm.rhtml
@@ -1,13 +1,13 @@
-<% @title = h("Now check your email!") %>
+<% @title = h( _('Now check your email!')) %>
-<h1 class="confirmation_heading">Now check your email!</h1>
+<h1 class="confirmation_heading"><%= _('Now check your email!')%></h1>
<p class="confirmation_message">
-We've sent you an email, click the link in it, then you can change your password.
+<%= _('We\'ve sent you an email, click the link in it, then you can change your password.')%>
</p>
<p class="confirmation_message">
-<small>If you use web-based email or have "junk mail" filters, also check your
-bulk/spam mail folders. Sometimes, our messages are marked that way.</small>
+<small><%= _('If you use web-based email or have "junk mail" filters, also check your
+bulk/spam mail folders. Sometimes, our messages are marked that way.')%></small>
</p>
diff --git a/app/views/user/signchangepassword_send_confirm.rhtml b/app/views/user/signchangepassword_send_confirm.rhtml
index 8b2e4fa91..84ee28f07 100644
--- a/app/views/user/signchangepassword_send_confirm.rhtml
+++ b/app/views/user/signchangepassword_send_confirm.rhtml
@@ -1,4 +1,4 @@
-<% @title = "Change your password on WhatDoTheyKnow.com" %>
+<% @title = _('Change your password on {{site_name}}', :site_name => site_name) %>
<div id="change_password">
@@ -6,24 +6,24 @@
<%= foi_error_messages_for :signchangepassword %>
<div class="form_note">
- <h1>Change your password on WhatDoTheyKnow.com</h1>
+ <h1><%= _('Change your password on {{site_name}}', :site_name => site_name) %></h1>
</div>
<p>
- <label class="form_label" for="signchangepassword_email">Your e-mail:</label>
+ <label class="form_label" for="signchangepassword_email"><%= _('Your e-mail:')%></label>
<%= text_field 'signchangepassword', 'email', { :size => 20 } %>
</p>
<p class="form_note">
- <strong>Note:</strong>
+ <%= _(' <strong>Note:</strong>
We will send you an email. Follow the instructions in it to change
- your password.
+ your password.')%>
</p>
<div class="form_button">
<%= hidden_field_tag 'submitted_signchangepassword_send_confirm', 1 %>
<%= hidden_field_tag 'pretoken', params[:pretoken] %>
- <%= submit_tag "Submit" %>
+ <%= submit_tag _('Submit') %>
</div>
<% end %>
diff --git a/app/views/user/wrong_user.rhtml b/app/views/user/wrong_user.rhtml
index cb8eb8eac..9878d08ae 100644
--- a/app/views/user/wrong_user.rhtml
+++ b/app/views/user/wrong_user.rhtml
@@ -1,8 +1,8 @@
<p id="sign_in_reason">
<%= @reason_params[:web] %>, please
-<%= link_to "sign out", signout_url(:r => request.request_uri) %>,
-and sign in as <%= h(@reason_params[:user_name]) %>.
+<%= link_to _('sign out'), signout_url(:r => request.request_uri) %>,
+<%= _('and sign in as ')%><%= h(@reason_params[:user_name]) %>.
</p>
diff --git a/app/views/user/wrong_user_unknown_email.rhtml b/app/views/user/wrong_user_unknown_email.rhtml
index 77a6837f5..77a2ca001 100644
--- a/app/views/user/wrong_user_unknown_email.rhtml
+++ b/app/views/user/wrong_user_unknown_email.rhtml
@@ -1,8 +1,8 @@
<p id="sign_in_reason">
-<%= @reason_params[:web] %>. Unfortunately we don't know the FOI
-email address for that authority, so we can't validate this.
-Please <a href="/help/contact">contact us</a> to sort it out.
+<%= @reason_params[:web] %>. <%= _('Unfortunately we don\'t know the FOI
+email address for that authority, so we can\'t validate this.
+Please <a href="%s">contact us</a> to sort it out.') % [help_contact_path] %>
</p>
diff --git a/app/views/user_mailer/already_registered.rhtml b/app/views/user_mailer/already_registered.rhtml
index 165df469c..3bdb3d04b 100644
--- a/app/views/user_mailer/already_registered.rhtml
+++ b/app/views/user_mailer/already_registered.rhtml
@@ -1,11 +1,11 @@
<%= @name %>,
-You just tried to sign up to WhatDoTheyKnow.com, when you
+<%= _('You just tried to sign up to WhatDoTheyKnow.com, when you
already have an account. Your name and password have been
left as they previously were.
-Please click on the link below. <%=@reasons[:email]%>
+Please click on the link below.')%> <%=@reasons[:email]%>
<%=@url%>
--- the WhatDoTheyKnow team
+-- <%= _('the WhatDoTheyKnow team') %>
diff --git a/app/views/user_mailer/changeemail_already_used.rhtml b/app/views/user_mailer/changeemail_already_used.rhtml
index 0f60ad798..011c6ee81 100644
--- a/app/views/user_mailer/changeemail_already_used.rhtml
+++ b/app/views/user_mailer/changeemail_already_used.rhtml
@@ -1,9 +1,9 @@
-Someone, perhaps you, just tried to change their email address on
-WhatDoTheyKnow.com from <%=@old_email%> to <%=@new_email%>.
+<%= _('Someone, perhaps you, just tried to change their email address on
+WhatDoTheyKnow.com from ')%><%=@old_email%> <%= _('to')%> <%=@new_email%>.
-This was not possible because there is already an account using
-the email address <%=@new_email%>.
+<%= _('This was not possible because there is already an account using
+the email address ')%><%=@new_email%>.
-The accounts have been left as they previously were.
+<%= _('The accounts have been left as they previously were.')%>
--- the WhatDoTheyKnow team
+-- <%= _('the WhatDoTheyKnow team') %>
diff --git a/app/views/user_mailer/changeemail_confirm.rhtml b/app/views/user_mailer/changeemail_confirm.rhtml
index 9aa288fb0..b7eff308d 100644
--- a/app/views/user_mailer/changeemail_confirm.rhtml
+++ b/app/views/user_mailer/changeemail_confirm.rhtml
@@ -1,12 +1,12 @@
<%= @name %>,
-Please click on the link below to confirm that you want to
+<%= _('Please click on the link below to confirm that you want to
change the email address that you use for WhatDoTheyKnow
-from <%=@old_email%> to <%=@new_email%>
+from ')%><%=@old_email%> <%= _('to ')%><%=@new_email%>
<%=@url%>
-We will not reveal your email addresses to anybody unless you
-or the law tell us to.
+<%= _('We will not reveal your email addresses to anybody unless you
+or the law tell us to.')%>
--- the WhatDoTheyKnow team
+-- <%= _('the WhatDoTheyKnow team') %>
diff --git a/app/views/user_mailer/confirm_login.rhtml b/app/views/user_mailer/confirm_login.rhtml
index 07d182676..b68e9abb1 100644
--- a/app/views/user_mailer/confirm_login.rhtml
+++ b/app/views/user_mailer/confirm_login.rhtml
@@ -1,11 +1,11 @@
<%= @name %>,
-Please click on the link below to confirm your email address.
+<%= _('Please click on the link below to confirm your email address.')%>
<%=@reasons[:email]%>
<%=@url%>
-We will not reveal your email address to anybody unless you
-or the law tell us to.
+<%= _('We will not reveal your email address to anybody unless you
+or the law tell us to.')%>
--- the WhatDoTheyKnow team
+-- <%= _('the WhatDoTheyKnow team') %>
diff --git a/config/environment.rb b/config/environment.rb
index 28598a9ef..9ccc39f89 100644
--- a/config/environment.rb
+++ b/config/environment.rb
@@ -58,6 +58,7 @@ Rails::Initializer.run do |config|
config.gem "recaptcha", :lib => "recaptcha/rails"
config.gem 'rspec', :lib => false, :version => '1.3.1'
config.gem 'rspec-rails', :lib => false, :version => '1.3.3'
+ config.gem 'routing-filter'
config.gem 'will_paginate', :version => '~> 2.3.11', :source => 'http://gemcutter.org'
#GettextI18nRails.translations_are_html_safe = true
# Your secret key for verifying cookie session data integrity.
@@ -116,19 +117,20 @@ if (MySociety::Config.get("DOMAIN", "") != "")
end
# fallback locale and available locales
-I18n.default_locale = :en
if ENV["RAILS_ENV"] == "test"
# The tests assume that the "en" and "es" locales are available
FastGettext.default_available_locales = ["en", "es"]
+ I18n.default_locale = :en
else
- available_locales = MySociety::Config.get('AVAILABLE_LOCALES', 'en')
- FastGettext.default_available_locales = available_locales.split()
+ available_locales = MySociety::Config.get('AVAILABLE_LOCALES', 'en es')
+ default_locale = MySociety::Config.get('DEFAULT_LOCALE', 'en')
+ FastGettext.default_available_locales = available_locales.split(/ /)
+ I18n.default_locale = default_locale
end
# Load monkey patches and other things from lib/
require 'tmail_extensions.rb'
require 'activesupport_cache_extensions.rb'
-require 'public_body_categories.rb'
require 'timezone_fixes.rb'
require 'use_spans_for_errors.rb'
require 'make_html_4_compliant.rb'
diff --git a/config/general-example b/config/general-example
new file mode 100644
index 000000000..981e118ca
--- /dev/null
+++ b/config/general-example
@@ -0,0 +1,89 @@
+<?php
+/*
+ * general-example:
+ * Example values for the "general" config file.
+ *
+ * Configuration parameters, in PHP syntax. Configuration parameters are set
+ * using the PHP define('OPTION_...', '...') function. Both perl and PHP code
+ * parse this properly, so you can use comments and conditionals and whatnot,
+ * but unless essential it's better to keep it simple....
+ *
+ * Copy this file to one called "general" in the same directory. Or
+ * have multiple config files and use a symlink to change between them.
+ *
+ * NOTE ON USE IN RAILS: So that people don't have to have PHP installed just
+ * to run this stuff, by convention we always provide a default config value
+ * in the source code when reading the config option. The Rails application
+ * should run fine without the general config file, it is a bug if it does not.
+ *
+ * Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
+ * Email: francis@mysociety.org; WWW: http://www.mysociety.org
+ *
+ * $Id: general-example,v 1.18 2009-02-09 10:37:13 francis Exp $
+ *
+ */
+
+// Doesn't do anything right now.
+define('OPTION_STAGING_SITE', 1);
+
+// Domain used in URLs generated by scripts (e.g. for going in some emails)
+define('OPTION_DOMAIN', '127.0.0.1:3000');
+
+// Domain used in URLs generated by scripts (e.g. for going in some emails)
+define('OPTION_SITE_NAME', 'Alaveteli');
+define('OPTION_CONTACT_EMAIL', 'postmaster@localhost');
+define('OPTION_CONTACT_NAME', 'Alaveteli Webmaster');
+
+// Workflow settings
+define('OPTION_REPLY_LATE_AFTER_DAYS', 20);
+
+// Blog and Twitter
+define('OPTION_BLOG_FEED', 'http://www.mysociety.org/category/projects/whatdotheyknow/feed/');
+define('OPTION_TWITTER_USERNAME', 'whatdotheyknow');
+
+
+// Incoming email
+define('OPTION_INCOMING_EMAIL_DOMAIN', 'localhost'); // e.g. 'foifa.com'
+define('OPTION_INCOMING_EMAIL_PREFIX', ''); // e.g. 'foi+'
+define('OPTION_INCOMING_EMAIL_SECRET', 'xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx'); // used for hash in request email address
+define('OPTION_BLACKHOLE_PREFIX', 'do-not-reply-to-this-address'); // used as envelope from at the incoming email domain for cases where we don't care about failure
+
+// Administration
+// To completely skip admin authentication, set these to empty strings
+define('OPTION_ADMIN_USERNAME', 'adminxxxx');
+define('OPTION_ADMIN_PASSWORD', 'passwordx');
+
+define('OPTION_ADMIN_BASE_URL', '/admin/');
+
+
+
+// Where /stylesheets sits under for admin pages. See asset_host in
+// config/environment.rb. Can be full domain or relative path (not an absolute path beginning with /).
+define('OPTION_ADMIN_PUBLIC_URL', '');
+
+// Secret key for signing cookie_store sessions
+define('OPTION_COOKIE_STORE_SESSION_SECRET', 'your secret key here, make it long and random');
+
+// If present, puts the site in read only mode, and uses the text as reason
+// (whole paragraph). Please use a read-only database user as well, as it only
+// checks in a few obvious places.
+define('OPTION_READ_ONLY', '');
+
+// Recaptcha, for detecting humans. Get keys here: http://recaptcha.net/whyrecaptcha.html
+define('OPTION_RECAPTCHA_PUBLIC_KEY', 'x');
+define('OPTION_RECAPTCHA_PRIVATE_KEY', 'x');
+
+// Locales we wish to support in this app
+define('OPTION_AVAILABLE_LOCALES', 'en es');
+define('DEFAULT_LOCALE', 'en');
+
+// example searches for the home page, semicolon delimited
+define('OPTION_FRONTPAGE_SEARCH_EXAMPLES', 'Geraldine Quango; Department for Humpadinking');
+
+// example public bodies for the home page, semicolon delimited - short_names
+define('OPTION_FRONTPAGE_PUBLICBODY_EXAMPLES', 'tgq');
+
+// URL of theme to install
+define('OPTION_THEME_URL', 'git://github.com/mysociety/whatdotheyknow-theme.git');
+
+?>
diff --git a/config/i18n-routes.yml b/config/i18n-routes.yml
index 1f9b3028c..fbde62df3 100644
--- a/config/i18n-routes.yml
+++ b/config/i18n-routes.yml
@@ -1,6 +1,8 @@
en:
# default from routes.rb
+sq:
+ # let routes be in english all
+sr:
+ # let routes be in english all
es:
- search: busquedas
- help: ayuda
- about: sobre
+ # let routes be in english all
diff --git a/config/routes.rb b/config/routes.rb
index ed6125abd..ec0e24f67 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -17,7 +17,7 @@ ActionController::Routing::Routes.draw do |map|
map.with_options :controller => 'general' do |general|
general.frontpage '/', :action => 'frontpage'
general.blog '/blog', :action => 'blog'
- general.custom_css '/stylesheets/custom.css', :action => 'custom_css'
+ general.custom_css '/stylesheets/custom.css', :action => 'custom_css'
general.search_redirect '/search', :action => 'search_redirect'
# XXX combined is the search query, and then if sorted a "/newest" at the end.
# Couldn't find a way to do this in routes which also picked up multiple other slashes
@@ -111,7 +111,11 @@ ActionController::Routing::Routes.draw do |map|
help.help_unhappy '/help/unhappy/:url_title', :action => 'unhappy'
help.help_about '/help/about', :action => 'about'
help.help_contact '/help/contact', :action => 'contact'
+ help.help_officers '/help/officers', :action => 'officers'
help.help_requesting '/help/requesting', :action => 'requesting'
+ help.help_privacy '/help/privacy', :action => 'privacy'
+ help.help_api '/help/api', :action => 'api'
+ help.help_credits '/help/credits', :action => 'credits'
help.help_general '/help/:action', :action => :action
end
@@ -191,6 +195,8 @@ ActionController::Routing::Routes.draw do |map|
rule.admin_rule_update '/admin/censor/update', :action => 'update'
rule.admin_rule_destroy '/admin/censor/destroy/:censor_rule_id', :action => 'destroy'
end
+ map.filter('locale')
+
# Allow downloading Web Service WSDL as a file with an extension
# instead of a file named 'wsdl'
diff --git a/INSTALL-exim4.md b/doc/INSTALL-exim4.md
index c564fb70f..c564fb70f 100644
--- a/INSTALL-exim4.md
+++ b/doc/INSTALL-exim4.md
diff --git a/INSTALL.md b/doc/INSTALL.md
index f6f8ff483..f6f8ff483 100644
--- a/INSTALL.md
+++ b/doc/INSTALL.md
diff --git a/doc/THEMES.md b/doc/THEMES.md
new file mode 100644
index 000000000..a4793a6fd
--- /dev/null
+++ b/doc/THEMES.md
@@ -0,0 +1,112 @@
+When installing an Alaveteli site, there are a few things that you
+might want to do to customise it, beyond the available settings in the
+`config/general` file.
+
+The most common requirement is to brand the site: at a minimum,
+inserting your own logo and colour scheme. You may also want to tweak
+the different states that a request can go through.
+
+There may also be other things you want to customise; drop a line on
+the developer's mailing list to discuss, if so. We're still working
+out the best way of doing these kinds of customisations!
+
+In any case, the important principle to bear in mind is that the less
+you override and customise the code, the easier your site will be to
+maintain in the long term. Any customisation is possible, but for
+each customisation beyond the simple cases documented here, ask
+yourself or your client, "can we possibly live without this?" If the
+answer is "no", then consider starting a discussion about a pluggable
+way of achieving your goals, rather than overriding any of the core
+code.
+
+# General principles
+
+We try to encapsulate all site-specific functionality in one of these
+places:
+
+* Site configuration (e.g. the name of your site, the available
+ languages etc -- all in `config/general`)
+* Data (e.g. the public bodies to whom requests should be addressed)
+* A rails "plugin", installed in `vendor/plugins/`. We call these
+ "themes".
+
+This document is about what you can do in a theme.
+
+To get started, install the sample theme by running
+
+ ./script/plugin install git://github.com/sebbacon/alavetelitheme.git
+
+# Branding the site
+
+The core templates that comprise the layout and user interface of an
+Alaveteli site live in `app/views/`. They are use Rails' ERB syntax.
+For example, the template for the home page lives at
+`app/views/general/frontpage.rhtml`, and the template for the "about
+us" page is at `app/views/help/about.rhtml`.
+
+Any of these pages can be overridden in your own theme, by placing
+them at a corresponding location within your theme's `lib/` directory.
+These means that a file at
+`vendor/plugins/alavetelitheme/lib/help/about.rhml` will appear in
+place of the core "about us" file.
+
+There's a special file at
+`vendor/plugins/alavetelitheme/lib/views/general/custom_css.rhtml`.
+Its contents are automatically included as the last CSS file in the
+header of the site. In theory, it should be possible to do quite a
+lot of layout customisation by only changing this file.
+
+Your CSS is likely to reference various images such as a logo,
+background images, etc. We don't have a nice way of supporting these
+at the moment. The current practice is to place them in
+`vendor/plugins/alavetelitheme/public/images/` and then symlink this
+directory to somewhere within the `public/` folder in the main
+Alaveteli Rails app, e.g.:
+
+ ln -s $ALAVETELI_SITE/vendor/plugins/alavetelitheme/public/images/ public/images/my_images
+
+...and then refer to these in your custom_css.rhtml like so:
+
+ background-image: url("../my_images/navimg/my-logo.png");
+
+# Customising the request states
+
+As mentioned above, if you can possibly live with the
+[default Alaveteli request statuses](https://github.com/sebbacon/alaveteli/wiki/Alaveteli's-request-statuses),
+it would be good to do so. Note that you can set how many days counts
+as "overdue" in the main site config file.
+
+If you can't live with the states as they are, there's a very basic
+way to add to them (which will get improved over time). There's not
+currently a way to remove any.
+
+To do this, create two modules in your theme,
+`InfoRequestCustomStates` and `RequestControllerCustomStates`. The
+former must have these two methods:
+
+* `theme_extra_states`: return a list of tags which identify the extra states you'd like to support
+* `theme_display_status`: return human-readable strings corresponding with these tags
+
+The latter must have one method:
+
+* `theme_describe_state`: Return a notice for the user suitable for
+ displaying after they've categorised a request; and redirect them to
+ a suitable next page
+
+When you've added your extra states, you also need to create the following files in your theme:
+
+* `lib/views/general/_custom_state_descriptions.rhtml`: Descriptions
+ of your new states, suitable for displaying to end users
+* `lib/views/general/_custom_state_transitions_complete.rhtml`:
+ Descriptions for any new states that you might characterise as
+ 'completion' states, for displaying on the categorisation form that
+ we ask requestors to fill out
+* `lib/views/general/_custom_state_transitions_pending.rhtml`: As
+ above, but for new states you might characterise as 'pending'
+ states.
+
+You can see examples of these customisations in
+[this commit](https://github.com/sebbacon/informatazyrtare-theme/commit/2b240491237bd72415990399904361ce9bfa431d)
+for the Kosovan version of Alaveteli, Informata Zyrtare (ignore the
+file `lib/views/general/_custom_state_transitions.rhtml`, which is
+unused).
diff --git a/todo.txt b/doc/todo.txt
index e78429960..e78429960 100644
--- a/todo.txt
+++ b/doc/todo.txt
diff --git a/lib/languages.rb b/lib/languages.rb
new file mode 100644
index 000000000..43212a777
--- /dev/null
+++ b/lib/languages.rb
@@ -0,0 +1,193 @@
+class LanguageNames
+ def self.get_language_name(locale)
+ language_names = {
+ 'ab' => 'аҧсуа',
+ 'aa' => 'Afaraf',
+ 'af' => 'Afrikaans',
+ 'ak' => 'Akan',
+ 'sq' => 'Shqip',
+ 'am' => 'አማርኛ',
+ 'ar' => 'العربية',
+ 'an' => 'Aragonés',
+ 'hy' => 'Հայերեն',
+ 'as' => 'অসমীয়া',
+ 'av' => 'авар мацӀ',
+ 'ae' => 'avesta',
+ 'ay' => 'aymar aru',
+ 'az' => 'azərbaycan dili',
+ 'bm' => 'bamanankan',
+ 'ba' => 'башҡорт теле',
+ 'eu' => 'euskara',
+ 'be' => 'Беларуская',
+ 'bn' => 'বাংলা',
+ 'bh' => 'भोजपुरी',
+ 'bi' => 'Bislama',
+ 'bs' => 'bosanski jezik',
+ 'br' => 'brezhoneg',
+ 'bg' => 'български език',
+ 'my' => 'ဗမာစာ',
+ 'ca' => 'Català',
+ 'ch' => 'Chamoru',
+ 'ce' => 'нохчийн мотт',
+ 'ny' => 'chiCheŵa',
+ 'zh' => '中文 (Zhōngwén)',
+ 'cv' => 'чӑваш чӗлхи',
+ 'kw' => 'Kernewek',
+ 'co' => 'corsu',
+ 'cr' => 'ᓀᐦᐃᔭᐍᐏᐣ',
+ 'hr' => 'hrvatski',
+ 'cs' => 'česky',
+ 'da' => 'dansk',
+ 'dv' => 'ދިވެހި',
+ 'nl' => 'Nederlands',
+ 'dz' => 'རྫོང་ཁ',
+ 'en' => 'English',
+ 'eo' => 'Esperanto',
+ 'et' => 'eesti',
+ 'ee' => 'Eʋegbe',
+ 'fo' => 'føroyskt',
+ 'fj' => 'vosa Vakaviti',
+ 'fi' => 'suomi',
+ 'fr' => 'français',
+ 'ff' => 'Fulfulde',
+ 'gl' => 'Galego',
+ 'ka' => 'ქართული',
+ 'de' => 'Deutsch',
+ 'el' => 'Ελληνικά',
+ 'gn' => 'Avañe\'ẽ',
+ 'gu' => 'ગુજરાતી',
+ 'ht' => 'Kreyòl ayisyen',
+ 'ha' => 'Hausa',
+ 'he' => 'עברית',
+ 'hz' => 'Otjiherero',
+ 'hi' => 'हिन्दी',
+ 'ho' => 'Hiri Motu',
+ 'hu' => 'Magyar',
+ 'ia' => 'Interlingua',
+ 'id' => 'Bahasa Indonesia',
+ 'ie' => 'Originally called Occidental; then Interlingue after WWII',
+ 'ga' => 'Gaeilge',
+ 'ig' => 'Asụsụ Igbo',
+ 'ik' => 'Iñupiaq',
+ 'io' => 'Ido',
+ 'is' => 'Íslenska',
+ 'it' => 'Italiano',
+ 'iu' => 'ᐃᓄᒃᑎᑐᑦ',
+ 'ja' => '日本語 (にほんご)',
+ 'jv' => 'basa Jawa',
+ 'kl' => 'kalaallisut',
+ 'kn' => 'ಕನ್ನಡ',
+ 'kr' => 'Kanuri',
+ 'ks' => 'कश्मीरी',
+ 'kk' => 'Қазақ тілі',
+ 'km' => 'ភាសាខ្មែរ',
+ 'ki' => 'Gĩkũyũ',
+ 'rw' => 'Ikinyarwanda',
+ 'ky' => 'кыргыз тили',
+ 'kv' => 'коми кыв',
+ 'kg' => 'KiKongo',
+ 'ko' => '한국어 (韓國語)',
+ 'ku' => 'Kurdî',
+ 'kj' => 'Kuanyama',
+ 'la' => 'latine',
+ 'lb' => 'Lëtzebuergesch',
+ 'lg' => 'Luganda',
+ 'li' => 'Limburgs',
+ 'ln' => 'Lingála',
+ 'lo' => 'ພາສາລາວ',
+ 'lt' => 'lietuvių kalba',
+ 'lu' => '',
+ 'lv' => 'latviešu valoda',
+ 'gv' => 'Gaelg',
+ 'mk' => 'македонски јазик',
+ 'mg' => 'Malagasy fiteny',
+ 'ms' => 'bahasa Melayu',
+ 'ml' => 'മലയാളം',
+ 'mt' => 'Malti',
+ 'mi' => 'te reo Māori',
+ 'mr' => 'मराठी',
+ 'mh' => 'Kajin M̧ajeļ',
+ 'mn' => 'монгол',
+ 'na' => 'Ekakairũ Naoero',
+ 'nv' => 'Diné bizaad',
+ 'nb' => 'Norsk bokmål',
+ 'nd' => 'isiNdebele',
+ 'ne' => 'नेपाली',
+ 'ng' => 'Owambo',
+ 'nn' => 'Norsk nynorsk',
+ 'no' => 'Norsk',
+ 'ii' => 'ꆈꌠ꒿ Nuosuhxop',
+ 'nr' => 'isiNdebele',
+ 'oc' => 'Occitan',
+ 'oj' => 'ᐊᓂᔑᓈᐯᒧᐎᓐ',
+ 'cu' => 'ѩзыкъ словѣньскъ',
+ 'om' => 'Afaan Oromoo',
+ 'or' => 'ଓଡ଼ିଆ',
+ 'os' => 'ирон æвзаг',
+ 'pa' => 'ਪੰਜਾਬੀ',
+ 'pi' => 'पाऴि',
+ 'fa' => 'فارسی',
+ 'pl' => 'polski',
+ 'ps' => 'پښتو',
+ 'pt' => 'Português',
+ 'qu' => 'Runa Simi',
+ 'rm' => 'rumantsch grischun',
+ 'rn' => 'Ikirundi',
+ 'ro' => 'română',
+ 'ru' => 'русский язык',
+ 'sa' => 'संस्कृतम्',
+ 'sc' => 'sardu',
+ 'sd' => 'सिन्धी',
+ 'se' => 'Davvisámegiella',
+ 'sm' => 'gagana fa\'a',
+ 'sg' => 'yângâ tî sängö',
+ 'sr' => 'српски језик',
+ 'gd' => 'Gàidhlig',
+ 'sn' => 'chiShona',
+ 'si' => 'සිංහල',
+ 'sk' => 'slovenčina',
+ 'sl' => 'slovenščina',
+ 'so' => 'Soomaaliga',
+ 'st' => 'Sesotho',
+ 'es' => 'español',
+ 'su' => 'Basa Sunda',
+ 'sw' => 'Kiswahili',
+ 'ss' => 'SiSwati',
+ 'sv' => 'svenska',
+ 'ta' => 'தமிழ்',
+ 'te' => 'తెలుగు',
+ 'tg' => 'тоҷикӣ',
+ 'th' => 'ไทย',
+ 'ti' => 'ትግርኛ',
+ 'bo' => 'བོད་ཡིག',
+ 'tk' => 'Türkmen',
+ 'tl' => 'Wikang Tagalog',
+ 'tn' => 'Setswana',
+ 'to' => 'faka Tonga',
+ 'tr' => 'Türkçe',
+ 'ts' => 'Xitsonga',
+ 'tt' => 'татарча',
+ 'tw' => 'Twi',
+ 'ty' => 'Reo Tahiti',
+ 'ug' => 'Uyƣurqə',
+ 'uk' => 'українська',
+ 'ur' => 'اردو',
+ 'uz' => 'O\'zbek',
+ 've' => 'Tshivenḓa',
+ 'vi' => 'Tiếng Việt',
+ 'vo' => 'Volapük',
+ 'wa' => 'Walon',
+ 'cy' => 'Cymraeg',
+ 'wo' => 'Wollof',
+ 'fy' => 'Frysk',
+ 'xh' => 'isiXhosa',
+ 'yi' => 'ייִדיש',
+ 'yo' => 'Yorùbá',
+ 'za' => 'Saɯ cueŋƅ',
+ 'zu' => 'isiZulu'
+ }
+
+ return language_names[locale]
+ end
+end
+
diff --git a/lib/public_body_categories.rb b/lib/public_body_categories.rb
index e30ce8707..844e14e67 100644
--- a/lib/public_body_categories.rb
+++ b/lib/public_body_categories.rb
@@ -8,84 +8,7 @@
module PublicBodyCategories
- CATEGORIES_WITH_HEADINGS = [
- "Miscellaneous",
- [ "other", "Miscellaneous", "miscellaneous" ],
- "Central government",
- [ "department", "Ministerial departments", "a ministerial department" ],
- [ "non_ministerial_department", "Non-ministerial departments", "a non-ministerial department" ],
- [ "executive_agency", "Executive agencies", "an executive agency" ],
- [ "government_office", "Government offices for the regions", "a government office for the regions" ],
- [ "advisory_committee", "Advisory committees", "an advisory committee" ],
- [ "awc", "Agricultural wages committees", "an agriculatural wages committee" ],
- [ "adhac", "Agricultural dwelling house advisory committees", "an agriculatural dwelling house advisory committee" ],
- [ "newdeal", "New Deal for Communities partnership", "a New Deal for Communities partnership" ],
- "Local and regional",
- [ "local_council", "Local councils", "a local council" ],
- [ "parish_council", "Town and Parish councils", "a town or parish council"],
- [ "housing_association", "Housing associations", "a housing association"],
- [ "almo", "Housing ALMOs", "a housing ALMO"],
- [ "municipal_bank", "Municipal bank", "a municipal bank"],
- [ "nsbody", "North/south bodies", "a north/south body"],
- [ "pbo", "Professional buying organisations", "a professional buying organisation"],
- [ "regional_assembly", "Regional assemblies", "a regional assembly"],
- [ "rda", "Regional development agencies", "a regional development agency" ],
- "Education",
- [ "university", "Universities", "a university" ],
- [ "university_college", "University colleges", "a university college" ],
- [ "cambridge_college", "Cambridge colleges", "a Cambridge college" ],
- [ "durham_college", "Durham colleges", "a Durham college" ],
- [ "oxford_college", "Oxford colleges", "an Oxford college or permanent private hall" ],
- [ "york_college", "York colleges", "a college of the University of York" ],
- [ "university_owned_company", "University owned companies", "a university owned company" ],
- [ "hei", "Higher education institutions", "a higher educational institution" ],
- [ "fei", "Further education institutions", "a further educational institution" ],
- [ "school", "Schools", "a school" ],
- [ "research_council", "Research councils", "a research council" ],
- [ "lib_board", "Education and library boards", "an education and library board" ],
- [ "rbc", "Regional Broadband Consortia", "a Regional Broadband Consortium" ],
- "Environment",
- [ "npa", "National park authorities", "a national park authority" ],
- [ "rpa", "Regional park authorities", "a regional park authority" ],
- [ "watercompanies", "Water companies", "a water company" ],
- [ "ifca", "Inshore fisheries and conservation authorities", "an inshore fisheries and conservation authority" ],
- [ "idb", "Internal drainage boards", "an internal drainage board" ],
- [ "wda", "Waste disposal authorities", "a waste disposal authority" ],
- [ "zoo", "Zoos", "a zoo" ],
- "Health",
- [ "nhstrust", "NHS trusts", "an NHS trust" ],
- [ "pct", "Primary care trusts", "a primary care trust" ],
- [ "nhswales", "NHS in Wales", "part of the NHS in Wales" ],
- [ "nhsni", "NHS in Northern Ireland", "part of the NHS in Northern Ireland" ],
- [ "hscr", "Health / social care", "Relating to health / social care" ],
- [ "pha", "Port health authorities", "a port health authority"],
- [ "sha", "Strategic health authorities", "a strategic health authority" ],
- [ "specialha", "Special health authorities", "a special health authority" ],
- "Media and culture",
- [ "media", "Media", "a media organisation" ],
- [ "rcc", "Cultural consortia", "a cultural consortium"],
- [ "museum", "Museums and galleries", "a museum or gallery" ],
- "Military and security services",
- [ "military_college", "Military colleges", "a military college" ],
- [ "security_services", "Security services", "a security services body" ],
- "Emergency services and the courts",
- [ "police", "Police forces", "a police force" ],
- [ "police_authority", "Police authorities", "a police authority" ],
- [ "dpp", "District policing partnerships", "a district policing partnership" ],
- [ "fire_service", "Fire and rescue services", "a fire and rescue service" ],
- [ "probation_trust", "Probation trusts", "a probation trust" ],
- [ "rules_committee", "Rules commitees", "a rules committee" ],
- [ "tribunal", "Tribunals", "a tribunal"],
- "Transport",
- [ "npte", "Passenger transport executives", "a passenger transport executive" ],
- [ "port_authority", "Port authorities", "a port authority" ],
- [ "scp", "Safety Camera Partnerships", "a safety camera partnership" ],
- [ "srp", "Safer Roads Partnership", "a safer roads partnership" ],
- "Defunct",
- [ "prob_board", "Probation boards", "a probation board" ],
- [ "rfdc", "Regional flood defence committees", "a regional flood defence committee" ],
- [ "sea_fishery_committee", "Sea fisheries committees", "a sea fisheries committee" ],
- ]
+ CATEGORIES_WITH_HEADINGS = []
# Arranged in different ways for different sorts of displaying
CATEGORIES_WITH_DESCRIPTION = CATEGORIES_WITH_HEADINGS.select() { |a| a.instance_of?(Array) }
diff --git a/lib/public_body_categories_en.rb b/lib/public_body_categories_en.rb
new file mode 100644
index 000000000..93183d397
--- /dev/null
+++ b/lib/public_body_categories_en.rb
@@ -0,0 +1,93 @@
+# lib/public_body_categories.rb:
+# Categorisations of public bodies.
+#
+# Copyright (c) 2009 UK Citizens Online Democracy. All rights reserved.
+# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+#
+# $Id: public_body_categories.rb,v 1.1 2009-09-14 14:45:48 francis Exp $
+
+module PublicBodyCategories
+
+ CATEGORIES_WITH_HEADINGS = [
+ "Miscellaneous",
+ [ "other", "Miscellaneous", "miscellaneous" ],
+ _("Central government"),
+ [ "department", "Ministerial departments", "a ministerial department" ],
+ [ "non_ministerial_department", "Non-ministerial departments", "a non-ministerial department" ],
+ [ "executive_agency", "Executive agencies", "an executive agency" ],
+ [ "government_office", "Government offices for the regions", "a government office for the regions" ],
+ [ "advisory_committee", "Advisory committees", "an advisory committee" ],
+ [ "awc", "Agricultural wages committees", "an agriculatural wages committee" ],
+ [ "adhac", "Agricultural dwelling house advisory committees", "an agriculatural dwelling house advisory committee" ],
+ [ "newdeal", "New Deal for Communities partnership", "a New Deal for Communities partnership" ],
+ _("Local and regional"),
+ [ "local_council", "Local councils", "a local council" ],
+ [ "parish_council", "Town and Parish councils", "a town or parish council"],
+ [ "housing_association", "Housing associations", "a housing association"],
+ [ "almo", "Housing ALMOs", "a housing ALMO"],
+ [ "municipal_bank", "Municipal bank", "a municipal bank"],
+ [ "nsbody", "North/south bodies", "a north/south body"],
+ [ "pbo", "Professional buying organisations", "a professional buying organisation"],
+ [ "regional_assembly", "Regional assemblies", "a regional assembly"],
+ [ "rda", "Regional development agencies", "a regional development agency" ],
+ "Education",
+ [ "university", "Universities", "a university" ],
+ [ "university_college", "University colleges", "a university college" ],
+ [ "cambridge_college", "Cambridge colleges", "a Cambridge college" ],
+ [ "durham_college", "Durham colleges", "a Durham college" ],
+ [ "oxford_college", "Oxford colleges", "an Oxford college or permanent private hall" ],
+ [ "york_college", "York colleges", "a college of the University of York" ],
+ [ "university_owned_company", "University owned companies", "a university owned company" ],
+ [ "hei", "Higher education institutions", "a higher educational institution" ],
+ [ "fei", "Further education institutions", "a further educational institution" ],
+ [ "school", "Schools", "a school" ],
+ [ "research_council", "Research councils", "a research council" ],
+ [ "lib_board", "Education and library boards", "an education and library board" ],
+ [ "rbc", "Regional Broadband Consortia", "a Regional Broadband Consortium" ],
+ "Environment",
+ [ "npa", "National park authorities", "a national park authority" ],
+ [ "rpa", "Regional park authorities", "a regional park authority" ],
+ [ "sea_fishery_committee", "Sea fisheries committees", "a sea fisheries committee" ],
+ [ "watercompanies", "Water companies", "a water company" ],
+ [ "idb", "Internal drainage boards", "an internal drainage board" ],
+ [ "rfdc", "Regional flood defence committees", "a regional flood defence committee" ],
+ [ "wda", "Waste disposal authorities", "a waste disposal authority" ],
+ [ "zoo", "Zoos", "a zoo" ],
+ "Health",
+ [ "nhstrust", "NHS trusts", "an NHS trust" ],
+ [ "pct", "Primary care trusts", "a primary care trust" ],
+ [ "nhswales", "NHS in Wales", "part of the NHS in Wales" ],
+ [ "nhsni", "NHS in Northern Ireland", "part of the NHS in Northern Ireland" ],
+ [ "hscr", "Health / social care", "Relating to health / social care" ],
+ [ "pha", "Port health authorities", "a port health authority"],
+ [ "sha", "Strategic health authorities", "a strategic health authority" ],
+ [ "specialha", "Special health authorities", "a special health authority" ],
+ "Media and culture",
+ [ "media", "Media", "a media organisation" ],
+ [ "rcc", "Cultural consortia", "a cultural consortium"],
+ [ "museum", "Museums and galleries", "a museum or gallery" ],
+ "Military and security services",
+ [ "military_college", "Military colleges", "a military college" ],
+ [ "security_services", "Security services", "a security services body" ],
+ "Emergency services and the courts",
+ [ "police", "Police forces", "a police force" ],
+ [ "police_authority", "Police authorities", "a police authority" ],
+ [ "dpp", "District policing partnerships", "a district policing partnership" ],
+ [ "fire_service", "Fire and rescue services", "a fire and rescue service" ],
+ [ "prob_board", "Probation boards", "a probation board" ],
+ [ "rules_committee", "Rules commitees", "a rules committee" ],
+ [ "tribunal", "Tribunals", "a tribunal"],
+ "Transport",
+ [ "npte", "Passenger transport executives", "a passenger transport executive" ],
+ [ "port_authority", "Port authorities", "a port authority" ],
+ [ "scp", "Safety Camera Partnerships", "a safety camera partnership" ],
+ [ "srp", "Safer Roads Partnership", "a safer roads partnership" ]
+ ]
+
+ # Arranged in different ways for different sorts of displaying
+ CATEGORIES_WITH_DESCRIPTION = CATEGORIES_WITH_HEADINGS.select() { |a| a.instance_of?(Array) }
+ CATEGORIES = CATEGORIES_WITH_DESCRIPTION.map() { |a| a[0] }
+ CATEGORIES_BY_TAG = Hash[*CATEGORIES_WITH_DESCRIPTION.map() { |a| a[0..1] }.flatten]
+ CATEGORY_SINGULAR_BY_TAG = Hash[*CATEGORIES_WITH_DESCRIPTION.map() { |a| [a[0],a[2]] }.flatten]
+end
+
diff --git a/locale/app.pot b/locale/app.pot
index 5be2c364d..f7a4e478a 100644
--- a/locale/app.pot
+++ b/locale/app.pot
@@ -7,8 +7,8 @@
msgid ""
msgstr ""
"Project-Id-Version: version 0.0.1\n"
-"POT-Creation-Date: 2011-06-16 19:20+0100\n"
-"PO-Revision-Date: 2011-06-14 09:06+0100\n"
+"POT-Creation-Date: 2011-06-25 15:32+0200\n"
+"PO-Revision-Date: 2011-02-24 07:11-0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
@@ -17,66 +17,373 @@ msgstr ""
"Language: \n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-#: app/views/public_body/show.rhtml:79
+#: app/views/user/set_profile_about_me.rhtml:14
+msgid ""
+" This will appear on your WhatDoTheyKnow profile, to make it\n"
+" easier for others to get involved with what you're doing."
+msgstr ""
+
+#: app/views/comment/_comment_form.rhtml:17
+msgid ""
+" (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation "
+"policy</a>)"
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:40
+msgid ""
+" (<strong>patience</strong>, especially for large files, it may take a "
+"while!)"
+msgstr ""
+
+#: app/views/user/show.rhtml:59
+msgid " (you)"
+msgstr ""
+
+#: app/views/user/signchangepassword_send_confirm.rhtml:18
+msgid ""
+" <strong>Note:</strong>\n"
+" We will send you an email. Follow the instructions in it to change\n"
+" your password."
+msgstr ""
+
+#: app/views/user/contact.rhtml:35
+msgid " <strong>Privacy note:</strong> Your email address will be given to"
+msgstr ""
+
+#: app/views/comment/new.rhtml:33
+msgid " <strong>Summarise</strong> the content of any information returned. "
+msgstr ""
+
+#: app/views/comment/new.rhtml:23
+msgid " Advise on how to <strong>best clarify</strong> the request."
+msgstr ""
+
+#: app/views/comment/new.rhtml:49
+msgid ""
+" Ideas on what <strong>other documents to request</strong> which the "
+"authority may hold. "
+msgstr ""
+
+#: app/views/public_body/view_email.rhtml:30
+msgid ""
+" If you know the address to use, then please <a href=\"%s\">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 ""
+
+#: app/views/user/set_profile_about_me.rhtml:26
+msgid ""
+" Include relevant links, such as to a campaign page, your blog or a\n"
+" twitter account. They will be made clickable. \n"
+" e.g."
+msgstr ""
+
+#: app/views/comment/new.rhtml:27
+msgid ""
+" Link to the information requested, if it is <strong>already available</"
+"strong> on the Internet. "
+msgstr ""
+
+#: app/views/comment/new.rhtml:29
+msgid ""
+" Offer better ways of <strong>wording the request</strong> to get the "
+"information. "
+msgstr ""
+
+#: app/views/user/sign.rhtml:26
+msgid " Please sign in or make a new account."
+msgstr ""
+
+#: app/views/comment/new.rhtml:34
+msgid ""
+" Say how you've <strong>used the information</strong>, with links if "
+"possible."
+msgstr ""
+
+#: app/views/comment/new.rhtml:28
+msgid ""
+" Suggest <strong>where else</strong> the requester might find the "
+"information. "
+msgstr ""
+
+#: app/views/user/set_profile_about_me.rhtml:11
+msgid " What are you investigating using Freedom of Information? "
+msgstr ""
+
+#: app/controllers/comment_controller.rb:75
+msgid " You are already being emailed updates about the request."
+msgstr ""
+
+#: app/controllers/comment_controller.rb:73
+msgid " You will also be emailed updates about the request."
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:5
+msgid " made by "
+msgstr ""
+
+#: app/views/user/show.rhtml:123
+msgid " made no Freedom of Information requests using this site."
+msgstr ""
+
+#: app/views/user/contact.rhtml:36
+msgid " when you send this message."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:82
msgid "%d Freedom of Information request"
msgid_plural "%d Freedom of Information requests"
msgstr[0] ""
msgstr[1] ""
-#: app/views/general/frontpage.rhtml:36
+#: app/views/general/frontpage.rhtml:35
msgid "%d request"
msgid_plural "%d requests"
msgstr[0] ""
msgstr[1] ""
+#: app/views/request/new.rhtml:102
+msgid "'Crime statistics by ward level for Wales'"
+msgstr ""
+
+#: app/views/request/new.rhtml:100
+msgid "'Pollution levels over time for the River Tyne'"
+msgstr ""
+
+#: app/controllers/user_controller.rb:345
+msgid ""
+",\n"
+"\n"
+"\n"
+"\n"
+"Yours,\n"
+"\n"
+"{{user_name}}"
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:9
+msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
+msgstr ""
+
+#: app/views/public_body/list.rhtml:29
+msgid "<a href=\"%s\">Are we missing a public authority?</a>."
+msgstr ""
+
+#: app/views/request/_sidebar.rhtml:45
+msgid ""
+"<a href=\"%s\">Are you the owner of\n"
+" any commercial copyright on this page?</a>"
+msgstr ""
+
#: app/views/general/search.rhtml:53
msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
msgstr ""
-#: app/views/public_body/show.rhtml:49
+#: app/views/general/exception_caught.rhtml:13
+msgid "<a href=\"%s\">Contact us</a> to tell us about the problem</li>"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:51
msgid ""
"<a href=\"%s\">Make a new Freedom of Information request</a> to "
"{{public_body_name}}"
msgstr ""
-#: app/views/general/search.rhtml:130
+#: app/views/public_body/list.rhtml:43
+msgid "<a href=\"%s\">can't find the one you want?</a>"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:42 app/views/request/_followup.rhtml:49
+#: app/views/request/show.rhtml:76 app/views/request/show.rhtml:80
+msgid "<a href=\"%s\">details</a>"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:78
+msgid "<a href=\"%s\">what's that?</a>"
+msgstr ""
+
+#: app/controllers/request_game_controller.rb:23
+msgid ""
+"<p>All done! Thank you very much for your help.</p><p>There are <a href=\"%s"
+"\">more things you can do</a> to help WhatDoTheyKnow.</p>"
+msgstr ""
+
+#: app/controllers/request_controller.rb:382
+msgid ""
+"<p>Thank you! Here are some ideas on what to do next:</p>\n"
+" <ul>\n"
+" <li>To send your request to another authority, first copy the "
+"text of your request below, then <a href=\"%s\">find the other authority</a>."
+"</li>\n"
+" <li>If you would like to contest the authority's claim that they "
+"do not hold the information, here is \n"
+" <a href=\"%s\">how to complain</a>.\n"
+" </li>\n"
+" <li>We have <a href=\"%s\">suggestions</a>\n"
+" on other means to answer your question.\n"
+" </li>\n"
+" </ul>\n"
+" "
+msgstr ""
+
+#: app/controllers/request_controller.rb:376
+msgid ""
+"<p>Thank you! Hope you don't have to wait much longer.</p> <p>By law, you "
+"should have got a response promptly, and normally before the end of <strong>"
+"{{date_response_required_by}}</strong>.</p>"
+msgstr ""
+
+#: app/controllers/request_controller.rb:372
+msgid ""
+"<p>Thank you! Hopefully your wait isn't too long.</p> <p>By law, you should "
+"get a response promptly, and normally before the end of <strong>\n"
+"{{date_response_required_by}}</strong>.</p>"
+msgstr ""
+
+#: app/controllers/request_controller.rb:415
+msgid ""
+"<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a "
+"response within 20 days, or be told if it will take longer (<a href=\"%s"
+"\">details</a>).</p>"
+msgstr ""
+
+#: app/controllers/request_controller.rb:418
+msgid ""
+"<p>Thank you! We'll look into what happened and try and fix it up.</p><p>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.</p>"
+msgstr ""
+
+#: app/controllers/request_controller.rb:379
+msgid ""
+"<p>Thank you! Your request is long overdue, by more than 40 working days. "
+"Most requests should be answered within 20 working days. You might like to "
+"complain about this, see below.</p>"
+msgstr ""
+
+#: app/controllers/user_controller.rb:485
+msgid ""
+"<p>Thanks for changing the text about you on your profile.</p>\n"
+" <p><strong>Next...</strong> You can upload a profile photograph "
+"too.</p>"
+msgstr ""
+
+#: app/controllers/user_controller.rb:407
+msgid ""
+"<p>Thanks for updating your profile photo.</p>\n"
+" <p><strong>Next...</strong> You can put some text about you "
+"and your research on your profile.</p>"
+msgstr ""
+
+#: app/controllers/request_controller.rb:267
+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 ""
+
+#: app/controllers/request_controller.rb:398
+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><p>If you found WhatDoTheyKnow useful, <a href="
+"\"%s\">make a donation</a> to the charity which runs it.</p>"
+msgstr ""
+
+#: app/controllers/request_controller.rb:401
+msgid ""
+"<p>We're glad you got some of the information that you wanted. If you found "
+"WhatDoTheyKnow useful, <a href=\"%s\">make a donation</a> to the charity "
+"which runs it.</p><p>If you want to try and get the rest of the information, "
+"here's what to do now.</p>"
+msgstr ""
+
+#: app/controllers/request_controller.rb:265
+msgid ""
+"<p>You do not need to include your email in the request in order to get a "
+"reply (<a href=\"%s\">details</a>).</p>"
+msgstr ""
+
+#: app/controllers/request_controller.rb:263
+msgid ""
+"<p>You do not need to include your email in the request in order to get a "
+"reply, as we will ask for it on the next screen (<a href=\"%s\">details</a>)."
+"</p>"
+msgstr ""
+
+#: app/controllers/request_controller.rb:271
+msgid ""
+"<p>Your request contains a <strong>postcode</strong>. Unless it directly "
+"relates to the subject of your request, please remove any address as it will "
+"<strong>appear publicly on the Internet</strong>.</p>"
+msgstr ""
+
+#: app/controllers/request_controller.rb:294
+msgid ""
+"<p>Your {{law_used_full}} request has been <strong>sent on its way</strong>!"
+"</p>\n"
+" <p><strong>We will email you</strong> when there is a response, "
+"or after 20 working days if the authority still hasn't\n"
+" replied by then.</p>\n"
+" <p>If you write about this request (for example in a forum or a "
+"blog) please link to this page, and add an \n"
+" annotation below telling people about your writing.</p>"
+msgstr ""
+
+#: app/views/user/confirm.rhtml:11
+msgid ""
+"<small>If you use web-based email or have \"junk mail\" filters, also check "
+"your\n"
+"bulk/spam mail folders. Sometimes, our messages are marked that way.</"
+"small>\n"
+"</p>"
+msgstr ""
+
+#: app/views/request/new.rhtml:135
+msgid ""
+"<strong> Can I request information about myself?</strong>\n"
+"\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
+msgstr ""
+
+#: app/views/general/search.rhtml:118
msgid ""
"<strong><code>commented_by:tony_bowden</code></strong> to search annotations "
"made by Tony Bowden, typing the name as in the URL."
msgstr ""
-#: app/views/general/search.rhtml:132
+#: app/views/general/search.rhtml:120
msgid ""
"<strong><code>filetype:pdf</code></strong> to find all responses with PDF "
"attachments. Or try these: <code>{{list_of_file_extensions}}</code>"
msgstr ""
-#: app/views/general/search.rhtml:131
+#: app/views/general/search.rhtml:119
msgid ""
"<strong><code>request:</code></strong> to restrict to a specific request, "
"typing the title as in the URL."
msgstr ""
-#: app/views/general/search.rhtml:129
+#: app/views/general/search.rhtml:117
msgid ""
"<strong><code>requested_by:julian_todd</code></strong> to search requests "
"made by Julian Todd, typing the name as in the URL."
msgstr ""
-#: app/views/general/search.rhtml:128
+#: app/views/general/search.rhtml:116
msgid ""
"<strong><code>requested_from:home_office</code></strong> to search requests "
"from the Home Office, typing the name as in the URL."
msgstr ""
-#: app/views/general/search.rhtml:126
+#: app/views/general/search.rhtml:114
msgid ""
"<strong><code>status:</code></strong> to select based on the status or "
"historical status of the request, see the <a href=\"%s\">table of statuses</"
"a> below."
msgstr ""
-#: app/views/general/search.rhtml:134
+#: app/views/general/search.rhtml:122
msgid ""
"<strong><code>tag:charity</code></strong> to find all public bodies or "
"requests with a given tag. You can include multiple tags, \n"
@@ -86,63 +393,417 @@ msgid ""
"want results them all present."
msgstr ""
-#: app/views/general/search.rhtml:127
+#: app/views/general/search.rhtml:115
msgid ""
"<strong><code>variety:</code></strong> to select type of thing to search "
"for, see the <a href=\"%s\">table of varieties</a> below."
msgstr ""
+#: app/views/comment/new.rhtml:56
+msgid ""
+"<strong>Advice</strong> on how to get a response that will satisfy the "
+"requester. </li>"
+msgstr ""
+
+#: app/views/request/_other_describe_state.rhtml:53
+msgid "<strong>All the information</strong> has been sent"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:83
+msgid "<strong>Anything else</strong>, such as clarifying, prompting, thanking"
+msgstr ""
+
+#: app/views/request/details.rhtml:12
+msgid ""
+"<strong>Caveat emptor!</strong> To use this data in an honourable way, you "
+"will need \n"
+"a good internal knowledge of user behaviour on WhatDoTheyKnow. How, \n"
+"why and by whom requests are categorised is not straightforward, and there "
+"will\n"
+"be user error and ambiguity. You will also need to understand FOI law, and "
+"the\n"
+"way authorities use it. Plus you'll need to be an elite statistician. "
+"Please\n"
+"<a href=\"%s\">contact us</a> with questions."
+msgstr ""
+
+#: app/views/request/_other_describe_state.rhtml:28
+msgid "<strong>Clarification</strong> has been requested"
+msgstr ""
+
+#: app/views/request/_other_describe_state.rhtml:14
+msgid ""
+"<strong>No response</strong> has been received\n"
+" <small>(maybe there's just an acknowledgement)</small>"
+msgstr ""
+
+#: app/views/user/signchangeemail.rhtml:30
+msgid ""
+"<strong>Note:</strong>\n"
+" We will send an email to your new email address. Follow the\n"
+" instructions in it to confirm changing your email."
+msgstr ""
+
+#: app/views/user/contact.rhtml:32
+msgid ""
+"<strong>Note:</strong> You're sending a message to yourself, presumably\n"
+" to try out how it works."
+msgstr ""
+
+#: app/views/request/preview.rhtml:31
+msgid ""
+"<strong>Privacy note:</strong> If you want to request private information "
+"about\n"
+" yourself then <a href=\"%s\">click here</a>."
+msgstr ""
+
+#: app/views/user/set_crop_profile_photo.rhtml:35
+msgid ""
+"<strong>Privacy note:</strong> Your photo will be shown in public on the "
+"Internet, \n"
+" wherever you do something on WhatDoTheyKnow."
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:37
+msgid ""
+"<strong>Privacy warning:</strong> Your message, and any response\n"
+" to it, will be displayed publicly on this website."
+msgstr ""
+
+#: app/views/request/_other_describe_state.rhtml:49
+msgid "<strong>Some of the information</strong> has been sent "
+msgstr ""
+
+#: app/views/general/exception_caught.rhtml:17
+msgid "<strong>Technical details:</strong>"
+msgstr ""
+
+#: app/views/comment/new.rhtml:35
+msgid "<strong>Thank</strong> the public authority or "
+msgstr ""
+
+#: app/views/request/new.rhtml:23
+msgid ""
+"<strong>browse</strong> the authority's <a href=\"%s\">publication scheme</"
+"a> or <strong>search</strong> their web site ..."
+msgstr ""
+
+#: app/views/request/show.rhtml:84
+msgid "<strong>did not have</strong> the information requested."
+msgstr ""
+
+#: app/views/request/new.rhtml:25
+msgid "<strong>search</strong> the authority's web site ..."
+msgstr ""
+
+#: app/views/comment/new.rhtml:45
+msgid ""
+"A <strong>summary</strong> of the response if you have received it by post. "
+msgstr ""
+
+#: app/views/request/_other_describe_state.rhtml:34
+msgid "A response will be sent <strong>by post</strong>"
+msgstr ""
+
+#: app/views/user/set_profile_about_me.rhtml:20
+msgid "About you:"
+msgstr ""
+
+#: app/models/info_request_event.rb:288
+msgid "Acknowledgement"
+msgstr ""
+
+#: app/views/request/_sidebar.rhtml:5
+msgid "Act on what you've learnt"
+msgstr ""
+
+#: app/views/comment/new.rhtml:14
+msgid "Add an annotation to "
+msgstr ""
+
+#: app/views/request/show_response.rhtml:47
+msgid ""
+"Add an annotation to your request with choice quotes, or\n"
+" a <strong>summary of the response</strong>."
+msgstr ""
+
#: app/models/user.rb:54
msgid "Admin level is not included in list"
msgstr ""
-#: app/views/general/search.rhtml:31 app/views/general/search.rhtml:121
+#: app/views/request_mailer/requires_admin.rhtml:9
+msgid "Administration URL:"
+msgstr ""
+
+#: app/views/general/search.rhtml:31 app/views/general/search.rhtml:109
msgid "Advanced search tips"
msgstr ""
+#: app/views/comment/new.rhtml:52
+msgid ""
+"Advise on whether the <strong>refusal is legal</strong>, and how to complain "
+"about it if not."
+msgstr ""
+
+#: app/views/request/new.rhtml:69
+msgid ""
+"Air, water, soil, land, flora and fauna (including how these effect\n"
+" human beings)"
+msgstr ""
+
+#: app/models/info_request_event.rb:304
+msgid "All information sent"
+msgstr ""
+
+#: app/views/public_body/list.rhtml:5
+msgid "Alphabet"
+msgstr ""
+
+#: app/views/request_mailer/new_response.rhtml:12
+msgid ""
+"Although all responses are automatically published, we depend on\n"
+"you, the original requester, to evaluate them."
+msgstr ""
+
+#: app/views/request/_other_describe_state.rhtml:65
+msgid "An <strong>error message</strong> has been received"
+msgstr ""
+
+#: app/views/user/show.rhtml:34
+msgid "Annotations"
+msgstr ""
+
+#: app/views/comment/new.rhtml:17
+msgid ""
+"Annotations are so anyone, including you, can help the requester with their "
+"request. For example:"
+msgstr ""
+
+#: app/views/comment/new.rhtml:69
+msgid ""
+"Annotations will be posted publicly here, and are \n"
+" <strong>not</strong> sent to {{public_body_name}}."
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:6
+msgid "Anyone:"
+msgstr ""
+
+#: app/views/request/new.rhtml:47
+msgid ""
+"Ask for <strong>specific</strong> documents or information, this site is not "
+"suitable for general enquiries."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:31
+msgid ""
+"At the bottom of this page, write a reply to them trying to persuade them to "
+"scan it in\n"
+" (<a href=\"%s\">more details</a>)."
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:33
+msgid "Attachment (optional):"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:70
+msgid ""
+"Authority has replied but the response <strong>does not correspond to the "
+"request</strong>"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:43
+msgid "Authority has requested <strong>extension of the deadline.</strong>"
+msgstr ""
+
+#: app/controllers/request_controller.rb:409
+msgid "Authority has requested extension of the deadline."
+msgstr ""
+
+#: app/models/info_request.rb:753
+msgid "Awaiting classification."
+msgstr ""
+
+#: app/models/info_request.rb:777
+msgid "Awaiting internal review."
+msgstr ""
+
+#: app/models/info_request.rb:755
+msgid "Awaiting response."
+msgstr ""
+
+#: app/views/request/new.rhtml:43
+msgid ""
+"Browse <a href=\"%s\">other requests</a> for examples of how to word your "
+"request."
+msgstr ""
+
+#: app/views/request/new.rhtml:41
+msgid ""
+"Browse <a href='%s'>other requests</a> to '{{public_body_name}}' for "
+"examples of how to word your request."
+msgstr ""
+
+#: app/views/request/show.rhtml:79
+msgid ""
+"By law, under all circumstances, {{public_body_link}} should have responded "
+"by now"
+msgstr ""
+
+#: app/views/request/show.rhtml:71
+msgid ""
+"By law, {{public_body_link}} should normally have responded "
+"<strong>promptly</strong> and"
+msgstr ""
+
#: app/views/general/search.rhtml:17
msgid ""
"Can't find it? <a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add "
"it</a>."
msgstr ""
-#: locale/model_attributes.rb:39
+#: app/controllers/track_controller.rb:143
+msgid "Cancel a {{site_name}} alert"
+msgstr ""
+
+#: app/controllers/track_controller.rb:173
+msgid "Cancel some {{site_name}} alerts"
+msgstr ""
+
+#: locale/model_attributes.rb:46
msgid "CensorRule|Last edit comment"
msgstr ""
-#: locale/model_attributes.rb:38
+#: locale/model_attributes.rb:45
msgid "CensorRule|Last edit editor"
msgstr ""
-#: locale/model_attributes.rb:37
+#: locale/model_attributes.rb:44
msgid "CensorRule|Replacement"
msgstr ""
-#: locale/model_attributes.rb:36
+#: locale/model_attributes.rb:43
msgid "CensorRule|Text"
msgstr ""
+#: lib/public_body_categories_sr.rb:14 lib/public_body_categories_sq.rb:14
+#: lib/public_body_categories_en.rb:14
+msgid "Central government"
+msgstr ""
+
+#: app/views/user/signchangepassword.rhtml:27
+msgid "Change password on {{site_name}}"
+msgstr ""
+
+#: app/views/user/show.rhtml:104 app/views/user/set_crop_profile_photo.rhtml:1
+msgid "Change profile photo"
+msgstr ""
+
+#: app/views/user/set_profile_about_me.rhtml:1
+msgid "Change the text about you on your profile at WhatDoTheyKnow.com"
+msgstr ""
+
+#: app/views/user/show.rhtml:107
+msgid "Change your email"
+msgstr ""
+
+#: app/controllers/user_controller.rb:249
+#: app/views/user/signchangeemail.rhtml:1
+#: app/views/user/signchangeemail.rhtml:11
+msgid "Change your email address used on {{site_name}}"
+msgstr ""
+
+#: app/views/user/show.rhtml:106
+msgid "Change your password"
+msgstr ""
+
+#: app/views/user/signchangepassword.rhtml:1
+#: app/views/user/signchangepassword.rhtml:11
+#: app/views/user/signchangepassword_send_confirm.rhtml:1
+#: app/views/user/signchangepassword_send_confirm.rhtml:9
+msgid "Change your password on {{site_name}}"
+msgstr ""
+
+#: app/controllers/user_controller.rb:203
+msgid "Change your password {{site_name}}"
+msgstr ""
+
#: app/views/public_body/show.rhtml:16 app/views/public_body/show.rhtml:18
msgid "Charity registration"
msgstr ""
-#: locale/model_attributes.rb:22
+#: app/views/general/exception_caught.rhtml:6
+msgid "Check for mistakes if you typed or copied the address."
+msgstr ""
+
+#: app/views/request/preview.rhtml:7
+#: app/views/request/followup_preview.rhtml:14
+msgid "Check you haven't included any <strong>personal information</strong>."
+msgstr ""
+
+#: app/models/info_request_event.rb:326
+msgid "Clarification"
+msgstr ""
+
+#: app/models/info_request_event.rb:290
+msgid "Clarification required"
+msgstr ""
+
+#: app/controllers/request_controller.rb:322
+msgid "Classify an FOI response from "
+msgstr ""
+
+#: app/views/request_mailer/very_overdue_alert.rhtml:6
+msgid ""
+"Click on the link below to send a message to {{public_body_name}} telling "
+"them to reply to your request. You might like to ask for an internal\n"
+"review, asking them to find out why response to the request has been so slow."
+msgstr ""
+
+#: app/views/request_mailer/overdue_alert.rhtml:5
+msgid ""
+"Click on the link below to send a message to {{public_body}} reminding them "
+"to reply to your request."
+msgstr ""
+
+#: locale/model_attributes.rb:28
msgid "Comment|Body"
msgstr ""
-#: locale/model_attributes.rb:21
+#: locale/model_attributes.rb:27
msgid "Comment|Comment type"
msgstr ""
-#: locale/model_attributes.rb:24
+#: locale/model_attributes.rb:30
msgid "Comment|Locale"
msgstr ""
-#: locale/model_attributes.rb:23
+#: locale/model_attributes.rb:29
msgid "Comment|Visible"
msgstr ""
-#: app/views/layouts/default.rhtml:144
+#: app/models/track_thing.rb:163
+msgid "Confirm you want to be emailed when an FOI request succeeds"
+msgstr ""
+
+#: app/controllers/request_controller.rb:283
+msgid "Confirm your FOI request to "
+msgstr ""
+
+#: app/controllers/request_controller.rb:687
+#: app/controllers/user_controller.rb:505
+msgid "Confirm your account on {{site_name}}"
+msgstr ""
+
+#: app/controllers/comment_controller.rb:57
+msgid "Confirm your annotation to {{info_request_title}}"
+msgstr ""
+
+#: app/models/user_mailer.rb:34
+msgid "Confirm your new email address on WhatDoTheyKnow.com"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:143
msgid "Contact {{site_name}}"
msgstr ""
@@ -152,24 +813,144 @@ msgid ""
"many other common image file formats are supported."
msgstr ""
+#: app/views/user/set_crop_profile_photo.rhtml:6
+msgid "Crop your profile photo"
+msgstr ""
+
+#: app/views/request/new.rhtml:74
+msgid ""
+"Cultural sites and built structures (as they may be affected by the\n"
+" environmental factors listed above)"
+msgstr ""
+
+#: app/views/request/show.rhtml:61
+msgid ""
+"Currently <strong>waiting for a response</strong> from {{public_body_link}}, "
+"they must respond promptly and"
+msgstr ""
+
+#: app/models/info_request_event.rb:294
+msgid "Deadline Extended"
+msgstr ""
+
+#: app/models/info_request.rb:773
+msgid "Deadline extended."
+msgstr ""
+
+#: app/models/outgoing_message.rb:57
+msgid "Dear "
+msgstr ""
+
+#: app/models/info_request.rb:757
+msgid "Delayed."
+msgstr ""
+
+#: app/models/info_request.rb:779 app/models/info_request_event.rb:310
+msgid "Delivery error"
+msgstr ""
+
+#: app/views/request/details.rhtml:1 app/views/request/details.rhtml:2
+msgid "Details of request '"
+msgstr ""
+
#: app/views/general/search.rhtml:50 app/views/general/search.rhtml:62
msgid "Did you mean: {{correction}}"
msgstr ""
+#: app/views/outgoing_mailer/initial_request.rhtml:4
+#: app/views/outgoing_mailer/followup.rhtml:6
+msgid ""
+"Disclaimer: This message and any reply that you make will be published on "
+"the internet. Our privacy and copyright policies:"
+msgstr ""
+
+#: app/views/request/_view_html_prefix.rhtml:6
+msgid "Download original attachment"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:89
+msgid ""
+"Edit and add <strong>more details</strong> to the message above,\n"
+" explaining why you are dissatisfied with their response."
+msgstr ""
+
#: app/views/admin_public_body/_locale_selector.rhtml:2
msgid "Edit language version:"
msgstr ""
-#: app/views/comment/_comment_form.rhtml:8
+#: app/views/user/set_profile_about_me.rhtml:9
+msgid "Edit text about you"
+msgstr ""
+
+#: app/models/user.rb:132
+msgid "Either the email or password was not recognised, please try again."
+msgstr ""
+
+#: app/models/user.rb:134
+msgid ""
+"Either the email or password was not recognised, please try again. Or create "
+"a new account using the form on the right."
+msgstr ""
+
+#: app/models/contact_validator.rb:34
+msgid "Email doesn't look like a valid address"
+msgstr ""
+
+#: app/views/comment/_comment_form.rhtml:9
msgid "Email me future updates to this request"
msgstr ""
-#: app/views/general/search.rhtml:123
+#: app/models/track_thing.rb:155
+msgid "Email me new successful responses "
+msgstr ""
+
+#: app/views/user/show.rhtml:36
+msgid "Email subscriptions"
+msgstr ""
+
+#: app/views/general/search.rhtml:111
msgid ""
"Enter words that you want to find separated by spaces, e.g. <strong>climbing "
"lane</strong>"
msgstr ""
+#: app/views/request/upload_response.rhtml:23
+msgid ""
+"Enter your response below. You may attach one file (use email, or \n"
+"<a href=\"%s\">contact us</a> if you need more)."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:98
+msgid "Environmental Information Regulations requests made"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:70
+msgid "Environmental Information Regulations requests made using this site"
+msgstr ""
+
+#: app/views/request/details.rhtml:4
+msgid "Event history"
+msgstr ""
+
+#: app/views/request/_sidebar.rhtml:41
+msgid "Event history details"
+msgstr ""
+
+#: app/views/request/new.rhtml:128
+msgid ""
+"Everything that you enter on this page \n"
+" will be <strong>displayed publicly</strong> on\n"
+" this website forever (<a href=\"%s\">why?</a>)."
+msgstr ""
+
+#: app/views/request/new.rhtml:120
+msgid ""
+"Everything that you enter on this page, including <strong>your name</"
+"strong>, \n"
+" will be <strong>displayed publicly</strong> on\n"
+" this website forever (<a href=\"%s\">why?</a>)."
+msgstr ""
+
#: locale/model_attributes.rb:61
msgid "EximLogDone|Filename"
msgstr ""
@@ -178,18 +959,26 @@ msgstr ""
msgid "EximLogDone|Last stat"
msgstr ""
-#: locale/model_attributes.rb:19
+#: locale/model_attributes.rb:16
msgid "EximLog|Line"
msgstr ""
-#: locale/model_attributes.rb:18
+#: locale/model_attributes.rb:15
msgid "EximLog|Order"
msgstr ""
-#: app/views/general/search.rhtml:101
+#: app/views/public_body/view_email.rhtml:3
+msgid "FOI email address for {{public_body}}"
+msgstr ""
+
+#: app/views/user/show.rhtml:33
+msgid "FOI requests"
+msgstr ""
+
+#: app/views/general/search.rhtml:90
msgid ""
"FOI requests {{start_count}} to {{end_count}} of {{total_count}} for "
-"&#x2018;{{user_search_query}}&#x2019;"
+"{{user_search_query}}"
msgstr ""
#: app/models/profile_photo.rb:101
@@ -202,6 +991,10 @@ msgid ""
"{width}x%{height}"
msgstr ""
+#: app/views/request/new.rhtml:21
+msgid "First,"
+msgstr ""
+
#: app/views/general/frontpage.rhtml:8
msgid ""
"First, type in the <strong>name of the UK public authority</strong> you'd \n"
@@ -210,39 +1003,125 @@ msgid ""
" (<a href=\"%s\">why?</a>)."
msgstr ""
-#: app/views/public_body/show.rhtml:60
+#: app/views/request_mailer/old_unclassified_updated.rhtml:8
+msgid "Follow this link to see the request:"
+msgstr ""
+
+#: app/models/info_request_event.rb:330
+msgid "Follow up"
+msgstr ""
+
+#: app/views/public_body/view_email.rhtml:14
+msgid "Follow up messages to existing requests are sent to "
+msgstr ""
+
+#: app/views/request/_followup.rhtml:16
+msgid ""
+"Follow ups and new responses to this request have been stopped to prevent "
+"spam. Please\n"
+" <a href=\"%s\">contact us</a> if you are {{user_link}} and need to "
+"send a follow up."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:62
msgid ""
"For an unknown reason, it is not possible to make a request to this "
"authority."
msgstr ""
-#: app/views/public_body/show.rhtml:55
+#: app/views/user/_signin.rhtml:21
+msgid "Forgotten your password?"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:57
msgid ""
"Freedom of Information law does not apply to this authority, so you cannot "
"make\n"
" a request to it."
msgstr ""
-#: app/views/public_body/show.rhtml:97
+#: app/views/request/followup_bad.rhtml:11
+msgid "Freedom of Information law no longer applies to"
+msgstr ""
+
+#: app/views/public_body/view_email.rhtml:10
+msgid ""
+"Freedom of Information law no longer applies to this authority.Follow up "
+"messages to existing requests are sent to "
+msgstr ""
+
+#: app/views/user/show.rhtml:128
+msgid "Freedom of Information request"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:100
msgid "Freedom of Information requests made"
msgstr ""
-#: app/views/public_body/show.rhtml:71
+#: app/views/user/show.rhtml:121 app/views/user/show.rhtml:140
+msgid "Freedom of Information requests made by"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:74
msgid "Freedom of Information requests made using this site"
msgstr ""
-#: app/views/layouts/default.rhtml:120
+#: app/views/request/followup_bad.rhtml:12
+msgid ""
+"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=\"%s\">send it "
+"to us</a>."
+msgstr ""
+
+#: app/models/outgoing_message.rb:73
+msgid "GIVE DETAILS ABOUT YOUR COMPLAINT HERE"
+msgstr ""
+
+#: app/views/general/exception_caught.rhtml:14
+msgid "Go to our <a href=\"%s\">front page</a></li>"
+msgstr ""
+
+#: app/models/info_request_event.rb:292
+msgid "Handled by post"
+msgstr ""
+
+#: app/models/info_request.rb:771
+msgid "Handled by post."
+msgstr ""
+
+#: app/views/layouts/default.rhtml:119
msgid "Hello!"
msgstr ""
-#: app/views/layouts/default.rhtml:117
+#: app/views/layouts/default.rhtml:116
msgid "Hello, {{username}}!"
msgstr ""
-#: app/views/layouts/default.rhtml:112
+#: app/views/layouts/default.rhtml:111
msgid "Help"
msgstr ""
+#: app/views/request/details.rhtml:50
+msgid ""
+"Here <strong>described</strong> means when a user selected a status for the "
+"request, and\n"
+"the most recent event had its status updated to that value. "
+"<strong>calculated</strong> is then inferred by\n"
+"WhatDoTheyKnow for intermediate events, which weren't given an explicit\n"
+"description by a user. See the <a href=\"%s\">search tips</a> for "
+"description of the states."
+msgstr ""
+
+#: app/views/request/_other_describe_state.rhtml:4
+msgid ""
+"Hi! We need your help. The person who made the following request\n"
+" hasn't told us whether or not it was successful. Would you mind taking\n"
+" a moment to read it and help us keep the place tidy for everyone?\n"
+" Thanks."
+msgstr ""
+
#: locale/model_attributes.rb:58
msgid "Holiday|Day"
msgstr ""
@@ -251,10 +1130,174 @@ msgstr ""
msgid "Holiday|Description"
msgstr ""
-#: app/views/public_body/show.rhtml:8
+#: app/views/public_body/show.rhtml:7
msgid "Home page of authority"
msgstr ""
+#: app/views/request/new.rhtml:63
+msgid ""
+"However, you have the right to request environmental\n"
+" information under a different law"
+msgstr ""
+
+#: app/views/request/new.rhtml:73
+msgid "Human health and safety"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:72
+msgid "I am asking for <strong>new information</strong>"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:77
+msgid "I am requesting an <strong>internal review</strong>"
+msgstr ""
+
+#: app/views/request_game/play.rhtml:39
+msgid "I don't like these ones &mdash; give me some more!"
+msgstr ""
+
+#: app/views/request_game/play.rhtml:40
+msgid "I don't want to do any more tidying now!"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:93
+msgid "I would like to <strong>withdraw this request</strong>"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:11
+msgid ""
+"I'm still <strong>waiting</strong> for my information\n"
+" <small>(maybe you got an acknowledgement)</small>"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:18
+msgid "I'm still <strong>waiting</strong> for the internal review"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:32
+msgid "I'm waiting for an <strong>internal review</strong> response"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:25
+msgid "I've been asked to <strong>clarify</strong> my request"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:61
+msgid "I've received <strong>all the information"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:57
+msgid "I've received <strong>some of the information</strong>"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:78
+msgid "I've received an <strong>error message</strong>"
+msgstr ""
+
+#: app/views/public_body/view_email.rhtml:28
+msgid ""
+"If the address is wrong, or you know a better address, please <a href=\"%s"
+"\">contact us</a>."
+msgstr ""
+
+#: app/views/request_mailer/stopped_responses.rhtml:10
+msgid ""
+"If this is incorrect, or you would like to send a late response to the "
+"request\n"
+"or an email on another subject to {{user}}, then please\n"
+"email {{contact_email}} for help."
+msgstr ""
+
+#: app/views/request/_followup.rhtml:21
+msgid ""
+"If you are dissatisfied by the response you got from\n"
+" the public authority, you have the right to\n"
+" complain (<a href=\"%s\">details</a>)."
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:20
+msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
+msgstr ""
+
+#: app/views/request/hidden.rhtml:15
+msgid ""
+"If you are the requester, then you may <a href=\"%s\">sign in</a> to view "
+"the request."
+msgstr ""
+
+#: app/views/request/new.rhtml:123
+msgid ""
+"If you are thinking of using a pseudonym,\n"
+" please <a href=\"%s\">read this first</a>."
+msgstr ""
+
+#: app/views/request/show.rhtml:104
+msgid "If you are {{user_link}}, please"
+msgstr ""
+
+#: app/views/user/bad_token.rhtml:7
+msgid ""
+"If you can't click on it in the email, you'll have to <strong>select and "
+"copy\n"
+"it</strong> from the email. Then <strong>paste it into your browser</"
+"strong>, into the place\n"
+"you would type the address of any other webpage."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:49
+msgid ""
+"If you can, scan in or photograph the response, and <strong>send us\n"
+" a copy to upload</strong>."
+msgstr ""
+
+#: app/views/outgoing_mailer/initial_request.rhtml:13
+#: app/views/outgoing_mailer/followup.rhtml:12
+msgid ""
+"If you find WhatDoTheyKnow useful as an FOI officer, please ask your web "
+"manager to suggest us on your organisation's FOI page."
+msgstr ""
+
+#: app/views/user/bad_token.rhtml:13
+msgid ""
+"If you got the email <strong>more than six months ago</strong>, then this "
+"login link won't work any\n"
+"more. Please try doing what you were doing from the beginning."
+msgstr ""
+
+#: app/controllers/request_controller.rb:424
+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 ""
+
+#: app/views/user/signchangepassword_confirm.rhtml:10
+#: app/views/user/signchangeemail_confirm.rhtml:11
+msgid ""
+"If you use web-based email or have \"junk mail\" filters, also check your\n"
+"bulk/spam mail folders. Sometimes, our messages are marked that way."
+msgstr ""
+
+#: app/views/user/banned.rhtml:15
+msgid ""
+"If you would like us to lift this ban, then you may politely\n"
+"<a href=\"/help/contact\">contact us</a> giving reasons.\n"
+msgstr ""
+
+#: app/views/user/_signup.rhtml:6
+msgid "If you're new to WhatDoTheyKnow"
+msgstr ""
+
+#: app/views/user/_signin.rhtml:7
+msgid "If you've used WhatDoTheyKnow before"
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:12
+msgid ""
+"If your browser is set to accept cookies and you are seeing this message,\n"
+"then there is probably a fault with our server."
+msgstr ""
+
#: locale/model_attributes.rb:64
msgid "IncomingMessage|Cached attachment text clipped"
msgstr ""
@@ -267,27 +1310,27 @@ msgstr ""
msgid "IncomingMessage|Cached main body text unfolded"
msgstr ""
-#: locale/model_attributes.rb:44
+#: locale/model_attributes.rb:39
msgid "InfoRequestEvent|Calculated state"
msgstr ""
-#: locale/model_attributes.rb:43
+#: locale/model_attributes.rb:38
msgid "InfoRequestEvent|Described state"
msgstr ""
-#: locale/model_attributes.rb:41
+#: locale/model_attributes.rb:36
msgid "InfoRequestEvent|Event type"
msgstr ""
-#: locale/model_attributes.rb:45
+#: locale/model_attributes.rb:40
msgid "InfoRequestEvent|Last described at"
msgstr ""
-#: locale/model_attributes.rb:42
+#: locale/model_attributes.rb:37
msgid "InfoRequestEvent|Params yaml"
msgstr ""
-#: locale/model_attributes.rb:46
+#: locale/model_attributes.rb:41
msgid "InfoRequestEvent|Prominence"
msgstr ""
@@ -323,11 +1366,95 @@ msgstr ""
msgid "InfoRequest|Url title"
msgstr ""
-#: app/views/layouts/default.rhtml:15
+#: app/models/info_request_event.rb:298
+msgid "Information not held"
+msgstr ""
+
+#: app/models/info_request.rb:761
+msgid "Information not held."
+msgstr ""
+
+#: app/views/request/new.rhtml:71
+msgid ""
+"Information on emissions and discharges (e.g. noise, energy,\n"
+" radiation, waste materials)"
+msgstr ""
+
+#: app/models/info_request_event.rb:306
+msgid "Internal review acknowledgement"
+msgstr ""
+
+#: app/models/info_request_event.rb:323
+msgid "Internal review request"
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:8
+msgid ""
+"It may be that your browser is not set to accept a thing called \"cookies"
+"\",\n"
+"or cannot do so. If you can, please enable cookies, or try using a "
+"different\n"
+"browser. Then press refresh to have another go."
+msgstr ""
+
+#: app/views/user/show.rhtml:62
+msgid "Joined WhatDoTheyKnow in"
+msgstr ""
+
+#: app/views/user/_user_listing_single.rhtml:21
+msgid "Joined in"
+msgstr ""
+
+#: app/views/request/new.rhtml:48
+msgid ""
+"Keep it <strong>focused</strong>, you'll be more likely to get what you want "
+"(<a href=\"%s\">why?</a>)."
+msgstr ""
+
+#: app/views/contact_mailer/message.rhtml:10
+msgid "Last authority viewed: "
+msgstr ""
+
+#: app/views/contact_mailer/message.rhtml:7
+msgid "Last request viewed: "
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:17
+msgid ""
+"Let us know what you were doing when this message\n"
+"appeared and your browser and operating system type and version."
+msgstr ""
+
+#: app/views/request/_correspondence.rhtml:27
+#: app/views/request/_correspondence.rhtml:57
+msgid "Link to this"
+msgstr ""
+
+#: app/views/public_body/list.rhtml:32
+msgid "List of all authorities (CSV)"
+msgstr ""
+
+#: lib/public_body_categories_en.rb:23
+msgid "Local and regional"
+msgstr ""
+
+#: app/models/info_request.rb:759
+msgid "Long overdue."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:48
+msgid "Make a new Environmental Information request"
+msgstr ""
+
+#: app/views/request/new.rhtml:1
+msgid "Make an {{law_used_short}} request to '{{public_body_name}}'"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:17
msgid "Make and browse Freedom of Information (FOI) requests"
msgstr ""
-#: app/views/layouts/default.rhtml:86
+#: app/views/layouts/default.rhtml:88
msgid "Make and explore Freedom of Information requests"
msgstr ""
@@ -335,34 +1462,82 @@ msgstr ""
msgid "Make or explore Freedom of Information requests"
msgstr ""
-#: app/views/layouts/default.rhtml:105
+#: app/views/layouts/default.rhtml:104
msgid "Make request"
msgstr ""
-#: app/views/public_body/show.rhtml:6
+#: app/views/public_body/_body_listing_single.rhtml:23
+msgid "Make your own request"
+msgstr ""
+
+#: app/views/contact_mailer/message.rhtml:4
+msgid "Message sent using WhatDoTheyKnow contact form, "
+msgstr ""
+
+#: app/views/request/new_bad_contact.rhtml:1
+msgid "Missing contact details for '"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:5
msgid "More about this authority"
msgstr ""
-#: app/views/general/frontpage.rhtml:41
+#: app/views/general/frontpage.rhtml:39
msgid "More authorities..."
msgstr ""
-#: app/views/general/frontpage.rhtml:55
+#: app/views/general/frontpage.rhtml:53
msgid "More successful requests..."
msgstr ""
-#: app/views/layouts/default.rhtml:109
+#: app/views/request/_describe_state.rhtml:65
+msgid "My request has been <strong>refused</strong>"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:108
msgid "My requests"
msgstr ""
+#: app/models/public_body.rb:36
+msgid "Name can't be blank"
+msgstr ""
+
#: app/models/public_body.rb:40
msgid "Name is already taken"
msgstr ""
+#: app/views/user/signchangeemail.rhtml:20
+msgid "New e-mail:"
+msgstr ""
+
+#: app/models/change_email_validator.rb:48
+msgid "New email doesn't look like a valid address"
+msgstr ""
+
+#: app/views/user/signchangepassword.rhtml:15
+msgid "New password:"
+msgstr ""
+
+#: app/views/user/signchangepassword.rhtml:20
+msgid "New password: (again)"
+msgstr ""
+
+#: app/views/request/show_response.rhtml:62
+msgid "New response to your request"
+msgstr ""
+
+#: app/views/request/show_response.rhtml:68
+msgid "New response to {{law_used_short}} request"
+msgstr ""
+
#: app/views/general/search.rhtml:40
msgid "Newest results first"
msgstr ""
+#: app/views/user/set_draft_profile_photo.rhtml:32
+msgid "Next, crop your photo &gt;&gt;"
+msgstr ""
+
#: app/views/general/search.rhtml:16
msgid "Next, select the public authority you'd like to make the request from."
msgstr ""
@@ -371,14 +1546,53 @@ msgstr ""
msgid "No public authorities found"
msgstr ""
-#: app/views/public_body/show.rhtml:72
+#: app/views/request/list.rhtml:23
+msgid "No requests of this sort yet."
+msgstr ""
+
+#: app/views/request/similar.rhtml:7
+msgid "No similar requests found."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:75
msgid ""
"Nobody has made any Freedom of Information requests to {{public_body_name}} "
"using this site yet."
msgstr ""
+#: app/views/request/_request_listing.rhtml:2
+#: app/views/public_body/_body_listing.rhtml:2
+msgid "None found."
+msgstr ""
+
#: app/views/general/search.rhtml:7
-msgid "Nothing found for &#x2018;{{search_terms}}&#x2019;"
+msgid "Nothing found for '{{search_terms}}'"
+msgstr ""
+
+#: app/views/user/signchangepassword_confirm.rhtml:1
+#: app/views/user/signchangepassword_confirm.rhtml:3
+#: app/views/user/signchangeemail_confirm.rhtml:3
+msgid "Now check your email!"
+msgstr ""
+
+#: app/views/comment/preview.rhtml:5
+msgid "Now preview your annotation"
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:10
+msgid "Now preview your follow up"
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:8
+msgid "Now preview your message asking for an internal review"
+msgstr ""
+
+#: app/views/request/preview.rhtml:5
+msgid "Now preview your request"
+msgstr ""
+
+#: app/views/user/set_draft_profile_photo.rhtml:46
+msgid "OR remove the existing photo"
msgstr ""
#: app/views/general/frontpage.rhtml:25
@@ -387,46 +1601,131 @@ msgid ""
"{{site_name}}"
msgstr ""
-#: app/views/general/search.rhtml:99
-msgid "One FOI request matching &#x2018;{{user_search_query}}&#x2019;"
+#: app/controllers/request_controller.rb:395
+msgid ""
+"Oh no! Sorry to hear that your request was refused. Here is what to do now."
+msgstr ""
+
+#: app/controllers/request_controller.rb:412
+msgid ""
+"Oh no! Sorry to hear that your request was wrong. Here is what to do now."
+msgstr ""
+
+#: app/views/user/signchangeemail.rhtml:15
+msgid "Old e-mail:"
msgstr ""
-#: app/views/general/search.rhtml:85
-msgid "One person matching &#x2018;{{user_search_query}}&#x2019;"
+#: app/models/change_email_validator.rb:39
+msgid ""
+"Old email address isn't the same as the address of the account you are "
+"logged in with"
msgstr ""
-#: app/views/general/search.rhtml:71
-msgid "One public authority matching &#x2018;{{user_search_query}}&#x2019;"
+#: app/models/change_email_validator.rb:34
+msgid "Old email doesn't look like a valid address"
msgstr ""
-#: app/views/public_body/show.rhtml:90
+#: app/views/user/show.rhtml:32
+msgid "On this page"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:93
msgid "Only requests made using {{site_name}} are shown."
msgstr ""
-#: locale/model_attributes.rb:26
+#: locale/model_attributes.rb:21
msgid "OutgoingMessage|Body"
msgstr ""
-#: locale/model_attributes.rb:29
+#: locale/model_attributes.rb:24
msgid "OutgoingMessage|Last sent at"
msgstr ""
-#: locale/model_attributes.rb:28
+#: locale/model_attributes.rb:23
msgid "OutgoingMessage|Message type"
msgstr ""
-#: locale/model_attributes.rb:27
+#: locale/model_attributes.rb:22
msgid "OutgoingMessage|Status"
msgstr ""
-#: locale/model_attributes.rb:30
+#: locale/model_attributes.rb:25
msgid "OutgoingMessage|What doing"
msgstr ""
-#: app/views/general/search.rhtml:87
+#: app/models/info_request.rb:765
+msgid "Partially successful."
+msgstr ""
+
+#: app/models/change_email_validator.rb:42
+msgid "Password is not correct"
+msgstr ""
+
+#: app/views/user/_signin.rhtml:16 app/views/user/_signup.rhtml:30
+msgid "Password:"
+msgstr ""
+
+#: app/views/user/_signup.rhtml:35
+msgid "Password: (again)"
+msgstr ""
+
+#: app/views/general/search.rhtml:80
msgid ""
"People {{start_count}} to {{end_count}} of {{total_count}} for "
-"&#x2018;{{user_search_query}}&#x2019;"
+"{{user_search_query}}"
+msgstr ""
+
+#: app/views/user/set_draft_profile_photo.rhtml:13
+msgid "Photo of you:"
+msgstr ""
+
+#: app/views/request/new.rhtml:76
+msgid "Plans and administrative measures that affect these matters"
+msgstr ""
+
+#: app/controllers/request_game_controller.rb:40
+msgid "Play the request categorisation game"
+msgstr ""
+
+#: app/views/request_game/play.rhtml:1 app/views/request_game/play.rhtml:30
+msgid "Play the request categorisation game!"
+msgstr ""
+
+#: app/views/request/show.rhtml:100
+msgid "Please"
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:15
+msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
+msgstr ""
+
+#: app/views/request/show.rhtml:45
+msgid ""
+"Please <strong>answer the question above</strong> so we know whether the "
+msgstr ""
+
+#: app/views/user/show.rhtml:12
+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 ""
+
+#: app/views/request/_followup.rhtml:28
+msgid ""
+"Please <strong>only</strong> write messages directly relating to your \n"
+"\t\t\t\trequest {{request_link}}. If you would like to ask for information\n"
+"\t\t\t\tthat was not in your original request, then <a href=\"%s\">file a "
+"new request</a>."
+msgstr ""
+
+#: app/views/request/new.rhtml:60
+msgid "Please ask for environmental information only"
+msgstr ""
+
+#: app/views/user/bad_token.rhtml:2
+msgid ""
+"Please check the URL (i.e. the long code of letters and numbers) is copied\n"
+"correctly from your email."
msgstr ""
#: app/models/profile_photo.rb:91
@@ -437,12 +1736,38 @@ msgstr ""
msgid "Please choose what sort of reply you are making."
msgstr ""
-#: app/models/info_request.rb:104
+#: app/controllers/request_controller.rb:329
+msgid ""
+"Please choose whether or not you got some of the information that you wanted."
+msgstr ""
+
+#: app/views/user_mailer/changeemail_confirm.rhtml:3
+msgid ""
+"Please click on the link below to confirm that you want to \n"
+"change the email address that you use for WhatDoTheyKnow\n"
+"from "
+msgstr ""
+
+#: app/views/user_mailer/confirm_login.rhtml:3
+msgid "Please click on the link below to confirm your email address."
+msgstr ""
+
+#: app/models/info_request.rb:106
msgid ""
"Please describe more what the request is about in the subject. There is no "
"need to say it is an FOI request, we add that on anyway."
msgstr ""
+#: app/views/user/set_draft_profile_photo.rhtml:22
+msgid ""
+"Please don't upload offensive pictures. We will take down images\n"
+" that we consider inappropriate."
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:3
+msgid "Please enable \"cookies\" to carry on"
+msgstr ""
+
#: app/models/user.rb:38
msgid "Please enter a password"
msgstr ""
@@ -471,7 +1796,7 @@ msgstr ""
msgid "Please enter your annotation"
msgstr ""
-#: app/models/user.rb:34 app/models/contact_validator.rb:29
+#: app/models/contact_validator.rb:29 app/models/user.rb:34
msgid "Please enter your email address"
msgstr ""
@@ -483,7 +1808,7 @@ msgstr ""
msgid "Please enter your letter requesting information"
msgstr ""
-#: app/models/user.rb:36 app/models/contact_validator.rb:28
+#: app/models/contact_validator.rb:28 app/models/user.rb:36
msgid "Please enter your name"
msgstr ""
@@ -491,15 +1816,15 @@ msgstr ""
msgid "Please enter your name, not your email address, in the name field."
msgstr ""
-#: app/models/change_email_validator.rb:30
+#: app/models/change_email_validator.rb:29
msgid "Please enter your new email address"
msgstr ""
-#: app/models/change_email_validator.rb:29
+#: app/models/change_email_validator.rb:28
msgid "Please enter your old email address"
msgstr ""
-#: app/models/change_email_validator.rb:31
+#: app/models/change_email_validator.rb:30
msgid "Please enter your password"
msgstr ""
@@ -511,23 +1836,55 @@ msgstr ""
msgid "Please keep it shorter than 500 characters"
msgstr ""
-#: app/models/info_request.rb:101
+#: app/models/info_request.rb:103
msgid ""
"Please keep the summary short, like in the subject of an email. You can use "
"a phrase, rather than a full sentence."
msgstr ""
+#: app/views/request/new.rhtml:79
+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 ""
+
+#: app/views/request/new_please_describe.rhtml:5
+msgid ""
+"Please select each of these requests in turn, and <strong>let everyone know</"
+"strong>\n"
+"if they are successful yet or not."
+msgstr ""
+
#: app/models/outgoing_message.rb:156
msgid ""
"Please sign at the bottom with your name, or alter the \"%{signoff}\" "
"signature"
msgstr ""
+#: app/views/user/sign.rhtml:8
+msgid "Please sign in as "
+msgstr ""
+
+#: app/controllers/request_controller.rb:714
+msgid "Please type a message and/or choose a file containing your response."
+msgstr ""
+
+#: app/controllers/request_controller.rb:421
+msgid "Please use the form below to tell us more."
+msgstr ""
+
+#: app/views/outgoing_mailer/initial_request.rhtml:7
+#: app/views/outgoing_mailer/followup.rhtml:9
+msgid "Please use this email address for all replies to this request:"
+msgstr ""
+
#: app/models/info_request.rb:36
msgid "Please write a summary with some text in it"
msgstr ""
-#: app/models/info_request.rb:98
+#: app/models/info_request.rb:100
msgid ""
"Please write the summary using a mixture of capital and lower case letters. "
"This makes it easier for others to read."
@@ -539,12 +1896,28 @@ msgid ""
"letters. This makes it easier for others to read."
msgstr ""
+#: app/controllers/request_controller.rb:404
+msgid ""
+"Please write your follow up message containing the necessary clarifications "
+"below."
+msgstr ""
+
#: app/models/outgoing_message.rb:159
msgid ""
"Please write your message using a mixture of capital and lower case letters. "
"This makes it easier for others to read."
msgstr ""
+#: app/views/comment/new.rhtml:41
+msgid ""
+"Point to <strong>related information</strong>, campaigns or forums which may "
+"be useful."
+msgstr ""
+
+#: app/views/comment/preview.rhtml:21
+msgid "Post annotation"
+msgstr ""
+
#: locale/model_attributes.rb:56
msgid "PostRedirect|Circumstance"
msgstr ""
@@ -569,15 +1942,39 @@ msgstr ""
msgid "PostRedirect|Uri"
msgstr ""
-#: locale/model_attributes.rb:15
+#: app/views/request/followup_preview.rhtml:1
+msgid "Preview follow up to '"
+msgstr ""
+
+#: app/views/comment/preview.rhtml:1
+msgid "Preview new annotation on '{{info_request_title}}'"
+msgstr ""
+
+#: app/views/comment/_comment_form.rhtml:16
+msgid "Preview your annotation"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:100
+msgid "Preview your message"
+msgstr ""
+
+#: app/views/request/new.rhtml:143
+msgid "Preview your public request"
+msgstr ""
+
+#: locale/model_attributes.rb:18
msgid "ProfilePhoto|Data"
msgstr ""
-#: locale/model_attributes.rb:16
+#: locale/model_attributes.rb:19
msgid "ProfilePhoto|Draft"
msgstr ""
-#: app/views/general/search.rhtml:73
+#: app/views/public_body/list.rhtml:37
+msgid "Public authorities - {{description}}"
+msgstr ""
+
+#: app/views/general/search.rhtml:70
msgid ""
"Public authorities {{start_count}} to {{end_count}} of {{total_count}} for "
"{{user_search_query}}"
@@ -627,7 +2024,7 @@ msgstr ""
msgid "PublicBody|Version"
msgstr ""
-#: app/views/public_body/show.rhtml:11
+#: app/views/public_body/show.rhtml:10
msgid "Publication scheme"
msgstr ""
@@ -639,26 +2036,145 @@ msgstr ""
msgid "RawEmail|Data text"
msgstr ""
-#: app/views/general/search.rhtml:137
+#: app/views/comment/preview.rhtml:20
+msgid "Re-edit this annotation"
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:49
+msgid "Re-edit this message"
+msgstr ""
+
+#: app/views/request/preview.rhtml:40
+msgid "Re-edit this request"
+msgstr ""
+
+#: app/views/general/search.rhtml:125
msgid ""
"Read about <a href=\"%s\">advanced search operators</a>, such as proximity "
"and wildcards."
msgstr ""
-#: app/views/layouts/default.rhtml:111
+#: app/views/layouts/default.rhtml:110
msgid "Read blog"
msgstr ""
+#: app/views/request/new.rhtml:16
+msgid "Read this before writing your {{info_request_law_used_full}} request"
+msgstr ""
+
#: app/views/general/search.rhtml:42
msgid "Recently described results first"
msgstr ""
+#: app/controllers/request_controller.rb:122
+msgid "Recently sent Freedom of Information requests"
+msgstr ""
+
+#: app/views/request/list.rhtml:6
+msgid "Recently sent requests"
+msgstr ""
+
+#: app/controllers/request_controller.rb:127
+msgid "Recently successful responses"
+msgstr ""
+
+#: app/models/info_request_event.rb:300
+msgid "Refused"
+msgstr ""
+
+#: app/models/info_request.rb:763
+msgid "Refused."
+msgstr ""
+
+#: app/views/user/_signin.rhtml:26
+msgid ""
+"Remember me</label> (keeps you signed in longer;\n"
+" do not use on a public computer) "
+msgstr ""
+
+#: app/views/request/_correspondence.rhtml:28
+msgid "Reply to this message"
+msgstr ""
+
+#: app/views/comment/_single_comment.rhtml:24
+msgid "Report abuse"
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:37
+msgid "Request an internal review"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:4
+msgid "Request an internal review from"
+msgstr ""
+
+#: app/views/request/hidden.rhtml:1
+msgid "Request has been removed"
+msgstr ""
+
+#: app/views/request/_request_listing_via_event.rhtml:28
+msgid ""
+"Request sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
+msgstr ""
+
+#: app/views/request/_request_listing_via_event.rhtml:36
+msgid ""
+"Request to {{public_body_name}} by {{info_request_user}}. Annotated by "
+"{{event_comment_user}} on {{date}}."
+msgstr ""
+
+#: app/views/request/_request_listing_single.rhtml:12
+msgid ""
+"Requested from {{public_body_name}} by {{info_request_user}} on {{date}}"
+msgstr ""
+
+#: app/views/request/_sidebar_request_listing.rhtml:13
+msgid "Requested on {{date}}"
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:11
+msgid "Respond by email"
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:46
+msgid "Respond to request"
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:5
+msgid "Respond to the FOI request"
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:21
+msgid "Respond using the web"
+msgstr ""
+
+#: app/views/request/show.rhtml:70
+msgid "Response to this request is <strong>delayed</strong>."
+msgstr ""
+
+#: app/views/request/show.rhtml:78
+msgid "Response to this request is <strong>long overdue</strong>."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:64
+msgid "Response to your request"
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:28
+msgid "Response:"
+msgstr ""
+
#: app/views/general/search.rhtml:9
msgid "Results page {{page_number}}"
msgstr ""
-#: app/views/layouts/default.rhtml:99 app/views/general/frontpage.rhtml:16
-#: app/views/general/search.rhtml:29
+#: app/views/user/set_profile_about_me.rhtml:35
+msgid "Save"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:98 app/views/request/new.rhtml:31
+#: app/views/general/exception_caught.rhtml:10
+#: app/views/general/frontpage.rhtml:16 app/views/general/search.rhtml:29
msgid "Search"
msgstr ""
@@ -666,6 +2182,42 @@ msgstr ""
msgid "Search Freedom of Information requests, public authorities and users"
msgstr ""
+#: app/views/general/exception_caught.rhtml:7
+msgid "Search the site to find what you were looking for."
+msgstr ""
+
+#: app/controllers/user_controller.rb:321
+msgid "Send a message to "
+msgstr ""
+
+#: app/views/request/_followup.rhtml:7
+msgid "Send a public follow up message to"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:10
+msgid "Send a public reply to"
+msgstr ""
+
+#: app/views/request/_correspondence.rhtml:58
+msgid "Send follow up"
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:50
+msgid "Send message"
+msgstr ""
+
+#: app/views/user/show.rhtml:69
+msgid "Send message to "
+msgstr ""
+
+#: app/views/request/preview.rhtml:41
+msgid "Send public "
+msgstr ""
+
+#: app/views/user/show.rhtml:53
+msgid "Set your profile photo"
+msgstr ""
+
#: app/models/public_body.rb:39
msgid "Short name is already taken"
msgstr ""
@@ -674,32 +2226,633 @@ msgstr ""
msgid "Show most relevant results first"
msgstr ""
-#: app/views/layouts/default.rhtml:121
+#: app/views/request/list.rhtml:2 app/views/public_body/list.rhtml:3
+msgid "Show only..."
+msgstr ""
+
+#: app/views/user/_signin.rhtml:31 app/views/user/show.rhtml:113
+msgid "Sign in"
+msgstr ""
+
+#: app/views/user/sign.rhtml:20
+msgid "Sign in or make a new account"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:120
msgid "Sign in or sign up"
msgstr ""
-#: app/views/layouts/default.rhtml:118
+#: app/views/layouts/default.rhtml:117
msgid "Sign out"
msgstr ""
-#: app/views/general/search.rhtml:140
+#: app/views/user/_signup.rhtml:41
+msgid "Sign up"
+msgstr ""
+
+#: app/views/request/_sidebar.rhtml:30
+msgid "Similar requests"
+msgstr ""
+
+#: app/models/info_request_event.rb:302
+msgid "Some information sent"
+msgstr ""
+
+#: app/views/request_game/play.rhtml:31
+msgid ""
+"Some people who've made requests haven't let us know whether they were\n"
+"successful or not. We need <strong>your</strong> help &ndash;\n"
+"choose one of these requests, read it, and let everyone know whether or not "
+"the\n"
+"information has been provided. Everyone'll be exceedingly grateful."
+msgstr ""
+
+#: app/views/user_mailer/changeemail_already_used.rhtml:1
+msgid ""
+"Someone, perhaps you, just tried to change their email address on\n"
+"WhatDoTheyKnow.com from "
+msgstr ""
+
+#: app/views/general/exception_caught.rhtml:1
+msgid "Sorry, we couldn't find that page"
+msgstr ""
+
+#: app/views/request/new.rhtml:53
+msgid "Special note for this authority!"
+msgstr ""
+
+#: app/views/request/_other_describe_state.rhtml:21
+msgid "Still awaiting an <strong>internal review</strong>"
+msgstr ""
+
+#: app/views/request/preview.rhtml:18
+#: app/views/request/followup_preview.rhtml:23
+msgid "Subject:"
+msgstr ""
+
+#: app/views/user/signchangepassword_send_confirm.rhtml:26
+msgid "Submit"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:103
+msgid "Submit status"
+msgstr ""
+
+#: app/models/track_thing.rb:158 app/models/track_thing.rb:159
+msgid "Successful Freedom of Information requests"
+msgstr ""
+
+#: app/views/request/list.rhtml:5
+msgid "Successful responses"
+msgstr ""
+
+#: app/models/info_request.rb:767
+msgid "Successful."
+msgstr ""
+
+#: app/views/comment/new.rhtml:38
+msgid ""
+"Suggest how the requester can find the <strong>rest of the information</"
+"strong>."
+msgstr ""
+
+#: app/views/request/new.rhtml:93
+msgid "Summary:"
+msgstr ""
+
+#: app/views/general/search.rhtml:128
msgid "Table of statuses"
msgstr ""
-#: app/views/public_body/show.rhtml:99
+#: app/views/request/preview.rhtml:45
+msgid "Tags:"
+msgstr ""
+
+#: app/controllers/request_game_controller.rb:50
+msgid "Thank you for helping us keep the site tidy!"
+msgstr ""
+
+#: app/controllers/comment_controller.rb:62
+msgid "Thank you for making an annotation!"
+msgstr ""
+
+#: app/controllers/request_controller.rb:720
+msgid ""
+"Thank you for responding to this FOI request! Your response has been "
+"published below, and a link to your response has been emailed to "
+msgstr ""
+
+#: app/controllers/request_controller.rb:361
+msgid ""
+"Thank you for updating the status of the request '<a href=\"%s\">"
+"{{info_request_title}}</a>'. There are some more requests below for you to "
+"classify."
+msgstr ""
+
+#: app/controllers/request_controller.rb:364
+msgid "Thank you for updating this request!"
+msgstr ""
+
+#: app/controllers/user_controller.rb:388
+#: app/controllers/user_controller.rb:404
+msgid "Thank you for updating your profile photo"
+msgstr ""
+
+#: app/views/request_game/play.rhtml:42
+msgid ""
+"Thanks for helping - your work will make it easier for everyone to find "
+"successful\n"
+"responses, and maybe even let us make league tables..."
+msgstr ""
+
+#: app/views/user/show.rhtml:20
+msgid ""
+"Thanks very much - this will help others find useful stuff. We'll\n"
+" also, if you need it, give advice on what to do next about your\n"
+" requests."
+msgstr ""
+
+#: app/views/request/new_please_describe.rhtml:20
+msgid ""
+"Thanks very much for helping keep everything <strong>neat and organised</"
+"strong>.\n"
+" We'll also, if you need it, give you advice on what to do next about "
+"each of your\n"
+" requests."
+msgstr ""
+
+#: app/controllers/user_controller.rb:188
+msgid ""
+"That doesn't look like a valid email address. Please check you have typed it "
+"correctly."
+msgstr ""
+
+#: app/views/request/_other_describe_state.rhtml:40
+#: app/views/request/_describe_state.rhtml:48
+msgid "The <strong>review has finished</strong> and overall:"
+msgstr ""
+
+#: app/views/request/new.rhtml:62
+msgid "The Freedom of Information Act <strong>does not apply</strong> to"
+msgstr ""
+
+#: app/views/user_mailer/changeemail_already_used.rhtml:7
+msgid "The accounts have been left as they previously were."
+msgstr ""
+
+#: app/views/request/_other_describe_state.rhtml:45
+msgid ""
+"The authority do <strong>not have</strong> the information <small>(maybe "
+"they say who does)"
+msgstr ""
+
+#: app/views/request/show_response.rhtml:28
+msgid ""
+"The authority only has a <strong>paper copy</strong> of the information."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:18
+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 ""
+
+#: app/views/request/show.rhtml:108
+msgid ""
+"The authority would like to / has <strong>responded by post</strong> to this "
+"request."
+msgstr ""
+
+#: app/views/request_mailer/stopped_responses.rhtml:1
+msgid ""
+"The email that you, on behalf of {{public_body}}, sent to\n"
+"{{user}} to reply to an {{law_used_short}}\n"
+"request has not been delivered."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:22
+msgid ""
+"The law, the Ministry of Justice and the Information Commissioner\n"
+" all say that an email is sufficient (<a href=\"%s\">more "
+"details</a>).\n"
+" At the bottom of this page, write a reply to the authority "
+"explaining this to them."
+msgstr ""
+
+#: app/views/general/exception_caught.rhtml:3
+msgid "The page either doesn't exist, or is broken. Things you can try now:"
+msgstr ""
+
+#: app/views/request/_other_describe_state.rhtml:57
+msgid "The request has been <strong>refused</strong>"
+msgstr ""
+
+#: app/controllers/request_controller.rb:335
+msgid ""
+"The request has been updated since you originally loaded this page. Please "
+"check for any new incoming messages below, and try again."
+msgstr ""
+
+#: app/views/request/show.rhtml:103
+msgid "The request is <strong>waiting for clarification</strong>."
+msgstr ""
+
+#: app/views/request/show.rhtml:96
+msgid "The request was <strong>partially successful</strong>."
+msgstr ""
+
+#: app/views/request/show.rhtml:86
+msgid "The request was <strong>refused</strong> by"
+msgstr ""
+
+#: app/views/request/show.rhtml:88
+msgid "The request was <strong>successful</strong>."
+msgstr ""
+
+#: app/views/request/hidden.rhtml:9
+msgid ""
+"The request you have tried to view has been removed. There are\n"
+"various reasons why we might have done this, sorry we can't be more specific "
+"here. Please <a\n"
+" href=\"%s\">contact us</a> if you have any questions."
+msgstr ""
+
+#: app/views/request/_followup.rhtml:35
+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 ""
+
+#: app/views/request/_followup.rhtml:47
+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 ""
+
+#: app/views/public_body/show.rhtml:102
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 ""
-#: app/views/public_body/show.rhtml:58
+#: app/views/user/show.rhtml:141
+msgid ""
+"The search index is currently offline, so we can't show the Freedom of "
+"Information requests this person has made."
+msgstr ""
+
+#: app/controllers/track_controller.rb:142
+msgid "Then you can cancel the alert."
+msgstr ""
+
+#: app/controllers/track_controller.rb:172
+msgid "Then you can cancel the alerts."
+msgstr ""
+
+#: app/controllers/user_controller.rb:248
+msgid "Then you can change your email address used on {{site_name}}"
+msgstr ""
+
+#: app/controllers/user_controller.rb:202
+msgid "Then you can change your password on {{site_name}}"
+msgstr ""
+
+#: app/controllers/request_controller.rb:321
+msgid "Then you can classify the FOI response you have got from "
+msgstr ""
+
+#: app/controllers/request_game_controller.rb:39
+msgid "Then you can play the request categorisation game."
+msgstr ""
+
+#: app/controllers/user_controller.rb:320
+msgid "Then you can send a message to "
+msgstr ""
+
+#: app/controllers/user_controller.rb:504
+msgid "Then you can sign in to {{site_name}}"
+msgstr ""
+
+#: app/controllers/request_controller.rb:48
+msgid "Then you can update the status of your request to "
+msgstr ""
+
+#: app/controllers/request_controller.rb:686
+msgid "Then you can upload an FOI response. "
+msgstr ""
+
+#: app/controllers/request_controller.rb:528
+msgid "Then you can write follow up message to "
+msgstr ""
+
+#: app/controllers/request_controller.rb:529
+msgid "Then you can write your reply to "
+msgstr ""
+
+#: app/models/track_thing.rb:162
+msgid "Then you will be emailed whenever an FOI request succeeds."
+msgstr ""
+
+#: app/controllers/request_controller.rb:282
+msgid "Then your FOI request to {{public_body_name}} will be sent."
+msgstr ""
+
+#: app/controllers/comment_controller.rb:56
+msgid "Then your annotation to {{info_request_title}} will be posted."
+msgstr ""
+
+#: app/views/request_mailer/comment_on_alert_plural.rhtml:1
+msgid ""
+"There are {{count}} new annotations on your {{info_request}} request. Follow "
+"this link to see what they wrote."
+msgstr ""
+
+#: app/views/user/show.rhtml:4
+msgid ""
+"There is <strong>more than one person</strong> who uses this site and has "
+"this name. \n"
+" One of them is shown below, you may mean a different one:"
+msgstr ""
+
+#: app/views/request/show.rhtml:112
+msgid ""
+"There was a <strong>delivery error</strong> or similar, which needs fixing "
+"by the WhatDoTheyKnow team."
+msgstr ""
+
+#: app/controllers/public_body_controller.rb:70
+msgid "There was an error with the words you entered, please try again."
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:38
+msgid "They are going to reply <strong>by post</strong>"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:53
+msgid ""
+"They do <strong>not have</strong> the information <small>(maybe they say who "
+"does)</small>"
+msgstr ""
+
+#: app/views/user/show.rhtml:83
+msgid "They have been given the following explanation:"
+msgstr ""
+
+#: app/views/request_mailer/overdue_alert.rhtml:3
+msgid ""
+"They have not replied to your {{law_used_short}} request {{title}} promptly, "
+"as normally required by law"
+msgstr ""
+
+#: app/views/request_mailer/very_overdue_alert.rhtml:3
+msgid ""
+"They have not replied to your {{law_used_short}} request {{title}}, \n"
+"as required by law"
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:3
+msgid "Things to do with this request"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:60
msgid "This authority no longer exists, so you cannot make a request to it."
msgstr ""
-#: app/views/public_body/show.rhtml:4
+#: app/views/request/_hidden_correspondence.rhtml:23
+msgid ""
+"This comment has been hidden. See annotations to\n"
+" find out why. If you are the requester, then you may <a href=\"%"
+"s\">sign in</a> to view the response."
+msgstr ""
+
+#: app/views/request/new.rhtml:65
+msgid ""
+"This covers a very wide spectrum of information about the state of\n"
+" the <strong>natural and built environment</strong>, such as:"
+msgstr ""
+
+#: app/views/request/_view_html_prefix.rhtml:9
+msgid ""
+"This is an HTML version of an attachment to the Freedom of Information "
+"request"
+msgstr ""
+
+#: app/views/request_mailer/stopped_responses.rhtml:5
+msgid ""
+"This is because {{title}} is an old request that has been\n"
+"marked to no longer receive responses."
+msgstr ""
+
+#: app/views/track/_tracking_links.rhtml:9
+msgid ""
+"This is your own request, so you will be automatically emailed when new "
+"responses arrive."
+msgstr ""
+
+#: app/views/request/_hidden_correspondence.rhtml:17
+msgid ""
+"This outgoing message has been hidden. See annotations to\n"
+"\t\t\t\t\t\tfind out why. If you are the requester, then you may <a href=\"%"
+"s\">sign in</a> to view the response."
+msgstr ""
+
+#: app/views/user/show.rhtml:122
+msgid "This person has"
+msgstr ""
+
+#: app/views/user/show.rhtml:152
+msgid "This person's"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:86
+msgid "This request <strong>requires administrator attention</strong>"
+msgstr ""
+
+#: app/views/request/show.rhtml:48
+msgid "This request has an <strong>unknown status</strong>."
+msgstr ""
+
+#: app/views/request/show.rhtml:116
+msgid ""
+"This request has been <strong>withdrawn</strong> by the person who made "
+"it. \n"
+" \t There may be an explanation in the correspondence below."
+msgstr ""
+
+#: app/views/request/show.rhtml:114
+msgid ""
+"This request has had an unusual response, and <strong>requires attention</"
+"strong> from the WhatDoTheyKnow team."
+msgstr ""
+
+#: app/views/request/show.rhtml:5
+msgid ""
+"This request has prominence 'hidden'. You can only see it because you are "
+"logged\n"
+" in as a super user."
+msgstr ""
+
+#: app/views/request/show.rhtml:11
+msgid ""
+"This request is hidden, so that only you the requester can see it. Please\n"
+" <a href=\"%s\">contact us</a> if you are not sure why."
+msgstr ""
+
+#: app/views/request/_hidden_correspondence.rhtml:10
+msgid ""
+"This response has been hidden. See annotations to find out why.\n"
+" If you are the requester, then you may <a href=\"%s\">sign in</"
+"a> to view the response."
+msgstr ""
+
+#: app/views/request/new.rhtml:49
+msgid ""
+"This site is <strong>public</strong>. Everything you type and any response "
+"will be published."
+msgstr ""
+
+#: app/views/request/details.rhtml:6
+msgid ""
+"This table shows the technical details of the internal events that happened\n"
+"to this request on WhatDoTheyKnow. This could be used to generate "
+"information about\n"
+"the speed with which authorities respond to requests, the number of "
+"requests\n"
+"which require a postal response and much more."
+msgstr ""
+
+#: app/views/user/show.rhtml:79
+msgid "This user has been banned from WhatDoTheyKnow.com "
+msgstr ""
+
+#: app/views/user_mailer/changeemail_already_used.rhtml:4
+msgid ""
+"This was not possible because there is already an account using \n"
+"the email address "
+msgstr ""
+
+#: app/models/track_thing.rb:161
+msgid "To be emailed about any successful requests"
+msgstr ""
+
+#: app/controllers/track_controller.rb:171
+msgid "To cancel these alerts"
+msgstr ""
+
+#: app/controllers/track_controller.rb:141
+msgid "To cancel this alert"
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:5
+msgid ""
+"To carry on, you need to sign in or make an account. Unfortunately, there\n"
+"was a technical problem trying to do this."
+msgstr ""
+
+#: app/controllers/user_controller.rb:247
+msgid "To change your email address used on {{site_name}}"
+msgstr ""
+
+#: app/controllers/request_controller.rb:320
+msgid "To classify the response to this FOI request"
+msgstr ""
+
+#: app/views/request/show_response.rhtml:39
+msgid "To do that please send a private email to "
+msgstr ""
+
+#: app/views/request_mailer/not_clarified_alert.rhtml:2
+msgid "To do this, first click on the link below."
+msgstr ""
+
+#: app/views/request_mailer/old_unclassified_updated.rhtml:1
+msgid ""
+"To help us keep the site tidy, someone else has updated the status of the \n"
+"{{law_used_full}} request {{title}} \n"
+"that you made to {{public_body}}, to \n"
+"{{display_status}} If you disagree with \n"
+"their categorisation, please update the status again yourself to what\n"
+"you believe to be more accurate."
+msgstr ""
+
+#: app/views/request_mailer/new_response_reminder_alert.rhtml:1
+msgid "To let us know, follow this link and then select the appropriate box."
+msgstr ""
+
+#: app/controllers/request_game_controller.rb:38
+msgid "To play the request categorisation game"
+msgstr ""
+
+#: app/controllers/comment_controller.rb:55
+msgid "To post your annotation"
+msgstr ""
+
+#: app/controllers/request_controller.rb:526
+msgid "To reply to "
+msgstr ""
+
+#: app/controllers/request_controller.rb:525
+msgid "To send a follow up message to "
+msgstr ""
+
+#: app/controllers/user_controller.rb:319
+msgid "To send a message to "
+msgstr ""
+
+#: app/controllers/request_controller.rb:281
+msgid "To send your FOI request"
+msgstr ""
+
+#: app/controllers/request_controller.rb:47
+msgid "To update the status of this FOI request"
+msgstr ""
+
+#: app/controllers/request_controller.rb:685
+msgid ""
+"To upload a response, you must be logged in using an email address from "
+msgstr ""
+
+#: app/views/public_body/view_email_captcha.rhtml:5
+msgid ""
+"To view the email address that we use to send FOI requests to "
+"{{public_body_name}}, please enter these words."
+msgstr ""
+
+#: app/views/request_mailer/new_response.rhtml:5
+msgid "To view the response, click on the link below."
+msgstr ""
+
+#: app/views/request/_request_listing_short_via_event.rhtml:9
+msgid "To {{public_body_link_absolute}}"
+msgstr ""
+
+#: app/views/request/preview.rhtml:17
+#: app/views/request/followup_preview.rhtml:22 app/views/request/new.rhtml:88
+msgid "To:"
+msgstr ""
+
+#: app/models/track_thing.rb:174
+msgid "Track requests to {{public_body_name}} by email"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:3
msgid "Track this authority"
msgstr ""
+#: app/views/user/show.rhtml:29
+msgid "Track this person"
+msgstr ""
+
+#: app/views/request/_sidebar.rhtml:2
+msgid "Track this request"
+msgstr ""
+
#: locale/model_attributes.rb:33
msgid "TrackThing|Track medium"
msgstr ""
@@ -712,19 +2865,77 @@ msgstr ""
msgid "TrackThing|Track type"
msgstr ""
-#: app/views/general/search.rhtml:133
+#: app/views/general/search.rhtml:121
msgid ""
"Type <strong><code>01/01/2008..14/01/2008</code></strong> to only show "
"things that happened in the first two weeks of January."
msgstr ""
-#: app/views/general/search.rhtml:124
+#: app/models/public_body.rb:37
+msgid "URL name can't be blank"
+msgstr ""
+
+#: app/models/user_mailer.rb:45
+msgid "Unable to change email address on WhatDoTheyKnow.com"
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:4
+msgid "Unable to send a reply to {{username}}"
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:2
+msgid "Unable to send follow up message to {{username}}"
+msgstr ""
+
+#: app/views/request/list.rhtml:29
+msgid "Unexpected search result type"
+msgstr ""
+
+#: app/views/request/similar.rhtml:18
+msgid "Unexpected search result type "
+msgstr ""
+
+#: app/views/user/wrong_user_unknown_email.rhtml:3
+msgid ""
+"Unfortunately we don't know the FOI\n"
+"email address for that authority, so we can't validate this.\n"
+"Please <a href=\"%s\">contact us</a> to sort it out."
+msgstr ""
+
+#: app/views/request/new_bad_contact.rhtml:5
+msgid ""
+"Unfortunately, we do not have a working {{info_request_law_used_full}}\n"
+"address for"
+msgstr ""
+
+#: app/views/general/exception_caught.rhtml:17
+msgid "Unknown"
+msgstr ""
+
+#: app/models/info_request_event.rb:312
+msgid "Unusual response"
+msgstr ""
+
+#: app/models/info_request.rb:781
+msgid "Unusual response."
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:13
+#: app/views/request/_after_actions.rhtml:33
+msgid "Update the status of this request"
+msgstr ""
+
+#: app/controllers/request_controller.rb:49
+msgid "Update the status of your request to "
+msgstr ""
+
+#: app/views/general/search.rhtml:112
msgid ""
"Use OR (in capital letters) where you don't mind which word, e.g. "
"<strong><code>commons OR lords</code></strong>"
msgstr ""
-#: app/views/general/search.rhtml:125
+#: app/views/general/search.rhtml:113
msgid ""
"Use quotes when you want to find an exact phrase, e.g. <strong><code>"
"\"Liverpool City Council\"</code></strong>"
@@ -778,44 +2989,532 @@ msgstr ""
msgid "View FOI email address"
msgstr ""
-#: app/views/layouts/default.rhtml:107
-msgid "View authorities"
+#: app/views/public_body/view_email_captcha.rhtml:1
+msgid "View FOI email address for '{{public_body_name}}'"
+msgstr ""
+
+#: app/views/public_body/view_email_captcha.rhtml:3
+msgid "View FOI email address for {{public_body_name}}"
+msgstr ""
+
+#: app/views/contact_mailer/user_message.rhtml:10
+msgid "View Freedom of Information requests made by"
msgstr ""
#: app/views/layouts/default.rhtml:106
+msgid "View authorities"
+msgstr ""
+
+#: app/views/public_body/view_email_captcha.rhtml:12
+msgid "View email"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:105
msgid "View requests"
msgstr ""
-#: app/views/public_body/show.rhtml:39
+#: app/models/info_request.rb:769
+msgid "Waiting clarification."
+msgstr ""
+
+#: app/views/request/show.rhtml:110
+msgid ""
+"Waiting for an <strong>internal review</strong> by {{public_body_link}} of "
+"their handling of this request."
+msgstr ""
+
+#: app/views/public_body/view_email.rhtml:17
+msgid "We do not have a working request email address for this authority."
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:24
+msgid ""
+"We do not have a working {{law_used_full}} address for {{public_body_name}}."
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:109
+msgid ""
+"We don't know whether the most recent response to this request contains\n"
+" information or not\n"
+" &ndash;\n"
+"\tif you are {{user_link}} please <a href=\"%s\">sign in</a> and let "
+"everyone know."
+msgstr ""
+
+#: app/views/user_mailer/confirm_login.rhtml:8
+msgid ""
+"We will not reveal your email address to anybody unless you\n"
+"or the law tell us to."
+msgstr ""
+
+#: app/views/user_mailer/changeemail_confirm.rhtml:9
+msgid ""
+"We will not reveal your email addresses to anybody unless you\n"
+"or the law tell us to."
+msgstr ""
+
+#: app/views/request/show.rhtml:54
+msgid "We're waiting for"
+msgstr ""
+
+#: app/views/request/show.rhtml:50
+msgid "We're waiting for someone to read"
+msgstr ""
+
+#: app/views/user/signchangeemail_confirm.rhtml:6
+msgid ""
+"We've sent an email to your new email address. You'll need to click the link "
+"in\n"
+"it before your email address will be changed."
+msgstr ""
+
+#: app/views/user/confirm.rhtml:6
+msgid ""
+"We've sent you an email, and you'll need to click the link in it before you "
+"can\n"
+"continue."
+msgstr ""
+
+#: app/views/user/signchangepassword_confirm.rhtml:6
+msgid ""
+"We've sent you an email, click the link in it, then you can change your "
+"password."
+msgstr ""
+
+#: app/views/request/_followup.rhtml:62
+msgid "What are you doing?"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:4
+msgid "What best describes the status of this request now?"
+msgstr ""
+
+#: app/views/public_body/view_email.rhtml:7
+msgid ""
+"WhatDoTheyKnow sends new requests to <strong>{{request_email}}</strong> for "
+"this authority."
+msgstr ""
+
+#: app/views/request_mailer/new_response.rhtml:9
+msgid ""
+"When you get there, please update the status to say if the response \n"
+"contains any useful information."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:44
+msgid ""
+"When you receive the paper response, please help\n"
+" others find out what it says:"
+msgstr ""
+
+#: app/views/request/new_please_describe.rhtml:16
+msgid ""
+"When you're done, <strong>come back here</strong>, <a href=\"%s\">reload "
+"this page</a> and file your new request."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:13
+msgid "Which of these is happening?"
+msgstr ""
+
+#: app/models/info_request_event.rb:308
+msgid "Withdrawn by requester"
+msgstr ""
+
+#: app/models/info_request.rb:783
+msgid "Withdrawn by the requester."
+msgstr ""
+
+#: app/controllers/request_controller.rb:532
+msgid "Write a reply to "
+msgstr ""
+
+#: app/controllers/request_controller.rb:531
+msgid "Write your FOI follow up message to "
+msgstr ""
+
+#: app/views/request/new.rhtml:46
+msgid "Write your request in <strong>simple, precise language</strong>."
+msgstr ""
+
+#: app/models/info_request_event.rb:296
+msgid "Wrong Response"
+msgstr ""
+
+#: app/models/info_request.rb:775
+msgid "Wrong Response."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:71
+msgid ""
+"XXX this section needs localising re EIR as these are specific to UK law"
+msgstr ""
+
+#: app/views/comment/_single_comment.rhtml:10
+msgid "You"
+msgstr ""
+
+#: app/controllers/track_controller.rb:96
+msgid "You are already being emailed updates about "
+msgstr ""
+
+#: app/models/track_thing.rb:156
+msgid "You are being emailed about any new successful responses"
+msgstr ""
+
+#: app/views/request/show.rhtml:81
+msgid "You can <strong>complain</strong> by"
+msgstr ""
+
+#: app/views/request/details.rhtml:57
+msgid ""
+"You can get this page in computer-readable format as part of the main JSON\n"
+"page for the request. See the <a href=\"%s\">API documentation</a>."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:41
msgid ""
"You can only request information about the environment from this authority."
msgstr ""
-#: app/views/public_body/show.rhtml:30
+#: app/views/user/show.rhtml:122
+msgid "You have"
+msgstr ""
+
+#: app/views/request_mailer/new_response.rhtml:1
+msgid "You have a new response to the {{law_used_full}} request "
+msgstr ""
+
+#: app/controllers/user_controller.rb:482
+msgid "You have now changed the text about you on your profile."
+msgstr ""
+
+#: app/controllers/user_controller.rb:300
+msgid "You have now changed your email address used on {{site_name}}"
+msgstr ""
+
+#: app/views/user_mailer/already_registered.rhtml:3
+msgid ""
+"You just tried to sign up to WhatDoTheyKnow.com, when you\n"
+"already have an account. Your name and password have been\n"
+"left as they previously were.\n"
+"\n"
+"Please click on the link below."
+msgstr ""
+
+#: app/views/comment/new.rhtml:59
+msgid ""
+"You know what caused the error, and can <strong>suggest a solution</strong>, "
+"such as a working email address."
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:16
+msgid ""
+"You may <strong>include attachments</strong>. If you would like to attach a\n"
+"file too large for email, use the form below."
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:24
+msgid ""
+"You may be able to find\n"
+" one on their website, or by phoning them up and asking. If you manage\n"
+" to find one, then please <a href=\"%s\">send it to us</a>."
+msgstr ""
+
+#: app/views/request/new_bad_contact.rhtml:6
+msgid ""
+"You may be able to find\n"
+"one on their website, or by phoning them up and asking. If you manage\n"
+"to find one, then please <a href=\"%s\">send it to us</a>."
+msgstr ""
+
+#: app/controllers/user_controller.rb:460
+msgid "You need to be logged in to change the text about you on your profile."
+msgstr ""
+
+#: app/controllers/user_controller.rb:361
+msgid "You need to be logged in to change your profile photo."
+msgstr ""
+
+#: app/controllers/user_controller.rb:423
+msgid "You need to be logged in to clear your profile photo."
+msgstr ""
+
+#: app/controllers/request_controller.rb:542
+msgid "You previously submitted that exact follow up message for this request."
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:13
+msgid ""
+"You should have received a copy of the request by email, and you can "
+"respond\n"
+"by <strong>simply replying</strong> to that email. For your convenience, "
+"here is the address:"
+msgstr ""
+
+#: app/views/request/show_response.rhtml:36
+msgid ""
+"You want to <strong>give your postal address</strong> to the authority in "
+"private."
+msgstr ""
+
+#: app/views/user/banned.rhtml:9
+msgid ""
+"You will be unable to make new requests, send follow ups, add annotations "
+"or\n"
+"send messages to other users. You may continue to view other requests, and "
+"set\n"
+"up\n"
+"email alerts."
+msgstr ""
+
+#: app/controllers/track_controller.rb:152
+msgid "You will no longer be emailed updates about "
+msgstr ""
+
+#: app/controllers/track_controller.rb:181
+msgid "You will no longer be emailed updates for those alerts"
+msgstr ""
+
+#: app/controllers/track_controller.rb:109
+msgid "You will now be emailed updates about "
+msgstr ""
+
+#: app/views/request_mailer/not_clarified_alert.rhtml:6
+msgid ""
+"You will only get an answer to your request if you follow up\n"
+"with the clarification."
+msgstr ""
+
+#: app/controllers/user_controller.rb:432
+msgid "You've now cleared your profile photo"
+msgstr ""
+
+#: app/views/user/show.rhtml:152
+msgid "Your "
+msgstr ""
+
+#: app/views/user/_signup.rhtml:22
+msgid ""
+"Your <strong>name will appear publicly</strong> \n"
+" (<a href=\"%s\">why?</a>)\n"
+" on this website and in search engines. If you\n"
+" are thinking of using a pseudonym, please \n"
+" <a href=\"%s\">read this first</a>."
+msgstr ""
+
+#: app/views/contact_mailer/user_message.rhtml:3
+msgid ""
+"Your details have not been given to anyone, unless you choose to reply to "
+"this\n"
+"message, which will then go directly to the person who wrote the message."
+msgstr ""
+
+#: app/views/user/_signin.rhtml:11 app/views/user/_signup.rhtml:9
+#: app/views/user/signchangepassword_send_confirm.rhtml:13
+msgid "Your e-mail:"
+msgstr ""
+
+#: app/views/user/show.rhtml:168
+msgid "Your email subscriptions"
+msgstr ""
+
+#: app/controllers/request_controller.rb:539
+msgid ""
+"Your follow up has not been sent because this request has been stopped to "
+"prevent spam. Please <a href=\"%s\">contact us</a> if you really want to "
+"send a follow up message."
+msgstr ""
+
+#: app/controllers/request_controller.rb:567
+msgid "Your follow up message has been sent on its way."
+msgstr ""
+
+#: app/controllers/request_controller.rb:565
+msgid "Your internal review request has been sent on its way."
+msgstr ""
+
+#: app/controllers/help_controller.rb:61
+msgid ""
+"Your message has been sent. Thank you for getting in touch! We'll get back "
+"to you soon."
+msgstr ""
+
+#: app/controllers/user_controller.rb:339
+msgid "Your message to {{recipient_user_name}} has been sent!"
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:15
+msgid "Your message will appear in <strong>search engines</strong>"
+msgstr ""
+
+#: app/views/comment/preview.rhtml:10
+msgid ""
+"Your name and annotation will appear in <strong>search engines</strong>."
+msgstr ""
+
+#: app/views/request/preview.rhtml:8
+msgid ""
+"Your name, request and any responses will appear in <strong>search engines</"
+"strong>\n"
+" (<a href=\"%s\">details</a>)."
+msgstr ""
+
+#: app/views/user/_signup.rhtml:18
+msgid "Your name:"
+msgstr ""
+
+#: app/views/request_mailer/stopped_responses.rhtml:14
+msgid "Your original message is attached."
+msgstr ""
+
+#: app/controllers/user_controller.rb:230
+msgid "Your password has been changed."
+msgstr ""
+
+#: app/views/user/signchangeemail.rhtml:25
+msgid "Your password:"
+msgstr ""
+
+#: app/views/user/set_draft_profile_photo.rhtml:18
+msgid ""
+"Your photo will be shown in public <strong>on the Internet</strong>, \n"
+" wherever you do something on WhatDoTheyKnow."
+msgstr ""
+
+#: app/views/request_mailer/new_response_reminder_alert.rhtml:5
+msgid ""
+"Your request was called {{info_request}}. Letting everyone know whether you "
+"got the information will help us keep tabs on"
+msgstr ""
+
+#: app/views/request/new.rhtml:109
+msgid "Your request:"
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:8
+msgid ""
+"Your response will <strong>appear on the Internet</strong>, <a href=\"%s"
+"\">read why</a> and answers to other questions."
+msgstr ""
+
+#: app/views/comment/new.rhtml:62
+msgid ""
+"Your thoughts on what the WhatDoTheyKnow <strong>administrators</strong> "
+"should do about the request."
+msgstr ""
+
+#: app/models/outgoing_message.rb:69
+msgid "Yours faithfully,"
+msgstr ""
+
+#: app/models/outgoing_message.rb:67
+msgid "Yours sincerely,"
+msgstr ""
+
+#: app/views/request/new.rhtml:97
+msgid ""
+"a one line summary of the information you are requesting, \n"
+"\t\t\te.g."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:32
msgid "admin"
msgstr ""
-#: app/views/public_body/show.rhtml:28
+#: app/views/public_body/show.rhtml:30
msgid "also called {{public_body_short_name}}"
msgstr ""
-#: app/models/public_body.rb:36 app/models/public_body.rb:37
-msgid "can't be blank"
+#: app/views/user/wrong_user.rhtml:5
+msgid "and sign in as "
msgstr ""
-#: locale/model_attributes.rb:35
+#: app/views/request/show.rhtml:52
+msgid ""
+"and update the status accordingly. Perhaps <strong>you</strong> might like "
+"to help out by doing that?"
+msgstr ""
+
+#: app/views/request/show.rhtml:57
+msgid "and update the status."
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:103
+msgid "and we'll suggest <strong>what to do next</strong>"
+msgstr ""
+
+#: app/views/user/show.rhtml:153
+msgid "annotation"
+msgstr ""
+
+#: app/views/user/show.rhtml:147
+msgid "annotations"
+msgstr ""
+
+#: app/views/request_mailer/very_overdue_alert.rhtml:1
+msgid "are long overdue."
+msgstr ""
+
+#: app/controllers/public_body_controller.rb:110
+msgid "beginning with"
+msgstr ""
+
+#: app/views/request/show.rhtml:75
+msgid "by"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:41
+msgid "by <strong>{{date}}</strong>"
+msgstr ""
+
+#: app/views/request/_request_listing_via_event.rhtml:34
+msgid "by {{public_body_name}} to {{info_request_user}} on {{date}}."
+msgstr ""
+
+#: app/views/request/_request_listing_short_via_event.rhtml:10
+msgid "by {{user_link_absolute}}"
+msgstr ""
+
+#: locale/model_attributes.rb:42
msgid "censor rule"
msgstr ""
-#: locale/model_attributes.rb:20
+#: locale/model_attributes.rb:26
msgid "comment"
msgstr ""
+#: app/views/request/show_response.rhtml:41
+msgid ""
+"containing your postal address, and asking them to reply to this request.\n"
+" Or you could phone them."
+msgstr ""
+
+#: app/models/info_request_event.rb:333
+msgid "display_status only works for incoming and outgoing messages right now"
+msgstr ""
+
+#: app/views/request_mailer/overdue_alert.rhtml:3
+msgid "during term time"
+msgstr ""
+
#: app/views/general/frontpage.rhtml:18
msgid "e.g."
msgstr ""
-#: locale/model_attributes.rb:17
+#: app/views/user/show.rhtml:96
+msgid "edit text about you"
+msgstr ""
+
+#: app/views/user/show.rhtml:171
+msgid "email subscription"
+msgstr ""
+
+#: app/views/request_mailer/very_overdue_alert.rhtml:4
+msgid "even during holidays"
+msgstr ""
+
+#: locale/model_attributes.rb:14
msgid "exim log"
msgstr ""
@@ -823,10 +3522,27 @@ msgstr ""
msgid "exim log done"
msgstr ""
+#: app/views/request_mailer/requires_admin.rhtml:2
+msgid "has reported an"
+msgstr ""
+
+#: app/views/request_mailer/overdue_alert.rhtml:1
+msgid "have delayed."
+msgstr ""
+
#: locale/model_attributes.rb:57
msgid "holiday"
msgstr ""
+#: app/views/request/_followup.rhtml:39 app/views/request/show.rhtml:63
+#: app/views/request/show.rhtml:73
+msgid "in term time"
+msgstr ""
+
+#: app/views/public_body/list.rhtml:42
+msgid "in total"
+msgstr ""
+
#: locale/model_attributes.rb:63
msgid "incoming message"
msgstr ""
@@ -835,19 +3551,71 @@ msgstr ""
msgid "info request"
msgstr ""
-#: locale/model_attributes.rb:40
+#: locale/model_attributes.rb:35
msgid "info request event"
msgstr ""
-#: locale/model_attributes.rb:25
+#: app/views/user/signchangeemail.rhtml:3
+#: app/views/user/set_profile_about_me.rhtml:3
+msgid "internal error"
+msgstr ""
+
+#: app/views/request/show.rhtml:99
+msgid "is <strong>waiting for your clarification</strong>."
+msgstr ""
+
+#: app/views/user/show.rhtml:71
+msgid "just to see how it works"
+msgstr ""
+
+#: app/views/comment/_single_comment.rhtml:10
+msgid "left an annotation"
+msgstr ""
+
+#: app/views/user/_user_listing_single.rhtml:19
+#: app/views/user/_user_listing_single.rhtml:20
+msgid "made."
+msgstr ""
+
+#: app/views/request/show.rhtml:67
+msgid "no later than"
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:18
+msgid ""
+"no longer exists. If you are trying to make\n"
+" 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=\"%s\">send it "
+"to us</a>."
+msgstr ""
+
+#: app/views/request/show.rhtml:65
+msgid "normally"
+msgstr ""
+
+#: app/views/user/show.rhtml:114
+msgid "only"
+msgstr ""
+
+#: locale/model_attributes.rb:20
msgid "outgoing message"
msgstr ""
+#: app/views/user/sign.rhtml:11
+msgid "please sign in as "
+msgstr ""
+
+#: app/views/user/sign.rhtml:28
+msgid "please sign in or make a new account."
+msgstr ""
+
#: locale/model_attributes.rb:50
msgid "post redirect"
msgstr ""
-#: locale/model_attributes.rb:14
+#: locale/model_attributes.rb:17
msgid "profile photo"
msgstr ""
@@ -859,10 +3627,122 @@ msgstr ""
msgid "raw email"
msgstr ""
+#: app/views/request_mailer/not_clarified_alert.rhtml:1
+msgid "request."
+msgstr ""
+
+#: app/views/request/show.rhtml:82
+msgid "requesting an internal review"
+msgstr ""
+
+#: app/views/request_mailer/requires_admin.rhtml:3
+msgid ""
+"response as needing administrator attention. Take a look, and reply to this\n"
+"email to let them know what you are going to do about it."
+msgstr ""
+
+#: app/views/request/show.rhtml:101
+msgid "send a follow up message"
+msgstr ""
+
+#: app/views/request/_request_listing_via_event.rhtml:31
+msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
+msgstr ""
+
+#: app/views/request/show.rhtml:105
+msgid "sign in"
+msgstr ""
+
+#: app/views/user/wrong_user.rhtml:4
+msgid "sign out"
+msgstr ""
+
+#: app/views/request_mailer/new_response.rhtml:2
+msgid "that you made to"
+msgstr ""
+
+#: app/views/user_mailer/changeemail_already_used.rhtml:9
+#: app/views/user_mailer/changeemail_confirm.rhtml:12
+#: app/views/user_mailer/already_registered.rhtml:11
+#: app/views/user_mailer/confirm_login.rhtml:11
+#: app/views/request_mailer/comment_on_alert_plural.rhtml:5
+#: app/views/request_mailer/new_response_reminder_alert.rhtml:8
+#: app/views/request_mailer/not_clarified_alert.rhtml:9
+#: app/views/request_mailer/old_unclassified_updated.rhtml:12
+#: app/views/request_mailer/new_response.rhtml:15
+#: app/views/request_mailer/stopped_responses.rhtml:16
+#: app/views/request_mailer/overdue_alert.rhtml:9
+#: app/views/request_mailer/comment_on_alert.rhtml:6
+#: app/views/request_mailer/very_overdue_alert.rhtml:11
+msgid "the WhatDoTheyKnow team"
+msgstr ""
+
+#: app/views/user/show.rhtml:140
+msgid "this person"
+msgstr ""
+
+#: app/views/user_mailer/changeemail_already_used.rhtml:2
+msgid "to"
+msgstr ""
+
+#: app/views/user_mailer/changeemail_confirm.rhtml:5
+msgid "to "
+msgstr ""
+
+#: app/views/user/show.rhtml:113
+msgid ""
+"to change password, \n"
+" subscriptions and more"
+msgstr ""
+
+#: app/views/request/new.rhtml:34
+msgid "to check that the info isn't already published."
+msgstr ""
+
+#: app/views/request/show.rhtml:55
+msgid "to read"
+msgstr ""
+
+#: app/views/request/show.rhtml:105
+msgid "to send a follow up message."
+msgstr ""
+
+#: app/views/request/show.rhtml:39
+msgid "to {{public_body}}"
+msgstr ""
+
#: locale/model_attributes.rb:31
msgid "track thing"
msgstr ""
+#: app/views/request/_hidden_correspondence.rhtml:32
+msgid "unexpected prominence on request event"
+msgstr ""
+
+#: app/views/request/_request_listing_via_event.rhtml:38
+msgid "unknown event type indexed "
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:29
+msgid "unknown reason "
+msgstr ""
+
+#: app/models/info_request.rb:785 app/models/info_request_event.rb:328
+msgid "unknown status "
+msgstr ""
+
+#: app/views/user/show.rhtml:208
+msgid "unsubscribe"
+msgstr ""
+
+#: app/views/user/show.rhtml:180 app/views/user/show.rhtml:194
+msgid "unsubscribe all"
+msgstr ""
+
+#: app/views/request/show.rhtml:46
+msgid "useful information."
+msgstr ""
+
#: locale/model_attributes.rb:69
msgid "user"
msgstr ""
@@ -871,6 +3751,39 @@ msgstr ""
msgid "user info request sent alert"
msgstr ""
-#: app/views/general/frontpage.rhtml:51
+#: app/views/user/show.rhtml:140
+msgid "you"
+msgstr ""
+
+#: app/views/request/new.rhtml:6
+msgid ""
+"{{existing_request_user}} already\n"
+" created the same request on {{date}}. You can either view the <a href="
+"\"{{existing_request}}\">existing request</a>,\n"
+" or edit the details below to make a new but similar request."
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:20
+msgid "{{info_request_user_name}} only:"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:49
msgid "{{length_of_time}} ago"
msgstr ""
+
+#: app/views/request/_after_actions.rhtml:43
+msgid "{{public_body_name}} only:"
+msgstr ""
+
+#: app/views/request_mailer/comment_on_alert.rhtml:1
+msgid ""
+"{{user_name}} has annotated your {{law_used_short}} \n"
+"request. Follow this link to see what they wrote."
+msgstr ""
+
+#: app/views/request/show.rhtml:35
+msgid "{{user}} made this {{law_used_full}} request"
+msgstr ""
+
+#~ msgid "activerecord.errors.full_messages.format"
+#~ msgstr "%{message}"
diff --git a/locale/en/app.po b/locale/en/app.po
index 191270700..e109c9a19 100644
--- a/locale/en/app.po
+++ b/locale/en/app.po
@@ -7,8 +7,8 @@
msgid ""
msgstr ""
"Project-Id-Version: version 0.0.1\n"
-"POT-Creation-Date: 2011-06-16 19:20+0100\n"
-"PO-Revision-Date: 2011-06-14 09:06+0100\n"
+"POT-Creation-Date: 2011-06-01 09:03-0000\n"
+"PO-Revision-Date: 2011-02-24 07:11-0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
@@ -17,66 +17,226 @@ msgstr ""
"Language: \n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-#: app/views/public_body/show.rhtml:79
+#: app/views/user/set_profile_about_me.rhtml:14
+msgid ""
+" This will appear on your WhatDoTheyKnow profile, to make it\n"
+" easier for others to get involved with what you're doing."
+msgstr ""
+
+#: app/views/comment/_comment_form.rhtml:17
+msgid ""
+" (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation "
+"policy</a>)"
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:40
+msgid ""
+" (<strong>patience</strong>, especially for large files, it may take a "
+"while!)"
+msgstr ""
+
+#: app/views/user/show.rhtml:59
+msgid " (you)"
+msgstr ""
+
+#: app/views/user/signchangepassword_send_confirm.rhtml:18
+msgid ""
+" <strong>Note:</strong>\n"
+" We will send you an email. Follow the instructions in it to change\n"
+" your password."
+msgstr ""
+
+#: app/views/user/contact.rhtml:35
+msgid " <strong>Privacy note:</strong> Your email address will be given to"
+msgstr ""
+
+#: app/views/comment/new.rhtml:33
+msgid " <strong>Summarise</strong> the content of any information returned. "
+msgstr ""
+
+#: app/views/comment/new.rhtml:23
+msgid " Advise on how to <strong>best clarify</strong> the request."
+msgstr ""
+
+#: app/views/comment/new.rhtml:49
+msgid ""
+" Ideas on what <strong>other documents to request</strong> which the "
+"authority may hold. "
+msgstr ""
+
+#: app/views/public_body/view_email.rhtml:30
+msgid ""
+" If you know the address to use, then please <a href=\"%s\">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 ""
+
+#: app/views/user/set_profile_about_me.rhtml:26
+msgid ""
+" Include relevant links, such as to a campaign page, your blog or a\n"
+" twitter account. They will be made clickable. \n"
+" e.g."
+msgstr ""
+
+#: app/views/comment/new.rhtml:27
+msgid ""
+" Link to the information requested, if it is <strong>already available</"
+"strong> on the Internet. "
+msgstr ""
+
+#: app/views/comment/new.rhtml:29
+msgid ""
+" Offer better ways of <strong>wording the request</strong> to get the "
+"information. "
+msgstr ""
+
+#: app/views/user/sign.rhtml:26
+msgid " Please sign in or make a new account."
+msgstr ""
+
+#: app/views/comment/new.rhtml:34
+msgid ""
+" Say how you've <strong>used the information</strong>, with links if "
+"possible."
+msgstr ""
+
+#: app/views/comment/new.rhtml:28
+msgid ""
+" Suggest <strong>where else</strong> the requester might find the "
+"information. "
+msgstr ""
+
+#: app/views/user/set_profile_about_me.rhtml:11
+msgid " What are you investigating using Freedom of Information? "
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:5
+msgid " made by "
+msgstr ""
+
+#: app/views/user/show.rhtml:123
+msgid " made no Freedom of Information requests using this site."
+msgstr ""
+
+#: app/views/track_mailer/event_digest.rhtml:28
+msgid " sent a request to"
+msgstr ""
+
+#: app/views/user/contact.rhtml:36
+msgid " when you send this message."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:82
msgid "%d Freedom of Information request"
msgid_plural "%d Freedom of Information requests"
msgstr[0] ""
msgstr[1] ""
-#: app/views/general/frontpage.rhtml:36
+#: app/views/general/frontpage.rhtml:35
msgid "%d request"
msgid_plural "%d requests"
msgstr[0] ""
msgstr[1] ""
+#: app/views/request/new.rhtml:102
+msgid "'Crime statistics by ward level for Wales'"
+msgstr ""
+
+#: app/views/request/new.rhtml:100
+msgid "'Pollution levels over time for the River Tyne'"
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:9
+msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
+msgstr ""
+
+#: app/views/public_body/list.rhtml:29
+msgid "<a href=\"%s\">Are we missing a public authority?</a>."
+msgstr ""
+
+#: app/views/request/_sidebar.rhtml:45
+msgid ""
+"<a href=\"%s\">Are you the owner of\n"
+" any commercial copyright on this page?</a>"
+msgstr ""
+
#: app/views/general/search.rhtml:53
msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
msgstr ""
-#: app/views/public_body/show.rhtml:49
+#: app/views/public_body/show.rhtml:51
msgid ""
"<a href=\"%s\">Make a new Freedom of Information request</a> to "
"{{public_body_name}}"
msgstr ""
-#: app/views/general/search.rhtml:130
+#: app/views/public_body/list.rhtml:43
+msgid "<a href=\"%s\">can't find the one you want?</a>"
+msgstr ""
+
+#: app/views/request/show.rhtml:76 app/views/request/show.rhtml:80
+#: app/views/request/_followup.rhtml:42 app/views/request/_followup.rhtml:49
+msgid "<a href=\"%s\">details</a>"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:78
+msgid "<a href=\"%s\">what's that?</a>"
+msgstr ""
+
+#: app/views/user/confirm.rhtml:11
+msgid ""
+"<small>If you use web-based email or have \"junk mail\" filters, also check "
+"your\n"
+"bulk/spam mail folders. Sometimes, our messages are marked that way.</"
+"small>\n"
+"</p>"
+msgstr ""
+
+#: app/views/request/new.rhtml:135
+msgid ""
+"<strong> Can I request information about myself?</strong>\n"
+"\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
+msgstr ""
+
+#: app/views/general/search.rhtml:118
msgid ""
"<strong><code>commented_by:tony_bowden</code></strong> to search annotations "
"made by Tony Bowden, typing the name as in the URL."
msgstr ""
-#: app/views/general/search.rhtml:132
+#: app/views/general/search.rhtml:120
msgid ""
"<strong><code>filetype:pdf</code></strong> to find all responses with PDF "
"attachments. Or try these: <code>{{list_of_file_extensions}}</code>"
msgstr ""
-#: app/views/general/search.rhtml:131
+#: app/views/general/search.rhtml:119
msgid ""
"<strong><code>request:</code></strong> to restrict to a specific request, "
"typing the title as in the URL."
msgstr ""
-#: app/views/general/search.rhtml:129
+#: app/views/general/search.rhtml:117
msgid ""
"<strong><code>requested_by:julian_todd</code></strong> to search requests "
"made by Julian Todd, typing the name as in the URL."
msgstr ""
-#: app/views/general/search.rhtml:128
+#: app/views/general/search.rhtml:116
msgid ""
"<strong><code>requested_from:home_office</code></strong> to search requests "
"from the Home Office, typing the name as in the URL."
msgstr ""
-#: app/views/general/search.rhtml:126
+#: app/views/general/search.rhtml:114
msgid ""
"<strong><code>status:</code></strong> to select based on the status or "
"historical status of the request, see the <a href=\"%s\">table of statuses</"
"a> below."
msgstr ""
-#: app/views/general/search.rhtml:134
+#: app/views/general/search.rhtml:122
msgid ""
"<strong><code>tag:charity</code></strong> to find all public bodies or "
"requests with a given tag. You can include multiple tags, \n"
@@ -86,63 +246,297 @@ msgid ""
"want results them all present."
msgstr ""
-#: app/views/general/search.rhtml:127
+#: app/views/general/search.rhtml:115
msgid ""
"<strong><code>variety:</code></strong> to select type of thing to search "
"for, see the <a href=\"%s\">table of varieties</a> below."
msgstr ""
+#: app/views/request/_followup.rhtml:83
+msgid "<strong>Anything else</strong>, such as clarifying, prompting, thanking"
+msgstr ""
+
+#: app/views/request/details.rhtml:12
+msgid ""
+"<strong>Caveat emptor!</strong> To use this data in an honourable way, you "
+"will need \n"
+"a good internal knowledge of user behaviour on WhatDoTheyKnow. How, \n"
+"why and by whom requests are categorised is not straightforward, and there "
+"will\n"
+"be user error and ambiguity. You will also need to understand FOI law, and "
+"the\n"
+"way authorities use it. Plus you'll need to be an elite statistician. "
+"Please\n"
+"<a href=\"%s\">contact us</a> with questions."
+msgstr ""
+
+#: app/views/user/signchangeemail.rhtml:30
+msgid ""
+"<strong>Note:</strong>\n"
+" We will send an email to your new email address. Follow the\n"
+" instructions in it to confirm changing your email."
+msgstr ""
+
+#: app/views/user/contact.rhtml:32
+msgid ""
+"<strong>Note:</strong> You're sending a message to yourself, presumably\n"
+" to try out how it works."
+msgstr ""
+
+#: app/views/request/preview.rhtml:31
+msgid ""
+"<strong>Privacy note:</strong> If you want to request private information "
+"about\n"
+" yourself then <a href=\"%s\">click here</a>."
+msgstr ""
+
+#: app/views/user/set_crop_profile_photo.rhtml:35
+msgid ""
+"<strong>Privacy note:</strong> Your photo will be shown in public on the "
+"Internet, \n"
+" wherever you do something on WhatDoTheyKnow."
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:37
+msgid ""
+"<strong>Privacy warning:</strong> Your message, and any response\n"
+" to it, will be displayed publicly on this website."
+msgstr ""
+
+#: app/views/general/exception_caught.rhtml:18
+msgid "<strong>Technical details:</strong>"
+msgstr ""
+
+#: app/views/comment/new.rhtml:35
+msgid "<strong>Thank</strong> the public authority or "
+msgstr ""
+
+#: app/views/request/new.rhtml:23
+msgid ""
+"<strong>browse</strong> the authority's <a href=\"%s\">publication scheme</"
+"a> or <strong>search</strong> their web site ..."
+msgstr ""
+
+#: app/views/request/show.rhtml:84
+msgid "<strong>did not have</strong> the information requested."
+msgstr ""
+
+#: app/views/request/new.rhtml:25
+msgid "<strong>search</strong> the authority's web site ..."
+msgstr ""
+
+#: app/views/comment/new.rhtml:45
+msgid ""
+"A <strong>summary</strong> of the response if you have received it by post. "
+msgstr ""
+
+#: app/views/user/set_profile_about_me.rhtml:20
+msgid "About you:"
+msgstr ""
+
+#: app/views/request/_sidebar.rhtml:5
+msgid "Act on what you've learnt"
+msgstr ""
+
+#: app/views/comment/new.rhtml:14
+msgid "Add an annotation to "
+msgstr ""
+
+#: app/views/request/show_response.rhtml:47
+msgid ""
+"Add an annotation to your request with choice quotes, or\n"
+" a <strong>summary of the response</strong>."
+msgstr ""
+
#: app/models/user.rb:54
msgid "Admin level is not included in list"
msgstr ""
-#: app/views/general/search.rhtml:31 app/views/general/search.rhtml:121
+#: app/views/general/search.rhtml:31 app/views/general/search.rhtml:109
msgid "Advanced search tips"
msgstr ""
+#: app/views/request/new.rhtml:69
+msgid ""
+"Air, water, soil, land, flora and fauna (including how these effect\n"
+" human beings)"
+msgstr ""
+
+#: app/views/public_body/list.rhtml:5
+msgid "Alphabet"
+msgstr ""
+
+#: app/views/track_mailer/event_digest.rhtml:63
+msgid "Alter your subscription"
+msgstr ""
+
+#: app/views/user/show.rhtml:34
+msgid "Annotations"
+msgstr ""
+
+#: app/views/comment/new.rhtml:17
+msgid ""
+"Annotations are so anyone, including you, can help the requester with their "
+"request. For example:"
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:6
+msgid "Anyone:"
+msgstr ""
+
+#: app/views/request/new.rhtml:47
+msgid ""
+"Ask for <strong>specific</strong> documents or information, this site is not "
+"suitable for general enquiries."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:31
+msgid ""
+"At the bottom of this page, write a reply to them trying to persuade them to "
+"scan it in\n"
+" (<a href=\"%s\">more details</a>)."
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:33
+msgid "Attachment (optional):"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:70
+msgid ""
+"Authority has replied but the response <strong>does not correspond to the "
+"request</strong>"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:43
+msgid "Authority has requested <strong>extension of the deadline.</strong>"
+msgstr ""
+
+#: app/views/request/new.rhtml:43
+msgid ""
+"Browse <a href=\"%s\">other requests</a> for examples of how to word your "
+"request."
+msgstr ""
+
+#: app/views/request/new.rhtml:41
+msgid ""
+"Browse <a href='%s'>other requests</a> to '{{public_body_name}}' for "
+"examples of how to word your request."
+msgstr ""
+
+#: app/views/request/show.rhtml:79
+msgid ""
+"By law, under all circumstances, {{public_body_link}} should have responded "
+"by now"
+msgstr ""
+
+#: app/views/request/show.rhtml:71
+msgid ""
+"By law, {{public_body_link}} should normally have responded "
+"<strong>promptly</strong> and"
+msgstr ""
+
#: app/views/general/search.rhtml:17
msgid ""
"Can't find it? <a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add "
"it</a>."
msgstr ""
-#: locale/model_attributes.rb:39
+#: locale/model_attributes.rb:46
msgid "CensorRule|Last edit comment"
msgstr ""
-#: locale/model_attributes.rb:38
+#: locale/model_attributes.rb:45
msgid "CensorRule|Last edit editor"
msgstr ""
-#: locale/model_attributes.rb:37
+#: locale/model_attributes.rb:44
msgid "CensorRule|Replacement"
msgstr ""
-#: locale/model_attributes.rb:36
+#: locale/model_attributes.rb:43
msgid "CensorRule|Text"
msgstr ""
+#: lib/public_body_categories_sq.rb:14 lib/public_body_categories_sr.rb:14
+#: lib/public_body_categories_en.rb:14
+msgid "Central government"
+msgstr ""
+
+#: app/views/user/signchangepassword.rhtml:27
+msgid "Change password on {{site_name}}"
+msgstr ""
+
+#: app/views/user/show.rhtml:104
+msgid "Change profile photo"
+msgstr ""
+
+#: app/views/user/set_profile_about_me.rhtml:1
+msgid "Change the text about you on your profile at WhatDoTheyKnow.com"
+msgstr ""
+
+#: app/views/user/show.rhtml:107
+msgid "Change your email"
+msgstr ""
+
+#: app/views/user/signchangeemail.rhtml:1
+#: app/views/user/signchangeemail.rhtml:11
+msgid "Change your email address used on {{site_name}}"
+msgstr ""
+
+#: app/views/user/show.rhtml:106
+msgid "Change your password"
+msgstr ""
+
+#: app/views/user/signchangepassword_send_confirm.rhtml:1
+#: app/views/user/signchangepassword_send_confirm.rhtml:9
+#: app/views/user/signchangepassword.rhtml:1
+#: app/views/user/signchangepassword.rhtml:11
+msgid "Change your password on {{site_name}}"
+msgstr ""
+
#: app/views/public_body/show.rhtml:16 app/views/public_body/show.rhtml:18
msgid "Charity registration"
msgstr ""
-#: locale/model_attributes.rb:22
+#: app/views/general/exception_caught.rhtml:6
+msgid "Check for mistakes if you typed or copied the address."
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:14
+#: app/views/request/preview.rhtml:7
+msgid "Check you haven't included any <strong>personal information</strong>."
+msgstr ""
+
+#: app/views/request_mailer/very_overdue_alert.rhtml:6
+msgid ""
+"Click on the link below to send a message to {{public_body.name}} telling "
+"them to reply to your request. You might like to ask for an internal\n"
+"review, asking them to find out why response to the request has been so slow."
+msgstr ""
+
+#: app/views/request_mailer/overdue_alert.rhtml:5
+msgid ""
+"Click on the link below to send a message to {{public_body}} reminding them "
+"to reply to your request."
+msgstr ""
+
+#: locale/model_attributes.rb:28
msgid "Comment|Body"
msgstr ""
-#: locale/model_attributes.rb:21
+#: locale/model_attributes.rb:27
msgid "Comment|Comment type"
msgstr ""
-#: locale/model_attributes.rb:24
+#: locale/model_attributes.rb:30
msgid "Comment|Locale"
msgstr ""
-#: locale/model_attributes.rb:23
+#: locale/model_attributes.rb:29
msgid "Comment|Visible"
msgstr ""
-#: app/views/layouts/default.rhtml:144
+#: app/views/layouts/default.rhtml:147
msgid "Contact {{site_name}}"
msgstr ""
@@ -152,24 +546,102 @@ msgid ""
"many other common image file formats are supported."
msgstr ""
+#: app/views/request/new.rhtml:74
+msgid ""
+"Cultural sites and built structures (as they may be affected by the\n"
+" environmental factors listed above)"
+msgstr ""
+
+#: app/views/request/show.rhtml:61
+msgid ""
+"Currently <strong>waiting for a response</strong> from {{public_body_link}}, "
+"they must respond promptly and"
+msgstr ""
+
+#: app/views/request/details.rhtml:1 app/views/request/details.rhtml:2
+msgid "Details of request '"
+msgstr ""
+
#: app/views/general/search.rhtml:50 app/views/general/search.rhtml:62
msgid "Did you mean: {{correction}}"
msgstr ""
+#: app/views/outgoing_mailer/followup.rhtml:6
+#: app/views/outgoing_mailer/initial_request.rhtml:4
+msgid ""
+"Disclaimer: This message and any reply that you make will be published on "
+"the internet. Our privacy and copyright policies:"
+msgstr ""
+
+#: app/views/request/_view_html_prefix.rhtml:6
+msgid "Download original attachment"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:89
+msgid ""
+"Edit and add <strong>more details</strong> to the message above,\n"
+" explaining why you are dissatisfied with their response."
+msgstr ""
+
#: app/views/admin_public_body/_locale_selector.rhtml:2
msgid "Edit language version:"
msgstr ""
-#: app/views/comment/_comment_form.rhtml:8
+#: app/views/user/set_profile_about_me.rhtml:9
+msgid "Edit text about you"
+msgstr ""
+
+#: app/views/comment/_comment_form.rhtml:9
msgid "Email me future updates to this request"
msgstr ""
-#: app/views/general/search.rhtml:123
+#: app/views/user/show.rhtml:36
+msgid "Email subscriptions"
+msgstr ""
+
+#: app/views/general/search.rhtml:111
msgid ""
"Enter words that you want to find separated by spaces, e.g. <strong>climbing "
"lane</strong>"
msgstr ""
+#: app/views/request/upload_response.rhtml:23
+msgid ""
+"Enter your response below. You may attach one file (use email, or \n"
+"<a href=\"%s\">contact us</a> if you need more)."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:98
+msgid "Environmental Information Regulations requests made"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:70
+msgid "Environmental Information Regulations requests made using this site"
+msgstr ""
+
+#: app/views/request/details.rhtml:4
+msgid "Event history"
+msgstr ""
+
+#: app/views/request/_sidebar.rhtml:41
+msgid "Event history details"
+msgstr ""
+
+#: app/views/request/new.rhtml:128
+msgid ""
+"Everything that you enter on this page \n"
+" will be <strong>displayed publicly</strong> on\n"
+" this website forever (<a href=\"%s\">why?</a>)."
+msgstr ""
+
+#: app/views/request/new.rhtml:120
+msgid ""
+"Everything that you enter on this page, including <strong>your name</"
+"strong>, \n"
+" will be <strong>displayed publicly</strong> on\n"
+" this website forever (<a href=\"%s\">why?</a>)."
+msgstr ""
+
#: locale/model_attributes.rb:61
msgid "EximLogDone|Filename"
msgstr ""
@@ -178,18 +650,26 @@ msgstr ""
msgid "EximLogDone|Last stat"
msgstr ""
-#: locale/model_attributes.rb:19
+#: locale/model_attributes.rb:16
msgid "EximLog|Line"
msgstr ""
-#: locale/model_attributes.rb:18
+#: locale/model_attributes.rb:15
msgid "EximLog|Order"
msgstr ""
-#: app/views/general/search.rhtml:101
+#: app/views/public_body/view_email.rhtml:3
+msgid "FOI email address for {{public_body}}"
+msgstr ""
+
+#: app/views/user/show.rhtml:33
+msgid "FOI requests"
+msgstr ""
+
+#: app/views/general/search.rhtml:90
msgid ""
"FOI requests {{start_count}} to {{end_count}} of {{total_count}} for "
-"&#x2018;{{user_search_query}}&#x2019;"
+"{{user_search_query}}"
msgstr ""
#: app/models/profile_photo.rb:101
@@ -202,6 +682,10 @@ msgid ""
"{width}x%{height}"
msgstr ""
+#: app/views/request/new.rhtml:21
+msgid "First,"
+msgstr ""
+
#: app/views/general/frontpage.rhtml:8
msgid ""
"First, type in the <strong>name of the UK public authority</strong> you'd \n"
@@ -210,39 +694,97 @@ msgid ""
" (<a href=\"%s\">why?</a>)."
msgstr ""
-#: app/views/public_body/show.rhtml:60
+#: app/views/request_mailer/old_unclassified_updated.rhtml:8
+msgid "Follow this link to see the request:"
+msgstr ""
+
+#: app/views/public_body/view_email.rhtml:14
+msgid "Follow up messages to existing requests are sent to "
+msgstr ""
+
+#: app/views/request/_followup.rhtml:16
+msgid ""
+"Follow ups and new responses to this request have been stopped to prevent "
+"spam. Please\n"
+" <a href=\"%s\">contact us</a> if you are {{user_link}} and need to "
+"send a follow up."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:62
msgid ""
"For an unknown reason, it is not possible to make a request to this "
"authority."
msgstr ""
-#: app/views/public_body/show.rhtml:55
+#: app/views/user/_signin.rhtml:21
+msgid "Forgotten your password?"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:57
msgid ""
"Freedom of Information law does not apply to this authority, so you cannot "
"make\n"
" a request to it."
msgstr ""
-#: app/views/public_body/show.rhtml:97
+#: app/views/request/followup_bad.rhtml:11
+msgid "Freedom of Information law no longer applies to"
+msgstr ""
+
+#: app/views/public_body/view_email.rhtml:10
+msgid ""
+"Freedom of Information law no longer applies to this authority.Follow up "
+"messages to existing requests are sent to "
+msgstr ""
+
+#: app/views/user/show.rhtml:128
+msgid "Freedom of Information request"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:100
msgid "Freedom of Information requests made"
msgstr ""
-#: app/views/public_body/show.rhtml:71
+#: app/views/user/show.rhtml:121 app/views/user/show.rhtml:140
+msgid "Freedom of Information requests made by"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:74
msgid "Freedom of Information requests made using this site"
msgstr ""
-#: app/views/layouts/default.rhtml:120
+#: app/views/request/followup_bad.rhtml:12
+msgid ""
+"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=\"%s\">send it "
+"to us</a>."
+msgstr ""
+
+#: app/views/layouts/default.rhtml:123
msgid "Hello!"
msgstr ""
-#: app/views/layouts/default.rhtml:117
+#: app/views/layouts/default.rhtml:120
msgid "Hello, {{username}}!"
msgstr ""
-#: app/views/layouts/default.rhtml:112
+#: app/views/layouts/default.rhtml:115
msgid "Help"
msgstr ""
+#: app/views/request/details.rhtml:50
+msgid ""
+"Here <strong>described</strong> means when a user selected a status for the "
+"request, and\n"
+"the most recent event had its status updated to that value. "
+"<strong>calculated</strong> is then inferred by\n"
+"WhatDoTheyKnow for intermediate events, which weren't given an explicit\n"
+"description by a user. See the <a href=\"%s\">search tips</a> for "
+"description of the states."
+msgstr ""
+
#: locale/model_attributes.rb:58
msgid "Holiday|Day"
msgstr ""
@@ -251,10 +793,172 @@ msgstr ""
msgid "Holiday|Description"
msgstr ""
-#: app/views/public_body/show.rhtml:8
+#: app/views/public_body/show.rhtml:7
msgid "Home page of authority"
msgstr ""
+#: app/views/request/new.rhtml:63
+msgid ""
+"However, you have the right to request environmental\n"
+" information under a different law"
+msgstr ""
+
+#: app/views/request/new.rhtml:73
+msgid "Human health and safety"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:72
+msgid "I am asking for <strong>new information</strong>"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:77
+msgid "I am requesting an <strong>internal review</strong>"
+msgstr ""
+
+#: app/views/request_game/play.rhtml:39
+msgid "I don't like these ones &mdash; give me some more!"
+msgstr ""
+
+#: app/views/request_game/play.rhtml:40
+msgid "I don't want to do any more tidying now!"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:92
+msgid "I would like to <strong>withdraw this request</strong>"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:11
+msgid ""
+"I'm still <strong>waiting</strong> for my information\n"
+" <small>(maybe you got an acknowledgement)</small>"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:18
+msgid "I'm still <strong>waiting</strong> for the internal review"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:32
+msgid "I'm waiting for an <strong>internal review</strong> response"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:25
+msgid "I've been asked to <strong>clarify</strong> my request"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:62
+msgid "I've received <strong>all the information"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:58
+msgid "I've received <strong>some of the information</strong>"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:77
+msgid "I've received an <strong>error message</strong>"
+msgstr ""
+
+#: app/views/public_body/view_email.rhtml:28
+msgid ""
+"If the address is wrong, or you know a better address, please <a href=\"%s"
+"\">contact us</a>."
+msgstr ""
+
+#: app/views/request_mailer/stopped_responses.rhtml:10
+msgid ""
+"If this is incorrect, or you would like to send a late response to the "
+"request\n"
+"or an email on another subject to {{user}}, then please\n"
+"email {{contact_email}} for help."
+msgstr ""
+
+#: app/views/request/_followup.rhtml:21
+msgid ""
+"If you are dissatisfied by the response you got from\n"
+" the public authority, you have the right to\n"
+" complain (<a href=\"%s\">details</a>)."
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:20
+msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
+msgstr ""
+
+#: app/views/request/hidden.rhtml:15
+msgid ""
+"If you are the requester, then you may <a href=\"%s\">sign in</a> to view "
+"the request."
+msgstr ""
+
+#: app/views/request/new.rhtml:123
+msgid ""
+"If you are thinking of using a pseudonym,\n"
+" please <a href=\"%s\">read this first</a>."
+msgstr ""
+
+#: app/views/request/show.rhtml:104
+msgid "If you are {{user_link}}, please"
+msgstr ""
+
+#: app/views/user/bad_token.rhtml:7
+msgid ""
+"If you can't click on it in the email, you'll have to <strong>select and "
+"copy\n"
+"it</strong> from the email. Then <strong>paste it into your browser</"
+"strong>, into the place\n"
+"you would type the address of any other webpage."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:49
+msgid ""
+"If you can, scan in or photograph the response, and <strong>send us\n"
+" a copy to upload</strong>."
+msgstr ""
+
+#: app/views/outgoing_mailer/initial_request.rhtml:13
+msgid ""
+"If you find WhatDoTheyKnow useful as an FOI officer, please ask your web "
+"manager to suggest us on your organisation"
+msgstr ""
+
+#: app/views/outgoing_mailer/followup.rhtml:12
+msgid ""
+"If you find WhatDoTheyKnow useful as an FOI officer, please ask your web "
+"manager to suggest us on your organisation's FOI page."
+msgstr ""
+
+#: app/views/user/bad_token.rhtml:13
+msgid ""
+"If you got the email <strong>more than six months ago</strong>, then this "
+"login link won't work any\n"
+"more. Please try doing what you were doing from the beginning."
+msgstr ""
+
+#: app/views/user/signchangeemail_confirm.rhtml:11
+#: app/views/user/signchangepassword_confirm.rhtml:10
+msgid ""
+"If you use web-based email or have \"junk mail\" filters, also check your\n"
+"bulk/spam mail folders. Sometimes, our messages are marked that way."
+msgstr ""
+
+#: app/views/user/banned.rhtml:15
+msgid ""
+"If you would like us to lift this ban, then you may politely\n"
+"<a href=\"/help/contact\">contact us</a> giving reasons.\n"
+msgstr ""
+
+#: app/views/user/_signup.rhtml:6
+msgid "If you're new to WhatDoTheyKnow"
+msgstr ""
+
+#: app/views/user/_signin.rhtml:7
+msgid "If you've used WhatDoTheyKnow before"
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:12
+msgid ""
+"If your browser is set to accept cookies and you are seeing this message,\n"
+"then there is probably a fault with our server."
+msgstr ""
+
#: locale/model_attributes.rb:64
msgid "IncomingMessage|Cached attachment text clipped"
msgstr ""
@@ -267,27 +971,27 @@ msgstr ""
msgid "IncomingMessage|Cached main body text unfolded"
msgstr ""
-#: locale/model_attributes.rb:44
+#: locale/model_attributes.rb:39
msgid "InfoRequestEvent|Calculated state"
msgstr ""
-#: locale/model_attributes.rb:43
+#: locale/model_attributes.rb:38
msgid "InfoRequestEvent|Described state"
msgstr ""
-#: locale/model_attributes.rb:41
+#: locale/model_attributes.rb:36
msgid "InfoRequestEvent|Event type"
msgstr ""
-#: locale/model_attributes.rb:45
+#: locale/model_attributes.rb:40
msgid "InfoRequestEvent|Last described at"
msgstr ""
-#: locale/model_attributes.rb:42
+#: locale/model_attributes.rb:37
msgid "InfoRequestEvent|Params yaml"
msgstr ""
-#: locale/model_attributes.rb:46
+#: locale/model_attributes.rb:41
msgid "InfoRequestEvent|Prominence"
msgstr ""
@@ -323,11 +1027,70 @@ msgstr ""
msgid "InfoRequest|Url title"
msgstr ""
-#: app/views/layouts/default.rhtml:15
+#: app/views/request/new.rhtml:71
+msgid ""
+"Information on emissions and discharges (e.g. noise, energy,\n"
+" radiation, waste materials)"
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:8
+msgid ""
+"It may be that your browser is not set to accept a thing called \"cookies"
+"\",\n"
+"or cannot do so. If you can, please enable cookies, or try using a "
+"different\n"
+"browser. Then press refresh to have another go."
+msgstr ""
+
+#: app/views/user/show.rhtml:62
+msgid "Joined WhatDoTheyKnow"
+msgstr ""
+
+#: app/views/user/_user_listing_single.rhtml:21
+msgid "Joined in"
+msgstr ""
+
+#: app/views/request/new.rhtml:48
+msgid ""
+"Keep it <strong>focused</strong>, you'll be more likely to get what you want "
+"(<a href=\"%s\">why?</a>)."
+msgstr ""
+
+#: app/views/contact_mailer/message.rhtml:10
+msgid "Last authority viewed: "
+msgstr ""
+
+#: app/views/contact_mailer/message.rhtml:7
+msgid "Last request viewed: "
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:17
+msgid ""
+"Let us know what you were doing when this message\n"
+"appeared and your browser and operating system type and version."
+msgstr ""
+
+#: app/views/public_body/list.rhtml:32
+msgid "List of all authorities (CSV)"
+msgstr ""
+
+#: lib/public_body_categories_en.rb:23
+msgid "Local and regional"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:48
+msgid "Make a new Environmental Information request"
+msgstr ""
+
+#: app/views/request/new.rhtml:1
+msgid "Make an {{law_used_short}} request to '{{public_body_name}}'"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:17
msgid "Make and browse Freedom of Information (FOI) requests"
msgstr ""
-#: app/views/layouts/default.rhtml:86
+#: app/views/layouts/default.rhtml:89
msgid "Make and explore Freedom of Information requests"
msgstr ""
@@ -335,34 +1098,78 @@ msgstr ""
msgid "Make or explore Freedom of Information requests"
msgstr ""
-#: app/views/layouts/default.rhtml:105
+#: app/views/layouts/default.rhtml:108
msgid "Make request"
msgstr ""
-#: app/views/public_body/show.rhtml:6
+#: app/views/public_body/_body_listing_single.rhtml:23
+msgid "Make your own request"
+msgstr ""
+
+#: app/views/contact_mailer/message.rhtml:4
+msgid "Message sent using WhatDoTheyKnow contact form, "
+msgstr ""
+
+#: app/views/request/new_bad_contact.rhtml:1
+msgid "Missing contact details for '"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:5
msgid "More about this authority"
msgstr ""
-#: app/views/general/frontpage.rhtml:41
+#: app/views/general/frontpage.rhtml:39
msgid "More authorities..."
msgstr ""
-#: app/views/general/frontpage.rhtml:55
+#: app/views/general/frontpage.rhtml:53
msgid "More successful requests..."
msgstr ""
-#: app/views/layouts/default.rhtml:109
+#: app/views/request/_describe_state.rhtml:66
+msgid "My request has been <strong>refused</strong>"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:112
msgid "My requests"
msgstr ""
+#: app/models/public_body.rb:36
+msgid "Name can't be blank"
+msgstr ""
+
#: app/models/public_body.rb:40
msgid "Name is already taken"
msgstr ""
+#: app/views/user/signchangeemail.rhtml:20
+msgid "New e-mail:"
+msgstr ""
+
+#: app/views/user/signchangepassword.rhtml:15
+msgid "New password:"
+msgstr ""
+
+#: app/views/user/signchangepassword.rhtml:20
+msgid "New password: (again)"
+msgstr ""
+
+#: app/views/request/show_response.rhtml:62
+msgid "New response to your request"
+msgstr ""
+
+#: app/views/request/show_response.rhtml:68
+msgid "New response to {{law_used_short}} request"
+msgstr ""
+
#: app/views/general/search.rhtml:40
msgid "Newest results first"
msgstr ""
+#: app/views/user/set_draft_profile_photo.rhtml:32
+msgid "Next, crop your photo &gt;&gt;"
+msgstr ""
+
#: app/views/general/search.rhtml:16
msgid "Next, select the public authority you'd like to make the request from."
msgstr ""
@@ -371,14 +1178,49 @@ msgstr ""
msgid "No public authorities found"
msgstr ""
-#: app/views/public_body/show.rhtml:72
+#: app/views/request/list.rhtml:23
+msgid "No requests of this sort yet."
+msgstr ""
+
+#: app/views/request/similar.rhtml:7
+msgid "No similar requests found."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:75
msgid ""
"Nobody has made any Freedom of Information requests to {{public_body_name}} "
"using this site yet."
msgstr ""
+#: app/views/request/_request_listing.rhtml:2
+#: app/views/public_body/_body_listing.rhtml:2
+msgid "None found."
+msgstr ""
+
#: app/views/general/search.rhtml:7
-msgid "Nothing found for &#x2018;{{search_terms}}&#x2019;"
+msgid "Nothing found for '{{search_terms}}'"
+msgstr ""
+
+#: app/views/user/signchangeemail_confirm.rhtml:3
+#: app/views/user/signchangepassword_confirm.rhtml:1
+#: app/views/user/signchangepassword_confirm.rhtml:3
+msgid "Now check your email!"
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:10
+msgid "Now preview your follow up"
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:8
+msgid "Now preview your message asking for an internal review"
+msgstr ""
+
+#: app/views/request/preview.rhtml:5
+msgid "Now preview your request"
+msgstr ""
+
+#: app/views/user/set_draft_profile_photo.rhtml:46
+msgid "OR remove the existing photo"
msgstr ""
#: app/views/general/frontpage.rhtml:25
@@ -387,46 +1229,99 @@ msgid ""
"{{site_name}}"
msgstr ""
-#: app/views/general/search.rhtml:99
-msgid "One FOI request matching &#x2018;{{user_search_query}}&#x2019;"
+#: app/views/user/signchangeemail.rhtml:15
+msgid "Old e-mail:"
msgstr ""
-#: app/views/general/search.rhtml:85
-msgid "One person matching &#x2018;{{user_search_query}}&#x2019;"
+#: app/views/user/show.rhtml:32
+msgid "On this page"
msgstr ""
-#: app/views/general/search.rhtml:71
-msgid "One public authority matching &#x2018;{{user_search_query}}&#x2019;"
-msgstr ""
-
-#: app/views/public_body/show.rhtml:90
+#: app/views/public_body/show.rhtml:93
msgid "Only requests made using {{site_name}} are shown."
msgstr ""
-#: locale/model_attributes.rb:26
+#: locale/model_attributes.rb:21
msgid "OutgoingMessage|Body"
msgstr ""
-#: locale/model_attributes.rb:29
+#: locale/model_attributes.rb:24
msgid "OutgoingMessage|Last sent at"
msgstr ""
-#: locale/model_attributes.rb:28
+#: locale/model_attributes.rb:23
msgid "OutgoingMessage|Message type"
msgstr ""
-#: locale/model_attributes.rb:27
+#: locale/model_attributes.rb:22
msgid "OutgoingMessage|Status"
msgstr ""
-#: locale/model_attributes.rb:30
+#: locale/model_attributes.rb:25
msgid "OutgoingMessage|What doing"
msgstr ""
-#: app/views/general/search.rhtml:87
+#: app/views/user/_signup.rhtml:30 app/views/user/_signin.rhtml:16
+msgid "Password:"
+msgstr ""
+
+#: app/views/user/_signup.rhtml:35
+msgid "Password: (again)"
+msgstr ""
+
+#: app/views/general/search.rhtml:80
msgid ""
"People {{start_count}} to {{end_count}} of {{total_count}} for "
-"&#x2018;{{user_search_query}}&#x2019;"
+"{{user_search_query}}"
+msgstr ""
+
+#: app/views/user/set_draft_profile_photo.rhtml:13
+msgid "Photo of you:"
+msgstr ""
+
+#: app/views/request/new.rhtml:76
+msgid "Plans and administrative measures that affect these matters"
+msgstr ""
+
+#: app/views/request_game/play.rhtml:1 app/views/request_game/play.rhtml:30
+msgid "Play the request categorisation game!"
+msgstr ""
+
+#: app/views/request/show.rhtml:100
+msgid "Please"
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:15
+msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
+msgstr ""
+
+#: app/views/request/show.rhtml:45
+msgid ""
+"Please <strong>answer the question above</strong> so we know whether the "
+msgstr ""
+
+#: app/views/user/show.rhtml:12
+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 ""
+
+#: app/views/request/_followup.rhtml:28
+msgid ""
+"Please <strong>only</strong> write messages directly relating to your \n"
+"\t\t\t\trequest {{request_link}}. If you would like to ask for information\n"
+"\t\t\t\tthat was not in your original request, then <a href=\"%s\">file a "
+"new request</a>."
+msgstr ""
+
+#: app/views/request/new.rhtml:60
+msgid "Please ask for environmental information only"
+msgstr ""
+
+#: app/views/user/bad_token.rhtml:2
+msgid ""
+"Please check the URL (i.e. the long code of letters and numbers) is copied\n"
+"correctly from your email."
msgstr ""
#: app/models/profile_photo.rb:91
@@ -437,12 +1332,37 @@ msgstr ""
msgid "Please choose what sort of reply you are making."
msgstr ""
-#: app/models/info_request.rb:104
+#: app/views/track_mailer/event_digest.rhtml:66
+msgid "Please click on the link below to cancel or alter these emails."
+msgstr ""
+
+#: app/views/user_mailer/changeemail_confirm.rhtml:3
+msgid ""
+"Please click on the link below to confirm that you want to \n"
+"change the email address that you use for WhatDoTheyKnow\n"
+"from "
+msgstr ""
+
+#: app/views/user_mailer/confirm_login.rhtml:3
+msgid "Please click on the link below to confirm your email address."
+msgstr ""
+
+#: app/models/info_request.rb:106
msgid ""
"Please describe more what the request is about in the subject. There is no "
"need to say it is an FOI request, we add that on anyway."
msgstr ""
+#: app/views/user/set_draft_profile_photo.rhtml:22
+msgid ""
+"Please don't upload offensive pictures. We will take down images\n"
+" that we consider inappropriate."
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:3
+msgid "Please enable \"cookies\" to carry on"
+msgstr ""
+
#: app/models/user.rb:38
msgid "Please enter a password"
msgstr ""
@@ -491,15 +1411,15 @@ msgstr ""
msgid "Please enter your name, not your email address, in the name field."
msgstr ""
-#: app/models/change_email_validator.rb:30
+#: app/models/change_email_validator.rb:29
msgid "Please enter your new email address"
msgstr ""
-#: app/models/change_email_validator.rb:29
+#: app/models/change_email_validator.rb:28
msgid "Please enter your old email address"
msgstr ""
-#: app/models/change_email_validator.rb:31
+#: app/models/change_email_validator.rb:30
msgid "Please enter your password"
msgstr ""
@@ -511,23 +1431,47 @@ msgstr ""
msgid "Please keep it shorter than 500 characters"
msgstr ""
-#: app/models/info_request.rb:101
+#: app/models/info_request.rb:103
msgid ""
"Please keep the summary short, like in the subject of an email. You can use "
"a phrase, rather than a full sentence."
msgstr ""
+#: app/views/request/new.rhtml:79
+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 ""
+
+#: app/views/request/new_please_describe.rhtml:5
+msgid ""
+"Please select each of these requests in turn, and <strong>let everyone know</"
+"strong>\n"
+"if they are successful yet or not."
+msgstr ""
+
#: app/models/outgoing_message.rb:156
msgid ""
"Please sign at the bottom with your name, or alter the \"%{signoff}\" "
"signature"
msgstr ""
+#: app/views/user/sign.rhtml:8
+msgid "Please sign in as "
+msgstr ""
+
+#: app/views/outgoing_mailer/followup.rhtml:9
+#: app/views/outgoing_mailer/initial_request.rhtml:7
+msgid "Please use this email address for all replies to this request:"
+msgstr ""
+
#: app/models/info_request.rb:36
msgid "Please write a summary with some text in it"
msgstr ""
-#: app/models/info_request.rb:98
+#: app/models/info_request.rb:100
msgid ""
"Please write the summary using a mixture of capital and lower case letters. "
"This makes it easier for others to read."
@@ -545,6 +1489,12 @@ msgid ""
"This makes it easier for others to read."
msgstr ""
+#: app/views/comment/new.rhtml:41
+msgid ""
+"Point to <strong>related information</strong>, campaigns or forums which may "
+"be useful."
+msgstr ""
+
#: locale/model_attributes.rb:56
msgid "PostRedirect|Circumstance"
msgstr ""
@@ -569,21 +1519,39 @@ msgstr ""
msgid "PostRedirect|Uri"
msgstr ""
-#: locale/model_attributes.rb:15
+#: app/views/request/followup_preview.rhtml:1
+msgid "Preview follow up to '"
+msgstr ""
+
+#: app/views/comment/_comment_form.rhtml:16
+msgid "Preview your annotation"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:100
+msgid "Preview your message"
+msgstr ""
+
+#: app/views/request/new.rhtml:143
+msgid "Preview your public request"
+msgstr ""
+
+#: locale/model_attributes.rb:18
msgid "ProfilePhoto|Data"
msgstr ""
-#: locale/model_attributes.rb:16
+#: locale/model_attributes.rb:19
msgid "ProfilePhoto|Draft"
msgstr ""
-#: app/views/general/search.rhtml:73
+#: app/views/public_body/list.rhtml:37
+msgid "Public authorities - {{description}}"
+msgstr ""
+
+#: app/views/general/search.rhtml:70
msgid ""
"Public authorities {{start_count}} to {{end_count}} of {{total_count}} for "
"{{user_search_query}}"
msgstr ""
-"Public authorities {{start_count}} to {{end_count}} of {{total_count}} for "
-"&#x2018;{{user_search_query}}&#x2019;"
#: locale/model_attributes.rb:12
msgid "PublicBody|First letter"
@@ -629,7 +1597,7 @@ msgstr ""
msgid "PublicBody|Version"
msgstr ""
-#: app/views/public_body/show.rhtml:11
+#: app/views/public_body/show.rhtml:10
msgid "Publication scheme"
msgstr ""
@@ -641,26 +1609,133 @@ msgstr ""
msgid "RawEmail|Data text"
msgstr ""
-#: app/views/general/search.rhtml:137
+#: app/views/request/followup_preview.rhtml:49
+msgid "Re-edit this message"
+msgstr ""
+
+#: app/views/request/preview.rhtml:40
+msgid "Re-edit this request"
+msgstr ""
+
+#: app/views/general/search.rhtml:125
msgid ""
"Read about <a href=\"%s\">advanced search operators</a>, such as proximity "
"and wildcards."
msgstr ""
-#: app/views/layouts/default.rhtml:111
+#: app/views/layouts/default.rhtml:114
msgid "Read blog"
msgstr ""
+#: app/views/request/new.rhtml:16
+msgid "Read this before writing your {{info_request_law_used_full}} request"
+msgstr ""
+
#: app/views/general/search.rhtml:42
msgid "Recently described results first"
msgstr ""
+#: app/controllers/request_controller.rb:122
+msgid "Recently sent Freedom of Information requests"
+msgstr ""
+
+#: app/views/request/list.rhtml:6
+msgid "Recently sent requests"
+msgstr ""
+
+#: app/controllers/request_controller.rb:127
+msgid "Recently successful responses"
+msgstr ""
+
+#: app/views/user/_signin.rhtml:26
+msgid ""
+"Remember me</label> (keeps you signed in longer;\n"
+" do not use on a public computer) "
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:27
+msgid "Reply to "
+msgstr ""
+
+#: app/views/comment/_single_comment.rhtml:24
+msgid "Report abuse"
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:37
+msgid "Request an internal review"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:4
+msgid "Request an internal review from"
+msgstr ""
+
+#: app/views/request/hidden.rhtml:1
+msgid "Request has been removed"
+msgstr ""
+
+#: app/views/request/_request_listing_via_event.rhtml:28
+msgid ""
+"Request sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
+msgstr ""
+
+#: app/views/request/_request_listing_via_event.rhtml:36
+msgid ""
+"Request to {{public_body_name}} by {{info_request_user}}. Annotated by "
+"{{event_comment_user}} on {{date}}."
+msgstr ""
+
+#: app/views/request/_request_listing_single.rhtml:12
+msgid ""
+"Requested from {{public_body_name}} by {{info_request_user}} on {{date}}"
+msgstr ""
+
+#: app/views/request/_sidebar_request_listing.rhtml:13
+msgid "Requested on {{date}}"
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:11
+msgid "Respond by email"
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:46
+msgid "Respond to request"
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:5
+msgid "Respond to the FOI request"
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:21
+msgid "Respond using the web"
+msgstr ""
+
+#: app/views/request/show.rhtml:70
+msgid "Response to this request is <strong>delayed</strong>."
+msgstr ""
+
+#: app/views/request/show.rhtml:78
+msgid "Response to this request is <strong>long overdue</strong>."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:64
+msgid "Response to your request"
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:28
+msgid "Response:"
+msgstr ""
+
#: app/views/general/search.rhtml:9
msgid "Results page {{page_number}}"
msgstr ""
-#: app/views/layouts/default.rhtml:99 app/views/general/frontpage.rhtml:16
-#: app/views/general/search.rhtml:29
+#: app/views/user/set_profile_about_me.rhtml:35
+msgid "Save"
+msgstr ""
+
+#: app/views/general/search.rhtml:29 app/views/general/frontpage.rhtml:16
+#: app/views/general/exception_caught.rhtml:10 app/views/request/new.rhtml:31
+#: app/views/layouts/default.rhtml:102
msgid "Search"
msgstr ""
@@ -668,6 +1743,38 @@ msgstr ""
msgid "Search Freedom of Information requests, public authorities and users"
msgstr ""
+#: app/views/general/exception_caught.rhtml:7
+msgid "Search the site to find what you were looking for."
+msgstr ""
+
+#: app/views/request/_followup.rhtml:7
+msgid "Send a public follow up message to"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:10
+msgid "Send a public reply to"
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:24
+msgid "Send follow up to "
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:50
+msgid "Send message"
+msgstr ""
+
+#: app/views/user/show.rhtml:69
+msgid "Send message to "
+msgstr ""
+
+#: app/views/request/preview.rhtml:41
+msgid "Send public "
+msgstr ""
+
+#: app/views/user/show.rhtml:53
+msgid "Set your profile photo"
+msgstr ""
+
#: app/models/public_body.rb:39
msgid "Short name is already taken"
msgstr ""
@@ -676,32 +1783,443 @@ msgstr ""
msgid "Show most relevant results first"
msgstr ""
-#: app/views/layouts/default.rhtml:121
+#: app/views/request/list.rhtml:2 app/views/public_body/list.rhtml:3
+msgid "Show only..."
+msgstr ""
+
+#: app/views/user/show.rhtml:113 app/views/user/_signin.rhtml:31
+msgid "Sign in"
+msgstr ""
+
+#: app/views/user/sign.rhtml:20
+msgid "Sign in or make a new account"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:124
msgid "Sign in or sign up"
msgstr ""
-#: app/views/layouts/default.rhtml:118
+#: app/views/layouts/default.rhtml:121
msgid "Sign out"
msgstr ""
-#: app/views/general/search.rhtml:140
+#: app/views/user/_signup.rhtml:41
+msgid "Sign up"
+msgstr ""
+
+#: app/views/request/_sidebar.rhtml:30
+msgid "Similar requests"
+msgstr ""
+
+#: app/views/request_game/play.rhtml:31
+msgid ""
+"Some people who've made requests haven't let us know whether they were\n"
+"successful or not. We need <strong>your</strong> help &ndash;\n"
+"choose one of these requests, read it, and let everyone know whether or not "
+"the\n"
+"information has been provided. Everyone'll be exceedingly grateful."
+msgstr ""
+
+#: app/views/user_mailer/changeemail_already_used.rhtml:1
+msgid ""
+"Someone, perhaps you, just tried to change their email address on\n"
+"WhatDoTheyKnow.com from "
+msgstr ""
+
+#: app/views/general/exception_caught.rhtml:1
+msgid "Sorry, we couldn't find that page"
+msgstr ""
+
+#: app/views/request/new.rhtml:53
+msgid "Special note for this authority!"
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:23
+#: app/views/request/preview.rhtml:18
+msgid "Subject:"
+msgstr ""
+
+#: app/views/user/signchangepassword_send_confirm.rhtml:26
+msgid "Submit"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:102
+msgid "Submit status"
+msgstr ""
+
+#: app/views/request/list.rhtml:5
+msgid "Successful responses"
+msgstr ""
+
+#: app/views/comment/new.rhtml:38
+msgid ""
+"Suggest how the requester can find the <strong>rest of the information</"
+"strong>."
+msgstr ""
+
+#: app/views/request/new.rhtml:93
+msgid "Summary:"
+msgstr ""
+
+#: app/views/general/search.rhtml:128
msgid "Table of statuses"
msgstr ""
-#: app/views/public_body/show.rhtml:99
+#: app/views/request/preview.rhtml:45
+msgid "Tags:"
+msgstr ""
+
+#: app/views/request_game/play.rhtml:42
+msgid ""
+"Thanks for helping - your work will make it easier for everyone to find "
+"successful\n"
+"responses, and maybe even let us make league tables..."
+msgstr ""
+
+#: app/views/user/show.rhtml:20
+msgid ""
+"Thanks very much - this will help others find useful stuff. We'll\n"
+" also, if you need it, give advice on what to do next about your\n"
+" requests."
+msgstr ""
+
+#: app/views/request/new_please_describe.rhtml:20
+msgid ""
+"Thanks very much for helping keep everything <strong>neat and organised</"
+"strong>.\n"
+" We'll also, if you need it, give you advice on what to do next about "
+"each of your\n"
+" requests."
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:49
+msgid "The <strong>review has finished</strong> and overall:"
+msgstr ""
+
+#: app/views/request/new.rhtml:62
+msgid "The Freedom of Information Act <strong>does not apply</strong> to"
+msgstr ""
+
+#: app/views/user_mailer/changeemail_already_used.rhtml:7
+msgid "The accounts have been left as they previously were."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:28
+msgid ""
+"The authority only has a <strong>paper copy</strong> of the information."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:18
+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 ""
+
+#: app/views/request/show.rhtml:108
+msgid ""
+"The authority would like to / has <strong>responded by post</strong> to this "
+"request."
+msgstr ""
+
+#: app/views/request_mailer/stopped_responses.rhtml:1
+msgid ""
+"The email that you, on behalf of {{public_body}}, sent to\n"
+"{{user}} to reply to an {{law_used_short}}\n"
+"request has not been delivered."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:22
+msgid ""
+"The law, the Ministry of Justice and the Information Commissioner\n"
+" all say that an email is sufficient (<a href=\"%s\">more "
+"details</a>).\n"
+" At the bottom of this page, write a reply to the authority "
+"explaining this to them."
+msgstr ""
+
+#: app/views/general/exception_caught.rhtml:3
+msgid "The page either doesn't exist, or is broken. Things you can try now:"
+msgstr ""
+
+#: app/views/request/show.rhtml:103
+msgid "The request is <strong>waiting for clarification</strong>."
+msgstr ""
+
+#: app/views/request/show.rhtml:96
+msgid "The request was <strong>partially successful</strong>."
+msgstr ""
+
+#: app/views/request/show.rhtml:86
+msgid "The request was <strong>refused</strong> by"
+msgstr ""
+
+#: app/views/request/show.rhtml:88
+msgid "The request was <strong>successful</strong>."
+msgstr ""
+
+#: app/views/request/hidden.rhtml:9
+msgid ""
+"The request you have tried to view has been removed. There are\n"
+"various reasons why we might have done this, sorry we can't be more specific "
+"here. Please <a\n"
+" href=\"%s\">contact us</a> if you have any questions."
+msgstr ""
+
+#: app/views/request/_followup.rhtml:35
+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 ""
+
+#: app/views/request/_followup.rhtml:47
+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 ""
+
+#: app/views/public_body/show.rhtml:102
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 ""
-#: app/views/public_body/show.rhtml:58
+#: app/views/user/show.rhtml:141
+msgid ""
+"The search index is currently offline, so we can't show the Freedom of "
+"Information requests this person has made."
+msgstr ""
+
+#: app/views/request_mailer/comment_on_alert_plural.rhtml:1
+msgid ""
+"There are {{count}} new annotations on your {{info_request}} request. Follow "
+"this link to see what they wrote."
+msgstr ""
+
+#: app/views/user/show.rhtml:4
+msgid ""
+"There is <strong>more than one person</strong> who uses this site and has "
+"this name. \n"
+" One of them is shown below, you may mean a different one:"
+msgstr ""
+
+#: app/views/request/show.rhtml:112
+msgid ""
+"There was a <strong>delivery error</strong> or similar, which needs fixing "
+"by the WhatDoTheyKnow team."
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:38
+msgid "They are going to reply <strong>by post</strong>"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:54
+msgid ""
+"They do <strong>not have</strong> the information <small>(maybe they say who "
+"does)</small>"
+msgstr ""
+
+#: app/views/user/show.rhtml:83
+msgid "They have been given the following explanation:"
+msgstr ""
+
+#: app/views/request_mailer/overdue_alert.rhtml:3
+msgid ""
+"They have not replied to your {{law_used_short}} request {{title}} promptly, "
+"as normally required by law"
+msgstr ""
+
+#: app/views/request_mailer/very_overdue_alert.rhtml:3
+msgid ""
+"They have not replied to your {{law_used_short}} request {{title}}, \n"
+"as required by law"
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:3
+msgid "Things to do with this request"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:60
msgid "This authority no longer exists, so you cannot make a request to it."
msgstr ""
-#: app/views/public_body/show.rhtml:4
+#: app/views/request/_hidden_correspondence.rhtml:23
+msgid ""
+"This comment has been hidden. See annotations to\n"
+" find out why. If you are the requester, then you may <a href=\"%"
+"s\">sign in</a> to view the response."
+msgstr ""
+
+#: app/views/request/new.rhtml:65
+msgid ""
+"This covers a very wide spectrum of information about the state of\n"
+" the <strong>natural and built environment</strong>, such as:"
+msgstr ""
+
+#: app/views/request/_view_html_prefix.rhtml:9
+msgid ""
+"This is an HTML version of an attachment to the Freedom of Information "
+"request"
+msgstr ""
+
+#: app/views/request_mailer/stopped_responses.rhtml:5
+msgid ""
+"This is because {{title}} is an old request that has been\n"
+"marked to no longer receive responses."
+msgstr ""
+
+#: app/views/track/_tracking_links.rhtml:9
+msgid ""
+"This is your own request, so you will be automatically emailed when new "
+"responses arrive."
+msgstr ""
+
+#: app/views/request/_hidden_correspondence.rhtml:17
+msgid ""
+"This outgoing message has been hidden. See annotations to\n"
+"\t\t\t\t\t\tfind out why. If you are the requester, then you may <a href=\"%"
+"s\">sign in</a> to view the response."
+msgstr ""
+
+#: app/views/user/show.rhtml:122
+msgid "This person has"
+msgstr ""
+
+#: app/views/user/show.rhtml:152
+msgid "This person's"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:85
+msgid "This request <strong>requires administrator attention</strong>"
+msgstr ""
+
+#: app/views/request/show.rhtml:48
+msgid "This request has an <strong>unknown status</strong>."
+msgstr ""
+
+#: app/views/request/show.rhtml:116
+msgid ""
+"This request has been <strong>withdrawn</strong> by the person who made "
+"it. \n"
+" \t There may be an explanation in the correspondence below."
+msgstr ""
+
+#: app/views/request/show.rhtml:114
+msgid ""
+"This request has had an unusual response, and <strong>requires attention</"
+"strong> from the WhatDoTheyKnow team."
+msgstr ""
+
+#: app/views/request/show.rhtml:5
+msgid ""
+"This request has prominence 'hidden'. You can only see it because you are "
+"logged\n"
+" in as a super user."
+msgstr ""
+
+#: app/views/request/show.rhtml:11
+msgid ""
+"This request is hidden, so that only you the requester can see it. Please\n"
+" <a href=\"%s\">contact us</a> if you are not sure why."
+msgstr ""
+
+#: app/views/request/_hidden_correspondence.rhtml:10
+msgid ""
+"This response has been hidden. See annotations to find out why.\n"
+" If you are the requester, then you may <a href=\"%s\">sign in</"
+"a> to view the response."
+msgstr ""
+
+#: app/views/request/new.rhtml:49
+msgid ""
+"This site is <strong>public</strong>. Everything you type and any response "
+"will be published."
+msgstr ""
+
+#: app/views/request/details.rhtml:6
+msgid ""
+"This table shows the technical details of the internal events that happened\n"
+"to this request on WhatDoTheyKnow. This could be used to generate "
+"information about\n"
+"the speed with which authorities respond to requests, the number of "
+"requests\n"
+"which require a postal response and much more."
+msgstr ""
+
+#: app/views/user/show.rhtml:79
+msgid "This user has been banned from WhatDoTheyKnow.com "
+msgstr ""
+
+#: app/views/user_mailer/changeemail_already_used.rhtml:4
+msgid ""
+"This was not possible because there is already an account using \n"
+"the email address "
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:5
+msgid ""
+"To carry on, you need to sign in or make an account. Unfortunately, there\n"
+"was a technical problem trying to do this."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:39
+msgid "To do that please send a private email to "
+msgstr ""
+
+#: app/views/request_mailer/not_clarified_alert.rhtml:2
+msgid "To do this, first click on the link below."
+msgstr ""
+
+#: app/views/request_mailer/old_unclassified_updated.rhtml:1
+msgid ""
+"To help us keep the site tidy, someone else has updated the status of the \n"
+"{{law_used_full}} request {{title}} \n"
+"that you made to {{public_body}}, to \n"
+"{{display_status}} If you disagree with \n"
+"their categorisation, please update the status again yourself to what\n"
+"you believe to be more accurate."
+msgstr ""
+
+#: app/views/request_mailer/new_response_reminder_alert.rhtml:1
+msgid "To let us know, follow this link and then select the appropriate box."
+msgstr ""
+
+#: app/views/public_body/view_email_captcha.rhtml:5
+msgid ""
+"To view the email address that we use to send FOI requests to "
+"{{@public_body_name}}, please enter these words."
+msgstr ""
+
+#: app/views/request_mailer/new_response.rhtml:5
+msgid "To view the response, click on the link below."
+msgstr ""
+
+#: app/views/request/_request_listing_short_via_event.rhtml:9
+msgid "To {{public_body_link_absolute}}"
+msgstr ""
+
+#: app/views/request/new.rhtml:88 app/views/request/followup_preview.rhtml:22
+#: app/views/request/preview.rhtml:17
+msgid "To:"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:3
msgid "Track this authority"
msgstr ""
+#: app/views/user/show.rhtml:29
+msgid "Track this person"
+msgstr ""
+
+#: app/views/request/_sidebar.rhtml:2
+msgid "Track this request"
+msgstr ""
+
#: locale/model_attributes.rb:33
msgid "TrackThing|Track medium"
msgstr ""
@@ -714,19 +2232,61 @@ msgstr ""
msgid "TrackThing|Track type"
msgstr ""
-#: app/views/general/search.rhtml:133
+#: app/views/general/search.rhtml:121
msgid ""
"Type <strong><code>01/01/2008..14/01/2008</code></strong> to only show "
"things that happened in the first two weeks of January."
msgstr ""
-#: app/views/general/search.rhtml:124
+#: app/models/public_body.rb:37
+msgid "URL name can't be blank"
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:4
+msgid "Unable to send a reply to {{username}}"
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:2
+msgid "Unable to send follow up message to {{username}}"
+msgstr ""
+
+#: app/views/request/list.rhtml:29
+msgid "Unexpected search result type"
+msgstr ""
+
+#: app/views/request/similar.rhtml:18
+msgid "Unexpected search result type "
+msgstr ""
+
+#: app/views/user/wrong_user_unknown_email.rhtml:3
+msgid ""
+"Unfortunately we don't know the FOI\n"
+"email address for that authority, so we can't validate this.\n"
+"Please <a href=\"%s\">contact us</a> to sort it out."
+msgstr ""
+
+#: app/views/request/new_bad_contact.rhtml:5
+msgid ""
+"Unfortunately, we do not have a working {{info_request_law_used_full}}\n"
+"address for"
+msgstr ""
+
+#: app/views/general/exception_caught.rhtml:18
+msgid "Unknown"
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:13
+#: app/views/request/_after_actions.rhtml:33
+msgid "Update the status of this request"
+msgstr ""
+
+#: app/views/general/search.rhtml:112
msgid ""
"Use OR (in capital letters) where you don't mind which word, e.g. "
"<strong><code>commons OR lords</code></strong>"
msgstr ""
-#: app/views/general/search.rhtml:125
+#: app/views/general/search.rhtml:113
msgid ""
"Use quotes when you want to find an exact phrase, e.g. <strong><code>"
"\"Liverpool City Council\"</code></strong>"
@@ -780,44 +2340,410 @@ msgstr ""
msgid "View FOI email address"
msgstr ""
-#: app/views/layouts/default.rhtml:107
+#: app/views/public_body/view_email_captcha.rhtml:1
+msgid "View FOI email address for '{{public_body_name}}'"
+msgstr ""
+
+#: app/views/public_body/view_email_captcha.rhtml:3
+msgid "View FOI email address for {{public_body_name}}"
+msgstr ""
+
+#: app/views/contact_mailer/user_message.rhtml:10
+msgid "View Freedom of Information requests made by"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:110
msgid "View authorities"
msgstr ""
-#: app/views/layouts/default.rhtml:106
+#: app/views/public_body/view_email_captcha.rhtml:12
+msgid "View email"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:109
msgid "View requests"
msgstr ""
-#: app/views/public_body/show.rhtml:39
+#: app/views/request/show.rhtml:110
+msgid ""
+"Waiting for an <strong>internal review</strong> by {{public_body_link}} of "
+"their handling of this request."
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:24
+msgid "We do not have a working"
+msgstr ""
+
+#: app/views/public_body/view_email.rhtml:17
+msgid "We do not have a working request email address for this authority."
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:108
+msgid ""
+"We don't know whether the most recent response to this request contains\n"
+" information or not\n"
+" &ndash;\n"
+"\tif you are {{user_link}} please <a href=\"%s\">sign in</a> and let "
+"everyone know."
+msgstr ""
+
+#: app/views/user_mailer/confirm_login.rhtml:8
+msgid ""
+"We will not reveal your email address to anybody unless you\n"
+"or the law tell us to."
+msgstr ""
+
+#: app/views/user_mailer/changeemail_confirm.rhtml:9
+msgid ""
+"We will not reveal your email addresses to anybody unless you\n"
+"or the law tell us to."
+msgstr ""
+
+#: app/views/request/show.rhtml:54
+msgid "We're waiting for"
+msgstr ""
+
+#: app/views/request/show.rhtml:50
+msgid "We're waiting for someone to read"
+msgstr ""
+
+#: app/views/user/signchangeemail_confirm.rhtml:6
+msgid ""
+"We've sent an email to your new email address. You'll need to click the link "
+"in\n"
+"it before your email address will be changed."
+msgstr ""
+
+#: app/views/user/confirm.rhtml:6
+msgid ""
+"We've sent you an email, and you'll need to click the link in it before you "
+"can\n"
+"continue."
+msgstr ""
+
+#: app/views/user/signchangepassword_confirm.rhtml:6
+msgid ""
+"We've sent you an email, click the link in it, then you can change your "
+"password."
+msgstr ""
+
+#: app/views/request/_followup.rhtml:62
+msgid "What are you doing?"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:4
+msgid "What best describes the status of this request now?"
+msgstr ""
+
+#: app/views/public_body/view_email.rhtml:7
+msgid ""
+"WhatDoTheyKnow sends new requests to <strong>{{request_email}}</strong> for "
+"this authority."
+msgstr ""
+
+#: app/views/request_mailer/new_response.rhtml:9
+msgid ""
+"When you get there, please update the status to say if the response \n"
+"contains any useful information."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:44
+msgid ""
+"When you receive the paper response, please help\n"
+" others find out what it says:"
+msgstr ""
+
+#: app/views/request/new_please_describe.rhtml:16
+msgid ""
+"When you're done, <strong>come back here</strong>, <a href=\"%s\">reload "
+"this page</a> and file your new request."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:13
+msgid "Which of these is happening?"
+msgstr ""
+
+#: app/views/request/new.rhtml:46
+msgid "Write your request in <strong>simple, precise language</strong>."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:71
+msgid ""
+"XXX this section needs localising re EIR as these are specific to UK law"
+msgstr ""
+
+#: app/views/comment/_single_comment.rhtml:10
+msgid "You"
+msgstr ""
+
+#: app/views/request/show.rhtml:81
+msgid "You can <strong>complain</strong> by"
+msgstr ""
+
+#: app/views/request/details.rhtml:57
+msgid ""
+"You can get this page in computer-readable format as part of the main JSON\n"
+"page for the request. See the <a href=\"%s\">API documentation</a>."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:41
msgid ""
"You can only request information about the environment from this authority."
msgstr ""
-#: app/views/public_body/show.rhtml:30
+#: app/views/user/show.rhtml:122
+msgid "You have"
+msgstr ""
+
+#: app/views/request_mailer/new_response.rhtml:1
+msgid "You have a new response to the {{law_used_full}} request "
+msgstr ""
+
+#: app/views/user_mailer/already_registered.rhtml:3
+msgid ""
+"You just tried to sign up to WhatDoTheyKnow.com, when you\n"
+"already have an account. Your name and password have been\n"
+"left as they previously were.\n"
+"\n"
+"Please click on the link below."
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:16
+msgid ""
+"You may <strong>include attachments</strong>. If you would like to attach a\n"
+"file too large for email, use the form below."
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:25
+msgid ""
+"You may be able to find\n"
+" one on their website, or by phoning them up and asking. If you manage\n"
+" to find one, then please <a href=\"%s\">send it to us</a>."
+msgstr ""
+
+#: app/views/request/new_bad_contact.rhtml:6
+msgid ""
+"You may be able to find\n"
+"one on their website, or by phoning them up and asking. If you manage\n"
+"to find one, then please <a href=\"%s\">send it to us</a>."
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:13
+msgid ""
+"You should have received a copy of the request by email, and you can "
+"respond\n"
+"by <strong>simply replying</strong> to that email. For your convenience, "
+"here is the address:"
+msgstr ""
+
+#: app/views/request/show_response.rhtml:36
+msgid ""
+"You want to <strong>give your postal address</strong> to the authority in "
+"private."
+msgstr ""
+
+#: app/views/user/banned.rhtml:9
+msgid ""
+"You will be unable to make new requests, send follow ups, add annotations "
+"or\n"
+"send messages to other users. You may continue to view other requests, and "
+"set\n"
+"up\n"
+"email alerts."
+msgstr ""
+
+#: app/views/request_mailer/not_clarified_alert.rhtml:6
+msgid ""
+"You will only get an answer to your request if you follow up\n"
+"with the clarification."
+msgstr ""
+
+#: app/views/user/show.rhtml:152
+msgid "Your "
+msgstr ""
+
+#: app/views/user/_signup.rhtml:22
+msgid ""
+"Your <strong>name will appear publicly</strong> \n"
+" (<a href=\"%s\">why?</a>)\n"
+" on this website and in search engines. If you\n"
+" are thinking of using a pseudonym, please \n"
+" <a href=\"%s\">read this first</a>."
+msgstr ""
+
+#: app/views/contact_mailer/user_message.rhtml:3
+msgid ""
+"Your details have not been given to anyone, unless you choose to reply to "
+"this\n"
+"message, which will then go directly to the person who wrote the message."
+msgstr ""
+
+#: app/views/user/signchangepassword_send_confirm.rhtml:13
+#: app/views/user/_signup.rhtml:9 app/views/user/_signin.rhtml:11
+msgid "Your e-mail:"
+msgstr ""
+
+#: app/views/user/show.rhtml:168
+msgid "Your email subscriptions"
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:15
+msgid "Your message will appear in <strong>search engines</strong>"
+msgstr ""
+
+#: app/views/comment/preview.rhtml:10
+msgid ""
+"Your name and annotation will appear in <strong>search engines</strong>."
+msgstr ""
+
+#: app/views/request/preview.rhtml:8
+msgid ""
+"Your name, request and any responses will appear in <strong>search engines</"
+"strong>\n"
+" (<a href=\"%s\">details</a>)."
+msgstr ""
+
+#: app/views/user/_signup.rhtml:18
+msgid "Your name:"
+msgstr ""
+
+#: app/views/request_mailer/stopped_responses.rhtml:14
+msgid "Your original message is attached."
+msgstr ""
+
+#: app/views/user/signchangeemail.rhtml:25
+msgid "Your password:"
+msgstr ""
+
+#: app/views/user/set_draft_profile_photo.rhtml:18
+msgid ""
+"Your photo will be shown in public <strong>on the Internet</strong>, \n"
+" wherever you do something on WhatDoTheyKnow."
+msgstr ""
+
+#: app/views/request_mailer/new_response_reminder_alert.rhtml:5
+msgid ""
+"Your request was called {{info_request}}. Letting everyone know whether you "
+"got the information will help us keep tabs on"
+msgstr ""
+
+#: app/views/request/new.rhtml:109
+msgid "Your request:"
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:8
+msgid ""
+"Your response will <strong>appear on the Internet</strong>, <a href=\"%s"
+"\">read why</a> and answers to other questions."
+msgstr ""
+
+#: app/views/request/new.rhtml:97
+msgid ""
+"a one line summary of the information you are requesting, \n"
+"\t\t\te.g."
+msgstr ""
+
+#: app/views/track_mailer/event_digest.rhtml:31
+msgid "added an annotation"
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:25
+msgid "address for"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:32
msgid "admin"
msgstr ""
-#: app/views/public_body/show.rhtml:28
+#: app/views/public_body/show.rhtml:30
msgid "also called {{public_body_short_name}}"
msgstr ""
-#: app/models/public_body.rb:36 app/models/public_body.rb:37
-msgid "can't be blank"
+#: app/views/user/wrong_user.rhtml:5
+msgid "and sign in as "
msgstr ""
-#: locale/model_attributes.rb:35
+#: app/views/request/show.rhtml:52
+msgid ""
+"and update the status accordingly. Perhaps <strong>you</strong> might like "
+"to help out by doing that?"
+msgstr ""
+
+#: app/views/request/show.rhtml:57
+msgid "and update the status."
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:102
+msgid "and we'll suggest <strong>what to do next</strong>"
+msgstr ""
+
+#: app/views/user/show.rhtml:153
+msgid "annotation"
+msgstr ""
+
+#: app/views/user/show.rhtml:147
+msgid "annotations"
+msgstr ""
+
+#: app/views/request_mailer/very_overdue_alert.rhtml:1
+msgid "are long overdue."
+msgstr ""
+
+#: app/controllers/public_body_controller.rb:110
+msgid "beginning with"
+msgstr ""
+
+#: app/views/request/show.rhtml:75
+msgid "by"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:41
+msgid "by <strong>{{date}}</strong>"
+msgstr ""
+
+#: app/views/request/_request_listing_via_event.rhtml:34
+msgid "by {{public_body_name}} to {{info_request_user}} on {{date}}."
+msgstr ""
+
+#: app/views/request/_request_listing_short_via_event.rhtml:10
+msgid "by {{user_link_absolute}}"
+msgstr ""
+
+#: locale/model_attributes.rb:42
msgid "censor rule"
msgstr ""
-#: locale/model_attributes.rb:20
+#: locale/model_attributes.rb:26
msgid "comment"
msgstr ""
+#: app/views/request/show_response.rhtml:41
+msgid ""
+"containing your postal address, and asking them to reply to this request.\n"
+" Or you could phone them."
+msgstr ""
+
+#: app/views/request_mailer/overdue_alert.rhtml:3
+msgid "during term time"
+msgstr ""
+
#: app/views/general/frontpage.rhtml:18
msgid "e.g."
msgstr ""
-#: locale/model_attributes.rb:17
+#: app/views/user/show.rhtml:96
+msgid "edit text about you"
+msgstr ""
+
+#: app/views/user/show.rhtml:171
+msgid "email subscription"
+msgstr ""
+
+#: app/views/request_mailer/very_overdue_alert.rhtml:4
+msgid "even during holidays"
+msgstr ""
+
+#: locale/model_attributes.rb:14
msgid "exim log"
msgstr ""
@@ -825,10 +2751,27 @@ msgstr ""
msgid "exim log done"
msgstr ""
+#: app/views/request_mailer/requires_admin.rhtml:2
+msgid "has reported an"
+msgstr ""
+
+#: app/views/request_mailer/overdue_alert.rhtml:1
+msgid "have delayed."
+msgstr ""
+
#: locale/model_attributes.rb:57
msgid "holiday"
msgstr ""
+#: app/views/request/show.rhtml:63 app/views/request/show.rhtml:73
+#: app/views/request/_followup.rhtml:39
+msgid "in term time"
+msgstr ""
+
+#: app/views/public_body/list.rhtml:42
+msgid "in total"
+msgstr ""
+
#: locale/model_attributes.rb:63
msgid "incoming message"
msgstr ""
@@ -837,19 +2780,75 @@ msgstr ""
msgid "info request"
msgstr ""
-#: locale/model_attributes.rb:40
+#: locale/model_attributes.rb:35
msgid "info request event"
msgstr ""
-#: locale/model_attributes.rb:25
+#: app/views/user/signchangeemail.rhtml:3
+#: app/views/user/set_profile_about_me.rhtml:3
+msgid "internal error"
+msgstr ""
+
+#: app/views/request/show.rhtml:99
+msgid "is <strong>waiting for your clarification</strong>."
+msgstr ""
+
+#: app/views/user/show.rhtml:71
+msgid "just to see how it works"
+msgstr ""
+
+#: app/views/comment/_single_comment.rhtml:10
+msgid "left an annotation"
+msgstr ""
+
+#: app/views/user/_user_listing_single.rhtml:19
+#: app/views/user/_user_listing_single.rhtml:20
+msgid "made."
+msgstr ""
+
+#: app/views/track_mailer/event_digest.rhtml:54
+msgid "need to add other types to TrackMailer.event_digest"
+msgstr ""
+
+#: app/views/request/show.rhtml:67
+msgid "no later than"
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:18
+msgid ""
+"no longer exists. If you are trying to make\n"
+" 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=\"%s\">send it "
+"to us</a>."
+msgstr ""
+
+#: app/views/request/show.rhtml:65
+msgid "normally"
+msgstr ""
+
+#: app/views/user/show.rhtml:114
+msgid "only"
+msgstr ""
+
+#: locale/model_attributes.rb:20
msgid "outgoing message"
msgstr ""
+#: app/views/user/sign.rhtml:11
+msgid "please sign in as "
+msgstr ""
+
+#: app/views/user/sign.rhtml:28
+msgid "please sign in or make a new account."
+msgstr ""
+
#: locale/model_attributes.rb:50
msgid "post redirect"
msgstr ""
-#: locale/model_attributes.rb:14
+#: locale/model_attributes.rb:17
msgid "profile photo"
msgstr ""
@@ -861,10 +2860,102 @@ msgstr ""
msgid "raw email"
msgstr ""
+#: app/views/request_mailer/not_clarified_alert.rhtml:1
+msgid "request."
+msgstr ""
+
+#: app/views/request/show.rhtml:82
+msgid "requesting an internal review"
+msgstr ""
+
+#: app/views/request_mailer/requires_admin.rhtml:3
+msgid ""
+"response as needing administrator attention. Take a look, and reply to this\n"
+"email to let them know what you are going to do about it."
+msgstr ""
+
+#: app/views/request/show.rhtml:101
+msgid "send a follow up message"
+msgstr ""
+
+#: app/views/request/_request_listing_via_event.rhtml:31
+msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
+msgstr ""
+
+#: app/views/request/show.rhtml:105
+msgid "sign in"
+msgstr ""
+
+#: app/views/user/wrong_user.rhtml:4
+msgid "sign out"
+msgstr ""
+
+#: app/views/request_mailer/new_response.rhtml:2
+msgid "that you made to"
+msgstr ""
+
+#: app/views/user/show.rhtml:140
+msgid "this person"
+msgstr ""
+
+#: app/views/user_mailer/changeemail_already_used.rhtml:2
+msgid "to"
+msgstr ""
+
+#: app/views/user_mailer/changeemail_confirm.rhtml:5
+msgid "to "
+msgstr ""
+
+#: app/views/user/show.rhtml:113
+msgid ""
+"to change password, \n"
+" subscriptions and more"
+msgstr ""
+
+#: app/views/request/new.rhtml:34
+msgid "to check that the info isn't already published."
+msgstr ""
+
+#: app/views/request/show.rhtml:55
+msgid "to read"
+msgstr ""
+
+#: app/views/request/show.rhtml:105
+msgid "to send a follow up message."
+msgstr ""
+
+#: app/views/request/show.rhtml:39
+msgid "to {{public_body}}"
+msgstr ""
+
#: locale/model_attributes.rb:31
msgid "track thing"
msgstr ""
+#: app/views/request/_hidden_correspondence.rhtml:32
+msgid "unexpected prominence on request event"
+msgstr ""
+
+#: app/views/request/_request_listing_via_event.rhtml:38
+msgid "unknown event type indexed "
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:30
+msgid "unknown reason "
+msgstr ""
+
+#: app/views/user/show.rhtml:208
+msgid "unsubscribe"
+msgstr ""
+
+#: app/views/user/show.rhtml:180 app/views/user/show.rhtml:194
+msgid "unsubscribe all"
+msgstr ""
+
+#: app/views/request/show.rhtml:46
+msgid "useful information."
+msgstr ""
+
#: locale/model_attributes.rb:69
msgid "user"
msgstr ""
@@ -873,6 +2964,39 @@ msgstr ""
msgid "user info request sent alert"
msgstr ""
-#: app/views/general/frontpage.rhtml:51
+#: app/views/user/show.rhtml:140
+msgid "you"
+msgstr ""
+
+#: app/views/request/new.rhtml:6
+msgid ""
+"{{existing_request_user}} already\n"
+" created the same request on {{date}}. You can either view the <a href="
+"\"{{existing_request}}\">existing request</a>,\n"
+" or edit the details below to make a new but similar request."
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:20
+msgid "{{info_request_user_name}} only:"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:49
msgid "{{length_of_time}} ago"
msgstr ""
+
+#: app/views/request/_after_actions.rhtml:43
+msgid "{{public_body_name}} only:"
+msgstr ""
+
+#: app/views/request/show.rhtml:35
+msgid "{{user}} made this {{law_used_full}} request"
+msgstr ""
+
+#~ msgid "Ministerial departments"
+#~ msgstr "Ministerial departments d"
+
+#~ msgid "Miscellaneous"
+#~ msgstr "Miscellaneous d"
+
+#~ msgid "activerecord.errors.full_messages.format"
+#~ msgstr "%{message}"
diff --git a/locale/model_attributes.rb b/locale/model_attributes.rb
new file mode 100644
index 000000000..d84d4a0ec
--- /dev/null
+++ b/locale/model_attributes.rb
@@ -0,0 +1,89 @@
+#DO NOT MODIFY! AUTOMATICALLY GENERATED FILE!
+_('public body')
+_('PublicBody|Name')
+_('PublicBody|Short name')
+_('PublicBody|Request email')
+_('PublicBody|Version')
+_('PublicBody|Last edit editor')
+_('PublicBody|Last edit comment')
+_('PublicBody|Url name')
+_('PublicBody|Home page')
+_('PublicBody|Notes')
+_('PublicBody|First letter')
+_('PublicBody|Publication scheme')
+_('exim log')
+_('EximLog|Order')
+_('EximLog|Line')
+_('profile photo')
+_('ProfilePhoto|Data')
+_('ProfilePhoto|Draft')
+_('outgoing message')
+_('OutgoingMessage|Body')
+_('OutgoingMessage|Status')
+_('OutgoingMessage|Message type')
+_('OutgoingMessage|Last sent at')
+_('OutgoingMessage|What doing')
+_('comment')
+_('Comment|Comment type')
+_('Comment|Body')
+_('Comment|Visible')
+_('Comment|Locale')
+_('track thing')
+_('TrackThing|Track query')
+_('TrackThing|Track medium')
+_('TrackThing|Track type')
+_('info request event')
+_('InfoRequestEvent|Event type')
+_('InfoRequestEvent|Params yaml')
+_('InfoRequestEvent|Described state')
+_('InfoRequestEvent|Calculated state')
+_('InfoRequestEvent|Last described at')
+_('InfoRequestEvent|Prominence')
+_('censor rule')
+_('CensorRule|Text')
+_('CensorRule|Replacement')
+_('CensorRule|Last edit editor')
+_('CensorRule|Last edit comment')
+_('raw email')
+_('RawEmail|Data text')
+_('RawEmail|Data binary')
+_('post redirect')
+_('PostRedirect|Token')
+_('PostRedirect|Uri')
+_('PostRedirect|Post params yaml')
+_('PostRedirect|Email token')
+_('PostRedirect|Reason params yaml')
+_('PostRedirect|Circumstance')
+_('holiday')
+_('Holiday|Day')
+_('Holiday|Description')
+_('exim log done')
+_('EximLogDone|Filename')
+_('EximLogDone|Last stat')
+_('incoming message')
+_('IncomingMessage|Cached attachment text clipped')
+_('IncomingMessage|Cached main body text folded')
+_('IncomingMessage|Cached main body text unfolded')
+_('user info request sent alert')
+_('UserInfoRequestSentAlert|Alert type')
+_('user')
+_('User|Email')
+_('User|Name')
+_('User|Hashed password')
+_('User|Salt')
+_('User|Email confirmed')
+_('User|Url name')
+_('User|Last daily track email')
+_('User|Admin level')
+_('User|Ban text')
+_('User|About me')
+_('info request')
+_('InfoRequest|Title')
+_('InfoRequest|Described state')
+_('InfoRequest|Awaiting description')
+_('InfoRequest|Prominence')
+_('InfoRequest|Url title')
+_('InfoRequest|Law used')
+_('InfoRequest|Allow new responses from')
+_('InfoRequest|Handle rejected responses')
+#DO NOT MODIFY! AUTOMATICALLY GENERATED FILE!
diff --git a/locale/sq/.giosavePIKAVV b/locale/sq/.giosavePIKAVV
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/locale/sq/.giosavePIKAVV
@@ -0,0 +1 @@
+
diff --git a/locale/sq/app.po b/locale/sq/app.po
new file mode 100644
index 000000000..a6af1dc9b
--- /dev/null
+++ b/locale/sq/app.po
@@ -0,0 +1,3063 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: version 0.0.1\n"
+"Report-Msgid-Bugs-To: http://github.com/sebbacon/alaveteli/issues\n"
+"POT-Creation-Date: 2011-06-01 09:03-0000\n"
+"PO-Revision-Date: 2011-04-22 13:20+0000\n"
+"Last-Translator: vbrestovci <vbrestovci@gmail.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: sq\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#: app/views/user/set_profile_about_me.rhtml:14
+msgid ""
+" This will appear on your WhatDoTheyKnow profile, to make it\n"
+" easier for others to get involved with what you're doing."
+msgstr ""
+
+#: app/views/comment/_comment_form.rhtml:17
+msgid ""
+" (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation "
+"policy</a>)"
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:40
+msgid ""
+" (<strong>patience</strong>, especially for large files, it may take a "
+"while!)"
+msgstr ""
+
+#: app/views/user/show.rhtml:59
+msgid " (you)"
+msgstr ""
+
+#: app/views/user/signchangepassword_send_confirm.rhtml:18
+msgid ""
+" <strong>Note:</strong>\n"
+" We will send you an email. Follow the instructions in it to change\n"
+" your password."
+msgstr ""
+
+#: app/views/user/contact.rhtml:35
+msgid " <strong>Privacy note:</strong> Your email address will be given to"
+msgstr ""
+
+#: app/views/comment/new.rhtml:33
+msgid " <strong>Summarise</strong> the content of any information returned. "
+msgstr ""
+
+#: app/views/comment/new.rhtml:23
+msgid " Advise on how to <strong>best clarify</strong> the request."
+msgstr ""
+
+#: app/views/comment/new.rhtml:49
+msgid ""
+" Ideas on what <strong>other documents to request</strong> which the "
+"authority may hold. "
+msgstr ""
+
+#: app/views/public_body/view_email.rhtml:30
+msgid ""
+" If you know the address to use, then please <a href=\"%s\">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 ""
+
+#: app/views/user/set_profile_about_me.rhtml:26
+msgid ""
+" Include relevant links, such as to a campaign page, your blog or a\n"
+" twitter account. They will be made clickable. \n"
+" e.g."
+msgstr ""
+
+#: app/views/comment/new.rhtml:27
+msgid ""
+" Link to the information requested, if it is <strong>already available</"
+"strong> on the Internet. "
+msgstr ""
+
+#: app/views/comment/new.rhtml:29
+msgid ""
+" Offer better ways of <strong>wording the request</strong> to get the "
+"information. "
+msgstr ""
+
+#: app/views/user/sign.rhtml:26
+msgid " Please sign in or make a new account."
+msgstr ""
+
+#: app/views/comment/new.rhtml:34
+msgid ""
+" Say how you've <strong>used the information</strong>, with links if "
+"possible."
+msgstr ""
+
+#: app/views/comment/new.rhtml:28
+msgid ""
+" Suggest <strong>where else</strong> the requester might find the "
+"information. "
+msgstr ""
+
+#: app/views/user/set_profile_about_me.rhtml:11
+msgid " What are you investigating using Freedom of Information? "
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:5
+msgid " made by "
+msgstr ""
+
+#: app/views/user/show.rhtml:123
+#, fuzzy
+msgid " made no Freedom of Information requests using this site."
+msgstr "%d Freedom of Information requests"
+
+#: app/views/track_mailer/event_digest.rhtml:28
+#, fuzzy
+msgid " sent a request to"
+msgstr "Bëjë kërkesë"
+
+#: app/views/user/contact.rhtml:36
+msgid " when you send this message."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:82
+msgid "%d Freedom of Information request"
+msgid_plural "%d Freedom of Information requests"
+msgstr[0] "%d Freedom of Information requests"
+msgstr[1] "%d Freedom of Information requests"
+
+#: app/views/general/frontpage.rhtml:35
+msgid "%d request"
+msgid_plural "%d requests"
+msgstr[0] ""
+msgstr[1] ""
+
+#: app/views/request/new.rhtml:102
+msgid "'Crime statistics by ward level for Wales'"
+msgstr ""
+
+#: app/views/request/new.rhtml:100
+msgid "'Pollution levels over time for the River Tyne'"
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:9
+msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
+msgstr ""
+
+#: app/views/public_body/list.rhtml:29
+msgid "<a href=\"%s\">Are we missing a public authority?</a>."
+msgstr ""
+
+#: app/views/request/_sidebar.rhtml:45
+msgid ""
+"<a href=\"%s\">Are you the owner of\n"
+" any commercial copyright on this page?</a>"
+msgstr ""
+
+#: app/views/general/search.rhtml:53
+msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:51
+msgid ""
+"<a href=\"%s\">Make a new Freedom of Information request</a> to "
+"{{public_body_name}}"
+msgstr ""
+
+#: app/views/public_body/list.rhtml:43
+msgid "<a href=\"%s\">can't find the one you want?</a>"
+msgstr ""
+
+#: app/views/request/show.rhtml:76 app/views/request/show.rhtml:80
+#: app/views/request/_followup.rhtml:42 app/views/request/_followup.rhtml:49
+msgid "<a href=\"%s\">details</a>"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:78
+msgid "<a href=\"%s\">what's that?</a>"
+msgstr ""
+
+#: app/views/user/confirm.rhtml:11
+msgid ""
+"<small>If you use web-based email or have \"junk mail\" filters, also check "
+"your\n"
+"bulk/spam mail folders. Sometimes, our messages are marked that way.</"
+"small>\n"
+"</p>"
+msgstr ""
+
+#: app/views/request/new.rhtml:135
+msgid ""
+"<strong> Can I request information about myself?</strong>\n"
+"\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
+msgstr ""
+
+#: app/views/general/search.rhtml:118
+msgid ""
+"<strong><code>commented_by:tony_bowden</code></strong> to search annotations "
+"made by Tony Bowden, typing the name as in the URL."
+msgstr ""
+
+#: app/views/general/search.rhtml:120
+msgid ""
+"<strong><code>filetype:pdf</code></strong> to find all responses with PDF "
+"attachments. Or try these: <code>{{list_of_file_extensions}}</code>"
+msgstr ""
+
+#: app/views/general/search.rhtml:119
+msgid ""
+"<strong><code>request:</code></strong> to restrict to a specific request, "
+"typing the title as in the URL."
+msgstr ""
+
+#: app/views/general/search.rhtml:117
+msgid ""
+"<strong><code>requested_by:julian_todd</code></strong> to search requests "
+"made by Julian Todd, typing the name as in the URL."
+msgstr ""
+
+#: app/views/general/search.rhtml:116
+msgid ""
+"<strong><code>requested_from:home_office</code></strong> to search requests "
+"from the Home Office, typing the name as in the URL."
+msgstr ""
+
+#: app/views/general/search.rhtml:114
+msgid ""
+"<strong><code>status:</code></strong> to select based on the status or "
+"historical status of the request, see the <a href=\"%s\">table of statuses</"
+"a> below."
+msgstr ""
+
+#: app/views/general/search.rhtml:122
+msgid ""
+"<strong><code>tag:charity</code></strong> to find all public bodies or "
+"requests with a given tag. You can include multiple tags, \n"
+" and tag values, e.g. <code>tag:openlylocal AND tag:"
+"financial_transaction:335633</code>. Note that by default any of the tags\n"
+" can be present, you have to put <code>AND</code> explicitly if you only "
+"want results them all present."
+msgstr ""
+
+#: app/views/general/search.rhtml:115
+msgid ""
+"<strong><code>variety:</code></strong> to select type of thing to search "
+"for, see the <a href=\"%s\">table of varieties</a> below."
+msgstr ""
+
+#: app/views/request/_followup.rhtml:83
+msgid "<strong>Anything else</strong>, such as clarifying, prompting, thanking"
+msgstr ""
+
+#: app/views/request/details.rhtml:12
+msgid ""
+"<strong>Caveat emptor!</strong> To use this data in an honourable way, you "
+"will need \n"
+"a good internal knowledge of user behaviour on WhatDoTheyKnow. How, \n"
+"why and by whom requests are categorised is not straightforward, and there "
+"will\n"
+"be user error and ambiguity. You will also need to understand FOI law, and "
+"the\n"
+"way authorities use it. Plus you'll need to be an elite statistician. "
+"Please\n"
+"<a href=\"%s\">contact us</a> with questions."
+msgstr ""
+
+#: app/views/user/signchangeemail.rhtml:30
+msgid ""
+"<strong>Note:</strong>\n"
+" We will send an email to your new email address. Follow the\n"
+" instructions in it to confirm changing your email."
+msgstr ""
+
+#: app/views/user/contact.rhtml:32
+msgid ""
+"<strong>Note:</strong> You're sending a message to yourself, presumably\n"
+" to try out how it works."
+msgstr ""
+
+#: app/views/request/preview.rhtml:31
+msgid ""
+"<strong>Privacy note:</strong> If you want to request private information "
+"about\n"
+" yourself then <a href=\"%s\">click here</a>."
+msgstr ""
+
+#: app/views/user/set_crop_profile_photo.rhtml:35
+msgid ""
+"<strong>Privacy note:</strong> Your photo will be shown in public on the "
+"Internet, \n"
+" wherever you do something on WhatDoTheyKnow."
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:37
+msgid ""
+"<strong>Privacy warning:</strong> Your message, and any response\n"
+" to it, will be displayed publicly on this website."
+msgstr ""
+
+#: app/views/general/exception_caught.rhtml:18
+msgid "<strong>Technical details:</strong>"
+msgstr ""
+
+#: app/views/comment/new.rhtml:35
+msgid "<strong>Thank</strong> the public authority or "
+msgstr ""
+
+#: app/views/request/new.rhtml:23
+msgid ""
+"<strong>browse</strong> the authority's <a href=\"%s\">publication scheme</"
+"a> or <strong>search</strong> their web site ..."
+msgstr ""
+
+#: app/views/request/show.rhtml:84
+msgid "<strong>did not have</strong> the information requested."
+msgstr ""
+
+#: app/views/request/new.rhtml:25
+msgid "<strong>search</strong> the authority's web site ..."
+msgstr ""
+
+#: app/views/comment/new.rhtml:45
+msgid ""
+"A <strong>summary</strong> of the response if you have received it by post. "
+msgstr ""
+
+#: app/views/user/set_profile_about_me.rhtml:20
+msgid "About you:"
+msgstr ""
+
+#: app/views/request/_sidebar.rhtml:5
+msgid "Act on what you've learnt"
+msgstr ""
+
+#: app/views/comment/new.rhtml:14
+msgid "Add an annotation to "
+msgstr ""
+
+#: app/views/request/show_response.rhtml:47
+msgid ""
+"Add an annotation to your request with choice quotes, or\n"
+" a <strong>summary of the response</strong>."
+msgstr ""
+
+#: app/models/user.rb:54
+msgid "Admin level is not included in list"
+msgstr "Niveli i administratorit nuk është i përfshir në listë"
+
+#: app/views/general/search.rhtml:31 app/views/general/search.rhtml:109
+msgid "Advanced search tips"
+msgstr "Këshilla te avansuara për kërkim"
+
+#: app/views/request/new.rhtml:69
+msgid ""
+"Air, water, soil, land, flora and fauna (including how these effect\n"
+" human beings)"
+msgstr ""
+
+#: app/views/public_body/list.rhtml:5
+msgid "Alphabet"
+msgstr ""
+
+#: app/views/track_mailer/event_digest.rhtml:63
+msgid "Alter your subscription"
+msgstr ""
+
+#: app/views/user/show.rhtml:34
+msgid "Annotations"
+msgstr ""
+
+#: app/views/comment/new.rhtml:17
+msgid ""
+"Annotations are so anyone, including you, can help the requester with their "
+"request. For example:"
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:6
+msgid "Anyone:"
+msgstr ""
+
+#: app/views/request/new.rhtml:47
+msgid ""
+"Ask for <strong>specific</strong> documents or information, this site is not "
+"suitable for general enquiries."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:31
+msgid ""
+"At the bottom of this page, write a reply to them trying to persuade them to "
+"scan it in\n"
+" (<a href=\"%s\">more details</a>)."
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:33
+msgid "Attachment (optional):"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:70
+msgid ""
+"Authority has replied but the response <strong>does not correspond to the "
+"request</strong>"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:43
+msgid "Authority has requested <strong>extension of the deadline.</strong>"
+msgstr ""
+
+#: app/views/request/new.rhtml:43
+msgid ""
+"Browse <a href=\"%s\">other requests</a> for examples of how to word your "
+"request."
+msgstr ""
+
+#: app/views/request/new.rhtml:41
+msgid ""
+"Browse <a href='%s'>other requests</a> to '{{public_body_name}}' for "
+"examples of how to word your request."
+msgstr ""
+
+#: app/views/request/show.rhtml:79
+msgid ""
+"By law, under all circumstances, {{public_body_link}} should have responded "
+"by now"
+msgstr ""
+
+#: app/views/request/show.rhtml:71
+msgid ""
+"By law, {{public_body_link}} should normally have responded "
+"<strong>promptly</strong> and"
+msgstr ""
+
+#: app/views/general/search.rhtml:17
+msgid ""
+"Can't find it? <a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add "
+"it</a>."
+msgstr ""
+
+#: locale/model_attributes.rb:46
+msgid "CensorRule|Last edit comment"
+msgstr ""
+
+#: locale/model_attributes.rb:45
+msgid "CensorRule|Last edit editor"
+msgstr ""
+
+#: locale/model_attributes.rb:44
+msgid "CensorRule|Replacement"
+msgstr ""
+
+#: locale/model_attributes.rb:43
+msgid "CensorRule|Text"
+msgstr ""
+
+#: lib/public_body_categories_sq.rb:14 lib/public_body_categories_sr.rb:14
+#: lib/public_body_categories_en.rb:14
+msgid "Central government"
+msgstr ""
+
+#: app/views/user/signchangepassword.rhtml:27
+#, fuzzy
+msgid "Change password on {{site_name}}"
+msgstr "Kontakt {{site_name}}"
+
+#: app/views/user/show.rhtml:104
+msgid "Change profile photo"
+msgstr ""
+
+#: app/views/user/set_profile_about_me.rhtml:1
+msgid "Change the text about you on your profile at WhatDoTheyKnow.com"
+msgstr ""
+
+#: app/views/user/show.rhtml:107
+msgid "Change your email"
+msgstr ""
+
+#: app/views/user/signchangeemail.rhtml:1
+#: app/views/user/signchangeemail.rhtml:11
+msgid "Change your email address used on {{site_name}}"
+msgstr ""
+
+#: app/views/user/show.rhtml:106
+#, fuzzy
+msgid "Change your password"
+msgstr "Të lutem shkruaj fjalëkalimin tënd"
+
+#: app/views/user/signchangepassword_send_confirm.rhtml:1
+#: app/views/user/signchangepassword_send_confirm.rhtml:9
+#: app/views/user/signchangepassword.rhtml:1
+#: app/views/user/signchangepassword.rhtml:11
+msgid "Change your password on {{site_name}}"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:16 app/views/public_body/show.rhtml:18
+msgid "Charity registration"
+msgstr ""
+
+#: app/views/general/exception_caught.rhtml:6
+msgid "Check for mistakes if you typed or copied the address."
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:14
+#: app/views/request/preview.rhtml:7
+msgid "Check you haven't included any <strong>personal information</strong>."
+msgstr ""
+
+#: app/views/request_mailer/very_overdue_alert.rhtml:6
+msgid ""
+"Click on the link below to send a message to {{public_body.name}} telling "
+"them to reply to your request. You might like to ask for an internal\n"
+"review, asking them to find out why response to the request has been so slow."
+msgstr ""
+
+#: app/views/request_mailer/overdue_alert.rhtml:5
+msgid ""
+"Click on the link below to send a message to {{public_body}} reminding them "
+"to reply to your request."
+msgstr ""
+
+#: locale/model_attributes.rb:28
+msgid "Comment|Body"
+msgstr ""
+
+#: locale/model_attributes.rb:27
+msgid "Comment|Comment type"
+msgstr "Koment|Lloji i komentit"
+
+#: locale/model_attributes.rb:30
+msgid "Comment|Locale"
+msgstr ""
+
+#: locale/model_attributes.rb:29
+msgid "Comment|Visible"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:147
+msgid "Contact {{site_name}}"
+msgstr "Kontakt {{site_name}}"
+
+#: app/models/profile_photo.rb:96
+msgid ""
+"Couldn't understand the image file that you uploaded. PNG, JPEG, GIF and "
+"many other common image file formats are supported."
+msgstr ""
+"Fajlli i imazhit të cilin e ngarkove nuk u kuptua. Llojet që përkrahen nga "
+"sistemi janë: PNG, JPEG, GIF si dhe shumë formate tjera të zakonshme."
+
+#: app/views/request/new.rhtml:74
+msgid ""
+"Cultural sites and built structures (as they may be affected by the\n"
+" environmental factors listed above)"
+msgstr ""
+
+#: app/views/request/show.rhtml:61
+msgid ""
+"Currently <strong>waiting for a response</strong> from {{public_body_link}}, "
+"they must respond promptly and"
+msgstr ""
+
+#: app/views/request/details.rhtml:1 app/views/request/details.rhtml:2
+msgid "Details of request '"
+msgstr ""
+
+#: app/views/general/search.rhtml:50 app/views/general/search.rhtml:62
+msgid "Did you mean: {{correction}}"
+msgstr "Mos mendove këtë: {{correction}}"
+
+#: app/views/outgoing_mailer/followup.rhtml:6
+#: app/views/outgoing_mailer/initial_request.rhtml:4
+msgid ""
+"Disclaimer: This message and any reply that you make will be published on "
+"the internet. Our privacy and copyright policies:"
+msgstr ""
+
+#: app/views/request/_view_html_prefix.rhtml:6
+msgid "Download original attachment"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:89
+msgid ""
+"Edit and add <strong>more details</strong> to the message above,\n"
+" explaining why you are dissatisfied with their response."
+msgstr ""
+
+#: app/views/admin_public_body/_locale_selector.rhtml:2
+msgid "Edit language version:"
+msgstr "Edito versionin e gjuhës:"
+
+#: app/views/user/set_profile_about_me.rhtml:9
+msgid "Edit text about you"
+msgstr ""
+
+#: app/views/comment/_comment_form.rhtml:9
+msgid "Email me future updates to this request"
+msgstr "Dërgom përditësime me email në lidhje me këtë kërkesë"
+
+#: app/views/user/show.rhtml:36
+msgid "Email subscriptions"
+msgstr ""
+
+#: app/views/general/search.rhtml:111
+msgid ""
+"Enter words that you want to find separated by spaces, e.g. <strong>climbing "
+"lane</strong>"
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:23
+msgid ""
+"Enter your response below. You may attach one file (use email, or \n"
+"<a href=\"%s\">contact us</a> if you need more)."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:98
+msgid "Environmental Information Regulations requests made"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:70
+msgid "Environmental Information Regulations requests made using this site"
+msgstr ""
+
+#: app/views/request/details.rhtml:4
+msgid "Event history"
+msgstr ""
+
+#: app/views/request/_sidebar.rhtml:41
+msgid "Event history details"
+msgstr ""
+
+#: app/views/request/new.rhtml:128
+msgid ""
+"Everything that you enter on this page \n"
+" will be <strong>displayed publicly</strong> on\n"
+" this website forever (<a href=\"%s\">why?</a>)."
+msgstr ""
+
+#: app/views/request/new.rhtml:120
+msgid ""
+"Everything that you enter on this page, including <strong>your name</"
+"strong>, \n"
+" will be <strong>displayed publicly</strong> on\n"
+" this website forever (<a href=\"%s\">why?</a>)."
+msgstr ""
+
+#: locale/model_attributes.rb:61
+msgid "EximLogDone|Filename"
+msgstr "EximLogDone|Filename"
+
+#: locale/model_attributes.rb:62
+msgid "EximLogDone|Last stat"
+msgstr ""
+
+#: locale/model_attributes.rb:16
+msgid "EximLog|Line"
+msgstr ""
+
+#: locale/model_attributes.rb:15
+msgid "EximLog|Order"
+msgstr ""
+
+#: app/views/public_body/view_email.rhtml:3
+#, fuzzy
+msgid "FOI email address for {{public_body}}"
+msgstr "i quajtur edhe {{public_body_short_name}}"
+
+#: app/views/user/show.rhtml:33
+#, fuzzy
+msgid "FOI requests"
+msgstr "Kërkesat e mia"
+
+#: app/views/general/search.rhtml:90
+msgid ""
+"FOI requests {{start_count}} to {{end_count}} of {{total_count}} for "
+"{{user_search_query}}"
+msgstr ""
+
+#: app/models/profile_photo.rb:101
+msgid "Failed to convert image to a PNG"
+msgstr "Konvertimi i imazhit në PNG dështoi"
+
+#: app/models/profile_photo.rb:105
+msgid ""
+"Failed to convert image to the correct size: at %{cols}x%{rows}, need %"
+"{width}x%{height}"
+msgstr ""
+"Konvertimi i imazhit në madhësinë adekuate dështoi: në %{cols}x%{rows}, "
+"duhet %{width}x%{height}"
+
+#: app/views/request/new.rhtml:21
+msgid "First,"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:8
+msgid ""
+"First, type in the <strong>name of the UK public authority</strong> you'd \n"
+" <br>like information from. <strong>By law, they have to respond</"
+"strong>\n"
+" (<a href=\"%s\">why?</a>)."
+msgstr ""
+
+#: app/views/request_mailer/old_unclassified_updated.rhtml:8
+msgid "Follow this link to see the request:"
+msgstr ""
+
+#: app/views/public_body/view_email.rhtml:14
+msgid "Follow up messages to existing requests are sent to "
+msgstr ""
+
+#: app/views/request/_followup.rhtml:16
+msgid ""
+"Follow ups and new responses to this request have been stopped to prevent "
+"spam. Please\n"
+" <a href=\"%s\">contact us</a> if you are {{user_link}} and need to "
+"send a follow up."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:62
+msgid ""
+"For an unknown reason, it is not possible to make a request to this "
+"authority."
+msgstr ""
+
+#: app/views/user/_signin.rhtml:21
+#, fuzzy
+msgid "Forgotten your password?"
+msgstr "Të lutem shkruaj fjalëkalimin tënd"
+
+#: app/views/public_body/show.rhtml:57
+msgid ""
+"Freedom of Information law does not apply to this authority, so you cannot "
+"make\n"
+" a request to it."
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:11
+#, fuzzy
+msgid "Freedom of Information law no longer applies to"
+msgstr "%d Freedom of Information requests"
+
+#: app/views/public_body/view_email.rhtml:10
+msgid ""
+"Freedom of Information law no longer applies to this authority.Follow up "
+"messages to existing requests are sent to "
+msgstr ""
+
+#: app/views/user/show.rhtml:128
+#, fuzzy
+msgid "Freedom of Information request"
+msgstr "%d Freedom of Information requests"
+
+#: app/views/public_body/show.rhtml:100
+msgid "Freedom of Information requests made"
+msgstr ""
+
+#: app/views/user/show.rhtml:121 app/views/user/show.rhtml:140
+#, fuzzy
+msgid "Freedom of Information requests made by"
+msgstr "%d Freedom of Information requests"
+
+#: app/views/public_body/show.rhtml:74
+msgid "Freedom of Information requests made using this site"
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:12
+msgid ""
+"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=\"%s\">send it "
+"to us</a>."
+msgstr ""
+
+#: app/views/layouts/default.rhtml:123
+msgid "Hello!"
+msgstr "Përshëndetje"
+
+#: app/views/layouts/default.rhtml:120
+msgid "Hello, {{username}}!"
+msgstr "Përshëndetje, {{username}}!"
+
+#: app/views/layouts/default.rhtml:115
+msgid "Help"
+msgstr "Ndihmë"
+
+#: app/views/request/details.rhtml:50
+msgid ""
+"Here <strong>described</strong> means when a user selected a status for the "
+"request, and\n"
+"the most recent event had its status updated to that value. "
+"<strong>calculated</strong> is then inferred by\n"
+"WhatDoTheyKnow for intermediate events, which weren't given an explicit\n"
+"description by a user. See the <a href=\"%s\">search tips</a> for "
+"description of the states."
+msgstr ""
+
+#: locale/model_attributes.rb:58
+msgid "Holiday|Day"
+msgstr ""
+
+#: locale/model_attributes.rb:59
+msgid "Holiday|Description"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:7
+msgid "Home page of authority"
+msgstr "Ueb sajti i autoritetit"
+
+#: app/views/request/new.rhtml:63
+msgid ""
+"However, you have the right to request environmental\n"
+" information under a different law"
+msgstr ""
+
+#: app/views/request/new.rhtml:73
+msgid "Human health and safety"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:72
+msgid "I am asking for <strong>new information</strong>"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:77
+msgid "I am requesting an <strong>internal review</strong>"
+msgstr ""
+
+#: app/views/request_game/play.rhtml:39
+msgid "I don't like these ones &mdash; give me some more!"
+msgstr ""
+
+#: app/views/request_game/play.rhtml:40
+msgid "I don't want to do any more tidying now!"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:92
+msgid "I would like to <strong>withdraw this request</strong>"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:11
+msgid ""
+"I'm still <strong>waiting</strong> for my information\n"
+" <small>(maybe you got an acknowledgement)</small>"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:18
+msgid "I'm still <strong>waiting</strong> for the internal review"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:32
+msgid "I'm waiting for an <strong>internal review</strong> response"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:25
+msgid "I've been asked to <strong>clarify</strong> my request"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:62
+msgid "I've received <strong>all the information"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:58
+msgid "I've received <strong>some of the information</strong>"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:77
+msgid "I've received an <strong>error message</strong>"
+msgstr ""
+
+#: app/views/public_body/view_email.rhtml:28
+msgid ""
+"If the address is wrong, or you know a better address, please <a href=\"%s"
+"\">contact us</a>."
+msgstr ""
+
+#: app/views/request_mailer/stopped_responses.rhtml:10
+msgid ""
+"If this is incorrect, or you would like to send a late response to the "
+"request\n"
+"or an email on another subject to {{user}}, then please\n"
+"email {{contact_email}} for help."
+msgstr ""
+
+#: app/views/request/_followup.rhtml:21
+msgid ""
+"If you are dissatisfied by the response you got from\n"
+" the public authority, you have the right to\n"
+" complain (<a href=\"%s\">details</a>)."
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:20
+msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
+msgstr ""
+
+#: app/views/request/hidden.rhtml:15
+msgid ""
+"If you are the requester, then you may <a href=\"%s\">sign in</a> to view "
+"the request."
+msgstr ""
+
+#: app/views/request/new.rhtml:123
+msgid ""
+"If you are thinking of using a pseudonym,\n"
+" please <a href=\"%s\">read this first</a>."
+msgstr ""
+
+#: app/views/request/show.rhtml:104
+msgid "If you are {{user_link}}, please"
+msgstr ""
+
+#: app/views/user/bad_token.rhtml:7
+msgid ""
+"If you can't click on it in the email, you'll have to <strong>select and "
+"copy\n"
+"it</strong> from the email. Then <strong>paste it into your browser</"
+"strong>, into the place\n"
+"you would type the address of any other webpage."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:49
+msgid ""
+"If you can, scan in or photograph the response, and <strong>send us\n"
+" a copy to upload</strong>."
+msgstr ""
+
+#: app/views/outgoing_mailer/initial_request.rhtml:13
+msgid ""
+"If you find WhatDoTheyKnow useful as an FOI officer, please ask your web "
+"manager to suggest us on your organisation"
+msgstr ""
+
+#: app/views/outgoing_mailer/followup.rhtml:12
+msgid ""
+"If you find WhatDoTheyKnow useful as an FOI officer, please ask your web "
+"manager to suggest us on your organisation's FOI page."
+msgstr ""
+
+#: app/views/user/bad_token.rhtml:13
+msgid ""
+"If you got the email <strong>more than six months ago</strong>, then this "
+"login link won't work any\n"
+"more. Please try doing what you were doing from the beginning."
+msgstr ""
+
+#: app/views/user/signchangeemail_confirm.rhtml:11
+#: app/views/user/signchangepassword_confirm.rhtml:10
+msgid ""
+"If you use web-based email or have \"junk mail\" filters, also check your\n"
+"bulk/spam mail folders. Sometimes, our messages are marked that way."
+msgstr ""
+
+#: app/views/user/banned.rhtml:15
+msgid ""
+"If you would like us to lift this ban, then you may politely\n"
+"<a href=\"/help/contact\">contact us</a> giving reasons.\n"
+msgstr ""
+
+#: app/views/user/_signup.rhtml:6
+msgid "If you're new to WhatDoTheyKnow"
+msgstr ""
+
+#: app/views/user/_signin.rhtml:7
+msgid "If you've used WhatDoTheyKnow before"
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:12
+msgid ""
+"If your browser is set to accept cookies and you are seeing this message,\n"
+"then there is probably a fault with our server."
+msgstr ""
+
+#: locale/model_attributes.rb:64
+msgid "IncomingMessage|Cached attachment text clipped"
+msgstr ""
+
+#: locale/model_attributes.rb:65
+msgid "IncomingMessage|Cached main body text folded"
+msgstr ""
+
+#: locale/model_attributes.rb:66
+msgid "IncomingMessage|Cached main body text unfolded"
+msgstr ""
+
+#: locale/model_attributes.rb:39
+msgid "InfoRequestEvent|Calculated state"
+msgstr ""
+
+#: locale/model_attributes.rb:38
+msgid "InfoRequestEvent|Described state"
+msgstr ""
+
+#: locale/model_attributes.rb:36
+msgid "InfoRequestEvent|Event type"
+msgstr ""
+
+#: locale/model_attributes.rb:40
+msgid "InfoRequestEvent|Last described at"
+msgstr ""
+
+#: locale/model_attributes.rb:37
+msgid "InfoRequestEvent|Params yaml"
+msgstr ""
+
+#: locale/model_attributes.rb:41
+msgid "InfoRequestEvent|Prominence"
+msgstr ""
+
+#: locale/model_attributes.rb:87
+msgid "InfoRequest|Allow new responses from"
+msgstr ""
+
+#: locale/model_attributes.rb:83
+msgid "InfoRequest|Awaiting description"
+msgstr ""
+
+#: locale/model_attributes.rb:82
+msgid "InfoRequest|Described state"
+msgstr ""
+
+#: locale/model_attributes.rb:88
+msgid "InfoRequest|Handle rejected responses"
+msgstr ""
+
+#: locale/model_attributes.rb:86
+msgid "InfoRequest|Law used"
+msgstr ""
+
+#: locale/model_attributes.rb:84
+msgid "InfoRequest|Prominence"
+msgstr ""
+
+#: locale/model_attributes.rb:81
+msgid "InfoRequest|Title"
+msgstr ""
+
+#: locale/model_attributes.rb:85
+msgid "InfoRequest|Url title"
+msgstr ""
+
+#: app/views/request/new.rhtml:71
+msgid ""
+"Information on emissions and discharges (e.g. noise, energy,\n"
+" radiation, waste materials)"
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:8
+msgid ""
+"It may be that your browser is not set to accept a thing called \"cookies"
+"\",\n"
+"or cannot do so. If you can, please enable cookies, or try using a "
+"different\n"
+"browser. Then press refresh to have another go."
+msgstr ""
+
+#: app/views/user/show.rhtml:62
+msgid "Joined WhatDoTheyKnow"
+msgstr ""
+
+#: app/views/user/_user_listing_single.rhtml:21
+msgid "Joined in"
+msgstr ""
+
+#: app/views/request/new.rhtml:48
+msgid ""
+"Keep it <strong>focused</strong>, you'll be more likely to get what you want "
+"(<a href=\"%s\">why?</a>)."
+msgstr ""
+
+#: app/views/contact_mailer/message.rhtml:10
+msgid "Last authority viewed: "
+msgstr ""
+
+#: app/views/contact_mailer/message.rhtml:7
+msgid "Last request viewed: "
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:17
+msgid ""
+"Let us know what you were doing when this message\n"
+"appeared and your browser and operating system type and version."
+msgstr ""
+
+#: app/views/public_body/list.rhtml:32
+msgid "List of all authorities (CSV)"
+msgstr ""
+
+#: lib/public_body_categories_en.rb:23
+msgid "Local and regional"
+msgstr "Lokale dhe regjionale"
+
+#: app/views/public_body/show.rhtml:48
+#, fuzzy
+msgid "Make a new Environmental Information request"
+msgstr "%d Freedom of Information requests"
+
+#: app/views/request/new.rhtml:1
+msgid "Make an {{law_used_short}} request to '{{public_body_name}}'"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:17
+msgid "Make and browse Freedom of Information (FOI) requests"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:89
+msgid "Make and explore Freedom of Information requests"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:4
+msgid "Make or explore Freedom of Information requests"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:108
+msgid "Make request"
+msgstr "Bëjë kërkesë"
+
+#: app/views/public_body/_body_listing_single.rhtml:23
+#, fuzzy
+msgid "Make your own request"
+msgstr "Bëjë kërkesë"
+
+#: app/views/contact_mailer/message.rhtml:4
+msgid "Message sent using WhatDoTheyKnow contact form, "
+msgstr ""
+
+#: app/views/request/new_bad_contact.rhtml:1
+msgid "Missing contact details for '"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:5
+msgid "More about this authority"
+msgstr "Më shumë për këtë autoritet"
+
+#: app/views/general/frontpage.rhtml:39
+msgid "More authorities..."
+msgstr "Më shumë autoritete"
+
+#: app/views/general/frontpage.rhtml:53
+msgid "More successful requests..."
+msgstr "Më shumë kërkesa te suksesshme"
+
+#: app/views/request/_describe_state.rhtml:66
+msgid "My request has been <strong>refused</strong>"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:112
+msgid "My requests"
+msgstr "Kërkesat e mia"
+
+#: app/models/public_body.rb:36
+msgid "Name can't be blank"
+msgstr "Emri nuk mund të jetë i zbrazët"
+
+#: app/models/public_body.rb:40
+msgid "Name is already taken"
+msgstr "Emri është i zënë"
+
+#: app/views/user/signchangeemail.rhtml:20
+msgid "New e-mail:"
+msgstr ""
+
+#: app/views/user/signchangepassword.rhtml:15
+msgid "New password:"
+msgstr ""
+
+#: app/views/user/signchangepassword.rhtml:20
+msgid "New password: (again)"
+msgstr ""
+
+#: app/views/request/show_response.rhtml:62
+#, fuzzy
+msgid "New response to your request"
+msgstr "Të lutem shkruaj një përmbledhje të kërkesës tënde"
+
+#: app/views/request/show_response.rhtml:68
+#, fuzzy
+msgid "New response to {{law_used_short}} request"
+msgstr "Të lutem shkruaj një përmbledhje të kërkesës tënde"
+
+#: app/views/general/search.rhtml:40
+msgid "Newest results first"
+msgstr ""
+
+#: app/views/user/set_draft_profile_photo.rhtml:32
+msgid "Next, crop your photo &gt;&gt;"
+msgstr ""
+
+#: app/views/general/search.rhtml:16
+msgid "Next, select the public authority you'd like to make the request from."
+msgstr ""
+
+#: app/views/general/search.rhtml:48
+msgid "No public authorities found"
+msgstr "Nuk u gjet asnjë autoritet"
+
+#: app/views/request/list.rhtml:23
+msgid "No requests of this sort yet."
+msgstr ""
+
+#: app/views/request/similar.rhtml:7
+msgid "No similar requests found."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:75
+msgid ""
+"Nobody has made any Freedom of Information requests to {{public_body_name}} "
+"using this site yet."
+msgstr ""
+
+#: app/views/request/_request_listing.rhtml:2
+#: app/views/public_body/_body_listing.rhtml:2
+msgid "None found."
+msgstr ""
+
+#: app/views/general/search.rhtml:7
+msgid "Nothing found for '{{search_terms}}'"
+msgstr "Asgjë nuk u gjet për '{{search_terms}}'"
+
+#: app/views/user/signchangeemail_confirm.rhtml:3
+#: app/views/user/signchangepassword_confirm.rhtml:1
+#: app/views/user/signchangepassword_confirm.rhtml:3
+msgid "Now check your email!"
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:10
+msgid "Now preview your follow up"
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:8
+msgid "Now preview your message asking for an internal review"
+msgstr ""
+
+#: app/views/request/preview.rhtml:5
+msgid "Now preview your request"
+msgstr ""
+
+#: app/views/user/set_draft_profile_photo.rhtml:46
+msgid "OR remove the existing photo"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:25
+msgid ""
+"OR, <strong>search</strong> for information others have requested using "
+"{{site_name}}"
+msgstr ""
+
+#: app/views/user/signchangeemail.rhtml:15
+msgid "Old e-mail:"
+msgstr ""
+
+#: app/views/user/show.rhtml:32
+msgid "On this page"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:93
+msgid "Only requests made using {{site_name}} are shown."
+msgstr ""
+
+#: locale/model_attributes.rb:21
+msgid "OutgoingMessage|Body"
+msgstr ""
+
+#: locale/model_attributes.rb:24
+msgid "OutgoingMessage|Last sent at"
+msgstr ""
+
+#: locale/model_attributes.rb:23
+msgid "OutgoingMessage|Message type"
+msgstr ""
+
+#: locale/model_attributes.rb:22
+msgid "OutgoingMessage|Status"
+msgstr ""
+
+#: locale/model_attributes.rb:25
+msgid "OutgoingMessage|What doing"
+msgstr ""
+
+#: app/views/user/_signup.rhtml:30 app/views/user/_signin.rhtml:16
+msgid "Password:"
+msgstr ""
+
+#: app/views/user/_signup.rhtml:35
+msgid "Password: (again)"
+msgstr ""
+
+#: app/views/general/search.rhtml:80
+msgid ""
+"People {{start_count}} to {{end_count}} of {{total_count}} for "
+"{{user_search_query}}"
+msgstr ""
+
+#: app/views/user/set_draft_profile_photo.rhtml:13
+msgid "Photo of you:"
+msgstr ""
+
+#: app/views/request/new.rhtml:76
+msgid "Plans and administrative measures that affect these matters"
+msgstr ""
+
+#: app/views/request_game/play.rhtml:1 app/views/request_game/play.rhtml:30
+msgid "Play the request categorisation game!"
+msgstr ""
+
+#: app/views/request/show.rhtml:100
+msgid "Please"
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:15
+msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
+msgstr ""
+
+#: app/views/request/show.rhtml:45
+msgid ""
+"Please <strong>answer the question above</strong> so we know whether the "
+msgstr ""
+
+#: app/views/user/show.rhtml:12
+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 ""
+
+#: app/views/request/_followup.rhtml:28
+msgid ""
+"Please <strong>only</strong> write messages directly relating to your \n"
+"\t\t\t\trequest {{request_link}}. If you would like to ask for information\n"
+"\t\t\t\tthat was not in your original request, then <a href=\"%s\">file a "
+"new request</a>."
+msgstr ""
+
+#: app/views/request/new.rhtml:60
+msgid "Please ask for environmental information only"
+msgstr ""
+
+#: app/views/user/bad_token.rhtml:2
+msgid ""
+"Please check the URL (i.e. the long code of letters and numbers) is copied\n"
+"correctly from your email."
+msgstr ""
+
+#: app/models/profile_photo.rb:91
+msgid "Please choose a file containing your photo."
+msgstr "Të lutem zgjedh një fajll që përmban foton tënde."
+
+#: app/models/outgoing_message.rb:162
+msgid "Please choose what sort of reply you are making."
+msgstr "Të lutem zgjedh llojin e përgjigjes."
+
+#: app/views/track_mailer/event_digest.rhtml:66
+msgid "Please click on the link below to cancel or alter these emails."
+msgstr ""
+
+#: app/views/user_mailer/changeemail_confirm.rhtml:3
+msgid ""
+"Please click on the link below to confirm that you want to \n"
+"change the email address that you use for WhatDoTheyKnow\n"
+"from "
+msgstr ""
+
+#: app/views/user_mailer/confirm_login.rhtml:3
+#, fuzzy
+msgid "Please click on the link below to confirm your email address."
+msgstr "Të lutem shkruaj adresën e emailit tënd"
+
+#: app/models/info_request.rb:106
+msgid ""
+"Please describe more what the request is about in the subject. There is no "
+"need to say it is an FOI request, we add that on anyway."
+msgstr ""
+"Të lutem përshkruaj në lëndë më gjerësisht se për çfarë është kërkesa. Nuk "
+"ka nevojë të shkruhet që bëhet fjalë për kërkesë për qasje në informata, ajo "
+"shtohet automatikisht."
+
+#: app/views/user/set_draft_profile_photo.rhtml:22
+msgid ""
+"Please don't upload offensive pictures. We will take down images\n"
+" that we consider inappropriate."
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:3
+msgid "Please enable \"cookies\" to carry on"
+msgstr ""
+
+#: app/models/user.rb:38
+msgid "Please enter a password"
+msgstr "Të lutem shkruaj fjalëkalimin"
+
+#: app/models/contact_validator.rb:30
+msgid "Please enter a subject"
+msgstr "Të lutem shkruaj lëndën"
+
+#: app/models/info_request.rb:35
+msgid "Please enter a summary of your request"
+msgstr "Të lutem shkruaj një përmbledhje të kërkesës tënde"
+
+#: app/models/user.rb:106
+msgid "Please enter a valid email address"
+msgstr "Të lutem shkruaj adresën korrekte të emailit"
+
+#: app/models/contact_validator.rb:31
+msgid "Please enter the message you want to send"
+msgstr "Të lutem shkruaj mesazhin që dëshiron do ta dërgosh"
+
+#: app/models/user.rb:49
+msgid "Please enter the same password twice"
+msgstr "Të lutem shkruaj fjalëkalimin e njëjtë dy herë"
+
+#: app/models/comment.rb:59
+msgid "Please enter your annotation"
+msgstr "Të lutem shto komentin tënd"
+
+#: app/models/user.rb:34 app/models/contact_validator.rb:29
+msgid "Please enter your email address"
+msgstr "Të lutem shkruaj adresën e emailit tënd"
+
+#: app/models/outgoing_message.rb:147
+msgid "Please enter your follow up message"
+msgstr "Të lutem shto mesazhin për përcjellje"
+
+#: app/models/outgoing_message.rb:150
+msgid "Please enter your letter requesting information"
+msgstr "Të lutem shkruaj letrën e kërkesës për informatë "
+
+#: app/models/user.rb:36 app/models/contact_validator.rb:28
+msgid "Please enter your name"
+msgstr "Të lutem shkruaj emrin tënd"
+
+#: app/models/user.rb:109
+msgid "Please enter your name, not your email address, in the name field."
+msgstr "Të lutem shkruaj emrin tënd e jo adresën e emailit ne këtë fushë."
+
+#: app/models/change_email_validator.rb:29
+msgid "Please enter your new email address"
+msgstr "Të lutem shkruaj adresën e re të emailit "
+
+#: app/models/change_email_validator.rb:28
+msgid "Please enter your old email address"
+msgstr "Të lutem shkruaj adresën e vjetër të emailit "
+
+#: app/models/change_email_validator.rb:30
+msgid "Please enter your password"
+msgstr "Të lutem shkruaj fjalëkalimin tënd"
+
+#: app/models/outgoing_message.rb:145
+msgid "Please give details explaining why you want a review"
+msgstr ""
+"Të lutem shkruaj hollësi spjeguese se për çfarë arsye po kërkon rishqyrtim"
+
+#: app/models/about_me_validator.rb:24
+msgid "Please keep it shorter than 500 characters"
+msgstr "Të lutem mbaje tekstin më të shkurër se 500 shenja"
+
+#: app/models/info_request.rb:103
+msgid ""
+"Please keep the summary short, like in the subject of an email. You can use "
+"a phrase, rather than a full sentence."
+msgstr ""
+"Të lutem bëje përmbledhjen sa më shkurt, sikurse në lëndën (subjektin) e "
+"emailit. Mund të shkruash një togfjalësh në vend të një fjalie të plotë."
+
+#: app/views/request/new.rhtml:79
+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 ""
+
+#: app/views/request/new_please_describe.rhtml:5
+msgid ""
+"Please select each of these requests in turn, and <strong>let everyone know</"
+"strong>\n"
+"if they are successful yet or not."
+msgstr ""
+
+#: app/models/outgoing_message.rb:156
+msgid ""
+"Please sign at the bottom with your name, or alter the \"%{signoff}\" "
+"signature"
+msgstr ""
+"Te lutem nënshkruaj në fund me emrin tënd, ose ndrysho \"% {signoff}\" "
+"nënshkrimin"
+
+#: app/views/user/sign.rhtml:8
+msgid "Please sign in as "
+msgstr ""
+
+#: app/views/outgoing_mailer/followup.rhtml:9
+#: app/views/outgoing_mailer/initial_request.rhtml:7
+msgid "Please use this email address for all replies to this request:"
+msgstr ""
+
+#: app/models/info_request.rb:36
+msgid "Please write a summary with some text in it"
+msgstr "Të lutem shkruaj përmbledhjen"
+
+#: app/models/info_request.rb:100
+msgid ""
+"Please write the summary using a mixture of capital and lower case letters. "
+"This makes it easier for others to read."
+msgstr ""
+"Të lutem shkruaj përmbledhjen duke përdorur kombinim të germave të mëdha dhe "
+"të vogla. Kjo e bën leximin për të tjerët më të lehtë."
+
+#: app/models/comment.rb:62
+msgid ""
+"Please write your annotation using a mixture of capital and lower case "
+"letters. This makes it easier for others to read."
+msgstr ""
+"Të lutem shkruaj komentin duke përdorur kombinim të germave të mëdha dhe të "
+"vogla. Kjo e bën leximin për të tjerët më të lehtë."
+
+#: app/models/outgoing_message.rb:159
+msgid ""
+"Please write your message using a mixture of capital and lower case letters. "
+"This makes it easier for others to read."
+msgstr ""
+"Të lutem shkruaj mesazhin duke përdorur kombinim të germave të mëdha dhe të "
+"vogla. Kjo e bën leximin për të tjerët më të lehtë."
+
+#: app/views/comment/new.rhtml:41
+msgid ""
+"Point to <strong>related information</strong>, campaigns or forums which may "
+"be useful."
+msgstr ""
+
+#: locale/model_attributes.rb:56
+msgid "PostRedirect|Circumstance"
+msgstr ""
+
+#: locale/model_attributes.rb:54
+msgid "PostRedirect|Email token"
+msgstr ""
+
+#: locale/model_attributes.rb:53
+msgid "PostRedirect|Post params yaml"
+msgstr ""
+
+#: locale/model_attributes.rb:55
+msgid "PostRedirect|Reason params yaml"
+msgstr ""
+
+#: locale/model_attributes.rb:51
+msgid "PostRedirect|Token"
+msgstr ""
+
+#: locale/model_attributes.rb:52
+msgid "PostRedirect|Uri"
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:1
+msgid "Preview follow up to '"
+msgstr ""
+
+#: app/views/comment/_comment_form.rhtml:16
+#, fuzzy
+msgid "Preview your annotation"
+msgstr "Të lutem shto komentin tënd"
+
+#: app/views/request/_followup.rhtml:100
+msgid "Preview your message"
+msgstr ""
+
+#: app/views/request/new.rhtml:143
+msgid "Preview your public request"
+msgstr ""
+
+#: locale/model_attributes.rb:18
+msgid "ProfilePhoto|Data"
+msgstr ""
+
+#: locale/model_attributes.rb:19
+msgid "ProfilePhoto|Draft"
+msgstr ""
+
+#: app/views/public_body/list.rhtml:37
+#, fuzzy
+msgid "Public authorities - {{description}}"
+msgstr "Nuk u gjet asnjë autoritet"
+
+#: app/views/general/search.rhtml:70
+msgid ""
+"Public authorities {{start_count}} to {{end_count}} of {{total_count}} for "
+"{{user_search_query}}"
+msgstr ""
+
+#: locale/model_attributes.rb:12
+msgid "PublicBody|First letter"
+msgstr ""
+
+#: locale/model_attributes.rb:10
+msgid "PublicBody|Home page"
+msgstr ""
+
+#: locale/model_attributes.rb:8
+msgid "PublicBody|Last edit comment"
+msgstr ""
+
+#: locale/model_attributes.rb:7
+msgid "PublicBody|Last edit editor"
+msgstr ""
+
+#: locale/model_attributes.rb:3
+msgid "PublicBody|Name"
+msgstr ""
+
+#: locale/model_attributes.rb:11
+msgid "PublicBody|Notes"
+msgstr ""
+
+#: locale/model_attributes.rb:13
+msgid "PublicBody|Publication scheme"
+msgstr ""
+
+#: locale/model_attributes.rb:5
+msgid "PublicBody|Request email"
+msgstr ""
+
+#: locale/model_attributes.rb:4
+msgid "PublicBody|Short name"
+msgstr ""
+
+#: locale/model_attributes.rb:9
+msgid "PublicBody|Url name"
+msgstr ""
+
+#: locale/model_attributes.rb:6
+msgid "PublicBody|Version"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:10
+msgid "Publication scheme"
+msgstr ""
+
+#: locale/model_attributes.rb:49
+msgid "RawEmail|Data binary"
+msgstr ""
+
+#: locale/model_attributes.rb:48
+msgid "RawEmail|Data text"
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:49
+msgid "Re-edit this message"
+msgstr ""
+
+#: app/views/request/preview.rhtml:40
+msgid "Re-edit this request"
+msgstr ""
+
+#: app/views/general/search.rhtml:125
+msgid ""
+"Read about <a href=\"%s\">advanced search operators</a>, such as proximity "
+"and wildcards."
+msgstr ""
+
+#: app/views/layouts/default.rhtml:114
+msgid "Read blog"
+msgstr "Lexo blog-un"
+
+#: app/views/request/new.rhtml:16
+msgid "Read this before writing your {{info_request_law_used_full}} request"
+msgstr ""
+
+#: app/views/general/search.rhtml:42
+msgid "Recently described results first"
+msgstr ""
+
+#: app/controllers/request_controller.rb:122
+#, fuzzy
+msgid "Recently sent Freedom of Information requests"
+msgstr "%d Freedom of Information requests"
+
+#: app/views/request/list.rhtml:6
+#, fuzzy
+msgid "Recently sent requests"
+msgstr "Kërkesat e mia"
+
+#: app/controllers/request_controller.rb:127
+#, fuzzy
+msgid "Recently successful responses"
+msgstr "Më shumë kërkesa te suksesshme"
+
+#: app/views/user/_signin.rhtml:26
+msgid ""
+"Remember me</label> (keeps you signed in longer;\n"
+" do not use on a public computer) "
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:27
+msgid "Reply to "
+msgstr ""
+
+#: app/views/comment/_single_comment.rhtml:24
+msgid "Report abuse"
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:37
+msgid "Request an internal review"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:4
+msgid "Request an internal review from"
+msgstr ""
+
+#: app/views/request/hidden.rhtml:1
+msgid "Request has been removed"
+msgstr ""
+
+#: app/views/request/_request_listing_via_event.rhtml:28
+msgid ""
+"Request sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
+msgstr ""
+
+#: app/views/request/_request_listing_via_event.rhtml:36
+msgid ""
+"Request to {{public_body_name}} by {{info_request_user}}. Annotated by "
+"{{event_comment_user}} on {{date}}."
+msgstr ""
+
+#: app/views/request/_request_listing_single.rhtml:12
+msgid ""
+"Requested from {{public_body_name}} by {{info_request_user}} on {{date}}"
+msgstr ""
+
+#: app/views/request/_sidebar_request_listing.rhtml:13
+msgid "Requested on {{date}}"
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:11
+msgid "Respond by email"
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:46
+#, fuzzy
+msgid "Respond to request"
+msgstr "Bëjë kërkesë"
+
+#: app/views/request/upload_response.rhtml:5
+msgid "Respond to the FOI request"
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:21
+msgid "Respond using the web"
+msgstr ""
+
+#: app/views/request/show.rhtml:70
+msgid "Response to this request is <strong>delayed</strong>."
+msgstr ""
+
+#: app/views/request/show.rhtml:78
+msgid "Response to this request is <strong>long overdue</strong>."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:64
+#, fuzzy
+msgid "Response to your request"
+msgstr "Të lutem shkruaj një përmbledhje të kërkesës tënde"
+
+#: app/views/request/upload_response.rhtml:28
+msgid "Response:"
+msgstr ""
+
+#: app/views/general/search.rhtml:9
+msgid "Results page {{page_number}}"
+msgstr "Faqja e rezultateve {{page_number}}"
+
+#: app/views/user/set_profile_about_me.rhtml:35
+msgid "Save"
+msgstr ""
+
+#: app/views/general/search.rhtml:29 app/views/general/frontpage.rhtml:16
+#: app/views/general/exception_caught.rhtml:10 app/views/request/new.rhtml:31
+#: app/views/layouts/default.rhtml:102
+msgid "Search"
+msgstr "Kërko"
+
+#: app/views/general/search.rhtml:4
+msgid "Search Freedom of Information requests, public authorities and users"
+msgstr ""
+
+#: app/views/general/exception_caught.rhtml:7
+msgid "Search the site to find what you were looking for."
+msgstr ""
+
+#: app/views/request/_followup.rhtml:7
+#, fuzzy
+msgid "Send a public follow up message to"
+msgstr "Të lutem shto mesazhin për përcjellje"
+
+#: app/views/request/_followup.rhtml:10
+msgid "Send a public reply to"
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:24
+msgid "Send follow up to "
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:50
+msgid "Send message"
+msgstr ""
+
+#: app/views/user/show.rhtml:69
+msgid "Send message to "
+msgstr ""
+
+#: app/views/request/preview.rhtml:41
+msgid "Send public "
+msgstr ""
+
+#: app/views/user/show.rhtml:53
+msgid "Set your profile photo"
+msgstr ""
+
+#: app/models/public_body.rb:39
+msgid "Short name is already taken"
+msgstr "Emri i shkurtë është i zënë"
+
+#: app/views/general/search.rhtml:38
+msgid "Show most relevant results first"
+msgstr ""
+
+#: app/views/request/list.rhtml:2 app/views/public_body/list.rhtml:3
+msgid "Show only..."
+msgstr ""
+
+#: app/views/user/show.rhtml:113 app/views/user/_signin.rhtml:31
+#, fuzzy
+msgid "Sign in"
+msgstr "Ç'kyçu"
+
+#: app/views/user/sign.rhtml:20
+msgid "Sign in or make a new account"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:124
+msgid "Sign in or sign up"
+msgstr "Kyçu ose Ç'kyçu"
+
+#: app/views/layouts/default.rhtml:121
+msgid "Sign out"
+msgstr "Ç'kyçu"
+
+#: app/views/user/_signup.rhtml:41
+#, fuzzy
+msgid "Sign up"
+msgstr "Ç'kyçu"
+
+#: app/views/request/_sidebar.rhtml:30
+#, fuzzy
+msgid "Similar requests"
+msgstr "Shiko kërkesat"
+
+#: app/views/request_game/play.rhtml:31
+msgid ""
+"Some people who've made requests haven't let us know whether they were\n"
+"successful or not. We need <strong>your</strong> help &ndash;\n"
+"choose one of these requests, read it, and let everyone know whether or not "
+"the\n"
+"information has been provided. Everyone'll be exceedingly grateful."
+msgstr ""
+
+#: app/views/user_mailer/changeemail_already_used.rhtml:1
+msgid ""
+"Someone, perhaps you, just tried to change their email address on\n"
+"WhatDoTheyKnow.com from "
+msgstr ""
+
+#: app/views/general/exception_caught.rhtml:1
+msgid "Sorry, we couldn't find that page"
+msgstr ""
+
+#: app/views/request/new.rhtml:53
+#, fuzzy
+msgid "Special note for this authority!"
+msgstr "Më shumë për këtë autoritet"
+
+#: app/views/request/followup_preview.rhtml:23
+#: app/views/request/preview.rhtml:18
+msgid "Subject:"
+msgstr ""
+
+#: app/views/user/signchangepassword_send_confirm.rhtml:26
+msgid "Submit"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:102
+msgid "Submit status"
+msgstr ""
+
+#: app/views/request/list.rhtml:5
+msgid "Successful responses"
+msgstr ""
+
+#: app/views/comment/new.rhtml:38
+msgid ""
+"Suggest how the requester can find the <strong>rest of the information</"
+"strong>."
+msgstr ""
+
+#: app/views/request/new.rhtml:93
+msgid "Summary:"
+msgstr ""
+
+#: app/views/general/search.rhtml:128
+msgid "Table of statuses"
+msgstr ""
+
+#: app/views/request/preview.rhtml:45
+msgid "Tags:"
+msgstr ""
+
+#: app/views/request_game/play.rhtml:42
+msgid ""
+"Thanks for helping - your work will make it easier for everyone to find "
+"successful\n"
+"responses, and maybe even let us make league tables..."
+msgstr ""
+
+#: app/views/user/show.rhtml:20
+msgid ""
+"Thanks very much - this will help others find useful stuff. We'll\n"
+" also, if you need it, give advice on what to do next about your\n"
+" requests."
+msgstr ""
+
+#: app/views/request/new_please_describe.rhtml:20
+msgid ""
+"Thanks very much for helping keep everything <strong>neat and organised</"
+"strong>.\n"
+" We'll also, if you need it, give you advice on what to do next about "
+"each of your\n"
+" requests."
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:49
+msgid "The <strong>review has finished</strong> and overall:"
+msgstr ""
+
+#: app/views/request/new.rhtml:62
+msgid "The Freedom of Information Act <strong>does not apply</strong> to"
+msgstr ""
+
+#: app/views/user_mailer/changeemail_already_used.rhtml:7
+msgid "The accounts have been left as they previously were."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:28
+msgid ""
+"The authority only has a <strong>paper copy</strong> of the information."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:18
+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 ""
+
+#: app/views/request/show.rhtml:108
+msgid ""
+"The authority would like to / has <strong>responded by post</strong> to this "
+"request."
+msgstr ""
+
+#: app/views/request_mailer/stopped_responses.rhtml:1
+msgid ""
+"The email that you, on behalf of {{public_body}}, sent to\n"
+"{{user}} to reply to an {{law_used_short}}\n"
+"request has not been delivered."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:22
+msgid ""
+"The law, the Ministry of Justice and the Information Commissioner\n"
+" all say that an email is sufficient (<a href=\"%s\">more "
+"details</a>).\n"
+" At the bottom of this page, write a reply to the authority "
+"explaining this to them."
+msgstr ""
+
+#: app/views/general/exception_caught.rhtml:3
+msgid "The page either doesn't exist, or is broken. Things you can try now:"
+msgstr ""
+
+#: app/views/request/show.rhtml:103
+msgid "The request is <strong>waiting for clarification</strong>."
+msgstr ""
+
+#: app/views/request/show.rhtml:96
+msgid "The request was <strong>partially successful</strong>."
+msgstr ""
+
+#: app/views/request/show.rhtml:86
+msgid "The request was <strong>refused</strong> by"
+msgstr ""
+
+#: app/views/request/show.rhtml:88
+msgid "The request was <strong>successful</strong>."
+msgstr ""
+
+#: app/views/request/hidden.rhtml:9
+msgid ""
+"The request you have tried to view has been removed. There are\n"
+"various reasons why we might have done this, sorry we can't be more specific "
+"here. Please <a\n"
+" href=\"%s\">contact us</a> if you have any questions."
+msgstr ""
+
+#: app/views/request/_followup.rhtml:35
+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 ""
+
+#: app/views/request/_followup.rhtml:47
+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 ""
+
+#: app/views/public_body/show.rhtml:102
+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 ""
+
+#: app/views/user/show.rhtml:141
+msgid ""
+"The search index is currently offline, so we can't show the Freedom of "
+"Information requests this person has made."
+msgstr ""
+
+#: app/views/request_mailer/comment_on_alert_plural.rhtml:1
+msgid ""
+"There are {{count}} new annotations on your {{info_request}} request. Follow "
+"this link to see what they wrote."
+msgstr ""
+
+#: app/views/user/show.rhtml:4
+msgid ""
+"There is <strong>more than one person</strong> who uses this site and has "
+"this name. \n"
+" One of them is shown below, you may mean a different one:"
+msgstr ""
+
+#: app/views/request/show.rhtml:112
+msgid ""
+"There was a <strong>delivery error</strong> or similar, which needs fixing "
+"by the WhatDoTheyKnow team."
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:38
+msgid "They are going to reply <strong>by post</strong>"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:54
+msgid ""
+"They do <strong>not have</strong> the information <small>(maybe they say who "
+"does)</small>"
+msgstr ""
+
+#: app/views/user/show.rhtml:83
+msgid "They have been given the following explanation:"
+msgstr ""
+
+#: app/views/request_mailer/overdue_alert.rhtml:3
+msgid ""
+"They have not replied to your {{law_used_short}} request {{title}} promptly, "
+"as normally required by law"
+msgstr ""
+
+#: app/views/request_mailer/very_overdue_alert.rhtml:3
+msgid ""
+"They have not replied to your {{law_used_short}} request {{title}}, \n"
+"as required by law"
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:3
+msgid "Things to do with this request"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:60
+msgid "This authority no longer exists, so you cannot make a request to it."
+msgstr ""
+
+#: app/views/request/_hidden_correspondence.rhtml:23
+msgid ""
+"This comment has been hidden. See annotations to\n"
+" find out why. If you are the requester, then you may <a href=\"%"
+"s\">sign in</a> to view the response."
+msgstr ""
+
+#: app/views/request/new.rhtml:65
+msgid ""
+"This covers a very wide spectrum of information about the state of\n"
+" the <strong>natural and built environment</strong>, such as:"
+msgstr ""
+
+#: app/views/request/_view_html_prefix.rhtml:9
+msgid ""
+"This is an HTML version of an attachment to the Freedom of Information "
+"request"
+msgstr ""
+
+#: app/views/request_mailer/stopped_responses.rhtml:5
+msgid ""
+"This is because {{title}} is an old request that has been\n"
+"marked to no longer receive responses."
+msgstr ""
+
+#: app/views/track/_tracking_links.rhtml:9
+msgid ""
+"This is your own request, so you will be automatically emailed when new "
+"responses arrive."
+msgstr ""
+
+#: app/views/request/_hidden_correspondence.rhtml:17
+msgid ""
+"This outgoing message has been hidden. See annotations to\n"
+"\t\t\t\t\t\tfind out why. If you are the requester, then you may <a href=\"%"
+"s\">sign in</a> to view the response."
+msgstr ""
+
+#: app/views/user/show.rhtml:122
+msgid "This person has"
+msgstr ""
+
+#: app/views/user/show.rhtml:152
+msgid "This person's"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:85
+msgid "This request <strong>requires administrator attention</strong>"
+msgstr ""
+
+#: app/views/request/show.rhtml:48
+msgid "This request has an <strong>unknown status</strong>."
+msgstr ""
+
+#: app/views/request/show.rhtml:116
+msgid ""
+"This request has been <strong>withdrawn</strong> by the person who made "
+"it. \n"
+" \t There may be an explanation in the correspondence below."
+msgstr ""
+
+#: app/views/request/show.rhtml:114
+msgid ""
+"This request has had an unusual response, and <strong>requires attention</"
+"strong> from the WhatDoTheyKnow team."
+msgstr ""
+
+#: app/views/request/show.rhtml:5
+msgid ""
+"This request has prominence 'hidden'. You can only see it because you are "
+"logged\n"
+" in as a super user."
+msgstr ""
+
+#: app/views/request/show.rhtml:11
+msgid ""
+"This request is hidden, so that only you the requester can see it. Please\n"
+" <a href=\"%s\">contact us</a> if you are not sure why."
+msgstr ""
+
+#: app/views/request/_hidden_correspondence.rhtml:10
+msgid ""
+"This response has been hidden. See annotations to find out why.\n"
+" If you are the requester, then you may <a href=\"%s\">sign in</"
+"a> to view the response."
+msgstr ""
+
+#: app/views/request/new.rhtml:49
+msgid ""
+"This site is <strong>public</strong>. Everything you type and any response "
+"will be published."
+msgstr ""
+
+#: app/views/request/details.rhtml:6
+msgid ""
+"This table shows the technical details of the internal events that happened\n"
+"to this request on WhatDoTheyKnow. This could be used to generate "
+"information about\n"
+"the speed with which authorities respond to requests, the number of "
+"requests\n"
+"which require a postal response and much more."
+msgstr ""
+
+#: app/views/user/show.rhtml:79
+msgid "This user has been banned from WhatDoTheyKnow.com "
+msgstr ""
+
+#: app/views/user_mailer/changeemail_already_used.rhtml:4
+msgid ""
+"This was not possible because there is already an account using \n"
+"the email address "
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:5
+msgid ""
+"To carry on, you need to sign in or make an account. Unfortunately, there\n"
+"was a technical problem trying to do this."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:39
+msgid "To do that please send a private email to "
+msgstr ""
+
+#: app/views/request_mailer/not_clarified_alert.rhtml:2
+msgid "To do this, first click on the link below."
+msgstr ""
+
+#: app/views/request_mailer/old_unclassified_updated.rhtml:1
+msgid ""
+"To help us keep the site tidy, someone else has updated the status of the \n"
+"{{law_used_full}} request {{title}} \n"
+"that you made to {{public_body}}, to \n"
+"{{display_status}} If you disagree with \n"
+"their categorisation, please update the status again yourself to what\n"
+"you believe to be more accurate."
+msgstr ""
+
+#: app/views/request_mailer/new_response_reminder_alert.rhtml:1
+msgid "To let us know, follow this link and then select the appropriate box."
+msgstr ""
+
+#: app/views/public_body/view_email_captcha.rhtml:5
+msgid ""
+"To view the email address that we use to send FOI requests to "
+"{{@public_body_name}}, please enter these words."
+msgstr ""
+
+#: app/views/request_mailer/new_response.rhtml:5
+msgid "To view the response, click on the link below."
+msgstr ""
+
+#: app/views/request/_request_listing_short_via_event.rhtml:9
+#, fuzzy
+msgid "To {{public_body_link_absolute}}"
+msgstr "i quajtur edhe {{public_body_short_name}}"
+
+#: app/views/request/new.rhtml:88 app/views/request/followup_preview.rhtml:22
+#: app/views/request/preview.rhtml:17
+msgid "To:"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:3
+msgid "Track this authority"
+msgstr "Përcjell këtë autoritet"
+
+#: app/views/user/show.rhtml:29
+#, fuzzy
+msgid "Track this person"
+msgstr "Përcjell këtë autoritet"
+
+#: app/views/request/_sidebar.rhtml:2
+#, fuzzy
+msgid "Track this request"
+msgstr "Përcjell këtë autoritet"
+
+#: locale/model_attributes.rb:33
+msgid "TrackThing|Track medium"
+msgstr ""
+
+#: locale/model_attributes.rb:32
+msgid "TrackThing|Track query"
+msgstr ""
+
+#: locale/model_attributes.rb:34
+msgid "TrackThing|Track type"
+msgstr ""
+
+#: app/views/general/search.rhtml:121
+msgid ""
+"Type <strong><code>01/01/2008..14/01/2008</code></strong> to only show "
+"things that happened in the first two weeks of January."
+msgstr ""
+
+#: app/models/public_body.rb:37
+msgid "URL name can't be blank"
+msgstr "URL emri nuk mund të jetë i zbrazët"
+
+#: app/views/request/followup_bad.rhtml:4
+msgid "Unable to send a reply to {{username}}"
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:2
+msgid "Unable to send follow up message to {{username}}"
+msgstr ""
+
+#: app/views/request/list.rhtml:29
+msgid "Unexpected search result type"
+msgstr ""
+
+#: app/views/request/similar.rhtml:18
+msgid "Unexpected search result type "
+msgstr ""
+
+#: app/views/user/wrong_user_unknown_email.rhtml:3
+msgid ""
+"Unfortunately we don't know the FOI\n"
+"email address for that authority, so we can't validate this.\n"
+"Please <a href=\"%s\">contact us</a> to sort it out."
+msgstr ""
+
+#: app/views/request/new_bad_contact.rhtml:5
+msgid ""
+"Unfortunately, we do not have a working {{info_request_law_used_full}}\n"
+"address for"
+msgstr ""
+
+#: app/views/general/exception_caught.rhtml:18
+msgid "Unknown"
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:13
+#: app/views/request/_after_actions.rhtml:33
+#, fuzzy
+msgid "Update the status of this request"
+msgstr "Dërgom përditësime me email në lidhje me këtë kërkesë"
+
+#: app/views/general/search.rhtml:112
+msgid ""
+"Use OR (in capital letters) where you don't mind which word, e.g. "
+"<strong><code>commons OR lords</code></strong>"
+msgstr ""
+
+#: app/views/general/search.rhtml:113
+msgid ""
+"Use quotes when you want to find an exact phrase, e.g. <strong><code>"
+"\"Liverpool City Council\"</code></strong>"
+msgstr ""
+
+#: locale/model_attributes.rb:68
+msgid "UserInfoRequestSentAlert|Alert type"
+msgstr ""
+
+#: locale/model_attributes.rb:79
+msgid "User|About me"
+msgstr ""
+
+#: locale/model_attributes.rb:77
+msgid "User|Admin level"
+msgstr ""
+
+#: locale/model_attributes.rb:78
+msgid "User|Ban text"
+msgstr ""
+
+#: locale/model_attributes.rb:70
+msgid "User|Email"
+msgstr ""
+
+#: locale/model_attributes.rb:74
+msgid "User|Email confirmed"
+msgstr ""
+
+#: locale/model_attributes.rb:72
+msgid "User|Hashed password"
+msgstr ""
+
+#: locale/model_attributes.rb:76
+msgid "User|Last daily track email"
+msgstr ""
+
+#: locale/model_attributes.rb:71
+msgid "User|Name"
+msgstr ""
+
+#: locale/model_attributes.rb:73
+msgid "User|Salt"
+msgstr ""
+
+#: locale/model_attributes.rb:75
+msgid "User|Url name"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:22
+msgid "View FOI email address"
+msgstr ""
+
+#: app/views/public_body/view_email_captcha.rhtml:1
+#, fuzzy
+msgid "View FOI email address for '{{public_body_name}}'"
+msgstr "i quajtur edhe {{public_body_short_name}}"
+
+#: app/views/public_body/view_email_captcha.rhtml:3
+#, fuzzy
+msgid "View FOI email address for {{public_body_name}}"
+msgstr "i quajtur edhe {{public_body_short_name}}"
+
+#: app/views/contact_mailer/user_message.rhtml:10
+#, fuzzy
+msgid "View Freedom of Information requests made by"
+msgstr "%d Freedom of Information requests"
+
+#: app/views/layouts/default.rhtml:110
+msgid "View authorities"
+msgstr "Shiko autoritetet"
+
+#: app/views/public_body/view_email_captcha.rhtml:12
+msgid "View email"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:109
+msgid "View requests"
+msgstr "Shiko kërkesat"
+
+#: app/views/request/show.rhtml:110
+msgid ""
+"Waiting for an <strong>internal review</strong> by {{public_body_link}} of "
+"their handling of this request."
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:24
+msgid "We do not have a working"
+msgstr ""
+
+#: app/views/public_body/view_email.rhtml:17
+msgid "We do not have a working request email address for this authority."
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:108
+msgid ""
+"We don't know whether the most recent response to this request contains\n"
+" information or not\n"
+" &ndash;\n"
+"\tif you are {{user_link}} please <a href=\"%s\">sign in</a> and let "
+"everyone know."
+msgstr ""
+
+#: app/views/user_mailer/confirm_login.rhtml:8
+msgid ""
+"We will not reveal your email address to anybody unless you\n"
+"or the law tell us to."
+msgstr ""
+
+#: app/views/user_mailer/changeemail_confirm.rhtml:9
+msgid ""
+"We will not reveal your email addresses to anybody unless you\n"
+"or the law tell us to."
+msgstr ""
+
+#: app/views/request/show.rhtml:54
+msgid "We're waiting for"
+msgstr ""
+
+#: app/views/request/show.rhtml:50
+msgid "We're waiting for someone to read"
+msgstr ""
+
+#: app/views/user/signchangeemail_confirm.rhtml:6
+msgid ""
+"We've sent an email to your new email address. You'll need to click the link "
+"in\n"
+"it before your email address will be changed."
+msgstr ""
+
+#: app/views/user/confirm.rhtml:6
+msgid ""
+"We've sent you an email, and you'll need to click the link in it before you "
+"can\n"
+"continue."
+msgstr ""
+
+#: app/views/user/signchangepassword_confirm.rhtml:6
+msgid ""
+"We've sent you an email, click the link in it, then you can change your "
+"password."
+msgstr ""
+
+#: app/views/request/_followup.rhtml:62
+msgid "What are you doing?"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:4
+msgid "What best describes the status of this request now?"
+msgstr ""
+
+#: app/views/public_body/view_email.rhtml:7
+msgid ""
+"WhatDoTheyKnow sends new requests to <strong>{{request_email}}</strong> for "
+"this authority."
+msgstr ""
+
+#: app/views/request_mailer/new_response.rhtml:9
+msgid ""
+"When you get there, please update the status to say if the response \n"
+"contains any useful information."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:44
+msgid ""
+"When you receive the paper response, please help\n"
+" others find out what it says:"
+msgstr ""
+
+#: app/views/request/new_please_describe.rhtml:16
+msgid ""
+"When you're done, <strong>come back here</strong>, <a href=\"%s\">reload "
+"this page</a> and file your new request."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:13
+msgid "Which of these is happening?"
+msgstr ""
+
+#: app/views/request/new.rhtml:46
+msgid "Write your request in <strong>simple, precise language</strong>."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:71
+msgid ""
+"XXX this section needs localising re EIR as these are specific to UK law"
+msgstr ""
+
+#: app/views/comment/_single_comment.rhtml:10
+msgid "You"
+msgstr ""
+
+#: app/views/request/show.rhtml:81
+msgid "You can <strong>complain</strong> by"
+msgstr ""
+
+#: app/views/request/details.rhtml:57
+msgid ""
+"You can get this page in computer-readable format as part of the main JSON\n"
+"page for the request. See the <a href=\"%s\">API documentation</a>."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:41
+msgid ""
+"You can only request information about the environment from this authority."
+msgstr ""
+
+#: app/views/user/show.rhtml:122
+msgid "You have"
+msgstr ""
+
+#: app/views/request_mailer/new_response.rhtml:1
+msgid "You have a new response to the {{law_used_full}} request "
+msgstr ""
+
+#: app/views/user_mailer/already_registered.rhtml:3
+msgid ""
+"You just tried to sign up to WhatDoTheyKnow.com, when you\n"
+"already have an account. Your name and password have been\n"
+"left as they previously were.\n"
+"\n"
+"Please click on the link below."
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:16
+msgid ""
+"You may <strong>include attachments</strong>. If you would like to attach a\n"
+"file too large for email, use the form below."
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:25
+msgid ""
+"You may be able to find\n"
+" one on their website, or by phoning them up and asking. If you manage\n"
+" to find one, then please <a href=\"%s\">send it to us</a>."
+msgstr ""
+
+#: app/views/request/new_bad_contact.rhtml:6
+msgid ""
+"You may be able to find\n"
+"one on their website, or by phoning them up and asking. If you manage\n"
+"to find one, then please <a href=\"%s\">send it to us</a>."
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:13
+msgid ""
+"You should have received a copy of the request by email, and you can "
+"respond\n"
+"by <strong>simply replying</strong> to that email. For your convenience, "
+"here is the address:"
+msgstr ""
+
+#: app/views/request/show_response.rhtml:36
+msgid ""
+"You want to <strong>give your postal address</strong> to the authority in "
+"private."
+msgstr ""
+
+#: app/views/user/banned.rhtml:9
+msgid ""
+"You will be unable to make new requests, send follow ups, add annotations "
+"or\n"
+"send messages to other users. You may continue to view other requests, and "
+"set\n"
+"up\n"
+"email alerts."
+msgstr ""
+
+#: app/views/request_mailer/not_clarified_alert.rhtml:6
+msgid ""
+"You will only get an answer to your request if you follow up\n"
+"with the clarification."
+msgstr ""
+
+#: app/views/user/show.rhtml:152
+msgid "Your "
+msgstr ""
+
+#: app/views/user/_signup.rhtml:22
+msgid ""
+"Your <strong>name will appear publicly</strong> \n"
+" (<a href=\"%s\">why?</a>)\n"
+" on this website and in search engines. If you\n"
+" are thinking of using a pseudonym, please \n"
+" <a href=\"%s\">read this first</a>."
+msgstr ""
+
+#: app/views/contact_mailer/user_message.rhtml:3
+msgid ""
+"Your details have not been given to anyone, unless you choose to reply to "
+"this\n"
+"message, which will then go directly to the person who wrote the message."
+msgstr ""
+
+#: app/views/user/signchangepassword_send_confirm.rhtml:13
+#: app/views/user/_signup.rhtml:9 app/views/user/_signin.rhtml:11
+msgid "Your e-mail:"
+msgstr ""
+
+#: app/views/user/show.rhtml:168
+msgid "Your email subscriptions"
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:15
+msgid "Your message will appear in <strong>search engines</strong>"
+msgstr ""
+
+#: app/views/comment/preview.rhtml:10
+msgid ""
+"Your name and annotation will appear in <strong>search engines</strong>."
+msgstr ""
+
+#: app/views/request/preview.rhtml:8
+msgid ""
+"Your name, request and any responses will appear in <strong>search engines</"
+"strong>\n"
+" (<a href=\"%s\">details</a>)."
+msgstr ""
+
+#: app/views/user/_signup.rhtml:18
+msgid "Your name:"
+msgstr ""
+
+#: app/views/request_mailer/stopped_responses.rhtml:14
+msgid "Your original message is attached."
+msgstr ""
+
+#: app/views/user/signchangeemail.rhtml:25
+#, fuzzy
+msgid "Your password:"
+msgstr "Të lutem shkruaj fjalëkalimin tënd"
+
+#: app/views/user/set_draft_profile_photo.rhtml:18
+msgid ""
+"Your photo will be shown in public <strong>on the Internet</strong>, \n"
+" wherever you do something on WhatDoTheyKnow."
+msgstr ""
+
+#: app/views/request_mailer/new_response_reminder_alert.rhtml:5
+msgid ""
+"Your request was called {{info_request}}. Letting everyone know whether you "
+"got the information will help us keep tabs on"
+msgstr ""
+
+#: app/views/request/new.rhtml:109
+#, fuzzy
+msgid "Your request:"
+msgstr "Kërkesat e mia"
+
+#: app/views/request/upload_response.rhtml:8
+msgid ""
+"Your response will <strong>appear on the Internet</strong>, <a href=\"%s"
+"\">read why</a> and answers to other questions."
+msgstr ""
+
+#: app/views/request/new.rhtml:97
+msgid ""
+"a one line summary of the information you are requesting, \n"
+"\t\t\te.g."
+msgstr ""
+
+#: app/views/track_mailer/event_digest.rhtml:31
+#, fuzzy
+msgid "added an annotation"
+msgstr "Të lutem shto komentin tënd"
+
+#: app/views/request/followup_bad.rhtml:25
+msgid "address for"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:32
+msgid "admin"
+msgstr "admin"
+
+#: app/views/public_body/show.rhtml:30
+msgid "also called {{public_body_short_name}}"
+msgstr "i quajtur edhe {{public_body_short_name}}"
+
+#: app/views/user/wrong_user.rhtml:5
+msgid "and sign in as "
+msgstr ""
+
+#: app/views/request/show.rhtml:52
+msgid ""
+"and update the status accordingly. Perhaps <strong>you</strong> might like "
+"to help out by doing that?"
+msgstr ""
+
+#: app/views/request/show.rhtml:57
+msgid "and update the status."
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:102
+msgid "and we'll suggest <strong>what to do next</strong>"
+msgstr ""
+
+#: app/views/user/show.rhtml:153
+msgid "annotation"
+msgstr ""
+
+#: app/views/user/show.rhtml:147
+msgid "annotations"
+msgstr ""
+
+#: app/views/request_mailer/very_overdue_alert.rhtml:1
+msgid "are long overdue."
+msgstr ""
+
+#: app/controllers/public_body_controller.rb:110
+msgid "beginning with"
+msgstr ""
+
+#: app/views/request/show.rhtml:75
+msgid "by"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:41
+msgid "by <strong>{{date}}</strong>"
+msgstr ""
+
+#: app/views/request/_request_listing_via_event.rhtml:34
+msgid "by {{public_body_name}} to {{info_request_user}} on {{date}}."
+msgstr ""
+
+#: app/views/request/_request_listing_short_via_event.rhtml:10
+msgid "by {{user_link_absolute}}"
+msgstr ""
+
+#: locale/model_attributes.rb:42
+msgid "censor rule"
+msgstr ""
+
+#: locale/model_attributes.rb:26
+msgid "comment"
+msgstr ""
+
+#: app/views/request/show_response.rhtml:41
+msgid ""
+"containing your postal address, and asking them to reply to this request.\n"
+" Or you could phone them."
+msgstr ""
+
+#: app/views/request_mailer/overdue_alert.rhtml:3
+msgid "during term time"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:18
+msgid "e.g."
+msgstr "p.sh."
+
+#: app/views/user/show.rhtml:96
+msgid "edit text about you"
+msgstr ""
+
+#: app/views/user/show.rhtml:171
+msgid "email subscription"
+msgstr ""
+
+#: app/views/request_mailer/very_overdue_alert.rhtml:4
+msgid "even during holidays"
+msgstr ""
+
+#: locale/model_attributes.rb:14
+msgid "exim log"
+msgstr "exim log"
+
+#: locale/model_attributes.rb:60
+msgid "exim log done"
+msgstr ""
+
+#: app/views/request_mailer/requires_admin.rhtml:2
+msgid "has reported an"
+msgstr ""
+
+#: app/views/request_mailer/overdue_alert.rhtml:1
+msgid "have delayed."
+msgstr ""
+
+#: locale/model_attributes.rb:57
+msgid "holiday"
+msgstr "festë"
+
+#: app/views/request/show.rhtml:63 app/views/request/show.rhtml:73
+#: app/views/request/_followup.rhtml:39
+msgid "in term time"
+msgstr ""
+
+#: app/views/public_body/list.rhtml:42
+#, fuzzy
+msgid "in total"
+msgstr "Ç'kyçu"
+
+#: locale/model_attributes.rb:63
+msgid "incoming message"
+msgstr ""
+
+#: locale/model_attributes.rb:80
+msgid "info request"
+msgstr ""
+
+#: locale/model_attributes.rb:35
+msgid "info request event"
+msgstr ""
+
+#: app/views/user/signchangeemail.rhtml:3
+#: app/views/user/set_profile_about_me.rhtml:3
+msgid "internal error"
+msgstr ""
+
+#: app/views/request/show.rhtml:99
+msgid "is <strong>waiting for your clarification</strong>."
+msgstr ""
+
+#: app/views/user/show.rhtml:71
+msgid "just to see how it works"
+msgstr ""
+
+#: app/views/comment/_single_comment.rhtml:10
+#, fuzzy
+msgid "left an annotation"
+msgstr "Të lutem shto komentin tënd"
+
+#: app/views/user/_user_listing_single.rhtml:19
+#: app/views/user/_user_listing_single.rhtml:20
+msgid "made."
+msgstr ""
+
+#: app/views/track_mailer/event_digest.rhtml:54
+msgid "need to add other types to TrackMailer.event_digest"
+msgstr ""
+
+#: app/views/request/show.rhtml:67
+msgid "no later than"
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:18
+msgid ""
+"no longer exists. If you are trying to make\n"
+" 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=\"%s\">send it "
+"to us</a>."
+msgstr ""
+
+#: app/views/request/show.rhtml:65
+msgid "normally"
+msgstr ""
+
+#: app/views/user/show.rhtml:114
+msgid "only"
+msgstr ""
+
+#: locale/model_attributes.rb:20
+msgid "outgoing message"
+msgstr ""
+
+#: app/views/user/sign.rhtml:11
+msgid "please sign in as "
+msgstr ""
+
+#: app/views/user/sign.rhtml:28
+msgid "please sign in or make a new account."
+msgstr ""
+
+#: locale/model_attributes.rb:50
+msgid "post redirect"
+msgstr ""
+
+#: locale/model_attributes.rb:17
+msgid "profile photo"
+msgstr ""
+
+#: locale/model_attributes.rb:2
+msgid "public body"
+msgstr ""
+
+#: locale/model_attributes.rb:47
+msgid "raw email"
+msgstr ""
+
+#: app/views/request_mailer/not_clarified_alert.rhtml:1
+#, fuzzy
+msgid "request."
+msgstr "Kërkesat e mia"
+
+#: app/views/request/show.rhtml:82
+msgid "requesting an internal review"
+msgstr ""
+
+#: app/views/request_mailer/requires_admin.rhtml:3
+msgid ""
+"response as needing administrator attention. Take a look, and reply to this\n"
+"email to let them know what you are going to do about it."
+msgstr ""
+
+#: app/views/request/show.rhtml:101
+#, fuzzy
+msgid "send a follow up message"
+msgstr "Të lutem shto mesazhin për përcjellje"
+
+#: app/views/request/_request_listing_via_event.rhtml:31
+msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
+msgstr ""
+
+#: app/views/request/show.rhtml:105
+msgid "sign in"
+msgstr ""
+
+#: app/views/user/wrong_user.rhtml:4
+#, fuzzy
+msgid "sign out"
+msgstr "Ç'kyçu"
+
+#: app/views/request_mailer/new_response.rhtml:2
+msgid "that you made to"
+msgstr ""
+
+#: app/views/user/show.rhtml:140
+msgid "this person"
+msgstr ""
+
+#: app/views/user_mailer/changeemail_already_used.rhtml:2
+msgid "to"
+msgstr ""
+
+#: app/views/user_mailer/changeemail_confirm.rhtml:5
+msgid "to "
+msgstr ""
+
+#: app/views/user/show.rhtml:113
+msgid ""
+"to change password, \n"
+" subscriptions and more"
+msgstr ""
+
+#: app/views/request/new.rhtml:34
+msgid "to check that the info isn't already published."
+msgstr ""
+
+#: app/views/request/show.rhtml:55
+msgid "to read"
+msgstr ""
+
+#: app/views/request/show.rhtml:105
+#, fuzzy
+msgid "to send a follow up message."
+msgstr "Të lutem shto mesazhin për përcjellje"
+
+#: app/views/request/show.rhtml:39
+#, fuzzy
+msgid "to {{public_body}}"
+msgstr "i quajtur edhe {{public_body_short_name}}"
+
+#: locale/model_attributes.rb:31
+msgid "track thing"
+msgstr ""
+
+#: app/views/request/_hidden_correspondence.rhtml:32
+msgid "unexpected prominence on request event"
+msgstr ""
+
+#: app/views/request/_request_listing_via_event.rhtml:38
+msgid "unknown event type indexed "
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:30
+msgid "unknown reason "
+msgstr ""
+
+#: app/views/user/show.rhtml:208
+msgid "unsubscribe"
+msgstr ""
+
+#: app/views/user/show.rhtml:180 app/views/user/show.rhtml:194
+msgid "unsubscribe all"
+msgstr ""
+
+#: app/views/request/show.rhtml:46
+msgid "useful information."
+msgstr ""
+
+#: locale/model_attributes.rb:69
+msgid "user"
+msgstr ""
+
+#: locale/model_attributes.rb:67
+msgid "user info request sent alert"
+msgstr ""
+
+#: app/views/user/show.rhtml:140
+msgid "you"
+msgstr ""
+
+#: app/views/request/new.rhtml:6
+msgid ""
+"{{existing_request_user}} already\n"
+" created the same request on {{date}}. You can either view the <a href="
+"\"{{existing_request}}\">existing request</a>,\n"
+" or edit the details below to make a new but similar request."
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:20
+msgid "{{info_request_user_name}} only:"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:49
+msgid "{{length_of_time}} ago"
+msgstr "{{length_of_time}} më parë"
+
+#: app/views/request/_after_actions.rhtml:43
+#, fuzzy
+msgid "{{public_body_name}} only:"
+msgstr "i quajtur edhe {{public_body_short_name}}"
+
+#: app/views/request/show.rhtml:35
+msgid "{{user}} made this {{law_used_full}} request"
+msgstr ""
+
+#, fuzzy
+#~ msgid " for this authority."
+#~ msgstr "Përcjell këtë autoritet"
+
+#~ msgid "activerecord.errors.full_messages.format"
+#~ msgstr "%{message}"
diff --git a/locale/sr/.giosavePIKAVV b/locale/sr/.giosavePIKAVV
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/locale/sr/.giosavePIKAVV
@@ -0,0 +1 @@
+
diff --git a/locale/sr/app.po b/locale/sr/app.po
new file mode 100644
index 000000000..9665747e9
--- /dev/null
+++ b/locale/sr/app.po
@@ -0,0 +1,3021 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: version 0.0.1\n"
+"Report-Msgid-Bugs-To: http://github.com/sebbacon/alaveteli/issues\n"
+"POT-Creation-Date: 2011-06-01 09:03-0000\n"
+"PO-Revision-Date: 2011-04-02 00:05+0000\n"
+"Last-Translator: vbrestovci <vbrestovci@gmail.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: sr@latin\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+
+#: app/views/user/set_profile_about_me.rhtml:14
+msgid ""
+" This will appear on your WhatDoTheyKnow profile, to make it\n"
+" easier for others to get involved with what you're doing."
+msgstr ""
+
+#: app/views/comment/_comment_form.rhtml:17
+msgid ""
+" (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation "
+"policy</a>)"
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:40
+msgid ""
+" (<strong>patience</strong>, especially for large files, it may take a "
+"while!)"
+msgstr ""
+
+#: app/views/user/show.rhtml:59
+msgid " (you)"
+msgstr ""
+
+#: app/views/user/signchangepassword_send_confirm.rhtml:18
+msgid ""
+" <strong>Note:</strong>\n"
+" We will send you an email. Follow the instructions in it to change\n"
+" your password."
+msgstr ""
+
+#: app/views/user/contact.rhtml:35
+msgid " <strong>Privacy note:</strong> Your email address will be given to"
+msgstr ""
+
+#: app/views/comment/new.rhtml:33
+msgid " <strong>Summarise</strong> the content of any information returned. "
+msgstr ""
+
+#: app/views/comment/new.rhtml:23
+msgid " Advise on how to <strong>best clarify</strong> the request."
+msgstr ""
+
+#: app/views/comment/new.rhtml:49
+msgid ""
+" Ideas on what <strong>other documents to request</strong> which the "
+"authority may hold. "
+msgstr ""
+
+#: app/views/public_body/view_email.rhtml:30
+msgid ""
+" If you know the address to use, then please <a href=\"%s\">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 ""
+
+#: app/views/user/set_profile_about_me.rhtml:26
+msgid ""
+" Include relevant links, such as to a campaign page, your blog or a\n"
+" twitter account. They will be made clickable. \n"
+" e.g."
+msgstr ""
+
+#: app/views/comment/new.rhtml:27
+msgid ""
+" Link to the information requested, if it is <strong>already available</"
+"strong> on the Internet. "
+msgstr ""
+
+#: app/views/comment/new.rhtml:29
+msgid ""
+" Offer better ways of <strong>wording the request</strong> to get the "
+"information. "
+msgstr ""
+
+#: app/views/user/sign.rhtml:26
+msgid " Please sign in or make a new account."
+msgstr ""
+
+#: app/views/comment/new.rhtml:34
+msgid ""
+" Say how you've <strong>used the information</strong>, with links if "
+"possible."
+msgstr ""
+
+#: app/views/comment/new.rhtml:28
+msgid ""
+" Suggest <strong>where else</strong> the requester might find the "
+"information. "
+msgstr ""
+
+#: app/views/user/set_profile_about_me.rhtml:11
+msgid " What are you investigating using Freedom of Information? "
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:5
+msgid " made by "
+msgstr ""
+
+#: app/views/user/show.rhtml:123
+msgid " made no Freedom of Information requests using this site."
+msgstr ""
+
+#: app/views/track_mailer/event_digest.rhtml:28
+#, fuzzy
+msgid " sent a request to"
+msgstr "Napravi zahtev"
+
+#: app/views/user/contact.rhtml:36
+msgid " when you send this message."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:82
+msgid "%d Freedom of Information request"
+msgid_plural "%d Freedom of Information requests"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: app/views/general/frontpage.rhtml:35
+msgid "%d request"
+msgid_plural "%d requests"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: app/views/request/new.rhtml:102
+msgid "'Crime statistics by ward level for Wales'"
+msgstr ""
+
+#: app/views/request/new.rhtml:100
+msgid "'Pollution levels over time for the River Tyne'"
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:9
+msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
+msgstr ""
+
+#: app/views/public_body/list.rhtml:29
+msgid "<a href=\"%s\">Are we missing a public authority?</a>."
+msgstr ""
+
+#: app/views/request/_sidebar.rhtml:45
+msgid ""
+"<a href=\"%s\">Are you the owner of\n"
+" any commercial copyright on this page?</a>"
+msgstr ""
+
+#: app/views/general/search.rhtml:53
+msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:51
+msgid ""
+"<a href=\"%s\">Make a new Freedom of Information request</a> to "
+"{{public_body_name}}"
+msgstr ""
+
+#: app/views/public_body/list.rhtml:43
+msgid "<a href=\"%s\">can't find the one you want?</a>"
+msgstr ""
+
+#: app/views/request/show.rhtml:76 app/views/request/show.rhtml:80
+#: app/views/request/_followup.rhtml:42 app/views/request/_followup.rhtml:49
+msgid "<a href=\"%s\">details</a>"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:78
+msgid "<a href=\"%s\">what's that?</a>"
+msgstr ""
+
+#: app/views/user/confirm.rhtml:11
+msgid ""
+"<small>If you use web-based email or have \"junk mail\" filters, also check "
+"your\n"
+"bulk/spam mail folders. Sometimes, our messages are marked that way.</"
+"small>\n"
+"</p>"
+msgstr ""
+
+#: app/views/request/new.rhtml:135
+msgid ""
+"<strong> Can I request information about myself?</strong>\n"
+"\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
+msgstr ""
+
+#: app/views/general/search.rhtml:118
+msgid ""
+"<strong><code>commented_by:tony_bowden</code></strong> to search annotations "
+"made by Tony Bowden, typing the name as in the URL."
+msgstr ""
+
+#: app/views/general/search.rhtml:120
+msgid ""
+"<strong><code>filetype:pdf</code></strong> to find all responses with PDF "
+"attachments. Or try these: <code>{{list_of_file_extensions}}</code>"
+msgstr ""
+
+#: app/views/general/search.rhtml:119
+msgid ""
+"<strong><code>request:</code></strong> to restrict to a specific request, "
+"typing the title as in the URL."
+msgstr ""
+
+#: app/views/general/search.rhtml:117
+msgid ""
+"<strong><code>requested_by:julian_todd</code></strong> to search requests "
+"made by Julian Todd, typing the name as in the URL."
+msgstr ""
+
+#: app/views/general/search.rhtml:116
+msgid ""
+"<strong><code>requested_from:home_office</code></strong> to search requests "
+"from the Home Office, typing the name as in the URL."
+msgstr ""
+
+#: app/views/general/search.rhtml:114
+msgid ""
+"<strong><code>status:</code></strong> to select based on the status or "
+"historical status of the request, see the <a href=\"%s\">table of statuses</"
+"a> below."
+msgstr ""
+
+#: app/views/general/search.rhtml:122
+msgid ""
+"<strong><code>tag:charity</code></strong> to find all public bodies or "
+"requests with a given tag. You can include multiple tags, \n"
+" and tag values, e.g. <code>tag:openlylocal AND tag:"
+"financial_transaction:335633</code>. Note that by default any of the tags\n"
+" can be present, you have to put <code>AND</code> explicitly if you only "
+"want results them all present."
+msgstr ""
+
+#: app/views/general/search.rhtml:115
+msgid ""
+"<strong><code>variety:</code></strong> to select type of thing to search "
+"for, see the <a href=\"%s\">table of varieties</a> below."
+msgstr ""
+
+#: app/views/request/_followup.rhtml:83
+msgid "<strong>Anything else</strong>, such as clarifying, prompting, thanking"
+msgstr ""
+
+#: app/views/request/details.rhtml:12
+msgid ""
+"<strong>Caveat emptor!</strong> To use this data in an honourable way, you "
+"will need \n"
+"a good internal knowledge of user behaviour on WhatDoTheyKnow. How, \n"
+"why and by whom requests are categorised is not straightforward, and there "
+"will\n"
+"be user error and ambiguity. You will also need to understand FOI law, and "
+"the\n"
+"way authorities use it. Plus you'll need to be an elite statistician. "
+"Please\n"
+"<a href=\"%s\">contact us</a> with questions."
+msgstr ""
+
+#: app/views/user/signchangeemail.rhtml:30
+msgid ""
+"<strong>Note:</strong>\n"
+" We will send an email to your new email address. Follow the\n"
+" instructions in it to confirm changing your email."
+msgstr ""
+
+#: app/views/user/contact.rhtml:32
+msgid ""
+"<strong>Note:</strong> You're sending a message to yourself, presumably\n"
+" to try out how it works."
+msgstr ""
+
+#: app/views/request/preview.rhtml:31
+msgid ""
+"<strong>Privacy note:</strong> If you want to request private information "
+"about\n"
+" yourself then <a href=\"%s\">click here</a>."
+msgstr ""
+
+#: app/views/user/set_crop_profile_photo.rhtml:35
+msgid ""
+"<strong>Privacy note:</strong> Your photo will be shown in public on the "
+"Internet, \n"
+" wherever you do something on WhatDoTheyKnow."
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:37
+msgid ""
+"<strong>Privacy warning:</strong> Your message, and any response\n"
+" to it, will be displayed publicly on this website."
+msgstr ""
+
+#: app/views/general/exception_caught.rhtml:18
+msgid "<strong>Technical details:</strong>"
+msgstr ""
+
+#: app/views/comment/new.rhtml:35
+msgid "<strong>Thank</strong> the public authority or "
+msgstr ""
+
+#: app/views/request/new.rhtml:23
+msgid ""
+"<strong>browse</strong> the authority's <a href=\"%s\">publication scheme</"
+"a> or <strong>search</strong> their web site ..."
+msgstr ""
+
+#: app/views/request/show.rhtml:84
+msgid "<strong>did not have</strong> the information requested."
+msgstr ""
+
+#: app/views/request/new.rhtml:25
+msgid "<strong>search</strong> the authority's web site ..."
+msgstr ""
+
+#: app/views/comment/new.rhtml:45
+msgid ""
+"A <strong>summary</strong> of the response if you have received it by post. "
+msgstr ""
+
+#: app/views/user/set_profile_about_me.rhtml:20
+msgid "About you:"
+msgstr ""
+
+#: app/views/request/_sidebar.rhtml:5
+msgid "Act on what you've learnt"
+msgstr ""
+
+#: app/views/comment/new.rhtml:14
+msgid "Add an annotation to "
+msgstr ""
+
+#: app/views/request/show_response.rhtml:47
+msgid ""
+"Add an annotation to your request with choice quotes, or\n"
+" a <strong>summary of the response</strong>."
+msgstr ""
+
+#: app/models/user.rb:54
+msgid "Admin level is not included in list"
+msgstr ""
+
+#: app/views/general/search.rhtml:31 app/views/general/search.rhtml:109
+msgid "Advanced search tips"
+msgstr ""
+
+#: app/views/request/new.rhtml:69
+msgid ""
+"Air, water, soil, land, flora and fauna (including how these effect\n"
+" human beings)"
+msgstr ""
+
+#: app/views/public_body/list.rhtml:5
+msgid "Alphabet"
+msgstr ""
+
+#: app/views/track_mailer/event_digest.rhtml:63
+msgid "Alter your subscription"
+msgstr ""
+
+#: app/views/user/show.rhtml:34
+msgid "Annotations"
+msgstr ""
+
+#: app/views/comment/new.rhtml:17
+msgid ""
+"Annotations are so anyone, including you, can help the requester with their "
+"request. For example:"
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:6
+msgid "Anyone:"
+msgstr ""
+
+#: app/views/request/new.rhtml:47
+msgid ""
+"Ask for <strong>specific</strong> documents or information, this site is not "
+"suitable for general enquiries."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:31
+msgid ""
+"At the bottom of this page, write a reply to them trying to persuade them to "
+"scan it in\n"
+" (<a href=\"%s\">more details</a>)."
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:33
+msgid "Attachment (optional):"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:70
+msgid ""
+"Authority has replied but the response <strong>does not correspond to the "
+"request</strong>"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:43
+msgid "Authority has requested <strong>extension of the deadline.</strong>"
+msgstr ""
+
+#: app/views/request/new.rhtml:43
+msgid ""
+"Browse <a href=\"%s\">other requests</a> for examples of how to word your "
+"request."
+msgstr ""
+
+#: app/views/request/new.rhtml:41
+msgid ""
+"Browse <a href='%s'>other requests</a> to '{{public_body_name}}' for "
+"examples of how to word your request."
+msgstr ""
+
+#: app/views/request/show.rhtml:79
+msgid ""
+"By law, under all circumstances, {{public_body_link}} should have responded "
+"by now"
+msgstr ""
+
+#: app/views/request/show.rhtml:71
+msgid ""
+"By law, {{public_body_link}} should normally have responded "
+"<strong>promptly</strong> and"
+msgstr ""
+
+#: app/views/general/search.rhtml:17
+msgid ""
+"Can't find it? <a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add "
+"it</a>."
+msgstr ""
+
+#: locale/model_attributes.rb:46
+msgid "CensorRule|Last edit comment"
+msgstr ""
+
+#: locale/model_attributes.rb:45
+msgid "CensorRule|Last edit editor"
+msgstr ""
+
+#: locale/model_attributes.rb:44
+msgid "CensorRule|Replacement"
+msgstr ""
+
+#: locale/model_attributes.rb:43
+msgid "CensorRule|Text"
+msgstr ""
+
+#: lib/public_body_categories_sq.rb:14 lib/public_body_categories_sr.rb:14
+#: lib/public_body_categories_en.rb:14
+msgid "Central government"
+msgstr "Centralna Govermenta"
+
+#: app/views/user/signchangepassword.rhtml:27
+#, fuzzy
+msgid "Change password on {{site_name}}"
+msgstr "Kontakt {{site_name}}"
+
+#: app/views/user/show.rhtml:104
+msgid "Change profile photo"
+msgstr ""
+
+#: app/views/user/set_profile_about_me.rhtml:1
+msgid "Change the text about you on your profile at WhatDoTheyKnow.com"
+msgstr ""
+
+#: app/views/user/show.rhtml:107
+msgid "Change your email"
+msgstr ""
+
+#: app/views/user/signchangeemail.rhtml:1
+#: app/views/user/signchangeemail.rhtml:11
+msgid "Change your email address used on {{site_name}}"
+msgstr ""
+
+#: app/views/user/show.rhtml:106
+#, fuzzy
+msgid "Change your password"
+msgstr "Molimo Vas da unesete vaš pasvord"
+
+#: app/views/user/signchangepassword_send_confirm.rhtml:1
+#: app/views/user/signchangepassword_send_confirm.rhtml:9
+#: app/views/user/signchangepassword.rhtml:1
+#: app/views/user/signchangepassword.rhtml:11
+msgid "Change your password on {{site_name}}"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:16 app/views/public_body/show.rhtml:18
+msgid "Charity registration"
+msgstr ""
+
+#: app/views/general/exception_caught.rhtml:6
+msgid "Check for mistakes if you typed or copied the address."
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:14
+#: app/views/request/preview.rhtml:7
+msgid "Check you haven't included any <strong>personal information</strong>."
+msgstr ""
+
+#: app/views/request_mailer/very_overdue_alert.rhtml:6
+msgid ""
+"Click on the link below to send a message to {{public_body.name}} telling "
+"them to reply to your request. You might like to ask for an internal\n"
+"review, asking them to find out why response to the request has been so slow."
+msgstr ""
+
+#: app/views/request_mailer/overdue_alert.rhtml:5
+msgid ""
+"Click on the link below to send a message to {{public_body}} reminding them "
+"to reply to your request."
+msgstr ""
+
+#: locale/model_attributes.rb:28
+msgid "Comment|Body"
+msgstr ""
+
+#: locale/model_attributes.rb:27
+msgid "Comment|Comment type"
+msgstr ""
+
+#: locale/model_attributes.rb:30
+msgid "Comment|Locale"
+msgstr ""
+
+#: locale/model_attributes.rb:29
+msgid "Comment|Visible"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:147
+msgid "Contact {{site_name}}"
+msgstr "Kontakt {{site_name}}"
+
+#: app/models/profile_photo.rb:96
+msgid ""
+"Couldn't understand the image file that you uploaded. PNG, JPEG, GIF and "
+"many other common image file formats are supported."
+msgstr ""
+
+#: app/views/request/new.rhtml:74
+msgid ""
+"Cultural sites and built structures (as they may be affected by the\n"
+" environmental factors listed above)"
+msgstr ""
+
+#: app/views/request/show.rhtml:61
+msgid ""
+"Currently <strong>waiting for a response</strong> from {{public_body_link}}, "
+"they must respond promptly and"
+msgstr ""
+
+#: app/views/request/details.rhtml:1 app/views/request/details.rhtml:2
+msgid "Details of request '"
+msgstr ""
+
+#: app/views/general/search.rhtml:50 app/views/general/search.rhtml:62
+msgid "Did you mean: {{correction}}"
+msgstr ""
+
+#: app/views/outgoing_mailer/followup.rhtml:6
+#: app/views/outgoing_mailer/initial_request.rhtml:4
+msgid ""
+"Disclaimer: This message and any reply that you make will be published on "
+"the internet. Our privacy and copyright policies:"
+msgstr ""
+
+#: app/views/request/_view_html_prefix.rhtml:6
+msgid "Download original attachment"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:89
+msgid ""
+"Edit and add <strong>more details</strong> to the message above,\n"
+" explaining why you are dissatisfied with their response."
+msgstr ""
+
+#: app/views/admin_public_body/_locale_selector.rhtml:2
+msgid "Edit language version:"
+msgstr ""
+
+#: app/views/user/set_profile_about_me.rhtml:9
+msgid "Edit text about you"
+msgstr ""
+
+#: app/views/comment/_comment_form.rhtml:9
+msgid "Email me future updates to this request"
+msgstr ""
+
+#: app/views/user/show.rhtml:36
+msgid "Email subscriptions"
+msgstr ""
+
+#: app/views/general/search.rhtml:111
+msgid ""
+"Enter words that you want to find separated by spaces, e.g. <strong>climbing "
+"lane</strong>"
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:23
+msgid ""
+"Enter your response below. You may attach one file (use email, or \n"
+"<a href=\"%s\">contact us</a> if you need more)."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:98
+msgid "Environmental Information Regulations requests made"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:70
+msgid "Environmental Information Regulations requests made using this site"
+msgstr ""
+
+#: app/views/request/details.rhtml:4
+msgid "Event history"
+msgstr ""
+
+#: app/views/request/_sidebar.rhtml:41
+msgid "Event history details"
+msgstr ""
+
+#: app/views/request/new.rhtml:128
+msgid ""
+"Everything that you enter on this page \n"
+" will be <strong>displayed publicly</strong> on\n"
+" this website forever (<a href=\"%s\">why?</a>)."
+msgstr ""
+
+#: app/views/request/new.rhtml:120
+msgid ""
+"Everything that you enter on this page, including <strong>your name</"
+"strong>, \n"
+" will be <strong>displayed publicly</strong> on\n"
+" this website forever (<a href=\"%s\">why?</a>)."
+msgstr ""
+
+#: locale/model_attributes.rb:61
+msgid "EximLogDone|Filename"
+msgstr ""
+
+#: locale/model_attributes.rb:62
+msgid "EximLogDone|Last stat"
+msgstr ""
+
+#: locale/model_attributes.rb:16
+msgid "EximLog|Line"
+msgstr ""
+
+#: locale/model_attributes.rb:15
+msgid "EximLog|Order"
+msgstr ""
+
+#: app/views/public_body/view_email.rhtml:3
+msgid "FOI email address for {{public_body}}"
+msgstr ""
+
+#: app/views/user/show.rhtml:33
+#, fuzzy
+msgid "FOI requests"
+msgstr "Moji zahtevi"
+
+#: app/views/general/search.rhtml:90
+msgid ""
+"FOI requests {{start_count}} to {{end_count}} of {{total_count}} for "
+"{{user_search_query}}"
+msgstr ""
+
+#: app/models/profile_photo.rb:101
+msgid "Failed to convert image to a PNG"
+msgstr ""
+
+#: app/models/profile_photo.rb:105
+msgid ""
+"Failed to convert image to the correct size: at %{cols}x%{rows}, need %"
+"{width}x%{height}"
+msgstr ""
+
+#: app/views/request/new.rhtml:21
+msgid "First,"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:8
+msgid ""
+"First, type in the <strong>name of the UK public authority</strong> you'd \n"
+" <br>like information from. <strong>By law, they have to respond</"
+"strong>\n"
+" (<a href=\"%s\">why?</a>)."
+msgstr ""
+
+#: app/views/request_mailer/old_unclassified_updated.rhtml:8
+msgid "Follow this link to see the request:"
+msgstr ""
+
+#: app/views/public_body/view_email.rhtml:14
+msgid "Follow up messages to existing requests are sent to "
+msgstr ""
+
+#: app/views/request/_followup.rhtml:16
+msgid ""
+"Follow ups and new responses to this request have been stopped to prevent "
+"spam. Please\n"
+" <a href=\"%s\">contact us</a> if you are {{user_link}} and need to "
+"send a follow up."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:62
+msgid ""
+"For an unknown reason, it is not possible to make a request to this "
+"authority."
+msgstr ""
+
+#: app/views/user/_signin.rhtml:21
+#, fuzzy
+msgid "Forgotten your password?"
+msgstr "Molimo Vas da unesete vaš pasvord"
+
+#: app/views/public_body/show.rhtml:57
+msgid ""
+"Freedom of Information law does not apply to this authority, so you cannot "
+"make\n"
+" a request to it."
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:11
+msgid "Freedom of Information law no longer applies to"
+msgstr ""
+
+#: app/views/public_body/view_email.rhtml:10
+msgid ""
+"Freedom of Information law no longer applies to this authority.Follow up "
+"messages to existing requests are sent to "
+msgstr ""
+
+#: app/views/user/show.rhtml:128
+msgid "Freedom of Information request"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:100
+msgid "Freedom of Information requests made"
+msgstr ""
+
+#: app/views/user/show.rhtml:121 app/views/user/show.rhtml:140
+msgid "Freedom of Information requests made by"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:74
+msgid "Freedom of Information requests made using this site"
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:12
+msgid ""
+"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=\"%s\">send it "
+"to us</a>."
+msgstr ""
+
+#: app/views/layouts/default.rhtml:123
+msgid "Hello!"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:120
+msgid "Hello, {{username}}!"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:115
+msgid "Help"
+msgstr "Pomoć"
+
+#: app/views/request/details.rhtml:50
+msgid ""
+"Here <strong>described</strong> means when a user selected a status for the "
+"request, and\n"
+"the most recent event had its status updated to that value. "
+"<strong>calculated</strong> is then inferred by\n"
+"WhatDoTheyKnow for intermediate events, which weren't given an explicit\n"
+"description by a user. See the <a href=\"%s\">search tips</a> for "
+"description of the states."
+msgstr ""
+
+#: locale/model_attributes.rb:58
+msgid "Holiday|Day"
+msgstr ""
+
+#: locale/model_attributes.rb:59
+msgid "Holiday|Description"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:7
+msgid "Home page of authority"
+msgstr ""
+
+#: app/views/request/new.rhtml:63
+msgid ""
+"However, you have the right to request environmental\n"
+" information under a different law"
+msgstr ""
+
+#: app/views/request/new.rhtml:73
+msgid "Human health and safety"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:72
+msgid "I am asking for <strong>new information</strong>"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:77
+msgid "I am requesting an <strong>internal review</strong>"
+msgstr ""
+
+#: app/views/request_game/play.rhtml:39
+msgid "I don't like these ones &mdash; give me some more!"
+msgstr ""
+
+#: app/views/request_game/play.rhtml:40
+msgid "I don't want to do any more tidying now!"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:92
+msgid "I would like to <strong>withdraw this request</strong>"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:11
+msgid ""
+"I'm still <strong>waiting</strong> for my information\n"
+" <small>(maybe you got an acknowledgement)</small>"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:18
+msgid "I'm still <strong>waiting</strong> for the internal review"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:32
+msgid "I'm waiting for an <strong>internal review</strong> response"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:25
+msgid "I've been asked to <strong>clarify</strong> my request"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:62
+msgid "I've received <strong>all the information"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:58
+msgid "I've received <strong>some of the information</strong>"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:77
+msgid "I've received an <strong>error message</strong>"
+msgstr ""
+
+#: app/views/public_body/view_email.rhtml:28
+msgid ""
+"If the address is wrong, or you know a better address, please <a href=\"%s"
+"\">contact us</a>."
+msgstr ""
+
+#: app/views/request_mailer/stopped_responses.rhtml:10
+msgid ""
+"If this is incorrect, or you would like to send a late response to the "
+"request\n"
+"or an email on another subject to {{user}}, then please\n"
+"email {{contact_email}} for help."
+msgstr ""
+
+#: app/views/request/_followup.rhtml:21
+msgid ""
+"If you are dissatisfied by the response you got from\n"
+" the public authority, you have the right to\n"
+" complain (<a href=\"%s\">details</a>)."
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:20
+msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
+msgstr ""
+
+#: app/views/request/hidden.rhtml:15
+msgid ""
+"If you are the requester, then you may <a href=\"%s\">sign in</a> to view "
+"the request."
+msgstr ""
+
+#: app/views/request/new.rhtml:123
+msgid ""
+"If you are thinking of using a pseudonym,\n"
+" please <a href=\"%s\">read this first</a>."
+msgstr ""
+
+#: app/views/request/show.rhtml:104
+msgid "If you are {{user_link}}, please"
+msgstr ""
+
+#: app/views/user/bad_token.rhtml:7
+msgid ""
+"If you can't click on it in the email, you'll have to <strong>select and "
+"copy\n"
+"it</strong> from the email. Then <strong>paste it into your browser</"
+"strong>, into the place\n"
+"you would type the address of any other webpage."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:49
+msgid ""
+"If you can, scan in or photograph the response, and <strong>send us\n"
+" a copy to upload</strong>."
+msgstr ""
+
+#: app/views/outgoing_mailer/initial_request.rhtml:13
+msgid ""
+"If you find WhatDoTheyKnow useful as an FOI officer, please ask your web "
+"manager to suggest us on your organisation"
+msgstr ""
+
+#: app/views/outgoing_mailer/followup.rhtml:12
+msgid ""
+"If you find WhatDoTheyKnow useful as an FOI officer, please ask your web "
+"manager to suggest us on your organisation's FOI page."
+msgstr ""
+
+#: app/views/user/bad_token.rhtml:13
+msgid ""
+"If you got the email <strong>more than six months ago</strong>, then this "
+"login link won't work any\n"
+"more. Please try doing what you were doing from the beginning."
+msgstr ""
+
+#: app/views/user/signchangeemail_confirm.rhtml:11
+#: app/views/user/signchangepassword_confirm.rhtml:10
+msgid ""
+"If you use web-based email or have \"junk mail\" filters, also check your\n"
+"bulk/spam mail folders. Sometimes, our messages are marked that way."
+msgstr ""
+
+#: app/views/user/banned.rhtml:15
+msgid ""
+"If you would like us to lift this ban, then you may politely\n"
+"<a href=\"/help/contact\">contact us</a> giving reasons.\n"
+msgstr ""
+
+#: app/views/user/_signup.rhtml:6
+msgid "If you're new to WhatDoTheyKnow"
+msgstr ""
+
+#: app/views/user/_signin.rhtml:7
+msgid "If you've used WhatDoTheyKnow before"
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:12
+msgid ""
+"If your browser is set to accept cookies and you are seeing this message,\n"
+"then there is probably a fault with our server."
+msgstr ""
+
+#: locale/model_attributes.rb:64
+msgid "IncomingMessage|Cached attachment text clipped"
+msgstr ""
+
+#: locale/model_attributes.rb:65
+msgid "IncomingMessage|Cached main body text folded"
+msgstr ""
+
+#: locale/model_attributes.rb:66
+msgid "IncomingMessage|Cached main body text unfolded"
+msgstr ""
+
+#: locale/model_attributes.rb:39
+msgid "InfoRequestEvent|Calculated state"
+msgstr ""
+
+#: locale/model_attributes.rb:38
+msgid "InfoRequestEvent|Described state"
+msgstr ""
+
+#: locale/model_attributes.rb:36
+msgid "InfoRequestEvent|Event type"
+msgstr ""
+
+#: locale/model_attributes.rb:40
+msgid "InfoRequestEvent|Last described at"
+msgstr ""
+
+#: locale/model_attributes.rb:37
+msgid "InfoRequestEvent|Params yaml"
+msgstr ""
+
+#: locale/model_attributes.rb:41
+msgid "InfoRequestEvent|Prominence"
+msgstr ""
+
+#: locale/model_attributes.rb:87
+msgid "InfoRequest|Allow new responses from"
+msgstr ""
+
+#: locale/model_attributes.rb:83
+msgid "InfoRequest|Awaiting description"
+msgstr ""
+
+#: locale/model_attributes.rb:82
+msgid "InfoRequest|Described state"
+msgstr ""
+
+#: locale/model_attributes.rb:88
+msgid "InfoRequest|Handle rejected responses"
+msgstr ""
+
+#: locale/model_attributes.rb:86
+msgid "InfoRequest|Law used"
+msgstr ""
+
+#: locale/model_attributes.rb:84
+msgid "InfoRequest|Prominence"
+msgstr ""
+
+#: locale/model_attributes.rb:81
+msgid "InfoRequest|Title"
+msgstr ""
+
+#: locale/model_attributes.rb:85
+msgid "InfoRequest|Url title"
+msgstr ""
+
+#: app/views/request/new.rhtml:71
+msgid ""
+"Information on emissions and discharges (e.g. noise, energy,\n"
+" radiation, waste materials)"
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:8
+msgid ""
+"It may be that your browser is not set to accept a thing called \"cookies"
+"\",\n"
+"or cannot do so. If you can, please enable cookies, or try using a "
+"different\n"
+"browser. Then press refresh to have another go."
+msgstr ""
+
+#: app/views/user/show.rhtml:62
+msgid "Joined WhatDoTheyKnow"
+msgstr ""
+
+#: app/views/user/_user_listing_single.rhtml:21
+msgid "Joined in"
+msgstr ""
+
+#: app/views/request/new.rhtml:48
+msgid ""
+"Keep it <strong>focused</strong>, you'll be more likely to get what you want "
+"(<a href=\"%s\">why?</a>)."
+msgstr ""
+
+#: app/views/contact_mailer/message.rhtml:10
+msgid "Last authority viewed: "
+msgstr ""
+
+#: app/views/contact_mailer/message.rhtml:7
+msgid "Last request viewed: "
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:17
+msgid ""
+"Let us know what you were doing when this message\n"
+"appeared and your browser and operating system type and version."
+msgstr ""
+
+#: app/views/public_body/list.rhtml:32
+msgid "List of all authorities (CSV)"
+msgstr ""
+
+#: lib/public_body_categories_en.rb:23
+msgid "Local and regional"
+msgstr "Lokalna da Regionalna"
+
+#: app/views/public_body/show.rhtml:48
+msgid "Make a new Environmental Information request"
+msgstr ""
+
+#: app/views/request/new.rhtml:1
+msgid "Make an {{law_used_short}} request to '{{public_body_name}}'"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:17
+msgid "Make and browse Freedom of Information (FOI) requests"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:89
+msgid "Make and explore Freedom of Information requests"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:4
+msgid "Make or explore Freedom of Information requests"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:108
+msgid "Make request"
+msgstr "Napravi zahtev"
+
+#: app/views/public_body/_body_listing_single.rhtml:23
+#, fuzzy
+msgid "Make your own request"
+msgstr "Napravi zahtev"
+
+#: app/views/contact_mailer/message.rhtml:4
+msgid "Message sent using WhatDoTheyKnow contact form, "
+msgstr ""
+
+#: app/views/request/new_bad_contact.rhtml:1
+msgid "Missing contact details for '"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:5
+msgid "More about this authority"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:39
+msgid "More authorities..."
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:53
+msgid "More successful requests..."
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:66
+msgid "My request has been <strong>refused</strong>"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:112
+msgid "My requests"
+msgstr "Moji zahtevi"
+
+#: app/models/public_body.rb:36
+msgid "Name can't be blank"
+msgstr "Ime ne može biti prazno"
+
+#: app/models/public_body.rb:40
+msgid "Name is already taken"
+msgstr ""
+
+#: app/views/user/signchangeemail.rhtml:20
+msgid "New e-mail:"
+msgstr ""
+
+#: app/views/user/signchangepassword.rhtml:15
+msgid "New password:"
+msgstr ""
+
+#: app/views/user/signchangepassword.rhtml:20
+msgid "New password: (again)"
+msgstr ""
+
+#: app/views/request/show_response.rhtml:62
+#, fuzzy
+msgid "New response to your request"
+msgstr "Molimo Vas da unesete opis vaseg zahteva"
+
+#: app/views/request/show_response.rhtml:68
+#, fuzzy
+msgid "New response to {{law_used_short}} request"
+msgstr "Molimo Vas da unesete opis vaseg zahteva"
+
+#: app/views/general/search.rhtml:40
+msgid "Newest results first"
+msgstr ""
+
+#: app/views/user/set_draft_profile_photo.rhtml:32
+msgid "Next, crop your photo &gt;&gt;"
+msgstr ""
+
+#: app/views/general/search.rhtml:16
+msgid "Next, select the public authority you'd like to make the request from."
+msgstr ""
+
+#: app/views/general/search.rhtml:48
+msgid "No public authorities found"
+msgstr ""
+
+#: app/views/request/list.rhtml:23
+msgid "No requests of this sort yet."
+msgstr ""
+
+#: app/views/request/similar.rhtml:7
+msgid "No similar requests found."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:75
+msgid ""
+"Nobody has made any Freedom of Information requests to {{public_body_name}} "
+"using this site yet."
+msgstr ""
+
+#: app/views/request/_request_listing.rhtml:2
+#: app/views/public_body/_body_listing.rhtml:2
+msgid "None found."
+msgstr "Asnje su gjet (serbisht)"
+
+#: app/views/general/search.rhtml:7
+msgid "Nothing found for '{{search_terms}}'"
+msgstr ""
+
+#: app/views/user/signchangeemail_confirm.rhtml:3
+#: app/views/user/signchangepassword_confirm.rhtml:1
+#: app/views/user/signchangepassword_confirm.rhtml:3
+msgid "Now check your email!"
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:10
+msgid "Now preview your follow up"
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:8
+msgid "Now preview your message asking for an internal review"
+msgstr ""
+
+#: app/views/request/preview.rhtml:5
+msgid "Now preview your request"
+msgstr ""
+
+#: app/views/user/set_draft_profile_photo.rhtml:46
+msgid "OR remove the existing photo"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:25
+msgid ""
+"OR, <strong>search</strong> for information others have requested using "
+"{{site_name}}"
+msgstr ""
+
+#: app/views/user/signchangeemail.rhtml:15
+msgid "Old e-mail:"
+msgstr ""
+
+#: app/views/user/show.rhtml:32
+msgid "On this page"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:93
+msgid "Only requests made using {{site_name}} are shown."
+msgstr ""
+
+#: locale/model_attributes.rb:21
+msgid "OutgoingMessage|Body"
+msgstr ""
+
+#: locale/model_attributes.rb:24
+msgid "OutgoingMessage|Last sent at"
+msgstr ""
+
+#: locale/model_attributes.rb:23
+msgid "OutgoingMessage|Message type"
+msgstr ""
+
+#: locale/model_attributes.rb:22
+msgid "OutgoingMessage|Status"
+msgstr ""
+
+#: locale/model_attributes.rb:25
+msgid "OutgoingMessage|What doing"
+msgstr ""
+
+#: app/views/user/_signup.rhtml:30 app/views/user/_signin.rhtml:16
+msgid "Password:"
+msgstr ""
+
+#: app/views/user/_signup.rhtml:35
+msgid "Password: (again)"
+msgstr ""
+
+#: app/views/general/search.rhtml:80
+msgid ""
+"People {{start_count}} to {{end_count}} of {{total_count}} for "
+"{{user_search_query}}"
+msgstr ""
+
+#: app/views/user/set_draft_profile_photo.rhtml:13
+msgid "Photo of you:"
+msgstr ""
+
+#: app/views/request/new.rhtml:76
+msgid "Plans and administrative measures that affect these matters"
+msgstr ""
+
+#: app/views/request_game/play.rhtml:1 app/views/request_game/play.rhtml:30
+msgid "Play the request categorisation game!"
+msgstr ""
+
+#: app/views/request/show.rhtml:100
+msgid "Please"
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:15
+msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
+msgstr ""
+
+#: app/views/request/show.rhtml:45
+msgid ""
+"Please <strong>answer the question above</strong> so we know whether the "
+msgstr ""
+
+#: app/views/user/show.rhtml:12
+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 ""
+
+#: app/views/request/_followup.rhtml:28
+msgid ""
+"Please <strong>only</strong> write messages directly relating to your \n"
+"\t\t\t\trequest {{request_link}}. If you would like to ask for information\n"
+"\t\t\t\tthat was not in your original request, then <a href=\"%s\">file a "
+"new request</a>."
+msgstr ""
+
+#: app/views/request/new.rhtml:60
+msgid "Please ask for environmental information only"
+msgstr ""
+
+#: app/views/user/bad_token.rhtml:2
+msgid ""
+"Please check the URL (i.e. the long code of letters and numbers) is copied\n"
+"correctly from your email."
+msgstr ""
+
+#: app/models/profile_photo.rb:91
+msgid "Please choose a file containing your photo."
+msgstr ""
+
+#: app/models/outgoing_message.rb:162
+msgid "Please choose what sort of reply you are making."
+msgstr ""
+
+#: app/views/track_mailer/event_digest.rhtml:66
+msgid "Please click on the link below to cancel or alter these emails."
+msgstr ""
+
+#: app/views/user_mailer/changeemail_confirm.rhtml:3
+msgid ""
+"Please click on the link below to confirm that you want to \n"
+"change the email address that you use for WhatDoTheyKnow\n"
+"from "
+msgstr ""
+
+#: app/views/user_mailer/confirm_login.rhtml:3
+msgid "Please click on the link below to confirm your email address."
+msgstr ""
+
+#: app/models/info_request.rb:106
+msgid ""
+"Please describe more what the request is about in the subject. There is no "
+"need to say it is an FOI request, we add that on anyway."
+msgstr ""
+
+#: app/views/user/set_draft_profile_photo.rhtml:22
+msgid ""
+"Please don't upload offensive pictures. We will take down images\n"
+" that we consider inappropriate."
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:3
+msgid "Please enable \"cookies\" to carry on"
+msgstr ""
+
+#: app/models/user.rb:38
+msgid "Please enter a password"
+msgstr ""
+
+#: app/models/contact_validator.rb:30
+msgid "Please enter a subject"
+msgstr "Molimo Vas da unesete naslov"
+
+#: app/models/info_request.rb:35
+msgid "Please enter a summary of your request"
+msgstr "Molimo Vas da unesete opis vaseg zahteva"
+
+#: app/models/user.rb:106
+msgid "Please enter a valid email address"
+msgstr ""
+
+#: app/models/contact_validator.rb:31
+msgid "Please enter the message you want to send"
+msgstr ""
+
+#: app/models/user.rb:49
+msgid "Please enter the same password twice"
+msgstr "Molimo Vas da unesete dva puta isti pasvord"
+
+#: app/models/comment.rb:59
+msgid "Please enter your annotation"
+msgstr ""
+
+#: app/models/user.rb:34 app/models/contact_validator.rb:29
+msgid "Please enter your email address"
+msgstr ""
+
+#: app/models/outgoing_message.rb:147
+msgid "Please enter your follow up message"
+msgstr ""
+
+#: app/models/outgoing_message.rb:150
+msgid "Please enter your letter requesting information"
+msgstr ""
+
+#: app/models/user.rb:36 app/models/contact_validator.rb:28
+msgid "Please enter your name"
+msgstr "Molimo Vas da unesete svoje ime"
+
+#: app/models/user.rb:109
+msgid "Please enter your name, not your email address, in the name field."
+msgstr ""
+
+#: app/models/change_email_validator.rb:29
+msgid "Please enter your new email address"
+msgstr ""
+
+#: app/models/change_email_validator.rb:28
+msgid "Please enter your old email address"
+msgstr ""
+
+#: app/models/change_email_validator.rb:30
+msgid "Please enter your password"
+msgstr "Molimo Vas da unesete vaš pasvord"
+
+#: app/models/outgoing_message.rb:145
+msgid "Please give details explaining why you want a review"
+msgstr ""
+
+#: app/models/about_me_validator.rb:24
+msgid "Please keep it shorter than 500 characters"
+msgstr ""
+
+#: app/models/info_request.rb:103
+msgid ""
+"Please keep the summary short, like in the subject of an email. You can use "
+"a phrase, rather than a full sentence."
+msgstr ""
+
+#: app/views/request/new.rhtml:79
+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 ""
+
+#: app/views/request/new_please_describe.rhtml:5
+msgid ""
+"Please select each of these requests in turn, and <strong>let everyone know</"
+"strong>\n"
+"if they are successful yet or not."
+msgstr ""
+
+#: app/models/outgoing_message.rb:156
+msgid ""
+"Please sign at the bottom with your name, or alter the \"%{signoff}\" "
+"signature"
+msgstr ""
+
+#: app/views/user/sign.rhtml:8
+msgid "Please sign in as "
+msgstr ""
+
+#: app/views/outgoing_mailer/followup.rhtml:9
+#: app/views/outgoing_mailer/initial_request.rhtml:7
+msgid "Please use this email address for all replies to this request:"
+msgstr ""
+
+#: app/models/info_request.rb:36
+msgid "Please write a summary with some text in it"
+msgstr ""
+
+#: app/models/info_request.rb:100
+msgid ""
+"Please write the summary using a mixture of capital and lower case letters. "
+"This makes it easier for others to read."
+msgstr ""
+
+#: app/models/comment.rb:62
+msgid ""
+"Please write your annotation using a mixture of capital and lower case "
+"letters. This makes it easier for others to read."
+msgstr ""
+
+#: app/models/outgoing_message.rb:159
+msgid ""
+"Please write your message using a mixture of capital and lower case letters. "
+"This makes it easier for others to read."
+msgstr ""
+
+#: app/views/comment/new.rhtml:41
+msgid ""
+"Point to <strong>related information</strong>, campaigns or forums which may "
+"be useful."
+msgstr ""
+
+#: locale/model_attributes.rb:56
+msgid "PostRedirect|Circumstance"
+msgstr ""
+
+#: locale/model_attributes.rb:54
+msgid "PostRedirect|Email token"
+msgstr ""
+
+#: locale/model_attributes.rb:53
+msgid "PostRedirect|Post params yaml"
+msgstr ""
+
+#: locale/model_attributes.rb:55
+msgid "PostRedirect|Reason params yaml"
+msgstr ""
+
+#: locale/model_attributes.rb:51
+msgid "PostRedirect|Token"
+msgstr ""
+
+#: locale/model_attributes.rb:52
+msgid "PostRedirect|Uri"
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:1
+msgid "Preview follow up to '"
+msgstr ""
+
+#: app/views/comment/_comment_form.rhtml:16
+msgid "Preview your annotation"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:100
+msgid "Preview your message"
+msgstr ""
+
+#: app/views/request/new.rhtml:143
+msgid "Preview your public request"
+msgstr ""
+
+#: locale/model_attributes.rb:18
+msgid "ProfilePhoto|Data"
+msgstr ""
+
+#: locale/model_attributes.rb:19
+msgid "ProfilePhoto|Draft"
+msgstr ""
+
+#: app/views/public_body/list.rhtml:37
+msgid "Public authorities - {{description}}"
+msgstr ""
+
+#: app/views/general/search.rhtml:70
+msgid ""
+"Public authorities {{start_count}} to {{end_count}} of {{total_count}} for "
+"{{user_search_query}}"
+msgstr ""
+
+#: locale/model_attributes.rb:12
+msgid "PublicBody|First letter"
+msgstr ""
+
+#: locale/model_attributes.rb:10
+msgid "PublicBody|Home page"
+msgstr ""
+
+#: locale/model_attributes.rb:8
+msgid "PublicBody|Last edit comment"
+msgstr ""
+
+#: locale/model_attributes.rb:7
+msgid "PublicBody|Last edit editor"
+msgstr ""
+
+#: locale/model_attributes.rb:3
+msgid "PublicBody|Name"
+msgstr ""
+
+#: locale/model_attributes.rb:11
+msgid "PublicBody|Notes"
+msgstr ""
+
+#: locale/model_attributes.rb:13
+msgid "PublicBody|Publication scheme"
+msgstr ""
+
+#: locale/model_attributes.rb:5
+msgid "PublicBody|Request email"
+msgstr ""
+
+#: locale/model_attributes.rb:4
+msgid "PublicBody|Short name"
+msgstr ""
+
+#: locale/model_attributes.rb:9
+msgid "PublicBody|Url name"
+msgstr ""
+
+#: locale/model_attributes.rb:6
+msgid "PublicBody|Version"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:10
+msgid "Publication scheme"
+msgstr ""
+
+#: locale/model_attributes.rb:49
+msgid "RawEmail|Data binary"
+msgstr ""
+
+#: locale/model_attributes.rb:48
+msgid "RawEmail|Data text"
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:49
+msgid "Re-edit this message"
+msgstr ""
+
+#: app/views/request/preview.rhtml:40
+msgid "Re-edit this request"
+msgstr ""
+
+#: app/views/general/search.rhtml:125
+msgid ""
+"Read about <a href=\"%s\">advanced search operators</a>, such as proximity "
+"and wildcards."
+msgstr ""
+
+#: app/views/layouts/default.rhtml:114
+msgid "Read blog"
+msgstr ""
+
+#: app/views/request/new.rhtml:16
+msgid "Read this before writing your {{info_request_law_used_full}} request"
+msgstr ""
+
+#: app/views/general/search.rhtml:42
+msgid "Recently described results first"
+msgstr ""
+
+#: app/controllers/request_controller.rb:122
+msgid "Recently sent Freedom of Information requests"
+msgstr ""
+
+#: app/views/request/list.rhtml:6
+#, fuzzy
+msgid "Recently sent requests"
+msgstr "Moji zahtevi"
+
+#: app/controllers/request_controller.rb:127
+msgid "Recently successful responses"
+msgstr ""
+
+#: app/views/user/_signin.rhtml:26
+msgid ""
+"Remember me</label> (keeps you signed in longer;\n"
+" do not use on a public computer) "
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:27
+msgid "Reply to "
+msgstr ""
+
+#: app/views/comment/_single_comment.rhtml:24
+msgid "Report abuse"
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:37
+msgid "Request an internal review"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:4
+msgid "Request an internal review from"
+msgstr ""
+
+#: app/views/request/hidden.rhtml:1
+msgid "Request has been removed"
+msgstr ""
+
+#: app/views/request/_request_listing_via_event.rhtml:28
+msgid ""
+"Request sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
+msgstr ""
+
+#: app/views/request/_request_listing_via_event.rhtml:36
+msgid ""
+"Request to {{public_body_name}} by {{info_request_user}}. Annotated by "
+"{{event_comment_user}} on {{date}}."
+msgstr ""
+
+#: app/views/request/_request_listing_single.rhtml:12
+msgid ""
+"Requested from {{public_body_name}} by {{info_request_user}} on {{date}}"
+msgstr ""
+
+#: app/views/request/_sidebar_request_listing.rhtml:13
+msgid "Requested on {{date}}"
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:11
+msgid "Respond by email"
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:46
+#, fuzzy
+msgid "Respond to request"
+msgstr "Napravi zahtev"
+
+#: app/views/request/upload_response.rhtml:5
+msgid "Respond to the FOI request"
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:21
+msgid "Respond using the web"
+msgstr ""
+
+#: app/views/request/show.rhtml:70
+msgid "Response to this request is <strong>delayed</strong>."
+msgstr ""
+
+#: app/views/request/show.rhtml:78
+msgid "Response to this request is <strong>long overdue</strong>."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:64
+#, fuzzy
+msgid "Response to your request"
+msgstr "Molimo Vas da unesete opis vaseg zahteva"
+
+#: app/views/request/upload_response.rhtml:28
+msgid "Response:"
+msgstr ""
+
+#: app/views/general/search.rhtml:9
+msgid "Results page {{page_number}}"
+msgstr ""
+
+#: app/views/user/set_profile_about_me.rhtml:35
+msgid "Save"
+msgstr ""
+
+#: app/views/general/search.rhtml:29 app/views/general/frontpage.rhtml:16
+#: app/views/general/exception_caught.rhtml:10 app/views/request/new.rhtml:31
+#: app/views/layouts/default.rhtml:102
+msgid "Search"
+msgstr "Pretraga"
+
+#: app/views/general/search.rhtml:4
+msgid "Search Freedom of Information requests, public authorities and users"
+msgstr ""
+
+#: app/views/general/exception_caught.rhtml:7
+msgid "Search the site to find what you were looking for."
+msgstr ""
+
+#: app/views/request/_followup.rhtml:7
+msgid "Send a public follow up message to"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:10
+msgid "Send a public reply to"
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:24
+msgid "Send follow up to "
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:50
+msgid "Send message"
+msgstr ""
+
+#: app/views/user/show.rhtml:69
+msgid "Send message to "
+msgstr ""
+
+#: app/views/request/preview.rhtml:41
+msgid "Send public "
+msgstr ""
+
+#: app/views/user/show.rhtml:53
+msgid "Set your profile photo"
+msgstr ""
+
+#: app/models/public_body.rb:39
+msgid "Short name is already taken"
+msgstr ""
+
+#: app/views/general/search.rhtml:38
+msgid "Show most relevant results first"
+msgstr ""
+
+#: app/views/request/list.rhtml:2 app/views/public_body/list.rhtml:3
+msgid "Show only..."
+msgstr ""
+
+#: app/views/user/show.rhtml:113 app/views/user/_signin.rhtml:31
+msgid "Sign in"
+msgstr ""
+
+#: app/views/user/sign.rhtml:20
+msgid "Sign in or make a new account"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:124
+msgid "Sign in or sign up"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:121
+msgid "Sign out"
+msgstr ""
+
+#: app/views/user/_signup.rhtml:41
+msgid "Sign up"
+msgstr ""
+
+#: app/views/request/_sidebar.rhtml:30
+#, fuzzy
+msgid "Similar requests"
+msgstr "Moji zahtevi"
+
+#: app/views/request_game/play.rhtml:31
+msgid ""
+"Some people who've made requests haven't let us know whether they were\n"
+"successful or not. We need <strong>your</strong> help &ndash;\n"
+"choose one of these requests, read it, and let everyone know whether or not "
+"the\n"
+"information has been provided. Everyone'll be exceedingly grateful."
+msgstr ""
+
+#: app/views/user_mailer/changeemail_already_used.rhtml:1
+msgid ""
+"Someone, perhaps you, just tried to change their email address on\n"
+"WhatDoTheyKnow.com from "
+msgstr ""
+
+#: app/views/general/exception_caught.rhtml:1
+msgid "Sorry, we couldn't find that page"
+msgstr ""
+
+#: app/views/request/new.rhtml:53
+msgid "Special note for this authority!"
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:23
+#: app/views/request/preview.rhtml:18
+msgid "Subject:"
+msgstr ""
+
+#: app/views/user/signchangepassword_send_confirm.rhtml:26
+msgid "Submit"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:102
+msgid "Submit status"
+msgstr ""
+
+#: app/views/request/list.rhtml:5
+msgid "Successful responses"
+msgstr ""
+
+#: app/views/comment/new.rhtml:38
+msgid ""
+"Suggest how the requester can find the <strong>rest of the information</"
+"strong>."
+msgstr ""
+
+#: app/views/request/new.rhtml:93
+msgid "Summary:"
+msgstr ""
+
+#: app/views/general/search.rhtml:128
+msgid "Table of statuses"
+msgstr ""
+
+#: app/views/request/preview.rhtml:45
+msgid "Tags:"
+msgstr ""
+
+#: app/views/request_game/play.rhtml:42
+msgid ""
+"Thanks for helping - your work will make it easier for everyone to find "
+"successful\n"
+"responses, and maybe even let us make league tables..."
+msgstr ""
+
+#: app/views/user/show.rhtml:20
+msgid ""
+"Thanks very much - this will help others find useful stuff. We'll\n"
+" also, if you need it, give advice on what to do next about your\n"
+" requests."
+msgstr ""
+
+#: app/views/request/new_please_describe.rhtml:20
+msgid ""
+"Thanks very much for helping keep everything <strong>neat and organised</"
+"strong>.\n"
+" We'll also, if you need it, give you advice on what to do next about "
+"each of your\n"
+" requests."
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:49
+msgid "The <strong>review has finished</strong> and overall:"
+msgstr ""
+
+#: app/views/request/new.rhtml:62
+msgid "The Freedom of Information Act <strong>does not apply</strong> to"
+msgstr ""
+
+#: app/views/user_mailer/changeemail_already_used.rhtml:7
+msgid "The accounts have been left as they previously were."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:28
+msgid ""
+"The authority only has a <strong>paper copy</strong> of the information."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:18
+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 ""
+
+#: app/views/request/show.rhtml:108
+msgid ""
+"The authority would like to / has <strong>responded by post</strong> to this "
+"request."
+msgstr ""
+
+#: app/views/request_mailer/stopped_responses.rhtml:1
+msgid ""
+"The email that you, on behalf of {{public_body}}, sent to\n"
+"{{user}} to reply to an {{law_used_short}}\n"
+"request has not been delivered."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:22
+msgid ""
+"The law, the Ministry of Justice and the Information Commissioner\n"
+" all say that an email is sufficient (<a href=\"%s\">more "
+"details</a>).\n"
+" At the bottom of this page, write a reply to the authority "
+"explaining this to them."
+msgstr ""
+
+#: app/views/general/exception_caught.rhtml:3
+msgid "The page either doesn't exist, or is broken. Things you can try now:"
+msgstr ""
+
+#: app/views/request/show.rhtml:103
+msgid "The request is <strong>waiting for clarification</strong>."
+msgstr ""
+
+#: app/views/request/show.rhtml:96
+msgid "The request was <strong>partially successful</strong>."
+msgstr ""
+
+#: app/views/request/show.rhtml:86
+msgid "The request was <strong>refused</strong> by"
+msgstr ""
+
+#: app/views/request/show.rhtml:88
+msgid "The request was <strong>successful</strong>."
+msgstr ""
+
+#: app/views/request/hidden.rhtml:9
+msgid ""
+"The request you have tried to view has been removed. There are\n"
+"various reasons why we might have done this, sorry we can't be more specific "
+"here. Please <a\n"
+" href=\"%s\">contact us</a> if you have any questions."
+msgstr ""
+
+#: app/views/request/_followup.rhtml:35
+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 ""
+
+#: app/views/request/_followup.rhtml:47
+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 ""
+
+#: app/views/public_body/show.rhtml:102
+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 ""
+
+#: app/views/user/show.rhtml:141
+msgid ""
+"The search index is currently offline, so we can't show the Freedom of "
+"Information requests this person has made."
+msgstr ""
+
+#: app/views/request_mailer/comment_on_alert_plural.rhtml:1
+msgid ""
+"There are {{count}} new annotations on your {{info_request}} request. Follow "
+"this link to see what they wrote."
+msgstr ""
+
+#: app/views/user/show.rhtml:4
+msgid ""
+"There is <strong>more than one person</strong> who uses this site and has "
+"this name. \n"
+" One of them is shown below, you may mean a different one:"
+msgstr ""
+
+#: app/views/request/show.rhtml:112
+msgid ""
+"There was a <strong>delivery error</strong> or similar, which needs fixing "
+"by the WhatDoTheyKnow team."
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:38
+msgid "They are going to reply <strong>by post</strong>"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:54
+msgid ""
+"They do <strong>not have</strong> the information <small>(maybe they say who "
+"does)</small>"
+msgstr ""
+
+#: app/views/user/show.rhtml:83
+msgid "They have been given the following explanation:"
+msgstr ""
+
+#: app/views/request_mailer/overdue_alert.rhtml:3
+msgid ""
+"They have not replied to your {{law_used_short}} request {{title}} promptly, "
+"as normally required by law"
+msgstr ""
+
+#: app/views/request_mailer/very_overdue_alert.rhtml:3
+msgid ""
+"They have not replied to your {{law_used_short}} request {{title}}, \n"
+"as required by law"
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:3
+msgid "Things to do with this request"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:60
+msgid "This authority no longer exists, so you cannot make a request to it."
+msgstr ""
+
+#: app/views/request/_hidden_correspondence.rhtml:23
+msgid ""
+"This comment has been hidden. See annotations to\n"
+" find out why. If you are the requester, then you may <a href=\"%"
+"s\">sign in</a> to view the response."
+msgstr ""
+
+#: app/views/request/new.rhtml:65
+msgid ""
+"This covers a very wide spectrum of information about the state of\n"
+" the <strong>natural and built environment</strong>, such as:"
+msgstr ""
+
+#: app/views/request/_view_html_prefix.rhtml:9
+msgid ""
+"This is an HTML version of an attachment to the Freedom of Information "
+"request"
+msgstr ""
+
+#: app/views/request_mailer/stopped_responses.rhtml:5
+msgid ""
+"This is because {{title}} is an old request that has been\n"
+"marked to no longer receive responses."
+msgstr ""
+
+#: app/views/track/_tracking_links.rhtml:9
+msgid ""
+"This is your own request, so you will be automatically emailed when new "
+"responses arrive."
+msgstr ""
+
+#: app/views/request/_hidden_correspondence.rhtml:17
+msgid ""
+"This outgoing message has been hidden. See annotations to\n"
+"\t\t\t\t\t\tfind out why. If you are the requester, then you may <a href=\"%"
+"s\">sign in</a> to view the response."
+msgstr ""
+
+#: app/views/user/show.rhtml:122
+msgid "This person has"
+msgstr ""
+
+#: app/views/user/show.rhtml:152
+msgid "This person's"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:85
+msgid "This request <strong>requires administrator attention</strong>"
+msgstr ""
+
+#: app/views/request/show.rhtml:48
+msgid "This request has an <strong>unknown status</strong>."
+msgstr ""
+
+#: app/views/request/show.rhtml:116
+msgid ""
+"This request has been <strong>withdrawn</strong> by the person who made "
+"it. \n"
+" \t There may be an explanation in the correspondence below."
+msgstr ""
+
+#: app/views/request/show.rhtml:114
+msgid ""
+"This request has had an unusual response, and <strong>requires attention</"
+"strong> from the WhatDoTheyKnow team."
+msgstr ""
+
+#: app/views/request/show.rhtml:5
+msgid ""
+"This request has prominence 'hidden'. You can only see it because you are "
+"logged\n"
+" in as a super user."
+msgstr ""
+
+#: app/views/request/show.rhtml:11
+msgid ""
+"This request is hidden, so that only you the requester can see it. Please\n"
+" <a href=\"%s\">contact us</a> if you are not sure why."
+msgstr ""
+
+#: app/views/request/_hidden_correspondence.rhtml:10
+msgid ""
+"This response has been hidden. See annotations to find out why.\n"
+" If you are the requester, then you may <a href=\"%s\">sign in</"
+"a> to view the response."
+msgstr ""
+
+#: app/views/request/new.rhtml:49
+msgid ""
+"This site is <strong>public</strong>. Everything you type and any response "
+"will be published."
+msgstr ""
+
+#: app/views/request/details.rhtml:6
+msgid ""
+"This table shows the technical details of the internal events that happened\n"
+"to this request on WhatDoTheyKnow. This could be used to generate "
+"information about\n"
+"the speed with which authorities respond to requests, the number of "
+"requests\n"
+"which require a postal response and much more."
+msgstr ""
+
+#: app/views/user/show.rhtml:79
+msgid "This user has been banned from WhatDoTheyKnow.com "
+msgstr ""
+
+#: app/views/user_mailer/changeemail_already_used.rhtml:4
+msgid ""
+"This was not possible because there is already an account using \n"
+"the email address "
+msgstr ""
+
+#: app/views/user/no_cookies.rhtml:5
+msgid ""
+"To carry on, you need to sign in or make an account. Unfortunately, there\n"
+"was a technical problem trying to do this."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:39
+msgid "To do that please send a private email to "
+msgstr ""
+
+#: app/views/request_mailer/not_clarified_alert.rhtml:2
+msgid "To do this, first click on the link below."
+msgstr ""
+
+#: app/views/request_mailer/old_unclassified_updated.rhtml:1
+msgid ""
+"To help us keep the site tidy, someone else has updated the status of the \n"
+"{{law_used_full}} request {{title}} \n"
+"that you made to {{public_body}}, to \n"
+"{{display_status}} If you disagree with \n"
+"their categorisation, please update the status again yourself to what\n"
+"you believe to be more accurate."
+msgstr ""
+
+#: app/views/request_mailer/new_response_reminder_alert.rhtml:1
+msgid "To let us know, follow this link and then select the appropriate box."
+msgstr ""
+
+#: app/views/public_body/view_email_captcha.rhtml:5
+msgid ""
+"To view the email address that we use to send FOI requests to "
+"{{@public_body_name}}, please enter these words."
+msgstr ""
+
+#: app/views/request_mailer/new_response.rhtml:5
+msgid "To view the response, click on the link below."
+msgstr ""
+
+#: app/views/request/_request_listing_short_via_event.rhtml:9
+msgid "To {{public_body_link_absolute}}"
+msgstr ""
+
+#: app/views/request/new.rhtml:88 app/views/request/followup_preview.rhtml:22
+#: app/views/request/preview.rhtml:17
+msgid "To:"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:3
+msgid "Track this authority"
+msgstr ""
+
+#: app/views/user/show.rhtml:29
+msgid "Track this person"
+msgstr ""
+
+#: app/views/request/_sidebar.rhtml:2
+#, fuzzy
+msgid "Track this request"
+msgstr "Napravi zahtev"
+
+#: locale/model_attributes.rb:33
+msgid "TrackThing|Track medium"
+msgstr ""
+
+#: locale/model_attributes.rb:32
+msgid "TrackThing|Track query"
+msgstr ""
+
+#: locale/model_attributes.rb:34
+msgid "TrackThing|Track type"
+msgstr ""
+
+#: app/views/general/search.rhtml:121
+msgid ""
+"Type <strong><code>01/01/2008..14/01/2008</code></strong> to only show "
+"things that happened in the first two weeks of January."
+msgstr ""
+
+#: app/models/public_body.rb:37
+msgid "URL name can't be blank"
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:4
+msgid "Unable to send a reply to {{username}}"
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:2
+msgid "Unable to send follow up message to {{username}}"
+msgstr ""
+
+#: app/views/request/list.rhtml:29
+msgid "Unexpected search result type"
+msgstr ""
+
+#: app/views/request/similar.rhtml:18
+msgid "Unexpected search result type "
+msgstr ""
+
+#: app/views/user/wrong_user_unknown_email.rhtml:3
+msgid ""
+"Unfortunately we don't know the FOI\n"
+"email address for that authority, so we can't validate this.\n"
+"Please <a href=\"%s\">contact us</a> to sort it out."
+msgstr ""
+
+#: app/views/request/new_bad_contact.rhtml:5
+msgid ""
+"Unfortunately, we do not have a working {{info_request_law_used_full}}\n"
+"address for"
+msgstr ""
+
+#: app/views/general/exception_caught.rhtml:18
+msgid "Unknown"
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:13
+#: app/views/request/_after_actions.rhtml:33
+msgid "Update the status of this request"
+msgstr ""
+
+#: app/views/general/search.rhtml:112
+msgid ""
+"Use OR (in capital letters) where you don't mind which word, e.g. "
+"<strong><code>commons OR lords</code></strong>"
+msgstr ""
+
+#: app/views/general/search.rhtml:113
+msgid ""
+"Use quotes when you want to find an exact phrase, e.g. <strong><code>"
+"\"Liverpool City Council\"</code></strong>"
+msgstr ""
+
+#: locale/model_attributes.rb:68
+msgid "UserInfoRequestSentAlert|Alert type"
+msgstr ""
+
+#: locale/model_attributes.rb:79
+msgid "User|About me"
+msgstr ""
+
+#: locale/model_attributes.rb:77
+msgid "User|Admin level"
+msgstr ""
+
+#: locale/model_attributes.rb:78
+msgid "User|Ban text"
+msgstr ""
+
+#: locale/model_attributes.rb:70
+msgid "User|Email"
+msgstr ""
+
+#: locale/model_attributes.rb:74
+msgid "User|Email confirmed"
+msgstr ""
+
+#: locale/model_attributes.rb:72
+msgid "User|Hashed password"
+msgstr ""
+
+#: locale/model_attributes.rb:76
+msgid "User|Last daily track email"
+msgstr ""
+
+#: locale/model_attributes.rb:71
+msgid "User|Name"
+msgstr ""
+
+#: locale/model_attributes.rb:73
+msgid "User|Salt"
+msgstr ""
+
+#: locale/model_attributes.rb:75
+msgid "User|Url name"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:22
+msgid "View FOI email address"
+msgstr ""
+
+#: app/views/public_body/view_email_captcha.rhtml:1
+msgid "View FOI email address for '{{public_body_name}}'"
+msgstr ""
+
+#: app/views/public_body/view_email_captcha.rhtml:3
+msgid "View FOI email address for {{public_body_name}}"
+msgstr ""
+
+#: app/views/contact_mailer/user_message.rhtml:10
+msgid "View Freedom of Information requests made by"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:110
+msgid "View authorities"
+msgstr ""
+
+#: app/views/public_body/view_email_captcha.rhtml:12
+msgid "View email"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:109
+msgid "View requests"
+msgstr ""
+
+#: app/views/request/show.rhtml:110
+msgid ""
+"Waiting for an <strong>internal review</strong> by {{public_body_link}} of "
+"their handling of this request."
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:24
+msgid "We do not have a working"
+msgstr ""
+
+#: app/views/public_body/view_email.rhtml:17
+msgid "We do not have a working request email address for this authority."
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:108
+msgid ""
+"We don't know whether the most recent response to this request contains\n"
+" information or not\n"
+" &ndash;\n"
+"\tif you are {{user_link}} please <a href=\"%s\">sign in</a> and let "
+"everyone know."
+msgstr ""
+
+#: app/views/user_mailer/confirm_login.rhtml:8
+msgid ""
+"We will not reveal your email address to anybody unless you\n"
+"or the law tell us to."
+msgstr ""
+
+#: app/views/user_mailer/changeemail_confirm.rhtml:9
+msgid ""
+"We will not reveal your email addresses to anybody unless you\n"
+"or the law tell us to."
+msgstr ""
+
+#: app/views/request/show.rhtml:54
+msgid "We're waiting for"
+msgstr ""
+
+#: app/views/request/show.rhtml:50
+msgid "We're waiting for someone to read"
+msgstr ""
+
+#: app/views/user/signchangeemail_confirm.rhtml:6
+msgid ""
+"We've sent an email to your new email address. You'll need to click the link "
+"in\n"
+"it before your email address will be changed."
+msgstr ""
+
+#: app/views/user/confirm.rhtml:6
+msgid ""
+"We've sent you an email, and you'll need to click the link in it before you "
+"can\n"
+"continue."
+msgstr ""
+
+#: app/views/user/signchangepassword_confirm.rhtml:6
+msgid ""
+"We've sent you an email, click the link in it, then you can change your "
+"password."
+msgstr ""
+
+#: app/views/request/_followup.rhtml:62
+msgid "What are you doing?"
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:4
+msgid "What best describes the status of this request now?"
+msgstr ""
+
+#: app/views/public_body/view_email.rhtml:7
+msgid ""
+"WhatDoTheyKnow sends new requests to <strong>{{request_email}}</strong> for "
+"this authority."
+msgstr ""
+
+#: app/views/request_mailer/new_response.rhtml:9
+msgid ""
+"When you get there, please update the status to say if the response \n"
+"contains any useful information."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:44
+msgid ""
+"When you receive the paper response, please help\n"
+" others find out what it says:"
+msgstr ""
+
+#: app/views/request/new_please_describe.rhtml:16
+msgid ""
+"When you're done, <strong>come back here</strong>, <a href=\"%s\">reload "
+"this page</a> and file your new request."
+msgstr ""
+
+#: app/views/request/show_response.rhtml:13
+msgid "Which of these is happening?"
+msgstr ""
+
+#: app/views/request/new.rhtml:46
+msgid "Write your request in <strong>simple, precise language</strong>."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:71
+msgid ""
+"XXX this section needs localising re EIR as these are specific to UK law"
+msgstr ""
+
+#: app/views/comment/_single_comment.rhtml:10
+msgid "You"
+msgstr ""
+
+#: app/views/request/show.rhtml:81
+msgid "You can <strong>complain</strong> by"
+msgstr ""
+
+#: app/views/request/details.rhtml:57
+msgid ""
+"You can get this page in computer-readable format as part of the main JSON\n"
+"page for the request. See the <a href=\"%s\">API documentation</a>."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:41
+msgid ""
+"You can only request information about the environment from this authority."
+msgstr ""
+
+#: app/views/user/show.rhtml:122
+msgid "You have"
+msgstr ""
+
+#: app/views/request_mailer/new_response.rhtml:1
+msgid "You have a new response to the {{law_used_full}} request "
+msgstr ""
+
+#: app/views/user_mailer/already_registered.rhtml:3
+msgid ""
+"You just tried to sign up to WhatDoTheyKnow.com, when you\n"
+"already have an account. Your name and password have been\n"
+"left as they previously were.\n"
+"\n"
+"Please click on the link below."
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:16
+msgid ""
+"You may <strong>include attachments</strong>. If you would like to attach a\n"
+"file too large for email, use the form below."
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:25
+msgid ""
+"You may be able to find\n"
+" one on their website, or by phoning them up and asking. If you manage\n"
+" to find one, then please <a href=\"%s\">send it to us</a>."
+msgstr ""
+
+#: app/views/request/new_bad_contact.rhtml:6
+msgid ""
+"You may be able to find\n"
+"one on their website, or by phoning them up and asking. If you manage\n"
+"to find one, then please <a href=\"%s\">send it to us</a>."
+msgstr ""
+
+#: app/views/request/upload_response.rhtml:13
+msgid ""
+"You should have received a copy of the request by email, and you can "
+"respond\n"
+"by <strong>simply replying</strong> to that email. For your convenience, "
+"here is the address:"
+msgstr ""
+
+#: app/views/request/show_response.rhtml:36
+msgid ""
+"You want to <strong>give your postal address</strong> to the authority in "
+"private."
+msgstr ""
+
+#: app/views/user/banned.rhtml:9
+msgid ""
+"You will be unable to make new requests, send follow ups, add annotations "
+"or\n"
+"send messages to other users. You may continue to view other requests, and "
+"set\n"
+"up\n"
+"email alerts."
+msgstr ""
+
+#: app/views/request_mailer/not_clarified_alert.rhtml:6
+msgid ""
+"You will only get an answer to your request if you follow up\n"
+"with the clarification."
+msgstr ""
+
+#: app/views/user/show.rhtml:152
+msgid "Your "
+msgstr ""
+
+#: app/views/user/_signup.rhtml:22
+msgid ""
+"Your <strong>name will appear publicly</strong> \n"
+" (<a href=\"%s\">why?</a>)\n"
+" on this website and in search engines. If you\n"
+" are thinking of using a pseudonym, please \n"
+" <a href=\"%s\">read this first</a>."
+msgstr ""
+
+#: app/views/contact_mailer/user_message.rhtml:3
+msgid ""
+"Your details have not been given to anyone, unless you choose to reply to "
+"this\n"
+"message, which will then go directly to the person who wrote the message."
+msgstr ""
+
+#: app/views/user/signchangepassword_send_confirm.rhtml:13
+#: app/views/user/_signup.rhtml:9 app/views/user/_signin.rhtml:11
+msgid "Your e-mail:"
+msgstr ""
+
+#: app/views/user/show.rhtml:168
+msgid "Your email subscriptions"
+msgstr ""
+
+#: app/views/request/followup_preview.rhtml:15
+msgid "Your message will appear in <strong>search engines</strong>"
+msgstr ""
+
+#: app/views/comment/preview.rhtml:10
+msgid ""
+"Your name and annotation will appear in <strong>search engines</strong>."
+msgstr ""
+
+#: app/views/request/preview.rhtml:8
+msgid ""
+"Your name, request and any responses will appear in <strong>search engines</"
+"strong>\n"
+" (<a href=\"%s\">details</a>)."
+msgstr ""
+
+#: app/views/user/_signup.rhtml:18
+msgid "Your name:"
+msgstr ""
+
+#: app/views/request_mailer/stopped_responses.rhtml:14
+msgid "Your original message is attached."
+msgstr ""
+
+#: app/views/user/signchangeemail.rhtml:25
+#, fuzzy
+msgid "Your password:"
+msgstr "Molimo Vas da unesete vaš pasvord"
+
+#: app/views/user/set_draft_profile_photo.rhtml:18
+msgid ""
+"Your photo will be shown in public <strong>on the Internet</strong>, \n"
+" wherever you do something on WhatDoTheyKnow."
+msgstr ""
+
+#: app/views/request_mailer/new_response_reminder_alert.rhtml:5
+msgid ""
+"Your request was called {{info_request}}. Letting everyone know whether you "
+"got the information will help us keep tabs on"
+msgstr ""
+
+#: app/views/request/new.rhtml:109
+#, fuzzy
+msgid "Your request:"
+msgstr "Moji zahtevi"
+
+#: app/views/request/upload_response.rhtml:8
+msgid ""
+"Your response will <strong>appear on the Internet</strong>, <a href=\"%s"
+"\">read why</a> and answers to other questions."
+msgstr ""
+
+#: app/views/request/new.rhtml:97
+msgid ""
+"a one line summary of the information you are requesting, \n"
+"\t\t\te.g."
+msgstr ""
+
+#: app/views/track_mailer/event_digest.rhtml:31
+msgid "added an annotation"
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:25
+msgid "address for"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:32
+msgid "admin"
+msgstr "admin"
+
+#: app/views/public_body/show.rhtml:30
+msgid "also called {{public_body_short_name}}"
+msgstr ""
+
+#: app/views/user/wrong_user.rhtml:5
+msgid "and sign in as "
+msgstr ""
+
+#: app/views/request/show.rhtml:52
+msgid ""
+"and update the status accordingly. Perhaps <strong>you</strong> might like "
+"to help out by doing that?"
+msgstr ""
+
+#: app/views/request/show.rhtml:57
+msgid "and update the status."
+msgstr ""
+
+#: app/views/request/_describe_state.rhtml:102
+msgid "and we'll suggest <strong>what to do next</strong>"
+msgstr ""
+
+#: app/views/user/show.rhtml:153
+msgid "annotation"
+msgstr ""
+
+#: app/views/user/show.rhtml:147
+msgid "annotations"
+msgstr ""
+
+#: app/views/request_mailer/very_overdue_alert.rhtml:1
+msgid "are long overdue."
+msgstr ""
+
+#: app/controllers/public_body_controller.rb:110
+msgid "beginning with"
+msgstr ""
+
+#: app/views/request/show.rhtml:75
+msgid "by"
+msgstr ""
+
+#: app/views/request/_followup.rhtml:41
+msgid "by <strong>{{date}}</strong>"
+msgstr ""
+
+#: app/views/request/_request_listing_via_event.rhtml:34
+msgid "by {{public_body_name}} to {{info_request_user}} on {{date}}."
+msgstr ""
+
+#: app/views/request/_request_listing_short_via_event.rhtml:10
+msgid "by {{user_link_absolute}}"
+msgstr ""
+
+#: locale/model_attributes.rb:42
+msgid "censor rule"
+msgstr ""
+
+#: locale/model_attributes.rb:26
+msgid "comment"
+msgstr ""
+
+#: app/views/request/show_response.rhtml:41
+msgid ""
+"containing your postal address, and asking them to reply to this request.\n"
+" Or you could phone them."
+msgstr ""
+
+#: app/views/request_mailer/overdue_alert.rhtml:3
+msgid "during term time"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:18
+msgid "e.g."
+msgstr ""
+
+#: app/views/user/show.rhtml:96
+msgid "edit text about you"
+msgstr ""
+
+#: app/views/user/show.rhtml:171
+msgid "email subscription"
+msgstr ""
+
+#: app/views/request_mailer/very_overdue_alert.rhtml:4
+msgid "even during holidays"
+msgstr ""
+
+#: locale/model_attributes.rb:14
+msgid "exim log"
+msgstr ""
+
+#: locale/model_attributes.rb:60
+msgid "exim log done"
+msgstr ""
+
+#: app/views/request_mailer/requires_admin.rhtml:2
+msgid "has reported an"
+msgstr ""
+
+#: app/views/request_mailer/overdue_alert.rhtml:1
+msgid "have delayed."
+msgstr ""
+
+#: locale/model_attributes.rb:57
+msgid "holiday"
+msgstr ""
+
+#: app/views/request/show.rhtml:63 app/views/request/show.rhtml:73
+#: app/views/request/_followup.rhtml:39
+msgid "in term time"
+msgstr ""
+
+#: app/views/public_body/list.rhtml:42
+msgid "in total"
+msgstr ""
+
+#: locale/model_attributes.rb:63
+msgid "incoming message"
+msgstr ""
+
+#: locale/model_attributes.rb:80
+msgid "info request"
+msgstr ""
+
+#: locale/model_attributes.rb:35
+msgid "info request event"
+msgstr ""
+
+#: app/views/user/signchangeemail.rhtml:3
+#: app/views/user/set_profile_about_me.rhtml:3
+msgid "internal error"
+msgstr ""
+
+#: app/views/request/show.rhtml:99
+msgid "is <strong>waiting for your clarification</strong>."
+msgstr ""
+
+#: app/views/user/show.rhtml:71
+msgid "just to see how it works"
+msgstr ""
+
+#: app/views/comment/_single_comment.rhtml:10
+msgid "left an annotation"
+msgstr ""
+
+#: app/views/user/_user_listing_single.rhtml:19
+#: app/views/user/_user_listing_single.rhtml:20
+msgid "made."
+msgstr ""
+
+#: app/views/track_mailer/event_digest.rhtml:54
+msgid "need to add other types to TrackMailer.event_digest"
+msgstr ""
+
+#: app/views/request/show.rhtml:67
+msgid "no later than"
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:18
+msgid ""
+"no longer exists. If you are trying to make\n"
+" 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=\"%s\">send it "
+"to us</a>."
+msgstr ""
+
+#: app/views/request/show.rhtml:65
+msgid "normally"
+msgstr ""
+
+#: app/views/user/show.rhtml:114
+msgid "only"
+msgstr ""
+
+#: locale/model_attributes.rb:20
+msgid "outgoing message"
+msgstr ""
+
+#: app/views/user/sign.rhtml:11
+msgid "please sign in as "
+msgstr ""
+
+#: app/views/user/sign.rhtml:28
+msgid "please sign in or make a new account."
+msgstr ""
+
+#: locale/model_attributes.rb:50
+msgid "post redirect"
+msgstr ""
+
+#: locale/model_attributes.rb:17
+msgid "profile photo"
+msgstr ""
+
+#: locale/model_attributes.rb:2
+msgid "public body"
+msgstr ""
+
+#: locale/model_attributes.rb:47
+msgid "raw email"
+msgstr ""
+
+#: app/views/request_mailer/not_clarified_alert.rhtml:1
+#, fuzzy
+msgid "request."
+msgstr "Moji zahtevi"
+
+#: app/views/request/show.rhtml:82
+msgid "requesting an internal review"
+msgstr ""
+
+#: app/views/request_mailer/requires_admin.rhtml:3
+msgid ""
+"response as needing administrator attention. Take a look, and reply to this\n"
+"email to let them know what you are going to do about it."
+msgstr ""
+
+#: app/views/request/show.rhtml:101
+msgid "send a follow up message"
+msgstr ""
+
+#: app/views/request/_request_listing_via_event.rhtml:31
+msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
+msgstr ""
+
+#: app/views/request/show.rhtml:105
+msgid "sign in"
+msgstr ""
+
+#: app/views/user/wrong_user.rhtml:4
+msgid "sign out"
+msgstr ""
+
+#: app/views/request_mailer/new_response.rhtml:2
+msgid "that you made to"
+msgstr ""
+
+#: app/views/user/show.rhtml:140
+msgid "this person"
+msgstr ""
+
+#: app/views/user_mailer/changeemail_already_used.rhtml:2
+msgid "to"
+msgstr ""
+
+#: app/views/user_mailer/changeemail_confirm.rhtml:5
+msgid "to "
+msgstr ""
+
+#: app/views/user/show.rhtml:113
+msgid ""
+"to change password, \n"
+" subscriptions and more"
+msgstr ""
+
+#: app/views/request/new.rhtml:34
+msgid "to check that the info isn't already published."
+msgstr ""
+
+#: app/views/request/show.rhtml:55
+msgid "to read"
+msgstr ""
+
+#: app/views/request/show.rhtml:105
+msgid "to send a follow up message."
+msgstr ""
+
+#: app/views/request/show.rhtml:39
+msgid "to {{public_body}}"
+msgstr ""
+
+#: locale/model_attributes.rb:31
+msgid "track thing"
+msgstr ""
+
+#: app/views/request/_hidden_correspondence.rhtml:32
+msgid "unexpected prominence on request event"
+msgstr ""
+
+#: app/views/request/_request_listing_via_event.rhtml:38
+msgid "unknown event type indexed "
+msgstr ""
+
+#: app/views/request/followup_bad.rhtml:30
+msgid "unknown reason "
+msgstr ""
+
+#: app/views/user/show.rhtml:208
+msgid "unsubscribe"
+msgstr ""
+
+#: app/views/user/show.rhtml:180 app/views/user/show.rhtml:194
+msgid "unsubscribe all"
+msgstr ""
+
+#: app/views/request/show.rhtml:46
+msgid "useful information."
+msgstr ""
+
+#: locale/model_attributes.rb:69
+msgid "user"
+msgstr ""
+
+#: locale/model_attributes.rb:67
+msgid "user info request sent alert"
+msgstr ""
+
+#: app/views/user/show.rhtml:140
+msgid "you"
+msgstr ""
+
+#: app/views/request/new.rhtml:6
+msgid ""
+"{{existing_request_user}} already\n"
+" created the same request on {{date}}. You can either view the <a href="
+"\"{{existing_request}}\">existing request</a>,\n"
+" or edit the details below to make a new but similar request."
+msgstr ""
+
+#: app/views/request/_after_actions.rhtml:20
+msgid "{{info_request_user_name}} only:"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:49
+msgid "{{length_of_time}} ago"
+msgstr "{{length_of_time}} pre"
+
+#: app/views/request/_after_actions.rhtml:43
+msgid "{{public_body_name}} only:"
+msgstr ""
+
+#: app/views/request/show.rhtml:35
+msgid "{{user}} made this {{law_used_full}} request"
+msgstr ""
+
+#~ msgid "Ministerial departments"
+#~ msgstr "Minisrija"
+
+#~ msgid "Miscellaneous"
+#~ msgstr "Tjera serbisht"
+
+#~ msgid "activerecord.errors.full_messages.format"
+#~ msgstr "%{message}"
diff --git a/public/images/rss.png b/public/images/rss.png
index 66ab927e4..a88ac93f5 100644
--- a/public/images/rss.png
+++ b/public/images/rss.png
Binary files differ
diff --git a/public/images/twitter.png b/public/images/twitter.png
index e3fa814a1..6589824af 100644
--- a/public/images/twitter.png
+++ b/public/images/twitter.png
Binary files differ
diff --git a/public/stylesheets/main.css b/public/stylesheets/main.css
index c17d95bc0..8dfecd586 100644
--- a/public/stylesheets/main.css
+++ b/public/stylesheets/main.css
@@ -119,7 +119,7 @@ body
position: absolute;
width: 100%;
left: 0px;
- top: 0px;
+ top: 0;
z-index: 150;
text-align: right;
font-size: 0.8em;
@@ -404,7 +404,7 @@ dd { margin: 0.6em 0 2em 4em; width: 33em; }
/*-----------------------------blog----------------*/
-div#blog_sidebar
+div#twitter
{
float: right;
clear: none;
@@ -412,24 +412,11 @@ div#blog_sidebar
background-color: #EAEAEA;
padding: 0.5em;
margin: 0 0 1em 1em;
-
- border-color: #AEAEAE;
- border-width: 1px;
- border-style: solid;
-}
-div#blog_sidebar h1
-{
-}
-div#blog_sidebar img
-{
- vertical-align: middle;
}
.blog_post {
margin-bottom: 2em;
}
-.twitter_post {
-}
/*-----------------------------list sidebars----------------*/
#list_sidebar
@@ -1239,4 +1226,16 @@ div.user_about_me
font-style: italic;
}
+div.lang {
+ position: absolute;
+ text-align: right;
+ font-size: 0.8em;
+ top: 45px;
+ right: 0px;
+ padding-right: 5px;
+ z-index: 200;
+}
+div#user_locale_switcher {
+ margin: 5px;
+} \ No newline at end of file
diff --git a/spec/controllers/admin_public_body_controller_spec.rb b/spec/controllers/admin_public_body_controller_spec.rb
index a32c27dd9..cb622dabd 100644
--- a/spec/controllers/admin_public_body_controller_spec.rb
+++ b/spec/controllers/admin_public_body_controller_spec.rb
@@ -3,7 +3,14 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe AdminPublicBodyController, "when administering public bodies" do
integrate_views
fixtures :public_bodies, :public_body_translations
-
+
+ before do
+ username = MySociety::Config.get('ADMIN_USERNAME', '')
+ password = MySociety::Config.get('ADMIN_PASSWORD', '')
+ basic_auth_login @request
+ end
+
+
it "shows the index page" do
get :index
end
@@ -41,6 +48,24 @@ describe AdminPublicBodyController, "when administering public bodies" do
PublicBody.count.should == 1
end
+ it "don't allow non-authenticated users to do anything" do
+ @request.env["HTTP_AUTHORIZATION"] = ""
+ PublicBody.count.should == 2
+ post :destroy, { :id => 3 }
+ response.code.should == "401"
+ PublicBody.count.should == 2
+ end
+
+ it "when no username/password set, skip admin authorisation" do
+ config = MySociety::Config.load_default()
+ config['ADMIN_USERNAME'] = ''
+ config['ADMIN_PASSWORD'] = ''
+ @request.env["HTTP_AUTHORIZATION"] = ""
+ PublicBody.count.should == 2
+ post :destroy, { :id => 3 }
+ PublicBody.count.should == 1
+ end
+
end
@@ -48,6 +73,12 @@ describe AdminPublicBodyController, "when administering public bodies with i18n"
integrate_views
fixtures :public_bodies, :public_body_translations
+ before do
+ username = MySociety::Config.get('ADMIN_USERNAME', '')
+ password = MySociety::Config.get('ADMIN_PASSWORD', '')
+ basic_auth_login @request
+ end
+
it "shows the index page" do
get :index
end
@@ -62,24 +93,28 @@ describe AdminPublicBodyController, "when administering public bodies with i18n"
end
it "creates a new public body" do
+ I18n.locale = :es
PublicBody.count.should == 2
post :create, { :public_body => { :name => "New Quango", :short_name => "", :tag_string => "blah", :request_email => 'newquango@localhost', :last_edit_comment => 'From test code' } }
PublicBody.count.should == 3
+ I18n.locale = :en
end
it "edits a public body" do
- get :edit, {:id => 3, :locale => 'es'}
+ I18n.locale = :es
+ get :edit, {:id => 3, :locale => :es}
response.body.should include('Baguette')
+ I18n.locale = :en
end
it "saves edits to a public body" do
- PublicBody.with_locale(:es) do
- pb = PublicBody.find(id=3)
- pb.name.should == "El Department for Humpadinking"
- end
+ I18n.locale = :es
+ pb = PublicBody.find(id=3)
+ pb.name.should == "El Department for Humpadinking"
+ post :update, { :id => 3, :public_body => { :name => "Renamed", :short_name => "", :tag_string => "some tags", :request_email => 'edited@localhost', :last_edit_comment => 'From test code' }}
+ response.flash[:notice].should include('successful')
+ I18n.locale = :en
- post :update, { :id => 3, :public_body => { :name => "Renamed", :short_name => "", :tag_string => "some tags", :request_email => 'edited@localhost', :last_edit_comment => 'From test code' }, :locale => "es" }
- response.flash[:notice].should include('successful')
pb = PublicBody.find(public_bodies(:humpadink_public_body).id)
PublicBody.with_locale(:es) do
pb.name.should == "Renamed"
@@ -95,5 +130,4 @@ describe AdminPublicBodyController, "when administering public bodies with i18n"
PublicBody.count.should == 1
end
-
end
diff --git a/spec/controllers/public_body_controller_spec.rb b/spec/controllers/public_body_controller_spec.rb
index 8b84b89ec..d15482e51 100644
--- a/spec/controllers/public_body_controller_spec.rb
+++ b/spec/controllers/public_body_controller_spec.rb
@@ -22,20 +22,23 @@ describe PublicBodyController, "when showing a body" do
end
it "should assign the body using different locale from that used for url_name" do
- get :show, {:url_name => "dfh", :locale => 'es'}
- assigns[:public_body].notes.should == "Baguette"
+ PublicBody.with_locale(:es) do
+ get :show, {:url_name => "dfh"}
+ assigns[:public_body].notes.should == "Baguette"
+ end
end
it "should assign the body using same locale as that used in url_name" do
- get :show, {:url_name => "edfh", :locale => 'es'}
- assigns[:public_body].notes.should == "Baguette"
+ PublicBody.with_locale(:es) do
+ get :show, {:url_name => "edfh"}
+ assigns[:public_body].notes.should == "Baguette"
+ end
end
- it "should assign the body using same locale as that used in url_name even with wrongly set locale" do
- PublicBody.with_locale(:en) do
- get :show, {:url_name => "edfh", :locale => 'es'}
- response.body.should include('Baguette')
- end
+ it "should redirect use to the relevant locale even when url_name is for a different locale" do
+ ActionController::Routing::Routes.filters.clear
+ get :show, {:url_name => "edfh"}
+ response.should redirect_to "http://test.host/body/dfh"
end
it "should redirect to newest name if you use historic name of public body in URL" do
@@ -69,12 +72,13 @@ describe PublicBodyController, "when listing bodies" do
end
it "should list bodies in alphabetical order with different locale" do
- get :list, :locale => "es"
+ I18n.locale = :es
+ get :list
response.should render_template('list')
-
assigns[:public_bodies].should == [ public_bodies(:geraldine_public_body), public_bodies(:humpadink_public_body) ]
assigns[:tag].should == "all"
assigns[:description].should == "all"
+ I18n.locale = :en
end
it "should list a tagged thing on the appropriate list page, and others on the other page, and all still on the all page" do
diff --git a/spec/controllers/request_controller_spec.rb b/spec/controllers/request_controller_spec.rb
index ac44cb905..64f3f8061 100644
--- a/spec/controllers/request_controller_spec.rb
+++ b/spec/controllers/request_controller_spec.rb
@@ -526,6 +526,8 @@ describe RequestController, "when classifying an information request" do
response.should render_template('user/wrong_user')
end
+
+
describe 'when the request is old and unclassified' do
before do
@@ -714,6 +716,16 @@ describe RequestController, "when classifying an information request" do
post_status('rejected')
response.should redirect_to(:controller => 'help', :action => 'unhappy', :url_title => @dog_request.url_title)
end
+
+ describe "when using custom statuses from the theme" do
+ InfoRequest.send(:require, File.expand_path(File.join(File.dirname(__FILE__), '..', 'models', 'customstates')))
+
+ it "knows about extended states" do
+ Time.stub!(:now).and_return(Time.utc(2007, 11, 10, 00, 01))
+ post_status('deadline_extended')
+ flash[:notice].should == 'Authority has requested extension of the deadline.'
+ end
+ end
end
describe 'when redirecting after a successful status update by the request owner' do
@@ -735,7 +747,7 @@ describe RequestController, "when classifying an information request" do
def expect_redirect(status, redirect_path)
post_status(status)
- response.should redirect_to("http://test.host/#{redirect_path}")
+ response.should redirect_to("http://test.host/en/#{redirect_path}")
end
it 'should redirect to the "request url" with a message in the right tense when status is updated to "waiting response" and the response is not overdue' do
@@ -903,7 +915,7 @@ describe RequestController, "sending overdue request alerts" do
deliveries = ActionMailer::Base.deliveries
deliveries.size.should == 1
mail = deliveries[0]
- mail.body.should =~ /promptly, as normally\s+required by law/
+ mail.body.should =~ /promptly, as normally/
mail.to_addrs.to_s.should == info_requests(:naughty_chicken_request).user.name_and_email
mail.body =~ /(http:\/\/.*\/c\/(.*))/
@@ -931,7 +943,7 @@ describe RequestController, "sending overdue request alerts" do
deliveries = ActionMailer::Base.deliveries
deliveries.size.should == 1
mail = deliveries[0]
- mail.body.should =~ /promptly, as normally\s+required by law during term time/
+ mail.body.should =~ /promptly, as normally/
mail.to_addrs.to_s.should == info_requests(:naughty_chicken_request).user.name_and_email
end
diff --git a/spec/controllers/track_controller_spec.rb b/spec/controllers/track_controller_spec.rb
index 8076d40c2..0a8919268 100644
--- a/spec/controllers/track_controller_spec.rb
+++ b/spec/controllers/track_controller_spec.rb
@@ -43,6 +43,8 @@ describe TrackController, "when sending alerts for a track" do
end
it "should send alerts" do
+ # Don't do clever locale-insertion-unto-URL stuff
+ ActionController::Routing::Routes.filters.clear
# set the time the comment event happened at to within the last week
ire = info_request_events(:silly_comment_event)
ire.created_at = Time.now - 3.days
diff --git a/spec/controllers/user_controller_spec.rb b/spec/controllers/user_controller_spec.rb
index 4e21bc467..c6817fbc6 100644
--- a/spec/controllers/user_controller_spec.rb
+++ b/spec/controllers/user_controller_spec.rb
@@ -75,6 +75,7 @@ describe UserController, "when signing in" do
end
it "should log in when you give right email/password, and redirect to where you were" do
+ ActionController::Routing::Routes.filters.clear
get :signin, :r => "/list"
response.should render_template('sign')
post_redirect = get_last_postredirect
@@ -82,6 +83,7 @@ describe UserController, "when signing in" do
:token => post_redirect.token
}
session[:user_id].should == users(:bob_smith_user).id
+ # response doesn't contain /en/ but redirect_to does...
response.should redirect_to(:controller => 'request', :action => 'list', :post_redirect => 1)
response.should_not send_email
end
@@ -107,6 +109,7 @@ describe UserController, "when signing in" do
end
it "should confirm your email, log you in and redirect you to where you were after you click an email link" do
+ ActionController::Routing::Routes.filters.clear
get :signin, :r => "/list"
post_redirect = get_last_postredirect
@@ -191,6 +194,7 @@ describe UserController, "when signing out" do
end
it "should log you out and redirect you to where you were" do
+ ActionController::Routing::Routes.filters.clear
session[:user_id] = users(:bob_smith_user).id
get :signout, :r => '/list'
session[:user_id].should be_nil
@@ -420,8 +424,7 @@ describe UserController, "when changing email address" do
"signchangeemail"=>{
"old_email"=>"bob@localhost",
"new_email"=>"newbob@localhost"},
- "controller"=>"user",
- "locale"=>"en"}
+ "controller"=>"user"}
post :signchangeemail, post_redirect.post_params
response.should redirect_to(:controller => 'user', :action => 'show', :url_name => 'bob_smith')
diff --git a/spec/helpers/link_to_helper_spec.rb b/spec/helpers/link_to_helper_spec.rb
index 401c324fe..aae00c298 100644
--- a/spec/helpers/link_to_helper_spec.rb
+++ b/spec/helpers/link_to_helper_spec.rb
@@ -7,6 +7,7 @@ describe LinkToHelper do
describe 'when creating a url for a request' do
before do
+ ActionController::Routing::Routes.filters.clear
@mock_request = mock_model(InfoRequest, :url_title => 'test_title')
end
@@ -20,4 +21,4 @@ describe LinkToHelper do
end
-end \ No newline at end of file
+end
diff --git a/spec/models/customstates.rb b/spec/models/customstates.rb
new file mode 100644
index 000000000..de8d04ffb
--- /dev/null
+++ b/spec/models/customstates.rb
@@ -0,0 +1,62 @@
+module InfoRequestCustomStates
+ # Mixin methods for InfoRequest
+ def theme_display_status(status)
+ if status == 'deadline_extended'
+ _("Deadline extended.")
+ elsif status == 'wrong_response'
+ _("Wrong Response.")
+ else
+ raise _("unknown status ") + status
+ end
+ end
+
+ def theme_extra_states
+ return ['deadline_extended',
+ 'wrong_response']
+ end
+
+
+ def theme_calculate_status
+ return 'waiting_classification' if self.awaiting_description
+ waiting_response = self.described_state == "waiting_response" || self.described_state == "deadline_extended"
+ return self.described_state unless waiting_response
+ if self.described_state == 'deadline_extended'
+ return 'deadline_extended' if
+ Time.now.strftime("%Y-%m-%d") < self.date_deadline_extended.strftime("%Y-%m-%d")
+ return 'waiting_response_very_overdue' if
+ Time.now.strftime("%Y-%m-%d") > Holiday.due_date_from(self.date_deadline_extended, 15).strftime("%Y-%m-%d")
+ return 'waiting_response_overdue'
+ end
+ return 'waiting_response_very_overdue' if
+ Time.now.strftime("%Y-%m-%d") > self.date_very_overdue_after.strftime("%Y-%m-%d")
+ return 'waiting_response_overdue' if
+ Time.now.strftime("%Y-%m-%d") > self.date_response_required_by.strftime("%Y-%m-%d")
+ return 'waiting_response'
+ end
+
+ def date_deadline_extended
+ # XXX shouldn't this be 15 days after the date the status was
+ # changed to "deadline extended"? Or perhaps 15 days ater the
+ # initial request due date?
+ return Holiday.due_date_from(self.date_response_required_by, 15)
+ end
+
+end
+
+module RequestControllerCustomStates
+
+ def theme_describe_state(info_request)
+ # called after the core describe_state code. It should
+ # end by raising an error if the status is unknown
+ if info_request.calculate_status == 'deadline_extended'
+ flash[:notice] = _("Authority has requested extension of the deadline.")
+ redirect_to unhappy_url(info_request)
+ elsif info_request.calculate_status == 'wrong_response'
+ flash[:notice] = _("Oh no! Sorry to hear that your request was wrong. Here is what to do now.")
+ redirect_to unhappy_url(info_request)
+ else
+ raise "unknown calculate_status " + info_request.calculate_status
+ end
+ end
+
+end
diff --git a/spec/models/info_request_spec.rb b/spec/models/info_request_spec.rb
index 96a4f5bc8..91b1b0876 100644
--- a/spec/models/info_request_spec.rb
+++ b/spec/models/info_request_spec.rb
@@ -159,6 +159,42 @@ describe InfoRequest do
end
end
+
+ describe "when using a plugin and calculating the status" do
+
+ fixtures :info_requests
+
+ before do
+ InfoRequest.send(:require, File.expand_path(File.dirname(__FILE__) + '/customstates'))
+ @ir = info_requests(:naughty_chicken_request)
+ @ir.load_custom_states
+ end
+
+ it "rejects invalid states" do
+ lambda {@ir.set_described_state("foo")}.should raise_error(ActiveRecord::RecordInvalid)
+ end
+
+ it "accepts core states" do
+ @ir.set_described_state("requires_admin")
+ end
+
+ it "accepts extended states" do
+ # this time would normally be "overdue"
+ Time.stub!(:now).and_return(Time.utc(2007, 11, 10, 00, 01))
+ @ir.set_described_state("deadline_extended")
+ @ir.display_status.should == 'Deadline extended.'
+ @ir.date_deadline_extended
+ end
+
+ it "is not overdue if it's had the deadline extended" do
+ when_overdue = Time.utc(2007, 11, 10, 00, 01) + 16.days
+ Time.stub!(:now).and_return(when_overdue)
+ @ir.calculate_status.should == 'waiting_response_overdue'
+ end
+
+ end
+
+
describe "when calculating the status for a school" do
fixtures :info_requests, :info_request_events, :holidays, :public_bodies, :public_body_translations
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 87a89f755..33793dea3 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -5,6 +5,11 @@ require File.expand_path(File.join(File.dirname(__FILE__),'..','config','environ
require 'spec/autorun'
require 'spec/rails'
+# set a default username and password so we can test
+config = MySociety::Config.load_default()
+config['ADMIN_USERNAME'] = 'foo'
+config['ADMIN_PASSWORD'] = 'baz'
+
# Uncomment the next line to use webrat's matchers
#require 'webrat/integrations/rspec-rails'
@@ -103,6 +108,12 @@ def validate_as_body(html)
"<html><head><title>Test</title></head><body>#{html}</body></html>")
end
+def basic_auth_login(request)
+ username = MySociety::Config.get('ADMIN_USERNAME')
+ password = MySociety::Config.get('ADMIN_PASSWORD')
+ request.env["HTTP_AUTHORIZATION"] = "Basic " + Base64::encode64("#{username}:#{password}")
+end
+
# Monkeypatch! Validate HTML in tests.
$html_validation_script = "/usr/bin/validate" # from Debian package wdg-html-validator
if $tempfilecount.nil?
@@ -114,19 +125,13 @@ if $tempfilecount.nil?
alias :original_process :process
def process(action, parameters = nil, session = nil, flash = nil, http_method = 'GET')
- # Call original process function
- if parameters.nil?
- parameters = {:locale => "en"}
- elsif not parameters.has_key?(:locale)
- parameters[:locale] = "en"
- end
self.original_process(action, parameters, session, flash, http_method)
# XXX Is there a better way to check this than calling a private method?
return unless @response.template.controller.instance_eval { integrate_views? }
# And then if HTML, not a redirect (302, 301)
- if @response.content_type == "text/html" && (@response.response_code != 302) && (@response.response_code != 301)
+ if @response.content_type == "text/html" && ! [301,302,401].include?(@response.response_code)
validate_html(@response.body)
end
end
diff --git a/spec/views/request/show.rhtml_spec.rb b/spec/views/request/show.rhtml_spec.rb
index 54ce9c63a..ca4663afc 100644
--- a/spec/views/request/show.rhtml_spec.rb
+++ b/spec/views/request/show.rhtml_spec.rb
@@ -83,7 +83,8 @@ describe 'when viewing an information request' do
describe 'when there is a last response' do
- before do
+ before do
+ ActionController::Routing::Routes.filters.clear
@mock_response = mock_model(IncomingMessage)
@mock_request.stub!(:get_last_response).and_return(@mock_response)
end
@@ -99,6 +100,7 @@ describe 'when viewing an information request' do
describe 'when there is no last response' do
before do
+ ActionController::Routing::Routes.filters.clear
@mock_request.stub!(:get_last_response).and_return(nil)
end
diff --git a/vendor/gems/routing-filter-0.2.3/.specification b/vendor/gems/routing-filter-0.2.3/.specification
new file mode 100644
index 000000000..081da6e32
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/.specification
@@ -0,0 +1,151 @@
+--- !ruby/object:Gem::Specification
+name: routing-filter
+version: !ruby/object:Gem::Version
+ hash: 17
+ prerelease:
+ segments:
+ - 0
+ - 2
+ - 3
+ version: 0.2.3
+platform: ruby
+authors:
+- Sven Fuchs
+autorequire:
+bindir: bin
+cert_chain: []
+
+date: 2011-01-24 00:00:00 +00:00
+default_executable:
+dependencies:
+- !ruby/object:Gem::Dependency
+ name: actionpack
+ prerelease: false
+ requirement: &id001 !ruby/object:Gem::Requirement
+ none: false
+ requirements:
+ - - ">="
+ - !ruby/object:Gem::Version
+ hash: 3
+ segments:
+ - 0
+ version: "0"
+ type: :runtime
+ version_requirements: *id001
+- !ruby/object:Gem::Dependency
+ name: i18n
+ prerelease: false
+ requirement: &id002 !ruby/object:Gem::Requirement
+ none: false
+ requirements:
+ - - ">="
+ - !ruby/object:Gem::Version
+ hash: 3
+ segments:
+ - 0
+ version: "0"
+ type: :development
+ version_requirements: *id002
+- !ruby/object:Gem::Dependency
+ name: rails
+ prerelease: false
+ requirement: &id003 !ruby/object:Gem::Requirement
+ none: false
+ requirements:
+ - - ">="
+ - !ruby/object:Gem::Version
+ hash: 3
+ segments:
+ - 0
+ version: "0"
+ type: :development
+ version_requirements: *id003
+- !ruby/object:Gem::Dependency
+ name: test_declarative
+ prerelease: false
+ requirement: &id004 !ruby/object:Gem::Requirement
+ none: false
+ requirements:
+ - - ">="
+ - !ruby/object:Gem::Version
+ hash: 3
+ segments:
+ - 0
+ version: "0"
+ type: :development
+ version_requirements: *id004
+description: Routing filters wraps around the complex beast that the Rails routing system is, allowing for unseen flexibility and power in Rails URL recognition and generation.
+email: svenfuchs@artweb-design.de
+executables: []
+
+extensions: []
+
+extra_rdoc_files: []
+
+files:
+- lib/routing-filter.rb
+- lib/routing_filter/adapters/rails_2.rb
+- lib/routing_filter/adapters/rails_3.rb
+- lib/routing_filter/chain.rb
+- lib/routing_filter/filter.rb
+- lib/routing_filter/filters/extension.rb
+- lib/routing_filter/filters/locale.rb
+- lib/routing_filter/filters/pagination.rb
+- lib/routing_filter/filters/uuid.rb
+- lib/routing_filter/version.rb
+- lib/routing_filter.rb
+- test/all.rb
+- test/blocks.rb
+- test/filters/all_filters/generation.rb
+- test/filters/all_filters/recognition.rb
+- test/filters/all_filters_test.rb
+- test/filters/extension_test.rb
+- test/filters/locale_test.rb
+- test/filters/pagination_test.rb
+- test/filters/uuid_test.rb
+- test/rails_test.rb
+- test/routes_test.rb
+- test/routing_filter_test.rb
+- test/test_adapters/rails_2.rb
+- test/test_adapters/rails_3.rb
+- test/test_helper.rb
+- Gemfile
+- Gemfile.lock
+- MIT-LICENSE
+- README.markdown
+has_rdoc: true
+homepage: http://github.com/svenfuchs/routing-filter
+licenses: []
+
+post_install_message:
+rdoc_options: []
+
+require_paths:
+- lib
+required_ruby_version: !ruby/object:Gem::Requirement
+ none: false
+ requirements:
+ - - ">="
+ - !ruby/object:Gem::Version
+ hash: 3
+ segments:
+ - 0
+ version: "0"
+required_rubygems_version: !ruby/object:Gem::Requirement
+ none: false
+ requirements:
+ - - ">="
+ - !ruby/object:Gem::Version
+ hash: 3
+ segments:
+ - 0
+ version: "0"
+requirements: []
+
+rubyforge_project: "[none]"
+rubygems_version: 1.4.2
+signing_key:
+specification_version: 3
+summary: Routing filters wraps around the complex beast that the Rails routing system is, allowing for unseen flexibility and power in Rails URL recognition and generation
+test_files: []
+
diff --git a/vendor/gems/routing-filter-0.2.3/Gemfile b/vendor/gems/routing-filter-0.2.3/Gemfile
new file mode 100644
index 000000000..2837fde79
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/Gemfile
@@ -0,0 +1,8 @@
+source :rubygems
+
+group :test do
+ gem 'rails', '~> 3.0'
+ gem 'i18n'
+ gem 'test_declarative'
+ gem 'ruby-debug'
+end
diff --git a/vendor/gems/routing-filter-0.2.3/Gemfile.lock b/vendor/gems/routing-filter-0.2.3/Gemfile.lock
new file mode 100644
index 000000000..e80776164
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/Gemfile.lock
@@ -0,0 +1,82 @@
+GEM
+ remote: http://rubygems.org/
+ specs:
+ abstract (1.0.0)
+ actionmailer (3.0.3)
+ actionpack (= 3.0.3)
+ mail (~> 2.2.9)
+ actionpack (3.0.3)
+ activemodel (= 3.0.3)
+ activesupport (= 3.0.3)
+ builder (~> 2.1.2)
+ erubis (~> 2.6.6)
+ i18n (~> 0.4)
+ rack (~> 1.2.1)
+ rack-mount (~> 0.6.13)
+ rack-test (~> 0.5.6)
+ tzinfo (~> 0.3.23)
+ activemodel (3.0.3)
+ activesupport (= 3.0.3)
+ builder (~> 2.1.2)
+ i18n (~> 0.4)
+ activerecord (3.0.3)
+ activemodel (= 3.0.3)
+ activesupport (= 3.0.3)
+ arel (~> 2.0.2)
+ tzinfo (~> 0.3.23)
+ activeresource (3.0.3)
+ activemodel (= 3.0.3)
+ activesupport (= 3.0.3)
+ activesupport (3.0.3)
+ arel (2.0.6)
+ builder (2.1.2)
+ columnize (0.3.2)
+ erubis (2.6.6)
+ abstract (>= 1.0.0)
+ i18n (0.5.0)
+ linecache (0.43)
+ mail (2.2.12)
+ activesupport (>= 2.3.6)
+ i18n (>= 0.4.0)
+ mime-types (~> 1.16)
+ treetop (~> 1.4.8)
+ mime-types (1.16)
+ polyglot (0.3.1)
+ rack (1.2.1)
+ rack-mount (0.6.13)
+ rack (>= 1.0.0)
+ rack-test (0.5.6)
+ rack (>= 1.0)
+ rails (3.0.3)
+ actionmailer (= 3.0.3)
+ actionpack (= 3.0.3)
+ activerecord (= 3.0.3)
+ activeresource (= 3.0.3)
+ activesupport (= 3.0.3)
+ bundler (~> 1.0)
+ railties (= 3.0.3)
+ railties (3.0.3)
+ actionpack (= 3.0.3)
+ activesupport (= 3.0.3)
+ rake (>= 0.8.7)
+ thor (~> 0.14.4)
+ rake (0.8.7)
+ ruby-debug (0.10.4)
+ columnize (>= 0.1)
+ ruby-debug-base (~> 0.10.4.0)
+ ruby-debug-base (0.10.4)
+ linecache (>= 0.3)
+ test_declarative (0.0.5)
+ thor (0.14.6)
+ treetop (1.4.9)
+ polyglot (>= 0.3.1)
+ tzinfo (0.3.23)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ i18n
+ rails (~> 3.0)
+ ruby-debug
+ test_declarative
diff --git a/vendor/gems/routing-filter-0.2.3/MIT-LICENSE b/vendor/gems/routing-filter-0.2.3/MIT-LICENSE
new file mode 100644
index 000000000..ac93a5835
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/MIT-LICENSE
@@ -0,0 +1,20 @@
+Copyright (c) 2008 Sven Fuchs
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file
diff --git a/vendor/gems/routing-filter-0.2.3/README.markdown b/vendor/gems/routing-filter-0.2.3/README.markdown
new file mode 100644
index 000000000..f59d5ce5b
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/README.markdown
@@ -0,0 +1,204 @@
+# Routing Filter
+
+Routing filters wrap around the complex beast that the Rails routing system is
+to allow for unseen flexibility and power in Rails URL recognition and
+generation.
+
+As powerful and awesome the Rails' routes are, when you need to design your
+URLs in a manner that only slightly leaves the paved cowpaths of Rails
+conventions, you're usually unable to use all the goodness of helpers and
+convenience that Rails ships with.
+
+This library comes with four more or less reusable filters and it is easy to
+implement custom ones. Maybe the most popular one is the Locale routing filter:
+
+* `Locale` - prepends the page's :locale (e.g. /de/products)
+* `Pagination` - appends page/:num (e.g. /products/page/2)
+* `Uuid` - prepends a uuid for authentication or other purposes (e.g. /d00fbbd1-82b6-4c1a-a57d-098d529d6854/products/1)
+* `Extension` - appends an extension (e.g. /products.html)
+
+Please note that Rails 3's routing system is much more powerful and flexible
+than Rails 2 was. There are many usecases that now can be covered with just
+Rails 3 default routing features that weren't doable in Rails 2. For an example
+of a quite complex and flexible route see this [gist by Andrew White](http://gist.github.com/653543)
+
+## Requirements
+
+routing-filter currently only works with Rails. It should not be all too hard
+to get it working with plain Rack::Mount but I haven't had that usecase, yet.
+
+## Installation
+
+Just install the Gem:
+
+ $ gem install routing-filter
+
+The Gem should work out of the box for Rails 3 after specifying it in your
+application's Gemfile.
+
+ # Gemfile
+ gem 'routing-filter'
+
+In order to use it with Rails 2.x you could specify it in your environment.rb
+
+ # config/environment.rb
+ gem 'routing-filter'
+
+## Usage
+
+Once the Gem has loaded you can setup the filters in your routes file like this:
+
+ # in config/routes.rb
+ Rails.application.routes.draw do
+ filter :pagination, :uuid
+ end
+
+Filters can also accept options:
+
+ Rails.application.routes.draw do
+ filter :extension, :exclude => %r(^admin/)
+ end
+
+## Running the tests
+
+There are two Gemfiles in the `ci` directory in order to run the tests against different dependencies. The Rails 3 Gemfile is symlinked to the root folder, so it will be used by default.
+
+Running the tests with Rails 3.x:
+
+ $ bundle install
+ $ ruby -Itest -Ilib test/all.rb
+
+Running the tests with Rails 2.3.x:
+
+ $ BUNDLE_GEMFILE=ci/Gemfile.rails-2.3.x bundle install
+ $ BUNDLE_GEMFILE=ci/Gemfile.rails-2.3.x ruby -Itest -Ilib test/all.rb
+
+## Filter order
+
+You can picture the way routing-filter wraps filters around your application as a russian puppet pattern. Your application sits in the center and is wrapped by a number of filters. An incoming request's path will be past through these layers of filters from the outside in until it is passed to the regular application routes set. When you generate URLs on the other hand then the filters will be run from the inside out.
+
+Filter order might be confusing at first. The reason for that is that the way rack/mount (which is used by Rails as a core routing engine) is confusing in this respect and Rails tries to make the best of it.
+
+Suppose you have a filter :custom in your application routes.rb file and an engine that adds a :common filter. Then Rails makes it so that your application's routes file will be loaded first (basically route.rb files are loaded in reverse engine load order).
+
+Thus routing-filter will make your :custom filter the *inner-most* filter, wrapping the application *first*. The :common filter from your engine will be wrapped *around* that onion and will be made the *outer-most* filter.
+
+This way common base filters (such as the locale filter) can run first and do not need to know about the specifics of other (more specialized, custom) filters. Custom filters on the other hand can easily take into account that common filters might already have run and adjust accordingly.
+
+
+## Implementing your own filters
+
+For example implementations have a look at the existing filters in
+[lib/routing_filter/filters](http://github.com/svenfuchs/routing-filter/tree/master/lib/routing_filter/filters)
+
+The following would be a sceleton of an empty filter:
+
+ module RoutingFilter
+ class Awesomeness < Filter
+ def around_recognize(path, env, &block)
+ # Alter the path here before it gets recognized.
+ # Make sure to yield (calls the next around filter if present and
+ # eventually `recognize_path` on the routeset):
+ yield.tap do |params|
+ # You can additionally modify the params here before they get passed
+ # to the controller.
+ end
+ end
+
+ def around_generate(params, &block)
+ # Alter arguments here before they are passed to `url_for`.
+ # Make sure to yield (calls the next around filter if present and
+ # eventually `url_for` on the controller):
+ yield.tap do |result|
+ # You can change the generated url_or_path here. Make sure to use
+ # one of the "in-place" modifying String methods though (like sub!
+ # and friends).
+ end
+ end
+ end
+ end
+
+You can specify the filter explicitely in your routes.rb:
+
+ Rails.application.routes.draw do
+ filter :awesomeness
+ end
+
+(I am not sure if it makes sense to provide more technical information than
+this because the usage of this plugin definitely requires some advanced
+knowledge about Rails internals and especially its routing system. So, I
+figure, anyone who could use this should also be able to read the code and
+figure out what it's doing much better then from any lengthy documentation.
+
+If I'm mistaken on this please drop me an email with your suggestions.)
+
+
+## Rationale: Two example usecases
+
+### Conditionally prepending the locale
+
+An early usecase from which this originated was the need to define a locale
+at the beginning of an URL in a way so that
+
+* the locale can be omitted when it is the default locale
+* all the url\_helpers that are generated by named routes as well as url_for continue to work in
+a concise manner (i.e. without specifying all parameters again and again)
+* ideally also plays nicely with default route helpers in tests/specs
+
+You can read about this struggle and two possible, yet unsatisfying solutions
+[here](http://www.artweb-design.de/2007/5/13/concise-localized-rails-url-helpers-solved-twice).
+The conclusion so far is that Rails itself does not provide the tools to solve
+this problem in a clean and dry way.
+
+### Expanding /sections/:id to nested tree segments
+
+Another usecase that eventually spawned the implementation of this plugin was
+the need to map an arbitrary count of path segments to a certain model
+instance. In an application that I've been working on recently I needed to
+map URL paths to a nested tree of models like so:
+
+ root
+ + docs
+ + api
+ + wiki
+
+E.g. the docs section should map to the path `/docs`, the api section to
+the path `/docs/api` and so on. Furthermore, after these paths there need to be
+more things to be specified. E.g. the wiki needs to define a whole Rails
+resource with URLs like `/docs/wiki/pages/1/edit`.
+
+The only way to solve this problem with Rails' routing toolkit is to map
+a big, bold `/*everything` catch-all ("globbing") route and process the whole
+path in a custom dispatcher.
+
+This, of course, is a really unsatisfying solution because one has to
+reimplement everything that Rails routes are here to help with: regarding both
+URL recognition (like parameter mappings, resources, ...) and generation
+(url\_helpers).
+
+## Solution
+
+This plugin offers a solution that takes exactly the opposite route.
+
+Instead of trying to change things *between* the URL recognition and
+generation stages to achieve the desired result it *wraps around* the whole
+routing system and allows to pre- and post-filter both what goes into it
+(URL recognition) and what comes out of it (URL generation).
+
+This way we can leave *everything* else completely untouched.
+
+* We can tinker with the URLs that we receive from the server and feed URLs to
+Rails that perfectly match the best breed of Rails' conventions.
+* Inside of the application we can use all the nice helper goodness and
+conveniences that rely on these conventions being followed.
+* Finally we can accept URLs that have been generated by the url\_helpers and,
+again, mutate them in the way that matches our requirements.
+
+So, even though the plugin itself is a blatant monkey-patch to one of the
+most complex area of Rails internals, this solution seems to be effectively
+less intrusive and pricey than others are.
+
+## Etc
+
+Authors: [Sven Fuchs](http://www.artweb-design.de) <svenfuchs at artweb-design dot de>
+License: MIT
diff --git a/vendor/gems/routing-filter-0.2.3/lib/routing-filter.rb b/vendor/gems/routing-filter-0.2.3/lib/routing-filter.rb
new file mode 100644
index 000000000..1189921d8
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/lib/routing-filter.rb
@@ -0,0 +1 @@
+require 'routing_filter' \ No newline at end of file
diff --git a/vendor/gems/routing-filter-0.2.3/lib/routing_filter.rb b/vendor/gems/routing-filter-0.2.3/lib/routing_filter.rb
new file mode 100644
index 000000000..49dca2e79
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/lib/routing_filter.rb
@@ -0,0 +1,27 @@
+require 'action_pack'
+require 'active_support/core_ext/string/inflections'
+
+module RoutingFilter
+ autoload :Filter, 'routing_filter/filter'
+ autoload :Chain, 'routing_filter/chain'
+ autoload :Extension, 'routing_filter/filters/extension'
+ autoload :Locale, 'routing_filter/filters/locale'
+ autoload :Pagination, 'routing_filter/filters/pagination'
+ autoload :Uuid, 'routing_filter/filters/uuid'
+
+ class << self
+ def build(name, options)
+ const_get(name.to_s.camelize).new(options)
+ end
+
+ def active=(active)
+ @@active = active
+ end
+
+ def active?
+ defined?(@@active) ? @@active : @@active = true
+ end
+ end
+end
+
+require "routing_filter/adapters/rails_#{ActionPack::VERSION::MAJOR}" \ No newline at end of file
diff --git a/vendor/gems/routing-filter-0.2.3/lib/routing_filter/adapters/rails_2.rb b/vendor/gems/routing-filter-0.2.3/lib/routing_filter/adapters/rails_2.rb
new file mode 100644
index 000000000..9463ede19
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/lib/routing_filter/adapters/rails_2.rb
@@ -0,0 +1,69 @@
+require 'action_controller'
+
+# allows to install a filter to the route set by calling: map.filter 'locale'
+ActionController::Routing::RouteSet::Mapper.class_eval do
+ def filter(*args)
+ @set.add_filters(*args)
+ end
+end
+
+# same here for the optimized url generation in named routes
+ActionController::Routing::RouteSet::NamedRouteCollection.class_eval do
+ # gosh. monkey engineering optimization code
+ def generate_optimisation_block_with_filtering(*args)
+ code = generate_optimisation_block_without_filtering(*args)
+ if match = code.match(%r(^return (.*) if (.*)))
+ # returned string must not contain newlines, or we'll spill out of inline code comments in
+ # ActionController::Routing::RouteSet::NamedRouteCollection#define_url_helper
+ "#{match[1]}.tap { |result|" +
+ " ActionController::Routing::Routes.filters.run(:around_generate, *args, &lambda{ result }) " +
+ "} if #{match[2]}"
+ end
+ end
+ alias_method_chain :generate_optimisation_block, :filtering
+end
+
+ActionController::Routing::RouteSet.class_eval do
+ attr_writer :filters
+
+ def filters
+ @filters ||= RoutingFilter::Chain.new
+ end
+
+ def add_filters(*names)
+ options = names.extract_options!
+ names.each { |name| filters.unshift(RoutingFilter.build(name, options)) }
+ end
+
+ def recognize_path_with_filtering(path, env = {})
+ path = ::URI.unescape(path.dup) # string is frozen due to memoize
+ filters.run(:around_recognize, path, env, &lambda{ recognize_path_without_filtering(path, env) })
+ end
+ alias_method_chain :recognize_path, :filtering
+
+ def generate_with_filtering(*args)
+ filters.run(:around_generate, args.first, &lambda{ generate_without_filtering(*args) })
+ end
+ alias_method_chain :generate, :filtering
+
+ def clear_with_filtering!
+ @filters.clear if @filters
+ clear_without_filtering!
+ end
+ alias_method_chain :clear!, :filtering
+
+ # add some useful information to the request environment
+ # right, this is from jamis buck's excellent article about routes internals
+ # http://weblog.jamisbuck.org/2006/10/26/monkey-patching-rails-extending-routes-2
+ # TODO move this ... where?
+ alias_method :extract_request_environment_without_host, :extract_request_environment unless method_defined? :extract_request_environment_without_host
+ def extract_request_environment(request)
+ extract_request_environment_without_host(request).tap do |env|
+ env.merge! :host => request.host,
+ :port => request.port,
+ :host_with_port => request.host_with_port,
+ :domain => request.domain,
+ :subdomain => request.subdomains.first
+ end
+ end
+end
diff --git a/vendor/gems/routing-filter-0.2.3/lib/routing_filter/adapters/rails_3.rb b/vendor/gems/routing-filter-0.2.3/lib/routing_filter/adapters/rails_3.rb
new file mode 100644
index 000000000..9c8a9fe9d
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/lib/routing_filter/adapters/rails_3.rb
@@ -0,0 +1,77 @@
+require 'action_dispatch'
+require 'active_support/core_ext/module/aliasing'
+require 'active_support/core_ext/hash/reverse_merge'
+
+mappers = [ActionDispatch::Routing::Mapper]
+mappers << ActionDispatch::Routing::DeprecatedMapper if defined?(ActionDispatch::Routing::DeprecatedMapper)
+mappers.each do |mapper|
+ mapper.class_eval do
+ def filter(*args)
+ @set.add_filters(*args)
+ end
+ end
+end
+
+ActionDispatch::Routing::RouteSet.class_eval do
+ def filters
+ @set.filters if @set
+ end
+
+ def add_filters(*names)
+ options = names.extract_options!
+ names.each { |name| filters.unshift(RoutingFilter.build(name, options)) }
+ end
+
+ # def recognize_path_with_filtering(path, env = {})
+ # @set.filters.run(:around_recognize, path.dup, env, &lambda{ recognize_path_without_filtering(path.dup, env) })
+ # end
+ # alias_method_chain :recognize_path, :filtering
+
+ def generate_with_filtering(options, recall = {}, extras = false)
+ filters.run(:around_generate, options, &lambda{ generate_without_filtering(options, recall, extras) })
+ end
+ alias_method_chain :generate, :filtering
+
+ def clear_with_filtering!
+ filters.clear if filters
+ clear_without_filtering!
+ end
+ alias_method_chain :clear!, :filtering
+end
+
+require 'rack/mount/route_set'
+require 'rack/mount/code_generation'
+
+Rack::Mount::RouteSet.class_eval do
+ def filters
+ @filters || RoutingFilter::Chain.new.tap { |f| @filters = f unless frozen? }
+ end
+end
+
+# gah. so who's hoped monkeypatching optimized code wouldn't be necessary with rails 3 anymore?
+Rack::Mount::CodeGeneration.class_eval do
+ def optimize_recognize_with_filtering!
+ optimize_recognize_without_filtering!
+ (class << self; self; end).class_eval do
+ alias_method_chain :recognize, :filtering
+ end
+ end
+ alias :optimize_recognize_without_filtering! :optimize_recognize!
+ alias :optimize_recognize! :optimize_recognize_with_filtering!
+
+ # note: if you overly and unnecessarily use blocks in your lowlevel libraries you make it fricking
+ # hard for your users to hook in anywhere
+ def recognize_with_filtering(request, &block)
+ path, route, matches, params = request.env['PATH_INFO'], nil, nil, nil
+ original_path = path.dup
+
+ filters.run(:around_recognize, path, request.env) do
+ route, matches, params = recognize_without_filtering(request)
+ params || {}
+ end
+
+ request.env['PATH_INFO'] = original_path # hmm ...
+ block.call(route, matches, params) if route
+ end
+end
+
diff --git a/vendor/gems/routing-filter-0.2.3/lib/routing_filter/chain.rb b/vendor/gems/routing-filter-0.2.3/lib/routing_filter/chain.rb
new file mode 100644
index 000000000..3dde98857
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/lib/routing_filter/chain.rb
@@ -0,0 +1,22 @@
+module RoutingFilter
+ class Chain < Array
+ def <<(filter)
+ filter.previous, last.next = last, filter if last
+ super
+ end
+ alias push <<
+
+ def unshift(filter)
+ filter.next, first.previous = first, filter if first
+ super
+ end
+
+ def run(method, *args, &final)
+ active? ? first.run(method, *args, &final) : final.call
+ end
+
+ def active?
+ RoutingFilter.active? && !empty?
+ end
+ end
+end
diff --git a/vendor/gems/routing-filter-0.2.3/lib/routing_filter/filter.rb b/vendor/gems/routing-filter-0.2.3/lib/routing_filter/filter.rb
new file mode 100644
index 000000000..4fbdad9ec
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/lib/routing_filter/filter.rb
@@ -0,0 +1,37 @@
+module RoutingFilter
+ class Filter
+ attr_accessor :next, :previous, :options
+
+ def initialize(options = {})
+ @options = options
+ end
+
+ def run(method, *args, &block)
+ _next = self.next ? proc {|path, env| self.next.run(method, *args, &block) } : block
+ RoutingFilter.active? ? send(method, *args, &_next) : _next.call(*args)
+ end
+
+ def run_reverse(method, *args, &block)
+ _prev = previous ? lambda { previous.run_reverse(method, *args, &block) } : block
+ RoutingFilter.active? ? send(method, *args, &_prev) : _prev.call(*args)
+ end
+
+ protected
+
+ def extract_segment!(pattern, path)
+ path.sub!(pattern) { $2 || '' }
+ path.replace('/') if path.empty?
+ $1
+ end
+
+ def prepend_segment!(result, segment)
+ url = result.is_a?(Array) ? result.first : result
+ url.sub!(%r(^(http.?://[^/]*)?(.*))) { "#{$1}/#{segment}#{$2 == '/' ? '' : $2}" }
+ end
+
+ def append_segment!(result, segment)
+ url = result.is_a?(Array) ? result.first : result
+ url.sub!(%r(/?($|\?))) { "/#{segment}#{$1}" }
+ end
+ end
+end
diff --git a/vendor/gems/routing-filter-0.2.3/lib/routing_filter/filters/extension.rb b/vendor/gems/routing-filter-0.2.3/lib/routing_filter/filters/extension.rb
new file mode 100644
index 000000000..3d30c667e
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/lib/routing_filter/filters/extension.rb
@@ -0,0 +1,76 @@
+# The Extension filter chops a file extension off from the end of the
+# recognized path. When a path is generated the filter re-adds the extension
+# to the path accordingly.
+#
+# incoming url: /de/products/page/1
+# filtered url: /de/products
+# params: params[:locale] = 'de'
+#
+# You can install the filter like this:
+#
+# # in config/routes.rb
+# Rails.application.routes.draw do
+# filter :locale
+# end
+#
+# To make your named_route helpers or url_for add the pagination segments you
+# can use:
+#
+# products_path(:locale => 'de')
+# url_for(:products, :locale => 'de'))
+
+module RoutingFilter
+ class Extension < Filter
+ attr_reader :extension, :exclude
+
+ def initialize(*args)
+ super
+ @exclude = options[:exclude]
+ @extension = options[:extension] || 'html'
+ end
+
+ def around_recognize(path, env, &block)
+ extract_extension!(path) unless excluded?(path)
+ yield(path, env)
+ end
+
+ def around_generate(params, &block)
+ yield.tap do |result|
+ url = result.is_a?(Array) ? result.first : result
+ append_extension!(url) if append_extension?(url)
+ end
+ end
+
+ protected
+
+ def extract_extension!(path)
+ path.sub!(/\.#{extension}$/, '')
+ $1
+ end
+
+ def append_extension?(url)
+ !(blank?(url) || excluded?(url) || mime_extension?(url))
+ end
+
+ def append_extension!(url)
+ url.replace url.sub(/(\?|$)/, ".#{extension}\\1")
+ end
+
+ def blank?(url)
+ url.blank? || !!url.match(%r(^/(\?|$)))
+ end
+
+ def excluded?(url)
+ case exclude
+ when Regexp
+ url =~ exclude
+ when Proc
+ exclude.call(url)
+ end
+ end
+
+ def mime_extension?(url)
+ url =~ /\.#{Mime::EXTENSION_LOOKUP.keys.join('|')}(\?|$)/
+ end
+ end
+end \ No newline at end of file
diff --git a/vendor/gems/routing-filter-0.2.3/lib/routing_filter/filters/locale.rb b/vendor/gems/routing-filter-0.2.3/lib/routing_filter/filters/locale.rb
new file mode 100644
index 000000000..4016a09f4
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/lib/routing_filter/filters/locale.rb
@@ -0,0 +1,82 @@
+# The Locale filter extracts segments matching /:locale from the beginning of
+# the recognized path and exposes the page parameter as params[:page]. When a
+# path is generated the filter adds the segments to the path accordingly if
+# the page parameter is passed to the url helper.
+#
+# incoming url: /de/products/page/1
+# filtered url: /de/products
+# params: params[:locale] = 'de'
+#
+# You can install the filter like this:
+#
+# # in config/routes.rb
+# Rails.application.routes.draw do
+# filter :locale
+# end
+#
+# To make your named_route helpers or url_for add the pagination segments you
+# can use:
+#
+# products_path(:locale => 'de')
+# url_for(:products, :locale => 'de'))
+
+require 'i18n'
+
+module RoutingFilter
+ class Locale < Filter
+ @@include_default_locale = true
+ cattr_writer :include_default_locale
+
+ class << self
+ def include_default_locale?
+ @@include_default_locale
+ end
+
+ def locales
+ @@locales ||= I18n.available_locales.map(&:to_sym)
+ end
+
+ def locales=(locales)
+ @@locales = locales.map(&:to_sym)
+ end
+
+ def locales_pattern
+ @@locales_pattern ||= %r(^/(#{self.locales.map { |l| Regexp.escape(l.to_s) }.join('|')})(?=/|$))
+ end
+ end
+
+ def around_recognize(path, env, &block)
+ locale = extract_segment!(self.class.locales_pattern, path) # remove the locale from the beginning of the path
+ yield.tap do |params| # invoke the given block (calls more filters and finally routing)
+ params[:locale] = locale if locale # set recognized locale to the resulting params hash
+ end
+ end
+
+ def around_generate(*args, &block)
+ params = args.extract_options! # this is because we might get a call like forum_topics_path(forum, topic, :locale => :en)
+
+ locale = params.delete(:locale) # extract the tpassed :locale option
+ locale = I18n.locale if locale.nil? # default to I18n.locale when locale is nil (could also be false)
+ locale = nil unless valid_locale?(locale) # reset to no locale when locale is not valid
+
+ args << params
+ yield.tap do |result|
+ prepend_segment!(result, locale) if prepend_locale?(locale)
+ end
+ end
+
+ protected
+
+ def valid_locale?(locale)
+ locale && self.class.locales.include?(locale.to_sym)
+ end
+
+ def default_locale?(locale)
+ locale && locale.to_sym == I18n.default_locale.to_sym
+ end
+
+ def prepend_locale?(locale)
+ locale && (self.class.include_default_locale? || !default_locale?(locale))
+ end
+ end
+end
diff --git a/vendor/gems/routing-filter-0.2.3/lib/routing_filter/filters/pagination.rb b/vendor/gems/routing-filter-0.2.3/lib/routing_filter/filters/pagination.rb
new file mode 100644
index 000000000..0decb8b20
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/lib/routing_filter/filters/pagination.rb
@@ -0,0 +1,47 @@
+# The Pagination filter extracts segments matching /page/:page from the end of
+# the recognized url and exposes the page parameter as params[:page]. When a
+# url is generated the filter adds the segments to the url accordingly if the
+# page parameter is passed to the url helper.
+#
+# incoming url: /products/page/1
+# filtered url: /products
+# params: params[:page] = 1
+#
+# You can install the filter like this:
+#
+# # in config/routes.rb
+# Rails.application.routes.draw do
+# filter :pagination
+# end
+#
+# To make your named_route helpers or url_for add the pagination segments you
+# can use:
+#
+# products_path(:page => 1)
+# url_for(:products, :page => 1)
+
+module RoutingFilter
+ class Pagination < Filter
+ PAGINATION_SEGMENT = %r(/page/([\d]+)/?$)
+
+ def around_recognize(path, env, &block)
+ page = extract_segment!(PAGINATION_SEGMENT, path)
+ yield(path, env).tap do |params|
+ params[:page] = page.to_i if page
+ end
+ end
+
+ def around_generate(params, &block)
+ page = params.delete(:page)
+ yield.tap do |result|
+ append_segment!(result, "page/#{page}") if append_page?(page)
+ end
+ end
+
+ protected
+
+ def append_page?(page)
+ page && page.to_i != 1
+ end
+ end
+end \ No newline at end of file
diff --git a/vendor/gems/routing-filter-0.2.3/lib/routing_filter/filters/uuid.rb b/vendor/gems/routing-filter-0.2.3/lib/routing_filter/filters/uuid.rb
new file mode 100644
index 000000000..8f62e69bb
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/lib/routing_filter/filters/uuid.rb
@@ -0,0 +1,40 @@
+# The Uuid filter extracts an UUID segment from the beginning of the recognized
+# path and exposes the page parameter as params[:page]. When a path is generated
+# the filter adds the segments to the path accordingly if the page parameter is
+# passed to the url helper.
+#
+# incoming url: /d00fbbd1-82b6-4c1a-a57d-098d529d6854/product/1
+# filtered url: /product/1
+# params: params[:uuid] = 'd00fbbd1-82b6-4c1a-a57d-098d529d6854'
+#
+# You can install the filter like this:
+#
+# # in config/routes.rb
+# Rails.application.routes.draw do
+# filter :uuid
+# end
+#
+# To make your named_route helpers or url_for add the uuid segment you can use:
+#
+# product_path(:uuid => uuid)
+# url_for(product, :uuid => uuid)
+
+module RoutingFilter
+ class Uuid < Filter
+ UUID_SEGMENT = %r(^/?([a-z\d]{8}\-[a-z\d]{4}\-[a-z\d]{4}\-[a-z\d]{4}\-[a-z\d]{12})(/)?)
+
+ def around_recognize(path, env, &block)
+ uuid = extract_segment!(UUID_SEGMENT, path)
+ yield.tap do |params|
+ params[:uuid] = uuid if uuid
+ end
+ end
+
+ def around_generate(params, &block)
+ uuid = params.delete(:uuid)
+ yield.tap do |result|
+ prepend_segment!(result, uuid) if uuid
+ end
+ end
+ end
+end \ No newline at end of file
diff --git a/vendor/gems/routing-filter-0.2.3/lib/routing_filter/version.rb b/vendor/gems/routing-filter-0.2.3/lib/routing_filter/version.rb
new file mode 100644
index 000000000..567bb92b8
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/lib/routing_filter/version.rb
@@ -0,0 +1,3 @@
+module RoutingFilter
+ VERSION = '0.2.3'
+end \ No newline at end of file
diff --git a/vendor/gems/routing-filter-0.2.3/test/all.rb b/vendor/gems/routing-filter-0.2.3/test/all.rb
new file mode 100644
index 000000000..5faf13e5b
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/test/all.rb
@@ -0,0 +1 @@
+Dir[File.expand_path('../**/*_test.rb', __FILE__)].each { |file| require file } \ No newline at end of file
diff --git a/vendor/gems/routing-filter-0.2.3/test/blocks.rb b/vendor/gems/routing-filter-0.2.3/test/blocks.rb
new file mode 100644
index 000000000..abe601a5b
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/test/blocks.rb
@@ -0,0 +1,33 @@
+# def foo
+# f = Proc.new { return "return from foo from inside proc" }
+# f.call # control leaves foo here
+# return "return from foo"
+# end
+#
+# def bar
+# f = lambda { return "return from lambda" }
+# f.call # control does not leave bar here
+# return "return from bar"
+# end
+#
+# puts foo # prints "return from foo from inside proc"
+# puts bar # prints "return from bar"
+
+
+class RouteSet
+ def call
+ recognize &Proc.new { return 'return from recognize block' }
+ p "KEKSE"
+ # recognize do
+ # return 'return from recognize block'
+ # end
+ end
+
+ def recognize
+ yield
+ p "KEKSE"
+ end
+end
+
+
+puts RouteSet.new.call
diff --git a/vendor/gems/routing-filter-0.2.3/test/filters/all_filters/generation.rb b/vendor/gems/routing-filter-0.2.3/test/filters/all_filters/generation.rb
new file mode 100644
index 000000000..f30130261
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/test/filters/all_filters/generation.rb
@@ -0,0 +1,42 @@
+module Generation
+ test 'generates the path /some.html (extension)' do
+ params = self.params
+ assert_equal '/some.html', routes.generate(params)
+ end
+
+ # extension with any
+
+ test 'generates the path /de/some (extension, locale)' do
+ params = self.params.merge(:locale => 'de')
+ assert_equal '/de/some.html', routes.generate(params)
+ end
+
+ test 'generates the path /some/page/2 (extension, pagination)' do
+ params = self.params.merge(:page => 2)
+ assert_equal '/some/page/2.html', routes.generate(params)
+ end
+
+ test 'generates the path /:uuid/some (extension, uuid)' do
+ params = self.params.merge(:uuid => uuid)
+ assert_equal "/#{uuid}/some.html", routes.generate(params)
+ end
+
+ # extension, locale with any
+
+ test 'generates the path /de/some/page/2 (extension, locale, pagination)' do
+ params = self.params.merge(:locale => 'de', :page => 2)
+ assert_equal '/de/some/page/2.html', routes.generate(params)
+ end
+
+ test 'generates the path /de/:uuid/some (extension, locale, uuid)' do
+ params = self.params.merge(:locale => 'de', :uuid => uuid)
+ assert_equal "/de/#{uuid}/some.html", routes.generate(params)
+ end
+
+ # all
+
+ test 'generates the path /de/some/page/2 (extension, pagination, uuid)' do
+ params = self.params.merge(:locale => 'de', :page => 2, :uuid => uuid)
+ assert_equal "/de/#{uuid}/some/page/2.html", routes.generate(params)
+ end
+end \ No newline at end of file
diff --git a/vendor/gems/routing-filter-0.2.3/test/filters/all_filters/recognition.rb b/vendor/gems/routing-filter-0.2.3/test/filters/all_filters/recognition.rb
new file mode 100644
index 000000000..b02b13491
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/test/filters/all_filters/recognition.rb
@@ -0,0 +1,92 @@
+module Recognition
+ # 1 filter
+
+ test 'recognizes the path /some.html (extension)' do
+ params = self.params
+ assert_equal params, routes.recognize_path('/some.html')
+ end
+
+ test 'recognizes the path /de/some (locale)' do
+ params = self.params.merge(:locale => 'de')
+ assert_equal params, routes.recognize_path('/de/some')
+ end
+
+ test 'recognizes the path /some/page/2 (pagination)' do
+ params = self.params.merge(:page => 2)
+ assert_equal params, routes.recognize_path('/some/page/2')
+ end
+
+ test 'recognizes the path /:uuid/some (uuid)' do
+ params = self.params.merge(:uuid => uuid)
+ assert_equal params, routes.recognize_path("/#{uuid}/some")
+ end
+
+ # extension with any
+
+ test 'recognizes the path /de/some.html (extension, locale)' do
+ params = self.params.merge(:locale => 'de')
+ assert_equal params, routes.recognize_path('/de/some.html')
+ end
+
+ test 'recognizes the path /some/page/2.html (extension, pagination)' do
+ params = self.params.merge(:page => 2)
+ assert_equal params, routes.recognize_path('/some/page/2.html')
+ end
+
+ test 'recognizes the path /:uuid/some.html (extension, uuid)' do
+ params = self.params.merge(:uuid => uuid)
+ assert_equal params, routes.recognize_path("/#{uuid}/some.html")
+ end
+
+ # locale with any
+
+ test 'recognizes the path /de/some/page/2 (locale, pagination)' do
+ params = self.params.merge(:locale => 'de', :page => 2)
+ assert_equal params, routes.recognize_path('/de/some/page/2')
+ end
+
+ test 'recognizes the path /de/:uuid/some (locale, uuid)' do
+ params = self.params.merge(:locale => 'de', :uuid => uuid)
+ assert_equal params, routes.recognize_path("/de/#{uuid}/some")
+ end
+
+ # pagination with any
+
+ test 'recognizes the path /:uuid/some/page/2 (pagination, uuid)' do
+ params = self.params.merge(:page => 2, :uuid => uuid)
+ assert_equal params, routes.recognize_path("/#{uuid}/some/page/2")
+ end
+
+ # extension, locale with any
+
+ test 'recognizes the path /de/some/page/2.html (extension, locale, pagination)' do
+ params = self.params.merge(:locale => 'de', :page => 2)
+ assert_equal params, routes.recognize_path("/de/some/page/2.html")
+ end
+
+ test 'recognizes the path /de/:uuid/some.html (extension, locale, uuid)' do
+ params = self.params.merge(:locale => 'de', :uuid => uuid)
+ assert_equal params, routes.recognize_path("/de/#{uuid}/some.html")
+ end
+
+ # extension, pagination with any
+
+ test 'recognizes the path /some/page/2.html (extension, pagination, uuid)' do
+ params = self.params.merge(:page => 2, :uuid => uuid)
+ assert_equal params, routes.recognize_path("/#{uuid}/some/page/2.html")
+ end
+
+ # locale, pagination with any
+
+ test 'recognizes the path /de/some/page/2 (locale, pagination, uuid)' do
+ params = self.params.merge(:locale => 'de', :page => 2, :uuid => uuid)
+ assert_equal params, routes.recognize_path("/de/#{uuid}/some/page/2")
+ end
+
+ # all
+
+ test 'recognizes the path /de/:uuid/some/page/2.html (extension, locale, pagination, uuid)' do
+ params = self.params.merge(:locale => 'de', :page => 2, :uuid => uuid)
+ assert_equal params, routes.recognize_path("/de/#{uuid}/some/page/2.html")
+ end
+end \ No newline at end of file
diff --git a/vendor/gems/routing-filter-0.2.3/test/filters/all_filters_test.rb b/vendor/gems/routing-filter-0.2.3/test/filters/all_filters_test.rb
new file mode 100644
index 000000000..2ec825e79
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/test/filters/all_filters_test.rb
@@ -0,0 +1,25 @@
+require 'test_helper'
+require 'filters/all_filters/generation'
+require 'filters/all_filters/recognition'
+
+class AllFiltersTest < Test::Unit::TestCase
+ attr_reader :routes, :params, :uuid
+
+ def setup
+ I18n.locale = nil
+ I18n.default_locale = :en
+ I18n.available_locales = %w(de en)
+
+ RoutingFilter::Locale.include_default_locale = false
+
+ @params = { :controller => 'some', :action => 'index' }
+ @uuid = 'd00fbbd1-82b6-4c1a-a57d-098d529d6854'
+
+ @routes = draw_routes do
+ filter :uuid, :pagination ,:locale, :extension
+ match 'some', :to => 'some#index'
+ end
+ end
+
+ include Recognition, Generation
+end
diff --git a/vendor/gems/routing-filter-0.2.3/test/filters/extension_test.rb b/vendor/gems/routing-filter-0.2.3/test/filters/extension_test.rb
new file mode 100644
index 000000000..865463c17
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/test/filters/extension_test.rb
@@ -0,0 +1,54 @@
+require 'test_helper'
+
+class ForceExtensionTest < Test::Unit::TestCase
+ attr_reader :routes, :params
+
+ def setup
+ @routes = draw_routes do
+ filter :extension, :exclude => %r(^/(admin|$))
+ match '/', :to => 'some#index'
+ match 'some/:id(.:format)', :to => 'some#show'
+ match '/admin/some/new', :to => 'some#new'
+ end
+ @params = { :controller => 'some', :action => 'show', :id => '1' }
+ end
+
+ test 'recognizes the path some/1.html and strips the extension' do
+ assert_nil routes.recognize_path('/some/1.html')[:format]
+ end
+
+ test 'recognizes the path some/1.xml but does not strip the extension' do
+ assert 'xml', routes.recognize_path('/some/1.xml')[:format]
+ end
+
+ test 'appends the extension .html to the generated path' do
+ assert_equal '/some/1.html', routes.generate(params)
+ end
+
+ test 'does not touch existing extensions in generated paths' do
+ assert_equal '/some/1.xml', routes.generate(params.merge(:format => 'xml'))
+ end
+
+ test 'does not touch url query params in generated paths' do
+ assert_equal '/some/1.html?foo=bar', routes.generate(params.merge(:foo => 'bar'))
+ end
+
+ test 'excludes / by default' do
+ assert_equal '/', routes.generate(:controller => 'some', :action => 'index')
+ end
+
+ test 'excludes / by default (with url query params)' do
+ assert_equal '/?foo=bar', routes.generate(:controller => 'some', :action => 'index', :foo => 'bar')
+ end
+
+ test 'excludes with custom regexp' do
+ assert_equal '/admin/some/new', routes.generate(:controller => 'some', :action => 'new')
+ end
+
+ # TODO - why would anyone want to have this?
+ #
+ # test 'does not exclude / when :exclude => false was passed' do
+ # routes.filters.first.instance_variable_set(:@exclude, false)
+ # assert_equal '/.html', routes.generate(:controller => 'some', :action => 'index')
+ # end
+end
diff --git a/vendor/gems/routing-filter-0.2.3/test/filters/locale_test.rb b/vendor/gems/routing-filter-0.2.3/test/filters/locale_test.rb
new file mode 100644
index 000000000..874872330
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/test/filters/locale_test.rb
@@ -0,0 +1,69 @@
+require 'test_helper'
+
+class LocaleTest < Test::Unit::TestCase
+ attr_reader :routes, :show_params, :index_params
+
+ def setup
+ I18n.locale = nil
+ I18n.default_locale = :en
+ I18n.available_locales = %w(de en)
+
+ RoutingFilter::Locale.include_default_locale = true
+
+ @index_params = { :controller => 'some', :action => 'index' }
+ @show_params = { :controller => 'some', :action => 'show', :id => '1' }
+
+ @routes = draw_routes do
+ filter :locale
+ match 'products/:id', :to => 'some#show'
+ match '/', :to => 'some#index'
+ end
+ end
+
+ test 'recognizes the path /en' do
+ assert_equal index_params.merge(:locale => 'en'), routes.recognize_path('/en')
+ end
+
+ test 'recognizes the path /en/' do
+ assert_equal index_params.merge(:locale => 'en'), routes.recognize_path('/en/')
+ end
+
+ test 'recognizes the path /en/products/1' do
+ assert_equal show_params.merge(:locale => 'en'), routes.recognize_path('/en/products/1')
+ end
+
+ test 'recognizes the path /de/products/1' do
+ assert_equal show_params.merge(:locale => 'de'), routes.recognize_path('/de/products/1')
+ end
+
+
+ test 'prepends the segments /:locale to the generated path / if the current locale is not the default locale' do
+ I18n.locale = 'de'
+ assert_equal '/de', routes.generate(index_params)
+ end
+
+ test 'prepends the segments /:locale to the generated path /products/1 if the current locale is not the default locale' do
+ I18n.locale = 'de'
+ assert_equal '/de/products/1', routes.generate(show_params)
+ end
+
+ test 'prepends the segments /:locale to the generated path if it was passed as a param' do
+ assert_equal '/de/products/1', routes.generate(show_params.merge(:locale => 'de'))
+ end
+
+ test 'prepends the segments /:locale if the given locale is the default_locale and include_default_locale is true' do
+ assert RoutingFilter::Locale.include_default_locale?
+ assert_equal '/en/products/1', routes.generate(show_params.merge(:locale => 'en'))
+ end
+
+ test 'does not prepend the segments /:locale if the current locale is the default_locale and include_default_locale is false' do
+ I18n.locale = 'en'
+ RoutingFilter::Locale.include_default_locale = false
+ assert_equal '/products/1', routes.generate(show_params)
+ end
+
+ test 'does not prepend the segments /:locale if the given locale is the default_locale and include_default_locale is false' do
+ RoutingFilter::Locale.include_default_locale = false
+ assert_equal '/products/1', routes.generate(show_params.merge(:locale => I18n.default_locale))
+ end
+end
diff --git a/vendor/gems/routing-filter-0.2.3/test/filters/pagination_test.rb b/vendor/gems/routing-filter-0.2.3/test/filters/pagination_test.rb
new file mode 100644
index 000000000..bafd8ed5c
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/test/filters/pagination_test.rb
@@ -0,0 +1,29 @@
+require 'test_helper'
+
+class PaginationTest < Test::Unit::TestCase
+ attr_reader :routes, :params
+
+ def setup
+ @routes = draw_routes do
+ filter :pagination
+ match 'some', :to => 'some#index'
+ end
+ @params = { :controller => 'some', :action => 'index', :page => 2 }
+ end
+
+ test 'recognizes the path some/page/2' do
+ assert_equal params, routes.recognize_path('/some/page/2')
+ end
+
+ test 'appends the segments /page/:page to the generated path if the passed :page param does not equal 1' do
+ assert_equal '/some/page/2', routes.generate(params)
+ end
+
+ test 'does not append anything to the generated path if the passed :page param equals 1' do
+ assert_equal '/some', routes.generate(params.merge(:page => 1))
+ end
+
+ test 'appends the segments /page/:page to the generated path but respects url query params' do
+ assert_equal '/some/page/2?foo=bar', routes.generate(params.merge(:foo => 'bar'))
+ end
+end
diff --git a/vendor/gems/routing-filter-0.2.3/test/filters/uuid_test.rb b/vendor/gems/routing-filter-0.2.3/test/filters/uuid_test.rb
new file mode 100644
index 000000000..28e67d44e
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/test/filters/uuid_test.rb
@@ -0,0 +1,40 @@
+require 'test_helper'
+
+class UuidTest < Test::Unit::TestCase
+ attr_reader :routes, :uuid, :params
+
+ def setup
+ @routes = draw_routes do
+ filter :uuid
+ match 'some/:id', :to => 'some#show'
+ end
+ @uuid = 'd00fbbd1-82b6-4c1a-a57d-098d529d6854'
+ @params = { :controller => 'some', :action => 'show', :id => '1', :uuid => uuid }
+ end
+
+ test 'recognizes the path :uuid/product/1' do
+ assert_equal params, routes.recognize_path("/#{uuid}/some/1")
+ end
+
+ test 'prepends the :uuid segment to the generated path if passed as a param' do
+ assert_equal "/#{uuid}/some/1", routes.generate(params)
+ end
+
+ test 'matches uuid segments' do
+ pattern = Uuid::UUID_SEGMENT
+ uuids = %w(
+ d00fbbd1-82b6-4c1a-a57d-098d529d6854 cdb33760-94da-11df-981c-0800200c9a66
+ 0c65a6ec-6491-4316-a137-0021cf4e6471 cbbd44c3-c195-48e5-be04-3cc8a6578f51
+ )
+ uuids.each { |uuid| assert pattern.match("/#{uuid}/"), "does not match /#{uuid}/ but should" }
+ end
+
+ test 'does not match non-uuid segments' do
+ pattern = Uuid::UUID_SEGMENT
+ uuids = %w(
+ !aaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa aaaa-aaaaaaaa-aaaa-aaaa-aaaaaaaaaaaa
+ aaaaaaaa_aaaa_aaaa_aaaa_aaaaaaaaaaaa aaaaaaaa-aaaa-aaaa-aaaaaaaaaaaa
+ )
+ uuids.each { |uuid| assert !pattern.match("/#{uuid}/"), "matches /#{uuid}/ but shouldn't" }
+ end
+end
diff --git a/vendor/gems/routing-filter-0.2.3/test/rails_test.rb b/vendor/gems/routing-filter-0.2.3/test/rails_test.rb
new file mode 100644
index 000000000..9d04e511a
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/test/rails_test.rb
@@ -0,0 +1,92 @@
+require 'test_helper'
+require "test_adapters/rails_#{ActionPack::VERSION::MAJOR}"
+
+class RailsTest < Test::Unit::TestCase
+ include TestRailsAdapter
+
+ I18n.available_locales = [:en, :de]
+
+ class TestsController < ActionController::Base
+ include Rails.application.routes.url_helpers if defined?(Rails)
+
+ def index
+ url = url_for(params.merge(:only_path => true))
+ render :text => params.merge(:url => url).inspect
+ end
+
+ def show
+ url = foo_path(params)
+ render :text => params.merge(:url => url).inspect
+ end
+ end
+
+ def params
+ response.status.to_s.include?('200') ? eval(response.body).symbolize_keys : {}
+ end
+
+ test "get to /" do
+ get '/'
+ assert_nil params[:locale]
+ assert_nil params[:page]
+ assert_nil params[:uuid]
+ assert_equal '/en.html', params[:url]
+ end
+
+ test "get to /foo/1" do
+ get '/foo/1'
+ assert_nil params[:locale]
+ assert_nil params[:page]
+ assert_nil params[:uuid]
+ assert_equal '/en/foo/1.html', params[:url]
+ end
+
+ test "get to /de" do
+ get '/de'
+ assert_equal 'de', params[:locale]
+ assert_nil params[:page]
+ assert_nil params[:uuid]
+ assert_equal '/de.html', params[:url]
+ end
+
+ test "get to /de/foo/1" do
+ get '/de/foo/1'
+ assert_equal 'de', params[:locale]
+ assert_nil params[:page]
+ assert_nil params[:uuid]
+ assert_equal '/de/foo/1.html', params[:url]
+ end
+
+ test "get to /page/2" do
+ get '/page/2'
+ assert_nil params[:locale]
+ assert_equal 2, params[:page]
+ assert_nil params[:uuid]
+ assert_equal '/en/page/2.html', params[:url]
+ end
+
+ test "get to /foo/1/page/2" do
+ get '/foo/1/page/2'
+ assert_nil params[:locale]
+ assert_equal 2, params[:page]
+ assert_nil params[:uuid]
+ assert_equal '/en/foo/1/page/2.html', params[:url]
+ end
+
+ test "get to /:uuid" do
+ uuid = 'd00fbbd1-82b6-4c1a-a57d-098d529d6854'
+ get "/#{uuid}"
+ assert_nil params[:locale]
+ assert_nil params[:page]
+ assert_equal uuid, params[:uuid]
+ assert_equal "/en/#{uuid}.html", params[:url]
+ end
+
+ test "get to /foo/1/:uuid" do
+ uuid = 'd00fbbd1-82b6-4c1a-a57d-098d529d6854'
+ get "/#{uuid}/foo/1"
+ assert_nil params[:locale]
+ assert_nil params[:page]
+ assert_equal uuid, params[:uuid]
+ assert_equal "/en/#{uuid}/foo/1.html", params[:url]
+ end
+end
diff --git a/vendor/gems/routing-filter-0.2.3/test/routes_test.rb b/vendor/gems/routing-filter-0.2.3/test/routes_test.rb
new file mode 100644
index 000000000..8c803dbfe
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/test/routes_test.rb
@@ -0,0 +1,31 @@
+require 'test_helper'
+
+class RoutesTest < Test::Unit::TestCase
+ class RoutingFilter::Test < Filter
+ def around_recognize(path, env, &block)
+ 'recognized'
+ end
+
+ def around_generate(*args, &block)
+ 'generated'
+ end
+ end
+
+ attr_reader :routes
+
+ def setup
+ @routes = draw_routes { |set| set.filter :test }
+ end
+
+ test "routes.filter instantiates and registers a filter" do
+ assert routes.filters.first.is_a?(RoutingFilter::Test)
+ end
+
+ # test "filter.around_recognize is being called" do
+ # assert_equal 'recognized', routes.recognize_path('/')
+ # end
+
+ test "filter.around_generate is being called" do
+ assert_equal 'generated', routes.generate({})
+ end
+end
diff --git a/vendor/gems/routing-filter-0.2.3/test/routing_filter_test.rb b/vendor/gems/routing-filter-0.2.3/test/routing_filter_test.rb
new file mode 100644
index 000000000..41b1b70b4
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/test/routing_filter_test.rb
@@ -0,0 +1,47 @@
+require 'test_helper'
+
+include RoutingFilter
+
+class RoutingFilterTest < Test::Unit::TestCase
+ class FooFilter < Filter
+ attr_reader :name
+
+ def initialize(name)
+ @name = name
+ end
+
+ def foo(log, &block)
+ log << name
+ yield
+ end
+ end
+
+ attr_reader :chain
+
+ def setup
+ @chain = Chain.new
+ @chain.unshift FooFilter.new('custom filter')
+ @chain.unshift FooFilter.new('common filter')
+ end
+
+ test "filter.previous is nil for the first filter in the chain" do
+ assert_nil chain.first.previous
+ end
+
+ test "filter.previous returns the previous filter in the chain" do
+ assert_equal chain.first, chain.last.previous
+ end
+
+ test "filter.next is nil for the last filter in the chain" do
+ assert_nil chain.last.next
+ end
+
+ test "filter.next returns the next filter in the chain" do
+ assert_equal chain.last, chain.first.next
+ end
+
+ test "chain.run calls the given method on registered filters in reverse order" do
+ log = []
+ assert_equal 'common filter, custom filter, finalizer', chain.run(:foo, log, &lambda { log << 'finalizer' }).join(', ')
+ end
+end
diff --git a/vendor/gems/routing-filter-0.2.3/test/test_adapters/rails_2.rb b/vendor/gems/routing-filter-0.2.3/test/test_adapters/rails_2.rb
new file mode 100644
index 000000000..6e8b5fd32
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/test/test_adapters/rails_2.rb
@@ -0,0 +1,17 @@
+require 'test_helper'
+
+module TestRailsAdapter
+ routes = ActionController::Routing::Routes = ActionController::Routing::RouteSet.new
+ routes.draw do |map|
+ map.connect '/', :controller => 'rails_test/tests', :action => 'index'
+ map.foo '/foo/:id', :controller => 'rails_test/tests', :action => 'show'
+ map.filter :uuid, :pagination ,:locale, :extension
+ end
+
+ attr_reader :session
+ delegate :get, :response, :to => :session
+
+ def setup
+ @session = ActionController::Integration::Session.new(lambda { |env| ActionController::Routing::Routes.call(env) })
+ end
+end
diff --git a/vendor/gems/routing-filter-0.2.3/test/test_adapters/rails_3.rb b/vendor/gems/routing-filter-0.2.3/test/test_adapters/rails_3.rb
new file mode 100644
index 000000000..05cafaa47
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/test/test_adapters/rails_3.rb
@@ -0,0 +1,28 @@
+require 'test_helper'
+
+require "rails"
+require 'rack/test'
+
+module TestRailsAdapter
+ include ::Rack::Test::Methods
+
+ APP = Class.new(Rails::Application).tap do |app|
+ app.config.secret_token = "3b7cd727ee24e8444053437c36cc66c4"
+ app.config.session_store :cookie_store, :key => "_myapp_session"
+ app.config.active_support.deprecation = :log
+ app.routes.draw do
+ match "/" => "rails_test/tests#index"
+ match "/foo/:id" => "rails_test/tests#show", :as => 'foo'
+ filter :uuid, :pagination ,:locale, :extension
+ end
+ app.initialize!
+ end
+
+ def app
+ APP
+ end
+
+ def response
+ last_response
+ end
+end
diff --git a/vendor/gems/routing-filter-0.2.3/test/test_helper.rb b/vendor/gems/routing-filter-0.2.3/test/test_helper.rb
new file mode 100644
index 000000000..2a0d9f71a
--- /dev/null
+++ b/vendor/gems/routing-filter-0.2.3/test/test_helper.rb
@@ -0,0 +1,41 @@
+ENV['RAILS_ENV'] = 'test'
+
+require 'rubygems'
+require 'test/unit'
+require 'bundler/setup'
+
+require 'i18n'
+require 'action_pack'
+require 'active_support'
+require 'action_controller'
+require 'active_support/core_ext/enumerable.rb'
+require 'test_declarative'
+require 'routing_filter'
+
+include RoutingFilter
+
+class SomeController < ActionController::Base
+end
+
+class Test::Unit::TestCase
+ def draw_routes(&block)
+ normalized_block = rails_2? ? lambda { |set| set.instance_eval(&block) } : block
+ klass = rails_2? ? ActionController::Routing::RouteSet : ActionDispatch::Routing::RouteSet
+ klass.new.tap { |set| set.draw(&normalized_block) }
+ end
+
+ def rails_2?
+ ActionPack::VERSION::MAJOR == 2
+ end
+end
+
+if ActionPack::VERSION::MAJOR == 2
+ ActionController::Routing::RouteSet::Mapper.class_eval do
+ def match(pattern, options)
+ pattern.gsub!('(.:format)', '.:format')
+ controller, action = options.delete(:to).split('#')
+ options.merge!(:controller => controller, :action => action)
+ connect(pattern, options)
+ end
+ end
+end