aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore4
-rw-r--r--.gitmodules7
-rw-r--r--.rspec1
-rw-r--r--.rvmrc10
-rw-r--r--.travis.yml3
-rw-r--r--Gemfile48
-rw-r--r--Gemfile.lock296
-rw-r--r--LICENSE.txt12
-rw-r--r--README-rails.txt188
-rw-r--r--README.md20
-rw-r--r--Rakefile10
-rw-r--r--app/controllers/admin_censor_rule_controller.rb4
-rw-r--r--app/controllers/admin_controller.rb11
-rw-r--r--app/controllers/admin_general_controller.rb2
-rw-r--r--app/controllers/admin_public_body_controller.rb18
-rw-r--r--app/controllers/admin_request_controller.rb37
-rw-r--r--app/controllers/admin_track_controller.rb12
-rw-r--r--app/controllers/admin_user_controller.rb12
-rw-r--r--app/controllers/api_controller.rb13
-rw-r--r--app/controllers/application_controller.rb107
-rw-r--r--app/controllers/comment_controller.rb2
-rw-r--r--app/controllers/general_controller.rb39
-rw-r--r--app/controllers/help_controller.rb8
-rw-r--r--app/controllers/holiday_controller.rb4
-rw-r--r--app/controllers/public_body_controller.rb14
-rw-r--r--app/controllers/reports_controller.rb31
-rw-r--r--app/controllers/request_controller.rb273
-rw-r--r--app/controllers/request_game_controller.rb2
-rw-r--r--app/controllers/services_controller.rb6
-rw-r--r--app/controllers/track_controller.rb11
-rw-r--r--app/controllers/user_controller.rb38
-rw-r--r--app/helpers/admin_helper.rb37
-rw-r--r--app/helpers/application_helper.rb2
-rw-r--r--app/helpers/config_helper.rb4
-rwxr-xr-xapp/helpers/link_to_helper.rb38
-rw-r--r--app/helpers/mailer_helper.rb2
-rw-r--r--app/mailers/application_mailer.rb30
-rw-r--r--app/mailers/contact_mailer.rb45
-rw-r--r--app/mailers/outgoing_mailer.rb (renamed from app/models/outgoing_mailer.rb)32
-rw-r--r--app/mailers/request_mailer.rb (renamed from app/models/request_mailer.rb)236
-rw-r--r--app/mailers/track_mailer.rb (renamed from app/models/track_mailer.rb)32
-rw-r--r--app/mailers/user_mailer.rb44
-rw-r--r--app/models/about_me_validator.rb22
-rw-r--r--app/models/application_mailer.rb164
-rw-r--r--app/models/censor_rule.rb12
-rw-r--r--app/models/change_email_validator.rb38
-rw-r--r--app/models/comment.rb2
-rw-r--r--app/models/contact_mailer.rb56
-rw-r--r--app/models/contact_validator.rb34
-rw-r--r--app/models/foi_attachment.rb29
-rw-r--r--app/models/holiday.rb2
-rw-r--r--app/models/incoming_message.rb103
-rw-r--r--app/models/info_request.rb288
-rw-r--r--app/models/info_request_event.rb38
-rw-r--r--app/models/mail_server_log.rb12
-rw-r--r--app/models/mail_server_log_done.rb2
-rw-r--r--app/models/outgoing_message.rb45
-rw-r--r--app/models/post_redirect.rb28
-rw-r--r--app/models/profile_photo.rb41
-rw-r--r--app/models/public_body.rb65
-rw-r--r--app/models/purge_request.rb2
-rw-r--r--app/models/raw_email.rb6
-rw-r--r--app/models/track_thing.rb4
-rw-r--r--app/models/track_things_sent_email.rb2
-rw-r--r--app/models/user.rb50
-rw-r--r--app/models/user_info_request_sent_alert.rb2
-rw-r--r--app/models/user_mailer.rb48
-rw-r--r--app/views/admin_censor_rule/_form.html.erb (renamed from app/views/admin_censor_rule/_form.rhtml)6
-rw-r--r--app/views/admin_censor_rule/_show.html.erb (renamed from app/views/admin_censor_rule/_show.rhtml)6
-rw-r--r--app/views/admin_censor_rule/edit.html.erb18
-rw-r--r--app/views/admin_censor_rule/edit.rhtml16
-rw-r--r--app/views/admin_censor_rule/new.html.erb (renamed from app/views/admin_censor_rule/new.rhtml)4
-rw-r--r--app/views/admin_general/_admin_navbar.html.erb (renamed from app/views/admin_general/_admin_navbar.rhtml)0
-rw-r--r--app/views/admin_general/admin.coffee2
-rw-r--r--app/views/admin_general/admin.js2
-rw-r--r--app/views/admin_general/admin_js.erb4
-rw-r--r--app/views/admin_general/debug.html.erb (renamed from app/views/admin_general/debug.rhtml)7
-rw-r--r--app/views/admin_general/index.html.erb (renamed from app/views/admin_general/index.rhtml)37
-rw-r--r--app/views/admin_general/stats.html.erb (renamed from app/views/admin_general/stats.rhtml)0
-rw-r--r--app/views/admin_general/timeline.html.erb (renamed from app/views/admin_general/timeline.rhtml)19
-rw-r--r--app/views/admin_public_body/_form.html.erb (renamed from app/views/admin_public_body/_form.rhtml)5
-rw-r--r--app/views/admin_public_body/_locale_selector.rhtml10
-rw-r--r--app/views/admin_public_body/_one_list.html.erb (renamed from app/views/admin_public_body/_one_list.rhtml)4
-rw-r--r--app/views/admin_public_body/_tag_help.html.erb (renamed from app/views/admin_public_body/_tag_help.rhtml)0
-rw-r--r--app/views/admin_public_body/_tags.html.erb (renamed from app/views/admin_public_body/_tags.rhtml)0
-rw-r--r--app/views/admin_public_body/edit.html.erb (renamed from app/views/admin_public_body/edit.rhtml)8
-rw-r--r--app/views/admin_public_body/import_csv.html.erb (renamed from app/views/admin_public_body/import_csv.rhtml)2
-rw-r--r--app/views/admin_public_body/list.html.erb (renamed from app/views/admin_public_body/list.rhtml)9
-rw-r--r--app/views/admin_public_body/missing_scheme.html.erb (renamed from app/views/admin_public_body/missing_scheme.rhtml)0
-rw-r--r--app/views/admin_public_body/new.html.erb (renamed from app/views/admin_public_body/new.rhtml)2
-rw-r--r--app/views/admin_public_body/show.html.erb (renamed from app/views/admin_public_body/show.rhtml)2
-rw-r--r--app/views/admin_request/_incoming_message_actions.html.erb (renamed from app/views/admin_request/_incoming_message_actions.rhtml)8
-rw-r--r--app/views/admin_request/_some_requests.html.erb (renamed from app/views/admin_request/_some_requests.rhtml)4
-rw-r--r--app/views/admin_request/_tags.html.erb (renamed from app/views/admin_request/_tags.rhtml)0
-rw-r--r--app/views/admin_request/edit.html.erb (renamed from app/views/admin_request/edit.rhtml)8
-rw-r--r--app/views/admin_request/edit_comment.html.erb (renamed from app/views/admin_request/edit_comment.rhtml)6
-rw-r--r--app/views/admin_request/edit_outgoing.html.erb (renamed from app/views/admin_request/edit_outgoing.rhtml)8
-rw-r--r--app/views/admin_request/hidden_user_explanation.html.erb10
-rw-r--r--app/views/admin_request/hidden_user_explanation.rhtml10
-rw-r--r--app/views/admin_request/list.html.erb (renamed from app/views/admin_request/list.rhtml)2
-rw-r--r--app/views/admin_request/list_old_unclassified.rhtml15
-rw-r--r--app/views/admin_request/show.html.erb (renamed from app/views/admin_request/show.rhtml)56
-rw-r--r--app/views/admin_request/show_raw_email.html.erb (renamed from app/views/admin_request/show_raw_email.rhtml)0
-rw-r--r--app/views/admin_track/_some_tracks.html.erb (renamed from app/views/admin_track/_some_tracks.rhtml)8
-rw-r--r--app/views/admin_track/list.html.erb (renamed from app/views/admin_track/list.rhtml)2
-rw-r--r--app/views/admin_user/_form.html.erb (renamed from app/views/admin_user/_form.rhtml)2
-rw-r--r--app/views/admin_user/_user_table.html.erb (renamed from app/views/admin_user/_user_table.rhtml)2
-rw-r--r--app/views/admin_user/edit.html.erb11
-rw-r--r--app/views/admin_user/edit.rhtml21
-rw-r--r--app/views/admin_user/list.html.erb (renamed from app/views/admin_user/list.rhtml)4
-rw-r--r--app/views/admin_user/list_banned.html.erb (renamed from app/views/admin_user/list_banned.rhtml)2
-rw-r--r--app/views/admin_user/show.html.erb (renamed from app/views/admin_user/show.rhtml)10
-rw-r--r--app/views/admin_user/show_bounce_message.html.erb (renamed from app/views/admin_user/show_bounce_message.rhtml)0
-rw-r--r--app/views/comment/_comment_form.html.erb (renamed from app/views/comment/_comment_form.rhtml)4
-rw-r--r--app/views/comment/_single_comment.html.erb (renamed from app/views/comment/_single_comment.rhtml)0
-rw-r--r--app/views/comment/new.html.erb (renamed from app/views/comment/new.rhtml)0
-rw-r--r--app/views/comment/preview.html.erb (renamed from app/views/comment/preview.rhtml)2
-rw-r--r--app/views/contact_mailer/from_admin_message.text.erb (renamed from app/views/contact_mailer/from_admin_message.rhtml)0
-rw-r--r--app/views/contact_mailer/to_admin_message.text.erb (renamed from app/views/contact_mailer/to_admin_message.rhtml)0
-rw-r--r--app/views/contact_mailer/user_message.text.erb (renamed from app/views/contact_mailer/user_message.rhtml)0
-rw-r--r--app/views/general/_advanced_search_tips.html.erb (renamed from app/views/general/_advanced_search_tips.rhtml)0
-rw-r--r--app/views/general/_before_body_end.html.erb (renamed from app/views/general/_before_body_end.rhtml)0
-rw-r--r--app/views/general/_before_head_end.html.erb (renamed from app/views/general/_before_head_end.rhtml)0
-rw-r--r--app/views/general/_credits.html.erb (renamed from app/views/general/_credits.rhtml)0
-rw-r--r--app/views/general/_custom_state_descriptions.html.erb (renamed from app/views/general/_custom_state_descriptions.rhtml)0
-rw-r--r--app/views/general/_custom_state_transitions_complete.html.erb (renamed from app/views/general/_custom_state_transitions_complete.rhtml)0
-rw-r--r--app/views/general/_custom_state_transitions_pending.html.erb (renamed from app/views/general/_custom_state_transitions_pending.rhtml)0
-rw-r--r--app/views/general/_footer.html.erb (renamed from app/views/general/_footer.rhtml)2
-rw-r--r--app/views/general/_frontpage_bodies_list.html.erb (renamed from app/views/general/_frontpage_bodies_list.rhtml)2
-rw-r--r--app/views/general/_frontpage_intro_sentence.html.erb (renamed from app/views/general/_frontpage_intro_sentence.rhtml)0
-rw-r--r--app/views/general/_frontpage_new_request.html.erb (renamed from app/views/general/_frontpage_new_request.rhtml)0
-rw-r--r--app/views/general/_frontpage_requests_list.html.erb (renamed from app/views/general/_frontpage_requests_list.rhtml)0
-rw-r--r--app/views/general/_frontpage_search_box.html.erb (renamed from app/views/general/_frontpage_search_box.rhtml)0
-rw-r--r--app/views/general/_locale_switcher.html.erb (renamed from app/views/general/_locale_switcher.rhtml)0
-rw-r--r--app/views/general/_localised_datepicker.html.erb (renamed from app/views/general/_localised_datepicker.rhtml)0
-rw-r--r--app/views/general/_orglink.html.erb (renamed from app/views/general/_orglink.rhtml)0
-rw-r--r--app/views/general/_popup_banner.html.erb (renamed from app/views/general/_popup_banner.rhtml)0
-rw-r--r--app/views/general/_stylesheet_includes.html.erb (renamed from app/views/general/_stylesheet_includes.rhtml)2
-rw-r--r--app/views/general/_topnav.html.erb (renamed from app/views/general/_topnav.rhtml)0
-rw-r--r--app/views/general/blog.html.erb (renamed from app/views/general/blog.rhtml)14
-rw-r--r--app/views/general/custom_css.html.erb (renamed from app/views/general/custom_css.rhtml)0
-rw-r--r--app/views/general/exception_caught.html.erb (renamed from app/views/general/exception_caught.rhtml)2
-rw-r--r--app/views/general/frontpage.html.erb (renamed from app/views/general/frontpage.rhtml)2
-rw-r--r--app/views/general/search.html.erb (renamed from app/views/general/search.rhtml)18
-rw-r--r--app/views/help/_sidebar.html.erb (renamed from app/views/help/_sidebar.rhtml)0
-rw-r--r--app/views/help/_why_they_should_reply_by_email.html.erb (renamed from app/views/help/_why_they_should_reply_by_email.rhtml)0
-rw-r--r--app/views/help/about.html.erb (renamed from app/views/help/about.rhtml)0
-rw-r--r--app/views/help/alaveteli.html.erb (renamed from app/views/help/alaveteli.rhtml)0
-rw-r--r--app/views/help/api.html.erb (renamed from app/views/help/api.rhtml)0
-rw-r--r--app/views/help/contact.html.erb (renamed from app/views/help/contact.rhtml)4
-rw-r--r--app/views/help/credits.html.erb (renamed from app/views/help/credits.rhtml)0
-rw-r--r--app/views/help/officers.html.erb (renamed from app/views/help/officers.rhtml)0
-rw-r--r--app/views/help/privacy.html.erb (renamed from app/views/help/privacy.rhtml)0
-rw-r--r--app/views/help/requesting.html.erb (renamed from app/views/help/requesting.rhtml)0
-rw-r--r--app/views/help/unhappy.html.erb (renamed from app/views/help/unhappy.rhtml)0
-rw-r--r--app/views/holiday/due_date.html.erb (renamed from app/views/holiday/due_date.rhtml)0
-rw-r--r--app/views/layouts/admin.html.erb (renamed from app/views/layouts/admin.rhtml)0
-rw-r--r--app/views/layouts/contact_mailer.html.erb (renamed from app/views/layouts/contact_mailer.rhtml)0
-rw-r--r--app/views/layouts/default.html.erb (renamed from app/views/layouts/default.rhtml)10
-rw-r--r--app/views/layouts/no_chrome.html.erb (renamed from app/views/layouts/no_chrome.rhtml)0
-rw-r--r--app/views/layouts/outgoing_mailer.html.erb (renamed from app/views/layouts/outgoing_mailer.rhtml)0
-rw-r--r--app/views/layouts/request_mailer.html.erb (renamed from app/views/layouts/request_mailer.rhtml)0
-rw-r--r--app/views/layouts/user_mailer.html.erb (renamed from app/views/layouts/user_mailer.rhtml)0
-rw-r--r--app/views/outgoing_mailer/_followup_footer.text.erb (renamed from app/views/outgoing_mailer/_followup_footer.rhtml)0
-rw-r--r--app/views/outgoing_mailer/followup.text.erb (renamed from app/views/outgoing_mailer/followup.rhtml)0
-rw-r--r--app/views/outgoing_mailer/initial_request.text.erb (renamed from app/views/outgoing_mailer/initial_request.rhtml)0
-rw-r--r--app/views/public_body/_alphabet.html.erb (renamed from app/views/public_body/_alphabet.rhtml)2
-rw-r--r--app/views/public_body/_body_listing.html.erb (renamed from app/views/public_body/_body_listing.rhtml)0
-rw-r--r--app/views/public_body/_body_listing_single.html.erb (renamed from app/views/public_body/_body_listing_single.rhtml)3
-rw-r--r--app/views/public_body/_list_sidebar_extra.html.erb6
-rw-r--r--app/views/public_body/_list_sidebar_extra.rhtml6
-rw-r--r--app/views/public_body/_search_ahead.html.erb (renamed from app/views/public_body/_search_ahead.rhtml)7
-rw-r--r--app/views/public_body/list.html.erb (renamed from app/views/public_body/list.rhtml)18
-rw-r--r--app/views/public_body/show.html.erb (renamed from app/views/public_body/show.rhtml)22
-rw-r--r--app/views/public_body/view_email.html.erb (renamed from app/views/public_body/view_email.rhtml)6
-rw-r--r--app/views/public_body/view_email_captcha.html.erb (renamed from app/views/public_body/view_email_captcha.rhtml)2
-rw-r--r--app/views/reports/new.html.erb26
-rw-r--r--app/views/request/_after_actions.html.erb (renamed from app/views/request/_after_actions.rhtml)2
-rw-r--r--app/views/request/_bubble.html.erb (renamed from app/views/request/_bubble.rhtml)0
-rw-r--r--app/views/request/_correspondence.html.erb (renamed from app/views/request/_correspondence.rhtml)0
-rw-r--r--app/views/request/_describe_state.html.erb (renamed from app/views/request/_describe_state.rhtml)7
-rw-r--r--app/views/request/_followup.html.erb (renamed from app/views/request/_followup.rhtml)17
-rw-r--r--app/views/request/_hidden_correspondence.html.erb (renamed from app/views/request/_hidden_correspondence.rhtml)12
-rw-r--r--app/views/request/_next_actions.html.erb (renamed from app/views/request/_next_actions.rhtml)0
-rw-r--r--app/views/request/_other_describe_state.html.erb (renamed from app/views/request/_other_describe_state.rhtml)3
-rw-r--r--app/views/request/_request_filter_form.html.erb (renamed from app/views/request/_request_filter_form.rhtml)2
-rw-r--r--app/views/request/_request_listing.html.erb (renamed from app/views/request/_request_listing.rhtml)0
-rw-r--r--app/views/request/_request_listing_short_via_event.html.erb (renamed from app/views/request/_request_listing_short_via_event.rhtml)0
-rw-r--r--app/views/request/_request_listing_single.html.erb (renamed from app/views/request/_request_listing_single.rhtml)0
-rw-r--r--app/views/request/_request_listing_via_event.html.erb (renamed from app/views/request/_request_listing_via_event.rhtml)0
-rw-r--r--app/views/request/_search_ahead.html.erb (renamed from app/views/request/_search_ahead.rhtml)0
-rw-r--r--app/views/request/_sidebar.html.erb (renamed from app/views/request/_sidebar.rhtml)35
-rw-r--r--app/views/request/_sidebar_request_listing.html.erb (renamed from app/views/request/_sidebar_request_listing.rhtml)0
-rw-r--r--app/views/request/_summary_suggestion.html.erb (renamed from app/views/request/_summary_suggestion.rhtml)0
-rw-r--r--app/views/request/_view_html_prefix.html.erb (renamed from app/views/request/_view_html_prefix.rhtml)0
-rw-r--r--app/views/request/_view_html_stylesheet.html.erb (renamed from app/views/request/_view_html_stylesheet.rhtml)0
-rw-r--r--app/views/request/_wall_listing.html.erb (renamed from app/views/request/_wall_listing.rhtml)2
-rw-r--r--app/views/request/describe_state_message.html.erb30
-rw-r--r--app/views/request/details.html.erb (renamed from app/views/request/details.rhtml)0
-rw-r--r--app/views/request/followup_bad.html.erb (renamed from app/views/request/followup_bad.rhtml)12
-rw-r--r--app/views/request/followup_preview.html.erb (renamed from app/views/request/followup_preview.rhtml)4
-rw-r--r--app/views/request/hidden.html.erb19
-rw-r--r--app/views/request/hidden.rhtml19
-rw-r--r--app/views/request/list.html.erb (renamed from app/views/request/list.rhtml)0
-rw-r--r--app/views/request/new.html.erb (renamed from app/views/request/new.rhtml)15
-rw-r--r--app/views/request/new_bad_contact.html.erb (renamed from app/views/request/new_bad_contact.rhtml)0
-rw-r--r--app/views/request/new_please_describe.html.erb (renamed from app/views/request/new_please_describe.rhtml)4
-rw-r--r--app/views/request/preview.html.erb (renamed from app/views/request/preview.rhtml)18
-rw-r--r--app/views/request/select_authority.html.erb (renamed from app/views/request/select_authority.rhtml)39
-rw-r--r--app/views/request/show.html.erb (renamed from app/views/request/show.rhtml)10
-rw-r--r--app/views/request/show_response.html.erb (renamed from app/views/request/show_response.rhtml)4
-rw-r--r--app/views/request/similar.html.erb (renamed from app/views/request/similar.rhtml)0
-rw-r--r--app/views/request/simple_correspondence.html.erb (renamed from app/views/request/simple_correspondence.rhtml)2
-rw-r--r--app/views/request/upload_response.html.erb (renamed from app/views/request/upload_response.rhtml)6
-rw-r--r--app/views/request_game/play.html.erb (renamed from app/views/request_game/play.rhtml)0
-rw-r--r--app/views/request_mailer/comment_on_alert.text.erb (renamed from app/views/request_mailer/comment_on_alert.rhtml)0
-rw-r--r--app/views/request_mailer/comment_on_alert_plural.text.erb (renamed from app/views/request_mailer/comment_on_alert_plural.rhtml)0
-rw-r--r--app/views/request_mailer/external_response.rhtml1
-rw-r--r--app/views/request_mailer/external_response.text.erb1
-rw-r--r--app/views/request_mailer/fake_response.rhtml1
-rw-r--r--app/views/request_mailer/fake_response.text.erb1
-rw-r--r--app/views/request_mailer/new_response.text.erb (renamed from app/views/request_mailer/new_response.rhtml)0
-rw-r--r--app/views/request_mailer/new_response_reminder_alert.text.erb (renamed from app/views/request_mailer/new_response_reminder_alert.rhtml)0
-rw-r--r--app/views/request_mailer/not_clarified_alert.text.erb (renamed from app/views/request_mailer/not_clarified_alert.rhtml)0
-rw-r--r--app/views/request_mailer/old_unclassified_updated.text.erb (renamed from app/views/request_mailer/old_unclassified_updated.rhtml)0
-rw-r--r--app/views/request_mailer/overdue_alert.text.erb (renamed from app/views/request_mailer/overdue_alert.rhtml)0
-rw-r--r--app/views/request_mailer/requires_admin.text.erb (renamed from app/views/request_mailer/requires_admin.rhtml)2
-rw-r--r--app/views/request_mailer/stopped_responses.text.erb (renamed from app/views/request_mailer/stopped_responses.rhtml)0
-rw-r--r--app/views/request_mailer/very_overdue_alert.text.erb (renamed from app/views/request_mailer/very_overdue_alert.rhtml)0
-rw-r--r--app/views/track/_tracking_links.html.erb (renamed from app/views/track/_tracking_links.rhtml)2
-rw-r--r--app/views/track/atom_feed.atom.erb2
-rw-r--r--app/views/track_mailer/event_digest.text.erb (renamed from app/views/track_mailer/event_digest.rhtml)0
-rw-r--r--app/views/user/_change_receive_email.html.erb (renamed from app/views/user/_change_receive_email.rhtml)2
-rw-r--r--app/views/user/_show_user_info.html.erb (renamed from app/views/user/_show_user_info.rhtml)0
-rw-r--r--app/views/user/_signin.html.erb (renamed from app/views/user/_signin.rhtml)2
-rw-r--r--app/views/user/_signup.html.erb (renamed from app/views/user/_signup.rhtml)14
-rw-r--r--app/views/user/_user_listing_single.html.erb (renamed from app/views/user/_user_listing_single.rhtml)0
-rw-r--r--app/views/user/bad_token.html.erb (renamed from app/views/user/bad_token.rhtml)0
-rw-r--r--app/views/user/banned.html.erb (renamed from app/views/user/banned.rhtml)0
-rw-r--r--app/views/user/confirm.html.erb (renamed from app/views/user/confirm.rhtml)0
-rw-r--r--app/views/user/contact.html.erb (renamed from app/views/user/contact.rhtml)2
-rw-r--r--app/views/user/no_cookies.html.erb (renamed from app/views/user/no_cookies.rhtml)4
-rw-r--r--app/views/user/rate_limited.html.erb (renamed from app/views/user/rate_limited.rhtml)2
-rw-r--r--app/views/user/river.html.erb (renamed from app/views/user/river.rhtml)0
-rw-r--r--app/views/user/set_crop_profile_photo.html.erb (renamed from app/views/user/set_crop_profile_photo.rhtml)4
-rw-r--r--app/views/user/set_draft_profile_photo.html.erb (renamed from app/views/user/set_draft_profile_photo.rhtml)4
-rw-r--r--app/views/user/set_profile_about_me.html.erb (renamed from app/views/user/set_profile_about_me.rhtml)4
-rw-r--r--app/views/user/show.html.erb (renamed from app/views/user/show.rhtml)20
-rw-r--r--app/views/user/sign.html.erb (renamed from app/views/user/sign.rhtml)4
-rw-r--r--app/views/user/signchangeemail.html.erb (renamed from app/views/user/signchangeemail.rhtml)2
-rw-r--r--app/views/user/signchangeemail_confirm.html.erb (renamed from app/views/user/signchangeemail_confirm.rhtml)0
-rw-r--r--app/views/user/signchangepassword.html.erb (renamed from app/views/user/signchangepassword.rhtml)2
-rw-r--r--app/views/user/signchangepassword_confirm.html.erb (renamed from app/views/user/signchangepassword_confirm.rhtml)0
-rw-r--r--app/views/user/signchangepassword_send_confirm.html.erb (renamed from app/views/user/signchangepassword_send_confirm.rhtml)2
-rw-r--r--app/views/user/signin_successful.html.erb (renamed from app/views/user/signin_successful.rhtml)0
-rw-r--r--app/views/user/wall.html.erb (renamed from app/views/user/wall.rhtml)0
-rw-r--r--app/views/user/wrong_user.html.erb (renamed from app/views/user/wrong_user.rhtml)0
-rw-r--r--app/views/user/wrong_user_unknown_email.html.erb8
-rw-r--r--app/views/user/wrong_user_unknown_email.rhtml8
-rw-r--r--app/views/user_mailer/already_registered.text.erb (renamed from app/views/user_mailer/already_registered.rhtml)0
-rw-r--r--app/views/user_mailer/changeemail_already_used.text.erb (renamed from app/views/user_mailer/changeemail_already_used.rhtml)0
-rw-r--r--app/views/user_mailer/changeemail_confirm.text.erb (renamed from app/views/user_mailer/changeemail_confirm.rhtml)0
-rw-r--r--app/views/user_mailer/confirm_login.text.erb (renamed from app/views/user_mailer/confirm_login.rhtml)0
m---------commonlib0
-rw-r--r--config.ru6
-rw-r--r--config/application.rb75
-rw-r--r--config/boot.rb136
-rw-r--r--config/crontab.ugly2
-rw-r--r--config/database.yml-example2
-rw-r--r--config/deploy.yml.example4
-rw-r--r--config/environment.rb153
-rw-r--r--config/environments/development.rb47
-rw-r--r--config/environments/production.rb43
-rw-r--r--config/environments/staging.rb30
-rw-r--r--config/environments/test.rb40
-rw-r--r--config/general.yml-example6
-rw-r--r--config/httpd.conf-example (renamed from config/httpd.conf)7
-rw-r--r--config/initializers/alaveteli.rb64
-rw-r--r--config/initializers/backtrace_silencers.rb7
-rw-r--r--config/initializers/fast_gettext.rb2
-rw-r--r--config/initializers/gettext_i18n_rails.rb3
-rw-r--r--config/initializers/inflections.rb10
-rw-r--r--config/initializers/mime_types.rb5
-rw-r--r--config/initializers/secret_token.rb12
-rw-r--r--config/initializers/session_store.rb17
-rw-r--r--config/initializers/single_quote_escape_workaround.rb31
-rw-r--r--config/initializers/strip_nil_parameters_patch.rb51
-rw-r--r--config/initializers/theme_loader.rb23
l---------config/locales1
-rw-r--r--config/packages3
-rw-r--r--config/routes.rb468
-rw-r--r--config/test.yml7
-rw-r--r--config/varnish-alaveteli.vcl40
-rw-r--r--db/development_structure.sql48
-rw-r--r--db/migrate/006_version_public_body.rb2
-rw-r--r--db/migrate/101_add_hash_to_info_request.rb6
-rw-r--r--db/seeds.rb7
-rw-r--r--doc/ADMIN.md4
-rw-r--r--doc/CHANGES.md29
-rw-r--r--doc/INSTALL.md104
-rw-r--r--doc/THEMES-UPGRADE.md101
-rw-r--r--doc/THEMES.md18
-rw-r--r--lib/ability.rb5
-rw-r--r--lib/activesupport_cache_extensions.rb2
-rw-r--r--lib/alaveteli_external_command.rb8
-rw-r--r--lib/configuration.rb123
-rw-r--r--lib/google_translate.rb18
-rw-r--r--lib/i18n_fixes.rb11
-rw-r--r--lib/mail_handler/backends/mail_backend.rb78
-rw-r--r--lib/mail_handler/backends/mail_extensions.rb40
-rw-r--r--lib/mail_handler/backends/tmail_backend.rb288
-rw-r--r--lib/mail_handler/backends/tmail_extensions.rb138
-rw-r--r--lib/mail_handler/mail_handler.rb25
-rw-r--r--lib/no_constraint_disabling.rb110
-rw-r--r--lib/normalize_string.rb86
-rw-r--r--lib/old_rubygems_patch.rb46
-rw-r--r--lib/patches/fixtures_constraint_disabling.rb21
-rw-r--r--lib/public_body_categories.rb2
-rw-r--r--lib/quiet_opener.rb12
-rw-r--r--lib/rack_quote_monkeypatch.rb65
-rw-r--r--lib/sendmail_return_path.rb21
-rw-r--r--lib/tasks/.gitkeep (renamed from spec/fixtures/track_things_sent_emails.yml)0
-rw-r--r--lib/tasks/gettext.rake4
-rw-r--r--lib/tasks/rspec.rake148
-rw-r--r--lib/tasks/temp.rake150
-rw-r--r--lib/tasks/themes.rake10
-rw-r--r--lib/tasks/translation.rake58
-rw-r--r--lib/timezone_fixes.rb26
-rw-r--r--lib/willpaginate_extension.rb59
-rw-r--r--locale/aln/app.po436
-rw-r--r--locale/app.pot429
-rw-r--r--locale/ar/app.po2351
-rw-r--r--locale/bs/app.po515
-rw-r--r--locale/ca/app.po535
-rw-r--r--locale/cs/app.po610
-rw-r--r--locale/cy/app.po592
-rw-r--r--locale/de/app.po531
-rw-r--r--locale/en/app.po429
-rw-r--r--locale/en_IE/app.po437
-rw-r--r--locale/es/app.po553
-rw-r--r--locale/eu/app.po527
-rw-r--r--locale/fr/app.po2224
-rw-r--r--locale/gl/app.po531
-rw-r--r--locale/he_IL/app.po1958
-rw-r--r--locale/hu_HU/app.po838
-rw-r--r--locale/id/app.po661
-rw-r--r--locale/it/app.po3392
-rw-r--r--locale/model_attributes.rb17
-rw-r--r--locale/nb_NO/app.po439
-rw-r--r--locale/pt_BR/app.po588
-rw-r--r--locale/ro_RO/app.po2387
-rw-r--r--locale/sl/app.po459
-rw-r--r--locale/sq/app.po547
-rw-r--r--locale/sr@latin/app.po516
-rw-r--r--locale/tr/app.po436
-rw-r--r--locale/uk/app.po773
-rw-r--r--public/404.html34
-rw-r--r--public/422.html26
-rw-r--r--public/500.html36
-rwxr-xr-xpublic/dispatch.cgi10
-rwxr-xr-xpublic/dispatch.fcgi24
-rwxr-xr-xpublic/dispatch.rb10
-rw-r--r--public/javascripts/controls.js148
-rw-r--r--public/javascripts/dragdrop.js340
-rw-r--r--public/javascripts/effects.js357
-rw-r--r--public/javascripts/prototype.js5198
-rw-r--r--public/javascripts/rails.js202
-rw-r--r--public/stylesheets/main.css5
-rwxr-xr-xscript/about3
-rwxr-xr-xscript/alert-comment-on-request9
-rwxr-xr-xscript/alert-new-response-reminders9
-rwxr-xr-xscript/alert-not-clarified-request9
-rwxr-xr-xscript/alert-overdue-requests7
-rwxr-xr-xscript/alert-tracks10
-rwxr-xr-xscript/annotate-models2
-rwxr-xr-xscript/autospec6
-rwxr-xr-xscript/breakpointer3
-rwxr-xr-x[-rw-r--r--]script/cache-incoming-emails4
-rwxr-xr-xscript/check-recent-requests-sent10
-rwxr-xr-xscript/clear-caches14
-rwxr-xr-xscript/console3
-rwxr-xr-xscript/dbconsole3
-rwxr-xr-xscript/delete-old-things9
-rwxr-xr-xscript/destroy3
-rwxr-xr-xscript/direct-rspec8
-rwxr-xr-xscript/generate3
-rwxr-xr-xscript/handle-mail-replies.rb6
-rwxr-xr-xscript/load-mail-server-logs4
-rwxr-xr-xscript/load-sample-data26
-rwxr-xr-xscript/mailin2
-rwxr-xr-xscript/performance/benchmarker3
-rwxr-xr-xscript/performance/profiler3
-rwxr-xr-xscript/performance/request3
-rwxr-xr-xscript/plugin3
-rwxr-xr-xscript/process/inspector3
-rwxr-xr-xscript/process/reaper3
-rwxr-xr-xscript/process/spawner3
-rwxr-xr-xscript/purge-varnish7
-rwxr-xr-xscript/rails6
-rwxr-xr-xscript/rails-post-deploy21
-rwxr-xr-xscript/request-creation-graph2
-rwxr-xr-xscript/runner5
-rwxr-xr-xscript/server3
-rwxr-xr-xscript/spec10
-rwxr-xr-xscript/spec-all-pairs81
-rwxr-xr-xscript/spec_server116
-rwxr-xr-xscript/stop-new-responses-on-old-requests9
-rwxr-xr-xscript/test-run5
-rwxr-xr-xscript/user-use-graph2
-rwxr-xr-xscript/wraptest43
-rw-r--r--spec/controllers/admin_censor_rule_controller_spec.rb14
-rw-r--r--spec/controllers/admin_general_controller_spec.rb5
-rw-r--r--spec/controllers/admin_public_body_controller_spec.rb62
-rw-r--r--spec/controllers/admin_request_controller_spec.rb26
-rw-r--r--spec/controllers/admin_track_controller_spec.rb2
-rw-r--r--spec/controllers/admin_user_controller_spec.rb2
-rw-r--r--spec/controllers/api_controller_spec.rb22
-rw-r--r--spec/controllers/comment_controller_spec.rb2
-rw-r--r--spec/controllers/general_controller_spec.rb67
-rw-r--r--spec/controllers/help_controller_spec.rb2
-rw-r--r--spec/controllers/public_body_controller_spec.rb53
-rw-r--r--spec/controllers/reports_controller_spec.rb104
-rw-r--r--spec/controllers/request_controller_spec.rb531
-rw-r--r--spec/controllers/services_controller_spec.rb10
-rw-r--r--spec/controllers/track_controller_spec.rb18
-rw-r--r--spec/controllers/user_controller_spec.rb81
-rw-r--r--spec/fixtures/files/blog_feed.atom39
-rw-r--r--spec/fixtures/files/incoming-request-two-same-name.email4
-rw-r--r--spec/fixtures/files/inline-uuencode.email27
-rw-r--r--spec/fixtures/files/malformed-to-and-cc.email11
-rw-r--r--spec/fixtures/files/mislabelled-as-iso-8859-1.email20
-rw-r--r--spec/fixtures/files/multipart-no-final-boundary.email21
-rw-r--r--spec/fixtures/files/nested-attachments-premature-end.email110
-rw-r--r--spec/fixtures/files/no-part-charset-random-data.email30
-rw-r--r--spec/fixtures/files/part-without-charset-in-content-type.email38
-rw-r--r--spec/fixtures/files/tnef-attachment-empty.email196
-rw-r--r--spec/fixtures/files/tnef-attachment-truncated.email34
-rw-r--r--spec/fixtures/foi_attachments.yml1
-rw-r--r--spec/fixtures/info_request_events.yml11
-rw-r--r--spec/fixtures/info_requests.yml12
-rw-r--r--spec/fixtures/locale/en/app.po149
-rw-r--r--spec/fixtures/locale/en_GB/app.po148
-rw-r--r--spec/fixtures/locale/es/app.po266
-rw-r--r--spec/fixtures/outgoing_messages.yml11
-rw-r--r--spec/fixtures/public_bodies.yml15
-rw-r--r--spec/fixtures/public_body_translations.yml13
-rw-r--r--spec/fixtures/theme_views/core/application_mailer/core_only.html.erb (renamed from spec/fixtures/theme_views/core/application_mailer/core_only.rhtml)0
-rw-r--r--spec/fixtures/theme_views/core/application_mailer/multipart_core_only.html.erb (renamed from spec/fixtures/theme_views/core/application_mailer/multipart_core_only.rhtml)0
-rw-r--r--spec/fixtures/theme_views/core/application_mailer/simple.html.erb (renamed from spec/fixtures/theme_views/core/application_mailer/simple.rhtml)0
-rw-r--r--spec/fixtures/theme_views/theme_one/application_mailer/multipart_theme_only.html.erb (renamed from spec/fixtures/theme_views/theme_one/application_mailer/multipart_theme_only.rhtml)0
-rw-r--r--spec/fixtures/theme_views/theme_one/application_mailer/simple.html.erb (renamed from spec/fixtures/theme_views/theme_one/application_mailer/simple.rhtml)0
-rw-r--r--spec/fixtures/theme_views/theme_one/application_mailer/theme_only.html.erb (renamed from spec/fixtures/theme_views/theme_one/application_mailer/theme_only.rhtml)0
-rw-r--r--spec/fixtures/users.yml22
-rw-r--r--spec/helpers/link_to_helper_spec.rb5
-rw-r--r--spec/integration/admin_spec.rb2
-rw-r--r--spec/integration/errors_spec.rb142
-rw-r--r--spec/integration/request_controller_spec.rb42
-rw-r--r--spec/integration/search_request_spec.rb6
-rw-r--r--spec/lib/ability_spec.rb51
-rw-r--r--spec/lib/basic_encoding_tests.rb157
-rw-r--r--spec/lib/i18n_interpolation.rb28
-rw-r--r--spec/lib/mail_handler/mail_handler_spec.rb82
-rw-r--r--spec/lib/sendmail_return_path_spec.rb15
-rw-r--r--spec/lib/timezone_fixes_spec.rb5
-rw-r--r--spec/mailers/application_mailer_spec.rb (renamed from spec/models/application_mailer_spec.rb)46
-rw-r--r--spec/mailers/outgoing_mailer_spec.rb (renamed from spec/models/outgoing_mailer_spec.rb)0
-rw-r--r--spec/mailers/request_mailer_spec.rb (renamed from spec/models/request_mailer_spec.rb)40
-rw-r--r--spec/mailers/track_mailer_spec.rb (renamed from spec/models/track_mailer_spec.rb)51
-rw-r--r--spec/models/censor_rule_spec.rb22
-rw-r--r--spec/models/contact_mailer_spec.rb8
-rw-r--r--spec/models/foi_attachment_spec.rb2
-rw-r--r--spec/models/incoming_message_spec.rb70
-rw-r--r--spec/models/info_request_event_spec.rb2
-rw-r--r--spec/models/info_request_spec.rb16
-rw-r--r--spec/models/mail_server_log_spec.rb10
-rw-r--r--spec/models/outgoing_message_spec.rb19
-rw-r--r--spec/models/public_body_spec.rb14
-rw-r--r--spec/models/user_mailer_spec.rb8
-rw-r--r--spec/models/user_spec.rb8
-rw-r--r--spec/models/xapian_spec.rb129
-rw-r--r--spec/script/mailin_spec.rb16
-rw-r--r--spec/spec.opts3
-rw-r--r--spec/spec_helper.rb348
-rw-r--r--spec/support/email_helpers.rb23
-rw-r--r--spec/support/load_file_fixtures.rb8
-rw-r--r--spec/support/xapian_index.rb42
-rw-r--r--spec/views/public_body/show.html.erb_spec.rb (renamed from spec/views/public_body/show.rhtml_spec.rb)62
-rw-r--r--spec/views/reports/new.erb_spec.rb29
-rw-r--r--spec/views/request/_after_actions.html.erb_spec.rb (renamed from spec/views/request/_after_actions.rhtml_spec.rb)71
-rw-r--r--spec/views/request/_describe_state.html.erb_spec.rb (renamed from spec/views/request/_describe_state.rhtml_spec.rb)28
-rw-r--r--spec/views/request/list.html.erb_spec.rb (renamed from spec/views/request/list.rhtml_spec.rb)32
-rw-r--r--spec/views/request/show.html.erb_spec.rb (renamed from spec/views/request/show.rhtml_spec.rb)54
-rw-r--r--spec/views/request_game/play.html.erb_spec.rb (renamed from spec/views/request_game/play.rhtml_spec.rb)14
-rw-r--r--vendor/plugins/active_record_base_without_table/CHANGELOG3
-rw-r--r--vendor/plugins/active_record_base_without_table/MIT-LICENSE20
-rw-r--r--vendor/plugins/active_record_base_without_table/README29
-rw-r--r--vendor/plugins/active_record_base_without_table/Rakefile22
-rw-r--r--vendor/plugins/active_record_base_without_table/lib/active_record/base_without_table.rb26
-rw-r--r--vendor/plugins/active_record_base_without_table/test/abstract_unit.rb15
-rw-r--r--vendor/plugins/active_record_base_without_table/test/active_record_base_without_table_test.rb41
-rw-r--r--vendor/plugins/active_record_base_without_table/test/database.yml6
-rw-r--r--vendor/plugins/acts_as_versioned/CHANGELOG82
-rw-r--r--vendor/plugins/acts_as_versioned/MIT-LICENSE20
-rw-r--r--vendor/plugins/acts_as_versioned/README28
-rw-r--r--vendor/plugins/acts_as_versioned/RUNNING_UNIT_TESTS41
-rw-r--r--vendor/plugins/acts_as_versioned/Rakefile182
-rw-r--r--vendor/plugins/acts_as_versioned/init.rb1
-rw-r--r--vendor/plugins/acts_as_versioned/lib/acts_as_versioned.rb490
-rw-r--r--vendor/plugins/acts_as_versioned/test/abstract_unit.rb48
-rw-r--r--vendor/plugins/acts_as_versioned/test/database.yml18
-rw-r--r--vendor/plugins/acts_as_versioned/test/fixtures/authors.yml6
-rw-r--r--vendor/plugins/acts_as_versioned/test/fixtures/landmark.rb3
-rw-r--r--vendor/plugins/acts_as_versioned/test/fixtures/landmark_versions.yml7
-rw-r--r--vendor/plugins/acts_as_versioned/test/fixtures/landmarks.yml7
-rw-r--r--vendor/plugins/acts_as_versioned/test/fixtures/locked_pages.yml10
-rw-r--r--vendor/plugins/acts_as_versioned/test/fixtures/locked_pages_revisions.yml27
-rw-r--r--vendor/plugins/acts_as_versioned/test/fixtures/migrations/1_add_versioned_tables.rb15
-rw-r--r--vendor/plugins/acts_as_versioned/test/fixtures/page.rb43
-rw-r--r--vendor/plugins/acts_as_versioned/test/fixtures/page_versions.yml16
-rw-r--r--vendor/plugins/acts_as_versioned/test/fixtures/pages.yml8
-rw-r--r--vendor/plugins/acts_as_versioned/test/fixtures/widget.rb6
-rw-r--r--vendor/plugins/acts_as_versioned/test/migration_test.rb46
-rw-r--r--vendor/plugins/acts_as_versioned/test/schema.rb80
-rw-r--r--vendor/plugins/acts_as_versioned/test/versioned_test.rb352
-rw-r--r--vendor/plugins/acts_as_xapian/README.txt40
-rw-r--r--vendor/plugins/acts_as_xapian/init.rb2
-rw-r--r--vendor/plugins/acts_as_xapian/lib/acts_as_xapian.rb23
-rw-r--r--vendor/plugins/exception_notification/README144
-rw-r--r--vendor/plugins/exception_notification/exception_notification.gemspec11
-rw-r--r--vendor/plugins/exception_notification/init.rb1
-rw-r--r--vendor/plugins/exception_notification/lib/exception_notification.rb7
-rw-r--r--vendor/plugins/exception_notification/lib/exception_notification/consider_local.rb31
-rw-r--r--vendor/plugins/exception_notification/lib/exception_notification/notifiable.rb66
-rw-r--r--vendor/plugins/exception_notification/lib/exception_notification/notifier.rb80
-rw-r--r--vendor/plugins/exception_notification/lib/exception_notification/notifier_helper.rb67
-rw-r--r--vendor/plugins/exception_notification/test/exception_notifier_helper_test.rb62
-rw-r--r--vendor/plugins/exception_notification/test/test_helper.rb8
-rw-r--r--vendor/plugins/exception_notification/views/exception_notifier/_backtrace.rhtml1
-rw-r--r--vendor/plugins/exception_notification/views/exception_notifier/_environment.rhtml7
-rw-r--r--vendor/plugins/exception_notification/views/exception_notifier/_inspect_model.rhtml16
-rw-r--r--vendor/plugins/exception_notification/views/exception_notifier/_request.rhtml4
-rw-r--r--vendor/plugins/exception_notification/views/exception_notifier/_session.rhtml2
-rw-r--r--vendor/plugins/exception_notification/views/exception_notifier/_title.rhtml3
-rw-r--r--vendor/plugins/exception_notification/views/exception_notifier/exception_notification.rhtml6
-rw-r--r--vendor/plugins/globalize2/LICENSE21
-rw-r--r--vendor/plugins/globalize2/README.textile86
-rw-r--r--vendor/plugins/globalize2/Rakefile39
-rw-r--r--vendor/plugins/globalize2/VERSION1
-rw-r--r--vendor/plugins/globalize2/generators/db_backend.rb0
-rw-r--r--vendor/plugins/globalize2/generators/templates/db_backend_migration.rb25
-rw-r--r--vendor/plugins/globalize2/globalize2.gemspec81
-rw-r--r--vendor/plugins/globalize2/init.rb1
-rw-r--r--vendor/plugins/globalize2/lib/globalize.rb15
-rw-r--r--vendor/plugins/globalize2/lib/globalize/active_record.rb238
-rw-r--r--vendor/plugins/globalize2/lib/globalize/active_record/adapter.rb80
-rw-r--r--vendor/plugins/globalize2/lib/globalize/active_record/attributes.rb25
-rw-r--r--vendor/plugins/globalize2/lib/globalize/active_record/migration.rb44
-rw-r--r--vendor/plugins/globalize2/lib/i18n/missing_translations_log_handler.rb41
-rw-r--r--vendor/plugins/globalize2/lib/i18n/missing_translations_raise_handler.rb25
-rw-r--r--vendor/plugins/globalize2/test/active_record/fallbacks_test.rb102
-rw-r--r--vendor/plugins/globalize2/test/active_record/migration_test.rb118
-rw-r--r--vendor/plugins/globalize2/test/active_record/sti_translated_test.rb49
-rw-r--r--vendor/plugins/globalize2/test/active_record/translates_test.rb96
-rw-r--r--vendor/plugins/globalize2/test/active_record/translation_class_test.rb30
-rw-r--r--vendor/plugins/globalize2/test/active_record/validation_tests.rb75
-rw-r--r--vendor/plugins/globalize2/test/active_record_test.rb467
-rw-r--r--vendor/plugins/globalize2/test/all.rb2
-rw-r--r--vendor/plugins/globalize2/test/data/models.rb56
-rw-r--r--vendor/plugins/globalize2/test/data/no_globalize_schema.rb11
-rw-r--r--vendor/plugins/globalize2/test/data/schema.rb55
-rw-r--r--vendor/plugins/globalize2/test/i18n/missing_translations_test.rb36
-rw-r--r--vendor/plugins/globalize2/test/test_helper.rb76
-rw-r--r--vendor/plugins/has_tag_string/lib/has_tag_string.rb2
-rw-r--r--vendor/plugins/rails_xss/MIT-LICENSE20
-rw-r--r--vendor/plugins/rails_xss/README.markdown91
-rw-r--r--vendor/plugins/rails_xss/Rakefile23
-rw-r--r--vendor/plugins/rails_xss/init.rb9
-rw-r--r--vendor/plugins/rails_xss/lib/rails_xss.rb3
-rw-r--r--vendor/plugins/rails_xss/lib/rails_xss/action_view.rb111
-rw-r--r--vendor/plugins/rails_xss/lib/rails_xss/erubis.rb41
-rw-r--r--vendor/plugins/rails_xss/lib/rails_xss/string_ext.rb65
-rw-r--r--vendor/plugins/rails_xss/lib/tasks/rails_xss_tasks.rake4
-rw-r--r--vendor/plugins/rails_xss/test/active_record_helper_test.rb74
-rw-r--r--vendor/plugins/rails_xss/test/asset_tag_helper_test.rb49
-rw-r--r--vendor/plugins/rails_xss/test/caching_test.rb54
-rw-r--r--vendor/plugins/rails_xss/test/content_for_test.rb39
-rw-r--r--vendor/plugins/rails_xss/test/date_helper_test.rb29
-rw-r--r--vendor/plugins/rails_xss/test/deprecated_output_safety_test.rb112
-rw-r--r--vendor/plugins/rails_xss/test/erb_util_test.rb36
-rw-r--r--vendor/plugins/rails_xss/test/form_helper_test.rb1447
-rw-r--r--vendor/plugins/rails_xss/test/form_tag_helper_test.rb354
-rw-r--r--vendor/plugins/rails_xss/test/javascript_helper_test.rb10
-rw-r--r--vendor/plugins/rails_xss/test/output_escaping_test.rb19
-rw-r--r--vendor/plugins/rails_xss/test/output_safety_test.rb115
-rw-r--r--vendor/plugins/rails_xss/test/rails_xss_test.rb23
-rw-r--r--vendor/plugins/rails_xss/test/raw_output_helper_test.rb18
-rw-r--r--vendor/plugins/rails_xss/test/safe_buffer_test.rb51
-rw-r--r--vendor/plugins/rails_xss/test/tag_helper_test.rb21
-rw-r--r--vendor/plugins/rails_xss/test/test_helper.rb6
-rw-r--r--vendor/plugins/rails_xss/test/text_helper_test.rb30
-rw-r--r--vendor/plugins/rails_xss/test/url_for_test.rb39
-rw-r--r--vendor/plugins/strip_attributes/lib/strip_attributes.rb16
-rw-r--r--vendor/plugins/strip_attributes/test/strip_attributes_test.rb6
m---------vendor/rails-locales0
604 files changed, 25525 insertions, 22916 deletions
diff --git a/.gitignore b/.gitignore
index e0b1e3b21..75c348ff9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,4 +21,8 @@ TAGS
.bundle
bin/
config/aliases
+config/httpd.conf
.sass-cache
+alaveteli.sublime*
+webrat.log
+/.rbenv-version
diff --git a/.gitmodules b/.gitmodules
index 4f9ece146..0668c855f 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,6 +1,3 @@
[submodule "commonlib"]
- path = commonlib
- url = git://git.mysociety.org/commonlib
-[submodule "vendor/rails-locales"]
- path = vendor/rails-locales
- url = git://github.com/svenfuchs/rails-i18n.git
+ path = commonlib
+ url = git://git.mysociety.org/commonlib
diff --git a/.rspec b/.rspec
new file mode 100644
index 000000000..7488cbe77
--- /dev/null
+++ b/.rspec
@@ -0,0 +1 @@
+--color --drb
diff --git a/.rvmrc b/.rvmrc
index 1f2700fc2..339f08013 100644
--- a/.rvmrc
+++ b/.rvmrc
@@ -5,10 +5,8 @@
# First we specify our desired <ruby>[@<gemset>], the @gemset name is optional,
# Only full ruby name is supported here, for short names use:
-# echo "rvm use 1.8.7" > .rvmrc
-environment_id="ruby-1.8.7-p370"
-
-rubygems_version="1.6.2"
+# echo "rvm use 1.9.3" > .rvmrc
+environment_id="1.9.3-p392"
# Uncomment the following lines if you want to verify rvm version per project
# rvmrc_rvm_version="1.14.10 (stable)" # 1.10.1 seams as a safe start
@@ -38,10 +36,6 @@ else
}
fi
-if [[ "$(gem --version)" != "${rubygems_version}" ]] ; then
- rvm rubygems ${rubygems_version}
-fi
-
# If you use bundler, this might be useful to you:
# if [[ -s Gemfile ]] && {
# ! builtin command -v bundle >/dev/null ||
diff --git a/.travis.yml b/.travis.yml
index 2f06f6cd9..4f19c9588 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,8 +1,8 @@
language: ruby
branches:
only:
- - develop
- master
+ - rails-3-develop
rvm:
- 1.8.7
- 1.9.3
@@ -20,6 +20,7 @@ before_install:
- sudo apt-get -y install exim4-daemon-light
- sudo apt-get -y install `cut -d " " -f 1 config/packages | egrep -v "(^#|wkhtml|bundler|^ruby$|^ruby1.8$|^rubygems$|^rake)"`
- RAILS_ENV=test ./script/rails-post-deploy
+ - RAILS_ENV=test ./script/update-xapian-index
before_script:
notifications:
irc: "irc.freenode.org#alaveteli"
diff --git a/Gemfile b/Gemfile
index 851ed38ff..18c2aec0d 100644
--- a/Gemfile
+++ b/Gemfile
@@ -5,50 +5,53 @@ if File.exist? "/etc/debian_version" and File.open("/etc/debian_version").read.s
DL::dlopen('/lib/libuuid.so.1')
end
end
-source :rubygems
+source 'https://rubygems.org'
-# A fork of rails that is kept up to date with security patches
-git "git://github.com/mysociety/rails.git", :tag => "v2.3.17.1" do
- gem 'rails'
-end
+gem 'rails', '3.1.12'
gem 'pg'
-gem 'fast_gettext', '>= 0.6.0'
+gem 'charlock_holmes'
gem 'fastercsv', '>=1.5.5'
-gem 'gettext_i18n_rails', '>= 0.7.1'
-gem 'gettext', '~> 2.3.3'
gem 'json'
gem 'mahoro'
-gem 'mail', :platforms => :ruby_19
-gem 'memcache-client', :require => 'memcache'
-gem 'locale', '>= 2.0.5'
gem 'net-http-local'
gem 'net-purge'
-gem 'rack', '~> 1.1.0'
+gem 'rack'
+gem 'rails-i18n'
gem 'rdoc'
gem 'recaptcha', '~> 0.3.1', :require => 'recaptcha/rails'
# :require avoids "already initialized constant" warnings
gem 'rmagick', :require => 'RMagick'
-gem 'routing-filter', '~> 0.2.4'
gem 'rake', '0.9.2.2'
gem 'ruby-msg', '~> 1.5.0'
gem 'vpim'
-gem 'will_paginate', '~> 2.3.11'
+gem 'will_paginate'
# when 1.2.9 is released by the maintainer, we can stop using this fork:
gem 'xapian-full-alaveteli', '~> 1.2.9.5'
-gem 'xml-simple'
+gem 'xml-simple', :require => 'xmlsimple'
gem 'zip'
gem 'capistrano'
gem 'syslog_protocol'
gem 'newrelic_rpm'
-# erubis is required by rails_xss. Both erubis and rails_xss can be removed after upgrading to Rails 3.
-gem 'erubis'
+# Use until this PR is merged: https://github.com/svenfuchs/globalize3/pull/191
+gem 'globalize3', :git => 'git://github.com/henare/globalize3.git', :branch => 'not-null-empty-attributes'
+# New gem releases aren't being done. master is newer and supports Rails > 3.0
+gem 'acts_as_versioned', :git => 'git://github.com/technoweenie/acts_as_versioned.git'
+gem 'dynamic_form'
+gem 'exception_notification'
+
+# Gems related to internationalisation
+# Also in vendor/plugins there is globalize2
+gem 'fast_gettext'
+gem 'gettext_i18n_rails'
+gem 'gettext'
+gem 'locale'
+gem 'routing-filter'
group :test do
gem 'fakeweb'
- gem 'rspec-rails', '~> 1.3.4'
- gem 'test-unit', '~> 1.2.3', :platforms => :ruby_19
gem 'coveralls', :require => false
+ gem 'webrat'
end
group :development do
@@ -57,8 +60,13 @@ end
group :develop do
gem 'ruby-debug', :platforms => :ruby_18
- gem 'ruby-debug19', :platforms => :ruby_19
+ gem 'debugger', :platforms => :ruby_19
gem 'bootstrap-sass'
gem 'compass'
gem 'annotate'
end
+
+group :test, :development do
+ gem 'rspec-rails'
+ gem 'spork-rails'
+end
diff --git a/Gemfile.lock b/Gemfile.lock
index 27f574f4f..24e4dd5e3 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,209 +1,285 @@
GIT
- remote: git://github.com/mysociety/rails.git
- revision: 893560c501f2c3eda044938840108431dcf6ab91
- tag: v2.3.17.1
+ remote: git://github.com/henare/globalize3.git
+ revision: 2931f559cbed8843ab7d16278d70ce99a0239132
+ branch: not-null-empty-attributes
specs:
- actionmailer (2.3.17)
- actionpack (= 2.3.17)
- actionpack (2.3.17)
- activesupport (= 2.3.17)
- rack (~> 1.1.0)
- activerecord (2.3.17)
- activesupport (= 2.3.17)
- activeresource (2.3.17)
- activesupport (= 2.3.17)
- activesupport (2.3.17)
- rails (2.3.17)
- actionmailer (= 2.3.17)
- actionpack (= 2.3.17)
- activerecord (= 2.3.17)
- activeresource (= 2.3.17)
- activesupport (= 2.3.17)
- rake (>= 0.8.3)
+ globalize3 (0.3.0)
+ activemodel (>= 3.0.0)
+ activerecord (>= 3.0.0)
+ paper_trail (~> 2)
+
+GIT
+ remote: git://github.com/technoweenie/acts_as_versioned.git
+ revision: 63b1fc8529d028fae632fe80ec0cb25df56cd76b
+ specs:
+ acts_as_versioned (0.6.0)
+ activerecord (>= 3.0.9)
GEM
- remote: http://rubygems.org/
+ remote: https://rubygems.org/
specs:
- annotate (2.4.0)
- archive-tar-minitar (0.5.2)
- bootstrap-sass (2.1.1.0)
- capistrano (2.14.2)
+ actionmailer (3.1.12)
+ actionpack (= 3.1.12)
+ mail (~> 2.4.4)
+ actionpack (3.1.12)
+ activemodel (= 3.1.12)
+ activesupport (= 3.1.12)
+ builder (~> 3.0.0)
+ erubis (~> 2.7.0)
+ i18n (~> 0.6)
+ rack (~> 1.3.6)
+ rack-cache (~> 1.2)
+ rack-mount (~> 0.8.2)
+ rack-test (~> 0.6.1)
+ sprockets (~> 2.0.4)
+ activemodel (3.1.12)
+ activesupport (= 3.1.12)
+ builder (~> 3.0.0)
+ i18n (~> 0.6)
+ activerecord (3.1.12)
+ activemodel (= 3.1.12)
+ activesupport (= 3.1.12)
+ arel (~> 2.2.3)
+ tzinfo (~> 0.3.29)
+ activeresource (3.1.12)
+ activemodel (= 3.1.12)
+ activesupport (= 3.1.12)
+ activesupport (3.1.12)
+ multi_json (~> 1.0)
+ annotate (2.5.0)
+ rake
+ arel (2.2.3)
+ bootstrap-sass (2.3.1.2)
+ sass (~> 3.2)
+ builder (3.0.4)
+ capistrano (2.15.4)
highline
net-scp (>= 1.0.0)
net-sftp (>= 2.0.0)
net-ssh (>= 2.0.14)
net-ssh-gateway (>= 1.1.0)
- chunky_png (1.2.6)
+ charlock_holmes (0.6.9.4)
+ chunky_png (1.2.8)
colorize (0.5.8)
columnize (0.3.6)
compass (0.12.2)
chunky_png (~> 1.2)
fssm (>= 0.2.7)
sass (~> 3.1)
- coveralls (0.6.0)
+ coveralls (0.6.7)
colorize
multi_json (~> 1.3)
rest-client
simplecov (>= 0.7)
thor
daemons (1.1.9)
+ debugger (1.6.0)
+ columnize (>= 0.3.1)
+ debugger-linecache (~> 1.2.0)
+ debugger-ruby_core_source (~> 1.2.1)
+ debugger-linecache (1.2.0)
+ debugger-ruby_core_source (1.2.2)
+ diff-lcs (1.2.4)
+ dynamic_form (1.1.4)
erubis (2.7.0)
- eventmachine (1.0.0)
+ eventmachine (1.0.3)
+ exception_notification (3.0.1)
+ actionmailer (>= 3.0.4)
fakeweb (1.3.0)
- fast_gettext (0.6.8)
+ fast_gettext (0.7.0)
fastercsv (1.5.5)
- fssm (0.2.9)
- gettext (2.3.3)
+ fssm (0.2.10)
+ gettext (2.3.9)
locale
- gettext_i18n_rails (0.7.1)
+ text
+ gettext_i18n_rails (0.9.4)
fast_gettext (>= 0.4.8)
- haml (3.1.7)
- highline (1.6.15)
- hoe (3.0.8)
- rake (~> 0.8)
- i18n (0.6.1)
- json (1.7.7)
+ haml (4.0.3)
+ tilt
+ highline (1.6.19)
+ hike (1.2.2)
+ i18n (0.6.4)
+ json (1.8.0)
linecache (0.46)
rbx-require-relative (> 0.0.4)
- linecache19 (0.5.12)
- ruby_core_source (>= 0.1.4)
- locale (2.0.5)
- mahoro (0.3)
+ locale (2.0.8)
+ mahoro (0.4)
mail (2.4.4)
i18n (>= 0.4.0)
mime-types (~> 1.16)
treetop (~> 1.4.8)
- mailcatcher (0.2.4)
- eventmachine
- haml
- i18n
- json
- mail
- sinatra
- skinny (>= 0.1.2)
- sqlite3-ruby
- thin
- memcache-client (1.8.5)
- mime-types (1.19)
- multi_json (1.6.1)
+ mailcatcher (0.5.11)
+ activesupport (~> 3.0)
+ eventmachine (~> 1.0.0)
+ haml (>= 3.1, < 5)
+ mail (~> 2.3)
+ sinatra (~> 1.2)
+ skinny (~> 0.2.3)
+ sqlite3 (~> 1.3)
+ thin (~> 1.5.0)
+ mime-types (1.23)
+ multi_json (1.7.4)
net-http-local (0.1.2)
net-purge (0.1.0)
- net-scp (1.1.0)
+ net-scp (1.1.1)
net-ssh (>= 2.6.5)
- net-sftp (2.1.1)
+ net-sftp (2.1.2)
net-ssh (>= 2.6.5)
- net-ssh (2.6.5)
+ net-ssh (2.6.7)
net-ssh-gateway (1.2.0)
net-ssh (>= 2.6.5)
- newrelic_rpm (3.5.4.34)
- pg (0.13.2)
+ newrelic_rpm (3.6.2.96)
+ nokogiri (1.5.9)
+ paper_trail (2.7.2)
+ activerecord (~> 3.0)
+ railties (~> 3.0)
+ pg (0.15.1)
polyglot (0.3.3)
- rack (1.1.6)
+ rack (1.3.10)
+ rack-cache (1.2)
+ rack (>= 0.4)
+ rack-mount (0.8.3)
+ rack (>= 1.0.0)
+ rack-protection (1.5.0)
+ rack
+ rack-ssl (1.3.3)
+ rack
+ rack-test (0.6.2)
+ rack (>= 1.0)
+ rails (3.1.12)
+ actionmailer (= 3.1.12)
+ actionpack (= 3.1.12)
+ activerecord (= 3.1.12)
+ activeresource (= 3.1.12)
+ activesupport (= 3.1.12)
+ bundler (~> 1.0)
+ railties (= 3.1.12)
+ rails-i18n (0.7.3)
+ i18n (~> 0.5)
+ railties (3.1.12)
+ actionpack (= 3.1.12)
+ activesupport (= 3.1.12)
+ rack-ssl (~> 1.3.2)
+ rake (>= 0.8.7)
+ rdoc (~> 3.4)
+ thor (~> 0.14.6)
rake (0.9.2.2)
rbx-require-relative (0.0.9)
- rdoc (3.12.1)
+ rdoc (3.12.2)
json (~> 1.4)
- recaptcha (0.3.4)
+ recaptcha (0.3.5)
rest-client (1.6.7)
mime-types (>= 1.16)
- rmagick (2.13.1)
- routing-filter (0.2.4)
+ rmagick (2.13.2)
+ routing-filter (0.3.1)
actionpack
- rspec (1.3.2)
- rspec-rails (1.3.4)
- rack (>= 1.0.0)
- rspec (~> 1.3.1)
+ rspec-core (2.13.1)
+ rspec-expectations (2.13.0)
+ diff-lcs (>= 1.1.3, < 2.0)
+ rspec-mocks (2.13.1)
+ rspec-rails (2.13.2)
+ actionpack (>= 3.0)
+ activesupport (>= 3.0)
+ railties (>= 3.0)
+ rspec-core (~> 2.13.0)
+ rspec-expectations (~> 2.13.0)
+ rspec-mocks (~> 2.13.0)
ruby-debug (0.10.4)
columnize (>= 0.1)
ruby-debug-base (~> 0.10.4.0)
ruby-debug-base (0.10.4)
linecache (>= 0.3)
- ruby-debug-base19 (0.11.25)
- columnize (>= 0.3.1)
- linecache19 (>= 0.5.11)
- ruby_core_source (>= 0.1.4)
- ruby-debug19 (0.11.6)
- columnize (>= 0.3.1)
- linecache19 (>= 0.5.11)
- ruby-debug-base19 (>= 0.11.19)
- ruby-msg (1.5.0)
+ ruby-msg (1.5.1)
ruby-ole (>= 1.2.8)
vpim (>= 0.360)
- ruby-ole (1.2.11.3)
- ruby_core_source (0.1.5)
- archive-tar-minitar (>= 0.5.2)
- sass (3.2.1)
+ ruby-ole (1.2.11.6)
+ sass (3.2.9)
simplecov (0.7.1)
multi_json (~> 1.0)
simplecov-html (~> 0.7.1)
simplecov-html (0.7.1)
- sinatra (1.2.8)
- rack (~> 1.1)
- tilt (>= 1.2.2, < 2.0)
+ sinatra (1.3.3)
+ rack (~> 1.3, >= 1.3.6)
+ rack-protection (~> 1.2)
+ tilt (~> 1.3, >= 1.3.3)
skinny (0.2.3)
eventmachine (~> 1.0.0)
thin (~> 1.5.0)
- sqlite3 (1.3.6)
- sqlite3-ruby (1.3.3)
- sqlite3 (>= 1.3.3)
+ spork (1.0.0rc3)
+ spork-rails (3.2.1)
+ rails (>= 3.0.0, < 3.3.0)
+ spork (>= 1.0rc0)
+ sprockets (2.0.4)
+ hike (~> 1.2)
+ rack (~> 1.0)
+ tilt (~> 1.1, != 1.3.0)
+ sqlite3 (1.3.7)
syslog_protocol (0.9.2)
- test-unit (1.2.3)
- hoe (>= 1.5.1)
- thin (1.5.0)
+ text (1.2.1)
+ thin (1.5.1)
daemons (>= 1.0.9)
eventmachine (>= 0.12.6)
rack (>= 1.0.0)
- thor (0.17.0)
- tilt (1.3.3)
- treetop (1.4.11)
+ thor (0.14.6)
+ tilt (1.4.1)
+ treetop (1.4.12)
polyglot
polyglot (>= 0.3.1)
+ tzinfo (0.3.37)
vpim (0.695)
- will_paginate (2.3.16)
+ webrat (0.7.3)
+ nokogiri (>= 1.2.0)
+ rack (>= 1.0)
+ rack-test (>= 0.5.3)
+ will_paginate (3.0.4)
xapian-full-alaveteli (1.2.9.5)
- xml-simple (1.1.1)
+ xml-simple (1.1.2)
zip (2.0.2)
PLATFORMS
ruby
DEPENDENCIES
+ acts_as_versioned!
annotate
bootstrap-sass
capistrano
+ charlock_holmes
compass
coveralls
- erubis
+ debugger
+ dynamic_form
+ exception_notification
fakeweb
- fast_gettext (>= 0.6.0)
+ fast_gettext
fastercsv (>= 1.5.5)
- gettext (~> 2.3.3)
- gettext_i18n_rails (>= 0.7.1)
+ gettext
+ gettext_i18n_rails
+ globalize3!
json
- locale (>= 2.0.5)
+ locale
mahoro
- mail
mailcatcher
- memcache-client
net-http-local
net-purge
newrelic_rpm
pg
- rack (~> 1.1.0)
- rails!
+ rack
+ rails (= 3.1.12)
+ rails-i18n
rake (= 0.9.2.2)
rdoc
recaptcha (~> 0.3.1)
rmagick
- routing-filter (~> 0.2.4)
- rspec-rails (~> 1.3.4)
+ routing-filter
+ rspec-rails
ruby-debug
- ruby-debug19
ruby-msg (~> 1.5.0)
+ spork-rails
syslog_protocol
- test-unit (~> 1.2.3)
vpim
- will_paginate (~> 2.3.11)
+ webrat
+ will_paginate
xapian-full-alaveteli (~> 1.2.9.5)
xml-simple
zip
diff --git a/LICENSE.txt b/LICENSE.txt
index f359b01d3..23976d86e 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -1,7 +1,7 @@
mySociety.org Software Licensing
-Most of the software in this directory is Copyright (c) 2004-2008 UK
-Citizens Online Democracy.
+Most of the software in this directory is Copyright (c) 2004-2013 UK
+Citizens Online Democracy.
Unless otherwise stated in particular files or directories, this
software is free software; you can redistribute it and/or modify it
@@ -9,7 +9,7 @@ under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
-Note in particular,
+Note in particular,
- acts_as_xapian in vendor/plugins/ is licensed with an MIT license.
Can you explain briefly what the GNU Affero GPL is? We offer the
@@ -28,13 +28,13 @@ WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Affero General Public License for more details.
-Information about the GNU Affero GPL:
+Information about the GNU Affero GPL:
http://www.fsf.org/licensing/licenses/agpl-3.0.html
-A copy of the GNU Affero General Public License follows.
+A copy of the GNU Affero General Public License follows.
-----------------------------------------------------------------------
-
+
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
diff --git a/README-rails.txt b/README-rails.txt
deleted file mode 100644
index 025ee5e84..000000000
--- a/README-rails.txt
+++ /dev/null
@@ -1,188 +0,0 @@
-== Welcome to Rails
-
-Rails is a web-application and persistence framework that includes everything
-needed to create database-backed web-applications according to the
-Model-View-Control pattern of separation. This pattern splits the view (also
-called the presentation) into "dumb" templates that are primarily responsible
-for inserting pre-built data in between HTML tags. The model contains the
-"smart" domain objects (such as Account, Product, Person, Post) that holds all
-the business logic and knows how to persist themselves to a database. The
-controller handles the incoming requests (such as Save New Account, Update
-Product, Show Post) by manipulating the model and directing data to the view.
-
-In Rails, the model is handled by what's called an object-relational mapping
-layer entitled Active Record. This layer allows you to present the data from
-database rows as objects and embellish these data objects with business logic
-methods. You can read more about Active Record in
-link:files/vendor/rails/activerecord/README.html.
-
-The controller and view are handled by the Action Pack, which handles both
-layers by its two parts: Action View and Action Controller. These two layers
-are bundled in a single package due to their heavy interdependence. This is
-unlike the relationship between the Active Record and Action Pack that is much
-more separate. Each of these packages can be used independently outside of
-Rails. You can read more about Action Pack in
-link:files/vendor/rails/actionpack/README.html.
-
-
-== Getting started
-
-1. At the command prompt, start a new rails application using the rails command
- and your application name. Ex: rails myapp
- (If you've downloaded rails in a complete tgz or zip, this step is already done)
-2. Change directory into myapp and start the web server: <tt>script/server</tt> (run with --help for options)
-3. Go to http://localhost:3000/ and get "Welcome aboard: You’re riding the Rails!"
-4. Follow the guidelines to start developing your application
-
-
-== Web Servers
-
-By default, Rails will try to use Mongrel and lighttpd if they are installed, otherwise
-Rails will use the WEBrick, the webserver that ships with Ruby. When you run script/server,
-Rails will check if Mongrel exists, then lighttpd and finally fall back to WEBrick. This ensures
-that you can always get up and running quickly.
-
-Mongrel is a Ruby-based webserver with a C-component (which requires compilation) that is
-suitable for development and deployment of Rails applications. If you have Ruby Gems installed,
-getting up and running with mongrel is as easy as: <tt>gem install mongrel</tt>.
-More info at: http://mongrel.rubyforge.org
-
-If Mongrel is not installed, Rails will look for lighttpd. It's considerably faster than
-Mongrel and WEBrick and also suited for production use, but requires additional
-installation and currently only works well on OS X/Unix (Windows users are encouraged
-to start with Mongrel). We recommend version 1.4.11 and higher. You can download it from
-http://www.lighttpd.net.
-
-And finally, if neither Mongrel or lighttpd are installed, Rails will use the built-in Ruby
-web server, WEBrick. WEBrick is a small Ruby web server suitable for development, but not
-for production.
-
-But of course its also possible to run Rails on any platform that supports FCGI.
-Apache, LiteSpeed, IIS are just a few. For more information on FCGI,
-please visit: http://wiki.rubyonrails.com/rails/pages/FastCGI
-
-
-== Debugging Rails
-
-Have "tail -f" commands running on the server.log and development.log. Rails will
-automatically display debugging and runtime information to these files. Debugging
-info will also be shown in the browser on requests from 127.0.0.1.
-
-
-== Breakpoints
-
-Breakpoint support is available through the script/breakpointer client. This
-means that you can break out of execution at any point in the code, investigate
-and change the model, AND then resume execution! Example:
-
- class WeblogController < ActionController::Base
- def index
- @posts = Post.find(:all)
- breakpoint "Breaking out from the list"
- end
- end
-
-So the controller will accept the action, run the first line, then present you
-with a IRB prompt in the breakpointer window. Here you can do things like:
-
-Executing breakpoint "Breaking out from the list" at .../webrick_server.rb:16 in 'breakpoint'
-
- >> @posts.inspect
- => "[#<Post:0x14a6be8 @attributes={\"title\"=>nil, \"body\"=>nil, \"id\"=>\"1\"}>,
- #<Post:0x14a6620 @attributes={\"title\"=>\"Rails you know!\", \"body\"=>\"Only ten..\", \"id\"=>\"2\"}>]"
- >> @posts.first.title = "hello from a breakpoint"
- => "hello from a breakpoint"
-
-...and even better is that you can examine how your runtime objects actually work:
-
- >> f = @posts.first
- => #<Post:0x13630c4 @attributes={"title"=>nil, "body"=>nil, "id"=>"1"}>
- >> f.
- Display all 152 possibilities? (y or n)
-
-Finally, when you're ready to resume execution, you press CTRL-D
-
-
-== Console
-
-You can interact with the domain model by starting the console through <tt>script/console</tt>.
-Here you'll have all parts of the application configured, just like it is when the
-application is running. You can inspect domain models, change values, and save to the
-database. Starting the script without arguments will launch it in the development environment.
-Passing an argument will specify a different environment, like <tt>script/console production</tt>.
-
-To reload your controllers and models after launching the console run <tt>reload!</tt>
-
-To reload your controllers and models after launching the console run <tt>reload!</tt>
-
-
-
-== Description of contents
-
-app
- Holds all the code that's specific to this particular application.
-
-app/controllers
- Holds controllers that should be named like weblogs_controller.rb for
- automated URL mapping. All controllers should descend from ApplicationController
- which itself descends from ActionController::Base.
-
-app/models
- Holds models that should be named like post.rb.
- Most models will descend from ActiveRecord::Base.
-
-app/views
- Holds the template files for the view that should be named like
- weblogs/index.rhtml for the WeblogsController#index action. All views use eRuby
- syntax.
-
-app/views/layouts
- Holds the template files for layouts to be used with views. This models the common
- header/footer method of wrapping views. In your views, define a layout using the
- <tt>layout :default</tt> and create a file named default.rhtml. Inside default.rhtml,
- call <% yield %> to render the view using this layout.
-
-app/helpers
- Holds view helpers that should be named like weblogs_helper.rb. These are generated
- for you automatically when using script/generate for controllers. Helpers can be used to
- wrap functionality for your views into methods.
-
-config
- Configuration files for the Rails environment, the routing map, the database, and other dependencies.
-
-components
- Self-contained mini-applications that can bundle together controllers, models, and views.
-
-db
- Contains the database schema in schema.rb. db/migrate contains all
- the sequence of Migrations for your schema.
-
-doc
- This directory is where your application documentation will be stored when generated
- using <tt>rake doc:app</tt>
-
-lib
- Application specific libraries. Basically, any kind of custom code that doesn't
- belong under controllers, models, or helpers. This directory is in the load path.
-
-public
- The directory available for the web server. Contains subdirectories for images, stylesheets,
- and javascripts. Also contains the dispatchers and the default HTML files. This should be
- set as the DOCUMENT_ROOT of your web server.
-
-script
- Helper scripts for automation and generation.
-
-spec
- Unit and functional specifications along with fixtures, using rspec. We use
- this instead of test.
-
-test
- DEPRECATED for this project, see 'spec' instead. Unit and functional tests
- along with fixtures. When using the script/generate scripts, template test
- files will be generated for you and placed in this directory.
-
-vendor
- External libraries that the application depends on. Also includes the plugins subdirectory.
- This directory is in the load path.
-
diff --git a/README.md b/README.md
index 71c6b096f..c7e963fdd 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# Welcome to Alaveteli!
-[![Build Status](https://secure.travis-ci.org/mysociety/alaveteli.png)](http://travis-ci.org/mysociety/alaveteli) [![Dependency Status](https://gemnasium.com/mysociety/alaveteli.png)](https://gemnasium.com/mysociety/alaveteli) [![Coverage Status](https://coveralls.io/repos/mysociety/alaveteli/badge.png?branch=master)](https://coveralls.io/r/mysociety/alaveteli)
+[![Build Status](https://secure.travis-ci.org/mysociety/alaveteli.png)](http://travis-ci.org/mysociety/alaveteli) [![Dependency Status](https://gemnasium.com/mysociety/alaveteli.png)](https://gemnasium.com/mysociety/alaveteli) [![Coverage Status](https://coveralls.io/repos/mysociety/alaveteli/badge.png?branch=master)](https://coveralls.io/r/mysociety/alaveteli) [![Code Climate](https://codeclimate.com/github/mysociety/alaveteli.png)](https://codeclimate.com/github/mysociety/alaveteli)
This is an open source project to create a standard, internationalised
platform for making Freedom of Information (FOI) requests in different
@@ -24,5 +24,21 @@ There's background information and a more documentation on
of useful information (including a blog) on
[the project website](http://alaveteli.org)
-Looking for the latest stable release? It's on the
+## How to contribute
+
+If you find what looks like a bug:
+
+* Check the [GitHub issue tracker](http://github.com/mysociety/alaveteli/issues/)
+ to see if anyone else has reported issue.
+* If you don't see anything, create an issue with information on how to reproduce it.
+
+If you want to contribute an enhancement or a fix:
+
+* Fork the project on GitHub.
+* Make your changes with tests.
+* Commit the changes without making changes to any files that aren't related to your enhancement or fix.
+* Send a pull request.
+
+Looking for the latest stable release? It's on the
[master branch](https://github.com/mysociety/alaveteli/tree/master).
+
diff --git a/Rakefile b/Rakefile
index eb9ec718b..d9a53fc69 100644
--- a/Rakefile
+++ b/Rakefile
@@ -1,11 +1,7 @@
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
-require(File.join(File.dirname(__FILE__), 'config', 'boot'))
-
+require File.expand_path('../config/application', __FILE__)
require 'rake'
-require 'rake/testtask'
-require 'rdoc/task'
-
-require 'tasks/rails'
-
+Alaveteli::Application.load_tasks
+Dir[File.join(File.dirname(__FILE__),'commonlib','rblib','tests','*.rake')].each { |file| load(file) }
diff --git a/app/controllers/admin_censor_rule_controller.rb b/app/controllers/admin_censor_rule_controller.rb
index f6abc70df..6f79b5ba1 100644
--- a/app/controllers/admin_censor_rule_controller.rb
+++ b/app/controllers/admin_censor_rule_controller.rb
@@ -2,7 +2,7 @@
# For modifying requests.
#
# Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
class AdminCensorRuleController < AdminController
def new
@@ -10,7 +10,7 @@ class AdminCensorRuleController < AdminController
@info_request = InfoRequest.find(params[:info_request_id])
end
if params[:user_id]
- @user = User.find(params[:user_id])
+ @censor_user = User.find(params[:user_id])
end
end
diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb
index d93e68dab..0bccd3358 100644
--- a/app/controllers/admin_controller.rb
+++ b/app/controllers/admin_controller.rb
@@ -2,7 +2,7 @@
# All admin controllers are dervied from this.
#
# Copyright (c) 2009 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
require 'fileutils'
@@ -51,7 +51,7 @@ class AdminController < ApplicationController
# For administration interface, return display name of authenticated user
def admin_current_user
- if Configuration::skip_admin_auth
+ if AlaveteliConfiguration::skip_admin_auth
admin_http_auth_user
else
session[:admin_name]
@@ -74,12 +74,12 @@ class AdminController < ApplicationController
end
def authenticate
- if Configuration::skip_admin_auth
+ if AlaveteliConfiguration::skip_admin_auth
session[:using_admin] = 1
return
else
if session[:using_admin].nil? || session[:admin_name].nil?
- if params[:emergency].nil?
+ if params[:emergency].nil? || AlaveteliConfiguration::disable_emergency_user
if authenticated?(
:web => _("To log into the administrative interface"),
:email => _("Then you can log into the administrative interface"),
@@ -89,7 +89,6 @@ class AdminController < ApplicationController
session[:using_admin] = 1
session[:admin_name] = @user.url_name
else
-
session[:using_admin] = nil
session[:user_id] = nil
session[:admin_name] = nil
@@ -98,7 +97,7 @@ class AdminController < ApplicationController
end
else
authenticate_or_request_with_http_basic do |user_name, password|
- if user_name == Configuration::admin_username && password == Configuration::admin_password
+ if user_name == AlaveteliConfiguration::admin_username && password == AlaveteliConfiguration::admin_password
session[:using_admin] = 1
session[:admin_name] = user_name
else
diff --git a/app/controllers/admin_general_controller.rb b/app/controllers/admin_general_controller.rb
index 800678787..b64fcac3e 100644
--- a/app/controllers/admin_general_controller.rb
+++ b/app/controllers/admin_general_controller.rb
@@ -2,7 +2,7 @@
# Controller for main admin pages.
#
# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
class AdminGeneralController < AdminController
skip_before_filter :authenticate, :only => :admin_js
diff --git a/app/controllers/admin_public_body_controller.rb b/app/controllers/admin_public_body_controller.rb
index bb5e98852..52b56eda2 100644
--- a/app/controllers/admin_public_body_controller.rb
+++ b/app/controllers/admin_public_body_controller.rb
@@ -2,7 +2,7 @@
# Controller for editing public bodies from the admin interface.
#
# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
require "public_body_categories"
@@ -14,7 +14,7 @@ class AdminPublicBodyController < AdminController
def _lookup_query_internal
@locale = self.locale_from_params()
- PublicBody.with_locale(@locale) do
+ I18n.with_locale(@locale) do
@query = params[:query]
if @query == ""
@query = nil
@@ -23,12 +23,10 @@ class AdminPublicBodyController < AdminController
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}'" :
+ @public_bodies = PublicBody.joins(:translations).where(@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
+ lower(public_body_translations.request_email) like lower('%'||?||'%' )) AND (public_body_translations.locale = '#{@locale}')", @query, @query, @query]).paginate :order => "public_body_translations.name", :page => @page, :per_page => 100
end
@public_bodies_by_tag = PublicBody.find_by_tag(@query)
end
@@ -75,7 +73,7 @@ class AdminPublicBodyController < AdminController
def show
@locale = self.locale_from_params()
- PublicBody.with_locale(@locale) do
+ I18n.with_locale(@locale) do
@public_body = PublicBody.find(params[:id])
render
end
@@ -87,7 +85,7 @@ class AdminPublicBodyController < AdminController
end
def create
- PublicBody.with_locale(I18n.default_locale) do
+ I18n.with_locale(I18n.default_locale) do
params[:public_body][:last_edit_editor] = admin_current_user()
@public_body = PublicBody.new(params[:public_body])
if @public_body.save
@@ -106,7 +104,7 @@ class AdminPublicBodyController < AdminController
end
def update
- PublicBody.with_locale(I18n.default_locale) do
+ I18n.with_locale(I18n.default_locale) do
params[:public_body][:last_edit_editor] = admin_current_user()
@public_body = PublicBody.find(params[:id])
if @public_body.update_attributes(params[:public_body])
@@ -120,7 +118,7 @@ class AdminPublicBodyController < AdminController
def destroy
@locale = self.locale_from_params()
- PublicBody.with_locale(@locale) do
+ I18n.with_locale(@locale) do
public_body = PublicBody.find(params[:id])
if public_body.info_requests.size > 0
diff --git a/app/controllers/admin_request_controller.rb b/app/controllers/admin_request_controller.rb
index d84b44b6f..66989ea93 100644
--- a/app/controllers/admin_request_controller.rb
+++ b/app/controllers/admin_request_controller.rb
@@ -2,7 +2,7 @@
# Controller for viewing FOI requests from the admin interface.
#
# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
require 'ostruct'
@@ -14,25 +14,14 @@ class AdminRequestController < AdminController
def list
@query = params[:query]
- @info_requests = InfoRequest.paginate :order => "created_at desc",
+ if @query
+ info_requests = InfoRequest.where(["lower(title) like lower('%'||?||'%')", @query])
+ else
+ info_requests = InfoRequest
+ end
+ @info_requests = info_requests.paginate :order => "created_at desc",
:page => params[:page],
- :per_page => 100,
- :conditions => @query.nil? ? nil : ["lower(title) like lower('%'||?||'%')", @query]
- end
-
- def list_old_unclassified
- @info_requests = WillPaginate::Collection.create((params[:page] or 1), 50) do |pager|
- info_requests = InfoRequest.find_old_unclassified(:conditions => ["prominence = 'normal'"],
- :limit => pager.per_page,
- :offset => pager.offset)
- # inject the result array into the paginated collection:
- pager.replace(info_requests)
-
- unless pager.total_entries
- # the pager didn't manage to guess the total count, do it manually
- pager.total_entries = InfoRequest.count_old_unclassified(:conditions => ["prominence = 'normal'"])
- end
- end
+ :per_page => 100
end
def show
@@ -40,11 +29,11 @@ class AdminRequestController < AdminController
# XXX is this *really* the only way to render a template to a
# variable, rather than to the response?
vars = OpenStruct.new(:name_to => @info_request.user_name,
- :name_from => Configuration::contact_name,
+ :name_from => AlaveteliConfiguration::contact_name,
:info_request => @info_request, :reason => params[:reason],
- :info_request_url => 'http://' + Configuration::domain + request_path(@info_request),
+ :info_request_url => 'http://' + AlaveteliConfiguration::domain + request_url(@info_request),
:site_name => site_name)
- template = File.read(File.join(File.dirname(__FILE__), "..", "views", "admin_request", "hidden_user_explanation.rhtml"))
+ template = File.read(File.join(File.dirname(__FILE__), "..", "views", "admin_request", "hidden_user_explanation.html.erb"))
@request_hidden_user_explanation = ERB.new(template).result(vars.instance_eval { binding })
end
@@ -376,11 +365,11 @@ class AdminRequestController < AdminController
info_request.save!
if ! info_request.is_external?
- ContactMailer.deliver_from_admin_message(
+ ContactMailer.from_admin_message(
info_request.user,
subject,
params[:explanation].strip.html_safe
- )
+ ).deliver
flash[:notice] = _("Your message to {{recipient_user_name}} has been sent",:recipient_user_name=>CGI.escapeHTML(info_request.user.name))
else
flash[:notice] = _("This external request has been hidden")
diff --git a/app/controllers/admin_track_controller.rb b/app/controllers/admin_track_controller.rb
index 525c96782..085c9c6cc 100644
--- a/app/controllers/admin_track_controller.rb
+++ b/app/controllers/admin_track_controller.rb
@@ -2,14 +2,18 @@
# Show email alerts / RSS feeds from admin interface.
#
# Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
class AdminTrackController < AdminController
def list
@query = params[:query]
- @admin_tracks = TrackThing.paginate :order => "created_at desc", :page => params[:page], :per_page => 100,
- :conditions => @query.nil? ? nil : ["lower(track_query) like lower('%'||?||'%')", @query ]
- @popular = ActiveRecord::Base.connection.select_all("select count(*) as count, title, info_request_id from track_things join info_requests on info_request_id = info_requests.id where info_request_id is not null group by info_request_id, title order by count desc limit 10;")
+ if @query
+ track_things = TrackThing.where(["lower(track_query) like lower('%'||?||'%')", @query])
+ else
+ track_things = TrackThing
+ end
+ @admin_tracks = track_things.paginate :order => "created_at desc", :page => params[:page], :per_page => 100
+ @popular = ActiveRecord::Base.connection.select_all("select count(*) as count, title, info_request_id from track_things join info_requests on info_request_id = info_requests.id where info_request_id is not null group by info_request_id, title order by count desc limit 10;")
end
private
diff --git a/app/controllers/admin_user_controller.rb b/app/controllers/admin_user_controller.rb
index feffa208e..929b93e0e 100644
--- a/app/controllers/admin_user_controller.rb
+++ b/app/controllers/admin_user_controller.rb
@@ -2,7 +2,7 @@
# Controller for viewing user accounts from the admin interface.
#
# Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
class AdminUserController < AdminController
def index
@@ -12,9 +12,13 @@ class AdminUserController < AdminController
def list
@query = params[:query]
- @admin_users = User.paginate :order => "name", :page => params[:page], :per_page => 100,
- :conditions => @query.nil? ? nil : ["lower(name) like lower('%'||?||'%') or
- lower(email) like lower('%'||?||'%')", @query, @query]
+ if @query
+ users = User.where(["lower(name) like lower('%'||?||'%') or
+ lower(email) like lower('%'||?||'%')", @query, @query])
+ else
+ users = User
+ end
+ @admin_users = users.paginate :order => "name", :page => params[:page], :per_page => 100
end
def list_banned
diff --git a/app/controllers/api_controller.rb b/app/controllers/api_controller.rb
index 5d8ceb888..49b226e4b 100644
--- a/app/controllers/api_controller.rb
+++ b/app/controllers/api_controller.rb
@@ -83,7 +83,7 @@ class ApiController < ApplicationController
direction = json["direction"]
body = json["body"]
- sent_at_str = json["sent_at"]
+ sent_at = json["sent_at"]
errors = []
@@ -107,12 +107,6 @@ class ApiController < ApplicationController
errors << "The 'body' is empty"
end
- begin
- sent_at = Time.iso8601(sent_at_str)
- rescue ArgumentError
- errors << "Failed to parse 'sent_at' field as ISO8601 time: #{sent_at_str}"
- end
-
if direction == "request" && !attachments.nil?
errors << "You cannot attach files to messages in the 'request' direction"
end
@@ -155,7 +149,8 @@ class ApiController < ApplicationController
)
end
- mail = RequestMailer.create_external_response(request, body, sent_at, attachment_hashes)
+ mail = RequestMailer.external_response(request, body, sent_at, attachment_hashes)
+
request.receive(mail, mail.encoded, true)
end
render :json => {
@@ -248,6 +243,6 @@ class ApiController < ApplicationController
private
def make_url(*args)
- "http://" + Configuration::domain + "/" + args.join("/")
+ "http://" + AlaveteliConfiguration::domain + "/" + args.join("/")
end
end
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index f3deeb64a..3a1ec95cc 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -5,20 +5,22 @@
# will be available for all controllers.
#
# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
require 'open-uri'
class ApplicationController < ActionController::Base
class PermissionDenied < StandardError
end
+ class RouteNotFound < StandardError
+ end
+ # assign our own handler method for non-local exceptions
+ rescue_from Exception, :with => :render_exception
+
# Standard headers, footers and navigation for whole site
layout "default"
include FastGettext::Translation # make functions like _, n_, N_ etc available)
- # Send notification email on exceptions
- include ExceptionNotification::Notifiable
-
# Note: a filter stops the chain if it redirects or renders something
before_filter :authentication_check
before_filter :set_gettext_locale
@@ -27,9 +29,6 @@ class ApplicationController < ActionController::Base
before_filter :set_vary_header
before_filter :set_popup_banner
- # scrub sensitive parameters from the logs
- filter_parameter_logging :password
-
def set_vary_header
response.headers['Vary'] = 'Cookie'
end
@@ -54,12 +53,12 @@ class ApplicationController < ActionController::Base
end
def set_gettext_locale
- if Configuration::include_default_locale_in_urls == false
+ if AlaveteliConfiguration::include_default_locale_in_urls == false
params_locale = params[:locale] ? params[:locale] : I18n.default_locale
else
params_locale = params[:locale]
end
- if Configuration::use_default_browser_language
+ if AlaveteliConfiguration::use_default_browser_language
requested_locale = params_locale || session[:locale] || cookies[:locale] || request.env['HTTP_ACCEPT_LANGUAGE'] || I18n.default_locale
else
requested_locale = params_locale || session[:locale] || cookies[:locale] || I18n.default_locale
@@ -74,9 +73,6 @@ class ApplicationController < ActionController::Base
end
end
- # scrub sensitive parameters from the logs
- filter_parameter_logging :password
-
helper_method :locale_from_params
# Help work out which request causes RAM spike.
@@ -92,7 +88,7 @@ class ApplicationController < ActionController::Base
# egrep "CONSUME MEMORY: [0-9]{7} KB" production.log
around_filter :record_memory
def record_memory
- record_memory = Configuration::debug_record_memory
+ record_memory = AlaveteliConfiguration::debug_record_memory
if record_memory
logger.info "Processing request for #{request.url} with Rails process #{Process.pid}"
File.read("/proc/#{Process.pid}/status").match(/VmRSS:\s+(\d+)/)
@@ -120,52 +116,33 @@ class ApplicationController < ActionController::Base
end
end
- # Override default error handler, for production sites.
- def rescue_action_in_public(exception)
- # Looks for before_filters called something like `set_view_paths_{themename}`. These
- # are set by the themes.
- # Normally, this is called by the theme itself in a
- # :before_filter, but when there's an error, this doesn't
- # happen. By calling it here, we can ensure error pages are
- # still styled according to the theme.
- ActionController::Base.before_filters.select{|f| f.to_s =~ /set_view_paths/}.each do |f|
- self.send(f)
- end
- # Make sure expiry time for session is set (before_filters are
- # otherwise missed by this override)
- session_remember_me
+ def render_exception(exception)
- # Make sure the locale is set correctly too
- set_gettext_locale
+ # In development, or the admin interface, or for a local request, let Rails handle the exception
+ # with its stack trace templates. Local requests in testing are a special case so that we can
+ # test this method - there we use consider_all_requests_local to control behaviour.
+ if Rails.application.config.consider_all_requests_local || local_request? ||
+ (request.local? && !Rails.env.test?)
+ raise exception
+ end
+ @exception_backtrace = exception.backtrace.join("\n")
+ @exception_class = exception.class.to_s
+ @exception_message = exception.message
case exception
- when ActiveRecord::RecordNotFound, ActionController::UnknownAction, ActionController::RoutingError
+ when ActiveRecord::RecordNotFound, RouteNotFound
@status = 404
when PermissionDenied
@status = 403
else
+ message = "\n#{@exception_class} (#{@exception_message}):\n"
+ backtrace = Rails.backtrace_cleaner.clean(exception.backtrace, :silent)
+ message << " " << backtrace.join("\n ")
+ Rails.logger.fatal("#{message}\n\n")
+ ExceptionNotifier::Notifier.exception_notification(request.env, exception).deliver
@status = 500
- notify_about_exception exception
end
- # Display user appropriate error message
- @exception_backtrace = exception.backtrace.join("\n")
- @exception_class = exception.class.to_s
- @exception_message = exception.message
- render :template => "general/exception_caught.rhtml", :status => @status
- end
-
- # For development sites.
- alias original_rescue_action_locally rescue_action_locally
- def rescue_action_locally(exception)
- # Make sure expiry time for session is set (before_filters are
- # otherwise missed by this override)
- session_remember_me
-
- # Make sure the locale is set correctly too
- set_gettext_locale
-
- # Display default, detailed error for developers
- original_rescue_action_locally(exception)
+ render :template => "general/exception_caught", :status => @status
end
def local_request?
@@ -175,6 +152,7 @@ class ApplicationController < ActionController::Base
# Called from test code, is a mimic of UserController.confirm, for use in following email
# links when in controller tests (though we also have full integration tests that
# can work over multiple controllers)
+ # TODO: Move this to the tests. It shouldn't be here
def test_code_redirect_by_email_token(token, controller_example_group)
post_redirect = PostRedirect.find_by_email_token(token)
if post_redirect.nil?
@@ -182,7 +160,7 @@ class ApplicationController < ActionController::Base
end
session[:user_id] = post_redirect.user.id
session[:user_circumstance] = post_redirect.circumstance
- params = controller_example_group.params_from(:get, post_redirect.local_part_uri)
+ params = Rails.application.routes.recognize_path(post_redirect.local_part_uri)
params.merge(post_redirect.post_params)
controller_example_group.get params[:action], params
end
@@ -258,7 +236,7 @@ class ApplicationController < ActionController::Base
# Check the user is logged in
def authenticated?(reason_params)
unless session[:user_id]
- post_redirect = PostRedirect.new(:uri => request.request_uri, :post_params => params,
+ post_redirect = PostRedirect.new(:uri => request.fullpath, :post_params => params,
:reason_params => reason_params)
post_redirect.save!
# 'modal' controls whether the sign-in form will be displayed in the typical full-blown
@@ -346,10 +324,10 @@ class ApplicationController < ActionController::Base
#
def check_read_only
- if !Configuration::read_only.empty?
+ if !AlaveteliConfiguration::read_only.empty?
flash[:notice] = _("<p>{{site_name}} is currently in maintenance. You can only view existing requests. You cannot make new ones, add followups or annotations, or otherwise change the database.</p> <p>{{read_only}}</p>",
:site_name => site_name,
- :read_only => Configuration::read_only)
+ :read_only => AlaveteliConfiguration::read_only)
redirect_to frontpage_url
end
@@ -380,12 +358,15 @@ class ApplicationController < ActionController::Base
# Peform the search
@per_page = per_page
- if this_page.nil?
- @page = get_search_page_from_params
- else
- @page = this_page
- end
- result = InfoRequest.full_search(models, @query, order, ascending, collapse, @per_page, @page)
+ @page = this_page || get_search_page_from_params
+
+ result = ActsAsXapian::Search.new(models, @query,
+ :offset => (@page - 1) * @per_page,
+ :limit => @per_page,
+ :sort_by_prefix => order,
+ :sort_by_ascending => ascending,
+ :collapse_by_prefix => collapse
+ )
result.results # Touch the results to load them, otherwise accessing them from the view
# might fail later if the database has subsequently been reopened.
return result
@@ -552,10 +533,10 @@ class ApplicationController < ActionController::Base
def country_from_ip
country = ""
- if !Configuration::gaze_url.empty?
- country = quietly_try_to_open("#{Configuration::gaze_url}/gaze-rest?f=get_country_from_ip;ip=#{request.remote_ip}")
+ if !AlaveteliConfiguration::gaze_url.empty?
+ country = quietly_try_to_open("#{AlaveteliConfiguration::gaze_url}/gaze-rest?f=get_country_from_ip;ip=#{request.remote_ip}")
end
- country = Configuration::iso_country_code if country.empty?
+ country = AlaveteliConfiguration::iso_country_code if country.empty?
return country
end
diff --git a/app/controllers/comment_controller.rb b/app/controllers/comment_controller.rb
index ed249d6cc..d4b17e9d2 100644
--- a/app/controllers/comment_controller.rb
+++ b/app/controllers/comment_controller.rb
@@ -2,7 +2,7 @@
# Show annotations upon a request or other object.
#
# Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
class CommentController < ApplicationController
before_filter :check_read_only, :only => [ :new ]
diff --git a/app/controllers/general_controller.rb b/app/controllers/general_controller.rb
index f6a46458e..52b4b3e0e 100644
--- a/app/controllers/general_controller.rb
+++ b/app/controllers/general_controller.rb
@@ -3,14 +3,7 @@
# particular model.
#
# Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
-
-begin
- require 'xmlsimple'
-rescue LoadError
- # Debian maintainers put their xmlsimple in a different location :(
- require 'lib/xmlsimple'
-end
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
require 'open-uri'
@@ -21,11 +14,11 @@ class GeneralController < ApplicationController
medium_cache
# get some example searches and public bodies to display
# either from config, or based on a (slow!) query if not set
- body_short_names = Configuration::frontpage_publicbody_examples.split(/\s*;\s*/).map{|s| "'%s'" % s.gsub(/'/, "''") }.join(", ")
+ body_short_names = AlaveteliConfiguration::frontpage_publicbody_examples.split(/\s*;\s*/).map{|s| "'%s'" % s.gsub(/'/, "''") }.join(", ")
@locale = self.locale_from_params()
locale_condition = 'public_body_translations.locale = ?'
conditions = [locale_condition, @locale]
- PublicBody.with_locale(@locale) do
+ I18n.with_locale(@locale) do
if body_short_names.empty?
# This is too slow
@popular_bodies = PublicBody.visible.find(:all,
@@ -71,7 +64,7 @@ class GeneralController < ApplicationController
def blog
medium_cache
@feed_autodetect = []
- @feed_url = Configuration::blog_feed
+ @feed_url = AlaveteliConfiguration::blog_feed
separator = @feed_url.include?('?') ? '&' : '?'
@feed_url = "#{@feed_url}#{separator}lang=#{self.locale_from_params()}"
@blog_items = []
@@ -84,7 +77,7 @@ class GeneralController < ApplicationController
@feed_autodetect = [{:url => @feed_url, :title => "#{site_name} blog"}]
end
end
- @twitter_user = Configuration::twitter_username
+ @twitter_user = AlaveteliConfiguration::twitter_username
end
# Just does a redirect from ?query= search to /query
@@ -109,7 +102,7 @@ class GeneralController < ApplicationController
def search
# XXX Why is this so complicated with arrays and stuff? Look at the route
# in config/routes.rb for comments.
- combined = params[:combined]
+ combined = params[:combined].split("/")
@sortby = nil
@bodies = @requests = @users = true
if combined.size > 0 && (['advanced'].include?(combined[-1]))
@@ -160,7 +153,7 @@ class GeneralController < ApplicationController
# structured query which should show newest first, rather than a free text search
# where we want most relevant as default.
begin
- dummy_query = ::ActsAsXapian::Search.new([InfoRequestEvent], @query, :limit => 1)
+ dummy_query = ActsAsXapian::Search.new([InfoRequestEvent], @query, :limit => 1)
rescue => e
flash[:error] = "Your query was not quite right. " + CGI.escapeHTML(e.to_str)
redirect_to search_url("")
@@ -176,10 +169,8 @@ class GeneralController < ApplicationController
# Query each type separately for separate display (XXX we are calling
# perform_search multiple times and it clobbers per_page for each one,
# so set as separate var)
- requests_per_page = 25
- if params[:requests_per_page]
- requests_per_page = params[:requests_per_page].to_i
- end
+ requests_per_page = params[:requests_per_page] ? params[:requests_per_page].to_i : 25
+
@this_page_hits = @total_hits = @xapian_requests_hits = @xapian_bodies_hits = @xapian_users_hits = 0
if @requests
@xapian_requests = perform_search([InfoRequestEvent], @query, @sortby, 'request_collapse', requests_per_page)
@@ -218,16 +209,16 @@ class GeneralController < ApplicationController
@feed_autodetect = [ { :url => do_track_url(@track_thing, 'feed'), :title => @track_thing.params[:title_in_rss], :has_json => true } ]
end
- # Jump to a random request
- def random_request
- info_request = InfoRequest.random
- redirect_to request_url(info_request)
- end
-
def custom_css
long_cache
@locale = self.locale_from_params()
render(:layout => false, :content_type => 'text/css')
end
+
+ # Handle requests for non-existent URLs - will be handled by ApplicationController::render_exception
+ def not_found
+ raise RouteNotFound
+ end
+
end
diff --git a/app/controllers/help_controller.rb b/app/controllers/help_controller.rb
index 573abac63..9959df6d8 100644
--- a/app/controllers/help_controller.rb
+++ b/app/controllers/help_controller.rb
@@ -2,7 +2,7 @@
# Show information about one particular request.
#
# Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
class HelpController < ApplicationController
@@ -18,7 +18,7 @@ class HelpController < ApplicationController
end
def contact
- @contact_email = Configuration::contact_email
+ @contact_email = AlaveteliConfiguration::contact_email
# if they clicked remove for link to request/body, remove it
if params[:remove]
@@ -49,14 +49,14 @@ class HelpController < ApplicationController
end
@contact = ContactValidator.new(params[:contact])
if @contact.valid? && !params[:remove]
- ContactMailer.deliver_to_admin_message(
+ ContactMailer.to_admin_message(
params[:contact][:name],
params[:contact][:email],
params[:contact][:subject],
params[:contact][:message],
@user,
@last_request, @last_body
- )
+ ).deliver
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
diff --git a/app/controllers/holiday_controller.rb b/app/controllers/holiday_controller.rb
index 3101c07e3..efc20701d 100644
--- a/app/controllers/holiday_controller.rb
+++ b/app/controllers/holiday_controller.rb
@@ -2,7 +2,7 @@
# Calculate dates
#
# Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
class HolidayController < ApplicationController
@@ -12,7 +12,7 @@ class HolidayController < ApplicationController
def due_date
if params[:holiday]
@request_date = Date.strptime(params[:holiday]) or raise "Invalid date"
- @due_date = Holiday.due_date_from(@request_date, Configuration::reply_late_after_days, Configuration::working_or_calendar_days)
+ @due_date = Holiday.due_date_from(@request_date, AlaveteliConfiguration::reply_late_after_days, AlaveteliConfiguration::working_or_calendar_days)
@skipped = Holiday.all(
:conditions => [ 'day >= ? AND day <= ?',
@request_date.strftime("%F"), @due_date.strftime("%F")
diff --git a/app/controllers/public_body_controller.rb b/app/controllers/public_body_controller.rb
index aa6980b69..74ea043bb 100644
--- a/app/controllers/public_body_controller.rb
+++ b/app/controllers/public_body_controller.rb
@@ -3,7 +3,7 @@
# Show information about a public body.
#
# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
require 'fastercsv'
@@ -16,7 +16,7 @@ class PublicBodyController < ApplicationController
return
end
@locale = self.locale_from_params()
- PublicBody.with_locale(@locale) do
+ I18n.with_locale(@locale) do
@public_body = PublicBody.find_by_url_name_with_historic(params[:url_name])
raise ActiveRecord::RecordNotFound.new("None found") if @public_body.nil?
if @public_body.url_name.nil?
@@ -69,7 +69,7 @@ class PublicBodyController < ApplicationController
@public_body = PublicBody.find_by_url_name_with_historic(params[:url_name])
raise ActiveRecord::RecordNotFound.new("None found") if @public_body.nil?
- PublicBody.with_locale(self.locale_from_params()) do
+ I18n.with_locale(self.locale_from_params()) do
if params[:submitted_view_email]
if verify_recaptcha
flash.discard(:error)
@@ -127,11 +127,9 @@ class PublicBodyController < ApplicationController
@description = _("in the category ‘{{category_name}}’", :category_name=>category_name)
end
end
- PublicBody.with_locale(@locale) do
- @public_bodies = PublicBody.paginate(
- :order => "public_body_translations.name", :page => params[:page], :per_page => 100,
- :conditions => conditions,
- :joins => :translations
+ I18n.with_locale(@locale) do
+ @public_bodies = PublicBody.where(conditions).joins(:translations).order("public_body_translations.name").paginate(
+ :page => params[:page], :per_page => 100
)
render :template => "public_body/list"
end
diff --git a/app/controllers/reports_controller.rb b/app/controllers/reports_controller.rb
new file mode 100644
index 000000000..a1dd53125
--- /dev/null
+++ b/app/controllers/reports_controller.rb
@@ -0,0 +1,31 @@
+class ReportsController < ApplicationController
+ def create
+ @info_request = InfoRequest.find_by_url_title!(params[:request_id])
+ @reason = params[:reason]
+ @message = params[:message]
+ if @reason.empty?
+ flash[:error] = _("Please choose a reason")
+ render "new"
+ return
+ end
+
+ if !authenticated_user
+ flash[:notice] = _("You need to be logged in to report a request for administrator attention")
+ elsif @info_request.attention_requested
+ flash[:notice] = _("This request has already been reported for administrator attention")
+ else
+ @info_request.report!(@reason, @message, @user)
+ flash[:notice] = _("This request has been reported for administrator attention")
+ end
+ redirect_to request_url(@info_request)
+ end
+
+ def new
+ @info_request = InfoRequest.find_by_url_title!(params[:request_id])
+ if authenticated?(
+ :web => _("To report this request"),
+ :email => _("Then you can report the request '{{title}}'", :title => @info_request.title),
+ :email_subject => _("Report an offensive or unsuitable request"))
+ end
+ end
+end
diff --git a/app/controllers/request_controller.rb b/app/controllers/request_controller.rb
index fe948db19..6ca4e9f82 100644
--- a/app/controllers/request_controller.rb
+++ b/app/controllers/request_controller.rb
@@ -1,10 +1,10 @@
+# encoding: UTF-8
# app/controllers/request_controller.rb:
# Show information about one particular request.
#
# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
-require 'alaveteli_file_types'
require 'zip/zip'
require 'open-uri'
@@ -17,7 +17,7 @@ class RequestController < ApplicationController
@@custom_states_loaded = false
begin
- if ENV["RAILS_ENV"] != "test"
+ if !Rails.env.test?
require 'customstates'
include RequestControllerCustomStates
@@custom_states_loaded = true
@@ -28,7 +28,7 @@ class RequestController < ApplicationController
def select_authority
# Check whether we force the user to sign in right at the start, or we allow her
# to start filling the request anonymously
- if Configuration::force_registration_on_new_request && !authenticated?(
+ if AlaveteliConfiguration::force_registration_on_new_request && !authenticated?(
:web => _("To send your FOI request"),
:email => _("Then you'll be allowed to send FOI requests."),
:email_subject => _("Confirm your email address")
@@ -44,7 +44,7 @@ class RequestController < ApplicationController
end
def show
- if !Configuration::varnish_host.blank?
+ if !AlaveteliConfiguration::varnish_host.blank?
# If varnish is set up to accept PURGEs, then cache for a
# long time
long_cache
@@ -52,7 +52,7 @@ class RequestController < ApplicationController
medium_cache
end
@locale = self.locale_from_params()
- PublicBody.with_locale(@locale) do
+ I18n.with_locale(@locale) do
# Look up by old style numeric identifiers
if params[:url_title].match(/^[0-9]+$/)
@@ -101,7 +101,7 @@ class RequestController < ApplicationController
# ... requests that have similar imporant terms
begin
limit = 10
- @xapian_similar = ::ActsAsXapian::Similar.new([InfoRequestEvent], @info_request.info_request_events,
+ @xapian_similar = ActsAsXapian::Similar.new([InfoRequestEvent], @info_request.info_request_events,
:limit => limit, :collapse_by_prefix => 'request_collapse')
@xapian_similar_more = (@xapian_similar.matches_estimated > limit)
rescue
@@ -149,7 +149,7 @@ class RequestController < ApplicationController
render :template => 'request/hidden', :status => 410 # gone
return
end
- @xapian_object = ::ActsAsXapian::Similar.new([InfoRequestEvent], @info_request.info_request_events,
+ @xapian_object = ActsAsXapian::Similar.new([InfoRequestEvent], @info_request.info_request_events,
:offset => (@page - 1) * @per_page, :limit => @per_page, :collapse_by_prefix => 'request_collapse')
@matches_estimated = @xapian_object.matches_estimated
@show_no_more_than = (@matches_estimated > MAX_RESULTS) ? MAX_RESULTS : @matches_estimated
@@ -242,16 +242,19 @@ class RequestController < ApplicationController
# Read parameters in - first the public body (by URL name or id)
if params[:url_name]
if params[:url_name].match(/^[0-9]+$/)
- params[:info_request][:public_body_id] = params[:url_name]
+ params[:info_request][:public_body] = PublicBody.find(params[:url_name])
else
public_body = PublicBody.find_by_url_name_with_historic(params[:url_name])
raise ActiveRecord::RecordNotFound.new("None found") if public_body.nil? # XXX proper 404
- params[:info_request][:public_body_id] = public_body.id
+ params[:info_request][:public_body] = public_body
end
elsif params[:public_body_id]
- params[:info_request][:public_body_id] = params[:public_body_id]
+ params[:info_request][:public_body] = PublicBody.find(params[:public_body_id])
+ # Explicitly load the association as this isn't done automatically in newer Rails versions
+ elsif params[:info_request][:public_body_id]
+ params[:info_request][:public_body] = PublicBody.find(params[:info_request][:public_body_id])
end
- if !params[:info_request][:public_body_id]
+ if !params[:info_request][:public_body]
# compulsory to have a body by here, or go to front page which is start of process
redirect_to frontpage_url
return
@@ -321,9 +324,9 @@ 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=\"%s\">details</a>).</p>") % [help_privacy_path+"#email_address"]).html_safe;
+ 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=\"{{url}}\">details</a>).</p>", :url => (help_privacy_path+"#email_address").html_safe);
else
- 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"]).html_safe;
+ message += _("<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>", :url => (help_privacy_path+"#email_address").html_safe);
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>")
@@ -344,7 +347,7 @@ class RequestController < ApplicationController
end
if !authenticated?(
- :web => _("To send your FOI request"),
+ :web => _("To send your FOI request").to_str,
: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
)
@@ -368,99 +371,84 @@ class RequestController < ApplicationController
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>",:law_used_full=>@info_request.law_used_full,
- :late_number_of_days => Configuration::reply_late_after_days)
- redirect_to show_new_request_url(:url_title => @info_request.url_title)
+ :late_number_of_days => AlaveteliConfiguration::reply_late_after_days)
+ redirect_to show_new_request_path(:url_title => @info_request.url_title)
end
# Submitted to the describing state of messages form
def describe_state
- @info_request = InfoRequest.find(params[:id].to_i)
- set_last_request(@info_request)
-
- # If this isn't a form submit, go to the request page
- if params[:submitted_describe_state].nil?
- redirect_to request_url(@info_request)
- return
- end
+ info_request = InfoRequest.find(params[:id].to_i)
+ set_last_request(info_request)
# If this is an external request, go to the request page - we don't allow
# state change from the front end interface.
- if @info_request.is_external?
- redirect_to request_url(@info_request)
+ if info_request.is_external?
+ redirect_to request_url(info_request)
return
end
- @is_owning_user = @info_request.is_owning_user?(authenticated_user)
- @last_info_request_event_id = @info_request.last_event_id_needing_description
- @old_unclassified = @info_request.is_old_unclassified? && !authenticated_user.nil?
-
- # 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,
+ # Check authenticated, and parameters set.
+ unless Ability::can_update_request_state?(authenticated_user, info_request)
+ 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
- )
+ :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.")
- redirect_to request_url(@info_request)
+ redirect_to request_url(info_request)
return
end
- if params[:last_info_request_event_id].to_i != @last_info_request_event_id
+ if params[:last_info_request_event_id].to_i != info_request.last_event_id_needing_description
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)
+ redirect_to request_url(info_request)
+ return
+ end
+
+ described_state = params[:incoming_message][:described_state]
+ message = params[:incoming_message][:message]
+ # For requires_admin and error_message states we ask for an extra message to send to
+ # the administrators.
+ # If this message hasn't been included then ask for it
+ if ["error_message", "requires_admin"].include?(described_state) && message.nil?
+ redirect_to describe_state_message_url(:url_title => info_request.url_title, :described_state => described_state)
return
end
# Make the state change
- old_described_state = @info_request.described_state
- @info_request.set_described_state(params[:incoming_message][:described_state])
+ info_request.set_described_state(described_state, authenticated_user, message)
# If you're not the *actual* requester. e.g. you are playing the
# classification game, or you're doing this just because you are an
# admin user (not because you also own the request).
- if !@info_request.is_actual_owning_user?(authenticated_user)
- # Log the status change by someone other than the requester
- event = @info_request.log_event("status_update",
- { :user_id => authenticated_user.id,
- :old_described_state => old_described_state,
- :described_state => @info_request.described_state,
- })
- # Create a classification event for league tables
- RequestClassification.create!(:user_id => authenticated_user.id,
- :info_request_event_id => event.id)
-
+ if !info_request.is_actual_owning_user?(authenticated_user)
# Don't give advice on what to do next, as it isn't their request
- RequestMailer.deliver_old_unclassified_updated(@info_request) if !@info_request.is_external?
if session[:request_game]
- flash[:notice] = _('Thank you for updating the status of the request \'<a href="{{url}}">{{info_request_title}}</a>\'. There are some more requests below for you to classify.',:info_request_title=>CGI.escapeHTML(@info_request.title), :url=>CGI.escapeHTML(request_path(@info_request)))
+ flash[:notice] = _('Thank you for updating the status of the request \'<a href="{{url}}">{{info_request_title}}</a>\'. There are some more requests below for you to classify.',:info_request_title=>CGI.escapeHTML(info_request.title), :url=>CGI.escapeHTML(request_path(info_request)))
redirect_to categorise_play_url
else
flash[:notice] = _('Thank you for updating this request!')
- redirect_to request_url(@info_request)
+ redirect_to request_url(info_request)
end
return
end
- calculated_status = @info_request.calculate_status
+ calculated_status = info_request.calculate_status
# Display advice for requester on what to do next, as appropriate
- if calculated_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 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 calculated_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 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 calculated_status == 'waiting_response_very_overdue'
- flash[:notice] = _("<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>", :very_late_number_of_days => Configuration::reply_very_late_after_days, :late_number_of_days => Configuration::reply_late_after_days)
- redirect_to unhappy_url(@info_request)
- elsif calculated_status == 'not_held'
- flash[:notice] = _("<p>Thank you! Here are some ideas on what to do next:</p>
+ flash[:notice] = case info_request.calculate_status
+ when 'waiting_response'
+ _("<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))
+ when 'waiting_response_overdue'
+ _("<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))
+ when 'waiting_response_very_overdue'
+ _("<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>", :very_late_number_of_days => AlaveteliConfiguration::reply_very_late_after_days, :late_number_of_days => AlaveteliConfiguration::reply_late_after_days)
+ when 'not_held'
+ _("<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=\"{{find_authority_url}}\">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
@@ -471,44 +459,60 @@ class RequestController < ApplicationController
</li>
</ul>",
:find_authority_url => "/new",
- :complain_url => CGI.escapeHTML(unhappy_url(@info_request)),
- :other_means_url => CGI.escapeHTML(unhappy_url(@info_request)) + "#other_means")
- redirect_to request_url(@info_request)
- elsif calculated_status == 'rejected'
- 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 calculated_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 {{site_name}} useful, <a href=\"{{donation_url}}\">make a donation</a> to the charity which runs it.</p>", :site_name=>site_name, :donation_url => "http://www.mysociety.org/donate/")
- redirect_to request_url(@info_request)
- elsif calculated_status == 'partially_successful'
- flash[:notice] = _("<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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>", :site_name=>site_name, :donation_url=>"http://www.mysociety.org/donate/")
- redirect_to unhappy_url(@info_request)
- elsif calculated_status == 'waiting_clarification'
- flash[:notice] = _("Please write your follow up message containing the necessary clarifications below.")
- redirect_to respond_to_last_url(@info_request)
- elsif calculated_status == 'gone_postal'
- redirect_to respond_to_last_url(@info_request) + "?gone_postal=1"
- elsif calculated_status == 'internal_review'
- flash[:notice] = _("<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>",:late_number_of_days => Configuration.reply_late_after_days, :review_url => unhappy_url(@info_request) + "#internal_review")
- redirect_to request_url(@info_request)
- elsif calculated_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>")
- redirect_to help_general_url(:action => 'contact')
- elsif calculated_status == 'requires_admin'
- flash[:notice] = _("Please use the form below to tell us more.")
- redirect_to help_general_url(:action => 'contact')
- elsif calculated_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.")
- redirect_to respond_to_last_url(@info_request)
+ :complain_url => CGI.escapeHTML(unhappy_url(info_request)),
+ :other_means_url => CGI.escapeHTML(unhappy_url(info_request)) + "#other_means")
+ when 'rejected'
+ _("Oh no! Sorry to hear that your request was refused. Here is what to do now.")
+ when 'successful'
+ _("<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 {{site_name}} useful, <a href=\"{{donation_url}}\">make a donation</a> to the charity which runs it.</p>", :site_name=>site_name, :donation_url => "http://www.mysociety.org/donate/")
+ when 'partially_successful'
+ _("<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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>", :site_name=>site_name, :donation_url=>"http://www.mysociety.org/donate/")
+ when 'waiting_clarification'
+ _("Please write your follow up message containing the necessary clarifications below.")
+ when 'gone_postal'
+ nil
+ when 'internal_review'
+ _("<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>",:late_number_of_days => AlaveteliConfiguration.reply_late_after_days, :review_url => unhappy_url(info_request) + "#internal_review")
+ when 'error_message', 'requires_admin'
+ _("Thank you! We'll look into what happened and try and fix it up.")
+ when 'user_withdrawn'
+ _("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.")
+ end
+
+ case info_request.calculate_status
+ when 'waiting_response', 'waiting_response_overdue', 'not_held', 'successful',
+ 'internal_review', 'error_message', 'requires_admin'
+ redirect_to request_url(info_request)
+ when 'waiting_response_very_overdue', 'rejected', 'partially_successful'
+ redirect_to unhappy_url(info_request)
+ when 'waiting_clarification', 'user_withdrawn'
+ redirect_to respond_to_last_url(info_request)
+ when 'gone_postal'
+ redirect_to respond_to_last_url(info_request) + "?gone_postal=1"
else
if @@custom_states_loaded
- return self.theme_describe_state(@info_request)
+ return self.theme_describe_state(info_request)
else
- raise "unknown calculate_status " + calculated_status
+ raise "unknown calculate_status #{info_request.calculate_status}"
end
end
end
+ # Collect a message to include with the change of state
+ def describe_state_message
+ @info_request = InfoRequest.find_by_url_title!(params[:url_title])
+ @described_state = params[:described_state]
+ @last_info_request_event_id = @info_request.last_event_id_needing_description
+ @title = case @described_state
+ when "error_message"
+ _("I've received an error message")
+ when "requires_admin"
+ _("This request requires administrator attention")
+ else
+ raise "Unsupported state"
+ end
+ end
+
# Used for links from polymorphic URLs e.g. in Atom feeds - just redirect to
# proper URL for the message the event refers to
def show_request_event
@@ -560,10 +564,7 @@ class RequestController < ApplicationController
end
- params_outgoing_message = params[:outgoing_message]
- if params_outgoing_message.nil?
- params_outgoing_message = {}
- end
+ params_outgoing_message = params[:outgoing_message] ? params[:outgoing_message].clone : {}
params_outgoing_message.merge!({
:status => 'ready',
:message_type => 'followup',
@@ -624,7 +625,7 @@ class RequestController < ApplicationController
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="%s">contact us</a> if you really want to send a follow up message.') % [help_contact_path]).html_safe
+ flash[:error] = _('Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href="{{url}}">contact us</a> if you really want to send a follow up message.', :url => help_contact_path.html_safe)
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.')
@@ -679,25 +680,6 @@ class RequestController < ApplicationController
end
end
- def report_request
- info_request = InfoRequest.find_by_url_title!(params[:url_title])
- return if !authenticated?(
- :web => _("To report this FOI request"),
- :email => _("Then you can report the request '{{title}}'", :title => info_request.title),
- :email_subject => _("Report an offensive or unsuitable request")
- )
-
- if !info_request.attention_requested
- info_request.set_described_state('attention_requested', @user)
- info_request.attention_requested = true # tells us if attention has ever been requested
- info_request.save!
- flash[:notice] = _("This request has been reported for administrator attention")
- else
- flash[:notice] = _("This request has already been reported for administrator attention")
- end
- redirect_to request_url(info_request)
- end
-
# special caching code so mime types are handled right
around_filter :cache_attachments, :only => [ :get_attachment, :get_attachment_as_html ]
def cache_attachments
@@ -708,16 +690,19 @@ class RequestController < ApplicationController
key_path = foi_fragment_cache_path(key)
if foi_fragment_cache_exists?(key_path)
logger.info("Reading cache for #{key_path}")
- raise PermissionDenied.new("Directory listing not allowed") if File.directory?(key_path)
- cached = foi_fragment_cache_read(key_path)
- response.content_type = AlaveteliFileTypes.filename_to_mimetype(params[:file_name].join("/")) || 'application/octet-stream'
- render_for_text(cached)
+
+ if File.directory?(key_path)
+ render :text => "Directory listing not allowed", :status => 403
+ else
+ render :text => foi_fragment_cache_read(key_path),
+ :content_type => (AlaveteliFileTypes.filename_to_mimetype(params[:file_name]) || 'application/octet-stream')
+ end
return
end
yield
- if params[:skip_cache].nil?
+ if params[:skip_cache].nil? && response.status == 200
# write it to the fileystem ourselves, so is just a plain file. (The
# various fragment cache functions using Ruby Marshall to write the file
# which adds a header, so isnt compatible with images that have been
@@ -732,13 +717,14 @@ class RequestController < ApplicationController
def get_attachment
get_attachment_internal(false)
+ return unless @attachment
# Prevent spam to magic request address. Note that the binary
# subsitution method used depends on the content type
@incoming_message.binary_mask_stuff!(@attachment.body, @attachment.content_type)
# we don't use @attachment.content_type here, as we want same mime type when cached in cache_attachments above
- response.content_type = AlaveteliFileTypes.filename_to_mimetype(params[:file_name].join("/")) || 'application/octet-stream'
+ response.content_type = AlaveteliFileTypes.filename_to_mimetype(params[:file_name]) || 'application/octet-stream'
render :text => @attachment.body
end
@@ -751,6 +737,7 @@ class RequestController < ApplicationController
raise ActiveRecord::RecordNotFound.new("Attachment HTML not found.")
end
get_attachment_internal(true)
+ return unless @attachment
# images made during conversion (e.g. images in PDF files) are put in the cache directory, so
# the same cache code in cache_attachments above will display them.
@@ -788,7 +775,7 @@ class RequestController < ApplicationController
raise ActiveRecord::RecordNotFound.new(message)
end
@part_number = params[:part].to_i
- @filename = params[:file_name].join("/")
+ @filename = params[:file_name]
if html_conversion
@original_filename = @filename.gsub(/\.html$/, "")
else
@@ -797,8 +784,11 @@ class RequestController < ApplicationController
# check permissions
raise "internal error, pre-auth filter should have caught this" if !@info_request.user_can_view?(authenticated_user)
- @attachment = IncomingMessage.get_attachment_by_url_part_number(@incoming_message.get_attachments_for_display, @part_number)
- raise ActiveRecord::RecordNotFound.new("attachment not found part number " + @part_number.to_s + " incoming_message " + @incoming_message.id.to_s) if @attachment.nil?
+ @attachment = IncomingMessage.get_attachment_by_url_part_number_and_filename(@incoming_message.get_attachments_for_display, @part_number, @original_filename)
+ # If we can't find the right attachment, redirect to the incoming message:
+ unless @attachment
+ return redirect_to incoming_message_url(@incoming_message), :status => 303
+ end
# check filename in URL matches that in database (use a censor rule if you want to change a filename)
raise ActiveRecord::RecordNotFound.new("please use same filename as original file has, display: '" + @attachment.display_filename + "' old_display: '" + @attachment.old_display_filename + "' original: '" + @original_filename + "'") if @attachment.display_filename != @original_filename && @attachment.old_display_filename != @original_filename
@@ -811,7 +801,7 @@ class RequestController < ApplicationController
# FOI officers can upload a response
def upload_response
@locale = self.locale_from_params()
- PublicBody.with_locale(@locale) do
+ I18n.with_locale(@locale) do
@info_request = InfoRequest.find_by_url_title!(params[:url_title])
@reason_params = {
@@ -849,7 +839,8 @@ class RequestController < ApplicationController
return
end
- mail = RequestMailer.create_fake_response(@info_request, @user, body, file_name, file_content)
+ mail = RequestMailer.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) + "."
redirect_to request_url(@info_request)
@@ -863,12 +854,12 @@ class RequestController < ApplicationController
# by making the last work a wildcard, which is quite the same
query = params[:q]
@xapian_requests = perform_search_typeahead(query, InfoRequestEvent)
- render :partial => "request/search_ahead.rhtml"
+ render :partial => "request/search_ahead"
end
def download_entire_request
@locale = self.locale_from_params()
- PublicBody.with_locale(@locale) do
+ I18n.with_locale(@locale) do
@info_request = InfoRequest.find_by_url_title!(params[:url_title])
# Test for whole request being hidden or requester-only
if !@info_request.all_can_view?
@@ -882,7 +873,7 @@ class RequestController < ApplicationController
:email_subject => _("Log in to download a zip file of {{info_request_title}}",
:info_request_title=>@info_request.title)
)
- updated = Digest::SHA1.hexdigest(@info_request.get_last_event.created_at.to_i.to_s + @info_request.updated_at.to_i.to_s)
+ updated = Digest::SHA1.hexdigest(@info_request.info_request_events.last.created_at.to_i.to_s + @info_request.updated_at.to_i.to_s)
@url_path = File.join("/download",
request_dirs(@info_request),
updated,
@@ -891,10 +882,10 @@ class RequestController < ApplicationController
if !File.exists?(file_path)
FileUtils.mkdir_p(File.dirname(file_path))
Zip::ZipFile.open(file_path, Zip::ZipFile::CREATE) { |zipfile|
- convert_command = Configuration::html_to_pdf_command
+ convert_command = AlaveteliConfiguration::html_to_pdf_command
done = false
if !convert_command.blank? && File.exists?(convert_command)
- url = "http://#{Configuration::domain}#{request_path(@info_request)}?print_stylesheet=1"
+ url = "http://#{AlaveteliConfiguration::domain}#{request_path(@info_request)}?print_stylesheet=1"
tempfile = Tempfile.new('foihtml2pdf')
output = AlaveteliExternalCommand.run(convert_command, url, tempfile.path)
if !output.nil?
@@ -911,7 +902,7 @@ class RequestController < ApplicationController
end
if !done
@info_request_events = @info_request.info_request_events
- template = File.read(File.join(File.dirname(__FILE__), "..", "views", "request", "simple_correspondence.rhtml"))
+ template = File.read(File.join(File.dirname(__FILE__), "..", "views", "request", "simple_correspondence.html.erb"))
output = ERB.new(template).result(binding)
zipfile.get_output_stream("correspondence.txt") { |f|
f.puts(output)
diff --git a/app/controllers/request_game_controller.rb b/app/controllers/request_game_controller.rb
index 4b6f02970..6eac399ac 100644
--- a/app/controllers/request_game_controller.rb
+++ b/app/controllers/request_game_controller.rb
@@ -2,7 +2,7 @@
# The 'categorise old requests' game
#
# Copyright (c) 2009 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
class RequestGameController < ApplicationController
diff --git a/app/controllers/services_controller.rb b/app/controllers/services_controller.rb
index e75dac903..11ed4ac8f 100644
--- a/app/controllers/services_controller.rb
+++ b/app/controllers/services_controller.rb
@@ -6,7 +6,7 @@ class ServicesController < ApplicationController
def other_country_message
text = ""
- iso_country_code = Configuration::iso_country_code.downcase
+ iso_country_code = AlaveteliConfiguration::iso_country_code.downcase
if country_from_ip.downcase != iso_country_code
found_country = WorldFOIWebsites.by_code(country_from_ip)
@@ -36,9 +36,9 @@ class ServicesController < ApplicationController
:content_type => "text/plain",
:layout => false,
:locals => {:name_to => info_request.user_name,
- :name_from => Configuration::contact_name,
+ :name_from => AlaveteliConfiguration::contact_name,
:info_request => info_request, :reason => params[:reason],
- :info_request_url => 'http://' + Configuration::domain + request_path(info_request),
+ :info_request_url => 'http://' + AlaveteliConfiguration::domain + request_path(info_request),
:site_name => site_name}
end
diff --git a/app/controllers/track_controller.rb b/app/controllers/track_controller.rb
index 15da7f327..40e82e7a4 100644
--- a/app/controllers/track_controller.rb
+++ b/app/controllers/track_controller.rb
@@ -3,7 +3,7 @@
# social bookmarking.
#
# Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
class TrackController < ApplicationController
@@ -80,10 +80,7 @@ class TrackController < ApplicationController
# Track a search term
def track_search_query
- # XXX should be better thing in rails routes than having to do this
- # join just to get / and . to work in a query.
- query_array = params[:query_array]
- @query = query_array.join("/")
+ @query = params[:query_array]
# XXX more hackery to make alternate formats still work with query_array
if /^(.*)\.json$/.match(@query)
@@ -157,10 +154,10 @@ class TrackController < ApplicationController
def atom_feed_internal
@xapian_object = perform_search([InfoRequestEvent], @track_thing.track_query, @track_thing.params[:feed_sortby], nil, 25, 1)
respond_to do |format|
- format.atom { render :template => 'track/atom_feed', :content_type => "application/atom+xml" }
format.json { render :json => @xapian_object.results.map { |r| r[:model].json_for_api(true,
- lambda { |t| @template.highlight_and_excerpt(t, @xapian_object.words_to_highlight, 150) }
+ lambda { |t| view_context.highlight_and_excerpt(t, @xapian_object.words_to_highlight, 150) }
) } }
+ format.any { render :template => 'track/atom_feed.atom', :layout => false, :content_type => 'application/atom+xml' }
end
end
diff --git a/app/controllers/user_controller.rb b/app/controllers/user_controller.rb
index fc8b6e014..1ccab3003 100644
--- a/app/controllers/user_controller.rb
+++ b/app/controllers/user_controller.rb
@@ -2,7 +2,7 @@
# Show information about a user.
#
# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
require 'set'
@@ -119,7 +119,11 @@ class UserController < ApplicationController
@track_things = TrackThing.find(:all, :conditions => ["tracking_user_id = ? and track_medium = ?", @display_user.id, 'email_daily'], :order => 'created_at desc')
for track_thing in @track_things
# XXX factor out of track_mailer.rb
- xapian_object = InfoRequest.full_search([InfoRequestEvent], track_thing.track_query, 'described_at', true, nil, 20, 1)
+ xapian_object = ActsAsXapian::Search.new([InfoRequestEvent], track_thing.track_query,
+ :sort_by_prefix => 'described_at',
+ :sort_by_ascending => true,
+ :collapse_by_prefix => nil,
+ :limit => 20)
feed_results += xapian_object.results.map {|x| x[:model]}
end
end
@@ -136,7 +140,7 @@ class UserController < ApplicationController
# Login form
def signin
work_out_post_redirect
- @request_from_foreign_country = country_from_ip != Configuration::iso_country_code
+ @request_from_foreign_country = country_from_ip != AlaveteliConfiguration::iso_country_code
# make sure we have cookies
if session.instance_variable_get(:@dbman)
if not session.instance_variable_get(:@dbman).instance_variable_get(:@original)
@@ -190,7 +194,7 @@ class UserController < ApplicationController
# Create new account form
def signup
work_out_post_redirect
- @request_from_foreign_country = country_from_ip != Configuration::iso_country_code
+ @request_from_foreign_country = country_from_ip != AlaveteliConfiguration::iso_country_code
# Make the user and try to save it
@user_signup = User.new(params[:user_signup])
error = false
@@ -222,7 +226,7 @@ class UserController < ApplicationController
post_redirect = PostRedirect.find_by_email_token(params[:email_token])
if post_redirect.nil?
- render :template => 'user/bad_token.rhtml'
+ render :template => 'user/bad_token'
return
end
@@ -288,7 +292,7 @@ class UserController < ApplicationController
post_redirect.user = user_signchangepassword
post_redirect.save!
url = confirm_url(:email_token => post_redirect.email_token)
- UserMailer.deliver_confirm_login(user_signchangepassword, post_redirect.reason_params, url)
+ UserMailer.confirm_login(user_signchangepassword, post_redirect.reason_params, url).deliver
else
# User not found, but still show confirm page to not leak fact user exists
end
@@ -352,7 +356,7 @@ class UserController < ApplicationController
# if new email already in use, send email there saying what happened
user_alreadyexists = User.find_user_by_email(@signchangeemail.new_email)
if user_alreadyexists
- UserMailer.deliver_changeemail_already_used(@user.email, @signchangeemail.new_email)
+ UserMailer.changeemail_already_used(@user.email, @signchangeemail.new_email).deliver
# it is important this screen looks the same as the one below, so
# you can't change to someone's email in order to tell if they are
# registered with that email on the site
@@ -373,7 +377,7 @@ class UserController < ApplicationController
post_redirect.save!
url = confirm_url(:email_token => post_redirect.email_token)
- UserMailer.deliver_changeemail_confirm(@user, @signchangeemail.new_email, url)
+ UserMailer.changeemail_confirm(@user, @signchangeemail.new_email, url).deliver
# it is important this screen looks the same as the one above, so
# you can't change to someone's email in order to tell if they are
# registered with that email on the site
@@ -419,13 +423,13 @@ class UserController < ApplicationController
params[:contact][:email] = @user.email
@contact = ContactValidator.new(params[:contact])
if @contact.valid?
- ContactMailer.deliver_user_message(
+ ContactMailer.user_message(
@user,
@recipient_user,
user_url(@user),
params[:contact][:subject],
params[:contact][:message]
- )
+ ).deliver
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
@@ -465,7 +469,7 @@ class UserController < ApplicationController
@draft_profile_photo = ProfilePhoto.new(:data => file_content, :draft => true)
if !@draft_profile_photo.valid?
# error page (uses @profile_photo's error fields in view to show errors)
- render :template => 'user/set_draft_profile_photo.rhtml'
+ render :template => 'user/set_draft_profile_photo'
return
end
@draft_profile_photo.save
@@ -480,7 +484,7 @@ class UserController < ApplicationController
return
end
- render :template => 'user/set_crop_profile_photo.rhtml'
+ render :template => 'user/set_crop_profile_photo'
return
elsif !params[:submitted_crop_profile_photo].nil?
# crop the draft photo according to jquery parameters and set it as the users photo
@@ -499,7 +503,7 @@ class UserController < ApplicationController
redirect_to set_profile_about_me_url()
end
else
- render :template => 'user/set_draft_profile_photo.rhtml'
+ render :template => 'user/set_draft_profile_photo'
end
end
@@ -527,7 +531,7 @@ class UserController < ApplicationController
def get_draft_profile_photo
profile_photo = ProfilePhoto.find(params[:id])
response.content_type = "image/png"
- render_for_text(profile_photo.data)
+ render :text => profile_photo.data
end
# actual profile photo of a user
@@ -542,7 +546,7 @@ class UserController < ApplicationController
end
response.content_type = "image/png"
- render_for_text(@display_user.profile_photo.data)
+ render :text => @display_user.profile_photo.data
end
# Change about me text on your profile page
@@ -631,7 +635,7 @@ class UserController < ApplicationController
post_redirect.save!
url = confirm_url(:email_token => post_redirect.email_token)
- UserMailer.deliver_confirm_login(user, post_redirect.reason_params, url)
+ UserMailer.confirm_login(user, post_redirect.reason_params, url).deliver
render :action => 'confirm'
end
@@ -642,7 +646,7 @@ class UserController < ApplicationController
post_redirect.save!
url = confirm_url(:email_token => post_redirect.email_token)
- UserMailer.deliver_already_registered(user, post_redirect.reason_params, url)
+ UserMailer.already_registered(user, post_redirect.reason_params, url).deliver
render :action => 'confirm' # must be same as for send_confirmation_mail above to avoid leak of presence of email in db
end
diff --git a/app/helpers/admin_helper.rb b/app/helpers/admin_helper.rb
new file mode 100644
index 000000000..059cebdfa
--- /dev/null
+++ b/app/helpers/admin_helper.rb
@@ -0,0 +1,37 @@
+module AdminHelper
+ def icon(name)
+ content_tag(:i, "", :class => "icon-#{name}")
+ end
+
+ def eye
+ icon("eye-open")
+ end
+
+ def chevron_right
+ icon("chevron-right")
+ end
+
+ def chevron_down
+ icon("chevron-down")
+ end
+
+ def arrow_right
+ icon("arrow-right")
+ end
+
+ def request_both_links(info_request)
+ link_to(eye, request_path(info_request), :title => "view request on public website") + " " +
+ link_to(info_request.title, admin_request_show_path(info_request), :title => "view full details")
+ end
+
+ def public_body_both_links(public_body)
+ link_to(eye, public_body_path(public_body), :title => "view authority on public website") + " " +
+ link_to(h(public_body.name), admin_body_show_path(public_body), :title => "view full details")
+ end
+
+ def user_both_links(user)
+ link_to(eye, user_path(user), :title => "view user's page on public website") + " " +
+ link_to(h(user.name), admin_user_show_path(user), :title => "view full details")
+ end
+end
+
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 42f9d30f1..e3b1e57ac 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -3,7 +3,7 @@
# in the application.
#
# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
require 'languages'
diff --git a/app/helpers/config_helper.rb b/app/helpers/config_helper.rb
index 73e12172f..026600ff1 100644
--- a/app/helpers/config_helper.rb
+++ b/app/helpers/config_helper.rb
@@ -1,5 +1,5 @@
module ConfigHelper
def site_name
- Configuration::site_name
+ AlaveteliConfiguration::site_name
end
-end \ No newline at end of file
+end
diff --git a/app/helpers/link_to_helper.rb b/app/helpers/link_to_helper.rb
index 15cce39eb..238a36ce4 100755
--- a/app/helpers/link_to_helper.rb
+++ b/app/helpers/link_to_helper.rb
@@ -3,7 +3,7 @@
# -
#
# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
module LinkToHelper
@@ -22,14 +22,6 @@ module LinkToHelper
link_to h(info_request.title), request_path(info_request), :class => cls
end
- def request_admin_link(info_request, name="admin", cls=nil)
- link_to name, admin_request_show_url(info_request), :class => cls
- end
-
- def request_both_links(info_request)
- link_to(h(info_request.title), request_url(info_request)) + " (" + link_to("admin", admin_request_show_url(info_request)) + ")"
- end
-
def request_details_path(info_request)
details_request_path(:url_title => info_request.url_title)
end
@@ -44,7 +36,7 @@ module LinkToHelper
end
def outgoing_message_url(outgoing_message, options = {})
- return request_path(outgoing_message.info_request, options.merge(:anchor => "outgoing-#{outgoing_message.id}"))
+ request_url(outgoing_message.info_request, options.merge(:anchor => "outgoing-#{outgoing_message.id}"))
end
def outgoing_message_path(outgoing_message)
@@ -94,10 +86,6 @@ module LinkToHelper
link_to h(public_body.name), public_body_url(public_body)
end
- def public_body_both_links(public_body)
- link_to(h(public_body.name), public_body_url(public_body)) + " (" + link_to("admin", admin_body_show_url(public_body)) + ")"
- end
-
# Users
def user_url(user, options = {})
show_user_url(options.merge(:url_name => user.url_name))
@@ -126,10 +114,9 @@ module LinkToHelper
def user_admin_link_for_request(request, external_text=nil, internal_text=nil)
if request.is_external?
- text = external_text ? external_text : (request.external_user_name || _("Anonymous user")) + " (external)"
+ external_text || (request.external_user_name || _("Anonymous user")) + " (external)"
else
- text = internal_text ? internal_text : request.user.name
- link_to(h(text), admin_user_show_url(request.user))
+ link_to(h(internal_text || request.user.name), admin_user_show_url(request.user))
end
end
@@ -181,10 +168,6 @@ module LinkToHelper
link_to name, admin_user_show_url(user), :class => cls
end
- def user_both_links(user)
- link_to(h(user.name), user_url(user)) + " (" + link_to("admin", admin_user_show_url(user)) + ")"
- end
-
# Tracks. feed can be 'track' or 'feed'
def do_track_url(track_thing, feed = 'track', options = {})
if track_thing.track_type == 'request_updates'
@@ -235,6 +218,9 @@ module LinkToHelper
return url
end
+ def search_link(query, variety_postfix = nil, sort_postfix = nil, advanced = nil)
+ link_to h(query), search_url(query)
+ end
def search_path(query, options = {})
search_url(query, options.merge(:only_path => true))
@@ -255,7 +241,7 @@ module LinkToHelper
# TODO: Remove in next release
def main_url(relative_path, append = nil)
warn "[DEPRECATION] main_url is deprecated. Please remove it from your theme."
- url_prefix = "http://" + Configuration::domain
+ url_prefix = "http://" + AlaveteliConfiguration::domain
url = url_prefix + relative_path
if !append.nil?
begin
@@ -299,5 +285,13 @@ module LinkToHelper
def year_from_date(date)
return date.strftime("%Y").strip
end
+
+ #I18n locale switcher
+
+ def locale_switcher(locale, params)
+ params['locale'] = locale
+ return url_for(params)
+ end
+
end
diff --git a/app/helpers/mailer_helper.rb b/app/helpers/mailer_helper.rb
index be2ce47aa..3d4bbac71 100644
--- a/app/helpers/mailer_helper.rb
+++ b/app/helpers/mailer_helper.rb
@@ -1,5 +1,5 @@
module MailerHelper
def contact_from_name_and_email
- "#{Configuration::contact_name} <#{Configuration::contact_email}>"
+ "#{AlaveteliConfiguration::contact_name} <#{AlaveteliConfiguration::contact_email}>"
end
end
diff --git a/app/mailers/application_mailer.rb b/app/mailers/application_mailer.rb
new file mode 100644
index 000000000..d2230bb82
--- /dev/null
+++ b/app/mailers/application_mailer.rb
@@ -0,0 +1,30 @@
+# models/application_mailer.rb:
+# Shared code between different mailers.
+#
+# Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved.
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
+
+require 'action_mailer/version'
+class ApplicationMailer < ActionMailer::Base
+ # Include all the functions views get, as emails call similar things.
+ helper :application
+ include MailerHelper
+
+ # This really should be the default - otherwise you lose any information
+ # about the errors, and have to do error checking on return codes.
+ self.raise_delivery_errors = true
+
+ def blackhole_email
+ AlaveteliConfiguration::blackhole_prefix+"@"+AlaveteliConfiguration::incoming_email_domain
+ end
+
+ # URL generating functions are needed by all controllers (for redirects),
+ # views (for links) and mailers (for use in emails), so include them into
+ # all of all.
+ include LinkToHelper
+
+ # Site-wide access to configuration settings
+ include ConfigHelper
+
+end
+
diff --git a/app/mailers/contact_mailer.rb b/app/mailers/contact_mailer.rb
new file mode 100644
index 000000000..4dc49bf8b
--- /dev/null
+++ b/app/mailers/contact_mailer.rb
@@ -0,0 +1,45 @@
+# models/contact_mailer.rb:
+# Sends contact form mails.
+#
+# Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved.
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
+
+class ContactMailer < ApplicationMailer
+ # Send message to administrator
+ def to_admin_message(name, email, subject, message, logged_in_user, last_request, last_body)
+ @message, @logged_in_user, @last_request, @last_body = message, logged_in_user, last_request, last_body
+
+ mail(:from => "#{name} <#{email}>",
+ :to => contact_from_name_and_email,
+ :subject => subject)
+ end
+
+ # We always set Reply-To when we set Return-Path to be different from From,
+ # since some email clients seem to erroneously use the envelope from when
+ # they shouldn't, and this might help. (Have had mysterious cases of a
+ # reply coming in duplicate from a public body to both From and envelope
+ # from)
+
+ # Send message to another user
+ def user_message(from_user, recipient_user, from_user_url, subject, message)
+ @message, @from_user, @recipient_user, @from_user_url = message, from_user, recipient_user, from_user_url
+
+ # Do not set envelope from address to the from_user, so they can't get
+ # someone's email addresses from transitory bounce messages.
+ headers('Return-Path' => blackhole_email, 'Reply-To' => from_user.name_and_email)
+
+ mail(:from => from_user.name_and_email,
+ :to => recipient_user.name_and_email,
+ :subject => subject)
+ end
+
+ # Send message to a user from the administrator
+ def from_admin_message(recipient_user, subject, message)
+ @message, @from_user, @recipient_user = message, contact_from_name_and_email, recipient_user
+
+ mail(:from => contact_from_name_and_email,
+ :to => recipient_user.name_and_email,
+ :bcc => AlaveteliConfiguration::contact_email,
+ :subject => subject)
+ end
+end
diff --git a/app/models/outgoing_mailer.rb b/app/mailers/outgoing_mailer.rb
index 503166b8a..083c05a7c 100644
--- a/app/models/outgoing_mailer.rb
+++ b/app/mailers/outgoing_mailer.rb
@@ -2,7 +2,7 @@
# Emails which go to public bodies on behalf of users.
#
# Copyright (c) 2009 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
# Note: The layout for this wraps messages by lines rather than (blank line
# separated) paragraphs, as is the convention for all the other mailers. This
@@ -13,31 +13,29 @@
# throughout the application.
class OutgoingMailer < ApplicationMailer
-
# Email to public body requesting info
def initial_request(info_request, outgoing_message)
+ @info_request, @outgoing_message, @contact_email = info_request, outgoing_message, AlaveteliConfiguration::contact_email
@wrap_lines_as_paragraphs = true
- @from = info_request.incoming_name_and_email
- @recipients = info_request.recipient_name_and_email
- @subject = info_request.email_subject_request
- @headers["message-id"] = OutgoingMailer.id_for_message(outgoing_message)
- @body = {:info_request => info_request, :outgoing_message => outgoing_message,
- :contact_email => Configuration::contact_email }
+ headers["message-id"] = OutgoingMailer.id_for_message(outgoing_message)
+
+ mail(:from => info_request.incoming_name_and_email,
+ :to => info_request.recipient_name_and_email,
+ :subject => info_request.email_subject_request)
end
# Later message to public body regarding existing request
def followup(info_request, outgoing_message, incoming_message_followup)
+ @info_request, @outgoing_message, @incoming_message_followup, @contact_email = info_request, outgoing_message, incoming_message_followup, AlaveteliConfiguration::contact_email
@wrap_lines_as_paragraphs = true
- @from = info_request.incoming_name_and_email
- @recipients = OutgoingMailer.name_and_email_for_followup(info_request, incoming_message_followup)
- @subject = OutgoingMailer.subject_for_followup(info_request, outgoing_message)
- @headers["message-id"] = OutgoingMailer.id_for_message(outgoing_message)
- @body = {:info_request => info_request, :outgoing_message => outgoing_message,
- :incoming_message_followup => incoming_message_followup,
- :contact_email => Configuration::contact_email }
+ headers["message-id"] = OutgoingMailer.id_for_message(outgoing_message)
+
+ mail(:from => info_request.incoming_name_and_email,
+ :to => OutgoingMailer.name_and_email_for_followup(info_request, incoming_message_followup),
+ :subject => OutgoingMailer.subject_for_followup(info_request, outgoing_message))
end
- # XXX the condition checking valid_to_reply_to? also appears in views/request/_followup.rhtml,
+ # XXX the condition checking valid_to_reply_to? also appears in views/request/_followup.html.erb,
# it shouldn't really, should call something here.
# XXX also OutgoingMessage.get_salutation
# XXX these look like they should be members of IncomingMessage, but logically they
@@ -90,7 +88,7 @@ class OutgoingMailer < ApplicationMailer
message_id = "ogm-" + outgoing_message.id.to_s
t = Time.now
message_id += "+" + '%08x%05x-%04x' % [t.to_i, t.tv_usec, rand(0xffff)]
- message_id += "@" + Configuration::incoming_email_domain
+ message_id += "@" + AlaveteliConfiguration::incoming_email_domain
return "<" + message_id + ">"
end
diff --git a/app/models/request_mailer.rb b/app/mailers/request_mailer.rb
index 6f8d88a1a..4dbce6738 100644
--- a/app/models/request_mailer.rb
+++ b/app/mailers/request_mailer.rb
@@ -2,93 +2,87 @@
# Alerts relating to requests.
#
# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
-require 'alaveteli_file_types'
-if Rails.env == 'test' && RUBY_VERSION.to_f >= 1.9
- # Avoid spec/script/mailin_spec.rb running script/runner as a test suite
- # http://stackoverflow.com/questions/1899009/why-are-tests-running-in-production-mode-and-causing-my-script-runners-to-fail
- Test::Unit.run = true
-end
class RequestMailer < ApplicationMailer
-
-
# Used when an FOI officer uploads a response from their web browser - this is
# the "fake" email used to store in the same format in the database as if they
# had emailed it.
- def fake_response(info_request, from_user, body, attachment_name, attachment_content)
- @from = from_user.name_and_email
- @recipients = info_request.incoming_name_and_email
- @body = {
- :body => body
- }
+ def fake_response(info_request, from_user, message_body, attachment_name, attachment_content)
+ @message_body = message_body
+
if !attachment_name.nil? && !attachment_content.nil?
content_type = AlaveteliFileTypes.filename_to_mimetype(attachment_name) || 'application/octet-stream'
- attachment :content_type => content_type,
- :body => attachment_content,
- :filename => attachment_name
+ attachments[attachment_name] = {:content => attachment_content,
+ :content_type => content_type}
end
+
+ mail(:from => from_user.name_and_email,
+ :to => info_request.incoming_name_and_email)
end
# Used when a response is uploaded using the API
- def external_response(info_request, body, sent_at, attachments)
- @from = blackhole_email
- @recipients = info_request.incoming_name_and_email
- @body = { :body => body }
-
- # ActionMailer only works properly when the time is in the local timezone:
- # see https://rails.lighthouseapp.com/projects/8994/tickets/3113-actionmailer-only-works-correctly-with-sent_on-times-that-are-in-the-local-time-zone
- @sent_on = sent_at.dup.localtime
+ def external_response(info_request, message_body, sent_at, attachment_hashes)
+ @message_body = message_body
- attachments.each do |attachment_hash|
- attachment attachment_hash
+ attachment_hashes.each do |attachment_hash|
+ attachments[attachment_hash[:filename]] = {:content => attachment_hash[:body],
+ :content_type => attachment_hash[:content_type]}
end
+
+ mail(:from => blackhole_email,
+ :to => info_request.incoming_name_and_email,
+ :date => sent_at)
end
# Incoming message arrived for a request, but new responses have been stopped.
def stopped_responses(info_request, email, raw_email_data)
- @from = contact_from_name_and_email
- headers 'Return-Path' => blackhole_email, 'Reply-To' => @from, # we don't care about bounces, likely from spammers
- 'Auto-Submitted' => 'auto-replied' # http://tools.ietf.org/html/rfc3834
- @recipients = email.from_addrs[0].to_s
- @subject = _("Your response to an FOI request was not delivered")
- attachment :content_type => 'message/rfc822', :body => raw_email_data,
- :filename => "original.eml", :transfer_encoding => '7bit', :content_disposition => 'inline'
- @body = {
- :info_request => info_request,
- :contact_email => Configuration::contact_email
- }
+ headers('Return-Path' => blackhole_email, # we don't care about bounces, likely from spammers
+ 'Auto-Submitted' => 'auto-replied') # http://tools.ietf.org/html/rfc3834
+
+ attachments.inline["original.eml"] = raw_email_data
+
+ @info_request = info_request
+ @contact_email = AlaveteliConfiguration::contact_email
+
+ mail(:to => email.from_addrs[0].to_s,
+ :from => contact_from_name_and_email,
+ :reply_to => contact_from_name_and_email,
+ :subject => _("Your response to an FOI request was not delivered"))
end
# An FOI response is outside the scope of the system, and needs admin attention
- def requires_admin(info_request, set_by = nil)
- if !set_by.nil?
- user = set_by
- else
- user = info_request.user
- end
- @from = user.name_and_email
- @recipients = contact_from_name_and_email
- @subject = _("FOI response requires admin ({{reason}}) - {{title}}", :reason => info_request.described_state, :title => info_request.title)
- url = request_url(info_request)
- admin_url = admin_request_show_url(info_request)
- @body = {:reported_by => user, :info_request => info_request, :url => url, :admin_url => admin_url }
+ def requires_admin(info_request, set_by = nil, message = "")
+ user = set_by || info_request.user
+ @reported_by = user
+ @url = request_url(info_request)
+ @admin_url = admin_request_show_url(info_request)
+ @info_request = info_request
+ @message = message
+
+ mail(:from => user.name_and_email,
+ :to => contact_from_name_and_email,
+ :subject => _("FOI response requires admin ({{reason}}) - {{title}}", :reason => info_request.described_state, :title => info_request.title))
end
# Tell the requester that a new response has arrived
def new_response(info_request, incoming_message)
# Don't use login link here, just send actual URL. This is
# because people tend to forward these emails amongst themselves.
- url = incoming_message_url(incoming_message)
+ @url = incoming_message_url(incoming_message)
+ @incoming_message, @info_request = incoming_message, info_request
- @from = contact_from_name_and_email
- headers 'Return-Path' => blackhole_email, 'Reply-To' => @from, # not much we can do if the user's email is broken
+ headers('Return-Path' => blackhole_email,
'Auto-Submitted' => 'auto-generated', # http://tools.ietf.org/html/rfc3834
- 'X-Auto-Response-Suppress' => 'OOF'
- @recipients = info_request.user.name_and_email
- @subject = (_("New response to your FOI request - ") + info_request.title).html_safe
- @body = { :incoming_message => incoming_message, :info_request => info_request, :url => url }
+ 'X-Auto-Response-Suppress' => 'OOF')
+
+ mail(:from => contact_from_name_and_email,
+ :to => info_request.user.name_and_email,
+ :subject => _("New response to your FOI request - ") + info_request.title,
+ :charset => "UTF-8",
+ # not much we can do if the user's email is broken
+ :reply_to => contact_from_name_and_email)
end
# Tell the requester that the public body is late in replying
@@ -96,18 +90,21 @@ class RequestMailer < ApplicationMailer
respond_url = respond_to_last_url(info_request) + "#followup"
post_redirect = PostRedirect.new(
- :uri => respond_url,
+ :uri => respond_to_last_url(info_request) + "#followup",
:user_id => user.id)
post_redirect.save!
url = confirm_url(:email_token => post_redirect.email_token)
- @from = contact_from_name_and_email
- headers 'Return-Path' => blackhole_email, 'Reply-To' => @from, # not much we can do if the user's email is broken
+ @url = confirm_url(:email_token => post_redirect.email_token)
+ @info_request = info_request
+
+ headers('Return-Path' => blackhole_email, 'Reply-To' => contact_from_name_and_email, # not much we can do if the user's email is broken
'Auto-Submitted' => 'auto-generated', # http://tools.ietf.org/html/rfc3834
- 'X-Auto-Response-Suppress' => 'OOF'
- @recipients = user.name_and_email
- @subject = (_("Delayed response to your FOI request - ") + info_request.title).html_safe
- @body = { :info_request => info_request, :url => url }
+ 'X-Auto-Response-Suppress' => 'OOF')
+
+ mail(:from => contact_from_name_and_email,
+ :to => user.name_and_email,
+ :subject => (_("Delayed response to your FOI request - ") + info_request.title).html_safe)
end
# Tell the requester that the public body is very late in replying
@@ -115,18 +112,19 @@ class RequestMailer < ApplicationMailer
respond_url = respond_to_last_url(info_request) + "#followup"
post_redirect = PostRedirect.new(
- :uri => respond_url,
+ :uri => respond_to_last_url(info_request) + "#followup",
:user_id => user.id)
post_redirect.save!
- url = confirm_url(:email_token => post_redirect.email_token)
+ @url = confirm_url(:email_token => post_redirect.email_token)
+ @info_request = info_request
- @from = contact_from_name_and_email
- headers 'Return-Path' => blackhole_email, 'Reply-To' => @from, # not much we can do if the user's email is broken
+ headers('Return-Path' => blackhole_email, 'Reply-To' => contact_from_name_and_email, # not much we can do if the user's email is broken
'Auto-Submitted' => 'auto-generated', # http://tools.ietf.org/html/rfc3834
- 'X-Auto-Response-Suppress' => 'OOF'
- @recipients = user.name_and_email
- @subject = (_("You're long overdue a response to your FOI request - ") + info_request.title).html_safe
- @body = { :info_request => info_request, :url => url }
+ 'X-Auto-Response-Suppress' => 'OOF')
+
+ mail(:from => contact_from_name_and_email,
+ :to => user.name_and_email,
+ :subject => (_("You're long overdue a response to your FOI request - ") + info_request.title).html_safe)
end
# Tell the requester that they need to say if the new response
@@ -138,27 +136,31 @@ class RequestMailer < ApplicationMailer
:uri => request_url(info_request) + "#describe_state_form_1",
:user_id => info_request.user.id)
post_redirect.save!
- url = confirm_url(:email_token => post_redirect.email_token)
+ @url = confirm_url(:email_token => post_redirect.email_token)
+ @incoming_message = incoming_message
+ @info_request = info_request
- @from = contact_from_name_and_email
- headers 'Return-Path' => blackhole_email, 'Reply-To' => @from, # not much we can do if the user's email is broken
+ headers('Return-Path' => blackhole_email, 'Reply-To' => contact_from_name_and_email, # not much we can do if the user's email is broken
'Auto-Submitted' => 'auto-generated', # http://tools.ietf.org/html/rfc3834
- 'X-Auto-Response-Suppress' => 'OOF'
- @recipients = info_request.user.name_and_email
- @subject = _("Was the response you got to your FOI request any good?")
- @body = { :incoming_message => incoming_message, :info_request => info_request, :url => url }
+ 'X-Auto-Response-Suppress' => 'OOF')
+
+ mail(:from => contact_from_name_and_email,
+ :to => info_request.user.name_and_email,
+ :subject => _("Was the response you got to your FOI request any good?"))
end
# Tell the requester that someone updated their old unclassified request
def old_unclassified_updated(info_request)
- @from = contact_from_name_and_email
- headers 'Return-Path' => blackhole_email, 'Reply-To' => @from, # not much we can do if the user's email is broken
+ @url = request_url(info_request)
+ @info_request = info_request
+
+ headers('Return-Path' => blackhole_email, 'Reply-To' => contact_from_name_and_email, # not much we can do if the user's email is broken
'Auto-Submitted' => 'auto-generated', # http://tools.ietf.org/html/rfc3834
- 'X-Auto-Response-Suppress' => 'OOF'
- @recipients = info_request.user.name_and_email
- @subject = _("Someone has updated the status of your request")
- url = request_url(info_request)
- @body = {:info_request => info_request, :url => url}
+ 'X-Auto-Response-Suppress' => 'OOF')
+
+ mail(:from => contact_from_name_and_email,
+ :to => info_request.user.name_and_email,
+ :subject => _("Someone has updated the status of your request"))
end
# Tell the requester that they need to clarify their request
@@ -170,35 +172,43 @@ class RequestMailer < ApplicationMailer
:uri => respond_url,
:user_id => info_request.user.id)
post_redirect.save!
- url = confirm_url(:email_token => post_redirect.email_token)
+ @url = confirm_url(:email_token => post_redirect.email_token)
+ @incoming_message = incoming_message
+ @info_request = info_request
- @from = contact_from_name_and_email
- headers 'Return-Path' => blackhole_email, 'Reply-To' => @from, # not much we can do if the user's email is broken
+ headers('Return-Path' => blackhole_email, 'Reply-To' => contact_from_name_and_email, # not much we can do if the user's email is broken
'Auto-Submitted' => 'auto-generated', # http://tools.ietf.org/html/rfc3834
- 'X-Auto-Response-Suppress' => 'OOF'
- @recipients = info_request.user.name_and_email
- @subject = (_("Clarify your FOI request - ") + info_request.title).html_safe
- @body = { :incoming_message => incoming_message, :info_request => info_request, :url => url }
+ 'X-Auto-Response-Suppress' => 'OOF')
+
+ mail(:from => contact_from_name_and_email,
+ :to => info_request.user.name_and_email,
+ :subject => _("Clarify your FOI request - ") + info_request.title)
end
# Tell requester that somebody add an annotation to their request
def comment_on_alert(info_request, comment)
- @from = contact_from_name_and_email
- headers 'Return-Path' => blackhole_email, 'Reply-To' => @from, # not much we can do if the user's email is broken
+ @comment, @info_request = comment, info_request
+ @url = comment_url(comment)
+
+ headers('Return-Path' => blackhole_email, 'Reply-To' => contact_from_name_and_email, # not much we can do if the user's email is broken
'Auto-Submitted' => 'auto-generated', # http://tools.ietf.org/html/rfc3834
- 'X-Auto-Response-Suppress' => 'OOF'
- @recipients = info_request.user.name_and_email
- @subject = (_("Somebody added a note to your FOI request - ") + info_request.title).html_safe
- @body = { :comment => comment, :info_request => info_request, :url => comment_url(comment) }
+ 'X-Auto-Response-Suppress' => 'OOF')
+
+ mail(:from => contact_from_name_and_email,
+ :to => info_request.user.name_and_email,
+ :subject => (_("Somebody added a note to your FOI request - ") + info_request.title).html_safe)
end
def comment_on_alert_plural(info_request, count, earliest_unalerted_comment)
- @from = contact_from_name_and_email
- headers 'Return-Path' => blackhole_email, 'Reply-To' => @from, # not much we can do if the user's email is broken
+ @count, @info_request = count, info_request
+ @url = comment_url(earliest_unalerted_comment)
+
+ headers('Return-Path' => blackhole_email, 'Reply-To' => contact_from_name_and_email, # not much we can do if the user's email is broken
'Auto-Submitted' => 'auto-generated', # http://tools.ietf.org/html/rfc3834
- 'X-Auto-Response-Suppress' => 'OOF'
- @recipients = info_request.user.name_and_email
- @subject = (_("Some notes have been added to your FOI request - ") + info_request.title).html_safe
- @body = { :count => count, :info_request => info_request, :url => comment_url(earliest_unalerted_comment) }
+ 'X-Auto-Response-Suppress' => 'OOF')
+
+ mail(:from => contact_from_name_and_email,
+ :to => info_request.user.name_and_email,
+ :subject => (_("Some notes have been added to your FOI request - ") + info_request.title).html_safe)
end
# Class function, called by script/mailin with all incoming responses.
@@ -311,9 +321,9 @@ class RequestMailer < ApplicationMailer
# (otherwise they are banned, and there is no point sending it)
if info_request.user.can_make_followup?
if calculated_status == 'waiting_response_overdue'
- RequestMailer.deliver_overdue_alert(info_request, info_request.user)
+ RequestMailer.overdue_alert(info_request, info_request.user).deliver
elsif calculated_status == 'waiting_response_very_overdue'
- RequestMailer.deliver_very_overdue_alert(info_request, info_request.user)
+ RequestMailer.very_overdue_alert(info_request, info_request.user).deliver
else
raise "unknown request status"
end
@@ -327,7 +337,7 @@ class RequestMailer < ApplicationMailer
# Send email alerts for new responses which haven't been classified. By default,
# it goes out 3 days after last update of event, then after 10, then after 24.
def self.alert_new_response_reminders
- Configuration::new_response_reminder_after_days.each_with_index do |days, i|
+ AlaveteliConfiguration::new_response_reminder_after_days.each_with_index do |days, i|
self.alert_new_response_reminders_internal(days, "new_response_reminder_#{i+1}")
end
end
@@ -352,7 +362,7 @@ class RequestMailer < ApplicationMailer
store_sent.alert_type = type_code
store_sent.info_request_event_id = alert_event_id
# XXX uses same template for reminder 1 and reminder 2 right now.
- RequestMailer.deliver_new_response_reminder_alert(info_request, last_response_message)
+ RequestMailer.new_response_reminder_alert(info_request, last_response_message).deliver
store_sent.save!
end
end
@@ -380,7 +390,7 @@ class RequestMailer < ApplicationMailer
# Only send the alert if the user can act on it by making a followup
# (otherwise they are banned, and there is no point sending it)
if info_request.user.can_make_followup?
- RequestMailer.deliver_not_clarified_alert(info_request, last_response_message)
+ RequestMailer.not_clarified_alert(info_request, last_response_message).deliver
end
store_sent.save!
end
@@ -444,9 +454,9 @@ class RequestMailer < ApplicationMailer
store_sent.alert_type = 'comment_1'
store_sent.info_request_event_id = last_comment_event.id
if count > 1
- RequestMailer.deliver_comment_on_alert_plural(info_request, count, earliest_unalerted_comment_event.comment)
+ RequestMailer.comment_on_alert_plural(info_request, count, earliest_unalerted_comment_event.comment).deliver
elsif count == 1
- RequestMailer.deliver_comment_on_alert(info_request, last_comment_event.comment)
+ RequestMailer.comment_on_alert(info_request, last_comment_event.comment).deliver
else
raise "internal error"
end
diff --git a/app/models/track_mailer.rb b/app/mailers/track_mailer.rb
index 51440e4d7..1bd8a7e23 100644
--- a/app/models/track_mailer.rb
+++ b/app/mailers/track_mailer.rb
@@ -2,30 +2,31 @@
# Emails which go to users who are tracking things.
#
# Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
class TrackMailer < ApplicationMailer
def event_digest(user, email_about_things)
+ @user, @email_about_things = user, email_about_things
+
post_redirect = PostRedirect.new(
:uri => user_url(user) + "#email_subscriptions",
:user_id => user.id)
post_redirect.save!
- unsubscribe_url = confirm_url(:email_token => post_redirect.email_token)
+ @unsubscribe_url = confirm_url(:email_token => post_redirect.email_token)
- @from = contact_from_name_and_email
- headers 'Auto-Submitted' => 'auto-generated', # http://tools.ietf.org/html/rfc3834
- 'Precedence' => 'bulk' # http://www.vbulletin.com/forum/project.php?issueid=27687 (Exchange hack)
+ headers('Auto-Submitted' => 'auto-generated', # http://tools.ietf.org/html/rfc3834
+ 'Precedence' => 'bulk')# http://www.vbulletin.com/forum/project.php?issueid=27687 (Exchange hack)
# 'Return-Path' => blackhole_email, 'Reply-To' => @from # we don't care about bounces for tracks
# (We let it return bounces for now, so we can manually kill the tracks that bounce so Yahoo
# etc. don't decide we are spammers.)
- @recipients = user.name_and_email
- @subject = _("Your {{site_name}} email alert", :site_name => site_name)
- @body = { :user => user, :email_about_things => email_about_things, :unsubscribe_url => unsubscribe_url }
+ mail(:from => contact_from_name_and_email,
+ :to => user.name_and_email,
+ :subject => _("Your {{site_name}} email alert", :site_name => site_name))
end
def contact_from_name_and_email
- "#{Configuration::track_sender_name} <#{Configuration::track_sender_email}>"
+ "#{AlaveteliConfiguration::track_sender_name} <#{AlaveteliConfiguration::track_sender_email}>"
end
# Send email alerts for tracked things. Never more than one email
@@ -66,7 +67,11 @@ class TrackMailer < ApplicationMailer
# Query for things in this track. We use described_at for the
# ordering, so we catch anything new (before described), or
# anything whose new status has been described.
- xapian_object = InfoRequest.full_search([InfoRequestEvent], track_thing.track_query, 'described_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([InfoRequestEvent], track_thing.track_query,
+ :sort_by_prefix => 'described_at',
+ :sort_by_ascending => true,
+ :collapse_by_prefix => nil,
+ :limit => 100)
# Go through looking for unalerted things
alert_results = []
for result in xapian_object.results
@@ -91,10 +96,9 @@ class TrackMailer < ApplicationMailer
if email_about_things.size > 0
# Send the email
- previous_locale = I18n.locale
- I18n.locale = user.get_locale
- TrackMailer.deliver_event_digest(user, email_about_things)
- I18n.locale = previous_locale
+ I18n.with_locale(user.get_locale) do
+ TrackMailer.event_digest(user, email_about_things).deliver
+ end
end
# Record that we've now sent those alerts to that user
diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb
new file mode 100644
index 000000000..a351147f9
--- /dev/null
+++ b/app/mailers/user_mailer.rb
@@ -0,0 +1,44 @@
+# models/user_mailer.rb:
+# Emails relating to user accounts. e.g. Confirming a new account
+#
+# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
+
+class UserMailer < ApplicationMailer
+ def confirm_login(user, reasons, url)
+ @reasons, @name, @url = reasons, user.name, url
+ headers('Return-Path' => blackhole_email, 'Reply-To' => contact_from_name_and_email) # we don't care about bounces when people are fiddling with their account
+
+ mail(:from => contact_from_name_and_email,
+ :to => user.name_and_email,
+ :subject => reasons[:email_subject])
+ end
+
+ def already_registered(user, reasons, url)
+ @reasons, @name, @url = reasons, user.name, url
+ headers('Return-Path' => blackhole_email, 'Reply-To' => contact_from_name_and_email) # we don't care about bounces when people are fiddling with their account
+
+ mail(:from => contact_from_name_and_email,
+ :to => user.name_and_email,
+ :subject => reasons[:email_subject])
+ end
+
+ def changeemail_confirm(user, new_email, url)
+ @name, @url, @old_email, @new_email = user.name, url, user.email, new_email
+ headers('Return-Path' => blackhole_email, 'Reply-To' => contact_from_name_and_email) # we don't care about bounces when people are fiddling with their account
+
+ mail(:from => contact_from_name_and_email,
+ :to => new_email,
+ :subject => _("Confirm your new email address on {{site_name}}", :site_name => site_name))
+ end
+
+ def changeemail_already_used(old_email, new_email)
+ @old_email, @new_email = old_email, new_email
+ headers('Return-Path' => blackhole_email, 'Reply-To' => contact_from_name_and_email) # we don't care about bounces when people are fiddling with their account
+
+ mail(:from => contact_from_name_and_email,
+ :to => new_email,
+ :subject => _("Unable to change email address on {{site_name}}", :site_name=>site_name))
+ end
+end
+
diff --git a/app/models/about_me_validator.rb b/app/models/about_me_validator.rb
index 8ee505ac8..7df70fb61 100644
--- a/app/models/about_me_validator.rb
+++ b/app/models/about_me_validator.rb
@@ -1,25 +1,23 @@
-# == Schema Information
-# Schema version: 114
-#
-# Table name: about_me_validators
-#
-# about_me :text default("I..."), not null
-#
-
# models/about_me_validator.rb:
# Validates editing about me text on user profile pages.
#
# Copyright (c) 2010 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
-class AboutMeValidator < ActiveRecord::BaseWithoutTable
- strip_attributes!
+class AboutMeValidator
+ include ActiveModel::Validations
- column :about_me, :text, "I...", false
+ attr_accessor :about_me
# TODO: Switch to built in validations
validate :length_of_about_me
+ def initialize(attributes = {})
+ attributes.each do |name, value|
+ send("#{name}=", value)
+ end
+ end
+
private
def length_of_about_me
diff --git a/app/models/application_mailer.rb b/app/models/application_mailer.rb
deleted file mode 100644
index 1a97a4bf9..000000000
--- a/app/models/application_mailer.rb
+++ /dev/null
@@ -1,164 +0,0 @@
-# models/application_mailer.rb:
-# Shared code between different mailers.
-#
-# Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
-
-require 'action_mailer/version'
-class ApplicationMailer < ActionMailer::Base
- # Include all the functions views get, as emails call similar things.
- helper :application
- include MailerHelper
-
- # This really should be the default - otherwise you lose any information
- # about the errors, and have to do error checking on return codes.
- self.raise_delivery_errors = true
-
- def blackhole_email
- Configuration::blackhole_prefix+"@"+Configuration::incoming_email_domain
- end
-
- # URL generating functions are needed by all controllers (for redirects),
- # views (for links) and mailers (for use in emails), so include them into
- # all of all.
- include LinkToHelper
-
- # Site-wide access to configuration settings
- include ConfigHelper
-
- # Instantiate a new mailer object. If +method_name+ is not +nil+, the mailer
- # will be initialized according to the named method. If not, the mailer will
- # remain uninitialized (useful when you only need to invoke the "receive"
- # method, for instance).
- def initialize(method_name=nil, *parameters) #:nodoc:
- create!(method_name, *parameters) if method_name
- end
-
- # For each multipart template (e.g. "the_template_file.text.html.erb") available,
- # add the one from the view path with the highest priority as a part to the mail
- def render_multipart_templates
- added_content_types = {}
- self.view_paths.each do |view_path|
- Dir.glob("#{view_path}/#{mailer_name}/#{@template}.*").each do |path|
- template = view_path["#{mailer_name}/#{File.basename(path)}"]
-
- # Skip unless template has a multipart format
- next unless template && template.multipart?
- next if added_content_types[template.content_type] == true
- @parts << Part.new(
- :content_type => template.content_type,
- :disposition => "inline",
- :charset => charset,
- :body => render_message(template, @body)
- )
- added_content_types[template.content_type] = true
- end
- end
- end
-
- # Look for the current template in each element of view_paths in order,
- # return the first
- def find_template
- self.view_paths.each do |view_path|
- if template = view_path["#{mailer_name}/#{@template}"]
- return template
- end
- end
- return nil
- end
-
- if ActionMailer::VERSION::MAJOR == 2
-
- # This method is a customised version of ActionMailer::Base.create!
- # modified to allow templates to be selected correctly for multipart
- # mails when themes have added to the view_paths. The problem from our
- # point of view with ActionMailer::Base is that it sets template_root to
- # the first element of the view_paths array and then uses only that (directly
- # and via template_path, which is created from it) in the create! method when
- # looking for templates. Our modified version looks for templates in the view_paths
- # in order.
-
- # It also has a line converting the mail subject to a string. This is because we
- # use translated strings in the subject lines, sometimes in conjunction with
- # user input, like request titles. The _() function used for translation
- # returns an instance of SafeBuffer, which doesn't handle gsub calls in the block form
- # with $ variables - https://github.com/rails/rails/issues/1555.
- # Unfortunately ActionMailer uses that form in quoted_printable(), which will be
- # called if any part of the subject requires quoting. So we convert the subject
- # back to a string via to_str() before passing in to create_mail. There is a test
- # for this in spec/models/request_mailer_spec.rb
-
- # Changed lines marked with ***
-
- # Initialize the mailer via the given +method_name+. The body will be
- # rendered and a new TMail::Mail object created.
- def create!(method_name, *parameters) #:nodoc:
- initialize_defaults(method_name)
- __send__(method_name, *parameters)
-
- # If an explicit, textual body has not been set, we check assumptions.
- unless String === @body
- # First, we look to see if there are any likely templates that match,
- # which include the content-type in their file name (i.e.,
- # "the_template_file.text.html.erb", etc.). Only do this if parts
- # have not already been specified manually.
- if @parts.empty?
- # *** render_multipart_templates replaces the following code
- # Dir.glob("#{template_path}/#{@template}.*").each do |path|
- # template = template_root["#{mailer_name}/#{File.basename(path)}"]
- #
- # # Skip unless template has a multipart format
- # next unless template && template.multipart?
- #
- # @parts << Part.new(
- # :content_type => template.content_type,
- # :disposition => "inline",
- # :charset => charset,
- # :body => render_message(template, @body)
- # )
- # end
- render_multipart_templates
-
- unless @parts.empty?
- @content_type = "multipart/alternative" if @content_type !~ /^multipart/
- @parts = sort_parts(@parts, @implicit_parts_order)
- end
- end
-
- # Then, if there were such templates, we check to see if we ought to
- # also render a "normal" template (without the content type). If a
- # normal template exists (or if there were no implicit parts) we render
- # it.
- template_exists = @parts.empty?
-
- # *** find_template replaces template_root call
- # template_exists ||= template_root["#{mailer_name}/#{@template}"]
- template_exists ||= find_template
-
- @body = render_message(@template, @body) if template_exists
-
- # Finally, if there are other message parts and a textual body exists,
- # we shift it onto the front of the parts and set the body to nil (so
- # that create_mail doesn't try to render it in addition to the parts).
- if !@parts.empty? && String === @body
- @parts.unshift ActionMailer::Part.new(:charset => charset, :body => @body)
- @body = nil
- end
- end
-
- # If this is a multipart e-mail add the mime_version if it is not
- # already set.
- @mime_version ||= "1.0" if !@parts.empty?
-
- # *** Convert into a string
- @subject = @subject.to_str if @subject
-
- # build the mail object itself
- @mail = create_mail
- end
- else
- raise "ApplicationMailer.create! is obsolete - find another way to ensure that themes can override mail templates for multipart mails"
- end
-
-end
-
diff --git a/app/models/censor_rule.rb b/app/models/censor_rule.rb
index f40ab6fbb..f0d06e088 100644
--- a/app/models/censor_rule.rb
+++ b/app/models/censor_rule.rb
@@ -20,7 +20,7 @@
# Stores alterations to remove specific data from requests.
#
# Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
class CensorRule < ActiveRecord::Base
belongs_to :info_request
@@ -33,13 +33,15 @@ class CensorRule < ActiveRecord::Base
validate :require_valid_regexp, :if => proc{ |rule| rule.regexp? == true }
validates_presence_of :text
- named_scope :global, {:conditions => {:info_request_id => nil,
- :user_id => nil,
- :public_body_id => nil}}
+ scope :global, {:conditions => {:info_request_id => nil,
+ :user_id => nil,
+ :public_body_id => nil}}
def require_user_request_or_public_body
if self.info_request.nil? && self.user.nil? && self.public_body.nil?
- errors.add("Censor must apply to an info request a user or a body; ")
+ [:info_request, :user, :public_body].each do |a|
+ errors.add(a, "Rule must apply to an info request, a user or a body")
+ end
end
end
diff --git a/app/models/change_email_validator.rb b/app/models/change_email_validator.rb
index 2ddebb177..5cc13d4c2 100644
--- a/app/models/change_email_validator.rb
+++ b/app/models/change_email_validator.rb
@@ -1,36 +1,27 @@
-# == Schema Information
-# Schema version: 114
-#
-# Table name: change_email_validators
-#
-# old_email :string
-# new_email :string
-# password :string
-# user_circumstance :string
-#
-
# models/changeemail_validator.rb:
# Validates email change form submissions.
#
# Copyright (c) 2010 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
-
-class ChangeEmailValidator < ActiveRecord::BaseWithoutTable
- strip_attributes!
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
- column :old_email, :string
- column :new_email, :string
- column :password, :string
- column :user_circumstance, :string
+class ChangeEmailValidator
+ include ActiveModel::Validations
- attr_accessor :logged_in_user
+ attr_accessor :old_email, :new_email, :password, :user_circumstance, :logged_in_user
validates_presence_of :old_email, :message => N_("Please enter your old email address")
validates_presence_of :new_email, :message => N_("Please enter your new email address")
validates_presence_of :password, :message => N_("Please enter your password"), :unless => :changing_email
validate :password_and_format_of_email
- def changing_email()
+ def initialize(attributes = {})
+ attributes.each do |name, value|
+ send("#{name}=", value)
+ end
+ end
+
+
+ def changing_email
self.user_circumstance == 'change_email'
end
@@ -41,11 +32,11 @@ class ChangeEmailValidator < ActiveRecord::BaseWithoutTable
errors.add(:old_email, _("Old email doesn't look like a valid address"))
end
- if !errors[:old_email]
+ if errors[:old_email].blank?
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"))
elsif (!self.changing_email) && (!self.logged_in_user.has_this_password?(self.password))
- if !errors[:password]
+ if errors[:password].blank?
errors.add(:password, _("Password is not correct"))
end
end
@@ -55,5 +46,4 @@ class ChangeEmailValidator < ActiveRecord::BaseWithoutTable
errors.add(:new_email, _("New email doesn't look like a valid address"))
end
end
-
end
diff --git a/app/models/comment.rb b/app/models/comment.rb
index 70f3ba00d..9527030a9 100644
--- a/app/models/comment.rb
+++ b/app/models/comment.rb
@@ -18,7 +18,7 @@
# A comment by a user upon something.
#
# Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
class Comment < ActiveRecord::Base
strip_attributes!
diff --git a/app/models/contact_mailer.rb b/app/models/contact_mailer.rb
deleted file mode 100644
index abde64928..000000000
--- a/app/models/contact_mailer.rb
+++ /dev/null
@@ -1,56 +0,0 @@
-# models/contact_mailer.rb:
-# Sends contact form mails.
-#
-# Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
-
-class ContactMailer < ApplicationMailer
-
- # Send message to administrator
- def to_admin_message(name, email, subject, message, logged_in_user, last_request, last_body)
- @from = name + " <" + email + ">"
- @recipients = contact_from_name_and_email
- @subject = subject
- @body = { :message => message,
- :logged_in_user => logged_in_user ,
- :last_request => last_request,
- :last_body => last_body
- }
- end
-
- # We always set Reply-To when we set Return-Path to be different from From,
- # since some email clients seem to erroneously use the envelope from when
- # they shouldn't, and this might help. (Have had mysterious cases of a
- # reply coming in duplicate from a public body to both From and envelope
- # from)
-
- # Send message to another user
- def user_message(from_user, recipient_user, from_user_url, subject, message)
- @from = from_user.name_and_email
- # Do not set envelope from address to the from_user, so they can't get
- # someone's email addresses from transitory bounce messages.
- headers 'Return-Path' => blackhole_email, 'Reply-To' => @from
- @recipients = recipient_user.name_and_email
- @subject = subject
- @body = {
- :message => message,
- :from_user => from_user,
- :recipient_user => recipient_user,
- :from_user_url => from_user_url
- }
- end
-
- # Send message to a user from the administrator
- def from_admin_message(recipient_user, subject, message)
- @from = contact_from_name_and_email
- @recipients = recipient_user.name_and_email
- @subject = subject
- @body = {
- :message => message,
- :from_user => @from,
- :recipient_user => recipient_user,
- }
- bcc Configuration::contact_email
- end
-
-end
diff --git a/app/models/contact_validator.rb b/app/models/contact_validator.rb
index d277161f9..65e539669 100644
--- a/app/models/contact_validator.rb
+++ b/app/models/contact_validator.rb
@@ -1,35 +1,29 @@
-# == Schema Information
-# Schema version: 114
-#
-# Table name: contact_validators
-#
-# name :string
-# email :string
-# subject :text
-# message :text
-#
-
# models/contact_validator.rb:
# Validates contact form submissions.
#
# Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
-class ContactValidator < ActiveRecord::BaseWithoutTable
- strip_attributes!
+class ContactValidator
+ include ActiveModel::Validations
- column :name, :string
- column :email, :string
- column :subject, :text
- column :message, :text
+ attr_accessor :name, :email, :subject, :message
validates_presence_of :name, :message => N_("Please enter your name")
validates_presence_of :email, :message => N_("Please enter your email address")
validates_presence_of :subject, :message => N_("Please enter a subject")
validates_presence_of :message, :message => N_("Please enter the message you want to send")
+ validate :email_format
- def validate
- errors.add(:email, _("Email doesn't look like a valid address")) unless MySociety::Validate.is_valid_email(self.email)
+ def initialize(attributes = {})
+ attributes.each do |name, value|
+ send("#{name}=", value)
+ end
end
+ private
+
+ def email_format
+ 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/foi_attachment.rb b/app/models/foi_attachment.rb
index bba0b6a8d..0340f2b83 100644
--- a/app/models/foi_attachment.rb
+++ b/app/models/foi_attachment.rb
@@ -20,7 +20,7 @@
# An attachment to an email (IncomingMessage)
#
# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
# This is the type which is used to send data about attachments to the view
require 'digest'
@@ -38,11 +38,7 @@ class FoiAttachment < ActiveRecord::Base
BODY_MAX_DELAY = 5
def directory
- rails_env = Rails.env
- if rails_env.nil? || rails_env.empty?
- raise "$RAILS_ENV is not set"
- end
- base_dir = File.expand_path(File.join(File.dirname(__FILE__), "../../cache", "attachments_#{rails_env}"))
+ base_dir = File.expand_path(File.join(File.dirname(__FILE__), "../../cache", "attachments_#{Rails.env}"))
return File.join(base_dir, self.hexdigest[0..2])
end
@@ -67,28 +63,20 @@ class FoiAttachment < ActiveRecord::Base
file.write d
}
update_display_size!
- encode_cached_body!
@cached_body = d
end
- # If the original mail part had a charset, it's some kind of string, so assume that
- # it should be handled as a string in the stated charset, not a bytearray, and then
- # convert it our default encoding. For ruby 1.8 this is a noop.
- def encode_cached_body!
- if RUBY_VERSION.to_f >= 1.9
- if charset
- @cached_body.force_encoding(charset)
- @cached_body = @cached_body.encode(Encoding.default_internal, charset)
- end
- end
- end
-
def body
if @cached_body.nil?
tries = 0
delay = 1
begin
- @cached_body = File.open(self.filepath, "rb" ).read
+ binary_data = File.open(self.filepath, "rb" ).read
+ if self.content_type =~ /^text/
+ @cached_body = convert_string_to_utf8_or_binary(binary_data, 'UTF-8')
+ else
+ @cached_body = binary_data
+ end
rescue Errno::ENOENT
# we've lost our cached attachments for some reason. Reparse them.
if tries > BODY_MAX_TRIES
@@ -103,7 +91,6 @@ class FoiAttachment < ActiveRecord::Base
self.incoming_message.parse_raw_email!(force)
retry
end
- encode_cached_body!
end
return @cached_body
end
diff --git a/app/models/holiday.rb b/app/models/holiday.rb
index 13258396a..98f73e963 100644
--- a/app/models/holiday.rb
+++ b/app/models/holiday.rb
@@ -19,7 +19,7 @@
# -- Freedom of Information Act 2000 section 10
#
# Copyright (c) 2009 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
class Holiday < ActiveRecord::Base
diff --git a/app/models/incoming_message.rb b/app/models/incoming_message.rb
index 5c845ead3..f959a8799 100644
--- a/app/models/incoming_message.rb
+++ b/app/models/incoming_message.rb
@@ -25,19 +25,16 @@
# response from the public body.
#
# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
# TODO
# Move some of the (e.g. quoting) functions here into rblib, as they feel
# general not specific to IncomingMessage.
-require 'alaveteli_file_types'
require 'htmlentities'
require 'rexml/document'
require 'zip/zip'
-require 'mapi/msg'
-require 'mapi/convert'
-
+require 'iconv' unless RUBY_VERSION >= '1.9'
class IncomingMessage < ActiveRecord::Base
belongs_to :info_request
@@ -132,6 +129,7 @@ class IncomingMessage < ActiveRecord::Base
end
self.valid_to_reply_to = self._calculate_valid_to_reply_to
self.last_parsed = Time.now
+ self.foi_attachments reload=true
self.save!
end
end
@@ -173,15 +171,29 @@ class IncomingMessage < ActiveRecord::Base
super
end
- # And look up by URL part number to get an attachment
+ # And look up by URL part number and display filename to get an attachment
# XXX relies on extract_attachments calling MailHandler.ensure_parts_counted
- def self.get_attachment_by_url_part_number(attachments, found_url_part_number)
- attachments.each do |a|
- if a.url_part_number == found_url_part_number
- return a
+ # The filename here is passed from the URL parameter, so it's the
+ # display_filename rather than the real filename.
+ def self.get_attachment_by_url_part_number_and_filename(attachments, found_url_part_number, display_filename)
+ attachment_by_part_number = attachments.detect { |a| a.url_part_number == found_url_part_number }
+ if attachment_by_part_number && attachment_by_part_number.display_filename == display_filename
+ # Then the filename matches, which is fine:
+ attachment_by_part_number
+ else
+ # Otherwise if the URL part number and filename don't
+ # match - this is probably due to a reparsing of the
+ # email. In that case, try to find a unique matching
+ # filename from any attachment.
+ attachments_by_filename = attachments.select { |a|
+ a.display_filename == display_filename
+ }
+ if attachments_by_filename.length == 1
+ attachments_by_filename[0]
+ else
+ nil
end
end
- return nil
end
# Converts email addresses we know about into textual descriptions of them
@@ -193,7 +205,7 @@ class IncomingMessage < ActiveRecord::Base
text.gsub!(self.info_request.public_body.request_email, _("[{{public_body}} request email]", :public_body => self.info_request.public_body.short_or_long_name))
end
text.gsub!(self.info_request.incoming_email, _('[FOI #{{request}} email]', :request => self.info_request.id.to_s) )
- text.gsub!(Configuration::contact_email, _("[{{site_name}} contact email]", :site_name => Configuration::site_name) )
+ text.gsub!(AlaveteliConfiguration::contact_email, _("[{{site_name}} contact email]", :site_name => AlaveteliConfiguration::site_name) )
end
# Replaces all email addresses in (possibly binary data) with equal length alternative ones.
@@ -219,7 +231,7 @@ class IncomingMessage < ActiveRecord::Base
if censored_uncompressed_text != uncompressed_text
# then use the altered file (recompressed)
recompressed_text = nil
- if Configuration::use_ghostscript_compression == true
+ if AlaveteliConfiguration::use_ghostscript_compression == true
command = ["gs", "-sDEVICE=pdfwrite", "-dCompatibilityLevel=1.4", "-dPDFSETTINGS=/screen", "-dNOPAUSE", "-dQUIET", "-dBATCH", "-sOutputFile=-", "-"]
else
command = ["pdftk", "-", "output", "-", "compress"]
@@ -258,11 +270,21 @@ class IncomingMessage < ActiveRecord::Base
# equivalents to the UCS-2
ascii_chars = text.gsub(/\0/, "")
emails = ascii_chars.scan(MySociety::Validate.email_find_regexp)
+
# Convert back to UCS-2, making a mask at the same time
- emails.map! {|email| [
- Iconv.conv('ucs-2le', 'ascii', email[0]),
- Iconv.conv('ucs-2le', 'ascii', email[0].gsub(/[^@.]/, 'x'))
- ] }
+ if RUBY_VERSION >= '1.9'
+ emails.map! do |email|
+ # We want the ASCII representation of UCS-2
+ [email[0].encode('UTF-16LE').force_encoding('US-ASCII'),
+ email[0].gsub(/[^@.]/, 'x').encode('UTF-16LE').force_encoding('US-ASCII')]
+ end
+ else
+ emails.map! {|email| [
+ Iconv.conv('ucs-2le', 'ascii', email[0]),
+ Iconv.conv('ucs-2le', 'ascii', email[0].gsub(/[^@.]/, 'x'))
+ ] }
+ end
+
# Now search and replace the UCS-2 email with the UCS-2 mask
for email, mask in emails
text.gsub!(email, mask)
@@ -316,7 +338,7 @@ class IncomingMessage < ActiveRecord::Base
text.gsub!(/(Mobile|Mob)([\s\/]*(Fax|Tel))*\s*:?[\s\d]*\d/, "[mobile number]")
# Remove WhatDoTheyKnow signup links
- text.gsub!(/http:\/\/#{Configuration::domain}\/c\/[^\s]+/, "[WDTK login link]")
+ text.gsub!(/http:\/\/#{AlaveteliConfiguration::domain}\/c\/[^\s]+/, "[WDTK login link]")
# Remove things from censor rules
self.info_request.apply_censor_rules_to_text!(text)
@@ -534,7 +556,7 @@ class IncomingMessage < ActiveRecord::Base
source_charset = 'utf-8' if source_charset.nil?
text = Iconv.conv('utf-8//IGNORE', source_charset, text) +
_("\n\n[ {{site_name}} note: The above text was badly encoded, and has had strange characters removed. ]",
- :site_name => Configuration::site_name)
+ :site_name => AlaveteliConfiguration::site_name)
rescue Iconv::InvalidEncoding, Iconv::IllegalSequence, Iconv::InvalidCharacter
if source_charset != "utf-8"
source_charset = "utf-8"
@@ -546,9 +568,11 @@ class IncomingMessage < ActiveRecord::Base
text
end
- # Returns part which contains main body text, or nil if there isn't one
- def get_main_body_text_part
- leaves = self.foi_attachments
+ # Returns part which contains main body text, or nil if there isn't one,
+ # from a set of foi_attachments. If the leaves parameter is empty or not
+ # supplied, uses its own foi_attachments.
+ def get_main_body_text_part(leaves=[])
+ leaves = self.foi_attachments if leaves.empty?
# Find first part which is text/plain or text/html
# (We have to include HTML, as increasingly there are mail clients that
@@ -582,6 +606,7 @@ class IncomingMessage < ActiveRecord::Base
# nil in this case)
return p
end
+
# Returns attachments that are uuencoded in main body part
def _uudecode_and_save_attachments(text)
# Find any uudecoded things buried in it, yeuchly
@@ -605,7 +630,7 @@ class IncomingMessage < ActiveRecord::Base
content_type = 'application/octet-stream'
end
hexdigest = Digest::MD5.hexdigest(content)
- attachment = self.foi_attachments.find_or_create_by_hexdigest(:hexdigest => hexdigest)
+ attachment = self.foi_attachments.find_or_create_by_hexdigest(hexdigest)
attachment.update_attributes(:filename => filename,
:content_type => content_type,
:body => content,
@@ -632,15 +657,19 @@ class IncomingMessage < ActiveRecord::Base
attachment_attributes = MailHandler.get_attachment_attributes(self.mail(force))
attachments = []
attachment_attributes.each do |attrs|
- attachment = self.foi_attachments.find_or_create_by_hexdigest(:hexdigest => attrs[:hexdigest])
- body = attrs.delete(:body)
+ attachment = self.foi_attachments.find_or_create_by_hexdigest(attrs[:hexdigest])
attachment.update_attributes(attrs)
- # Set the body separately as its handling can depend on the value of charset
- attachment.body = body
attachment.save!
- attachments << attachment.id
+ attachments << attachment
end
- main_part = get_main_body_text_part
+
+ # Reload to refresh newly created foi_attachments
+ self.reload
+
+ # get the main body part from the set of attachments we just created,
+ # not from the self.foi_attachments association - some of the total set of
+ # self.foi_attachments may now be obsolete
+ main_part = get_main_body_text_part(attachments)
# we don't use get_main_body_text_internal, as we want to avoid charset
# conversions, since /usr/bin/uudecode needs to deal with those.
# e.g. for https://secure.mysociety.org/admin/foi/request/show_raw_email/24550
@@ -651,12 +680,14 @@ class IncomingMessage < ActiveRecord::Base
c += 1
uudecode_attachment.url_part_number = c
uudecode_attachment.save!
- attachments << uudecode_attachment.id
+ attachments << uudecode_attachment
end
end
+ attachment_ids = attachments.map{ |attachment| attachment.id }
# now get rid of any attachments we no longer have
- FoiAttachment.destroy_all("id NOT IN (#{attachments.join(',')}) AND incoming_message_id = #{self.id}")
+ FoiAttachment.destroy_all(["id NOT IN (?) AND incoming_message_id = ?",
+ attachment_ids, self.id])
end
# Returns body text as HTML with quotes flattened, and emails removed.
@@ -748,9 +779,15 @@ class IncomingMessage < ActiveRecord::Base
attachment.body,
attachment.charset)
end
+
# Remove any bad characters
- text = Iconv.conv('utf-8//IGNORE', 'utf-8', text)
- return text
+ if RUBY_VERSION >= '1.9'
+ text.encode("utf-8", :invalid => :replace,
+ :undef => :replace,
+ :replace => "")
+ else
+ Iconv.conv('utf-8//IGNORE', 'utf-8', text)
+ end
end
diff --git a/app/models/info_request.rb b/app/models/info_request.rb
index cee9eb959..aaf171c4c 100644
--- a/app/models/info_request.rb
+++ b/app/models/info_request.rb
@@ -26,8 +26,7 @@
require 'digest/sha1'
class InfoRequest < ActiveRecord::Base
- include ActionView::Helpers::UrlHelper
- include ActionController::UrlWriter
+ include Rails.application.routes.url_helpers
strip_attributes!
@@ -51,7 +50,7 @@ class InfoRequest < ActiveRecord::Base
has_tag_string
- named_scope :visible, :conditions => {:prominence => "normal"}
+ scope :visible, :conditions => {:prominence => "normal"}
# user described state (also update in info_request_event, admin_request/edit.rhtml)
validate :must_be_valid_state
@@ -81,6 +80,11 @@ class InfoRequest < ActiveRecord::Base
'blackhole' # just dump them
]
+ # only check on create, so existing models with mixed case are allowed
+ validate :title_formatting, :on => :create
+
+ after_initialize :set_defaults
+
def self.enumerate_states
states = [
'waiting_response',
@@ -104,6 +108,12 @@ class InfoRequest < ActiveRecord::Base
states
end
+ # Possible reasons that a request could be reported for administrator attention
+ def report_reasons
+ ["Contains defamatory material", "Not a valid request", "Request for personal information",
+ "Contains personal information", "Vexatious", "Other"]
+ end
+
def must_be_valid_state
errors.add(:described_state, "is not a valid state") if
!InfoRequest.enumerate_states.include? described_state
@@ -148,7 +158,7 @@ class InfoRequest < ActiveRecord::Base
@@custom_states_loaded = false
begin
- if ENV["RAILS_ENV"] != "test"
+ if !Rails.env.test?
require 'customstates'
include InfoRequestCustomStates
@@custom_states_loaded = true
@@ -185,21 +195,6 @@ class InfoRequest < ActiveRecord::Base
self.comments.find(:all, :conditions => 'visible')
end
- # Central function to do all searches
- # (Not really the right place to put it, but everything can get it here, and it
- # does *mainly* find info requests, via their events, so hey)
- def InfoRequest.full_search(models, query, order, ascending, collapse, per_page, page)
- offset = (page - 1) * per_page
-
- return ::ActsAsXapian::Search.new(
- models, query,
- :offset => offset, :limit => per_page,
- :sort_by_prefix => order,
- :sort_by_ascending => ascending,
- :collapse_by_prefix => collapse
- )
- end
-
# If the URL name has changed, then all request: queries will break unless
# we update index for every event. Also reindex if prominence changes.
after_update :reindex_some_request_events
@@ -228,17 +223,6 @@ class InfoRequest < ActiveRecord::Base
end
end
- # For debugging
- def InfoRequest.profile_search(query)
- t = Time.now.usec
- for i in (1..10)
- t = Time.now.usec - t
- secs = t / 1000000.0
- STDOUT.write secs.to_s + " query " + i.to_s + "\n"
- results = InfoRequest.full_search([InfoRequestEvent], query, "created_at", true, nil, 25, 1).results
- end
- end
-
public
# When name is changed, also change the url name
def title=(title)
@@ -347,7 +331,10 @@ public
# copying an email, and that doesn't matter)
def InfoRequest.find_by_incoming_email(incoming_email)
id, hash = InfoRequest._extract_id_hash_from_email(incoming_email)
- return self.find_by_magic_email(id, hash)
+ if hash_from_id(id) == hash
+ # Not using find(id) because we don't exception raised if nothing found
+ find_by_id(id)
+ end
end
# Return list of info requests which *might* be right given email address
@@ -456,7 +443,7 @@ public
if !allow
if self.handle_rejected_responses == 'bounce'
- RequestMailer.deliver_stopped_responses(self, email, raw_email_data) if !is_external?
+ RequestMailer.stopped_responses(self, email, raw_email_data).deliver if !is_external?
elsif self.handle_rejected_responses == 'holding_pen'
InfoRequest.holding_pen_request.receive(email, raw_email_data, false, reason)
elsif self.handle_rejected_responses == 'blackhole'
@@ -474,6 +461,17 @@ public
incoming_message = IncomingMessage.new
ActiveRecord::Base.transaction do
+
+ # To avoid a deadlock when simultaneously dealing with two
+ # incoming emails that refer to the same InfoRequest, we
+ # lock the row for update. In Rails 3.2.0 and later this
+ # can be done with info_request.with_lock or
+ # info_request.lock!, but upgrading to that version of
+ # Rails creates many other problems at the moment. In the
+ # interim, just use raw SQL to do the SELECT ... FOR UPDATE
+ raw_sql = "SELECT * FROM info_requests WHERE id = #{self.id} LIMIT 1 FOR UPDATE"
+ ActiveRecord::Base.connection.execute(raw_sql)
+
raw_email = RawEmail.new
incoming_message.raw_email = raw_email
incoming_message.info_request = self
@@ -484,13 +482,13 @@ public
self.awaiting_description = true
params = { :incoming_message_id => incoming_message.id }
if !rejected_reason.empty?
- params[:rejected_reason] = rejected_reason
+ params[:rejected_reason] = rejected_reason.to_str
end
self.log_event("response", params)
self.save!
end
self.info_request_events.each { |event| event.xapian_mark_needs_index } # for the "waiting_classification" index
- RequestMailer.deliver_new_response(self, incoming_message) if !is_external?
+ RequestMailer.new_response(self, incoming_message).deliver if !is_external?
end
@@ -548,15 +546,24 @@ public
end
def requires_admin?
- return true if InfoRequest.requires_admin_states.include?(described_state)
- return false
+ ['requires_admin', 'error_message', 'attention_requested'].include?(described_state)
+ end
+
+ # Report this request for administrator attention
+ def report!(reason, message, user)
+ ActiveRecord::Base.transaction do
+ set_described_state('attention_requested', user, "Reason: #{reason}\n\n#{message}")
+ self.attention_requested = true # tells us if attention has ever been requested
+ save!
+ end
end
# change status, including for last event for later historical purposes
- def set_described_state(new_state, set_by = nil)
+ def set_described_state(new_state, set_by = nil, message = "")
+ old_described_state = described_state
ActiveRecord::Base.transaction do
self.awaiting_description = false
- last_event = self.get_last_event
+ last_event = self.info_request_events.last
last_event.described_state = new_state
self.described_state = new_state
last_event.save!
@@ -568,9 +575,23 @@ public
if self.requires_admin?
# Check there is someone to send the message "from"
if !set_by.nil? || !self.user.nil?
- RequestMailer.deliver_requires_admin(self, set_by)
+ RequestMailer.requires_admin(self, set_by, message).deliver
end
end
+
+ unless set_by.nil? || is_actual_owning_user?(set_by) || described_state == 'attention_requested'
+ # Log the status change by someone other than the requester
+ event = log_event("status_update",
+ { :user_id => set_by.id,
+ :old_described_state => old_described_state,
+ :described_state => described_state,
+ })
+ # Create a classification event for league tables
+ RequestClassification.create!(:user_id => set_by.id,
+ :info_request_event_id => event.id)
+
+ RequestMailer.old_unclassified_updated(self).deliver if !is_external?
+ end
end
# Work out what the situation of the request is. In addition to values of
@@ -684,7 +705,7 @@ public
# last_event_forming_initial_request. There may be more obscure
# things, e.g. fees, not properly covered.
def date_response_required_by
- Holiday.due_date_from(self.date_initial_request_last_sent_at, Configuration::reply_late_after_days, Configuration::working_or_calendar_days)
+ Holiday.due_date_from(self.date_initial_request_last_sent_at, AlaveteliConfiguration::reply_late_after_days, AlaveteliConfiguration::working_or_calendar_days)
end
# This is a long stop - even with UK public interest test extensions, 40
# days is a very long time.
@@ -692,10 +713,10 @@ public
last_sent = last_event_forming_initial_request
if self.public_body.is_school?
# schools have 60 working days maximum (even over a long holiday)
- Holiday.due_date_from(self.date_initial_request_last_sent_at, Configuration::special_reply_very_late_after_days, Configuration::working_or_calendar_days)
+ Holiday.due_date_from(self.date_initial_request_last_sent_at, AlaveteliConfiguration::special_reply_very_late_after_days, AlaveteliConfiguration::working_or_calendar_days)
else
# public interest test ICO guidance gives 40 working maximum
- Holiday.due_date_from(self.date_initial_request_last_sent_at, Configuration::reply_very_late_after_days, Configuration::working_or_calendar_days)
+ Holiday.due_date_from(self.date_initial_request_last_sent_at, AlaveteliConfiguration::reply_very_late_after_days, AlaveteliConfiguration::working_or_calendar_days)
end
end
@@ -719,41 +740,28 @@ public
self.info_request_events.create!(:event_type => type, :params => params)
end
+ def response_events
+ self.info_request_events.select{|e| e.response?}
+ end
+
# The last response is the default one people might want to reply to
def get_last_response_event_id
- for e in self.info_request_events.reverse
- if e.event_type == 'response'
- return e.id
- end
- end
- return nil
-
+ get_last_response_event.id if get_last_response_event
end
def get_last_response_event
- for e in self.info_request_events.reverse
- if e.event_type == 'response'
- return e
- end
- end
- return nil
+ response_events.last
end
def get_last_response
- last_response_event = self.get_last_response_event
- if last_response_event.nil?
- return nil
- else
- return last_response_event.incoming_message
- end
+ get_last_response_event.incoming_message if get_last_response_event
+ end
+
+ def outgoing_events
+ info_request_events.select{|e| e.outgoing? }
end
# The last outgoing message
def get_last_outgoing_event
- for e in self.info_request_events.reverse
- if [ 'sent', 'followup_sent' ].include?(e.event_type)
- return e
- end
- end
- return nil
+ outgoing_events.last
end
# Text from the the initial request, for use in summary display
@@ -821,46 +829,31 @@ public
# Display version of status
def InfoRequest.get_status_description(status)
- if status == 'waiting_classification'
- _("Awaiting classification.")
- elsif status == 'waiting_response'
- _("Awaiting response.")
- elsif status == 'waiting_response_overdue'
- _("Delayed.")
- elsif status == 'waiting_response_very_overdue'
- _("Long overdue.")
- elsif status == 'not_held'
- _("Information not held.")
- elsif status == 'rejected'
- _("Refused.")
- elsif status == 'partially_successful'
- _("Partially successful.")
- elsif status == 'successful'
- _("Successful.")
- elsif status == 'waiting_clarification'
- _("Waiting clarification.")
- elsif status == 'gone_postal'
- _("Handled by post.")
- elsif status == 'internal_review'
- _("Awaiting internal review.")
- elsif status == 'error_message'
- _("Delivery error")
- elsif status == 'requires_admin'
- _("Unusual response.")
- elsif status == 'attention_requested'
- _("Reported for administrator attention.")
- elsif status == 'user_withdrawn'
- _("Withdrawn by the requester.")
- elsif status == 'vexatious'
- _("Considered by administrators as vexatious and hidden from site.")
- elsif status == 'not_foi'
- _("Considered by administrators as not an FOI request and hidden from site.")
+ descriptions = {
+ 'waiting_classification' => _("Awaiting classification."),
+ 'waiting_response' => _("Awaiting response."),
+ 'waiting_response_overdue' => _("Delayed."),
+ 'waiting_response_very_overdue' => _("Long overdue."),
+ 'not_held' => _("Information not held."),
+ 'rejected' => _("Refused."),
+ 'partially_successful' => _("Partially successful."),
+ 'successful' => _("Successful."),
+ 'waiting_clarification' => _("Waiting clarification."),
+ 'gone_postal' => _("Handled by post."),
+ 'internal_review' => _("Awaiting internal review."),
+ 'error_message' => _("Delivery error"),
+ 'requires_admin' => _("Unusual response."),
+ 'attention_requested' => _("Reported for administrator attention."),
+ 'user_withdrawn' => _("Withdrawn by the requester."),
+ 'vexatious' => _("Considered by administrators as vexatious and hidden from site."),
+ 'not_foi' => _("Considered by administrators as not an FOI request and hidden from site."),
+ }
+ if descriptions[status]
+ descriptions[status]
+ elsif respond_to?(:theme_display_status)
+ theme_display_status(status)
else
- begin
- return self.theme_display_status(status)
- rescue NoMethodError
- raise _("unknown status ") + status
- end
+ raise _("unknown status ") + status
end
end
@@ -895,10 +888,10 @@ public
end
def InfoRequest.magic_email_for_id(prefix_part, id)
- magic_email = Configuration::incoming_email_prefix
+ magic_email = AlaveteliConfiguration::incoming_email_prefix
magic_email += prefix_part + id.to_s
magic_email += "-" + InfoRequest.hash_from_id(id)
- magic_email += "@" + Configuration::incoming_email_domain
+ magic_email += "@" + AlaveteliConfiguration::incoming_email_domain
return magic_email
end
@@ -909,25 +902,7 @@ public
end
def InfoRequest.hash_from_id(id)
- return Digest::SHA1.hexdigest(id.to_s + Configuration::incoming_email_secret)[0,8]
- end
-
- # Called by find_by_incoming_email - and used to be called by separate
- # function for envelope from address, until we abandoned it.
- def InfoRequest.find_by_magic_email(id, hash)
- expected_hash = InfoRequest.hash_from_id(id)
- #print "expected: " + expected_hash + "\nhash: " + hash + "\n"
- if hash != expected_hash
- return nil
- else
- begin
- return self.find(id)
- rescue ActiveRecord::RecordNotFound
- # so error email is sent to admin, rather than the exception sending weird
- # error to the public body.
- return nil
- end
- end
+ return Digest::SHA1.hexdigest(id.to_s + AlaveteliConfiguration::incoming_email_secret)[0,8]
end
# Used to find when event last changed
@@ -987,13 +962,8 @@ public
end
def is_old_unclassified?
- return false if is_external?
- return false if !awaiting_description
- return false if url_title == 'holding_pen'
- last_response_event = get_last_response_event
- return false unless last_response_event
- return false if last_response_event.created_at >= Time.now - OLD_AGE_IN_DAYS
- return true
+ !is_external? && awaiting_description && url_title != 'holding_pen' && get_last_response_event &&
+ Time.now > get_last_response_event.created_at + OLD_AGE_IN_DAYS
end
# List of incoming messages to followup, by unique email
@@ -1085,25 +1055,6 @@ public
InfoRequest.update_all "allow_new_responses_from = 'nobody' where updated_at < (now() - interval '1 year') and allow_new_responses_from in ('anybody', 'authority_only') and url_title <> 'holding_pen'"
end
- # Returns a random FOI request
- def InfoRequest.random
- max_id = InfoRequest.connection.select_value('select max(id) as a from info_requests').to_i
- info_request = nil
- count = 0
- while info_request.nil?
- if count > 100
- return nil
- end
- id = rand(max_id) + 1
- begin
- count += 1
- info_request = find(id, :conditions => ["prominence = 'normal'"])
- rescue ActiveRecord::RecordNotFound
- end
- end
- return info_request
- end
-
def json_for_api(deep)
ret = {
:id => self.id,
@@ -1137,7 +1088,7 @@ public
before_save :purge_in_cache
def purge_in_cache
- if !Configuration::varnish_host.blank? && !self.id.nil?
+ if !AlaveteliConfiguration::varnish_host.blank? && !self.id.nil?
# we only do this for existing info_requests (new ones have a nil id)
path = url_for(:controller => 'request', :action => 'show', :url_title => self.url_title, :only_path => true, :locale => :none)
req = PurgeRequest.find_by_url(path)
@@ -1155,5 +1106,34 @@ public
yield(column.human_name, self.send(column.name), column.type.to_s, column.name)
end
end
+
+ private
+
+ def set_defaults
+ begin
+ if self.described_state.nil?
+ self.described_state = 'waiting_response'
+ end
+ rescue ActiveModel::MissingAttributeError
+ # this should only happen on Model.exists?() call. It can be safely ignored.
+ # See http://www.tatvartha.com/2011/03/activerecordmissingattributeerror-missing-attribute-a-bug-or-a-features/
+ end
+ # FOI or EIR?
+ if !self.public_body.nil? && self.public_body.eir_only?
+ self.law_used = 'eir'
+ end
+ end
+
+ def title_formatting
+ if !self.title.nil? && !MySociety::Validate.uses_mixed_capitals(self.title, 10)
+ errors.add(:title, _('Please write the summary using a mixture of capital and lower case letters. This makes it easier for others to read.'))
+ end
+ if !self.title.nil? && title.size > 200
+ errors.add(:title, _('Please keep the summary short, like in the subject of an email. You can use a phrase, rather than a full sentence.'))
+ end
+ if !self.title.nil? && self.title =~ /^(FOI|Freedom of Information)\s*requests?$/i
+ errors.add(:title, _('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.'))
+ end
+ end
end
diff --git a/app/models/info_request_event.rb b/app/models/info_request_event.rb
index 09eba31ab..469aabc4a 100644
--- a/app/models/info_request_event.rb
+++ b/app/models/info_request_event.rb
@@ -20,7 +20,7 @@
# models/info_request_event.rb:
#
# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
class InfoRequestEvent < ActiveRecord::Base
belongs_to :info_request
@@ -77,17 +77,18 @@ class InfoRequestEvent < ActiveRecord::Base
end
def user_can_view?(user)
- if !self.info_request.user_can_view?(user)
+ unless info_request.user_can_view?(user)
raise "internal error, called user_can_view? on event when there is not permission to view entire request"
end
- if self.prominence == 'hidden'
- return User.view_hidden_requests?(user)
- end
- if self.prominence == 'requester_only'
- return self.info_request.is_owning_user?(user)
+ case prominence
+ when 'hidden'
+ User.view_hidden_requests?(user)
+ when 'requester_only'
+ info_request.is_owning_user?(user)
+ else
+ true
end
- return true
end
@@ -363,16 +364,19 @@ class InfoRequestEvent < ActiveRecord::Base
end
def is_sent_sort?
- if [ 'sent', 'resent'].include?(self.event_type)
- return true
- end
- return false
+ ['sent', 'resent'].include?(event_type)
end
+
def is_followup_sort?
- if [ 'followup_sent', 'followup_resent'].include?(self.event_type)
- return true
- end
- return false
+ ['followup_sent', 'followup_resent'].include?(event_type)
+ end
+
+ def outgoing?
+ ['sent', 'followup_sent'].include?(event_type)
+ end
+
+ def response?
+ event_type == 'response'
end
def same_email_as_previous_send?
@@ -401,7 +405,7 @@ class InfoRequestEvent < ActiveRecord::Base
:comment_id => self.comment_id,
# XXX would be nice to add links here, but alas the
- # code to make them is in views only. See views/request/details.rhtml
+ # code to make them is in views only. See views/request/details.html.erb
# perhaps can call with @template somehow
}
diff --git a/app/models/mail_server_log.rb b/app/models/mail_server_log.rb
index 755584b90..7f61377ce 100644
--- a/app/models/mail_server_log.rb
+++ b/app/models/mail_server_log.rb
@@ -15,9 +15,7 @@
# We load log file lines for requests in here, for display in the admin interface.
#
# Copyright (c) 2009 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
-#
-# $Id: exim_log.rb,v 1.14 2009-09-17 21:10:05 francis Exp $
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
class MailServerLog < ActiveRecord::Base
belongs_to :info_request
@@ -53,7 +51,7 @@ class MailServerLog < ActiveRecord::Base
done.save!
f = is_gz ? Zlib::GzipReader.open(file_name) : File.open(file_name, 'r')
- case(Configuration::mta_log_type.to_sym)
+ case(AlaveteliConfiguration::mta_log_type.to_sym)
when :exim
load_exim_log_data(f, done)
when :postfix
@@ -123,13 +121,13 @@ class MailServerLog < ActiveRecord::Base
# We also check the email prefix so that we could, for instance, separately handle a staging and production
# instance running on the same server with different email prefixes.
def MailServerLog.email_addresses_on_line(line)
- prefix = Regexp::quote(Configuration::incoming_email_prefix)
- domain = Regexp::quote(Configuration::incoming_email_domain)
+ prefix = Regexp::quote(AlaveteliConfiguration::incoming_email_prefix)
+ domain = Regexp::quote(AlaveteliConfiguration::incoming_email_domain)
line.scan(/#{prefix}request-[^\s]+@#{domain}/).sort.uniq
end
def MailServerLog.request_sent?(ir)
- case(Configuration::mta_log_type.to_sym)
+ case(AlaveteliConfiguration::mta_log_type.to_sym)
when :exim
request_exim_sent?(ir)
when :postfix
diff --git a/app/models/mail_server_log_done.rb b/app/models/mail_server_log_done.rb
index 3fb20f0b3..0e7e9eec3 100644
--- a/app/models/mail_server_log_done.rb
+++ b/app/models/mail_server_log_done.rb
@@ -13,7 +13,7 @@
# Stores that a particular mail server log file has been loaded in, see mail_server_log.rb
#
# Copyright (c) 2009 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
class MailServerLogDone < ActiveRecord::Base
has_many :mail_server_logs
diff --git a/app/models/outgoing_message.rb b/app/models/outgoing_message.rb
index c75894e6a..aedfb9cad 100644
--- a/app/models/outgoing_message.rb
+++ b/app/models/outgoing_message.rb
@@ -20,9 +20,17 @@
# else. e.g. An initial request for information, or a complaint.
#
# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
class OutgoingMessage < ActiveRecord::Base
+ include Rails.application.routes.url_helpers
+ include LinkToHelper
+ self.default_url_options[:host] = AlaveteliConfiguration::domain
+ # https links in emails if forcing SSL
+ if AlaveteliConfiguration::force_ssl
+ self.default_url_options[:protocol] = "https"
+ end
+
strip_attributes!
belongs_to :info_request
@@ -51,6 +59,8 @@ class OutgoingMessage < ActiveRecord::Base
end
end
+ after_initialize :set_default_letter
+
# How the default letter starts and ends
def get_salutation
ret = ""
@@ -78,15 +88,15 @@ class OutgoingMessage < ActiveRecord::Base
end
if self.what_doing == 'internal_review'
- "Please pass this on to the person who conducts Freedom of Information reviews." +
+ _("Please pass this on to the person who conducts Freedom of Information reviews.") +
"\n\n" +
- "I am writing to request an internal review of " +
- self.info_request.public_body.name +
- "'s handling of my FOI request " +
- "'" + self.info_request.title + "'." +
+ _("I am writing to request an internal review of {{public_body_name}}'s handling of my FOI request '{{info_request_title}}'.",
+ :public_body_name => self.info_request.public_body.name,
+ :info_request_title => self.info_request.title) +
"\n\n\n\n [ " + self.get_internal_review_insert_here_note + " ] \n\n\n\n" +
- "A full history of my FOI request and all correspondence is available on the Internet at this address:\n" +
- "http://" + Configuration::domain + "/request/" + self.info_request.url_title
+ _("A full history of my FOI request and all correspondence is available on the Internet at this address: {{url}}",
+ :url => request_url(self.info_request)) +
+ "\n"
else
""
end
@@ -130,13 +140,6 @@ class OutgoingMessage < ActiveRecord::Base
MySociety::Validate.contains_postcode?(self.body)
end
- # Set default letter
- def after_initialize
- if self.body.nil?
- self.body = get_default_message
- end
- end
-
# Deliver outgoing message
# Note: You can test this from script/console with, say:
# InfoRequest.find(1).outgoing_messages[0].send_message
@@ -147,7 +150,7 @@ class OutgoingMessage < ActiveRecord::Base
self.status = 'sent'
self.save!
- mail_message = OutgoingMailer.deliver_initial_request(self.info_request, self)
+ mail_message = OutgoingMailer.initial_request(self.info_request, self).deliver
self.info_request.log_event(log_event_type, {
:email => mail_message.to_addrs.join(", "),
:outgoing_message_id => self.id,
@@ -159,7 +162,7 @@ class OutgoingMessage < ActiveRecord::Base
self.status = 'sent'
self.save!
- mail_message = OutgoingMailer.deliver_followup(self.info_request, self, self.incoming_message_followup)
+ mail_message = OutgoingMailer.followup(self.info_request, self, self.incoming_message_followup).deliver
self.info_request.log_event('followup_' + log_event_type, {
:email => mail_message.to_addrs.join(", "),
:outgoing_message_id => self.id,
@@ -253,6 +256,12 @@ class OutgoingMessage < ActiveRecord::Base
private
+ def set_default_letter
+ if self.body.nil?
+ self.body = get_default_message
+ end
+ end
+
def format_of_body
if self.body.empty? || self.body =~ /\A#{get_salutation}\s+#{get_signoff}/ || self.body =~ /#{get_internal_review_insert_here_note}/
if self.message_type == 'followup'
@@ -268,7 +277,7 @@ class OutgoingMessage < ActiveRecord::Base
end
end
if self.body =~ /#{get_signoff}\s*\Z/m
- errors.add(:body, _("Please sign at the bottom with your name, or alter the \"%{signoff}\" signature" % { :signoff => get_signoff }))
+ errors.add(:body, _("Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature", :signoff => get_signoff))
end
if !MySociety::Validate.uses_mixed_capitals(self.body)
errors.add(:body, _('Please write your message using a mixture of capital and lower case letters. This makes it easier for others to read.'))
diff --git a/app/models/post_redirect.rb b/app/models/post_redirect.rb
index 31f08c21a..409069cb6 100644
--- a/app/models/post_redirect.rb
+++ b/app/models/post_redirect.rb
@@ -24,7 +24,7 @@
# fakes the redirect to include POST parameters in request later.
#
# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
require 'openssl' # for random bytes function
@@ -32,6 +32,8 @@ class PostRedirect < ActiveRecord::Base
# Optional, does a login confirm before redirect for use in email links.
belongs_to :user
+ after_initialize :generate_token
+
# We store YAML version of POST parameters in the database
def post_params=(params)
self.post_params_yaml = params.to_yaml
@@ -62,18 +64,6 @@ class PostRedirect < ActiveRecord::Base
MySociety::Util.generate_token
end
- # Make the token
- def after_initialize
- # The token is used to return you to what you are doing after the login form.
- if not self.token
- self.token = PostRedirect.generate_random_token
- end
- # There is a separate token to use in the URL if we send a confirmation email.
- if not self.email_token
- self.email_token = PostRedirect.generate_random_token
- end
- end
-
# Used by (rspec) test code only
def self.get_last_post_redirect
# XXX yeuch - no other easy way of getting the token so we can check
@@ -89,6 +79,18 @@ class PostRedirect < ActiveRecord::Base
PostRedirect.delete_all "updated_at < (now() - interval '2 months')"
end
+ private
+
+ def generate_token
+ # The token is used to return you to what you are doing after the login form.
+ if not self.token
+ self.token = PostRedirect.generate_random_token
+ end
+ # There is a separate token to use in the URL if we send a confirmation email.
+ if not self.email_token
+ self.email_token = PostRedirect.generate_random_token
+ end
+ end
end
diff --git a/app/models/profile_photo.rb b/app/models/profile_photo.rb
index 73d7ca12b..5d542daf1 100644
--- a/app/models/profile_photo.rb
+++ b/app/models/profile_photo.rb
@@ -13,7 +13,7 @@
# Image of user that goes on their profile.
#
# Copyright (c) 2009 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
class ProfilePhoto < ActiveRecord::Base
WIDTH = 96
@@ -29,25 +29,9 @@ class ProfilePhoto < ActiveRecord::Base
attr_accessor :x, :y, :w, :h
- # convert binary data blob into ImageMagick image when assigned
attr_accessor :image
- def after_initialize
- if data.nil?
- self.image = nil
- return
- end
-
- image_list = Magick::ImageList.new
- begin
- image_list.from_blob(data)
- rescue Magick::ImageMagickError
- self.image = nil
- return
- end
- self.image = image_list[0] # XXX perhaps take largest image or somesuch if there were multiple in the file?
- self.convert_image
- end
+ after_initialize :convert_data_to_image
# make image valid format and size
def convert_image
@@ -101,7 +85,7 @@ class ProfilePhoto < ActiveRecord::Base
end
if !self.draft && (self.image.columns != WIDTH || self.image.rows != HEIGHT)
- errors.add(:data, N_("Failed to convert image to the correct size: at %{cols}x%{rows}, need %{width}x%{height}" % { :cols => self.image.columns, :rows => self.image.rows, :width => WIDTH, :height => HEIGHT }))
+ errors.add(:data, N_("Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}", :cols => self.image.columns, :rows => self.image.rows, :width => WIDTH, :height => HEIGHT))
end
if self.draft && self.user_id
@@ -112,6 +96,25 @@ class ProfilePhoto < ActiveRecord::Base
raise "Internal error, real pictures must have a user"
end
end
+
+ # Convert binary data blob into ImageMagick image when assigned
+ def convert_data_to_image
+ if data.nil?
+ self.image = nil
+ return
+ end
+
+ image_list = Magick::ImageList.new
+ begin
+ image_list.from_blob(data)
+ rescue Magick::ImageMagickError
+ self.image = nil
+ return
+ end
+
+ self.image = image_list[0] # XXX perhaps take largest image or somesuch if there were multiple in the file?
+ self.convert_image
+ end
end
diff --git a/app/models/public_body.rb b/app/models/public_body.rb
index 168b9f4c7..a76aeb189 100644
--- a/app/models/public_body.rb
+++ b/app/models/public_body.rb
@@ -45,7 +45,7 @@ class PublicBody < ActiveRecord::Base
before_save :set_api_key, :set_default_publication_scheme
# Every public body except for the internal admin one is visible
- named_scope :visible, lambda {
+ scope :visible, lambda {
{
:conditions => "public_bodies.id <> #{PublicBody.internal_admin_body.id}"
}
@@ -54,7 +54,7 @@ class PublicBody < ActiveRecord::Base
translates :name, :short_name, :request_email, :url_name, :notes, :first_letter, :publication_scheme
# Convenience methods for creating/editing translations via forms
- def translation(locale)
+ def find_translation_by_locale(locale)
self.translations.find_by_locale(locale)
end
@@ -79,7 +79,7 @@ class PublicBody < ActiveRecord::Base
if translation_attrs.respond_to? :each_value # Hash => updating
translation_attrs.each_value do |attrs|
next if skip?(attrs)
- t = translation(attrs[:locale]) || PublicBody::Translation.new
+ t = translation_for(attrs[:locale]) || PublicBody::Translation.new
t.attributes = attrs
calculate_cached_fields(t)
t.save!
@@ -106,28 +106,25 @@ 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)
- locale = self.locale || I18n.locale
- PublicBody.with_locale(locale) do
- found = PublicBody.find(:all,
- :conditions => ["public_body_translations.url_name=?", name],
- :joins => :translations,
- :readonly => false)
- # If many bodies are found (usually because the url_name is the same across
- # locales) return any of them
- return found.first 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
+ found = PublicBody.find(:all,
+ :conditions => ["public_body_translations.url_name=?", name],
+ :joins => :translations,
+ :readonly => false)
+ # If many bodies are found (usually because the url_name is the same across
+ # locales) return any of them
+ return found.first 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
# Set the first letter, which is used for faster queries
@@ -243,13 +240,13 @@ class PublicBody < ActiveRecord::Base
# When name or short name is changed, also change the url name
def short_name=(short_name)
- globalize.write(self.class.locale || I18n.locale, :short_name, short_name)
+ globalize.write(I18n.locale, :short_name, short_name)
self[:short_name] = short_name
self.update_url_name
end
def name=(name)
- globalize.write(self.class.locale || I18n.locale, :name, name)
+ globalize.write(I18n.locale, :name, name)
self[:name] = name
self.update_url_name
end
@@ -329,13 +326,13 @@ class PublicBody < ActiveRecord::Base
# The "internal admin" is a special body for internal use.
def PublicBody.internal_admin_body
- PublicBody.with_locale(I18n.default_locale) do
+ I18n.with_locale(I18n.default_locale) do
pb = PublicBody.find_by_url_name("internal_admin_authority")
if pb.nil?
pb = PublicBody.new(
:name => 'Internal admin authority',
:short_name => "",
- :request_email => Configuration::contact_email,
+ :request_email => AlaveteliConfiguration::contact_email,
:home_page => "",
:notes => "",
:publication_scheme => "",
@@ -367,7 +364,7 @@ class PublicBody < ActiveRecord::Base
# of updating them
bodies_by_name = {}
set_of_existing = Set.new()
- PublicBody.with_locale(I18n.default_locale) do
+ I18n.with_locale(I18n.default_locale) do
bodies = (tag.nil? || tag.empty?) ? PublicBody.find(:all) : PublicBody.find_by_tag(tag)
for existing_body in bodies
# Hide InternalAdminBody from import notes
@@ -410,7 +407,7 @@ class PublicBody < ActiveRecord::Base
if public_body = bodies_by_name[name] # Existing public body
available_locales.each do |locale|
- PublicBody.with_locale(locale) do
+ I18n.with_locale(locale) do
changed = ActiveSupport::OrderedHash.new
field_list.each do |field_name|
localized_field_name = (locale.to_s == I18n.default_locale.to_s) ? field_name : "#{field_name}.#{locale}"
@@ -445,7 +442,7 @@ class PublicBody < ActiveRecord::Base
else # New public body
public_body = PublicBody.new(:name=>"", :short_name=>"", :request_email=>"")
available_locales.each do |locale|
- PublicBody.with_locale(locale) do
+ I18n.with_locale(locale) do
changed = ActiveSupport::OrderedHash.new
field_list.each do |field_name|
localized_field_name = (locale.to_s == I18n.default_locale.to_s) ? field_name : "#{field_name}.#{locale}"
@@ -551,7 +548,7 @@ class PublicBody < ActiveRecord::Base
# Returns nil if configuration variable not set
def override_request_email
- e = Configuration::override_all_public_body_request_emails
+ e = AlaveteliConfiguration::override_all_public_body_request_emails
e if e != ""
end
@@ -635,6 +632,8 @@ class PublicBody < ActiveRecord::Base
end
end
+ private
+
def request_email_if_requestable
# Request_email can be blank, meaning we don't have details
if self.is_requestable?
diff --git a/app/models/purge_request.rb b/app/models/purge_request.rb
index 48a16f9e6..e48f3cc6f 100644
--- a/app/models/purge_request.rb
+++ b/app/models/purge_request.rb
@@ -14,7 +14,7 @@
# A queue of URLs to purge
#
# Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
#
class PurgeRequest < ActiveRecord::Base
diff --git a/app/models/raw_email.rb b/app/models/raw_email.rb
index de7978b82..6bf01bc74 100644
--- a/app/models/raw_email.rb
+++ b/app/models/raw_email.rb
@@ -10,7 +10,7 @@
# The fat part of models/incoming_message.rb
#
# Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
class RawEmail < ActiveRecord::Base
# deliberately don't strip_attributes, so keeps raw email properly
@@ -23,10 +23,10 @@ class RawEmail < ActiveRecord::Base
raise "Failed to find the id number of the associated request: has it been saved?"
end
- if ENV["RAILS_ENV"] == "test"
+ if Rails.env.test?
return File.join(Rails.root, 'files/raw_email_test')
else
- return File.join(Configuration::raw_emails_location,
+ return File.join(AlaveteliConfiguration::raw_emails_location,
request_id[0..2], request_id)
end
end
diff --git a/app/models/track_thing.rb b/app/models/track_thing.rb
index a0c74bdb6..66b8a5c47 100644
--- a/app/models/track_thing.rb
+++ b/app/models/track_thing.rb
@@ -19,7 +19,7 @@
# When somebody is getting alerts for something.
#
# Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
require 'set'
@@ -260,7 +260,7 @@ class TrackThing < ActiveRecord::Base
:title_in_email => self.public_body.law_only_short + " requests to '" + self.public_body.name + "'",
:title_in_rss => self.public_body.law_only_short + " requests to '" + self.public_body.name + "'",
# Authentication
- :web => _("To follow requests made using {{site_name}} to the public authority '{{public_body_name}}'", :site_name=>Configuration::site_name, :public_body_name=>CGI.escapeHTML(self.public_body.name)),
+ :web => _("To follow requests made using {{site_name}} to the public authority '{{public_body_name}}'", :site_name=>AlaveteliConfiguration::site_name, :public_body_name=>CGI.escapeHTML(self.public_body.name)),
:email => _("Then you will be notified whenever someone requests something or gets a response from '{{public_body_name}}'.", :public_body_name=>CGI.escapeHTML(self.public_body.name)),
:email_subject => _("Confirm you want to follow requests to '{{public_body_name}}'", :public_body_name=>self.public_body.name),
# RSS sorting
diff --git a/app/models/track_things_sent_email.rb b/app/models/track_things_sent_email.rb
index a0a4c0f0c..a9ea2520e 100644
--- a/app/models/track_things_sent_email.rb
+++ b/app/models/track_things_sent_email.rb
@@ -16,7 +16,7 @@
# Record that alert has arrived.
#
# Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
class TrackThingsSentEmail < ActiveRecord::Base
belongs_to :info_request_event
diff --git a/app/models/user.rb b/app/models/user.rb
index e6c666e47..257acd0fc 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -58,6 +58,9 @@ class User < ActiveRecord::Base
],
:terms => [ [ :variety, 'V', "variety" ] ],
:if => :indexed_by_search?
+
+ after_initialize :set_defaults
+
def created_at_numeric
# format it here as no datetime support in Xapian's value ranges
return self.created_at.strftime("%Y%m%d%H%M%S")
@@ -67,17 +70,6 @@ class User < ActiveRecord::Base
"user"
end
- def after_initialize
- if self.admin_level.nil?
- self.admin_level = 'none'
- end
- if self.new_record?
- # make alert emails go out at a random time for each new user, so
- # overall they are spread out throughout the day.
- self.last_daily_track_email = User.random_time_in_last_day
- end
- end
-
# requested_by: and commented_by: search queries also need updating after save
after_update :reindex_referencing_models
def reindex_referencing_models
@@ -98,12 +90,7 @@ class User < ActiveRecord::Base
end
def get_locale
- if !self.locale.nil?
- locale = self.locale
- else
- locale = I18n.locale
- end
- return locale.to_s
+ (self.locale || I18n.locale).to_s
end
def visible_comments
@@ -141,14 +128,14 @@ class User < ActiveRecord::Base
if user
# There is user with email, check password
if !user.has_this_password?(params[:password])
- user.errors.add_to_base(auth_fail_message)
+ user.errors.add(:base, auth_fail_message)
end
else
# No user of same email, make one (that we don't save in the database)
# for the forms code to use.
user = User.new(params)
# deliberately same message as above so as not to leak whether registered
- user.errors.add_to_base(auth_fail_message)
+ user.errors.add(:base, auth_fail_message)
end
user
end
@@ -201,12 +188,12 @@ class User < ActiveRecord::Base
# The "internal admin" is a special user for internal use.
def User.internal_admin_user
- u = User.find_by_email(Configuration::contact_email)
+ u = User.find_by_email(AlaveteliConfiguration::contact_email)
if u.nil?
password = PostRedirect.generate_random_token
u = User.new(
:name => 'Internal admin user',
- :email => Configuration::contact_email,
+ :email => AlaveteliConfiguration::contact_email,
:password => password,
:password_confirmation => password
)
@@ -279,16 +266,16 @@ class User < ActiveRecord::Base
return false if self.no_limit
# Has the user issued as many as MAX_REQUESTS_PER_USER_PER_DAY requests in the past 24 hours?
- return false if Configuration::max_requests_per_user_per_day.blank?
+ return false if AlaveteliConfiguration::max_requests_per_user_per_day.blank?
recent_requests = InfoRequest.count(:conditions => ["user_id = ? and created_at > now() - '1 day'::interval", self.id])
- return (recent_requests >= Configuration::max_requests_per_user_per_day)
+ return (recent_requests >= AlaveteliConfiguration::max_requests_per_user_per_day)
end
def next_request_permitted_at
return nil if self.no_limit
- n_most_recent_requests = InfoRequest.all(:conditions => ["user_id = ? and created_at > now() - '1 day'::interval", self.id], :order => "created_at DESC", :limit => Configuration::max_requests_per_user_per_day)
- return nil if n_most_recent_requests.size < Configuration::max_requests_per_user_per_day
+ n_most_recent_requests = InfoRequest.all(:conditions => ["user_id = ? and created_at > now() - '1 day'::interval", self.id], :order => "created_at DESC", :limit => AlaveteliConfiguration::max_requests_per_user_per_day)
+ return nil if n_most_recent_requests.size < AlaveteliConfiguration::max_requests_per_user_per_day
nth_most_recent_request = n_most_recent_requests[-1]
return nth_most_recent_request.created_at + 1.day
@@ -311,7 +298,7 @@ class User < ActiveRecord::Base
text = CGI.escapeHTML(text)
text = MySociety::Format.make_clickable(text, :contract => 1)
text = text.gsub(/\n/, '<br>')
- return text
+ return text.html_safe
end
# Returns domain part of user's email address
@@ -407,6 +394,17 @@ class User < ActiveRecord::Base
self.salt = self.object_id.to_s + rand.to_s
end
+ def set_defaults
+ if self.admin_level.nil?
+ self.admin_level = 'none'
+ end
+ if self.new_record?
+ # make alert emails go out at a random time for each new user, so
+ # overall they are spread out throughout the day.
+ self.last_daily_track_email = User.random_time_in_last_day
+ end
+ end
+
def email_and_name_are_valid
if self.email != "" && !MySociety::Validate.is_valid_email(self.email)
errors.add(:email, _("Please enter a valid email address"))
diff --git a/app/models/user_info_request_sent_alert.rb b/app/models/user_info_request_sent_alert.rb
index cf20bcbf5..449a4c237 100644
--- a/app/models/user_info_request_sent_alert.rb
+++ b/app/models/user_info_request_sent_alert.rb
@@ -15,7 +15,7 @@
# given type of alert.
#
# Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
class UserInfoRequestSentAlert < ActiveRecord::Base
belongs_to :user
diff --git a/app/models/user_mailer.rb b/app/models/user_mailer.rb
deleted file mode 100644
index 1be4f8aa3..000000000
--- a/app/models/user_mailer.rb
+++ /dev/null
@@ -1,48 +0,0 @@
-# models/user_mailer.rb:
-# Emails relating to user accounts. e.g. Confirming a new account
-#
-# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
-
-class UserMailer < ApplicationMailer
- def confirm_login(user, reasons, url)
- @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 = user.name_and_email
- @subject = reasons[:email_subject]
- @body[:reasons] = reasons
- @body[:name] = user.name
- @body[:url] = url
- end
-
- def already_registered(user, reasons, url)
- @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 = user.name_and_email
- @subject = reasons[:email_subject]
- @body[:reasons] = reasons
- @body[:name] = user.name
- @body[:url] = url
- end
-
- def changeemail_confirm(user, new_email, url)
- @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 {{site_name}}", :site_name=>site_name)
- @body[:name] = user.name
- @body[:url] = url
- @body[:old_email] = user.email
- @body[:new_email] = new_email
- end
-
- def changeemail_already_used(old_email, new_email)
- @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 {{site_name}}", :site_name=>site_name)
- @body[:old_email] = old_email
- @body[:new_email] = new_email
- end
-end
-
diff --git a/app/views/admin_censor_rule/_form.rhtml b/app/views/admin_censor_rule/_form.html.erb
index ac84935c5..5035238d6 100644
--- a/app/views/admin_censor_rule/_form.rhtml
+++ b/app/views/admin_censor_rule/_form.html.erb
@@ -3,13 +3,11 @@
<div class="well">
<%=_("Applies to")%>
<% unless info_request.nil? %>
- <%= request_link(info_request)%>
- <%= request_admin_link(info_request, "(admin)", "btn btn-info")%>
+ <%= request_both_links(info_request) %>
<%= hidden_field 'censor_rule', 'info_request_id', { :value => info_request.id } %>
<% end %>
<% unless user.nil? %>
- <%= user_link(user) %>
- <%= user_admin_link(user, "admin", "btn btn-info") %>
+ <%= user_both_links(user) %>
<%= hidden_field 'censor_rule', 'user_id', { :value => user.id } %>
<% end %>
</div>
diff --git a/app/views/admin_censor_rule/_show.rhtml b/app/views/admin_censor_rule/_show.html.erb
index baa93e832..0d4cece93 100644
--- a/app/views/admin_censor_rule/_show.rhtml
+++ b/app/views/admin_censor_rule/_show.html.erb
@@ -16,7 +16,7 @@
<td><%=h censor_rule.send(column) %></td>
<% end %>
<td>
- <%= link_to "Edit", '../../censor/edit/' + censor_rule.id.to_s %>
+ <%= link_to "Edit", admin_rule_edit_path(censor_rule) %>
</td>
</tr>
<% end %>
@@ -26,10 +26,10 @@
<% end %>
<% if defined? info_request %>
- <%= link_to "New censor rule (for this request only)", "../../censor/new?info_request_id=#{info_request.id}", :class => "btn btn-info" %>
+ <%= link_to "New censor rule (for this request only)", admin_rule_new_path(:info_request_id => info_request.id), :class => "btn btn-info" %>
<% end %>
<% if defined? user %>
- <%= link_to "New censor rule", "../../censor/new?user_id=#{user.id}", :class => "btn btn-info" %> <span class="label label-info">for all requests by this user</span>
+ <%= link_to "New censor rule", admin_rule_new_path(:user_id => user.id), :class => "btn btn-info" %> <span class="label label-info">for all requests by this user</span>
<% end %>
diff --git a/app/views/admin_censor_rule/edit.html.erb b/app/views/admin_censor_rule/edit.html.erb
new file mode 100644
index 000000000..230446ed3
--- /dev/null
+++ b/app/views/admin_censor_rule/edit.html.erb
@@ -0,0 +1,18 @@
+<% @title = 'Edit censor rule' %>
+
+<h1><%=@title%></h1>
+
+<%= form_tag admin_rule_update_path(@censor_rule), :class => "form form-horizontal" do %>
+ <%= render :partial => 'form', :locals => { :info_request => @censor_rule.info_request, :user => @censor_rule.user } %>
+ <div class="form-actions">
+ <%= submit_tag 'Save', :accesskey => 's', :class => "btn btn-primary" %>
+ </div>
+<% end %>
+
+<%= form_tag admin_rule_destroy_path(@censor_rule), :class => "form form-horizontal" do %>
+ <%= hidden_field_tag(:censor_rule_id, @censor_rule.id) %>
+ <div class="form-actions">
+ Permanent! --&gt; <%= submit_tag "Destroy rule", :class => "btn btn-primary" %>
+ </div>
+<% end %>
+
diff --git a/app/views/admin_censor_rule/edit.rhtml b/app/views/admin_censor_rule/edit.rhtml
deleted file mode 100644
index e34e022a0..000000000
--- a/app/views/admin_censor_rule/edit.rhtml
+++ /dev/null
@@ -1,16 +0,0 @@
-<% @title = 'Edit censor rule' %>
-
-<h1><%=@title%></h1>
-
-<% form_tag '../update/' + @censor_rule.id.to_s do %>
- <%= render :partial => 'form', :locals => { :info_request => @censor_rule.info_request, :user => @censor_rule.user } %>
- <p><%= submit_tag 'Save', :accesskey => 's' %></p>
-<% end %>
-
-<% form_tag('../destroy/' + @censor_rule.id.to_s) do %>
- <p>
- <%= hidden_field_tag(:censor_rule_id, @censor_rule.id) %>
- Permanent! --&gt; <%= submit_tag "Destroy rule" %>
- </p>
-<% end %>
-
diff --git a/app/views/admin_censor_rule/new.rhtml b/app/views/admin_censor_rule/new.html.erb
index 6cac58b3b..77d22990c 100644
--- a/app/views/admin_censor_rule/new.rhtml
+++ b/app/views/admin_censor_rule/new.html.erb
@@ -2,8 +2,8 @@
<h1><%=@title%></h1>
-<% form_tag 'create', :class => "form form-horizontal" do %>
- <%= render :partial => 'form', :locals => { :info_request => @info_request, :user => @user } %>
+<%= form_tag admin_rule_create_path, :class => "form form-horizontal" do %>
+ <%= render :partial => 'form', :locals => { :info_request => @info_request, :user => @censor_user } %>
<div class="form-actions">
<%= submit_tag "Create", :class => "btn btn-primary" %>
</div>
diff --git a/app/views/admin_general/_admin_navbar.rhtml b/app/views/admin_general/_admin_navbar.html.erb
index 5cc740f70..5cc740f70 100644
--- a/app/views/admin_general/_admin_navbar.rhtml
+++ b/app/views/admin_general/_admin_navbar.html.erb
diff --git a/app/views/admin_general/admin.coffee b/app/views/admin_general/admin.coffee
index 8f9e879ae..3d39369a4 100644
--- a/app/views/admin_general/admin.coffee
+++ b/app/views/admin_general/admin.coffee
@@ -10,7 +10,7 @@ jQuery ->
false)
$('#request_hidden_user_explanation_reasons input').live('click', ->
$('#request_hidden_user_subject, #request_hidden_user_explanation, #request_hide_button').show()
- info_request_id = $('#hide_request_form').attr('info_request_id')
+ info_request_id = $('#hide_request_form').attr('data-info-request-id')
reason = $(this).val()
$('#request_hidden_user_explanation_field').attr("value", "[loading default text...]")
$.ajax "/hidden_user_explanation?reason=" + reason + "&info_request_id=" + info_request_id,
diff --git a/app/views/admin_general/admin.js b/app/views/admin_general/admin.js
index 61382dab3..9daa51459 100644
--- a/app/views/admin_general/admin.js
+++ b/app/views/admin_general/admin.js
@@ -14,7 +14,7 @@
return $('#request_hidden_user_explanation_reasons input').live('click', function() {
var info_request_id, reason;
$('#request_hidden_user_subject, #request_hidden_user_explanation, #request_hide_button').show();
- info_request_id = $('#hide_request_form').attr('info_request_id');
+ info_request_id = $('#hide_request_form').attr('data-info-request-id');
reason = $(this).val();
$('#request_hidden_user_explanation_field').attr("value", "[loading default text...]");
return $.ajax("/hidden_user_explanation?reason=" + reason + "&info_request_id=" + info_request_id, {
diff --git a/app/views/admin_general/admin_js.erb b/app/views/admin_general/admin_js.erb
index 61382dab3..c8788a452 100644
--- a/app/views/admin_general/admin_js.erb
+++ b/app/views/admin_general/admin_js.erb
@@ -1,4 +1,5 @@
(function() {
+
jQuery(function() {
$('.locales a:first').tab('show');
$('.accordion-body').on('hidden', function() {
@@ -14,7 +15,7 @@
return $('#request_hidden_user_explanation_reasons input').live('click', function() {
var info_request_id, reason;
$('#request_hidden_user_subject, #request_hidden_user_explanation, #request_hide_button').show();
- info_request_id = $('#hide_request_form').attr('info_request_id');
+ info_request_id = $('#hide_request_form').attr('data-info-request-id');
reason = $(this).val();
$('#request_hidden_user_explanation_field').attr("value", "[loading default text...]");
return $.ajax("/hidden_user_explanation?reason=" + reason + "&info_request_id=" + info_request_id, {
@@ -29,4 +30,5 @@
});
});
});
+
}).call(this);
diff --git a/app/views/admin_general/debug.rhtml b/app/views/admin_general/debug.html.erb
index 7fd256025..bf984c2e1 100644
--- a/app/views/admin_general/debug.rhtml
+++ b/app/views/admin_general/debug.html.erb
@@ -21,16 +21,13 @@ RUBY_VERSION <%=h RUBY_VERSION %>
<br>
Rails::VERSION::STRING <%=h Rails::VERSION::STRING%>
<br>
-TMail::VERSION::STRING <%=h TMail::VERSION::STRING%>
-<br>
Xapian::version_string <%=h Xapian::version_string%>
</p>
<h2>Configuration</h2>
-<p>environment: <%=h Rails::configuration.environment %>
-<br>environment_path: <%=h Rails::configuration.environment_path %>
-<br>framework_paths: <%=h Rails::configuration.framework_paths.to_yaml %>
+<p>Rails env: <%=h Rails.env %>
+<br>Rails root: <%=h Rails.root %>
</p>
<h2>Environment variables</h2>
diff --git a/app/views/admin_general/index.rhtml b/app/views/admin_general/index.html.erb
index 74d0f92f8..b239a2b3f 100644
--- a/app/views/admin_general/index.rhtml
+++ b/app/views/admin_general/index.html.erb
@@ -28,7 +28,7 @@
<% if @holding_pen_messages.size > 0 %>
<div class="accordion-group">
<div class="accordion-heading">
- <a class="accordion-toggle" href="#holding-pen" data-toggle="collapse" data-parent="things-to-do"><span class="label label-important"><%=@holding_pen_messages.size%></span><i class='icon-chevron-right'></i> Put misdelivered responses with the right request</a>
+ <a class="accordion-toggle" href="#holding-pen" data-toggle="collapse" data-parent="things-to-do"><span class="label label-important"><%=@holding_pen_messages.size%></span><%= chevron_right %> Put misdelivered responses with the right request</a>
</div>
<div id="holding-pen" class="accordion-body collapse">
<table class="table table-striped table-condensed">
@@ -37,9 +37,9 @@
<tr>
<td>
<% if message.get_body_for_quoting.strip.size == 0 %>
- <%= link_to "(no body)", "request/show_raw_email/" + message.raw_email_id.to_s %>
+ <%= link_to "(no body)", admin_request_show_raw_email_path(message.raw_email_id) %>
<% else %>
- <%= link_to excerpt(message.get_body_for_quoting, "", 60), "request/show_raw_email/" + message.raw_email_id.to_s %>
+ <%= link_to excerpt(message.get_body_for_quoting, "", 60), admin_request_show_raw_email_path(message.raw_email_id) %>
<% end %>
</td>
<td class="span2">
@@ -56,7 +56,7 @@
<% if @error_message_requests.size > 0 %>
<div class="accordion-group">
<div class="accordion-heading">
- <a class="accordion-toggle" href="#error-messages" data-toggle="collapse" data-parent="things-to-do"><span class="label label-important"><%=@error_message_requests.size%></span> <i class='icon-chevron-right'></i>Fix these delivery and other errors</a>
+ <a class="accordion-toggle" href="#error-messages" data-toggle="collapse" data-parent="things-to-do"><span class="label label-important"><%=@error_message_requests.size%></span> <%= chevron_right %>Fix these delivery and other errors</a>
</div>
<div id="error-messages" class="accordion-body collapse">
<table class="table table-striped table-condensed">
@@ -64,11 +64,10 @@
<% for @request in @error_message_requests %>
<tr>
<td class="link">
- <%= link_to('<i class="icon-tags"></i>'.html_safe, admin_request_show_path(@request))%>
- <%= link_to(@request.title, request_path(@request)) %>
+ <%= request_both_links(@request) %>
</td>
<td class="span2">
- <%=simple_date(@request.get_last_event.created_at)%>
+ <%=simple_date(@request.info_request_events.last.created_at)%>
</td>
</tr>
<% end %>
@@ -81,7 +80,7 @@
<% if @attention_requests.size > 0 %>
<div class="accordion-group">
<div class="accordion-heading">
- <a class="accordion-toggle" href="#attention-messages" data-toggle="collapse" data-parent="things-to-do"><span class="label label-important"><%=@attention_requests.size%></span><i class='icon-chevron-right'></i> Review requests marked by users as requiring your attention
+ <a class="accordion-toggle" href="#attention-messages" data-toggle="collapse" data-parent="things-to-do"><span class="label label-important"><%=@attention_requests.size%></span><%= chevron_right %> Review requests marked by users as requiring your attention
</a>
</div>
<div id="attention-messages" class="accordion-body collapse">
@@ -90,11 +89,10 @@
<% for @request in @attention_requests %>
<tr>
<td class="link">
- <%= link_to('<i class="icon-tags"></i>'.html_safe, admin_request_show_path(@request))%>
- <%= link_to(@request.title, request_path(@request)) %>
+ <%= request_both_links(@request) %>
</td>
<td class="span2">
- <%=simple_date(@request.get_last_event.created_at)%>
+ <%=simple_date(@request.info_request_events.last.created_at)%>
</td>
</tr>
<% end %>
@@ -107,7 +105,7 @@
<% if @requires_admin_requests.size > 0 %>
<div class="accordion-group">
<div class="accordion-heading">
- <a class="accordion-toggle" href="#requires-admin" data-toggle="collapse" data-parent="things-to-do"><span class="label label-important"><%=@requires_admin_requests.size%></span><i class='icon-chevron-right'></i> These require administrator attention</a>
+ <a class="accordion-toggle" href="#requires-admin" data-toggle="collapse" data-parent="things-to-do"><span class="label label-important"><%=@requires_admin_requests.size%></span><%= chevron_right %> These require administrator attention</a>
</div>
<div id="requires-admin" class="accordion-body collapse">
<table class="table table-striped table-condensed">
@@ -115,11 +113,10 @@
<% for @request in @requires_admin_requests %>
<tr>
<td class="link">
- <%= link_to('<i class="icon-tags"></i>'.html_safe, admin_request_show_path(@request))%>
- <%= link_to(@request.title, request_path(@request)) %>
+ <%= request_both_links(@request) %>
</td>
<td class="span2">
- <%=simple_date(@request.get_last_event.created_at)%>
+ <%=simple_date(@request.info_request_events.last.created_at)%>
</td>
</tr>
<% end %>
@@ -132,7 +129,7 @@
<% if @blank_contacts.size > 0 %>
<div class="accordion-group">
<div class="accordion-heading">
- <a class="accordion-toggle" href="#blank-contacts" data-toggle="collapse" data-parent="things-to-do"><span class="label label-important"><%=@blank_contacts.size%></span><i class='icon-chevron-right'></i> Find missing FOI email for these public authorities (try phoning!)</a>
+ <a class="accordion-toggle" href="#blank-contacts" data-toggle="collapse" data-parent="things-to-do"><span class="label label-important"><%=@blank_contacts.size%></span><%= chevron_right %> Find missing FOI email for these public authorities (try phoning!)</a>
</div>
<div id="blank-contacts" class="accordion-body collapse">
<table class="table table-striped table-condensed">
@@ -140,8 +137,7 @@
<% for @blank_contact in @blank_contacts %>
<tr>
<td class="link">
- <%= link_to('<i class="icon-tags"></i>'.html_safe, admin_body_show_path(@blank_contact))%>
- <%= link_to h(@blank_contact.name), public_body_path(@blank_contact) %>
+ <%= public_body_both_links(@blank_contact) %>
</td>
<td class="span2">
<%=simple_date(@blank_contact.updated_at)%>
@@ -157,7 +153,7 @@
<% if @old_unclassified.size > 0 %>
<div class="accordion-group">
<div class="accordion-heading">
- <a class="accordion-toggle" href="#unclassified" data-toggle="collapse" data-parent="things-to-do"><span class="label label-important"><%=@old_unclassified.size%></span><i class='icon-chevron-right'></i> Classify responses that are still unclassified <%=InfoRequest::OLD_AGE_IN_DAYS.inspect %> after response</a>
+ <a class="accordion-toggle" href="#unclassified" data-toggle="collapse" data-parent="things-to-do"><span class="label label-important"><%=@old_unclassified.size%></span><%= chevron_right %> Classify responses that are still unclassified <%=InfoRequest::OLD_AGE_IN_DAYS.inspect %> after response</a>
</div>
<div id="unclassified" class="accordion-body collapse">
<table class="table table-striped table-condensed">
@@ -165,8 +161,7 @@
<% for @request in @old_unclassified %>
<tr>
<td class="link">
- <%= link_to("<i class='icon-tags'></i>".html_safe, admin_request_show_path(@request)) %>
- <%= link_to(@request.title, request_path(@request)) %>
+ <%= request_both_links(@request) %>
</td>
<td class="span2">
<%=simple_date(@request.get_last_response_event.created_at)%>
diff --git a/app/views/admin_general/stats.rhtml b/app/views/admin_general/stats.html.erb
index 27dc25ee0..27dc25ee0 100644
--- a/app/views/admin_general/stats.rhtml
+++ b/app/views/admin_general/stats.html.erb
diff --git a/app/views/admin_general/timeline.rhtml b/app/views/admin_general/timeline.html.erb
index 0c5f24279..8fd8875b6 100644
--- a/app/views/admin_general/timeline.rhtml
+++ b/app/views/admin_general/timeline.html.erb
@@ -1,12 +1,12 @@
<% @title = "Timeline" %>
<div class="btn-toolbar">
<div class="btn-group">
- <a class="btn" href="?hour=1">Hour</a>
- <a class="btn" href="?day=1">Day</a>
- <a class="btn" href="?">2 days</a>
- <a class="btn" href="?week=1">Week</a>
- <a class="btn" href="?month=1">Month</a>
- <a class="btn" href="?all=1">All time</a>
+ <%= link_to "Hour", admin_timeline_path(:hour => 1), :class => "btn" %>
+ <%= link_to "Day", admin_timeline_path(:day => 1), :class => "btn" %>
+ <%= link_to "2 days", admin_timeline_path, :class => "btn" %>
+ <%= link_to "Week", admin_timeline_path(:week => 1), :class => "btn" %>
+ <%= link_to "Month", admin_timeline_path(:month => 1), :class => "btn" %>
+ <%= link_to "All time", admin_timeline_path(:all => 1), :class => "btn" %>
</div>
</div>
<div class="row">
@@ -31,9 +31,7 @@
<%= simple_time(event_at) %>
<% if event.is_a? InfoRequestEvent %>
- <%= link_to('<i class="icon-tags"></i>'.html_safe, admin_request_show_path(event.info_request), :title => "view full details")%>
- <%= link_to(event.info_request.title, request_path(event.info_request), :title => "view request on public website")%>
-
+ <%= request_both_links(event.info_request) %>
<% if event.event_type == 'edit' %>
was edited by administrator <strong><%=h event.params[:editor] %></strong>.
<% for p in ['title', 'prominence', 'described_state', 'awaiting_description']
@@ -95,8 +93,7 @@
had '<%=event.event_type%>' done to it, parameters <%=h event.params_yaml%>.
<% end %>
<% else %>
- <%= link_to('<i class="icon-tags"></i>'.html_safe, admin_body_show_path(event.public_body), :title => "view full details")%>
- <%= link_to(event.public_body.name, public_body_path(event.public_body), :title => "view authority on public website")%>
+ <%= public_body_both_links(event.public_body) %>
was created/updated by administrator <strong><%=h event.last_edit_editor %></strong>
<% end %>
<% end %>
diff --git a/app/views/admin_public_body/_form.rhtml b/app/views/admin_public_body/_form.html.erb
index 3f346842c..c577d1e18 100644
--- a/app/views/admin_public_body/_form.rhtml
+++ b/app/views/admin_public_body/_form.html.erb
@@ -18,11 +18,10 @@
prefix = "public_body[translated_versions][]"
object = @public_body.new_record? ?
PublicBody::Translation.new :
- @public_body.translation(locale.to_s) || PublicBody::Translation.new
+ @public_body.find_translation_by_locale(locale.to_s) || PublicBody::Translation.new
end
-
- fields_for prefix, object do |t|
%>
+ <%= fields_for prefix, object do |t| %>
<div class="tab-pane" id="div-locale-<%=locale.to_s%>">
<div class="control-group">
<%= t.hidden_field :locale, :value => locale.to_s %>
diff --git a/app/views/admin_public_body/_locale_selector.rhtml b/app/views/admin_public_body/_locale_selector.rhtml
deleted file mode 100644
index 5ef79f2df..000000000
--- a/app/views/admin_public_body/_locale_selector.rhtml
+++ /dev/null
@@ -1,10 +0,0 @@
-<div id="locale_switcher">
-<%= _('Edit language version:') %>
-<% for possible_locale in @locales %>
- <% if possible_locale == @locale %>
- <%= possible_locale %>
- <% else %>
- <a href="?show_locale=<%=possible_locale%>"><%= possible_locale %></a>
- <% end %>
-<% end %>
-</div>
diff --git a/app/views/admin_public_body/_one_list.rhtml b/app/views/admin_public_body/_one_list.html.erb
index c867433a0..8f1d719ec 100644
--- a/app/views/admin_public_body/_one_list.rhtml
+++ b/app/views/admin_public_body/_one_list.html.erb
@@ -3,7 +3,7 @@
<div class="accordion-group">
<div class="accordion-heading accordion-toggle row">
<span class="item-title span6">
- <a href="#body_<%=public_body.id%>" data-toggle="collapse" data-parent="requests"><i class="icon-chevron-right"></i></a>
+ <a href="#body_<%=public_body.id%>" data-toggle="collapse" data-parent="requests"><%= chevron_right %></a>
<%= link_to(public_body.name, admin_body_show_path(public_body), :title => "view full details")%>
</span>
<span class="item-metadata span6">
@@ -31,7 +31,7 @@
<% end %>
</div>
-<% form_tag(admin_body_mass_tag_add_url, :method => "post", :class => "form form-inline" ) do %>
+<%= form_tag(admin_body_mass_tag_add_url, :method => "post", :class => "form form-inline" ) do %>
<p>
<%= text_field_tag 'new_tag', params[:new_tag], { :size => 15, :id => "mass_add_tag_new_tag_" + table_name } %>
<%= hidden_field_tag(:query, params[:query], { :id => "mass_add_tag_query_" + table_name } ) %>
diff --git a/app/views/admin_public_body/_tag_help.rhtml b/app/views/admin_public_body/_tag_help.html.erb
index b64e65877..b64e65877 100644
--- a/app/views/admin_public_body/_tag_help.rhtml
+++ b/app/views/admin_public_body/_tag_help.html.erb
diff --git a/app/views/admin_public_body/_tags.rhtml b/app/views/admin_public_body/_tags.html.erb
index 26526f304..26526f304 100644
--- a/app/views/admin_public_body/_tags.rhtml
+++ b/app/views/admin_public_body/_tags.html.erb
diff --git a/app/views/admin_public_body/edit.rhtml b/app/views/admin_public_body/edit.html.erb
index 629f64257..a24122671 100644
--- a/app/views/admin_public_body/edit.rhtml
+++ b/app/views/admin_public_body/edit.html.erb
@@ -3,7 +3,7 @@
<div class="row">
<div class="span8">
<div id="public_body_form">
- <% form_for @public_body, :url => "../update/#{@public_body.id}", :html => { :class => "form form-horizontal" } do |f| %>
+ <% form_for @public_body, :url => admin_body_update_path(@public_body), :html => { :class => "form form-horizontal" } do |f| %>
<%= render :partial => 'form', :locals => {:f => f} %>
<div class="form-actions">
<%= f.submit 'Save', :accesskey => 's', :class => "btn btn-success" %></p>
@@ -13,14 +13,14 @@
<div class="row">
<div class="span8">
<div class="well">
- <%= link_to 'Show', "../show/#{@public_body.id}", :class => "btn" %>
- <%= link_to 'List all', '../list', :class => "btn" %>
+ <%= link_to 'Show', admin_body_show_path(@public_body), :class => "btn" %>
+ <%= link_to 'List all', admin_body_list_path, :class => "btn" %>
</div>
</div>
</div>
<% if @public_body.info_requests.empty? %>
- <% form_tag("../destroy/#{@public_body.id}", :class => "form form-inline") do %>
+ <%= form_tag(admin_body_destroy_path(@public_body), :class => "form form-inline") do %>
<%= hidden_field_tag(:public_body_id, { :value => @public_body.id } ) %>
<%= submit_tag _("Destroy {{name}}", :name => @public_body.name), :class => "btn btn-danger" %> (this is permanent!)
<% end %>
diff --git a/app/views/admin_public_body/import_csv.rhtml b/app/views/admin_public_body/import_csv.html.erb
index bfe1b0c3b..afda5a468 100644
--- a/app/views/admin_public_body/import_csv.rhtml
+++ b/app/views/admin_public_body/import_csv.html.erb
@@ -9,7 +9,7 @@
<pre id="error"><%=@errors %></pre>
<% end %>
-<% form_tag 'import_csv', :multipart => true do %>
+<%= form_tag 'import_csv', :multipart => true do %>
<p>
<% if @original_csv_file && @temporary_csv_file %>
CSV file:
diff --git a/app/views/admin_public_body/list.rhtml b/app/views/admin_public_body/list.html.erb
index b4328bcad..3d7d9c4cd 100644
--- a/app/views/admin_public_body/list.rhtml
+++ b/app/views/admin_public_body/list.html.erb
@@ -8,18 +8,18 @@
<div class="btn-toolbar">
<div class="btn-group">
- <%= link_to 'New public authority', 'new', :class => "btn btn-primary" %>
+ <%= link_to 'New public authority', admin_body_new_path, :class => "btn btn-primary" %>
</div>
<div class="btn-group">
- <%= link_to 'Import from CSV file', 'import_csv', :class => "btn btn-warning" %>
+ <%= link_to 'Import from CSV file', admin_body_import_csv_path, :class => "btn btn-warning" %>
</div>
</div>
-<% form_tag({}, :method => "get", :class => "form form-search") do %>
+<%= form_tag({}, :method => "get", :class => "form form-search") do %>
<%= text_field_tag 'query', params[:query], { :size => 30, :class => "input-large search-query" } %>
<%= submit_tag "Search", :class => "btn" %>
<% if !@query.nil? %>
- <%= link_to 'Show all', 'list', :class => "btn" %>
+ <%= link_to 'Show all', admin_body_list_path, :class => "btn" %>
<% end %><br>
(substring search in names and emails; exact match of tags)
<% end %>
@@ -35,7 +35,6 @@
<h2>All authorities</h2>
<% else %>
<h2>Substring search matches (<%= @public_bodies.total_entries %> total)</h2>
-
<% end %>
<%= render :partial => 'one_list', :locals => { :bodies => @public_bodies, :table_name => 'substring' } %>
<% end %>
diff --git a/app/views/admin_public_body/missing_scheme.rhtml b/app/views/admin_public_body/missing_scheme.html.erb
index 2ea55ae00..2ea55ae00 100644
--- a/app/views/admin_public_body/missing_scheme.rhtml
+++ b/app/views/admin_public_body/missing_scheme.html.erb
diff --git a/app/views/admin_public_body/new.rhtml b/app/views/admin_public_body/new.html.erb
index e03ebab00..13e8238d6 100644
--- a/app/views/admin_public_body/new.rhtml
+++ b/app/views/admin_public_body/new.html.erb
@@ -4,7 +4,7 @@
<div class="row">
<div class="span8">
<div id="public_body_form">
- <% form_for :public_body, @public_body, :url => "create", :html => {:class => "form form-horizontal"} do |f| %>
+ <%= form_for @public_body, :as => :public_body, :url => admin_body_create_path, :html => {:class => "form form-horizontal"} do |f| %>
<%= render :partial => 'form', :locals => {:f => f} %>
<div class="form-actions">
<%= f.submit "Create", :class => "btn btn-primary" %>
diff --git a/app/views/admin_public_body/show.rhtml b/app/views/admin_public_body/show.html.erb
index c59b90697..cfb10b24e 100644
--- a/app/views/admin_public_body/show.rhtml
+++ b/app/views/admin_public_body/show.html.erb
@@ -45,7 +45,7 @@
</tr>
</tbody>
</table>
-<%= link_to _("Edit"), "../edit/#{@public_body.id}", :class => "btn btn-primary" %>
+<%= link_to _("Edit"), admin_body_edit_path(@public_body), :class => "btn btn-primary" %>
<% unless @public_body.url_name.nil? %>
<%=link_to _("Public page"), public_body_path(@public_body), :class => "btn" %>
<% else %>
diff --git a/app/views/admin_request/_incoming_message_actions.rhtml b/app/views/admin_request/_incoming_message_actions.html.erb
index 0ebeb5f9b..653e73337 100644
--- a/app/views/admin_request/_incoming_message_actions.rhtml
+++ b/app/views/admin_request/_incoming_message_actions.html.erb
@@ -1,6 +1,6 @@
<fieldset class="form-horizontal">
<legend>Actions</legend>
- <% form_tag '../redeliver_incoming', :class => "form form-inline" do %>
+ <%= form_tag admin_request_redeliver_incoming_path, :class => "form form-inline" do %>
<div class="control-group">
<label class="control-label" for="url_title_<%= incoming_message.id %>">Redeliver message to one or more other requests</label>
<div class="controls">
@@ -18,11 +18,11 @@
<div class="control-group">
<label class="control-label">Generate FOI officer upload URL</label>
<div class="controls">
- <%= link_to 'Generate and take me there', "../generate_upload_url/#{incoming_message.info_request.id}?incoming_message_id=#{incoming_message.id}", :class => "btn" %>
+ <%= link_to 'Generate and take me there', admin_request_generate_upload_url_path(incoming_message.info_request, :incoming_message_id => incoming_message.id), :class => "btn" %>
</div>
</div>
- <% form_tag '../destroy_incoming', :class => "form form-inline" do %>
+ <%= form_tag admin_request_destroy_incoming_path, :class => "form form-inline" do %>
<div class="control-group">
<label class="control-label" for="destroy_message_<%= incoming_message.id %>">Destroy message</label>
<div class="controls">
@@ -37,7 +37,7 @@
<div class="control-group">
<label class="control-label">Inspect email</label>
<div class="controls">
- <%= link_to "View raw email", "../show_raw_email/#{incoming_message.raw_email_id}", :class => "btn" %>
+ <%= link_to "View raw email", admin_request_show_raw_email_path(incoming_message.raw_email_id), :class => "btn" %>
</div>
</div>
<% end %>
diff --git a/app/views/admin_request/_some_requests.rhtml b/app/views/admin_request/_some_requests.html.erb
index 03a77dd0b..cff94956d 100644
--- a/app/views/admin_request/_some_requests.rhtml
+++ b/app/views/admin_request/_some_requests.html.erb
@@ -3,11 +3,11 @@
<div class="accordion-group">
<div class="accordion-heading accordion-toggle row">
<span class="item-title span6">
- <a href="#request_<%=info_request.id%>" data-toggle="collapse" data-parent="requests"><i class="icon-chevron-right"></i></a>
+ <a href="#request_<%=info_request.id%>" data-toggle="collapse" data-parent="requests"><%= chevron_right %></a>
<%= link_to(info_request.title, admin_request_show_path(info_request), :title => "view full details") %>
</span>
<span class="item-metadata span6">
- <%= user_admin_link_for_request(info_request) %> <i class="icon-arrow-right"></i> <%= link_to("#{info_request.public_body.name}", admin_body_show_path(info_request.public_body)) %>, <%= time_ago_in_words(info_request.updated_at) %> ago
+ <%= user_admin_link_for_request(info_request) %> <%= arrow_right %> <%= link_to("#{info_request.public_body.name}", admin_body_show_path(info_request.public_body)) %>, <%= time_ago_in_words(info_request.updated_at) %> ago
</span>
</div>
<div id="request_<%=info_request.id%>" class="item-detail accordion-body collapse row">
diff --git a/app/views/admin_request/_tags.rhtml b/app/views/admin_request/_tags.html.erb
index 22fbf13c8..22fbf13c8 100644
--- a/app/views/admin_request/_tags.rhtml
+++ b/app/views/admin_request/_tags.html.erb
diff --git a/app/views/admin_request/edit.rhtml b/app/views/admin_request/edit.html.erb
index 11c017aab..0e9c68aea 100644
--- a/app/views/admin_request/edit.rhtml
+++ b/app/views/admin_request/edit.html.erb
@@ -2,7 +2,7 @@
<%= error_messages_for 'info_request' %>
-<% form_tag '../update/' + @info_request.id.to_s do %>
+<%= form_tag admin_request_update_path(@info_request) do %>
<p><label for="info_request_title"><strong>Title</strong></label> (warning: editing this will break URLs right now)<br/>
<%= text_field 'info_request', 'title', :size => 50 %></p>
@@ -43,13 +43,13 @@
<% end %>
<p>
-<%= link_to 'Show', '../show/' + @info_request.id.to_s %> |
-<%= link_to 'List all', '../list' %>
+<%= link_to 'Show', admin_request_show_path(@info_request) %> |
+<%= link_to 'List all', admin_request_list_path %>
</p>
<hr>
-<% form_tag '../destroy/' + @info_request.id.to_s do %>
+<%= form_tag admin_request_destroy_path(@info_request) do %>
<p>
<strong>This is permanent and irreversible!</strong> <%= submit_tag 'Destroy request entirely' %>
<br>Use it mainly if someone posts private information, e.g. made a Data Protection request. It
diff --git a/app/views/admin_request/edit_comment.rhtml b/app/views/admin_request/edit_comment.html.erb
index a79c096e3..2cf49a4a8 100644
--- a/app/views/admin_request/edit_comment.rhtml
+++ b/app/views/admin_request/edit_comment.html.erb
@@ -2,7 +2,7 @@
<%= error_messages_for 'comment' %>
-<% form_tag '../update_comment/' + @comment.id.to_s do %>
+<%= form_tag admin_request_update_comment_path(@comment) do %>
<p><label for="comment_body">Body of annotation</label><br/>
<%= text_area 'comment', 'body', :rows => 10, :cols => 60 %></p>
@@ -16,7 +16,7 @@
<% end %>
<p>
-<%= link_to 'Show', '../show/' + @comment.info_request.id.to_s %> |
-<%= link_to 'List all', '../list' %>
+<%= link_to 'Show', admin_request_show_path(@comment.info_request) %> |
+<%= link_to 'List all', admin_request_list_path %>
</p>
diff --git a/app/views/admin_request/edit_outgoing.rhtml b/app/views/admin_request/edit_outgoing.html.erb
index 4932cb52f..a0c60520a 100644
--- a/app/views/admin_request/edit_outgoing.rhtml
+++ b/app/views/admin_request/edit_outgoing.html.erb
@@ -2,7 +2,7 @@
<%= error_messages_for 'outgoing_message' %>
-<% form_tag '../update_outgoing/' + @outgoing_message.id.to_s do %>
+<%= form_tag admin_request_update_outgoing_path(@outgoing_message) do %>
<p><label for="outgoing_message_body">Body of message</label><br/>
<%= text_area 'outgoing_message', 'body', :rows => 10, :cols => 60 %></p>
@@ -18,11 +18,11 @@
<% end %>
<p>
-<%= link_to 'Show', '../show/' + @outgoing_message.info_request.id.to_s %> |
-<%= link_to 'List all', '../list' %>
+<%= link_to 'Show', admin_request_show_path(@outgoing_message.info_request) %> |
+<%= link_to 'List all', admin_request_list_path %>
</p>
-<% form_tag '../destroy_outgoing' do %>
+<%= form_tag admin_request_destroy_outgoing_path do %>
<div>
<%= hidden_field_tag 'outgoing_message_id', @outgoing_message.id %>
Warning, this is permanent! ---&gt;
diff --git a/app/views/admin_request/hidden_user_explanation.html.erb b/app/views/admin_request/hidden_user_explanation.html.erb
new file mode 100644
index 000000000..d0a5d727d
--- /dev/null
+++ b/app/views/admin_request/hidden_user_explanation.html.erb
@@ -0,0 +1,10 @@
+<%= _("Dear {{name}},", :name => name_to) %>
+
+<%= _("Your request '{{request}}' at {{url}} has been reviewed by moderators.", :request => info_request.title.html_safe, :url => info_request_url) %>
+
+<%= reason == 'not_foi' ? _("We consider it is not a valid FOI request, and have therefore hidden it from other users.") : _("We consider it to be vexatious, and have therefore hidden it from other users.") %> <%= _("You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further.") %>
+
+<%= _("Yours,") %>
+
+<%= _("The {{site_name}} team.", :site_name => site_name) %>
+
diff --git a/app/views/admin_request/hidden_user_explanation.rhtml b/app/views/admin_request/hidden_user_explanation.rhtml
deleted file mode 100644
index 7084e986f..000000000
--- a/app/views/admin_request/hidden_user_explanation.rhtml
+++ /dev/null
@@ -1,10 +0,0 @@
-Dear <%= name_to %>,
-
-Your request '<%= info_request.title.html_safe %>' at <%= info_request_url %> has been reviewed by moderators.
-
-We consider it <% if reason == 'not_foi' %>is not a valid FOI request<% else %>to be vexatious<% end%>, and have therefore hidden it from other users. You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further.
-
-Yours,
-
-The <%= site_name %> team.
-
diff --git a/app/views/admin_request/list.rhtml b/app/views/admin_request/list.html.erb
index 10b39d3a2..2bd3e3326 100644
--- a/app/views/admin_request/list.rhtml
+++ b/app/views/admin_request/list.html.erb
@@ -2,7 +2,7 @@
<h1><%=@title%></h1>
-<% form_tag({}, :method => "get", :class => "form form-search") do %>
+<%= form_tag({}, :method => "get", :class => "form form-search") do %>
<%= text_field_tag 'query', params[:query], { :size => 30, :class => "input-large search-query" } %>
<%= submit_tag "Search", :class => "btn" %> (substring search, titles only)
<% end %>
diff --git a/app/views/admin_request/list_old_unclassified.rhtml b/app/views/admin_request/list_old_unclassified.rhtml
deleted file mode 100644
index 2bdfcf7f4..000000000
--- a/app/views/admin_request/list_old_unclassified.rhtml
+++ /dev/null
@@ -1,15 +0,0 @@
-<% @title = "Unclassified responses" %>
-
-<h1><%=@title%></h1>
-
-<p>Classify responses that are still unclassified <%=InfoRequest::OLD_AGE_IN_DAYS.inspect %> after response:</p>
-<ul>
-<% for @request in @info_requests %>
- <li>
- <%= request_both_links(@request) %>
- &ndash; <%=simple_date(@request.get_last_response_event.created_at)%>
- </li>
-<% end %>
-</ul>
-
-<%= will_paginate(@info_requests, :class => "paginator") %>
diff --git a/app/views/admin_request/show.rhtml b/app/views/admin_request/show.html.erb
index 72552a588..e18e319be 100644
--- a/app/views/admin_request/show.rhtml
+++ b/app/views/admin_request/show.html.erb
@@ -2,13 +2,13 @@
<h1><%=@title%></h1>
-<% form_tag '../move_request', { :class => "form form-horizontal" } do %>
+<%= form_tag admin_request_move_request_path, { :class => "form form-horizontal" } do %>
<%= hidden_field_tag 'info_request_id', @info_request.id %>
<div class="accordion" id="info_request">
<div class="accordion-group">
<div class="accordion-heading">
<span class="item-title">
- <a href="#metadata_<%=@info_request.id%>" data-toggle="collapse" data-parent="#info_request"><i class="icon-chevron-down"></i></a>Request metadata
+ <a href="#metadata_<%=@info_request.id%>" data-toggle="collapse" data-parent="#info_request"><%= chevron_down %></a>Request metadata
</span>
</div>
<div id="metadata_<%=@info_request.id%>" class="accordion-body collapse in">
@@ -16,7 +16,7 @@
<thead>
<tr>
<td colspan="2">
- <%= link_to 'Edit metadata', '../edit/' + @info_request.id.to_s, :class => "btn" %>
+ <%= link_to 'Edit metadata', admin_request_edit_path(@info_request), :class => "btn" %>
</td>
</tr>
</thead>
@@ -47,18 +47,17 @@
<% end %>
</td>
</tr>
- <% end %>
+ <% end %>
<tr>
<td>
<b>Created by</b>
</td>
<td>
<% if @info_request.is_external? %>
- <%= link_to("<i class='icon-eye-open'></i>".html_safe, @info_request.external_url, :title => "view URL of original request on external website") %>
+ <%= link_to(eye, @info_request.external_url, :title => "view URL of original request on external website") %>
<%= @info_request.public_body.name %> on behalf of <%= (@info_request.user_name || _('an anonymous user'))%> (using API)
<% else %>
- <%= link_to("<i class='icon-eye-open'></i>".html_safe, user_path(@info_request.user), :title => "view user's page on public website") %>
- <%= user_admin_link_for_request(@info_request) %>
+ <%= user_both_links(@info_request.user) %>
<%= link_to _("move..."), "#", :class => "btn btn-mini btn-warning toggle-hidden" %>
<div style="display:none;">
<strong>url_name of new user:</strong>
@@ -73,8 +72,7 @@
<b>Public authority:</b>
</td>
<td>
- <%= link_to("<i class='icon-eye-open'></i>".html_safe, public_body_path(@info_request.public_body), :title => "view authority on public website") %>
- <%= link_to(@info_request.public_body.name, admin_body_show_path(@info_request.public_body)) %>
+ <%= public_body_both_links(@info_request.public_body) %>
<%= link_to "move...", "#", :class => "btn btn-mini btn-warning toggle-hidden" %>
<div style="display:none;">
<strong>url_name of new authority:</strong>
@@ -103,7 +101,7 @@
<tfoot>
<tr>
<td colspan="2">
- <%= link_to 'Edit metadata', '../edit/' + @info_request.id.to_s, :class => "btn" %>
+ <%= link_to 'Edit metadata', admin_request_edit_path(@info_request), :class => "btn" %>
</td>
</tr>
</tfoot>
@@ -119,11 +117,11 @@
FOI officer upload URL
</label>
<div class="controls">
- <%= link_to 'Generate URL', '../generate_upload_url/' + @info_request.id.to_s, :class => "btn" %>
+ <%= link_to 'Generate URL', admin_request_generate_upload_url_path(@info_request), :class => "btn" %>
<p class="help-block">(see also option to general URLs for individual incoming messages below)</p>
</div>
</div>
- <% form_tag '../hide/' + @info_request.id.to_s, :class => "form form-inline", :id => "hide_request_form" do %>
+ <%= form_tag admin_request_hide_path(@info_request), :class => "form form-inline", :id => "hide_request_form", 'data-info-request-id' => @info_request.id.to_s do %>
<div class="control-group">
<% if @info_request.is_external? %>
<label class="control-label">Hide the request:</label>
@@ -151,7 +149,7 @@
<div class="control-group" id="request_hidden_user_subject">
<label for="request_hidden_user_subject_field" class="control-label">Subject of email:</label>
<div class="controls">
- <%= text_field_tag "subject", "Your request on WhatDoTheyKnow.com hidden", {:id => "request_hidden_user_subject_field", :cols => 100} %>
+ <%= text_field_tag "subject", _("Your request on {{site_name}} hidden", :site_name => site_name), {:id => "request_hidden_user_subject_field", :cols => 100} %>
</div>
</div>
@@ -177,7 +175,7 @@
<div class="accordion-group">
<div class="accordion-heading">
<span class="item-title">
- <a href="#event_<%=info_request_event.id%>" data-toggle="collapse" data-parent="#events"><i class="icon-chevron-right"></i></a>
+ <a href="#event_<%=info_request_event.id%>" data-toggle="collapse" data-parent="#events"><%= chevron_right %></a>
<%= _("Event {{id}}", :id => info_request_event.id) %>:
<strong>
<%=h info_request_event.event_type.humanize %><% if !info_request_event.calculated_state.nil? %>; state: <%= info_request_event.calculated_state %><% end %>
@@ -193,7 +191,7 @@
<tr>
<td>
<% if info_request_event.described_state != 'waiting_clarification' and info_request_event.event_type == 'response' %>
- <% form_tag '../mark_event_as_clarification', :class => "form form-inline admin-table-form admin-inline-form" do %>
+ <%= form_tag admin_request_clarification_path, :class => "form form-inline admin-table-form admin-inline-form" do %>
<%= hidden_field_tag 'info_request_event_id', info_request_event.id, :id => nil %>
<%= submit_tag "Was clarification request", :class => "btn btn-mini btn-primary" %>
<% end %>
@@ -209,7 +207,7 @@
</td>
<td>
<% if column_name == 'params_yaml' %>
- <%= info_request_event.params_yaml_as_html %>
+ <%= info_request_event.params_yaml_as_html.html_safe %>
<% elsif value.nil? %>
nil
<% elsif %w(text string).include?(type) %>
@@ -234,10 +232,10 @@
<% for outgoing_message in @info_request.outgoing_messages.find(:all, :order => 'created_at') %>
<div class="accordion-group">
<div class="accordion-heading">
- <a href="#outgoing_<%=outgoing_message.id%>" data-toggle="collapse" data-parent="#outgoing_messages"><i class="icon-chevron-right"></i></a>
- <a href="../edit_outgoing/<%= outgoing_message.id %>">
+ <a href="#outgoing_<%=outgoing_message.id%>" data-toggle="collapse" data-parent="#outgoing_messages"><%= chevron_right %></a>
+ <%= link_to admin_request_edit_outgoing_path(outgoing_message) do %>
#<%= outgoing_message.id %> -- <%= outgoing_message.status.humanize %> <%= outgoing_message.message_type.humanize %>
- </a>
+ <% end %>
<blockquote>
<%= truncate(outgoing_message.body, :length => 400) %>
</blockquote>
@@ -247,7 +245,7 @@
<tbody>
<tr>
<td colspan="2">
- <% form_tag '../resend', :class => "admin-table-form" do %>
+ <%= form_tag admin_request_resend_path, :class => "admin-table-form" do %>
<%= hidden_field_tag 'outgoing_message_id', outgoing_message.id %>
<%= submit_tag "Resend", :class => "btn" %>
<% end %>
@@ -260,7 +258,7 @@
</td>
<td>
<% if column_name == 'body' %>
- <%= simple_format(truncate(outgoing_message.body, :length => 400, :omission => link_to("...", "#", :class => "toggle-hidden" ))) %>
+ <%= simple_format(truncate(h(outgoing_message.body), :length => 400, :omission => link_to("...", "#", :class => "toggle-hidden" )).html_safe) %>
<div style="display:none;"><%= simple_format( outgoing_message.body ) %></div>
<% else %>
<%= admin_value(value) %>
@@ -280,7 +278,7 @@
<% for incoming_message in @info_request.incoming_messages.find(:all, :order => 'created_at') %>
<div class="accordion-group">
<div class="accordion-heading">
- <a href="#incoming_<%=incoming_message.id%>" data-toggle="collapse" data-parent="#incoming_messages"><i class="icon-chevron-right"></i></a>
+ <a href="#incoming_<%=incoming_message.id%>" data-toggle="collapse" data-parent="#incoming_messages"><%= chevron_right %></a>
<%=incoming_message.id%> -- <%= h(incoming_message.mail_from) %> <%=_("at")%> <%=admin_value(incoming_message.sent_at)%>
<blockquote class="incoming-message">
<% if !incoming_message.cached_main_body_text_folded.nil? %>
@@ -305,10 +303,10 @@
</td>
<td>
<% if column_name =~ /^cached_.*?$/ %>
- <%= simple_format( truncate(value, :length => 400, :omission => link_to("...", "#", :class => "toggle-hidden"))) %>
+ <%= simple_format( truncate(h(value), :length => 400, :omission => link_to("...", "#", :class => "toggle-hidden")).html_safe) %>
<div style="display:none;"><%= simple_format(value) %></div>
<% else %>
- <%= simple_format(value) %>
+ <%= simple_format(value.to_s) %>
<% end %>
</td>
</tr>
@@ -327,13 +325,13 @@
<% for comment in @info_request.comments %>
<div class="accordion-group">
<div class="accordion-heading">
- <a href="#comment_<%=comment.id%>" data-toggle="collapse" data-parent="#comments"><i class="icon-chevron-right"></i></a>
- <a href="../edit_comment/<%= comment.id %>">
+ <a href="#comment_<%=comment.id%>" data-toggle="collapse" data-parent="#comments"><%= chevron_right %></a>
+ <%= link_to admin_request_edit_comment_path(comment) do %>
#<%=comment.id%>
--
<%=h(comment.user.name)%>
<%=admin_value(comment.created_at)%>
- </a>
+ <% end %>
<blockquote class="incoming-message">
<%= truncate(comment.body, :length => 400) %>
</blockquote>
@@ -343,9 +341,7 @@
<tbody>
<tr>
<td colspan="2">
- By <%= link_to("<i class='icon-eye-open'></i>".html_safe, user_path(comment.user), :title => "view user's page on public website") %>
-
- <%= link_to(h(comment.user.name), admin_user_show_path(comment.user)) %>
+ By <%= user_both_links(comment.user) %>
</td>
</tr>
<% comment.for_admin_column do |name, value, type, column_name |%>
diff --git a/app/views/admin_request/show_raw_email.rhtml b/app/views/admin_request/show_raw_email.html.erb
index 72c782ad6..72c782ad6 100644
--- a/app/views/admin_request/show_raw_email.rhtml
+++ b/app/views/admin_request/show_raw_email.html.erb
diff --git a/app/views/admin_track/_some_tracks.rhtml b/app/views/admin_track/_some_tracks.html.erb
index 8ae7bd5c1..e9facfb5d 100644
--- a/app/views/admin_track/_some_tracks.rhtml
+++ b/app/views/admin_track/_some_tracks.html.erb
@@ -10,7 +10,7 @@
<% for track_thing in track_things %>
<div class="accordion-group">
<div class="accordion-heading">
- <a href="#track_<%=track_thing.id%>" data-toggle="collapse" data-parent="requests"><i class="icon-chevron-right"></i></a>
+ <a href="#track_<%=track_thing.id%>" data-toggle="collapse" data-parent="requests"><%= chevron_right %></a>
<%=track_thing.id%>:
<% if track_thing.public_body_id %>
<%= link_to "<code>#{h track_thing.track_query}</code>".html_safe, public_body_path(track_thing.public_body) %>
@@ -23,7 +23,7 @@
<% end %>
<% if @admin_user.nil? %>
<%# Do not show this on the list of tracks on the user page, because it’s rather repetitive there %>
- tracked by <%=link_to '<i class="icon-eye-open"></i>'.html_safe, admin_user_show_path(track_thing.tracking_user) %> <%=link_to h(track_thing.tracking_user.name), user_path(track_thing.tracking_user) %>
+ tracked by <%= user_both_links track_thing.tracking_user %>
<% end %>
</div>
<div id="track_<%=track_thing.id%>" class="accordion-body collapse">
@@ -32,7 +32,7 @@
<% if include_destroy %>
<tr>
<td colspan="2">
- <% form_tag '../../user/destroy_track', :class => "form form-inline admin-table-form" do %>
+ <%= form_tag admin_user_destroy_track_path, :class => "form form-inline admin-table-form" do %>
<div>
<%= hidden_field_tag 'track_id', track_thing.id %>
<%= submit_tag "Destroy track", :class => "btn btn-warning" %>
@@ -70,3 +70,5 @@
<% end %>
</div>
<% end %>
+</table>
+
diff --git a/app/views/admin_track/list.rhtml b/app/views/admin_track/list.html.erb
index 9cff5635b..5e967a926 100644
--- a/app/views/admin_track/list.rhtml
+++ b/app/views/admin_track/list.html.erb
@@ -2,7 +2,7 @@
<h1><%=@title%></h1>
-<% form_tag({}, :method => "get", :class => "form form-search") do %>
+<%= form_tag({}, :method => "get", :class => "form form-search") do %>
<%= text_field_tag 'query', params[:query], { :size => 30, :class => "input-large search-query" } %>
<%= submit_tag "Search", :class => "btn" %> (substring search the query – so use url_names_for_a_particular_request_or_authority_or_person)
<% end %>
diff --git a/app/views/admin_user/_form.rhtml b/app/views/admin_user/_form.html.erb
index 756806d2a..e7175d09c 100644
--- a/app/views/admin_user/_form.rhtml
+++ b/app/views/admin_user/_form.html.erb
@@ -41,7 +41,7 @@
user from filing new requests, making annotations or messaging other users;
the text is shown in public on the user's page and when they try to do a
forbidden action; write in the second person (you); see
- <%= link_to 'banned users', '../banned' %> for examples</small>
+ <%= link_to 'banned users', admin_user_list_banned_path %> for examples</small>
</div>
</div>
</div>
diff --git a/app/views/admin_user/_user_table.rhtml b/app/views/admin_user/_user_table.html.erb
index a4227e017..57066bf3f 100644
--- a/app/views/admin_user/_user_table.rhtml
+++ b/app/views/admin_user/_user_table.html.erb
@@ -3,7 +3,7 @@
<div class="accordion-group">
<div class="accordion-heading accordion-toggle">
<span class="item-title">
- <a href="#user_<%=user.id%>" data-toggle="collapse" data-parent="requests"><i class="icon-chevron-right"></i></a>
+ <a href="#user_<%=user.id%>" data-toggle="collapse" data-parent="requests"><%= chevron_right %></a>
<% if user.admin_level == "super" %>
<span class="label">superuser</span>
<% end %>
diff --git a/app/views/admin_user/edit.html.erb b/app/views/admin_user/edit.html.erb
new file mode 100644
index 000000000..e641a13d6
--- /dev/null
+++ b/app/views/admin_user/edit.html.erb
@@ -0,0 +1,11 @@
+<h1><%=@title%></h1>
+
+<%= form_tag admin_user_update_path(@admin_user), :class => "form form-horizontal" do %>
+ <%= render :partial => 'form' %>
+ <div class="form-actions">
+ <%= submit_tag 'Save', :accesskey => 's', :class => "btn btn-primary" %>
+ </div>
+<% end %>
+
+<%= link_to 'Show', admin_user_show_path(@admin_user), :class => "btn" %>
+<%= link_to 'List all', admin_user_list_path, :class => "btn" %>
diff --git a/app/views/admin_user/edit.rhtml b/app/views/admin_user/edit.rhtml
deleted file mode 100644
index c3ee3012b..000000000
--- a/app/views/admin_user/edit.rhtml
+++ /dev/null
@@ -1,21 +0,0 @@
-<h1><%=@title%></h1>
-
-<% form_tag "../update/#{@admin_user.id}", :class => "form form-horizontal" do %>
- <%= render :partial => 'form' %>
- <div class="form-actions">
- <%= submit_tag 'Save', :accesskey => 's', :class => "btn btn-primary" %>
- </div>
-<% end %>
-
-<%= link_to 'Show', "../show/#{@admin_user.id}", :class => "btn" %>
-<%= link_to 'List all', '../list', :class => "btn" %>
-
-<% if false #@admin_user.info_requests.size == 0 %>
- <% form_tag('../destroy/' + @admin_user.id.to_s) do %>
- <p>
- <%= hidden_field_tag(:admin_user_id, { :value => @admin_user.id } ) %>
- <%= submit_tag "Destroy " + @admin_user.name %> (this is permanent!)
- </p>
- <% end %>
-<% end %>
-
diff --git a/app/views/admin_user/list.rhtml b/app/views/admin_user/list.html.erb
index afe166f1f..b1238f87a 100644
--- a/app/views/admin_user/list.rhtml
+++ b/app/views/admin_user/list.html.erb
@@ -2,10 +2,10 @@
<h1><%=@title%></h1>
-<% form_tag({}, :method => "get", :class => "form form-search") do %>
+<%= form_tag({}, :method => "get", :class => "form form-search") do %>
<%= text_field_tag 'query', params[:query], { :size => 30, :class => "input-large search-query"} %>
<%= submit_tag "Search", :class => "btn" %> (substring search, names and emails)
- <%= link_to 'Banned users', 'banned', :class => "btn btn-info" %>
+ <%= link_to 'Banned users', admin_user_list_banned_path, :class => "btn btn-info" %>
<% end %>
<%= render :partial => 'user_table', :locals => { :users => @admin_users, :banned_column => false } %>
diff --git a/app/views/admin_user/list_banned.rhtml b/app/views/admin_user/list_banned.html.erb
index be2d45399..e535415e6 100644
--- a/app/views/admin_user/list_banned.rhtml
+++ b/app/views/admin_user/list_banned.html.erb
@@ -2,7 +2,7 @@
<h1><%=@title%></h1>
-<p><%= link_to 'List all', 'list' %></p>
+<p><%= link_to 'List all', admin_user_list_path %></p>
<%= render :partial => 'user_table', :locals => { :users => @banned_users, :banned_column => true } %>
diff --git a/app/views/admin_user/show.rhtml b/app/views/admin_user/show.html.erb
index ccf2694b9..c93c08e50 100644
--- a/app/views/admin_user/show.rhtml
+++ b/app/views/admin_user/show.html.erb
@@ -4,7 +4,7 @@
<% if @admin_user.profile_photo %>
<div class="user_photo_on_admin">
- <% form_tag "../clear_profile_photo/#{@admin_user.id}", :multipart => true, :class => "form" do %>
+ <%= form_tag admin_clear_profile_photo_path(@admin_user), :multipart => true, :class => "form" do %>
<img src="<%= get_profile_photo_url(:url_name => @admin_user.url_name) %>">
<br>
<%= submit_tag "Clear photo", :class => "btn btn-info" %>
@@ -32,13 +32,13 @@
<%=link_to @admin_user.email, "mailto:#{h @admin_user.email}"%>
<% elsif column_name == 'email_bounce_message' %>
<% unless @admin_user.email_bounce_message.empty? %>
- <%= link_to _("See bounce message"), admin_user_show_bounce(@admin_user.id) %>
+ <%= link_to _("See bounce message"), admin_user_show_bounce_path(@admin_user.id) %>
<% end %>
<% else %>
<%=h admin_value(value)%>
<% end %>
<% if column_name == 'email_bounced_at' && !@admin_user.email_bounced_at.nil? %>
- <% form_tag "../clear_bounce/#{@admin_user.id}", :class => "form form-inline" do %>
+ <%= form_tag admin_user_clear_bounce_path(@admin_user), :class => "form form-inline" do %>
<input type="submit" name="action" value="Clear bounce" class="btn btn-info">
<% end %>
<% end %>
@@ -49,9 +49,9 @@
</table>
-<%= link_to 'Edit', '../edit/' + @admin_user.id.to_s, :class => "btn btn-primary" %>
+<%= link_to 'Edit', admin_user_edit_path(@admin_user), :class => "btn btn-primary" %>
<%= link_to 'Public page', user_path(@admin_user), :class => "btn" %>
-<%= link_to "Log in as #{@admin_user.name} (also confirms their email)", "../login_as/#{@admin_user.id}", :class => "btn btn-info" %>
+<%= link_to "Log in as #{@admin_user.name} (also confirms their email)", admin_user_login_as_path(@admin_user), :class => "btn btn-info" %>
<hr>
diff --git a/app/views/admin_user/show_bounce_message.rhtml b/app/views/admin_user/show_bounce_message.html.erb
index ad643a13e..ad643a13e 100644
--- a/app/views/admin_user/show_bounce_message.rhtml
+++ b/app/views/admin_user/show_bounce_message.html.erb
diff --git a/app/views/comment/_comment_form.rhtml b/app/views/comment/_comment_form.html.erb
index 120929643..b78532768 100644
--- a/app/views/comment/_comment_form.rhtml
+++ b/app/views/comment/_comment_form.html.erb
@@ -1,4 +1,4 @@
-<% form_for(:comment, @comment, :url => { :controller => "comment", :action => "new", :type => "request" }, :html => { :id => 'comment_form' } ) do |f| %>
+<%= form_for(@comment, :as => :comment, :url => { :controller => "comment", :action => "new", :type => "request" }, :html => { :id => 'comment_form' } ) do |f| %>
<p>
<%= f.text_area :body, :rows => 10, :cols => 55 %>
</p>
@@ -13,7 +13,7 @@
<%= hidden_field_tag 'submitted_comment', 1 %>
<%= hidden_field_tag 'preview', 1 %>
<%= submit_tag _('Preview your annotation') %>
- <%= raw(_(' (<strong>no ranty</strong> politics, read our <a href="%s">moderation policy</a>)') % [help_requesting_path+'#moderation']) %>
+ <%= _(' (<strong>no ranty</strong> politics, read our <a href="{{url}}">moderation policy</a>)', :url => (help_requesting_path+'#moderation').html_safe) %>
</p>
<% end %>
diff --git a/app/views/comment/_single_comment.rhtml b/app/views/comment/_single_comment.html.erb
index 421a9d4ba..421a9d4ba 100644
--- a/app/views/comment/_single_comment.rhtml
+++ b/app/views/comment/_single_comment.html.erb
diff --git a/app/views/comment/new.rhtml b/app/views/comment/new.html.erb
index 578732cdb..578732cdb 100644
--- a/app/views/comment/new.rhtml
+++ b/app/views/comment/new.html.erb
diff --git a/app/views/comment/preview.rhtml b/app/views/comment/preview.html.erb
index 702bd9a9b..cd966e6a5 100644
--- a/app/views/comment/preview.rhtml
+++ b/app/views/comment/preview.html.erb
@@ -1,6 +1,6 @@
<% @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| %>
+<%= form_for(@comment, :html => { :id => 'preview_form' }, :url => { :controller => "comment", :action => "new", :type => "request" } ) do |f| %>
<h1><%= _('Now preview your annotation') %></h1>
diff --git a/app/views/contact_mailer/from_admin_message.rhtml b/app/views/contact_mailer/from_admin_message.text.erb
index 4169d8d3a..4169d8d3a 100644
--- a/app/views/contact_mailer/from_admin_message.rhtml
+++ b/app/views/contact_mailer/from_admin_message.text.erb
diff --git a/app/views/contact_mailer/to_admin_message.rhtml b/app/views/contact_mailer/to_admin_message.text.erb
index dc9b1090b..dc9b1090b 100644
--- a/app/views/contact_mailer/to_admin_message.rhtml
+++ b/app/views/contact_mailer/to_admin_message.text.erb
diff --git a/app/views/contact_mailer/user_message.rhtml b/app/views/contact_mailer/user_message.text.erb
index afa1494db..afa1494db 100644
--- a/app/views/contact_mailer/user_message.rhtml
+++ b/app/views/contact_mailer/user_message.text.erb
diff --git a/app/views/general/_advanced_search_tips.rhtml b/app/views/general/_advanced_search_tips.html.erb
index 08ce04439..08ce04439 100644
--- a/app/views/general/_advanced_search_tips.rhtml
+++ b/app/views/general/_advanced_search_tips.html.erb
diff --git a/app/views/general/_before_body_end.rhtml b/app/views/general/_before_body_end.html.erb
index 25fdf4684..25fdf4684 100644
--- a/app/views/general/_before_body_end.rhtml
+++ b/app/views/general/_before_body_end.html.erb
diff --git a/app/views/general/_before_head_end.rhtml b/app/views/general/_before_head_end.html.erb
index 8886745ab..8886745ab 100644
--- a/app/views/general/_before_head_end.rhtml
+++ b/app/views/general/_before_head_end.html.erb
diff --git a/app/views/general/_credits.rhtml b/app/views/general/_credits.html.erb
index b1a9ce05e..b1a9ce05e 100644
--- a/app/views/general/_credits.rhtml
+++ b/app/views/general/_credits.html.erb
diff --git a/app/views/general/_custom_state_descriptions.rhtml b/app/views/general/_custom_state_descriptions.html.erb
index 913a6d50a..913a6d50a 100644
--- a/app/views/general/_custom_state_descriptions.rhtml
+++ b/app/views/general/_custom_state_descriptions.html.erb
diff --git a/app/views/general/_custom_state_transitions_complete.rhtml b/app/views/general/_custom_state_transitions_complete.html.erb
index e69de29bb..e69de29bb 100644
--- a/app/views/general/_custom_state_transitions_complete.rhtml
+++ b/app/views/general/_custom_state_transitions_complete.html.erb
diff --git a/app/views/general/_custom_state_transitions_pending.rhtml b/app/views/general/_custom_state_transitions_pending.html.erb
index e69de29bb..e69de29bb 100644
--- a/app/views/general/_custom_state_transitions_pending.rhtml
+++ b/app/views/general/_custom_state_transitions_pending.html.erb
diff --git a/app/views/general/_footer.rhtml b/app/views/general/_footer.html.erb
index 36f3919f0..990093694 100644
--- a/app/views/general/_footer.rhtml
+++ b/app/views/general/_footer.html.erb
@@ -1,6 +1,6 @@
<div id="footer">
<%= link_to _("Contact {{site_name}}", :site_name => site_name), help_contact_path %>
-| <img src="/images/twitter-16.png" alt="twitter icon" class="twitter-icon"> <a href="https://twitter.com/<%= Configuration::twitter_username %>"><%= _("Follow us on twitter") %></a>
+| <img src="/images/twitter-16.png" alt="twitter icon" class="twitter-icon"> <a href="https://twitter.com/<%= AlaveteliConfiguration::twitter_username %>"><%= _("Follow us on twitter") %></a>
<%= render :partial => 'general/credits' %>
</div>
<div class="after-footer">&nbsp;</div>
diff --git a/app/views/general/_frontpage_bodies_list.rhtml b/app/views/general/_frontpage_bodies_list.html.erb
index 54400602b..75daea41d 100644
--- a/app/views/general/_frontpage_bodies_list.rhtml
+++ b/app/views/general/_frontpage_bodies_list.html.erb
@@ -6,7 +6,7 @@
<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 %>
+ <%= n_('{{count}} request', '{{count}} requests', popular_body.info_requests_count, :count => popular_body.info_requests_count) %>
</li>
<% end%>
</ul>
diff --git a/app/views/general/_frontpage_intro_sentence.rhtml b/app/views/general/_frontpage_intro_sentence.html.erb
index 74b849fc9..74b849fc9 100644
--- a/app/views/general/_frontpage_intro_sentence.rhtml
+++ b/app/views/general/_frontpage_intro_sentence.html.erb
diff --git a/app/views/general/_frontpage_new_request.rhtml b/app/views/general/_frontpage_new_request.html.erb
index 499b60eb5..499b60eb5 100644
--- a/app/views/general/_frontpage_new_request.rhtml
+++ b/app/views/general/_frontpage_new_request.html.erb
diff --git a/app/views/general/_frontpage_requests_list.rhtml b/app/views/general/_frontpage_requests_list.html.erb
index fa498dfa7..fa498dfa7 100644
--- a/app/views/general/_frontpage_requests_list.rhtml
+++ b/app/views/general/_frontpage_requests_list.html.erb
diff --git a/app/views/general/_frontpage_search_box.rhtml b/app/views/general/_frontpage_search_box.html.erb
index 890602416..890602416 100644
--- a/app/views/general/_frontpage_search_box.rhtml
+++ b/app/views/general/_frontpage_search_box.html.erb
diff --git a/app/views/general/_locale_switcher.rhtml b/app/views/general/_locale_switcher.html.erb
index d0040bb0d..d0040bb0d 100644
--- a/app/views/general/_locale_switcher.rhtml
+++ b/app/views/general/_locale_switcher.html.erb
diff --git a/app/views/general/_localised_datepicker.rhtml b/app/views/general/_localised_datepicker.html.erb
index ec6593ea0..ec6593ea0 100644
--- a/app/views/general/_localised_datepicker.rhtml
+++ b/app/views/general/_localised_datepicker.html.erb
diff --git a/app/views/general/_orglink.rhtml b/app/views/general/_orglink.html.erb
index 66002c021..66002c021 100644
--- a/app/views/general/_orglink.rhtml
+++ b/app/views/general/_orglink.html.erb
diff --git a/app/views/general/_popup_banner.rhtml b/app/views/general/_popup_banner.html.erb
index 8b1378917..8b1378917 100644
--- a/app/views/general/_popup_banner.rhtml
+++ b/app/views/general/_popup_banner.html.erb
diff --git a/app/views/general/_stylesheet_includes.rhtml b/app/views/general/_stylesheet_includes.html.erb
index 7a03680f8..5b6e12258 100644
--- a/app/views/general/_stylesheet_includes.rhtml
+++ b/app/views/general/_stylesheet_includes.html.erb
@@ -16,6 +16,6 @@
<![endif]-->
<!-- the following method for customising CSS is deprecated; see `doc/THEMES.md` for detail -->
<%= stylesheet_link_tag 'custom', :title => "Main", :rel => "stylesheet" %>
- <% if Configuration::force_registration_on_new_request %>
+ <% if AlaveteliConfiguration::force_registration_on_new_request %>
<%= stylesheet_link_tag 'jquery.fancybox-1.3.4', :rel => "stylesheet" %>
<% end %>
diff --git a/app/views/general/_topnav.rhtml b/app/views/general/_topnav.html.erb
index c7f2cedea..c7f2cedea 100644
--- a/app/views/general/_topnav.rhtml
+++ b/app/views/general/_topnav.html.erb
diff --git a/app/views/general/blog.rhtml b/app/views/general/blog.html.erb
index d42b32282..7146aab5d 100644
--- a/app/views/general/blog.rhtml
+++ b/app/views/general/blog.html.erb
@@ -7,9 +7,9 @@
<img src="/images/twitter-16.png" alt="twitter icon" class="twitter-icon"> <a href="https://twitter.com/<%= @twitter_user %>"><%= _("Follow us on twitter") %></a><br/><br/>
<img src="/images/feed-16.png" alt="RSS icon"> <a href="<%= @feed_url %>"><%= _("Subscribe to blog") %></a>
</div>
- <% if Configuration::twitter_widget_id %>
+ <% if AlaveteliConfiguration::twitter_widget_id %>
<div id="twitter">
- <a class="twitter-timeline" data-dnt=true href="https://twitter.com/<%= Configuration::twitter_username %>" data-widget-id="<%= Configuration::twitter_widget_id %>">Tweets by @<%= Configuration::twitter_username %></a>
+ <a class="twitter-timeline" data-dnt=true href="https://twitter.com/<%= AlaveteliConfiguration::twitter_username %>" data-widget-id="<%= AlaveteliConfiguration::twitter_widget_id %>">Tweets by @<%= AlaveteliConfiguration::twitter_username %></a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
</div>
<% end %>
@@ -20,15 +20,15 @@
<h1><%=@title %></h1>
<div id="blog">
- <% for item in @blog_items: %>
+ <% @blog_items.each do |item| %>
<div class="blog_post">
- <h2 id="<%= Time.parse(item['pubDate'][0]).to_i %>"><a href="<%=item['link']%>"><%=h item['title'] %></a></h2>
- <p class="subtitle"><%= _("Posted on {{date}} by {{author}}", :date=>simple_date(Time.parse(item['pubDate'][0])), :author=>item['creator']) %></p>
+ <h2 id="<%= Time.parse(item['pubDate'][0]).to_i %>"><a href="<%=item['link'][0]%>"><%=h item['title'][0] %></a></h2>
+ <p class="subtitle"><%= _("Posted on {{date}} by {{author}}", :date=>simple_date(Time.parse(item['pubDate'][0])), :author=>item['creator'][0]) %></p>
<div>
<% if item['encoded'] %>
- <%= raw item['encoded'] %>
+ <%= raw item['encoded'][0] %>
<% elsif item['description'] %>
- <%= raw item['description'] %>
+ <%= raw item['description'][0] %>
<% end %>
</div>
<p><em>
diff --git a/app/views/general/custom_css.rhtml b/app/views/general/custom_css.html.erb
index 0def82ed0..0def82ed0 100644
--- a/app/views/general/custom_css.rhtml
+++ b/app/views/general/custom_css.html.erb
diff --git a/app/views/general/exception_caught.rhtml b/app/views/general/exception_caught.html.erb
index f8fe4343b..8d78e2e92 100644
--- a/app/views/general/exception_caught.rhtml
+++ b/app/views/general/exception_caught.html.erb
@@ -7,7 +7,7 @@
<ul>
<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 %>
+ <%= form_tag({:controller => "general", :action => "search_redirect"}, {:id => "search_form" }) do %>
<%= text_field_tag 'query', params[:query], { :size => 30, :title => "type your search term here" } %>
<%= submit_tag _("Search") %>
<% end %>
diff --git a/app/views/general/frontpage.rhtml b/app/views/general/frontpage.html.erb
index 6eceb3b28..bf5261d15 100644
--- a/app/views/general/frontpage.rhtml
+++ b/app/views/general/frontpage.html.erb
@@ -1,4 +1,4 @@
-<%# TODO: Cache for 5 minutes %>
+<% # TODO: Cache for 5 minutes %>
<div id="frontpage_splash">
<div id="left_column">
<%= render :partial => "frontpage_new_request" %>
diff --git a/app/views/general/search.rhtml b/app/views/general/search.html.erb
index 50f9f9286..6234687f2 100644
--- a/app/views/general/search.rhtml
+++ b/app/views/general/search.html.erb
@@ -16,13 +16,13 @@
<% if @query.nil? %>
<h1><%= _("Search") %></h1>
<% else %>
- <h1><%= _("Search results") %></h1>
+ <h1><%= _("Search results") %></h1>
<% end%>
<% if @advanced %>
<div id="advanced-search">
<p><%= _('To use the advanced search, combine phrases and labels as described in the search tips below.') %></p>
- <% form_tag(advanced_search_url, :method => "get") do %>
+ <%= form_tag(advanced_search_url, :method => "get") do %>
<p>
<%= text_field_tag :query, @query, { :size => 60 } %>
<%= hidden_field_tag 'sortby', @inputted_sortby %>
@@ -35,7 +35,7 @@
<% end %>
</div>
<% else %>
- <% form_tag(request.url, {:method => "get", :id => "search_form"}) do %>
+ <%= form_tag(request.url, {:method => "get", :id => "search_form"}) do %>
<p>
<%= text_field_tag 'query', params[:query], { :size => 40, :title => "type your search term here" } %>
<%= hidden_field_tag 'sortby', @inputted_sortby %>
@@ -56,7 +56,7 @@
["all", _("everything")]]%>
<% for variety, label in labels %>
<% if @variety_postfix != variety %>
- <%= link_to label, search_path([params[:query], variety, @sort_postfix]) %>
+ <%= link_to label, search_path([params[:query], variety, @sort_postfix]) %>
<% else %>
<%= label %>
<% end %>
@@ -94,7 +94,7 @@
<div>
<h3 class="title"><%= _("Search in") %></h3>
- <% [["sent", _("messages from users")],
+ <% [["sent", _("messages from users")],
["response", _("messages from authorities")],
["comment", _("comments")]].each_with_index do |item, index|
variety, title = item %>
@@ -110,14 +110,14 @@
<label class="form_label" for="query">&nbsp;<%= _("and") %></label>
<%= text_field_tag(:request_date_before, params[:request_date_before], {:class => "use-datepicker", :size => 10}) %>
</div>
- </div>
+ </div>
<% end %>
-
+
<div>
<%= submit_tag _("Filter") if @variety_postfix == "requests"%>
</div>
<% end # Search form%>
-
+
<% end # if @advanced %>
<% if !@query.nil? %>
@@ -164,7 +164,7 @@
<% if @spelling_correction %>
<p id="did_you_mean"><%= _('Did you mean: {{correction}}', :correction => search_link(@spelling_correction)) %></p>
<% end %>
- <p><%= raw(_('<a href="%s">Browse all</a> or <a href="%s">ask us to add one</a>.') % [list_public_bodies_default_url, help_requesting_path + '#missing_body']) %></p>
+ <p><%= raw(_('<a href="{{browse_url}}">Browse all</a> or <a href="{{add_url}}">ask us to add one</a>.', :browse_url => list_public_bodies_default_path.html_safe, :add_url => (help_requesting_path + '#missing_body').html_safe)) %></p>
<% end %>
</div>
diff --git a/app/views/help/_sidebar.rhtml b/app/views/help/_sidebar.html.erb
index 2b7ed5647..2b7ed5647 100644
--- a/app/views/help/_sidebar.rhtml
+++ b/app/views/help/_sidebar.html.erb
diff --git a/app/views/help/_why_they_should_reply_by_email.rhtml b/app/views/help/_why_they_should_reply_by_email.html.erb
index faaa2b2e2..faaa2b2e2 100644
--- a/app/views/help/_why_they_should_reply_by_email.rhtml
+++ b/app/views/help/_why_they_should_reply_by_email.html.erb
diff --git a/app/views/help/about.rhtml b/app/views/help/about.html.erb
index 477f0e750..477f0e750 100644
--- a/app/views/help/about.rhtml
+++ b/app/views/help/about.html.erb
diff --git a/app/views/help/alaveteli.rhtml b/app/views/help/alaveteli.html.erb
index 6210f9f24..6210f9f24 100644
--- a/app/views/help/alaveteli.rhtml
+++ b/app/views/help/alaveteli.html.erb
diff --git a/app/views/help/api.rhtml b/app/views/help/api.html.erb
index 57390d65a..57390d65a 100644
--- a/app/views/help/api.rhtml
+++ b/app/views/help/api.html.erb
diff --git a/app/views/help/contact.rhtml b/app/views/help/contact.html.erb
index b1b5d4f24..ad89db9ec 100644
--- a/app/views/help/contact.rhtml
+++ b/app/views/help/contact.html.erb
@@ -40,13 +40,13 @@
<% end %>
</div>
-<% form_for :contact do |f| %>
+<%= form_for :contact do |f| %>
<% if not @user %>
<p>
<label class="form_label" for="contact_name">Your name:</label>
<%= f.text_field :name, :size => 20 %>
- (or <%= link_to "sign in", signin_path(:r => request.request_uri) %>)
+ (or <%= link_to "sign in", signin_path(:r => request.fullpath) %>)
</p>
<p>
diff --git a/app/views/help/credits.rhtml b/app/views/help/credits.html.erb
index 02f1e40e8..02f1e40e8 100644
--- a/app/views/help/credits.rhtml
+++ b/app/views/help/credits.html.erb
diff --git a/app/views/help/officers.rhtml b/app/views/help/officers.html.erb
index 6db706f78..6db706f78 100644
--- a/app/views/help/officers.rhtml
+++ b/app/views/help/officers.html.erb
diff --git a/app/views/help/privacy.rhtml b/app/views/help/privacy.html.erb
index 8e5293892..8e5293892 100644
--- a/app/views/help/privacy.rhtml
+++ b/app/views/help/privacy.html.erb
diff --git a/app/views/help/requesting.rhtml b/app/views/help/requesting.html.erb
index e7cfdd199..e7cfdd199 100644
--- a/app/views/help/requesting.rhtml
+++ b/app/views/help/requesting.html.erb
diff --git a/app/views/help/unhappy.rhtml b/app/views/help/unhappy.html.erb
index 79e3f8273..79e3f8273 100644
--- a/app/views/help/unhappy.rhtml
+++ b/app/views/help/unhappy.html.erb
diff --git a/app/views/holiday/due_date.rhtml b/app/views/holiday/due_date.html.erb
index 6f8c2e51a..6f8c2e51a 100644
--- a/app/views/holiday/due_date.rhtml
+++ b/app/views/holiday/due_date.html.erb
diff --git a/app/views/layouts/admin.rhtml b/app/views/layouts/admin.html.erb
index a58913892..a58913892 100644
--- a/app/views/layouts/admin.rhtml
+++ b/app/views/layouts/admin.html.erb
diff --git a/app/views/layouts/contact_mailer.rhtml b/app/views/layouts/contact_mailer.html.erb
index 3cdc75009..3cdc75009 100644
--- a/app/views/layouts/contact_mailer.rhtml
+++ b/app/views/layouts/contact_mailer.html.erb
diff --git a/app/views/layouts/default.rhtml b/app/views/layouts/default.html.erb
index a66b85e02..023a93138 100644
--- a/app/views/layouts/default.rhtml
+++ b/app/views/layouts/default.html.erb
@@ -43,7 +43,7 @@
<%= render :partial => 'general/before_head_end' %>
</head>
<body class="<%= 'front' if params[:action] == 'frontpage' %>">
- <% if Configuration::force_registration_on_new_request && !@user %>
+ <% if AlaveteliConfiguration::force_registration_on_new_request && !@user %>
<%= javascript_include_tag 'jquery.fancybox-1.3.4.pack' %>
<script type="text/javascript">
$(document).ready(function() {
@@ -93,9 +93,9 @@
<% end %>
- <%= link_to _("Sign out"), signout_path(:r => request.request_uri) %>
+ <%= link_to _("Sign out"), signout_path(:r => request.fullpath) %>
<% else %>
- <%= link_to _("Sign in or sign up"), signin_path(:r => request.request_uri) %>
+ <%= link_to _("Sign in or sign up"), signin_path(:r => request.fullpath) %>
<% end %>
</div>
<% end %>
@@ -140,13 +140,13 @@
<input type="text">
</div>
<%
- unless Configuration::ga_code.empty? || (@user && @user.super?) %>
+ unless AlaveteliConfiguration::ga_code.empty? || (@user && @user.super?) %>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
- var pageTracker = _gat._getTracker("<%= Configuration::ga_code %>");
+ var pageTracker = _gat._getTracker("<%= AlaveteliConfiguration::ga_code %>");
pageTracker._trackPageview();
</script>
diff --git a/app/views/layouts/no_chrome.rhtml b/app/views/layouts/no_chrome.html.erb
index 120ba6f28..120ba6f28 100644
--- a/app/views/layouts/no_chrome.rhtml
+++ b/app/views/layouts/no_chrome.html.erb
diff --git a/app/views/layouts/outgoing_mailer.rhtml b/app/views/layouts/outgoing_mailer.html.erb
index 8bf8ef216..8bf8ef216 100644
--- a/app/views/layouts/outgoing_mailer.rhtml
+++ b/app/views/layouts/outgoing_mailer.html.erb
diff --git a/app/views/layouts/request_mailer.rhtml b/app/views/layouts/request_mailer.html.erb
index 3cdc75009..3cdc75009 100644
--- a/app/views/layouts/request_mailer.rhtml
+++ b/app/views/layouts/request_mailer.html.erb
diff --git a/app/views/layouts/user_mailer.rhtml b/app/views/layouts/user_mailer.html.erb
index 3cdc75009..3cdc75009 100644
--- a/app/views/layouts/user_mailer.rhtml
+++ b/app/views/layouts/user_mailer.html.erb
diff --git a/app/views/outgoing_mailer/_followup_footer.rhtml b/app/views/outgoing_mailer/_followup_footer.text.erb
index d7bc7c5aa..d7bc7c5aa 100644
--- a/app/views/outgoing_mailer/_followup_footer.rhtml
+++ b/app/views/outgoing_mailer/_followup_footer.text.erb
diff --git a/app/views/outgoing_mailer/followup.rhtml b/app/views/outgoing_mailer/followup.text.erb
index 049ebc881..049ebc881 100644
--- a/app/views/outgoing_mailer/followup.rhtml
+++ b/app/views/outgoing_mailer/followup.text.erb
diff --git a/app/views/outgoing_mailer/initial_request.rhtml b/app/views/outgoing_mailer/initial_request.text.erb
index 5c418ecc7..5c418ecc7 100644
--- a/app/views/outgoing_mailer/initial_request.rhtml
+++ b/app/views/outgoing_mailer/initial_request.text.erb
diff --git a/app/views/public_body/_alphabet.rhtml b/app/views/public_body/_alphabet.html.erb
index 46b345c2a..111da5b3b 100644
--- a/app/views/public_body/_alphabet.rhtml
+++ b/app/views/public_body/_alphabet.html.erb
@@ -1,3 +1,3 @@
-<% "A".upto("Z") do |l| -%>
+<%= "A".upto("Z") do |l| -%>
<%= link_to_unless (@tag == l), l, list_public_bodies_path(:tag => l.downcase) %>
<% end %>
diff --git a/app/views/public_body/_body_listing.rhtml b/app/views/public_body/_body_listing.html.erb
index 864ab8c9b..864ab8c9b 100644
--- a/app/views/public_body/_body_listing.rhtml
+++ b/app/views/public_body/_body_listing.html.erb
diff --git a/app/views/public_body/_body_listing_single.rhtml b/app/views/public_body/_body_listing_single.html.erb
index d0496fbb8..8e0a64df7 100644
--- a/app/views/public_body/_body_listing_single.rhtml
+++ b/app/views/public_body/_body_listing_single.html.erb
@@ -18,7 +18,8 @@
<% end %>
</span>
<span class="bottomline">
- <%= n_('%d request made.', '%d requests made.', public_body.info_requests.size) % public_body.info_requests.size %>
+ <%= n_('{{count}} request made.', '{{count}} requests made.', public_body.info_requests.size,
+ :count => public_body.info_requests.size) %>
<% if !@include_request_link_in_authority_listing.nil? %>
<%= link_to _("Make your own request"), public_body_path(public_body) %>.
<% end %>
diff --git a/app/views/public_body/_list_sidebar_extra.html.erb b/app/views/public_body/_list_sidebar_extra.html.erb
new file mode 100644
index 000000000..290593d6a
--- /dev/null
+++ b/app/views/public_body/_list_sidebar_extra.html.erb
@@ -0,0 +1,6 @@
+<p>
+ <%= link_to _('Are we missing a public authority?'), help_requesting_path + '#missing_body' %>
+</p>
+<p>
+ <%= link_to _('List of all authorities (CSV)'), all_public_bodies_csv_path %>
+</p>
diff --git a/app/views/public_body/_list_sidebar_extra.rhtml b/app/views/public_body/_list_sidebar_extra.rhtml
deleted file mode 100644
index d3d65fec8..000000000
--- a/app/views/public_body/_list_sidebar_extra.rhtml
+++ /dev/null
@@ -1,6 +0,0 @@
-<p>
- <%= raw(_('<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_path %>
-</p>
diff --git a/app/views/public_body/_search_ahead.rhtml b/app/views/public_body/_search_ahead.html.erb
index 7ade89b8e..3d1dc8f93 100644
--- a/app/views/public_body/_search_ahead.rhtml
+++ b/app/views/public_body/_search_ahead.html.erb
@@ -1,4 +1,4 @@
-<div>
+
<% if !@xapian_requests.nil? %>
<% if @xapian_requests.results.size > 0 %>
<h3><%= _('Top search results:') %></h3>
@@ -10,12 +10,11 @@
<% end %>
<div id="authority_search_ahead_results">
<% for result in @xapian_requests.results %>
- <%= render :partial => 'body_listing_single', :locals => { :public_body => result[:model] } %>
+ <%= render :partial => 'public_body/body_listing_single', :locals => { :public_body => result[:model] } %>
<% end %>
</div>
- <%= will_paginate WillPaginate::Collection.new(@page, @per_page, @xapian_requests.matches_estimated) %>
+ <%= will_paginate WillPaginate::Collection.new(@page, @per_page, @xapian_requests.matches_estimated), :params => {:controller=>"request", :action => "select_authority"} %>
<% end %>
-</div>
diff --git a/app/views/public_body/list.rhtml b/app/views/public_body/list.html.erb
index ea5cd9613..ce24daaf9 100644
--- a/app/views/public_body/list.rhtml
+++ b/app/views/public_body/list.html.erb
@@ -10,7 +10,7 @@
<% for row in PublicBodyCategories::get().with_headings() %>
<% if row.instance_of?(Array) %>
<li>
- <%= link_to_unless (@tag == row[0]), row[1], list_public_bodies_path(:tag => row[0]) %>
+ <%= link_to_unless (@tag == row[0]), row[1], list_public_bodies_path(:tag => row[0]) %>
</li>
<% else %>
<% if not first_row %>
@@ -23,7 +23,7 @@
<% end %>
<% end %>
<% if not first_row %>
- </ul>
+ </ul>
<% end %>
<%= render :partial => "list_sidebar_extra" %>
</div>
@@ -32,16 +32,22 @@
<div id="left_column_flip">
<h1><%= _('Public authorities') %></h1>
-<% form_tag(list_public_bodies_default_url, :method => "get", :id=>"search_form") do %>
+<%= form_tag(list_public_bodies_default_url, :method => "get", :id=>"search_form") do %>
<div>
- <%= text_field_tag(:public_body_query, params[:public_body_query], { :title => "type your search term here" } ) %>
+ <%= text_field_tag(:public_body_query, params[:public_body_query], { :title => "type your search term here" } ) %>
<%= submit_tag(_("Search")) %>
</div>
<% end %>
-<h2 class="publicbody_results"><%= n_('Found %d public authority %s', 'Found %d public authorities %s', @public_bodies.total_entries) % [@public_bodies.total_entries, @description] %></h2>
+<h2 class="publicbody_results">
+ <%= n_('Found {{count}} public authority {{description}}',
+ 'Found {{count}} public authorities {{description}}',
+ @public_bodies.total_entries,
+ :count => @public_bodies.total_entries,
+ :description => @description) %>
+</h2>
<%= render :partial => 'body_listing', :locals => { :public_bodies => @public_bodies } %>
<%= will_paginate(@public_bodies) %><br/>
- <%= raw _('<a href="%s">Can\'t find the one you want?</a>') % [help_requesting_path + '#missing_body'] %>
+ <%= link_to _("Can't find the one you want?"), help_requesting_path + '#missing_body' %>
</div>
diff --git a/app/views/public_body/show.rhtml b/app/views/public_body/show.html.erb
index df6346e4f..47075a1f5 100644
--- a/app/views/public_body/show.rhtml
+++ b/app/views/public_body/show.html.erb
@@ -4,7 +4,12 @@
<h2><%= _('Follow this authority')%></h2>
<% follower_count = TrackThing.count(:all, :conditions => ["public_body_id = ?", @public_body.id]) %>
- <p><%= raw(n_("<span id='follow_count'>%d</span> person is following this authority", "<span id='follow_count'>%d</span> people are following this authority", follower_count) % follower_count) %></p>
+ <p>
+ <%= n_("{{count}} person is following this authority",
+ "{{count}} people are following this authority",
+ follower_count,
+ :count => content_tag(:span, follower_count, :id => "follow_count")) %>
+ </p>
<%= render :partial => 'track/tracking_links', :locals => { :track_thing => @track_thing, :own_request => false, :location => 'sidebar' } %>
<h2><%= _('More about this authority')%></h2>
@@ -51,12 +56,7 @@
<div id="stepwise_make_request">
<% if @public_body.is_requestable? || @public_body.not_requestable_reason == 'bad_contact' %>
- <% if @public_body.eir_only? %>
- <%= _('Make a new <strong>Environmental Information</strong> request')%>
- <% else %>
- <%= _('Make a new <strong>Freedom of Information</strong> request to {{public_body}}', :public_body => h(@public_body.name))%>
- <% end %>
- &nbsp;<%= _('<a class="link_button_green" href="{{url}}">{{text}}</a>', :url=>new_request_to_body_url(:url_name => @public_body.url_name), :text=>_("Start"))%>
+ <%= link_to _("Make a request to this authority"), new_request_to_body_path(:url_name => @public_body.url_name), :class => "link_button_green" %>
<% elsif @public_body.has_notes? %>
<%= @public_body.notes_as_html.html_safe %>
<% elsif @public_body.not_requestable_reason == 'not_apply' %>
@@ -91,9 +91,13 @@
<%= pluralize(@public_body.info_requests.size, "Environmental Information Regulations request made using this site") %>
<% else %>
<% if @public_body.info_requests.size > 4 %>
- <%= n_('Search within the %d Freedom of Information requests to %s', 'Search within the %d Freedom of Information requests made to %s', @public_body.info_requests.size) % [@public_body.info_requests.size, @public_body.name] %>
+ <%= n_('Search within the {{count}} Freedom of Information requests to {{public_body_name}}', 'Search within the {{count}} Freedom of Information requests made to {{public_body_name}}', @public_body.info_requests.size, :count => @public_body.info_requests.size, :public_body_name => @public_body.name) %>
<% else %>
- <%= n_('%d Freedom of Information request to %s', '%d Freedom of Information requests to %s', @public_body.info_requests.size) % [@public_body.info_requests.size, @public_body.name] %>
+ <%= n_('{{count}} Freedom of Information request to {{public_body_name}}',
+ '{{count}} Freedom of Information requests to {{public_body_name}}',
+ @public_body.info_requests.size,
+ :count => @public_body.info_requests.size,
+ :public_body_name => @public_body.name) %>
<% end %>
<% end %>
<%= @page_desc %>
diff --git a/app/views/public_body/view_email.rhtml b/app/views/public_body/view_email.html.erb
index 3799d227b..3f0a558c7 100644
--- a/app/views/public_body/view_email.rhtml
+++ b/app/views/public_body/view_email.html.erb
@@ -25,10 +25,10 @@
<p>
<% if @public_body.is_requestable? || @public_body.not_requestable_reason != 'bad_contact' %>
- <%= raw _('If the address is wrong, or you know a better address, please <a href="%s">contact us</a>.')% [help_contact_path]%>
+ <%= raw(_('If the address is wrong, or you know a better address, please <a href="{{url}}">contact us</a>.', :url => help_contact_path.html_safe)) %>
<% else %>
- <%= raw _(' 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] %>
+ <%= raw(_(' If you know the address to use, then please <a href="{{url}}">send it to us</a>.
+ You may be able to find the address on their website, or by phoning them up and asking.', :url =>help_contact_path.html_safe)) %>
<% end %>
</p>
diff --git a/app/views/public_body/view_email_captcha.rhtml b/app/views/public_body/view_email_captcha.html.erb
index 6f301e055..4f6db5b67 100644
--- a/app/views/public_body/view_email_captcha.rhtml
+++ b/app/views/public_body/view_email_captcha.html.erb
@@ -4,7 +4,7 @@
<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| %>
+<%= form_for :contact do |f| %>
<%= recaptcha_tags %>
<%= hidden_field_tag(:submitted_view_email, { :value => 1 } ) %>
diff --git a/app/views/reports/new.html.erb b/app/views/reports/new.html.erb
new file mode 100644
index 000000000..7d558ab4e
--- /dev/null
+++ b/app/views/reports/new.html.erb
@@ -0,0 +1,26 @@
+<h1>Report request: <%= @info_request.title %></h1>
+
+<% if @info_request.attention_requested %>
+ <p><%= _("This request has already been reported for administrator attention") %></p>
+<% else %>
+ <p>
+ Reporting a request notifies the site administrators. They will respond as soon as possible.
+ </p>
+ <p>Why specifically do you consider this request unsuitable?</p>
+
+ <%= form_tag request_report_path(:request_id => @info_request.url_title) do %>
+ <p>
+ <label class="form_label" for="reason">Reason:</label>
+ <%= select_tag :reason, options_for_select(@info_request.report_reasons, @reason), :prompt => "Choose a reason" %>
+ </p>
+ <p>
+ <label class="form_label" for="message">Please tell us more:</label>
+ <%= text_area_tag :message, @message, :rows => 10, :cols => 60 %>
+ </p>
+
+ <div class="form_button">
+ <%= submit_tag _("Report request") %>
+ </div>
+
+ <% end %>
+<% end %>
diff --git a/app/views/request/_after_actions.rhtml b/app/views/request/_after_actions.html.erb
index d3ddb981b..b54a8f5fb 100644
--- a/app/views/request/_after_actions.rhtml
+++ b/app/views/request/_after_actions.html.erb
@@ -7,7 +7,7 @@
<ul>
<% if @info_request.comments_allowed? %>
<li>
- <%= raw(_('<a href="%s">Add an annotation</a> (to help the requester or others)') % [new_comment_path(:url_title => @info_request.url_title)]) %>
+ <%= raw(_('<a href="{{url}}">Add an annotation</a> (to help the requester or others)', :url => new_comment_url(:url_title => @info_request.url_title).html_safe)) %>
</li>
<% end %>
<% if @old_unclassified %>
diff --git a/app/views/request/_bubble.rhtml b/app/views/request/_bubble.html.erb
index 94498612a..94498612a 100644
--- a/app/views/request/_bubble.rhtml
+++ b/app/views/request/_bubble.html.erb
diff --git a/app/views/request/_correspondence.rhtml b/app/views/request/_correspondence.html.erb
index 68711b259..68711b259 100644
--- a/app/views/request/_correspondence.rhtml
+++ b/app/views/request/_correspondence.html.erb
diff --git a/app/views/request/_describe_state.rhtml b/app/views/request/_describe_state.html.erb
index fde1cdfa7..05cce013e 100644
--- a/app/views/request/_describe_state.rhtml
+++ b/app/views/request/_describe_state.html.erb
@@ -1,6 +1,6 @@
<% if @is_owning_user %>
- <% form_for(:incoming_message, @info_request, :url => describe_state_url(:id => @info_request.id)) do |f| %>
+ <%= form_for(@info_request, :as => :incoming_message, :url => describe_state_url(:id => @info_request.id), :html => {:id => "describe_form_#{id_suffix}"}) do |f| %>
<h2><%= _('What best describes the status of this request now?') %></h2>
<hr>
@@ -97,18 +97,17 @@
<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>') %>)
</p>
<% end %>
<% elsif @old_unclassified %>
- <%= render :partial => 'other_describe_state', :locals => {:id_suffix => id_suffix } %>
+ <%= render :partial => 'request/other_describe_state', :locals => {:id_suffix => id_suffix } %>
<% else %>
<% if !@info_request.is_external? %>
<%= _('We don\'t know whether the most recent response to this request contains
information or not
&ndash;
- if you are {{user_link}} please <a href="{{url}}">sign in</a> and let everyone know.',:user_link=>user_link(@info_request.user), :url=>signin_url(:r => request.request_uri)) %>
+ if you are {{user_link}} please <a href="{{url}}">sign in</a> and let everyone know.',:user_link=>user_link(@info_request.user), :url=>signin_url(:r => request.fullpath)) %>
<% end %>
<% end %>
diff --git a/app/views/request/_followup.rhtml b/app/views/request/_followup.html.erb
index bccfccca7..bb099ff15 100644
--- a/app/views/request/_followup.rhtml
+++ b/app/views/request/_followup.html.erb
@@ -49,9 +49,9 @@
<% else %>
<% if @internal_review %>
<p>
- <%= raw(_('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="%s">details</a>).') % "http://foiwiki.com/foiwiki/index.php/Internal_reviews") %>
+ complain (<a href="{{url}}">details</a>).', :url => "http://foiwiki.com/foiwiki/index.php/Internal_reviews".html_safe) %>
</p>
<% end %>
@@ -61,25 +61,24 @@
<% 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') %>
<% if @info_request.public_body.is_school? %>
<%= _('in term time') %>
<% end %>
<%= _('by <strong>{{date}}</strong>',:date=>simple_date(@info_request.date_response_required_by)) %>
- (<%= raw(_('<a href="%s">details</a>') % ["#{help_requesting_path}#quickly_response"]) %>).
-
+ (<%= link_to _('details'), "#{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') %> (<%= raw(_('<a href="%s">details</a>') % ["#{help_requesting_path}#quickly_response"]) %>).
+ by now') %> (<%= link_to _('details'), "#{help_requesting_path}#quickly_response" %>).
</p>
<% end %>
- <% form_for(:outgoing_message, @outgoing_message, :html => { :id => 'followup_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)) do |o| %>
+ <%= form_for(@outgoing_message, :html => { :id => 'followup_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)) do |o| %>
<p>
<%= o.text_area :body, :rows => 15, :cols => 55 %>
</p>
@@ -103,7 +102,7 @@
<div>
<%= radio_button "outgoing_message", "what_doing", "internal_review", :id => "internal_review" %>
<label for="internal_review"><%= _('I am requesting an <strong>internal review</strong>') %>
- <%= raw(_('<a href="%s">what\'s that?</a>') % ["/help/unhappy"]) %>
+ <%= link_to _("what's that?"), "/help/unhappy" %>
</label>
</div>
<div>
diff --git a/app/views/request/_hidden_correspondence.rhtml b/app/views/request/_hidden_correspondence.html.erb
index 0873b312f..4c06f1f48 100644
--- a/app/views/request/_hidden_correspondence.rhtml
+++ b/app/views/request/_hidden_correspondence.html.erb
@@ -7,21 +7,21 @@
%>
<div class="correspondence" id="incoming-<%=incoming_message.id.to_s%>">
<p>
- <%= raw(_('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)]) %>
+ <%= _('This response has been hidden. See annotations to find out why.
+ If you are the requester, then you may <a href="{{url}}">sign in</a> to view the response.', :url => signin_url(:r => request.fullpath).html_safe) %>
</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>
- <%= raw(_('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)]) %>
+ <%= _('This outgoing message has been hidden. See annotations to
+ find out why. If you are the requester, then you may <a href="{{url}}">sign in</a> to view the response.', :url => signin_url(:r => request.fullpath).html_safe) %>
</p>
</div>
<% elsif info_request_event.event_type == 'comment' %>
<div class="comment_in_request" id="comment-<%=comment.id.to_s%>">
- <p><%= raw(_('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><%= _('This comment has been hidden. See annotations to
+ find out why. If you are the requester, then you may <a href="{{url}}">sign in</a> to view the response.', :url => signin_url(:r => request.fullpath).html_safe) %>
</p>
</div>
<% end %>
diff --git a/app/views/request/_next_actions.rhtml b/app/views/request/_next_actions.html.erb
index f318df6e4..f318df6e4 100644
--- a/app/views/request/_next_actions.rhtml
+++ b/app/views/request/_next_actions.html.erb
diff --git a/app/views/request/_other_describe_state.rhtml b/app/views/request/_other_describe_state.html.erb
index e274fe8c9..e49f9ecb3 100644
--- a/app/views/request/_other_describe_state.rhtml
+++ b/app/views/request/_other_describe_state.html.erb
@@ -1,6 +1,6 @@
-<% form_for(:incoming_message, @info_request, :url => describe_state_url(:id => @info_request.id)) do |f| %>
+<%= form_for(@info_request, :as => :incoming_message, :url => describe_state_url(:id => @info_request.id), :html => {:id => "describe_form_#{id_suffix}"}) 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
a moment to read it and help us keep the place tidy for everyone?
@@ -75,7 +75,6 @@
<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" %>
</p>
<% end %>
diff --git a/app/views/request/_request_filter_form.rhtml b/app/views/request/_request_filter_form.html.erb
index 0c215a9b6..090db01df 100644
--- a/app/views/request/_request_filter_form.rhtml
+++ b/app/views/request/_request_filter_form.html.erb
@@ -1,7 +1,7 @@
<%= render :partial => 'general/localised_datepicker' %>
<div id="list-filter">
- <% form_tag(request.path, :method => "get", :id=>"filter_requests_form") do %>
+ <%= form_tag(request.path, :method => "get", :id=>"filter_requests_form") do %>
<div class="list-filter-item">
<%= label_tag(:query, _("Keywords"), :class=>"form_label title") %>
<%= text_field_tag(:query, params[:query]) %>
diff --git a/app/views/request/_request_listing.rhtml b/app/views/request/_request_listing.html.erb
index 492f874f3..492f874f3 100644
--- a/app/views/request/_request_listing.rhtml
+++ b/app/views/request/_request_listing.html.erb
diff --git a/app/views/request/_request_listing_short_via_event.rhtml b/app/views/request/_request_listing_short_via_event.html.erb
index c2f6474a1..c2f6474a1 100644
--- a/app/views/request/_request_listing_short_via_event.rhtml
+++ b/app/views/request/_request_listing_short_via_event.html.erb
diff --git a/app/views/request/_request_listing_single.rhtml b/app/views/request/_request_listing_single.html.erb
index 56737fd3e..56737fd3e 100644
--- a/app/views/request/_request_listing_single.rhtml
+++ b/app/views/request/_request_listing_single.html.erb
diff --git a/app/views/request/_request_listing_via_event.rhtml b/app/views/request/_request_listing_via_event.html.erb
index cc8bae8a9..cc8bae8a9 100644
--- a/app/views/request/_request_listing_via_event.rhtml
+++ b/app/views/request/_request_listing_via_event.html.erb
diff --git a/app/views/request/_search_ahead.rhtml b/app/views/request/_search_ahead.html.erb
index 1e65a5458..1e65a5458 100644
--- a/app/views/request/_search_ahead.rhtml
+++ b/app/views/request/_search_ahead.html.erb
diff --git a/app/views/request/_sidebar.rhtml b/app/views/request/_sidebar.html.erb
index af33d31a2..aba5c2fb3 100644
--- a/app/views/request/_sidebar.rhtml
+++ b/app/views/request/_sidebar.html.erb
@@ -3,7 +3,12 @@
<h2><%= _('Follow this request') %></h2>
<% follower_count = TrackThing.count(:all, :conditions => ["info_request_id = ?", @info_request.id]) + 1 %>
- <p><%= n_("There is %d person following this request", "There are %d people following this request", follower_count) % follower_count %></p>
+ <p>
+ <%= n_("There is {{count}} person following this request",
+ "There are {{count}} people following this request",
+ follower_count,
+ :count => follower_count) %>
+ </p>
<%= render :partial => 'track/tracking_links', :locals => { :track_thing => @track_thing, :own_request => @info_request.user && @info_request.user == @user, :location => 'sidebar' } %>
</div>
<% if @info_request.described_state != "attention_requested" %>
@@ -11,40 +16,37 @@
<% if @info_request.attention_requested %>
<% if @info_request.prominence == 'hidden' %>
<%# The eccentric formatting of the following string is in order that it be identical
- to the corresponding string in request/show.rhtml %>
+ to the corresponding string in request/show.html.erb %>
<p><%= _('This request has prominence \'hidden\'. You can only see it because you are logged
in as a super user.') %></p>
<% elsif @info_request.prominence == 'requester_only' %>
<%# The eccentric formatting of the following string is in order that it be identical
- to the corresponding string in request/show.rhtml %>
- <p><%= raw(_('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>
+ to the corresponding string in request/show.html.erb %>
+ <p><%= _('This request is hidden, so that only you the requester can see it. Please
+ <a href="{{url}}">contact us</a> if you are not sure why.', :url => help_requesting_path.html_safe) %></p>
<% else %>
- <p><%= raw(_('This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href="%s">contact us</a>.') % [help_requesting_path]) %></p>
+ <p><%= _('This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href="{{url}}">contact us</a>.', :url => help_requesting_path.html_safe) %></p>
<% end %>
<% else %>
<p><%= _('Requests for personal information and vexatious requests are not considered valid for FOI purposes (<a href="/help/about">read more</a>).') %></p>
<p><%= _('If you believe this request is not suitable, you can report it for attention by the site administrators') %></p>
- <%= button_to _("Report this request"), report_path, :class => "link_button_green" %>
+ <%= link_to _("Report this request"), new_request_report_path(:request_id => @info_request.url_title) %>
<% end %>
<% end %>
<h2><%= _("Act on what you've learnt") %></h2>
<div class="act_link">
- <%
- # Cast "related" to normal string because html safe string (from rails_xss gem) and CGI::escape
- # interact badly with ':' character. Go figure! Might go away in rails 3
- %>
- <% link_to "https://twitter.com/share?" + {:url => request.url, :via => Configuration::twitter_username, :text => @info_request.title, :related => _('alaveteli_foi:The software that runs {{site_name}}', :site_name => site_name).to_str}.to_query do %>
+ <% tweet_link = "https://twitter.com/share?" + {:url => request.url, :via => AlaveteliConfiguration::twitter_username, :text => "'#{@info_request.title}'", :related => _('alaveteli_foi:The software that runs {{site_name}}', :site_name => site_name)}.to_query %>
+ <% link_to tweet_link do %>
<%= image_tag "twitter-16.png", :alt => "twitter icon" %>
- <%= _("Tweet this request") %>
<% end %>
+ <%= link_to _("Tweet this request"), tweet_link %>
</div>
<div class="act_link">
- <% link_to "http://wordpress.com/" do %>
+ <%= link_to "http://wordpress.com/" do %>
<%= image_tag "wordpress.png", :class => "rss" %>
- <%= _("Start your own blog") %>
<% end %>
+ <%= link_to _("Start your own blog"), "http://wordpress.com/"%>
</div>
<%= render :partial => 'request/next_actions' %>
@@ -65,7 +67,6 @@
<!-- this link with this wording is here for legal reasons, discuss with
board and our lawyer before changing or removing it -->
- <p><small><%= raw(_('<a href="%s">Are you the owner of
- any commercial copyright on this page?</a>') % [help_officers_path+"#copyright"]) %></small></p>
+ <p><small><%= link_to _('Are you the owner of any commercial copyright on this page?'), help_officers_path+"#copyright" %></small></p>
</div>
diff --git a/app/views/request/_sidebar_request_listing.rhtml b/app/views/request/_sidebar_request_listing.html.erb
index ec5a5813d..ec5a5813d 100644
--- a/app/views/request/_sidebar_request_listing.rhtml
+++ b/app/views/request/_sidebar_request_listing.html.erb
diff --git a/app/views/request/_summary_suggestion.rhtml b/app/views/request/_summary_suggestion.html.erb
index a5da09cda..a5da09cda 100644
--- a/app/views/request/_summary_suggestion.rhtml
+++ b/app/views/request/_summary_suggestion.html.erb
diff --git a/app/views/request/_view_html_prefix.rhtml b/app/views/request/_view_html_prefix.html.erb
index 3a9946745..3a9946745 100644
--- a/app/views/request/_view_html_prefix.rhtml
+++ b/app/views/request/_view_html_prefix.html.erb
diff --git a/app/views/request/_view_html_stylesheet.rhtml b/app/views/request/_view_html_stylesheet.html.erb
index d6cb932a8..d6cb932a8 100644
--- a/app/views/request/_view_html_stylesheet.rhtml
+++ b/app/views/request/_view_html_stylesheet.html.erb
diff --git a/app/views/request/_wall_listing.rhtml b/app/views/request/_wall_listing.html.erb
index 4a76b09bf..b6b4b38b1 100644
--- a/app/views/request/_wall_listing.rhtml
+++ b/app/views/request/_wall_listing.html.erb
@@ -8,7 +8,7 @@ end %>
<% if event.event_type == 'sent' %>
<%= _('A new request, <em><a href="{{request_url}}">{{request_title}}</a></em>, was 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=>request_user_link_absolute(info_request),:date=>simple_date(event.created_at),:request_url=>request_path(info_request),:request_title=>info_request.title) %>
<% elsif event.event_type == 'followup_sent' %>
- <%= _('A <a href="{{request_url}}">follow up</a> to <em>{{request_title}}</em> was 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=>request_user_link_absolute(info_request),:date=>simple_date(event.created_at),:request_url=>outgoing_message_url(event.outgoing_message),:request_title=>info_request.title) %>
+ <%= _('A <a href="{{request_url}}">follow up</a> to <em>{{request_title}}</em> was 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=>request_user_link_absolute(info_request),:date=>simple_date(event.created_at),:request_url=>outgoing_message_path(event.outgoing_message),:request_title=>info_request.title) %>
<% elsif event.event_type == 'response' %>
<%= _('A <a href="{{request_url}}">response</a> to <em>{{request_title}}</em> was sent by {{public_body_name}} to {{info_request_user}} on {{date}}. The request status is: {{request_status}}',:public_body_name=>public_body_link_absolute(info_request.public_body),:info_request_user=>request_user_link_absolute(info_request),:date=>simple_date(event.created_at),:request_url=>incoming_message_path(event.incoming_message_selective_columns("incoming_messages.id")),:request_title=>info_request.title,:request_status=>info_request.display_status) %>
<% elsif event.event_type == 'comment' %>
diff --git a/app/views/request/describe_state_message.html.erb b/app/views/request/describe_state_message.html.erb
new file mode 100644
index 000000000..73237759f
--- /dev/null
+++ b/app/views/request/describe_state_message.html.erb
@@ -0,0 +1,30 @@
+<h1><%= @title %></h1>
+
+
+<p>
+ <% if @described_state == "error_message" %>
+ <%= _("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.") %>
+ <% else %>
+ <%= _("Just one more thing") %>
+ <% end %>
+</p>
+
+<%= form_for :incoming_message, :url => describe_state_url(:id => @info_request.id) do |f| %>
+
+ <p>
+ <label class="form_label" for="incoming_message_message">Please tell us more:</label>
+ <%= f.text_area :message, :rows => 10, :cols => 60 %>
+ </p>
+
+ <div>
+ <%= hidden_field_tag "incoming_message[described_state]", @described_state %>
+ <%= hidden_field_tag :last_info_request_event_id, @last_info_request_event_id %>
+ </div>
+
+ <div class="form_button">
+ <%= submit_tag _("Submit status and send message") %>
+ </div>
+
+<% end %>
+
+
diff --git a/app/views/request/details.rhtml b/app/views/request/details.html.erb
index 3cb2f5afe..3cb2f5afe 100644
--- a/app/views/request/details.rhtml
+++ b/app/views/request/details.html.erb
diff --git a/app/views/request/followup_bad.rhtml b/app/views/request/followup_bad.html.erb
index c892263e6..ea2400c5d 100644
--- a/app/views/request/followup_bad.rhtml
+++ b/app/views/request/followup_bad.html.erb
@@ -9,21 +9,21 @@
<% 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 %>.
- <%= raw(_('From the request page, try replying to a particular message, rather than sending
+ <%= _('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="%s">send it to us</a>.') % [help_contact_path]) %>
+ an email which will go to the right place, please <a href="{{url}}">send it to us</a>.', :url => help_contact_path.html_safe) %>
</p>
<% elsif @reason == 'defunct' %>
<!-- we should never get here, but just in case give a sensible message -->
- <p><%=h @info_request.public_body.name %> <%= raw(_('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="%s">send it to us</a>.') % [help_contact_path]) %>
+ an email which will go to the right place, please <a href="{{url}}">send it to us</a>.', :url => help_contact_path.html_safe) %>
</p>
<% elsif @reason == 'bad_contact' %>
- <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)) %> <%= raw(_('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="%s">send it to us</a>.') % [help_contact_path]) %>
+ to find one, then please <a href="{{url}}">send it to us</a>.', :url => help_contact_path.html_safe) %>
</p>
<% elsif @reason == 'external' %>
<p><%= _("Followups cannot be sent for this request, as it was made externally, and published here by {{public_body_name}} on the requester's behalf.", :public_body_name => h(@info_request.public_body.name)) %>
diff --git a/app/views/request/followup_preview.rhtml b/app/views/request/followup_preview.html.erb
index 50c64138f..55afc0245 100644
--- a/app/views/request/followup_preview.rhtml
+++ b/app/views/request/followup_preview.html.erb
@@ -2,7 +2,7 @@
<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| %>
+<%= form_for(@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>
@@ -15,7 +15,7 @@
<li><%= _('Your message will appear in <strong>search engines</strong>') %></li>
</ul>
- <% fields_for :outgoing_message do |o| %>
+ <%= fields_for :outgoing_message do |o| %>
<div class="correspondence" id="outgoing-0">
<p class="preview_subject">
diff --git a/app/views/request/hidden.html.erb b/app/views/request/hidden.html.erb
new file mode 100644
index 000000000..f2f76a817
--- /dev/null
+++ b/app/views/request/hidden.html.erb
@@ -0,0 +1,19 @@
+<% @title = _("Request has been removed") %>
+
+<h1><%=@title%></h1>
+
+<p>
+<%=@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="{{url}}">contact us</a> if you have any questions.', :url => help_contact_path.html_safe) %>
+</p>
+<% if @info_request.prominence == 'requester_only' %>
+ <p>
+ <%= _('If you are the requester, then you may <a href="{{url}}">sign in</a> to view the request.', :url => signin_url(:r => request.fullpath).html_safe) %>
+ </p>
+<% end %>
+
+
diff --git a/app/views/request/hidden.rhtml b/app/views/request/hidden.rhtml
deleted file mode 100644
index 2d038a663..000000000
--- a/app/views/request/hidden.rhtml
+++ /dev/null
@@ -1,19 +0,0 @@
-<% @title = _("Request has been removed") %>
-
-<h1><%=@title%></h1>
-
-<p>
-<%=@details%>
-</p>
-
-<p><%= raw(_('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>
- <%= raw(_('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.html.erb
index 062b77c3e..062b77c3e 100644
--- a/app/views/request/list.rhtml
+++ b/app/views/request/list.html.erb
diff --git a/app/views/request/new.rhtml b/app/views/request/new.html.erb
index 4766c981b..8b7d38ac0 100644
--- a/app/views/request/new.rhtml
+++ b/app/views/request/new.html.erb
@@ -33,7 +33,7 @@
<%= foi_error_messages_for :info_request, :outgoing_message %>
- <% form_for(:info_request, @info_request, :html => { :id => 'write_form' } ) do |f| %>
+ <%= form_for(@info_request, :url => new_request_path, :html => { :id => 'write_form' } ) do |f| %>
<div id="request_header">
<div id="request_header_body">
@@ -98,12 +98,12 @@
<ul>
<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><%= raw(_('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><%= _('Keep it <strong>focused</strong>, you\'ll be more likely to get what you want (<a href="{{url}}">why?</a>).', :url => (help_requesting_path + '#focused').html_safe) %></li>
</ul>
</div>
<div id="request_form">
- <% fields_for :outgoing_message do |o| %>
+ <%= fields_for :outgoing_message do |o| %>
<p>
<label class="form_label" for="outgoing_message_body"><%= _('Your request:') %></label>
<%= o.text_area :body, :rows => 20, :cols => 60 %>
@@ -112,23 +112,24 @@
<% if !@user %>
<p class="form_note">
+
<%= raw(_('Everything that you enter on this page, including <strong>your name</strong>,
will be <strong>displayed publicly</strong> on
- this website forever (<a href="%s">why?</a>).') % [help_privacy_path+"#public_request"]) %>
+ this website forever (<a href="{{url}}">why?</a>).', :url => (help_privacy_path+"#public_request").html_safe)) %>
<%= raw(_('If you are thinking of using a pseudonym,
- please <a href="%s">read this first</a>.') % [help_privacy_path+"#real_name"]) %>
+ please <a href="{{url}}">read this first</a>.', :url => (help_privacy_path+"#real_name").html_safe)) %>
</p>
<% else %>
<p class="form_note">
<%= raw(_('Everything that you enter on this page
will be <strong>displayed publicly</strong> on
- this website forever (<a href="%s">why?</a>).') % [help_privacy_path+"#public_request"]) %>
+ this website forever (<a href="{{url}}">why?</a>).', :url => (help_privacy_path+"#public_request").html_safe)) %>
</p>
<% end %>
<p class="form_note">
<%= raw(_("<strong> Can I request information about myself?</strong>\n" +
- "\t\t\t<a href=\"%s\">No! (Click here for details)</a>") % [help_requesting_path+"#data_protection"]) %>
+ "\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>", :url => (help_requesting_path+"#data_protection").html_safe)) %>
</p>
<div class="form_button">
diff --git a/app/views/request/new_bad_contact.rhtml b/app/views/request/new_bad_contact.html.erb
index 56f3f4168..56f3f4168 100644
--- a/app/views/request/new_bad_contact.rhtml
+++ b/app/views/request/new_bad_contact.html.erb
diff --git a/app/views/request/new_please_describe.rhtml b/app/views/request/new_please_describe.html.erb
index ff27405b8..8da4eb555 100644
--- a/app/views/request/new_please_describe.rhtml
+++ b/app/views/request/new_please_describe.html.erb
@@ -1,4 +1,4 @@
-<% @title = "First, did your other requests succeed?" %>
+<% @title = _("First, did your other requests succeed?") %>
<h1><%=@title%></h1>
@@ -13,7 +13,7 @@ if they are successful yet or not.') %>
</ul>
<p>
- <%= raw(_('When you\'re done, <strong>come back here</strong>, <a href="%s">reload this page</a> and file your new request.') % [request.request_uri]) %>
+ <%= _('When you\'re done, <strong>come back here</strong>, <a href="{{url}}">reload this page</a> and file your new request.', :url => request.fullpath.html_safe) %>
</p>
<p>
diff --git a/app/views/request/preview.rhtml b/app/views/request/preview.html.erb
index 8d1fd753e..243dc90a9 100644
--- a/app/views/request/preview.rhtml
+++ b/app/views/request/preview.html.erb
@@ -1,16 +1,16 @@
<% @title = "Preview new " + h(@info_request.law_used_short) + " request to '" + h(@info_request.public_body.name) + "'" %>
-<% form_for(:info_request, @info_request, :html => { :id => 'preview_form' } ) do |f| %>
-
+<%= form_for(@info_request, :url => new_request_path, :html => { :id => 'preview_form' } ) do |f| %>
+
<h1><%= _('3. Now check your request') %></h1>
<ul>
<li><%= _('Check you haven\'t included any <strong>personal information</strong>.') %></li>
<li><%= raw(_('Your name, request and any responses will appear in <strong>search engines</strong>
- (<a href="%s">details</a>).') % [help_privacy_path+"#public_request"]) %>
+ (<a href="{{url}}">details</a>).', :url => (help_privacy_path+"#public_request").html_safe)) %>
</li>
</ul>
- <% fields_for :outgoing_message do |o| %>
+ <%= fields_for :outgoing_message do |o| %>
<div class="correspondence" id="outgoing-0">
<p class="preview_subject">
@@ -23,13 +23,13 @@
<%= o.hidden_field(:body) %>
</div>
- <p class="event_actions">
+ <p class="event_actions">
</p>
</div>
<% end %>
- <p><%= raw(_('<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><%= _('<strong>Privacy note:</strong> If you want to request private information about
+ yourself then <a href="{{url}}">click here</a>.', :url => (help_requesting_path+"#data_protection").html_safe) %>
<p>
<%= f.hidden_field(:title) %>
@@ -38,11 +38,11 @@
<%= hidden_field_tag(:submitted_new_request, 1) %>
<%= hidden_field_tag(:preview, 0 ) %>
<%= submit_tag _("Edit this request"), :name => 'reedit', :id => 'reedit_button' %>
- <%= submit_tag _("Send request"), :name => 'submit', :id => 'submit_button' %>
+ <%= submit_tag _("Send request"), :name => 'submit', :id => 'submit_button' %>
</p>
<% if !@info_request.tag_string.empty? %>
<p><strong><%= _('Tags:') %></strong> <%=h @info_request.tag_string %></p>
<% end %>
-<% end %> \ No newline at end of file
+<% end %>
diff --git a/app/views/request/select_authority.rhtml b/app/views/request/select_authority.html.erb
index 94e690e64..75c51fc57 100644
--- a/app/views/request/select_authority.rhtml
+++ b/app/views/request/select_authority.html.erb
@@ -2,22 +2,22 @@
<script type="text/javascript">
$(document).ready(function(){
$("#authority_preview").hide();
-
+
// Avoid triggering too often (on each keystroke) by using the debounce jQuery plugin:
// http://benalman.com/projects/jquery-throttle-debounce-plugin/
- $("#query").keypress($.debounce( 300, function() {
+ $("#query").keypress($.debounce( 300, function() {
// Do a type ahead search and display results
$("#typeahead_response").load("<%=search_ahead_bodies_url%>?query="+encodeURI(this.value), function() {
$("#authority_preview").hide(); // Hide the preview, since results have changed
});
}));
- // We're using the existing body list: we intercept the clicks on the titles to
+ // We're using the existing body list: we intercept the clicks on the titles to
// display a preview on the right hand side of the screen
$("#typeahead_response .head a").live('click', function() {
$("#authority_preview").load(this.href+" #public_body_show", function() {
$("#authority_preview").show();
- $(window).scrollTop($("#banner").height());
+ $(window).scrollTop($("#banner").height());
$("#authority_preview #header_right").hide();
});
return false;
@@ -30,41 +30,24 @@
<h1 style="clear: left"><%= _('1. Select an authority') %></h1>
<div id="authority_selection">
- <% form_tag({:controller => "request", :action => "select_authority"}, {:id => "search_form", :method => "get"}) do %>
+ <%= form_tag({:controller => "request", :action => "select_authority"}, {:id => "search_form", :method => "get"}) do %>
<div>
<p>
- <%= raw(_('First, type in the <strong>name of the UK public authority</strong> you\'d
+ <%= _('First, type in the <strong>name of the UK public authority</strong> you\'d
like information from. <strong>By law, they have to respond</strong>
- (<a href="%s#%s">why?</a>).') % [help_about_path, "whybother_them"]) %>
+ (<a href="{{url}}">why?</a>).', :url => (help_about_path + "#whybother_them").html_safe) %>
</p>
<%= text_field_tag 'query', params[:query], { :size => 30, :title => "type your search term here" } %>
<%= hidden_field_tag 'bodies', 1 %>
<%= submit_tag _('Search') %>
</div>
<% end %>
- <div id="typeahead_response">
- <% if !@xapian_requests.nil? %>
- <% if @xapian_requests.results.size > 0 %>
- <h3><%= _('Top search results:') %></h3>
- <p>
- <%= _('Select one to see more information about the authority.')%>
- </p>
- <% else %>
- <h3><%= _('No results found.') %></h3>
- <% end %>
- <div id="authority_search_ahead_results">
- <% for result in @xapian_requests.results %>
- <%= render :partial => 'public_body/body_listing_single', :locals => { :public_body => result[:model] } %>
- <% end %>
- </div>
-
- <% end %>
-
-
+ <div id="typeahead_response">
+ <%= render :partial => 'public_body/search_ahead' %>
</div>
</div>
-
+
<div id="authority_preview">
</div>
-
+
diff --git a/app/views/request/show.rhtml b/app/views/request/show.html.erb
index ef49ef958..4b0663f76 100644
--- a/app/views/request/show.rhtml
+++ b/app/views/request/show.html.erb
@@ -10,8 +10,8 @@
<% end %>
<% if @info_request.prominence == 'requester_only' %>
<p id="hidden_request">
- <%= raw(_('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]) %>
+ <%= _('This request is hidden, so that only you the requester can see it. Please
+ <a href="{{url}}">contact us</a> if you are not sure why.', :url => help_requesting_path.html_safe) %>
</p>
<% end %>
@@ -80,11 +80,11 @@
<%= _('in term time') %>
<% end %>
<%= _('by') %> <strong><%= simple_date(@info_request.date_response_required_by) %></strong>
- (<%= raw(_('<a href="%s">details</a>') % [help_requesting_path + '#quickly_response']) %>)
+ (<%= link_to _('details'), 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}} should have responded by now',:public_body_link => public_body_link(@info_request.public_body)) %>
- (<%= raw(_('<a href="%s">details</a>') % [help_requesting_path + '#quickly_response']) %>).
+ (<%= link_to _('details'), help_requesting_path + '#quickly_response' %>).
<% if !@info_request.is_external? %>
<%= _('You can <strong>complain</strong> by') %>
<%= link_to _("requesting an internal review"), show_response_no_followup_path(:id => @info_request.id, :incoming_message_id => nil) + "?internal_review=1#followup" %>.
@@ -106,7 +106,7 @@
<%= _('The request is <strong>waiting for clarification</strong>.') %>
<% if !@info_request.is_external? %>
<%= _('If you are {{user_link}}, please',:user_link=>user_link_for_request(@info_request)) %>
- <%= link_to _("sign in"), signin_path(:r => request.request_uri) %> <%= _('to send a follow up message.') %>
+ <%= link_to _("sign in"), signin_path(:r => request.fullpath) %> <%= _('to send a follow up message.') %>
<% end %>
<% end %>
<% elsif @status == 'gone_postal' %>
diff --git a/app/views/request/show_response.rhtml b/app/views/request/show_response.html.erb
index ac1f04227..a61359679 100644
--- a/app/views/request/show_response.rhtml
+++ b/app/views/request/show_response.html.erb
@@ -26,8 +26,8 @@
<%= _('The authority only has a <strong>paper copy</strong> of the information.') %>
</dt>
<dd>
- <%= raw(_('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']) %>
+ <%= _('At the bottom of this page, write a reply to them trying to persuade them to scan it in
+ (<a href="{{url}}">more details</a>).', :url => (help_privacy_path + '#postal_answer').html_safe) %>
</dd>
<dt>
diff --git a/app/views/request/similar.rhtml b/app/views/request/similar.html.erb
index 0d53f6919..0d53f6919 100644
--- a/app/views/request/similar.rhtml
+++ b/app/views/request/similar.html.erb
diff --git a/app/views/request/simple_correspondence.rhtml b/app/views/request/simple_correspondence.html.erb
index 0da9ef172..461fa3912 100644
--- a/app/views/request/simple_correspondence.rhtml
+++ b/app/views/request/simple_correspondence.html.erb
@@ -1,4 +1,4 @@
-<%= _('This is a plain-text version of the Freedom of Information request "{{request_title}}". The latest, full version is available online at {{full_url}}', :request_title => @info_request.title, :full_url => "http://#{Configuration::domain}#{show_request_path(:url_title=>@info_request.url_title)}") %>.
+<%= _('This is a plain-text version of the Freedom of Information request "{{request_title}}". The latest, full version is available online at {{full_url}}', :request_title => @info_request.title, :full_url => "http://#{AlaveteliConfiguration::domain}#{show_request_path(:url_title=>@info_request.url_title)}") %>.
<% for info_request_event in @info_request_events %>
<%
diff --git a/app/views/request/upload_response.rhtml b/app/views/request/upload_response.html.erb
index 675951595..f5fd6f000 100644
--- a/app/views/request/upload_response.rhtml
+++ b/app/views/request/upload_response.html.erb
@@ -12,7 +12,7 @@
<h1><%= _('Respond to the FOI request')%> '<%=request_link(@info_request)%>'<% _(' made by ')%><%=user_link(@info_request.user) %></h1>
<p>
- <%= raw(_('Your response will <strong>appear on the Internet</strong>, <a href="%s">read why</a> and answers to other questions.') % [help_officers_path]) %>
+ <%= raw(_('Your response will <strong>appear on the Internet</strong>, <a href="{{url}}">read why</a> and answers to other questions.', :url => help_officers_path.html_safe)) %>
</p>
<h2><%= _('Respond by email')%></h2>
@@ -28,9 +28,9 @@
<h2><%= _('Respond using the web')%></h2>
<p><%= raw(_('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>
+ <a href="{{url}}">contact us</a> if you need more).', :url => help_contact_path.html_safe)) %></p>
- <% form_tag '', :id => 'upload_response_form', :multipart => true do %>
+ <%= form_tag '', :id => 'upload_response_form', :multipart => true do %>
<p>
<label class="form_label" for="body"><% _('Response:')%></label>
<%= text_area_tag :body, "", :rows => 10, :cols => 55 %>
diff --git a/app/views/request_game/play.rhtml b/app/views/request_game/play.html.erb
index d5aa0d00e..d5aa0d00e 100644
--- a/app/views/request_game/play.rhtml
+++ b/app/views/request_game/play.html.erb
diff --git a/app/views/request_mailer/comment_on_alert.rhtml b/app/views/request_mailer/comment_on_alert.text.erb
index 691e6f9bb..691e6f9bb 100644
--- a/app/views/request_mailer/comment_on_alert.rhtml
+++ b/app/views/request_mailer/comment_on_alert.text.erb
diff --git a/app/views/request_mailer/comment_on_alert_plural.rhtml b/app/views/request_mailer/comment_on_alert_plural.text.erb
index a495b8e08..a495b8e08 100644
--- a/app/views/request_mailer/comment_on_alert_plural.rhtml
+++ b/app/views/request_mailer/comment_on_alert_plural.text.erb
diff --git a/app/views/request_mailer/external_response.rhtml b/app/views/request_mailer/external_response.rhtml
deleted file mode 100644
index 896054a43..000000000
--- a/app/views/request_mailer/external_response.rhtml
+++ /dev/null
@@ -1 +0,0 @@
-<%= raw @body %>
diff --git a/app/views/request_mailer/external_response.text.erb b/app/views/request_mailer/external_response.text.erb
new file mode 100644
index 000000000..fab256adf
--- /dev/null
+++ b/app/views/request_mailer/external_response.text.erb
@@ -0,0 +1 @@
+<%= @message_body %>
diff --git a/app/views/request_mailer/fake_response.rhtml b/app/views/request_mailer/fake_response.rhtml
deleted file mode 100644
index 896054a43..000000000
--- a/app/views/request_mailer/fake_response.rhtml
+++ /dev/null
@@ -1 +0,0 @@
-<%= raw @body %>
diff --git a/app/views/request_mailer/fake_response.text.erb b/app/views/request_mailer/fake_response.text.erb
new file mode 100644
index 000000000..fab256adf
--- /dev/null
+++ b/app/views/request_mailer/fake_response.text.erb
@@ -0,0 +1 @@
+<%= @message_body %>
diff --git a/app/views/request_mailer/new_response.rhtml b/app/views/request_mailer/new_response.text.erb
index 672212f20..672212f20 100644
--- a/app/views/request_mailer/new_response.rhtml
+++ b/app/views/request_mailer/new_response.text.erb
diff --git a/app/views/request_mailer/new_response_reminder_alert.rhtml b/app/views/request_mailer/new_response_reminder_alert.text.erb
index c196dafe6..c196dafe6 100644
--- a/app/views/request_mailer/new_response_reminder_alert.rhtml
+++ b/app/views/request_mailer/new_response_reminder_alert.text.erb
diff --git a/app/views/request_mailer/not_clarified_alert.rhtml b/app/views/request_mailer/not_clarified_alert.text.erb
index 2408452b3..2408452b3 100644
--- a/app/views/request_mailer/not_clarified_alert.rhtml
+++ b/app/views/request_mailer/not_clarified_alert.text.erb
diff --git a/app/views/request_mailer/old_unclassified_updated.rhtml b/app/views/request_mailer/old_unclassified_updated.text.erb
index 5b8534832..5b8534832 100644
--- a/app/views/request_mailer/old_unclassified_updated.rhtml
+++ b/app/views/request_mailer/old_unclassified_updated.text.erb
diff --git a/app/views/request_mailer/overdue_alert.rhtml b/app/views/request_mailer/overdue_alert.text.erb
index 249bf6bb8..249bf6bb8 100644
--- a/app/views/request_mailer/overdue_alert.rhtml
+++ b/app/views/request_mailer/overdue_alert.text.erb
diff --git a/app/views/request_mailer/requires_admin.rhtml b/app/views/request_mailer/requires_admin.text.erb
index e7ab53c59..b2e58295e 100644
--- a/app/views/request_mailer/requires_admin.rhtml
+++ b/app/views/request_mailer/requires_admin.text.erb
@@ -1,3 +1,5 @@
+<%= raw @message %>
+
---------------------------------------------------------------------
<%= raw @reported_by.name %> <%= _('has reported an')%> <%= raw @info_request.law_used_short %>
<%= _('response as needing administrator attention. Take a look, and reply to this
diff --git a/app/views/request_mailer/stopped_responses.rhtml b/app/views/request_mailer/stopped_responses.text.erb
index 9cd156860..9cd156860 100644
--- a/app/views/request_mailer/stopped_responses.rhtml
+++ b/app/views/request_mailer/stopped_responses.text.erb
diff --git a/app/views/request_mailer/very_overdue_alert.rhtml b/app/views/request_mailer/very_overdue_alert.text.erb
index 80597473c..80597473c 100644
--- a/app/views/request_mailer/very_overdue_alert.rhtml
+++ b/app/views/request_mailer/very_overdue_alert.text.erb
diff --git a/app/views/track/_tracking_links.rhtml b/app/views/track/_tracking_links.html.erb
index d89c0e4a9..a16dbc78f 100644
--- a/app/views/track/_tracking_links.rhtml
+++ b/app/views/track/_tracking_links.html.erb
@@ -9,7 +9,7 @@
<% elsif existing_track %>
<p><%= track_thing.params[:verb_on_page_already] %></p>
<div class="feed_link feed_link_<%=location%>">
- <%= link_to _("Unsubscribe"), {:controller => 'track', :action => 'update', :track_id => existing_track.id, :track_medium => "delete", :r => request.request_uri}, :class => "link_button_green" %>
+ <%= link_to _("Unsubscribe"), {:controller => 'track', :action => 'update', :track_id => existing_track.id, :track_medium => "delete", :r => request.fullpath}, :class => "link_button_green" %>
</div>
<% elsif track_thing %>
<div class="feed_link feed_link_<%=location%>">
diff --git a/app/views/track/atom_feed.atom.erb b/app/views/track/atom_feed.atom.erb
index 23c932308..a12b9eff0 100644
--- a/app/views/track/atom_feed.atom.erb
+++ b/app/views/track/atom_feed.atom.erb
@@ -9,7 +9,7 @@
# Get the HTML content from the same partial template as website search does
content = ''
if result[:model].class.to_s == 'InfoRequestEvent'
- content += render :partial => 'request/request_listing_via_event', :locals => { :event => result[:model], :info_request => result[:model].info_request }
+ content += render :partial => 'request/request_listing_via_event.html', :locals => { :event => result[:model], :info_request => result[:model].info_request }
else
content = "<p><strong>Unknown search result type " + result[:model].class.to_s + "</strong></p>"
end
diff --git a/app/views/track_mailer/event_digest.rhtml b/app/views/track_mailer/event_digest.text.erb
index 8dbc7fe06..8dbc7fe06 100644
--- a/app/views/track_mailer/event_digest.rhtml
+++ b/app/views/track_mailer/event_digest.text.erb
diff --git a/app/views/user/_change_receive_email.rhtml b/app/views/user/_change_receive_email.html.erb
index 83e5d8601..12824f711 100644
--- a/app/views/user/_change_receive_email.rhtml
+++ b/app/views/user/_change_receive_email.html.erb
@@ -1,4 +1,4 @@
-<% form_tag(:controller=>"user", :action=>"set_receive_email_alerts") do %>
+<%= form_tag(:controller=>"user", :action=>"set_receive_email_alerts") do %>
<div>
<% if @user.receive_email_alerts %>
<%= _('You are currently receiving notification of new activity on your wall by email.', :wall_url => show_user_wall_path) %><br><br>
diff --git a/app/views/user/_show_user_info.rhtml b/app/views/user/_show_user_info.html.erb
index 305300236..305300236 100644
--- a/app/views/user/_show_user_info.rhtml
+++ b/app/views/user/_show_user_info.html.erb
diff --git a/app/views/user/_signin.rhtml b/app/views/user/_signin.html.erb
index 7db07e4b4..afc55d249 100644
--- a/app/views/user/_signin.rhtml
+++ b/app/views/user/_signin.html.erb
@@ -1,6 +1,6 @@
<div id="signin">
-<% form_tag({:action => "signin"}, {:id => "signin_form"}) do %>
+<%= form_tag({:action => "signin"}, {:id => "signin_form"}) do %>
<%= foi_error_messages_for :user_signin %>
<!--<% if not sign_in_as_existing_user %>
diff --git a/app/views/user/_signup.rhtml b/app/views/user/_signup.html.erb
index 89ab19b7e..ec6541881 100644
--- a/app/views/user/_signup.rhtml
+++ b/app/views/user/_signup.html.erb
@@ -1,6 +1,6 @@
<div id="signup">
-<% form_tag({:action => "signup"}, {:id => "signup_form"}) do %>
+<%= form_tag({:action => "signup"}, {:id => "signup_form"}) do %>
<%= foi_error_messages_for :user_signup %>
<!--<h2><%= _('If you\'re new to {{site_name}}', :site_name=>site_name)%></h2>-->
@@ -10,8 +10,8 @@
<%= text_field 'user_signup', 'email', { :size => 20, :tabindex => 60 } %>
</p>
<div class="form_item_note">
- <%= raw(_('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]) %>
+ <%= _('We will not reveal your email address to anybody unless you or
+ the law tell us to (<a href="{{url}}">details</a>). ', :url => help_privacy_path) %>
</div>
<p>
@@ -19,11 +19,11 @@
<%= text_field 'user_signup', 'name', { :size => 20, :tabindex => 70, :autocomplete => "off" } %>
</p>
<div class="form_item_note">
- <%= raw(_('Your <strong>name will appear publicly</strong>
- (<a href="%s">why?</a>)
+ <%= _('Your <strong>name will appear publicly</strong>
+ (<a href="{{why_url}}">why?</a>)
on this website and in search engines. If you
- are thinking of using a pseudonym, please
- <a href="%s">read this first</a>.') % [help_privacy_path+"#public_request", help_privacy_path+"#real_name"]) %>
+ are thinking of using a pseudonym, please
+ <a href="{{help_url}}">read this first</a>.', :why_url => (help_privacy_path+"#public_request").html_safe, :help_url => (help_privacy_path+"#real_name").html_safe) %>
</div>
<p>
diff --git a/app/views/user/_user_listing_single.rhtml b/app/views/user/_user_listing_single.html.erb
index ed1b95718..ed1b95718 100644
--- a/app/views/user/_user_listing_single.rhtml
+++ b/app/views/user/_user_listing_single.html.erb
diff --git a/app/views/user/bad_token.rhtml b/app/views/user/bad_token.html.erb
index 538bc5606..538bc5606 100644
--- a/app/views/user/bad_token.rhtml
+++ b/app/views/user/bad_token.html.erb
diff --git a/app/views/user/banned.rhtml b/app/views/user/banned.html.erb
index 475c10977..475c10977 100644
--- a/app/views/user/banned.rhtml
+++ b/app/views/user/banned.html.erb
diff --git a/app/views/user/confirm.rhtml b/app/views/user/confirm.html.erb
index bc70a1f36..bc70a1f36 100644
--- a/app/views/user/confirm.rhtml
+++ b/app/views/user/confirm.html.erb
diff --git a/app/views/user/contact.rhtml b/app/views/user/contact.html.erb
index 333b72334..6d23dd1ed 100644
--- a/app/views/user/contact.rhtml
+++ b/app/views/user/contact.html.erb
@@ -6,7 +6,7 @@
<%= foi_error_messages_for :contact %>
-<% form_for :contact do |f| %>
+<%= form_for :contact do |f| %>
<div class="form_note">
<h1><%= _("Contact {{recipient}}", :recipient => h(@recipient_user.name)) %></h1>
diff --git a/app/views/user/no_cookies.rhtml b/app/views/user/no_cookies.html.erb
index c291367f2..0a4a39b1b 100644
--- a/app/views/user/no_cookies.rhtml
+++ b/app/views/user/no_cookies.html.erb
@@ -12,11 +12,11 @@ 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.')%>
-<%= raw(_('Please <a href="%s">get in touch</a> with us so we can fix it.') % [help_contact_path]) %>
+<%= _('Please <a href="{{url}}">get in touch</a> with us so we can fix it.', :url => help_contact_path.html_safe) %>
<%= _('Let us know what you were doing when this message
appeared and your browser and operating system type and version.')%></p>
-<p><%= raw(_('If you are still having trouble, please <a href="%s">contact us</a>.') % [help_contact_path]) %>
+<p><%= _('If you are still having trouble, please <a href="{{url}}">contact us</a>.', :url => help_contact_path.html_safe) %>
</p>
diff --git a/app/views/user/rate_limited.rhtml b/app/views/user/rate_limited.html.erb
index d52deebab..54a4e0461 100644
--- a/app/views/user/rate_limited.rhtml
+++ b/app/views/user/rate_limited.html.erb
@@ -2,7 +2,7 @@
<h1><%=@title%></h1>
-<p><%= _("You have hit the rate limit on new requests. Users are ordinarily limited to {{max_requests_per_user_per_day}} requests in any rolling 24-hour period. You will be able to make another request in {{can_make_another_request}}.", :max_requests_per_user_per_day => Configuration::max_requests_per_user_per_day, :can_make_another_request => distance_of_time_in_words(Time.now, @next_request_permitted_at))%></p>
+<p><%= _("You have hit the rate limit on new requests. Users are ordinarily limited to {{max_requests_per_user_per_day}} requests in any rolling 24-hour period. You will be able to make another request in {{can_make_another_request}}.", :max_requests_per_user_per_day => AlaveteliConfiguration::max_requests_per_user_per_day, :can_make_another_request => distance_of_time_in_words(Time.now, @next_request_permitted_at))%></p>
<p><%= _("There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>.", :help_contact_path => help_contact_path) %></p>
diff --git a/app/views/user/river.rhtml b/app/views/user/river.html.erb
index 9618e0aa8..9618e0aa8 100644
--- a/app/views/user/river.rhtml
+++ b/app/views/user/river.html.erb
diff --git a/app/views/user/set_crop_profile_photo.rhtml b/app/views/user/set_crop_profile_photo.html.erb
index eed0304d2..0a22d36dc 100644
--- a/app/views/user/set_crop_profile_photo.rhtml
+++ b/app/views/user/set_crop_profile_photo.html.erb
@@ -9,7 +9,7 @@
<div id="set_crop_profile_photo">
-<% form_tag 'set_photo', :id => 'set_crop_profile_photo_form', :multipart => true do %>
+<%= form_tag 'set_photo', :id => 'set_crop_profile_photo_form', :multipart => true do %>
<table>
<tr>
@@ -37,7 +37,7 @@
<p>
<%= hidden_field_tag 'submitted_crop_profile_photo', 1 %>
- <%= submit_tag _("Done") + " &gt;&gt;" %>
+ <%= submit_tag _("Done &gt;&gt;") %>
</p>
<% end %>
diff --git a/app/views/user/set_draft_profile_photo.rhtml b/app/views/user/set_draft_profile_photo.html.erb
index 757498249..b4bdd80f3 100644
--- a/app/views/user/set_draft_profile_photo.rhtml
+++ b/app/views/user/set_draft_profile_photo.html.erb
@@ -8,7 +8,7 @@
<div id="set_draft_profile_photo">
-<% form_tag 'set_photo', :id => 'set_draft_profile_photo_form', :multipart => true do %>
+<%= 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>
<%= file_field_tag :file, :size => 35, :id => 'file_1' %>
@@ -45,7 +45,7 @@
<h2><%= _('OR remove the existing photo')%></h2>
- <% form_tag 'clear_photo', :id => 'clear_profile_photo_form', :multipart => true do %>
+ <%= form_tag 'clear_photo', :id => 'clear_profile_photo_form', :multipart => true do %>
<%= submit_tag _("Clear photo") %>
<% end %>
diff --git a/app/views/user/set_profile_about_me.rhtml b/app/views/user/set_profile_about_me.html.erb
index 4fe1047da..fb7de7e97 100644
--- a/app/views/user/set_profile_about_me.rhtml
+++ b/app/views/user/set_profile_about_me.html.erb
@@ -4,7 +4,7 @@
<%= foi_error_messages_for :about_me %>
-<% form_for :about_me do |f| %>
+<%= form_for :about_me do |f| %>
<div class="form_note">
<h1><%= _('Edit text about you')%></h1>
<p>
@@ -26,7 +26,7 @@
<%= _(' Include relevant links, such as to a campaign page, your blog or a
twitter account. They will be made clickable.
e.g.')%>
- <a href="https://twitter.com/<%= Configuration::twitter_username %>">https://twitter.com/<%= Configuration::twitter_username %></a>
+ <a href="https://twitter.com/<%= AlaveteliConfiguration::twitter_username %>">https://twitter.com/<%= AlaveteliConfiguration::twitter_username %></a>
</p>
</div>
diff --git a/app/views/user/show.rhtml b/app/views/user/show.html.erb
index a3dea619d..c9862effe 100644
--- a/app/views/user/show.rhtml
+++ b/app/views/user/show.html.erb
@@ -97,7 +97,7 @@
<% if not @is_you %>
<p id="user_not_logged_in">
- <%= raw(_('<a href="%s">Sign in</a> to change password, subscriptions and more ({{user_name}} only)',:user_name=>h(@display_user.name)) % [signin_url(:r => request.request_uri)]) %>
+ <%= _('<a href="{{url}}">Sign in</a> to change password, subscriptions and more ({{user_name}} only)',:user_name=>h(@display_user.name), :url => signin_url(:r => request.fullpath).html_safe) %>
</p>
<% end %>
</div>
@@ -107,7 +107,7 @@
<% if @show_requests %>
<div id="user_profile_search">
- <% form_tag(show_user_url, :method => "get", :id=>"search_form") do %>
+ <%= form_tag(show_user_url, :method => "get", :id=>"search_form") do %>
<div>
<%= text_field_tag(:user_query, params[:user_query], {:title => "type your search term here" }) %>
<% if @is_you %>
@@ -128,7 +128,7 @@
<% end %>
<% else %>
<h2 class="foi_results" id="foi_requests">
- <%= @is_you ? n_('Your %d Freedom of Information request', 'Your %d Freedom of Information requests', @xapian_requests.matches_estimated) % @xapian_requests.matches_estimated.to_s : n_('This person\'s %d Freedom of Information request', 'This person\'s %d Freedom of Information requests', @xapian_requests.matches_estimated) % @xapian_requests.matches_estimated %>
+ <%= @is_you ? n_('Your {{count}} Freedom of Information request', 'Your {{count}} Freedom of Information requests', @xapian_requests.matches_estimated, :count => @xapian_requests.matches_estimated) : n_("This person's {{count}} Freedom of Information request", "This person's {{count}} Freedom of Information requests", @xapian_requests.matches_estimated, :count => @xapian_requests.matches_estimated) %>
<!-- matches_estimated <%=@xapian_requests.matches_estimated%> -->
<%= @match_phrase %>
<%= @page_desc %>
@@ -158,7 +158,7 @@
<% end %>
<% else %>
<h2 id="annotations">
- <%= @is_you ? n_('Your %d annotation', 'Your %d annotations', @display_user.visible_comments.size) % @display_user.visible_comments.size : n_('This person\'s %d annotation', 'This person\'s %d annotations', @display_user.visible_comments.size) % @display_user.visible_comments.size %>
+ <%= @is_you ? n_('Your {{count}} annotation', 'Your {{count}} annotations', @display_user.visible_comments.size, :count => @display_user.visible_comments.size) : n_("This person's {{count}} annotation", "This person's {{count}} annotations", @display_user.visible_comments.size, :count => @display_user.visible_comments.size) %>
<!-- matches_estimated <%=@xapian_comments.matches_estimated%> -->
<%= @page_desc %>
</h2>
@@ -181,12 +181,12 @@
<p><%= _("You're not following anything.")%></p>
<% else %>
<% if @track_things_grouped.size == 1 %>
- <% form_tag({:controller => 'track', :action => 'delete_all_type'}, :class => "feed_form") do %>
+ <%= form_tag({:controller => 'track', :action => 'delete_all_type'}, :class => "feed_form") do %>
<h3>
<%=TrackThing.track_type_description(@track_things[0].track_type)%>
<%= hidden_field_tag 'track_type', @track_things[0].track_type %>
<%= hidden_field_tag 'user', @display_user.id %>
- <%= hidden_field_tag 'r', request.request_uri %>
+ <%= hidden_field_tag 'r', request.fullpath %>
<% if @track_things.size > 1 %>
<%= submit_tag _('unsubscribe all') %>
<% end %>
@@ -195,12 +195,12 @@
<% end %>
<% for track_type, track_things in @track_things_grouped %>
<% if @track_things_grouped.size > 1 %>
- <% form_tag({:controller => 'track', :action => 'delete_all_type'}, :class => "feed_form") do %>
+ <%= form_tag({:controller => 'track', :action => 'delete_all_type'}, :class => "feed_form") do %>
<h3>
<%=TrackThing.track_type_description(track_type)%>
<%= hidden_field_tag 'track_type', track_type %>
<%= hidden_field_tag 'user', @display_user.id %>
- <%= hidden_field_tag 'r', request.request_uri %>
+ <%= hidden_field_tag 'r', request.fullpath %>
<% if track_things.size > 1 %>
<%= submit_tag _('unsubscribe all')%>
<% end %>
@@ -211,11 +211,11 @@
<ul>
<% for track_thing in track_things %>
<li>
- <% form_tag({:controller => 'track', :action => 'update', :track_id => track_thing.id}, :class => "feed_form") do %>
+ <%= form_tag({:controller => 'track', :action => 'update', :track_id => track_thing.id}, :class => "feed_form") do %>
<div>
<%= 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 } %>
+ <%= hidden_field_tag 'r', request.fullpath, { :id => 'r_' + track_thing.id.to_s } %>
<%= submit_tag _('unsubscribe') %>
</div>
<% end %>
diff --git a/app/views/user/sign.rhtml b/app/views/user/sign.html.erb
index 6a1979155..8291cdace 100644
--- a/app/views/user/sign.rhtml
+++ b/app/views/user/sign.html.erb
@@ -12,7 +12,9 @@
<% end %>
</p>
<% if @post_redirect.post_params["controller"] == "admin_general" %>
- <p id="superuser_message">Don't have a superuser account yet? <%= link_to "Sign in as the emergency user", @post_redirect.uri + "?emergency=1" %></p>
+ <% unless AlaveteliConfiguration::disable_emergency_user %>
+ <p id="superuser_message">Don't have a superuser account yet? <%= link_to "Sign in as the emergency user", @post_redirect.uri + "?emergency=1" %></p>
+ <% end %>
<% end %>
<%= render :partial => 'signin', :locals => { :sign_in_as_existing_user => true } %>
diff --git a/app/views/user/signchangeemail.rhtml b/app/views/user/signchangeemail.html.erb
index 0f8b76bc5..7308179f4 100644
--- a/app/views/user/signchangeemail.rhtml
+++ b/app/views/user/signchangeemail.html.erb
@@ -4,7 +4,7 @@
<div id="change_email">
-<% form_tag({:action => "signchangeemail"}, {:id => "signchangeemail_form"}) do %>
+<%= form_tag({:action => "signchangeemail"}, {:id => "signchangeemail_form"}) do %>
<%= foi_error_messages_for :signchangeemail %>
<div class="form_note">
diff --git a/app/views/user/signchangeemail_confirm.rhtml b/app/views/user/signchangeemail_confirm.html.erb
index bfedbac2d..bfedbac2d 100644
--- a/app/views/user/signchangeemail_confirm.rhtml
+++ b/app/views/user/signchangeemail_confirm.html.erb
diff --git a/app/views/user/signchangepassword.rhtml b/app/views/user/signchangepassword.html.erb
index edb980b9f..51bcb466d 100644
--- a/app/views/user/signchangepassword.rhtml
+++ b/app/views/user/signchangepassword.html.erb
@@ -4,7 +4,7 @@
<div id="change_password">
-<% form_tag({:action => "signchangepassword"}, {:id => "signchangepassword_form"}) do %>
+<%= form_tag({:action => "signchangepassword"}, {:id => "signchangepassword_form"}) do %>
<%= foi_error_messages_for :user %>
<div class="form_note">
diff --git a/app/views/user/signchangepassword_confirm.rhtml b/app/views/user/signchangepassword_confirm.html.erb
index 63b6515cd..63b6515cd 100644
--- a/app/views/user/signchangepassword_confirm.rhtml
+++ b/app/views/user/signchangepassword_confirm.html.erb
diff --git a/app/views/user/signchangepassword_send_confirm.rhtml b/app/views/user/signchangepassword_send_confirm.html.erb
index 84ee28f07..850237c34 100644
--- a/app/views/user/signchangepassword_send_confirm.rhtml
+++ b/app/views/user/signchangepassword_send_confirm.html.erb
@@ -2,7 +2,7 @@
<div id="change_password">
-<% form_tag({:action => "signchangepassword"}, {:id => "signchangepassword_form"}) do %>
+<%= form_tag({:action => "signchangepassword"}, {:id => "signchangepassword_form"}) do %>
<%= foi_error_messages_for :signchangepassword %>
<div class="form_note">
diff --git a/app/views/user/signin_successful.rhtml b/app/views/user/signin_successful.html.erb
index 675701d74..675701d74 100644
--- a/app/views/user/signin_successful.rhtml
+++ b/app/views/user/signin_successful.html.erb
diff --git a/app/views/user/wall.rhtml b/app/views/user/wall.html.erb
index 190cc0a6d..190cc0a6d 100644
--- a/app/views/user/wall.rhtml
+++ b/app/views/user/wall.html.erb
diff --git a/app/views/user/wrong_user.rhtml b/app/views/user/wrong_user.html.erb
index 30256a639..30256a639 100644
--- a/app/views/user/wrong_user.rhtml
+++ b/app/views/user/wrong_user.html.erb
diff --git a/app/views/user/wrong_user_unknown_email.html.erb b/app/views/user/wrong_user_unknown_email.html.erb
new file mode 100644
index 000000000..c1967fc1f
--- /dev/null
+++ b/app/views/user/wrong_user_unknown_email.html.erb
@@ -0,0 +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="{{url}}">contact us</a> to sort it out.', :url => help_contact_path.html_safe) %>
+</p>
+
+
diff --git a/app/views/user/wrong_user_unknown_email.rhtml b/app/views/user/wrong_user_unknown_email.rhtml
deleted file mode 100644
index c59c56941..000000000
--- a/app/views/user/wrong_user_unknown_email.rhtml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-<p id="sign_in_reason">
-<%= @reason_params[:web] %>. <%= raw(_('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.text.erb
index 32c2c7e63..32c2c7e63 100644
--- a/app/views/user_mailer/already_registered.rhtml
+++ b/app/views/user_mailer/already_registered.text.erb
diff --git a/app/views/user_mailer/changeemail_already_used.rhtml b/app/views/user_mailer/changeemail_already_used.text.erb
index 1d74dda35..1d74dda35 100644
--- a/app/views/user_mailer/changeemail_already_used.rhtml
+++ b/app/views/user_mailer/changeemail_already_used.text.erb
diff --git a/app/views/user_mailer/changeemail_confirm.rhtml b/app/views/user_mailer/changeemail_confirm.text.erb
index c73e9486b..c73e9486b 100644
--- a/app/views/user_mailer/changeemail_confirm.rhtml
+++ b/app/views/user_mailer/changeemail_confirm.text.erb
diff --git a/app/views/user_mailer/confirm_login.rhtml b/app/views/user_mailer/confirm_login.text.erb
index fa86dc2b1..fa86dc2b1 100644
--- a/app/views/user_mailer/confirm_login.rhtml
+++ b/app/views/user_mailer/confirm_login.text.erb
diff --git a/commonlib b/commonlib
-Subproject 4e84e9ed8fc75764da5139a51722729f2ba96ce
+Subproject 3f57d96fe765242c3a7082d386b5763b2e1ca73
diff --git a/config.ru b/config.ru
index 30b00bfa1..74748fd45 100644
--- a/config.ru
+++ b/config.ru
@@ -1,2 +1,4 @@
-require File.dirname(__FILE__) + '/config/environment'
-run ActionController::Dispatcher.new
+# This file is used by Rack-based servers to start the application.
+
+require ::File.expand_path('../config/environment', __FILE__)
+run Alaveteli::Application
diff --git a/config/application.rb b/config/application.rb
new file mode 100644
index 000000000..92fd30685
--- /dev/null
+++ b/config/application.rb
@@ -0,0 +1,75 @@
+require File.expand_path('../boot', __FILE__)
+
+require 'rails/all'
+
+require File.dirname(__FILE__) + '/../lib/configuration'
+
+# If you have a Gemfile, require the gems listed there, including any gems
+# you've limited to :test, :development, or :production.
+Bundler.require(:default, Rails.env) if defined?(Bundler)
+
+module Alaveteli
+ class Application < Rails::Application
+ # Settings in config/environments/* take precedence over those specified here.
+ # Application configuration should go into files in config/initializers
+ # -- all .rb files in that directory are automatically loaded.
+
+ # Custom directories with classes and modules you want to be autoloadable.
+ # config.autoload_paths += %W(#{config.root}/extras)
+
+ # Only load the plugins named here, in the order given (default is alphabetical).
+ # :all can be used as a placeholder for all plugins not explicitly named.
+ # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
+
+ # Activate observers that should always be running.
+ # config.active_record.observers = :cacher, :garbage_collector, :forum_observer
+
+ # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
+ # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
+ # config.time_zone = 'Central Time (US & Canada)'
+
+ # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
+ # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
+ # config.i18n.default_locale = :de
+
+ # JavaScript files you want as :defaults (application.js is always included).
+ # config.action_view.javascript_expansions[:defaults] = %w(jquery rails)
+
+ # Configure the default encoding used in templates for Ruby 1.9.
+ config.encoding = "utf-8"
+
+ # Configure sensitive parameters which will be filtered from the log file.
+ config.filter_parameters += [:password]
+
+ # Use SQL instead of Active Record's schema dumper when creating the test database.
+ # This is necessary if your schema can't be completely dumped by the schema dumper,
+ # like if you have constraints or database-specific column types
+ config.active_record.schema_format = :sql
+
+ # Make Active Record use UTC-base instead of local time
+ config.active_record.default_timezone = :utc
+
+ # This is the timezone that times and dates are displayed in
+ # Note that having set a zone, the Active Record
+ # time_zone_aware_attributes flag is on, so times from models
+ # will be in this time zone
+ config.time_zone = ::AlaveteliConfiguration::time_zone
+
+ config.after_initialize do |app|
+ require 'routing_filters.rb'
+ # Add a catch-all route to force routing errors to be handled by the application,
+ # rather than by middleware.
+ app.routes.append{ match '*path', :to => 'general#not_found' }
+ end
+
+ config.autoload_paths << "#{Rails.root.to_s}/lib/mail_handler"
+
+ # See Rails::Configuration for more options
+ ENV['RECAPTCHA_PUBLIC_KEY'] = ::AlaveteliConfiguration::recaptcha_public_key
+ ENV['RECAPTCHA_PRIVATE_KEY'] = ::AlaveteliConfiguration::recaptcha_private_key
+
+ # Insert a bit of middleware code to prevent uneeded cookie setting.
+ require "#{Rails.root}/lib/whatdotheyknow/strip_empty_sessions"
+ config.middleware.insert_before ActionDispatch::Session::CookieStore, WhatDoTheyKnow::StripEmptySessions, :key => '_wdtk_cookie_session', :path => "/", :httponly => true
+ end
+end
diff --git a/config/boot.rb b/config/boot.rb
index 906a2bace..a810be358 100644
--- a/config/boot.rb
+++ b/config/boot.rb
@@ -1,135 +1,15 @@
-# Don't change this file!
-# Configure your app in config/environment.rb and config/environments/*.rb
+require 'rubygems'
-# Hmmm, that's a bit daft - 'production' needs setting not only in the web
-# server, it also needs setting in all the scripts, so a central place seems
-# better. Look for a config/rails_env file, and read stuff from there if
+# Set up gems listed in the Gemfile.
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
+
+require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE'])
+
+# TODO: Remove this. This is a hacky system for having a default environment.
+# It looks for a config/rails_env.rb file, and reads stuff from there if
# it exists. Put just a line like this in there:
# ENV['RAILS_ENV'] = 'production'
rails_env_file = File.expand_path(File.join(File.dirname(__FILE__), 'rails_env.rb'))
if File.exists?(rails_env_file)
require rails_env_file
end
-
-RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)
-
-module Rails
- class << self
- def boot!
- unless booted?
- preinitialize
- pick_boot.run
- end
- end
-
- def booted?
- defined? Rails::Initializer
- end
-
- def pick_boot
- (vendor_rails? ? VendorBoot : GemBoot).new
- end
-
- def vendor_rails?
- File.exist?("#{RAILS_ROOT}/vendor/rails/Rakefile")
- end
-
- def preinitialize
- load(preinitializer_path) if File.exist?(preinitializer_path)
- end
-
- def preinitializer_path
- "#{RAILS_ROOT}/config/preinitializer.rb"
- end
- end
-
- class Boot
- def run
- load_initializer
-
- Rails::Initializer.class_eval do
- def load_gems
- @bundler_loaded ||= Bundler.require :default, Rails.env
- end
- end
-
- Rails::Initializer.run(:set_load_path)
- end
- end
-
- class VendorBoot < Boot
- def load_initializer
- require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer"
- Rails::Initializer.run(:install_gem_spec_stubs)
- Rails::GemDependency.add_frozen_gem_path
- end
- end
-
- class GemBoot < Boot
- def load_initializer
- self.class.load_rubygems
- load_rails_gem
- require 'initializer'
- end
-
- def load_rails_gem
- if version = self.class.gem_version
- gem 'rails', version
- else
- gem 'rails'
- end
- rescue Gem::LoadError => load_error
- if load_error.message =~ /Could not find RubyGem rails/
- STDERR.puts %(Missing the Rails #{version} gem. Please `gem install -v=#{version} rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.)
- exit 1
- else
- raise
- end
- end
-
- class << self
- def rubygems_version
- Gem::RubyGemsVersion rescue nil
- end
-
- def gem_version
- if defined? RAILS_GEM_VERSION
- RAILS_GEM_VERSION
- elsif ENV.include?('RAILS_GEM_VERSION')
- ENV['RAILS_GEM_VERSION']
- else
- parse_gem_version(read_environment_rb)
- end
- end
-
- def load_rubygems
- min_version = '1.3.2'
- require 'rubygems'
-
- unless rubygems_version >= min_version
- $stderr.puts %Q(Rails requires RubyGems >= #{min_version} (you have #{rubygems_version}). Please `gem update --system` and try again.)
- exit 1
- end
-
- rescue LoadError
- $stderr.puts %Q(Rails requires RubyGems >= #{min_version}. Please install RubyGems and try again: http://rubygems.rubyforge.org)
- exit 1
- end
-
- def parse_gem_version(text)
- $1 if text =~ /^[^#]*RAILS_GEM_VERSION\s*=\s*["']([!~<>=]*\s*[\d.]+)["']/
- end
-
- private
- def read_environment_rb
- File.read("#{RAILS_ROOT}/config/environment.rb")
- end
- end
- end
-end
-
-
-
-# All that for this:
-Rails.boot!
-
diff --git a/config/crontab.ugly b/config/crontab.ugly
index ef3455113..d33450df4 100644
--- a/config/crontab.ugly
+++ b/config/crontab.ugly
@@ -2,7 +2,7 @@
# Timed tasks for FOI site. Template file.
#
# Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org. WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org. WWW: http://www.mysociety.org/
PATH=/usr/local/bin:/usr/bin:/bin
MAILTO=cron-!!(*= $site *)!!@mysociety.org
diff --git a/config/database.yml-example b/config/database.yml-example
index b1597e6fe..e48577f23 100644
--- a/config/database.yml-example
+++ b/config/database.yml-example
@@ -19,6 +19,8 @@ test:
password: <password>
host: localhost
port: 5432
+# Uncomment the following if the user is not a postgres superuser
+# constraint_disabling: false
production:
adapter: postgresql
diff --git a/config/deploy.yml.example b/config/deploy.yml.example
index aea045dff..61931e50e 100644
--- a/config/deploy.yml.example
+++ b/config/deploy.yml.example
@@ -1,12 +1,12 @@
# Site-specific deployment configuration lives in this file
production:
- repository: git://github.com:mysociety/alaveteli.git
+ repository: git://github.com/mysociety/alaveteli.git
branch: master
server: www.example.com
user: deploy
deploy_to: /srv/www/alaveteli_production
staging:
- repository: git://github.com:mysociety/alaveteli.git
+ repository: git://github.com/mysociety/alaveteli.git
branch: develop
server: test.example.com
user: deploy
diff --git a/config/environment.rb b/config/environment.rb
index 4621c6a02..196680b23 100644
--- a/config/environment.rb
+++ b/config/environment.rb
@@ -1,150 +1,5 @@
-# Be sure to restart your web server when you modify this file.
-if RUBY_VERSION.to_f >= 1.9
- # the default encoding for IO is utf-8, and we use utf-8 internally
- Encoding.default_external = Encoding.default_internal = Encoding::UTF_8
- # Suppress warning messages and require inflector to avoid iconv deprecation message
- # "iconv will be deprecated in the future, use String#encode instead." when loading
- # it as part of rails
- original_verbose, $VERBOSE = $VERBOSE, nil
- require 'active_support/inflector'
- # Activate warning messages again.
- $VERBOSE = original_verbose
- require 'yaml'
- YAML::ENGINE.yamler = "syck"
-end
+# Load the rails application
+require File.expand_path('../application', __FILE__)
-# Uncomment below to force Rails into production mode when
-# you don't control web/app server and can't set it the proper way
-# ENV['RAILS_ENV'] ||= 'production'
-
-# Specifies gem version of Rails to use when vendor/rails is not present
-RAILS_GEM_VERSION = '2.3.17' unless defined? RAILS_GEM_VERSION
-
-# Bootstrap the Rails environment, frameworks, and default configuration
-require File.join(File.dirname(__FILE__), 'boot')
-
-# MySociety specific helper functions
-$:.push(File.join(File.dirname(__FILE__), '../commonlib/rblib'))
-# ... if these fail to include, you need the commonlib submodule from git
-# (type "git submodule update --init" in the whatdotheyknow directory)
-
-$:.unshift(File.join(File.dirname(__FILE__), '../vendor/plugins/globalize2/lib'))
-
-load "validate.rb"
-load "config.rb"
-load "format.rb"
-load "debug_helpers.rb"
-load "util.rb"
-# Patch Rails::GemDependency to cope with older versions of rubygems, e.g. in Debian Lenny
-# Restores override removed in https://github.com/rails/rails/commit/c20a4d18e36a13b5eea3155beba36bb582c0cc87
-# without effecting method behaviour
-# and adds fallback gem call removed in https://github.com/rails/rails/commit/4c3725723f15fab0a424cb1318b82b460714b72f
-require File.join(File.dirname(__FILE__), '../lib/old_rubygems_patch')
-require 'configuration'
-
-# Application version
-ALAVETELI_VERSION = '0.7'
-
-Rails::Initializer.run do |config|
- # Load intial mySociety config
- if ENV["RAILS_ENV"] == "test"
- MySociety::Config.set_file(File.join(config.root_path, 'config', 'test'), true)
- else
- MySociety::Config.set_file(File.join(config.root_path, 'config', 'general'), true)
- end
- MySociety::Config.load_default
-
- # Settings in config/environments/* take precedence over those specified here
-
- # Skip frameworks you're not going to use (only works if using vendor/rails)
- # config.frameworks -= [ :action_web_service, :action_mailer ]
-
- # Only load the plugins named here, by default all plugins in vendor/plugins are loaded
- # config.plugins = %W( exception_notification ssl_requirement )
-
- # Add additional load paths for your own custom dirs
- # config.load_paths += %W( #{Rails.root}/extras )
-
- # Force all environments to use the same logger level
- # (by default production uses :info, the others :debug)
- # TEMP: uncomment this to turn on logging in production environments
- # config.log_level = :debug
- #
- # Specify gems that this application depends on and have them installed with rake gems:install
- #GettextI18nRails.translations_are_html_safe = true
-
- # Use SQL instead of Active Record's schema dumper when creating the test database.
- # This is necessary if your schema can't be completely dumped by the schema dumper,
- # like if you have constraints or database-specific column types
- config.active_record.schema_format = :sql
-
- # Activate observers that should always be running
- # config.active_record.observers = :cacher, :garbage_collector
-
- # Make Active Record use UTC-base instead of local time
- config.active_record.default_timezone = :utc
-
- # This is the timezone that times and dates are displayed in
- # Note that having set a zone, the Active Record
- # time_zone_aware_attributes flag is on, so times from models
- # will be in this time zone
- config.time_zone = Configuration::time_zone
-
- config.after_initialize do
- require 'routing_filters.rb'
- end
-
- config.autoload_paths << "#{RAILS_ROOT}/lib/mail_handler"
-
- # See Rails::Configuration for more options
- ENV['RECAPTCHA_PUBLIC_KEY'] = Configuration::recaptcha_public_key
- ENV['RECAPTCHA_PRIVATE_KEY'] = Configuration::recaptcha_private_key
-end
-
-# Add new inflection rules using the following format
-# (all these examples are active by default):
-# Inflector.inflections do |inflect|
-# inflect.plural /^(ox)$/i, '\1en'
-# inflect.singular /^(ox)en/i, '\1'
-# inflect.irregular 'person', 'people'
-# inflect.uncountable %w( fish sheep )
-# end
-
-# Add new mime types for use in respond_to blocks:
-# Mime::Type.register "text/richtext", :rtf
-# Mime::Type.register "application/x-mobile", :mobile
-
-# Domain for URLs (so can work for scripts, not just web pages)
-ActionMailer::Base.default_url_options[:host] = Configuration::domain
-
-# fallback locale and available locales
-available_locales = Configuration::available_locales.split(/ /)
-default_locale = Configuration::default_locale
-
-FastGettext.default_available_locales = available_locales
-I18n.locale = default_locale
-I18n.available_locales = available_locales.map {|locale_name| locale_name.to_sym}
-I18n.default_locale = default_locale
-
-# Customise will_paginate URL generation
-WillPaginate::ViewHelpers.pagination_options[:renderer] = 'WillPaginateExtension::LinkRenderer'
-
-# Load monkey patches and other things from lib/
-require 'ruby19.rb'
-require 'activesupport_cache_extensions.rb'
-require 'timezone_fixes.rb'
-require 'use_spans_for_errors.rb'
-require 'activerecord_errors_extensions.rb'
-require 'willpaginate_extension.rb'
-require 'sendmail_return_path.rb'
-require 'i18n_fixes.rb'
-require 'rack_quote_monkeypatch.rb'
-require 'world_foi_websites.rb'
-require 'alaveteli_external_command.rb'
-require 'quiet_opener.rb'
-require 'mail_handler'
-
-if !Configuration.exception_notifications_from.blank? && !Configuration.exception_notifications_to.blank?
- ExceptionNotification::Notifier.sender_address = Configuration::exception_notifications_from
- ExceptionNotification::Notifier.exception_recipients = Configuration::exception_notifications_to
-end
+# Initialize the rails application
+Alaveteli::Application.initialize!
diff --git a/config/environments/development.rb b/config/environments/development.rb
index c43cdb049..54ab2977f 100644
--- a/config/environments/development.rb
+++ b/config/environments/development.rb
@@ -1,29 +1,30 @@
-# Settings specified here will take precedence over those in config/environment.rb
+Alaveteli::Application.configure do
+ # Settings specified here will take precedence over those in config/environment.rb
-config.log_level = :info
+ # In the development environment your application's code is reloaded on
+ # every request. This slows down response time but is perfect for development
+ # since you don't have to restart the webserver when you make code changes.
+ config.cache_classes = false
-# In the development environment your application's code is reloaded on
-# every request. This slows down response time but is perfect for development
-# since you don't have to restart the webserver when you make code changes.
-config.cache_classes = false
+ # Log error messages when you accidentally call methods on nil.
+ config.whiny_nils = true
-# Log error messages when you accidentally call methods on nil.
-config.whiny_nils = true
+ # Show full error reports and disable caching
+ config.consider_all_requests_local = true
+ config.action_controller.perform_caching = false
-# Show full error reports and disable caching
-config.action_controller.consider_all_requests_local = true
-config.action_controller.perform_caching = false
-config.action_view.debug_rjs = true
+ # Don't care if the mailer can't send
+ config.action_mailer.raise_delivery_errors = false
+ config.action_mailer.perform_deliveries = true
+ # Use mailcatcher in development
+ config.action_mailer.delivery_method = :smtp # so is queued, rather than giving immediate errors
+ config.action_mailer.smtp_settings = { :address => "localhost", :port => 1025 }
-# Don't care if the mailer can't send
-config.action_mailer.raise_delivery_errors = false
-config.action_mailer.perform_deliveries = true
-# Use mailcatcher in development
-config.action_mailer.delivery_method = :smtp # so is queued, rather than giving immediate errors
-config.action_mailer.smtp_settings = { :address => "localhost", :port => 1025 }
+ # Writes useful log files to debug memory leaks, of the sort where have
+ # unintentionally kept references to objects, especially strings.
+ # require 'memory_profiler'
+ # MemoryProfiler.start :string_debug => true, :delay => 10
-
-# Writes useful log files to debug memory leaks, of the sort where have
-# unintentionally kept references to objects, especially strings.
-# require 'memory_profiler'
-# MemoryProfiler.start :string_debug => true, :delay => 10
+ # Print deprecation notices to the Rails logger
+ config.active_support.deprecation = :log
+end
diff --git a/config/environments/production.rb b/config/environments/production.rb
index 84a8f5965..0c1929366 100644
--- a/config/environments/production.rb
+++ b/config/environments/production.rb
@@ -1,19 +1,34 @@
-# Settings specified here will take precedence over those in config/environment.rb
+Alaveteli::Application.configure do
+ # Settings specified here will take precedence over those in config/environment.rb
-# The production environment is meant for finished, "live" apps.
-# Code is not reloaded between requests
-config.cache_classes = true
+ # The production environment is meant for finished, "live" apps.
+ # Code is not reloaded between requests
+ config.cache_classes = true
-# Use a different logger for distributed setups
-# config.logger = SyslogLogger.new
+ # Use a different logger for distributed setups
+ # config.logger = SyslogLogger.new
-# Full error reports are disabled and caching is turned on
-config.action_controller.consider_all_requests_local = false
-config.action_controller.perform_caching = true
+ # Full error reports are disabled and caching is turned on
+ config.consider_all_requests_local = false
+ config.action_controller.perform_caching = true
-# Enable serving of images, stylesheets, and javascripts from an asset server
-# config.action_controller.asset_host = "http://assets.example.com"
+ # Enable serving of images, stylesheets, and javascripts from an asset server
+ # config.action_controller.asset_host = "http://assets.example.com"
-# Disable delivery errors, bad email addresses will be ignored
-# config.action_mailer.raise_delivery_errors = false
-config.action_mailer.delivery_method = :sendmail # so is queued, rather than giving immediate errors
+ # Disable delivery errors, bad email addresses will be ignored
+ # config.action_mailer.raise_delivery_errors = false
+ config.action_mailer.delivery_method = :sendmail # so is queued, rather than giving immediate errors
+
+ config.active_support.deprecation = :notify
+
+ if !AlaveteliConfiguration.exception_notifications_from.blank? && !AlaveteliConfiguration.exception_notifications_to.blank?
+ middleware.use ExceptionNotifier,
+ :sender_address => AlaveteliConfiguration::exception_notifications_from,
+ :exception_recipients => AlaveteliConfiguration::exception_notifications_to
+ end
+
+ require 'rack/ssl'
+ if AlaveteliConfiguration::force_ssl
+ config.middleware.insert_before ActionDispatch::Cookies, ::Rack::SSL
+ end
+end
diff --git a/config/environments/staging.rb b/config/environments/staging.rb
index 84a8f5965..0bb0db71a 100644
--- a/config/environments/staging.rb
+++ b/config/environments/staging.rb
@@ -1,19 +1,21 @@
-# Settings specified here will take precedence over those in config/environment.rb
+Alaveteli::Application.configure do
+ # Settings specified here will take precedence over those in config/environment.rb
-# The production environment is meant for finished, "live" apps.
-# Code is not reloaded between requests
-config.cache_classes = true
+ # The production environment is meant for finished, "live" apps.
+ # Code is not reloaded between requests
+ config.cache_classes = true
-# Use a different logger for distributed setups
-# config.logger = SyslogLogger.new
+ # Use a different logger for distributed setups
+ # config.logger = SyslogLogger.new
-# Full error reports are disabled and caching is turned on
-config.action_controller.consider_all_requests_local = false
-config.action_controller.perform_caching = true
+ # Full error reports are disabled and caching is turned on
+ config.action_controller.consider_all_requests_local = false
+ config.action_controller.perform_caching = true
-# Enable serving of images, stylesheets, and javascripts from an asset server
-# config.action_controller.asset_host = "http://assets.example.com"
+ # Enable serving of images, stylesheets, and javascripts from an asset server
+ # config.action_controller.asset_host = "http://assets.example.com"
-# Disable delivery errors, bad email addresses will be ignored
-# config.action_mailer.raise_delivery_errors = false
-config.action_mailer.delivery_method = :sendmail # so is queued, rather than giving immediate errors
+ # Disable delivery errors, bad email addresses will be ignored
+ # config.action_mailer.raise_delivery_errors = false
+ config.action_mailer.delivery_method = :sendmail # so is queued, rather than giving immediate errors
+end
diff --git a/config/environments/test.rb b/config/environments/test.rb
index 784ea18d3..df39e8873 100644
--- a/config/environments/test.rb
+++ b/config/environments/test.rb
@@ -1,25 +1,27 @@
-# Settings specified here will take precedence over those in config/environment.rb
+Alaveteli::Application.configure do
+ # Settings specified here will take precedence over those in config/environment.rb
-require 'patches/fixtures_constraint_disabling'
+ # The test environment is used exclusively to run your application's
+ # test suite. You never need to work with it otherwise. Remember that
+ # your test database is "scratch space" for the test suite and is wiped
+ # and recreated between test runs. Don't rely on the data there!
+ config.cache_classes = true
-# The test environment is used exclusively to run your application's
-# test suite. You never need to work with it otherwise. Remember that
-# your test database is "scratch space" for the test suite and is wiped
-# and recreated between test runs. Don't rely on the data there!
-config.cache_classes = true
+ # Log error messages when you accidentally call methods on nil.
+ config.whiny_nils = true
-# Log error messages when you accidentally call methods on nil.
-config.whiny_nils = true
+ # Show full error reports and disable caching
+ config.consider_all_requests_local = true
+ config.action_controller.perform_caching = false
-# Show full error reports and disable caching
-config.action_controller.consider_all_requests_local = true
-config.action_controller.perform_caching = false
+ # Tell ActionMailer not to deliver emails to the real world.
+ # The :test delivery method accumulates sent emails in the
+ # ActionMailer::Base.deliveries array.
+ config.action_mailer.delivery_method = :test
-# Tell ActionMailer not to deliver emails to the real world.
-# The :test delivery method accumulates sent emails in the
-# ActionMailer::Base.deliveries array.
-config.action_mailer.delivery_method = :test
-
-# Disable request forgery protection in test environment
-config.action_controller.allow_forgery_protection = false
+ # Disable request forgery protection in test environment
+ config.action_controller.allow_forgery_protection = false
+ # Print deprecation notices to the stderr
+ config.active_support.deprecation = :stderr
+end
diff --git a/config/general.yml-example b/config/general.yml-example
index 6bf54f400..17e1aa552 100644
--- a/config/general.yml-example
+++ b/config/general.yml-example
@@ -12,6 +12,11 @@ SITE_NAME: 'Alaveteli'
# Domain used in URLs generated by scripts (e.g. for going in some emails)
DOMAIN: '127.0.0.1:3000'
+# If true forces everyone (in the production environment) to use encrypted connections
+# (via https) by redirecting unencrypted connections. This is *highly* recommended
+# so that logins can't be intercepted by naughty people.
+FORCE_SSL: true
+
# ISO country code of country currrently deployed in
# (http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
ISO_COUNTRY_CODE: GB
@@ -83,6 +88,7 @@ BLACKHOLE_PREFIX: 'do-not-reply-to-this-address'
# The emergency user
ADMIN_USERNAME: 'adminxxxx'
ADMIN_PASSWORD: 'passwordx'
+DISABLE_EMERGENCY_USER: false
# Set this to true, and the admin interface will be available to anonymous users
SKIP_ADMIN_AUTH: false
diff --git a/config/httpd.conf b/config/httpd.conf-example
index acf37d97c..06170a5e2 100644
--- a/config/httpd.conf
+++ b/config/httpd.conf-example
@@ -4,7 +4,7 @@
# Ruby on Rails application.
#
# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org
# This is needed for the PHP spell checker
<Location /fcgi>
@@ -50,7 +50,12 @@ RewriteRule ^/request/((\d{1,3})\d*)/(response/\d+/attach/(html/)?\d+/.+) /views
PassengerResolveSymlinksInDocumentRoot on
# Recommend setting this to 3 or less on servers with 512MB RAM
PassengerMaxPoolSize 6
+ # The RackEnv variable applies to Rails 3 applications, while
+ # the RailsEnv variable applies to applications for earlier
+ # versions of Rails. There doesn't seem to be any harm in
+ # setting both, however.
RailsEnv production
+ RackEnv production
</IfModule>
# Gzip font resources
diff --git a/config/initializers/alaveteli.rb b/config/initializers/alaveteli.rb
new file mode 100644
index 000000000..263e5cf7b
--- /dev/null
+++ b/config/initializers/alaveteli.rb
@@ -0,0 +1,64 @@
+# MySociety specific helper functions
+$:.push(File.join(File.dirname(__FILE__), '../../commonlib/rblib'))
+# ... if these fail to include, you need the commonlib submodule from git
+# (type "git submodule update --init" in the whatdotheyknow directory)
+
+load "validate.rb"
+load "config.rb"
+load "format.rb"
+load "debug_helpers.rb"
+load "util.rb"
+
+# Application version
+ALAVETELI_VERSION = '0.10'
+
+# Add new inflection rules using the following format
+# (all these examples are active by default):
+# Inflector.inflections do |inflect|
+# inflect.plural /^(ox)$/i, '\1en'
+# inflect.singular /^(ox)en/i, '\1'
+# inflect.irregular 'person', 'people'
+# inflect.uncountable %w( fish sheep )
+# end
+
+# Add new mime types for use in respond_to blocks:
+# Mime::Type.register "text/richtext", :rtf
+# Mime::Type.register "application/x-mobile", :mobile
+
+# The Rails cache is set up by the Interlock plugin to use memcached
+
+# Domain for URLs (so can work for scripts, not just web pages)
+ActionMailer::Base.default_url_options[:host] = AlaveteliConfiguration::domain
+# https links in emails if forcing SSL
+if AlaveteliConfiguration::force_ssl
+ ActionMailer::Base.default_url_options[:protocol] = "https"
+end
+
+# fallback locale and available locales
+available_locales = AlaveteliConfiguration::available_locales.split(/ /)
+default_locale = AlaveteliConfiguration::default_locale
+
+FastGettext.default_available_locales = available_locales
+I18n.locale = default_locale
+I18n.available_locales = available_locales.map {|locale_name| locale_name.to_sym}
+I18n.default_locale = default_locale
+
+# Load monkey patches and other things from lib/
+require 'ruby19.rb'
+require 'activesupport_cache_extensions.rb'
+require 'use_spans_for_errors.rb'
+require 'activerecord_errors_extensions.rb'
+require 'i18n_fixes.rb'
+require 'world_foi_websites.rb'
+require 'alaveteli_external_command.rb'
+require 'quiet_opener.rb'
+require 'mail_handler'
+require 'public_body_categories'
+require 'ability'
+require 'normalize_string'
+require 'alaveteli_file_types'
+
+# Allow tests to be run under a non-superuser database account if required
+if Rails.env == 'test' and ActiveRecord::Base.configurations['test']['constraint_disabling'] == false
+ require 'no_constraint_disabling'
+end
diff --git a/config/initializers/backtrace_silencers.rb b/config/initializers/backtrace_silencers.rb
new file mode 100644
index 000000000..59385cdf3
--- /dev/null
+++ b/config/initializers/backtrace_silencers.rb
@@ -0,0 +1,7 @@
+# Be sure to restart your server when you modify this file.
+
+# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
+# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
+
+# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
+# Rails.backtrace_cleaner.remove_silencers!
diff --git a/config/initializers/fast_gettext.rb b/config/initializers/fast_gettext.rb
index 1cd6440e4..752448a41 100644
--- a/config/initializers/fast_gettext.rb
+++ b/config/initializers/fast_gettext.rb
@@ -3,4 +3,4 @@ FastGettext.default_text_domain = 'app'
I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)
-RoutingFilter::Locale.include_default_locale = Configuration::include_default_locale_in_urls \ No newline at end of file
+RoutingFilter::Locale.include_default_locale = AlaveteliConfiguration::include_default_locale_in_urls
diff --git a/config/initializers/gettext_i18n_rails.rb b/config/initializers/gettext_i18n_rails.rb
new file mode 100644
index 000000000..ef306682b
--- /dev/null
+++ b/config/initializers/gettext_i18n_rails.rb
@@ -0,0 +1,3 @@
+# FIXME: Audit the translations for XSS opportunities. Ultimately it would be
+# good to get rid of this and explicitly mark strings as html_safe
+GettextI18nRails.translations_are_html_safe = true
diff --git a/config/initializers/inflections.rb b/config/initializers/inflections.rb
new file mode 100644
index 000000000..9e8b0131f
--- /dev/null
+++ b/config/initializers/inflections.rb
@@ -0,0 +1,10 @@
+# Be sure to restart your server when you modify this file.
+
+# Add new inflection rules using the following format
+# (all these examples are active by default):
+# ActiveSupport::Inflector.inflections do |inflect|
+# inflect.plural /^(ox)$/i, '\1en'
+# inflect.singular /^(ox)en/i, '\1'
+# inflect.irregular 'person', 'people'
+# inflect.uncountable %w( fish sheep )
+# end
diff --git a/config/initializers/mime_types.rb b/config/initializers/mime_types.rb
new file mode 100644
index 000000000..72aca7e44
--- /dev/null
+++ b/config/initializers/mime_types.rb
@@ -0,0 +1,5 @@
+# Be sure to restart your server when you modify this file.
+
+# Add new mime types for use in respond_to blocks:
+# Mime::Type.register "text/richtext", :rtf
+# Mime::Type.register_alias "text/html", :iphone
diff --git a/config/initializers/secret_token.rb b/config/initializers/secret_token.rb
new file mode 100644
index 000000000..d120b94ae
--- /dev/null
+++ b/config/initializers/secret_token.rb
@@ -0,0 +1,12 @@
+# Be sure to restart your server when you modify this file.
+
+# Your secret key for verifying the integrity of signed cookies.
+# If you change this key, all old signed cookies will become invalid!
+# Make sure the secret is at least 30 characters and all random,
+# no regular words or you'll be exposed to dictionary attacks.
+
+# Just plopping an extra character on the secret_token so that any sessions on upgrading from
+# Rails 2 to Rails 3 version of Alaveteli are invalidated.
+# See http://blog.carbonfive.com/2011/03/19/rails-3-upgrade-tip-invalidate-session-cookies/
+
+Alaveteli::Application.config.secret_token = "3" + AlaveteliConfiguration::cookie_store_session_secret
diff --git a/config/initializers/session_store.rb b/config/initializers/session_store.rb
index 8cfa333f2..ca283d4e0 100644
--- a/config/initializers/session_store.rb
+++ b/config/initializers/session_store.rb
@@ -1,17 +1,2 @@
# Be sure to restart your server when you modify this file.
-
-# Your secret key for verifying cookie session data integrity.
-# If you change this key, all old sessions will become invalid!
-# Make sure the secret is at least 30 characters and all random,
-# no regular words or you'll be exposed to dictionary attacks.
-
-ActionController::Base.session = {
- :key => '_wdtk_cookie_session',
- :secret => Configuration::cookie_store_session_secret
-}
-ActionController::Base.session_store = :cookie_store
-
-# Insert a bit of middleware code to prevent uneeded cookie setting.
-require "#{Rails.root}/lib/whatdotheyknow/strip_empty_sessions"
-ActionController::Dispatcher.middleware.insert_before ActionController::Base.session_store, WhatDoTheyKnow::StripEmptySessions, :key => '_wdtk_cookie_session', :path => "/", :httponly => true
-
+Rails.application.config.session_store :cookie_store, :key => '_wdtk_cookie_session'
diff --git a/config/initializers/single_quote_escape_workaround.rb b/config/initializers/single_quote_escape_workaround.rb
deleted file mode 100644
index 2e713b982..000000000
--- a/config/initializers/single_quote_escape_workaround.rb
+++ /dev/null
@@ -1,31 +0,0 @@
-class ERB
- module Util
-
- if "html_safe exists".respond_to?(:html_safe)
- def html_escape(s)
- s = s.to_s
- if s.html_safe?
- s
- else
- Rack::Utils.escape_html(s).html_safe
- end
- end
- else
- def html_escape(s)
- s = s.to_s
- Rack::Utils.escape_html(s).html_safe
- end
- end
-
- remove_method :h
- alias h html_escape
-
- class << self
- remove_method :html_escape
- remove_method :h
- end
-
- module_function :html_escape
- module_function :h
- end
-end
diff --git a/config/initializers/strip_nil_parameters_patch.rb b/config/initializers/strip_nil_parameters_patch.rb
deleted file mode 100644
index 35d0a28c5..000000000
--- a/config/initializers/strip_nil_parameters_patch.rb
+++ /dev/null
@@ -1,51 +0,0 @@
-# Stolen from https://raw.github.com/mysociety/fixmytransport/fa9b014eb2628c300693e055f129cb8959772082/config/initializers/strip_nil_parameters_patch.rb
-
-# Monkey patch for CVE-2012-2660 on Rails 2.3.14
-
-# Strip [nil] from parameters hash
-# based on a pull request from @sebbacon
-# https://github.com/rails/rails/pull/6580
-
-module ActionController
- class Request < Rack::Request
- protected
- def deep_munge(hash)
- hash.each_value do |v|
- case v
- when Array
- v.grep(Hash) { |x| deep_munge(x) }
- when Hash
- deep_munge(v)
- end
- end
-
- keys = hash.keys.find_all { |k| hash[k] == [nil] }
- keys.each { |k| hash[k] = nil }
- hash
- end
-
- private
-
- def normalize_parameters(value)
- case value
- when Hash
- if value.has_key?(:tempfile)
- upload = value[:tempfile]
- upload.extend(UploadedFile)
- upload.original_path = value[:filename]
- upload.content_type = value[:type]
- upload
- else
- h = {}
- value.each { |k, v| h[k] = normalize_parameters(v) }
- deep_munge(h.with_indifferent_access)
- end
- when Array
- value.map { |e| normalize_parameters(e) }
- else
- value
- end
- end
-
- end
-end
diff --git a/config/initializers/theme_loader.rb b/config/initializers/theme_loader.rb
index 877149e9d..1ad2d01f1 100644
--- a/config/initializers/theme_loader.rb
+++ b/config/initializers/theme_loader.rb
@@ -2,12 +2,23 @@
# It is used by our config/routes.rb to decide which route extension files to load.
$alaveteli_route_extensions = []
-if ENV["RAILS_ENV"] != "test" # Don't let the themes interfere with Alaveteli specs
- for url in Configuration::theme_urls.reverse
+def require_theme(theme_name)
+ theme_main_include = File.expand_path "../../../vendor/plugins/#{theme_name}/lib/alavetelitheme.rb", __FILE__
+ if File.exists? theme_main_include
+ require theme_main_include
+ end
+end
+
+if Rails.env == "test"
+ # By setting this ALAVETELI_TEST_THEME to a theme name, theme tests can run in the Rails
+ # context with the theme loaded. Otherwise the themes from the config aren't loaded in testing
+ # so they don't interfere with core Alaveteli tests
+ if defined? ALAVETELI_TEST_THEME
+ require_theme(ALAVETELI_TEST_THEME)
+ end
+else
+ for url in AlaveteliConfiguration::theme_urls.reverse
theme_name = url.sub(/.*\/(.*).git/, "\\1")
- theme_main_include = File.expand_path "../../../vendor/plugins/#{theme_name}/lib/alavetelitheme.rb", __FILE__
- if File.exists? theme_main_include
- require theme_main_include
- end
+ require_theme(theme_name)
end
end
diff --git a/config/locales b/config/locales
deleted file mode 120000
index 10a4f96c3..000000000
--- a/config/locales
+++ /dev/null
@@ -1 +0,0 @@
-../vendor/rails-locales/rails/locale \ No newline at end of file
diff --git a/config/packages b/config/packages
index db51e5bdd..fc67cda6b 100644
--- a/config/packages
+++ b/config/packages
@@ -36,4 +36,5 @@ rake (>= 0.9.2.2)
build-essential
bundler
sqlite3
-libsqlite3-dev \ No newline at end of file
+libsqlite3-dev
+libicu-dev
diff --git a/config/routes.rb b/config/routes.rb
index adc8663c5..56be975c3 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,255 +1,241 @@
+# encoding: UTF-8
# config/routes.rb:
# Mapping URLs to controllers for FOIFA.
#
# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
# Allow easy extension from themes. Note these will have the highest priority.
$alaveteli_route_extensions.each do |f|
load File.join('config', f)
end
-ActionController::Routing::Routes.draw do |map|
-
- # The priority is based upon order of creation: first created -> highest priority.
-
- # Sample of regular route:
- # map.connect 'products/:id', :controller => 'catalog', :action => 'view'
- # Keep in mind you can assign values other than :controller and :action
-
- 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.search_redirect '/search', :action => 'search_redirect'
- general.search_redirect '/search/all', :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
- # and dots and other characters that can appear in search query. So we sort it all
- # out in the controller.
- general.search_general '/search/*combined/all', :action => 'search', :view => 'all'
- general.search_general '/search/*combined', :action => 'search'
- general.advanced_search '/advancedsearch', :action => 'search_redirect', :advanced => true
-
- general.random_request '/random', :action => 'random_request'
- end
-
- map.with_options :controller => 'request' do |request|
- request.request_list_recent '/list/recent', :action => 'list', :view => 'recent'
- request.request_list_all '/list/all', :action => 'list', :view => 'all'
- request.request_list_successful '/list/successful', :action => 'list', :view => 'successful'
- request.request_list_unsuccessful '/list/unsuccessful', :action => 'list', :view => 'unsuccessful'
- request.request_list_awaiting '/list/awaiting', :action => 'list', :view => 'awaiting'
- request.request_list '/list', :action => 'list'
-
- request.select_authority '/select_authority', :action => 'select_authority'
-
- request.new_request '/new', :action => 'new'
- request.new_request_to_body '/new/:url_name', :action => 'new'
-
- request.search_ahead '/request/search_ahead', :action => 'search_typeahead'
-
- request.show_request '/request/:url_title.:format', :action => 'show'
- request.show_new_request '/request/:url_title/new', :action => 'show'
- request.details_request '/details/request/:url_title', :action => 'details'
- request.similar_request '/similar/request/:url_title', :action => 'similar'
-
- request.describe_state '/request/:id/describe', :action => 'describe_state'
- request.show_response_no_followup '/request/:id/response', :action => 'show_response'
- request.show_response '/request/:id/response/:incoming_message_id', :action => 'show_response'
- request.get_attachment_as_html '/request/:id/response/:incoming_message_id/attach/html/:part/*file_name', :action => 'get_attachment_as_html'
- request.get_attachment '/request/:id/response/:incoming_message_id/attach/:part/*file_name', :action => 'get_attachment'
-
- request.info_request_event '/request_event/:info_request_event_id', :action => 'show_request_event'
-
- request.upload_response "/upload/request/:url_title", :action => 'upload_response'
- request.download_entire_request '/request/:url_title/download', :action => 'download_entire_request'
-
- # It would be nice to add :conditions => { :method => :post } to this next one,
- # because it ought not really to be available as a GET request since it changes
- # the server state. Unfortunately this doesn’t play well with the PostRedirect
- # mechanism, which assumes all post-login actions are available via GET, so we
- # refrain.
- request.report '/request/:url_title/report', :action => 'report_request'
-
- end
-
+Alaveteli::Application.routes.draw do
+ #### General contoller
+ match '/' => 'general#frontpage', :as => :frontpage
+ match '/blog' => 'general#blog', :as => :blog
+ match '/stylesheets/custom.css' => 'general#custom_css', :as => :custom_css
+ match '/search' => 'general#search_redirect', :as => :search_redirect
+ match '/search/all' => 'general#search_redirect', :as => :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
+ # and dots and other characters that can appear in search query. So we sort it all
+ # out in the controller.
+ match '/search/*combined/all' => 'general#search', :as => :search_general, :view => 'all'
+ match '/search(/*combined)' => 'general#search', :as => :search_general
+ match '/advancedsearch' => 'general#search_redirect', :as => :advanced_search, :advanced => true
+ #####
+
+ ##### Request controller
+ match '/list/recent' => 'request#list', :as => :request_list_recent, :view => 'recent'
+ match '/list/all' => 'request#list', :as => :request_list_all, :view => 'all'
+ match '/list/successful' => 'request#list', :as => :request_list_successful, :view => 'successful'
+ match '/list/unsuccessful' => 'request#list', :as => :request_list_unsuccessful, :view => 'unsuccessful'
+ match '/list/awaiting' => 'request#list', :as => :request_list_awaiting, :view => 'awaiting'
+ match '/list' => 'request#list', :as => :request_list
+
+ match '/select_authority' => 'request#select_authority', :as => :select_authority
+
+ match '/new' => 'request#new', :as => :new_request
+ match '/new/:url_name' => 'request#new', :as => :new_request_to_body
+
+ match '/request/search_ahead' => 'request#search_typeahead', :as => :search_ahead
+
+ match '/request/:url_title' => 'request#show', :as => :show_request
+ match '/request/:url_title/new' => 'request#show', :as => :show_new_request
+ match '/details/request/:url_title' => 'request#details', :as => :details_request
+ match '/similar/request/:url_title' => 'request#similar', :as => :similar_request
+
+ match '/request/:id/describe' => 'request#describe_state', :as => :describe_state
+ match '/request/:url_title/describe/:described_state' => 'request#describe_state_message', :as => :describe_state_message
+ match '/request/:id/response' => 'request#show_response', :as => :show_response_no_followup
+ match '/request/:id/response/:incoming_message_id' => 'request#show_response', :as => :show_response
+ match '/request/:id/response/:incoming_message_id/attach/html/:part/*file_name' => 'request#get_attachment_as_html', :format => false, :as => :get_attachment_as_html
+ match '/request/:id/response/:incoming_message_id/attach/:part(/*file_name)' => 'request#get_attachment', :format => false, :as => :get_attachment
+
+ match '/request_event/:info_request_event_id' => 'request#show_request_event', :as => :info_request_event
+
+ match '/upload/request/:url_title' => 'request#upload_response', :as => :upload_response
+ match '/request/:url_title/download' => 'request#download_entire_request', :as => :download_entire_request
+ ####
+
+ resources :request, :only => [] do
+ resource :report, :only => [:new, :create]
+ end
+
+ #### User controller
# Use /profile for things to do with the currently signed in user.
# Use /user/XXXX for things that anyone can see about that user.
# Note that /profile isn't indexed by search (see robots.txt)
- map.with_options :controller => 'user' do |user|
- user.signin '/profile/sign_in', :action => 'signin'
- user.signup '/profile/sign_up', :action => 'signup'
- user.signout '/profile/sign_out', :action => 'signout'
-
- user.confirm '/c/:email_token', :action => 'confirm'
- user.show_user '/user/:url_name.:format', :action => 'show'
- user.show_user_profile '/user/:url_name/profile.:format', :action => 'show', :view => 'profile'
- user.show_user_requests '/user/:url_name/requests.:format', :action => 'show', :view => 'requests'
- user.show_user_wall '/user/:url_name/wall.:format', :action => 'wall'
- user.contact_user '/user/contact/:id', :action => 'contact'
-
- user.signchangepassword '/profile/change_password', :action => 'signchangepassword'
- user.signchangeemail '/profile/change_email', :action => 'signchangeemail'
-
- user.set_profile_photo '/profile/set_photo', :action => 'set_profile_photo'
- user.clear_profile_photo '/profile/clear_photo', :action => 'clear_profile_photo'
- user.get_profile_photo '/user/:url_name/photo.png', :action => 'get_profile_photo'
- user.get_draft_profile_photo '/profile/draft_photo/:id.png', :action => 'get_draft_profile_photo'
- user.set_profile_about_me '/profile/set_about_me', :action => 'set_profile_about_me'
- user.set_receive_email_alerts '/profile/set_receive_alerts', :action => 'set_receive_email_alerts'
- user.river '/profile/river', :action => 'river'
- end
-
- map.with_options :controller => 'public_body' do |body|
- body.search_ahead_bodies '/body/search_ahead', :action => 'search_typeahead'
- body.list_public_bodies "/body", :action => 'list'
- body.list_public_bodies_default "/body/list/all", :action => 'list'
- body.list_public_bodies "/body/list/:tag", :action => 'list'
- body.list_public_bodies_redirect "/local/:tag", :action => 'list_redirect'
- body.all_public_bodies_csv "/body/all-authorities.csv", :action => 'list_all_csv'
- body.show_public_body "/body/:url_name.:format", :action => 'show', :view => 'all'
- body.show_public_body_all "/body/:url_name/all", :action => 'show', :view => 'all'
- body.show_public_body_successful "/body/:url_name/successful", :action => 'show', :view => "successful"
- body.show_public_body_unsuccessful "/body/:url_name/unsuccessful", :action => 'show', :view => "unsuccessful"
- body.show_public_body_awaiting "/body/:url_name/awaiting", :action => 'show', :view => "awaiting"
- body.view_public_body_email "/body/:url_name/view_email", :action => 'view_email'
- body.show_public_body_tag "/body/:url_name/:tag", :action => 'show'
- body.show_public_body_tag_view "/body/:url_name/:tag/:view", :action => 'show'
- end
-
- map.with_options :controller => 'comment' do |comment|
- comment.new_comment "/annotate/request/:url_title", :action => 'new', :type => 'request'
- end
-
- map.with_options :controller => 'services' do |service|
- service.other_country_message "/country_message", :action => 'other_country_message'
- service.hidden_user_explanation "/hidden_user_explanation", :action => 'hidden_user_explanation'
- end
-
- map.with_options :controller => 'track' do |track|
- # /track/ is for setting up an email alert for the item
- # /feed/ is a direct RSS feed of the item
- track.track_request '/:feed/request/:url_title.:format', :action => 'track_request', :feed => /(track|feed)/
- track.track_list '/:feed/list/:view.:format', :action => 'track_list', :view => nil, :feed => /(track|feed)/
- track.track_public_body "/:feed/body/:url_name.:format", :action => 'track_public_body', :feed => /(track|feed)/
- track.track_user "/:feed/user/:url_name.:format", :action => 'track_user', :feed => /(track|feed)/
- # XXX must be better way of getting dots and slashes in search queries to work than this *query_array
- # Also, the :format doesn't work. See hacky code in the controller that makes up for this.
- track.track_search "/:feed/search/*query_array.:format", :action => 'track_search_query' , :feed => /(track|feed)/
-
- track.update '/track/update/:track_id', :action => 'update'
- track.delete_all_type '/track/delete_all_type', :action => 'delete_all_type'
- track.atom_feed '/track/feed/:track_id', :action => 'atom_feed'
- end
-
- map.with_options :controller => 'help' do |help|
- help.help_unhappy '/help/unhappy/:url_title', :action => 'unhappy'
- help.help_about '/help/about', :action => 'about'
- help.help_alaveteli '/help/alaveteli', :action => 'alaveteli'
- 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
-
- map.with_options :controller => 'holiday' do |holiday|
- holiday.due_date "/due_date/:holiday", :action => 'due_date'
- end
-
- map.with_options :controller => 'request_game' do |game|
- game.categorise_play '/categorise/play', :action => 'play'
- game.categorise_request '/categorise/request/:url_title', :action => 'show'
- game.categorise_stop '/categorise/stop', :action => 'stop'
- end
-
- map.with_options :controller => 'admin_public_body' do |body|
- body.admin_body_missing '/admin/missing_scheme', :action => 'missing_scheme'
- body.admin_body_index '/admin/body', :action => 'index'
- body.admin_body_list '/admin/body/list', :action => 'list'
- body.admin_body_show '/admin/body/show/:id', :action => 'show'
- body.admin_body_new '/admin/body/new/:id', :action => 'new'
- body.admin_body_edit '/admin/body/edit/:id', :action => 'edit'
- body.admin_body_update '/admin/body/update/:id', :action => 'update'
- body.admin_body_create '/admin/body/create/:id', :action => 'create'
- body.admin_body_destroy '/admin/body/destroy/:id', :action => 'destroy'
- body.admin_body_import_csv '/admin/body/import_csv', :action => 'import_csv'
- body.admin_body_mass_tag_add '/admin/body/mass_tag_add', :action => 'mass_tag_add'
- end
-
- map.with_options :controller => 'admin_general' do |admin|
- admin.admin_general_index '/admin', :action => 'index'
- admin.admin_timeline '/admin/timeline', :action => 'timeline'
- admin.admin_debug '/admin/debug', :action => 'debug'
- admin.admin_stats '/admin/stats', :action => 'stats'
- admin.admin_js '/admin/javascripts/admin.js', :action => 'admin_js'
- end
-
- map.with_options :controller => 'admin_request' do |admin|
- admin.admin_request_list_old_unclassified '/admin/unclassified', :action => 'list_old_unclassified'
- admin.admin_request_index '/admin/request', :action => 'index'
- admin.admin_request_list '/admin/request/list', :action => 'list'
- admin.admin_request_show '/admin/request/show/:id', :action => 'show'
- admin.admin_request_resend '/admin/request/resend', :action => 'resend'
- admin.admin_request_edit '/admin/request/edit/:id', :action => 'edit'
- admin.admin_request_update '/admin/request/update/:id', :action => 'update'
- admin.admin_request_destroy '/admin/request/destroy/:id', :action => 'fully_destroy'
- admin.admin_request_edit_outgoing '/admin/request/edit_outgoing/:id', :action => 'edit_outgoing'
- admin.admin_request_destroy_outgoing '/admin/request/destroy_outgoing/:id', :action => 'destroy_outgoing'
- admin.admin_request_update_outgoing '/admin/request/update_outgoing/:id', :action => 'update_outgoing'
- admin.admin_request_edit_comment '/admin/request/edit_comment/:id', :action => 'edit_comment'
- admin.admin_request_update_comment '/admin/request/update_comment/:id', :action => 'update_comment'
- admin.admin_request_destroy_incoming '/admin/request/destroy_incoming/:id', :action => 'destroy_incoming'
- admin.admin_request_redeliver_incoming '/admin/request/redeliver_incoming', :action => 'redeliver_incoming'
- admin.admin_request_move_request '/admin/request/move_request', :action => 'move_request'
- admin.admin_request_generate_upload_url '/admin/request/generate_upload_url/:id', :action => 'generate_upload_url'
- admin.admin_request_show_raw_email '/admin/request/show_raw_email/:id', :action => 'show_raw_email'
- admin.admin_request_download_raw_email '/admin/request/download_raw_email/:id', :action => 'download_raw_email'
- admin.admin_request_clarification '/admin/request/mark_event_as_clarification', :action => 'mark_event_as_clarification'
- admin.admin_request_hide '/admin/request/hide/:id', :action => 'hide_request'
- end
-
- map.with_options :controller => 'admin_user' do |user|
- user.admin_user_index '/admin/user', :action => 'index'
- user.admin_user_list '/admin/user/list', :action => 'list'
- user.admin_user_list_banned '/admin/user/banned', :action => 'list_banned'
- user.admin_user_show '/admin/user/show/:id', :action => 'show'
- user.admin_user_edit '/admin/user/edit/:id', :action => 'edit'
- user.admin_user_show_bounce '/admin/user/show_bounce_message/:id', :action => 'show_bounce_message'
- user.admin_user_update '/admin/user/update/:id', :action => 'update'
- user.admin_user_clear_bounce '/admin/user/clear_bounce/:id', :action => 'clear_bounce'
- user.admin_user_destroy_track '/admin/user/destroy_track', :action => 'destroy_track'
- user.admin_user_login_as '/admin/user/login_as/:id', :action => 'login_as'
- user.admin_clear_profile_photo '/admin/user/clear_profile_photo/:id', :action => 'clear_profile_photo'
- end
-
- map.with_options :controller => 'admin_track' do |track|
- track.admin_track_list '/admin/track/list', :action => 'list'
- end
-
- map.with_options :controller => 'admin_censor_rule' do |rule|
- rule.admin_rule_new '/admin/censor/new', :action => 'new'
- rule.admin_rule_create '/admin/censor/create', :action => 'create'
- rule.admin_rule_edit '/admin/censor/edit/:id', :action => 'edit'
- rule.admin_rule_update '/admin/censor/update/:id', :action => 'update'
- rule.admin_rule_destroy '/admin/censor/destroy/:censor_rule_id', :action => 'destroy'
- end
-
- map.with_options :controller => 'api' do |api|
- api.api_create_request '/api/v2/request.json', :action => 'create_request', :conditions => { :method => :post }
-
- api.api_show_request '/api/v2/request/:id.json', :action => 'show_request', :conditions => { :method => :get }
- api.api_add_correspondence '/api/v2/request/:id.json', :action => 'add_correspondence', :conditions => { :method => :post }
-
- api.api_body_request_events '/api/v2/body/:id/request_events.:feed_type', :action => 'body_request_events', :feed_type => '^(json|atom)$'
- end
-
- map.filter('conditionallyprependlocale')
-
- # Allow downloading Web Service WSDL as a file with an extension
- # instead of a file named 'wsdl'
- # map.connect ':controller/service.wsdl', :action => 'wsdl'
+ match '/profile/sign_in' => 'user#signin', :as => :signin
+ match '/profile/sign_up' => 'user#signup', :as => :signup
+ match '/profile/sign_out' => 'user#signout', :as => :signout
+
+ match '/c/:email_token' => 'user#confirm', :as => :confirm
+ match '/user/:url_name' => 'user#show', :as => :show_user
+ match '/user/:url_name/profile' => 'user#show', :as => :show_user_profile, :view => 'profile'
+ match '/user/:url_name/requests' => 'user#show', :as => :show_user_requests, :view => 'requests'
+ match '/user/:url_name/wall' => 'user#wall', :as => :show_user_wall
+ match '/user/contact/:id' => 'user#contact', :as => :contact_user
+
+ match '/profile/change_password' => 'user#signchangepassword', :as => :signchangepassword
+ match '/profile/change_email' => 'user#signchangeemail', :as => :signchangeemail
+
+ match '/profile/set_photo' => 'user#set_profile_photo', :as => :set_profile_photo
+ match '/profile/clear_photo' => 'user#clear_profile_photo', :as => :clear_profile_photo
+ match '/user/:url_name/photo.png' => 'user#get_profile_photo', :as => :get_profile_photo
+ match '/profile/draft_photo/:id.png' => 'user#get_draft_profile_photo', :as => :get_draft_profile_photo
+ match '/profile/set_about_me' => 'user#set_profile_about_me', :as => :set_profile_about_me
+ match '/profile/set_receive_alerts' => 'user#set_receive_email_alerts', :as => :set_receive_email_alerts
+ match '/profile/river' => 'user#river', :as => :river
+ ####
+
+ #### PublicBody controller
+ match '/body/search_ahead' => 'public_body#search_typeahead', :as => :search_ahead_bodies
+ match '/body' => 'public_body#list', :as => :list_public_bodies
+ match '/body/list/all' => 'public_body#list', :as => :list_public_bodies_default
+ match '/body/list/:tag' => 'public_body#list', :as => :list_public_bodies
+ match '/local/:tag' => 'public_body#list_redirect', :as => :list_public_bodies_redirect
+ match '/body/all-authorities.csv' => 'public_body#list_all_csv', :as => :all_public_bodies_csv
+ match '/body/:url_name' => 'public_body#show', :as => :show_public_body, :view => 'all'
+ match '/body/:url_name/all' => 'public_body#show', :as => :show_public_body_all, :view => 'all'
+ match '/body/:url_name/successful' => 'public_body#show', :as => :show_public_body_successful, :view => 'successful'
+ match '/body/:url_name/unsuccessful' => 'public_body#show', :as => :show_public_body_unsuccessful, :view => 'unsuccessful'
+ match '/body/:url_name/awaiting' => 'public_body#show', :as => :show_public_body_awaiting, :view => 'awaiting'
+ match '/body/:url_name/view_email' => 'public_body#view_email', :as => :view_public_body_email
+ match '/body/:url_name/:tag' => 'public_body#show', :as => :show_public_body_tag
+ match '/body/:url_name/:tag/:view' => 'public_body#show', :as => :show_public_body_tag_view
+ ####
+
+ #### Comment controller
+ match '/annotate/request/:url_title' => 'comment#new', :as => :new_comment, :type => 'request'
+ ####
+
+ #### Services controller
+ match '/country_message' => 'services#other_country_message', :as => :other_country_message
+ match '/hidden_user_explanation' => 'services#hidden_user_explanation', :as => :hidden_user_explanation
+ ####
+
+ #### Track controller
+ # /track/ is for setting up an email alert for the item
+ # /feed/ is a direct RSS feed of the item
+ match '/:feed/request/:url_title' => 'track#track_request', :as => :track_request, :feed => /(track|feed)/
+ match '/:feed/list/:view' => 'track#track_list', :as => :track_list, :view => nil, :feed => /(track|feed)/
+ match '/:feed/body/:url_name' => 'track#track_public_body', :as => :track_public_body, :feed => /(track|feed)/
+ match '/:feed/user/:url_name' => 'track#track_user', :as => :track_user, :feed => /(track|feed)/
+ # XXX :format doesn't work. See hacky code in the controller that makes up for this.
+ match '/:feed/search/:query_array' => 'track#track_search_query',
+ :as => :track_search,
+ :feed => /(track|feed)/,
+ :constraints => { :query_array => /.*/ }
+
+ match '/track/update/:track_id' => 'track#update', :as => :update
+ match '/track/delete_all_type' => 'track#delete_all_type', :as => :delete_all_type
+ match '/track/feed/:track_id' => 'track#atom_feed', :as => :atom_feed
+ ####
+
+ #### Help controller
+ match '/help/unhappy/:url_title' => 'help#unhappy', :as => :help_unhappy
+ match '/help/about' => 'help#about', :as => :help_about
+ match '/help/alaveteli' => 'help#alaveteli', :as => :help_alaveteli
+ match '/help/contact' => 'help#contact', :as => :help_contact
+ match '/help/officers' => 'help#officers', :as => :help_officers
+ match '/help/requesting' => 'help#requesting', :as => :help_requesting
+ match '/help/privacy' => 'help#privacy', :as => :help_privacy
+ match '/help/api' => 'help#api', :as => :help_api
+ match '/help/credits' => 'help#credits', :as => :help_credits
+ match '/help/:action' => 'help#action', :as => :help_general
+ ####
+
+ #### Holiday controller
+ match '/due_date/:holiday' => 'holiday#due_date', :as => :due_date
+ ####
+
+ #### RequestGame controller
+ match '/categorise/play' => 'request_game#play', :as => :categorise_play
+ match '/categorise/request/:url_title' => 'request_game#show', :as => :categorise_request
+ match '/categorise/stop' => 'request_game#stop', :as => :categorise_stop
+ ####
+
+ #### AdminPublicBody controller
+ match '/admin/missing_scheme' => 'admin_public_body#missing_scheme', :as => :admin_body_missing
+ match '/admin/body' => 'admin_public_body#index', :as => :admin_body_index
+ match '/admin/body/list' => 'admin_public_body#list', :as => :admin_body_list
+ match '/admin/body/show/:id' => 'admin_public_body#show', :as => :admin_body_show
+ match '/admin/body/new' => 'admin_public_body#new', :as => :admin_body_new
+ match '/admin/body/edit/:id' => 'admin_public_body#edit', :as => :admin_body_edit
+ match '/admin/body/update/:id' => 'admin_public_body#update', :as => :admin_body_update
+ match '/admin/body/create' => 'admin_public_body#create', :as => :admin_body_create
+ match '/admin/body/destroy/:id' => 'admin_public_body#destroy', :as => :admin_body_destroy
+ match '/admin/body/import_csv' => 'admin_public_body#import_csv', :as => :admin_body_import_csv
+ match '/admin/body/mass_tag_add' => 'admin_public_body#mass_tag_add', :as => :admin_body_mass_tag_add
+ ####
+
+ #### AdminGeneral controller
+ match '/admin' => 'admin_general#index', :as => :admin_general_index
+ match '/admin/timeline' => 'admin_general#timeline', :as => :admin_timeline
+ match '/admin/debug' => 'admin_general#debug', :as => :admin_debug
+ match '/admin/stats' => 'admin_general#stats', :as => :admin_stats
+ match '/admin/javascripts/admin.js' => 'admin_general#admin_js', :as => :admin_js
+ ####
+
+ #### AdminRequest controller
+ match '/admin/request' => 'admin_request#index', :as => :admin_request_index
+ match '/admin/request/list' => 'admin_request#list', :as => :admin_request_list
+ match '/admin/request/show/:id' => 'admin_request#show', :as => :admin_request_show
+ match '/admin/request/resend' => 'admin_request#resend', :as => :admin_request_resend
+ match '/admin/request/edit/:id' => 'admin_request#edit', :as => :admin_request_edit
+ match '/admin/request/update/:id' => 'admin_request#update', :as => :admin_request_update
+ match '/admin/request/destroy/:id' => 'admin_request#fully_destroy', :as => :admin_request_destroy
+ match '/admin/request/edit_outgoing/:id' => 'admin_request#edit_outgoing', :as => :admin_request_edit_outgoing
+ match '/admin/request/destroy_outgoing/:id' => 'admin_request#destroy_outgoing', :as => :admin_request_destroy_outgoing
+ match '/admin/request/update_outgoing/:id' => 'admin_request#update_outgoing', :as => :admin_request_update_outgoing
+ match '/admin/request/edit_comment/:id' => 'admin_request#edit_comment', :as => :admin_request_edit_comment
+ match '/admin/request/update_comment/:id' => 'admin_request#update_comment', :as => :admin_request_update_comment
+ match '/admin/request/destroy_incoming' => 'admin_request#destroy_incoming', :as => :admin_request_destroy_incoming
+ match '/admin/request/redeliver_incoming' => 'admin_request#redeliver_incoming', :as => :admin_request_redeliver_incoming
+ match '/admin/request/move_request' => 'admin_request#move_request', :as => :admin_request_move_request
+ match '/admin/request/generate_upload_url/:id' => 'admin_request#generate_upload_url', :as => :admin_request_generate_upload_url
+ match '/admin/request/show_raw_email/:id' => 'admin_request#show_raw_email', :as => :admin_request_show_raw_email
+ match '/admin/request/download_raw_email/:id' => 'admin_request#download_raw_email', :as => :admin_request_download_raw_email
+ match '/admin/request/mark_event_as_clarification' => 'admin_request#mark_event_as_clarification', :as => :admin_request_clarification
+ match '/admin/request/hide/:id' => 'admin_request#hide_request', :as => :admin_request_hide
+ ####
+
+ #### AdminUser controller
+ match '/admin/user' => 'admin_user#index', :as => :admin_user_index
+ match '/admin/user/list' => 'admin_user#list', :as => :admin_user_list
+ match '/admin/user/banned' => 'admin_user#list_banned', :as => :admin_user_list_banned
+ match '/admin/user/show/:id' => 'admin_user#show', :as => :admin_user_show
+ match '/admin/user/edit/:id' => 'admin_user#edit', :as => :admin_user_edit
+ match '/admin/user/show_bounce_message/:id' => 'admin_user#show_bounce_message', :as => :admin_user_show_bounce
+ match '/admin/user/update/:id' => 'admin_user#update', :as => :admin_user_update
+ match '/admin/user/clear_bounce/:id' => 'admin_user#clear_bounce', :as => :admin_user_clear_bounce
+ match '/admin/user/destroy_track' => 'admin_user#destroy_track', :as => :admin_user_destroy_track
+ match '/admin/user/login_as/:id' => 'admin_user#login_as', :as => :admin_user_login_as
+ match '/admin/user/clear_profile_photo/:id' => 'admin_user#clear_profile_photo', :as => :admin_clear_profile_photo
+ ####
+
+ #### AdminTrack controller
+ match '/admin/track/list' => 'admin_track#list', :as => :admin_track_list
+ ####
+
+ #### AdminCensorRule controller
+ match '/admin/censor/new' => 'admin_censor_rule#new', :as => :admin_rule_new
+ match '/admin/censor/create' => 'admin_censor_rule#create', :as => :admin_rule_create
+ match '/admin/censor/edit/:id' => 'admin_censor_rule#edit', :as => :admin_rule_edit
+ match '/admin/censor/update/:id' => 'admin_censor_rule#update', :as => :admin_rule_update
+ match '/admin/censor/destroy/:censor_rule_id' => 'admin_censor_rule#destroy', :as => :admin_rule_destroy
+ ####
+
+ #### Api controller
+ match '/api/v2/request.json' => 'api#create_request', :as => :api_create_request, :via => :post
+
+ match '/api/v2/request/:id.json' => 'api#show_request', :as => :api_show_request, :via => :get
+ match '/api/v2/request/:id.json' => 'api#add_correspondence', :as => :api_add_correspondence, :via => :post
+
+ match '/api/v2/body/:id/request_events.:feed_type' => 'api#body_request_events', :as => :api_body_request_events, :feed_type => '^(json|atom)$'
+ ####
+
+ filter :conditionallyprependlocale
end
diff --git a/config/test.yml b/config/test.yml
index f40b11764..5c08e928b 100644
--- a/config/test.yml
+++ b/config/test.yml
@@ -1,7 +1,7 @@
# test.yml
# Test values for the "general" config file.
#
-# Configuration parameters, in YAML syntax.
+# AlaveteliConfiguration parameters, in YAML syntax.
#
# These may be values expected by the test suite; changing them may
# break tests.
@@ -13,6 +13,11 @@ SITE_NAME: 'Alaveteli'
# It makes things simpler if this is the same as the Rails test domain test.host
DOMAIN: 'test.host'
+# If true forces everyone (in the production environment) to use encrypted connections
+# (via https) by redirecting unencrypted connections. This is *highly* recommended
+# so that logins can't be intercepted by naughty people.
+FORCE_SSL: false
+
# ISO country code of country currrently deployed in
# (http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
ISO_COUNTRY_CODE: DE
diff --git a/config/varnish-alaveteli.vcl b/config/varnish-alaveteli.vcl
index 77350a8c8..5dd0ac83c 100644
--- a/config/varnish-alaveteli.vcl
+++ b/config/varnish-alaveteli.vcl
@@ -115,3 +115,43 @@ sub vcl_fetch {
}
}
+# We need to separately cache requests originating via http and via https
+# since we are serving very slightly different content in each case
+
+# Varnish 2.x version of vcl_hash
+#sub vcl_hash {
+# set req.hash += req.url;
+# if (req.http.host) {
+# set req.hash += req.http.host;
+# } else {
+# set req.hash += server.ip;
+# }
+#
+# # Include the X-Forward-Proto header, since we want to treat HTTPS
+# # requests differently, and make sure this header is always passed
+# # properly to the backend server.
+# if (req.http.X-Forwarded-Proto) {
+# set req.hash += req.http.X-Forwarded-Proto;
+# }
+#
+# return (hash);
+#}
+
+# Varnish 3 version of vcl_hash
+sub vcl_hash {
+ hash_data(req.url);
+ if (req.http.host) {
+ hash_data(req.http.host);
+ } else {
+ hash_data(server.ip);
+ }
+
+ # Include the X-Forward-Proto header, since we want to treat HTTPS
+ # requests differently, and make sure this header is always passed
+ # properly to the backend server.
+ if (req.http.X-Forwarded-Proto) {
+ hash_data(req.http.X-Forwarded-Proto);
+ }
+
+ return (hash);
+}
diff --git a/db/development_structure.sql b/db/development_structure.sql
index bd4870948..47e33e373 100644
--- a/db/development_structure.sql
+++ b/db/development_structure.sql
@@ -908,168 +908,168 @@ ALTER SEQUENCE users_id_seq OWNED BY users.id;
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
-ALTER TABLE ONLY acts_as_xapian_jobs ALTER COLUMN id SET DEFAULT nextval('acts_as_xapian_jobs_id_seq'::regclass);
+ALTER TABLE acts_as_xapian_jobs ALTER COLUMN id SET DEFAULT nextval('acts_as_xapian_jobs_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
-ALTER TABLE ONLY censor_rules ALTER COLUMN id SET DEFAULT nextval('censor_rules_id_seq'::regclass);
+ALTER TABLE censor_rules ALTER COLUMN id SET DEFAULT nextval('censor_rules_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
-ALTER TABLE ONLY comments ALTER COLUMN id SET DEFAULT nextval('comments_id_seq'::regclass);
+ALTER TABLE comments ALTER COLUMN id SET DEFAULT nextval('comments_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
-ALTER TABLE ONLY foi_attachments ALTER COLUMN id SET DEFAULT nextval('foi_attachments_id_seq'::regclass);
+ALTER TABLE foi_attachments ALTER COLUMN id SET DEFAULT nextval('foi_attachments_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
-ALTER TABLE ONLY has_tag_string_tags ALTER COLUMN id SET DEFAULT nextval('public_body_tags_id_seq'::regclass);
+ALTER TABLE has_tag_string_tags ALTER COLUMN id SET DEFAULT nextval('public_body_tags_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
-ALTER TABLE ONLY holidays ALTER COLUMN id SET DEFAULT nextval('holidays_id_seq'::regclass);
+ALTER TABLE holidays ALTER COLUMN id SET DEFAULT nextval('holidays_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
-ALTER TABLE ONLY incoming_messages ALTER COLUMN id SET DEFAULT nextval('incoming_messages_id_seq'::regclass);
+ALTER TABLE incoming_messages ALTER COLUMN id SET DEFAULT nextval('incoming_messages_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
-ALTER TABLE ONLY info_request_events ALTER COLUMN id SET DEFAULT nextval('info_request_events_id_seq'::regclass);
+ALTER TABLE info_request_events ALTER COLUMN id SET DEFAULT nextval('info_request_events_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
-ALTER TABLE ONLY info_requests ALTER COLUMN id SET DEFAULT nextval('info_requests_id_seq'::regclass);
+ALTER TABLE info_requests ALTER COLUMN id SET DEFAULT nextval('info_requests_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
-ALTER TABLE ONLY mail_server_log_dones ALTER COLUMN id SET DEFAULT nextval('exim_log_dones_id_seq'::regclass);
+ALTER TABLE mail_server_log_dones ALTER COLUMN id SET DEFAULT nextval('exim_log_dones_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
-ALTER TABLE ONLY mail_server_logs ALTER COLUMN id SET DEFAULT nextval('exim_logs_id_seq'::regclass);
+ALTER TABLE mail_server_logs ALTER COLUMN id SET DEFAULT nextval('exim_logs_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
-ALTER TABLE ONLY outgoing_messages ALTER COLUMN id SET DEFAULT nextval('outgoing_messages_id_seq'::regclass);
+ALTER TABLE outgoing_messages ALTER COLUMN id SET DEFAULT nextval('outgoing_messages_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
-ALTER TABLE ONLY post_redirects ALTER COLUMN id SET DEFAULT nextval('post_redirects_id_seq'::regclass);
+ALTER TABLE post_redirects ALTER COLUMN id SET DEFAULT nextval('post_redirects_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
-ALTER TABLE ONLY profile_photos ALTER COLUMN id SET DEFAULT nextval('profile_photos_id_seq'::regclass);
+ALTER TABLE profile_photos ALTER COLUMN id SET DEFAULT nextval('profile_photos_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
-ALTER TABLE ONLY public_bodies ALTER COLUMN id SET DEFAULT nextval('public_bodies_id_seq'::regclass);
+ALTER TABLE public_bodies ALTER COLUMN id SET DEFAULT nextval('public_bodies_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
-ALTER TABLE ONLY public_body_translations ALTER COLUMN id SET DEFAULT nextval('public_body_translations_id_seq'::regclass);
+ALTER TABLE public_body_translations ALTER COLUMN id SET DEFAULT nextval('public_body_translations_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
-ALTER TABLE ONLY public_body_versions ALTER COLUMN id SET DEFAULT nextval('public_body_versions_id_seq'::regclass);
+ALTER TABLE public_body_versions ALTER COLUMN id SET DEFAULT nextval('public_body_versions_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
-ALTER TABLE ONLY purge_requests ALTER COLUMN id SET DEFAULT nextval('purge_requests_id_seq'::regclass);
+ALTER TABLE purge_requests ALTER COLUMN id SET DEFAULT nextval('purge_requests_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
-ALTER TABLE ONLY raw_emails ALTER COLUMN id SET DEFAULT nextval('raw_emails_id_seq'::regclass);
+ALTER TABLE raw_emails ALTER COLUMN id SET DEFAULT nextval('raw_emails_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
-ALTER TABLE ONLY request_classifications ALTER COLUMN id SET DEFAULT nextval('request_classifications_id_seq'::regclass);
+ALTER TABLE request_classifications ALTER COLUMN id SET DEFAULT nextval('request_classifications_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
-ALTER TABLE ONLY track_things ALTER COLUMN id SET DEFAULT nextval('track_things_id_seq'::regclass);
+ALTER TABLE track_things ALTER COLUMN id SET DEFAULT nextval('track_things_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
-ALTER TABLE ONLY track_things_sent_emails ALTER COLUMN id SET DEFAULT nextval('track_things_sent_emails_id_seq'::regclass);
+ALTER TABLE track_things_sent_emails ALTER COLUMN id SET DEFAULT nextval('track_things_sent_emails_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
-ALTER TABLE ONLY user_info_request_sent_alerts ALTER COLUMN id SET DEFAULT nextval('user_info_request_sent_alerts_id_seq'::regclass);
+ALTER TABLE user_info_request_sent_alerts ALTER COLUMN id SET DEFAULT nextval('user_info_request_sent_alerts_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
-ALTER TABLE ONLY users ALTER COLUMN id SET DEFAULT nextval('users_id_seq'::regclass);
+ALTER TABLE users ALTER COLUMN id SET DEFAULT nextval('users_id_seq'::regclass);
--
diff --git a/db/migrate/006_version_public_body.rb b/db/migrate/006_version_public_body.rb
index 34586add2..0e4527133 100644
--- a/db/migrate/006_version_public_body.rb
+++ b/db/migrate/006_version_public_body.rb
@@ -1,6 +1,8 @@
class VersionPublicBody < ActiveRecord::Migration
def self.up
PublicBody.create_versioned_table
+
+ add_timestamps(:public_body_versions)
end
def self.down
diff --git a/db/migrate/101_add_hash_to_info_request.rb b/db/migrate/101_add_hash_to_info_request.rb
index e21bf0989..e38384cd6 100644
--- a/db/migrate/101_add_hash_to_info_request.rb
+++ b/db/migrate/101_add_hash_to_info_request.rb
@@ -5,13 +5,11 @@ class AddHashToInfoRequest < ActiveRecord::Migration
add_column :info_requests, :idhash, :string
# Create the missing events for requests already sent
- InfoRequest.find(:all).each do |info_request|
- info_request.idhash = Digest::SHA1.hexdigest(info_request.id.to_s + Configuration::incoming_email_secret)[0,8]
+ InfoRequest.all.each do |info_request|
+ info_request.idhash = Digest::SHA1.hexdigest(info_request.id.to_s + AlaveteliConfiguration::incoming_email_secret)[0,8]
info_request.save!
- puts info_request.idhash
end
change_column :info_requests, :idhash, :string, :null => false
- puts InfoRequest.find_by_idhash
end
def self.down
remove_column :info_requests, :idhash
diff --git a/db/seeds.rb b/db/seeds.rb
new file mode 100644
index 000000000..664d8c74c
--- /dev/null
+++ b/db/seeds.rb
@@ -0,0 +1,7 @@
+# This file should contain all the record creation needed to seed the database with its default values.
+# The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
+#
+# Examples:
+#
+# cities = City.create([{ :name => 'Chicago' }, { :name => 'Copenhagen' }])
+# Mayor.create(:name => 'Daley', :city => cities.first)
diff --git a/doc/ADMIN.md b/doc/ADMIN.md
index 059010e68..07fe9398d 100644
--- a/doc/ADMIN.md
+++ b/doc/ADMIN.md
@@ -16,6 +16,6 @@ The javascript is included in a funky way
To change it, edit the coffeescript at
`lib/view/general/admin.coffee`, and then do something like:
- $ coffee -o /tmp/ -c lib/views/general/admin.coffee
- $ mv /tmp/admin.js lib/views/general/admin_js.erb
+ $ coffee -o /tmp/ -c app/views/admin_general/admin.coffee
+ $ mv /tmp/admin.js app/views/admin_general/admin_js.erb
diff --git a/doc/CHANGES.md b/doc/CHANGES.md
index 59c2d3f37..9a027a3a8 100644
--- a/doc/CHANGES.md
+++ b/doc/CHANGES.md
@@ -1,3 +1,32 @@
+# Version 0.9
+## Highlighted features
+* Consistent and more informative variable interpolation syntax in translated phrases. All of these phrases will now appear in the form "There are {{count}} people following this request", where some were previously in the form "There are %s people following this request". (Matthew Landauer)
+* Replaces deprecated calls to with_locale on ActiveRecord classes in preparation for upgrade to Globalize3 (Matthew Landauer)
+* Fixes a database deadlock bug caused by near-simultaneous incoming emails for the same info request (Mark Longair)
+
+## Upgrade notes
+* Check out this version and run `rails-post-deploy` as usual.
+
+
+# Version 0.8
+## Highlighted features
+* Support for running the site over SSL/TLS only and corresponding removal of support for a proxied admin interface, including the deprecation of the main_url and admin_url helpers.
+* Merging of the adminbootstrap theme into core Alaveteli, replacing the existing admin theme. (Matthew Landauer)
+* Move to HTML 5 (Matthew Landauer)
+* More consistent UI for links in the admin interface
+* [Security] Upgrades the Rails version to 2.3.17 to get fixes for CVE-2013-0277, CVE-2013-0276 (Although core Alaveteli does not use serialize or attr_protected), upgrade JSON gem to get fix for CVE-2013-0269.
+* A bugfix for Chrome's autofilling of signup fields (Vaughan Rouesnel)
+* Improvements to the accessibility of the search boxes (Nathan Jenkins)
+* Only one email sent when asking for admin attention to a request [issue #789](https://github.com/mysociety/alaveteli/pull/864) (Matthew Landauer)
+* A number of XSS escaping fixes for Version 0.7 (Matthew Landauer)
+* The emergency admin account can now be disabled
+
+## Upgrade notes
+* Check out this version and run `rails-post-deploy` as usual.
+* Remove adminbootstrap from the THEME_URLS or THEME_URL config variable, and remove vendor/plugins/adminbootstraptheme, and the softlink public/adminbootstraptheme.
+* There is a new config variable FORCE_SSL, which defaults to true, meaning that Alaveteli will redirect all "http" requests to "https", set the Strict-Transport-Security header and flag all cookies as "secure". For more information about running your install over SSL/TLS, see the [install guide](https://github.com/mysociety/alaveteli/blob/develop/doc/INSTALL.md#set-up-production-web-server). If you don't want to run over SSL/TLS, add the config variable FORCE_SSL to your config/general.yml and set it to false.
+* If you would like to disable the emergency user account, set DISABLE_EMERGENCY_USER to true in you config/general.yml
+
# Version 0.7
## Highlighted features
* [Security] Upgrades the Rails version from 2.3.15 to 2.3.16 to get fix for a critical security flaw in Rails (CVE-2013-0333).
diff --git a/doc/INSTALL.md b/doc/INSTALL.md
index 3a911cbc8..b6e8d2265 100644
--- a/doc/INSTALL.md
+++ b/doc/INSTALL.md
@@ -14,7 +14,7 @@ with all these steps configured. It is *not* production-ready.
To start with, you may need to install git, e.g. with `sudo apt-get
install git-core`
-Next, get hold of the Alaveteli source code from github:
+Next, get hold of the Alaveteli source code from github:
git clone https://github.com/mysociety/alaveteli.git
cd alaveteli
@@ -27,7 +27,7 @@ master branch (which always contains the latest stable release):
# Package pinning
-You need to configure [apt-pinning](http://wiki.debian.org/AptPreferences#Pinning-1) preferences in order to prevent packages being pulled from the debian testing distribution in preference to the stable distribution once you have added the testing repository as described below.
+You need to configure [apt-pinning](http://wiki.debian.org/AptPreferences#Pinning-1) preferences in order to prevent packages being pulled from the debian testing distribution in preference to the stable distribution once you have added the testing repository as described below.
In order to configure apt-pinning and to keep most packages coming from the Debian stable repository while installing the ones required from testing and the mySociety repository you need to run the following commands:
@@ -36,7 +36,7 @@ In order to configure apt-pinning and to keep most packages coming from the Debi
echo "Pin-Priority: 50" >> /tmp/preferences
sudo cp /tmp/preferences /etc/apt/
rm /tmp/preferences
-
+
# Install system dependencies
These are packages that the software depends on: third-party software
@@ -67,21 +67,13 @@ Some of the files also have a version number listed in config/packages
# Install Ruby dependencies
-Install rubygems 1.6.2 (we're not using the Debian package because we
-need an older version; see "Troubleshooting" below for an
-explanation):
-
- wget http://rubyforge.org/frs/download.php/74445/rubygems-1.6.2.tgz -O /tmp/rubygems-1.6.2.tgz
- tar zxvf /tmp/rubygems-1.6.2.tgz -C /tmp/
- sudo ruby1.8 /tmp/rubygems-1.6.2/setup.rb
-
-To install Alaveteli's Ruby dependencies, we also need to install
+To install Alaveteli's Ruby dependencies, we need to install
bundler. In Debian, this is provided as a package (installed as part
of the package install process above). You could also install it as a
gem:
sudo gem1.8 install bundler
-
+
# Install mySociety libraries
You will also want to install mySociety's common ruby libraries and the Rails
@@ -118,7 +110,7 @@ use the Debian package compiled by mySociety (see link in
[issue 305](https://github.com/mysociety/alaveteli/issues/305))
-# Configure Database
+# Configure Database
There has been a little work done in trying to make the code work with
other databases (e.g. SQLite), but the currently supported database is
@@ -138,13 +130,14 @@ username and password of your postgres database.
Make sure that the user specified in database.yml exists, and has full
permissions on these databases. As they need the ability to turn off
constraints whilst running the tests they also need to be a superuser.
-(See http://dev.rubyonrails.org/ticket/9981)
-
+If you don't want your database user to be a superuser, you can add a line
+`disable_constraints: false` to the test config in database.yml, as seen in database.yml-example
+
You can create a `foi` user from the command line, thus:
# su - postgres
$ createuser -s -P foi
-
+
And you can create a database thus:
$ createdb -T template0 -E SQL_ASCII -O foi foi_production
@@ -157,15 +150,15 @@ data that may not be valid UTF (for example, data originating from
various broken email clients that's not 8-bit clean), it's safer to be
able to store *anything*, than reject data at runtime.
-# Configure email
+# Configure email
You will need to set up an email server (MTA) to send and receive
emails. Full configuration for an MTA is beyond the scope of this
document, though we describe an example configuration for Exim in
`INSTALL-exim4.md`.
-Note that in development mode, mail is handled by default by mailcatcher
-so that you can see the mails in a browser - see http://mailcatcher.me/
+Note that in development mode, mail is handled by default by mailcatcher
+so that you can see the mails in a browser - see http://mailcatcher.me/
for more details.
## Minimal
@@ -230,7 +223,7 @@ for instructions on switching on local and remote performance analysis.
In the 'alaveteli' directory, run:
- ./script/rails-post-deploy
+ script/rails-post-deploy
(This will need execute privs so `chmod 755` if necessary.) This sets
up directory structures, creates logs, installs/updates themes, runs
@@ -245,11 +238,11 @@ If you want some dummy data to play with, you can try loading the
fixtures that the test suite uses into your development database. You
can do this with:
- ./script/load-sample-data
+ script/load-sample-data
Next we need to create the index for the search engine (Xapian):
- ./script/rebuild-xapian-index
+ script/rebuild-xapian-index
If this fails, the site should still mostly run, but it's a core
component so you should really try to get this working.
@@ -281,7 +274,7 @@ tests to pass by setting `export LD_PRELOAD=/lib/libuuid.so.1`.
Run the following to get the server running:
- ./script/server --environment=development
+ script/server --environment=development
By default the server listens on all interfaces. You can restrict it to the
localhost interface by adding ` --binding=127.0.0.1`
@@ -301,7 +294,7 @@ There is an emergency user account which can be accessed via
`/admin?emergency=1`, using the credentials `ADMIN_USERNAME` and
`ADMIN_PASSWORD`, which are set in `general.yml`. To bootstrap the
first `super` level accounts, you will need to log in as the emergency
-user.
+user. You can disable the emergency user account by setting `DISABLE_EMERGENCY_USER` to `true` in `general.yml`.
Users with the superuser role also have extra privileges in the
website frontend, such as being able to categorise any request, being
@@ -328,7 +321,7 @@ like `!!(*= $this *)!!`. The variables are:
port with a path to the directory where your Alaveteli software
installation lives, e.g. `/var/www/`
* `vhost_dir`: the entire path to the directory where the software is
- served from. -- you should replace this with a path to the
+ served from. -- you should replace this with a path to the
directory where your Alaveteli software installation lives,
e.g. `/var/www/`
* `vcspath`: the name of the alaveteli checkout, e.g. `alaveteli`.
@@ -367,8 +360,8 @@ It is not recommended to run the website using the default Rails web
server. There are various recommendations here:
http://rubyonrails.org/deploy
-We usually use Passenger / mod_rails. The file at `conf/httpd.conf`
-contains the WhatDoTheyKnow settings. At a minimum, you should
+We usually use Passenger / mod_rails. The file at `conf/httpd.conf-example`
+gives you an example config file for WhatDoTheyKnow. At a minimum, you should
include the following in an Apache configuration file:
PassengerResolveSymlinksInDocumentRoot on
@@ -378,6 +371,34 @@ Under all but light loads, it is strongly recommended to run the
server behind an http accelerator like Varnish. A sample varnish VCL
is supplied in `../conf/varnish-alaveteli.vcl`.
+It's strongly recommended that you run the site over SSL. (Set FORCE_SSL to true in
+config/general.yml). For this you will need an SSL certificate for your domain and you will
+need to configure an SSL terminator to sit in front of Varnish. If you're already using Apache
+as a web server you could simply use Apache as the SSL terminator. A minimal configuration
+would look something like this:
+
+<VirtualHost *:443>
+ ServerName www.yourdomain
+
+ ProxyRequests Off
+ ProxyPreserveHost On
+ ProxyPass / http://localhost:80/
+ ProxyPassReverse / http://localhost:80/
+ RequestHeader set X-Forwarded-Proto 'https'
+
+ SSLEngine on
+ SSLProtocol all -SSLv2
+ SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
+
+ SSLCertificateFile /etc/apache2/ssl/ssl.crt
+ SSLCertificateKeyFile /etc/apache2/ssl/ssl.key
+ SSLCertificateChainFile /etc/apache2/ssl/sub.class2.server.ca.pem
+ SSLCACertificateFile /etc/apache2/ssl/ca.pem
+ SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
+</VirtualHost>
+
+Notice the line "RequestHeader" that sets the X-Forwarded-Proto header. This is important. This ultimately tells Rails that it's serving a page over https and so it knows to include that in any absolute urls it serves.
+
Some
[production server best practice notes](https://github.com/mysociety/alaveteli/wiki/Production-Server-Best-Practices)
are evolving on the wiki.
@@ -413,14 +434,14 @@ various other things that can be automated for deployment.
# Troubleshooting
* **Incoming emails aren't appearing in my Alaveteli install**
-
+
First, you need to check that your MTA is delivering relevant
incoming emails to the `script/mailin` command. There are various
ways of setting your MTA up to do this; we have documented one way
of doing it in Exim at `doc/INSTALL-exim4.conf`, including a
command you can use to check that the email routing is set up
correctly.
-
+
Second, you need to test that the mailin script itself is working
correctly, by running it from the command line, First, find a
valid "To" address for a request in your system. You can do this
@@ -431,7 +452,7 @@ various other things that can be automated for deployment.
Loading development environment (Rails 2.3.14)
>> InfoRequest.find_by_url_title("why_do_you_have_such_a_fancy_dog").incoming_email
=> "request-101-50929748@localhost"
-
+
Now take the source of a valid email (there are some sample emails in
`spec/fixtures/files/`); edit the `To:` header to match this address;
and then pipe it through the mailin script. A non-zero exit code
@@ -447,7 +468,7 @@ various other things that can be automated for deployment.
`CONTACT_EMAIL` (from your `general.yml` file). A common problem is
for the user that the MTA runs as not to have write access to
`files/raw_emails/`.
-
+
* **Various tests fail with "*Your PostgreSQL connection does not support
unescape_bytea. Try upgrading to pg 0.9.0 or later.*"**
@@ -470,29 +491,16 @@ various other things that can be automated for deployment.
Normally, the encoding should just work, but under some
circumstances it appears that `elinks` ignores the parameters
passed to it from Alaveteli.
-
+
To force `elinks` always to treat input as UTF8, add the following
to `/etc/elinks/elinks.conf`:
-
+
set document.codepage.assume = "utf-8"
set document.codepage.force_assumed = 1
- You should also check that your locale is set up correctly. See
+ You should also check that your locale is set up correctly. See
[https://github.com/mysociety/alaveteli/issues/128#issuecomment-1814845](this issue followup)
for further discussion.
-
-* **I'm getting lots of `SourceIndex.new(hash) is deprecated` errors when running the tests**
-
- The latest versions of rubygems contain a large number of noisy
- deprecation warnings that you can't turn off individually. Rails
- 2.x isn't under active development so isn't going to get fixed (in
- the sense of using a non-deprecated API). So the only vaguely
- sensible way to avoid this noisy output is to downgrade rubygems.
-
- For example, you might do this by uninstalling your
- system-packaged rubygems, and then installing the latest rubygems
- from source, and finally executing `sudo gem update --system
- 1.6.2`.
* **I'm seeing `rake: command not found` when running the post install script
diff --git a/doc/THEMES-UPGRADE.md b/doc/THEMES-UPGRADE.md
new file mode 100644
index 000000000..457274d7a
--- /dev/null
+++ b/doc/THEMES-UPGRADE.md
@@ -0,0 +1,101 @@
+This file contains some notes on changing your Alaveteli theme for the
+upgrade to Rails 3, in version 0.11 of Alaveteli. These were written
+by Henare Degan, with some additions by Mark Longair.
+
+# Alaveteli Theme Upgrade Checks
+
+## RAILS_ROOT/RAILS_ENV
+
+[Example](https://github.com/henare/adminbootstraptheme/commit/857e33c9b0bc577024b476404aec4f9749f65a0b)
+
+Check your theme for instances of:
+
+* `RAILS_ROOT` and replace it with `Rails.root`
+* `RAILS_ENV` and replace it with `Rails.env`
+
+Note that `Rails.root` is a `Pathname`, so you can replace, for
+example:
+
+ File.join(RAILS_ROOT, 'public', 'alavetelitheme')
+
+... with:
+
+ Rails.root.join('public', 'alavetelitheme')
+
+## Dispatcher
+
+[Example](https://github.com/henare/adminbootstraptheme/commit/fba2d6b7dfdc26a25fdc1596bfe120270dd4cd0d)
+
+This...
+
+```ruby
+require 'dispatcher'
+Dispatcher.to_prepare do
+```
+
+should be replaced with this...
+
+```ruby
+Rails.configuration.to_prepare do
+````
+
+## Routes
+
+[Example](https://github.com/henare/adminbootstraptheme/commit/87f1991dafb09401f9b17f642a94382d5a47a713)
+
+You need to upgrade your custom routes to the new Rails syntax.
+
+## list_public_bodies_default removed
+
+[Example](https://github.com/openaustralia/alavetelitheme/commit/5927877af996a1afb1a23a950f0d012b52c36f83)
+
+The list_public_bodies_default helper has been removed from Alaveteli
+
+## Patching mailer templates has changed
+
+[Example](https://github.com/openaustralia/alavetelitheme/commit/ffb5242973a0b2acc4981c25659fcb752b92eb97)
+
+In `lib/patch_mailer_paths.rb` change `ActionMailer::Base.view_paths.unshift File.join(File.dirname(__FILE__), "views")` to `ActionMailer::Base.prepend_view_path File.join(File.dirname(__FILE__), "views")`
+
+There's also `ActionMailer::Base.append_view_path` for replacing `ActionMailer::Base.view_paths <<`.
+
+## Rename view templates
+
+[Example](https://github.com/henare/adminbootstraptheme/commit/b616b636c283ae6cf696a6af1fa481f371baf2b6)
+
+Rename view templates from `filename.rhtml` to `filename.html.erb`.
+
+Run this in the root of your theme directory:
+
+ for r in $(find lib/views -name '*.rhtml'); do echo git mv $r ${r%.rhtml}.html.erb; done
+
+[GOTCHA!](https://github.com/openaustralia/alavetelitheme/commit/65e775488822367d981bb15ab2cbcf1fce842cc2)
+One exception is mailer templates, these should be renamed to
+`filename.text.erb` as we only use text emails.
+
+## The Configuration class has been renamed
+
+[Example](https://github.com/openaustralia/alavetelitheme/commit/db6cca4650216c6f85acffaea380727344f0f740)
+
+Due to a naming conflict, `Configuration` has been renamed to `AlaveteliConfiguration`.
+
+You may have this in your theme for things like `Configuration::site_name`, just change it to `AlaveteliConfiguration::site_name`
+
+## request.request_uri is deprecated
+
+[Example](https://github.com/openaustralia/alavetelitheme/commit/d670eeebfb049e1dc83fdb36a628f7722d2ad419)
+
+Replace instances of `request.request_uri` with `request.fullpath`
+
+## content-inserting <% %> block helpers are deprecated
+
+[Example](https://github.com/openaustralia/alavetelitheme/commit/a4b13bbd76249b3a28e2a755cede20dd9db30140)
+
+The Rails 3 releases notes are [irritatingly
+imprecise](http://edgeguides.rubyonrails.org/3_0_release_notes.html#helpers-with-blocks)
+about which such helpers have changed. You can find some candidates
+with this `git grep` command:
+
+ git grep -E '<%[^=].*(_for|_tag|link_to)\b'
+
+(Ignore `content_for` in those results.)
diff --git a/doc/THEMES.md b/doc/THEMES.md
index c5e4a3eee..8c4b927da 100644
--- a/doc/THEMES.md
+++ b/doc/THEMES.md
@@ -42,8 +42,8 @@ explanation.
You can also install the sample theme by hand, by running:
- ./script/plugin install git://github.com/mysociety/alavetelitheme.git
-
+ bundle exec rails plugin install git://github.com/mysociety/alavetelitheme.git -r rails-3
+
The sample theme contains examples for nearly everything you might
want to customise. You should probably make a copy, rename it, and
use that as the basis for your own theme.
@@ -66,8 +66,8 @@ add custom help pages, as described below.
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`.
+`app/views/general/frontpage.html.erb`, and the template for the "about
+us" page is at `app/views/help/about.html.erb`.
Obviously, you *could* edit those core files directly, but this would
be a Bad Idea, because you would find it increasingly hard to do
@@ -90,7 +90,7 @@ the main Rails app -- see `alavetelitheme/install.rb` to see how this
happens.
The partial at
-`alavetelitheme/lib/views/general/_before_head_end.rhtml` includes the
+`alavetelitheme/lib/views/general/_before_head_end.html.erb` includes the
custom CSS in your theme's stylesheet folder (by convention, in
`alavetelitheme/public/stylesheets/`), with:
@@ -137,20 +137,20 @@ The latter must have one method:
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
+* `lib/views/general/_custom_state_descriptions.html.erb`: Descriptions
of your new states, suitable for displaying to end users
-* `lib/views/general/_custom_state_transitions_complete.rhtml`:
+* `lib/views/general/_custom_state_transitions_complete.html.erb`:
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
+* `lib/views/general/_custom_state_transitions_pending.html.erb`: 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
+file `lib/views/general/_custom_state_transitions.html.erb`, which is
unused).
# Adding new pages in the navigation
diff --git a/lib/ability.rb b/lib/ability.rb
new file mode 100644
index 000000000..2865ccb1c
--- /dev/null
+++ b/lib/ability.rb
@@ -0,0 +1,5 @@
+module Ability
+ def self.can_update_request_state?(user, request)
+ (user && request.is_old_unclassified?) || request.is_owning_user?(user)
+ end
+end \ No newline at end of file
diff --git a/lib/activesupport_cache_extensions.rb b/lib/activesupport_cache_extensions.rb
index f15d72894..2791d5996 100644
--- a/lib/activesupport_cache_extensions.rb
+++ b/lib/activesupport_cache_extensions.rb
@@ -2,7 +2,7 @@
# Extensions / fixes to ActiveSupport::Cache
#
# Copyright (c) 2009 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
# Monkeypatch! ./activesupport/lib/active_support/cache/file_store.rb
diff --git a/lib/alaveteli_external_command.rb b/lib/alaveteli_external_command.rb
index 24b4b1aa8..fbdee8a62 100644
--- a/lib/alaveteli_external_command.rb
+++ b/lib/alaveteli_external_command.rb
@@ -8,6 +8,7 @@ module AlaveteliExternalCommand
# :stdin_string - stdin string to pass to the process
# :binary_output - boolean flag for treating the output as binary or text (only significant
# ruby 1.9 and above)
+ # :memory_limit - maximum amount of memory (in bytes) available to the process
def run(program_name, *args)
# Run an external program, and return its output.
# Standard error is suppressed unless the program
@@ -21,14 +22,14 @@ module AlaveteliExternalCommand
program_path = program_name
else
found = false
- Configuration::utility_search_path.each do |d|
+ AlaveteliConfiguration::utility_search_path.each do |d|
program_path = File.join(d, program_name)
if File.file? program_path and File.executable? program_path
found = true
break
end
end
- raise "Could not find #{program_name} in any of #{Configuration::utility_search_path.join(', ')}" if !found
+ raise "Could not find #{program_name} in any of #{AlaveteliConfiguration::utility_search_path.join(', ')}" if !found
end
xc = ExternalCommand.new(program_path, *args)
@@ -38,6 +39,9 @@ module AlaveteliExternalCommand
if opts.has_key? :binary_output
xc.binary_mode = opts[:binary_output]
end
+ if opts.has_key? :memory_limit
+ xc.memory_limit = opts[:memory_limit]
+ end
xc.run(opts[:stdin_string] || "", opts[:env] || {})
if xc.status != 0
diff --git a/lib/configuration.rb b/lib/configuration.rb
index d1da45fcf..88890856b 100644
--- a/lib/configuration.rb
+++ b/lib/configuration.rb
@@ -1,62 +1,77 @@
+require File.dirname(__FILE__) + '/../commonlib/rblib/config'
+
+# Load intial mySociety config
+if ENV["RAILS_ENV"] == "test"
+ MySociety::Config.set_file(File.join(File.dirname(__FILE__), '..', 'config', 'test'), true)
+else
+ MySociety::Config.set_file(File.join(File.dirname(__FILE__), '..', 'config', 'general'), true)
+end
+MySociety::Config.load_default
+
# Configuration values with defaults
# TODO: Make this return different values depending on the current rails environment
-module Configuration
- DEFAULTS = {
- :ADMIN_PASSWORD => '',
- :ADMIN_USERNAME => '',
- :AVAILABLE_LOCALES => '',
- :BLACKHOLE_PREFIX => 'do-not-reply-to-this-address',
- :BLOG_FEED => '',
- :CONTACT_EMAIL => 'contact@localhost',
- :CONTACT_NAME => 'Alaveteli',
- :COOKIE_STORE_SESSION_SECRET => 'this default is insecure as code is open source, please override for live sites in config/general; this will do for local development',
- :DEBUG_RECORD_MEMORY => false,
- :DEFAULT_LOCALE => '',
- :DOMAIN => 'localhost:3000',
- :EXCEPTION_NOTIFICATIONS_FROM => '',
- :EXCEPTION_NOTIFICATIONS_TO => '',
- :FORCE_REGISTRATION_ON_NEW_REQUEST => false,
- :FORWARD_NONBOUNCE_RESPONSES_TO => 'user-support@localhost',
- :FRONTPAGE_PUBLICBODY_EXAMPLES => '',
- :GA_CODE => '',
- :GAZE_URL => '',
- :HTML_TO_PDF_COMMAND => '',
- :INCLUDE_DEFAULT_LOCALE_IN_URLS => true,
- :INCOMING_EMAIL_DOMAIN => 'localhost',
- :INCOMING_EMAIL_PREFIX => '',
- :INCOMING_EMAIL_SECRET => 'dummysecret',
- :ISO_COUNTRY_CODE => 'GB',
- :MAX_REQUESTS_PER_USER_PER_DAY => '',
- :MTA_LOG_TYPE => 'exim',
- :NEW_RESPONSE_REMINDER_AFTER_DAYS => [3, 10, 24],
- :OVERRIDE_ALL_PUBLIC_BODY_REQUEST_EMAILS => '',
- :RAW_EMAILS_LOCATION => 'files/raw_emails',
- :READ_ONLY => '',
- :RECAPTCHA_PRIVATE_KEY => 'x',
- :RECAPTCHA_PUBLIC_KEY => 'x',
- :REPLY_LATE_AFTER_DAYS => 20,
- :REPLY_VERY_LATE_AFTER_DAYS => 40,
- :SITE_NAME => 'Alaveteli',
- :SKIP_ADMIN_AUTH => false,
- :SPECIAL_REPLY_VERY_LATE_AFTER_DAYS => 60,
- :THEME_BRANCH => false,
- :THEME_URL => "",
- :THEME_URLS => [],
- :TIME_ZONE => "UTC",
- :TRACK_SENDER_EMAIL => 'contact@localhost',
- :TRACK_SENDER_NAME => 'Alaveteli',
- :TWITTER_USERNAME => '',
- :TWITTER_WIDGET_ID => false,
- :USE_DEFAULT_BROWSER_LANGUAGE => true,
- :USE_GHOSTSCRIPT_COMPRESSION => false,
- :UTILITY_SEARCH_PATH => ["/usr/bin", "/usr/local/bin"],
- :VARNISH_HOST => '',
- :WORKING_OR_CALENDAR_DAYS => 'working',
- }
+module AlaveteliConfiguration
+ if !const_defined?(:DEFAULTS)
+
+ DEFAULTS = {
+ :ADMIN_PASSWORD => '',
+ :ADMIN_USERNAME => '',
+ :AVAILABLE_LOCALES => '',
+ :BLACKHOLE_PREFIX => 'do-not-reply-to-this-address',
+ :BLOG_FEED => '',
+ :CONTACT_EMAIL => 'contact@localhost',
+ :CONTACT_NAME => 'Alaveteli',
+ :COOKIE_STORE_SESSION_SECRET => 'this default is insecure as code is open source, please override for live sites in config/general; this will do for local development',
+ :DEBUG_RECORD_MEMORY => false,
+ :DEFAULT_LOCALE => '',
+ :DISABLE_EMERGENCY_USER => false,
+ :DOMAIN => 'localhost:3000',
+ :EXCEPTION_NOTIFICATIONS_FROM => '',
+ :EXCEPTION_NOTIFICATIONS_TO => '',
+ :FORCE_REGISTRATION_ON_NEW_REQUEST => false,
+ :FORCE_SSL => true,
+ :FORWARD_NONBOUNCE_RESPONSES_TO => 'user-support@localhost',
+ :FRONTPAGE_PUBLICBODY_EXAMPLES => '',
+ :GA_CODE => '',
+ :GAZE_URL => '',
+ :HTML_TO_PDF_COMMAND => '',
+ :INCLUDE_DEFAULT_LOCALE_IN_URLS => true,
+ :INCOMING_EMAIL_DOMAIN => 'localhost',
+ :INCOMING_EMAIL_PREFIX => '',
+ :INCOMING_EMAIL_SECRET => 'dummysecret',
+ :ISO_COUNTRY_CODE => 'GB',
+ :MAX_REQUESTS_PER_USER_PER_DAY => '',
+ :MTA_LOG_TYPE => 'exim',
+ :NEW_RESPONSE_REMINDER_AFTER_DAYS => [3, 10, 24],
+ :OVERRIDE_ALL_PUBLIC_BODY_REQUEST_EMAILS => '',
+ :RAW_EMAILS_LOCATION => 'files/raw_emails',
+ :READ_ONLY => '',
+ :RECAPTCHA_PRIVATE_KEY => 'x',
+ :RECAPTCHA_PUBLIC_KEY => 'x',
+ :REPLY_LATE_AFTER_DAYS => 20,
+ :REPLY_VERY_LATE_AFTER_DAYS => 40,
+ :SITE_NAME => 'Alaveteli',
+ :SKIP_ADMIN_AUTH => false,
+ :SPECIAL_REPLY_VERY_LATE_AFTER_DAYS => 60,
+ :THEME_BRANCH => false,
+ :THEME_URL => "",
+ :THEME_URLS => [],
+ :TIME_ZONE => "UTC",
+ :TRACK_SENDER_EMAIL => 'contact@localhost',
+ :TRACK_SENDER_NAME => 'Alaveteli',
+ :TWITTER_USERNAME => '',
+ :TWITTER_WIDGET_ID => false,
+ :USE_DEFAULT_BROWSER_LANGUAGE => true,
+ :USE_GHOSTSCRIPT_COMPRESSION => false,
+ :UTILITY_SEARCH_PATH => ["/usr/bin", "/usr/local/bin"],
+ :VARNISH_HOST => '',
+ :WORKING_OR_CALENDAR_DAYS => 'working',
+ }
+ end
- def Configuration.method_missing(name)
+ def AlaveteliConfiguration.method_missing(name)
key = name.to_s.upcase
if DEFAULTS.has_key?(key.to_sym)
MySociety::Config.get(key, DEFAULTS[key.to_sym])
diff --git a/lib/google_translate.rb b/lib/google_translate.rb
deleted file mode 100644
index 369e1de3b..000000000
--- a/lib/google_translate.rb
+++ /dev/null
@@ -1,18 +0,0 @@
-require 'rubygems'
-require 'net/http'
-require 'open-uri'
-require 'cgi'
-require 'json'
-
-def detect_language(request, translate_string)
- google_api_key = ''
- user_ip = URI.encode(request.env['REMOTE_ADDR'])
- translate_string = URI.encode(translate_string)
- url = "http://ajax.googleapis.com/ajax/services/language/detect?v=1.0&q=#{translate_string}&userip=#{user_ip}"
- if google_api_key != ''
- url += "&key=#{google_api_key}"
- end
- response = Net::HTTP.get_response(URI.parse(url))
- result = JSON.parse(response.body)
- result['responseData']['language']
-end
diff --git a/lib/i18n_fixes.rb b/lib/i18n_fixes.rb
index a85faddcb..82d1b2c3a 100644
--- a/lib/i18n_fixes.rb
+++ b/lib/i18n_fixes.rb
@@ -14,6 +14,17 @@ def _(key, options = {})
gettext_interpolate(translation, options)
end
+def n_(*keys)
+ # The last parameter should be the values to do the interpolation with
+ if keys.count > 3
+ options = keys.pop
+ else
+ options = {}
+ end
+ translation = FastGettext.n_(*keys).html_safe
+ gettext_interpolate(translation, options)
+end
+
MATCH = /\{\{([^\}]+)\}\}/
def gettext_interpolate(string, values)
diff --git a/lib/mail_handler/backends/mail_backend.rb b/lib/mail_handler/backends/mail_backend.rb
index 0a12ab3bb..03d78e0a3 100644
--- a/lib/mail_handler/backends/mail_backend.rb
+++ b/lib/mail_handler/backends/mail_backend.rb
@@ -1,4 +1,35 @@
require 'mail'
+require 'mapi/msg'
+require 'mapi/convert'
+
+module Mail
+ class Message
+
+ # The behaviour of the 'to' and 'cc' methods have changed
+ # between TMail and Mail; this monkey-patching restores the
+ # TMail behaviour. The key difference is that when there's an
+ # invalid address, e.g. '<foo@example.org', Mail returns the
+ # string as an ActiveSupport::Multibyte::Chars, whereas
+ # previously TMail would return nil.
+
+ alias_method :old_to, :to
+ alias_method :old_cc, :cc
+
+ def clean_addresses(old_method, val)
+ old_result = self.send(old_method, val)
+ old_result.class == Mail::AddressContainer ? old_result : nil
+ end
+
+ def to(val = nil)
+ self.clean_addresses :old_to, val
+ end
+
+ def cc(val = nil)
+ self.clean_addresses :old_cc, val
+ end
+
+ end
+end
module MailHandler
module Backends
@@ -38,7 +69,11 @@ module MailHandler
# Get the body of a mail part
def get_part_body(part)
- part.body.decoded
+ decoded = part.body.decoded
+ if part.content_type =~ /^text\//
+ decoded = convert_string_to_utf8_or_binary decoded, part.charset
+ end
+ decoded
end
# Return the first from field if any
@@ -60,7 +95,7 @@ module MailHandler
def get_from_address(mail)
first_from = first_from(mail)
if first_from
- if first_from.is_a?(String)
+ if first_from.is_a?(ActiveSupport::Multibyte::Chars)
return nil
else
return first_from.address
@@ -74,7 +109,7 @@ module MailHandler
def get_from_name(mail)
first_from = first_from(mail)
if first_from
- if first_from.is_a?(String)
+ if first_from.is_a?(ActiveSupport::Multibyte::Chars)
return nil
else
return first_from.display_name ? eval(%Q{"#{first_from.display_name}"}) : nil
@@ -85,7 +120,7 @@ module MailHandler
end
def get_all_addresses(mail)
- envelope_to = mail['envelope-to'] ? [mail['envelope-to'].value] : []
+ envelope_to = mail['envelope-to'] ? [mail['envelope-to'].value.to_s] : []
((mail.to || []) +
(mail.cc || []) +
(envelope_to || [])).uniq
@@ -141,9 +176,14 @@ module MailHandler
end
elsif get_content_type(part) == 'application/ms-tnef'
# A set of attachments in a TNEF file
- part.rfc822_attachment = mail_from_tnef(part.body.decoded)
- if part.rfc822_attachment.nil?
- # Attached mail didn't parse, so treat as binary
+ begin
+ part.rfc822_attachment = mail_from_tnef(part.body.decoded)
+ if part.rfc822_attachment.nil?
+ # Attached mail didn't parse, so treat as binary
+ part.content_type = 'application/octet-stream'
+ end
+ rescue TNEFParsingError
+ part.rfc822_attachment = nil
part.content_type = 'application/octet-stream'
end
end
@@ -160,8 +200,11 @@ module MailHandler
part.parts.each{ |sub_part| expand_and_normalize_parts(sub_part, parent_mail) }
else
part_filename = get_part_file_name(part)
- charset = part.charset # save this, because overwriting content_type also resets charset
-
+ if part.has_charset?
+ original_charset = part.charset # save this, because overwriting content_type also resets charset
+ else
+ original_charset = nil
+ end
# Don't allow nil content_types
if get_content_type(part).nil?
part.content_type = 'application/octet-stream'
@@ -180,7 +223,9 @@ module MailHandler
# Use standard content types for Word documents etc.
part.content_type = normalise_content_type(get_content_type(part))
decode_attached_part(part, parent_mail)
- part.charset = charset
+ if original_charset
+ part.charset = original_charset
+ end
end
end
@@ -228,8 +273,15 @@ module MailHandler
def _get_attachment_leaves_recursive(part, within_rfc822_attachment, parent_mail)
leaves_found = []
if part.multipart?
- raise "no parts on multipart mail" if part.parts.size == 0
- if part.sub_type == 'alternative'
+ if part.parts.size == 0
+ # This is typically caused by a missing final
+ # MIME boundary, in which case the text of the
+ # message (including the opening MIME
+ # boundary) is in part.body, so just add this
+ # part as a leaf and treat it as text/plain:
+ part.content_type = "text/plain"
+ leaves_found += [part]
+ elsif part.sub_type == 'alternative'
best_part = choose_best_alternative(part)
leaves_found += _get_attachment_leaves_recursive(best_part,
within_rfc822_attachment,
@@ -319,4 +371,4 @@ module MailHandler
end
end
end
-end \ No newline at end of file
+end
diff --git a/lib/mail_handler/backends/mail_extensions.rb b/lib/mail_handler/backends/mail_extensions.rb
index f756abd1a..d25012e39 100644
--- a/lib/mail_handler/backends/mail_extensions.rb
+++ b/lib/mail_handler/backends/mail_extensions.rb
@@ -64,4 +64,42 @@ module Mail
end.join(";\r\n\s")
end
end
-end \ No newline at end of file
+
+ # HACK: Backport encoding fixes for Ruby 1.8 from Mail 2.5
+ # Can be removed when we no longer support Ruby 1.8
+ class Ruby18
+ def Ruby18.b_value_decode(str)
+ match = str.match(/\=\?(.+)?\?[Bb]\?(.+)?\?\=/m)
+ if match
+ encoding = match[1]
+ str = Ruby18.decode_base64(match[2])
+ str = Iconv.conv('UTF-8//IGNORE', fix_encoding(encoding), str)
+ end
+ str
+ end
+
+ def Ruby18.q_value_decode(str)
+ match = str.match(/\=\?(.+)?\?[Qq]\?(.+)?\?\=/m)
+ if match
+ encoding = match[1]
+ string = match[2].gsub(/_/, '=20')
+ # Remove trailing = if it exists in a Q encoding
+ string = string.sub(/\=$/, '')
+ str = Encodings::QuotedPrintable.decode(string)
+ str = Iconv.conv('UTF-8//IGNORE', fix_encoding(encoding), str)
+ end
+ str
+ end
+
+ private
+
+ def Ruby18.fix_encoding(encoding)
+ case encoding.upcase
+ when 'UTF8'
+ 'UTF-8'
+ else
+ encoding
+ end
+ end
+ end
+end
diff --git a/lib/mail_handler/backends/tmail_backend.rb b/lib/mail_handler/backends/tmail_backend.rb
deleted file mode 100644
index 1e241f261..000000000
--- a/lib/mail_handler/backends/tmail_backend.rb
+++ /dev/null
@@ -1,288 +0,0 @@
-module MailHandler
- module Backends
- module TmailBackend
-
- def backend()
- 'TMail'
- end
-
- # Turn raw data into a structured TMail::Mail object
- # Documentation at http://i.loveruby.net/en/projects/tmail/doc/
- def mail_from_raw_email(data)
- # Hack round bug in TMail's MIME decoding.
- # Report of TMail bug:
- # http://rubyforge.org/tracker/index.php?func=detail&aid=21810&group_id=4512&atid=17370
- copy_of_raw_data = data.gsub(/; boundary=\s+"/im,'; boundary="')
- TMail::Mail.parse(copy_of_raw_data)
- end
-
- # Extracts all attachments from the given TNEF file as a TMail::Mail object
- def mail_from_tnef(content)
- main = TMail::Mail.new
- main.set_content_type 'multipart', 'mixed', { 'boundary' => TMail.new_boundary }
- tnef_attachments(content).each do |attachment|
- tmail_attachment = TMail::Mail.new
- tmail_attachment['content-location'] = attachment[:filename]
- tmail_attachment.body = attachment[:content]
- main.parts << tmail_attachment
- end
- main
- end
-
- # Return a copy of the file name for the mail part
- def get_part_file_name(mail_part)
- part_file_name = TMail::Mail.get_part_file_name(mail_part)
- if part_file_name.nil?
- return nil
- end
- part_file_name = part_file_name.dup
- return part_file_name
- end
-
- # Get the body of a mail part
- def get_part_body(mail_part)
- mail_part.body
- end
-
- # Return the first from address if any
- def get_from_address(mail)
- if mail.from_addrs.nil? || mail.from_addrs.size == 0
- return nil
- end
- mail.from_addrs[0].spec
- end
-
- # Return the first from name if any
- def get_from_name(mail)
- mail.from_name_if_present
- end
-
- def get_all_addresses(mail)
- ((mail.to || []) +
- (mail.cc || []) +
- (mail.envelope_to || [])).uniq
- end
-
- def empty_return_path?(mail)
- return false if mail['return-path'].nil?
- return true if mail['return-path'].addr.to_s == '<>'
- return false
- end
-
- def get_auto_submitted(mail)
- mail['auto-submitted'] ? mail['auto-submitted'].body : nil
- end
-
- def get_content_type(part)
- part.content_type
- end
-
- def get_header_string(header, mail)
- mail.header_string(header)
- end
-
- # Number the attachments in depth first tree order, for use in URLs.
- # XXX This fills in part.rfc822_attachment and part.url_part_number within
- # all the parts of the email (see monkeypatches in lib/mail_handler/tmail_extensions and
- # lib/mail_handler/mail_extensions for how these attributes are added). ensure_parts_counted
- # must be called before using the attributes.
- def ensure_parts_counted(mail)
- mail.count_parts_count = 0
- _count_parts_recursive(mail, mail)
- # we carry on using these numeric ids for attachments uudecoded from within text parts
- mail.count_first_uudecode_count = mail.count_parts_count
- end
- def _count_parts_recursive(part, mail)
- if part.multipart?
- part.parts.each do |p|
- _count_parts_recursive(p, mail)
- end
- else
- part_filename = get_part_file_name(part)
- begin
- if part.content_type == 'message/rfc822'
- # An email attached as text
- # e.g. http://www.whatdotheyknow.com/request/64/response/102
- part.rfc822_attachment = mail_from_raw_email(part.body)
- elsif part.content_type == 'application/vnd.ms-outlook' || part_filename && AlaveteliFileTypes.filename_to_mimetype(part_filename) == 'application/vnd.ms-outlook'
- # An email attached as an Outlook file
- # e.g. http://www.whatdotheyknow.com/request/chinese_names_for_british_politi
- msg = Mapi::Msg.open(StringIO.new(part.body))
- part.rfc822_attachment = mail_from_raw_email(msg.to_mime.to_s)
- elsif part.content_type == 'application/ms-tnef'
- # A set of attachments in a TNEF file
- part.rfc822_attachment = mail_from_tnef(part.body)
- end
- rescue
- # If attached mail doesn't parse, treat it as text part
- part.rfc822_attachment = nil
- else
- unless part.rfc822_attachment.nil?
- _count_parts_recursive(part.rfc822_attachment, mail)
- end
- end
- if part.rfc822_attachment.nil?
- mail.count_parts_count += 1
- part.url_part_number = mail.count_parts_count
- end
- end
- end
-
- def get_attachment_attributes(mail)
- leaves = get_attachment_leaves(mail)
- # XXX we have to call ensure_parts_counted after get_attachment_leaves
- # which is really messy.
- ensure_parts_counted(mail)
- attachment_attributes = []
- for leaf in leaves
- body = get_part_body(leaf)
- # As leaf.body causes MIME decoding which uses lots of RAM, do garbage collection here
- # to prevent excess memory use. XXX not really sure if this helps reduce
- # peak RAM use overall. Anyway, maybe there is something better to do than this.
- GC.start
- if leaf.within_rfc822_attachment
- within_rfc822_subject = leaf.within_rfc822_attachment.subject
- # Test to see if we are in the first part of the attached
- # RFC822 message and it is text, if so add headers.
- # XXX should probably use hunting algorithm to find main text part, rather than
- # just expect it to be first. This will do for now though.
- if leaf.within_rfc822_attachment == leaf && leaf.content_type == 'text/plain'
- headers = ""
- for header in [ 'Date', 'Subject', 'From', 'To', 'Cc' ]
- if leaf.within_rfc822_attachment.header.include?(header.downcase)
- header_value = leaf.within_rfc822_attachment.header[header.downcase]
- if !header_value.blank?
- headers = headers + header + ": " + header_value.to_s + "\n"
- end
- end
- end
- # XXX call _convert_part_body_to_text here, but need to get charset somehow
- # e.g. http://www.whatdotheyknow.com/request/1593/response/3088/attach/4/Freedom%20of%20Information%20request%20-%20car%20oval%20sticker:%20Article%2020,%20Convention%20on%20Road%20Traffic%201949.txt
- body = headers + "\n" + body
-
- # This is quick way of getting all headers, but instead we only add some a) to
- # make it more usable, b) as at least one authority accidentally leaked security
- # information into a header.
- #attachment.body = leaf.within_rfc822_attachment.port.to_s
- end
- end
- attachment_attributes << {:url_part_number => leaf.url_part_number,
- :content_type => get_content_type(leaf),
- :filename => get_part_file_name(leaf),
- :charset => leaf.charset,
- :within_rfc822_subject => within_rfc822_subject,
- :body => body,
- :hexdigest => Digest::MD5.hexdigest(body) }
- end
- attachment_attributes
- end
-
- # (This risks losing info if the unchosen alternative is the only one to contain
- # useful info, but let's worry about that another time)
- def get_attachment_leaves(mail)
- return _get_attachment_leaves_recursive(mail, mail)
- end
- def _get_attachment_leaves_recursive(curr_mail, parent_mail, within_rfc822_attachment = nil)
- leaves_found = []
- if curr_mail.multipart?
- if curr_mail.parts.size == 0
- raise "no parts on multipart mail"
- end
-
- if curr_mail.sub_type == 'alternative'
- # Choose best part from alternatives
- best_part = nil
- # Take the last text/plain one, or else the first one
- curr_mail.parts.each do |m|
- if not best_part
- best_part = m
- elsif m.content_type == 'text/plain'
- best_part = m
- end
- end
- # Take an HTML one as even higher priority. (They tend
- # to render better than text/plain, e.g. don't wrap links here:
- # http://www.whatdotheyknow.com/request/amount_and_cost_of_freedom_of_in#incoming-72238 )
- curr_mail.parts.each do |m|
- if m.content_type == 'text/html'
- best_part = m
- end
- end
- leaves_found += _get_attachment_leaves_recursive(best_part, parent_mail, within_rfc822_attachment)
- else
- # Add all parts
- curr_mail.parts.each do |m|
- leaves_found += _get_attachment_leaves_recursive(m, parent_mail, within_rfc822_attachment)
- end
- end
- else
- # XXX Yuck. this section alters various content_types. That puts
- # it into conflict with ensure_parts_counted which it has to be
- # called both before and after. It will fail with cases of
- # attachments of attachments etc.
- charset = curr_mail.charset # save this, because overwriting content_type also resets charset
- # Don't allow nil content_types
- if curr_mail.content_type.nil?
- curr_mail.content_type = 'application/octet-stream'
- end
- # PDFs often come with this mime type, fix it up for view code
- if curr_mail.content_type == 'application/octet-stream'
- part_file_name = get_part_file_name(curr_mail)
- part_body = get_part_body(curr_mail)
- calc_mime = AlaveteliFileTypes.filename_and_content_to_mimetype(part_file_name, part_body)
- if calc_mime
- curr_mail.content_type = calc_mime
- end
- end
-
- # Use standard content types for Word documents etc.
- curr_mail.content_type = normalise_content_type(curr_mail.content_type)
- if curr_mail.content_type == 'message/rfc822'
- ensure_parts_counted(parent_mail) # fills in rfc822_attachment variable
- if curr_mail.rfc822_attachment.nil?
- # Attached mail didn't parse, so treat as text
- curr_mail.content_type = 'text/plain'
- end
- end
- if curr_mail.content_type == 'application/vnd.ms-outlook' || curr_mail.content_type == 'application/ms-tnef'
- ensure_parts_counted(parent_mail) # fills in rfc822_attachment variable
- if curr_mail.rfc822_attachment.nil?
- # Attached mail didn't parse, so treat as binary
- curr_mail.content_type = 'application/octet-stream'
- end
- end
- # If the part is an attachment of email
- if curr_mail.content_type == 'message/rfc822' || curr_mail.content_type == 'application/vnd.ms-outlook' || curr_mail.content_type == 'application/ms-tnef'
- ensure_parts_counted(parent_mail) # fills in rfc822_attachment variable
- leaves_found += _get_attachment_leaves_recursive(curr_mail.rfc822_attachment, parent_mail, curr_mail.rfc822_attachment)
- else
- # Store leaf
- curr_mail.within_rfc822_attachment = within_rfc822_attachment
- leaves_found += [curr_mail]
- end
- # restore original charset
- curr_mail.charset = charset
- end
- return leaves_found
- end
-
-
- def address_from_name_and_email(name, email)
- if !MySociety::Validate.is_valid_email(email)
- raise "invalid email " + email + " passed to address_from_name_and_email"
- end
- if name.nil?
- return TMail::Address.parse(email).to_s
- end
- # Botch an always quoted RFC address, then parse it
- name = name.gsub(/(["\\])/, "\\\\\\1")
- TMail::Address.parse('"' + name + '" <' + email + '>').to_s
- end
-
- def address_from_string(string)
- TMail::Address.parse(string).address
- end
-
- end
- end
-end \ No newline at end of file
diff --git a/lib/mail_handler/backends/tmail_extensions.rb b/lib/mail_handler/backends/tmail_extensions.rb
deleted file mode 100644
index 3576a8eca..000000000
--- a/lib/mail_handler/backends/tmail_extensions.rb
+++ /dev/null
@@ -1,138 +0,0 @@
-# lib/tmail_extensions.rb:
-# Extensions / fixes to TMail.
-#
-# Copyright (c) 2009 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
-
-require 'racc/parser'
-require 'tmail'
-require 'tmail/scanner'
-require 'tmail/utils'
-require 'tmail/interface'
-
-# Monkeypatch!
-
-# These mainly used in app/models/incoming_message.rb
-module TMail
- class Mail
- # Monkeypatch! Adding some extra members to store extra info in.
-
- attr_accessor :url_part_number
- attr_accessor :rfc822_attachment # when a whole email message is attached as text
- attr_accessor :within_rfc822_attachment # for parts within a message attached as text (for getting subject mainly)
- attr_accessor :count_parts_count
- attr_accessor :count_first_uudecode_count
-
- # Monkeypatch! (check to see if this becomes a standard function in
- # TMail::Mail, then use that, whatever it is called)
- def Mail.get_part_file_name(part)
- file_name = (part['content-location'] &&
- part['content-location'].body) ||
- part.sub_header("content-type", "name") ||
- part.sub_header("content-disposition", "filename")
- file_name = file_name.strip if file_name
- file_name
- end
-
- # Monkeypatch! Return the name part of from address, or nil if there isn't one
- def from_name_if_present
- if self.from && self.from_addrs[0].name
- return TMail::Unquoter.unquote_and_convert_to(self.from_addrs[0].name, "utf-8")
- else
- return nil
- end
- end
-
- # Monkeypatch! Generalisation of To:, Cc:
- def envelope_to(default = nil)
- # XXX assumes only one envelope-to, and no parsing needed
- val = self.header_string('envelope-to')
- return val ? [val,] : []
- end
-
- # Monkeypatch!
- # Bug fix to this function - is for message in humberside-police-odd-mime-type.email
- # Which was originally: https://secure.mysociety.org/admin/foi/request/show_raw_email/11209
- # See test in spec/lib/tmail_extensions.rb
- def set_content_type( str, sub = nil, param = nil )
- if sub
- main, sub = str, sub
- else
- main, sub = str.split(%r</>, 2)
- raise ArgumentError, "sub type missing: #{str.inspect}" unless sub
- end
- if h = @header['content-type']
- h.main_type = main
- h.sub_type = sub
- h.params.clear if !h.params.nil? # XXX this if statement is the fix # XXX disabled until works with test
- else
- store 'Content-Type', "#{main}/#{sub}"
- end
- @header['content-type'].params.replace param if param
- str
- end
- # Need to make sure this alias calls the Monkeypatch too
- alias content_type= set_content_type
-
- end
-
- module TextUtils
- # Monkeypatch! Much more aggressive list of characters to cause quoting
- # than in normal TMail. e.g. Have found real cases where @ needs quoting.
- # We list characters to allow, rather than characters not to allow.
- NEW_PHRASE_UNSAFE=/[^A-Za-z0-9!#\$%&'*+\-\/=?^_`{|}~ ]/n
- def quote_phrase( str )
- (NEW_PHRASE_UNSAFE === str) ? dquote(str) : str
- end
- end
-end
-
-# Monkeypatch! TMail 1.2.7.1 will parse only one address out of a list of addresses with
-# unquoted display parts https://github.com/mikel/tmail/issues#issue/9 - this monkeypatch
-# fixes this issue.
-module TMail
-
- class Parser < Racc::Parser
-
-module_eval <<'..end lib/tmail/parser.y modeval..id2dd1c7d21d', 'lib/tmail/parser.y', 340
-
- def self.special_quote_address(str) #:nodoc:
- # Takes a string which is an address and adds quotation marks to special
- # edge case methods that the RACC parser can not handle.
- #
- # Right now just handles two edge cases:
- #
- # Full stop as the last character of the display name:
- # Mikel L. <mikel@me.com>
- # Returns:
- # "Mikel L." <mikel@me.com>
- #
- # Unquoted @ symbol in the display name:
- # mikel@me.com <mikel@me.com>
- # Returns:
- # "mikel@me.com" <mikel@me.com>
- #
- # Any other address not matching these patterns just gets returned as is.
- case
- # This handles the missing "" in an older version of Apple Mail.app
- # around the display name when the display name contains a '@'
- # like 'mikel@me.com <mikel@me.com>'
- # Just quotes it to: '"mikel@me.com" <mikel@me.com>'
- when str =~ /\A([^"][^<]+@[^>]+[^"])\s(<.*?>)\Z/
- return "\"#{$1}\" #{$2}"
- # This handles cases where 'Mikel A. <mikel@me.com>' which is a trailing
- # full stop before the address section. Just quotes it to
- # '"Mikel A." <mikel@me.com>'
- when str =~ /\A(.*?\.)\s(<.*?>)\s*\Z/
- return "\"#{$1}\" #{$2}"
- else
- str
- end
- end
-
-..end lib/tmail/parser.y modeval..id2dd1c7d21d
- end # class Parser
-
-end # module TMail
-
-
diff --git a/lib/mail_handler/mail_handler.rb b/lib/mail_handler/mail_handler.rb
index 8b227b9ca..9c955cccd 100644
--- a/lib/mail_handler/mail_handler.rb
+++ b/lib/mail_handler/mail_handler.rb
@@ -3,16 +3,12 @@ require 'tmpdir'
module MailHandler
- if RUBY_VERSION.to_f >= 1.9
- require 'mail'
- require 'backends/mail_extensions'
- require 'backends/mail_backend'
- include Backends::MailBackend
- else
- require 'action_mailer'
- require 'backends/tmail_extensions'
- require 'backends/tmail_backend'
- include Backends::TmailBackend
+ require 'mail'
+ require 'backends/mail_extensions'
+ require 'backends/mail_backend'
+ include Backends::MailBackend
+
+ class TNEFParsingError < StandardError
end
# Returns a set of attachments from the given TNEF contents
@@ -21,14 +17,14 @@ module MailHandler
def tnef_attachments(content)
attachments = []
Dir.mktmpdir do |dir|
- IO.popen("#{`which tnef`.chomp} -K -C #{dir}", "wb") do |f|
+ IO.popen("tnef -K -C #{dir} 2> /dev/null", "wb") do |f|
f.write(content)
f.close
if $?.signaled?
raise IOError, "tnef exited with signal #{$?.termsig}"
end
if $?.exited? && $?.exitstatus != 0
- raise IOError, "tnef exited with status #{$?.exitstatus}"
+ raise TNEFParsingError, "tnef exited with status #{$?.exitstatus}"
end
end
found = 0
@@ -41,7 +37,7 @@ module MailHandler
end
end
if found == 0
- raise IOError, "tnef produced no attachments"
+ raise TNEFParsingError, "tnef produced no attachments"
end
end
attachments
@@ -84,7 +80,8 @@ module MailHandler
tempfile.flush
default_params = { :append_to => text, :binary_output => false }
if content_type == 'application/vnd.ms-word'
- AlaveteliExternalCommand.run("wvText", tempfile.path, tempfile.path + ".txt")
+ AlaveteliExternalCommand.run("wvText", tempfile.path, tempfile.path + ".txt",
+ { :memory_limit => 536870912 } )
# Try catdoc if we get into trouble (e.g. for InfoRequestEvent 2701)
if not File.exists?(tempfile.path + ".txt")
AlaveteliExternalCommand.run("catdoc", tempfile.path, default_params)
diff --git a/lib/no_constraint_disabling.rb b/lib/no_constraint_disabling.rb
new file mode 100644
index 000000000..d515a959a
--- /dev/null
+++ b/lib/no_constraint_disabling.rb
@@ -0,0 +1,110 @@
+# In order to work around the problem of the database use not having
+# the permission to disable referential integrity when loading fixtures,
+# we redefine disable_referential_integrity so that it doesn't try to
+# disable foreign key constraints, and redefine the
+# ActiveRecord::Fixtures.create_fixtures method to pay attention to the order
+# which fixture tables are passed so that foreign key constraints won't be
+# violated. The only lines that are changed from the initial definition
+# are those between the "***" comments
+require 'active_record/fixtures'
+require 'active_record/connection_adapters/postgresql_adapter'
+module ActiveRecord
+ module ConnectionAdapters
+ class PostgreSQLAdapter < AbstractAdapter
+ def disable_referential_integrity(&block)
+ transaction {
+ yield
+ }
+ end
+ end
+ end
+end
+
+module ActiveRecord
+ class Fixtures
+
+ def self.create_fixtures(fixtures_directory, table_names, class_names = {})
+ table_names = [table_names].flatten.map { |n| n.to_s }
+ table_names.each { |n|
+ class_names[n.tr('/', '_').to_sym] = n.classify if n.include?('/')
+ }
+
+ # FIXME: Apparently JK uses this.
+ connection = block_given? ? yield : ActiveRecord::Base.connection
+
+ files_to_read = table_names.reject { |table_name|
+ fixture_is_cached?(connection, table_name)
+ }
+
+ unless files_to_read.empty?
+ connection.disable_referential_integrity do
+ fixtures_map = {}
+
+ fixture_files = files_to_read.map do |path|
+ table_name = path.tr '/', '_'
+
+ fixtures_map[path] = ActiveRecord::Fixtures.new(
+ connection,
+ table_name,
+ class_names[table_name.to_sym] || table_name.classify,
+ File.join(fixtures_directory, path))
+ end
+
+ all_loaded_fixtures.update(fixtures_map)
+
+ connection.transaction(:requires_new => true) do
+ # Patch - replace this...
+ # ***
+ # fixture_files.each do |ff|
+ # conn = ff.model_class.respond_to?(:connection) ? ff.model_class.connection : connection
+ # table_rows = ff.table_rows
+ #
+ # table_rows.keys.each do |table|
+ # conn.delete "DELETE FROM #{conn.quote_table_name(table)}", 'Fixture Delete'
+ # end
+ #
+ # table_rows.each do |table_name,rows|
+ # rows.each do |row|
+ # conn.insert_fixture(row, table_name)
+ # end
+ # end
+ # end
+ # ***
+ # ... with this
+ fixture_files.reverse.each do |ff|
+ conn = ff.model_class.respond_to?(:connection) ? ff.model_class.connection : connection
+ table_rows = ff.table_rows
+
+ table_rows.keys.each do |table|
+ conn.delete "DELETE FROM #{conn.quote_table_name(table)}", 'Fixture Delete'
+ end
+ end
+
+ fixture_files.each do |ff|
+ conn = ff.model_class.respond_to?(:connection) ? ff.model_class.connection : connection
+ table_rows = ff.table_rows
+ table_rows.each do |table_name,rows|
+ rows.each do |row|
+ conn.insert_fixture(row, table_name)
+ end
+ end
+ end
+ # ***
+
+ # Cap primary key sequences to max(pk).
+ if connection.respond_to?(:reset_pk_sequence!)
+ table_names.each do |table_name|
+ connection.reset_pk_sequence!(table_name.tr('/', '_'))
+ end
+ end
+ end
+
+ cache_fixtures(connection, fixtures_map)
+ end
+ end
+ cached_fixtures(connection, table_names)
+ end
+
+ end
+
+end
diff --git a/lib/normalize_string.rb b/lib/normalize_string.rb
new file mode 100644
index 000000000..f02b18ee0
--- /dev/null
+++ b/lib/normalize_string.rb
@@ -0,0 +1,86 @@
+require 'iconv' unless RUBY_VERSION.to_f >= 1.9
+require 'charlock_holmes'
+
+class EncodingNormalizationError < StandardError
+end
+
+def normalize_string_to_utf8(s, suggested_character_encoding=nil)
+
+ # Make a list of encodings to try:
+ to_try = []
+
+ guessed_encoding = CharlockHolmes::EncodingDetector.detect(s)[:encoding]
+ guessed_encoding ||= ''
+
+ # It's reasonably common for windows-1252 text to be mislabelled
+ # as ISO-8859-1, so try that first if charlock_holmes guessed
+ # that. However, it can also easily misidentify UTF-8 strings as
+ # ISO-8859-1 so we don't want to go with the guess by default...
+ to_try.push guessed_encoding if guessed_encoding.downcase == 'windows-1252'
+
+ to_try.push suggested_character_encoding if suggested_character_encoding
+ to_try.push 'UTF-8'
+ to_try.push guessed_encoding
+
+ to_try.each do |from_encoding|
+ if RUBY_VERSION.to_f >= 1.9
+ begin
+ s.force_encoding from_encoding
+ return s.encode('UTF-8') if s.valid_encoding?
+ rescue ArgumentError
+ # We get this is there are invalid bytes when
+ # interpreted as from_encoding at the point of
+ # the encode('UTF-8'); move onto the next one...
+ end
+ else
+ to_encoding = 'UTF-8'
+ begin
+ converted = Iconv.conv 'UTF-8', from_encoding, s
+ return converted
+ rescue Iconv::Failure
+ # We get this is there are invalid bytes when
+ # interpreted as from_encoding at the point of
+ # the Iconv.iconv; move onto the next one...
+ end
+ end
+ end
+ raise EncodingNormalizationError, "Couldn't find a valid character encoding for the string"
+
+end
+
+def convert_string_to_utf8_or_binary(s, suggested_character_encoding=nil)
+ # This function exists to help to keep consistent with the
+ # behaviour of earlier versions of Alaveteli: in the code as it
+ # is, there are situations where it's expected that we generally
+ # have a UTF-8 encoded string, but if the source data was
+ # unintepretable under any character encoding, the string may be
+ # binary data (i.e. invalid UTF-8). Such a string would then be
+ # mangled into valid UTF-8 by _sanitize_text for the purposes of
+ # display.
+
+ # This seems unsatisfactory to me - two better alternatives would
+ # be either: (a) to mangle the data into valid UTF-8 in this
+ # method or (b) to treat the 'text/*' attachment as
+ # 'application/octet-stream' instead. However, for the purposes
+ # of the transition to Ruby 1.9 and/or Rails 3 we just want the
+ # behaviour to be as similar as possible.
+
+ begin
+ result = normalize_string_to_utf8 s, suggested_character_encoding
+ rescue EncodingNormalizationError
+ result = s
+ s.force_encoding 'ASCII-8BIT' if RUBY_VERSION.to_f >= 1.9
+ end
+ result
+end
+
+def log_text_details(message, text)
+ if RUBY_VERSION.to_f >= 1.9
+ STDERR.puts "#{message}, we have text: #{text}, of class #{text.class} and encoding #{text.encoding}"
+ else
+ STDERR.puts "#{message}, we have text: #{text}, of class #{text.class}"
+ end
+ filename = "/var/tmp/#{Digest::MD5.hexdigest(text)}.txt"
+ File.open(filename, "wb") { |f| f.write text }
+ STDERR.puts "#{message}, the filename is: #{filename}"
+end
diff --git a/lib/old_rubygems_patch.rb b/lib/old_rubygems_patch.rb
deleted file mode 100644
index 3001a7381..000000000
--- a/lib/old_rubygems_patch.rb
+++ /dev/null
@@ -1,46 +0,0 @@
-if File.exist? File.join(File.dirname(__FILE__),'..','vendor','rails','railties','lib','rails','gem_dependency.rb')
- require File.join(File.dirname(__FILE__),'..','vendor','rails','railties','lib','rails','gem_dependency.rb')
-else
- require 'rails/gem_dependency'
-end
-
-module Rails
- class GemDependency < Gem::Dependency
-
- # This definition of the requirement method is a patch
- if !method_defined?(:requirement)
- def requirement
- req = version_requirements
- end
- end
-
- def add_load_paths
- self.class.add_frozen_gem_path
- return if @loaded || @load_paths_added
- if framework_gem?
- @load_paths_added = @loaded = @frozen = true
- return
- end
-
- begin
- dep = Gem::Dependency.new(name, requirement)
- spec = Gem.source_index.find { |_,s| s.satisfies_requirement?(dep) }.last
- spec.activate # a way that exists
- rescue
- begin
- gem self.name, self.requirement # < 1.8 unhappy way
- # This second rescue is a patch - fall back to passing Rails::GemDependency to gem
- # for older rubygems
- rescue ArgumentError
- gem self
- end
- end
-
- @spec = Gem.loaded_specs[name]
- @frozen = @spec.loaded_from.include?(self.class.unpacked_path) if @spec
- @load_paths_added = true
- rescue Gem::LoadError
- end
- end
-
-end
diff --git a/lib/patches/fixtures_constraint_disabling.rb b/lib/patches/fixtures_constraint_disabling.rb
deleted file mode 100644
index 7d97e81f7..000000000
--- a/lib/patches/fixtures_constraint_disabling.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-# An alternative way of disabling foreign keys in fixture loading in Postgres and
-# does not require superuser permissions
-# http://kopongo.com/2008/7/25/postgres-ri_constrainttrigger-error
-require 'active_record/connection_adapters/postgresql_adapter'
-module ActiveRecord
- module ConnectionAdapters
- class PostgreSQLAdapter < AbstractAdapter
- def disable_referential_integrity(&block)
- transaction {
- begin
- execute "SET CONSTRAINTS ALL DEFERRED"
- yield
- ensure
- execute "SET CONSTRAINTS ALL IMMEDIATE"
- end
- }
- end
- end
- end
-end
-
diff --git a/lib/public_body_categories.rb b/lib/public_body_categories.rb
index c6f0a6690..7f548b130 100644
--- a/lib/public_body_categories.rb
+++ b/lib/public_body_categories.rb
@@ -2,7 +2,7 @@
# Categorisations of public bodies.
#
# Copyright (c) 2009 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
class PublicBodyCategories
diff --git a/lib/quiet_opener.rb b/lib/quiet_opener.rb
index bde645d0b..ae6605c43 100644
--- a/lib/quiet_opener.rb
+++ b/lib/quiet_opener.rb
@@ -3,7 +3,7 @@ require 'net-purge'
require 'net/http/local'
def quietly_try_to_open(url)
- begin
+ begin
result = open(url).read.strip
rescue OpenURI::HTTPError, SocketError, Errno::ETIMEDOUT, Errno::ECONNREFUSED, Errno::EHOSTUNREACH, Errno::ECONNRESET
Rails.logger.warn("Unable to open third-party URL #{url}")
@@ -11,12 +11,12 @@ def quietly_try_to_open(url)
end
return result
end
-
+
def quietly_try_to_purge(host, url)
- begin
+ begin
result = ""
result_body = ""
- Net::HTTP.bind '127.0.0.1' do
+ Net::HTTP.bind '127.0.0.1' do
Net::HTTP.start(host) {|http|
request = Net::HTTP::Purge.new(url)
response = http.request(request)
@@ -24,7 +24,7 @@ def quietly_try_to_purge(host, url)
result_body = response.body
}
end
- rescue OpenURI::HTTPError, SocketError, Errno::ETIMEDOUT, Errno::ECONNREFUSED, Errno::EHOSTUNREACH, Errno::ECONNRESET
+ rescue OpenURI::HTTPError, SocketError, Errno::ETIMEDOUT, Errno::ECONNREFUSED, Errno::EHOSTUNREACH, Errno::ECONNRESET, Errno::ENETUNREACH
Rails.logger.warn("PURGE: Unable to reach host #{host}")
end
if result == "200"
@@ -34,4 +34,4 @@ def quietly_try_to_purge(host, url)
end
return result
end
-
+
diff --git a/lib/rack_quote_monkeypatch.rb b/lib/rack_quote_monkeypatch.rb
deleted file mode 100644
index b477ac0cb..000000000
--- a/lib/rack_quote_monkeypatch.rb
+++ /dev/null
@@ -1,65 +0,0 @@
-# There's a bug in Rack 1.1.x which is fixed in Rack 1.2, but our
-# current version of Rails won't use that. So for now, monkeypatch,
-# This can be dropped when we move to Rails 3.
-#
-# See https://github.com/mysociety/alaveteli/issues/38 for Alaveteli
-# bug report
-#
-# More info about the monkeypatch:
-# http://thewebfellas.com/blog/2010/7/15/rails-2-3-8-rack-1-1-and-the-curious-case-of-the-missing-quotes
-
-module Rack
- module Utils
- def parse_query(qs, d = nil)
- params = {}
-
- (qs || '').split(d ? /[#{d}] */n : DEFAULT_SEP).each do |p|
- k, v = p.split('=', 2).map { |x| unescape(x) }
- if cur = params[k]
- if cur.class == Array
- params[k] << v
- else
- params[k] = [cur, v]
- end
- else
- params[k] = v
- end
- end
-
- return params
- end
- module_function :parse_query
-
- def normalize_params(params, name, v = nil)
- name =~ %r(\A[\[\]]*([^\[\]]+)\]*)
- k = $1 || ''
- after = $' || ''
-
- return if k.empty?
-
- if after == ""
- params[k] = v
- elsif after == "[]"
- params[k] ||= []
- raise TypeError, "expected Array (got #{params[k].class.name}) for param `#{k}'" unless params[k].is_a?(Array)
- params[k] << v
- elsif after =~ %r(^\[\]\[([^\[\]]+)\]$) || after =~ %r(^\[\](.+)$)
- child_key = $1
- params[k] ||= []
- raise TypeError, "expected Array (got #{params[k].class.name}) for param `#{k}'" unless params[k].is_a?(Array)
- if params[k].last.is_a?(Hash) && !params[k].last.key?(child_key)
- normalize_params(params[k].last, child_key, v)
- else
- params[k] << normalize_params({}, child_key, v)
- end
- else
- params[k] ||= {}
- raise TypeError, "expected Hash (got #{params[k].class.name}) for param `#{k}'" unless params[k].is_a?(Hash)
- params[k] = normalize_params(params[k], after, v)
- end
-
- return params
- end
- module_function :normalize_params
- end
-end
diff --git a/lib/sendmail_return_path.rb b/lib/sendmail_return_path.rb
deleted file mode 100644
index 23c4d4376..000000000
--- a/lib/sendmail_return_path.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-# Monkeypatch!
-# Grrr, semantics of smtp and sendmail send should be the same with regard to setting return path
-
-# See test in spec/lib/sendmail_return_path_spec.rb
-
-module ActionMailer
- class Base
- def perform_delivery_sendmail(mail)
- sender = (mail['return-path'] && mail['return-path'].spec) || mail.from.first
-
- sendmail_args = sendmail_settings[:arguments].dup
- sendmail_args += " -f \"#{sender}\""
-
- IO.popen("#{sendmail_settings[:location]} #{sendmail_args}","w+") do |sm|
- sm.print(mail.encoded.gsub(/\r/, ''))
- sm.flush
- end
- end
- end
-end
-
diff --git a/spec/fixtures/track_things_sent_emails.yml b/lib/tasks/.gitkeep
index e69de29bb..e69de29bb 100644
--- a/spec/fixtures/track_things_sent_emails.yml
+++ b/lib/tasks/.gitkeep
diff --git a/lib/tasks/gettext.rake b/lib/tasks/gettext.rake
index c73c2584e..ace7205ae 100644
--- a/lib/tasks/gettext.rake
+++ b/lib/tasks/gettext.rake
@@ -1,7 +1,3 @@
-# Rails won't automatically load rakefiles from gems - see
-# http://stackoverflow.com/questions/1878640/including-rake-tasks-in-gems
-Dir["#{Gem.searcher.find('gettext_i18n_rails').full_gem_path}/lib/tasks/**/*.rake"].each { |ext| load ext }
-
namespace :gettext do
desc 'Rewrite .po files into a consistent msgmerge format'
diff --git a/lib/tasks/rspec.rake b/lib/tasks/rspec.rake
deleted file mode 100644
index d4fd4a9ff..000000000
--- a/lib/tasks/rspec.rake
+++ /dev/null
@@ -1,148 +0,0 @@
-rspec_gem_dir = nil
-Dir["#{Rails.root}/vendor/gems/*"].each do |subdir|
- rspec_gem_dir = subdir if subdir.gsub("#{Rails.root}/vendor/gems/","") =~ /^(\w+-)?rspec-(\d+)/ && File.exist?("#{subdir}/lib/spec/rake/spectask.rb")
-end
-rspec_plugin_dir = File.expand_path(File.dirname(__FILE__) + '/../../vendor/plugins/rspec')
-
-if rspec_gem_dir && (test ?d, rspec_plugin_dir)
- raise "\n#{'*'*50}\nYou have rspec installed in both vendor/gems and vendor/plugins\nPlease pick one and dispose of the other.\n#{'*'*50}\n\n"
-end
-
-if rspec_gem_dir
- $LOAD_PATH.unshift("#{rspec_gem_dir}/lib")
-elsif File.exist?(rspec_plugin_dir)
- $LOAD_PATH.unshift("#{rspec_plugin_dir}/lib")
-end
-
-# Don't load rspec if running "rake gems:*"
-unless ARGV.any? {|a| a =~ /^gems/}
-
-begin
- require 'spec/rake/spectask'
-rescue MissingSourceFile
- module Spec
- module Rake
- class SpecTask
- if defined?(::Rake::DSL)
- include ::Rake::DSL
- end
- def initialize(name)
- task name do
- # if rspec-rails is a configured gem, this will output helpful material and exit ...
- require File.expand_path(File.join(File.dirname(__FILE__),"..","..","config","environment"))
-
- # ... otherwise, do this:
- raise <<-MSG
-
-#{"*" * 80}
-* You are trying to run an rspec rake task defined in
-* #{__FILE__},
-* but rspec can not be found in vendor/gems, vendor/plugins or system gems.
-#{"*" * 80}
-MSG
- end
- end
- end
- end
- end
-end
-
-Rake.application.instance_variable_get('@tasks').delete('default')
-
-spec_prereq = File.exist?(File.join(Rails.root, 'config', 'database.yml')) ? "db:test:prepare" : :noop
-task :noop do
-end
-
-task :default => :spec
-task :stats => "spec:statsetup"
-task :test => ['spec']
-task :cruise => ['spec']
-
-desc "Run all specs in spec directory (excluding plugin specs)"
-Spec::Rake::SpecTask.new(:spec => spec_prereq) do |t|
- t.spec_opts = ['--options', "\"#{Rails.root}/spec/spec.opts\""]
- t.spec_files = FileList['spec/**/*_spec.rb']
-end
-
-namespace :spec do
- desc "Run all specs in spec directory with RCov (excluding plugin specs)"
- Spec::Rake::SpecTask.new(:rcov) do |t|
- t.spec_opts = ['--options', "\"#{Rails.root}/spec/spec.opts\""]
- t.spec_files = FileList['spec/**/*_spec.rb']
- t.rcov = true
- t.rcov_opts = lambda do
- IO.readlines("#{Rails.root}/spec/rcov.opts").map {|l| l.chomp.split " "}.flatten
- end
- end
-
- desc "Print Specdoc for all specs (excluding plugin specs)"
- Spec::Rake::SpecTask.new(:doc) do |t|
- t.spec_opts = ["--format", "specdoc", "--dry-run"]
- t.spec_files = FileList['spec/**/*_spec.rb']
- end
-
- desc "Print Specdoc for all plugin examples"
- Spec::Rake::SpecTask.new(:plugin_doc) do |t|
- t.spec_opts = ["--format", "specdoc", "--dry-run"]
- t.spec_files = FileList['vendor/plugins/**/spec/**/*_spec.rb'].exclude('vendor/plugins/rspec/*')
- end
-
- [:models, :controllers, :views, :helpers, :lib, :integration].each do |sub|
- desc "Run the code examples in spec/#{sub}"
- Spec::Rake::SpecTask.new(sub => spec_prereq) do |t|
- t.spec_opts = ['--options', "\"#{Rails.root}/spec/spec.opts\""]
- t.spec_files = FileList["spec/#{sub}/**/*_spec.rb"]
- end
- end
-
- desc "Run the code examples in vendor/plugins (except RSpec's own)"
- Spec::Rake::SpecTask.new(:plugins => spec_prereq) do |t|
- t.spec_opts = ['--options', "\"#{Rails.root}/spec/spec.opts\""]
- t.spec_files = FileList['vendor/plugins/**/spec/**/*_spec.rb'].exclude('vendor/plugins/rspec/*').exclude("vendor/plugins/rspec-rails/*")
- end
-
- namespace :plugins do
- desc "Runs the examples for rspec_on_rails"
- Spec::Rake::SpecTask.new(:rspec_on_rails) do |t|
- t.spec_opts = ['--options', "\"#{Rails.root}/spec/spec.opts\""]
- t.spec_files = FileList['vendor/plugins/rspec-rails/spec/**/*_spec.rb']
- end
- end
-
- # Setup specs for stats
- task :statsetup do
- require 'code_statistics'
- ::STATS_DIRECTORIES << %w(Model\ specs spec/models) if File.exist?('spec/models')
- ::STATS_DIRECTORIES << %w(View\ specs spec/views) if File.exist?('spec/views')
- ::STATS_DIRECTORIES << %w(Controller\ specs spec/controllers) if File.exist?('spec/controllers')
- ::STATS_DIRECTORIES << %w(Helper\ specs spec/helpers) if File.exist?('spec/helpers')
- ::STATS_DIRECTORIES << %w(Library\ specs spec/lib) if File.exist?('spec/lib')
- ::STATS_DIRECTORIES << %w(Routing\ specs spec/routing) if File.exist?('spec/routing')
- ::STATS_DIRECTORIES << %w(Integration\ specs spec/integration) if File.exist?('spec/integration')
- ::CodeStatistics::TEST_TYPES << "Model specs" if File.exist?('spec/models')
- ::CodeStatistics::TEST_TYPES << "View specs" if File.exist?('spec/views')
- ::CodeStatistics::TEST_TYPES << "Controller specs" if File.exist?('spec/controllers')
- ::CodeStatistics::TEST_TYPES << "Helper specs" if File.exist?('spec/helpers')
- ::CodeStatistics::TEST_TYPES << "Library specs" if File.exist?('spec/lib')
- ::CodeStatistics::TEST_TYPES << "Routing specs" if File.exist?('spec/routing')
- ::CodeStatistics::TEST_TYPES << "Integration specs" if File.exist?('spec/integration')
- end
-
- namespace :db do
- namespace :fixtures do
- desc "Load fixtures (from spec/fixtures) into the current environment's database. Load specific fixtures using FIXTURES=x,y. Load from subdirectory in test/fixtures using FIXTURES_DIR=z."
- task :load => :environment do
- ActiveRecord::Base.establish_connection(Rails.env)
- base_dir = File.join(Rails.root, 'spec', 'fixtures')
- fixtures_dir = ENV['FIXTURES_DIR'] ? File.join(base_dir, ENV['FIXTURES_DIR']) : base_dir
-
- require 'active_record/fixtures'
- (ENV['FIXTURES'] ? ENV['FIXTURES'].split(/,/).map {|f| File.join(fixtures_dir, f) } : Dir.glob(File.join(fixtures_dir, '*.{yml,csv}'))).each do |fixture_file|
- Fixtures.create_fixtures(File.dirname(fixture_file), File.basename(fixture_file, '.*'))
- end
- end
- end
- end
-end
-
-end
diff --git a/lib/tasks/temp.rake b/lib/tasks/temp.rake
index e49a84ecb..f0085b5e1 100644
--- a/lib/tasks/temp.rake
+++ b/lib/tasks/temp.rake
@@ -50,4 +50,154 @@ namespace :temp do
end
end
+ desc 'Create a CSV file of a random selection of raw emails, for comparing hexdigests'
+ task :random_attachments_hexdigests => :environment do
+
+ # The idea is to run this under the Rail 2 codebase, where
+ # Tmail was used to extract the attachements, and the task
+ # will output all of those file paths in a CSV file, and a
+ # list of the raw email files in another. The latter file is
+ # useful so that one can easily tar up the emails with:
+ #
+ # tar cvz -T raw-email-files -f raw_emails.tar.gz
+ #
+ # Then you can switch to the Rails 3 codebase, where
+ # attachment parsing is done via
+ # recompute_attachments_hexdigests
+
+ require 'csv'
+
+ File.open('raw-email-files', 'w') do |f|
+ CSV.open('attachment-hexdigests.csv', 'w') do |csv|
+ csv << ['filepath', 'i', 'url_part_number', 'hexdigest']
+ IncomingMessage.all(:order => 'RANDOM()', :limit => 1000).each do |incoming_message|
+ # raw_email.filepath fails unless the
+ # incoming_message has an associated request
+ next unless incoming_message.info_request
+ raw_email = incoming_message.raw_email
+ f.puts raw_email.filepath
+ incoming_message.foi_attachments.each_with_index do |attachment, i|
+ csv << [raw_email.filepath, i, attachment.url_part_number, attachment.hexdigest]
+ end
+ end
+ end
+ end
+
+ end
+
+
+ desc 'Check the hexdigests of attachments in emails on disk'
+ task :recompute_attachments_hexdigests => :environment do
+
+ require 'csv'
+ require 'digest/md5'
+
+ OldAttachment = Struct.new :filename, :attachment_index, :url_part_number, :hexdigest
+
+ filename_to_attachments = Hash.new {|h,k| h[k] = []}
+
+ header_line = true
+ CSV.foreach('attachment-hexdigests.csv') do |filename, attachment_index, url_part_number, hexdigest|
+ if header_line
+ header_line = false
+ else
+ filename_to_attachments[filename].push OldAttachment.new filename, attachment_index, url_part_number, hexdigest
+ end
+ end
+
+ total_attachments = 0
+ attachments_with_different_hexdigest = 0
+ files_with_different_numbers_of_attachments = 0
+ no_tnef_attachments = 0
+ no_parts_in_multipart = 0
+
+ multipart_error = "no parts on multipart mail"
+ tnef_error = "tnef produced no attachments"
+
+ # Now check each file:
+ filename_to_attachments.each do |filename, old_attachments|
+
+ # Currently it doesn't seem to be possible to reuse the
+ # attachment parsing code in Alaveteli without saving
+ # objects to the database, so reproduce what it does:
+
+ raw_email = nil
+ File.open(filename) do |f|
+ raw_email = f.read
+ end
+ mail = MailHandler.mail_from_raw_email(raw_email)
+
+ begin
+ attachment_attributes = MailHandler.get_attachment_attributes(mail)
+ rescue IOError => e
+ if e.message == tnef_error
+ puts "#{filename} #{tnef_error}"
+ no_tnef_attachments += 1
+ next
+ else
+ raise
+ end
+ rescue Exception => e
+ if e.message == multipart_error
+ puts "#{filename} #{multipart_error}"
+ no_parts_in_multipart += 1
+ next
+ else
+ raise
+ end
+ end
+
+ if attachment_attributes.length != old_attachments.length
+ puts "#{filename} the number of old attachments #{old_attachments.length} didn't match the number of new attachments #{attachment_attributes.length}"
+ files_with_different_numbers_of_attachments += 1
+ else
+ old_attachments.each_with_index do |old_attachment, i|
+ total_attachments += 1
+ attrs = attachment_attributes[i]
+ old_hexdigest = old_attachment.hexdigest
+ new_hexdigest = attrs[:hexdigest]
+ new_content_type = attrs[:content_type]
+ old_url_part_number = old_attachment.url_part_number.to_i
+ new_url_part_number = attrs[:url_part_number]
+ if old_url_part_number != new_url_part_number
+ puts "#{i} #{filename} old_url_part_number #{old_url_part_number}, new_url_part_number #{new_url_part_number}"
+ end
+ if old_hexdigest != new_hexdigest
+ body = attrs[:body]
+ # First, if the content type is one of
+ # text/plain, text/html or application/rtf try
+ # changing CRLF to LF and calculating a new
+ # digest - we generally don't worry about
+ # these changes:
+ new_converted_hexdigest = nil
+ if ["text/plain", "text/html", "application/rtf"].include? new_content_type
+ converted_body = body.gsub /\r\n/, "\n"
+ new_converted_hexdigest = Digest::MD5.hexdigest converted_body
+ puts "new_converted_hexdigest is #{new_converted_hexdigest}"
+ end
+ if (! new_converted_hexdigest) || (old_hexdigest != new_converted_hexdigest)
+ puts "#{i} #{filename} old_hexdigest #{old_hexdigest} wasn't the same as new_hexdigest #{new_hexdigest}"
+ puts " body was of length #{body.length}"
+ puts " content type was: #{new_content_type}"
+ path = "/tmp/#{new_hexdigest}"
+ f = File.new path, "w"
+ f.write body
+ f.close
+ puts " wrote body to #{path}"
+ attachments_with_different_hexdigest += 1
+ end
+ end
+ end
+ end
+
+ end
+
+ puts "total_attachments: #{total_attachments}"
+ puts "attachments_with_different_hexdigest: #{attachments_with_different_hexdigest}"
+ puts "files_with_different_numbers_of_attachments: #{files_with_different_numbers_of_attachments}"
+ puts "no_tnef_attachments: #{no_tnef_attachments}"
+ puts "no_parts_in_multipart: #{no_parts_in_multipart}"
+
+ end
+
end
diff --git a/lib/tasks/themes.rake b/lib/tasks/themes.rake
index 14aa15551..cbd3d123e 100644
--- a/lib/tasks/themes.rake
+++ b/lib/tasks/themes.rake
@@ -31,7 +31,7 @@ namespace :themes do
if system(clone_command)
Dir.chdir install_path do
# First try to checkout a specific branch of the theme
- tag_checked_out = checkout_remote_branch(Configuration::theme_branch) if Configuration::theme_branch
+ tag_checked_out = checkout_remote_branch(AlaveteliConfiguration::theme_branch) if AlaveteliConfiguration::theme_branch
if !tag_checked_out
# try to checkout a tag exactly matching ALAVETELI VERSION
tag_checked_out = checkout_tag(ALAVETELI_VERSION)
@@ -94,10 +94,10 @@ namespace :themes do
desc "Install themes specified in the config file's THEME_URLS"
task :install => :environment do
verbose = true
- Configuration::theme_urls.each{ |theme_url| install_theme(theme_url, verbose) }
- if ! Configuration::theme_url.blank?
+ AlaveteliConfiguration::theme_urls.each{ |theme_url| install_theme(theme_url, verbose) }
+ if ! AlaveteliConfiguration::theme_url.blank?
# Old version of the above, for backwards compatibility
- install_theme(Configuration::theme_url, verbose, deprecated=true)
+ install_theme(AlaveteliConfiguration::theme_url, verbose, deprecated=true)
end
end
-end \ No newline at end of file
+end
diff --git a/lib/tasks/translation.rake b/lib/tasks/translation.rake
index ff07fc6f6..6458d9268 100644
--- a/lib/tasks/translation.rake
+++ b/lib/tasks/translation.rake
@@ -42,14 +42,14 @@ namespace :translation do
output_file = File.open(File.join(ENV['DIR'], 'message_preview.txt'), 'w')
# outgoing mailer
- request_email = OutgoingMailer.create_initial_request(info_request, initial_request)
+ request_email = OutgoingMailer.initial_request(info_request, initial_request)
write_email(request_email, 'Initial Request', output_file)
- followup_email = OutgoingMailer.create_followup(info_request, follow_up, nil)
+ followup_email = OutgoingMailer.followup(info_request, follow_up, nil)
write_email(followup_email, 'Follow up', output_file)
# contact mailer
- contact_email = ContactMailer.create_to_admin_message(info_request.user_name,
+ contact_email = ContactMailer.to_admin_message(info_request.user_name,
info_request.user.email,
'A test message',
'Hello!',
@@ -59,20 +59,20 @@ namespace :translation do
write_email(contact_email, 'Contact email (to admin)', output_file)
- user_contact_email = ContactMailer.create_user_message(info_request.user,
+ user_contact_email = ContactMailer.user_message(info_request.user,
info_request.user,
'http://www.example.com/user',
'A test message',
'Hello!')
write_email(user_contact_email, 'Contact email (user to user)', output_file)
- admin_contact_email = ContactMailer.create_from_admin_message(info_request.user,
+ admin_contact_email = ContactMailer.from_admin_message(info_request.user,
'A test message',
'Hello!')
write_email(admin_contact_email, 'Contact email (admin to user)', output_file)
# request mailer
- fake_response_email = RequestMailer.create_fake_response(info_request,
+ fake_response_email = RequestMailer.fake_response(info_request,
info_request.user,
"test body",
"attachment.txt",
@@ -89,98 +89,96 @@ namespace :translation do
response_mail = MailHandler.mail_from_raw_email(content)
response_mail.from = "authority@example.com"
- stopped_responses_email = RequestMailer.create_stopped_responses(info_request,
+ stopped_responses_email = RequestMailer.stopped_responses(info_request,
response_mail,
content)
write_email(stopped_responses_email,
'Bounce if someone sends email to a request that has had responses stopped',
output_file)
- requires_admin_email = RequestMailer.create_requires_admin(info_request)
+ requires_admin_email = RequestMailer.requires_admin(info_request)
write_email(requires_admin_email, 'Drawing admin attention to a response', output_file)
- new_response_email = RequestMailer.create_new_response(info_request, incoming_message)
+ new_response_email = RequestMailer.new_response(info_request, incoming_message)
write_email(new_response_email,
'Telling the requester that a new response has arrived',
output_file)
- overdue_alert_email = RequestMailer.create_overdue_alert(info_request, info_request.user)
+ overdue_alert_email = RequestMailer.overdue_alert(info_request, info_request.user)
write_email(overdue_alert_email,
'Telling the requester that the public body is late in replying',
output_file)
- very_overdue_alert_email = RequestMailer.create_very_overdue_alert(info_request, info_request.user)
+ very_overdue_alert_email = RequestMailer.very_overdue_alert(info_request, info_request.user)
write_email(very_overdue_alert_email,
'Telling the requester that the public body is very late in replying',
output_file)
- response_reminder_alert_email = RequestMailer.create_new_response_reminder_alert(info_request,
+ response_reminder_alert_email = RequestMailer.new_response_reminder_alert(info_request,
incoming_message)
write_email(response_reminder_alert_email,
'Telling the requester that they need to say if the new response contains info or not',
output_file)
- old_unclassified_email = RequestMailer.create_old_unclassified_updated(info_request)
+ old_unclassified_email = RequestMailer.old_unclassified_updated(info_request)
write_email(old_unclassified_email,
'Telling the requester that someone updated their old unclassified request',
output_file)
- not_clarified_alert_email = RequestMailer.create_not_clarified_alert(info_request, incoming_message)
+ not_clarified_alert_email = RequestMailer.not_clarified_alert(info_request, incoming_message)
write_email(not_clarified_alert_email,
'Telling the requester that they need to clarify their request',
output_file)
- comment_on_alert_email = RequestMailer.create_comment_on_alert(info_request, comment)
+ comment_on_alert_email = RequestMailer.comment_on_alert(info_request, comment)
write_email(comment_on_alert_email,
'Telling requester that somebody added an annotation to their request',
output_file)
- comment_on_alert_plural_email = RequestMailer.create_comment_on_alert_plural(info_request, 2, comment)
+ comment_on_alert_plural_email = RequestMailer.comment_on_alert_plural(info_request, 2, comment)
write_email(comment_on_alert_plural_email,
'Telling requester that somebody added multiple annotations to their request',
output_file)
# track mailer
- xapian_object = InfoRequest.full_search([InfoRequestEvent],
- track_thing.track_query,
- 'described_at',
- true,
- nil,
- 100,
- 1)
- event_digest_email = TrackMailer.create_event_digest(info_request.user,
+ xapian_object = ActsAsXapian::Search.new([InfoRequestEvent], track_thing.track_query,
+ :sort_by_prefix => 'described_at',
+ :sort_by_ascending => true,
+ :collapse_by_prefix => nil,
+ :limit => 100)
+ event_digest_email = TrackMailer.event_digest(info_request.user,
[[track_thing,
xapian_object.results,
xapian_object]])
write_email(event_digest_email, 'Alerts on things the user is tracking', output_file)
# user mailer
- site_name = Configuration::site_name
+ site_name = AlaveteliConfiguration::site_name
reasons = {
:web => "",
: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)
}
- confirm_login_email = UserMailer.create_confirm_login(info_request.user,
+ confirm_login_email = UserMailer.confirm_login(info_request.user,
reasons,
'http://www.example.com')
write_email(confirm_login_email, 'Confirm a user login', output_file)
- already_registered_email = UserMailer.create_already_registered(info_request.user,
+ already_registered_email = UserMailer.already_registered(info_request.user,
reasons,
'http://www.example.com')
write_email(already_registered_email, 'Tell a user they are already registered', output_file)
new_email = 'new_email@example.com'
- changeemail_confirm_email = UserMailer.create_changeemail_confirm(info_request.user,
+ changeemail_confirm_email = UserMailer.changeemail_confirm(info_request.user,
new_email,
'http://www.example.com')
write_email(changeemail_confirm_email,
'Confirm that the user wants to change their email',
output_file)
- changeemail_already_used = UserMailer.create_changeemail_already_used('old_email@example.com',
+ changeemail_already_used = UserMailer.changeemail_already_used('old_email@example.com',
new_email)
write_email(changeemail_already_used,
'Tell a user that the email they want to change to is already used',
@@ -189,4 +187,4 @@ namespace :translation do
output_file.close
end
-end \ No newline at end of file
+end
diff --git a/lib/timezone_fixes.rb b/lib/timezone_fixes.rb
deleted file mode 100644
index 1bf326ccd..000000000
--- a/lib/timezone_fixes.rb
+++ /dev/null
@@ -1,26 +0,0 @@
-# Taken from
-# https://rails.lighthouseapp.com/projects/8994/tickets/2946
-# http://github.com/rails/rails/commit/6f97ad07ded847f29159baf71050c63f04282170
-
-# Otherwise times get stored wrong during British Summer Time
-
-# Hopefully fixed in later Rails. There is a test in spec/lib/timezone_fixes_spec.rb
-
-# This fix is applied in Rails 3.x. So, should be possible to remove this then!
-
-# Monkeypatch!
-module ActiveRecord
- module ConnectionAdapters # :nodoc:
- module Quoting
- def quoted_date(value)
- if value.acts_like?(:time)
- zone_conversion_method = ActiveRecord::Base.default_timezone == :utc ? :getutc : :getlocal
- value.respond_to?(zone_conversion_method) ? value.send(zone_conversion_method) : value
- else
- value
- end.to_s(:db)
- end
- end
- end
-end
-
diff --git a/lib/willpaginate_extension.rb b/lib/willpaginate_extension.rb
deleted file mode 100644
index 3cdb0ae60..000000000
--- a/lib/willpaginate_extension.rb
+++ /dev/null
@@ -1,59 +0,0 @@
-# this extension is loaded in environment.rb
-module WillPaginateExtension
- class LinkRenderer < WillPaginate::LinkRenderer
- def page_link(page, text, attributes = {})
- # Hack for admin pages, when proxied via https on mySociety servers, they
- # need a relative URL.
- url = url_for(page)
- if url.match(/\/admin.*(\?.*)/)
- url = $1
- end
- # Hack around our type-ahead search magic
- if url.match(/\/body\/search_ahead/)
- url.sub!("/body/search_ahead", "/select_authority")
- end
- @template.link_to text, url, attributes
- end
-
- # Returns URL params for +page_link_or_span+, taking the current GET params
- # and <tt>:params</tt> option into account.
- def url_for(page)
- page_one = page == 1
- unless @url_string and !page_one
- @url_params = {}
- # page links should preserve GET parameters
- stringified_merge @url_params, @template.params if @template.request.get?
- stringified_merge @url_params, @options[:params] if @options[:params]
- if complex = param_name.index(/[^\w-]/)
- page_param = parse_query_parameters("#{param_name}=#{page}")
-
- stringified_merge @url_params, page_param
- else
- @url_params[param_name] = page_one ? 1 : 2
- end
- # the following line makes pagination work on our specially munged search page
- combined = @template.request.path_parameters["combined"]
- @url_params["combined"] = combined if !combined.nil?
- url = @template.url_for(@url_params)
- return url if page_one
-
- if complex
- @url_string = url.sub(%r!((?:\?|&amp;)#{CGI.escape param_name}=)#{page}!, "\\1\0")
- return url
- else
- @url_string = url
- @url_params[param_name] = 3
- @template.url_for(@url_params).split(//).each_with_index do |char, i|
- if char == '3' and url[i, 1] == '2'
- @url_string[i] = "\0"
- break
- end
- end
- end
- end
- # finally!
- @url_string.sub "\0", page.to_s
- end
-
- end
-end
diff --git a/locale/aln/app.po b/locale/aln/app.po
index 4e01d501a..4a408ac88 100644
--- a/locale/aln/app.po
+++ b/locale/aln/app.po
@@ -3,15 +3,16 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# Valon <vbrestovci@gmail.com>, 2011.
+# Valon <vbrestovci@gmail.com>, 2011
+# Valon <vbrestovci@gmail.com>, 2011
msgid ""
msgstr ""
"Project-Id-Version: alaveteli\n"
"Report-Msgid-Bugs-To: http://github.com/sebbacon/alaveteli/issues\n"
-"POT-Creation-Date: 2012-12-18 10:11+0000\n"
-"PO-Revision-Date: 2012-12-18 10:14+0000\n"
+"POT-Creation-Date: 2013-05-30 09:46+0100\n"
+"PO-Revision-Date: 2013-05-30 08:54+0000\n"
"Last-Translator: louisecrow <louise@mysociety.org>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language-Team: Albanian Gheg (http://www.transifex.com/projects/p/alaveteli/language/aln/)\n"
"Language: aln\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -21,7 +22,7 @@ msgstr ""
msgid " This will appear on your {{site_name}} profile, to make it\\n easier for others to get involved with what you're doing."
msgstr ""
-msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)"
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
msgstr ""
msgid " (<strong>patience</strong>, especially for large files, it may take a while!)"
@@ -51,7 +52,7 @@ msgstr ""
msgid " Ideas on what <strong>other documents to request</strong> which the authority may hold. "
msgstr ""
-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."
+msgid " If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\\n You may be able to find the address on their website, or by phoning them up and asking."
msgstr ""
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."
@@ -90,21 +91,6 @@ msgstr ""
msgid "\"Hello! We have an <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">important message</a> for visitors outside {{country_name}}\""
msgstr ""
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "%d request"
-msgid_plural "%d requests"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "%d request made."
-msgid_plural "%d requests made."
-msgstr[0] ""
-msgstr[1] ""
-
msgid "'Crime statistics by ward level for Wales'"
msgstr ""
@@ -120,6 +106,9 @@ msgstr ""
msgid "'{{link_to_user}}', a person"
msgstr ""
+msgid "*unknown*"
+msgstr ""
+
msgid ",\\n\\n\\n\\nYours,\\n\\n{{user_name}}"
msgstr ""
@@ -135,31 +124,13 @@ msgstr ""
msgid "3. Now check your request"
msgstr ""
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
msgstr ""
-msgid "<a href=\"%s\">Are we missing a public authority?</a>"
+msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)"
msgstr ""
-msgid "<a href=\"%s\">Are you the owner of\\n any commercial copyright on this page?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
-msgstr ""
-
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
-msgstr ""
-
-msgid "<a href=\"%s\">details</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">what's that?</a>"
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
msgstr ""
msgid "<p>All done! Thank you very much for your help.</p><p>There are <a href=\"{{helpus_url}}\">more things you can do</a> to help {{site_name}}.</p>"
@@ -177,9 +148,6 @@ msgstr ""
msgid "<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>"
msgstr ""
-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 ""
-
msgid "<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>"
msgstr ""
@@ -198,10 +166,10 @@ msgstr ""
msgid "<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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 ""
-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>"
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
msgstr ""
-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>"
+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=\"{{url}}\">details</a>).</p>"
msgstr ""
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>"
@@ -216,12 +184,7 @@ msgstr ""
msgid "<small>If you use web-based email or have \"junk mail\" filters, also check your\\nbulk/spam mail folders. Sometimes, our messages are marked that way.</small>\\n</p>"
msgstr ""
-msgid "<span id='follow_count'>%d</span> person is following this authority"
-msgid_plural "<span id='follow_count'>%d</span> people are following this authority"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
+msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
msgstr ""
msgid "<strong><code>commented_by:tony_bowden</code></strong> to search annotations made by Tony Bowden, typing the name as in the URL."
@@ -275,7 +238,7 @@ msgstr ""
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 ""
-msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"%s\">click here</a>."
+msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"{{url}}\">click here</a>."
msgstr ""
msgid "<strong>Privacy note:</strong> Your photo will be shown in public on the Internet,\\n wherever you do something on {{site_name}}."
@@ -317,6 +280,9 @@ msgstr ""
msgid "A strange reponse, required attention by the {{site_name}} team"
msgstr ""
+msgid "A vexatious request"
+msgstr ""
+
msgid "A {{site_name}} user"
msgstr ""
@@ -326,6 +292,15 @@ msgstr ""
msgid "Act on what you've learnt"
msgstr ""
+msgid "Acts as xapian/acts as xapian job"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Action"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Model"
+msgstr ""
+
msgid "Add an annotation"
msgstr ""
@@ -404,10 +379,19 @@ msgstr ""
msgid "Anyone:"
msgstr ""
+msgid "Applies to"
+msgstr ""
+
+msgid "Are we missing a public authority?"
+msgstr ""
+
+msgid "Are you the owner of any commercial copyright on this page?"
+msgstr ""
+
msgid "Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries."
msgstr ""
-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>)."
+msgid "At the bottom of this page, write a reply to them trying to persuade them to scan it in\\n (<a href=\"{{url}}\">more details</a>)."
msgstr ""
msgid "Attachment (optional):"
@@ -443,6 +427,12 @@ msgstr ""
msgid "By law, {{public_body_link}} should normally have responded <strong>promptly</strong> and"
msgstr ""
+msgid "Calculated home page"
+msgstr ""
+
+msgid "Can't find the one you want?"
+msgstr ""
+
msgid "Cancel a {{site_name}} alert"
msgstr ""
@@ -608,9 +598,15 @@ msgstr ""
msgid "Date:"
msgstr ""
+msgid "Dear {{name}},"
+msgstr ""
+
msgid "Dear {{public_body_name}},"
msgstr ""
+msgid "Default locale"
+msgstr ""
+
msgid "Delayed response to your FOI request - "
msgstr ""
@@ -620,6 +616,9 @@ msgstr ""
msgid "Delivery error"
msgstr ""
+msgid "Destroy {{name}}"
+msgstr ""
+
msgid "Details of request '"
msgstr ""
@@ -632,6 +631,9 @@ msgstr ""
msgid "Disclosure log"
msgstr ""
+msgid "Disclosure log URL"
+msgstr ""
+
msgid "Don't want to address your message to {{person_or_body}}? You can also write to:"
msgstr ""
@@ -650,10 +652,10 @@ msgstr ""
msgid "EIR"
msgstr ""
-msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
+msgid "Edit"
msgstr ""
-msgid "Edit language version:"
+msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
msgstr ""
msgid "Edit text about you"
@@ -677,7 +679,7 @@ msgstr ""
msgid "Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>"
msgstr ""
-msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"%s\">contact us</a> if you need more)."
+msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"{{url}}\">contact us</a> if you need more)."
msgstr ""
msgid "Environmental Information Regulations"
@@ -695,10 +697,13 @@ msgstr ""
msgid "Event history details"
msgstr ""
-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>)."
+msgid "Event {{id}}"
msgstr ""
-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>)."
+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=\"{{url}}\">why?</a>)."
+msgstr ""
+
+msgid "Everything that you enter on this page\\n will be <strong>displayed publicly</strong> on\\n this website forever (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "FOI"
@@ -707,6 +712,9 @@ msgstr ""
msgid "FOI email address for {{public_body}}"
msgstr ""
+msgid "FOI request – {{title}}"
+msgstr ""
+
msgid "FOI requests"
msgstr ""
@@ -722,13 +730,13 @@ msgstr ""
msgid "Failed to convert image to a PNG"
msgstr ""
-msgid "Failed to convert image to the correct size: at %{cols}x%{rows}, need %{width}x%{height}"
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
msgstr ""
msgid "Filter"
msgstr ""
-msgid "First, type in the <strong>name of the UK public authority</strong> you'd \\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"%s#%s\">why?</a>)."
+msgid "First, type in the <strong>name of the UK public authority</strong> you'd\\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "Foi attachment"
@@ -809,8 +817,8 @@ msgstr ""
msgid "Forgotten your password?"
msgstr ""
-msgid "Found %d public authority %s"
-msgid_plural "Found %d public authorities %s"
+msgid "Found {{count}} public authority {{description}}"
+msgid_plural "Found {{count}} public authorities {{description}}"
msgstr[0] ""
msgstr[1] ""
@@ -847,7 +855,7 @@ msgstr ""
msgid "From"
msgstr ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "From:"
@@ -859,6 +867,18 @@ msgstr ""
msgid "Handled by post."
msgstr ""
+msgid "Has tag string/has tag string tag"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Model"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Name"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Value"
+msgstr ""
+
msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
msgstr ""
@@ -877,6 +897,9 @@ msgstr ""
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 ""
+msgid "Hide request"
+msgstr ""
+
msgid "Holiday"
msgstr ""
@@ -889,6 +912,9 @@ msgstr ""
msgid "Home"
msgstr ""
+msgid "Home page"
+msgstr ""
+
msgid "Home page of authority"
msgstr "ueb faqja e autoritetit"
@@ -937,22 +963,31 @@ msgstr ""
msgid "I've received an <strong>error message</strong>"
msgstr ""
-msgid "If the address is wrong, or you know a better address, please <a href=\"%s\">contact us</a>."
+msgid "I've received an error message"
+msgstr ""
+
+msgid "Id"
+msgstr ""
+
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
+msgstr ""
+
+msgid "If the error was a delivery failure, and you can find an up to date FOI email address for the authority, please tell us using the form below."
msgstr ""
msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
msgstr ""
-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>)."
+msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"{{url}}\">details</a>)."
msgstr ""
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
+msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
-msgid "If you are the requester, then you may <a href=\"%s\">sign in</a> to view the request."
+msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request."
msgstr ""
-msgid "If you are thinking of using a pseudonym,\\n please <a href=\"%s\">read this first</a>."
+msgid "If you are thinking of using a pseudonym,\\n please <a href=\"{{url}}\">read this first</a>."
msgstr ""
msgid "If you are {{user_link}}, please"
@@ -994,6 +1029,9 @@ msgstr ""
msgid "If your browser is set to accept cookies and you are seeing this message,\\nthen there is probably a fault with our server."
msgstr ""
+msgid "Incoming email address"
+msgstr ""
+
msgid "Incoming message"
msgstr ""
@@ -1108,13 +1146,19 @@ msgstr ""
msgid "Items matching the following conditions are currently displayed on your wall."
msgstr ""
+msgid "Items sent in last month"
+msgstr ""
+
msgid "Joined in"
msgstr ""
msgid "Joined {{site_name}} in"
msgstr ""
-msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)."
+msgid "Just one more thing"
+msgstr ""
+
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "Keywords"
@@ -1132,9 +1176,27 @@ msgstr ""
msgid "Link to this"
msgstr ""
+msgid "List all"
+msgstr ""
+
msgid "List of all authorities (CSV)"
msgstr ""
+msgid "Listing FOI requests"
+msgstr ""
+
+msgid "Listing public authorities"
+msgstr ""
+
+msgid "Listing public authorities matching '{{query}}'"
+msgstr ""
+
+msgid "Listing tracks"
+msgstr ""
+
+msgid "Listing users"
+msgstr ""
+
msgid "Log in to download a zip file of {{info_request_title}}"
msgstr ""
@@ -1231,6 +1293,9 @@ msgstr ""
msgid "New Freedom of Information requests"
msgstr ""
+msgid "New censor rule"
+msgstr ""
+
msgid "New e-mail:"
msgstr ""
@@ -1276,6 +1341,9 @@ msgstr ""
msgid "No similar requests found."
msgstr ""
+msgid "No tracked things found."
+msgstr ""
+
msgid "Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet."
msgstr ""
@@ -1285,6 +1353,9 @@ msgstr "Asnji nuk u gjet."
msgid "None made."
msgstr ""
+msgid "Not a valid FOI request"
+msgstr ""
+
msgid "Note that the requester will not be notified about your annotation, because the request was published by {{public_body_name}} on their behalf."
msgstr ""
@@ -1330,6 +1401,9 @@ msgstr ""
msgid "One public authority found"
msgstr ""
+msgid "Only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL – don't worry about breaking URLs through renaming, as the history is used to redirect"
+msgstr ""
+
msgid "Only requests made using {{site_name}} are shown."
msgstr ""
@@ -1402,7 +1476,7 @@ msgstr ""
msgid "Please"
msgstr ""
-msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
msgstr ""
msgid "Please <strong>answer the question above</strong> so we know whether the "
@@ -1507,7 +1581,7 @@ msgstr ""
msgid "Please select each of these requests in turn, and <strong>let everyone know</strong>\\nif they are successful yet or not."
msgstr ""
-msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature"
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
msgstr ""
msgid "Please sign in as "
@@ -1519,9 +1593,6 @@ msgstr ""
msgid "Please type a message and/or choose a file containing your response."
msgstr ""
-msgid "Please use the form below to tell us more."
-msgstr ""
-
msgid "Please use this email address for all replies to this request:"
msgstr ""
@@ -1612,37 +1683,19 @@ msgstr ""
msgid "Public authorities {{start_count}} to {{end_count}} of {{total_count}}"
msgstr ""
-msgid "Public body"
-msgstr ""
-
-msgid "Public body/translation"
-msgstr ""
-
-msgid "PublicBody::Translation|Disclosure log"
-msgstr ""
-
-msgid "PublicBody::Translation|First letter"
-msgstr ""
-
-msgid "PublicBody::Translation|Locale"
-msgstr ""
-
-msgid "PublicBody::Translation|Name"
+msgid "Public authority – {{name}}"
msgstr ""
-msgid "PublicBody::Translation|Notes"
-msgstr ""
-
-msgid "PublicBody::Translation|Publication scheme"
+msgid "Public body"
msgstr ""
-msgid "PublicBody::Translation|Request email"
+msgid "Public notes"
msgstr ""
-msgid "PublicBody::Translation|Short name"
+msgid "Public page"
msgstr ""
-msgid "PublicBody::Translation|Url name"
+msgid "Public page not available"
msgstr ""
msgid "PublicBody|Api key"
@@ -1690,6 +1743,9 @@ msgstr ""
msgid "Publication scheme"
msgstr ""
+msgid "Publication scheme URL"
+msgstr ""
+
msgid "Purge request"
msgstr ""
@@ -1747,6 +1803,9 @@ msgstr ""
msgid "Request an internal review from {{person_or_body}}"
msgstr ""
+msgid "Request email"
+msgstr ""
+
msgid "Request has been removed"
msgstr ""
@@ -1837,14 +1896,17 @@ msgstr ""
msgid "Search the site to find what you were looking for."
msgstr ""
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests made to {{public_body_name}}"
msgstr[0] ""
msgstr[1] ""
msgid "Search your contributions"
msgstr ""
+msgid "See bounce message"
+msgstr ""
+
msgid "Select one to see more information about the authority."
msgstr ""
@@ -1878,6 +1940,9 @@ msgstr ""
msgid "Set your profile photo"
msgstr ""
+msgid "Short name"
+msgstr ""
+
msgid "Short name is already taken"
msgstr ""
@@ -1971,6 +2036,9 @@ msgstr ""
msgid "Submit status"
msgstr ""
+msgid "Submit status and send message"
+msgstr ""
+
msgid "Subscribe to blog"
msgstr ""
@@ -1992,6 +2060,9 @@ msgstr ""
msgid "Table of varieties"
msgstr ""
+msgid "Tags"
+msgstr ""
+
msgid "Tags (separated by a space):"
msgstr ""
@@ -2019,6 +2090,9 @@ msgstr ""
msgid "Thank you for updating your profile photo"
msgstr ""
+msgid "Thank you! We'll look into what happened and try and fix it up."
+msgstr ""
+
msgid "Thanks for helping - your work will make it easier for everyone to find successful\\nresponses, and maybe even let us make league tables..."
msgstr ""
@@ -2088,16 +2162,16 @@ msgstr ""
msgid "The request was refused by the public authority"
msgstr ""
-msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"%s\">contact us</a> if you have any questions."
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
msgstr ""
msgid "The requester has abandoned this request for some reason"
msgstr ""
-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"
+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 ""
-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"
+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 ""
msgid "The search index is currently offline, so we can't show the Freedom of Information requests that have been made to this authority."
@@ -2106,6 +2180,9 @@ msgstr ""
msgid "The search index is currently offline, so we can't show the Freedom of Information requests this person has made."
msgstr ""
+msgid "The {{site_name}} team."
+msgstr ""
+
msgid "Then you can cancel the alert."
msgstr ""
@@ -2181,17 +2258,17 @@ msgstr ""
msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
msgstr ""
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
-msgstr[0] ""
-msgstr[1] ""
-
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 ""
msgid "There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>."
msgstr ""
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "There was a <strong>delivery error</strong> or similar, which needs fixing by the {{site_name}} team."
msgstr ""
@@ -2228,7 +2305,7 @@ msgstr ""
msgid "This authority no longer exists, so you cannot make a request to it."
msgstr ""
-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."
+msgid "This comment has been hidden. See annotations to\\n find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This covers a very wide spectrum of information about the state of\\n the <strong>natural and built environment</strong>, such as:"
@@ -2246,10 +2323,13 @@ msgstr ""
msgid "This is because {{title}} is an old request that has been\\nmarked to no longer receive responses."
msgstr ""
+msgid "This is the first version."
+msgstr ""
+
msgid "This is your own request, so you will be automatically emailed when new responses arrive."
msgstr ""
-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."
+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=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This particular request is finished:"
@@ -2258,19 +2338,19 @@ msgstr ""
msgid "This person has made no Freedom of Information requests using this site."
msgstr ""
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
+msgid "This person's annotations"
+msgstr ""
+
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
msgstr[0] ""
msgstr[1] ""
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
msgstr[0] ""
msgstr[1] ""
-msgid "This person's annotations"
-msgstr ""
-
msgid "This request <strong>requires administrator attention</strong>"
msgstr ""
@@ -2292,7 +2372,7 @@ msgstr ""
msgid "This request has been <strong>withdrawn</strong> by the person who made it.\\n There may be an explanation in the correspondence below."
msgstr ""
-msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"%s\">contact us</a>."
+msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
msgid "This request has been reported for administrator attention"
@@ -2307,16 +2387,19 @@ msgstr ""
msgid "This request has prominence 'hidden'. You can only see it because you are logged\\n in as a super user."
msgstr ""
-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."
+msgid "This request is hidden, so that only you the requester can see it. Please\\n <a href=\"{{url}}\">contact us</a> if you are not sure why."
msgstr ""
msgid "This request is still in progress:"
msgstr ""
+msgid "This request requires administrator attention"
+msgstr ""
+
msgid "This request was not made via {{site_name}}"
msgstr ""
-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."
+msgid "This response has been hidden. See annotations to find out why.\\n If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This table shows the technical details of the internal events that happened\\nto this request on {{site_name}}. This could be used to generate information about\\nthe speed with which authorities respond to requests, the number of requests\\nwhich require a postal response and much more."
@@ -2475,7 +2558,7 @@ msgstr ""
msgid "Unexpected search result type "
msgstr ""
-msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"%s\">contact us</a> to sort it out."
+msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"{{url}}\">contact us</a> to sort it out."
msgstr ""
msgid "Unfortunately, we do not have a working {{info_request_law_used_full}}\\naddress for"
@@ -2511,6 +2594,9 @@ msgstr ""
msgid "User info request sent alert"
msgstr ""
+msgid "User – {{name}}"
+msgstr ""
+
msgid "UserInfoRequestSentAlert|Alert type"
msgstr ""
@@ -2565,6 +2651,9 @@ msgstr ""
msgid "User|Url name"
msgstr ""
+msgid "Version {{version}}"
+msgstr ""
+
msgid "View FOI email address"
msgstr ""
@@ -2604,6 +2693,12 @@ msgstr ""
msgid "Was the response you got to your FOI request any good?"
msgstr ""
+msgid "We consider it is not a valid FOI request, and have therefore hidden it from other users."
+msgstr ""
+
+msgid "We consider it to be vexatious, and have therefore hidden it from other users."
+msgstr ""
+
msgid "We do not have a working request email address for this authority."
msgstr ""
@@ -2613,7 +2708,7 @@ msgstr ""
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=\"{{url}}\">sign in</a> and let everyone know."
msgstr ""
-msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"%s\">details</a>). "
+msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"{{url}}\">details</a>). "
msgstr ""
msgid "We will not reveal your email address to anybody unless you\\nor the law tell us to."
@@ -2655,7 +2750,7 @@ msgstr ""
msgid "When you receive the paper response, please help\\n others find out what it says:"
msgstr ""
-msgid "When you're done, <strong>come back here</strong>, <a href=\"%s\">reload this page</a> and file your new request."
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
msgstr ""
msgid "Which of these is happening?"
@@ -2757,7 +2852,7 @@ msgstr ""
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 ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "You may be able to find\\none on their website, or by phoning them up and asking. If you manage\\nto find one, then please <a href=\"{{help_url}}\">send it to us</a>."
@@ -2796,6 +2891,9 @@ msgstr ""
msgid "You will only get an answer to your request if you follow up\\nwith the clarification."
msgstr ""
+msgid "You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further."
+msgstr ""
+
msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
msgstr ""
@@ -2808,17 +2906,7 @@ msgstr ""
msgid "You've now cleared your profile photo"
msgstr ""
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
-msgstr[0] ""
-msgstr[1] ""
-
-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>."
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
msgstr ""
msgid "Your annotations"
@@ -2830,7 +2918,7 @@ msgstr ""
msgid "Your e-mail:"
msgstr ""
-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."
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
msgstr ""
msgid "Your follow up message has been sent on its way."
@@ -2854,7 +2942,7 @@ msgstr ""
msgid "Your name and annotation will appear in <strong>search engines</strong>."
msgstr ""
-msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"%s\">details</a>)."
+msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"{{url}}\">details</a>)."
msgstr ""
msgid "Your name:"
@@ -2872,6 +2960,12 @@ msgstr ""
msgid "Your photo will be shown in public <strong>on the Internet</strong>,\\n wherever you do something on {{site_name}}."
msgstr ""
+msgid "Your request '{{request}}' at {{url}} has been reviewed by moderators."
+msgstr ""
+
+msgid "Your request on {{site_name}} hidden"
+msgstr ""
+
msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
msgstr ""
@@ -2881,12 +2975,22 @@ msgstr ""
msgid "Your response to an FOI request was not delivered"
msgstr ""
-msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"%s\">read why</a> and answers to other questions."
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
msgstr ""
msgid "Your thoughts on what the {{site_name}} <strong>administrators</strong> should do about the request."
msgstr ""
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Your {{site_name}} email alert"
msgstr ""
@@ -2896,6 +3000,9 @@ msgstr ""
msgid "Yours sincerely,"
msgstr ""
+msgid "Yours,"
+msgstr ""
+
msgid "[FOI #{{request}} email]"
msgstr ""
@@ -2914,6 +3021,9 @@ msgstr ""
msgid "admin"
msgstr ""
+msgid "alaveteli_foi:The software that runs {{site_name}}"
+msgstr ""
+
msgid "all requests"
msgstr ""
@@ -2947,6 +3057,9 @@ msgstr ""
msgid "are long overdue."
msgstr ""
+msgid "at"
+msgstr ""
+
msgid "authorities"
msgstr ""
@@ -2959,6 +3072,9 @@ msgstr ""
msgid "between two dates"
msgstr ""
+msgid "but followupable"
+msgstr ""
+
msgid "by"
msgstr ""
@@ -3040,15 +3156,21 @@ msgstr ""
msgid "messages from users"
msgstr ""
+msgid "move..."
+msgstr ""
+
msgid "no later than"
msgstr ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "normally"
msgstr ""
+msgid "not requestable due to: {{reason}}"
+msgstr ""
+
msgid "please sign in as "
msgstr ""
@@ -3070,6 +3192,9 @@ msgstr ""
msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
msgstr ""
+msgid "set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA"
+msgstr ""
+
msgid "show quoted sections"
msgstr ""
@@ -3091,6 +3216,11 @@ msgstr ""
msgid "the main FOI contact address for {{public_body}}"
msgstr ""
+#. This phrase completes the following sentences:
+#. Request an internal review from...
+#. Send a public follow up message to...
+#. Send a public reply to...
+#. Don't want to address your message to... ?
msgid "the main FOI contact at {{public_body}}"
msgstr ""
@@ -3139,9 +3269,32 @@ msgstr ""
msgid "users"
msgstr ""
+msgid "what's that?"
+msgstr ""
+
msgid "{{count}} FOI requests found"
msgstr ""
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "{{count}} person is following this authority"
+msgid_plural "{{count}} people are following this authority"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
+msgstr[0] ""
+msgstr[1] ""
+
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 ""
@@ -3199,6 +3352,9 @@ msgstr ""
msgid "{{site_name}} users have made {{number_of_requests}} requests, including:"
msgstr ""
+msgid "{{thing_changed}} was changed from <code>{{from_value}}</code> to <code>{{to_value}}</code>"
+msgstr ""
+
msgid "{{title}} - a Freedom of Information request to {{public_body}}"
msgstr ""
diff --git a/locale/app.pot b/locale/app.pot
index 1b713e847..dea0b1243 100644
--- a/locale/app.pot
+++ b/locale/app.pot
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: version 0.0.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-12-18 10:11+0000\n"
+"POT-Creation-Date: 2013-05-30 09:46+0100\n"
"PO-Revision-Date: 2011-10-09 01:10+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -19,7 +19,7 @@ msgstr ""
msgid " This will appear on your {{site_name}} profile, to make it\\n easier for others to get involved with what you're doing."
msgstr ""
-msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)"
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
msgstr ""
msgid " (<strong>patience</strong>, especially for large files, it may take a while!)"
@@ -49,7 +49,7 @@ msgstr ""
msgid " Ideas on what <strong>other documents to request</strong> which the authority may hold. "
msgstr ""
-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."
+msgid " If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\\n You may be able to find the address on their website, or by phoning them up and asking."
msgstr ""
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."
@@ -88,21 +88,6 @@ msgstr ""
msgid "\"Hello! We have an <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">important message</a> for visitors outside {{country_name}}\""
msgstr ""
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "%d request"
-msgid_plural "%d requests"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "%d request made."
-msgid_plural "%d requests made."
-msgstr[0] ""
-msgstr[1] ""
-
msgid "'Crime statistics by ward level for Wales'"
msgstr ""
@@ -118,6 +103,9 @@ msgstr ""
msgid "'{{link_to_user}}', a person"
msgstr ""
+msgid "*unknown*"
+msgstr ""
+
msgid ",\\n\\n\\n\\nYours,\\n\\n{{user_name}}"
msgstr ""
@@ -133,31 +121,13 @@ msgstr ""
msgid "3. Now check your request"
msgstr ""
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
msgstr ""
-msgid "<a href=\"%s\">Are we missing a public authority?</a>"
+msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)"
msgstr ""
-msgid "<a href=\"%s\">Are you the owner of\\n any commercial copyright on this page?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
-msgstr ""
-
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
-msgstr ""
-
-msgid "<a href=\"%s\">details</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">what's that?</a>"
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
msgstr ""
msgid "<p>All done! Thank you very much for your help.</p><p>There are <a href=\"{{helpus_url}}\">more things you can do</a> to help {{site_name}}.</p>"
@@ -175,9 +145,6 @@ msgstr ""
msgid "<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>"
msgstr ""
-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 ""
-
msgid "<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>"
msgstr ""
@@ -196,10 +163,10 @@ msgstr ""
msgid "<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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 ""
-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>"
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
msgstr ""
-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>"
+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=\"{{url}}\">details</a>).</p>"
msgstr ""
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>"
@@ -214,12 +181,7 @@ msgstr ""
msgid "<small>If you use web-based email or have \"junk mail\" filters, also check your\\nbulk/spam mail folders. Sometimes, our messages are marked that way.</small>\\n</p>"
msgstr ""
-msgid "<span id='follow_count'>%d</span> person is following this authority"
-msgid_plural "<span id='follow_count'>%d</span> people are following this authority"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
+msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
msgstr ""
msgid "<strong><code>commented_by:tony_bowden</code></strong> to search annotations made by Tony Bowden, typing the name as in the URL."
@@ -273,7 +235,7 @@ msgstr ""
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 ""
-msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"%s\">click here</a>."
+msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"{{url}}\">click here</a>."
msgstr ""
msgid "<strong>Privacy note:</strong> Your photo will be shown in public on the Internet,\\n wherever you do something on {{site_name}}."
@@ -315,6 +277,9 @@ msgstr ""
msgid "A strange reponse, required attention by the {{site_name}} team"
msgstr ""
+msgid "A vexatious request"
+msgstr ""
+
msgid "A {{site_name}} user"
msgstr ""
@@ -324,6 +289,15 @@ msgstr ""
msgid "Act on what you've learnt"
msgstr ""
+msgid "Acts as xapian/acts as xapian job"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Action"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Model"
+msgstr ""
+
msgid "Add an annotation"
msgstr ""
@@ -402,10 +376,19 @@ msgstr ""
msgid "Anyone:"
msgstr ""
+msgid "Applies to"
+msgstr ""
+
+msgid "Are we missing a public authority?"
+msgstr ""
+
+msgid "Are you the owner of any commercial copyright on this page?"
+msgstr ""
+
msgid "Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries."
msgstr ""
-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>)."
+msgid "At the bottom of this page, write a reply to them trying to persuade them to scan it in\\n (<a href=\"{{url}}\">more details</a>)."
msgstr ""
msgid "Attachment (optional):"
@@ -441,6 +424,12 @@ msgstr ""
msgid "By law, {{public_body_link}} should normally have responded <strong>promptly</strong> and"
msgstr ""
+msgid "Calculated home page"
+msgstr ""
+
+msgid "Can't find the one you want?"
+msgstr ""
+
msgid "Cancel a {{site_name}} alert"
msgstr ""
@@ -606,9 +595,15 @@ msgstr ""
msgid "Date:"
msgstr ""
+msgid "Dear {{name}},"
+msgstr ""
+
msgid "Dear {{public_body_name}},"
msgstr ""
+msgid "Default locale"
+msgstr ""
+
msgid "Delayed response to your FOI request - "
msgstr ""
@@ -618,6 +613,9 @@ msgstr ""
msgid "Delivery error"
msgstr ""
+msgid "Destroy {{name}}"
+msgstr ""
+
msgid "Details of request '"
msgstr ""
@@ -630,6 +628,9 @@ msgstr ""
msgid "Disclosure log"
msgstr ""
+msgid "Disclosure log URL"
+msgstr ""
+
msgid "Don't want to address your message to {{person_or_body}}? You can also write to:"
msgstr ""
@@ -648,10 +649,10 @@ msgstr ""
msgid "EIR"
msgstr ""
-msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
+msgid "Edit"
msgstr ""
-msgid "Edit language version:"
+msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
msgstr ""
msgid "Edit text about you"
@@ -675,7 +676,7 @@ msgstr ""
msgid "Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>"
msgstr ""
-msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"%s\">contact us</a> if you need more)."
+msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"{{url}}\">contact us</a> if you need more)."
msgstr ""
msgid "Environmental Information Regulations"
@@ -693,10 +694,13 @@ msgstr ""
msgid "Event history details"
msgstr ""
-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>)."
+msgid "Event {{id}}"
msgstr ""
-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>)."
+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=\"{{url}}\">why?</a>)."
+msgstr ""
+
+msgid "Everything that you enter on this page\\n will be <strong>displayed publicly</strong> on\\n this website forever (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "FOI"
@@ -705,6 +709,9 @@ msgstr ""
msgid "FOI email address for {{public_body}}"
msgstr ""
+msgid "FOI request – {{title}}"
+msgstr ""
+
msgid "FOI requests"
msgstr ""
@@ -720,13 +727,13 @@ msgstr ""
msgid "Failed to convert image to a PNG"
msgstr ""
-msgid "Failed to convert image to the correct size: at %{cols}x%{rows}, need %{width}x%{height}"
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
msgstr ""
msgid "Filter"
msgstr ""
-msgid "First, type in the <strong>name of the UK public authority</strong> you'd \\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"%s#%s\">why?</a>)."
+msgid "First, type in the <strong>name of the UK public authority</strong> you'd\\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "Foi attachment"
@@ -807,8 +814,8 @@ msgstr ""
msgid "Forgotten your password?"
msgstr ""
-msgid "Found %d public authority %s"
-msgid_plural "Found %d public authorities %s"
+msgid "Found {{count}} public authority {{description}}"
+msgid_plural "Found {{count}} public authorities {{description}}"
msgstr[0] ""
msgstr[1] ""
@@ -845,7 +852,7 @@ msgstr ""
msgid "From"
msgstr ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "From:"
@@ -857,6 +864,18 @@ msgstr ""
msgid "Handled by post."
msgstr ""
+msgid "Has tag string/has tag string tag"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Model"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Name"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Value"
+msgstr ""
+
msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
msgstr ""
@@ -875,6 +894,9 @@ msgstr ""
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 ""
+msgid "Hide request"
+msgstr ""
+
msgid "Holiday"
msgstr ""
@@ -887,6 +909,9 @@ msgstr ""
msgid "Home"
msgstr ""
+msgid "Home page"
+msgstr ""
+
msgid "Home page of authority"
msgstr ""
@@ -935,22 +960,31 @@ msgstr ""
msgid "I've received an <strong>error message</strong>"
msgstr ""
-msgid "If the address is wrong, or you know a better address, please <a href=\"%s\">contact us</a>."
+msgid "I've received an error message"
+msgstr ""
+
+msgid "Id"
+msgstr ""
+
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
+msgstr ""
+
+msgid "If the error was a delivery failure, and you can find an up to date FOI email address for the authority, please tell us using the form below."
msgstr ""
msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
msgstr ""
-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>)."
+msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"{{url}}\">details</a>)."
msgstr ""
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
+msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
-msgid "If you are the requester, then you may <a href=\"%s\">sign in</a> to view the request."
+msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request."
msgstr ""
-msgid "If you are thinking of using a pseudonym,\\n please <a href=\"%s\">read this first</a>."
+msgid "If you are thinking of using a pseudonym,\\n please <a href=\"{{url}}\">read this first</a>."
msgstr ""
msgid "If you are {{user_link}}, please"
@@ -992,6 +1026,9 @@ msgstr ""
msgid "If your browser is set to accept cookies and you are seeing this message,\\nthen there is probably a fault with our server."
msgstr ""
+msgid "Incoming email address"
+msgstr ""
+
msgid "Incoming message"
msgstr ""
@@ -1106,13 +1143,19 @@ msgstr ""
msgid "Items matching the following conditions are currently displayed on your wall."
msgstr ""
+msgid "Items sent in last month"
+msgstr ""
+
msgid "Joined in"
msgstr ""
msgid "Joined {{site_name}} in"
msgstr ""
-msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)."
+msgid "Just one more thing"
+msgstr ""
+
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "Keywords"
@@ -1130,9 +1173,27 @@ msgstr ""
msgid "Link to this"
msgstr ""
+msgid "List all"
+msgstr ""
+
msgid "List of all authorities (CSV)"
msgstr ""
+msgid "Listing FOI requests"
+msgstr ""
+
+msgid "Listing public authorities"
+msgstr ""
+
+msgid "Listing public authorities matching '{{query}}'"
+msgstr ""
+
+msgid "Listing tracks"
+msgstr ""
+
+msgid "Listing users"
+msgstr ""
+
msgid "Log in to download a zip file of {{info_request_title}}"
msgstr ""
@@ -1229,6 +1290,9 @@ msgstr ""
msgid "New Freedom of Information requests"
msgstr ""
+msgid "New censor rule"
+msgstr ""
+
msgid "New e-mail:"
msgstr ""
@@ -1274,6 +1338,9 @@ msgstr ""
msgid "No similar requests found."
msgstr ""
+msgid "No tracked things found."
+msgstr ""
+
msgid "Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet."
msgstr ""
@@ -1283,6 +1350,9 @@ msgstr ""
msgid "None made."
msgstr ""
+msgid "Not a valid FOI request"
+msgstr ""
+
msgid "Note that the requester will not be notified about your annotation, because the request was published by {{public_body_name}} on their behalf."
msgstr ""
@@ -1328,6 +1398,9 @@ msgstr ""
msgid "One public authority found"
msgstr ""
+msgid "Only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL – don't worry about breaking URLs through renaming, as the history is used to redirect"
+msgstr ""
+
msgid "Only requests made using {{site_name}} are shown."
msgstr ""
@@ -1400,7 +1473,7 @@ msgstr ""
msgid "Please"
msgstr ""
-msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
msgstr ""
msgid "Please <strong>answer the question above</strong> so we know whether the "
@@ -1505,7 +1578,7 @@ msgstr ""
msgid "Please select each of these requests in turn, and <strong>let everyone know</strong>\\nif they are successful yet or not."
msgstr ""
-msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature"
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
msgstr ""
msgid "Please sign in as "
@@ -1517,9 +1590,6 @@ msgstr ""
msgid "Please type a message and/or choose a file containing your response."
msgstr ""
-msgid "Please use the form below to tell us more."
-msgstr ""
-
msgid "Please use this email address for all replies to this request:"
msgstr ""
@@ -1610,37 +1680,19 @@ msgstr ""
msgid "Public authorities {{start_count}} to {{end_count}} of {{total_count}}"
msgstr ""
-msgid "Public body"
-msgstr ""
-
-msgid "Public body/translation"
-msgstr ""
-
-msgid "PublicBody::Translation|Disclosure log"
-msgstr ""
-
-msgid "PublicBody::Translation|First letter"
-msgstr ""
-
-msgid "PublicBody::Translation|Locale"
-msgstr ""
-
-msgid "PublicBody::Translation|Name"
+msgid "Public authority – {{name}}"
msgstr ""
-msgid "PublicBody::Translation|Notes"
-msgstr ""
-
-msgid "PublicBody::Translation|Publication scheme"
+msgid "Public body"
msgstr ""
-msgid "PublicBody::Translation|Request email"
+msgid "Public notes"
msgstr ""
-msgid "PublicBody::Translation|Short name"
+msgid "Public page"
msgstr ""
-msgid "PublicBody::Translation|Url name"
+msgid "Public page not available"
msgstr ""
msgid "PublicBody|Api key"
@@ -1688,6 +1740,9 @@ msgstr ""
msgid "Publication scheme"
msgstr ""
+msgid "Publication scheme URL"
+msgstr ""
+
msgid "Purge request"
msgstr ""
@@ -1745,6 +1800,9 @@ msgstr ""
msgid "Request an internal review from {{person_or_body}}"
msgstr ""
+msgid "Request email"
+msgstr ""
+
msgid "Request has been removed"
msgstr ""
@@ -1835,14 +1893,17 @@ msgstr ""
msgid "Search the site to find what you were looking for."
msgstr ""
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests made to {{public_body_name}}"
msgstr[0] ""
msgstr[1] ""
msgid "Search your contributions"
msgstr ""
+msgid "See bounce message"
+msgstr ""
+
msgid "Select one to see more information about the authority."
msgstr ""
@@ -1876,6 +1937,9 @@ msgstr ""
msgid "Set your profile photo"
msgstr ""
+msgid "Short name"
+msgstr ""
+
msgid "Short name is already taken"
msgstr ""
@@ -1969,6 +2033,9 @@ msgstr ""
msgid "Submit status"
msgstr ""
+msgid "Submit status and send message"
+msgstr ""
+
msgid "Subscribe to blog"
msgstr ""
@@ -1990,6 +2057,9 @@ msgstr ""
msgid "Table of varieties"
msgstr ""
+msgid "Tags"
+msgstr ""
+
msgid "Tags (separated by a space):"
msgstr ""
@@ -2017,6 +2087,9 @@ msgstr ""
msgid "Thank you for updating your profile photo"
msgstr ""
+msgid "Thank you! We'll look into what happened and try and fix it up."
+msgstr ""
+
msgid "Thanks for helping - your work will make it easier for everyone to find successful\\nresponses, and maybe even let us make league tables..."
msgstr ""
@@ -2086,16 +2159,16 @@ msgstr ""
msgid "The request was refused by the public authority"
msgstr ""
-msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"%s\">contact us</a> if you have any questions."
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
msgstr ""
msgid "The requester has abandoned this request for some reason"
msgstr ""
-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"
+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 ""
-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"
+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 ""
msgid "The search index is currently offline, so we can't show the Freedom of Information requests that have been made to this authority."
@@ -2104,6 +2177,9 @@ msgstr ""
msgid "The search index is currently offline, so we can't show the Freedom of Information requests this person has made."
msgstr ""
+msgid "The {{site_name}} team."
+msgstr ""
+
msgid "Then you can cancel the alert."
msgstr ""
@@ -2179,17 +2255,17 @@ msgstr ""
msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
msgstr ""
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
-msgstr[0] ""
-msgstr[1] ""
-
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 ""
msgid "There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>."
msgstr ""
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "There was a <strong>delivery error</strong> or similar, which needs fixing by the {{site_name}} team."
msgstr ""
@@ -2226,7 +2302,7 @@ msgstr ""
msgid "This authority no longer exists, so you cannot make a request to it."
msgstr ""
-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."
+msgid "This comment has been hidden. See annotations to\\n find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This covers a very wide spectrum of information about the state of\\n the <strong>natural and built environment</strong>, such as:"
@@ -2244,10 +2320,13 @@ msgstr ""
msgid "This is because {{title}} is an old request that has been\\nmarked to no longer receive responses."
msgstr ""
+msgid "This is the first version."
+msgstr ""
+
msgid "This is your own request, so you will be automatically emailed when new responses arrive."
msgstr ""
-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."
+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=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This particular request is finished:"
@@ -2256,19 +2335,19 @@ msgstr ""
msgid "This person has made no Freedom of Information requests using this site."
msgstr ""
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
+msgid "This person's annotations"
+msgstr ""
+
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
msgstr[0] ""
msgstr[1] ""
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
msgstr[0] ""
msgstr[1] ""
-msgid "This person's annotations"
-msgstr ""
-
msgid "This request <strong>requires administrator attention</strong>"
msgstr ""
@@ -2290,7 +2369,7 @@ msgstr ""
msgid "This request has been <strong>withdrawn</strong> by the person who made it.\\n There may be an explanation in the correspondence below."
msgstr ""
-msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"%s\">contact us</a>."
+msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
msgid "This request has been reported for administrator attention"
@@ -2305,16 +2384,19 @@ msgstr ""
msgid "This request has prominence 'hidden'. You can only see it because you are logged\\n in as a super user."
msgstr ""
-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."
+msgid "This request is hidden, so that only you the requester can see it. Please\\n <a href=\"{{url}}\">contact us</a> if you are not sure why."
msgstr ""
msgid "This request is still in progress:"
msgstr ""
+msgid "This request requires administrator attention"
+msgstr ""
+
msgid "This request was not made via {{site_name}}"
msgstr ""
-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."
+msgid "This response has been hidden. See annotations to find out why.\\n If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This table shows the technical details of the internal events that happened\\nto this request on {{site_name}}. This could be used to generate information about\\nthe speed with which authorities respond to requests, the number of requests\\nwhich require a postal response and much more."
@@ -2473,7 +2555,7 @@ msgstr ""
msgid "Unexpected search result type "
msgstr ""
-msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"%s\">contact us</a> to sort it out."
+msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"{{url}}\">contact us</a> to sort it out."
msgstr ""
msgid "Unfortunately, we do not have a working {{info_request_law_used_full}}\\naddress for"
@@ -2509,6 +2591,9 @@ msgstr ""
msgid "User info request sent alert"
msgstr ""
+msgid "User – {{name}}"
+msgstr ""
+
msgid "UserInfoRequestSentAlert|Alert type"
msgstr ""
@@ -2563,6 +2648,9 @@ msgstr ""
msgid "User|Url name"
msgstr ""
+msgid "Version {{version}}"
+msgstr ""
+
msgid "View FOI email address"
msgstr ""
@@ -2602,6 +2690,12 @@ msgstr ""
msgid "Was the response you got to your FOI request any good?"
msgstr ""
+msgid "We consider it is not a valid FOI request, and have therefore hidden it from other users."
+msgstr ""
+
+msgid "We consider it to be vexatious, and have therefore hidden it from other users."
+msgstr ""
+
msgid "We do not have a working request email address for this authority."
msgstr ""
@@ -2611,7 +2705,7 @@ msgstr ""
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=\"{{url}}\">sign in</a> and let everyone know."
msgstr ""
-msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"%s\">details</a>). "
+msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"{{url}}\">details</a>). "
msgstr ""
msgid "We will not reveal your email address to anybody unless you\\nor the law tell us to."
@@ -2653,7 +2747,7 @@ msgstr ""
msgid "When you receive the paper response, please help\\n others find out what it says:"
msgstr ""
-msgid "When you're done, <strong>come back here</strong>, <a href=\"%s\">reload this page</a> and file your new request."
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
msgstr ""
msgid "Which of these is happening?"
@@ -2755,7 +2849,7 @@ msgstr ""
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 ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "You may be able to find\\none on their website, or by phoning them up and asking. If you manage\\nto find one, then please <a href=\"{{help_url}}\">send it to us</a>."
@@ -2794,6 +2888,9 @@ msgstr ""
msgid "You will only get an answer to your request if you follow up\\nwith the clarification."
msgstr ""
+msgid "You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further."
+msgstr ""
+
msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
msgstr ""
@@ -2806,17 +2903,7 @@ msgstr ""
msgid "You've now cleared your profile photo"
msgstr ""
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
-msgstr[0] ""
-msgstr[1] ""
-
-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>."
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
msgstr ""
msgid "Your annotations"
@@ -2828,7 +2915,7 @@ msgstr ""
msgid "Your e-mail:"
msgstr ""
-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."
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
msgstr ""
msgid "Your follow up message has been sent on its way."
@@ -2852,7 +2939,7 @@ msgstr ""
msgid "Your name and annotation will appear in <strong>search engines</strong>."
msgstr ""
-msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"%s\">details</a>)."
+msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"{{url}}\">details</a>)."
msgstr ""
msgid "Your name:"
@@ -2870,6 +2957,12 @@ msgstr ""
msgid "Your photo will be shown in public <strong>on the Internet</strong>,\\n wherever you do something on {{site_name}}."
msgstr ""
+msgid "Your request '{{request}}' at {{url}} has been reviewed by moderators."
+msgstr ""
+
+msgid "Your request on {{site_name}} hidden"
+msgstr ""
+
msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
msgstr ""
@@ -2879,12 +2972,22 @@ msgstr ""
msgid "Your response to an FOI request was not delivered"
msgstr ""
-msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"%s\">read why</a> and answers to other questions."
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
msgstr ""
msgid "Your thoughts on what the {{site_name}} <strong>administrators</strong> should do about the request."
msgstr ""
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Your {{site_name}} email alert"
msgstr ""
@@ -2894,6 +2997,9 @@ msgstr ""
msgid "Yours sincerely,"
msgstr ""
+msgid "Yours,"
+msgstr ""
+
msgid "[FOI #{{request}} email]"
msgstr ""
@@ -2912,6 +3018,9 @@ msgstr ""
msgid "admin"
msgstr ""
+msgid "alaveteli_foi:The software that runs {{site_name}}"
+msgstr ""
+
msgid "all requests"
msgstr ""
@@ -2945,6 +3054,9 @@ msgstr ""
msgid "are long overdue."
msgstr ""
+msgid "at"
+msgstr ""
+
msgid "authorities"
msgstr ""
@@ -2957,6 +3069,9 @@ msgstr ""
msgid "between two dates"
msgstr ""
+msgid "but followupable"
+msgstr ""
+
msgid "by"
msgstr ""
@@ -3038,15 +3153,21 @@ msgstr ""
msgid "messages from users"
msgstr ""
+msgid "move..."
+msgstr ""
+
msgid "no later than"
msgstr ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "normally"
msgstr ""
+msgid "not requestable due to: {{reason}}"
+msgstr ""
+
msgid "please sign in as "
msgstr ""
@@ -3068,6 +3189,9 @@ msgstr ""
msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
msgstr ""
+msgid "set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA"
+msgstr ""
+
msgid "show quoted sections"
msgstr ""
@@ -3089,6 +3213,11 @@ msgstr ""
msgid "the main FOI contact address for {{public_body}}"
msgstr ""
+#. This phrase completes the following sentences:
+#. Request an internal review from...
+#. Send a public follow up message to...
+#. Send a public reply to...
+#. Don't want to address your message to... ?
msgid "the main FOI contact at {{public_body}}"
msgstr ""
@@ -3137,9 +3266,32 @@ msgstr ""
msgid "users"
msgstr ""
+msgid "what's that?"
+msgstr ""
+
msgid "{{count}} FOI requests found"
msgstr ""
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "{{count}} person is following this authority"
+msgid_plural "{{count}} people are following this authority"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
+msgstr[0] ""
+msgstr[1] ""
+
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 ""
@@ -3197,6 +3349,9 @@ msgstr ""
msgid "{{site_name}} users have made {{number_of_requests}} requests, including:"
msgstr ""
+msgid "{{thing_changed}} was changed from <code>{{from_value}}</code> to <code>{{to_value}}</code>"
+msgstr ""
+
msgid "{{title}} - a Freedom of Information request to {{public_body}}"
msgstr ""
diff --git a/locale/ar/app.po b/locale/ar/app.po
index 660b919b4..ce851db06 100644
--- a/locale/ar/app.po
+++ b/locale/ar/app.po
@@ -3,15 +3,19 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# <aelharaty@gmail.com>, 2012.
+# aelharaty <aelharaty@gmail.com>, 2012
+# radproject <radhouanef@gmail.com>, 2013
+# radproject <radhouanef@gmail.com>, 2013
+# <rwiwina@live.fr>, 2013
+# <sana_bj@live.fr>, 2013
msgid ""
msgstr ""
"Project-Id-Version: alaveteli\n"
"Report-Msgid-Bugs-To: http://github.com/sebbacon/alaveteli/issues\n"
-"POT-Creation-Date: 2012-12-18 10:11+0000\n"
-"PO-Revision-Date: 2012-12-25 21:20+0000\n"
-"Last-Translator: aelharaty <aelharaty@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"POT-Creation-Date: 2013-05-30 09:46+0100\n"
+"PO-Revision-Date: 2013-05-30 08:54+0000\n"
+"Last-Translator: louisecrow <louise@mysociety.org>\n"
+"Language-Team: Arabic (http://www.transifex.com/projects/p/alaveteli/language/ar/)\n"
"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -19,814 +23,805 @@ msgstr ""
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
msgid " This will appear on your {{site_name}} profile, to make it\\n easier for others to get involved with what you're doing."
-msgstr ""
+msgstr "هذا سوف يظهر على حسابك {{site_name}} ، لتمكين الأخرين من المشاركة"
-msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)"
-msgstr "(<strong>no ranty</strong>السياسة، وقراءة لدينا<a href=%s>الاعتدال سياسة</a>"
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
+msgstr "(<strong>no ranty</strong>السياسة، وقراءة لدينا<a href={{url}}>الاعتدال سياسة</a>"
msgid " (<strong>patience</strong>, especially for large files, it may take a while!)"
-msgstr "<STRONG> الصبر</STRONG>، وخاصة بالنسبة للملفات كبيرة، قد يستغرق بعض الوقت!)"
+msgstr " (<strong>رجاء الانتظار</strong>, خصوصا بالنسبة للملفات الكبيرة, قد يستغرق هذا وقتا!)"
msgid " (you)"
-msgstr "(أنت)"
+msgstr " ( أنت )"
msgid " - view and make Freedom of Information requests"
-msgstr "- عرض وتقديم طلبات حرية المعلومات"
+msgstr "اطلع و قدم طلبات حق النفاذ إلى المعلومة"
msgid " - wall"
-msgstr ""
+msgstr "حائط-"
msgid " <strong>Note:</strong>\\n We will send you an email. Follow the instructions in it to change\\n your password."
-msgstr ""
+msgstr " <strong>ملاحظة:</strong>\\n سوف نمدكم برسالة إلكترونية. قوموا باتباع الإرشادات الموجودة لتتمكنوا من تغير\\n كلمة السر."
msgid " <strong>Privacy note:</strong> Your email address will be given to"
-msgstr "<strong> ملاحظة الخصوصية: </ STRONG> وستعطى عنوان بريدك الإلكتروني لل"
+msgstr " <strong/> ملاحظة حول الخصوصية :<strong> عنوان بريدكم الإلكتروني سيكون ضاهراً ل"
msgid " <strong>Summarise</strong> the content of any information returned. "
-msgstr "<strong>تلخيص على </STRONG> من أي محتوى المعلومات التي تم إرجاعها."
+msgstr " <strong>لخص </strong> مضمون أي معلومة تم إرجاعها. "
msgid " Advise on how to <strong>best clarify</strong> the request."
-msgstr "ننصح كيفية<strong> توضيح أفضل على </STRONG> الطلب."
+msgstr " Advise on how to <strong>best clarify</strong> the request."
msgid " Ideas on what <strong>other documents to request</strong> which the authority may hold. "
-msgstr "أفكار حول ما يجب طلب وثائق أخرى على <strong> </STRONG> التي قد تعقد السلطة."
+msgstr " فكرة عن <strong>وثائق أخرى يمكن طلبها <strong/> و التي قد تحجبها السلطات. "
-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."
+msgid " If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\\n You may be able to find the address on their website, or by phoning them up and asking."
msgstr ""
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 ""
+msgstr "تضمين روابط ذات صلة مثل صفحة الحملة،المدوّنةأو صفحة التّويتر. تصبح هذه الروابط متاحة للجميع."
msgid " Link to the information requested, if it is <strong>already available</strong> on the Internet. "
-msgstr "طلب رابط للمعلومات، إذا كان </strong>على شبكة الإنترنت."
+msgstr "قوموا بالربط إلى المعلومة المطلوبة, إذا كانت<strong>موجودة مسبقاً</strong>على شبكة الأنترنات. "
msgid " Offer better ways of <strong>wording the request</strong> to get the information. "
-msgstr "تقديم أفضل طرق<strong>صيغة الطلب </strong>على المعلومات."
+msgstr "قدموا أفضل <strong>صيغة لآلطّلب</strong>من أجل الحصول على المعلومة. "
msgid " Say how you've <strong>used the information</strong>, with links if possible."
-msgstr "يقول كيف كنت قد<strong>استخدمت المعلومات</strong>,الروابط إذا كان ذلك ممكنا."
+msgstr " اذكروا كيفية <strong>استخدامكم للمعلومات</strong>,مع وضع روابط إن أمكن ."
msgid " Suggest <strong>where else</strong> the requester might find the information. "
-msgstr ""
+msgstr " قوموا باقتراح <strong>مكان اخر</strong>أين يمكن لصاحب الطلب أن يجد المعلومة. "
msgid " What are you investigating using Freedom of Information? "
-msgstr "ما الذي تستخدمه حرية المعلومات التحقيق؟"
+msgstr " في ماذا تحقق باستخدام حق الحصول على المعلومة?"
msgid " You are already being emailed updates about the request."
-msgstr "يجري بالفعل عبر البريد الالكتروني التحديثات حول الطلب."
+msgstr " يجري حصولكم على رسالةٍ إلكترونية تتضمن مستجدات متعلقة بطلبكم."
msgid " You will also be emailed updates about the request."
-msgstr "وسوف تكون عبر البريد الالكتروني لك تحديثات عن الطلب."
+msgstr "سنمدكم أيضاً برسالةٍ إلكترونية تتضمن مستجدات متعلقة بطلبكم."
msgid " made by "
-msgstr "أدلى به"
+msgstr "قام به"
msgid " or "
-msgstr "أو"
+msgstr " أو"
msgid " when you send this message."
-msgstr "عند إرسال هذه الرسالة."
+msgstr " عندما تقومون ببعث هذه الرسالة ."
msgid "\"Hello! We have an <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">important message</a> for visitors outside {{country_name}}\""
-msgstr ""
-
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
-
-msgid "%d request"
-msgid_plural "%d requests"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
-
-msgid "%d request made."
-msgid_plural "%d requests made."
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
+msgstr "\"مرحباً! لدينا <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">رسالة هامة</a> لالزائرين من خارج {{country_name}}\""
msgid "'Crime statistics by ward level for Wales'"
-msgstr "'إحصاءات الجريمة حسب مستوى جناح في ويلز'"
+msgstr "إحصائيات الجريمة ب\"ويلز\" حسب مقياس \"وارد\" التفاضلي "
msgid "'Pollution levels over time for the River Tyne'"
-msgstr "\"مستويات التلوث مع مرور الوقت لنهر تاين\""
+msgstr "تطور درجة تلوث نهر التاين عبر الزمن "
msgid "'{{link_to_authority}}', a public authority"
-msgstr " '{{link_to_authority}}',سلطة عامة"
+msgstr "'{{link_to_authority}}', سلطة عامة"
msgid "'{{link_to_request}}', a request"
-msgstr "'{{link_to_request}}'"
+msgstr "'{{link_to_request}}', طلب"
msgid "'{{link_to_user}}', a person"
+msgstr "'{{link_to_user}}', شخص"
+
+msgid "*unknown*"
msgstr ""
msgid ",\\n\\n\\n\\nYours,\\n\\n{{user_name}}"
-msgstr ""
+msgstr ",\\n\\n\\n\\nتحياتي,\\n\\n{{user_name}}"
msgid "- or -"
-msgstr "- أو -"
+msgstr "-أو-"
msgid "1. Select an authority"
-msgstr "1. حدد سلطة"
+msgstr "1. حدد سلطة "
msgid "2. Ask for Information"
-msgstr ""
+msgstr "2. اطلبوا المعلومة"
msgid "3. Now check your request"
-msgstr ""
-
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
-msgstr ""
+msgstr "3. تحققوا الان من طلبكم"
-msgid "<a href=\"%s\">Are we missing a public authority?</a>"
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
msgstr ""
-msgid "<a href=\"%s\">Are you the owner of\\n any commercial copyright on this page?</a>"
+msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)"
msgstr ""
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
-msgstr ""
-
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
-msgstr ""
-
-msgid "<a href=\"%s\">details</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">what's that?</a>"
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
msgstr ""
msgid "<p>All done! Thank you very much for your help.</p><p>There are <a href=\"{{helpus_url}}\">more things you can do</a> to help {{site_name}}.</p>"
-msgstr ""
+msgstr "<p>انتهينا! شكراً جزيلاً على المساعدة.</p><p>هنالك <a href=\"{{helpus_url}}\">مزيدٌ من الأشياء التي يمكنكم القيام بها</a> لمساعدة {{site_name}}.</p>"
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=\"{{find_authority_url}}\">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=\"{{complain_url}}\">how to complain</a>.\\n </li>\\n <li>We have <a href=\"{{other_means_url}}\">suggestions</a>\\n on other means to answer your question.\\n </li>\\n </ul>"
-msgstr ""
+msgstr "<p>شكراً لكم! هذه بعض الأفكار حول ما يمكن القيام به لاحقاً:</p>\\n <ul>\\n <li>لكي يتم بعث رسالتكم إلى مؤسسة أخرى،أولاً وجب نسخ نص طلبكم أدناه، ثم <a href=\"{{find_authority_url}}\">البحث عن هذه المؤسسة</a>.</li>\\n <li>إذا كانت لديكم إعتراضات حول مزاعم المؤسسة عدم حجبها للمعلومة، إضغط على هذا الرابط\\n <a href=\"{{complain_url}}\">للتقدم بشكوى</a>.\\n </li>\\n <li>لدينا <a href=\"{{other_means_url}}\">إقتراحات</a>\\n للإجابة عن سؤالكم بوسائلٍ أخرى.\\n </li>\\n </ul>"
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 ""
+msgstr "<p>شكراً لكم! نتمنى أن لا يطول انتظاركم.</p> <p>By law, you should have got a response promptly, and normally before the end of <strong>{{date_response_required_by}}</strong>.</p>"
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 ""
+msgstr "<p> </ P> <p> حسب مايمليه القانون،سيصلك الرد في اقرب الآجال، ومن المفروض أن لايتجاوز ذلك تاريخ <strong> \\ N {{}} date_response_required_by </ STRONG> </ P >"
msgid "<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>"
-msgstr ""
-
-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 "<p> وشكرا لكم! سوف نبحث في ما حدث ومحاولة حل هذا الامر. <p></P> وإذا كان خطأ كان فاشلا التسليم، ويمكنك العثور على ما يصل إلى عنوان البريد الإلكتروني حتى الآن للسلطة الشهود، من فضلك قل لنا باستخدام استمارة أدناه. </P>"
+msgstr "<p>شكرا لك! نأمل أن انتظارك لم يطل.</p><p>يجب أن يصلك رد خلال {{late_number_of_days}} يوما،و سيتم اعلامك ان كان الأمر سيسنغرق وقتا أطول(<a href=\"{{review_url}}\">details</a>).</p>"
msgid "<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>"
-msgstr ""
+msgstr "<p>شكرا لك! طلبك متاخرا جدا, باكثر من{{very_late_number_of_days}}يوم عمل. يجب ان يتم الرد على اغلب المطالب في حدود {{late_number_of_days}} يوم عمل. اذا كنت ترغب في الاعتراض على ذلك ,انظر اسفله .</p>"
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 ""
+msgstr "<p>شكرا لتغيير النص الذي يصفك على حسابك .</p>\\n <p><strong>التالي...</strong>بامكانك تحميل صورة حساب ايضا.</p>"
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 ""
+msgstr "<p>شكرا لتحيينك صورة حسابك.</p>\\n <p><strong>التالي...</strong>بامكانك اضافة نص حولك و حول بحثك على حسابك .<pl>"
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 ""
+msgstr "<نوصيك بتغيير طلبك و ازالة عنوان البريد الالكترونيaddress.\\n اذا قمت بتركه, سيقع ارسال البريد الالكتروني الى السلطة, لكن لن يتم عرضه على الموقع.</p>"
msgid "<p>We're glad you got all the information that you wanted. If you write about or make use of the information, please come back and add an annotation below saying what you did.</p><p>If you found {{site_name}} useful, <a href=\"{{donation_url}}\">make a donation</a> to the charity which runs it.</p>"
-msgstr ""
+msgstr "<p>نحن سعيدون لحصولك على كل المعلومات التي كنت ترغب في الحصول عليها. عندما تستفيد من المعلومة او تكتب حولها الرجاء العودة لترك ملحوظة اسفله تذكر ما فعلت/p><p>اذا وجدت {{site_name}} useful, <a href=\"{{donation_url}}\">تبرع</a>للمؤسسة الخيرية التي تديرها it.</p>"
msgid "<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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 ""
+msgstr "<p>سعيدون لحصولك على المعلومات التي اردت. اذا وجدتها {{site_name}} مفيدة, <a href=\"{{donation_url}}\">تبرع</a> للمؤسسة الخيرية التي تديرها it.</p><p>اذا اردت ان تجرب و تحصل على بقية المعلومات , تجد ما عليك فعله الان هنا.</p>"
-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>"
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
msgstr ""
-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>"
+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=\"{{url}}\">details</a>).</p>"
msgstr ""
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 ""
+msgstr "<p>طلبك يحتوي على <strong>رمز بريدي</strong>.الرجاء ازالة كل عنوان الا اذا كان متعلقا مباشرة بموضوع طلبك لانه <strong>سيظهر علنياعلى الانترنات </strong>.</p>"
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 {{late_number_of_days}} 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 ""
+msgstr "<p> {{law_used_full}}وقع ارسال طلبك <strong> way</strong>!</p>\\n <p><strong>سنرسل لك رسالة الكترونية</strong> عندما يكون هناك رد, او بعد {{late_number_of_days}} يوم عمل ان لم تكن السلطة قد اجابت hasn't\\n الى ذلك الوفت .</p>\\n <p>اذا كتبت حول هذا الطلب (مثلا على منتدى او مدونة ) يرجى وضع رابط هذه الصفحة, و اضافة\\شرح اسفله يخبر الناس عن كنابتك.</p>"
msgid "<p>{{site_name}} is currently in maintenance. You can only view existing requests. You cannot make new ones, add followups or annotations, or otherwise change the database.</p> <p>{{read_only}}</p>"
-msgstr "<p>{{site_name}}حاليا في الصيانة. يمكنك فقط عرض طلبات موجودة. لا يمكنك تكوين صداقات جديدة، أو إضافة التعليقات التوضيحية المتابعات، أو غير ذلك تغيير قاعدة البيانات..</p> <p>{{read_only}}</p>"
+msgstr "<p>{{site_name}} في صيانة حاليا.بامكانك الاطلاع على الطلبات الموجودة فقط.ليس بامكانك تقديم طلبات جدبدة, او ااضافة متابعات او ملاحظات, و الا تغيير قاعدة البيانات.</p> <p>{{read_only}}</p>"
msgid "<small>If you use web-based email or have \"junk mail\" filters, also check your\\nbulk/spam mail folders. Sometimes, our messages are marked that way.</small>\\n</p>"
-msgstr ""
+msgstr "<small>ان كنت تستعمل بريدا الكترونيا يستند الى الواب او محدد \"الرسائل الالكترونية غير المرغوب فيها\" , تثبت من\\nbulk/هذه الملفات. , رسائلنا قد نصنف كبريد الكتروني غير مرغوب فيه احيانا .</small>\\n</p>"
-msgid "<span id='follow_count'>%d</span> person is following this authority"
-msgid_plural "<span id='follow_count'>%d</span> people are following this authority"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
-
-msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
+msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
msgstr ""
msgid "<strong><code>commented_by:tony_bowden</code></strong> to search annotations made by Tony Bowden, typing the name as in the URL."
-msgstr "<strong><code>commented_by:tony_bowden</code></strong>للبحث الشروح التي أدلى بها توني بودين، وكتابة الاسم في عنوان URL لك."
+msgstr "<strong><code>تم التعليق عليه من قبل_:طوني_باودن</code></strong>للبحث عن ملاحظات طوني باودن, ادخل الاسم كما في عنوان الموقع."
msgid "<strong><code>filetype:pdf</code></strong> to find all responses with PDF attachments. Or try these: <code>{{list_of_file_extensions}}</code>"
-msgstr "<strong><code>filetype:pdf</code></strong>للعثور على كافة الردود مع المرفقات PDF. أو محاولة الرسالة: <code>{{list_of_file_extensions}}</code>"
+msgstr "<strong><code>نوعية الملف:pdf</code></strong>لايجاد كل الاجابات مرفوقة بملف PDF . او جرب <code>{{list_of_file_extensions}}</code>"
msgid "<strong><code>request:</code></strong> to restrict to a specific request, typing the title as in the URL."
-msgstr ""
+msgstr "<strong><code>الطلب:</code></strong> لتضييق مجال البحث, أدخل العنوان كما ورد في عنوان الموقع."
msgid "<strong><code>requested_by:julian_todd</code></strong> to search requests made by Julian Todd, typing the name as in the URL."
-msgstr ""
+msgstr "<strong><code>وقع الطلب من قبل_:جوليان_طود</code></strong> لايجاد بحوث جوليان طود, ادخل الاسم كما في عنوان الموقع."
msgid "<strong><code>requested_from:home_office</code></strong> to search requests from the Home Office, typing the name as in the URL."
-msgstr ""
+msgstr "<strong><code>وقع طلبه_من:الصفحة_الرئيسية</code></strong> لايجاد الطلبات من الصفحة الرئيسية , أدخل الاسم كما في الموقع ."
msgid "<strong><code>status:</code></strong> to select based on the status or historical status of the request, see the <a href=\"{{statuses_url}}\">table of statuses</a> below."
-msgstr ""
+msgstr "<strong><code>الحالة:</code></strong>للاختيار استنادا على لحالة او تاريخ الطلب, انظر <a href=\"{{statuses_url}}\"> لائحة الاختيارات</a> أسفله."
msgid "<strong><code>tag:charity</code></strong> to find all public authorities 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 ""
+msgstr "<strong><code>الفئة:عمل خيري</code></strong> لايجاد كل السلط العمومية او الطلبات المحددة بفئة. بامكانك اختيار عدة فئات, \\n تفاضليا, e.g. <code>الفئة:محلي AND الفئة:معاملات_مالية:335633</code>. تذكر ان كل الفئات ستكون موجودة \\n اليا, عليك ان تتاكد من وضع <code>AND</code> اذا كنت تريد الحصول على كل النتائج."
msgid "<strong><code>variety:</code></strong> to select type of thing to search for, see the <a href=\"{{varieties_url}}\">table of varieties</a> below."
-msgstr ""
+msgstr "<strong><code>variety:</code></strong> لاختيار موضوع البحث , انظر <a href=\"{{varieties_url}}\">لائحة الاختيارات</a> اسفله."
msgid "<strong>Advice</strong> on how to get a response that will satisfy the requester. </li>"
-msgstr ""
+msgstr "<strong>نصيحة</strong>حول كيفية تمكين صاحب الطلب من إجابةٍ شافية. </li>"
msgid "<strong>All the information</strong> has been sent"
-msgstr ""
+msgstr "<strong>كل المعلومات</strong>قد تم ارسالها"
msgid "<strong>Anything else</strong>, such as clarifying, prompting, thanking"
-msgstr ""
+msgstr "<strong>أي شيء آخر</strong>,كالتوضيح، الاستفسار، الشكر"
msgid "<strong>Caveat emptor!</strong> To use this data in an honourable way, you will need \\na good internal knowledge of user behaviour on {{site_name}}. How, \\nwhy and by whom requests are categorised is not straightforward, and there will\\nbe user error and ambiguity. You will also need to understand FOI law, and the\\nway authorities use it. Plus you'll need to be an elite statistician. Please\\n<a href=\"{{contact_path}}\">contact us</a> with questions."
-msgstr ""
+msgstr "<strong>Caveat emptor!</strong>لاستعمال هذه البيانات بدون اساءة, ستحتاج \\na الى الاطلاع جيدا على سلوك مستعملي هذا الموقع على {{site_name}}. كيف, \\nلماذا و من قبل من تم تصنيف الطلبات ليس دقيقا, سيكون\\nهنالك اخطاء من قبل المستعمل و بعض الالتباس. عليك ان تفهم كذلك قانون حرية النفاذ الى المعلومة, و\\nطريقة استعمال السلطات لها. كما ستحتاج ان تكون خبيرا في الاحصاء. يرجى\\n<a href=\"{{contact_path}}\">الاتصال بنا</a> للاستفسار."
msgid "<strong>Clarification</strong> has been requested"
-msgstr ""
+msgstr "<strong>توضيح</strong> وقع الطلب"
msgid "<strong>No response</strong> has been received\\n <small>(maybe there's just an acknowledgement)</small>"
-msgstr ""
+msgstr "<strong>لم يقع تلقي اي طلب</strong> \\n <small>(قد يوجد اشعار استلام فحسب)</small>"
msgid "<strong>Note:</strong> Because we're testing, requests are being sent to {{email}} rather than to the actual authority."
-msgstr ""
+msgstr "<strong>ملاحظة:</strong> نظراً لكوننا في مرحلة التجارب، يفضّل إرسال المطالب إلى {{email}}على ارسالها للمؤسسة الحالية."
msgid "<strong>Note:</strong> You're sending a message to yourself, presumably\\n to try out how it works."
-msgstr ""
+msgstr "<strong>ملاحظة:</strong>من المفترض انك ترسل رسالة الى نفسك لتجرب سير العملية \\n ."
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 ""
+msgstr "<strong>Note:</strong>\\n سنرسل بريدا الكترونيا لعنوان بريدك الالكتروني الجديد. اتبع \\n التعليمات الواردة فيه لتؤكد تغيير بريدك الالكتروني ."
-msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"%s\">click here</a>."
+msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"{{url}}\">click here</a>."
msgstr ""
msgid "<strong>Privacy note:</strong> Your photo will be shown in public on the Internet,\\n wherever you do something on {{site_name}}."
-msgstr ""
+msgstr "<strong>Privacy note:</strong> صورتك ستظهر للعلن على الانترنات,\\n كلما قمت بشئ على {{site_name}}."
msgid "<strong>Privacy warning:</strong> Your message, and any response\\n to it, will be displayed publicly on this website."
-msgstr ""
+msgstr "<strong>تحذير خصوصية:<."
msgid "<strong>Some of the information</strong> has been sent "
-msgstr ""
+msgstr "<strong>بعض المعلومات</strong> تم ارسالها "
msgid "<strong>Thank</strong> the public authority or "
-msgstr ""
+msgstr "<strong>شكر</strong> السلطة العامة أو "
msgid "<strong>did not have</strong> the information requested."
-msgstr ""
+msgstr "<strong>لم تكن لدينا</strong>المعلومات المطلوبة."
msgid "A <a href=\"{{request_url}}\">follow up</a> to <em>{{request_title}}</em> was sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
-msgstr ""
+msgstr "A <a href=\"{{request_url}}\">المتابعة</a> الى <em>{{request_title}}</em> وقع ارسالها {{public_body_name}} من قبل {{info_request_user}} بتاريخ {{date}}."
msgid "A <a href=\"{{request_url}}\">response</a> to <em>{{request_title}}</em> was sent by {{public_body_name}} to {{info_request_user}} on {{date}}. The request status is: {{request_status}}"
-msgstr ""
+msgstr "<a href=\"%s\"> هل تملك الحقوق التجارية </a>"
msgid "A <strong>summary</strong> of the response if you have received it by post. "
-msgstr ""
+msgstr "A <strong>ملخص</strong> الرد ان كنت تلقيته على الصفحة. "
msgid "A Freedom of Information request"
-msgstr ""
+msgstr "مطلب حق النفاذ إلى المعلومة"
msgid "A new request, <em><a href=\"{{request_url}}\">{{request_title}}</a></em>, was sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
-msgstr ""
+msgstr "مطلب جديد, <em><a href=\"{{request_url}}\">{{request_title}}</a></em>, تم إرساله إلى {{public_body_name}} من طرف {{info_request_user}} في {{date}}."
msgid "A public authority"
-msgstr ""
+msgstr "مؤسسة عمومية"
msgid "A response will be sent <strong>by post</strong>"
-msgstr ""
+msgstr "سيقع الرد <strong>عبر البريد</strong>"
msgid "A strange reponse, required attention by the {{site_name}} team"
+msgstr "A strange reponse, required attention by the {{site_name}} team"
+
+msgid "A vexatious request"
msgstr ""
msgid "A {{site_name}} user"
-msgstr ""
+msgstr "{{site_name}} مستخدم موقع"
msgid "About you:"
-msgstr ""
+msgstr "معلومات عنك:"
msgid "Act on what you've learnt"
+msgstr "العمل على ما تعلمته"
+
+msgid "Acts as xapian/acts as xapian job"
msgstr ""
-msgid "Add an annotation"
+msgid "ActsAsXapian::ActsAsXapianJob|Action"
msgstr ""
-msgid "Add an annotation to your request with choice quotes, or\\n a <strong>summary of the response</strong>."
+msgid "ActsAsXapian::ActsAsXapianJob|Model"
msgstr ""
+msgid "Add an annotation"
+msgstr "إضافة تعليق توضيحي"
+
+msgid "Add an annotation to your request with choice quotes, or\\n a <strong>summary of the response</strong>."
+msgstr "Add an annotation to your request with choice quotes, or \\n a <strong>summary of the response</strong>."
+
msgid "Added on {{date}}"
-msgstr ""
+msgstr "أضيف في {{date}}"
msgid "Admin level is not included in list"
-msgstr ""
+msgstr "مستوى المشرف غير مدرج في قائمة"
msgid "Administration URL:"
-msgstr ""
+msgstr "ادارة الموقع:"
msgid "Advanced search"
-msgstr ""
+msgstr "البحث المتقدم"
msgid "Advanced search tips"
-msgstr ""
+msgstr "نصائح للبحث المتقدم"
msgid "Advise on whether the <strong>refusal is legal</strong>, and how to complain about it if not."
-msgstr ""
+msgstr "نصيحة حول ما اذا كان الرفض قانونيا <strong> </strong>و حول طريقة الاحتجاج ان لم يكن كذلك."
msgid "Air, water, soil, land, flora and fauna (including how these effect\\n human beings)"
-msgstr ""
+msgstr "الهواء, الهواء, التربة, الارض, النباتات و الحيوانات (بالاضافة لتأثيرها على\\n الانسان)"
msgid "All of the information requested has been received"
-msgstr ""
+msgstr "وقع استيلام كل المعلومات المطلوبة"
msgid "All the options below can use <strong>status</strong> or <strong>latest_status</strong> before the colon. For example, <strong>status:not_held</strong> will match requests which have <em>ever</em> been marked as not held; <strong>latest_status:not_held</strong> will match only requests that are <em>currently</em> marked as not held."
-msgstr ""
+msgstr "يمكن ان تستند كل الخيارات اسفله على <strong>الحالة</strong> or <strong>اخر_حالة</strong> قبل الفاصل. مثال, <strong>الحالة:غير_معتمدة</strong>سوف تتطابق مع الطلبات التي تعتبر غير معتمدة <em>ever</em> ; <strong>اخر_حالة:غير_معتمدة</strong> ستتطابق فقط مع الطلبات التي تعتبر <em>باستمرار</em> غير معتمدة."
msgid "All the options below can use <strong>variety</strong> or <strong>latest_variety</strong> before the colon. For example, <strong>variety:sent</strong> will match requests which have <em>ever</em> been sent; <strong>latest_variety:sent</strong> will match only requests that are <em>currently</em> marked as sent."
-msgstr ""
+msgstr "يمكن ان تستند كل الخيارات اسفله على <strong>variety</strong> or <strong>latest_variety</strong> before the colon. For example, <strong>variety:sent</strong> will match requests which have <em>ever</em> been sent; <strong>latest_variety:sent</strong> will match only requests that are <em>currently</em> marked as sent."
msgid "Also called {{other_name}}."
-msgstr ""
+msgstr "المسماة أيضاً {{other_name}}."
msgid "Also send me alerts by email"
-msgstr ""
+msgstr "أرسل التحذيرات عبر البريد الالكتروني أيضا"
msgid "Alter your subscription"
-msgstr ""
+msgstr "غير اشتراكك"
msgid "Although all responses are automatically published, we depend on\\nyou, the original requester, to evaluate them."
-msgstr ""
+msgstr "على الرغم من ان كل الردود تنشر اليا, نعتمد على تقييم صاحب المطلب الاصلي\\nyou."
msgid "An <a href=\"{{request_url}}\">annotation</a> to <em>{{request_title}}</em> was made by {{event_comment_user}} on {{date}}"
-msgstr ""
+msgstr " <a href=\"{{request_url}}\">ملاحظة</a> ل <em>{{request_title}}</em> تمت من قبل {{event_comment_user}} بتاريخ {{date}}"
msgid "An <strong>error message</strong> has been received"
-msgstr ""
+msgstr "An <strong>رسالة خطأ</strong> تم تلقي"
msgid "An Environmental Information Regulations request"
-msgstr ""
+msgstr "طلب معلومات قوانين بيئية "
msgid "An anonymous user"
-msgstr ""
+msgstr "مستخدم غير معروف"
msgid "Annotation added to request"
-msgstr ""
+msgstr "تمت اضافة الحاشية الى الطّلب"
msgid "Annotations"
-msgstr ""
+msgstr "الحاشية"
msgid "Annotations are so anyone, including you, can help the requester with their request. For example:"
-msgstr ""
+msgstr "الملاحظات متوفرة ليستطيع ايا كان ،بمن فيهم انت ، مساعدة الباحثين في طلبهم. مثلا:"
msgid "Annotations will be posted publicly here, and are\\n <strong>not</strong> sent to {{public_body_name}}."
-msgstr ""
+msgstr "سيتم نشر الملاحظات علنيا هنا, وقد تم\\n <strong>not</strong> ارسالها الى {{public_body_name}}."
msgid "Anonymous user"
-msgstr ""
+msgstr "مستخدم غير معروف"
msgid "Anyone:"
+msgstr "أي شخص"
+
+msgid "Applies to"
msgstr ""
-msgid "Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries."
+msgid "Are we missing a public authority?"
msgstr ""
-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>)."
+msgid "Are you the owner of any commercial copyright on this page?"
msgstr ""
-msgid "Attachment (optional):"
+msgid "Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries."
+msgstr "اطلب <strong>محددة</strong> ملفات او معلومات, هذا الموقع لا يتلاءم مع البحوث العامة."
+
+msgid "At the bottom of this page, write a reply to them trying to persuade them to scan it in\\n (<a href=\"{{url}}\">more details</a>)."
msgstr ""
+msgid "Attachment (optional):"
+msgstr "ملحق (اختياري) "
+
msgid "Attachment:"
-msgstr ""
+msgstr "ملحق"
msgid "Awaiting classification."
-msgstr ""
+msgstr "في انتظار التّصنيف"
msgid "Awaiting internal review."
-msgstr ""
+msgstr "في انتظار مراجعة داخلية"
msgid "Awaiting response."
-msgstr ""
+msgstr "في انتظار الرد"
msgid "Beginning with"
-msgstr ""
+msgstr "البدء ب"
msgid "Browse <a href='{{url}}'>other requests</a> for examples of how to word your request."
-msgstr ""
+msgstr "تصفح <a href='{{url}}'>طلبات اخرى</a> للاطلاع على امثلة لكيفية تحرير طلبك."
msgid "Browse <a href='{{url}}'>other requests</a> to '{{public_body_name}}' for examples of how to word your request."
-msgstr ""
+msgstr "تصفح <a href='{{url}}'>طلبات اخرى</a>ل '{{public_body_name}}' للاطلاع على امثلة لكيفية تحرير طلبك ."
msgid "Browse all authorities..."
-msgstr ""
+msgstr "تصفح كل السلطات "
msgid "By law, under all circumstances, {{public_body_link}} should have responded by now"
-msgstr ""
+msgstr "حسب مايمليه القانون ومهما كانت الظروف يجب أن يكون, {{public_body_link}} قد قام بالرد الآن"
msgid "By law, {{public_body_link}} should normally have responded <strong>promptly</strong> and"
+msgstr "حسب مايمليه القانون من المفروض أن يكون {{public_body_link}} قد أجاب<strong>promptly</strong> و"
+
+msgid "Calculated home page"
msgstr ""
-msgid "Cancel a {{site_name}} alert"
+msgid "Can't find the one you want?"
msgstr ""
+msgid "Cancel a {{site_name}} alert"
+msgstr "ألغي {{site_name}} انذار"
+
msgid "Cancel some {{site_name}} alerts"
-msgstr ""
+msgstr "الغاء بعض {{site_name}} التنبيهات"
msgid "Cancel, return to your profile page"
-msgstr ""
+msgstr "الغاء،عودة الى الصفحة الرئيسية"
msgid "Censor rule"
-msgstr ""
+msgstr "قاعدة تخص الرقابة"
msgid "CensorRule|Last edit comment"
-msgstr ""
+msgstr "ادارة الرقابة|اخر تعليق محوّر "
msgid "CensorRule|Last edit editor"
-msgstr ""
+msgstr "ادارة الرقابة |اخر تغيير للمحرر"
msgid "CensorRule|Regexp"
-msgstr ""
+msgstr "ادارة الرقابة|Regexp"
msgid "CensorRule|Replacement"
-msgstr ""
+msgstr "ادارة الرقابة|تعويض"
msgid "CensorRule|Text"
-msgstr ""
+msgstr "ادارة الرقابة|نص"
msgid "Change email on {{site_name}}"
-msgstr ""
+msgstr "غير البريد الالكتروني على {{site_name}}"
msgid "Change password on {{site_name}}"
-msgstr ""
+msgstr "غير كلمة السر على{{site_name}}"
msgid "Change profile photo"
-msgstr ""
+msgstr "تغيير صورة الشخصية"
msgid "Change the text about you on your profile at {{site_name}}"
-msgstr ""
+msgstr "نغيير النص الخاص بك على صفحتك الشخصية على {{site_name}}"
msgid "Change your email"
-msgstr ""
+msgstr "تغيير بريدك الالكتروني"
msgid "Change your email address used on {{site_name}}"
-msgstr ""
+msgstr "تغيير بريدك الالكتروني المستخدم على {{site_name}}"
msgid "Change your password"
-msgstr ""
+msgstr "تغيير كلمة السر"
msgid "Change your password on {{site_name}}"
-msgstr ""
+msgstr "تغيير كلمة السر على{{site_name}}"
msgid "Change your password {{site_name}}"
-msgstr ""
+msgstr " تغيير كلمة السر {{site_name}}"
msgid "Charity registration"
-msgstr ""
+msgstr "تسجيل خيري"
msgid "Check for mistakes if you typed or copied the address."
-msgstr ""
+msgstr ".تحقق من عدم وجود أخطاء إذا كتبت أو نسخت العنوان"
msgid "Check you haven't included any <strong>personal information</strong>."
-msgstr ""
+msgstr "تأكد من عدم اضافتك أي <strong>معلومات شخصية</strong>."
msgid "Choose your profile photo"
-msgstr ""
+msgstr "اختر صورتك الشخصية"
msgid "Clarification"
-msgstr ""
+msgstr "توضيح"
msgid "Clarify your FOI request - "
-msgstr ""
+msgstr "قم بتوضيح مطلب حرية النفاذ الى المعلومة - "
msgid "Classify an FOI response from "
-msgstr ""
+msgstr "صنف اجابة لحرية النفاذ للمعلومة من"
msgid "Clear photo"
-msgstr ""
+msgstr "إزالة الصورة"
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\\nreview, asking them to find out why response to the request has been so slow."
-msgstr ""
+msgstr "اظغط على الرابط اسفله لبعث رسالة ل {{public_body_name}} لطلب الاجابة على طلبك. قد ترغب في طلب \\nمراجعة داخلية, لمحاولة معرفة سبب تأخر الاجابة ."
msgid "Click on the link below to send a message to {{public_body}} reminding them to reply to your request."
-msgstr ""
+msgstr "اضغط على الرابط اسفله لبعث رسالة الى {{public_body}} لتذكيرهم بالاجابة على طلبك."
msgid "Close"
-msgstr ""
+msgstr "إغلاق"
msgid "Comment"
-msgstr ""
+msgstr "تعليق"
msgid "Comment|Body"
-msgstr ""
+msgstr "تعليق|هيكل"
msgid "Comment|Comment type"
-msgstr ""
+msgstr "تعليق|نوع النعليق"
msgid "Comment|Locale"
-msgstr ""
+msgstr "تعليق|مقر"
msgid "Comment|Visible"
-msgstr ""
+msgstr "تعليق|مرئي"
msgid "Confirm you want to follow all successful FOI requests"
-msgstr ""
+msgstr " أكد رغبتك متابعة كل طلبات حريةالنفاذ للمعلومة الناجحة"
msgid "Confirm you want to follow new requests"
-msgstr ""
+msgstr "تأكيد على الرغبة في متابعة المطالب الجديدة"
msgid "Confirm you want to follow new requests or responses matching your search"
-msgstr ""
+msgstr "تأكيد على الرغبة في متابعة المطالب الجديدة أو الردود الموافقة لبحثكم"
msgid "Confirm you want to follow requests by '{{user_name}}'"
-msgstr ""
+msgstr " تأكيد رغبتك في متابعة الطلبات من '{{user_name}}' "
msgid "Confirm you want to follow requests to '{{public_body_name}}'"
-msgstr ""
+msgstr "تأكيد على الرغبة في متابعة المطالب الموجهة إلى '{{public_body_name}}'"
msgid "Confirm you want to follow the request '{{request_title}}'"
-msgstr ""
+msgstr "تأكيد رغبتك في متابعة الطلب'{{request_title}}'"
msgid "Confirm your FOI request to "
-msgstr ""
+msgstr "أكد طلبك في حرية النفاذ للمعلومة"
msgid "Confirm your account on {{site_name}}"
-msgstr ""
+msgstr "Confirm your account on {{site_name}}"
msgid "Confirm your annotation to {{info_request_title}}"
-msgstr ""
+msgstr "أكد ملاحظتك المتعلقة ب {{info_request_title}}"
msgid "Confirm your email address"
-msgstr ""
+msgstr "تأكيد عنوان بريدك الالكتروني"
msgid "Confirm your new email address on {{site_name}}"
-msgstr ""
+msgstr "تأكيد عنوان بريدك الإلكتروني الجديد على {{site_name}}"
msgid "Considered by administrators as not an FOI request and hidden from site."
-msgstr ""
+msgstr "لم يعتبر طلب حرية النفاذ الى المعلومة من قبل المشرفين ووقع حذفه من الموقع."
msgid "Considered by administrators as vexatious and hidden from site."
-msgstr ""
+msgstr "اعتبر غير لائق من قبل المشرفين و وقع حذفه من الموقع"
msgid "Contact {{recipient}}"
-msgstr ""
+msgstr "اتصل ب {{recipient}}"
msgid "Contact {{site_name}}"
-msgstr ""
+msgstr "اتصل ب {{site_name}}"
msgid "Could not identify the request from the email address"
-msgstr ""
+msgstr "لا يمكن التعرف على الطلب من عنوان البريد الالكتروني"
msgid "Couldn't understand the image file that you uploaded. PNG, JPEG, GIF and many other common image file formats are supported."
-msgstr ""
+msgstr "لم يقع التعرف على ملف الصور الذي حملته.و يقع اعتماد PNG, JPEG, GIF و اشكال معتادة اخرى لملفات الصور ."
msgid "Crop your profile photo"
-msgstr ""
+msgstr "قص الصورة الشخصية"
msgid "Cultural sites and built structures (as they may be affected by the\\n environmental factors listed above)"
-msgstr ""
+msgstr "المواقع الثقافية و المنشات المبنية (التي قد تتأثر ب العوامل\\n البيئية المذكورة اعلاه)"
msgid "Currently <strong>waiting for a response</strong> from {{public_body_link}}, they must respond promptly and"
-msgstr ""
+msgstr "بصدد <strong>انتظار اجابة</strong> من {{public_body_link}}, عليهم الرد حالا و"
msgid "Date:"
+msgstr "التاريخ:"
+
+msgid "Dear {{name}},"
msgstr ""
msgid "Dear {{public_body_name}},"
+msgstr "عزيزي {{public_body_name}},"
+
+msgid "Default locale"
msgstr ""
msgid "Delayed response to your FOI request - "
-msgstr ""
+msgstr "تاخر الاجابة على طلب حرية النفاذ الى المعلومة - "
msgid "Delayed."
-msgstr ""
+msgstr "مؤجل"
msgid "Delivery error"
+msgstr "خطأ ارسال"
+
+msgid "Destroy {{name}}"
msgstr ""
msgid "Details of request '"
-msgstr ""
+msgstr "تفاصيل المطلب '"
msgid "Did you mean: {{correction}}"
-msgstr ""
+msgstr "هل قصدتم: {{correction}}"
msgid "Disclaimer: This message and any reply that you make will be published on the internet. Our privacy and copyright policies:"
-msgstr ""
+msgstr "تنويه: هذه الرسالة و اي رد تقوم به سيقع نشره على الانترنات . خصوصيتنا و سياسات حقوق النشر:"
msgid "Disclosure log"
+msgstr "سجل الكشف"
+
+msgid "Disclosure log URL"
msgstr ""
msgid "Don't want to address your message to {{person_or_body}}? You can also write to:"
-msgstr ""
+msgstr "لا ترغب في توجيه رسالتك الى {{person_or_body}}? بامكانك ايضا ان تكتب ل:"
msgid "Done"
-msgstr ""
+msgstr "منجز"
msgid "Done &gt;&gt;"
-msgstr ""
+msgstr "تم &gt;&gt;"
msgid "Download a zip file of all correspondence"
-msgstr ""
+msgstr "تحميل ملف مضغوط لجميع المراسلات"
msgid "Download original attachment"
-msgstr ""
+msgstr "تحميل الملحقات الأصلية"
msgid "EIR"
-msgstr ""
+msgstr "EIR"
-msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
+msgid "Edit"
msgstr ""
-msgid "Edit language version:"
-msgstr ""
+msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
+msgstr "حذف و اضف ا<strong>تفاصيل اكثر</strong>للرسالةاعلاه,\\n لتفسير اسباب عدم رضاك على الرد."
msgid "Edit text about you"
-msgstr ""
+msgstr "تعديل النص الخاص بك"
msgid "Edit this request"
-msgstr ""
+msgstr "تعديل هذا الطلب"
msgid "Either the email or password was not recognised, please try again."
-msgstr ""
+msgstr "البريد الإلكتروني أو كلمة السر غير صحيحة. الرجاء اعادة المحاولة"
msgid "Either the email or password was not recognised, please try again. Or create a new account using the form on the right."
-msgstr ""
+msgstr "لم يتم التعرف على البريد الإلكتروني أو كلمة السر . الرجاء اعادة المحاولة أو انشاء حساب جديد باستعمال الاستمارة على اليمين"
msgid "Email doesn't look like a valid address"
-msgstr ""
+msgstr "قد يكون البريد الإلكتروني غير صحيح"
msgid "Email me future updates to this request"
-msgstr ""
+msgstr "ارسل لي بريدا الكترونيا بكل تحديث لهذا الطلب "
msgid "Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>"
-msgstr ""
+msgstr "ادخل الكلمات التي تريد ايجادها منفصلة , e.g. <strong>تسلق ممر</strong>"
-msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"%s\">contact us</a> if you need more)."
+msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"{{url}}\">contact us</a> if you need more)."
msgstr ""
msgid "Environmental Information Regulations"
-msgstr ""
+msgstr "معلومات القوانين البيئية"
msgid "Environmental Information Regulations requests made"
-msgstr ""
+msgstr "تم تقديم طلبات بخصوص معلومات القوانين البيئية "
msgid "Environmental Information Regulations requests made using this site"
-msgstr ""
+msgstr "تم تقديم طلبات بخصوص معلومات القوانين البيئية عن طريق هذا الموقع"
msgid "Event history"
-msgstr ""
+msgstr "تاريخ الحدث"
msgid "Event history details"
+msgstr "تفاصيل تاريخ الحدث"
+
+msgid "Event {{id}}"
msgstr ""
-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>)."
+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=\"{{url}}\">why?</a>)."
msgstr ""
-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>)."
+msgid "Everything that you enter on this page\\n will be <strong>displayed publicly</strong> on\\n this website forever (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "FOI"
-msgstr ""
+msgstr "حرية النفاذ الى المعلومة"
msgid "FOI email address for {{public_body}}"
+msgstr "عنوان البريد الالكتروني لحرية المعلومة ل {{public_body}}"
+
+msgid "FOI request – {{title}}"
msgstr ""
msgid "FOI requests"
-msgstr ""
+msgstr "مطالب حرية المعلومة "
msgid "FOI requests by '{{user_name}}'"
-msgstr ""
+msgstr "مطالب حرية المعلومة المقدمة من قبل '{{user_name}}'"
msgid "FOI requests {{start_count}} to {{end_count}} of {{total_count}}"
-msgstr ""
+msgstr "مطالب لحرية النفاذ للمعلومة {{start_count}} ل {{end_count}}من {{total_count}}"
msgid "FOI response requires admin ({{reason}}) - {{title}}"
-msgstr ""
+msgstr "رد حرية النفاذ للمعلومة يتطلف مشرفا ({{reason}}) - {{title}}"
msgid "Failed to convert image to a PNG"
-msgstr ""
+msgstr "لم نتمكن من تحوبل الصورة الى PNG"
-msgid "Failed to convert image to the correct size: at %{cols}x%{rows}, need %{width}x%{height}"
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
msgstr ""
msgid "Filter"
-msgstr ""
+msgstr "فلترة"
-msgid "First, type in the <strong>name of the UK public authority</strong> you'd \\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"%s#%s\">why?</a>)."
+msgid "First, type in the <strong>name of the UK public authority</strong> you'd\\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "Foi attachment"
-msgstr ""
+msgstr "ملحق حرية النفاذ للمعلومة "
msgid "FoiAttachment|Charset"
-msgstr ""
+msgstr "ملحق حرية النفاذ للمعلومة|Charset"
msgid "FoiAttachment|Content type"
-msgstr ""
+msgstr "ملحق حرية النفاذ للمعلومة|نوع المضمون"
msgid "FoiAttachment|Display size"
-msgstr ""
+msgstr "ملحق حرية النفاذ للمعلومة|أظهر الحجم"
msgid "FoiAttachment|Filename"
-msgstr ""
+msgstr "ملحق حرية النفاذ للمعلومة|اسم الملف"
msgid "FoiAttachment|Hexdigest"
-msgstr ""
+msgstr "ملحق حرية النفاذ للمعلومة|Hexdigest"
msgid "FoiAttachment|Url part number"
-msgstr ""
+msgstr "ملحق حرية النفاذ للمعلومة|Url part number"
msgid "FoiAttachment|Within rfc822 subject"
-msgstr ""
+msgstr "ملحق حرية النفاذ للمعلومة|ضمن rfc822 subject"
msgid "Follow"
-msgstr ""
+msgstr "تابع"
msgid "Follow all new requests"
-msgstr ""
+msgstr "تابع كل المطالب الجديدة"
msgid "Follow new successful responses"
-msgstr ""
+msgstr "تابع الردود الجديدة الناجحة"
msgid "Follow requests to {{public_body_name}}"
-msgstr ""
+msgstr "تابع المطالب الموجهة ل {{public_body_name}}"
msgid "Follow these requests"
-msgstr ""
+msgstr "تابع هذة المطالب"
msgid "Follow things matching this search"
-msgstr ""
+msgstr "تابع الاشياء المرتبطة بهذا البحث"
msgid "Follow this authority"
-msgstr ""
+msgstr "تابع السلطة "
msgid "Follow this link to see the request:"
-msgstr ""
+msgstr "تابع الرابط لرؤية الطلب"
msgid "Follow this person"
-msgstr ""
+msgstr "تابع هذا الشخص"
msgid "Follow this request"
-msgstr ""
+msgstr "تابع هذا الطلب "
msgid "Follow up"
-msgstr ""
+msgstr "تابع"
msgid "Follow up message sent by requester"
-msgstr ""
+msgstr "تابع الرسالة المرسلة من صاحب الطلب"
msgid "Follow up messages to existing requests are sent to "
-msgstr ""
+msgstr "متابعة الرسائل المرسلة للطلبات الموجودة"
msgid "Follow ups and new responses to this request have been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you are {{user_link}} and need to send a follow up."
-msgstr ""
+msgstr "المتابعات و الردود الجدبدة على هذا المطلب وقع ايقافها للتجنب الرسائل الغير مرغوب فيها. يرجى <a href=\"{{url}}\">الاتصال بنا</a> اذا كنت {{user_link}} و تحتاج الى ارسال متابعات."
msgid "Follow us on twitter"
-msgstr ""
+msgstr "تابعنا على التويتر"
msgid "Followups cannot be sent for this request, as it was made externally, and published here by {{public_body_name}} on the requester's behalf."
-msgstr ""
+msgstr "لا يمكن ارسال المتابعات لهذا الطلب, حيث نم خارجيا, و تم نشره هنا من قبل {{public_body_name}} نيابة عن صاحب الطلب."
msgid "For an unknown reason, it is not possible to make a request to this authority."
-msgstr ""
+msgstr "لسبب مجهول, لا يمكن تقديم مطلب لهذه السلطة."
msgid "Forgotten your password?"
-msgstr ""
+msgstr "نسيت كلمة السر ؟"
-msgid "Found %d public authority %s"
-msgid_plural "Found %d public authorities %s"
+msgid "Found {{count}} public authority {{description}}"
+msgid_plural "Found {{count}} public authorities {{description}}"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
@@ -835,1030 +830,1081 @@ msgstr[4] ""
msgstr[5] ""
msgid "Freedom of Information"
-msgstr ""
+msgstr "حرية المعلومة "
msgid "Freedom of Information Act"
-msgstr ""
+msgstr "قانون حرية المعلومات "
msgid "Freedom of Information law does not apply to this authority, so you cannot make\\n a request to it."
-msgstr ""
+msgstr "قانون حرية المعلومات لا ينطبق على هذه السلطة ,لذلك ليس بامكانك تقديم مطلب لها\\n."
msgid "Freedom of Information law no longer applies to"
-msgstr ""
+msgstr "قانون حرية المعلومات لم يعد ينطبق على"
msgid "Freedom of Information law no longer applies to this authority.Follow up messages to existing requests are sent to "
-msgstr ""
+msgstr "قانون حرية النفاذ للمعلومة لم يعد ينطبق على هذه السلطة.تابع الرسائل المرسلة للطلبات الموجودة"
msgid "Freedom of Information requests made"
-msgstr ""
+msgstr "تم تقديم مطالب حرية المعلومة "
msgid "Freedom of Information requests made by this person"
-msgstr ""
+msgstr "مطالب حرية المعلومةالتي قدمت من قبل هذا الشخص"
msgid "Freedom of Information requests made by you"
-msgstr ""
+msgstr "مطالب حرية المعلومة التي قدمت من قبلك"
msgid "Freedom of Information requests made using this site"
-msgstr ""
+msgstr "مطالب حرية المعلومة التي قدمت على هذا الموقع"
msgid "Freedom of information requests to"
-msgstr ""
+msgstr "طلبات حرية النفاذ للمعلومة الى"
msgid "From"
-msgstr ""
+msgstr "من"
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "From:"
-msgstr ""
+msgstr "من"
msgid "GIVE DETAILS ABOUT YOUR COMPLAINT HERE"
-msgstr ""
+msgstr "قوموا بإعطاء تفاصيل عن شكواكم هنا"
msgid "Handled by post."
+msgstr "تسلم بالبريد"
+
+msgid "Has tag string/has tag string tag"
msgstr ""
-msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
+msgid "HasTagString::HasTagStringTag|Model"
msgstr ""
-msgid "Hello, {{username}}!"
+msgid "HasTagString::HasTagStringTag|Name"
msgstr ""
-msgid "Help"
+msgid "HasTagString::HasTagStringTag|Value"
msgstr ""
+msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
+msgstr "مرحباً! بإمكانكم تقديم مطالب حق النفاذ إلى المعلومة من داخل {{country_name}} على هذا الموقع {{link_to_website}}"
+
+msgid "Hello, {{username}}!"
+msgstr "مرحباً, {{username}}!"
+
+msgid "Help"
+msgstr "المساعدة"
+
msgid "Here <strong>described</strong> means when a user selected a status for the request, and\\nthe most recent event had its status updated to that value. <strong>calculated</strong> is then inferred by\\n{{site_name}} for intermediate events, which weren't given an explicit\\ndescription by a user. See the <a href=\"{{search_path}}\">search tips</a> for description of the states."
msgstr ""
msgid "Here is the message you wrote, in case you would like to copy the text and save it for later."
-msgstr ""
+msgstr "هذه هي الرسالة التي قمتم بكتابتها، في صورة ما كانت لديكم رغبة في نسخها و حفظها لوقتٍ لاحق. "
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 "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."
+
+msgid "Hide request"
msgstr ""
msgid "Holiday"
-msgstr ""
+msgstr "عطلة"
msgid "Holiday|Day"
-msgstr ""
+msgstr "عطلة|يوم"
msgid "Holiday|Description"
-msgstr ""
+msgstr "عطلة |وصف"
msgid "Home"
+msgstr "الصفحة الرئيسية"
+
+msgid "Home page"
msgstr ""
msgid "Home page of authority"
-msgstr ""
+msgstr "الصفحة الرئيسية للمؤسسة"
msgid "However, you have the right to request environmental\\n information under a different law"
-msgstr ""
+msgstr "However, you have the right to request environmental\\n information under a different law"
msgid "Human health and safety"
-msgstr ""
+msgstr "صحة الإنسان و سلامته "
msgid "I am asking for <strong>new information</strong>"
-msgstr ""
+msgstr "ارغب في الحصول على <strong>معلومات جديدة</strong>"
msgid "I am requesting an <strong>internal review</strong>"
-msgstr ""
+msgstr "أنا اطلب <strong>مراجعة داخلية</strong>"
msgid "I don't like these ones &mdash; give me some more!"
-msgstr ""
+msgstr "لا تعجبني هذه الخيارات &mdash; الرجاء مدي بالمزيد!"
msgid "I don't want to do any more tidying now!"
-msgstr ""
+msgstr "ليست لدي الرغبة في القيام بمزيد من التنظيم الآن !"
msgid "I like this request"
-msgstr ""
+msgstr "أعجبني هذا المطلب"
msgid "I would like to <strong>withdraw this request</strong>"
-msgstr ""
+msgstr "ارغب في <strong>سحب هذا المطلب</strong>"
msgid "I'm still <strong>waiting</strong> for my information\\n <small>(maybe you got an acknowledgement)</small>"
-msgstr ""
+msgstr "مازلت بصدد<strong>انتظار</strong> معلوماتي\\n <small>(ربما تحصلت على اشعار بالاستلام)</small>"
msgid "I'm still <strong>waiting</strong> for the internal review"
-msgstr ""
+msgstr "مازلت بصدد <strong>انتظار</strong> مراجعة داخلية"
msgid "I'm waiting for an <strong>internal review</strong> response"
-msgstr ""
+msgstr "انا بانتظار <strong>مراجعة داخلية</strong> اجابة"
msgid "I've been asked to <strong>clarify</strong> my request"
-msgstr ""
+msgstr "لقد طُلب مني <strong>توضيح</strong> مطلبي"
msgid "I've received <strong>all the information"
-msgstr ""
+msgstr "لقد حصلت على <strong>كل المعلومات"
msgid "I've received <strong>some of the information</strong>"
-msgstr ""
+msgstr "لقد حصلت على <strong>بعض من المعلومات</strong>"
msgid "I've received an <strong>error message</strong>"
+msgstr "نلقيت <strong>رسالة خطأ</strong>"
+
+msgid "I've received an error message"
msgstr ""
-msgid "If the address is wrong, or you know a better address, please <a href=\"%s\">contact us</a>."
+msgid "Id"
msgstr ""
-msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
+msgstr ""
+
+msgid "If the error was a delivery failure, and you can find an up to date FOI email address for the authority, please tell us using the form below."
msgstr ""
-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>)."
+msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
+msgstr "ان كان هذا خطأ, أو ان اردت ارسال رد متأخر على الطلب\\nأو رسالة الكترونية بخصوص موضوع اخر {{user}}, الرجاء\\nارسال بريد الكتروني {{contact_email}} طلبا للمساعدة."
+
+msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"{{url}}\">details</a>)."
msgstr ""
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
+msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
-msgid "If you are the requester, then you may <a href=\"%s\">sign in</a> to view the request."
+msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request."
msgstr ""
-msgid "If you are thinking of using a pseudonym,\\n please <a href=\"%s\">read this first</a>."
+msgid "If you are thinking of using a pseudonym,\\n please <a href=\"{{url}}\">read this first</a>."
msgstr ""
msgid "If you are {{user_link}}, please"
-msgstr ""
+msgstr "إذا كنت {{user_link}}, من فضلك"
msgid "If you believe this request is not suitable, you can report it for attention by the site administrators"
-msgstr ""
+msgstr "ان كنت تعتقد ان هذا الطلب غير ملائم، الرجاء تبليغ ادارة الموقع"
msgid "If you can't click on it in the email, you'll have to <strong>select and copy\\nit</strong> from the email. Then <strong>paste it into your browser</strong>, into the place\\nyou would type the address of any other webpage."
-msgstr ""
+msgstr "ان لم تستطع النقر عليه في البريد الالكتروني, عليك أن <strong>تنسخه\\nit</strong> من البريد الالكتروني. ثم <strong لصقه في المتصفح</strong>, في المكان الذي\\nترغب أن تكتب فيه عنوان أي صفحة أخرى على الواب"
msgid "If you can, scan in or photograph the response, and <strong>send us\\n a copy to upload</strong>."
-msgstr ""
+msgstr "ان استطعت, ادخل مسحا ضوئيا أو صورة للاجابة, <strong>أرسل لنا\\n نسخة للتحميل</strong>."
msgid "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."
-msgstr ""
+msgstr "ان وجدت هذه الخدمة مفيدة كمزود لحرية النفاذ للمعلومة، الرجاء الطلب من مزود الواب الخاص بك الربط معنا عن طريق صفحة حرية النفاذ للمعلومة الخاصة بمنظمتك."
msgid "If you got the email <strong>more than six months ago</strong>, then this login link won't work any\\nmore. Please try doing what you were doing from the beginning."
-msgstr ""
+msgstr "اذا تحصلت على البريد الالكتروني <strong>منذ اكثر من ستة اشهر </strong>, فان رابط الدخول هذا لن يعمل بعد الانn\\ الرجاء حاول اعادةالقيام بما قمت به سابقا منذ البداية ."
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 ""
+msgstr "ان لم يسبق لك ان فعلت ذلك،الرجاء كتابة رسالة أسفله لاخبار السلطات أنك قد سحبت طلبك والا لن يعرفوا بذلك."
msgid "If you reply to this message it will go directly to {{user_name}}, who will\\nlearn your email address. Only reply if that is okay."
-msgstr ""
+msgstr "اذا تجيب على هذا السؤال سيذهب مباشرة الى {{user_name}}, الذي\\nسيعرف بريدك الالكتروني. اجب فقط اذا كنت موافقا."
msgid "If you use web-based email or have \"junk mail\" filters, also check your\\nbulk/spam mail folders. Sometimes, our messages are marked that way."
-msgstr ""
+msgstr "ان كنت تستعمل بريدا الكترونيا يستند الى الواب او محدد \"الرسائل الالكترونية غير المرغوب فيها\", تثبت من\\nbulk/هذه الملفات. , رسائلنا قد نصنف كبريد الكتروني غير مرغوب فيه احيانا."
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 ""
+msgstr "ان أردت رفع هذا الحظر, بامكانك\\n<a href=\"/help/contact\">الاتصال بنا</a>ذاكرا أسبابك. n\\"
msgid "If you're new to {{site_name}}"
-msgstr ""
+msgstr "إذا كنت جديداً على هذا الموقع {{site_name}}"
msgid "If you've used {{site_name}} before"
-msgstr ""
+msgstr "إذا قمتم باستخدام هذا الموقع {{site_name}} من قبل"
msgid "If your browser is set to accept cookies and you are seeing this message,\\nthen there is probably a fault with our server."
+msgstr "ان كان المتصفح الذي تستعمله مبرمجا لقبول ملفات الارتباط ورأيت هذه الرسالة,\\nفهناك على الغالب خطأ بالخادم الخاص بنا"
+
+msgid "Incoming email address"
msgstr ""
msgid "Incoming message"
-msgstr ""
+msgstr "رسالة واردة"
msgid "IncomingMessage|Cached attachment text clipped"
-msgstr ""
+msgstr "IncomingMessage|Cached attachment text clipped"
msgid "IncomingMessage|Cached main body text folded"
-msgstr ""
+msgstr "IncomingMessage|Cached main body text folded"
msgid "IncomingMessage|Cached main body text unfolded"
-msgstr ""
+msgstr "IncomingMessage|Cached main body text unfolded"
msgid "IncomingMessage|Last parsed"
-msgstr ""
+msgstr "الرسائل الواردة|اخر تحليل"
msgid "IncomingMessage|Mail from"
-msgstr ""
+msgstr "رسالة واردة|بريد الكتروني من"
msgid "IncomingMessage|Mail from domain"
-msgstr ""
+msgstr "الرسائل الواردة|بريد الكتروني من"
msgid "IncomingMessage|Sent at"
-msgstr ""
+msgstr "رسالة واردة|بعثت على "
msgid "IncomingMessage|Subject"
-msgstr ""
+msgstr "IncomingMessage|Subject"
msgid "IncomingMessage|Valid to reply to"
-msgstr ""
+msgstr "الرسائل الواردة|صالح للرد على"
msgid "Individual requests"
-msgstr ""
+msgstr "المطالب الفردية"
msgid "Info request"
-msgstr ""
+msgstr "طلب معلومة"
msgid "Info request event"
-msgstr ""
+msgstr "طلب المعلومة"
msgid "InfoRequestEvent|Calculated state"
-msgstr ""
+msgstr "طلب المعلومة|الحالة المحسوبة"
msgid "InfoRequestEvent|Described state"
-msgstr ""
+msgstr "طلب المعلومة|الحالة الموصوفة"
msgid "InfoRequestEvent|Event type"
-msgstr ""
+msgstr "طلب المعلومة|نوع الطلب"
msgid "InfoRequestEvent|Last described at"
-msgstr ""
+msgstr "طلب المعلومة|تم اخر وصف في"
msgid "InfoRequestEvent|Params yaml"
-msgstr ""
+msgstr "InfoRequestEvent|Params yaml"
msgid "InfoRequestEvent|Prominence"
-msgstr ""
+msgstr "طلب المعلومة|الأهمية"
msgid "InfoRequest|Allow new responses from"
-msgstr ""
+msgstr "طلب المعلومة|السماح للردود الجديدة من قبل"
msgid "InfoRequest|Attention requested"
-msgstr ""
+msgstr "طلب المعلومة|الرجاء الانتباه"
msgid "InfoRequest|Awaiting description"
-msgstr ""
+msgstr "طلب المعلومة|بانتظار الوصف"
msgid "InfoRequest|Comments allowed"
-msgstr ""
+msgstr "طلب المعلومة|السماح بالتعليقات"
msgid "InfoRequest|Described state"
-msgstr ""
+msgstr "طلب المعلومة|وصف الحالة"
msgid "InfoRequest|External url"
-msgstr ""
+msgstr "طلب المعلومة|الموقع الخارجي"
msgid "InfoRequest|External user name"
-msgstr ""
+msgstr "طلب المعلومة|اسم المستخدم الخارجي"
msgid "InfoRequest|Handle rejected responses"
-msgstr ""
+msgstr " طلب المعلومة|التعامل مع الردود الملغاة"
msgid "InfoRequest|Idhash"
-msgstr ""
+msgstr "InfoRequest|Idhash"
msgid "InfoRequest|Law used"
-msgstr ""
+msgstr "طلب المعلومة|القانون المعتمد"
msgid "InfoRequest|Prominence"
-msgstr ""
+msgstr "طلب المعلومة|الأهمية"
msgid "InfoRequest|Title"
-msgstr ""
+msgstr "طلب المعلومة|العنوان"
msgid "InfoRequest|Url title"
-msgstr ""
+msgstr "طلب المعلومة|عنوان الموقع"
msgid "Information not held."
-msgstr ""
+msgstr "معلومة غير معتمدة."
msgid "Information on emissions and discharges (e.g. noise, energy,\\n radiation, waste materials)"
-msgstr ""
+msgstr "معلومات عن الارسال والتصريف (مثل. ضجيج, طاقة,\\n اشعاعات, بقايا النفايات)"
msgid "Internal review request"
-msgstr ""
+msgstr "مطلب المراجعة الداخلية "
msgid "Is {{email_address}} the wrong address for {{type_of_request}} requests to {{public_body_name}}? If so, please contact us using this form:"
-msgstr ""
+msgstr "هل عنوان هذا البريد الالكتروني {{email_address}} خاطئ بالنسبة ل{{type_of_request}} الطلبات ل {{public_body_name}}?في هذه الحالة الرجاء الاتصال بنا باستعمال الصيغة التالية:"
msgid "It may be that your browser is not set to accept a thing called \"cookies\",\\nor cannot do so. If you can, please enable cookies, or try using a different\\nbrowser. Then press refresh to have another go."
msgstr ""
msgid "Items matching the following conditions are currently displayed on your wall."
+msgstr "يتم حاليا نشر المفردات المتطابقة مع الشروط التالية على حائطك."
+
+msgid "Items sent in last month"
msgstr ""
msgid "Joined in"
-msgstr ""
+msgstr "تاريخ الإلتحاق"
msgid "Joined {{site_name}} in"
+msgstr "انظم الى {{site_name}} في"
+
+msgid "Just one more thing"
msgstr ""
-msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)."
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "Keywords"
-msgstr ""
+msgstr "كلمات البحث"
msgid "Last authority viewed: "
-msgstr ""
+msgstr "آخر مؤسسة تمّ الإطلاع عليها : "
msgid "Last request viewed: "
-msgstr ""
+msgstr "آخر مطلب وقع الإطلاع عليه: "
msgid "Let us know what you were doing when this message\\nappeared and your browser and operating system type and version."
-msgstr ""
+msgstr "اعلمنا ما كنت تفعل عندما ظهرت\\nهذه الرسالة ومتصفحك و نوع و نسخة نظام التشغيل."
msgid "Link to this"
+msgstr "اربط بهذا"
+
+msgid "List all"
msgstr ""
msgid "List of all authorities (CSV)"
+msgstr "قائمة السلط (CSV)"
+
+msgid "Listing FOI requests"
msgstr ""
-msgid "Log in to download a zip file of {{info_request_title}}"
+msgid "Listing public authorities"
msgstr ""
-msgid "Log into the admin interface"
+msgid "Listing public authorities matching '{{query}}'"
msgstr ""
-msgid "Long overdue."
+msgid "Listing tracks"
msgstr ""
-msgid "Made between"
+msgid "Listing users"
msgstr ""
+msgid "Log in to download a zip file of {{info_request_title}}"
+msgstr "تسجيل الدخول لتحميل ملف مضغوط من {{info_request_title}}"
+
+msgid "Log into the admin interface"
+msgstr "سجل دخولك في مجال المشرف"
+
+msgid "Long overdue."
+msgstr "تأخير مطول"
+
+msgid "Made between"
+msgstr "تم بين"
+
msgid "Mail server log"
-msgstr ""
+msgstr "الدخول لبريد الخادم"
msgid "Mail server log done"
-msgstr ""
+msgstr "تم الدخول لبريد الخادم"
msgid "MailServerLogDone|Filename"
-msgstr ""
+msgstr "تم الدخول لبريد الخادم|اسم الملف"
msgid "MailServerLogDone|Last stat"
-msgstr ""
+msgstr "تم الدخول لبريد الخادم|اخر حالة"
msgid "MailServerLog|Line"
-msgstr ""
+msgstr " الدخول لبريد الخادم|الخط"
msgid "MailServerLog|Order"
-msgstr ""
+msgstr "الدخول لبريد الخادم|الترتيب"
msgid "Make a new <strong>Environmental Information</strong> request"
-msgstr ""
+msgstr "قم <strong>عن المعلومات البيئية</strong> بطلب جديد"
msgid "Make a new <strong>Freedom of Information</strong> request to {{public_body}}"
-msgstr ""
+msgstr "قدم مطالب جديدة <strong>لحرية النفاذ الى المعلومة</strong> ل {{public_body}}"
msgid "Make a new<br/>\\n <strong>Freedom <span>of</span><br/>\\n Information<br/>\\n request</strong>"
-msgstr ""
+msgstr "اضف<br/>\\n <strong>لحرية<span>of</span><br/>\\n النفاذ للمعلومة<br/>\\n طلبا جديدا</strong>"
msgid "Make a request"
-msgstr ""
+msgstr "قدم مطلبا"
msgid "Make an {{law_used_short}} request to '{{public_body_name}}'"
-msgstr ""
+msgstr "قدم {{law_used_short}}مطلبا ل '{{public_body_name}}'"
msgid "Make and browse Freedom of Information (FOI) requests"
-msgstr ""
+msgstr "اضف وتصفح طلبات لحرية النفاذ للمعلومةّ(FOI)"
msgid "Make your own request"
-msgstr ""
+msgstr "قدم مطلبك الخاص"
msgid "Many requests"
-msgstr ""
+msgstr "مطالب كثيرة"
msgid "Message"
-msgstr ""
+msgstr "رسالة"
msgid "Message sent using {{site_name}} contact form, "
-msgstr ""
+msgstr "تم بعث الرسالة باستخدام {{site_name}} نموذج الاتصال, "
msgid "Missing contact details for '"
-msgstr ""
+msgstr "تنقصنا بيانات اتصال ل '"
msgid "More about this authority"
-msgstr ""
+msgstr "المزيد عن هذه السلطة"
msgid "More requests..."
-msgstr ""
+msgstr "مزيد المطالب..."
msgid "More similar requests"
-msgstr ""
+msgstr "مزيد المطالب المماثلة"
msgid "More successful requests..."
-msgstr ""
+msgstr "مزيد المطالب الناجحة"
msgid "My profile"
-msgstr ""
+msgstr "حسابي"
msgid "My request has been <strong>refused</strong>"
-msgstr ""
+msgstr "قوبل طلبي <strong>بالرفض</strong>"
msgid "My requests"
-msgstr ""
+msgstr "مطالبي"
msgid "My wall"
-msgstr ""
+msgstr "حائطي"
msgid "Name can't be blank"
-msgstr ""
+msgstr "مكان الاسم لا يجب ان بظل فارغا"
msgid "Name is already taken"
-msgstr ""
+msgstr "تم اخذ الاسم من قبل "
msgid "New Freedom of Information requests"
+msgstr "مطالب جديدة لحرية النفاذ الى المعلومة"
+
+msgid "New censor rule"
msgstr ""
msgid "New e-mail:"
-msgstr ""
+msgstr "رسالة إلكترونية جديدة:"
msgid "New email doesn't look like a valid address"
-msgstr ""
+msgstr "الرسالة الالكترونية الجديدة لاتبدو كعنوان صالح"
msgid "New password:"
-msgstr ""
+msgstr "كلمة العبور الجديدة:"
msgid "New password: (again)"
-msgstr ""
+msgstr "كلمة العبور الجديدة: (مرة أخرى)"
msgid "New response to '{{title}}'"
-msgstr ""
+msgstr "ردّ جديد على '{{title}}'"
msgid "New response to your FOI request - "
-msgstr ""
+msgstr "ردّ جديد على مطلبكم في حق النفاذ إلى المعلومة - "
msgid "New response to your request"
-msgstr ""
+msgstr "ردّ جديد على مطلبكم"
msgid "New response to {{law_used_short}} request"
-msgstr ""
+msgstr "ردّ جديد على {{law_used_short}} المطلب"
msgid "New updates for the request '{{request_title}}'"
-msgstr ""
+msgstr "مستجدات حديثة عن المطلب '{{request_title}}'"
msgid "Newest results first"
-msgstr ""
+msgstr "النتائج الأحدث أوّلاً"
msgid "Next"
-msgstr ""
+msgstr "التالي"
msgid "Next, crop your photo &gt;&gt;"
-msgstr ""
+msgstr "ثم قم بتقطيع صورتك &gt;&gt;"
msgid "No requests of this sort yet."
-msgstr ""
+msgstr "لا توجد طلبات من هذا النوع حتى الان"
msgid "No results found."
-msgstr ""
+msgstr "لم يتم العثور على أي نتائج."
msgid "No similar requests found."
+msgstr "لم يتم العثور على أي مطالب مماثلة."
+
+msgid "No tracked things found."
msgstr ""
msgid "Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet."
-msgstr ""
+msgstr "لم يتمّ تقديم أي مطلب حقّ النفاذ إلى المعلومة إلى {{public_body_name}} باستخدام هذا الموقع إلى حدّ الآن ."
msgid "None found."
-msgstr ""
+msgstr "لم يقع العثور على شئ"
msgid "None made."
+msgstr "لم يحدث شئ"
+
+msgid "Not a valid FOI request"
msgstr ""
msgid "Note that the requester will not be notified about your annotation, because the request was published by {{public_body_name}} on their behalf."
-msgstr ""
+msgstr "لاحظ أن صاحب الطلب لن يستقبل اشعارا بخصوص ملاحظتك, لأن الطلب تم نشره من قبل {{public_body_name}} نيابة عنهم."
msgid "Now check your email!"
-msgstr ""
+msgstr "تفقد بريدك الالكنروني"
msgid "Now preview your annotation"
-msgstr ""
+msgstr "الق نظرة على ملاحظتك الان"
msgid "Now preview your follow up"
-msgstr ""
+msgstr "الق نظرة على متابعتك الان"
msgid "Now preview your message asking for an internal review"
-msgstr ""
+msgstr "الق نظرة على رسالتك لطلب مراجعة داخلية"
msgid "OR remove the existing photo"
-msgstr ""
+msgstr "أو أزل الصورة الحالية"
msgid "Offensive? Unsuitable?"
-msgstr ""
+msgstr "مزعج؟ غير لائق؟"
msgid "Oh no! Sorry to hear that your request was refused. Here is what to do now."
-msgstr ""
+msgstr "نأسف لسماع ان طلبك قوبل بالرفض. هنا تجد ما عليك فعله"
msgid "Old e-mail:"
-msgstr ""
+msgstr "رسالة إلكترونية قديمة:"
msgid "Old email address isn't the same as the address of the account you are logged in with"
-msgstr ""
+msgstr "عنوان بريدكم الإلكتروني القديم يختلف عن عنوان الحساب الذي تمّ تسجيل دخولكم به"
msgid "Old email doesn't look like a valid address"
-msgstr ""
+msgstr "الرسالة الالكترونية القديمة لاتبدو كعنوان صالح"
msgid "On this page"
-msgstr ""
+msgstr "في هذه الصفحة"
msgid "One FOI request found"
-msgstr ""
+msgstr "تم العثور على مطلب لحرية النفاذ الى المعلومة "
msgid "One person found"
-msgstr ""
+msgstr "تمّ العثور على شخص واحد"
msgid "One public authority found"
+msgstr "تمّ العثور على مؤسسة عمومية واحدة"
+
+msgid "Only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL – don't worry about breaking URLs through renaming, as the history is used to redirect"
msgstr ""
msgid "Only requests made using {{site_name}} are shown."
-msgstr ""
+msgstr "لا تظهر الا المطالب التي قدمت باستخدام{{site_name}}"
msgid "Only the authority can reply to this request, and I don't recognise the address this reply was sent from"
-msgstr ""
+msgstr "السلطو فقط بامكانها الاجابة على هذا الطلب, لا اقدر على التعرف على العنوان الذي ارسل منه الرد"
msgid "Only the authority can reply to this request, but there is no \"From\" address to check against"
-msgstr ""
+msgstr "السلطة فقط قادرة على الرد على هذا الطلب, ولكن لا يوجد اي عنوان وارد للرد عليه"
msgid "Or search in their website for this information."
-msgstr ""
+msgstr "أو قوموا بالبحث على هذه المعلومات على موقعهم ."
msgid "Original request sent"
-msgstr ""
+msgstr "تمّ إرسال المطلب الأصلي"
msgid "Other:"
-msgstr ""
+msgstr "غيرها:"
msgid "Outgoing message"
-msgstr ""
+msgstr "الرسائل الصادرة"
msgid "OutgoingMessage|Body"
-msgstr ""
+msgstr "الرسائل الصادرة|الهيكل"
msgid "OutgoingMessage|Last sent at"
-msgstr ""
+msgstr "الرسائل الصادرة|اخر تاريخ للارسال"
msgid "OutgoingMessage|Message type"
-msgstr ""
+msgstr "الرسائل الصادرة|نوع الرسالة"
msgid "OutgoingMessage|Status"
-msgstr ""
+msgstr "الرسائل الصادرة|الحالة"
msgid "OutgoingMessage|What doing"
-msgstr ""
+msgstr "الرسائل الصادرة|ما العمل"
msgid "Partially successful."
-msgstr ""
+msgstr "ناجحة جزئيا."
msgid "Password is not correct"
-msgstr ""
+msgstr "كلمة العبور خاطئة"
msgid "Password:"
-msgstr ""
+msgstr "كلمة العبور:"
msgid "Password: (again)"
-msgstr ""
+msgstr "كلمة العبور: (ثانيةً)"
msgid "Paste this link into emails, tweets, and anywhere else:"
-msgstr ""
+msgstr " الصق هذا الرابط على الرسائل الالكترونية,التغريدات و في اي مكان اخر."
msgid "People"
-msgstr ""
+msgstr "الناس"
msgid "People {{start_count}} to {{end_count}} of {{total_count}}"
-msgstr ""
+msgstr "الناس {{start_count}} الى {{end_count}} من {{total_count}}"
msgid "Photo of you:"
-msgstr ""
+msgstr "صورة لك:"
msgid "Plans and administrative measures that affect these matters"
-msgstr ""
+msgstr "الخطط والتدابير الإدارية التي تمسّ هذه المسائل "
msgid "Play the request categorisation game"
-msgstr ""
+msgstr "العب لعبة تصنيف الطلب"
msgid "Play the request categorisation game!"
-msgstr ""
+msgstr "العب لعبة تصنيف الطلب!"
msgid "Please"
-msgstr ""
+msgstr "من فضلكم"
-msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
msgstr ""
msgid "Please <strong>answer the question above</strong> so we know whether the "
-msgstr ""
+msgstr "من فضلكم <strong>قوموا بالإجابة عن السؤال أعلاه</strong> حتى نعرف ما إذا كان "
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 ""
+msgstr "الرجاء <strong>الذهاب الى الطلبات التالية</strong>,و اعلامنا\\n ان كانت هناك معلومات عنهم في الردود الحديثة."
msgid "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=\"{{new_request_link}}\">file a new request</a>."
-msgstr ""
+msgstr "الرجاء <strong>الاكتفاء</strong> بكتابة رسائل متصلة بطلبك مباشرة {{request_link}}. اذا كنت ترغب في الحصول على معلومات غير موجودة في طلبك الاصلي , عليك <a href=\"{{new_request_link}}\">اضافة طلب جديد</a>."
msgid "Please ask for environmental information only"
-msgstr ""
+msgstr "الرجاء الاكتفاء بطلب معلومات بيئية"
msgid "Please check the URL (i.e. the long code of letters and numbers) is copied\\ncorrectly from your email."
-msgstr ""
+msgstr "الرجاء التحقق ان عنوان الصفحة (i.e. شيفرة الاحرف و الارقام ) قد تم نسخهn\\بطريقة صحيحة من بريدك الالكتروني."
msgid "Please choose a file containing your photo."
-msgstr ""
+msgstr "يرجى اختيار ملف يحتوي على صورة لكم ."
msgid "Please choose what sort of reply you are making."
-msgstr ""
+msgstr "الرجاء اختيار نوع الرد الذي تقوم به"
msgid "Please choose whether or not you got some of the information that you wanted."
-msgstr ""
+msgstr "الرجاء اختيار ان كنت حصلت على بعض من المعلومات التي اردت ام لا"
msgid "Please click on the link below to cancel or alter these emails."
-msgstr ""
+msgstr "الرجاء الظغط على الرابط اسفله لاغاء او تغيير هذه الرسائل الالكترونية ."
msgid "Please click on the link below to confirm that you want to \\nchange the email address that you use for {{site_name}}\\nfrom {{old_email}} to {{new_email}}"
-msgstr ""
+msgstr " يرجى الظغط على الرابط اسفله لتأكيد رغبتك في \\nتغيير البريد الالكتروني الذي تستعمله على {{site_name}}\\nمن {{old_email}} الى {{new_email}}"
msgid "Please click on the link below to confirm your email address."
-msgstr ""
+msgstr "يرجى الظغط على الرابط اسفله لتأكيد عنوان بريدك الالكتروني"
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 ""
+msgstr "الرجاء تدقيق وصف مايدور حوله الطلب في الموضوع. لاداعي للقول بانه طلب عن حرية النفاذ الى المعلومات لأننا نضيف ذلك في كل الحالات."
msgid "Please don't upload offensive pictures. We will take down images\\n that we consider inappropriate."
-msgstr ""
+msgstr "الرجاء عدم تحميل صور مخلة.سنحذف الصور التي\\n نعتبرها غير ملائمة."
msgid "Please enable \"cookies\" to carry on"
-msgstr ""
+msgstr "الرجاء ايقاف ملفات الارتباط \"cookies\""
msgid "Please enter a password"
-msgstr ""
+msgstr "الرجاء إدخال كلمة المرور"
msgid "Please enter a subject"
-msgstr ""
+msgstr "الرجاء ادخال الموضوع"
msgid "Please enter a summary of your request"
-msgstr ""
+msgstr "الرجاء إدخال ملخص لمطلبكم"
msgid "Please enter a valid email address"
-msgstr ""
+msgstr "الرجاء إدخال عنوان بريد إلكتروني صالح"
msgid "Please enter the message you want to send"
-msgstr ""
+msgstr "الرجاء ادخال الرسالة التي تريد بعثها "
msgid "Please enter the same password twice"
-msgstr ""
+msgstr "الرجاء إدخال كلمة المرور نفسها مرتين"
msgid "Please enter your annotation"
-msgstr ""
+msgstr "الرجاء ادخال ملاحظتك"
msgid "Please enter your email address"
-msgstr ""
+msgstr "يرجى إدخال عنوان البريد الإلكتروني"
msgid "Please enter your follow up message"
-msgstr ""
+msgstr "الرجاء ادخال رسالة متابعتك"
msgid "Please enter your letter requesting information"
-msgstr ""
+msgstr "الرجاء ادخال رسالتك لطلب المعلومة"
msgid "Please enter your name"
-msgstr ""
+msgstr "الرجاء إدخال الإسم"
msgid "Please enter your name, not your email address, in the name field."
-msgstr ""
+msgstr " يرجى ادخال اسمك,و ليس عنوانك البريدي, في المكان المخصص للاسم. "
msgid "Please enter your new email address"
-msgstr ""
+msgstr "يرجى إدخال عنوان البريد الإلكتروني الجديد"
msgid "Please enter your old email address"
-msgstr ""
+msgstr "يرجى إدخال عنوان البريد الإلكتروني القديم"
msgid "Please enter your password"
-msgstr ""
+msgstr "الرجاء إدخال كلمة المرور"
msgid "Please give details explaining why you want a review"
-msgstr ""
+msgstr "الرجاء ادخال تفاصيل تشرح سبب رغبتك في اعادة النظر"
msgid "Please keep it shorter than 500 characters"
-msgstr ""
+msgstr "الرجاء عدم تجاوز 500 رمز"
msgid "Please keep the summary short, like in the subject of an email. You can use a phrase, rather than a full sentence."
-msgstr ""
+msgstr "الرجاء ابقاء الملخص قصيرا, مثل الموضوع في الرسائل الالكترونية. يمكنك استعمال عبارات عوضا عن الجمل الكاملة."
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 ""
+msgstr "الرجاء طلب المعلومات التي تصنف ضمن هذه الفئات وحسب, <strong>لا تضيع\\n وقتك</strong> او وقت the السلطة العامة بطلب معلومات غير ذات صلة."
msgid "Please select each of these requests in turn, and <strong>let everyone know</strong>\\nif they are successful yet or not."
-msgstr ""
+msgstr "الرجاء اختيار كل من هذه الطلبات بدوره,و <strong>أعلم الجميع</strong>\\nان كانت الطلبات ناجحة ام ليس بعد."
-msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature"
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
msgstr ""
msgid "Please sign in as "
-msgstr ""
+msgstr "يرجى تسجيل الدخول ك"
msgid "Please sign in or make a new account."
msgstr ""
msgid "Please type a message and/or choose a file containing your response."
-msgstr ""
-
-msgid "Please use the form below to tell us more."
-msgstr ""
+msgstr "يرجى كتابة رسالة و / أو اختيار ملف يحتوي على ردكم."
msgid "Please use this email address for all replies to this request:"
-msgstr ""
+msgstr "يرجى استخدام البريد الإلكتروني لجميع الردود على هذا المطلب على هذا العنوان :"
msgid "Please write a summary with some text in it"
-msgstr ""
+msgstr "الرجاء كتابة نص صغير للتلخيص"
msgid "Please write the summary using a mixture of capital and lower case letters. This makes it easier for others to read."
-msgstr ""
+msgstr "الرجاء كتابة تلخيص واضح لتسهيل القراءة على الاخرين."
msgid "Please write your annotation using a mixture of capital and lower case letters. This makes it easier for others to read."
-msgstr ""
+msgstr "الرجاء كتابة ملاحظة واضحة لتسهيل القراءة على الاخرين."
msgid "Please write your follow up message containing the necessary clarifications below."
-msgstr ""
+msgstr "الرجاء كتابة رسالة المتابعة و تضمينها التوضيحات اللازمة اسفله."
msgid "Please write your message using a mixture of capital and lower case letters. This makes it easier for others to read."
-msgstr ""
+msgstr "الرجاء كتابة رسالة واضحة لتسهيل القراءة على الاخرين."
msgid "Point to <strong>related information</strong>, campaigns or forums which may be useful."
-msgstr ""
+msgstr "أشر الى <strong>المعلومات ذات الصلة</strong>, الحملات او المنتديات التي قد تكون مفيدة."
msgid "Possibly related requests:"
-msgstr ""
+msgstr "الطلبات التي قد تكون متصلة."
msgid "Post annotation"
-msgstr ""
+msgstr "انشر الملاحظة"
msgid "Post redirect"
-msgstr ""
+msgstr "إعادة توجيه النشر"
msgid "PostRedirect|Circumstance"
-msgstr ""
+msgstr "اعادة توجيه النشر|الظرف"
msgid "PostRedirect|Email token"
-msgstr ""
+msgstr "اعادة توجيه النشر|علامة البريد الالكتروني"
msgid "PostRedirect|Post params yaml"
-msgstr ""
+msgstr "اعادة توجيه الرابط|اعدادات الرابط yaml"
msgid "PostRedirect|Reason params yaml"
-msgstr ""
+msgstr "اعادة توجيه الرابط|سبب اعدادات yaml"
msgid "PostRedirect|Token"
-msgstr ""
+msgstr "اعادة توجيه النشر|علامة"
msgid "PostRedirect|Uri"
-msgstr ""
+msgstr "اعادة توجيه الرابط|Uri"
msgid "Posted on {{date}} by {{author}}"
-msgstr ""
+msgstr "نشر في {{date}} من قبل {{author}}"
msgid "Powered by <a href=\"http://www.alaveteli.org/\">Alaveteli</a>"
msgstr ""
msgid "Prev"
-msgstr ""
+msgstr "السابق"
msgid "Preview follow up to '"
-msgstr ""
+msgstr "الق نظرة على المتابعة ل"
msgid "Preview new annotation on '{{info_request_title}}'"
-msgstr ""
+msgstr "الق نظرة على الملاحظة الجديدة على '{{info_request_title}}'"
msgid "Preview your annotation"
-msgstr ""
+msgstr "الق نظرة على ملاحظتك"
msgid "Preview your message"
-msgstr ""
+msgstr "الق نظرة على رسالتك"
msgid "Preview your public request"
-msgstr ""
+msgstr "الق نظرة على طلبك العلني"
msgid "Profile photo"
-msgstr ""
+msgstr "صورة الحساب"
msgid "ProfilePhoto|Data"
-msgstr ""
+msgstr "صورة الحساب|بيانات"
msgid "ProfilePhoto|Draft"
-msgstr ""
+msgstr "صورة الحساب|مسودة"
msgid "Public authorities"
-msgstr ""
+msgstr "السلطات العامة "
msgid "Public authorities - {{description}}"
-msgstr ""
+msgstr "سلطات عامة - {{description}}"
msgid "Public authorities {{start_count}} to {{end_count}} of {{total_count}}"
-msgstr ""
-
-msgid "Public body"
-msgstr ""
-
-msgid "Public body/translation"
-msgstr ""
+msgstr "السلطات العمومية {{start_count}} الى {{end_count}} من {{total_count}}"
-msgid "PublicBody::Translation|Disclosure log"
+msgid "Public authority – {{name}}"
msgstr ""
-msgid "PublicBody::Translation|First letter"
-msgstr ""
-
-msgid "PublicBody::Translation|Locale"
-msgstr ""
-
-msgid "PublicBody::Translation|Name"
-msgstr ""
-
-msgid "PublicBody::Translation|Notes"
-msgstr ""
-
-msgid "PublicBody::Translation|Publication scheme"
-msgstr ""
+msgid "Public body"
+msgstr "الهيكل العامّ"
-msgid "PublicBody::Translation|Request email"
+msgid "Public notes"
msgstr ""
-msgid "PublicBody::Translation|Short name"
+msgid "Public page"
msgstr ""
-msgid "PublicBody::Translation|Url name"
+msgid "Public page not available"
msgstr ""
msgid "PublicBody|Api key"
-msgstr ""
+msgstr "الهيكل العام|مفتاح واجهة مبرمج التطبيقات"
msgid "PublicBody|Disclosure log"
-msgstr ""
+msgstr "الهيكل العامّ|كشف السجل"
msgid "PublicBody|First letter"
-msgstr ""
+msgstr "الهيكل العامّ|أول حرف"
msgid "PublicBody|Home page"
-msgstr ""
+msgstr "الهيكل العامّ|الصفحة الرئيسية"
msgid "PublicBody|Info requests count"
msgstr ""
msgid "PublicBody|Last edit comment"
-msgstr ""
+msgstr "الهيكل العامّ|اخر تعليق محوّر"
msgid "PublicBody|Last edit editor"
-msgstr ""
+msgstr "الهيكل العامّ|اخر تنقيح محوّر"
msgid "PublicBody|Name"
-msgstr ""
+msgstr "الهيكل العامّ|اسم"
msgid "PublicBody|Notes"
-msgstr ""
+msgstr "الهيكل العامّ|ّملاحظات"
msgid "PublicBody|Publication scheme"
-msgstr ""
+msgstr "الهيكل العامّ|مخطط مايقع نشره"
msgid "PublicBody|Request email"
-msgstr ""
+msgstr "الهيكل العامّ|طلب البريد الالكتروني"
msgid "PublicBody|Short name"
-msgstr ""
+msgstr "الهيكل العامّ|اسم مختصر"
msgid "PublicBody|Url name"
-msgstr ""
+msgstr "الهيكل العامّ|اسم الموقع"
msgid "PublicBody|Version"
-msgstr ""
+msgstr "الهيكل العامّ|نسخة"
msgid "Publication scheme"
+msgstr "مخطط مايقع نشره"
+
+msgid "Publication scheme URL"
msgstr ""
msgid "Purge request"
-msgstr ""
+msgstr "مطلب تطهير"
msgid "PurgeRequest|Model"
-msgstr ""
+msgstr "نهاية الصلاحية|نموذج"
msgid "PurgeRequest|Url"
msgstr ""
msgid "RSS feed"
-msgstr ""
+msgstr "رد ال RSS "
msgid "RSS feed of updates"
-msgstr ""
+msgstr "ردود التحيينات الخاصة ب RSS ر س س"
msgid "Re-edit this annotation"
-msgstr ""
+msgstr "اعادة تحوير هذه الملاحظات"
msgid "Re-edit this message"
-msgstr ""
+msgstr "أعد-تغيير هذه الرسالة"
msgid "Read about <a href=\"{{advanced_search_url}}\">advanced search operators</a>, such as proximity and wildcards."
-msgstr ""
+msgstr "اقرأ عن <a href=\"{{advanced_search_url}}\">محركات البحث المتقدم </a>, مثل القرب و احرف البدل."
msgid "Read blog"
-msgstr ""
+msgstr "قراءة المدوَّنة الخاصة "
msgid "Received an error message, such as delivery failure."
-msgstr ""
+msgstr "تم استقبال رسالة خطأ، مثل فشل في الارسال"
msgid "Recently described results first"
-msgstr ""
+msgstr "اظهار أحدث النتائج أولا"
msgid "Refused."
-msgstr ""
+msgstr "مرفوض."
msgid "Remember me</label> (keeps you signed in longer;\\n do not use on a public computer) "
-msgstr ""
+msgstr "تذكرني</label> (البقاء متصلا;\\n عدم تسجيل الدخول على حاسوب عمومي) "
msgid "Report abuse"
-msgstr ""
+msgstr "الإبلاغ عن سوء استخدام"
msgid "Report an offensive or unsuitable request"
-msgstr ""
+msgstr "بلغ عن طلب غير ملائم أو مخل بالاداب"
msgid "Report this request"
-msgstr ""
+msgstr "التقرير عن هذا المطلب"
msgid "Reported for administrator attention."
-msgstr ""
+msgstr "تم التبليغ لادارة الموقع"
msgid "Request an internal review"
-msgstr ""
+msgstr "طلب مراجعة داخلية"
msgid "Request an internal review from {{person_or_body}}"
+msgstr "اطلب مراجعة داخلية من {{person_or_body}}"
+
+msgid "Request email"
msgstr ""
msgid "Request has been removed"
-msgstr ""
+msgstr "تمت إزالة المطلب"
msgid "Request sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
-msgstr ""
+msgstr "تمّ إرسال المطلب إلى {{public_body_name}} من طرف {{info_request_user}} في {{date}}."
msgid "Request to {{public_body_name}} by {{info_request_user}}. Annotated by {{event_comment_user}} on {{date}}."
-msgstr ""
+msgstr "طلب ل {{public_body_name}} من {{info_request_user}}. تمت اضافة الملاحظة من {{event_comment_user}}بتاريخ {{date}}."
msgid "Requested from {{public_body_name}} by {{info_request_user}} on {{date}}"
-msgstr ""
+msgstr "تم الطلب من قيل {{public_body_name}} من خلال {{info_request_user}} في {{date}}"
msgid "Requested on {{date}}"
-msgstr ""
+msgstr "تم الطلب بتاريخ {{date}}"
msgid "Requests for personal information and vexatious requests are not considered valid for FOI purposes (<a href=\"/help/about\">read more</a>)."
-msgstr ""
+msgstr "طلبات المعلومات الشخصية و الطلبات المخلة لا تعتبر صالحة لاقتراحات طلبات النفاذ الى المعلومة (<a href=\"/help/about\">اقرأ المزيد</a>)."
msgid "Requests or responses matching your saved search"
-msgstr ""
+msgstr "الطلبات أو الردود الموافقة لبحثك المسجل"
msgid "Respond by email"
-msgstr ""
+msgstr "الرد عبر البريد الإلكتروني"
msgid "Respond to request"
-msgstr ""
+msgstr "الرد على المطلب "
msgid "Respond to the FOI request"
-msgstr ""
+msgstr "رد على مطالب حرية المعلومة "
msgid "Respond using the web"
-msgstr ""
+msgstr "الرد عن طريق الشبكة العنكبوتية "
msgid "Response"
-msgstr ""
+msgstr "الرد"
msgid "Response from a public authority"
-msgstr ""
+msgstr "ردّ من طرف المؤسسة العمومية"
msgid "Response to '{{title}}'"
-msgstr ""
+msgstr "الردّ على '{{title}}'"
msgid "Response to this request is <strong>delayed</strong>."
-msgstr ""
+msgstr "الردّ على هذا المطلب <strong>وقع حذفه</strong>."
msgid "Response to this request is <strong>long overdue</strong>."
-msgstr ""
+msgstr "الردّ على هذا المطلب <strong>تأخر كثيراً</strong>."
msgid "Response to your request"
-msgstr ""
+msgstr "الردّ على مطلبكم"
msgid "Response:"
-msgstr ""
+msgstr "الردّ:"
msgid "Restrict to"
-msgstr ""
+msgstr "تقيد ب"
msgid "Results page {{page_number}}"
-msgstr ""
+msgstr "صفحة النتائج {{page_number}}"
msgid "Save"
-msgstr ""
+msgstr "الحفظ"
msgid "Search"
-msgstr ""
+msgstr "البحث "
msgid "Search Freedom of Information requests, public authorities and users"
-msgstr ""
+msgstr "ابحث عن مطالب حرية المعلومة و السلطات العامة و المستعملين"
msgid "Search contributions by this person"
-msgstr ""
+msgstr "البحث عن مساهمات هذا الشخص"
msgid "Search for words in:"
-msgstr ""
+msgstr "البحث عن كلمات في :"
msgid "Search in"
-msgstr ""
+msgstr "البحث في "
msgid "Search over<br/>\\n <strong>{{number_of_requests}} requests</strong> <span>and</span><br/>\\n <strong>{{number_of_authorities}} authorities</strong>"
-msgstr ""
+msgstr "ابحث عن<br/>\\n <strong>{{number_of_requests}} الطلبات</strong> <span>و</span><br/>\\n <strong>{{number_of_authorities}} السلطات</strong>"
msgid "Search queries"
-msgstr ""
+msgstr "استفسارات البحث"
msgid "Search results"
-msgstr ""
+msgstr "نتائج البحث"
msgid "Search the site to find what you were looking for."
-msgstr ""
+msgstr "ابحث عن الموقع لتجد ما تبحث عنه."
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests made to {{public_body_name}}"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
@@ -1867,346 +1913,370 @@ msgstr[4] ""
msgstr[5] ""
msgid "Search your contributions"
+msgstr "البحث عن مساهماتك"
+
+msgid "See bounce message"
msgstr ""
msgid "Select one to see more information about the authority."
-msgstr ""
+msgstr "اختر واحدا لرؤية معلومات اكثر على السلطة"
msgid "Select the authority to write to"
-msgstr ""
+msgstr "تحديد المؤسسة التي يرجى مراسلتها"
msgid "Send a followup"
-msgstr ""
+msgstr "ابعث متابعة "
msgid "Send a message to "
-msgstr ""
+msgstr "إرسال رسالة إلى"
msgid "Send a public follow up message to {{person_or_body}}"
-msgstr ""
+msgstr "ابعث رسالة متابعة علنية ل {{person_or_body}}"
msgid "Send a public reply to {{person_or_body}}"
-msgstr ""
+msgstr "ارسل ردا علنيا ل {{person_or_body}}"
msgid "Send follow up to '{{title}}'"
-msgstr ""
+msgstr "ارسل متابعة ل '{{title}}'"
msgid "Send message"
-msgstr ""
+msgstr "ابعث رسالة "
msgid "Send message to "
-msgstr ""
+msgstr "ابعث رسالة ل"
msgid "Send request"
-msgstr ""
+msgstr "إرسال المطلب"
msgid "Set your profile photo"
+msgstr "ضع صورة لحسابك"
+
+msgid "Short name"
msgstr ""
msgid "Short name is already taken"
-msgstr ""
+msgstr "تم اخذ الاسم المختصر"
msgid "Show most relevant results first"
-msgstr ""
+msgstr "اظهر النتائج الأكثر صلة بالموضوع أولا."
msgid "Show only..."
-msgstr ""
+msgstr "اظهر فقط"
msgid "Showing"
-msgstr ""
+msgstr "اظهار"
msgid "Sign in"
-msgstr ""
+msgstr "سجل الدخول"
msgid "Sign in or make a new account"
-msgstr ""
+msgstr "سجل دخولك او افتح حسابا جديدا"
msgid "Sign in or sign up"
-msgstr ""
+msgstr "اشترك او سجل دخولك"
msgid "Sign out"
-msgstr ""
+msgstr "تسجيل الخروج"
msgid "Sign up"
-msgstr ""
+msgstr "اشترك"
msgid "Similar requests"
-msgstr ""
+msgstr "طلبات مماثلة"
msgid "Simple search"
-msgstr ""
+msgstr "بحث بسيط"
msgid "Some notes have been added to your FOI request - "
-msgstr ""
+msgstr "بعض الملاحظات اضيفت لطلبك لحرية النفاذ للمعلومة"
msgid "Some of the information requested has been received"
-msgstr ""
+msgstr "وقع تلقي بعض المعلومات المطلوبة"
msgid "Some people who've made requests haven't let us know whether they were\\nsuccessful or not. We need <strong>your</strong> help &ndash;\\nchoose one of these requests, read it, and let everyone know whether or not the\\ninformation has been provided. Everyone'll be exceedingly grateful."
-msgstr ""
+msgstr "بعض الاشخاص الذين قدموا طلبات لم يعلمونا عم اذا \\n نجحوا بذلك ام لا. نحتاج <strong>مساعدنك</strong> &ndash;\\nاختر واحدا من هذه الطلبات, اقرأه, و اعلم الجميع عما اذا كانت\\nالمعلومة متوفرة. سيكون الجميع ممتنا."
msgid "Somebody added a note to your FOI request - "
-msgstr ""
+msgstr "احدهم اضاف ملحوظة لمطلب حرية النفاذ للمعلومة "
msgid "Someone has updated the status of your request"
-msgstr ""
+msgstr "قام شخص بتحيين حالة طلبك."
msgid "Someone, perhaps you, just tried to change their email address on\\n{{site_name}} from {{old_email}} to {{new_email}}."
-msgstr ""
+msgstr "احدهم, ربما انت, حاول تغيير عنوان بريده الالكتروني على on\\n{{site_name}} من {{old_email}} الى {{new_email}}."
msgid "Sorry - you cannot respond to this request via {{site_name}}, because this is a copy of the request originally at {{link_to_original_request}}."
-msgstr ""
+msgstr "اسف - لا تسطيع الاجابة عن هذا الطلب من خلال {{site_name}}, لأنه نسخة من الطلب الموجود اساسا على {{link_to_original_request}}."
msgid "Sorry, but only {{user_name}} is allowed to do that."
-msgstr ""
+msgstr "المعذرة, ولكن بامكان {{user_name}} فقط القيام بذلك."
msgid "Sorry, there was a problem processing this page"
-msgstr ""
+msgstr "نأسف, كان هناك مشكلة في فتح هذه الصفحة."
msgid "Sorry, we couldn't find that page"
-msgstr ""
+msgstr "المعذرة, لم نتمكن من ايجاد الصفحة "
msgid "Special note for this authority!"
-msgstr ""
+msgstr "ملاحظة خاصة بهذه السلطة."
msgid "Start"
-msgstr ""
+msgstr "ابدأ"
msgid "Start now &raquo;"
-msgstr ""
+msgstr "ابدأ الان &raquo;"
msgid "Start your own blog"
-msgstr ""
+msgstr "اطلق مدونتك الخاصة"
msgid "Stay up to date"
-msgstr ""
+msgstr "تلق كل التحيينات"
msgid "Still awaiting an <strong>internal review</strong>"
-msgstr ""
+msgstr "مازلت بانتظار <strong>مراجعة داخلية</strong>"
msgid "Subject"
-msgstr ""
+msgstr "موضوع"
msgid "Subject:"
-msgstr ""
+msgstr "موضوع"
msgid "Submit"
-msgstr ""
+msgstr "اضف"
msgid "Submit status"
+msgstr "اضف حالة"
+
+msgid "Submit status and send message"
msgstr ""
msgid "Subscribe to blog"
-msgstr ""
+msgstr "الاشتراك في المدونة"
msgid "Successful Freedom of Information requests"
-msgstr ""
+msgstr "مطالب حرية النفاذ للمعلومة ناجحة"
msgid "Successful."
-msgstr ""
+msgstr "ناجح"
msgid "Suggest how the requester can find the <strong>rest of the information</strong>."
-msgstr ""
+msgstr "اقترح الطريقة التي يستطيع من خلالها صاحب الطلب ايجاد <strong>بقية المعلومات</strong>."
msgid "Summary:"
-msgstr ""
+msgstr "ملخص"
msgid "Table of statuses"
-msgstr ""
+msgstr "جدول الحالات"
msgid "Table of varieties"
+msgstr "جدول الخيارات"
+
+msgid "Tags"
msgstr ""
msgid "Tags (separated by a space):"
-msgstr ""
+msgstr "اشارات (يفصلها فراغ):"
msgid "Tags:"
-msgstr ""
+msgstr "اشارات"
msgid "Technical details"
-msgstr ""
+msgstr "تفاصيل تقنية"
msgid "Thank you for helping us keep the site tidy!"
-msgstr ""
+msgstr "شكرا على مساعدتنا على ابقاء الموقع مرتبا!"
msgid "Thank you for making an annotation!"
-msgstr ""
+msgstr "شكرا على القيام بملاحظة!"
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 ""
+msgstr "شكرا للرد على طلب النفاذ الى المعلومة ! تم نشر طلبك اسفله, تم ارسال رابط لردك بواسطة البريد الالكتروني ل "
msgid "Thank you for updating the status of the request '<a href=\"{{url}}\">{{info_request_title}}</a>'. There are some more requests below for you to classify."
-msgstr ""
+msgstr "شكرا لتحديث حالة الطلب '<a href=\"{{url}}\">{{info_request_title}}</a>'. تجد اسفله طلبات اخرى لتصنفها."
msgid "Thank you for updating this request!"
-msgstr ""
+msgstr "شكرا على تحيين الطلب"
msgid "Thank you for updating your profile photo"
+msgstr "شكرا على تحيين صورة الحساب"
+
+msgid "Thank you! We'll look into what happened and try and fix it up."
msgstr ""
msgid "Thanks for helping - your work will make it easier for everyone to find successful\\nresponses, and maybe even let us make league tables..."
-msgstr ""
+msgstr "شكرا على المساعدة - سيساعد عملك الجميع في ايجاد\\nردود ناجحة, وحتى في انجاز جداول احصاء..."
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 ""
+msgstr "شكرا جزيلا - سيساعدهذا الاخرين في العثور على أشياء مفيدة. سوف\\n نمدك أيضا ان احتجت بنصائح حول ما يجب أن تفعل لاحقا بخصوص \\n طلباتك."
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 ""
+msgstr "شكرا جزيلا على مساعدتنا في الحفاظ على كل شيء <strong>واضحا ومنظما</strong>.\\n ان احتجت،سنمدك ايضا بنصائح حول مايجب ان تفعله لاحقا بخصوص\\n كل من طلباتك."
msgid "That doesn't look like a valid email address. Please check you have typed it correctly."
-msgstr ""
+msgstr "هذا لا يبدو كعنوان بريد الكتروني صالح.الرجاء التأكد من أنك كتبته بطريقة صحيحة."
msgid "The <strong>review has finished</strong> and overall:"
-msgstr ""
+msgstr "تم <strong>اتمام المراجعة</strong> بطريقة شاملة:"
msgid "The Freedom of Information Act <strong>does not apply</strong> to"
-msgstr ""
+msgstr "قانون حرية المعلومات <strong>لا ينطبق</strong> على"
msgid "The accounts have been left as they previously were."
-msgstr ""
+msgstr "تم ترك كل حساب كما كان سابقا"
msgid "The authority do <strong>not have</strong> the information <small>(maybe they say who does)"
-msgstr ""
+msgstr "السلطة <strong>لا تملك</strong> المعلومة <small>(ربما يقولون من يملكها)"
msgid "The authority only has a <strong>paper copy</strong> of the information."
-msgstr ""
+msgstr "السلطة لا تملك سوى <strong>نسخة</strong> من المعلومة"
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 ""
+msgstr "السلطات تقول انها <strong>تحتاج عنوانا\\n بريديا</strong>, لا بريدا الكترونيا فقط, ليكون طلب حرية النفاذ الى المعلومة صالحا"
msgid "The authority would like to / has <strong>responded by post</strong> to this request."
-msgstr ""
+msgstr "هذه السلطة ترغب في / قامت ب <strong>الرد عبر النشر</strong> على هذا الطلب."
msgid "The email that you, on behalf of {{public_body}}, sent to\\n{{user}} to reply to an {{law_used_short}}\\nrequest has not been delivered."
-msgstr ""
+msgstr "البريد الالكتروني الذي, ارسلته عوضا عن {{public_body}} الى\\n{{user}} للرد على {{ law_used_short}}\\n لم يقع ارسال الطلب."
msgid "The page doesn't exist. Things you can try now:"
-msgstr ""
+msgstr "هذه الصفحة غير موجودة. الاشياء التي لمكن ان تجربها:"
msgid "The public authority does not have the information requested"
-msgstr ""
+msgstr "السلطة العامة لا تملك المعلومة المطلوبة"
msgid "The public authority would like part of the request explained"
-msgstr ""
+msgstr "السلطة العامة تريد تفسيرا لجزء من الطلب"
msgid "The public authority would like to / has responded by post"
-msgstr ""
+msgstr "ترغب السلطة العامة في /الرد عبر النشر"
msgid "The request has been <strong>refused</strong>"
-msgstr ""
+msgstr "وقع رفض <strong>الطلب</strong>"
msgid "The request has been updated since you originally loaded this page. Please check for any new incoming messages below, and try again."
-msgstr ""
+msgstr " تم تحيين الطلب منذ حملت الصفحة. الرجاء التحقق من ورود اي رسائل اسفله, و حاول مجددا."
msgid "The request is <strong>waiting for clarification</strong>."
-msgstr ""
+msgstr "الطلب <strong>بانتظار توضيح</strong>."
msgid "The request was <strong>partially successful</strong>."
-msgstr ""
+msgstr "الطلب كان <strong>ناجحا جزئيا</strong>."
msgid "The request was <strong>refused</strong> by"
-msgstr ""
+msgstr "تم <strong>رفص الطلب</strong> من طرف"
msgid "The request was <strong>successful</strong>."
-msgstr ""
+msgstr "كان الطلب <strong>ناجحا</strong>."
msgid "The request was refused by the public authority"
-msgstr ""
+msgstr "تم رفض الطلب من طرف السلطة العامةّ"
-msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"%s\">contact us</a> if you have any questions."
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
msgstr ""
msgid "The requester has abandoned this request for some reason"
-msgstr ""
+msgstr "تخلى صاحب الطلب عن هذا الطلب لأسباب معينة"
-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"
+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 ""
-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"
+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 ""
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 ""
+msgstr "مؤشر البحث خارج الخدمة حاليا,لذلك لا يمكننا اظهار طلبات حرية النفاذ للمعلومة التي قامت بها هذه السلطة."
msgid "The search index is currently offline, so we can't show the Freedom of Information requests this person has made."
+msgstr "مؤشر البحث خارج الخدمة حاليا, لذلك ليس بامكاننا اظهار طلبات حرية النفاذ الى المعلومة التي قدمها هذا الشخص."
+
+msgid "The {{site_name}} team."
msgstr ""
msgid "Then you can cancel the alert."
-msgstr ""
+msgstr "تستطيع بعد ذلك الغاء التنبيه"
msgid "Then you can cancel the alerts."
-msgstr ""
+msgstr "تستطيع بعد ذلك الغاء التنبيهات"
msgid "Then you can change your email address used on {{site_name}}"
-msgstr ""
+msgstr "ثم بامكانك تغيير عنوان بريدك الالكتروني المستعمل على{{site_name}}"
msgid "Then you can change your password on {{site_name}}"
-msgstr ""
+msgstr "ثم يمكنك تغيير كلمة السر على {{site_name}}"
msgid "Then you can classify the FOI response you have got from "
-msgstr ""
+msgstr "ثم يمكنك تصنيف رد حرية النفاذ للمعلومة الذي تحصلت عليه من "
msgid "Then you can download a zip file of {{info_request_title}}."
-msgstr ""
+msgstr "ثم يمكنك تنويل ملف مظغوط من{{info_request_title}}."
msgid "Then you can log into the administrative interface"
-msgstr ""
+msgstr "ثم يمكنك تسجيل دخولك للمجال الاداري"
msgid "Then you can play the request categorisation game."
-msgstr ""
+msgstr "ثم بامكانك ان تلعب لعبة تصنيف الطلب"
msgid "Then you can report the request '{{title}}'"
-msgstr ""
+msgstr "ثم يمكنك التبليغ عن الطلب '{{title}}'"
msgid "Then you can send a message to "
-msgstr ""
+msgstr "ثم يمكنك بعث رسالة"
msgid "Then you can sign in to {{site_name}}"
-msgstr ""
+msgstr "ثم يمكنك تسجيل دخولك ل {{site_name}}"
msgid "Then you can update the status of your request to "
-msgstr ""
+msgstr "ثم بامكانك نحيين حالة طلباتك ل"
msgid "Then you can upload an FOI response. "
-msgstr ""
+msgstr "بامكانك تحميل طلب لحريةالنفاذ الى المعلومة ."
msgid "Then you can write follow up message to "
-msgstr ""
+msgstr "ثم بامكانك كتابة رسالة متابعة ل"
msgid "Then you can write your reply to "
-msgstr ""
+msgstr "ثم بامكانك كتابة ردك ل"
msgid "Then you will be following all new FOI requests."
-msgstr ""
+msgstr "ثم ستتمكن من متابعة كل الطلبات الجديدة لحرية النفاذ الى المعلومة."
msgid "Then you will be notified whenever '{{user_name}}' requests something or gets a response."
-msgstr ""
+msgstr " ثم سيتم إعلامك كلما قام '{{user_name}}' بتقديم طلب او تحصل على رد."
msgid "Then you will be notified whenever a new request or response matches your search."
-msgstr ""
+msgstr "ثم سيتم إعلامك كلما تتطابق طلب جديد او رد مع بحثك."
msgid "Then you will be notified whenever an FOI request succeeds."
-msgstr ""
+msgstr "ثم سيتم إعلامك كلما نجح طلبحرية النفاذ الى المعلومة"
msgid "Then you will be notified whenever someone requests something or gets a response from '{{public_body_name}}'."
-msgstr ""
+msgstr "ثم سيتم إعلامك كلما طلب شخص ما شيئا ما او تحصل على رد من '{{public_body_name}}'."
msgid "Then you will be updated whenever the request '{{request_title}}' is updated."
-msgstr ""
+msgstr "ثم سيتم إعلامك كلما تم '{{request_title}}' تحيين الطلب."
msgid "Then you'll be allowed to send FOI requests."
-msgstr ""
+msgstr "ثم سيكون بامكانك ارسال طلبات حرية الولوج الى المعلومة."
msgid "Then your FOI request to {{public_body_name}} will be sent."
-msgstr ""
+msgstr "ثم سيقع ارسال طلباتك لحرية النفاذ الى المعلومة ل{{public_body_name}} ."
msgid "Then your annotation to {{info_request_title}} will be posted."
-msgstr ""
+msgstr "ثم سيقع نشر {{info_request_title}}ملاحظتك."
msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
-msgstr ""
+msgstr "يوجد {{count}} ملاحظات جديدة {{info_request}} تخص طلبك. اتبع هذا الرابط لرؤية ما كتبوا."
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
+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 "هنالك <strong>اكثر من شخص</strong> يستعمل هذا الموقع و له هذا الاسم.\\n احدهم يظهر اسفله, ربما تعني اسما اخرا:"
+
+msgid "There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>."
+msgstr "عدد المطالب التي بامكانك تقديمها في اليوم الواحد محدود, لاننا لاننا لا تريد ان تكثر على السلطات العامة الطلبات الغير ملائمة. ان كان لديك سبب وجيه لتسألهم الترفيع في العدد المحدد للطلبات في حالتك, الرجاء <a href='{{help_contact_path}}'>الاتصال بنا</a>."
+
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
@@ -2214,80 +2284,80 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
-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 ""
-
-msgid "There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>."
-msgstr ""
-
msgid "There was a <strong>delivery error</strong> or similar, which needs fixing by the {{site_name}} team."
-msgstr ""
+msgstr "كان هنالك <strong>خطأ في التسلبم</strong> او ما شابه ذلك, و يحتاج اصلاحه من قبل {{site_name}} الفريق."
msgid "There was an error with the words you entered, please try again."
-msgstr ""
+msgstr "كان هتالك خطأ في الكلمات التي ادخلتها الرجاء المحاولة ثانية"
msgid "There were no requests matching your query."
-msgstr ""
+msgstr "لا يوجد ردود تتعلق بتساؤلك,"
msgid "There were no results matching your query."
-msgstr ""
+msgstr "لا يوجد نتائج تتعلق بتساؤلك"
msgid "They are going to reply <strong>by post</strong>"
-msgstr ""
+msgstr "سيقومون بالرد <strong>عبر البريد</strong>"
msgid "They do <strong>not have</strong> the information <small>(maybe they say who does)</small>"
-msgstr ""
+msgstr "لا <strong>يملكون</strong> المعلومة <small>(ربما سيعلمونك بمن يملكها )</small>"
msgid "They have been given the following explanation:"
-msgstr ""
+msgstr "قدم لهم الشرح التالي:"
msgid "They have not replied to your {{law_used_short}} request {{title}} promptly, as normally required by law"
-msgstr ""
+msgstr "لم يقوموا بالرد على {{law_used_short}}طلبك {{title}}, \\n فورا كما هو مطلوب بموجب القانون عادة"
msgid "They have not replied to your {{law_used_short}} request {{title}}, \\nas required by law"
-msgstr ""
+msgstr "لم يقوموا بالرد على {{law_used_short}}طلبك {{title}}, \\nكما هو مطلوب بموجب القانون"
msgid "Things to do with this request"
-msgstr ""
+msgstr "مايمكن فعله بهذا الطلب"
msgid "Things you're following"
-msgstr ""
+msgstr "الاشياء التي تتابعها"
msgid "This authority no longer exists, so you cannot make a request to it."
-msgstr ""
+msgstr "هذه السلطة لم تعد موجودة, لم يعد بامكانك تقديم طلب لها."
-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."
+msgid "This comment has been hidden. See annotations to\\n find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This covers a very wide spectrum of information about the state of\\n the <strong>natural and built environment</strong>, such as:"
-msgstr ""
+msgstr "هذا يغطي مجالا واسعا من المعلومات حول حالة \\n <strong>البيئة الطبيعية و الاصطناعية</strong>, مثل :"
msgid "This external request has been hidden"
-msgstr ""
+msgstr "تم اخفاء الطلب الخارجي"
msgid "This is a plain-text version of the Freedom of Information request \"{{request_title}}\". The latest, full version is available online at {{full_url}}"
-msgstr ""
+msgstr " هذه نسخة نص مجرد بخصوص حرية النفاذ للمعلومة \"{{request_title}}\". يمكنك الحصول على النسخة الأخيرة الكاملة على {{full_url}}"
msgid "This is an HTML version of an attachment to the Freedom of Information request"
-msgstr ""
+msgstr " هذه النسخة من ملحق حرية النفاذ الى المعلومة ترد في صيغة لغة توصيف النصوص المترابطة HTML"
msgid "This is because {{title}} is an old request that has been\\nmarked to no longer receive responses."
+msgstr "حدث هذا لأن {{title}} طلب قديم قد تم \\nبرمجته بحيث لا يستقبل مزيدا من الردود."
+
+msgid "This is the first version."
msgstr ""
msgid "This is your own request, so you will be automatically emailed when new responses arrive."
-msgstr ""
+msgstr "هذا طلبك الشخصي, ستبعث لك رسالة الكترونية بصفة الية عندما يصل الرد الجديد."
-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."
+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=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This particular request is finished:"
-msgstr ""
+msgstr "تم انهاء هذا الطلب المحدد:"
msgid "This person has made no Freedom of Information requests using this site."
-msgstr ""
+msgstr "هذا الشخص لم يقدم اي طلب لحرية النفاذ ابى المعلومة باستخدام هذا الموقع"
+
+msgid "This person's annotations"
+msgstr "ملاحظات هذا الشخص"
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
@@ -2295,8 +2365,8 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
@@ -2304,269 +2374,272 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
-msgid "This person's annotations"
-msgstr ""
-
msgid "This request <strong>requires administrator attention</strong>"
-msgstr ""
+msgstr "هذا الطلب <strong> يتطلب اهتمام المسؤول </strong>"
msgid "This request has already been reported for administrator attention"
-msgstr ""
+msgstr "لقد تم تبليغ الادارة بهذا الطلب"
msgid "This request has an <strong>unknown status</strong>."
-msgstr ""
+msgstr "هذا الطلب لديه <strong>حالة مجهولة</strong>."
msgid "This request has been <strong>hidden</strong> from the site, because an administrator considers it not to be an FOI request"
-msgstr ""
+msgstr "تم اخفاء <strong>هذا الطلب</strong> من الموقع, لان مسؤولا لم يعتبره طلبا لحرية النفاذ الى المعلومة"
msgid "This request has been <strong>hidden</strong> from the site, because an administrator considers it vexatious"
-msgstr ""
+msgstr "هذا الطلب وقع <strong>حذفه</strong> من الموقع, لان مسؤولا وجده مخلا"
msgid "This request has been <strong>reported</strong> as needing administrator attention (perhaps because it is vexatious, or a request for personal information)"
-msgstr ""
+msgstr "قد تم <strong>التبليغ عن هذا الطلب على اساس انه يحتاج اهتماما من الادارة (ربما لاعتباره مخلا, او طلبا لمعلومات شخصية)"
msgid "This request has been <strong>withdrawn</strong> by the person who made it.\\n There may be an explanation in the correspondence below."
-msgstr ""
+msgstr "هذا الطلب <strong>وقع سحبه</strong>من قبل الشخص الذي قام به .\\n قد يوجد تفسير في المراسلات اسفله ."
-msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"%s\">contact us</a>."
+msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
msgid "This request has been reported for administrator attention"
-msgstr ""
+msgstr "تم التبليغ عن هذا الطلب لتهتم به الادارة"
msgid "This request has been set by an administrator to \"allow new responses from nobody\""
-msgstr ""
+msgstr "تمت برمجة هذا الطلب من قبل مشرف ل \"لعدم السماح باي ردود جديدة\""
msgid "This request has had an unusual response, and <strong>requires attention</strong> from the {{site_name}} team."
-msgstr ""
+msgstr "الرد على هذا الطلب غير مألوف, و <strong>يستوجب اهتماما</strong> من {{site_name}} الفريق."
msgid "This request has prominence 'hidden'. You can only see it because you are logged\\n in as a super user."
-msgstr ""
+msgstr "تم اخفاء اهمية هذا الطلب. تستطيع رؤيته فقط لانك سجلت دخولك\\n iكمستخدم متميز."
-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."
+msgid "This request is hidden, so that only you the requester can see it. Please\\n <a href=\"{{url}}\">contact us</a> if you are not sure why."
msgstr ""
msgid "This request is still in progress:"
+msgstr "لا يزال الطلب قيد الانجاز"
+
+msgid "This request requires administrator attention"
msgstr ""
msgid "This request was not made via {{site_name}}"
-msgstr ""
+msgstr "لم يقدم هذا الطلب عبر {{site_name}}"
-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."
+msgid "This response has been hidden. See annotations to find out why.\\n If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This table shows the technical details of the internal events that happened\\nto this request on {{site_name}}. This could be used to generate information about\\nthe speed with which authorities respond to requests, the number of requests\\nwhich require a postal response and much more."
-msgstr ""
+msgstr "هذا الجدول يظهر التفاصيل التقنية للاحداث الداخلية التي وقعت لهذا الطلب على\\ {{site_name}}. يمكن استخدام هذا لتعميم المعلومة حول\\nسرعة رد السلطات على الطلبات , عدد الطلبات\\nالتي تسوجب ردا بريديا و اكثر ."
msgid "This user has been banned from {{site_name}} "
-msgstr ""
+msgstr "تم منع هذا المستخدم من {{site_name}} "
msgid "This was not possible because there is already an account using \\nthe email address {{email}}."
-msgstr ""
+msgstr "هذا الطلب غير ممكن اذ يوجد حساب اخر يستعمل \\nنفس البريد الالكتروني {{email}}."
msgid "To cancel these alerts"
-msgstr ""
+msgstr "لالغاء اشارات التنبيه"
msgid "To cancel this alert"
-msgstr ""
+msgstr "لالغاء اشارة التنبيه"
msgid "To carry on, you need to sign in or make an account. Unfortunately, there\\nwas a technical problem trying to do this."
-msgstr ""
+msgstr "للمواصلة, تحتاج تسجيل الدخول او انشاء حساب جديد. للاسف, واجهنا\\nخطأ تقنيا اثناء القيام بهذا."
msgid "To change your email address used on {{site_name}}"
-msgstr ""
+msgstr "لتغيير عنوان بريد الالكتروني المستخدم على {{site_name}}"
msgid "To classify the response to this FOI request"
-msgstr ""
+msgstr "لتصنيف الرد على هذا الطلب لحرية النفاذ للمعلومة"
msgid "To do that please send a private email to "
-msgstr ""
+msgstr "للقيام بذلك يرجى ارسال رسالة الكترونية ل"
msgid "To do this, first click on the link below."
-msgstr ""
+msgstr "للقيام بذلك, اضغط اولا على الرابط اسفله."
msgid "To download the zip file"
-msgstr ""
+msgstr "لتنزيل الملف المضغوط"
msgid "To follow all successful requests"
-msgstr ""
+msgstr "لمتابعة كل الطلبات الناجحة"
msgid "To follow new requests"
-msgstr ""
+msgstr "لمتابعة الطلبات الجديدة"
msgid "To follow requests and responses matching your search"
-msgstr ""
+msgstr "لمتابعة الطلبات و الاجوبة المتعلقة ببحثك"
msgid "To follow requests by '{{user_name}}'"
-msgstr ""
+msgstr "لمتابعة طلبات '{{user_name}}'"
msgid "To follow requests made using {{site_name}} to the public authority '{{public_body_name}}'"
-msgstr ""
+msgstr "لمتابعة الطلبات المقدمة باستعمال {{site_name}} للسلطة العمومية '{{public_body_name}}'"
msgid "To follow the request '{{request_title}}'"
-msgstr ""
+msgstr "لمتابعة الطلب '{{request_title}}'"
msgid "To help us keep the site tidy, someone else has updated the status of the \\n{{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."
msgstr ""
msgid "To let everyone know, follow this link and then select the appropriate box."
-msgstr ""
+msgstr "لاعلام الجميع, اتبع الرابط ثم قم باختيار الخانة الملائمة."
msgid "To log into the administrative interface"
-msgstr ""
+msgstr " لتسجيل الدخول في المجال الاداري"
msgid "To play the request categorisation game"
-msgstr ""
+msgstr "للعب لعبة تصنيف الطلب"
msgid "To post your annotation"
-msgstr ""
+msgstr "لنشر ملاحظتك"
msgid "To reply to "
-msgstr ""
+msgstr "اجب على "
msgid "To report this FOI request"
-msgstr ""
+msgstr "لتبليغ طلب حرية النفاذ الى المعلومة "
msgid "To send a follow up message to "
-msgstr ""
+msgstr "لبعث رسالة متابعة الى"
msgid "To send a message to "
-msgstr ""
+msgstr "لبعث رسالة الى"
msgid "To send your FOI request"
-msgstr ""
+msgstr "لبعث طلبك لحرية النفاذ للمعلومة"
msgid "To update the status of this FOI request"
-msgstr ""
+msgstr "لتحيين حالة طلب حرية النفاذ للمعلومة هذا"
msgid "To upload a response, you must be logged in using an email address from "
-msgstr ""
+msgstr " لتحميل رد, عليك تسجيل دخولك باستخدام عنوان بريد الكتروني من "
msgid "To use the advanced search, combine phrases and labels as described in the search tips below."
-msgstr ""
+msgstr "لاستخدام البحث المتقدم , ادمج عبارات و رقعة تعريف كم تم وصف ذلك في نصائح الحث اسفله."
msgid "To view the email address that we use to send FOI requests to {{public_body_name}}, please enter these words."
-msgstr ""
+msgstr "لرؤية البريد الالكتروني الذي نستعمله لنرسل طلبات حرية النفاذ للمعلومة {{public_body_name}}, الرجاء ادخال الكلمات التالية ."
msgid "To view the response, click on the link below."
-msgstr ""
+msgstr "لرؤية الاجابة, انقر على الرابط اسفله."
msgid "To {{public_body_link_absolute}}"
-msgstr ""
+msgstr "ل {{public_body_link_absolute}}"
msgid "To:"
-msgstr ""
+msgstr "الى:"
msgid "Today"
-msgstr ""
+msgstr "اليوم"
msgid "Too many requests"
-msgstr ""
+msgstr "طلبات كثيرة جدا"
msgid "Top search results:"
-msgstr ""
+msgstr "افضل نتائج بحث:"
msgid "Track thing"
-msgstr ""
+msgstr "تتبع"
msgid "Track this person"
-msgstr ""
+msgstr "تتبع هذا الشخص"
msgid "Track this search"
-msgstr ""
+msgstr "تتبع هذا البحث"
msgid "TrackThing|Track medium"
-msgstr ""
+msgstr "تتبع|تتبع الوسيط"
msgid "TrackThing|Track query"
-msgstr ""
+msgstr "تتبع|تتبع السؤال"
msgid "TrackThing|Track type"
-msgstr ""
+msgstr "تتبع شيئا|نوع المتابعة"
msgid "Turn off email alerts"
-msgstr ""
+msgstr " اطفئ اشارات تنبيه البريد الالكتروني"
msgid "Tweet this request"
-msgstr ""
+msgstr "ضع هذا الطلب على التويتر"
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 ""
+msgstr "ادخل <strong><code>01/01/2008..14/01/2008</code></strong> لاظهار ما حدث في اول اسبوعين من جانفي فقط."
msgid "URL name can't be blank"
-msgstr ""
+msgstr "لا يمكن ترك مكان عنوان الموقع فارغا"
msgid "Unable to change email address on {{site_name}}"
-msgstr ""
+msgstr "غير قادر على تغيير عنوان البريد الالكتروني على {{site_name}}"
msgid "Unable to send a reply to {{username}}"
-msgstr ""
+msgstr "غير قادر على ارسال رد ل {{username}}"
msgid "Unable to send follow up message to {{username}}"
-msgstr ""
+msgstr "غير قادر على بعث رسالة متابعة ل {{username}}"
msgid "Unexpected search result type"
-msgstr ""
+msgstr "نوع نتيجة البحث غير متوقع"
msgid "Unexpected search result type "
-msgstr ""
+msgstr "نوع نتيجة البحث غير متوقع "
-msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"%s\">contact us</a> to sort it out."
+msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"{{url}}\">contact us</a> to sort it out."
msgstr ""
msgid "Unfortunately, we do not have a working {{info_request_law_used_full}}\\naddress for"
-msgstr ""
+msgstr "للأسف, لا نملك{{info_request_law_used_full}}\\nعنوانا صالحا ل"
msgid "Unknown"
-msgstr ""
+msgstr "مجهول"
msgid "Unsubscribe"
-msgstr ""
+msgstr "إلغاء الاشتراك"
msgid "Unusual response."
-msgstr ""
+msgstr "اجابة غير مألوفة"
msgid "Update the status of this request"
-msgstr ""
+msgstr "حين حالة هذا الطلب"
msgid "Update the status of your request to "
-msgstr ""
+msgstr "حين حالة طلبك ل"
msgid "Upload FOI response"
-msgstr ""
+msgstr "حمل طلب حرية النفاذ للمعلومة"
msgid "Use OR (in capital letters) where you don't mind which word, e.g. <strong><code>commons OR lords</code></strong>"
msgstr ""
msgid "Use quotes when you want to find an exact phrase, e.g. <strong><code>\"Liverpool City Council\"</code></strong>"
-msgstr ""
+msgstr "استخدم اقتباسات عندما تريد ايجاد جملة بعينها, مثال. <strong><code>\"مجلس مدينة ليفربول\"</code></strong>"
msgid "User"
-msgstr ""
+msgstr "المستخدم"
msgid "User info request sent alert"
+msgstr "مستخدم طلب المعلومة بعث تنبيها"
+
+msgid "User – {{name}}"
msgstr ""
msgid "UserInfoRequestSentAlert|Alert type"
-msgstr ""
+msgstr "التنبيه المرسل للمستخدم صاحب الطلب|نوع التنبيه"
msgid "User|About me"
-msgstr ""
+msgstr "مستخدم|معلومات عني"
msgid "User|Address"
-msgstr ""
+msgstr "المستخدم|العنوان"
msgid "User|Admin level"
-msgstr ""
+msgstr "مستخدم|مستوى المشرف"
msgid "User|Ban text"
-msgstr ""
+msgstr "مستخدم|منع النص"
msgid "User|Dob"
msgstr ""
msgid "User|Email"
-msgstr ""
+msgstr "المستخدم|البريد الالكتروني"
msgid "User|Email bounce message"
msgstr ""
@@ -2575,706 +2648,792 @@ msgid "User|Email bounced at"
msgstr ""
msgid "User|Email confirmed"
-msgstr ""
+msgstr "المستخدم|تم تأكيد البريد الالكتروني"
msgid "User|Hashed password"
msgstr ""
msgid "User|Last daily track email"
-msgstr ""
+msgstr "مستخدم|اخر بريد الكتروني للمتابعة اليومية"
msgid "User|Locale"
-msgstr ""
+msgstr "مستخدم|موقع"
msgid "User|Name"
-msgstr ""
+msgstr "المستخدم|الاسم"
msgid "User|No limit"
-msgstr ""
+msgstr "مستخدم|لاحدود"
msgid "User|Receive email alerts"
-msgstr ""
+msgstr "المستخدم|تلقي اشارات تنبيه للرسائل الالكترونية"
msgid "User|Salt"
msgstr ""
msgid "User|Url name"
+msgstr "المستخدم|Url name"
+
+msgid "Version {{version}}"
msgstr ""
msgid "View FOI email address"
-msgstr ""
+msgstr "رؤية البريد الالكتروني لحرية النفاذ الى المعلومة"
msgid "View FOI email address for '{{public_body_name}}'"
-msgstr ""
+msgstr "رؤية البريد الالكتروني لحرية النفاذ الى المعلومة ل '{{public_body_name}}'"
msgid "View FOI email address for {{public_body_name}}"
-msgstr ""
+msgstr "رؤية البريد الالكتروني لحرية النفاذ الى المعلومة {{public_body_name}}"
msgid "View Freedom of Information requests made by {{user_name}}:"
-msgstr ""
+msgstr "الاطلاع على طلبات حرية النفاذ الى المعلومة المقدمة من قبل {{user_name}}:"
msgid "View and search requests"
-msgstr ""
+msgstr "عرض والبحث عن الطلبات"
msgid "View authorities"
-msgstr ""
+msgstr "عرض السلطات"
msgid "View email"
-msgstr ""
+msgstr "عرض البريد الالكتروني"
msgid "View requests"
-msgstr ""
+msgstr "عرض الطلبات"
msgid "Waiting clarification."
-msgstr ""
+msgstr "انتظار التوضيحات"
msgid "Waiting for an <strong>internal review</strong> by {{public_body_link}} of their handling of this request."
-msgstr ""
+msgstr "بانتظار <strong>مراجعة داخلية</strong> من طرف {{public_body_link}} عن كيفية التعامل مع هذا الطلب."
msgid "Waiting for the public authority to complete an internal review of their handling of the request"
-msgstr ""
+msgstr "بانتظار ان تكمل السلطة العامة مراجعة داخلية عن كيفية التعامل مع هذا الطلب."
msgid "Waiting for the public authority to reply"
-msgstr ""
+msgstr "انتظار رد السلطة العامة"
msgid "Was the response you got to your FOI request any good?"
+msgstr "هل كان الرد الذي تحصلت عليه بخصوص طلب حرية النفاذ للمعلومة جيدا؟"
+
+msgid "We consider it is not a valid FOI request, and have therefore hidden it from other users."
msgstr ""
-msgid "We do not have a working request email address for this authority."
+msgid "We consider it to be vexatious, and have therefore hidden it from other users."
msgstr ""
+msgid "We do not have a working request email address for this authority."
+msgstr "لا نملك طلب عنوان بريد الكتروني صالح لهذه السلطة"
+
msgid "We do not have a working {{law_used_full}} address for {{public_body_name}}."
-msgstr ""
+msgstr "لا نملك {{law_used_full}} عنوان بريد الكتروني صالح ل{{public_body_name}}."
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=\"{{url}}\">sign in</a> and let everyone know."
-msgstr ""
+msgstr "لا نعرف ان كان أحدث رد على هذا الطلب يحتوي\\n على المعلومات أم لا\\n &ndash;\\n\tان كنت {{user_link}} الرجاء <a href=\"{{url}}\">تسجيل الدخول</a>واعلام الجميع ."
-msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"%s\">details</a>). "
+msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"{{url}}\">details</a>). "
msgstr ""
msgid "We will not reveal your email address to anybody unless you\\nor the law tell us to."
-msgstr ""
+msgstr " لن نكشف عنوان بريدك الالكتروني لاحد الا اذا قررت انت\\nاو القانون عكس ذلك ."
msgid "We will not reveal your email addresses to anybody unless you\\nor the law tell us to."
-msgstr ""
+msgstr " لن نكشف عناوين بريدك الالكتروني لاحد الا اذا قررت انت\\nاو القانون عكس ذلك ."
msgid "We're waiting for"
-msgstr ""
+msgstr "نحن بانتظار"
msgid "We're waiting for someone to read"
-msgstr ""
+msgstr "نحن بانتظار احد ليقرأ"
msgid "We've sent an email to your new email address. You'll need to click the link in\\nit before your email address will be changed."
-msgstr ""
+msgstr "قمنا بارسال رسالة الكتروني على عنوان بريدك الاكتروني الجديد. اضغط على الرابط الموجود\\nبالرسالة قبل ان يتغير عنوان بريدك الالكتروني."
msgid "We've sent you an email, and you'll need to click the link in it before you can\\ncontinue."
-msgstr ""
+msgstr "بعثنا لك رسالة الكترونية, اضغط على الرابط الموجود بها حتى تستطيع \\nالمواصلة."
msgid "We've sent you an email, click the link in it, then you can change your password."
-msgstr ""
+msgstr "ارسلنا لك رسالة الكترونية, اضغط على الرابط الموجود بها, ثم بامكانك تغيير كلمة السر."
msgid "What are you doing?"
-msgstr ""
+msgstr "ما ذا تفعل؟"
msgid "What best describes the status of this request now?"
-msgstr ""
+msgstr "ما هو افضل وصف لحالة الطلب الان؟"
msgid "What information has been released?"
-msgstr ""
+msgstr "ما هي المعلومات التي تم اصادرها؟"
msgid "What information has been requested?"
-msgstr ""
+msgstr "ما هي المعلومات التي تم طلبها ؟"
msgid "When you get there, please update the status to say if the response \\ncontains any useful information."
-msgstr ""
+msgstr "عندما تصل هناك, الرجاء تحيين الحالة لاخبارنا ان كان الرد يحتوي\\n على معلومات مفيدة."
msgid "When you receive the paper response, please help\\n others find out what it says:"
-msgstr ""
+msgstr "عندما تستقبل ورقة الرد, الرجاء مساعدة الاخرين\\n معرفة محتواها:"
-msgid "When you're done, <strong>come back here</strong>, <a href=\"%s\">reload this page</a> and file your new request."
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
msgstr ""
msgid "Which of these is happening?"
-msgstr ""
+msgstr "أي من هذه يحدث الان؟"
msgid "Who can I request information from?"
-msgstr ""
+msgstr "ممن يمكنني طلب المعلومة؟"
msgid "Withdrawn by the requester."
-msgstr ""
+msgstr "وقع سحبها من قبل صاحب الطلب"
msgid "Wk"
-msgstr ""
+msgstr "Wk"
msgid "Would you like to see a website like this in your country?"
-msgstr ""
+msgstr "هل ترغب في ايجاد موقع كهذا في بلدك؟"
msgid "Write a reply"
-msgstr ""
+msgstr "اكتب ردا"
msgid "Write a reply to "
-msgstr ""
+msgstr "اكتب اجابة ل "
msgid "Write your FOI follow up message to "
-msgstr ""
+msgstr "اكتب رسالة المتابعة على حرية النفاذ للمعلومة الى"
msgid "Write your request in <strong>simple, precise language</strong>."
-msgstr ""
+msgstr "اكتب طلبك <strong>بلغة بسيطة ودقيقة</strong>."
msgid "You"
-msgstr ""
+msgstr "انت"
msgid "You are already following new requests"
-msgstr ""
+msgstr "سبق لك أن بدأت متابعة طلبات جديدة"
msgid "You are already following requests to {{public_body_name}}"
-msgstr ""
+msgstr "سبق لك أن بدأت متابعة الطلبات ل {{public_body_name}}"
msgid "You are already following things matching this search"
-msgstr ""
+msgstr "سبق لك أن بدأت متابعة طلبات تتطابق مع هذا البحث"
msgid "You are already following this person"
-msgstr ""
+msgstr "سبق لك أن بدأت متابعة هذا الشخص"
msgid "You are already following this request"
-msgstr ""
+msgstr "سبق لك أن بدأت متابعة هذا الطلب"
msgid "You are already following updates about {{track_description}}"
-msgstr ""
+msgstr "سبق لك أن بدأت متابعةالتحيينات بخصوص {{track_description}}"
msgid "You are currently receiving notification of new activity on your wall by email."
-msgstr ""
+msgstr "انت بصدد استقبال اشعار بخصوص نشاط جديد على حائطك عن طريق البريد الالكتروني"
msgid "You are following all new successful responses"
-msgstr ""
+msgstr "انت بصدد متابعة كل الردود الجديدة الناجحة."
msgid "You are no longer following {{track_description}}."
-msgstr ""
+msgstr "لم تعد متابعا ل {{track_description}}."
msgid "You are now <a href=\"{{wall_url_user}}\">following</a> updates about {{track_description}}"
-msgstr ""
+msgstr "أنت الان <a href=\"{{wall_url_user}}\">بصدد متابعة</a> التحيينات بخصوص {{track_description}}"
msgid "You can <strong>complain</strong> by"
-msgstr ""
+msgstr "تستطيع <strong>تقديم شكوى</strong> من خلال"
msgid "You can change the requests and users you are following on <a href=\"{{profile_url}}\">your profile page</a>."
-msgstr ""
+msgstr "بامكانك تغيير ماتتابعه من طلبات ومستخدمين على <a href=\"{{profile_url}}\">صفحتك الرئيسية</a>."
msgid "You can get this page in computer-readable format as part of the main JSON\\npage for the request. See the <a href=\"{{api_path}}\">API documentation</a>."
msgstr ""
msgid "You can only request information about the environment from this authority."
-msgstr ""
+msgstr "لا تستطيع طلب معلومات عن البيئة الا من خلال هذه السلطة."
msgid "You have a new response to the {{law_used_full}} request "
-msgstr ""
+msgstr "لديك اجابة جديدة على {{law_used_full}} طلب "
msgid "You have found a bug. Please <a href=\"{{contact_url}}\">contact us</a> to tell us about the problem"
-msgstr ""
+msgstr "لقد وجدت خللا. الرجاء <a href=\"{{contact_url}}\">الاتصال بنا</a> لاعلامنا بالمشكل"
msgid "You have hit the rate limit on new requests. Users are ordinarily limited to {{max_requests_per_user_per_day}} requests in any rolling 24-hour period. You will be able to make another request in {{can_make_another_request}}."
-msgstr ""
+msgstr "لقد بلغت السقف الأقصى للطلبات الجديدة. المستخدمون محددون عادة ب {{max_requests_per_user_per_day}} طلب في كل 24 ساعة. ستتمكن من القيام بطلب جديد خلال{{can_make_another_request}}."
msgid "You have made no Freedom of Information requests using this site."
-msgstr ""
+msgstr "لم تقم بأي طلب يخص حرية النفاذ للمعلومة من خلال هذا الموقع"
msgid "You have now changed the text about you on your profile."
-msgstr ""
+msgstr "لقد قمت الان بتغيير النص الخاص بك على حسابك."
msgid "You have now changed your email address used on {{site_name}}"
-msgstr ""
+msgstr "لقد قمت الان بتغيير بريدك الالكتروني المستخدم على address {{site_name}}"
msgid "You just tried to sign up to {{site_name}}, when you\\nalready have an account. Your name and password have been\\nleft as they previously were.\\n\\nPlease click on the link below."
-msgstr ""
+msgstr "لقد حاولت للتو تسجيل دخولك ل {{site_name}}, في حين انك\\nتملك حسابا. لقد تم الحفاظ على\\nالاسم و كلمة السر الخاصتين بك كما كانا.\\n\\nيرجى الضغط على الرابط اسفله."
msgid "You know what caused the error, and can <strong>suggest a solution</strong>, such as a working email address."
-msgstr ""
+msgstr "انت تعرف سبب الخطأ, وتستطيع <strong>اقتراح حل</strong>, مثل مد بريد الكتروني صحيح."
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 ""
+msgstr "بامكانك <strong>تضمين ملحقات</strong>. اذا كنت ترغب في الحاق \\n ملف كبير ليبعث على البريد الاكتروني, استعمل الصيغة اسفله."
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "You may be able to find\\none on their website, or by phoning them up and asking. If you manage\\nto find one, then please <a href=\"{{help_url}}\">send it to us</a>."
-msgstr ""
+msgstr "قد تتمكن من ايجاد واحد\\nعلى موقعهم, او عبر مهاتفتهم و الاستفسار عن ذلك. اذا تمكنت \\nمن ايجاد واحد, اذا يرجى <a href=\"{{help_url}}\">ارساله الينا</a>."
msgid "You need to be logged in to change the text about you on your profile."
-msgstr ""
+msgstr "يجب أن تسجل دخولك لتتمكن من تغيير النص المتعلق بك على حسابك. "
msgid "You need to be logged in to change your profile photo."
-msgstr ""
+msgstr "يجب أن تسجل دخولك لتتمكن من تغيير صورة حسابك."
msgid "You need to be logged in to clear your profile photo."
-msgstr ""
+msgstr "يجب أن تسجل دخولك لتتمكن من حذف صورة حسابك."
msgid "You need to be logged in to edit your profile."
-msgstr ""
+msgstr "يجب أن تسجل دخولك لتتمكن من القيام بتغييرات في حسابك."
msgid "You previously submitted that exact follow up message for this request."
-msgstr ""
+msgstr "لقد سبق لك أن قدمت نفس رسالة المتابعة لهذا الطلب."
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 ""
+msgstr "كان يجب ان تحصل على نسخة من الطلب عبر البريد الاكتروني, و بامكانك الرد\\n ب <strong>مجرد الاجابة</strong> على تلك الرسالة الالكترونية. لراحتك, هذا هو العنوان:"
msgid "You want to <strong>give your postal address</strong> to the authority in private."
-msgstr ""
+msgstr "سترغب في <strong>مد عنوانك البريدي</strong> الى السلطة بشكل سري."
msgid "You will be unable to make new requests, send follow ups, add annotations or\\nsend messages to other users. You may continue to view other requests, and set\\nup\\nemail alerts."
-msgstr ""
+msgstr "لن تتمكن من القيام باية طلبات جديدة, ابعث متابعات, اضف ملاحظات او\\nابعث رسائل لمستخدمين اخرين. قد تستمر في رؤية طلبات اخرى , و set\\n وضع\\nاشارات تنبيه خاصة بالبريد الالكتروني."
msgid "You will no longer be emailed updates for those alerts"
-msgstr ""
+msgstr "لن تستقبل رسائل الكترونية متعلقة بتحيين اشارات التنبيه"
msgid "You will now be emailed updates about {{track_description}}. <a href=\"{{change_email_alerts_url}}\">Prefer not to receive emails?</a>"
-msgstr ""
+msgstr "ستبدأ في استقبال رسائل الكترونية عن التحيينات بخصوص {{track_description}}. <a href=\"{{change_email_alerts_url}}\">اختر ان لا تصلك هذه الرسائل?</a>"
msgid "You will only get an answer to your request if you follow up\\nwith the clarification."
+msgstr "لن تصلك اجابة عن طلبك الا اذا تابعت \\nمع التوضيح"
+
+msgid "You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further."
msgstr ""
msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
-msgstr ""
+msgstr "انت في. <a href=\"#\" id=\"ارسل-طلب\">واصل ارسال طلبك</a>"
msgid "You're long overdue a response to your FOI request - "
-msgstr ""
+msgstr "طال انتظارك للاجابة على طلبك بخصوص حرة النفاذ للمعلومة"
msgid "You're not following anything."
-msgstr ""
+msgstr "لست متابعا لأي شيء"
msgid "You've now cleared your profile photo"
-msgstr ""
+msgstr "قمت بحذف صورة حسابك"
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
-
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
-
-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>."
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
msgstr ""
msgid "Your annotations"
-msgstr ""
+msgstr "ملاحظاتك"
msgid "Your details, including your email address, have not been given to anyone."
-msgstr ""
+msgstr "لم يقع اعطاء المعلومات الخاصة بك , بما فيها, بريدك الالكتروني لأحد"
msgid "Your e-mail:"
-msgstr ""
+msgstr "بريدك الالكتروني"
-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."
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
msgstr ""
msgid "Your follow up message has been sent on its way."
-msgstr ""
+msgstr "تم بعث رسالتك للمتابعة"
msgid "Your internal review request has been sent on its way."
-msgstr ""
+msgstr "تم ارسال طلبك للمراجعة الداخلية"
msgid "Your message has been sent. Thank you for getting in touch! We'll get back to you soon."
-msgstr ""
+msgstr "تم بعث رسالتك. شكرا للتواصل معنا .سيصلك الرد قريبا"
msgid "Your message to {{recipient_user_name}} has been sent"
-msgstr ""
+msgstr "نم بعث رسالتك لr_name}} has been sent"
msgid "Your message to {{recipient_user_name}} has been sent!"
-msgstr ""
+msgstr "رسالتك الى {{recipient_user_name}} قد تم بعثها"
msgid "Your message will appear in <strong>search engines</strong>"
-msgstr ""
+msgstr "ستظهر رسالتك على <strongمحركات البحث</strong>"
msgid "Your name and annotation will appear in <strong>search engines</strong>."
-msgstr ""
+msgstr "اسمك و ملاحظتك ستظهر على <strong>محركات البحث</strong>."
-msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"%s\">details</a>)."
+msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"{{url}}\">details</a>)."
msgstr ""
msgid "Your name:"
-msgstr ""
+msgstr "اسمك:"
msgid "Your original message is attached."
-msgstr ""
+msgstr "تم ربط رسالتك الاصلية"
msgid "Your password has been changed."
-msgstr ""
+msgstr "تم تغيير كلمة السر"
msgid "Your password:"
-msgstr ""
+msgstr "كلمة السر:"
msgid "Your photo will be shown in public <strong>on the Internet</strong>,\\n wherever you do something on {{site_name}}."
+msgstr "ستظهر صورتك للعموم <strong>على الانترنات</strong>,\\n كلما تفاعلت على {{site_name}}."
+
+msgid "Your request '{{request}}' at {{url}} has been reviewed by moderators."
msgstr ""
-msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
+msgid "Your request on {{site_name}} hidden"
msgstr ""
+msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
+msgstr "تمت تسمية طلبك {{info_request}}. اعلام الجميع عما اذا تحصلت على المعلومات سيساعدنا في التبويب"
+
msgid "Your request:"
-msgstr ""
+msgstr "طلبك :"
msgid "Your response to an FOI request was not delivered"
-msgstr ""
+msgstr "لم يقع ارسال ردك على طلب حرية النفاذ الى المعلومة بنجاح"
-msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"%s\">read why</a> and answers to other questions."
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
msgstr ""
msgid "Your thoughts on what the {{site_name}} <strong>administrators</strong> should do about the request."
-msgstr ""
+msgstr "رأيك بخصوص انسب طريقة {{site_name}} <strong>للمشرفين</strong> للاجابة على الطلب ."
+
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
msgid "Your {{site_name}} email alert"
-msgstr ""
+msgstr "اشارة تنبيه {{site_name}} بريدك الالكتروني"
msgid "Yours faithfully,"
-msgstr ""
+msgstr "تحياتي"
msgid "Yours sincerely,"
+msgstr "تحياتي"
+
+msgid "Yours,"
msgstr ""
msgid "[FOI #{{request}} email]"
-msgstr ""
+msgstr "[حرية النفاذ للمعلومة #{{request}}البريد الالكتروني]"
msgid "[{{public_body}} request email]"
-msgstr ""
+msgstr "[{{public_body}} طلب البريد الالكتروني]"
msgid "[{{site_name}} contact email]"
-msgstr ""
+msgstr "[{{site_name}} اتصل بالبريد الالكتروني"
msgid "\\n\\n[ {{site_name}} note: The above text was badly encoded, and has had strange characters removed. ]"
msgstr ""
msgid "a one line summary of the information you are requesting, \\n\t\t\te.g."
-msgstr ""
+msgstr "ملخص بسطر واحد يخصوص المعلومة التي تطلبها , \\n\t\t\te.g."
msgid "admin"
+msgstr "مشرف"
+
+msgid "alaveteli_foi:The software that runs {{site_name}}"
msgstr ""
msgid "all requests"
-msgstr ""
+msgstr "كل الطلبات"
msgid "also called {{public_body_short_name}}"
-msgstr ""
+msgstr "يدعى كذلك {{public_body_short_name}}"
msgid "an anonymous user"
-msgstr ""
+msgstr "مستخدم مجهول"
msgid "and"
-msgstr ""
+msgstr "و"
msgid "and update the status accordingly. Perhaps <strong>you</strong> might like to help out by doing that?"
-msgstr ""
+msgstr "و قم بتحيين الحالة اعتمادا على ذلك. قد <strong>ترغب</strong> في المساعذة عبر القيام بذلك?"
msgid "and update the status."
-msgstr ""
+msgstr "و قم بتحميل الحالة"
msgid "and we'll suggest <strong>what to do next</strong>"
-msgstr ""
+msgstr "و سنقترح <strong>الخطوة الموالية</strong>"
msgid "any <a href=\"/list\">new requests</a>"
-msgstr ""
+msgstr "اي <a href=\"/list\">طلبات جديدة</a>"
msgid "any <a href=\"/list/successful\">successful requests</a>"
-msgstr ""
+msgstr "اي <a href=\"/list/successful\">طلبات ناجحة</a>"
msgid "anything"
-msgstr ""
+msgstr "اي شيئ"
msgid "are long overdue."
+msgstr "تم تأخيريهم كثيرا"
+
+msgid "at"
msgstr ""
msgid "authorities"
-msgstr ""
+msgstr "سلطات"
msgid "awaiting a response"
-msgstr ""
+msgstr "بانتظار اجابة"
msgid "beginning with ‘{{first_letter}}’"
-msgstr ""
+msgstr "تبدأ ب ‘{{first_letter}}’"
msgid "between two dates"
+msgstr "بين تاريخين"
+
+msgid "but followupable"
msgstr ""
msgid "by"
-msgstr ""
+msgstr "من قبل"
msgid "by <strong>{{date}}</strong>"
-msgstr ""
+msgstr "في حدود <strong>{{date}}</strong>"
msgid "by {{public_body_name}} to {{info_request_user}} on {{date}}."
-msgstr ""
+msgstr "من قبل {{public_body_name}} الى {{info_request_user}} في {{date}}."
msgid "by {{user_link_absolute}}"
-msgstr ""
+msgstr "من {{user_link_absolute}}"
msgid "comments"
-msgstr ""
+msgstr "تعاليق"
msgid "containing your postal address, and asking them to reply to this request.\\n Or you could phone them."
-msgstr ""
+msgstr "تحتوي على عنوانك البريدي, تطلب منهم الرد على هذا الطلب .\\n او بامكانك مهاتفتهم."
msgid "details"
-msgstr ""
+msgstr "تفاصيل"
msgid "display_status only works for incoming and outgoing messages right now"
-msgstr ""
+msgstr "عرض_الحالة غير ممكن حاليا الا بالنسبة للرسائل الواردة و الصادرة"
msgid "during term time"
-msgstr ""
+msgstr "في الوقت المحدد"
msgid "edit text about you"
-msgstr ""
+msgstr "غير النص المتعلق بك"
msgid "even during holidays"
-msgstr ""
+msgstr "حتى خلال العطل"
msgid "everything"
-msgstr ""
+msgstr "كل شيئ"
msgid "external"
-msgstr ""
+msgstr "خارجي"
msgid "has reported an"
-msgstr ""
+msgstr "بلغ عن"
msgid "have delayed."
-msgstr ""
+msgstr "قمت بتأجيل"
msgid "hide quoted sections"
-msgstr ""
+msgstr "اخف الاجزاء المقتبسة"
msgid "in term time"
-msgstr ""
+msgstr "في الوقت المحدد"
msgid "in the category ‘{{category_name}}’"
-msgstr ""
+msgstr "في فئة ‘{{category_name}}’"
msgid "internal error"
-msgstr ""
+msgstr "خطأ داخلي"
msgid "internal reviews"
-msgstr ""
+msgstr "مراجعات داخلية"
msgid "is <strong>waiting for your clarification</strong>."
-msgstr ""
+msgstr "في <strong>انتظار توضيحك</strong>."
msgid "just to see how it works"
-msgstr ""
+msgstr "فقط لمشاهدة كيفية الاشتغال"
msgid "left an annotation"
-msgstr ""
+msgstr "ترك ملاحظة"
msgid "made."
-msgstr ""
+msgstr "قام ب"
msgid "matching the tag ‘{{tag_name}}’"
-msgstr ""
+msgstr "متوافق مع الفئة ‘{{tag_name}}’"
msgid "messages from authorities"
-msgstr ""
+msgstr "رسائل من السلطات"
msgid "messages from users"
+msgstr "رسائل من المستخدمين"
+
+msgid "move..."
msgstr ""
msgid "no later than"
-msgstr ""
+msgstr "لن تتأخر اكثر من"
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "normally"
+msgstr "من المفروض"
+
+msgid "not requestable due to: {{reason}}"
msgstr ""
msgid "please sign in as "
-msgstr ""
+msgstr "الرجاء تسجيل الدخول ك "
msgid "requesting an internal review"
-msgstr ""
+msgstr "طلب مراجعة داخلية"
msgid "requests"
-msgstr ""
+msgstr "طلبات"
msgid "requests which are {{list_of_statuses}}"
-msgstr ""
+msgstr "الطلبات التي {{list_of_statuses}}"
msgid "response as needing administrator attention. Take a look, and reply to this\\nemail to let them know what you are going to do about it."
-msgstr ""
+msgstr "الرد بانه يحتاج اهتمام الادارة. الق نظرة, و اجب على البريد الالكتروني هذا\\ne لاعلامهم بما فعلت بهذا الخصوص ."
msgid "send a follow up message"
-msgstr ""
+msgstr "ابعث رسالة متابعة"
msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
+msgstr "تم ارساله الى {{public_body_name}} من قبل {{info_request_user}} في {{date}}."
+
+msgid "set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA"
msgstr ""
msgid "show quoted sections"
-msgstr ""
+msgstr "اظهر الاجزاء المقتبسة"
msgid "sign in"
-msgstr ""
+msgstr "تسجيل الدخول"
msgid "simple_date_format"
-msgstr ""
+msgstr "صيغة التاريخ البسيطة"
msgid "successful"
-msgstr ""
+msgstr "ناجح"
msgid "successful requests"
-msgstr ""
+msgstr "طلبات ناجحة"
msgid "that you made to"
-msgstr ""
+msgstr "الذي قمت به ل"
msgid "the main FOI contact address for {{public_body}}"
-msgstr ""
+msgstr "عنوان الاتصال بحرية النفاذ للمعلومة {{public_body}}"
+#. This phrase completes the following sentences:
+#. Request an internal review from...
+#. Send a public follow up message to...
+#. Send a public reply to...
+#. Don't want to address your message to... ?
msgid "the main FOI contact at {{public_body}}"
-msgstr ""
+msgstr "ابرز علاقة اتصال لحرية النفاذ للمعلومة على {{public_body}}"
msgid "the requester"
-msgstr ""
+msgstr "صاحب الطلب"
msgid "the {{site_name}} team"
-msgstr ""
+msgstr "فريق {{site_name}} العمل"
msgid "to read"
-msgstr ""
+msgstr "لقراءة"
msgid "to send a follow up message."
-msgstr ""
+msgstr "لبعث رسالة متابعة"
msgid "to {{public_body}}"
-msgstr ""
+msgstr "الى {{public_body}}"
msgid "unexpected prominence on request event"
-msgstr ""
+msgstr "أهمية غير متوقعة لطلب الحدث"
msgid "unknown reason "
-msgstr ""
+msgstr "سبب مجهول"
msgid "unknown status "
-msgstr ""
+msgstr "حالة مجهولة"
msgid "unresolved requests"
-msgstr ""
+msgstr "طلبات لم يتم حلها"
msgid "unsubscribe"
-msgstr ""
+msgstr "إلغاء الاشتراك"
msgid "unsubscribe all"
-msgstr ""
+msgstr "إلغاء كل الاشتراكات"
msgid "unsuccessful"
-msgstr ""
+msgstr "غير ناجح"
msgid "unsuccessful requests"
-msgstr ""
+msgstr "طلبات غير ناجحة"
msgid "useful information."
-msgstr ""
+msgstr "معلومات مفيدة"
msgid "users"
+msgstr "المستخدمون"
+
+msgid "what's that?"
msgstr ""
msgid "{{count}} FOI requests found"
-msgstr ""
+msgstr "{{count}} تم ايجاد طلبات حرية النفاذ الى المعلومة"
+
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
+msgid "{{count}} person is following this authority"
+msgid_plural "{{count}} people are following this authority"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
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 ""
+msgstr "{{existing_request_user}} قد سبق له أن\\n قام بنفس الطلب بتاريخ {{date}}.يمكنك أن تشاهد <a href=\"{{existing_request}}\">الطلب الموجود</a>,\\n أو تحوير التفاصيل أسفله للقيام بطلب جديد وان كان مشابها."
msgid "{{info_request_user_name}} only:"
-msgstr ""
+msgstr "{{info_request_user_name}} فقط:"
msgid "{{law_used_full}} request - {{title}}"
-msgstr ""
+msgstr "{{law_used_full}} طلب - {{title}}"
msgid "{{law_used_full}} request GQ - {{title}}"
-msgstr ""
+msgstr "{{law_used_full}} طلب GQ - {{title}}"
msgid "{{law_used}} requests at {{public_body}}"
-msgstr ""
+msgstr "{{law_used}} طلبات في {{public_body}}"
msgid "{{length_of_time}} ago"
-msgstr ""
+msgstr "{{length_of_time}} منذ"
msgid "{{list_of_things}} matching text '{{search_query}}'"
-msgstr ""
+msgstr "{{list_of_things}} النص الموافق '{{search_query}}'"
msgid "{{number_of_comments}} comments"
-msgstr ""
+msgstr "{{number_of_comments}} تعليق"
msgid "{{public_body_link}} answered a request about"
-msgstr ""
+msgstr "{{public_body_link}} اجاب على طلب عن"
msgid "{{public_body_link}} was sent a request about"
-msgstr ""
+msgstr "{{public_body_link}} ارسل له طلب حول"
msgid "{{public_body_name}} only:"
-msgstr ""
+msgstr "{{public_body_name}}فقط:"
msgid "{{public_body}} has asked you to explain part of your {{law_used}} request."
-msgstr ""
+msgstr "{{public_body}} طلب منك شرح جزء من {{law_used}} طلبك."
msgid "{{public_body}} sent a response to {{user_name}}"
-msgstr ""
+msgstr "{{public_body}} ارسل اجابة الى {{user_name}}"
msgid "{{reason}}, please sign in or make a new account."
msgstr ""
msgid "{{search_results}} matching '{{query}}'"
-msgstr ""
+msgstr "{{search_results}} يتوافق مع '{{query}}'"
msgid "{{site_name}} blog and tweets"
-msgstr ""
+msgstr "{{site_name}} مدونة و تغريدات"
msgid "{{site_name}} covers requests to {{number_of_authorities}} authorities, including:"
-msgstr ""
+msgstr "{{site_name}} يغطي طلبات ل {{number_of_authorities}} سلطة, بما فيها:"
msgid "{{site_name}} sends new requests to <strong>{{request_email}}</strong> for this authority."
-msgstr ""
+msgstr "{{site_name}} ارسل طلبات جديدة ل <strong>{{request_email}}</strong> بخصوص هذه السلطة."
msgid "{{site_name}} users have made {{number_of_requests}} requests, including:"
+msgstr "{{site_name}} قام المستخدمون بتقديم {{number_of_requests}}طلب, بما فيها:"
+
+msgid "{{thing_changed}} was changed from <code>{{from_value}}</code> to <code>{{to_value}}</code>"
msgstr ""
msgid "{{title}} - a Freedom of Information request to {{public_body}}"
-msgstr ""
+msgstr "{{title}} - طلب حرية النفاذ للمعلومة الى {{public_body}}"
msgid "{{user_name}} (Account suspended)"
-msgstr ""
+msgstr "{{user_name}} (حساب معلق)"
msgid "{{user_name}} - Freedom of Information requests"
-msgstr ""
+msgstr "{{user_name}} - طلبات حرية النفاذ للمعلومة"
msgid "{{user_name}} - user profile"
-msgstr ""
+msgstr "{{user_name}} -حساب المستخدم"
msgid "{{user_name}} added an annotation"
-msgstr ""
+msgstr "{{user_name}} اضاف ملاحظة"
msgid "{{user_name}} has annotated your {{law_used_short}} \\nrequest. Follow this link to see what they wrote."
-msgstr ""
+msgstr "{{user_name}} اضاف ملاحظة على {{law_used_short}} \\nطلبك. اتبع هذا الرابط للاطلاع."
msgid "{{user_name}} has used {{site_name}} to send you the message below."
-msgstr ""
+msgstr "{{user_name}}استخدم {{site_name}}ليرسل لك الرسالة أسفله"
msgid "{{user_name}} sent a follow up message to {{public_body}}"
-msgstr ""
+msgstr "{{user_name}} بعث رسالة متابعة الى {{public_body}}"
msgid "{{user_name}} sent a request to {{public_body}}"
-msgstr ""
+msgstr "{{user_name}} أرسل طلبا الى {{public_body}}"
msgid "{{username}} left an annotation:"
-msgstr ""
+msgstr "{{username}} ترك ملاحظة:"
msgid "{{user}} ({{user_admin_link}}) made this {{law_used_full}} request (<a href=\"{{request_admin_url}}\">admin</a>) to {{public_body_link}} (<a href=\"{{public_body_admin_url}}\">admin</a>)"
-msgstr ""
+msgstr "{{user}} ({{user_admin_link}})قدم هذا {{law_used_full}} الطلب (<a href=\"{{request_admin_url}}\">مشرف</a>) الى {{public_body_link}} (<a href=\"{{public_body_admin_url}}\">مشرف</a>)"
msgid "{{user}} made this {{law_used_full}} request"
-msgstr ""
+msgstr "{{user}}قام بهذا {{law_used_full}} الطلب"
diff --git a/locale/bs/app.po b/locale/bs/app.po
index 74d053411..8e96147dc 100644
--- a/locale/bs/app.po
+++ b/locale/bs/app.po
@@ -3,17 +3,17 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# <armin@pasalic.com.ba>, 2011.
-# <brkanboris@gmail.com>, 2011.
-# <vedadtrbonja@hotmail.com>, 2011.
+# Krule <armin@pasalic.com.ba>, 2011
+# BORIS <brkanboris@gmail.com>, 2011
+# vedad <vedadtrbonja@hotmail.com>, 2011
msgid ""
msgstr ""
"Project-Id-Version: alaveteli\n"
"Report-Msgid-Bugs-To: http://github.com/sebbacon/alaveteli/issues\n"
-"POT-Creation-Date: 2012-12-18 10:11+0000\n"
-"PO-Revision-Date: 2012-12-18 10:14+0000\n"
+"POT-Creation-Date: 2013-05-30 09:46+0100\n"
+"PO-Revision-Date: 2013-05-30 08:54+0000\n"
"Last-Translator: louisecrow <louise@mysociety.org>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language-Team: Bosnian (http://www.transifex.com/projects/p/alaveteli/language/bs/)\n"
"Language: bs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -25,7 +25,7 @@ msgstr ""
" Ovo će se pojaviti na vašem {{site_name}} profilu, da bi\n"
" olakšali drugima da se uključe u to šta radite."
-msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)"
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
msgstr ""
msgid " (<strong>patience</strong>, especially for large files, it may take a while!)"
@@ -58,9 +58,9 @@ msgstr " Savjetuj kako<strong>najbolje objasniti</strong> zahjev."
msgid " Ideas on what <strong>other documents to request</strong> which the authority may hold. "
msgstr " Ideje za <strong>zahtjeve drugih dokumenata</strong> koje ustanova može posjedovati. "
-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."
+msgid " If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\\n You may be able to find the address on their website, or by phoning them up and asking."
msgstr ""
-" Ako znate koju adresu treba koristiti, molimo Vas <a href=\"%s\">pošaljite je nama</a>.\n"
+" Ako znate koju adresu treba koristiti, molimo Vas <a href=\"{{url}}\">pošaljite je nama</a>.\n"
" Moguće je da možete naći adresu na njihovoj web stranici, ili putem telefona."
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."
@@ -102,24 +102,6 @@ msgstr " kada pošaljete ovu poruku."
msgid "\"Hello! We have an <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">important message</a> for visitors outside {{country_name}}\""
msgstr ""
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
-msgstr[0] "%d Freedom of Information requests to %s"
-msgstr[1] "%d Freedom of Information requests to %s"
-msgstr[2] "%d Freedom of Information requests to %s"
-
-msgid "%d request"
-msgid_plural "%d requests"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-msgid "%d request made."
-msgid_plural "%d requests made."
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
msgid "'Crime statistics by ward level for Wales'"
msgstr ""
@@ -135,6 +117,9 @@ msgstr "'{{link_to_request}}', zahtjev"
msgid "'{{link_to_user}}', a person"
msgstr "'{{link_to_user}}', osoba"
+msgid "*unknown*"
+msgstr ""
+
msgid ",\\n\\n\\n\\nYours,\\n\\n{{user_name}}"
msgstr ""
",\n"
@@ -157,32 +142,14 @@ msgstr "2. Tražite informacije"
msgid "3. Now check your request"
msgstr "3. Sada provjerite Vaš zahtjev"
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
+msgstr "<a href=\"{{browse_url}}\">Pretraži sve</a> ili <a href=\"{{add_url}}\"> zamolite nas da dodamo </a>."
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
-msgstr "<a href=\"%s\">Dodaj napomenu</a> (da bi se pomoglo podnosiocu zahtjeva ili drugima)"
+msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)"
+msgstr "<a href=\"{{url}}\">Dodaj napomenu</a> (da bi se pomoglo podnosiocu zahtjeva ili drugima)"
-msgid "<a href=\"%s\">Are we missing a public authority?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Are you the owner of\\n any commercial copyright on this page?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
-msgstr "<a href=\"%s\">Pretraži sve</a> ili <a href=\"%s\"> zamolite nas da dodamo </a>."
-
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
-msgstr "<a href=\"%s\">Ne možete naći onaj koji želite?</a>"
-
-msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
-msgstr "<a href=\"%s\">Prijavite se</a> da biste promijenili password, pretplatu ili drugo ({{user_name}} only)"
-
-msgid "<a href=\"%s\">details</a>"
-msgstr "<a href=\"%s\">detalji</a>"
-
-msgid "<a href=\"%s\">what's that?</a>"
-msgstr "<a href=\"%s\">šta je to?</a>"
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
+msgstr "<a href=\"{{url}}\">Prijavite se</a> da biste promijenili password, pretplatu ili drugo ({{user_name}} only)"
msgid "<p>All done! Thank you very much for your help.</p><p>There are <a href=\"{{helpus_url}}\">more things you can do</a> to help {{site_name}}.</p>"
msgstr "<p>Završeno! Hvala Vam na pomoći.</p><p>Postoji <a href=\"{{helpus_url}}\">više stvari koje možete uradite</a> da biste pomogli {{site_name}}.</p>"
@@ -199,9 +166,6 @@ msgstr ""
msgid "<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>"
msgstr "<p>Hvala! Nadamo se da nećete čekati predugo.</p><p>Trebali biste dobiti odgovor za {{late_number_of_days}} dana, ili obaviješteni da će trajati duže. (<a href=\"{{review_url}}\">Više informacija</a>)</p>"
-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 "<p>Hvala! Provjeriti ćemo šta se dogodilo i pokušati to popraviti.</p><p>Ako je došlo do greške u prilikom isporuke, i možete naći ažuriranu ZOSPI e-mail adresu za ustanovu molimo obavijestite nas koristeći formular ispod.</p>"
-
msgid "<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>"
msgstr ""
@@ -222,11 +186,11 @@ msgstr "<p>Drago nam je da ste dobili sve željene informacije. Ako ih budete ko
msgid "<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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 "<p>Drago nam je da ste dobili dio željenih informacija. Ako mislite da je {{site_name}} bio koristan, <a href=\"{{donation_url}}\">donirajte</a> nevladinoj organizaciji koja ga vodi.</p>"
-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 "<p>Nije potrebno da uključite Vašu e-mail adresu u zahtjev da biste dobili odgovor (<a href=\"%s\">Više informacija</a>).</p>"
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
+msgstr "<p>Nije potrebno da uključite Vašu e-mail adresu u zahtjev da biste dobili odgovor (<a href=\"{{url}}\">Više informacija</a>).</p>"
-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 "<p>Nije potrebno da uključite Vašu e-mail adresu u zahtjev da biste dobili odgovor, pitati ćemo vas u vezi toga u slijedećem koraku (<a href=\"%s\">Više informacija</a>).</p>"
+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=\"{{url}}\">details</a>).</p>"
+msgstr "<p>Nije potrebno da uključite Vašu e-mail adresu u zahtjev da biste dobili odgovor, pitati ćemo vas u vezi toga u slijedećem koraku (<a href=\"{{url}}\">Više informacija</a>).</p>"
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 ""
@@ -242,16 +206,10 @@ msgstr ""
"<small>Ako koristite neke od web mail servisa ili imate filtere za \"junk mail\", provjerite u Vašim bulk/spam folderima. Ponekad su naše poruke označene tako</small>\n"
"</p>"
-msgid "<span id='follow_count'>%d</span> person is following this authority"
-msgid_plural "<span id='follow_count'>%d</span> people are following this authority"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
+msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
msgstr ""
"<strong> Da li mogu zahtijevati informacije o sebi?</strong>\n"
-"<span class=\"whitespace other\" title=\"Tab\">»</span><span class=\"whitespace other\" title=\"Tab\">»</span><span class=\"whitespace other\" title=\"Tab\">»</span><a href=\"%s\">Ne! (Kliknite za detalje)</a>"
+"<span class=\"whitespace other\" title=\"Tab\">»</span><span class=\"whitespace other\" title=\"Tab\">»</span><span class=\"whitespace other\" title=\"Tab\">»</span><a href=\"{{url}}\">Ne! (Kliknite za detalje)</a>"
msgid "<strong><code>commented_by:tony_bowden</code></strong> to search annotations made by Tony Bowden, typing the name as in the URL."
msgstr "<strong><code>komentar_od:tony_bowden</code></strong> da pretražujete komentare Tony Bowden-a, ime unesite kao u URL-u."
@@ -309,10 +267,10 @@ msgstr ""
" Poslati ćemo e-mail na Vašu novu adresu. Pratite\n"
" upute u njemu da bi potvrdili promjenu vašeg e-maila."
-msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"%s\">click here</a>."
+msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"{{url}}\">click here</a>."
msgstr ""
"<strong>Napomena o privatnosti:</strong> Ako želite da zahtijevate privatne informacije o\n"
-" Vama onda <a href=\"%s\">kliknite ovdje</a>."
+" Vama onda <a href=\"{{url}}\">kliknite ovdje</a>."
msgid "<strong>Privacy note:</strong> Your photo will be shown in public on the Internet,\\n wherever you do something on {{site_name}}."
msgstr ""
@@ -355,6 +313,9 @@ msgstr "Odgovor će biti poslan <strong>poštom</strong>"
msgid "A strange reponse, required attention by the {{site_name}} team"
msgstr "Neobičan odgovor, potreban pregled od strane {{site_name}} tima"
+msgid "A vexatious request"
+msgstr ""
+
msgid "A {{site_name}} user"
msgstr "Korisnik stranice {{site_name}}"
@@ -364,6 +325,15 @@ msgstr "O Vama:"
msgid "Act on what you've learnt"
msgstr "Radite na osnovu onoga što ste naučili"
+msgid "Acts as xapian/acts as xapian job"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Action"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Model"
+msgstr ""
+
msgid "Add an annotation"
msgstr "Dodati napomenu"
@@ -450,13 +420,22 @@ msgstr ""
msgid "Anyone:"
msgstr "Bilo ko:"
+msgid "Applies to"
+msgstr ""
+
+msgid "Are we missing a public authority?"
+msgstr ""
+
+msgid "Are you the owner of any commercial copyright on this page?"
+msgstr ""
+
msgid "Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries."
msgstr "Tražite <strong>konkretne</strong> dokumente ili informacije, ova stranica nije pogodna za opće pretrage."
-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>)."
+msgid "At the bottom of this page, write a reply to them trying to persuade them to scan it in\\n (<a href=\"{{url}}\">more details</a>)."
msgstr ""
"Na dnu ove stranice, napišite im odgovor pokušavajući da ih ubjedite da ga pregledaju\n"
-" (<a href=\"%s\">Više informacija</a>)."
+" (<a href=\"{{url}}\">Više informacija</a>)."
msgid "Attachment (optional):"
msgstr "Prilog (neobavezno):"
@@ -491,6 +470,12 @@ msgstr "Po zakonu, pod svim uvjetima, {{public_body_link}} je trebala odgovoriti
msgid "By law, {{public_body_link}} should normally have responded <strong>promptly</strong> and"
msgstr "Po zakonu, {{public_body_link}} je trebala odgovoriti <strong>brzo</strong> i"
+msgid "Calculated home page"
+msgstr ""
+
+msgid "Can't find the one you want?"
+msgstr "Ne možete naći onaj koji želite?"
+
msgid "Cancel a {{site_name}} alert"
msgstr "Poništi {{site_name}} upozorenje"
@@ -658,9 +643,15 @@ msgstr "Trenutno <strong>čeka odgovor</strong> od {{public_body_link}}, moraju
msgid "Date:"
msgstr "Datum:"
+msgid "Dear {{name}},"
+msgstr ""
+
msgid "Dear {{public_body_name}},"
msgstr "Poštovani {{public_body_name}},"
+msgid "Default locale"
+msgstr ""
+
msgid "Delayed response to your FOI request - "
msgstr "Odgođen odgovor na Vaš Zahtjev o slobodnom pristupu informacijama - "
@@ -670,6 +661,9 @@ msgstr "Odgođen"
msgid "Delivery error"
msgstr "Greška u isporuci"
+msgid "Destroy {{name}}"
+msgstr ""
+
msgid "Details of request '"
msgstr "Detalji zahtjeva '"
@@ -682,6 +676,9 @@ msgstr ""
msgid "Disclosure log"
msgstr ""
+msgid "Disclosure log URL"
+msgstr ""
+
msgid "Don't want to address your message to {{person_or_body}}? You can also write to:"
msgstr ""
@@ -700,14 +697,14 @@ msgstr "Preuzeti originalni prilog"
msgid "EIR"
msgstr ""
+msgid "Edit"
+msgstr ""
+
msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
msgstr ""
"Uredite i dodajte <strong>više detalja</strong> na poruku iznad,\n"
" objašnjavajući zašto niste zadovoljni njihovim odgovorom."
-msgid "Edit language version:"
-msgstr "Edituj ???????????????????"
-
msgid "Edit text about you"
msgstr "Uredite tekst o Vama"
@@ -729,7 +726,7 @@ msgstr "Buduća ažuriranja šaljite na moj e-mail"
msgid "Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>"
msgstr "Sa razmacima unesite riječi koje želite naći, npr. <strong>climbing lane</strong>"
-msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"%s\">contact us</a> if you need more)."
+msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"{{url}}\">contact us</a> if you need more)."
msgstr ""
msgid "Environmental Information Regulations"
@@ -747,17 +744,20 @@ msgstr "Prikaz prošlih događanja"
msgid "Event history details"
msgstr "Detalji prikaza prošlih događanja"
-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>)."
+msgid "Event {{id}}"
msgstr ""
-"Sve što unesete na ovu stranicu \n"
-" će biti <strong>javno prikazano</strong> na\n"
-" ovoj web stranici trajno. (<a href=\"%s\">Više informacija</a>)."
-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>)."
+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=\"{{url}}\">why?</a>)."
msgstr ""
"Sve što unesete na ovu stranicu, uključujući <strong>Vaše ime</strong>, \n"
" će biti <strong>javno prikazano</strong> na\n"
-" ovoj web stranici zauvjek (<a href=\"%s\">Više informacija</a>)."
+" ovoj web stranici zauvjek (<a href=\"{{url}}\">Više informacija</a>)."
+
+msgid "Everything that you enter on this page\\n will be <strong>displayed publicly</strong> on\\n this website forever (<a href=\"{{url}}\">why?</a>)."
+msgstr ""
+"Sve što unesete na ovu stranicu \n"
+" će biti <strong>javno prikazano</strong> na\n"
+" ovoj web stranici trajno. (<a href=\"{{url}}\">Više informacija</a>)."
msgid "FOI"
msgstr ""
@@ -765,6 +765,9 @@ msgstr ""
msgid "FOI email address for {{public_body}}"
msgstr "ZOSPI e-mail adresa za {{public_body}}"
+msgid "FOI request – {{title}}"
+msgstr ""
+
msgid "FOI requests"
msgstr "Zahtjevi za slobodan pristup informacijama"
@@ -780,13 +783,13 @@ msgstr ""
msgid "Failed to convert image to a PNG"
msgstr "Nismo uspjeli konvertovati sliku u PNG format"
-msgid "Failed to convert image to the correct size: at %{cols}x%{rows}, need %{width}x%{height}"
-msgstr "Nismo uspjeli konvertovati sliku u odgovarajuću veličinu: %{cols}x%{rows}, potrebno %{width}x%{height}"
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
+msgstr "Nismo uspjeli konvertovati sliku u odgovarajuću veličinu: {{cols}}x{{rows}}, potrebno {{width}}x{{height}}"
msgid "Filter"
msgstr "Filtriraj"
-msgid "First, type in the <strong>name of the UK public authority</strong> you'd \\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"%s#%s\">why?</a>)."
+msgid "First, type in the <strong>name of the UK public authority</strong> you'd\\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "Foi attachment"
@@ -867,8 +870,8 @@ msgstr "Iz nepoznatog razloga, nije moguće podnijeti zahtjev ovoj ustanovi."
msgid "Forgotten your password?"
msgstr "Zaboravili ste Vaš password?"
-msgid "Found %d public authority %s"
-msgid_plural "Found %d public authorities %s"
+msgid "Found {{count}} public authority {{description}}"
+msgid_plural "Found {{count}} public authorities {{description}}"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
@@ -906,7 +909,7 @@ msgstr ""
msgid "From"
msgstr ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "From:"
@@ -918,6 +921,18 @@ msgstr "OVDJE IZNESITE DETALJE VAŠE ŽALBE"
msgid "Handled by post."
msgstr "Riješen poštom."
+msgid "Has tag string/has tag string tag"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Model"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Name"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Value"
+msgstr ""
+
msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
msgstr "Dobrodošli! Možete podnositi Zahtjeve za slobodan pristup informacijama u {{country_name}} na ovom linku: {{link_to_website}}"
@@ -940,6 +955,9 @@ msgstr ""
" malo vremena da ga pročitate i da nam pomognete da održimo ovo mjesto urednim za sviju?\n"
" Hvala."
+msgid "Hide request"
+msgstr ""
+
msgid "Holiday"
msgstr ""
@@ -952,6 +970,9 @@ msgstr "Praznik|Opis"
msgid "Home"
msgstr "Naslovna"
+msgid "Home page"
+msgstr ""
+
msgid "Home page of authority"
msgstr "Početna stranica ustanove"
@@ -1004,8 +1025,17 @@ msgstr "Dobio/la sam <strong>dio informacija</strong>"
msgid "I've received an <strong>error message</strong>"
msgstr "Dobio/la sam <strong>poruku o pogrešci</strong>"
-msgid "If the address is wrong, or you know a better address, please <a href=\"%s\">contact us</a>."
-msgstr "Ako je adresa pogrešna, ili znate bolju adresu, molimo Vas <a href=\"%s\">da nas kontaktirate</a>."
+msgid "I've received an error message"
+msgstr ""
+
+msgid "Id"
+msgstr ""
+
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Ako je adresa pogrešna, ili znate bolju adresu, molimo Vas <a href=\"{{url}}\">da nas kontaktirate</a>."
+
+msgid "If the error was a delivery failure, and you can find an up to date FOI email address for the authority, please tell us using the form below."
+msgstr ""
msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
msgstr ""
@@ -1013,22 +1043,22 @@ msgstr ""
"ili e mail o nečemu drugome {{user}}, onda molimo\n"
"pošaljite nam e-mail {{contact_email}} za pomoć."
-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>)."
+msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"{{url}}\">details</a>)."
msgstr ""
"Ako niste zadovoljni odgovorom koji ste dobili od\n"
" javne ustanove, imate pravo na\n"
-" žalbu (<a href=\"%s\">Više informacija</a>)."
+" žalbu (<a href=\"{{url}}\">Više informacija</a>)."
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
-msgstr "Ako i dalje imate problema, molimo <a href=\"%s\">kontaktirajte nas</a>."
+msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Ako i dalje imate problema, molimo <a href=\"{{url}}\">kontaktirajte nas</a>."
-msgid "If you are the requester, then you may <a href=\"%s\">sign in</a> to view the request."
-msgstr "Ako ste podnosioc zahtjeva, možete se <a href=\"%s\">prijaviti</a> da biste pogledali zahtjev."
+msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request."
+msgstr "Ako ste podnosioc zahtjeva, možete se <a href=\"{{url}}\">prijaviti</a> da biste pogledali zahtjev."
-msgid "If you are thinking of using a pseudonym,\\n please <a href=\"%s\">read this first</a>."
+msgid "If you are thinking of using a pseudonym,\\n please <a href=\"{{url}}\">read this first</a>."
msgstr ""
"Ako razmišljate o korištenju pseudonima,\n"
-" molimo da<a href=\"%s\">pročitajte prvo ovo</a>."
+" molimo da<a href=\"{{url}}\">pročitajte prvo ovo</a>."
msgid "If you are {{user_link}}, please"
msgstr "Ako ste {{user_link}}, molimo"
@@ -1082,6 +1112,9 @@ msgstr ""
"Ako je Vaš pretraživač namješten da prihvata cookies-e i vidite ovu poruku,\n"
"onda vjerovatno postoji problem sa našim serverom."
+msgid "Incoming email address"
+msgstr ""
+
msgid "Incoming message"
msgstr ""
@@ -1201,14 +1234,20 @@ msgstr ""
msgid "Items matching the following conditions are currently displayed on your wall."
msgstr ""
+msgid "Items sent in last month"
+msgstr ""
+
msgid "Joined in"
msgstr "Spojen"
msgid "Joined {{site_name}} in"
msgstr "Pridružio se na {{site_name}} u"
-msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)."
-msgstr "Držite se <strong>suštine</strong>, lakše ćete dobiti ono što tražite(<a href=\"%s\">Više informacija</a>)."
+msgid "Just one more thing"
+msgstr ""
+
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
+msgstr "Držite se <strong>suštine</strong>, lakše ćete dobiti ono što tražite(<a href=\"{{url}}\">Više informacija</a>)."
msgid "Keywords"
msgstr "Ključne riječi"
@@ -1227,9 +1266,27 @@ msgstr ""
msgid "Link to this"
msgstr "Spojite sa ovim"
+msgid "List all"
+msgstr ""
+
msgid "List of all authorities (CSV)"
msgstr "Popis svih ustanova (CSV)"
+msgid "Listing FOI requests"
+msgstr ""
+
+msgid "Listing public authorities"
+msgstr ""
+
+msgid "Listing public authorities matching '{{query}}'"
+msgstr ""
+
+msgid "Listing tracks"
+msgstr ""
+
+msgid "Listing users"
+msgstr ""
+
msgid "Log in to download a zip file of {{info_request_title}}"
msgstr "Prijavite se da preuzmete zipovano {{info_request_title}}"
@@ -1330,6 +1387,9 @@ msgstr "Ime se već koristi"
msgid "New Freedom of Information requests"
msgstr "Novi Zahtjevi za slobodan pristup informacijama"
+msgid "New censor rule"
+msgstr ""
+
msgid "New e-mail:"
msgstr "Novi e-mail:"
@@ -1375,6 +1435,9 @@ msgstr "Nema rezultata pretrage"
msgid "No similar requests found."
msgstr "Nisu nađeni slični zahtjevi."
+msgid "No tracked things found."
+msgstr ""
+
msgid "Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet."
msgstr "Niko nije podnio Zahtjev za slobodan pristup informacijama {{public_body_name}} koristeći ovu stranicu."
@@ -1384,6 +1447,9 @@ msgstr "Ništa nije nađeno."
msgid "None made."
msgstr "Ništa podneseno."
+msgid "Not a valid FOI request"
+msgstr ""
+
msgid "Note that the requester will not be notified about your annotation, because the request was published by {{public_body_name}} on their behalf."
msgstr ""
@@ -1429,6 +1495,9 @@ msgstr "Jedna osoba pronađena"
msgid "One public authority found"
msgstr "Jedna javna ustanova pronađena"
+msgid "Only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL – don't worry about breaking URLs through renaming, as the history is used to redirect"
+msgstr ""
+
msgid "Only requests made using {{site_name}} are shown."
msgstr "Samo zahtjevi koji koriste {{site_name}} su prikazani."
@@ -1501,8 +1570,8 @@ msgstr "Igrajte igru kategorizacije zahtjeva!"
msgid "Please"
msgstr "Molimo"
-msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
-msgstr "Molimo <a href=\"%s\">kontaktirajte</a> nas kako bi to mogli popraviti."
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
+msgstr "Molimo <a href=\"{{url}}\">kontaktirajte</a> nas kako bi to mogli popraviti."
msgid "Please <strong>answer the question above</strong> so we know whether the "
msgstr "Molimo <strong>odgovorite na pitanje iznad</strong> kako bi znali da li"
@@ -1617,8 +1686,8 @@ msgstr ""
"Molimo odaberite svaki od ovih zahtjeva naizmjenice, i <strong>obavijestite sviju</strong>\n"
"da li su bili uspješni ili ne."
-msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature"
-msgstr "Molimo da se na dnu potpišete, ili izmijenite \"%{signoff}\" potpis"
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
+msgstr "Molimo da se na dnu potpišete, ili izmijenite \"{{signoff}}\" potpis"
msgid "Please sign in as "
msgstr "Molimo prijavite se kao "
@@ -1629,9 +1698,6 @@ msgstr ""
msgid "Please type a message and/or choose a file containing your response."
msgstr "Molimo ukucajte poruku i/ili odaberite fajl koji sadrži vaš odgovor."
-msgid "Please use the form below to tell us more."
-msgstr "Molimo koristite formular ispod da biste nam rekli više."
-
msgid "Please use this email address for all replies to this request:"
msgstr "Molimo koristite ovu e-mail adresu za odgovore na ovaj zahtjev:"
@@ -1722,37 +1788,19 @@ msgstr "Javne ustanove - {{description}}"
msgid "Public authorities {{start_count}} to {{end_count}} of {{total_count}}"
msgstr ""
-msgid "Public body"
-msgstr ""
-
-msgid "Public body/translation"
-msgstr ""
-
-msgid "PublicBody::Translation|Disclosure log"
-msgstr ""
-
-msgid "PublicBody::Translation|First letter"
-msgstr ""
-
-msgid "PublicBody::Translation|Locale"
+msgid "Public authority – {{name}}"
msgstr ""
-msgid "PublicBody::Translation|Name"
-msgstr ""
-
-msgid "PublicBody::Translation|Notes"
-msgstr ""
-
-msgid "PublicBody::Translation|Publication scheme"
+msgid "Public body"
msgstr ""
-msgid "PublicBody::Translation|Request email"
+msgid "Public notes"
msgstr ""
-msgid "PublicBody::Translation|Short name"
+msgid "Public page"
msgstr ""
-msgid "PublicBody::Translation|Url name"
+msgid "Public page not available"
msgstr ""
msgid "PublicBody|Api key"
@@ -1800,6 +1848,9 @@ msgstr "Javno tijelo|Verzija"
msgid "Publication scheme"
msgstr "Nacrt publikacije"
+msgid "Publication scheme URL"
+msgstr ""
+
msgid "Purge request"
msgstr ""
@@ -1859,6 +1910,9 @@ msgstr "Tražite "
msgid "Request an internal review from {{person_or_body}}"
msgstr "Zatražiti urgenciju od strane {{person_or_body}}"
+msgid "Request email"
+msgstr ""
+
msgid "Request has been removed"
msgstr "Zahtjev je uklonjen"
@@ -1949,8 +2003,8 @@ msgstr "Rezultati pretrage"
msgid "Search the site to find what you were looking for."
msgstr "Pretražite web stranicu da pronađete što ste tražili."
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests made to {{public_body_name}}"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
@@ -1958,6 +2012,9 @@ msgstr[2] ""
msgid "Search your contributions"
msgstr "Pretražite Vaše doprinose"
+msgid "See bounce message"
+msgstr ""
+
msgid "Select one to see more information about the authority."
msgstr "Odaberite jedan da biste vidjeli više informacija o ustanovi."
@@ -1991,6 +2048,9 @@ msgstr "Pošalji zahtjev"
msgid "Set your profile photo"
msgstr "Podesiti sliku na Vašem profilu"
+msgid "Short name"
+msgstr ""
+
msgid "Short name is already taken"
msgstr "Nadimak se već koristi"
@@ -2090,6 +2150,9 @@ msgstr "Predaj"
msgid "Submit status"
msgstr "Pošalji status"
+msgid "Submit status and send message"
+msgstr ""
+
msgid "Subscribe to blog"
msgstr "Pretplatiti se na blog"
@@ -2111,6 +2174,9 @@ msgstr "Pregled statusa"
msgid "Table of varieties"
msgstr "Tabela vrsta"
+msgid "Tags"
+msgstr ""
+
msgid "Tags (separated by a space):"
msgstr ""
@@ -2138,6 +2204,9 @@ msgstr "Hvala na ažuriranju zahtjeva!"
msgid "Thank you for updating your profile photo"
msgstr "Hvala što ste ažurirali sliku na Vašem profilu"
+msgid "Thank you! We'll look into what happened and try and fix it up."
+msgstr ""
+
msgid "Thanks for helping - your work will make it easier for everyone to find successful\\nresponses, and maybe even let us make league tables..."
msgstr ""
"Hvala na pomoći - Vaš rad će svima olakšati pronalaženje pozitivnih\n"
@@ -2217,22 +2286,22 @@ msgstr "Zahtjev je <strong>uspješan</strong>."
msgid "The request was refused by the public authority"
msgstr "Zahtjev je odbijen od strane javne ustanove"
-msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"%s\">contact us</a> if you have any questions."
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
msgstr ""
"Zahtjev koji ste pokušali pregledati je uklonjen. Postoje\n"
"razni razlozi radi kojih smo to mogli uraditi, žao nam je ali ne možemo biti precizniji po tom pitanju. Molimo <a\n"
-" href=\"%s\">kontaktirajte nas</a> ako imate pitanja."
+" href=\"{{url}}\">kontaktirajte nas</a> ako imate pitanja."
msgid "The requester has abandoned this request for some reason"
msgstr "Podnosioc je odustao od ovog zahtjeva iz nekog razloga"
-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"
+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 ""
"Odgovor na Vaš zahtjev je <strong>odgođen</strong>. Možete reći da je, \n"
" po zakonu, ustanova trebala odgovoriti\n"
" <strong>brzo</strong> i"
-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"
+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 ""
"Odgovor na Vaš zahtjev <strong>kasni</strong>. Možete reći da po \n"
" zakonu, u svakom slučaju, ustanova je trebala odgovoriti\n"
@@ -2244,6 +2313,9 @@ msgstr "Indeks za pretragu je trenutno isključen, ne možemo prikazati Zahtjeve
msgid "The search index is currently offline, so we can't show the Freedom of Information requests this person has made."
msgstr "Indeks za pretragu je trenutno isključen, radi toga ne možemo prikazati Zahtjeve za slobodan pristup informacijama koje je ova osoba napravila."
+msgid "The {{site_name}} team."
+msgstr ""
+
msgid "Then you can cancel the alert."
msgstr "Tada možete poništiti upozorenje."
@@ -2319,18 +2391,18 @@ msgstr "Tada će Vaša napomena za {{info_request_title}} biti postavljena."
msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
msgstr "Postoje {{count}} nove napomene na Vašem {{info_request}} zahtjevu. Pratite ovaj link da pogledate šta je napisano."
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
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 ""
msgid "There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>."
msgstr ""
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
msgid "There was a <strong>delivery error</strong> or similar, which needs fixing by the {{site_name}} team."
msgstr "Došlo je do <strong>greške u isporuci</strong> ili nečega sličnog što treba popravku od strane {{site_name}} tima."
@@ -2369,7 +2441,7 @@ msgstr ""
msgid "This authority no longer exists, so you cannot make a request to it."
msgstr "Ova ustanova više ne postoji, zato joj nije moguće podnijeti zahtjev. "
-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."
+msgid "This comment has been hidden. See annotations to\\n find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This covers a very wide spectrum of information about the state of\\n the <strong>natural and built environment</strong>, such as:"
@@ -2389,10 +2461,13 @@ msgstr ""
"To je zato što je {{title}} stari zahtjev koji je\n"
"označen da više ne prima odgovore."
+msgid "This is the first version."
+msgstr ""
+
msgid "This is your own request, so you will be automatically emailed when new responses arrive."
msgstr "Ovo je Vaš zahtjev, biti ćete automatski obaviješteni e-mailom kada novi odgovori budu stizali."
-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."
+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=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This particular request is finished:"
@@ -2401,21 +2476,21 @@ msgstr "Ovaj zahtjev je završen:"
msgid "This person has made no Freedom of Information requests using this site."
msgstr "Ova osoba nije podnijela nijedan Zahtjev za slobodan pristup informacijama koristeći ovu web stranicu."
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
+msgid "This person's annotations"
+msgstr "Napomene ove osobe"
+
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-msgid "This person's annotations"
-msgstr "Napomene ove osobe"
-
msgid "This request <strong>requires administrator attention</strong>"
msgstr "Ovaj zahtjev <strong>treba provjeru administratora</strong>"
@@ -2439,7 +2514,7 @@ msgstr ""
"Ovaj zahtjev je <strong>povučen</strong> od strane osobe koja ga je napravila. \n"
" <span class=\"whitespace other\" title=\"Tab\">»</span> Obijašnjenje može biti u dopisima ispod."
-msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"%s\">contact us</a>."
+msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
msgid "This request has been reported for administrator attention"
@@ -2456,18 +2531,21 @@ msgstr ""
"Ovaj zahtjev je inače skriven. Možete ga vidjeti jer ste prijavljeni \n"
" kao super korisnik."
-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."
+msgid "This request is hidden, so that only you the requester can see it. Please\\n <a href=\"{{url}}\">contact us</a> if you are not sure why."
msgstr ""
"Ovaj zahtjev je skriven tako da ga samo Vi podnosioc možete vidjeti. Molimo\n"
-" <a href=\"%s\">kontaktirajte nas</a> ako niste sigurni zašto."
+" <a href=\"{{url}}\">kontaktirajte nas</a> ako niste sigurni zašto."
msgid "This request is still in progress:"
msgstr "Ovaj zahtjev je još u toku:"
+msgid "This request requires administrator attention"
+msgstr ""
+
msgid "This request was not made via {{site_name}}"
msgstr ""
-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."
+msgid "This response has been hidden. See annotations to find out why.\\n If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This table shows the technical details of the internal events that happened\\nto this request on {{site_name}}. This could be used to generate information about\\nthe speed with which authorities respond to requests, the number of requests\\nwhich require a postal response and much more."
@@ -2628,11 +2706,11 @@ msgstr ""
msgid "Unexpected search result type "
msgstr ""
-msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"%s\">contact us</a> to sort it out."
+msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"{{url}}\">contact us</a> to sort it out."
msgstr ""
"Nažalost nismo u posjedu e-mail adrese za ZOSPI\n"
"te ustanove, tako da nismo u mogućnosti validirati ovo.\n"
-"Molimo <a href=\"%s\">kontaktirajte nas</a> da to razjasnimo."
+"Molimo <a href=\"{{url}}\">kontaktirajte nas</a> da to razjasnimo."
msgid "Unfortunately, we do not have a working {{info_request_law_used_full}}\\naddress for"
msgstr ""
@@ -2669,6 +2747,9 @@ msgstr ""
msgid "User info request sent alert"
msgstr ""
+msgid "User – {{name}}"
+msgstr ""
+
msgid "UserInfoRequestSentAlert|Alert type"
msgstr ""
@@ -2723,6 +2804,9 @@ msgstr "Korisnik|Salt"
msgid "User|Url name"
msgstr "Korisnik|Url ime"
+msgid "Version {{version}}"
+msgstr ""
+
msgid "View FOI email address"
msgstr "Vidjeti adresu za Zahtjeve za slobodan pristup informacijama."
@@ -2762,6 +2846,12 @@ msgstr "Čekamo na odgovor javne ustanove"
msgid "Was the response you got to your FOI request any good?"
msgstr "Da li je odgovor koji ste dobili na Vaš Zahtjev o slobodnom pristupu informacijama bio od ikakve koristi?"
+msgid "We consider it is not a valid FOI request, and have therefore hidden it from other users."
+msgstr ""
+
+msgid "We consider it to be vexatious, and have therefore hidden it from other users."
+msgstr ""
+
msgid "We do not have a working request email address for this authority."
msgstr "Ne posjedujemo ispravnu e-mail adresu za zahtjeve ove ustanove."
@@ -2775,7 +2865,7 @@ msgstr ""
" &ndash;\n"
"<span class=\"whitespace other\" title=\"Tab\">»</span>ako ste {{user_link}} molimo <a href=\"{{url}}\">prijavite se</a> i obavijestite sviju."
-msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"%s\">details</a>). "
+msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"{{url}}\">details</a>). "
msgstr ""
msgid "We will not reveal your email address to anybody unless you\\nor the law tell us to."
@@ -2829,8 +2919,8 @@ msgstr ""
"Kada dobijete printanu kopiju, molimo pomozite\n"
" drugima da saznaju njen sadržaj:"
-msgid "When you're done, <strong>come back here</strong>, <a href=\"%s\">reload this page</a> and file your new request."
-msgstr "Kada završite, <strong>vratite se ovdje</strong>, <a href=\"%s\">učitajte ponovo ovu stranicu</a> i spremite Vaš novi zahtjev."
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
+msgstr "Kada završite, <strong>vratite se ovdje</strong>, <a href=\"{{url}}\">učitajte ponovo ovu stranicu</a> i spremite Vaš novi zahtjev."
msgid "Which of these is happening?"
msgstr "Šta se od ovoga događa?"
@@ -2936,11 +3026,11 @@ msgstr "Znate šta je uzrok greške i možete <strong>predložiti rješenje</str
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 ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
"Moguće je da je nađete\n"
" na njihovoj web stranici, ili putem telefonskog poziva. Ako uspijete\n"
-" da je nađete, onda molimo <a href=\"%s\">da nam je pošaljete</a>."
+" da je nađete, onda molimo <a href=\"{{url}}\">da nam je pošaljete</a>."
msgid "You may be able to find\\none on their website, or by phoning them up and asking. If you manage\\nto find one, then please <a href=\"{{help_url}}\">send it to us</a>."
msgstr ""
@@ -2981,6 +3071,9 @@ msgstr ""
msgid "You will only get an answer to your request if you follow up\\nwith the clarification."
msgstr ""
+msgid "You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further."
+msgstr ""
+
msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
msgstr ""
@@ -2993,19 +3086,7 @@ msgstr ""
msgid "You've now cleared your profile photo"
msgstr "Sada ste izbrisali sliku na Vašem profilu"
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-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>."
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
msgstr ""
msgid "Your annotations"
@@ -3017,7 +3098,7 @@ msgstr ""
msgid "Your e-mail:"
msgstr "Vaš e-mail:"
-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."
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
msgstr ""
msgid "Your follow up message has been sent on its way."
@@ -3041,10 +3122,10 @@ msgstr "Vaša poruka će se pojaviti u <strong>pretraživačima</strong>"
msgid "Your name and annotation will appear in <strong>search engines</strong>."
msgstr "Vaše ime i napomena će se pojaviti u <strong>pretraživačima</strong>."
-msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"%s\">details</a>)."
+msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"{{url}}\">details</a>)."
msgstr ""
"Vaše ime, zahtjev i sve poruke će se pojaviti u <strong>pretraživačima</strong>\n"
-" (<a href=\"%s\">Više informacija</a>)."
+" (<a href=\"{{url}}\">Više informacija</a>)."
msgid "Your name:"
msgstr "Vaše ime:"
@@ -3061,6 +3142,12 @@ msgstr "Vaš password:"
msgid "Your photo will be shown in public <strong>on the Internet</strong>,\\n wherever you do something on {{site_name}}."
msgstr ""
+msgid "Your request '{{request}}' at {{url}} has been reviewed by moderators."
+msgstr ""
+
+msgid "Your request on {{site_name}} hidden"
+msgstr ""
+
msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
msgstr "Naziv Vašeg zahtjeva je {{info_request}}. Obavijest o tome da li ste dobili odgovor će nam pomoći da bolje pratimo."
@@ -3070,12 +3157,24 @@ msgstr "Vaš zahtjev:"
msgid "Your response to an FOI request was not delivered"
msgstr ""
-msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"%s\">read why</a> and answers to other questions."
-msgstr "Vaš odgovor će se <strong>pojaviti na Internetu</strong>, <a href=\"%s\">pročitajte zašto</a> i odgovore na druga pitanja."
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
+msgstr "Vaš odgovor će se <strong>pojaviti na Internetu</strong>, <a href=\"{{url}}\">pročitajte zašto</a> i odgovore na druga pitanja."
msgid "Your thoughts on what the {{site_name}} <strong>administrators</strong> should do about the request."
msgstr "Vaše mišljenje o tome šta administratori {{site_name}} trebaju da rade po pitanju zahtjeva."
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
msgid "Your {{site_name}} email alert"
msgstr "Vaše {{site_name}} e-mail upozorenje"
@@ -3085,6 +3184,9 @@ msgstr "S poštovanjem,"
msgid "Yours sincerely,"
msgstr "S poštovanjem,"
+msgid "Yours,"
+msgstr ""
+
msgid "[FOI #{{request}} email]"
msgstr ""
@@ -3105,6 +3207,9 @@ msgstr ""
msgid "admin"
msgstr "administrator"
+msgid "alaveteli_foi:The software that runs {{site_name}}"
+msgstr ""
+
msgid "all requests"
msgstr "svi zahtjevi"
@@ -3138,6 +3243,9 @@ msgstr "bilo šta"
msgid "are long overdue."
msgstr "kasne"
+msgid "at"
+msgstr ""
+
msgid "authorities"
msgstr "ustanove"
@@ -3150,6 +3258,9 @@ msgstr ""
msgid "between two dates"
msgstr "između dva datuma"
+msgid "but followupable"
+msgstr ""
+
msgid "by"
msgstr "od strane"
@@ -3171,7 +3282,7 @@ msgstr ""
" Ili ih možete kontaktirati putem telefona."
msgid "details"
-msgstr ""
+msgstr "detalji"
msgid "display_status only works for incoming and outgoing messages right now"
msgstr ""
@@ -3233,15 +3344,21 @@ msgstr "poruke od ustanova"
msgid "messages from users"
msgstr "poruke od korisnika"
+msgid "move..."
+msgstr ""
+
msgid "no later than"
msgstr "ne kasnije od"
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "normally"
msgstr ""
+msgid "not requestable due to: {{reason}}"
+msgstr ""
+
msgid "please sign in as "
msgstr "molimo prijavite se kao "
@@ -3263,6 +3380,9 @@ msgstr "pošaljite prateću poruku"
msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
msgstr "poslano za {{public_body_name}} od strane {{info_request_user}} na datum {{date}}."
+msgid "set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA"
+msgstr ""
+
msgid "show quoted sections"
msgstr ""
@@ -3284,6 +3404,11 @@ msgstr ""
msgid "the main FOI contact address for {{public_body}}"
msgstr "glavne kontakt adrese za Zahtjeve o slobodnom pristupu informacijama za {{public_body}}"
+#. This phrase completes the following sentences:
+#. Request an internal review from...
+#. Send a public follow up message to...
+#. Send a public reply to...
+#. Don't want to address your message to... ?
msgid "the main FOI contact at {{public_body}}"
msgstr "glavni kontakt za Zahtjeve o slobodnom pristupu informacijama u ustanovi {{public_body}}"
@@ -3332,9 +3457,36 @@ msgstr "korisna informacija"
msgid "users"
msgstr "korisnici"
+msgid "what's that?"
+msgstr "šta je to?"
+
msgid "{{count}} FOI requests found"
msgstr "{{count}} Zahtjeva za slobodan pristup informacijama pronađeno"
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[1] "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[2] "{{count}} Freedom of Information requests to {{public_body_name}}"
+
+msgid "{{count}} person is following this authority"
+msgid_plural "{{count}} people are following this authority"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
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 ""
@@ -3392,6 +3544,9 @@ msgstr "{{site_name}} šalje nove zahtjeve <strong>{{request_email}}</strong> za
msgid "{{site_name}} users have made {{number_of_requests}} requests, including:"
msgstr "korisnici {{site_name}} su podnijeli {{number_of_requests}} zahtjeva, uključujući:"
+msgid "{{thing_changed}} was changed from <code>{{from_value}}</code> to <code>{{to_value}}</code>"
+msgstr ""
+
msgid "{{title}} - a Freedom of Information request to {{public_body}}"
msgstr ""
diff --git a/locale/ca/app.po b/locale/ca/app.po
index 605972373..1e80a5a59 100644
--- a/locale/ca/app.po
+++ b/locale/ca/app.po
@@ -3,17 +3,17 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# David Cabo <david.cabo@gmail.com>, 2012.
-# <ecapfri@yahoo.es>, 2012.
-# <mmtarres@gmail.com>, 2012.
+# David Cabo <david.cabo@gmail.com>, 2012
+# ecapfri <ecapfri@yahoo.es>, 2012
+# mmtarres <mmtarres@gmail.com>, 2012
msgid ""
msgstr ""
"Project-Id-Version: alaveteli\n"
"Report-Msgid-Bugs-To: http://github.com/sebbacon/alaveteli/issues\n"
-"POT-Creation-Date: 2012-12-18 10:11+0000\n"
-"PO-Revision-Date: 2012-12-18 10:14+0000\n"
+"POT-Creation-Date: 2013-05-30 09:46+0100\n"
+"PO-Revision-Date: 2013-05-30 08:54+0000\n"
"Last-Translator: louisecrow <louise@mysociety.org>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language-Team: Catalan (http://www.transifex.com/projects/p/alaveteli/language/ca/)\n"
"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -23,8 +23,8 @@ msgstr ""
msgid " This will appear on your {{site_name}} profile, to make it\\n easier for others to get involved with what you're doing."
msgstr " Això apareixerà en el teu perfil de {{site_name}}, per facilitar que altres persones entenguin i participin en les teves sol•licituds."
-msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)"
-msgstr " (<strong>sense atacs polítics</strong>, llegeixi la nostra <a href=\"%s\">política de moderació</a>)"
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
+msgstr " (<strong>sense atacs polítics</strong>, llegeixi la nostra <a href=\"{{url}}\">política de moderació</a>)"
msgid " (<strong>patience</strong>, especially for large files, it may take a while!)"
msgstr " (<strong>paciència</strong>, especialment amb fitxers grans, pot trigar uns minuts!)"
@@ -55,9 +55,9 @@ msgstr " Consell sobre com <strong>aclarir el millor possible</strong> la sol•
msgid " Ideas on what <strong>other documents to request</strong> which the authority may hold. "
msgstr " Idees sobre <strong>quins altres documents demanar </strong> que l'organisme públic pot tenir."
-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."
+msgid " If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\\n You may be able to find the address on their website, or by phoning them up and asking."
msgstr ""
-" Si coneixes la direcció a utilitzar, si us plau <a href=\"%s\">envia'ns-la</a>.\n"
+" Si coneixes la direcció a utilitzar, si us plau <a href=\"{{url}}\">envia'ns-la</a>.\n"
" Pot ser que la trobis a la seva pàgina web, o trucant-los per telèfon i preguntant."
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."
@@ -99,21 +99,6 @@ msgstr " quan enviares aquest missatge."
msgid "\"Hello! We have an <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">important message</a> for visitors outside {{country_name}}\""
msgstr ""
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
-msgstr[0] "%d sol·licitud d'informació a %s"
-msgstr[1] "%d sol·licituds d'informació a %s"
-
-msgid "%d request"
-msgid_plural "%d requests"
-msgstr[0] "%d sol·licitud"
-msgstr[1] "%d sol·licituds"
-
-msgid "%d request made."
-msgid_plural "%d requests made."
-msgstr[0] "%d sol·licitud enviada."
-msgstr[1] "%d sol·licituds enviades."
-
msgid "'Crime statistics by ward level for Wales'"
msgstr "'Estadístiques de crims per regió a Espanya'"
@@ -129,6 +114,9 @@ msgstr "'{{link_to_request}}', una sol·licitud"
msgid "'{{link_to_user}}', a person"
msgstr "'{{link_to_user}}', una persona"
+msgid "*unknown*"
+msgstr ""
+
msgid ",\\n\\n\\n\\nYours,\\n\\n{{user_name}}"
msgstr ""
",\n"
@@ -151,34 +139,14 @@ msgstr "2. Sol·liciti informació"
msgid "3. Now check your request"
msgstr "3. Revisa la teva sol·licitud"
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
-msgstr "<a href=\"%s\">Afegeixi un comentari</a> (per ajudar al peticionari o a altres)"
-
-msgid "<a href=\"%s\">Are we missing a public authority?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Are you the owner of\\n any commercial copyright on this page?</a>"
-msgstr ""
-"<a href=\"%s\">Posseeix el copyright\n"
-" d'alguna informació d'aquesta pàgina?</a>"
-
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
-msgstr "<a href=\"%s\">Veure totes</a> o <a href=\"%s\">demana'ns que n'afegim una</a>."
-
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
-msgstr "<a href=\"%s\">No troba el que busca?</a>"
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
+msgstr "<a href=\"{{browse_url}}\">Veure totes</a> o <a href=\"{{add_url}}\">demana'ns que n'afegim una</a>."
-msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
-msgstr "<a href=\"%s\">Obre una sessió</a> per canviar la teva contrasenya, suscripcions... (només {{user_name}})"
+msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)"
+msgstr "<a href=\"{{url}}\">Afegeixi un comentari</a> (per ajudar al peticionari o a altres)"
-msgid "<a href=\"%s\">details</a>"
-msgstr "<a href=\"%s\">detalls</a>"
-
-msgid "<a href=\"%s\">what's that?</a>"
-msgstr "<a href=\"%s\">Què és això?</a>"
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
+msgstr "<a href=\"{{url}}\">Obre una sessió</a> per canviar la teva contrasenya, suscripcions... (només {{user_name}})"
msgid "<p>All done! Thank you very much for your help.</p><p>There are <a href=\"{{helpus_url}}\">more things you can do</a> to help {{site_name}}.</p>"
msgstr "<p> Ja està! Moltes gràcies per la teva ajuda.</p><p>Hi ha <a href=\"{{helpus_url}}\">més coses que pots fer</a> per ajudar a {{site_name}}.</p>"
@@ -197,9 +165,6 @@ msgstr ""
msgid "<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>"
msgstr "<p>Gràcies! Desitgem que la teva espera no sigui massa llarga.</p><p>Hauries de rebre una resposta en {{late_number_of_days}} dies, o ser informat de que trigarà més (<a href=\"{{review_url}}\">més informació</a>).</p>"
-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 "<p>Gràcies! Investigarem què ha succeït i tractarem d'arreglar-ho.</p><p> Si l'error ha estat en intentar entregar el correu, i pots trobar una direcció més actualitzada per a aquest organisme, si us plau indica'ns-ho en el següent formulari.</p>"
-
msgid "<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>"
msgstr "<p>Gràcies! La teva sol·licitud està molt retrassada, han passat més de {{very_late_number_of_days}} dies laborables. La majoria de les sol·licituds haurien de rebre una resposta en {{late_number_of_days}} dies laborables. Pots reclamar sobre aquesta situació, com s'explica més avall.</p>"
@@ -224,11 +189,11 @@ msgstr "<p>Ens plau saber que has obtingut tota la informació que vas demanar.
msgid "<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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 "<p>Ens plau saber que has obtingut part de la informació que vas demanar. Si escrius sbore ella, o la utilitzes, si us plau tornar i afegeix un comentari a continuació explicant el que has fet.</p><p>Si {{site_name}} t'ha resultat útil, <a href=\"{{donation_url}}\">pots donar</a> a la ONG responsable.</p>"
-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 "<p>No necessites incloure la teva adreça de correu a la sol•licitud per rebre una resposta (<a href=\"%s\">més detalls</a>).</p>"
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
+msgstr "<p>No necessites incloure la teva adreça de correu a la sol•licitud per rebre una resposta (<a href=\"{{url}}\">més detalls</a>).</p>"
-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 "<p> No necessites incloure la teva adreça de correu a la sol•licitud per rebre una resposta, te la demanarem en el següent pas (<a href=\"%s\">més detalls</a>).</p>"
+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=\"{{url}}\">details</a>).</p>"
+msgstr "<p> No necessites incloure la teva adreça de correu a la sol•licitud per rebre una resposta, te la demanarem en el següent pas (<a href=\"{{url}}\">més detalls</a>).</p>"
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 "<p>La teva sol•licitud inclou un <strong>codi postal</strong>. Excepte que estigui directament relacionat amb la teva sol•licitud, si us plau, elimina qualsevol adreça, ja que <strong>estarà disponible públicament a Internet</strong>.</p>"
@@ -244,15 +209,10 @@ msgstr ""
"<small>Si utilitzes correu web o tens filtres \"anti spam\", si us plau comprova les teves carpetes d'spam. A vegades, els nostres missatges es marquen així per error.</small>\n"
"</p>"
-msgid "<span id='follow_count'>%d</span> person is following this authority"
-msgid_plural "<span id='follow_count'>%d</span> people are following this authority"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
+msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
msgstr ""
"<strong> Puc demanar informació sobre mi?</strong>\n"
-"\t\t\t<a href=\"%s\">No! (Premi aquí per més detalls)</a>"
+"\t\t\t<a href=\"{{url}}\">No! (Premi aquí per més detalls)</a>"
msgid "<strong><code>commented_by:tony_bowden</code></strong> to search annotations made by Tony Bowden, typing the name as in the URL."
msgstr "<strong><code>commented_by:rafael_nadal</code></strong> per cercar comentaris fets per l'usuari 'rafael_nadal'."
@@ -320,10 +280,10 @@ msgstr ""
" Enviarem un correu a la nova direcció de correu. Segueix\n"
" les seves instruccions per confirmar la nova direcció."
-msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"%s\">click here</a>."
+msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"{{url}}\">click here</a>."
msgstr ""
"<strong>Nota sobre privacitat:</strong> Si vols sol·licitar informació privada\n"
-" sobre tu mateix <a href=\"%s\">segueix aquest enllaç</a>."
+" sobre tu mateix <a href=\"{{url}}\">segueix aquest enllaç</a>."
msgid "<strong>Privacy note:</strong> Your photo will be shown in public on the Internet,\\n wherever you do something on {{site_name}}."
msgstr ""
@@ -366,6 +326,9 @@ msgstr "Una resposta serà enviada <strong>per correu ordinari</strong>"
msgid "A strange reponse, required attention by the {{site_name}} team"
msgstr "Una resposta inusual, ha de ser revisada per l'equip de {{site_name}}"
+msgid "A vexatious request"
+msgstr ""
+
msgid "A {{site_name}} user"
msgstr "Un usuari de {{site_name}}"
@@ -375,6 +338,15 @@ msgstr "Sobre mi:"
msgid "Act on what you've learnt"
msgstr "Utilitza aquesta informació"
+msgid "Acts as xapian/acts as xapian job"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Action"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Model"
+msgstr ""
+
msgid "Add an annotation"
msgstr "Afegeix un comentari"
@@ -461,13 +433,22 @@ msgstr ""
msgid "Anyone:"
msgstr "Cualquiera:"
+msgid "Applies to"
+msgstr ""
+
+msgid "Are we missing a public authority?"
+msgstr ""
+
+msgid "Are you the owner of any commercial copyright on this page?"
+msgstr "Posseeix el copyright d'alguna informació d'aquesta pàgina?"
+
msgid "Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries."
msgstr "Pide documentos o información <strong>específica</strong>, esta web no está pensada para resolver dudas generales."
-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>)."
+msgid "At the bottom of this page, write a reply to them trying to persuade them to scan it in\\n (<a href=\"{{url}}\">more details</a>)."
msgstr ""
"Al final de esta página, escribe una respuesta intentando convencerles de que lo escaneen\n"
-" (<a href=\"%s\">más detalles</a>)."
+" (<a href=\"{{url}}\">más detalles</a>)."
msgid "Attachment (optional):"
msgstr "Adjuntos (opcional):"
@@ -502,6 +483,12 @@ msgstr "Por ley, bajo cualquier circunstancia, {{public_body_link}} ya debería
msgid "By law, {{public_body_link}} should normally have responded <strong>promptly</strong> and"
msgstr "Por ley, {{public_body_link}} debería haber respondido <strong>pronto</strong> y"
+msgid "Calculated home page"
+msgstr ""
+
+msgid "Can't find the one you want?"
+msgstr "No troba el que busca?"
+
msgid "Cancel a {{site_name}} alert"
msgstr "Cancele una alerta de {{site_name}}"
@@ -671,9 +658,15 @@ msgstr "Actualmente <strong>esperando la respuesta</strong> de {{public_body_lin
msgid "Date:"
msgstr "Fecha:"
+msgid "Dear {{name}},"
+msgstr ""
+
msgid "Dear {{public_body_name}},"
msgstr "Estimado {{public_body_name}},"
+msgid "Default locale"
+msgstr ""
+
msgid "Delayed response to your FOI request - "
msgstr "Respuesta retrasada a tu solicitud de acceso a información - "
@@ -683,6 +676,9 @@ msgstr "Retrasado."
msgid "Delivery error"
msgstr "Error en la entrega"
+msgid "Destroy {{name}}"
+msgstr ""
+
msgid "Details of request '"
msgstr "Detalles de la solicitud '"
@@ -695,6 +691,9 @@ msgstr "Atención: Este mensaje y cualquier respuesta que hagas serán publicada
msgid "Disclosure log"
msgstr ""
+msgid "Disclosure log URL"
+msgstr ""
+
msgid "Don't want to address your message to {{person_or_body}}? You can also write to:"
msgstr "¿Quieres mandar tu mensaje a {{person_or_body}}? También puedes escribir a:"
@@ -713,14 +712,14 @@ msgstr "Descargar ficheros adjuntos"
msgid "EIR"
msgstr "EIR"
+msgid "Edit"
+msgstr ""
+
msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
msgstr ""
"Edita y añade <strong>más detalles</strong> al mensaje anterior,\n"
" explicando por qué no estás satisfecho con su respuesta."
-msgid "Edit language version:"
-msgstr "Editar versión en idioma:"
-
msgid "Edit text about you"
msgstr "Edite el texto sobre tí"
@@ -742,7 +741,7 @@ msgstr "Quiero recibir emails con las actulizaciones de esta solicitud"
msgid "Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>"
msgstr "Introduzca las palabras que desee separadas por espacio, es decir <strong>parlamento gasto</strong>"
-msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"%s\">contact us</a> if you need more)."
+msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"{{url}}\">contact us</a> if you need more)."
msgstr ""
msgid "Environmental Information Regulations"
@@ -760,17 +759,20 @@ msgstr "Historial de eventos"
msgid "Event history details"
msgstr "Historial de eventos"
-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>)."
+msgid "Event {{id}}"
msgstr ""
-"Todo lo que escriba en esta página \n"
-" estará <strong>disponible públicamente</strong> en\n"
-" está web para siempre (<a href=\"%s\">¿por qué?</a>)."
-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>)."
+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=\"{{url}}\">why?</a>)."
msgstr ""
"Todo lo que escribas en esta página, incluyendo <strong>tu nombre</strong>, \n"
" estará <strong>disponible públicamente</strong> en\n"
-" está web para siempre (<a href=\"%s\">¿por qué?</a>)."
+" está web para siempre (<a href=\"{{url}}\">¿por qué?</a>)."
+
+msgid "Everything that you enter on this page\\n will be <strong>displayed publicly</strong> on\\n this website forever (<a href=\"{{url}}\">why?</a>)."
+msgstr ""
+"Todo lo que escriba en esta página \n"
+" estará <strong>disponible públicamente</strong> en\n"
+" está web para siempre (<a href=\"{{url}}\">¿por qué?</a>)."
msgid "FOI"
msgstr "FOI"
@@ -778,6 +780,9 @@ msgstr "FOI"
msgid "FOI email address for {{public_body}}"
msgstr "Dirección de correo para {{public_body}}"
+msgid "FOI request – {{title}}"
+msgstr ""
+
msgid "FOI requests"
msgstr "Solicitudes de información"
@@ -793,14 +798,14 @@ msgstr ""
msgid "Failed to convert image to a PNG"
msgstr "Error al convertir la imagen a PNG"
-msgid "Failed to convert image to the correct size: at %{cols}x%{rows}, need %{width}x%{height}"
-msgstr "Error al convertir la imagen al tamaño adecuado: es %{cols}x%{rows}, debería ser %{width}x%{height}"
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
+msgstr "Error al convertir la imagen al tamaño adecuado: es {{cols}}x{{rows}}, debería ser {{width}}x{{height}}"
msgid "Filter"
msgstr "Filtrar"
-msgid "First, type in the <strong>name of the UK public authority</strong> you'd \\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"%s#%s\">why?</a>)."
-msgstr "Primero, escribe el <strong>nombre de la institución</strong> a la que quieres pedir información. <strong>Están obligados a responder</strong> (<a href=\"%s#%s\">¿por qué?</a>)."
+msgid "First, type in the <strong>name of the UK public authority</strong> you'd\\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"{{url}}\">why?</a>)."
+msgstr "Primero, escribe el <strong>nombre de la institución</strong> a la que quieres pedir información. <strong>Están obligados a responder</strong> (<a href=\"{{url}}\">¿por qué?</a>)."
msgid "Foi attachment"
msgstr ""
@@ -880,8 +885,8 @@ msgstr "No es posible hacer una solicitud a este organismo, por motivos desconoc
msgid "Forgotten your password?"
msgstr "¿Has olvidado tu contraseña?"
-msgid "Found %d public authority %s"
-msgid_plural "Found %d public authorities %s"
+msgid "Found {{count}} public authority {{description}}"
+msgid_plural "Found {{count}} public authorities {{description}}"
msgstr[0] ""
msgstr[1] ""
@@ -918,11 +923,11 @@ msgstr "Solicitudes de información a"
msgid "From"
msgstr ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
"Desde la página de la solicitud, intente responder a un mensaje en concreto, en vez de\n"
" responder a la solicitud en general. Si necesita hacerlo y tiene una dirección de\n"
-" correo válida, por favor <a href=\"%s\">mándenosla</a>."
+" correo válida, por favor <a href=\"{{url}}\">mándenosla</a>."
msgid "From:"
msgstr "De:"
@@ -933,6 +938,18 @@ msgstr "DETALLA TU QUEJA AQUÍ"
msgid "Handled by post."
msgstr "Resuelta por correo ordinario"
+msgid "Has tag string/has tag string tag"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Model"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Name"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Value"
+msgstr ""
+
msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
msgstr "¡Hola! Puede hacer solicitudes de información en {{country_name}} usando {{link_to_website}}"
@@ -958,6 +975,9 @@ msgstr ""
" no nos ha dicho si tuvo o no éxito. ¿Te importaría invertir unos minutos\n"
" en leerla y ayudarnos a clasificarla para el beneficio de todos? Gracias."
+msgid "Hide request"
+msgstr ""
+
msgid "Holiday"
msgstr ""
@@ -970,6 +990,9 @@ msgstr "Holiday|Description"
msgid "Home"
msgstr "Inicio"
+msgid "Home page"
+msgstr ""
+
msgid "Home page of authority"
msgstr "Sitio web del organismo"
@@ -1022,8 +1045,17 @@ msgstr "He recibido <strong>parte de la información</strong>"
msgid "I've received an <strong>error message</strong>"
msgstr "He recibido un <strong>mensaje de error</strong>"
-msgid "If the address is wrong, or you know a better address, please <a href=\"%s\">contact us</a>."
-msgstr "Si la dirección es incorrecta, o conoce una más actualizada, por favor <a href=\"%s\">contáctenos</a>."
+msgid "I've received an error message"
+msgstr ""
+
+msgid "Id"
+msgstr ""
+
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Si la dirección es incorrecta, o conoce una más actualizada, por favor <a href=\"{{url}}\">contáctenos</a>."
+
+msgid "If the error was a delivery failure, and you can find an up to date FOI email address for the authority, please tell us using the form below."
+msgstr ""
msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
msgstr ""
@@ -1031,22 +1063,22 @@ msgstr ""
"o un correo sobre otro tema a {{user}}, entonces por favor\n"
"escribe a {{contact_email}} solicitando ayuda."
-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>)."
+msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"{{url}}\">details</a>)."
msgstr ""
"Si no está satisfecho con la respuesta que ha recibido del\n"
" organismo público, tiene derecho a\n"
-" apelar (<a href=\"%s\">detalles</a>)."
+" apelar (<a href=\"{{url}}\">detalles</a>)."
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
-msgstr "Si aún tiene problemas, por favor <a href=\"%s\">contáctenos</a>."
+msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Si aún tiene problemas, por favor <a href=\"{{url}}\">contáctenos</a>."
-msgid "If you are the requester, then you may <a href=\"%s\">sign in</a> to view the request."
-msgstr "Si la solicitud es tuya, puedes <a href=\"%s\">abrir una sesión</a> para verla."
+msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request."
+msgstr "Si la solicitud es tuya, puedes <a href=\"{{url}}\">abrir una sesión</a> para verla."
-msgid "If you are thinking of using a pseudonym,\\n please <a href=\"%s\">read this first</a>."
+msgid "If you are thinking of using a pseudonym,\\n please <a href=\"{{url}}\">read this first</a>."
msgstr ""
"Si está pensando en utilizar un pseudónimo,\n"
-" por favor <a href=\"%s\">lea esto primero</a>."
+" por favor <a href=\"{{url}}\">lea esto primero</a>."
msgid "If you are {{user_link}}, please"
msgstr "Si es {{user_link}}, por favor"
@@ -1100,6 +1132,9 @@ msgstr ""
"Si tu navegador acepta cookies y estás viendo este mensaje,\n"
"puede que haya un problema en nuestro servidor."
+msgid "Incoming email address"
+msgstr ""
+
msgid "Incoming message"
msgstr ""
@@ -1219,14 +1254,20 @@ msgstr ""
msgid "Items matching the following conditions are currently displayed on your wall."
msgstr ""
+msgid "Items sent in last month"
+msgstr ""
+
msgid "Joined in"
msgstr "Registrado el"
msgid "Joined {{site_name}} in"
msgstr "Registrado en {{site_name}} el"
-msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)."
-msgstr "Sea <strong>específico</strong>, tendrá más probabilidades de conseguir lo que quiere (<a href=\"%s\">¿por qué?</a>)."
+msgid "Just one more thing"
+msgstr ""
+
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
+msgstr "Sea <strong>específico</strong>, tendrá más probabilidades de conseguir lo que quiere (<a href=\"{{url}}\">¿por qué?</a>)."
msgid "Keywords"
msgstr "Términos"
@@ -1246,9 +1287,27 @@ msgstr ""
msgid "Link to this"
msgstr "Enlace"
+msgid "List all"
+msgstr ""
+
msgid "List of all authorities (CSV)"
msgstr "Lista de todos los organismos (CSV)"
+msgid "Listing FOI requests"
+msgstr ""
+
+msgid "Listing public authorities"
+msgstr ""
+
+msgid "Listing public authorities matching '{{query}}'"
+msgstr ""
+
+msgid "Listing tracks"
+msgstr ""
+
+msgid "Listing users"
+msgstr ""
+
msgid "Log in to download a zip file of {{info_request_title}}"
msgstr "Abra una sesión para descargar el fichero ZIP de {{info_request_title}}"
@@ -1348,6 +1407,9 @@ msgstr "El nombre ya está siendo utilizado"
msgid "New Freedom of Information requests"
msgstr "Nuevas solicitudes de acceso a información"
+msgid "New censor rule"
+msgstr ""
+
msgid "New e-mail:"
msgstr "Nueva dirección:"
@@ -1393,6 +1455,9 @@ msgstr "No se han encontrado resultados."
msgid "No similar requests found."
msgstr "No se han encontrado solicitudes similares."
+msgid "No tracked things found."
+msgstr ""
+
msgid "Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet."
msgstr "Nadie ha realizado todavía una solicitud de información a {{public_body_name}} usando esta web."
@@ -1402,6 +1467,9 @@ msgstr "No se han encontrado resultados."
msgid "None made."
msgstr "Ninguno/a."
+msgid "Not a valid FOI request"
+msgstr ""
+
msgid "Note that the requester will not be notified about your annotation, because the request was published by {{public_body_name}} on their behalf."
msgstr ""
@@ -1447,6 +1515,9 @@ msgstr "Una persona encontrada"
msgid "One public authority found"
msgstr "Un organismo público encontrado"
+msgid "Only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL – don't worry about breaking URLs through renaming, as the history is used to redirect"
+msgstr ""
+
msgid "Only requests made using {{site_name}} are shown."
msgstr "Sólo se muestran las solicitudes realizadas con {{site_name}}."
@@ -1519,8 +1590,8 @@ msgstr "Juega al juego de clasificación de solicitudes!"
msgid "Please"
msgstr "Por favor"
-msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
-msgstr "Por favor <a href=\"%s\">contacta</a> con nosotros para que podamos arreglarlo."
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
+msgstr "Por favor <a href=\"{{url}}\">contacta</a> con nosotros para que podamos arreglarlo."
msgid "Please <strong>answer the question above</strong> so we know whether the "
msgstr "Por favor <strong>responda la pregunta anterior</strong> para que sepamos si "
@@ -1635,8 +1706,8 @@ msgstr ""
"Por favor elije estas solicitudes una a una, y <strong>haz que se sepa</strong>\n"
"si han tenido éxito o no."
-msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature"
-msgstr "Por favor, firma con tu nombre en la parte inferior, o cambia la firma \"%{signoff}\""
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
+msgstr "Por favor, firma con tu nombre en la parte inferior, o cambia la firma \"{{signoff}}\""
msgid "Please sign in as "
msgstr "Por favor abre una sesión como "
@@ -1647,9 +1718,6 @@ msgstr ""
msgid "Please type a message and/or choose a file containing your response."
msgstr "Por favor escribe un mensaje y/o escoje un fichero conteniendo su respuesta."
-msgid "Please use the form below to tell us more."
-msgstr "Por favor use el formulario a continuación para decirnos más."
-
msgid "Please use this email address for all replies to this request:"
msgstr "Por favor use la siguiente dirección de correo para todas las respuestas a esta solicitud:"
@@ -1740,37 +1808,19 @@ msgstr "Organismos públicos - {{description}}"
msgid "Public authorities {{start_count}} to {{end_count}} of {{total_count}}"
msgstr "Organismos públicos {{start_count}} a {{end_count}} de {{total_count}}"
-msgid "Public body"
-msgstr ""
-
-msgid "Public body/translation"
-msgstr ""
-
-msgid "PublicBody::Translation|Disclosure log"
+msgid "Public authority – {{name}}"
msgstr ""
-msgid "PublicBody::Translation|First letter"
-msgstr ""
-
-msgid "PublicBody::Translation|Locale"
-msgstr ""
-
-msgid "PublicBody::Translation|Name"
-msgstr ""
-
-msgid "PublicBody::Translation|Notes"
-msgstr ""
-
-msgid "PublicBody::Translation|Publication scheme"
+msgid "Public body"
msgstr ""
-msgid "PublicBody::Translation|Request email"
+msgid "Public notes"
msgstr ""
-msgid "PublicBody::Translation|Short name"
+msgid "Public page"
msgstr ""
-msgid "PublicBody::Translation|Url name"
+msgid "Public page not available"
msgstr ""
msgid "PublicBody|Api key"
@@ -1818,6 +1868,9 @@ msgstr "Versión"
msgid "Publication scheme"
msgstr "Esquema de publicación"
+msgid "Publication scheme URL"
+msgstr ""
+
msgid "Purge request"
msgstr ""
@@ -1877,6 +1930,9 @@ msgstr "Pida una revisión interna"
msgid "Request an internal review from {{person_or_body}}"
msgstr "Pedir una revisión interna a {{person_or_body}}"
+msgid "Request email"
+msgstr ""
+
msgid "Request has been removed"
msgstr "La solicitud ha sido eliminada"
@@ -1970,14 +2026,17 @@ msgstr "Resultados de la búsqueda"
msgid "Search the site to find what you were looking for."
msgstr "Buscar en esta web para encontrar lo que busca."
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
-msgstr[0] "Busque en la %d solicitud de información hecha a %s"
-msgstr[1] "Busque entre las %d solicitudes de información hechas a %s"
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests made to {{public_body_name}}"
+msgstr[0] "Busque en la {{count}} solicitud de información hecha a {{public_body_name}}"
+msgstr[1] "Busque entre las {{count}} solicitudes de información hechas a {{public_body_name}}"
msgid "Search your contributions"
msgstr "Busca tus aportaciones"
+msgid "See bounce message"
+msgstr ""
+
msgid "Select one to see more information about the authority."
msgstr "Elija uno para ver más información sobre el organismo."
@@ -2011,6 +2070,9 @@ msgstr "Enviar solicitud"
msgid "Set your profile photo"
msgstr "Cambiar foto de perfil"
+msgid "Short name"
+msgstr ""
+
msgid "Short name is already taken"
msgstr "Nombre de usuario ya en uso"
@@ -2110,6 +2172,9 @@ msgstr "Enviar"
msgid "Submit status"
msgstr "Enviar estado"
+msgid "Submit status and send message"
+msgstr ""
+
msgid "Subscribe to blog"
msgstr "Subscribirse al blog"
@@ -2131,6 +2196,9 @@ msgstr "Tabla de estados"
msgid "Table of varieties"
msgstr "Tabla de tipos de objetos"
+msgid "Tags"
+msgstr ""
+
msgid "Tags (separated by a space):"
msgstr "Etiquetas (separadas por un espacio):"
@@ -2158,6 +2226,9 @@ msgstr "¡Gracias por actualizar esta solicitud!"
msgid "Thank you for updating your profile photo"
msgstr "Gracias por actualizar tu foto de perfil"
+msgid "Thank you! We'll look into what happened and try and fix it up."
+msgstr ""
+
msgid "Thanks for helping - your work will make it easier for everyone to find successful\\nresponses, and maybe even let us make league tables..."
msgstr ""
"Gracias por ayudar - tu trabajo hace más sencillo que otros encuentren solicitudes\n"
@@ -2240,22 +2311,22 @@ msgstr "La solicitud fue <strong>exitosa</strong>."
msgid "The request was refused by the public authority"
msgstr "La solicitud ha sido rechazada por el organismo"
-msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"%s\">contact us</a> if you have any questions."
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
msgstr ""
"La solicitud que ha intentado ver ha sido eliminada. Hay\n"
"varios posibles motivos para esto, pero no podemos ser más específicos aquí. Por favor <a\n"
-" href=\"%s\">contáctenos</a> si tiene cualquier pregunta."
+" href=\"{{url}}\">contáctenos</a> si tiene cualquier pregunta."
msgid "The requester has abandoned this request for some reason"
msgstr "El creador de la solicitud la ha cancelado por algún motivo"
-msgid "The response to your request has been <strong>delayed</strong>. You can say that, \\n by law, the authority should normally have responded\\n <strong>promptly</strong> and"
+msgid "The response to your request has been <strong>delayed</strong>. You can say that,\\n by law, the authority should normally have responded\\n <strong>promptly</strong> and"
msgstr ""
"La respuesta a tu solicitud ha sido <strong>retrasada</strong>.\n"
" Por ley, el organismo debería normalmente haber respondido\n"
" <strong>rápidamente</strong> y"
-msgid "The response to your request is <strong>long overdue</strong>. You can say that, by \\n law, under all circumstances, the authority should have responded\\n by now"
+msgid "The response to your request is <strong>long overdue</strong>. You can say that, by\\n law, under all circumstances, the authority should have responded\\n by now"
msgstr ""
"La respuesta a tu solicitud ha sido <strong>muy retrasada</strong>.\n"
" Por ley, bajo cualquier circunstancia, el organismo ya debería\n"
@@ -2267,6 +2338,9 @@ msgstr "El motor de búsqueda no está accesible en estos momentos: no podemos m
msgid "The search index is currently offline, so we can't show the Freedom of Information requests this person has made."
msgstr "El motor de búsqueda no está accesible en estos momentos: no podemos mostrar las solicitudes de información que ha hecho esta persona"
+msgid "The {{site_name}} team."
+msgstr ""
+
msgid "Then you can cancel the alert."
msgstr "Entonces podrás cancelar tu alerta."
@@ -2342,17 +2416,17 @@ msgstr "Entonces se enviará tu comentario a {{info_request_title}}."
msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
msgstr "Hay {{count}} comentarios en tu solicitud {{info_request}}. Sigue este enlace para leer lo que dicen."
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
-msgstr[0] "Hay %d persona siguiendo esta solicitud."
-msgstr[1] "Hay %d personas siguiendo esta solicitud."
-
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 ""
msgid "There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>."
msgstr "Hay un límite en el número de solicitudes que puedes hacer en un día, porque no queremos que los organismos públicos reciban un número exagerado de solicitudes mal formuladas. Si necesitas que el límite no se aplique en tu caso, por favor <a href='{{help_contact_path}}'>contacta con nosotros</a>."
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
+msgstr[0] "Hay {{count}} persona siguiendo esta solicitud."
+msgstr[1] "Hay {{count}} personas siguiendo esta solicitud."
+
msgid "There was a <strong>delivery error</strong> or similar, which needs fixing by the {{site_name}} team."
msgstr "Se ha producido un <strong>error en la entrega</strong> o similar, y necesita ser arreglado por el equipo de {{site_name}}."
@@ -2391,10 +2465,10 @@ msgstr ""
msgid "This authority no longer exists, so you cannot make a request to it."
msgstr "Este organismo ya no existe, no pueden realizarse solicitudes de información."
-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."
+msgid "This comment has been hidden. See annotations to\\n find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
"Este respuesta está oculta. Revisa los comentarios\n"
-" para descubrir por qué. Si es tu solicitud, <a href=\"%s\">abre una sesión</a> para ver la respuesta."
+" para descubrir por qué. Si es tu solicitud, <a href=\"{{url}}\">abre una sesión</a> para ver la respuesta."
msgid "This covers a very wide spectrum of information about the state of\\n the <strong>natural and built environment</strong>, such as:"
msgstr ""
@@ -2415,13 +2489,16 @@ msgstr ""
"Esto es porque {{title}} es una solicitud antigua\n"
"marcada para ya no recibir más respuestas."
+msgid "This is the first version."
+msgstr ""
+
msgid "This is your own request, so you will be automatically emailed when new responses arrive."
msgstr "Esta es tu solicitud, por lo que recibirás correos automáticamente cuando lleguen nuevas respuestas."
-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."
+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=\"{{url}}\">sign in</a> to view the response."
msgstr ""
"Este mensaje está oculto. Lee los comentarios\n"
-"\t\t\t\t\t\tpara descubrir por qué. Si es tu solicitud, <a href=\"%s\">abra una sesión</a> para ver la respuesta."
+"\t\t\t\t\t\tpara descubrir por qué. Si es tu solicitud, <a href=\"{{url}}\">abra una sesión</a> para ver la respuesta."
msgid "This particular request is finished:"
msgstr "Esta solicitud está cerrada:"
@@ -2429,19 +2506,19 @@ msgstr "Esta solicitud está cerrada:"
msgid "This person has made no Freedom of Information requests using this site."
msgstr "Esta persona no ha realizado solicitudes de información usando esta web."
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
-msgstr[0] "Tu %d solicitud de información"
-msgstr[1] "Tus %d solicitudes de información"
-
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
-msgstr[0] "Tu %d comentario"
-msgstr[1] "Tus %d comentarios"
-
msgid "This person's annotations"
msgstr "Tus comentarios"
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
+msgstr[0] "Tu {{count}} solicitud de información"
+msgstr[1] "Tus {{count}} solicitudes de información"
+
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
+msgstr[0] "Tu {{count}} comentario"
+msgstr[1] "Tus {{count}} comentarios"
+
msgid "This request <strong>requires administrator attention</strong>"
msgstr "Esta solicitud <strong>requiere la intervención de un administrador</strong>"
@@ -2465,7 +2542,7 @@ msgstr ""
"Esta solicitud ha sido <strong>retirada</strong> por la persona que la realizó. \n"
" \t Puede que haya una explicación en los mensajes a continuación."
-msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"%s\">contact us</a>."
+msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
msgid "This request has been reported for administrator attention"
@@ -2482,21 +2559,24 @@ msgstr ""
"Esta solicitud tiene visibilidad 'oculta'. Puedes verla sólo porque estás identificado\n"
" como super-usuario."
-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."
+msgid "This request is hidden, so that only you the requester can see it. Please\\n <a href=\"{{url}}\">contact us</a> if you are not sure why."
msgstr ""
"Esta solicitud está oculta, por lo que sólo tú como creador puedes verla. Por favor\n"
-" <a href=\"%s\">contáctanos</a> si no estás seguro de por qué."
+" <a href=\"{{url}}\">contáctanos</a> si no estás seguro de por qué."
msgid "This request is still in progress:"
msgstr "Esta solicitud está todavía en proceso:"
+msgid "This request requires administrator attention"
+msgstr ""
+
msgid "This request was not made via {{site_name}}"
msgstr ""
-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."
+msgid "This response has been hidden. See annotations to find out why.\\n If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
"Este respuesta está oculta. Revisa los comentarios\n"
-" para descubrir por qué. Si es tu solicitud, <a href=\"%s\">abre una sesión</a> para ver la respuesta."
+" para descubrir por qué. Si es tu solicitud, <a href=\"{{url}}\">abre una sesión</a> para ver la respuesta."
msgid "This table shows the technical details of the internal events that happened\\nto this request on {{site_name}}. This could be used to generate information about\\nthe speed with which authorities respond to requests, the number of requests\\nwhich require a postal response and much more."
msgstr ""
@@ -2664,11 +2744,11 @@ msgstr "Se encontró un tipo de resultado inesperado"
msgid "Unexpected search result type "
msgstr "Se encontró un tipo de resultado inesperado "
-msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"%s\">contact us</a> to sort it out."
+msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"{{url}}\">contact us</a> to sort it out."
msgstr ""
"Desgraciadamente no tenemos la dirección\n"
"de correo para este organismo, así que no podemos validarlo.\n"
-"Por favor <a href=\"%s\">contáctenos</a> para arreglarlo."
+"Por favor <a href=\"{{url}}\">contáctenos</a> para arreglarlo."
msgid "Unfortunately, we do not have a working {{info_request_law_used_full}}\\naddress for"
msgstr "Desgraciadamente, no tenemos una dirección de correo válida para"
@@ -2703,6 +2783,9 @@ msgstr ""
msgid "User info request sent alert"
msgstr ""
+msgid "User – {{name}}"
+msgstr ""
+
msgid "UserInfoRequestSentAlert|Alert type"
msgstr "UserInfoRequestSentAlert|Alert type"
@@ -2757,6 +2840,9 @@ msgstr "User|Salt"
msgid "User|Url name"
msgstr "User|Url name"
+msgid "Version {{version}}"
+msgstr ""
+
msgid "View FOI email address"
msgstr "Ver dirección de correo"
@@ -2796,6 +2882,12 @@ msgstr "Esperando que el organismo responda"
msgid "Was the response you got to your FOI request any good?"
msgstr "¿Fue la respuesta a tu solicitud satisfactoria?"
+msgid "We consider it is not a valid FOI request, and have therefore hidden it from other users."
+msgstr ""
+
+msgid "We consider it to be vexatious, and have therefore hidden it from other users."
+msgstr ""
+
msgid "We do not have a working request email address for this authority."
msgstr "No tenemos una dirección de correo válida para este organismo."
@@ -2809,10 +2901,10 @@ msgstr ""
" &ndash;\n"
"\tsi es {{user_link}} por favor <a href=\"{{url}}\">abra una sesión</a> y háganoslo saber."
-msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"%s\">details</a>). "
+msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"{{url}}\">details</a>). "
msgstr ""
"No revelaremos tu dirección de correo a nadie salvo que tú nos lo digas\n"
-" o la ley nos obligue (<a href=\"%s\">más información</a>). "
+" o la ley nos obligue (<a href=\"{{url}}\">más información</a>). "
msgid "We will not reveal your email address to anybody unless you\\nor the law tell us to."
msgstr ""
@@ -2865,8 +2957,8 @@ msgstr ""
"Cuando reciba la respuesta en papel, por favor ayude\n"
" a que otros sepan lo que dice:"
-msgid "When you're done, <strong>come back here</strong>, <a href=\"%s\">reload this page</a> and file your new request."
-msgstr "Cuando esté listo, <strong>vuelva aquí</strong>, <a href=\"%s\">recargue esta página</a> y cree una nueva solicitud."
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
+msgstr "Cuando esté listo, <strong>vuelva aquí</strong>, <a href=\"{{url}}\">recargue esta página</a> y cree una nueva solicitud."
msgid "Which of these is happening?"
msgstr "¿Qué está pasando?"
@@ -2974,11 +3066,11 @@ msgstr "Sabes lo que ha causado el error, y puedes <strong>sugerir una solución
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 ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
"Puede que encuentres una\n"
" en su página web, o preguntando por teléfono. Si la consigues\n"
-" por favor <a href=\"%s\">envíanosla</a>."
+" por favor <a href=\"{{url}}\">envíanosla</a>."
msgid "You may be able to find\\none on their website, or by phoning them up and asking. If you manage\\nto find one, then please <a href=\"{{help_url}}\">send it to us</a>."
msgstr ""
@@ -3024,6 +3116,9 @@ msgstr ""
"Sólo recibirás una respuesta a tu solicitud si continúas\n"
"con la aclaración."
+msgid "You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further."
+msgstr ""
+
msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
msgstr ""
@@ -3036,23 +3131,13 @@ msgstr ""
msgid "You've now cleared your profile photo"
msgstr "Has borrado la foto de tu perfil"
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
-msgstr[0] "Tu %d solicitud de información"
-msgstr[1] "Tus %d solicitudes de información"
-
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
-msgstr[0] "Tu %d comentario"
-msgstr[1] "Tus %d comentarios"
-
-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>."
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
msgstr ""
"<strong>Tu nombre aparecerá públicamente</strong> \n"
-" (<a href=\"%s\">¿por qué?</a>)\n"
+" (<a href=\"{{why_url}}\">¿por qué?</a>)\n"
" en esta web y en motores de búsqueda. Si estás\n"
" pensando en utilizar un seudónimo, por favor \n"
-" <a href=\"%s\">lee esto primero</a>."
+" <a href=\"{{help_url}}\">lee esto primero</a>."
msgid "Your annotations"
msgstr "Tus comentarios"
@@ -3063,8 +3148,8 @@ msgstr ""
msgid "Your e-mail:"
msgstr "Tu correo:"
-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 "Tu respuesta no ha sido enviada porque esta solicitud ha sido bloqueada para evitar spam. Por favor <a href=\"%s\">contáctanos</a> si realmente quieres enviar una respuesta."
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
+msgstr "Tu respuesta no ha sido enviada porque esta solicitud ha sido bloqueada para evitar spam. Por favor <a href=\"{{url}}\">contáctanos</a> si realmente quieres enviar una respuesta."
msgid "Your follow up message has been sent on its way."
msgstr "Tu mensaje está en camino."
@@ -3087,10 +3172,10 @@ msgstr "Tu mensaje aparecerá en <strong>los motores de búsqueda</strong>"
msgid "Your name and annotation will appear in <strong>search engines</strong>."
msgstr "Tu nombre y su comentario aparecerán en los <strong>motores de búsqueda</strong>."
-msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"%s\">details</a>)."
+msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"{{url}}\">details</a>)."
msgstr ""
"Tu nombre, tu solicitud y cualquier respuesta aparecerán en los <strong>motoros de búsqueda</strong>\n"
-" (<a href=\"%s\">detalles</a>)."
+" (<a href=\"{{url}}\">detalles</a>)."
msgid "Your name:"
msgstr "Tu nombre:"
@@ -3107,6 +3192,12 @@ msgstr "Tu contraseña:"
msgid "Your photo will be shown in public <strong>on the Internet</strong>,\\n wherever you do something on {{site_name}}."
msgstr ""
+msgid "Your request '{{request}}' at {{url}} has been reviewed by moderators."
+msgstr ""
+
+msgid "Your request on {{site_name}} hidden"
+msgstr ""
+
msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
msgstr "Tu solicitud se llamaba {{info_request}}. Haznos saber si has recibido la información para ayudarnos a controlar a"
@@ -3116,12 +3207,22 @@ msgstr "Tu solicitud:"
msgid "Your response to an FOI request was not delivered"
msgstr ""
-msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"%s\">read why</a> and answers to other questions."
-msgstr "Tu respuesta <strong>aparecerá en Internet</strong>, <a href=\"%s\">lee por qué</a> y respuestas a otras preguntas."
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
+msgstr "Tu respuesta <strong>aparecerá en Internet</strong>, <a href=\"{{url}}\">lee por qué</a> y respuestas a otras preguntas."
msgid "Your thoughts on what the {{site_name}} <strong>administrators</strong> should do about the request."
msgstr "Opine sobre lo que los <strong>administradores</strong> de {{site_name}} deberían hacer con la solicitud."
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
+msgstr[0] "Tu {{count}} solicitud de información"
+msgstr[1] "Tus {{count}} solicitudes de información"
+
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
+msgstr[0] "Tu {{count}} comentario"
+msgstr[1] "Tus {{count}} comentarios"
+
msgid "Your {{site_name}} email alert"
msgstr "Tu alerta en {{site_name}}"
@@ -3131,6 +3232,9 @@ msgstr "Un saludo,"
msgid "Yours sincerely,"
msgstr "Un saludo,"
+msgid "Yours,"
+msgstr ""
+
msgid "[FOI #{{request}} email]"
msgstr ""
@@ -3151,6 +3255,9 @@ msgstr ""
msgid "admin"
msgstr "admin"
+msgid "alaveteli_foi:The software that runs {{site_name}}"
+msgstr ""
+
msgid "all requests"
msgstr "todas las solicitudes"
@@ -3184,6 +3291,9 @@ msgstr "cualquiera"
msgid "are long overdue."
msgstr "están muy retrasados."
+msgid "at"
+msgstr ""
+
msgid "authorities"
msgstr "organismos"
@@ -3196,6 +3306,9 @@ msgstr "comenzando con ‘{{first_letter}}’"
msgid "between two dates"
msgstr "entre dos fechas"
+msgid "but followupable"
+msgstr ""
+
msgid "by"
msgstr "por"
@@ -3217,7 +3330,7 @@ msgstr ""
" O prueba a llamarles por teléfono."
msgid "details"
-msgstr ""
+msgstr "detalls"
msgid "display_status only works for incoming and outgoing messages right now"
msgstr "display_status sólo funciona para mensajes de entrada y salida ahora mismo"
@@ -3279,19 +3392,25 @@ msgstr "mensajes de organismos"
msgid "messages from users"
msgstr "mensajes de usuarios"
+msgid "move..."
+msgstr ""
+
msgid "no later than"
msgstr "no más tarde de"
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
"ya no existe. \n"
"Desde la página de la solicitud, intente responder a un mensaje en concreto, en vez de\n"
" responder a la solicitud en general. Si necesita hacerlo y tiene una dirección de\n"
-" correo válida, por favor <a href=\"%s\">mándenosla</a>."
+" correo válida, por favor <a href=\"{{url}}\">mándenosla</a>."
msgid "normally"
msgstr "normalmente"
+msgid "not requestable due to: {{reason}}"
+msgstr ""
+
msgid "please sign in as "
msgstr "por favor abra una sesión como "
@@ -3315,6 +3434,9 @@ msgstr "envíe un mensaje de seguimiento"
msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
msgstr "enviada a {{public_body_name}} por {{info_request_user}} el {{date}}."
+msgid "set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA"
+msgstr ""
+
msgid "show quoted sections"
msgstr ""
@@ -3336,6 +3458,11 @@ msgstr "que hizo a"
msgid "the main FOI contact address for {{public_body}}"
msgstr "la dirección de contacto de {{public_body}}"
+#. This phrase completes the following sentences:
+#. Request an internal review from...
+#. Send a public follow up message to...
+#. Send a public reply to...
+#. Don't want to address your message to... ?
msgid "the main FOI contact at {{public_body}}"
msgstr "el contacto en {{public_body}}"
@@ -3384,9 +3511,32 @@ msgstr "información útil."
msgid "users"
msgstr "usuarios"
+msgid "what's that?"
+msgstr "Què és això?"
+
msgid "{{count}} FOI requests found"
msgstr "{{count}} solicitudes de información encontradas"
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] "{{count}} sol·licitud d'informació a {{public_body_name}}"
+msgstr[1] "{{count}} sol·licituds d'informació a {{public_body_name}}"
+
+msgid "{{count}} person is following this authority"
+msgid_plural "{{count}} people are following this authority"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
+msgstr[0] "{{count}} sol·licitud"
+msgstr[1] "{{count}} sol·licituds"
+
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
+msgstr[0] "{{count}} sol·licitud enviada."
+msgstr[1] "{{count}} sol·licituds enviades."
+
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 ""
"{{existing_request_user}} ya\n"
@@ -3447,6 +3597,9 @@ msgstr "{{site_name}} envía nuevas solicitudes a <strong>{{request_email}}</str
msgid "{{site_name}} users have made {{number_of_requests}} requests, including:"
msgstr "Los usuarios de {{site_name}} han hecho {{number_of_requests}} solicitudes, incluyendo:"
+msgid "{{thing_changed}} was changed from <code>{{from_value}}</code> to <code>{{to_value}}</code>"
+msgstr ""
+
msgid "{{title}} - a Freedom of Information request to {{public_body}}"
msgstr ""
diff --git a/locale/cs/app.po b/locale/cs/app.po
index 02ae2de56..33f5737c6 100644
--- a/locale/cs/app.po
+++ b/locale/cs/app.po
@@ -3,21 +3,26 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# <appukonrad@gmail.com>, 2012.
-# Hana Huntova <>, 2012.
-# Jana Kneschke <>, 2012.
-# <jana.kneschke@gmail.com>, 2013.
-# <jana.kneschke@gmail.com>, 2012-2013.
-# <josef.pospisil@laststar.eu>, 2012.
-# <louise@mysociety.org>, 2012.
+# jui <appukonrad@gmail.com>, 2012
+# Hana Huntova <>, 2012-2013
+# Jana Kneschke <>, 2012-2013
+# janakneschke <jana.kneschke@gmail.com>, 2013
+# janakneschke <jana.kneschke@gmail.com>, 2012-2013
+# janakneschke <jana.kneschke@gmail.com>, 2013
+# josefpospisil <josef.pospisil@laststar.eu>, 2012
+# josefpospisil <josef.pospisil@laststar.eu>, 2012
+# jui <appukonrad@gmail.com>, 2012
+# louisecrow <louise@mysociety.org>, 2012-2013
+# louisecrow <louise@mysociety.org>, 2013
+# louisecrow <louise@mysociety.org>, 2012
msgid ""
msgstr ""
"Project-Id-Version: alaveteli\n"
"Report-Msgid-Bugs-To: http://github.com/sebbacon/alaveteli/issues\n"
-"POT-Creation-Date: 2012-12-18 10:11+0000\n"
-"PO-Revision-Date: 2013-02-06 18:51+0000\n"
-"Last-Translator: janakneschke <jana.kneschke@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"POT-Creation-Date: 2013-05-30 09:46+0100\n"
+"PO-Revision-Date: 2013-05-30 08:54+0000\n"
+"Last-Translator: louisecrow <louise@mysociety.org>\n"
+"Language-Team: Czech (http://www.transifex.com/projects/p/alaveteli/language/cs/)\n"
"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -27,8 +32,8 @@ msgstr ""
msgid " This will appear on your {{site_name}} profile, to make it\\n easier for others to get involved with what you're doing."
msgstr " Toto se objeví na vašem profilu na stránkách {{site_name}}, abyste mohli svůj dotaz snadno sdílet s ostaními."
-msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)"
-msgstr " (<strong>Tento prostor neslouží politickým debatám,</strong> přečtěte si <a href=\"%s\">Pravidla diskuze</a>.)"
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
+msgstr " (<strong>Tento prostor neslouží politickým debatám,</strong> přečtěte si <a href=\"{{url}}\">Pravidla diskuze</a>.)"
msgid " (<strong>patience</strong>, especially for large files, it may take a while!)"
msgstr " (<strong>Prosíme o trpělivost</strong>, nahrávání větších souborů může trvat déle!)"
@@ -59,9 +64,9 @@ msgstr " Poraďte, <strong>jak co nejlépe upřesnit</strong> tento dotaz."
msgid " Ideas on what <strong>other documents to request</strong> which the authority may hold. "
msgstr "Návrhy <strong>na vyžádání potřebných dokumentů</strong>, které může mít daná instituce k dispozici."
-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."
+msgid " If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\\n You may be able to find the address on their website, or by phoning them up and asking."
msgstr ""
-"Pokud víte, jakou adresu použít <a href=\"%s\">pošlete nám ji</a>.\n"
+"Pokud víte, jakou adresu použít <a href=\"{{url}}\">pošlete nám ji</a>.\n"
" Adresu můžete najít na stránkách instituce, nebo můžete zavolat do podatelny a zjistit ji. "
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."
@@ -100,24 +105,6 @@ msgstr " když tuto zprávu pošlete."
msgid "\"Hello! We have an <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">important message</a> for visitors outside {{country_name}}\""
msgstr "\"Hello! We have an <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">important message</a> for visitors outside {{country_name}}\""
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
-msgstr[0] "%d dotaz vznesený podle zákona 106/1999 Sb. na instituci %s"
-msgstr[1] "%d dotazy vznesené podle zákona 106/1999 Sb. na instituci %s"
-msgstr[2] "%d dotazů vznesených podle zákona 106/1999 Sb. na instituci %s"
-
-msgid "%d request"
-msgid_plural "%d requests"
-msgstr[0] "%d dotaz"
-msgstr[1] "%d dotazy"
-msgstr[2] "%d dotazů"
-
-msgid "%d request made."
-msgid_plural "%d requests made."
-msgstr[0] "%d dotaz byl vznesen."
-msgstr[1] "%d dotazy byly vzneseny."
-msgstr[2] "%d dotazů bylo vzneseno."
-
msgid "'Crime statistics by ward level for Wales'"
msgstr "\"Statistiky kriminality pro Liberecký kraj.\""
@@ -133,6 +120,9 @@ msgstr "'{{link_to_request}}', dotaz"
msgid "'{{link_to_user}}', a person"
msgstr "od uživatele '{{link_to_user}}'."
+msgid "*unknown*"
+msgstr "*neznámá data*"
+
msgid ",\\n\\n\\n\\nYours,\\n\\n{{user_name}}"
msgstr ""
",\n"
@@ -153,34 +143,16 @@ msgid "2. Ask for Information"
msgstr "2. Vzneste dotaz"
msgid "3. Now check your request"
-msgstr "3. Nyní dotaz zkontrolujte"
-
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
-msgstr "<a href=\"%s\">Přidat poznámku</a> (pomůžete tím dalšímu tázajícímu)"
-
-msgid "<a href=\"%s\">Are we missing a public authority?</a>"
-msgstr "<a href=\"%s\">Chybí nám nějaká instituce?</a>"
-
-msgid "<a href=\"%s\">Are you the owner of\\n any commercial copyright on this page?</a>"
-msgstr "<a href=\"%s\">Jste vlastníkem nějakých autorských práv na této stránce?</a>"
+msgstr "3. Nyní dotaz zkontrolujte "
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
-msgstr "<a href=\"%s\">Prohlížet všel</a> nebo <a href=\"%s\">požádat o přidání kontaktu</a>."
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
+msgstr "<a href=\"{{browse_url}}\">Prohlížet všel</a> nebo <a href=\"{{add_url}}\">požádat o přidání kontaktu</a>."
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
-msgstr "<a href=\"%s\">Nemůžete najít, co hledáte?</a>"
+msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)"
+msgstr "<a href=\"{{url}}\">Přidat poznámku</a> (pomůžete tím dalšímu tázajícímu)"
-msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
-msgstr "<a href=\"%s\">Přihlašte se/a> pro změnu hesla, pro odběr zpráv atd., pouze ({{user_name}})"
-
-msgid "<a href=\"%s\">details</a>"
-msgstr "<a href=\"%s\">detaily</a>"
-
-msgid "<a href=\"%s\">what's that?</a>"
-msgstr "<a href=\"%s\">co je to?</a>"
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
+msgstr "<a href=\"{{url}}\">Přihlašte se/a> pro změnu hesla, pro odběr zpráv atd., pouze ({{user_name}})"
msgid "<p>All done! Thank you very much for your help.</p><p>There are <a href=\"{{helpus_url}}\">more things you can do</a> to help {{site_name}}.</p>"
msgstr "<p>Hotovo! Děkujeme za vaši pomoc.</p><p>Můžete nám <a href=\"{{helpus_url}}\"> také pomoci se stránkami</a> {{site_name}}</p>"
@@ -199,9 +171,6 @@ msgstr ""
msgid "<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>"
msgstr "<p>Děkujeme! Doufáme, že na odpověď nebudete příliš dlouho čekat.</p><p>Měli byste ji obdržet během {{late_number_of_days}} dní, nebo byste měli být informováni, že zodpovězení dotazu bude trvat déle (<a href=\"{{review_url}}\">podrobnosti</a>).</p>"
-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 "<p>Děkujeme! Podíváme se, co se stalo a pokusíme se to opravit.</p><p>Pokud se chyba týkala nedoručitelnosti dotazu, a sami najdete správnou adresu pro danou instituci, prosíme sdělte nám to v níže uvedeném formuláři.</p>"
-
msgid "<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>"
msgstr "<p>Děkujeme! Zodpovězení vašeho dotazu trvá déle, než stanoví zákonná lhůta, tedy konkrétně o {{very_late_number_of_days}} pracovních dní. Obvykle mají být dotazy zodpovězeny do {{late_number_of_days}} pracovních dnů. Pokud chcete podat stížnost, podívejte se níže a přesný postup.</p>"
@@ -226,11 +195,11 @@ msgstr "<p>Jsme rádi, že jste obdrželi informace, které jste potřebovali. P
msgid "<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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 "<p>Jsme rádi, že jste obdrželi alespoň částečnou odpověď na vznesený dotaz. Pokud považujete stránky {{site_name}} za užitečné, <a href=\"{{donation_url}}\">podpořte nás</a>.</p><p>Pokud chcete získat doplňující informace, zde je návod.</p>"
-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 "<p>Nemusíte uvádět svou e-mailovou adresu. (<a href=\"%s\">více</a>).</p>"
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
+msgstr "<p>Nemusíte uvádět svou e-mailovou adresu. (<a href=\"{{url}}\">více</a>).</p>"
-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 "<p>Nemusíte uvádět svou e-mailovou adresu teď, budeme ji vyžadovat v dalším kroku. (<a href=\"%s\">více</a>).</p>"
+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=\"{{url}}\">details</a>).</p>"
+msgstr "<p>Nemusíte uvádět svou e-mailovou adresu teď, budeme ji vyžadovat v dalším kroku. (<a href=\"{{url}}\">více</a>).</p>"
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 "<p>Váš dotaz obsahuje <strong>PSČ</strong>. Pokud to není údaj nutný k zodpovězení dotazu, prosíme odstraňte adresu či jiný identifikátor. Váš dotaz bude v celém znění a bez osobních údajů<strong>uveřejněn na internetu</strong>.</p>"
@@ -248,16 +217,10 @@ msgstr ""
"<small>Pokud používáte prohlížeč ke čtení a posílání e-mailů nebo máte nastavený filtr pro nevyžádanou poštu, zkontrolujte také tuto složku. Může se stát, že váš filtr označil zprávu ze stránek Informace pro všechny za nevyžádanou.</small>\n"
"</p>"
-msgid "<span id='follow_count'>%d</span> person is following this authority"
-msgid_plural "<span id='follow_count'>%d</span> people are following this authority"
-msgstr[0] "<span id='follow_count'>%d</span> člověk sleduje tuto instituci"
-msgstr[1] "<span id='follow_count'>%d</span> lidí sledují tuto instituci"
-msgstr[2] "<span id='follow_count'>%d</span> lidí sleduje tuto instituci"
-
-msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
+msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
msgstr ""
"<strong> Mohu požádat o informace o sobě samém?</strong>\n"
-"\t\t\t<a href=\"%s\">Ne (zde najdete více informací).</a>"
+"\t\t\t<a href=\"{{url}}\">Ne (zde najdete více informací).</a>"
msgid "<strong><code>commented_by:tony_bowden</code></strong> to search annotations made by Tony Bowden, typing the name as in the URL."
msgstr "<strong><code>okomentoval/a:tony_bowden</code></strong> pokud chcete vidět více poznámek od uživatele Tonyho Bowdena, napište jeho jméno jako URL."
@@ -320,10 +283,10 @@ msgstr ""
" Pošleme vám zprávu na vaši e-mailovou adresu. Pro změnu\n"
" vaší e-mailové adresy postupujte podle instrukcí."
-msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"%s\">click here</a>."
+msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"{{url}}\">click here</a>."
msgstr ""
"<strong>Ochrana soukromí:</strong> Pokud chcete vznést dotaz týkající se vaší osoby,\n"
-" <a href=\"%s\">klikněte sem</a>."
+" <a href=\"{{url}}\">klikněte sem</a>."
msgid "<strong>Privacy note:</strong> Your photo will be shown in public on the Internet,\\n wherever you do something on {{site_name}}."
msgstr "<strong>Důležité upozornění:</strong> Vaše fotografie bude zveřejněna na stránkách Informace pro všechny pokaždé, kdy vznesete dotaz nebo přidáte komentář."
@@ -366,6 +329,9 @@ msgstr "Odpověď bude zaslána <strong>poštou</strong>"
msgid "A strange reponse, required attention by the {{site_name}} team"
msgstr "Neobvyklá reakce, která vyžaduje pozornost týmu stránek {{site_name}}."
+msgid "A vexatious request"
+msgstr "Nepovolená operace"
+
msgid "A {{site_name}} user"
msgstr "Uživatel stránek {{site_name}} "
@@ -375,6 +341,15 @@ msgstr "O vás:"
msgid "Act on what you've learnt"
msgstr "Jednejte na základě toho, co jste se dozvěděli"
+msgid "Acts as xapian/acts as xapian job"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Action"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Model"
+msgstr ""
+
msgid "Add an annotation"
msgstr "Přidat poznámku"
@@ -410,7 +385,7 @@ msgid "All of the information requested has been received"
msgstr "Všechny požadované informace byly přijaty"
msgid "All the options below can use <strong>status</strong> or <strong>latest_status</strong> before the colon. For example, <strong>status:not_held</strong> will match requests which have <em>ever</em> been marked as not held; <strong>latest_status:not_held</strong> will match only requests that are <em>currently</em> marked as not held."
-msgstr "Všechny níže uvedené možnosti mohou mít<strong>status</strong> nebo <strong>last_status</strong> před dvojtečkou. Například, <strong>status:not_held</strong> vyhledá dotazy, které byly <em>někdy</em> označeny štítkem \"není k dispozici\"; <strong>latest_status:not_held</strong> vyhledá jen ty dotazy, které jsou <em>v současnosti</em> označeny štítkem ůnení k dispozici\"."
+msgstr "Všechny níže uvedené možnosti mohou mít <strong>status</strong> nebo <strong>last_status</strong> před dvojtečkou. Například, <strong>status:not_held</strong> vyhledá dotazy, které byly <em>někdy</em> označeny štítkem \"není k dispozici\"; <strong>latest_status:not_held</strong> vyhledá jen ty dotazy, které jsou <em>v současnosti</em> označeny štítkem není k dispozici\"."
msgid "All the options below can use <strong>variety</strong> or <strong>latest_variety</strong> before the colon. For example, <strong>variety:sent</strong> will match requests which have <em>ever</em> been sent; <strong>latest_variety:sent</strong> will match only requests that are <em>currently</em> marked as sent."
msgstr "Všechny níže uvedené možnosti <strong>variety</strong> or <strong>latest_variety</strong> před dvojtečkou. Například, <strong>variety:sent</strong> zahrne dotazy, které byly <em>někdy</em> vzneseny; <strong>latest_variety:sent</strong> zahrne pouze dotazy <em>v současnosti</em> označené jako odeslané."
@@ -459,13 +434,22 @@ msgstr "Nezaregistrovaný uživatel"
msgid "Anyone:"
msgstr "Kdokoli:"
+msgid "Applies to"
+msgstr "Týká se"
+
+msgid "Are we missing a public authority?"
+msgstr "Chybí nám nějaká instituce?"
+
+msgid "Are you the owner of any commercial copyright on this page?"
+msgstr "Jste vlastníkem nějakých autorských práv na této stránce?"
+
msgid "Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries."
msgstr "Požádejte o <strong>konkrétní</strong> dokumenty nebo informace, tyto stránky nejsou určeny pro obecné dotazy."
-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>)."
+msgid "At the bottom of this page, write a reply to them trying to persuade them to scan it in\\n (<a href=\"{{url}}\">more details</a>)."
msgstr ""
"Ve spodní části této stránky jim napište odpověď a požádejte je, aby požadované informace oskenovali\n"
-" (<a href=\"%s\">více detailů</a>)."
+" (<a href=\"{{url}}\">více detailů</a>)."
msgid "Attachment (optional):"
msgstr "Příloha (nepovinná):"
@@ -500,6 +484,12 @@ msgstr "Podle zákona by instituce {{public_body_link}} měla v každém přípa
msgid "By law, {{public_body_link}} should normally have responded <strong>promptly</strong> and"
msgstr "Podle zákona, by měla instituce {{public_body_link}} odpovědět okamžitě a "
+msgid "Calculated home page"
+msgstr "Domů"
+
+msgid "Can't find the one you want?"
+msgstr "Nemůžete najít, co hledáte?"
+
msgid "Cancel a {{site_name}} alert"
msgstr "Zrušte tato upozornění stránek {{site_name}}"
@@ -667,6 +657,9 @@ msgstr "V současnosti <strong> se čeká na odpověď</strong> od instituce {{p
msgid "Date:"
msgstr "Datum:"
+msgid "Dear {{name}},"
+msgstr ""
+
msgid "Dear {{public_body_name}},"
msgstr ""
"Povinný subjekt: {{public_body_name}}\n"
@@ -675,6 +668,9 @@ msgstr ""
"\n"
"Vážená paní, vážený pane,"
+msgid "Default locale"
+msgstr "Původní nastavení"
+
msgid "Delayed response to your FOI request - "
msgstr "Zpožděná odpověď na váš dotaz –"
@@ -684,6 +680,9 @@ msgstr "Zpoždění."
msgid "Delivery error"
msgstr "Chyba při doručení"
+msgid "Destroy {{name}}"
+msgstr "Zrušit {{name}}"
+
msgid "Details of request '"
msgstr "Podrobnosti dotazu"
@@ -696,6 +695,9 @@ msgstr "Vyloučení odpovědnosti: Tato zpráva a jakékoliv odpovědi na ni bud
msgid "Disclosure log"
msgstr "Disclosure log"
+msgid "Disclosure log URL"
+msgstr "Disclosure log URL"
+
msgid "Don't want to address your message to {{person_or_body}}? You can also write to:"
msgstr "Nechcete svou zprávu adresovat na {{person_or_body}}? Můžete také napsat:"
@@ -714,14 +716,14 @@ msgstr "Stáhnout původní přílohu"
msgid "EIR"
msgstr "Informace o životním prostředí"
+msgid "Edit"
+msgstr "Editovat"
+
msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
msgstr ""
"Upravte a přidejte <strong>více informací</strong> do této zprávy\n"
" s vysvětlením, proč není odpověď uspokojující."
-msgid "Edit language version:"
-msgstr "Upravit jazykovou verzi:"
-
msgid "Edit text about you"
msgstr "Upravit text o sobě"
@@ -743,8 +745,8 @@ msgstr "Pošlete mi budoucí aktualizace tohoto dotazu. "
msgid "Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>"
msgstr "Slova, která chcete najít, musí být oddělena mezerou, například <strong>přechod pro chodce</strong>"
-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 "Níže můžete vložit svou odpověď. Pokud je to nutné, přiložte jeden dokument, (s použitím e-mailu, nebo⏎ <a href=\"%s\">nás kontaktujte</a> pokud potřebujete přiložit více dokumentů)."
+msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"{{url}}\">contact us</a> if you need more)."
+msgstr "Níže můžete vložit svou odpověď. Pokud je to nutné, přiložte jeden dokument, (s použitím e-mailu, nebo⏎ <a href=\"{{url}}\">nás kontaktujte</a> pokud potřebujete přiložit více dokumentů)."
msgid "Environmental Information Regulations"
msgstr "Informace o životním prostředí"
@@ -761,16 +763,19 @@ msgstr "Historie případu"
msgid "Event history details"
msgstr "Historie případu, detaily"
-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 ""
-"Vše, co jste vyplnili na této stránce, \n"
-" bude <strong>veřejně dostupné</strong> na tomto\n"
-" webu (<a href=\"%s\">proč?</a>)."
+msgid "Event {{id}}"
+msgstr "Aktivita {{id}}"
-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>)."
+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=\"{{url}}\">why?</a>)."
msgstr ""
"Veškeré informace, které vložíte na tuto stránku, včetně <strong>vašeho jména</strong>, \n"
-" budou<strong>uveřejněny</strong> na tomto webu(<a href=\"%s\">proč?</a>)."
+" budou<strong>uveřejněny</strong> na tomto webu(<a href=\"{{url}}\">proč?</a>)."
+
+msgid "Everything that you enter on this page\\n will be <strong>displayed publicly</strong> on\\n this website forever (<a href=\"{{url}}\">why?</a>)."
+msgstr ""
+"Vše, co jste vyplnili na této stránce, \n"
+" bude <strong>veřejně dostupné</strong> na tomto\n"
+" webu (<a href=\"{{url}}\">proč?</a>)."
msgid "FOI"
msgstr "dotaz"
@@ -778,6 +783,9 @@ msgstr "dotaz"
msgid "FOI email address for {{public_body}}"
msgstr "E-mailová adresa podatelny pro instituci {{public_body}}"
+msgid "FOI request – {{title}}"
+msgstr "Žádost – {{title}}"
+
msgid "FOI requests"
msgstr "Dotazy"
@@ -793,16 +801,16 @@ msgstr "Odpověď vyžaduje zásah administrátora - ({{reason}}) - {{title}}"
msgid "Failed to convert image to a PNG"
msgstr "Nepodařilo se konvertovat obrázek do PNG. "
-msgid "Failed to convert image to the correct size: at %{cols}x%{rows}, need %{width}x%{height}"
-msgstr "Nepodařilo se konvertovat obrázek do správné velikosti: at %{cols}x%{rows}, need %{width}x%{height}"
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
+msgstr "Nepodařilo se konvertovat obrázek do správné velikosti: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
msgid "Filter"
msgstr "Filtr"
-msgid "First, type in the <strong>name of the UK public authority</strong> you'd \\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"%s#%s\">why?</a>)."
+msgid "First, type in the <strong>name of the UK public authority</strong> you'd\\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"{{url}}\">why?</a>)."
msgstr ""
"Nejdříve napište <strong>název instituce</strong>, od které chcete získat informace. <strong>Podle zákona vám musí odpovědět</strong>\n"
-" (<a href=\"%s#%s\">proč?</a>)."
+" (<a href=\"{{url}}\">proč?</a>)."
msgid "Foi attachment"
msgstr "Příloha k dotazu"
@@ -882,11 +890,11 @@ msgstr "Z neznámého důvodu není možné vznést dotaz na tuto instituci. "
msgid "Forgotten your password?"
msgstr "Zapomněli jste heslo?"
-msgid "Found %d public authority %s"
-msgid_plural "Found %d public authorities %s"
-msgstr[0] "Nalezena %d instituce %s"
-msgstr[1] "Nalezeny %d instituce %s"
-msgstr[2] "Nalezeno %d institucí %s"
+msgid "Found {{count}} public authority {{description}}"
+msgid_plural "Found {{count}} public authorities {{description}}"
+msgstr[0] "Nalezena {{count}} instituce {{description}}"
+msgstr[1] "Nalezeny {{count}} instituce {{description}}"
+msgstr[2] "Nalezeno {{count}} institucí {{description}}"
msgid "Freedom of Information"
msgstr "dotaz"
@@ -923,8 +931,8 @@ msgstr "Dotaz vznesený na"
msgid "From"
msgstr "Od"
-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 "Spíše než vložení obecné odpovědi zkuste odpovědět na vybranou zprávu ze stránky pro vznesení dotazu. Pokud potřebujete vložit obecnou odpověď a znáte správnou e-mailovou adresu, prosíme <a href=\"%s\">pošlete nám ji</a>"
+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=\"{{url}}\">send it to us</a>."
+msgstr "Spíše než vložení obecné odpovědi zkuste odpovědět na vybranou zprávu ze stránky pro vznesení dotazu. Pokud potřebujete vložit obecnou odpověď a znáte správnou e-mailovou adresu, prosíme <a href=\"{{url}}\">pošlete nám ji</a>"
msgid "From:"
msgstr "Od:"
@@ -935,6 +943,18 @@ msgstr "ZDE UPŘESNĚTE DETAILY VAŠÍ STÍŽNOSTI"
msgid "Handled by post."
msgstr "Vyřizováno poštou."
+msgid "Has tag string/has tag string tag"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Model"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Name"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Value"
+msgstr ""
+
msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
msgstr "Dobrý den, můžete vznést dotaz v zemi {{country_name}} na stránkách {{link_to_website}}"
@@ -956,6 +976,9 @@ msgstr "Zde je zpráva, kterou jste napsali, pokud si chcete uložit kopii. "
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 "Haló! Potřebujeme vaši pomoc. Osoba, která vznesla tento dotaz nám nesdělila, jestli byla zodpovězena úspěšně. Můžete si dotaz i odpověď přečíst a pomoci nám tak udržovat stránky přehledné? Děkujeme."
+msgid "Hide request"
+msgstr "Skrýt dotaz"
+
msgid "Holiday"
msgstr "Státní svátek"
@@ -968,6 +991,9 @@ msgstr "Svátek | Popis"
msgid "Home"
msgstr "Domů"
+msgid "Home page"
+msgstr "Domovská stránka"
+
msgid "Home page of authority"
msgstr "Domovská stránka instituce"
@@ -1018,8 +1044,17 @@ msgstr "Obdržel jsem <strong>nějaké informace</strong>"
msgid "I've received an <strong>error message</strong>"
msgstr "Obdržel jsem <strong>chybovou zprávu</strong>"
-msgid "If the address is wrong, or you know a better address, please <a href=\"%s\">contact us</a>."
-msgstr "Pokud je adresa nesprávná, nebo víte o lepší adrese, prosíme <a href=\"%s\">kontaktujte nás</a>."
+msgid "I've received an error message"
+msgstr "Obdržel/a jsem chybovou zprávu"
+
+msgid "Id"
+msgstr "ID"
+
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Pokud je adresa nesprávná, nebo víte o lepší adrese, prosíme <a href=\"{{url}}\">kontaktujte nás</a>."
+
+msgid "If the error was a delivery failure, and you can find an up to date FOI email address for the authority, please tell us using the form below."
+msgstr "Pokud zpráva nebyla doručena a podaří se vám vyhledat správnou e-mailovou adresu dané instituce, prosím napište nám ji. "
msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
msgstr ""
@@ -1027,19 +1062,19 @@ msgstr ""
"na tento dotaz, nebo napsat uživateli {{user}} něco jiného, prosíme\n"
"využijte adresu {{contact_email}}."
-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 "Pokud nejste spokojeni s odpovědí, kterou jste obdrželi od instituce, máte právo podat stížnost (<a href=\"%s\">detaily</a>)."
+msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"{{url}}\">details</a>)."
+msgstr "Pokud nejste spokojeni s odpovědí, kterou jste obdrželi od instituce, máte právo podat stížnost (<a href=\"{{url}}\">detaily</a>)."
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
-msgstr "Pokud máte stále problémy <a href=\"%s\">kontaktujte nás</a>."
+msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Pokud máte stále problémy <a href=\"{{url}}\">kontaktujte nás</a>."
-msgid "If you are the requester, then you may <a href=\"%s\">sign in</a> to view the request."
-msgstr "Pokud jste tazatel, můžete se <a href=\"%s\">přihlásit</a> a podívat se na svůj dotaz."
+msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request."
+msgstr "Pokud jste tazatel, můžete se <a href=\"{{url}}\">přihlásit</a> a podívat se na svůj dotaz."
-msgid "If you are thinking of using a pseudonym,\\n please <a href=\"%s\">read this first</a>."
+msgid "If you are thinking of using a pseudonym,\\n please <a href=\"{{url}}\">read this first</a>."
msgstr ""
"Pokud chcete používat přezdívku\n"
-"please <a href=\"%s\">nejdříve si přečtěte toto</a>."
+"please <a href=\"{{url}}\">nejdříve si přečtěte toto</a>."
msgid "If you are {{user_link}}, please"
msgstr "Pokud jste {{user_link}}, prosíme"
@@ -1086,6 +1121,9 @@ msgstr ""
"Pokud váš prohlížeč akceptuje cookies a vy vidíte tuto zprávu,\n"
"pravděpodobně je nějaký problém s naším serverem."
+msgid "Incoming email address"
+msgstr "Adresa pro příchozí e-maily"
+
msgid "Incoming message"
msgstr "Příchozí zpráva"
@@ -1203,14 +1241,20 @@ msgstr ""
msgid "Items matching the following conditions are currently displayed on your wall."
msgstr "Témata týkající se následujících kritérií jsou zobrazeny na vaší nástěnce."
+msgid "Items sent in last month"
+msgstr "Odesláno poslední měsíc"
+
msgid "Joined in"
msgstr "Zapojen v"
msgid "Joined {{site_name}} in"
msgstr "Registrován/a na stránkách {{site_name}} od"
-msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)."
-msgstr "Snažte se svůj dotaz vyjádřit <strong>jasně a jednoduše</strong>, zvýší se tak vaše šance, že se dozvíte, co potřebujete (<a href=\"%s\">proč?</a>)."
+msgid "Just one more thing"
+msgstr "Popište stručně co se stalo"
+
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
+msgstr "Snažte se svůj dotaz vyjádřit <strong>jasně a jednoduše</strong>, zvýší se tak vaše šance, že se dozvíte, co potřebujete (<a href=\"{{url}}\">proč?</a>)."
msgid "Keywords"
msgstr "Klíčová slova"
@@ -1229,9 +1273,27 @@ msgstr ""
msgid "Link to this"
msgstr "Odkaz"
+msgid "List all"
+msgstr "Vypsat vše"
+
msgid "List of all authorities (CSV)"
msgstr "Vytvořit seznam všech institucí (CSV)"
+msgid "Listing FOI requests"
+msgstr "Výpis dotazů"
+
+msgid "Listing public authorities"
+msgstr "Výpis institucí"
+
+msgid "Listing public authorities matching '{{query}}'"
+msgstr "Výpis institucí odpovídajících zadanému vyhledávání '{{query}}'"
+
+msgid "Listing tracks"
+msgstr "Generování seznamu"
+
+msgid "Listing users"
+msgstr "Výpis uživatelů"
+
msgid "Log in to download a zip file of {{info_request_title}}"
msgstr "Přihlaste se ke stažení komprimovaného souboru {{info_request_title}}"
@@ -1315,7 +1377,7 @@ msgid "My profile"
msgstr "Můj profil"
msgid "My request has been <strong>refused</strong>"
-msgstr "Zopodvězení mého dotazu bylo <strong>zadmítnuto</strong>"
+msgstr "Zodpovězení mého dotazu bylo <strong>zamítnuto</strong>"
msgid "My requests"
msgstr "Moje dotazy"
@@ -1332,6 +1394,9 @@ msgstr "Jméno je již obsazeno"
msgid "New Freedom of Information requests"
msgstr "Nové dotazy "
+msgid "New censor rule"
+msgstr "Nové pravidlo "
+
msgid "New e-mail:"
msgstr "Nový e-mail:"
@@ -1377,6 +1442,9 @@ msgstr "Nic jsme nenašli"
msgid "No similar requests found."
msgstr "Žádné podobné dotazy nebyly nalezeny. "
+msgid "No tracked things found."
+msgstr "Nic nebylo nalezeno."
+
msgid "Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet."
msgstr "Ještě nikdo na {{public_body_name}} dotaz v rámci stránek Informace pro všechny nevznesl. "
@@ -1386,6 +1454,9 @@ msgstr "Nic nebylo nalezeno."
msgid "None made."
msgstr "Nic tu není"
+msgid "Not a valid FOI request"
+msgstr "Neplatné vznesení dotazu"
+
msgid "Note that the requester will not be notified about your annotation, because the request was published by {{public_body_name}} on their behalf."
msgstr "Rádi bychom vás upozornili, že tazatel nebude o vašem komentáři informován, jelikož tento dotaz byl zveřejněn na žádost instituce {{public_body_name}}."
@@ -1431,6 +1502,9 @@ msgstr "Nalezena jedna osoba"
msgid "One public authority found"
msgstr "Nalezena jedna instituce"
+msgid "Only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL – don't worry about breaking URLs through renaming, as the history is used to redirect"
+msgstr "Vložte pouze zkratky, které jsou opravdu používány, nebo nevyplňujte. Krátké nebo dlouhé jméno se používá v URL - nemusíte se obávat porušení pravidel pojmenovávání URL, bude použito přesměrování"
+
msgid "Only requests made using {{site_name}} are shown."
msgstr "Zobrazí se pouze dotazy vznesené prostřednictvím stránek {{site_name}}"
@@ -1503,8 +1577,8 @@ msgstr "Hrajte hru na kategorizaci dotazů!"
msgid "Please"
msgstr "Prosíme"
-msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
-msgstr "Prosíme <a href=\"%s\">kontaktujte nás</a> abychom to mohli upravit."
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
+msgstr "Prosíme <a href=\"{{url}}\">kontaktujte nás</a> abychom to mohli upravit."
msgid "Please <strong>answer the question above</strong> so we know whether the "
msgstr "<strong>Zodpovězte výše položenou otázku</strong> abychom věděli, zda"
@@ -1560,7 +1634,7 @@ msgid "Please enter a subject"
msgstr "Vložte předmět zprávy. "
msgid "Please enter a summary of your request"
-msgstr "Vložte shrnutí vašeho dotazu. "
+msgstr "Vložte předmět dotazu. "
msgid "Please enter a valid email address"
msgstr "Vložte platnou e-mailovou adresu. "
@@ -1605,7 +1679,7 @@ msgid "Please keep it shorter than 500 characters"
msgstr "Váš text musí být kratší než 500 znaků."
msgid "Please keep the summary short, like in the subject of an email. You can use a phrase, rather than a full sentence."
-msgstr "Zkraťte shrnutí, podobně jako v předmětu e-mailové zprávy. Můžete použít několik klíčových slov spíše než celou větu. "
+msgstr "Předmět dotazu musí být krátký, podobně jako v předmětu e-mailové zprávy. Použijte například několik klíčových slov spíše než celou větu. "
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 "Požádejte o informace, které jsou uvedeny v těchto kategoriích, <strong>neplýtvejte svým časem</strong> nebo časem lidí v institucích dotazy na nesouvisející informace."
@@ -1615,8 +1689,8 @@ msgstr ""
"Vyberte každý dotaz jednotlivě, a <strong>dejte ostatním vědět</strong>\n"
"jestli byl úspěšně zodpovězen, nebo ne."
-msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature"
-msgstr "Podepište se na konci dopisu svým jménem, nebo změňte \"%{signoff}\" podpis. "
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
+msgstr "Podepište se na konci dopisu svým jménem, nebo změňte \"{{signoff}}\" podpis. "
msgid "Please sign in as "
msgstr "Přihlašte se jako"
@@ -1627,17 +1701,14 @@ msgstr "Prosíme přihlašte se nebo se zaregistrujte."
msgid "Please type a message and/or choose a file containing your response."
msgstr "Napište zprávu a/nebo vyberte soubor, který obsahuje vaši odpověď."
-msgid "Please use the form below to tell us more."
-msgstr "Vysvětlete detailněji v tomto formuláři. "
-
msgid "Please use this email address for all replies to this request:"
msgstr "Prosíme používejte tuto e-mailovou adresu pro všechny odpovědi na tento dotaz:"
msgid "Please write a summary with some text in it"
-msgstr "Napište text do shrnutí. "
+msgstr "Napište text do předmětu zprávy."
msgid "Please write the summary using a mixture of capital and lower case letters. This makes it easier for others to read."
-msgstr "Ve shrnutí je třeba použít text s malými i velkými písmeny. Bude se tak lépe číst i ostatním. "
+msgstr "Ve předmětu zprávy je třeba použít text s malými i velkými písmeny. Bude se tak lépe číst i ostatním. "
msgid "Please write your annotation using a mixture of capital and lower case letters. This makes it easier for others to read."
msgstr "V poznámce je třeba použít text s malými i velkými písmeny. Bude se tak lépe číst i ostatním. "
@@ -1720,38 +1791,20 @@ msgstr "Veřejná instituce - {{description}}"
msgid "Public authorities {{start_count}} to {{end_count}} of {{total_count}}"
msgstr "Instituce od {{start_count}} do {{end_count}} z {{total_count}}"
+msgid "Public authority – {{name}}"
+msgstr "Veřejná instituce – {{name}}"
+
msgid "Public body"
msgstr "Instituce"
-msgid "Public body/translation"
-msgstr "PublicBody | Verze ??"
-
-msgid "PublicBody::Translation|Disclosure log"
-msgstr "PublicBody::Translation|Disclosure log"
-
-msgid "PublicBody::Translation|First letter"
-msgstr "PublicBody | Začáteční písmeno"
-
-msgid "PublicBody::Translation|Locale"
-msgstr "PublicBody | Lokální ??"
-
-msgid "PublicBody::Translation|Name"
-msgstr "PublicBody | Název"
-
-msgid "PublicBody::Translation|Notes"
-msgstr "PublicBody | Poznámka"
-
-msgid "PublicBody::Translation|Publication scheme"
-msgstr "PublicBody | Publikační schéma ??"
-
-msgid "PublicBody::Translation|Request email"
-msgstr "PublicBody::Translation|Zadejte e-mail ??"
+msgid "Public notes"
+msgstr "Poznámka (viditelná pro všechny)"
-msgid "PublicBody::Translation|Short name"
-msgstr "PublicBody::Translation|Krátké jméno ??"
+msgid "Public page"
+msgstr "Stránka (viditelná pro všechny)"
-msgid "PublicBody::Translation|Url name"
-msgstr "PublicBody::Translation|Název URL"
+msgid "Public page not available"
+msgstr "Stránku nelze načíst"
msgid "PublicBody|Api key"
msgstr "PublicBody | Název ??"
@@ -1798,6 +1851,9 @@ msgstr "PublicBody | Verze"
msgid "Publication scheme"
msgstr "Systém publikování"
+msgid "Publication scheme URL"
+msgstr "Schéma publikací URL"
+
msgid "Purge request"
msgstr "Vyčistit formulář dotazu"
@@ -1857,6 +1913,9 @@ msgstr "Požádat o doplnění dotazu"
msgid "Request an internal review from {{person_or_body}}"
msgstr "Požádat o doplnění dotazu od instituce či jmenovitě jejím pracovníkem {{person_or_body}}"
+msgid "Request email"
+msgstr "E-mailová adresa dotazu"
+
msgid "Request has been removed"
msgstr "Dotaz byl odstraněn"
@@ -1950,15 +2009,18 @@ msgstr "Výsledky vyhledávání"
msgid "Search the site to find what you were looking for."
msgstr "Najděte, co hledáte"
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
-msgstr[0] "Prohlížet %d dotaz vznesený na %s"
-msgstr[1] "Prohlížet %d dotazy vznesené na %s"
-msgstr[2] "Prohlížet %d dotazů vznesené na %s"
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests made to {{public_body_name}}"
+msgstr[0] "Prohlížet {{count}} dotaz vznesený na {{public_body_name}}"
+msgstr[1] "Prohlížet {{count}} dotazy vznesené na {{public_body_name}}"
+msgstr[2] "Prohlížet {{count}} dotazů vznesené na {{public_body_name}}"
msgid "Search your contributions"
msgstr "Prohledávat vlastní příspěvky"
+msgid "See bounce message"
+msgstr "Prohlédněte si odmítnutou zprávu"
+
msgid "Select one to see more information about the authority."
msgstr "Vyberte jednu instituci pro zobrazení podrobnějších informací"
@@ -1992,6 +2054,9 @@ msgstr "Vznést dotaz"
msgid "Set your profile photo"
msgstr "Nastavte své profilové foto"
+msgid "Short name"
+msgstr "Krátké jméno"
+
msgid "Short name is already taken"
msgstr "Krátké jméno je již obsazeno."
@@ -2090,6 +2155,9 @@ msgstr "Odeslat"
msgid "Submit status"
msgstr "Odešlete status"
+msgid "Submit status and send message"
+msgstr "Odeslat"
+
msgid "Subscribe to blog"
msgstr "Sledujte náš blog"
@@ -2103,7 +2171,7 @@ msgid "Suggest how the requester can find the <strong>rest of the information</s
msgstr "Doporučte, jak tazatel může najít <strong>úplné informace</strong>."
msgid "Summary:"
-msgstr "Shrnutí:"
+msgstr "Předmět:"
msgid "Table of statuses"
msgstr "Tabulka stavů"
@@ -2111,6 +2179,9 @@ msgstr "Tabulka stavů"
msgid "Table of varieties"
msgstr "Tabulka možností"
+msgid "Tags"
+msgstr "Tagy"
+
msgid "Tags (separated by a space):"
msgstr "Tagy (oddělené mezerou):"
@@ -2138,6 +2209,9 @@ msgstr "Děkujeme vám za aktualizaci tohoto dotazu!"
msgid "Thank you for updating your profile photo"
msgstr "Děkujeme vám za aktualizaci svého profilového fota"
+msgid "Thank you! We'll look into what happened and try and fix it up."
+msgstr "Děkujeme! Zjistíme co se stalo a zkusíme to spravit. "
+
msgid "Thanks for helping - your work will make it easier for everyone to find successful\\nresponses, and maybe even let us make league tables..."
msgstr ""
"Děkujeme za pomoc - vaše práce ulehčí všem hledání v úspěšných\n"
@@ -2219,23 +2293,23 @@ msgstr "Dotaz byl <strong>úspěšný</strong>."
msgid "The request was refused by the public authority"
msgstr "Dotaz byl institucí zamítnut"
-msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"%s\">contact us</a> if you have any questions."
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
msgstr ""
"Dotaz, který jste si chtěli přečíst, byl odstraněn. Existují\n"
"různé důvody, proč se tak stalo a omlouváme se, že je zde \n"
"nemůžeme vysvětlit. \n"
"Prosíme <a⏎\n"
-" href=\"%s\">kontaktujte nás,</a> pokud máte nějaké otázky."
+" href=\"{{url}}\">kontaktujte nás,</a> pokud máte nějaké otázky."
msgid "The requester has abandoned this request for some reason"
msgstr "Tazatel z nějakého důvodu tento dotaz opustil ??"
-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"
+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 ""
"Odpověď na váš dotaz má <strong>zpoždění</strong>. Můžete napsat, že podle zákona by instituce měla odpovědět nejpozději\n"
" <strong>do 15 dnů</strong> a "
-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"
+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 "Odpověď na váš dotaz<strong>má velké zpoždění</strong>. Můžete napsat, že podle zákona by měl být bez výhrad již dávno zodpovězen,"
msgid "The search index is currently offline, so we can't show the Freedom of Information requests that have been made to this authority."
@@ -2244,6 +2318,9 @@ msgstr "Vyhledávací rejstřík je nyní mimo provoz, nemůžeme vám proto uk
msgid "The search index is currently offline, so we can't show the Freedom of Information requests this person has made."
msgstr "Došlo ke krátkému výpadku vyhledávání, nemůžeme proto zobrazit dotazy, které tato osoba vznesla. Omlouváme se."
+msgid "The {{site_name}} team."
+msgstr ""
+
msgid "Then you can cancel the alert."
msgstr "Pak můžete upozornění zrušit."
@@ -2319,18 +2396,18 @@ msgstr "Vaše anotace pro {{info_request_title}} bude odeslána."
msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
msgstr "Jsou tu {{count}} nové anotace, vztahující se ka vašemu dotazu. Pro jejich přečtení použijte tento odkaz."
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
-msgstr[0] " %d člověk sleduje tento dotaz"
-msgstr[1] " %d lidé sledují tento dotaz"
-msgstr[2] "%d lidí sleduje tento dotaz"
-
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 "Již existuje <strong>více než jedna další osoba</strong> která se zaregistrovala na těchto stránkách pod stejným jménem.⏎ Zvolte tedy prosím jiné uživatelské jméno než je:"
msgid "There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>."
msgstr "Počet dotazů za jeden den je limitován. Nechceme, aby byly instituce bombardovány velkým množstvím nerelevantních dotazů. Pokud máte dobrý důvod, proč by měl být váš limit navýšen, prosíme<a href='{{help_contact_path}}'>kontaktujte nás</a>."
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
+msgstr[0] " {{count}} člověk sleduje tento dotaz"
+msgstr[1] " {{count}} lidé sledují tento dotaz"
+msgstr[2] "{{count}} lidí sleduje tento dotaz"
+
msgid "There was a <strong>delivery error</strong> or similar, which needs fixing by the {{site_name}} team."
msgstr "Vyskytla se <strong>chyba při doručení</strong> nebo něco podobného, co potřebuje pozornost týmu stránek {{site_name}}."
@@ -2369,10 +2446,10 @@ msgstr "Sledujete:"
msgid "This authority no longer exists, so you cannot make a request to it."
msgstr "Tato instituce již neexistuje, nelze na ni proto vznést dotaz. "
-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."
+msgid "This comment has been hidden. See annotations to\\n find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
"Tento komentář byl skryt. Podívejte se na vysvětlení.\n"
-"Pokud jste tazatel, můžete se <a href=\"%s\">přihlásit</a> k prohlížení odpovědi."
+"Pokud jste tazatel, můžete se <a href=\"{{url}}\">přihlásit</a> k prohlížení odpovědi."
msgid "This covers a very wide spectrum of information about the state of\\n the <strong>natural and built environment</strong>, such as:"
msgstr ""
@@ -2391,13 +2468,16 @@ msgstr "Toto je HTML verze přílohy k vznesenému dotazu. "
msgid "This is because {{title}} is an old request that has been\\nmarked to no longer receive responses."
msgstr "Důvodem je, že dotaz s názvem {{title}} je staršího data a byl uzavřen, tudíž, na něj již nelze odpovědět."
+msgid "This is the first version."
+msgstr "Toto je první verze."
+
msgid "This is your own request, so you will be automatically emailed when new responses arrive."
msgstr "Toto je váš vlastní dotaz, proto budete odpovědi dostávat e-mailem automaticky."
-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."
+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=\"{{url}}\">sign in</a> to view the response."
msgstr ""
"Tato odchozí zpráva byla skryta. Podívejte se na vysvětlení.\n"
-"Pokud jste tazatel, můžete se <a href=\"%s\">přihlásit</a> k prohlížení odpovědi."
+"Pokud jste tazatel, můžete se <a href=\"{{url}}\">přihlásit</a> k prohlížení odpovědi."
msgid "This particular request is finished:"
msgstr "Tento dotaz je ukončen:"
@@ -2405,21 +2485,21 @@ msgstr "Tento dotaz je ukončen:"
msgid "This person has made no Freedom of Information requests using this site."
msgstr "Tento uživatel na těchto stránkách vznesl dotaz podle zákona o svobodném přístupu k informacím."
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
-msgstr[0] " %d dotaz od tohoto uživatele"
-msgstr[1] "%d dotazy od tohoto uživatele"
-msgstr[2] "%d dotazů od tohoto uživatele"
-
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
-msgstr[0] "Poznámka %d uživatele"
-msgstr[1] "Poznámka %d uživatele"
-msgstr[2] "Poznámka %d uživatele"
-
msgid "This person's annotations"
msgstr "Poznámka této osoby"
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
+msgstr[0] " {{count}} dotaz od tohoto uživatele"
+msgstr[1] "{{count}} dotazy od tohoto uživatele"
+msgstr[2] "{{count}} dotazů od tohoto uživatele"
+
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
+msgstr[0] "Poznámka {{count}} uživatele"
+msgstr[1] "Poznámka {{count}} uživatele"
+msgstr[2] "Poznámka {{count}} uživatele"
+
msgid "This request <strong>requires administrator attention</strong>"
msgstr "Tento dotaz <strong>vyžaduje pozornost administrátora</strong>"
@@ -2443,8 +2523,8 @@ msgstr ""
"Dotaz byl <strong>stažen</strong> tazatelem. \n"
"Bližší vysvětlení můžete najít v níže uvedené korespondenci."
-msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"%s\">contact us</a>."
-msgstr "Tento dotaz byl označen administrátory ke kontrole. Pokud si myslíte, že by měl být skryt, <a href=\"%s\">kontaktujte nás</a>."
+msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Tento dotaz byl označen administrátory ke kontrole. Pokud si myslíte, že by měl být skryt, <a href=\"{{url}}\">kontaktujte nás</a>."
msgid "This request has been reported for administrator attention"
msgstr "Odesláno administrátorovi"
@@ -2458,21 +2538,24 @@ msgstr "S dotazem byla provedena neznámá operace, která <strong>vyžaduje poz
msgid "This request has prominence 'hidden'. You can only see it because you are logged\\n in as a super user."
msgstr "Tento dotaz má status \"skrytý\". Můžete jej vidět jenom proto, že jste zalogován/a jako \"super user\". "
-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."
+msgid "This request is hidden, so that only you the requester can see it. Please\\n <a href=\"{{url}}\">contact us</a> if you are not sure why."
msgstr ""
"Tento dotaz je nyní skrytý, a může jej vidět pouze tazatel. Prosíme\n"
-"<a href=\"%s\">kontaktujte nás,</a> pokud si nejste jisti proč ji nevidíte."
+"<a href=\"{{url}}\">kontaktujte nás,</a> pokud si nejste jisti proč ji nevidíte."
msgid "This request is still in progress:"
msgstr "Tento dotaz je stále aktivní:"
+msgid "This request requires administrator attention"
+msgstr "Tento dotaz vyžaduje pozornost administrátora"
+
msgid "This request was not made via {{site_name}}"
msgstr "Tento dotaz nebyl vznesen pomocí stránek {{site_name}}"
-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."
+msgid "This response has been hidden. See annotations to find out why.\\n If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
"Tato odpověď byla skryta. Podívejte se na vysvětlení. \n"
-"Pokud jste tazatel, můžete se <a href=\"%s\">přihlásit</a> k prohlížení odpovědi."
+"Pokud jste tazatel, můžete se <a href=\"{{url}}\">přihlásit</a> k prohlížení odpovědi."
msgid "This table shows the technical details of the internal events that happened\\nto this request on {{site_name}}. This could be used to generate information about\\nthe speed with which authorities respond to requests, the number of requests\\nwhich require a postal response and much more."
msgstr "Tato tabulka ukazuje technické detaily související s tímto dotazem vzneseným na stránkách {{site_name}}. Tento přehled lze použít k analýze rychlosti, s jakou instituce odpovídají na dotazy, počtu dotazů, které byly zodpovězeny poštou atd. "
@@ -2634,11 +2717,11 @@ msgstr "Neočekávané výsledky vyhledávání"
msgid "Unexpected search result type "
msgstr "Neočekávané výsledky vyhledávání "
-msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"%s\">contact us</a> to sort it out."
+msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"{{url}}\">contact us</a> to sort it out."
msgstr ""
"Bohužel nemáme e-mailovou adresu této instituce\n"
"pro vznášení dotazů, proto tento údaj nemůžeme ověřit.\n"
-"Prosíme <a href=\"%s\">kontaktujte nás</a> abychom to vyřešili."
+"Prosíme <a href=\"{{url}}\">kontaktujte nás</a> abychom to vyřešili."
msgid "Unfortunately, we do not have a working {{info_request_law_used_full}}\\naddress for"
msgstr "Bohužel nemáme funkční adresu pro zaslání {{info_request_law_used_full}}"
@@ -2673,6 +2756,9 @@ msgstr "Uživatel"
msgid "User info request sent alert"
msgstr "User info request sent alert ??"
+msgid "User – {{name}}"
+msgstr "Uživatel – {{name}}"
+
msgid "UserInfoRequestSentAlert|Alert type"
msgstr "UserInfoRequestSentAlert| Typ upozornění"
@@ -2727,6 +2813,9 @@ msgstr "User | Salt ??"
msgid "User|Url name"
msgstr "User | Název URL"
+msgid "Version {{version}}"
+msgstr "Version {{version}}"
+
msgid "View FOI email address"
msgstr "Zobrazit e-mailovou adresu Informace pro všechny (????)"
@@ -2755,7 +2844,7 @@ msgid "Waiting clarification."
msgstr "Čeká se na vysvětlení. "
msgid "Waiting for an <strong>internal review</strong> by {{public_body_link}} of their handling of this request."
-msgstr "Stále <strong>čekám</strong> na doplnění dotazu institucí či jmenovitě jejím pracovníkem {{person_or_body}}."
+msgstr "Stále <strong>čekám</strong> na doplnění dotazu institucí či jmenovitě jejím pracovníkem {{public_body_link}}."
msgid "Waiting for the public authority to complete an internal review of their handling of the request"
msgstr "Čekám, až instituce doplní požadované informace k mému dotazu"
@@ -2766,6 +2855,12 @@ msgstr "Čeká se na odpověď instituce"
msgid "Was the response you got to your FOI request any good?"
msgstr "Byla odpověď na váš dotaz kompletní a v pořádku?"
+msgid "We consider it is not a valid FOI request, and have therefore hidden it from other users."
+msgstr ""
+
+msgid "We consider it to be vexatious, and have therefore hidden it from other users."
+msgstr ""
+
msgid "We do not have a working request email address for this authority."
msgstr "Nemáme funkční e-mailovou adresu pro tuto instituci."
@@ -2779,10 +2874,10 @@ msgstr ""
" &ndash;\n"
"\tpokud jste {{user_link}} prosíme <a href=\"{{url}}\">přihlašte se</a> a upravte stav dotazu."
-msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"%s\">details</a>). "
+msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"{{url}}\">details</a>). "
msgstr ""
"Vaši e-mailovou adresu nikomu nepředáme, pokud o to nebudeme\n"
-"ze zákonem daných důvodů požádáni. (<a href=\"%s\">podrobnosti</a>). "
+"ze zákonem daných důvodů požádáni. (<a href=\"{{url}}\">podrobnosti</a>). "
msgid "We will not reveal your email address to anybody unless you\\nor the law tell us to."
msgstr ""
@@ -2832,8 +2927,8 @@ msgstr ""
"Pokud obdržíte písemnou odpověď, prosíme shrňte\n"
" pro ostatní, co se v odpovědi říká:"
-msgid "When you're done, <strong>come back here</strong>, <a href=\"%s\">reload this page</a> and file your new request."
-msgstr "Až budete hotovi, <strong>vraťte se sem</strong>, <a href=\"%s\">obnovte stránku</a> a vzneste nový dotaz."
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
+msgstr "Až budete hotovi, <strong>vraťte se sem</strong>, <a href=\"{{url}}\">obnovte stránku</a> a vzneste nový dotaz."
msgid "Which of these is happening?"
msgstr "Vyberte nejvhodnější popis z následujících možností."
@@ -2942,11 +3037,11 @@ msgstr "Víte, co způsobilo chybu a můžete <strong>navrhnout řešení</stron
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 "Můžete <strong>přiložit dokumenty</strong>. POkud je vaše příloha⏎ příliš velká pro poslání e-mailem, použíjte formulář níže."
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
"Možná se vám podaří\n"
" najít adresu na jejich stránkách, nebo jim zavolejte a zeptejte se. Pokud uspějete,\n"
-" prosíme <a href=\"%s\">pošlete nám ji</a>."
+" prosíme <a href=\"{{url}}\">pošlete nám ji</a>."
msgid "You may be able to find\\none on their website, or by phoning them up and asking. If you manage\\nto find one, then please <a href=\"{{help_url}}\">send it to us</a>."
msgstr ""
@@ -2992,6 +3087,9 @@ msgstr ""
"Odpověď na váš dotaz obdržíte, pouze pokud odpovíte \n"
"bližším vysvětlením."
+msgid "You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further."
+msgstr ""
+
msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
msgstr "Odesláno. <a href=\"#\" id=\"send-request\"> Můžete vznést další dotaz.</a>"
@@ -3004,25 +3102,13 @@ msgstr "Nesledujete žádný vznesený dotaz."
msgid "You've now cleared your profile photo"
msgstr "Vaše profilové foto bylo vymazáno. "
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
-msgstr[0] "Váš %d dotaz"
-msgstr[1] "Vaše %d dotazy"
-msgstr[2] "Vašich %d dotazů"
-
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
-msgstr[0] "Váš %d poznámka"
-msgstr[1] "Vaše %d poznámky"
-msgstr[2] "Vašich %d poznámek"
-
-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>."
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
msgstr ""
"Vaše<strong> jméno bude uveřejněno</strong> \n"
-" (<a href=\"%s\">proč?</a>)\n"
+" (<a href=\"{{why_url}}\">proč?</a>)\n"
" na těchto stránkách a ve vyhledávačích. Pokud\n"
" chcete použít přezdívku, prosíme, \n"
-" <a href=\"%s\">přečtěte si nejdříve toto</a>."
+" <a href=\"{{help_url}}\">přečtěte si nejdříve toto</a>."
msgid "Your annotations"
msgstr "Vaše poznámky"
@@ -3033,8 +3119,8 @@ msgstr "Nikomu jsme nepředali vaše osobní údaje, včetně vaší emailové a
msgid "Your e-mail:"
msgstr "Váš e-mail:"
-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 "Vaše odpověď nebyla odeslána, protože tento dotaz byl identifikován jako nevyžádaná zpráva. Prosíme <a href=\"%s\">kontaktujte nás</a> pokud svou zprávu chcete odeslat. "
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
+msgstr "Vaše odpověď nebyla odeslána, protože tento dotaz byl identifikován jako nevyžádaná zpráva. Prosíme <a href=\"{{url}}\">kontaktujte nás</a> pokud svou zprávu chcete odeslat. "
msgid "Your follow up message has been sent on its way."
msgstr "Zpráva s vaší odpovědí byla odeslána. "
@@ -3057,10 +3143,10 @@ msgstr "Vaše zpráva se objeví <strong>ve vyhledávačích</strong>"
msgid "Your name and annotation will appear in <strong>search engines</strong>."
msgstr "Vaše jméno a komentář se objeví <strong>ve vyhledávačích</strong>."
-msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"%s\">details</a>)."
+msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"{{url}}\">details</a>)."
msgstr ""
"Vaše jméno, dotaz a všechny odpovědi budou zveřejněny \n"
-" ve <strong>vyhledávačích</strong>(<a href=\"%s\">podrobnosti</a>)."
+" ve <strong>vyhledávačích</strong>(<a href=\"{{url}}\">podrobnosti</a>)."
msgid "Your name:"
msgstr "Vaše jméno:"
@@ -3077,6 +3163,12 @@ msgstr "Vaše heslo:"
msgid "Your photo will be shown in public <strong>on the Internet</strong>,\\n wherever you do something on {{site_name}}."
msgstr "<strong>Důležité upozornění:</strong> Vaše fotografie bude zveřejněna na stránkách Informace pro všechny pokaždé, kdy vznesete dotaz nebo přidáte komentář."
+msgid "Your request '{{request}}' at {{url}} has been reviewed by moderators."
+msgstr ""
+
+msgid "Your request on {{site_name}} hidden"
+msgstr ""
+
msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
msgstr "Informace se týká vašeho dotazu {{info_request}}. Můžete všechny informovat, zda jste požadovanou informaci obdrželi a bude tak přehled o odpovědích této instituce"
@@ -3086,12 +3178,24 @@ msgstr "Váš dotaz:"
msgid "Your response to an FOI request was not delivered"
msgstr "Vaše odpověď na dotaz nebyla doručena"
-msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"%s\">read why</a> and answers to other questions."
-msgstr "Vaše odpověď <strong>bude uveřejněna na internetu</strong>, <a href=\"%s\">čtěte proč</a> spolu s historií konverzace."
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
+msgstr "Vaše odpověď <strong>bude uveřejněna na internetu</strong>, <a href=\"{{url}}\">čtěte proč</a> spolu s historií konverzace."
msgid "Your thoughts on what the {{site_name}} <strong>administrators</strong> should do about the request."
msgstr "Vaše doporučení co by <strong>administrátor</strong> stránek {{site_name}} měl udělat s tímto dotazem."
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
+msgstr[0] "Váš {{count}} dotaz"
+msgstr[1] "Vaše {{count}} dotazy"
+msgstr[2] "Vašich {{count}} dotazů"
+
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
+msgstr[0] "Váš {{count}} poznámka"
+msgstr[1] "Vaše {{count}} poznámky"
+msgstr[2] "Vašich {{count}} poznámek"
+
msgid "Your {{site_name}} email alert"
msgstr "Upozornění ze stránek {{site_name}}"
@@ -3101,6 +3205,9 @@ msgstr "S přátelským pozdravem,"
msgid "Yours sincerely,"
msgstr "S pozdravem,"
+msgid "Yours,"
+msgstr ""
+
msgid "[FOI #{{request}} email]"
msgstr "[FOI #{{request}} e-mail] ??"
@@ -3115,12 +3222,15 @@ msgstr "\\n\\n[ {{site_name}} Poznámka: výše uvedený text byl špatně kódo
msgid "a one line summary of the information you are requesting, \\n\t\t\te.g."
msgstr ""
-"Shrnutí vašeho dotazu na jeden řádek.\n"
+"stručný obsah vašeho dotazu na jeden řádek.\n"
"Například:"
msgid "admin"
msgstr "admin"
+msgid "alaveteli_foi:The software that runs {{site_name}}"
+msgstr "alaveteli_foi: Software, na kterém běží {{site_name}}"
+
msgid "all requests"
msgstr "všechny dotazy"
@@ -3154,6 +3264,9 @@ msgstr "vše"
msgid "are long overdue."
msgstr "– tato instituce výrazně překročila zákonem daný termín."
+msgid "at"
+msgstr "na"
+
msgid "authorities"
msgstr "instituce"
@@ -3166,6 +3279,9 @@ msgstr "Začínající na ‘{{first_letter}}’"
msgid "between two dates"
msgstr "mezi dvěma daty"
+msgid "but followupable"
+msgstr "ale "
+
msgid "by"
msgstr "od"
@@ -3249,17 +3365,23 @@ msgstr "zprávy od institucí"
msgid "messages from users"
msgstr "zprávy od uživatelů"
+msgid "move..."
+msgstr "přesunout..."
+
msgid "no later than"
msgstr "nejpozději do"
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
"již neexistuje. Pokud se pokoušíte\n"
-" Ze stránky pro vznesení dotazu, pokuste se odpovědět na vybranou zprávu místo podávání obecné odpovědi. Pokud potřebujete poslat obecnou zprávu a znáte správný e-mail, na který to poslat, prosíme <a href=\"%s\">pošlete nám jej</a>."
+" Ze stránky pro vznesení dotazu, pokuste se odpovědět na vybranou zprávu místo podávání obecné odpovědi. Pokud potřebujete poslat obecnou zprávu a znáte správný e-mail, na který to poslat, prosíme <a href=\"{{url}}\">pošlete nám jej</a>."
msgid "normally"
msgstr "to"
+msgid "not requestable due to: {{reason}}"
+msgstr "nelze žádat kvůli {{reason}}"
+
msgid "please sign in as "
msgstr "prosíme přihlašte se jako"
@@ -3273,7 +3395,7 @@ msgid "requests which are {{list_of_statuses}}"
msgstr "dotazy které jsou {{list_of_statuses}}"
msgid "response as needing administrator attention. Take a look, and reply to this\\nemail to let them know what you are going to do about it."
-msgstr "adminsitrátorovi. Podívejte se prosím na vznesený dotaz i odpověď. Až uděláte nezbytné kroky, odpovězte na tento e-mail a stručně je popište."
+msgstr "administrátorovi. Podívejte se prosím na vznesený dotaz i odpověď. Až uděláte nezbytné kroky, odpovězte na tento e-mail a stručně je popište."
msgid "send a follow up message"
msgstr "poslat odpověď"
@@ -3281,6 +3403,9 @@ msgstr "poslat odpověď"
msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
msgstr "posláno instituci {{public_body_name}} uživatelem {{info_request_user}} dne {{date}}."
+msgid "set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA"
+msgstr "nastaveno <strong>jako prázdné </strong> (empty string) pokud nelze nalézt adresu; tyto e-maily jsou <strong>veřejné</strong> a kdokoliv je může vidět pomocí CAPTCHA"
+
msgid "show quoted sections"
msgstr "ukázat citované pasáže"
@@ -3302,6 +3427,11 @@ msgstr "kterou jste vznesli na"
msgid "the main FOI contact address for {{public_body}}"
msgstr "hlavní kontaktní adresa instituce {{public_body}} pro poskytování informací "
+#. This phrase completes the following sentences:
+#. Request an internal review from...
+#. Send a public follow up message to...
+#. Send a public reply to...
+#. Don't want to address your message to... ?
msgid "the main FOI contact at {{public_body}}"
msgstr "hlavní kontakt pro vznesení dotazu na instituci {{public_body}}"
@@ -3350,9 +3480,36 @@ msgstr "užitečná informace"
msgid "users"
msgstr "uživatelé"
+msgid "what's that?"
+msgstr "co je to?"
+
msgid "{{count}} FOI requests found"
msgstr "nalezeno {{count}} dotazy / dotazů "
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] "{{count}} dotaz vznesený podle zákona 106/1999 Sb. na instituci {{public_body_name}}"
+msgstr[1] "{{count}} dotazy vznesené podle zákona 106/1999 Sb. na instituci {{public_body_name}}"
+msgstr[2] "{{count}} dotazů vznesených podle zákona 106/1999 Sb. na instituci {{public_body_name}}"
+
+msgid "{{count}} person is following this authority"
+msgid_plural "{{count}} people are following this authority"
+msgstr[0] "{{count}} člověk sleduje tuto instituci"
+msgstr[1] "{{count}} lidí sledují tuto instituci"
+msgstr[2] "{{count}} lidí sleduje tuto instituci"
+
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
+msgstr[0] "{{count}} dotaz"
+msgstr[1] "{{count}} dotazy"
+msgstr[2] "{{count}} dotazů"
+
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
+msgstr[0] "{{count}} dotaz byl vznesen."
+msgstr[1] "{{count}} dotazy byly vzneseny."
+msgstr[2] "{{count}} dotazů bylo vzneseno."
+
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 ""
"{{existing_request_user}} již\n"
@@ -3363,7 +3520,7 @@ msgid "{{info_request_user_name}} only:"
msgstr "Pouze {{info_request_user_name}}:"
msgid "{{law_used_full}} request - {{title}}"
-msgstr "Dotaz o informace podle {{law_used_full}} - {{title}}"
+msgstr "Žádost o informace podle {{law_used_full}} - {{title}}"
msgid "{{law_used_full}} request GQ - {{title}}"
msgstr "{{law_used_full}} žádejte GQ - {{title}} ??"
@@ -3413,6 +3570,9 @@ msgstr "Pomocí stránek {{site_name}} vznesete nové dotazy na <strong>{{reques
msgid "{{site_name}} users have made {{number_of_requests}} requests, including:"
msgstr "Na stránkách {{site_name}} tazatelé podali {{number_of_requests}} dotazů, včetně:"
+msgid "{{thing_changed}} was changed from <code>{{from_value}}</code> to <code>{{to_value}}</code>"
+msgstr "{{thing_changed}} je změněno z <code>{{from_value}}</code> na <code>{{to_value}}</code>"
+
msgid "{{title}} - a Freedom of Information request to {{public_body}}"
msgstr "{{title}} - dotaz vznesený podle zákona 106/1999 Sb., o svobodném přístupu k informacím na instituci {{public_body}}"
diff --git a/locale/cy/app.po b/locale/cy/app.po
index 01ab4c679..1db212feb 100644
--- a/locale/cy/app.po
+++ b/locale/cy/app.po
@@ -3,17 +3,18 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# <alex@alexskene.com>, 2011-2012.
-# <graham.craig@gmail.com>, 2013.
-# <graham.craig@gmail.com>, 2013.
+# skenaja <alex@alexskene.com>, 2011-2012
+# baragouiner <graham.craig@gmail.com>, 2013
+# baragouiner <graham.craig@gmail.com>, 2013
+# PerryX <wyeboy@gmail.com>, 2013
msgid ""
msgstr ""
"Project-Id-Version: alaveteli\n"
"Report-Msgid-Bugs-To: http://github.com/sebbacon/alaveteli/issues\n"
-"POT-Creation-Date: 2012-12-18 10:11+0000\n"
-"PO-Revision-Date: 2013-01-21 16:14+0000\n"
-"Last-Translator: baragouiner <graham.craig@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"POT-Creation-Date: 2013-05-30 09:46+0100\n"
+"PO-Revision-Date: 2013-05-30 08:54+0000\n"
+"Last-Translator: louisecrow <louise@mysociety.org>\n"
+"Language-Team: Welsh (http://www.transifex.com/projects/p/alaveteli/language/cy/)\n"
"Language: cy\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -23,7 +24,7 @@ msgstr ""
msgid " This will appear on your {{site_name}} profile, to make it\\n easier for others to get involved with what you're doing."
msgstr ""
-msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)"
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
msgstr ""
msgid " (<strong>patience</strong>, especially for large files, it may take a while!)"
@@ -33,7 +34,7 @@ msgid " (you)"
msgstr "(chi)"
msgid " - view and make Freedom of Information requests"
-msgstr ""
+msgstr "gweld a gwneud ceisiadau Rhyddid Gwybodaeth"
msgid " - wall"
msgstr ""
@@ -53,7 +54,7 @@ msgstr ""
msgid " Ideas on what <strong>other documents to request</strong> which the authority may hold. "
msgstr ""
-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."
+msgid " If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\\n You may be able to find the address on their website, or by phoning them up and asking."
msgstr ""
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."
@@ -66,22 +67,22 @@ msgid " Offer better ways of <strong>wording the request</strong> to get the inf
msgstr ""
msgid " Say how you've <strong>used the information</strong>, with links if possible."
-msgstr ""
+msgstr "Dwedwch sut rydych chi wedi <strong>defnyddio'r wybodaeth</strong>, gyda dolenni os yn bosibl."
msgid " Suggest <strong>where else</strong> the requester might find the information. "
msgstr ""
msgid " What are you investigating using Freedom of Information? "
-msgstr ""
+msgstr "Beth ydych chi'n ei ymchwilio gan ddefnyddio Rhyddid Gwybodaeth?"
msgid " You are already being emailed updates about the request."
-msgstr ""
+msgstr "Rydych chi eisoes yn derbyn diweddariadau am y cais drwy ebost."
msgid " You will also be emailed updates about the request."
-msgstr ""
+msgstr "Byddwch chi'n derbyn diweddariadau am y cais drwy ebost hefyd."
msgid " made by "
-msgstr ""
+msgstr "a wnaethpwyd gan"
msgid " or "
msgstr "neu"
@@ -92,27 +93,6 @@ msgstr "pan chi'n anfon y neges hon"
msgid "\"Hello! We have an <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">important message</a> for visitors outside {{country_name}}\""
msgstr ""
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "%d request"
-msgid_plural "%d requests"
-msgstr[0] "Nifer o geisiadau: %d"
-msgstr[1] "Nifer o geisiadau: %d"
-msgstr[2] "Nifer o geisiadau: %d"
-msgstr[3] "Nifer o geisiadau: %d"
-
-msgid "%d request made."
-msgid_plural "%d requests made."
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "'Crime statistics by ward level for Wales'"
msgstr "'Ystadegau troseddu yn ôl lefel ward ar gyfer Cymru'"
@@ -128,6 +108,9 @@ msgstr ""
msgid "'{{link_to_user}}', a person"
msgstr ""
+msgid "*unknown*"
+msgstr ""
+
msgid ",\\n\\n\\n\\nYours,\\n\\n{{user_name}}"
msgstr ""
@@ -141,33 +124,15 @@ msgid "2. Ask for Information"
msgstr "2. Gofyn am wybodaeth"
msgid "3. Now check your request"
-msgstr ""
-
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
-msgstr ""
-
-msgid "<a href=\"%s\">Are we missing a public authority?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Are you the owner of\\n any commercial copyright on this page?</a>"
-msgstr ""
+msgstr "3. Gwiriwch eich cais rwan"
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
msgstr ""
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
+msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)"
msgstr ""
-msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
-msgstr ""
-
-msgid "<a href=\"%s\">details</a>"
-msgstr "<a href=\"%s\">manylion</a>"
-
-msgid "<a href=\"%s\">what's that?</a>"
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
msgstr ""
msgid "<p>All done! Thank you very much for your help.</p><p>There are <a href=\"{{helpus_url}}\">more things you can do</a> to help {{site_name}}.</p>"
@@ -185,9 +150,6 @@ msgstr ""
msgid "<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>"
msgstr ""
-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 ""
-
msgid "<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>"
msgstr ""
@@ -206,14 +168,14 @@ msgstr ""
msgid "<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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 ""
-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>"
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
msgstr ""
-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 ""
+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=\"{{url}}\">details</a>).</p>"
+msgstr "<p>Does dim rhaid i chi roi'ich cyfeiriad yn y cais er mwyn cael ymateb, gan ofynnwn ni amdano ar y sgrîn nesaf (<aa href=\"{{url}}\">manylion</a>).</p>"
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 ""
+msgstr "<p>Mae'ch cais yn cynnwys <strong>cod post</strong>. Oni bai ei fod o'n ymwneud yn uniongyrchol â'r cais, dilewch unrhyw cyfeiriadau os gwelwch yn dda, oherwydd y bydd o'n <strong>ymddangos yn cyhoeddus ar y Rhyngrwyd</strong>.</p>"
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 {{late_number_of_days}} 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 ""
@@ -224,15 +186,8 @@ msgstr ""
msgid "<small>If you use web-based email or have \"junk mail\" filters, also check your\\nbulk/spam mail folders. Sometimes, our messages are marked that way.</small>\\n</p>"
msgstr ""
-msgid "<span id='follow_count'>%d</span> person is following this authority"
-msgid_plural "<span id='follow_count'>%d</span> people are following this authority"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
-msgstr "<strong> A gaf i wneud cais am wybodaeth amdanaf fi fy hun?</strong>\\n\t\t\t<a href=\"%s\">Na chewch! (Cliciwch yma am fanylion)</a>"
+msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
+msgstr "<strong> A gaf i wneud cais am wybodaeth amdanaf fi fy hun?</strong>\\n\t\t\t<a href=\"{{url}}\">Na chewch! (Cliciwch yma am fanylion)</a>"
msgid "<strong><code>commented_by:tony_bowden</code></strong> to search annotations made by Tony Bowden, typing the name as in the URL."
msgstr ""
@@ -262,16 +217,16 @@ msgid "<strong>Advice</strong> on how to get a response that will satisfy the re
msgstr ""
msgid "<strong>All the information</strong> has been sent"
-msgstr ""
+msgstr "Mae'r <strong>holl wybodaeth</strong> wedi cael ei hanfon."
msgid "<strong>Anything else</strong>, such as clarifying, prompting, thanking"
-msgstr ""
+msgstr "<strong>Unrhywbeth arall</strong>, megis egluro, annog, diolch"
msgid "<strong>Caveat emptor!</strong> To use this data in an honourable way, you will need \\na good internal knowledge of user behaviour on {{site_name}}. How, \\nwhy and by whom requests are categorised is not straightforward, and there will\\nbe user error and ambiguity. You will also need to understand FOI law, and the\\nway authorities use it. Plus you'll need to be an elite statistician. Please\\n<a href=\"{{contact_path}}\">contact us</a> with questions."
msgstr ""
msgid "<strong>Clarification</strong> has been requested"
-msgstr ""
+msgstr "Ceisiwyd <strong>eglurhad</strong>"
msgid "<strong>No response</strong> has been received\\n <small>(maybe there's just an acknowledgement)</small>"
msgstr ""
@@ -285,7 +240,7 @@ msgstr ""
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 ""
-msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"%s\">click here</a>."
+msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"{{url}}\">click here</a>."
msgstr ""
msgid "<strong>Privacy note:</strong> Your photo will be shown in public on the Internet,\\n wherever you do something on {{site_name}}."
@@ -295,10 +250,10 @@ msgid "<strong>Privacy warning:</strong> Your message, and any response\\n
msgstr ""
msgid "<strong>Some of the information</strong> has been sent "
-msgstr ""
+msgstr "Anfonwyd <strong>rhan o'r wybodaeth</strong>"
msgid "<strong>Thank</strong> the public authority or "
-msgstr ""
+msgstr "<strong>Diolch</strong> yr awdurdod gyhoeddus"
msgid "<strong>did not have</strong> the information requested."
msgstr ""
@@ -327,6 +282,9 @@ msgstr ""
msgid "A strange reponse, required attention by the {{site_name}} team"
msgstr ""
+msgid "A vexatious request"
+msgstr ""
+
msgid "A {{site_name}} user"
msgstr ""
@@ -336,6 +294,15 @@ msgstr ""
msgid "Act on what you've learnt"
msgstr ""
+msgid "Acts as xapian/acts as xapian job"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Action"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Model"
+msgstr ""
+
msgid "Add an annotation"
msgstr ""
@@ -364,7 +331,7 @@ msgid "Air, water, soil, land, flora and fauna (including how these effect\\n
msgstr ""
msgid "All of the information requested has been received"
-msgstr ""
+msgstr "Derbynnir yr holl wybodaeth."
msgid "All the options below can use <strong>status</strong> or <strong>latest_status</strong> before the colon. For example, <strong>status:not_held</strong> will match requests which have <em>ever</em> been marked as not held; <strong>latest_status:not_held</strong> will match only requests that are <em>currently</em> marked as not held."
msgstr ""
@@ -391,7 +358,7 @@ msgid "An <strong>error message</strong> has been received"
msgstr ""
msgid "An Environmental Information Regulations request"
-msgstr ""
+msgstr "Cais dan Reoliadau Gwybodaeth Amgylcheddol "
msgid "An anonymous user"
msgstr ""
@@ -414,10 +381,19 @@ msgstr ""
msgid "Anyone:"
msgstr "Unrhywun:"
+msgid "Applies to"
+msgstr ""
+
+msgid "Are we missing a public authority?"
+msgstr ""
+
+msgid "Are you the owner of any commercial copyright on this page?"
+msgstr ""
+
msgid "Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries."
msgstr "Gofynnwch am ddogfennau neu wybodaeth <strong>benodol</strong>. Nid yw'r wefan hon yn addas ar gyfer ymholiadau cyffredinol."
-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>)."
+msgid "At the bottom of this page, write a reply to them trying to persuade them to scan it in\\n (<a href=\"{{url}}\">more details</a>)."
msgstr ""
msgid "Attachment (optional):"
@@ -427,13 +403,13 @@ msgid "Attachment:"
msgstr "Atodiad:"
msgid "Awaiting classification."
-msgstr ""
+msgstr "Yn aros am gael ei ddosbarthu."
msgid "Awaiting internal review."
-msgstr ""
+msgstr "Yn aros am adolygiad mewnol."
msgid "Awaiting response."
-msgstr ""
+msgstr "Yn aros am ymateb."
msgid "Beginning with"
msgstr "Yn dechrau gyda"
@@ -448,11 +424,17 @@ msgid "Browse all authorities..."
msgstr "Mwy o awdurdodau..."
msgid "By law, under all circumstances, {{public_body_link}} should have responded by now"
-msgstr ""
+msgstr "Yn ôl y gyfraith, ym mhob amgylchiad, dylai {{public_body_link}} fod wedi ymateb erbyn hyn."
msgid "By law, {{public_body_link}} should normally have responded <strong>promptly</strong> and"
msgstr ""
+msgid "Calculated home page"
+msgstr ""
+
+msgid "Can't find the one you want?"
+msgstr ""
+
msgid "Cancel a {{site_name}} alert"
msgstr ""
@@ -487,16 +469,16 @@ msgid "Change password on {{site_name}}"
msgstr "Newid cyfrinair ar {{site_name}}"
msgid "Change profile photo"
-msgstr ""
+msgstr "Newidiwch llun broffil"
msgid "Change the text about you on your profile at {{site_name}}"
-msgstr ""
+msgstr "Newidiwch y testun amdanoch chi ar eich proffil ar {{site_name}}"
msgid "Change your email"
msgstr "Newid eich cyfeiriad ebost"
msgid "Change your email address used on {{site_name}}"
-msgstr ""
+msgstr "Newidiwch eich cyfeiriad ebost a ddefnyddir ar {{site_name}}"
msgid "Change your password"
msgstr "Newid eich cyfrinair"
@@ -514,19 +496,19 @@ msgid "Check for mistakes if you typed or copied the address."
msgstr ""
msgid "Check you haven't included any <strong>personal information</strong>."
-msgstr ""
+msgstr "Gwiriwch nad ydych chi wedi cynnyws unrhyw <strong>wybodaeth bersonol</strong>."
msgid "Choose your profile photo"
-msgstr ""
+msgstr "Dewisich eich llun broffil"
msgid "Clarification"
-msgstr ""
+msgstr "Eglurhad"
msgid "Clarify your FOI request - "
msgstr ""
msgid "Classify an FOI response from "
-msgstr ""
+msgstr "Dosbarthwch ymateb Rh.G. oddiwrth"
msgid "Clear photo"
msgstr ""
@@ -574,19 +556,19 @@ msgid "Confirm you want to follow the request '{{request_title}}'"
msgstr ""
msgid "Confirm your FOI request to "
-msgstr ""
+msgstr "Cadarnhewch eich cais Rh.G. at"
msgid "Confirm your account on {{site_name}}"
-msgstr ""
+msgstr "Cadarnhewch eich cyfrif ar {{site_name}}"
msgid "Confirm your annotation to {{info_request_title}}"
msgstr ""
msgid "Confirm your email address"
-msgstr ""
+msgstr "Cadarnhewch eich cyfeiriad ebost"
msgid "Confirm your new email address on {{site_name}}"
-msgstr ""
+msgstr "Cadarnhewch eich cyfeiriad ebost newydd ar {{site_name}}"
msgid "Considered by administrators as not an FOI request and hidden from site."
msgstr ""
@@ -601,13 +583,13 @@ msgid "Contact {{site_name}}"
msgstr "Cysylltwch â {{site_name}}"
msgid "Could not identify the request from the email address"
-msgstr ""
+msgstr "Methiant adnabod y cais o'r cyfeiriad ebost"
msgid "Couldn't understand the image file that you uploaded. PNG, JPEG, GIF and many other common image file formats are supported."
msgstr ""
msgid "Crop your profile photo"
-msgstr ""
+msgstr "Torrwch eich llun broffil"
msgid "Cultural sites and built structures (as they may be affected by the\\n environmental factors listed above)"
msgstr ""
@@ -618,16 +600,25 @@ msgstr ""
msgid "Date:"
msgstr "Dyddiad"
+msgid "Dear {{name}},"
+msgstr ""
+
msgid "Dear {{public_body_name}},"
msgstr "Annwyl {{public_body_name}},"
-msgid "Delayed response to your FOI request - "
+msgid "Default locale"
msgstr ""
+msgid "Delayed response to your FOI request - "
+msgstr "Ymateb i'ch cais Rh.G. a oedwyd -"
+
msgid "Delayed."
-msgstr ""
+msgstr "Oededig."
msgid "Delivery error"
+msgstr "Methiant cyflwyno"
+
+msgid "Destroy {{name}}"
msgstr ""
msgid "Details of request '"
@@ -642,6 +633,9 @@ msgstr ""
msgid "Disclosure log"
msgstr ""
+msgid "Disclosure log URL"
+msgstr ""
+
msgid "Don't want to address your message to {{person_or_body}}? You can also write to:"
msgstr ""
@@ -660,10 +654,10 @@ msgstr "Lawrlwytho'r atodiad gwreiddiol"
msgid "EIR"
msgstr "Rheoliadau Gwybodaeth Amgylcheddol"
-msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
+msgid "Edit"
msgstr ""
-msgid "Edit language version:"
+msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
msgstr ""
msgid "Edit text about you"
@@ -687,7 +681,7 @@ msgstr ""
msgid "Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>"
msgstr ""
-msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"%s\">contact us</a> if you need more)."
+msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"{{url}}\">contact us</a> if you need more)."
msgstr ""
msgid "Environmental Information Regulations"
@@ -705,10 +699,13 @@ msgstr "Hanes y digwyddiad"
msgid "Event history details"
msgstr "Hanes y digwyddiad: Manylion"
-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>)."
+msgid "Event {{id}}"
msgstr ""
-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>)."
+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=\"{{url}}\">why?</a>)."
+msgstr ""
+
+msgid "Everything that you enter on this page\\n will be <strong>displayed publicly</strong> on\\n this website forever (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "FOI"
@@ -717,6 +714,9 @@ msgstr "Rhyddid Gwybodaeth"
msgid "FOI email address for {{public_body}}"
msgstr ""
+msgid "FOI request – {{title}}"
+msgstr ""
+
msgid "FOI requests"
msgstr "Ceisiadau Rhyddid Gwybodaeth"
@@ -732,14 +732,14 @@ msgstr ""
msgid "Failed to convert image to a PNG"
msgstr ""
-msgid "Failed to convert image to the correct size: at %{cols}x%{rows}, need %{width}x%{height}"
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
msgstr ""
msgid "Filter"
msgstr ""
-msgid "First, type in the <strong>name of the UK public authority</strong> you'd \\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"%s#%s\">why?</a>)."
-msgstr "Yn gyntaf, teipiwch <strong>enw awdurdod cyhoeddus yn y DU</strong> yr hoffech gael gwybodaeth ganddo. <strong>Yn ôl y gyfraith, mae'n rhaid iddynt ymateb</strong> (<a href=\"%s#%s\">pam?</a>)."
+msgid "First, type in the <strong>name of the UK public authority</strong> you'd\\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"{{url}}\">why?</a>)."
+msgstr "Yn gyntaf, teipiwch <strong>enw awdurdod cyhoeddus yn y DU</strong> yr hoffech gael gwybodaeth ganddo. <strong>Yn ôl y gyfraith, mae'n rhaid iddynt ymateb</strong> (<a href=\"{{url}}\">pam?</a>)."
msgid "Foi attachment"
msgstr ""
@@ -778,13 +778,13 @@ msgid "Follow requests to {{public_body_name}}"
msgstr ""
msgid "Follow these requests"
-msgstr ""
+msgstr "Dilynwch y ceisiadau hyn"
msgid "Follow things matching this search"
msgstr ""
msgid "Follow this authority"
-msgstr ""
+msgstr "Dilynwch yr awdurdod hwn"
msgid "Follow this link to see the request:"
msgstr "Dilynwch y ddolen hon i weld y cais:"
@@ -793,7 +793,7 @@ msgid "Follow this person"
msgstr ""
msgid "Follow this request"
-msgstr ""
+msgstr "Dilynwch y cais hwn"
msgid "Follow up"
msgstr ""
@@ -808,7 +808,7 @@ msgid "Follow ups and new responses to this request have been stopped to prevent
msgstr ""
msgid "Follow us on twitter"
-msgstr ""
+msgstr "Dilynwch ni ar Twitter"
msgid "Followups cannot be sent for this request, as it was made externally, and published here by {{public_body_name}} on the requester's behalf."
msgstr ""
@@ -819,15 +819,15 @@ msgstr ""
msgid "Forgotten your password?"
msgstr "Wedi anghofio eich cyfrinair?"
-msgid "Found %d public authority %s"
-msgid_plural "Found %d public authorities %s"
+msgid "Found {{count}} public authority {{description}}"
+msgid_plural "Found {{count}} public authorities {{description}}"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgid "Freedom of Information"
-msgstr ""
+msgstr "Rhyddid Gwybodaeth"
msgid "Freedom of Information Act"
msgstr "Deddf Rhyddid Gwybodaeth"
@@ -836,30 +836,30 @@ msgid "Freedom of Information law does not apply to this authority, so you canno
msgstr ""
msgid "Freedom of Information law no longer applies to"
-msgstr ""
+msgstr "Nid yw cyfraith Rhyddid Gwybodaeth bellach yn berthnasol i"
msgid "Freedom of Information law no longer applies to this authority.Follow up messages to existing requests are sent to "
msgstr ""
msgid "Freedom of Information requests made"
-msgstr ""
+msgstr "Ceisiadiau Rhyddid Gwybodaeth a wnaethpwyd"
msgid "Freedom of Information requests made by this person"
-msgstr ""
+msgstr "Ceisiadiau Rhyddid Gwybodaeth a wnaethpwyd gan y person hwn"
msgid "Freedom of Information requests made by you"
-msgstr ""
+msgstr "Ceisiadiau Rhyddid Gwybodaeth a wnaethpwyd gennych chi"
msgid "Freedom of Information requests made using this site"
-msgstr ""
+msgstr "Ceisiadiau Rhyddid Gwybodaeth a wnaethpwyd gan ddefnyddio'r wefan hon"
msgid "Freedom of information requests to"
-msgstr ""
+msgstr "Ceisiadiau Rhyddid Gwybodaeth at"
msgid "From"
msgstr ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "From:"
@@ -871,6 +871,18 @@ msgstr "RHOWCH MANYLION EICH CWYN YMA"
msgid "Handled by post."
msgstr ""
+msgid "Has tag string/has tag string tag"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Model"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Name"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Value"
+msgstr ""
+
msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
msgstr "Shwmae! Rydych chi'n gallu gwneud ceisiadau Rhyddid Gwybodaeth yn {{country_name}} yma:{{link_to_website}}"
@@ -889,6 +901,9 @@ msgstr ""
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 ""
+msgid "Hide request"
+msgstr ""
+
msgid "Holiday"
msgstr ""
@@ -901,6 +916,9 @@ msgstr "Gwyliau | Disgrifiad"
msgid "Home"
msgstr "Hafan"
+msgid "Home page"
+msgstr ""
+
msgid "Home page of authority"
msgstr "Tudalen hafan yr awdurdod"
@@ -908,13 +926,13 @@ msgid "However, you have the right to request environmental\\n inform
msgstr ""
msgid "Human health and safety"
-msgstr ""
+msgstr "Iechyd a diogelwch dynol"
msgid "I am asking for <strong>new information</strong>"
msgstr "Rydw i'n gofyn am <strong>gwybodaeth newydd</strong>"
msgid "I am requesting an <strong>internal review</strong>"
-msgstr ""
+msgstr "Yr wyf yn gofyn am <strong>adolygiad mewnol</strong>"
msgid "I don't like these ones &mdash; give me some more!"
msgstr ""
@@ -938,38 +956,47 @@ msgid "I'm waiting for an <strong>internal review</strong> response"
msgstr ""
msgid "I've been asked to <strong>clarify</strong> my request"
-msgstr ""
+msgstr "Gofynnwyd i mi <strong>egluro</strong> fy nghais"
msgid "I've received <strong>all the information"
-msgstr ""
+msgstr "Yr wyf wedi derbyn <strong>yr holl wybodaeth"
msgid "I've received <strong>some of the information</strong>"
-msgstr ""
+msgstr "Yr wyf wedi derbyn <strong>rhan o'r wybodaeth</strong>"
msgid "I've received an <strong>error message</strong>"
msgstr "Rydw i wedi cael <strong>neges gwall</strong>"
-msgid "If the address is wrong, or you know a better address, please <a href=\"%s\">contact us</a>."
+msgid "I've received an error message"
msgstr ""
-msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
+msgid "Id"
msgstr ""
-msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"%s\">details</a>)."
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
+msgid "If the error was a delivery failure, and you can find an up to date FOI email address for the authority, please tell us using the form below."
msgstr ""
-msgid "If you are the requester, then you may <a href=\"%s\">sign in</a> to view the request."
+msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
msgstr ""
-msgid "If you are thinking of using a pseudonym,\\n please <a href=\"%s\">read this first</a>."
-msgstr "Os ydych yn ystyried defnyddio ffugenw, <a href=\"%s\">darllenwch hwn yn gyntaf</a> os gwelwch yn dda."
+msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"{{url}}\">details</a>)."
+msgstr ""
-msgid "If you are {{user_link}}, please"
+msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
+msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request."
+msgstr "Os chi yw'r ceisydd, rydych chi'n gallu <a href=\"{{url}}\">mewngofnodi</a> i weld y cais;."
+
+msgid "If you are thinking of using a pseudonym,\\n please <a href=\"{{url}}\">read this first</a>."
+msgstr "Os ydych yn ystyried defnyddio ffugenw, <a href=\"{{url}}\">darllenwch hwn yn gyntaf</a> os gwelwch yn dda."
+
+msgid "If you are {{user_link}}, please"
+msgstr "Os {{user_link}} ydych chi, os gwelwch yn dda, "
+
msgid "If you believe this request is not suitable, you can report it for attention by the site administrators"
msgstr ""
@@ -1006,6 +1033,9 @@ msgstr "Os ydych chi wedi defnyddio {{site_name}} o'r blaen "
msgid "If your browser is set to accept cookies and you are seeing this message,\\nthen there is probably a fault with our server."
msgstr ""
+msgid "Incoming email address"
+msgstr ""
+
msgid "Incoming message"
msgstr ""
@@ -1120,14 +1150,20 @@ msgstr ""
msgid "Items matching the following conditions are currently displayed on your wall."
msgstr ""
+msgid "Items sent in last month"
+msgstr ""
+
msgid "Joined in"
msgstr ""
msgid "Joined {{site_name}} in"
msgstr ""
-msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)."
-msgstr "Cadwch at <strong>y prif bwynt</strong>. Byddwch yn fwy tebygol o gael beth rydych yn chwilio amdano (<a href=\"%s\">pam?</a>)."
+msgid "Just one more thing"
+msgstr ""
+
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
+msgstr "Cadwch at <strong>y prif bwynt</strong>. Byddwch yn fwy tebygol o gael beth rydych yn chwilio amdano (<a href=\"{{url}}\">pam?</a>)."
msgid "Keywords"
msgstr "Allweddeiriau"
@@ -1144,9 +1180,27 @@ msgstr ""
msgid "Link to this"
msgstr ""
+msgid "List all"
+msgstr ""
+
msgid "List of all authorities (CSV)"
msgstr ""
+msgid "Listing FOI requests"
+msgstr ""
+
+msgid "Listing public authorities"
+msgstr ""
+
+msgid "Listing public authorities matching '{{query}}'"
+msgstr ""
+
+msgid "Listing tracks"
+msgstr ""
+
+msgid "Listing users"
+msgstr ""
+
msgid "Log in to download a zip file of {{info_request_title}}"
msgstr ""
@@ -1243,6 +1297,9 @@ msgstr ""
msgid "New Freedom of Information requests"
msgstr "Ceisiadau Rhyddid Gwybodaeth newydd"
+msgid "New censor rule"
+msgstr ""
+
msgid "New e-mail:"
msgstr "Cyfeiriad ebost newydd:"
@@ -1288,6 +1345,9 @@ msgstr ""
msgid "No similar requests found."
msgstr ""
+msgid "No tracked things found."
+msgstr ""
+
msgid "Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet."
msgstr ""
@@ -1297,6 +1357,9 @@ msgstr ""
msgid "None made."
msgstr ""
+msgid "Not a valid FOI request"
+msgstr ""
+
msgid "Note that the requester will not be notified about your annotation, because the request was published by {{public_body_name}} on their behalf."
msgstr ""
@@ -1342,6 +1405,9 @@ msgstr ""
msgid "One public authority found"
msgstr ""
+msgid "Only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL – don't worry about breaking URLs through renaming, as the history is used to redirect"
+msgstr ""
+
msgid "Only requests made using {{site_name}} are shown."
msgstr ""
@@ -1414,7 +1480,7 @@ msgstr ""
msgid "Please"
msgstr ""
-msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
msgstr ""
msgid "Please <strong>answer the question above</strong> so we know whether the "
@@ -1519,7 +1585,7 @@ msgstr ""
msgid "Please select each of these requests in turn, and <strong>let everyone know</strong>\\nif they are successful yet or not."
msgstr ""
-msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature"
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
msgstr ""
msgid "Please sign in as "
@@ -1531,9 +1597,6 @@ msgstr ""
msgid "Please type a message and/or choose a file containing your response."
msgstr ""
-msgid "Please use the form below to tell us more."
-msgstr ""
-
msgid "Please use this email address for all replies to this request:"
msgstr ""
@@ -1624,37 +1687,19 @@ msgstr ""
msgid "Public authorities {{start_count}} to {{end_count}} of {{total_count}}"
msgstr ""
-msgid "Public body"
+msgid "Public authority – {{name}}"
msgstr ""
-msgid "Public body/translation"
-msgstr ""
-
-msgid "PublicBody::Translation|Disclosure log"
-msgstr ""
-
-msgid "PublicBody::Translation|First letter"
-msgstr ""
-
-msgid "PublicBody::Translation|Locale"
-msgstr ""
-
-msgid "PublicBody::Translation|Name"
-msgstr ""
-
-msgid "PublicBody::Translation|Notes"
-msgstr ""
-
-msgid "PublicBody::Translation|Publication scheme"
+msgid "Public body"
msgstr ""
-msgid "PublicBody::Translation|Request email"
+msgid "Public notes"
msgstr ""
-msgid "PublicBody::Translation|Short name"
+msgid "Public page"
msgstr ""
-msgid "PublicBody::Translation|Url name"
+msgid "Public page not available"
msgstr ""
msgid "PublicBody|Api key"
@@ -1702,6 +1747,9 @@ msgstr ""
msgid "Publication scheme"
msgstr ""
+msgid "Publication scheme URL"
+msgstr ""
+
msgid "Purge request"
msgstr ""
@@ -1759,6 +1807,9 @@ msgstr ""
msgid "Request an internal review from {{person_or_body}}"
msgstr ""
+msgid "Request email"
+msgstr ""
+
msgid "Request has been removed"
msgstr ""
@@ -1849,8 +1900,8 @@ msgstr ""
msgid "Search the site to find what you were looking for."
msgstr ""
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests made to {{public_body_name}}"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
@@ -1859,6 +1910,9 @@ msgstr[3] ""
msgid "Search your contributions"
msgstr ""
+msgid "See bounce message"
+msgstr ""
+
msgid "Select one to see more information about the authority."
msgstr ""
@@ -1892,6 +1946,9 @@ msgstr ""
msgid "Set your profile photo"
msgstr ""
+msgid "Short name"
+msgstr ""
+
msgid "Short name is already taken"
msgstr ""
@@ -1985,6 +2042,9 @@ msgstr ""
msgid "Submit status"
msgstr ""
+msgid "Submit status and send message"
+msgstr ""
+
msgid "Subscribe to blog"
msgstr ""
@@ -2006,6 +2066,9 @@ msgstr ""
msgid "Table of varieties"
msgstr ""
+msgid "Tags"
+msgstr ""
+
msgid "Tags (separated by a space):"
msgstr ""
@@ -2033,6 +2096,9 @@ msgstr ""
msgid "Thank you for updating your profile photo"
msgstr ""
+msgid "Thank you! We'll look into what happened and try and fix it up."
+msgstr ""
+
msgid "Thanks for helping - your work will make it easier for everyone to find successful\\nresponses, and maybe even let us make league tables..."
msgstr ""
@@ -2102,16 +2168,16 @@ msgstr ""
msgid "The request was refused by the public authority"
msgstr ""
-msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"%s\">contact us</a> if you have any questions."
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
msgstr ""
msgid "The requester has abandoned this request for some reason"
msgstr ""
-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"
+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 ""
-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"
+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 ""
msgid "The search index is currently offline, so we can't show the Freedom of Information requests that have been made to this authority."
@@ -2120,6 +2186,9 @@ msgstr ""
msgid "The search index is currently offline, so we can't show the Freedom of Information requests this person has made."
msgstr ""
+msgid "The {{site_name}} team."
+msgstr ""
+
msgid "Then you can cancel the alert."
msgstr ""
@@ -2195,19 +2264,19 @@ msgstr ""
msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
msgstr ""
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
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 ""
msgid "There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>."
msgstr ""
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "There was a <strong>delivery error</strong> or similar, which needs fixing by the {{site_name}} team."
msgstr ""
@@ -2244,7 +2313,7 @@ msgstr ""
msgid "This authority no longer exists, so you cannot make a request to it."
msgstr ""
-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."
+msgid "This comment has been hidden. See annotations to\\n find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This covers a very wide spectrum of information about the state of\\n the <strong>natural and built environment</strong>, such as:"
@@ -2262,10 +2331,13 @@ msgstr ""
msgid "This is because {{title}} is an old request that has been\\nmarked to no longer receive responses."
msgstr ""
+msgid "This is the first version."
+msgstr ""
+
msgid "This is your own request, so you will be automatically emailed when new responses arrive."
msgstr ""
-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."
+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=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This particular request is finished:"
@@ -2274,23 +2346,23 @@ msgstr ""
msgid "This person has made no Freedom of Information requests using this site."
msgstr ""
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
+msgid "This person's annotations"
+msgstr ""
+
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "This person's annotations"
-msgstr ""
-
msgid "This request <strong>requires administrator attention</strong>"
msgstr ""
@@ -2312,7 +2384,7 @@ msgstr ""
msgid "This request has been <strong>withdrawn</strong> by the person who made it.\\n There may be an explanation in the correspondence below."
msgstr ""
-msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"%s\">contact us</a>."
+msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
msgid "This request has been reported for administrator attention"
@@ -2327,16 +2399,19 @@ msgstr ""
msgid "This request has prominence 'hidden'. You can only see it because you are logged\\n in as a super user."
msgstr ""
-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."
+msgid "This request is hidden, so that only you the requester can see it. Please\\n <a href=\"{{url}}\">contact us</a> if you are not sure why."
msgstr ""
msgid "This request is still in progress:"
msgstr ""
+msgid "This request requires administrator attention"
+msgstr ""
+
msgid "This request was not made via {{site_name}}"
msgstr ""
-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."
+msgid "This response has been hidden. See annotations to find out why.\\n If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This table shows the technical details of the internal events that happened\\nto this request on {{site_name}}. This could be used to generate information about\\nthe speed with which authorities respond to requests, the number of requests\\nwhich require a postal response and much more."
@@ -2495,7 +2570,7 @@ msgstr ""
msgid "Unexpected search result type "
msgstr ""
-msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"%s\">contact us</a> to sort it out."
+msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"{{url}}\">contact us</a> to sort it out."
msgstr ""
msgid "Unfortunately, we do not have a working {{info_request_law_used_full}}\\naddress for"
@@ -2531,6 +2606,9 @@ msgstr ""
msgid "User info request sent alert"
msgstr ""
+msgid "User – {{name}}"
+msgstr ""
+
msgid "UserInfoRequestSentAlert|Alert type"
msgstr ""
@@ -2585,6 +2663,9 @@ msgstr ""
msgid "User|Url name"
msgstr ""
+msgid "Version {{version}}"
+msgstr ""
+
msgid "View FOI email address"
msgstr ""
@@ -2624,6 +2705,12 @@ msgstr ""
msgid "Was the response you got to your FOI request any good?"
msgstr ""
+msgid "We consider it is not a valid FOI request, and have therefore hidden it from other users."
+msgstr ""
+
+msgid "We consider it to be vexatious, and have therefore hidden it from other users."
+msgstr ""
+
msgid "We do not have a working request email address for this authority."
msgstr ""
@@ -2633,8 +2720,8 @@ msgstr ""
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=\"{{url}}\">sign in</a> and let everyone know."
msgstr ""
-msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"%s\">details</a>). "
-msgstr "Ni fyddwn yn datgelu eich cyfeiriad e-bost i neb oni bai eich bod chi neu'r gyfraith yn dweud wrthym i wneud (<a href=\"%s\">manylion</a>)."
+msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"{{url}}\">details</a>). "
+msgstr "Ni fyddwn yn datgelu eich cyfeiriad e-bost i neb oni bai eich bod chi neu'r gyfraith yn dweud wrthym i wneud (<a href=\"{{url}}\">manylion</a>)."
msgid "We will not reveal your email address to anybody unless you\\nor the law tell us to."
msgstr "Ni fyddwn yn datgelu eich cyfeiriad e-bost i neb oni bai eich bod chi neu'r gyfraith yn dweud wrthym i wneud."
@@ -2675,7 +2762,7 @@ msgstr ""
msgid "When you receive the paper response, please help\\n others find out what it says:"
msgstr ""
-msgid "When you're done, <strong>come back here</strong>, <a href=\"%s\">reload this page</a> and file your new request."
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
msgstr ""
msgid "Which of these is happening?"
@@ -2777,7 +2864,7 @@ msgstr ""
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 ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "You may be able to find\\none on their website, or by phoning them up and asking. If you manage\\nto find one, then please <a href=\"{{help_url}}\">send it to us</a>."
@@ -2816,6 +2903,9 @@ msgstr ""
msgid "You will only get an answer to your request if you follow up\\nwith the clarification."
msgstr ""
+msgid "You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further."
+msgstr ""
+
msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
msgstr ""
@@ -2828,24 +2918,10 @@ msgstr ""
msgid "You've now cleared your profile photo"
msgstr ""
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-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>."
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
msgstr ""
-"Bydd <strong>eich enw yn ymddangos yn gyhoeddus</strong> ( <a href=\"%s\">pam?</a>) ar y wefan hon ac mewn peiriannau chwilio.\n"
-"Os ydych yn ystyried defnyddio ffugenw, os gwelwch yn dda <a href=\"%s\">darllenwch hwn yn gyntaf</a>."
+"Bydd <strong>eich enw yn ymddangos yn gyhoeddus</strong> ( <a href=\"{{why_url}}\">pam?</a>) ar y wefan hon ac mewn peiriannau chwilio.\n"
+"Os ydych yn ystyried defnyddio ffugenw, os gwelwch yn dda <a href=\"{{help_url}}\">darllenwch hwn yn gyntaf</a>."
msgid "Your annotations"
msgstr ""
@@ -2856,7 +2932,7 @@ msgstr ""
msgid "Your e-mail:"
msgstr "Eich cyfeiriad e-bost:"
-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."
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
msgstr ""
msgid "Your follow up message has been sent on its way."
@@ -2880,7 +2956,7 @@ msgstr ""
msgid "Your name and annotation will appear in <strong>search engines</strong>."
msgstr ""
-msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"%s\">details</a>)."
+msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"{{url}}\">details</a>)."
msgstr ""
msgid "Your name:"
@@ -2898,6 +2974,12 @@ msgstr ""
msgid "Your photo will be shown in public <strong>on the Internet</strong>,\\n wherever you do something on {{site_name}}."
msgstr ""
+msgid "Your request '{{request}}' at {{url}} has been reviewed by moderators."
+msgstr ""
+
+msgid "Your request on {{site_name}} hidden"
+msgstr ""
+
msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
msgstr ""
@@ -2907,12 +2989,26 @@ msgstr ""
msgid "Your response to an FOI request was not delivered"
msgstr ""
-msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"%s\">read why</a> and answers to other questions."
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
msgstr ""
msgid "Your thoughts on what the {{site_name}} <strong>administrators</strong> should do about the request."
msgstr ""
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "Your {{site_name}} email alert"
msgstr ""
@@ -2922,6 +3018,9 @@ msgstr "Yr eiddoch yn gywir,"
msgid "Yours sincerely,"
msgstr "Yn gywir"
+msgid "Yours,"
+msgstr ""
+
msgid "[FOI #{{request}} email]"
msgstr ""
@@ -2942,6 +3041,9 @@ msgstr ""
msgid "admin"
msgstr ""
+msgid "alaveteli_foi:The software that runs {{site_name}}"
+msgstr ""
+
msgid "all requests"
msgstr ""
@@ -2975,6 +3077,9 @@ msgstr ""
msgid "are long overdue."
msgstr ""
+msgid "at"
+msgstr ""
+
msgid "authorities"
msgstr ""
@@ -2987,6 +3092,9 @@ msgstr ""
msgid "between two dates"
msgstr ""
+msgid "but followupable"
+msgstr ""
+
msgid "by"
msgstr ""
@@ -3006,7 +3114,7 @@ msgid "containing your postal address, and asking them to reply to this request.
msgstr ""
msgid "details"
-msgstr ""
+msgstr "manylion"
msgid "display_status only works for incoming and outgoing messages right now"
msgstr ""
@@ -3068,15 +3176,21 @@ msgstr ""
msgid "messages from users"
msgstr ""
+msgid "move..."
+msgstr ""
+
msgid "no later than"
msgstr ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "normally"
msgstr ""
+msgid "not requestable due to: {{reason}}"
+msgstr ""
+
msgid "please sign in as "
msgstr ""
@@ -3098,6 +3212,9 @@ msgstr ""
msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
msgstr ""
+msgid "set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA"
+msgstr ""
+
msgid "show quoted sections"
msgstr ""
@@ -3119,6 +3236,11 @@ msgstr ""
msgid "the main FOI contact address for {{public_body}}"
msgstr ""
+#. This phrase completes the following sentences:
+#. Request an internal review from...
+#. Send a public follow up message to...
+#. Send a public reply to...
+#. Don't want to address your message to... ?
msgid "the main FOI contact at {{public_body}}"
msgstr ""
@@ -3167,9 +3289,40 @@ msgstr ""
msgid "users"
msgstr ""
+msgid "what's that?"
+msgstr ""
+
msgid "{{count}} FOI requests found"
msgstr ""
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "{{count}} person is following this authority"
+msgid_plural "{{count}} people are following this authority"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
+msgstr[0] "Nifer o geisiadau: {{count}}"
+msgstr[1] "Nifer o geisiadau: {{count}}"
+msgstr[2] "Nifer o geisiadau: {{count}}"
+msgstr[3] "Nifer o geisiadau: {{count}}"
+
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
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 ""
@@ -3227,6 +3380,9 @@ msgstr ""
msgid "{{site_name}} users have made {{number_of_requests}} requests, including:"
msgstr ""
+msgid "{{thing_changed}} was changed from <code>{{from_value}}</code> to <code>{{to_value}}</code>"
+msgstr ""
+
msgid "{{title}} - a Freedom of Information request to {{public_body}}"
msgstr ""
diff --git a/locale/de/app.po b/locale/de/app.po
index 4a130061d..38b00b519 100644
--- a/locale/de/app.po
+++ b/locale/de/app.po
@@ -3,18 +3,18 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# David Cabo <david.cabo@gmail.com>, 2012.
-# FOI Monkey <>, 2012.
-# <kersti@access-info.org>, 2011.
-# stefanw <stefanwehrmeyer@gmail.com>, 2011.
+# David Cabo <david.cabo@gmail.com>, 2012
+# FOI Monkey <>, 2012
+# KerstiRu <kersti@access-info.org>, 2011
+# stefanw <stefanwehrmeyer@gmail.com>, 2011
msgid ""
msgstr ""
"Project-Id-Version: alaveteli\n"
"Report-Msgid-Bugs-To: http://github.com/sebbacon/alaveteli/issues\n"
-"POT-Creation-Date: 2012-12-18 10:11+0000\n"
-"PO-Revision-Date: 2012-12-18 10:14+0000\n"
+"POT-Creation-Date: 2013-05-30 09:46+0100\n"
+"PO-Revision-Date: 2013-05-30 08:54+0000\n"
"Last-Translator: louisecrow <louise@mysociety.org>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language-Team: German (http://www.transifex.com/projects/p/alaveteli/language/de/)\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -24,8 +24,8 @@ msgstr ""
msgid " This will appear on your {{site_name}} profile, to make it\\n easier for others to get involved with what you're doing."
msgstr " Diese Information wird auf Ihrem {{site_name}} -profil angezeigt werden, um andere Nutzer über Ihre Aktivitäten zu informieren. "
-msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)"
-msgstr "<a href=\"%s\">Moderationsregeln</a>)"
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
+msgstr "<a href=\"{{url}}\">Moderationsregeln</a>)"
msgid " (<strong>patience</strong>, especially for large files, it may take a while!)"
msgstr " (<strong>Geduld</strong>, speziell für größere Dateien kann es einen Moment dauern!)"
@@ -54,9 +54,9 @@ msgstr " Hilfe zur Erstellung einer guten Informationsanfrage. "
msgid " Ideas on what <strong>other documents to request</strong> which the authority may hold. "
msgstr " Ideas on what <strong>other documents to request</strong> which the authority may hold. "
-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."
+msgid " If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\\n You may be able to find the address on their website, or by phoning them up and asking."
msgstr ""
-"Sollten Sie die korrekte Adresse kennen, <a href=\"%s\">senden Sie sie uns</a>.\n"
+"Sollten Sie die korrekte Adresse kennen, <a href=\"{{url}}\">senden Sie sie uns</a>.\n"
" Sie können die Adresse wahrscheinlich auf der Webseite oder durch einen Anruf bei der Behörde herausfinden. "
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."
@@ -95,21 +95,6 @@ msgstr "wenn Sie diese Nachricht senden. "
msgid "\"Hello! We have an <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">important message</a> for visitors outside {{country_name}}\""
msgstr ""
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
-msgstr[0] "%d Informationsfreiheitsanfrage an %s"
-msgstr[1] "%d Informationsfreiheitsanfragen an %s"
-
-msgid "%d request"
-msgid_plural "%d requests"
-msgstr[0] "%d Anfrage"
-msgstr[1] "%d Anfragen"
-
-msgid "%d request made."
-msgid_plural "%d requests made."
-msgstr[0] "%d Anfragen gestellt."
-msgstr[1] "%d Anfragen gestellt."
-
msgid "'Crime statistics by ward level for Wales'"
msgstr "´Kriminalitätsrate auf Länderebene´"
@@ -125,6 +110,9 @@ msgstr "'{{link_to_request}}', eine Anfrage"
msgid "'{{link_to_user}}', a person"
msgstr "'{{link_to_user}}', eine Person"
+msgid "*unknown*"
+msgstr ""
+
msgid ",\\n\\n\\n\\nYours,\\n\\n{{user_name}}"
msgstr ""
",\n"
@@ -147,32 +135,14 @@ msgstr "2. Informationen anfragen"
msgid "3. Now check your request"
msgstr "3. Überprüfen Sie nun Ihre Anfrage"
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
-msgstr "<a href=\"%s\">Kommentar hinzufügen</a> (um den Anfragensteller oder andere Nutzern zu unterstützen)"
-
-msgid "<a href=\"%s\">Are we missing a public authority?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Are you the owner of\\n any commercial copyright on this page?</a>"
-msgstr "<a href=\"%s\">Halten Sie die Urheberrechte dieser Seite?</a>"
-
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
-msgstr "<a href=\"%s\">Alle durchsuchen</a> or <a href=\"%s\">bitten Sie uns eine hinzuzufügen</a>."
-
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
-msgstr "<a href=\"%s\">Gewünschte Behörde nicht gefunden?</a>"
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
+msgstr "<a href=\"{{browse_url}}\">Alle durchsuchen</a> or <a href=\"{{add_url}}\">bitten Sie uns eine hinzuzufügen</a>."
-msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
-msgstr "<a href=\"%s\">Melden Sie sich an,</a> um Ihr Passwort und weitere Einstellungen zu ändern (auschließlich {{user_name}})"
+msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)"
+msgstr "<a href=\"{{url}}\">Kommentar hinzufügen</a> (um den Anfragensteller oder andere Nutzern zu unterstützen)"
-msgid "<a href=\"%s\">details</a>"
-msgstr "<a href=\"%s\">Details</a>"
-
-msgid "<a href=\"%s\">what's that?</a>"
-msgstr "<a href=\"%s\">Was ist das?</a>"
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
+msgstr "<a href=\"{{url}}\">Melden Sie sich an,</a> um Ihr Passwort und weitere Einstellungen zu ändern (auschließlich {{user_name}})"
msgid "<p>All done! Thank you very much for your help.</p><p>There are <a href=\"{{helpus_url}}\">more things you can do</a> to help {{site_name}}.</p>"
msgstr "<p>Fertig! Ganz herzlichen Dank für Ihre Hilfe.</p><p>Es gibt <a href=\"{{helpus_url}}\">noch mehr womit Sie uns helfen können</a>{{site_name}}.</p>"
@@ -189,9 +159,6 @@ msgstr "<p>Vielen Dank! Wir hoffen Sie müssen nicht zu lange warten.</p> <p>Nac
msgid "<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>"
msgstr "<p>Vielen Dank! Hoffentlich mussten Sie nicht zu lange warten.</p><p>Sie sollten innerhalb {{late_number_of_days}} Tagen eine Antwort erhalten, oder eine Nachricht, dass es länger dauern kann (<a href=\"{{review_url}}\">Details</a>).</p>"
-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 "<p>Vielen Dank! Wir überprüfen das Problem und werden versuchen es zu beheben.</p><p>Sollte es sich um einen Übertragungsfehler gehandelt haben und Sie können eine aktuelle IFG Email-Adresse dieser Behörde finden, teilen Sie uns diese bitte mit Hilfe des unten angezeigten Formulars mit.</p>"
-
msgid "<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>"
msgstr ""
@@ -216,11 +183,11 @@ msgstr "<p>Wir freuen uns, dass Sie die von Ihnen gewünschten Informationen erh
msgid "<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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 "<p>Wir freuen uns, dass Sie die von Ihnen gewünschten Informationen erhalten haben. Falls Sie {{site_name}} hilfreich fanden, <a href=\"{{donation_url}}\">senden Sie eine Spende</a>an die Organisation hinter dieser Seite.</p><p>Falls Sie versuchen möchten den Rest der Information zu erhalten, schauen Sie hier was Sie tun können.</p>"
-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 "<p> Es ist nicht erfoderlich Ihre Emailadresse in der Anfrage zu nennen, um eine Antwort zu erhalten (<a href=\"%s\">Details</a>).</p>"
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
+msgstr "<p> Es ist nicht erfoderlich Ihre Emailadresse in der Anfrage zu nennen, um eine Antwort zu erhalten (<a href=\"{{url}}\">Details</a>).</p>"
-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 "<p>Um eine Antwort zu erhalten, müssen Sie Ihre Email-Adresse nicht in Ihre Anfrage einfügen, da wir diese auf der folgenden Seite erfragen werden (<a href=\"%s\">Details</a>).</p>"
+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=\"{{url}}\">details</a>).</p>"
+msgstr "<p>Um eine Antwort zu erhalten, müssen Sie Ihre Email-Adresse nicht in Ihre Anfrage einfügen, da wir diese auf der folgenden Seite erfragen werden (<a href=\"{{url}}\">Details</a>).</p>"
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 "<p>Ihre Anfrage enthält eine <strong>Postleitzahl</strong>. Sollte diese nicht unmittelbar in Zusammenhang mit Ihrer Anfrage stehen, empfehlen wir diese zu entfern en, da diese ansonsten<strong>im Internet veröffentlicht wird </strong>.</p>"
@@ -234,15 +201,10 @@ msgstr "<p>{{site_name}} wird gerade überarbeitet. Sie können ausschließlich
msgid "<small>If you use web-based email or have \"junk mail\" filters, also check your\\nbulk/spam mail folders. Sometimes, our messages are marked that way.</small>\\n</p>"
msgstr "Sollten Sie eine webbasierten Emailanbieter oder ´Junk-mail´ Filter nutzen, prüfen Sie Ihren Spamordner. Es kommt vor, dass unsere Nachrichten dort landen. "
-msgid "<span id='follow_count'>%d</span> person is following this authority"
-msgid_plural "<span id='follow_count'>%d</span> people are following this authority"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
+msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
msgstr ""
"<strong> Kann ich Informationen zu meiner eigenen Person anfragen?</strong>\n"
-"<span class=\"whitespace other\" title=\"Tab\">»</span><span class=\"whitespace other\" title=\"Tab\">»</span><span class=\"whitespace other\" title=\"Tab\">»</span><a href=\"%s\">Nein! (Weitere Informationen)</a>"
+"<span class=\"whitespace other\" title=\"Tab\">»</span><span class=\"whitespace other\" title=\"Tab\">»</span><span class=\"whitespace other\" title=\"Tab\">»</span><a href=\"{{url}}\">Nein! (Weitere Informationen)</a>"
msgid "<strong><code>commented_by:tony_bowden</code></strong> to search annotations made by Tony Bowden, typing the name as in the URL."
msgstr "<strong><code>kommentiert_durch:tony_bowden</code></strong> um Kommentare von Tony Bowden zu suche, den Namen wie in der URL eingebend."
@@ -304,8 +266,8 @@ msgstr ""
"<strong>Note:</strong>\n"
" Es wird eine Email an Ihre neue Emailadresse versendet. Folgen Sie den darin angegebenen Schritten, um die Änderung Ihrer Emailadresse zu bestätigen."
-msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"%s\">click here</a>."
-msgstr "<strong>Privacy note:</strong> Falls Sie Informationen zu Ihrer eingenen Person erfragen wollen <a href=\"%s\">Klicken Sie hier</a>."
+msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"{{url}}\">click here</a>."
+msgstr "<strong>Privacy note:</strong> Falls Sie Informationen zu Ihrer eingenen Person erfragen wollen <a href=\"{{url}}\">Klicken Sie hier</a>."
msgid "<strong>Privacy note:</strong> Your photo will be shown in public on the Internet,\\n wherever you do something on {{site_name}}."
msgstr ""
@@ -346,6 +308,9 @@ msgstr "Antwort wird <strong>postalisch</strong> zugestellt"
msgid "A strange reponse, required attention by the {{site_name}} team"
msgstr "Eine merkwürdige Antwort benötigte die Aufmerksamkeit des {{site_name}} Teams"
+msgid "A vexatious request"
+msgstr ""
+
msgid "A {{site_name}} user"
msgstr "Ein/Eine {{site_name}} Benutzer/in"
@@ -355,6 +320,15 @@ msgstr "Zu Ihrer Person:"
msgid "Act on what you've learnt"
msgstr "Handel aus Deinen Erfahrungen"
+msgid "Acts as xapian/acts as xapian job"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Action"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Model"
+msgstr ""
+
msgid "Add an annotation"
msgstr "Fügen Sie einee Anmerkung bei"
@@ -435,13 +409,22 @@ msgstr ""
msgid "Anyone:"
msgstr "Jedermann:"
+msgid "Applies to"
+msgstr ""
+
+msgid "Are we missing a public authority?"
+msgstr ""
+
+msgid "Are you the owner of any commercial copyright on this page?"
+msgstr "Halten Sie die Urheberrechte dieser Seite?"
+
msgid "Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries."
msgstr "Fragen Sie nach <strong>spezifischen</strong> Dokumenten oder Informationen. Diese Seite ist nicht für generelle Anfragen vorgesehen. "
-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>)."
+msgid "At the bottom of this page, write a reply to them trying to persuade them to scan it in\\n (<a href=\"{{url}}\">more details</a>)."
msgstr ""
"Am Ende der Seite können Sie eine Antwort mit der Aufforderung das Dokument einzuscannen senden\n"
-" (<a href=\"%s\">weitere Details</a>)."
+" (<a href=\"{{url}}\">weitere Details</a>)."
msgid "Attachment (optional):"
msgstr "Anhang (freiwillig)"
@@ -476,6 +459,12 @@ msgstr "Nach gesetzlicher Vorschrift sollte {{public_body_link}} Ihnen inzwische
msgid "By law, {{public_body_link}} should normally have responded <strong>promptly</strong> and"
msgstr "Nach gesetzlicher Vorschrift sollte {{public_body_link}} <strong>umgehend</strong> geantwortet haben und"
+msgid "Calculated home page"
+msgstr ""
+
+msgid "Can't find the one you want?"
+msgstr "Gewünschte Behörde nicht gefunden?"
+
msgid "Cancel a {{site_name}} alert"
msgstr "Benachrichtigung für {{site_name}} abbestellen"
@@ -641,9 +630,15 @@ msgstr "<strong>Antwort</strong> von {{public_body_link}} wird erwartet. Sie sol
msgid "Date:"
msgstr "Datum:"
+msgid "Dear {{name}},"
+msgstr ""
+
msgid "Dear {{public_body_name}},"
msgstr "Sehr geehrte / Sehr geehrter {{public_body_name}},"
+msgid "Default locale"
+msgstr ""
+
msgid "Delayed response to your FOI request - "
msgstr ""
@@ -653,6 +648,9 @@ msgstr "Verzögert."
msgid "Delivery error"
msgstr "Übertragungsfehler"
+msgid "Destroy {{name}}"
+msgstr ""
+
msgid "Details of request '"
msgstr "Anfragedetails"
@@ -667,6 +665,9 @@ msgstr ""
msgid "Disclosure log"
msgstr ""
+msgid "Disclosure log URL"
+msgstr ""
+
msgid "Don't want to address your message to {{person_or_body}}? You can also write to:"
msgstr "Möchten Sie Ihre Nachricht nicht an {{person_or_body}} senden? Schreiben Sie alternativ an:"
@@ -685,14 +686,14 @@ msgstr "Originalanhang herunterladen"
msgid "EIR"
msgstr ""
+msgid "Edit"
+msgstr ""
+
msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
msgstr ""
"Bearbeiten Sie Ihre Anfrage und fügen Sie <strong>weitere Details</strong> hinzu,\n"
" explaining why you are dissatisfied with their response."
-msgid "Edit language version:"
-msgstr "Sprachauswahl ändern:"
-
msgid "Edit text about you"
msgstr "Profiltext ändern"
@@ -714,7 +715,7 @@ msgstr "Informieren Sie mich über zukünftige Aktualisierungen zu dieser Anfrag
msgid "Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>"
msgstr "Trennen Sie Ihre Suchbegriffen durch Leerzeichen"
-msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"%s\">contact us</a> if you need more)."
+msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"{{url}}\">contact us</a> if you need more)."
msgstr ""
msgid "Environmental Information Regulations"
@@ -732,15 +733,18 @@ msgstr "Verlaufsübersicht"
msgid "Event history details"
msgstr "Details Verlaufsübersicht"
-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>)."
+msgid "Event {{id}}"
msgstr ""
-"Jegliche auf dieser Seite eingegebene Information wird\n"
-" permanent auf dieser Internetseite <strong>veröffentlicht</strong>(<a href=\"%s\"> Warum?</a>)."
-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>)."
+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=\"{{url}}\">why?</a>)."
msgstr ""
"Jegliche auf dieser Seite eingegebene Information, inklusive <strong>Ihrem Namen</strong>, ⏎ wird\n"
-" permanent auf dieser Internetseite <strong>veröffentlicht</strong>(<a href=\"%s\"> Warum?</a>)."
+" permanent auf dieser Internetseite <strong>veröffentlicht</strong>(<a href=\"{{url}}\"> Warum?</a>)."
+
+msgid "Everything that you enter on this page\\n will be <strong>displayed publicly</strong> on\\n this website forever (<a href=\"{{url}}\">why?</a>)."
+msgstr ""
+"Jegliche auf dieser Seite eingegebene Information wird\n"
+" permanent auf dieser Internetseite <strong>veröffentlicht</strong>(<a href=\"{{url}}\"> Warum?</a>)."
msgid "FOI"
msgstr ""
@@ -748,6 +752,9 @@ msgstr ""
msgid "FOI email address for {{public_body}}"
msgstr "IFG-Emailadresse für {{public_body}}"
+msgid "FOI request – {{title}}"
+msgstr ""
+
msgid "FOI requests"
msgstr "IFG-Anfrage"
@@ -763,13 +770,13 @@ msgstr ""
msgid "Failed to convert image to a PNG"
msgstr "Konnte Bild nicht in ein PNG konvertieren"
-msgid "Failed to convert image to the correct size: at %{cols}x%{rows}, need %{width}x%{height}"
-msgstr "Konnte Bild nicht in die richtige Größe umwandeln: %{cols} x %{rows}, brauche %{width} x %{height}"
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
+msgstr "Konnte Bild nicht in die richtige Größe umwandeln: {{cols}} x {{rows}}, brauche {{width}} x {{height}}"
msgid "Filter"
msgstr ""
-msgid "First, type in the <strong>name of the UK public authority</strong> you'd \\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"%s#%s\">why?</a>)."
+msgid "First, type in the <strong>name of the UK public authority</strong> you'd\\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "Foi attachment"
@@ -850,8 +857,8 @@ msgstr "Aus unbekannten Gründen ist es nicht möglich eine Anfrage a diese Beh
msgid "Forgotten your password?"
msgstr "Passwort vergessen?"
-msgid "Found %d public authority %s"
-msgid_plural "Found %d public authorities %s"
+msgid "Found {{count}} public authority {{description}}"
+msgid_plural "Found {{count}} public authorities {{description}}"
msgstr[0] ""
msgstr[1] ""
@@ -888,8 +895,8 @@ msgstr "IFG-Anfrage an"
msgid "From"
msgstr ""
-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 "Von der Anfragen-Seite, versuchen Sie direkt auf spezifische Nachrichten zu reagieren anstall eine generelle Nachfrage zu senden. Falls Sie eine generelle Nachfrage stellen müssen und eine Emailadresse kennen, welche an die richtige Stelle geht, sind Sie so freundlich uns <a href=\"%s\">diese zu senden. "
+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=\"{{url}}\">send it to us</a>."
+msgstr "Von der Anfragen-Seite, versuchen Sie direkt auf spezifische Nachrichten zu reagieren anstall eine generelle Nachfrage zu senden. Falls Sie eine generelle Nachfrage stellen müssen und eine Emailadresse kennen, welche an die richtige Stelle geht, sind Sie so freundlich uns <a href=\"{{url}}\">diese zu senden. "
msgid "From:"
msgstr "Von:"
@@ -900,6 +907,18 @@ msgstr "HINTELASSEN SIE HIER DETAILS ZU IHRER BESCHWERDE"
msgid "Handled by post."
msgstr "Postalisch bearbeitet."
+msgid "Has tag string/has tag string tag"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Model"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Name"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Value"
+msgstr ""
+
msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
msgstr "Hallo! IFG-Anfragen innerhalb von {{country_name}} können Sie hier stellen: {{link_to_website}} "
@@ -918,6 +937,9 @@ msgstr ""
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 "Hallo! Wir brauchen Ihre Hilfe. Die Person, welche die folgende Anfrage gestellt hat, hat uns nicht mitgeteilt ob diese erfolgreich war. Wäre es okaz für Sie sich einen Moment Zeit zu nehmen, um die Anfrage zu lesen und uns somit zu helfen die Zeite für jedermann aktuell zu halten?"
+msgid "Hide request"
+msgstr ""
+
msgid "Holiday"
msgstr ""
@@ -930,6 +952,9 @@ msgstr "Holiday|Description"
msgid "Home"
msgstr "Home"
+msgid "Home page"
+msgstr ""
+
msgid "Home page of authority"
msgstr "Offizielle Homepage der Behörde"
@@ -980,27 +1005,36 @@ msgstr "Angefragte Information <strong> teilweise erhalten </strong>"
msgid "I've received an <strong>error message</strong>"
msgstr "Fehlerhafte Information <strong>erhalten</strong>"
-msgid "If the address is wrong, or you know a better address, please <a href=\"%s\">contact us</a>."
-msgstr "Sollte die Adresse falsch sein oder sollten Sie eine bessere Adresse kennen, so <a href=\"%s\">kontaktieren Sie uns</a>bitte."
+msgid "I've received an error message"
+msgstr ""
+
+msgid "Id"
+msgstr ""
+
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Sollte die Adresse falsch sein oder sollten Sie eine bessere Adresse kennen, so <a href=\"{{url}}\">kontaktieren Sie uns</a>bitte."
+
+msgid "If the error was a delivery failure, and you can find an up to date FOI email address for the authority, please tell us using the form below."
+msgstr ""
msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
msgstr ""
"Falls dies falsch ist oder Sie eine späte Antwort auf diese Anfrage oder zu einem anderen Thema an {{user}} senden möchten, dann mailen Sie bitte\n"
" {{contact_email}} ffür weitere Hilfe."
-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 "Sollten Sie mit den erhaltenen Informationen nicht zufrieden sein, haben Sie das Recht eine Beschwerde einzureichen (<a href=\"%s\">Details</a>)."
+msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"{{url}}\">details</a>)."
+msgstr "Sollten Sie mit den erhaltenen Informationen nicht zufrieden sein, haben Sie das Recht eine Beschwerde einzureichen (<a href=\"{{url}}\">Details</a>)."
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
-msgstr "Sollten weiterhin Probleme bestehen, bitte <a href=\"%s\">kontaktieren Sie uns</a>."
+msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Sollten weiterhin Probleme bestehen, bitte <a href=\"{{url}}\">kontaktieren Sie uns</a>."
-msgid "If you are the requester, then you may <a href=\"%s\">sign in</a> to view the request."
-msgstr "Falls Sie der Antragsteller sind, <a href=\"%s\">loggen Sie sich ein</a>, um die Anfrage anzusehen."
+msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request."
+msgstr "Falls Sie der Antragsteller sind, <a href=\"{{url}}\">loggen Sie sich ein</a>, um die Anfrage anzusehen."
-msgid "If you are thinking of using a pseudonym,\\n please <a href=\"%s\">read this first</a>."
+msgid "If you are thinking of using a pseudonym,\\n please <a href=\"{{url}}\">read this first</a>."
msgstr ""
"Wenn Sie ein Pseudonym als Benutzername verwenden möchten,\n"
-" bitte <a href=\"%s\">lesen Sie hier</a>."
+" bitte <a href=\"{{url}}\">lesen Sie hier</a>."
msgid "If you are {{user_link}}, please"
msgstr "Wenn Sie {{user_link}} sind, bitte"
@@ -1043,6 +1077,9 @@ msgstr "Falls Sie {{site_name}} zuvor genutzt haben"
msgid "If your browser is set to accept cookies and you are seeing this message,\\nthen there is probably a fault with our server."
msgstr "Sollte Ihr Browser Cookies zulassen und Sie trotzdem diese Nachricht erhalten, gibt es wahrscheinlich ein Problem mit unserem Server."
+msgid "Incoming email address"
+msgstr ""
+
msgid "Incoming message"
msgstr ""
@@ -1159,14 +1196,20 @@ msgstr "Möglicherweise blockiert Ihr Browser keine sogenannten ´Cookies´. Bit
msgid "Items matching the following conditions are currently displayed on your wall."
msgstr ""
+msgid "Items sent in last month"
+msgstr ""
+
msgid "Joined in"
msgstr "Angemeldet"
msgid "Joined {{site_name}} in"
msgstr "{{site_name}} beigetreten am"
-msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)."
-msgstr "Machen Sie es <strong>kurz und bündig</strong>, die Wahrscheinlichkeit die gewünschten Informationen zu erhalten ist somit größer(<a href=\"%s\">Warum?</a>)."
+msgid "Just one more thing"
+msgstr ""
+
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
+msgstr "Machen Sie es <strong>kurz und bündig</strong>, die Wahrscheinlichkeit die gewünschten Informationen zu erhalten ist somit größer(<a href=\"{{url}}\">Warum?</a>)."
msgid "Keywords"
msgstr "Stichwörter"
@@ -1183,9 +1226,27 @@ msgstr "Teilen Sie uns mit bei welchem Vorgang diese Nachricht angezeigt wurde,
msgid "Link to this"
msgstr "Link erstellen"
+msgid "List all"
+msgstr ""
+
msgid "List of all authorities (CSV)"
msgstr "Liste aller Behörden (CSV)"
+msgid "Listing FOI requests"
+msgstr ""
+
+msgid "Listing public authorities"
+msgstr ""
+
+msgid "Listing public authorities matching '{{query}}'"
+msgstr ""
+
+msgid "Listing tracks"
+msgstr ""
+
+msgid "Listing users"
+msgstr ""
+
msgid "Log in to download a zip file of {{info_request_title}}"
msgstr "Melden Sie sich an, um eine Zip-Datei von {{info_request_title}} herunterzuladen"
@@ -1284,6 +1345,9 @@ msgstr "Benutzername vergeben"
msgid "New Freedom of Information requests"
msgstr "Neue IFG-Anfragen"
+msgid "New censor rule"
+msgstr ""
+
msgid "New e-mail:"
msgstr "Neue Email:"
@@ -1329,6 +1393,9 @@ msgstr "Keine Ergebnisse gefunden."
msgid "No similar requests found."
msgstr "Keine vergleichbaren Anfragen gefunden. "
+msgid "No tracked things found."
+msgstr ""
+
msgid "Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet."
msgstr "Bisher hat niemand eine Anfrage an {{public_body_name}} über diese Seite gestellt."
@@ -1338,6 +1405,9 @@ msgstr "Keine gefunden."
msgid "None made."
msgstr "Keine gestellt."
+msgid "Not a valid FOI request"
+msgstr ""
+
msgid "Note that the requester will not be notified about your annotation, because the request was published by {{public_body_name}} on their behalf."
msgstr ""
@@ -1383,6 +1453,9 @@ msgstr "Eine Person gefunden"
msgid "One public authority found"
msgstr "Eine Behörde gefunden"
+msgid "Only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL – don't worry about breaking URLs through renaming, as the history is used to redirect"
+msgstr ""
+
msgid "Only requests made using {{site_name}} are shown."
msgstr "Es werden ausschliesslich Anfragen zu folgendem Sucheintrag angezeigt: {{site_name}} "
@@ -1455,8 +1528,8 @@ msgstr "Helfen Sie uns ausstehende Anfragen zu kategorisieren!"
msgid "Please"
msgstr "Bitte"
-msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
-msgstr "Bitte<a href=\"%s\">nehmen Sie Kontakt mit uns auf</a>, damit wir das Problem beheben können. "
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
+msgstr "Bitte<a href=\"{{url}}\">nehmen Sie Kontakt mit uns auf</a>, damit wir das Problem beheben können. "
msgid "Please <strong>answer the question above</strong> so we know whether the "
msgstr "Bitte <strong>beantworten Sie die oben angezeigte Frage</strong>, damit wir wissen ob"
@@ -1563,8 +1636,8 @@ msgstr "Bitte fragen Sie ausschliesslich auf diese Kategorien zutreffende Inform
msgid "Please select each of these requests in turn, and <strong>let everyone know</strong>\\nif they are successful yet or not."
msgstr "Bitte wählen Sie diese Anfragen der Reihe nach aus und <strong>lassen Sie jederman wissen</strong>, ob sie bereits erfolgreich waren oder noch nicht. "
-msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature"
-msgstr "Bitte unterschreiben Sie unten mit Ihrem Namen oder ändern Sie Ihre \"% {signoff}\" Signatur"
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
+msgstr "Bitte unterschreiben Sie unten mit Ihrem Namen oder ändern Sie Ihre \"{{signoff}}\" Signatur"
msgid "Please sign in as "
msgstr "Anmelden als"
@@ -1575,9 +1648,6 @@ msgstr ""
msgid "Please type a message and/or choose a file containing your response."
msgstr "Bitte geben Sie eine Nachricht ein und / oder wählen Sie eine Datei aus, welche Ihre Antwort enthält"
-msgid "Please use the form below to tell us more."
-msgstr "Bitte nutzen Sie das Formular, um uns ausführlicher zu informieren. "
-
msgid "Please use this email address for all replies to this request:"
msgstr "Bitte nutzen Sie diese Emailadresse für alle Antworten auf diese Anfrage:"
@@ -1668,37 +1738,19 @@ msgstr "Behörden - {{description}}"
msgid "Public authorities {{start_count}} to {{end_count}} of {{total_count}}"
msgstr "Behörde {{start_count}} bis {{end_count}} von {{total_count}}"
-msgid "Public body"
-msgstr ""
-
-msgid "Public body/translation"
-msgstr ""
-
-msgid "PublicBody::Translation|Disclosure log"
+msgid "Public authority – {{name}}"
msgstr ""
-msgid "PublicBody::Translation|First letter"
-msgstr ""
-
-msgid "PublicBody::Translation|Locale"
-msgstr ""
-
-msgid "PublicBody::Translation|Name"
-msgstr ""
-
-msgid "PublicBody::Translation|Notes"
-msgstr ""
-
-msgid "PublicBody::Translation|Publication scheme"
+msgid "Public body"
msgstr ""
-msgid "PublicBody::Translation|Request email"
+msgid "Public notes"
msgstr ""
-msgid "PublicBody::Translation|Short name"
+msgid "Public page"
msgstr ""
-msgid "PublicBody::Translation|Url name"
+msgid "Public page not available"
msgstr ""
msgid "PublicBody|Api key"
@@ -1746,6 +1798,9 @@ msgstr "Behörde|Version"
msgid "Publication scheme"
msgstr "Veröffentlichungsschema"
+msgid "Publication scheme URL"
+msgstr ""
+
msgid "Purge request"
msgstr ""
@@ -1803,6 +1858,9 @@ msgstr "Interne Prüfung anfragen"
msgid "Request an internal review from {{person_or_body}}"
msgstr "Interne Prüfung von {{person_or_body}} anfragen"
+msgid "Request email"
+msgstr ""
+
msgid "Request has been removed"
msgstr "Anfrage wurde verweigert"
@@ -1896,14 +1954,17 @@ msgstr ""
msgid "Search the site to find what you were looking for."
msgstr "Duchsuchen Sie die Seite, um die von Ihnen gewünschten Informationen zu finden. "
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
-msgstr[0] "Suchen Sie in den %d an %s gestellten IFG-Anfragen"
-msgstr[1] "Suchen Sie in den %d an %s gestellten IFG-Anfragen"
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests made to {{public_body_name}}"
+msgstr[0] "Suchen Sie in den {{count}} an {{public_body_name}} gestellten IFG-Anfragen"
+msgstr[1] "Suchen Sie in den {{count}} an {{public_body_name}} gestellten IFG-Anfragen"
msgid "Search your contributions"
msgstr "Suchen Sie Ihre Beiträge"
+msgid "See bounce message"
+msgstr ""
+
msgid "Select one to see more information about the authority."
msgstr "Wählen Sie eine aus, um mehr Informationen über diese Behörde sehen zu können. "
@@ -1937,6 +1998,9 @@ msgstr "Anfrage senden"
msgid "Set your profile photo"
msgstr "Profilbild wählen"
+msgid "Short name"
+msgstr ""
+
msgid "Short name is already taken"
msgstr "Nutzername bereits vergeben "
@@ -2032,6 +2096,9 @@ msgstr "Senden"
msgid "Submit status"
msgstr "Status senden"
+msgid "Submit status and send message"
+msgstr ""
+
msgid "Subscribe to blog"
msgstr "Blog folgen"
@@ -2053,6 +2120,9 @@ msgstr "Statusliste"
msgid "Table of varieties"
msgstr ""
+msgid "Tags"
+msgstr ""
+
msgid "Tags (separated by a space):"
msgstr "Tags (mit Leerzeichen getrennt):"
@@ -2080,6 +2150,9 @@ msgstr "Vielen Dank für die Aktualisierung dieser Anfrage!"
msgid "Thank you for updating your profile photo"
msgstr "Vielen Dank für die Aktualisierung Ihres Profilbildes"
+msgid "Thank you! We'll look into what happened and try and fix it up."
+msgstr ""
+
msgid "Thanks for helping - your work will make it easier for everyone to find successful\\nresponses, and maybe even let us make league tables..."
msgstr "Vielen Dank für die Hilfe - Ihre Arbeit wird es für jeden leichter machen erfolgreiche Antworten zu finden und es uns eventuell sogar ermöglichen Ranglisten zu erstellen..."
@@ -2152,18 +2225,18 @@ msgstr "Die Anfrage war <strong>erfolgreich</strong>."
msgid "The request was refused by the public authority"
msgstr "Die Anfrage wurde von der Behörde abgelehnt"
-msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"%s\">contact us</a> if you have any questions."
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
msgstr ""
"Die von Ihnen ausgewählte Anfrage wurde verweigert. Dies kann unterschiedliche Ursachen haben, welche an dieser Stelle leider nicht näher erläutert werden können. Bitte<a\n"
-" href=\"%s\">kontaktieren Sie uns</a> für weitere Fragen. "
+" href=\"{{url}}\">kontaktieren Sie uns</a> für weitere Fragen. "
msgid "The requester has abandoned this request for some reason"
msgstr "Der Anfragensteller hat die Anfrage aus unbekannten Gründen zurückgezogen. "
-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"
+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 "Die Beantwortung auf Ihre Anfrage ist verspätet. Nach gesetzlicher Vorschrift sollte die Behörde unverzüglich geantwortet haben und"
-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"
+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 "The response to your request is <strong>long overdue</strong>. Nach gesetzlicher Vorschrift sollte {{public_body_link}} Ihnen inzwischen unter allen Umständen geantwortet haben. "
msgid "The search index is currently offline, so we can't show the Freedom of Information requests that have been made to this authority."
@@ -2172,6 +2245,9 @@ msgstr "Da die Suchanzeige momentan offline ist, können wir die an diese Behör
msgid "The search index is currently offline, so we can't show the Freedom of Information requests this person has made."
msgstr "Da die Suchanzeige momentan offline ist, können wir durch diese Person gestellten Informationsfreiheitsanfragen gerade leider nicht anzeigen. "
+msgid "The {{site_name}} team."
+msgstr ""
+
msgid "Then you can cancel the alert."
msgstr "Dann können Sie die Statusnachricht abmelden "
@@ -2247,17 +2323,17 @@ msgstr "Dann wird Ihr Kommentar zu {{info_request_title}} gesendet."
msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
msgstr "Es gibt {{count}} neue Anmerkungen zu Ihrer {{info_request}} Anfrage. Folgen Sie dem Link, um diese anzusehen. "
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
-msgstr[0] " %d Person verfolgen diese Anfrage"
-msgstr[1] " %d Personen verfolgen diese Anfrage"
-
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 ""
msgid "There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>."
msgstr ""
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
+msgstr[0] " {{count}} Person verfolgen diese Anfrage"
+msgstr[1] " {{count}} Personen verfolgen diese Anfrage"
+
msgid "There was a <strong>delivery error</strong> or similar, which needs fixing by the {{site_name}} team."
msgstr "Es ist ein <strong>Übermittlungsfehler</strong>oder ähnliches aufgetreten, welcher von unserem {{site_name}} Team repariert werden muss. "
@@ -2294,8 +2370,8 @@ msgstr ""
msgid "This authority no longer exists, so you cannot make a request to it."
msgstr "Diese Behörde existiert nichtmehr. Es ist folglich nicht möglich eine Anfrage zu stellen. "
-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 "Dieser Kommentar wurde verborgen. Sehen Sie die Anmerkungen, um den Grund zu erfahren. Falls Sie diese Anfrage gestellt haben können Sie sich <a href=\"%s\">einloggen</a> um die Antwort zu lesen."
+msgid "This comment has been hidden. See annotations to\\n find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
+msgstr "Dieser Kommentar wurde verborgen. Sehen Sie die Anmerkungen, um den Grund zu erfahren. Falls Sie diese Anfrage gestellt haben können Sie sich <a href=\"{{url}}\">einloggen</a> um die Antwort zu lesen."
msgid "This covers a very wide spectrum of information about the state of\\n the <strong>natural and built environment</strong>, such as:"
msgstr ""
@@ -2314,11 +2390,14 @@ msgstr ""
"Die Ursache ist der veraltete Status dieser Anfrage {{title}}, \n"
"welche keine weiteren Antworten erhalten kann."
+msgid "This is the first version."
+msgstr ""
+
msgid "This is your own request, so you will be automatically emailed when new responses arrive."
msgstr "Dies ist Ihre eigene Anfrage. Sie erhalten eine automatische Emailbenachrichtigung, sobald Ihre Anfrage beantwortet wird. "
-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 "Dieser Kommentar wurde verborgen. Sehen Sie die Anmerkungen, um den Grund zu erfahren. Falls Sie diese Anfrage gestellt haben können Sie sich <a href=\"%s\">einloggen</a> um die Antwort zu lesen."
+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=\"{{url}}\">sign in</a> to view the response."
+msgstr "Dieser Kommentar wurde verborgen. Sehen Sie die Anmerkungen, um den Grund zu erfahren. Falls Sie diese Anfrage gestellt haben können Sie sich <a href=\"{{url}}\">einloggen</a> um die Antwort zu lesen."
msgid "This particular request is finished:"
msgstr "Diese Anfrage wurde abgeschlossen:"
@@ -2326,19 +2405,19 @@ msgstr "Diese Anfrage wurde abgeschlossen:"
msgid "This person has made no Freedom of Information requests using this site."
msgstr "Diese Person hat eine Informationsfreiheits-Anfrage über diese Seite gestellt. "
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
-msgstr[0] " %d Informationsfreiheitsanfragen dieses Benutzers / dieser Benutzerin"
-msgstr[1] " %d Informationsfreiheitsanfragen dieses Benutzers / dieser Benutzerin"
-
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
-msgstr[0] "Die %d Anmerkung dieser Person"
-msgstr[1] "Die %d Anmerkungen dieser Person"
-
msgid "This person's annotations"
msgstr "Die Anmerkungen dieser Person"
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
+msgstr[0] " {{count}} Informationsfreiheitsanfragen dieses Benutzers / dieser Benutzerin"
+msgstr[1] " {{count}} Informationsfreiheitsanfragen dieses Benutzers / dieser Benutzerin"
+
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
+msgstr[0] "Die {{count}} Anmerkung dieser Person"
+msgstr[1] "Die {{count}} Anmerkungen dieser Person"
+
msgid "This request <strong>requires administrator attention</strong>"
msgstr "Diese Anfrage <strong>müsste einmal überprüft werden</strong>"
@@ -2362,7 +2441,7 @@ msgstr ""
"Diese Anfrage wurde von dem/der Anfrageninhaber/in <strong>zurückgezogen</strong>. \n"
" <span class=\"whitespace other\" title=\"Tab\">»</span> Sie können evt. eine Begründung im unten angefügten Kommunikationsverlauf finden."
-msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"%s\">contact us</a>."
+msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
msgid "This request has been reported for administrator attention"
@@ -2377,19 +2456,22 @@ msgstr "Diese Anfrage erhielt eine ungewöhnliche Antwort und müsste einmal dur
msgid "This request has prominence 'hidden'. You can only see it because you are logged\\n in as a super user."
msgstr "Diese Anfrage ist verborgen. Sie können sie nur sehen weil Sie als Supernutzer eingeloggt sind. "
-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."
+msgid "This request is hidden, so that only you the requester can see it. Please\\n <a href=\"{{url}}\">contact us</a> if you are not sure why."
msgstr ""
"Diese Anfrage ist verborgen, so dass ausschliesslich Sie als Nutzer sie sehen können. \n"
-"Bitte⏎ <a href=\"%s\">kontaktieren Sie us</a> falls Sie nicht wissen warum."
+"Bitte⏎ <a href=\"{{url}}\">kontaktieren Sie us</a> falls Sie nicht wissen warum."
msgid "This request is still in progress:"
msgstr "Diese Anfrage ist noch in Bearbeitung"
+msgid "This request requires administrator attention"
+msgstr ""
+
msgid "This request was not made via {{site_name}}"
msgstr ""
-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 "Dieser Kommentar wurde verborgen. Sehen Sie die Anmerkungen, um den Grund zu erfahren. Falls Sie diese Anfrage gestellt haben können Sie sich <a href=\"%s\">anmelden</a> um die Antwort zu lesen."
+msgid "This response has been hidden. See annotations to find out why.\\n If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
+msgstr "Dieser Kommentar wurde verborgen. Sehen Sie die Anmerkungen, um den Grund zu erfahren. Falls Sie diese Anfrage gestellt haben können Sie sich <a href=\"{{url}}\">anmelden</a> um die Antwort zu lesen."
msgid "This table shows the technical details of the internal events that happened\\nto this request on {{site_name}}. This could be used to generate information about\\nthe speed with which authorities respond to requests, the number of requests\\nwhich require a postal response and much more."
msgstr ""
@@ -2547,10 +2629,10 @@ msgstr "Unerwartetes Suchergebnis"
msgid "Unexpected search result type "
msgstr "Unerwartetes Suchergebnis"
-msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"%s\">contact us</a> to sort it out."
+msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"{{url}}\">contact us</a> to sort it out."
msgstr ""
"Leider ist uns die IFG-Emailadresse dieser Behörde nicht bekannt, somit können wir dies nicht bestätigen.\n"
-"Bitte <a href=\"%s\">kontaktieren Sie uns</a> zur Klärung der Angelegenheit."
+"Bitte <a href=\"{{url}}\">kontaktieren Sie uns</a> zur Klärung der Angelegenheit."
msgid "Unfortunately, we do not have a working {{info_request_law_used_full}}\\naddress for"
msgstr "Wir haben leider keine funktionierende Email-Adresse für {{info_request_law_used_full}}"
@@ -2585,6 +2667,9 @@ msgstr ""
msgid "User info request sent alert"
msgstr ""
+msgid "User – {{name}}"
+msgstr ""
+
msgid "UserInfoRequestSentAlert|Alert type"
msgstr "UserInfoRequestSentAlert|Alert type"
@@ -2639,6 +2724,9 @@ msgstr "User|Salt"
msgid "User|Url name"
msgstr "Benutzer|URL Name"
+msgid "Version {{version}}"
+msgstr ""
+
msgid "View FOI email address"
msgstr "IFG-Emailadressen ansehen"
@@ -2678,6 +2766,12 @@ msgstr "Antwort der Behörde wird erwartet"
msgid "Was the response you got to your FOI request any good?"
msgstr ""
+msgid "We consider it is not a valid FOI request, and have therefore hidden it from other users."
+msgstr ""
+
+msgid "We consider it to be vexatious, and have therefore hidden it from other users."
+msgstr ""
+
msgid "We do not have a working request email address for this authority."
msgstr "Für diese Behörde ist keine funktionierende Emailadresse zur Anfragenstellung verfügbar. "
@@ -2690,8 +2784,8 @@ msgstr ""
" &ndash;\n"
"<span class=\"whitespace other\" title=\"Tab\">»</span>falls Sie {{user_link}} sind, bitte <a href=\"{{url}}\">melden Sich an</a> und lassen es uns wissen. "
-msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"%s\">details</a>). "
-msgstr "Ohne Ihre Zustimmung oder gesetzliche Vorschrift werden wir Ihre Email-Adresse zu keinem Zeitpunkt veröffentlichen. (<a href=\"%s\">details</a>) "
+msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"{{url}}\">details</a>). "
+msgstr "Ohne Ihre Zustimmung oder gesetzliche Vorschrift werden wir Ihre Email-Adresse zu keinem Zeitpunkt veröffentlichen. (<a href=\"{{url}}\">details</a>) "
msgid "We will not reveal your email address to anybody unless you\\nor the law tell us to."
msgstr "Wir werden Ihre Emailadresse nicht veröffentlichen, sofern nicht von Ihnen freigegeben oder gesetzlich vorgeschrieben. "
@@ -2732,8 +2826,8 @@ msgstr "Wenn Sie dort hinkommen, aktualisieren Sie bitte den Status indem Sie un
msgid "When you receive the paper response, please help\\n others find out what it says:"
msgstr "Wenn Sie die gedruckte Antwort erhalten, machen Sie den Inhalt bitte für andere Nutzer zugänglich"
-msgid "When you're done, <strong>come back here</strong>, <a href=\"%s\">reload this page</a> and file your new request."
-msgstr "Wenn Sie fertig sind, <strong>kommen Sie hierher zurück</strong>, <a href=\"%s\">laden Sie die Seite erneut</a> und stellen Sie Ihre neue Anfrage."
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
+msgstr "Wenn Sie fertig sind, <strong>kommen Sie hierher zurück</strong>, <a href=\"{{url}}\">laden Sie die Seite erneut</a> und stellen Sie Ihre neue Anfrage."
msgid "Which of these is happening?"
msgstr "Welcher dieser Aspekte ist zutreffend?"
@@ -2836,8 +2930,8 @@ msgstr "Sie kennen die Ursache des Fehlers und können eine <strong>Lösung anbi
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 ""
-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 "Es ist mögliche eine auf deren Internetseite zu finden oder sie telefonisch zu erfragen. Sollten Sie sie herausfinden, <a href=\"%s\">senden sie sie uns bitte zu</a>."
+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=\"{{url}}\">send it to us</a>."
+msgstr "Es ist mögliche eine auf deren Internetseite zu finden oder sie telefonisch zu erfragen. Sollten Sie sie herausfinden, <a href=\"{{url}}\">senden sie sie uns bitte zu</a>."
msgid "You may be able to find\\none on their website, or by phoning them up and asking. If you manage\\nto find one, then please <a href=\"{{help_url}}\">send it to us</a>."
msgstr "Sie können eventuell eine auf deren Internetseite finden, oder sie anrufen und nachfragen. Sollten Sie eine herausfinden, freuen wir uns über Ihre <a href=\"{{help_url}}\">Zusendung</a>."
@@ -2875,6 +2969,9 @@ msgstr ""
msgid "You will only get an answer to your request if you follow up\\nwith the clarification."
msgstr "Sie können nur eine Antwort auf Ihre Anfrage erhalten wenn Sie mti der Aufklärung fortfahren. "
+msgid "You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further."
+msgstr ""
+
msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
msgstr ""
@@ -2887,22 +2984,12 @@ msgstr ""
msgid "You've now cleared your profile photo"
msgstr "Sie haben Ihr Profilbild nun gelöscht"
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
-msgstr[0] "Ihre %d Informationsfreiheitsanfrage"
-msgstr[1] "Ihre %d Informationsfreiheitsanfragen"
-
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
-msgstr[0] "Ihre %d Anmerkunge"
-msgstr[1] "Ihre %d Anmerkungen"
-
-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>."
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
msgstr ""
"Ihr <strong>Name wird öffentlich</strong> \n"
-" (<a href=\"%s\">warum?</a>)\n"
+" (<a href=\"{{why_url}}\">warum?</a>)\n"
" auf dieser Internetseite und in Suchmaschinen angezeigt.Falls Sie lieber ein Pseudonym nutzen möchten, \n"
-" <a href=\"%s\">lesen Sie erst hier</a>."
+" <a href=\"{{help_url}}\">lesen Sie erst hier</a>."
msgid "Your annotations"
msgstr "Ihre Anmerkungen"
@@ -2913,8 +3000,8 @@ msgstr ""
msgid "Your e-mail:"
msgstr "Ihre Email:"
-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 "Ihre Nachfrage wurde nicht gesendet, da Sie durch unseren Spamfilter gestoppt wurde. Bitte <a href=\"%s\">kontaktieren Sie uns</a> wenn Sie wirklich eine Nachfrage senden möchten. "
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
+msgstr "Ihre Nachfrage wurde nicht gesendet, da Sie durch unseren Spamfilter gestoppt wurde. Bitte <a href=\"{{url}}\">kontaktieren Sie uns</a> wenn Sie wirklich eine Nachfrage senden möchten. "
msgid "Your follow up message has been sent on its way."
msgstr "Ihre Follow-up Nachricht wurde gesendet."
@@ -2937,10 +3024,10 @@ msgstr "Ihre Nachricht wird in <strong>Suchmaschinen</strong> angezeigt werden"
msgid "Your name and annotation will appear in <strong>search engines</strong>."
msgstr "Ihr Name und Ihr Kommentar wird in <strong>Suchmaschinen</strong>.angezeigt werden. "
-msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"%s\">details</a>)."
+msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"{{url}}\">details</a>)."
msgstr ""
"Ihr Name, Ihre Anfrage und alle Antworten werden in <strong>Suchmaschinen</strong> angezeigt werden\n"
-" (<a href=\"%s\">Details</a>)."
+" (<a href=\"{{url}}\">Details</a>)."
msgid "Your name:"
msgstr "Ihr Name:"
@@ -2957,6 +3044,12 @@ msgstr "Ihr Passwort:"
msgid "Your photo will be shown in public <strong>on the Internet</strong>,\\n wherever you do something on {{site_name}}."
msgstr ""
+msgid "Your request '{{request}}' at {{url}} has been reviewed by moderators."
+msgstr ""
+
+msgid "Your request on {{site_name}} hidden"
+msgstr ""
+
msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
msgstr "Ihre Anfrage hat den folgenden Titel: {{info_request}}. Bitte informieren Sie uns, ob Sie die gewünschte Information erhalten. Dies hilft uns die Seite aktuell zu halten."
@@ -2966,12 +3059,22 @@ msgstr "Ihre Anfrage:"
msgid "Your response to an FOI request was not delivered"
msgstr ""
-msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"%s\">read why</a> and answers to other questions."
-msgstr "Ihre Antwort, sowie Antworten auf andere Anfragen wierden <strong>im Internet erscheinen</strong>, <a href=\"%s\">Lesen Sie warum</a>"
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
+msgstr "Ihre Antwort, sowie Antworten auf andere Anfragen wierden <strong>im Internet erscheinen</strong>, <a href=\"{{url}}\">Lesen Sie warum</a>"
msgid "Your thoughts on what the {{site_name}} <strong>administrators</strong> should do about the request."
msgstr "Ihre Meinung zu empfehlenswerten Schritte von {{site_name}} durch die <strong>Administratoren</strong> bzgl. der Anfrage."
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
+msgstr[0] "Ihre {{count}} Informationsfreiheitsanfrage"
+msgstr[1] "Ihre {{count}} Informationsfreiheitsanfragen"
+
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
+msgstr[0] "Ihre {{count}} Anmerkunge"
+msgstr[1] "Ihre {{count}} Anmerkungen"
+
msgid "Your {{site_name}} email alert"
msgstr "Ihr {{site_name}} Email Alarm"
@@ -2981,6 +3084,9 @@ msgstr "Mit freundlichem Gruß, "
msgid "Yours sincerely,"
msgstr "Mit freundlichem Gruß, "
+msgid "Yours,"
+msgstr ""
+
msgid "[FOI #{{request}} email]"
msgstr ""
@@ -3001,6 +3107,9 @@ msgstr ""
msgid "admin"
msgstr "Administration"
+msgid "alaveteli_foi:The software that runs {{site_name}}"
+msgstr ""
+
msgid "all requests"
msgstr "alle Anfragen"
@@ -3034,6 +3143,9 @@ msgstr "alles"
msgid "are long overdue."
msgstr "sind lange überfällig. "
+msgid "at"
+msgstr ""
+
msgid "authorities"
msgstr "Behörden"
@@ -3046,6 +3158,9 @@ msgstr ""
msgid "between two dates"
msgstr "zwischen zwei Datum"
+msgid "but followupable"
+msgstr ""
+
msgid "by"
msgstr "von"
@@ -3067,7 +3182,7 @@ msgstr ""
" Oder Sie könnten Sie anrufen."
msgid "details"
-msgstr ""
+msgstr "Details"
msgid "display_status only works for incoming and outgoing messages right now"
msgstr "Anzeigestatus funktioniert momentan nur für ein- und ausgehende Nachrichten"
@@ -3129,17 +3244,23 @@ msgstr "Nachrichten von Behörden"
msgid "messages from users"
msgstr "Nachrichten von Nutzern"
+msgid "move..."
+msgstr ""
+
msgid "no later than"
msgstr "nicht später als"
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
"besteht nicht mehr. Falls Sie versuchen \n"
-" Von der Anfragen-Seite, versuchen Sie auf spezifische Nachrichten zu Antworten anstatt generelle Nachfragen zu versenden. Wenn Sie eine gnerelle Nachfrage stellen müssen und eine Email-Adresse kennen, die an die richtige Stelle geht, <a href=\"%s\">senden Sie uns diese</a> bitte zu."
+" Von der Anfragen-Seite, versuchen Sie auf spezifische Nachrichten zu Antworten anstatt generelle Nachfragen zu versenden. Wenn Sie eine gnerelle Nachfrage stellen müssen und eine Email-Adresse kennen, die an die richtige Stelle geht, <a href=\"{{url}}\">senden Sie uns diese</a> bitte zu."
msgid "normally"
msgstr "normalerweise"
+msgid "not requestable due to: {{reason}}"
+msgstr ""
+
msgid "please sign in as "
msgstr "Bitte melden Sie sich an als"
@@ -3161,6 +3282,9 @@ msgstr "Nachfrage versenden"
msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
msgstr "gesendet an {{public_body_name}} durch {{info_request_user}} am {{date}}."
+msgid "set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA"
+msgstr ""
+
msgid "show quoted sections"
msgstr ""
@@ -3182,6 +3306,11 @@ msgstr "welche Sie stellten an:"
msgid "the main FOI contact address for {{public_body}}"
msgstr "die Haupt-Kontaktadresse für {{public_body}}"
+#. This phrase completes the following sentences:
+#. Request an internal review from...
+#. Send a public follow up message to...
+#. Send a public reply to...
+#. Don't want to address your message to... ?
msgid "the main FOI contact at {{public_body}}"
msgstr "der Hauptkontakt für {{public_body}}"
@@ -3230,9 +3359,32 @@ msgstr "nützliche Information"
msgid "users"
msgstr "Nutzer"
+msgid "what's that?"
+msgstr "Was ist das?"
+
msgid "{{count}} FOI requests found"
msgstr "{{count}} IFG-Anfragen gefunden"
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] "{{count}} Informationsfreiheitsanfrage an {{public_body_name}}"
+msgstr[1] "{{count}} Informationsfreiheitsanfragen an {{public_body_name}}"
+
+msgid "{{count}} person is following this authority"
+msgid_plural "{{count}} people are following this authority"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
+msgstr[0] "{{count}} Anfrage"
+msgstr[1] "{{count}} Anfragen"
+
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
+msgstr[0] "{{count}} Anfragen gestellt."
+msgstr[1] "{{count}} Anfragen gestellt."
+
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 ""
"{{existing_request_user}} already\n"
@@ -3293,6 +3445,9 @@ msgstr ""
msgid "{{site_name}} users have made {{number_of_requests}} requests, including:"
msgstr "{{site_name}} Benutzer haben {{number_of_requests}} Anfragen gestellt, u.a.:"
+msgid "{{thing_changed}} was changed from <code>{{from_value}}</code> to <code>{{to_value}}</code>"
+msgstr ""
+
msgid "{{title}} - a Freedom of Information request to {{public_body}}"
msgstr ""
diff --git a/locale/en/app.po b/locale/en/app.po
index ca12d79c2..eb31d7a2e 100644
--- a/locale/en/app.po
+++ b/locale/en/app.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: alaveteli\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-12-18 10:11+0000\n"
+"POT-Creation-Date: 2013-05-30 09:46+0100\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"
@@ -20,7 +20,7 @@ msgstr ""
msgid " This will appear on your {{site_name}} profile, to make it\\n easier for others to get involved with what you're doing."
msgstr ""
-msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)"
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
msgstr ""
msgid " (<strong>patience</strong>, especially for large files, it may take a while!)"
@@ -50,7 +50,7 @@ msgstr ""
msgid " Ideas on what <strong>other documents to request</strong> which the authority may hold. "
msgstr ""
-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."
+msgid " If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\\n You may be able to find the address on their website, or by phoning them up and asking."
msgstr ""
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."
@@ -89,21 +89,6 @@ msgstr ""
msgid "\"Hello! We have an <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">important message</a> for visitors outside {{country_name}}\""
msgstr ""
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "%d request"
-msgid_plural "%d requests"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "%d request made."
-msgid_plural "%d requests made."
-msgstr[0] ""
-msgstr[1] ""
-
msgid "'Crime statistics by ward level for Wales'"
msgstr ""
@@ -119,6 +104,9 @@ msgstr ""
msgid "'{{link_to_user}}', a person"
msgstr ""
+msgid "*unknown*"
+msgstr ""
+
msgid ",\\n\\n\\n\\nYours,\\n\\n{{user_name}}"
msgstr ""
@@ -134,31 +122,13 @@ msgstr ""
msgid "3. Now check your request"
msgstr ""
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
msgstr ""
-msgid "<a href=\"%s\">Are we missing a public authority?</a>"
+msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)"
msgstr ""
-msgid "<a href=\"%s\">Are you the owner of\\n any commercial copyright on this page?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
-msgstr ""
-
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
-msgstr ""
-
-msgid "<a href=\"%s\">details</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">what's that?</a>"
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
msgstr ""
msgid "<p>All done! Thank you very much for your help.</p><p>There are <a href=\"{{helpus_url}}\">more things you can do</a> to help {{site_name}}.</p>"
@@ -176,9 +146,6 @@ msgstr ""
msgid "<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>"
msgstr ""
-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 ""
-
msgid "<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>"
msgstr ""
@@ -197,10 +164,10 @@ msgstr ""
msgid "<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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 ""
-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>"
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
msgstr ""
-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>"
+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=\"{{url}}\">details</a>).</p>"
msgstr ""
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>"
@@ -215,12 +182,7 @@ msgstr ""
msgid "<small>If you use web-based email or have \"junk mail\" filters, also check your\\nbulk/spam mail folders. Sometimes, our messages are marked that way.</small>\\n</p>"
msgstr ""
-msgid "<span id='follow_count'>%d</span> person is following this authority"
-msgid_plural "<span id='follow_count'>%d</span> people are following this authority"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
+msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
msgstr ""
msgid "<strong><code>commented_by:tony_bowden</code></strong> to search annotations made by Tony Bowden, typing the name as in the URL."
@@ -274,7 +236,7 @@ msgstr ""
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 ""
-msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"%s\">click here</a>."
+msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"{{url}}\">click here</a>."
msgstr ""
msgid "<strong>Privacy note:</strong> Your photo will be shown in public on the Internet,\\n wherever you do something on {{site_name}}."
@@ -316,6 +278,9 @@ msgstr ""
msgid "A strange reponse, required attention by the {{site_name}} team"
msgstr ""
+msgid "A vexatious request"
+msgstr ""
+
msgid "A {{site_name}} user"
msgstr ""
@@ -325,6 +290,15 @@ msgstr ""
msgid "Act on what you've learnt"
msgstr ""
+msgid "Acts as xapian/acts as xapian job"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Action"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Model"
+msgstr ""
+
msgid "Add an annotation"
msgstr ""
@@ -403,10 +377,19 @@ msgstr ""
msgid "Anyone:"
msgstr ""
+msgid "Applies to"
+msgstr ""
+
+msgid "Are we missing a public authority?"
+msgstr ""
+
+msgid "Are you the owner of any commercial copyright on this page?"
+msgstr ""
+
msgid "Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries."
msgstr ""
-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>)."
+msgid "At the bottom of this page, write a reply to them trying to persuade them to scan it in\\n (<a href=\"{{url}}\">more details</a>)."
msgstr ""
msgid "Attachment (optional):"
@@ -442,6 +425,12 @@ msgstr ""
msgid "By law, {{public_body_link}} should normally have responded <strong>promptly</strong> and"
msgstr ""
+msgid "Calculated home page"
+msgstr ""
+
+msgid "Can't find the one you want?"
+msgstr ""
+
msgid "Cancel a {{site_name}} alert"
msgstr ""
@@ -607,9 +596,15 @@ msgstr ""
msgid "Date:"
msgstr ""
+msgid "Dear {{name}},"
+msgstr ""
+
msgid "Dear {{public_body_name}},"
msgstr ""
+msgid "Default locale"
+msgstr ""
+
msgid "Delayed response to your FOI request - "
msgstr ""
@@ -619,6 +614,9 @@ msgstr ""
msgid "Delivery error"
msgstr ""
+msgid "Destroy {{name}}"
+msgstr ""
+
msgid "Details of request '"
msgstr ""
@@ -631,6 +629,9 @@ msgstr ""
msgid "Disclosure log"
msgstr ""
+msgid "Disclosure log URL"
+msgstr ""
+
msgid "Don't want to address your message to {{person_or_body}}? You can also write to:"
msgstr ""
@@ -649,10 +650,10 @@ msgstr ""
msgid "EIR"
msgstr ""
-msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
+msgid "Edit"
msgstr ""
-msgid "Edit language version:"
+msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
msgstr ""
msgid "Edit text about you"
@@ -676,7 +677,7 @@ msgstr ""
msgid "Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>"
msgstr ""
-msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"%s\">contact us</a> if you need more)."
+msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"{{url}}\">contact us</a> if you need more)."
msgstr ""
msgid "Environmental Information Regulations"
@@ -694,10 +695,13 @@ msgstr ""
msgid "Event history details"
msgstr ""
-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>)."
+msgid "Event {{id}}"
msgstr ""
-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>)."
+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=\"{{url}}\">why?</a>)."
+msgstr ""
+
+msgid "Everything that you enter on this page\\n will be <strong>displayed publicly</strong> on\\n this website forever (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "FOI"
@@ -706,6 +710,9 @@ msgstr ""
msgid "FOI email address for {{public_body}}"
msgstr ""
+msgid "FOI request – {{title}}"
+msgstr ""
+
msgid "FOI requests"
msgstr ""
@@ -721,13 +728,13 @@ msgstr ""
msgid "Failed to convert image to a PNG"
msgstr ""
-msgid "Failed to convert image to the correct size: at %{cols}x%{rows}, need %{width}x%{height}"
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
msgstr ""
msgid "Filter"
msgstr ""
-msgid "First, type in the <strong>name of the UK public authority</strong> you'd \\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"%s#%s\">why?</a>)."
+msgid "First, type in the <strong>name of the UK public authority</strong> you'd\\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "Foi attachment"
@@ -808,8 +815,8 @@ msgstr ""
msgid "Forgotten your password?"
msgstr ""
-msgid "Found %d public authority %s"
-msgid_plural "Found %d public authorities %s"
+msgid "Found {{count}} public authority {{description}}"
+msgid_plural "Found {{count}} public authorities {{description}}"
msgstr[0] ""
msgstr[1] ""
@@ -846,7 +853,7 @@ msgstr ""
msgid "From"
msgstr ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "From:"
@@ -858,6 +865,18 @@ msgstr ""
msgid "Handled by post."
msgstr ""
+msgid "Has tag string/has tag string tag"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Model"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Name"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Value"
+msgstr ""
+
msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
msgstr ""
@@ -876,6 +895,9 @@ msgstr ""
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 ""
+msgid "Hide request"
+msgstr ""
+
msgid "Holiday"
msgstr ""
@@ -888,6 +910,9 @@ msgstr ""
msgid "Home"
msgstr ""
+msgid "Home page"
+msgstr ""
+
msgid "Home page of authority"
msgstr ""
@@ -936,22 +961,31 @@ msgstr ""
msgid "I've received an <strong>error message</strong>"
msgstr ""
-msgid "If the address is wrong, or you know a better address, please <a href=\"%s\">contact us</a>."
+msgid "I've received an error message"
+msgstr ""
+
+msgid "Id"
+msgstr ""
+
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
+msgstr ""
+
+msgid "If the error was a delivery failure, and you can find an up to date FOI email address for the authority, please tell us using the form below."
msgstr ""
msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
msgstr ""
-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>)."
+msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"{{url}}\">details</a>)."
msgstr ""
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
+msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
-msgid "If you are the requester, then you may <a href=\"%s\">sign in</a> to view the request."
+msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request."
msgstr ""
-msgid "If you are thinking of using a pseudonym,\\n please <a href=\"%s\">read this first</a>."
+msgid "If you are thinking of using a pseudonym,\\n please <a href=\"{{url}}\">read this first</a>."
msgstr ""
msgid "If you are {{user_link}}, please"
@@ -993,6 +1027,9 @@ msgstr ""
msgid "If your browser is set to accept cookies and you are seeing this message,\\nthen there is probably a fault with our server."
msgstr ""
+msgid "Incoming email address"
+msgstr ""
+
msgid "Incoming message"
msgstr ""
@@ -1107,13 +1144,19 @@ msgstr ""
msgid "Items matching the following conditions are currently displayed on your wall."
msgstr ""
+msgid "Items sent in last month"
+msgstr ""
+
msgid "Joined in"
msgstr ""
msgid "Joined {{site_name}} in"
msgstr ""
-msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)."
+msgid "Just one more thing"
+msgstr ""
+
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "Keywords"
@@ -1131,9 +1174,27 @@ msgstr ""
msgid "Link to this"
msgstr ""
+msgid "List all"
+msgstr ""
+
msgid "List of all authorities (CSV)"
msgstr ""
+msgid "Listing FOI requests"
+msgstr ""
+
+msgid "Listing public authorities"
+msgstr ""
+
+msgid "Listing public authorities matching '{{query}}'"
+msgstr ""
+
+msgid "Listing tracks"
+msgstr ""
+
+msgid "Listing users"
+msgstr ""
+
msgid "Log in to download a zip file of {{info_request_title}}"
msgstr ""
@@ -1230,6 +1291,9 @@ msgstr ""
msgid "New Freedom of Information requests"
msgstr ""
+msgid "New censor rule"
+msgstr ""
+
msgid "New e-mail:"
msgstr ""
@@ -1275,6 +1339,9 @@ msgstr ""
msgid "No similar requests found."
msgstr ""
+msgid "No tracked things found."
+msgstr ""
+
msgid "Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet."
msgstr ""
@@ -1284,6 +1351,9 @@ msgstr ""
msgid "None made."
msgstr ""
+msgid "Not a valid FOI request"
+msgstr ""
+
msgid "Note that the requester will not be notified about your annotation, because the request was published by {{public_body_name}} on their behalf."
msgstr ""
@@ -1329,6 +1399,9 @@ msgstr ""
msgid "One public authority found"
msgstr ""
+msgid "Only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL – don't worry about breaking URLs through renaming, as the history is used to redirect"
+msgstr ""
+
msgid "Only requests made using {{site_name}} are shown."
msgstr ""
@@ -1401,7 +1474,7 @@ msgstr ""
msgid "Please"
msgstr ""
-msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
msgstr ""
msgid "Please <strong>answer the question above</strong> so we know whether the "
@@ -1506,7 +1579,7 @@ msgstr ""
msgid "Please select each of these requests in turn, and <strong>let everyone know</strong>\\nif they are successful yet or not."
msgstr ""
-msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature"
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
msgstr ""
msgid "Please sign in as "
@@ -1518,9 +1591,6 @@ msgstr ""
msgid "Please type a message and/or choose a file containing your response."
msgstr ""
-msgid "Please use the form below to tell us more."
-msgstr ""
-
msgid "Please use this email address for all replies to this request:"
msgstr ""
@@ -1611,37 +1681,19 @@ msgstr ""
msgid "Public authorities {{start_count}} to {{end_count}} of {{total_count}}"
msgstr ""
-msgid "Public body"
-msgstr ""
-
-msgid "Public body/translation"
-msgstr ""
-
-msgid "PublicBody::Translation|Disclosure log"
-msgstr ""
-
-msgid "PublicBody::Translation|First letter"
-msgstr ""
-
-msgid "PublicBody::Translation|Locale"
-msgstr ""
-
-msgid "PublicBody::Translation|Name"
+msgid "Public authority – {{name}}"
msgstr ""
-msgid "PublicBody::Translation|Notes"
-msgstr ""
-
-msgid "PublicBody::Translation|Publication scheme"
+msgid "Public body"
msgstr ""
-msgid "PublicBody::Translation|Request email"
+msgid "Public notes"
msgstr ""
-msgid "PublicBody::Translation|Short name"
+msgid "Public page"
msgstr ""
-msgid "PublicBody::Translation|Url name"
+msgid "Public page not available"
msgstr ""
msgid "PublicBody|Api key"
@@ -1689,6 +1741,9 @@ msgstr ""
msgid "Publication scheme"
msgstr ""
+msgid "Publication scheme URL"
+msgstr ""
+
msgid "Purge request"
msgstr ""
@@ -1746,6 +1801,9 @@ msgstr ""
msgid "Request an internal review from {{person_or_body}}"
msgstr ""
+msgid "Request email"
+msgstr ""
+
msgid "Request has been removed"
msgstr ""
@@ -1836,14 +1894,17 @@ msgstr ""
msgid "Search the site to find what you were looking for."
msgstr ""
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests made to {{public_body_name}}"
msgstr[0] ""
msgstr[1] ""
msgid "Search your contributions"
msgstr ""
+msgid "See bounce message"
+msgstr ""
+
msgid "Select one to see more information about the authority."
msgstr ""
@@ -1877,6 +1938,9 @@ msgstr ""
msgid "Set your profile photo"
msgstr ""
+msgid "Short name"
+msgstr ""
+
msgid "Short name is already taken"
msgstr ""
@@ -1970,6 +2034,9 @@ msgstr ""
msgid "Submit status"
msgstr ""
+msgid "Submit status and send message"
+msgstr ""
+
msgid "Subscribe to blog"
msgstr ""
@@ -1991,6 +2058,9 @@ msgstr ""
msgid "Table of varieties"
msgstr ""
+msgid "Tags"
+msgstr ""
+
msgid "Tags (separated by a space):"
msgstr ""
@@ -2018,6 +2088,9 @@ msgstr ""
msgid "Thank you for updating your profile photo"
msgstr ""
+msgid "Thank you! We'll look into what happened and try and fix it up."
+msgstr ""
+
msgid "Thanks for helping - your work will make it easier for everyone to find successful\\nresponses, and maybe even let us make league tables..."
msgstr ""
@@ -2087,16 +2160,16 @@ msgstr ""
msgid "The request was refused by the public authority"
msgstr ""
-msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"%s\">contact us</a> if you have any questions."
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
msgstr ""
msgid "The requester has abandoned this request for some reason"
msgstr ""
-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"
+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 ""
-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"
+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 ""
msgid "The search index is currently offline, so we can't show the Freedom of Information requests that have been made to this authority."
@@ -2105,6 +2178,9 @@ msgstr ""
msgid "The search index is currently offline, so we can't show the Freedom of Information requests this person has made."
msgstr ""
+msgid "The {{site_name}} team."
+msgstr ""
+
msgid "Then you can cancel the alert."
msgstr ""
@@ -2180,17 +2256,17 @@ msgstr ""
msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
msgstr ""
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
-msgstr[0] ""
-msgstr[1] ""
-
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 ""
msgid "There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>."
msgstr ""
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "There was a <strong>delivery error</strong> or similar, which needs fixing by the {{site_name}} team."
msgstr ""
@@ -2227,7 +2303,7 @@ msgstr ""
msgid "This authority no longer exists, so you cannot make a request to it."
msgstr ""
-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."
+msgid "This comment has been hidden. See annotations to\\n find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This covers a very wide spectrum of information about the state of\\n the <strong>natural and built environment</strong>, such as:"
@@ -2245,10 +2321,13 @@ msgstr ""
msgid "This is because {{title}} is an old request that has been\\nmarked to no longer receive responses."
msgstr ""
+msgid "This is the first version."
+msgstr ""
+
msgid "This is your own request, so you will be automatically emailed when new responses arrive."
msgstr ""
-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."
+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=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This particular request is finished:"
@@ -2257,19 +2336,19 @@ msgstr ""
msgid "This person has made no Freedom of Information requests using this site."
msgstr ""
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
+msgid "This person's annotations"
+msgstr ""
+
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
msgstr[0] ""
msgstr[1] ""
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
msgstr[0] ""
msgstr[1] ""
-msgid "This person's annotations"
-msgstr ""
-
msgid "This request <strong>requires administrator attention</strong>"
msgstr ""
@@ -2291,7 +2370,7 @@ msgstr ""
msgid "This request has been <strong>withdrawn</strong> by the person who made it.\\n There may be an explanation in the correspondence below."
msgstr ""
-msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"%s\">contact us</a>."
+msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
msgid "This request has been reported for administrator attention"
@@ -2306,16 +2385,19 @@ msgstr ""
msgid "This request has prominence 'hidden'. You can only see it because you are logged\\n in as a super user."
msgstr ""
-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."
+msgid "This request is hidden, so that only you the requester can see it. Please\\n <a href=\"{{url}}\">contact us</a> if you are not sure why."
msgstr ""
msgid "This request is still in progress:"
msgstr ""
+msgid "This request requires administrator attention"
+msgstr ""
+
msgid "This request was not made via {{site_name}}"
msgstr ""
-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."
+msgid "This response has been hidden. See annotations to find out why.\\n If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This table shows the technical details of the internal events that happened\\nto this request on {{site_name}}. This could be used to generate information about\\nthe speed with which authorities respond to requests, the number of requests\\nwhich require a postal response and much more."
@@ -2474,7 +2556,7 @@ msgstr ""
msgid "Unexpected search result type "
msgstr ""
-msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"%s\">contact us</a> to sort it out."
+msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"{{url}}\">contact us</a> to sort it out."
msgstr ""
msgid "Unfortunately, we do not have a working {{info_request_law_used_full}}\\naddress for"
@@ -2510,6 +2592,9 @@ msgstr ""
msgid "User info request sent alert"
msgstr ""
+msgid "User – {{name}}"
+msgstr ""
+
msgid "UserInfoRequestSentAlert|Alert type"
msgstr ""
@@ -2564,6 +2649,9 @@ msgstr ""
msgid "User|Url name"
msgstr ""
+msgid "Version {{version}}"
+msgstr ""
+
msgid "View FOI email address"
msgstr ""
@@ -2603,6 +2691,12 @@ msgstr ""
msgid "Was the response you got to your FOI request any good?"
msgstr ""
+msgid "We consider it is not a valid FOI request, and have therefore hidden it from other users."
+msgstr ""
+
+msgid "We consider it to be vexatious, and have therefore hidden it from other users."
+msgstr ""
+
msgid "We do not have a working request email address for this authority."
msgstr ""
@@ -2612,7 +2706,7 @@ msgstr ""
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=\"{{url}}\">sign in</a> and let everyone know."
msgstr ""
-msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"%s\">details</a>). "
+msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"{{url}}\">details</a>). "
msgstr ""
msgid "We will not reveal your email address to anybody unless you\\nor the law tell us to."
@@ -2654,7 +2748,7 @@ msgstr ""
msgid "When you receive the paper response, please help\\n others find out what it says:"
msgstr ""
-msgid "When you're done, <strong>come back here</strong>, <a href=\"%s\">reload this page</a> and file your new request."
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
msgstr ""
msgid "Which of these is happening?"
@@ -2756,7 +2850,7 @@ msgstr ""
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 ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "You may be able to find\\none on their website, or by phoning them up and asking. If you manage\\nto find one, then please <a href=\"{{help_url}}\">send it to us</a>."
@@ -2795,6 +2889,9 @@ msgstr ""
msgid "You will only get an answer to your request if you follow up\\nwith the clarification."
msgstr ""
+msgid "You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further."
+msgstr ""
+
msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
msgstr ""
@@ -2807,17 +2904,7 @@ msgstr ""
msgid "You've now cleared your profile photo"
msgstr ""
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
-msgstr[0] ""
-msgstr[1] ""
-
-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>."
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
msgstr ""
msgid "Your annotations"
@@ -2829,7 +2916,7 @@ msgstr ""
msgid "Your e-mail:"
msgstr ""
-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."
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
msgstr ""
msgid "Your follow up message has been sent on its way."
@@ -2853,7 +2940,7 @@ msgstr ""
msgid "Your name and annotation will appear in <strong>search engines</strong>."
msgstr ""
-msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"%s\">details</a>)."
+msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"{{url}}\">details</a>)."
msgstr ""
msgid "Your name:"
@@ -2871,6 +2958,12 @@ msgstr ""
msgid "Your photo will be shown in public <strong>on the Internet</strong>,\\n wherever you do something on {{site_name}}."
msgstr ""
+msgid "Your request '{{request}}' at {{url}} has been reviewed by moderators."
+msgstr ""
+
+msgid "Your request on {{site_name}} hidden"
+msgstr ""
+
msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
msgstr ""
@@ -2880,12 +2973,22 @@ msgstr ""
msgid "Your response to an FOI request was not delivered"
msgstr ""
-msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"%s\">read why</a> and answers to other questions."
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
msgstr ""
msgid "Your thoughts on what the {{site_name}} <strong>administrators</strong> should do about the request."
msgstr ""
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Your {{site_name}} email alert"
msgstr ""
@@ -2895,6 +2998,9 @@ msgstr ""
msgid "Yours sincerely,"
msgstr ""
+msgid "Yours,"
+msgstr ""
+
msgid "[FOI #{{request}} email]"
msgstr ""
@@ -2913,6 +3019,9 @@ msgstr ""
msgid "admin"
msgstr ""
+msgid "alaveteli_foi:The software that runs {{site_name}}"
+msgstr ""
+
msgid "all requests"
msgstr ""
@@ -2946,6 +3055,9 @@ msgstr ""
msgid "are long overdue."
msgstr ""
+msgid "at"
+msgstr ""
+
msgid "authorities"
msgstr ""
@@ -2958,6 +3070,9 @@ msgstr ""
msgid "between two dates"
msgstr ""
+msgid "but followupable"
+msgstr ""
+
msgid "by"
msgstr ""
@@ -3039,15 +3154,21 @@ msgstr ""
msgid "messages from users"
msgstr ""
+msgid "move..."
+msgstr ""
+
msgid "no later than"
msgstr ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "normally"
msgstr ""
+msgid "not requestable due to: {{reason}}"
+msgstr ""
+
msgid "please sign in as "
msgstr ""
@@ -3069,6 +3190,9 @@ msgstr ""
msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
msgstr ""
+msgid "set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA"
+msgstr ""
+
msgid "show quoted sections"
msgstr ""
@@ -3090,6 +3214,11 @@ msgstr ""
msgid "the main FOI contact address for {{public_body}}"
msgstr ""
+#. This phrase completes the following sentences:
+#. Request an internal review from...
+#. Send a public follow up message to...
+#. Send a public reply to...
+#. Don't want to address your message to... ?
msgid "the main FOI contact at {{public_body}}"
msgstr ""
@@ -3138,9 +3267,32 @@ msgstr ""
msgid "users"
msgstr ""
+msgid "what's that?"
+msgstr ""
+
msgid "{{count}} FOI requests found"
msgstr ""
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "{{count}} person is following this authority"
+msgid_plural "{{count}} people are following this authority"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
+msgstr[0] ""
+msgstr[1] ""
+
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 ""
@@ -3198,6 +3350,9 @@ msgstr ""
msgid "{{site_name}} users have made {{number_of_requests}} requests, including:"
msgstr ""
+msgid "{{thing_changed}} was changed from <code>{{from_value}}</code> to <code>{{to_value}}</code>"
+msgstr ""
+
msgid "{{title}} - a Freedom of Information request to {{public_body}}"
msgstr ""
diff --git a/locale/en_IE/app.po b/locale/en_IE/app.po
index a6171618f..932268081 100644
--- a/locale/en_IE/app.po
+++ b/locale/en_IE/app.po
@@ -3,16 +3,16 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# <john@handelaar.org>, 2011.
-# <mrjohncross@googlemail.com>, 2012.
+# handelaar <john@handelaar.org>, 2011
+# confirmordeny <mrjohncross@googlemail.com>, 2012
msgid ""
msgstr ""
"Project-Id-Version: alaveteli\n"
"Report-Msgid-Bugs-To: http://github.com/sebbacon/alaveteli/issues\n"
-"POT-Creation-Date: 2012-12-18 10:11+0000\n"
-"PO-Revision-Date: 2012-12-18 10:14+0000\n"
+"POT-Creation-Date: 2013-05-30 09:46+0100\n"
+"PO-Revision-Date: 2013-05-30 08:54+0000\n"
"Last-Translator: louisecrow <louise@mysociety.org>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language-Team: English (Ireland) (http://www.transifex.com/projects/p/alaveteli/language/en_IE/)\n"
"Language: en_IE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -22,7 +22,7 @@ msgstr ""
msgid " This will appear on your {{site_name}} profile, to make it\\n easier for others to get involved with what you're doing."
msgstr ""
-msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)"
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
msgstr ""
msgid " (<strong>patience</strong>, especially for large files, it may take a while!)"
@@ -52,7 +52,7 @@ msgstr ""
msgid " Ideas on what <strong>other documents to request</strong> which the authority may hold. "
msgstr ""
-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."
+msgid " If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\\n You may be able to find the address on their website, or by phoning them up and asking."
msgstr ""
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."
@@ -91,21 +91,6 @@ msgstr ""
msgid "\"Hello! We have an <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">important message</a> for visitors outside {{country_name}}\""
msgstr ""
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "%d request"
-msgid_plural "%d requests"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "%d request made."
-msgid_plural "%d requests made."
-msgstr[0] ""
-msgstr[1] ""
-
msgid "'Crime statistics by ward level for Wales'"
msgstr "'Crime statistics by Garda District for the Western Region'"
@@ -121,6 +106,9 @@ msgstr ""
msgid "'{{link_to_user}}', a person"
msgstr ""
+msgid "*unknown*"
+msgstr ""
+
msgid ",\\n\\n\\n\\nYours,\\n\\n{{user_name}}"
msgstr ""
@@ -136,31 +124,13 @@ msgstr ""
msgid "3. Now check your request"
msgstr ""
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
msgstr ""
-msgid "<a href=\"%s\">Are we missing a public authority?</a>"
+msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)"
msgstr ""
-msgid "<a href=\"%s\">Are you the owner of\\n any commercial copyright on this page?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
-msgstr ""
-
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
-msgstr ""
-
-msgid "<a href=\"%s\">details</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">what's that?</a>"
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
msgstr ""
msgid "<p>All done! Thank you very much for your help.</p><p>There are <a href=\"{{helpus_url}}\">more things you can do</a> to help {{site_name}}.</p>"
@@ -178,9 +148,6 @@ msgstr ""
msgid "<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>"
msgstr ""
-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 ""
-
msgid "<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>"
msgstr ""
@@ -199,10 +166,10 @@ msgstr ""
msgid "<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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 ""
-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>"
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
msgstr ""
-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>"
+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=\"{{url}}\">details</a>).</p>"
msgstr ""
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>"
@@ -217,12 +184,7 @@ msgstr ""
msgid "<small>If you use web-based email or have \"junk mail\" filters, also check your\\nbulk/spam mail folders. Sometimes, our messages are marked that way.</small>\\n</p>"
msgstr ""
-msgid "<span id='follow_count'>%d</span> person is following this authority"
-msgid_plural "<span id='follow_count'>%d</span> people are following this authority"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
+msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
msgstr ""
msgid "<strong><code>commented_by:tony_bowden</code></strong> to search annotations made by Tony Bowden, typing the name as in the URL."
@@ -276,7 +238,7 @@ msgstr ""
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 ""
-msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"%s\">click here</a>."
+msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"{{url}}\">click here</a>."
msgstr ""
msgid "<strong>Privacy note:</strong> Your photo will be shown in public on the Internet,\\n wherever you do something on {{site_name}}."
@@ -318,6 +280,9 @@ msgstr ""
msgid "A strange reponse, required attention by the {{site_name}} team"
msgstr ""
+msgid "A vexatious request"
+msgstr ""
+
msgid "A {{site_name}} user"
msgstr ""
@@ -327,6 +292,15 @@ msgstr ""
msgid "Act on what you've learnt"
msgstr ""
+msgid "Acts as xapian/acts as xapian job"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Action"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Model"
+msgstr ""
+
msgid "Add an annotation"
msgstr ""
@@ -405,10 +379,19 @@ msgstr ""
msgid "Anyone:"
msgstr ""
+msgid "Applies to"
+msgstr ""
+
+msgid "Are we missing a public authority?"
+msgstr ""
+
+msgid "Are you the owner of any commercial copyright on this page?"
+msgstr ""
+
msgid "Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries."
msgstr ""
-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>)."
+msgid "At the bottom of this page, write a reply to them trying to persuade them to scan it in\\n (<a href=\"{{url}}\">more details</a>)."
msgstr ""
msgid "Attachment (optional):"
@@ -444,6 +427,12 @@ msgstr ""
msgid "By law, {{public_body_link}} should normally have responded <strong>promptly</strong> and"
msgstr ""
+msgid "Calculated home page"
+msgstr ""
+
+msgid "Can't find the one you want?"
+msgstr ""
+
msgid "Cancel a {{site_name}} alert"
msgstr ""
@@ -609,9 +598,15 @@ msgstr ""
msgid "Date:"
msgstr ""
+msgid "Dear {{name}},"
+msgstr ""
+
msgid "Dear {{public_body_name}},"
msgstr ""
+msgid "Default locale"
+msgstr ""
+
msgid "Delayed response to your FOI request - "
msgstr ""
@@ -621,6 +616,9 @@ msgstr ""
msgid "Delivery error"
msgstr ""
+msgid "Destroy {{name}}"
+msgstr ""
+
msgid "Details of request '"
msgstr ""
@@ -633,6 +631,9 @@ msgstr ""
msgid "Disclosure log"
msgstr ""
+msgid "Disclosure log URL"
+msgstr ""
+
msgid "Don't want to address your message to {{person_or_body}}? You can also write to:"
msgstr ""
@@ -651,10 +652,10 @@ msgstr ""
msgid "EIR"
msgstr ""
-msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
+msgid "Edit"
msgstr ""
-msgid "Edit language version:"
+msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
msgstr ""
msgid "Edit text about you"
@@ -678,7 +679,7 @@ msgstr ""
msgid "Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>"
msgstr ""
-msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"%s\">contact us</a> if you need more)."
+msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"{{url}}\">contact us</a> if you need more)."
msgstr ""
msgid "Environmental Information Regulations"
@@ -696,10 +697,13 @@ msgstr ""
msgid "Event history details"
msgstr ""
-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>)."
+msgid "Event {{id}}"
msgstr ""
-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>)."
+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=\"{{url}}\">why?</a>)."
+msgstr ""
+
+msgid "Everything that you enter on this page\\n will be <strong>displayed publicly</strong> on\\n this website forever (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "FOI"
@@ -708,6 +712,9 @@ msgstr ""
msgid "FOI email address for {{public_body}}"
msgstr ""
+msgid "FOI request – {{title}}"
+msgstr ""
+
msgid "FOI requests"
msgstr ""
@@ -723,13 +730,13 @@ msgstr ""
msgid "Failed to convert image to a PNG"
msgstr ""
-msgid "Failed to convert image to the correct size: at %{cols}x%{rows}, need %{width}x%{height}"
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
msgstr ""
msgid "Filter"
msgstr ""
-msgid "First, type in the <strong>name of the UK public authority</strong> you'd \\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"%s#%s\">why?</a>)."
+msgid "First, type in the <strong>name of the UK public authority</strong> you'd\\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "Foi attachment"
@@ -810,8 +817,8 @@ msgstr ""
msgid "Forgotten your password?"
msgstr ""
-msgid "Found %d public authority %s"
-msgid_plural "Found %d public authorities %s"
+msgid "Found {{count}} public authority {{description}}"
+msgid_plural "Found {{count}} public authorities {{description}}"
msgstr[0] ""
msgstr[1] ""
@@ -848,7 +855,7 @@ msgstr ""
msgid "From"
msgstr ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "From:"
@@ -860,6 +867,18 @@ msgstr ""
msgid "Handled by post."
msgstr ""
+msgid "Has tag string/has tag string tag"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Model"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Name"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Value"
+msgstr ""
+
msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
msgstr ""
@@ -878,6 +897,9 @@ msgstr ""
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 ""
+msgid "Hide request"
+msgstr ""
+
msgid "Holiday"
msgstr ""
@@ -890,6 +912,9 @@ msgstr ""
msgid "Home"
msgstr ""
+msgid "Home page"
+msgstr ""
+
msgid "Home page of authority"
msgstr ""
@@ -938,22 +963,31 @@ msgstr ""
msgid "I've received an <strong>error message</strong>"
msgstr ""
-msgid "If the address is wrong, or you know a better address, please <a href=\"%s\">contact us</a>."
+msgid "I've received an error message"
+msgstr ""
+
+msgid "Id"
+msgstr ""
+
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
+msgstr ""
+
+msgid "If the error was a delivery failure, and you can find an up to date FOI email address for the authority, please tell us using the form below."
msgstr ""
msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
msgstr ""
-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>)."
+msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"{{url}}\">details</a>)."
msgstr ""
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
+msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
-msgid "If you are the requester, then you may <a href=\"%s\">sign in</a> to view the request."
+msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request."
msgstr ""
-msgid "If you are thinking of using a pseudonym,\\n please <a href=\"%s\">read this first</a>."
+msgid "If you are thinking of using a pseudonym,\\n please <a href=\"{{url}}\">read this first</a>."
msgstr ""
msgid "If you are {{user_link}}, please"
@@ -995,6 +1029,9 @@ msgstr ""
msgid "If your browser is set to accept cookies and you are seeing this message,\\nthen there is probably a fault with our server."
msgstr ""
+msgid "Incoming email address"
+msgstr ""
+
msgid "Incoming message"
msgstr ""
@@ -1109,13 +1146,19 @@ msgstr ""
msgid "Items matching the following conditions are currently displayed on your wall."
msgstr ""
+msgid "Items sent in last month"
+msgstr ""
+
msgid "Joined in"
msgstr ""
msgid "Joined {{site_name}} in"
msgstr ""
-msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)."
+msgid "Just one more thing"
+msgstr ""
+
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "Keywords"
@@ -1133,9 +1176,27 @@ msgstr ""
msgid "Link to this"
msgstr ""
+msgid "List all"
+msgstr ""
+
msgid "List of all authorities (CSV)"
msgstr ""
+msgid "Listing FOI requests"
+msgstr ""
+
+msgid "Listing public authorities"
+msgstr ""
+
+msgid "Listing public authorities matching '{{query}}'"
+msgstr ""
+
+msgid "Listing tracks"
+msgstr ""
+
+msgid "Listing users"
+msgstr ""
+
msgid "Log in to download a zip file of {{info_request_title}}"
msgstr ""
@@ -1232,6 +1293,9 @@ msgstr ""
msgid "New Freedom of Information requests"
msgstr ""
+msgid "New censor rule"
+msgstr ""
+
msgid "New e-mail:"
msgstr ""
@@ -1277,6 +1341,9 @@ msgstr ""
msgid "No similar requests found."
msgstr ""
+msgid "No tracked things found."
+msgstr ""
+
msgid "Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet."
msgstr ""
@@ -1286,6 +1353,9 @@ msgstr ""
msgid "None made."
msgstr ""
+msgid "Not a valid FOI request"
+msgstr ""
+
msgid "Note that the requester will not be notified about your annotation, because the request was published by {{public_body_name}} on their behalf."
msgstr ""
@@ -1331,6 +1401,9 @@ msgstr ""
msgid "One public authority found"
msgstr ""
+msgid "Only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL – don't worry about breaking URLs through renaming, as the history is used to redirect"
+msgstr ""
+
msgid "Only requests made using {{site_name}} are shown."
msgstr ""
@@ -1403,7 +1476,7 @@ msgstr ""
msgid "Please"
msgstr ""
-msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
msgstr ""
msgid "Please <strong>answer the question above</strong> so we know whether the "
@@ -1508,7 +1581,7 @@ msgstr ""
msgid "Please select each of these requests in turn, and <strong>let everyone know</strong>\\nif they are successful yet or not."
msgstr ""
-msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature"
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
msgstr ""
msgid "Please sign in as "
@@ -1520,9 +1593,6 @@ msgstr ""
msgid "Please type a message and/or choose a file containing your response."
msgstr ""
-msgid "Please use the form below to tell us more."
-msgstr ""
-
msgid "Please use this email address for all replies to this request:"
msgstr ""
@@ -1613,37 +1683,19 @@ msgstr ""
msgid "Public authorities {{start_count}} to {{end_count}} of {{total_count}}"
msgstr ""
-msgid "Public body"
-msgstr ""
-
-msgid "Public body/translation"
-msgstr ""
-
-msgid "PublicBody::Translation|Disclosure log"
-msgstr ""
-
-msgid "PublicBody::Translation|First letter"
-msgstr ""
-
-msgid "PublicBody::Translation|Locale"
-msgstr ""
-
-msgid "PublicBody::Translation|Name"
+msgid "Public authority – {{name}}"
msgstr ""
-msgid "PublicBody::Translation|Notes"
-msgstr ""
-
-msgid "PublicBody::Translation|Publication scheme"
+msgid "Public body"
msgstr ""
-msgid "PublicBody::Translation|Request email"
+msgid "Public notes"
msgstr ""
-msgid "PublicBody::Translation|Short name"
+msgid "Public page"
msgstr ""
-msgid "PublicBody::Translation|Url name"
+msgid "Public page not available"
msgstr ""
msgid "PublicBody|Api key"
@@ -1691,6 +1743,9 @@ msgstr ""
msgid "Publication scheme"
msgstr ""
+msgid "Publication scheme URL"
+msgstr ""
+
msgid "Purge request"
msgstr ""
@@ -1748,6 +1803,9 @@ msgstr ""
msgid "Request an internal review from {{person_or_body}}"
msgstr ""
+msgid "Request email"
+msgstr ""
+
msgid "Request has been removed"
msgstr ""
@@ -1838,14 +1896,17 @@ msgstr ""
msgid "Search the site to find what you were looking for."
msgstr ""
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests made to {{public_body_name}}"
msgstr[0] ""
msgstr[1] ""
msgid "Search your contributions"
msgstr ""
+msgid "See bounce message"
+msgstr ""
+
msgid "Select one to see more information about the authority."
msgstr ""
@@ -1879,6 +1940,9 @@ msgstr ""
msgid "Set your profile photo"
msgstr ""
+msgid "Short name"
+msgstr ""
+
msgid "Short name is already taken"
msgstr ""
@@ -1972,6 +2036,9 @@ msgstr ""
msgid "Submit status"
msgstr ""
+msgid "Submit status and send message"
+msgstr ""
+
msgid "Subscribe to blog"
msgstr ""
@@ -1993,6 +2060,9 @@ msgstr ""
msgid "Table of varieties"
msgstr ""
+msgid "Tags"
+msgstr ""
+
msgid "Tags (separated by a space):"
msgstr ""
@@ -2020,6 +2090,9 @@ msgstr ""
msgid "Thank you for updating your profile photo"
msgstr ""
+msgid "Thank you! We'll look into what happened and try and fix it up."
+msgstr ""
+
msgid "Thanks for helping - your work will make it easier for everyone to find successful\\nresponses, and maybe even let us make league tables..."
msgstr ""
@@ -2089,16 +2162,16 @@ msgstr ""
msgid "The request was refused by the public authority"
msgstr ""
-msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"%s\">contact us</a> if you have any questions."
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
msgstr ""
msgid "The requester has abandoned this request for some reason"
msgstr ""
-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"
+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 ""
-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"
+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 ""
msgid "The search index is currently offline, so we can't show the Freedom of Information requests that have been made to this authority."
@@ -2107,6 +2180,9 @@ msgstr ""
msgid "The search index is currently offline, so we can't show the Freedom of Information requests this person has made."
msgstr ""
+msgid "The {{site_name}} team."
+msgstr ""
+
msgid "Then you can cancel the alert."
msgstr ""
@@ -2182,17 +2258,17 @@ msgstr ""
msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
msgstr ""
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
-msgstr[0] ""
-msgstr[1] ""
-
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 ""
msgid "There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>."
msgstr ""
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "There was a <strong>delivery error</strong> or similar, which needs fixing by the {{site_name}} team."
msgstr ""
@@ -2229,7 +2305,7 @@ msgstr ""
msgid "This authority no longer exists, so you cannot make a request to it."
msgstr ""
-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."
+msgid "This comment has been hidden. See annotations to\\n find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This covers a very wide spectrum of information about the state of\\n the <strong>natural and built environment</strong>, such as:"
@@ -2247,10 +2323,13 @@ msgstr ""
msgid "This is because {{title}} is an old request that has been\\nmarked to no longer receive responses."
msgstr ""
+msgid "This is the first version."
+msgstr ""
+
msgid "This is your own request, so you will be automatically emailed when new responses arrive."
msgstr ""
-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."
+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=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This particular request is finished:"
@@ -2259,19 +2338,19 @@ msgstr ""
msgid "This person has made no Freedom of Information requests using this site."
msgstr ""
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
+msgid "This person's annotations"
+msgstr ""
+
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
msgstr[0] ""
msgstr[1] ""
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
msgstr[0] ""
msgstr[1] ""
-msgid "This person's annotations"
-msgstr ""
-
msgid "This request <strong>requires administrator attention</strong>"
msgstr ""
@@ -2293,7 +2372,7 @@ msgstr ""
msgid "This request has been <strong>withdrawn</strong> by the person who made it.\\n There may be an explanation in the correspondence below."
msgstr ""
-msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"%s\">contact us</a>."
+msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
msgid "This request has been reported for administrator attention"
@@ -2308,16 +2387,19 @@ msgstr ""
msgid "This request has prominence 'hidden'. You can only see it because you are logged\\n in as a super user."
msgstr ""
-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."
+msgid "This request is hidden, so that only you the requester can see it. Please\\n <a href=\"{{url}}\">contact us</a> if you are not sure why."
msgstr ""
msgid "This request is still in progress:"
msgstr ""
+msgid "This request requires administrator attention"
+msgstr ""
+
msgid "This request was not made via {{site_name}}"
msgstr ""
-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."
+msgid "This response has been hidden. See annotations to find out why.\\n If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This table shows the technical details of the internal events that happened\\nto this request on {{site_name}}. This could be used to generate information about\\nthe speed with which authorities respond to requests, the number of requests\\nwhich require a postal response and much more."
@@ -2476,7 +2558,7 @@ msgstr ""
msgid "Unexpected search result type "
msgstr ""
-msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"%s\">contact us</a> to sort it out."
+msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"{{url}}\">contact us</a> to sort it out."
msgstr ""
msgid "Unfortunately, we do not have a working {{info_request_law_used_full}}\\naddress for"
@@ -2512,6 +2594,9 @@ msgstr ""
msgid "User info request sent alert"
msgstr ""
+msgid "User – {{name}}"
+msgstr ""
+
msgid "UserInfoRequestSentAlert|Alert type"
msgstr ""
@@ -2566,6 +2651,9 @@ msgstr ""
msgid "User|Url name"
msgstr ""
+msgid "Version {{version}}"
+msgstr ""
+
msgid "View FOI email address"
msgstr ""
@@ -2605,6 +2693,12 @@ msgstr ""
msgid "Was the response you got to your FOI request any good?"
msgstr ""
+msgid "We consider it is not a valid FOI request, and have therefore hidden it from other users."
+msgstr ""
+
+msgid "We consider it to be vexatious, and have therefore hidden it from other users."
+msgstr ""
+
msgid "We do not have a working request email address for this authority."
msgstr ""
@@ -2614,7 +2708,7 @@ msgstr ""
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=\"{{url}}\">sign in</a> and let everyone know."
msgstr ""
-msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"%s\">details</a>). "
+msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"{{url}}\">details</a>). "
msgstr ""
msgid "We will not reveal your email address to anybody unless you\\nor the law tell us to."
@@ -2656,7 +2750,7 @@ msgstr ""
msgid "When you receive the paper response, please help\\n others find out what it says:"
msgstr ""
-msgid "When you're done, <strong>come back here</strong>, <a href=\"%s\">reload this page</a> and file your new request."
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
msgstr ""
msgid "Which of these is happening?"
@@ -2758,7 +2852,7 @@ msgstr ""
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 ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "You may be able to find\\none on their website, or by phoning them up and asking. If you manage\\nto find one, then please <a href=\"{{help_url}}\">send it to us</a>."
@@ -2797,6 +2891,9 @@ msgstr ""
msgid "You will only get an answer to your request if you follow up\\nwith the clarification."
msgstr ""
+msgid "You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further."
+msgstr ""
+
msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
msgstr ""
@@ -2809,17 +2906,7 @@ msgstr ""
msgid "You've now cleared your profile photo"
msgstr ""
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
-msgstr[0] ""
-msgstr[1] ""
-
-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>."
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
msgstr ""
msgid "Your annotations"
@@ -2831,7 +2918,7 @@ msgstr ""
msgid "Your e-mail:"
msgstr ""
-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."
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
msgstr ""
msgid "Your follow up message has been sent on its way."
@@ -2855,7 +2942,7 @@ msgstr ""
msgid "Your name and annotation will appear in <strong>search engines</strong>."
msgstr ""
-msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"%s\">details</a>)."
+msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"{{url}}\">details</a>)."
msgstr ""
msgid "Your name:"
@@ -2873,6 +2960,12 @@ msgstr ""
msgid "Your photo will be shown in public <strong>on the Internet</strong>,\\n wherever you do something on {{site_name}}."
msgstr ""
+msgid "Your request '{{request}}' at {{url}} has been reviewed by moderators."
+msgstr ""
+
+msgid "Your request on {{site_name}} hidden"
+msgstr ""
+
msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
msgstr ""
@@ -2882,12 +2975,22 @@ msgstr ""
msgid "Your response to an FOI request was not delivered"
msgstr ""
-msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"%s\">read why</a> and answers to other questions."
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
msgstr ""
msgid "Your thoughts on what the {{site_name}} <strong>administrators</strong> should do about the request."
msgstr ""
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Your {{site_name}} email alert"
msgstr ""
@@ -2897,6 +3000,9 @@ msgstr ""
msgid "Yours sincerely,"
msgstr ""
+msgid "Yours,"
+msgstr ""
+
msgid "[FOI #{{request}} email]"
msgstr ""
@@ -2915,6 +3021,9 @@ msgstr ""
msgid "admin"
msgstr ""
+msgid "alaveteli_foi:The software that runs {{site_name}}"
+msgstr ""
+
msgid "all requests"
msgstr ""
@@ -2948,6 +3057,9 @@ msgstr ""
msgid "are long overdue."
msgstr ""
+msgid "at"
+msgstr ""
+
msgid "authorities"
msgstr ""
@@ -2960,6 +3072,9 @@ msgstr ""
msgid "between two dates"
msgstr ""
+msgid "but followupable"
+msgstr ""
+
msgid "by"
msgstr ""
@@ -3041,15 +3156,21 @@ msgstr ""
msgid "messages from users"
msgstr ""
+msgid "move..."
+msgstr ""
+
msgid "no later than"
msgstr ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "normally"
msgstr ""
+msgid "not requestable due to: {{reason}}"
+msgstr ""
+
msgid "please sign in as "
msgstr ""
@@ -3071,6 +3192,9 @@ msgstr ""
msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
msgstr ""
+msgid "set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA"
+msgstr ""
+
msgid "show quoted sections"
msgstr ""
@@ -3092,6 +3216,11 @@ msgstr ""
msgid "the main FOI contact address for {{public_body}}"
msgstr ""
+#. This phrase completes the following sentences:
+#. Request an internal review from...
+#. Send a public follow up message to...
+#. Send a public reply to...
+#. Don't want to address your message to... ?
msgid "the main FOI contact at {{public_body}}"
msgstr ""
@@ -3140,9 +3269,32 @@ msgstr ""
msgid "users"
msgstr ""
+msgid "what's that?"
+msgstr ""
+
msgid "{{count}} FOI requests found"
msgstr ""
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "{{count}} person is following this authority"
+msgid_plural "{{count}} people are following this authority"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
+msgstr[0] ""
+msgstr[1] ""
+
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 ""
@@ -3200,6 +3352,9 @@ msgstr ""
msgid "{{site_name}} users have made {{number_of_requests}} requests, including:"
msgstr ""
+msgid "{{thing_changed}} was changed from <code>{{from_value}}</code> to <code>{{to_value}}</code>"
+msgstr ""
+
msgid "{{title}} - a Freedom of Information request to {{public_body}}"
msgstr ""
diff --git a/locale/es/app.po b/locale/es/app.po
index 1b2396370..515f6a491 100644
--- a/locale/es/app.po
+++ b/locale/es/app.po
@@ -3,19 +3,19 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# David Cabo <david.cabo@gmail.com>, 2011-2012.
-# <fabrizio.scrollini@gmail.com>, 2012.
-# <gabelula@gmail.com>, 2012.
-# skenaja <alex@alexskene.com>, 2011.
-# <victoria@access-info.org>, 2011.
+# David Cabo <david.cabo@gmail.com>, 2011-2012
+# fabrizioscrollini <fabrizio.scrollini@gmail.com>, 2012
+# gaba <gabelula@gmail.com>, 2012
+# skenaja <alex@alexskene.com>, 2011
+# vickyanderica <victoria@access-info.org>, 2011
msgid ""
msgstr ""
"Project-Id-Version: alaveteli\n"
"Report-Msgid-Bugs-To: http://github.com/sebbacon/alaveteli/issues\n"
-"POT-Creation-Date: 2012-12-18 10:11+0000\n"
-"PO-Revision-Date: 2012-12-18 10:14+0000\n"
+"POT-Creation-Date: 2013-05-30 09:46+0100\n"
+"PO-Revision-Date: 2013-05-30 08:54+0000\n"
"Last-Translator: louisecrow <louise@mysociety.org>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/alaveteli/language/es/)\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -27,8 +27,8 @@ msgstr ""
" Esto aparecerá en tu perfil de {{site_name}}, para facilitar\n"
" que otras personas entiendan y participen en tus solicitudes."
-msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)"
-msgstr " (<strong>sin ataques políticos</strong>, lea nuestra <a href=\"%s\">política de moderación</a>)"
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
+msgstr " (<strong>sin ataques políticos</strong>, lea nuestra <a href=\"{{url}}\">política de moderación</a>)"
msgid " (<strong>patience</strong>, especially for large files, it may take a while!)"
msgstr " (<strong>paciencia</strong>, especialmente con ficheros grandes, puede tardar unos minutos!)"
@@ -60,9 +60,9 @@ msgstr " Consejo sobre cómo <strong>aclarar lo mejor posible</strong> la solici
msgid " Ideas on what <strong>other documents to request</strong> which the authority may hold. "
msgstr " Ideas sobre <strong>qué otra información pedir</strong> que el organismo público puede tener. "
-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."
+msgid " If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\\n You may be able to find the address on their website, or by phoning them up and asking."
msgstr ""
-" Si conoces la dirección a utilizar, entonces por favor <a href=\"%s\">envíanosla</a>.\n"
+" Si conoces la dirección a utilizar, entonces por favor <a href=\"{{url}}\">envíanosla</a>.\n"
" Puede que la encuentres en su página web, o llamándoles por teléfono y preguntando."
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."
@@ -104,21 +104,6 @@ msgstr " cuando envió este mensaje."
msgid "\"Hello! We have an <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">important message</a> for visitors outside {{country_name}}\""
msgstr ""
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
-msgstr[0] "%d solicitud de información a %s"
-msgstr[1] "%d solicitudes de información a %s"
-
-msgid "%d request"
-msgid_plural "%d requests"
-msgstr[0] "%d solicitud"
-msgstr[1] "%d solicitudes"
-
-msgid "%d request made."
-msgid_plural "%d requests made."
-msgstr[0] "%d solicitud enviada."
-msgstr[1] "%d solicitudes enviadas."
-
msgid "'Crime statistics by ward level for Wales'"
msgstr "'Estadísticas de crímenes por región en España'"
@@ -134,6 +119,9 @@ msgstr "'{{link_to_request}}', una solicitud"
msgid "'{{link_to_user}}', a person"
msgstr "Para ver la respuesta, usa el siguiente enlace."
+msgid "*unknown*"
+msgstr ""
+
msgid ",\\n\\n\\n\\nYours,\\n\\n{{user_name}}"
msgstr ""
",\n"
@@ -156,34 +144,14 @@ msgstr "2. Solicite información"
msgid "3. Now check your request"
msgstr "3. Revisa tu solicitud"
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
-msgstr "<a href=\"%s\">Añade un comentario</a> (para ayudar al solicitante o a otros)"
-
-msgid "<a href=\"%s\">Are we missing a public authority?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Are you the owner of\\n any commercial copyright on this page?</a>"
-msgstr ""
-"<a href=\"%s\">¿Posee el copyright\n"
-" de alguna información de esta página?</a>"
-
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
-msgstr "<a href=\"%s\">Ver todas</a> o <a href=\"%s\">pídanos que añadamos una</a>."
-
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
-msgstr "<a href=\"%s\">¿No encuentra el que busca?</a>"
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
+msgstr "<a href=\"{{browse_url}}\">Ver todas</a> o <a href=\"{{add_url}}\">pídanos que añadamos una</a>."
-msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
-msgstr "<a href=\"%s\">Abre una sesión</a> para cambiar tu contraseña, suscripciones... (sólo {{user_name}})"
+msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)"
+msgstr "<a href=\"{{url}}\">Añade un comentario</a> (para ayudar al solicitante o a otros)"
-msgid "<a href=\"%s\">details</a>"
-msgstr "<a href=\"%s\">detalles</a>"
-
-msgid "<a href=\"%s\">what's that?</a>"
-msgstr "<a href=\"%s\">¿Qué es eso?</a>"
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
+msgstr "<a href=\"{{url}}\">Abre una sesión</a> para cambiar tu contraseña, suscripciones... (sólo {{user_name}})"
msgid "<p>All done! Thank you very much for your help.</p><p>There are <a href=\"{{helpus_url}}\">more things you can do</a> to help {{site_name}}.</p>"
msgstr "<p>¡Ya está! Muchas gracias por tu ayuda.</p><p>Hay <a href=\"{{helpus_url}}\">más cosas que puedes hacer</a> para ayudar a {{site_name}}.</p>"
@@ -212,9 +180,6 @@ msgstr ""
msgid "<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>"
msgstr "<p>¡Gracias! Deseamos que tu espera no sea demasiado larga.</p><p>Debería recibir una respuesta en {{late_number_of_days}} días, o ser informado de que tardará más (<a href=\"{{review_url}}\">más información</a>).</p>"
-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 "<p>¡Gracias! Investigaremos lo ocurrido y trataremos de arreglarlo.</p><p> Si el error ha sido al intentar entregar el correo, y puede encontrar una dirección más actualizada para este organismo, por favor indíquenoslo en el siguiente formulario.</p>"
-
msgid "<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>"
msgstr "<p>¡Gracias! Tu solicitud está muy retrasada, han pasado más de {{very_late_number_of_days}} días laborales. La mayoría de las solicitudes deberían ser respondidas en {{late_number_of_days}} días laborales. Puede reclamar sobre esta situación, como se explica más abajo.</p>"
@@ -239,11 +204,11 @@ msgstr "<p>Nos alegra saber que has obtenido toda la información que solicitast
msgid "<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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 "<p>Nos alegra saber que has obtenido parte de la información que solicitaste. Si escribes sobre ella, o la utilizas, por favor vuelve y añade un comentario a continuación explicando lo que has hecho.</p><p>Si {{site_name}} te ha resultado útil, <a href=\"{{donation_url}}\">puedes donar</a> a la ONG responsable.</p>"
-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 "<p>No necesitas incluir tu dirección de correo en la solicitud para recibir una respuesta (<a href=\"%s\">más detalles</a>).</p>"
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
+msgstr "<p>No necesitas incluir tu dirección de correo en la solicitud para recibir una respuesta (<a href=\"{{url}}\">más detalles</a>).</p>"
-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 "<p>No necesitas incluir tu dirección de correo en la solicitud para recibir una respuesta, te la pediremos en el siguiente paso (<a href=\"%s\">más detalles</a>).</p>"
+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=\"{{url}}\">details</a>).</p>"
+msgstr "<p>No necesitas incluir tu dirección de correo en la solicitud para recibir una respuesta, te la pediremos en el siguiente paso (<a href=\"{{url}}\">más detalles</a>).</p>"
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 "<p>Tu solicitud incluye un <strong>código postal</strong>. Salvo que esté directamente relacionado con su solicitud, por favor elimina cualquier dirección, ya que <strong>estará disponible públicamente en Internet</strong>.</p>"
@@ -265,15 +230,10 @@ msgstr ""
"tus carpetas de spam. A veces, nuestros mensajes se marcan así por error.</small>\n"
"</p>"
-msgid "<span id='follow_count'>%d</span> person is following this authority"
-msgid_plural "<span id='follow_count'>%d</span> people are following this authority"
-msgstr[0] "<span id='follow_count'>%d</span> persona esta siguiendo este organismo"
-msgstr[1] "<span id='follow_count'>%d</span> personas estan siguiendo este organismo"
-
-msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
+msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
msgstr ""
"<strong> ¿Puedo pedir información sobre mí?</strong>\n"
-"\t\t\t<a href=\"%s\">¡No! (Pulse aquí para más detalles)</a>"
+"\t\t\t<a href=\"{{url}}\">¡No! (Pulse aquí para más detalles)</a>"
msgid "<strong><code>commented_by:tony_bowden</code></strong> to search annotations made by Tony Bowden, typing the name as in the URL."
msgstr "<strong><code>commented_by:rafael_nadal</code></strong> para buscar comentarios hechos por el usuario 'rafael_nadal'."
@@ -341,10 +301,10 @@ msgstr ""
" Enviaremos un correo a la nueva dirección de correo. Sigue\n"
" sus instrucciones para confirmar la nueva dirección."
-msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"%s\">click here</a>."
+msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"{{url}}\">click here</a>."
msgstr ""
"<strong>Nota sobre privacidad:</strong> Si quiere solicitar información privada\n"
-" sobre sí mismo entonces <a href=\"%s\">siga este enlace</a>."
+" sobre sí mismo entonces <a href=\"{{url}}\">siga este enlace</a>."
msgid "<strong>Privacy note:</strong> Your photo will be shown in public on the Internet,\\n wherever you do something on {{site_name}}."
msgstr ""
@@ -387,6 +347,9 @@ msgstr "Una respuesta será enviada <strong>por correo ordinario</strong>"
msgid "A strange reponse, required attention by the {{site_name}} team"
msgstr "Una respuesta inusual, debe ser revisada por el equipo de {{site_name}}"
+msgid "A vexatious request"
+msgstr ""
+
msgid "A {{site_name}} user"
msgstr "Un usuario de {{site_name}}"
@@ -396,6 +359,15 @@ msgstr "Sobre mí:"
msgid "Act on what you've learnt"
msgstr "Utiliza esta información"
+msgid "Acts as xapian/acts as xapian job"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Action"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Model"
+msgstr ""
+
msgid "Add an annotation"
msgstr "Añada un comentario"
@@ -482,13 +454,22 @@ msgstr ""
msgid "Anyone:"
msgstr "Cualquiera:"
+msgid "Applies to"
+msgstr ""
+
+msgid "Are we missing a public authority?"
+msgstr ""
+
+msgid "Are you the owner of any commercial copyright on this page?"
+msgstr "¿Posee el copyright de alguna información de esta página?"
+
msgid "Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries."
msgstr "Pide documentos o información <strong>específica</strong>, esta web no está pensada para resolver dudas generales."
-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>)."
+msgid "At the bottom of this page, write a reply to them trying to persuade them to scan it in\\n (<a href=\"{{url}}\">more details</a>)."
msgstr ""
"Al final de esta página, escribe una respuesta intentando convencerles de que lo escaneen\n"
-" (<a href=\"%s\">más detalles</a>)."
+" (<a href=\"{{url}}\">más detalles</a>)."
msgid "Attachment (optional):"
msgstr "Adjuntos (opcional):"
@@ -523,6 +504,12 @@ msgstr "{{public_body_link}} ya debería haber respondido"
msgid "By law, {{public_body_link}} should normally have responded <strong>promptly</strong> and"
msgstr "{{public_body_link}} debería haber respondido "
+msgid "Calculated home page"
+msgstr ""
+
+msgid "Can't find the one you want?"
+msgstr "¿No encuentra el que busca?"
+
msgid "Cancel a {{site_name}} alert"
msgstr "Cancele una alerta de {{site_name}}"
@@ -692,9 +679,15 @@ msgstr "Actualmente <strong>esperando la respuesta</strong> de {{public_body_lin
msgid "Date:"
msgstr "Fecha:"
+msgid "Dear {{name}},"
+msgstr ""
+
msgid "Dear {{public_body_name}},"
msgstr "Estimado {{public_body_name}},"
+msgid "Default locale"
+msgstr ""
+
msgid "Delayed response to your FOI request - "
msgstr "Respuesta retrasada a tu solicitud de acceso a información - "
@@ -704,6 +697,9 @@ msgstr "Retrasado."
msgid "Delivery error"
msgstr "Error en la entrega"
+msgid "Destroy {{name}}"
+msgstr ""
+
msgid "Details of request '"
msgstr "Detalles de la solicitud '"
@@ -716,6 +712,9 @@ msgstr "Atención: Este mensaje y cualquier respuesta que hagas serán publicada
msgid "Disclosure log"
msgstr ""
+msgid "Disclosure log URL"
+msgstr ""
+
msgid "Don't want to address your message to {{person_or_body}}? You can also write to:"
msgstr "¿Quieres mandar tu mensaje a {{person_or_body}}? También puedes escribir a:"
@@ -734,14 +733,14 @@ msgstr "Descargar ficheros adjuntos"
msgid "EIR"
msgstr "EIR"
+msgid "Edit"
+msgstr ""
+
msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
msgstr ""
"Edita y añade <strong>más detalles</strong> al mensaje anterior,\n"
" explicando por qué no estás satisfecho con su respuesta."
-msgid "Edit language version:"
-msgstr "Editar versión en idioma:"
-
msgid "Edit text about you"
msgstr "Edite el texto sobre tí"
@@ -763,7 +762,7 @@ msgstr "Quiero recibir emails con las actualizaciones de esta solicitud"
msgid "Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>"
msgstr "Introduzca las palabras que desee separadas por espacio, es decir <strong>parlamento gasto</strong>"
-msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"%s\">contact us</a> if you need more)."
+msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"{{url}}\">contact us</a> if you need more)."
msgstr ""
msgid "Environmental Information Regulations"
@@ -781,17 +780,20 @@ msgstr "Historial de eventos"
msgid "Event history details"
msgstr "Historial de eventos"
-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>)."
+msgid "Event {{id}}"
msgstr ""
-"Todo lo que escriba en esta página \n"
-" estará <strong>disponible públicamente</strong> en\n"
-" está web para siempre (<a href=\"%s\">¿por qué?</a>)."
-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>)."
+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=\"{{url}}\">why?</a>)."
msgstr ""
"Todo lo que escribas en esta página, incluyendo <strong>tu nombre</strong>, \n"
" estará <strong>disponible públicamente</strong> en\n"
-" está web para siempre (<a href=\"%s\">¿por qué?</a>)."
+" está web para siempre (<a href=\"{{url}}\">¿por qué?</a>)."
+
+msgid "Everything that you enter on this page\\n will be <strong>displayed publicly</strong> on\\n this website forever (<a href=\"{{url}}\">why?</a>)."
+msgstr ""
+"Todo lo que escriba en esta página \n"
+" estará <strong>disponible públicamente</strong> en\n"
+" está web para siempre (<a href=\"{{url}}\">¿por qué?</a>)."
msgid "FOI"
msgstr "FOI"
@@ -799,6 +801,9 @@ msgstr "FOI"
msgid "FOI email address for {{public_body}}"
msgstr "Dirección de correo para {{public_body}}"
+msgid "FOI request – {{title}}"
+msgstr ""
+
msgid "FOI requests"
msgstr "Solicitudes de información"
@@ -814,14 +819,14 @@ msgstr "El pedido de acceso requiere del administrador ({{reason}}) - {{title}}"
msgid "Failed to convert image to a PNG"
msgstr "Error al convertir la imagen a PNG"
-msgid "Failed to convert image to the correct size: at %{cols}x%{rows}, need %{width}x%{height}"
-msgstr "Error al convertir la imagen al tamaño adecuado: es %{cols}x%{rows}, debería ser %{width}x%{height}"
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
+msgstr "Error al convertir la imagen al tamaño adecuado: es {{cols}}x{{rows}}, debería ser {{width}}x{{height}}"
msgid "Filter"
msgstr "Filtrar"
-msgid "First, type in the <strong>name of the UK public authority</strong> you'd \\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"%s#%s\">why?</a>)."
-msgstr "Primero, escribe el <strong>nombre de la institución</strong> a la que quieres pedir información. <strong>Están obligados a responder</strong> (<a href=\"%s#%s\">¿por qué?</a>)."
+msgid "First, type in the <strong>name of the UK public authority</strong> you'd\\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"{{url}}\">why?</a>)."
+msgstr "Primero, escribe el <strong>nombre de la institución</strong> a la que quieres pedir información. <strong>Están obligados a responder</strong> (<a href=\"{{url}}\">¿por qué?</a>)."
msgid "Foi attachment"
msgstr "Respuesta adjunta"
@@ -901,8 +906,8 @@ msgstr "No es posible hacer una solicitud a este organismo, por motivos desconoc
msgid "Forgotten your password?"
msgstr "¿Has olvidado tu contraseña?"
-msgid "Found %d public authority %s"
-msgid_plural "Found %d public authorities %s"
+msgid "Found {{count}} public authority {{description}}"
+msgid_plural "Found {{count}} public authorities {{description}}"
msgstr[0] ""
msgstr[1] ""
@@ -939,11 +944,11 @@ msgstr "Solicitudes de información a"
msgid "From"
msgstr ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
"Desde la página de la solicitud, intenta responder a un mensaje en concreto, en vez de\n"
" responder a la solicitud en general. Si necesitas hacerlo y tienes una dirección de\n"
-" correo válida, por favor <a href=\"%s\">mándanosla</a>."
+" correo válida, por favor <a href=\"{{url}}\">mándanosla</a>."
msgid "From:"
msgstr "De:"
@@ -954,6 +959,18 @@ msgstr "DETALLA TU QUEJA AQUÍ"
msgid "Handled by post."
msgstr "Resuelta por correo ordinario"
+msgid "Has tag string/has tag string tag"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Model"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Name"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Value"
+msgstr ""
+
msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
msgstr "¡Hola! Puede hacer solicitudes de información en {{country_name}} usando {{link_to_website}}"
@@ -979,6 +996,9 @@ msgstr ""
" no nos ha dicho si tuvo o no éxito. ¿Te importaría invertir unos minutos\n"
" en leerla y ayudarnos a clasificarla para el beneficio de todos? Gracias."
+msgid "Hide request"
+msgstr ""
+
msgid "Holiday"
msgstr "Vacaciones"
@@ -991,6 +1011,9 @@ msgstr "Holiday|Description"
msgid "Home"
msgstr "Inicio"
+msgid "Home page"
+msgstr ""
+
msgid "Home page of authority"
msgstr "Sitio web del organismo"
@@ -1043,8 +1066,17 @@ msgstr "He recibido <strong>parte de la información</strong>"
msgid "I've received an <strong>error message</strong>"
msgstr "He recibido un <strong>mensaje de error</strong>"
-msgid "If the address is wrong, or you know a better address, please <a href=\"%s\">contact us</a>."
-msgstr "Si la dirección es incorrecta, o conoce una más actualizada, por favor <a href=\"%s\">contáctenos</a>."
+msgid "I've received an error message"
+msgstr ""
+
+msgid "Id"
+msgstr ""
+
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Si la dirección es incorrecta, o conoce una más actualizada, por favor <a href=\"{{url}}\">contáctenos</a>."
+
+msgid "If the error was a delivery failure, and you can find an up to date FOI email address for the authority, please tell us using the form below."
+msgstr ""
msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
msgstr ""
@@ -1052,22 +1084,22 @@ msgstr ""
"o un correo sobre otro tema a {{user}}, entonces por favor\n"
"escribe a {{contact_email}} solicitando ayuda."
-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>)."
+msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"{{url}}\">details</a>)."
msgstr ""
"Si no estás satisfecho con la respuesta que has recibido del\n"
" organismo público, tienes derecho a\n"
-" apelar (<a href=\"%s\">detalles</a>)."
+" apelar (<a href=\"{{url}}\">detalles</a>)."
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
-msgstr "Si aún tienes problemas, por favor <a href=\"%s\">contáctanos</a>."
+msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Si aún tienes problemas, por favor <a href=\"{{url}}\">contáctanos</a>."
-msgid "If you are the requester, then you may <a href=\"%s\">sign in</a> to view the request."
-msgstr "Si la solicitud es tuya, puedes <a href=\"%s\">abrir una sesión</a> para verla."
+msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request."
+msgstr "Si la solicitud es tuya, puedes <a href=\"{{url}}\">abrir una sesión</a> para verla."
-msgid "If you are thinking of using a pseudonym,\\n please <a href=\"%s\">read this first</a>."
+msgid "If you are thinking of using a pseudonym,\\n please <a href=\"{{url}}\">read this first</a>."
msgstr ""
"Si estás pensando en utilizar un pseudónimo,\n"
-" por favor <a href=\"%s\">lee esto primero</a>."
+" por favor <a href=\"{{url}}\">lee esto primero</a>."
msgid "If you are {{user_link}}, please"
msgstr "Si es {{user_link}}, por favor"
@@ -1121,6 +1153,9 @@ msgstr ""
"Si tu navegador acepta cookies y estás viendo este mensaje,\n"
"puede que haya un problema en nuestro servidor."
+msgid "Incoming email address"
+msgstr ""
+
msgid "Incoming message"
msgstr "Nuevo mensaje"
@@ -1240,14 +1275,20 @@ msgstr ""
msgid "Items matching the following conditions are currently displayed on your wall."
msgstr "Los items que cumplan las siguientes condiciones son los que se muestran en tu muro."
+msgid "Items sent in last month"
+msgstr ""
+
msgid "Joined in"
msgstr "Registrado el"
msgid "Joined {{site_name}} in"
msgstr "Registrado en {{site_name}} el"
-msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)."
-msgstr "Sé <strong>específico</strong>, tendrás más probabilidades de conseguir lo que quieres (<a href=\"%s\">¿por qué?</a>)."
+msgid "Just one more thing"
+msgstr ""
+
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
+msgstr "Sé <strong>específico</strong>, tendrás más probabilidades de conseguir lo que quieres (<a href=\"{{url}}\">¿por qué?</a>)."
msgid "Keywords"
msgstr "Términos"
@@ -1267,9 +1308,27 @@ msgstr ""
msgid "Link to this"
msgstr "Enlace"
+msgid "List all"
+msgstr ""
+
msgid "List of all authorities (CSV)"
msgstr "Lista de todos los organismos (CSV)"
+msgid "Listing FOI requests"
+msgstr ""
+
+msgid "Listing public authorities"
+msgstr ""
+
+msgid "Listing public authorities matching '{{query}}'"
+msgstr ""
+
+msgid "Listing tracks"
+msgstr ""
+
+msgid "Listing users"
+msgstr ""
+
msgid "Log in to download a zip file of {{info_request_title}}"
msgstr "Abre una sesión para descargar el fichero ZIP de {{info_request_title}}"
@@ -1369,6 +1428,9 @@ msgstr "El nombre ya está siendo utilizado"
msgid "New Freedom of Information requests"
msgstr "Nuevas solicitudes de acceso a información"
+msgid "New censor rule"
+msgstr ""
+
msgid "New e-mail:"
msgstr "Nueva dirección:"
@@ -1414,6 +1476,9 @@ msgstr "No se han encontrado resultados."
msgid "No similar requests found."
msgstr "No se han encontrado solicitudes similares."
+msgid "No tracked things found."
+msgstr ""
+
msgid "Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet."
msgstr "Nadie ha realizado todavía una solicitud de información a {{public_body_name}} usando esta web."
@@ -1423,6 +1488,9 @@ msgstr "No se han encontrado resultados."
msgid "None made."
msgstr "Ninguno/a."
+msgid "Not a valid FOI request"
+msgstr ""
+
msgid "Note that the requester will not be notified about your annotation, because the request was published by {{public_body_name}} on their behalf."
msgstr ""
@@ -1468,6 +1536,9 @@ msgstr "Una persona encontrada"
msgid "One public authority found"
msgstr "Un organismo público encontrado"
+msgid "Only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL – don't worry about breaking URLs through renaming, as the history is used to redirect"
+msgstr ""
+
msgid "Only requests made using {{site_name}} are shown."
msgstr "Sólo se muestran las solicitudes realizadas con {{site_name}}."
@@ -1540,8 +1611,8 @@ msgstr "Juega al juego de clasificación de solicitudes!"
msgid "Please"
msgstr "Por favor"
-msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
-msgstr "Por favor <a href=\"%s\">contacta</a> con nosotros para que podamos arreglarlo."
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
+msgstr "Por favor <a href=\"{{url}}\">contacta</a> con nosotros para que podamos arreglarlo."
msgid "Please <strong>answer the question above</strong> so we know whether the "
msgstr "Por favor <strong>responde a la pregunta anterior</strong> para que sepamos si "
@@ -1656,8 +1727,8 @@ msgstr ""
"Por favor elije estas solicitudes una a una, y <strong>haz que se sepa</strong>\n"
"si han tenido éxito o no."
-msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature"
-msgstr "Por favor, firma con tu nombre en la parte inferior, o cambia la firma \"%{signoff}\""
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
+msgstr "Por favor, firma con tu nombre en la parte inferior, o cambia la firma \"{{signoff}}\""
msgid "Please sign in as "
msgstr "Por favor abre una sesión como "
@@ -1668,9 +1739,6 @@ msgstr ""
msgid "Please type a message and/or choose a file containing your response."
msgstr "Por favor escribe un mensaje y/o escoje un fichero conteniendo su respuesta."
-msgid "Please use the form below to tell us more."
-msgstr "Por favor usa el formulario a continuación para decirnos más."
-
msgid "Please use this email address for all replies to this request:"
msgstr "Por favor use la siguiente dirección de correo para todas las respuestas a esta solicitud:"
@@ -1761,48 +1829,20 @@ msgstr "Organismos públicos - {{description}}"
msgid "Public authorities {{start_count}} to {{end_count}} of {{total_count}}"
msgstr "Organismos públicos {{start_count}} a {{end_count}} de {{total_count}}"
+msgid "Public authority – {{name}}"
+msgstr ""
+
msgid "Public body"
msgstr "Autoridad/Organismo Publico"
-msgid "Public body/translation"
-msgstr "Organismo publico/traduccion"
-
-msgid "PublicBody::Translation|Disclosure log"
+msgid "Public notes"
msgstr ""
-msgid "PublicBody::Translation|First letter"
-msgstr "Organismo Publico:: traduccion Primera solicitud"
-
-msgid "PublicBody::Translation|Locale"
-msgstr "PublicBody::Translation|Locale"
-
-msgid "PublicBody::Translation|Name"
-msgstr "Nombre"
-
-msgid "PublicBody::Translation|Notes"
-msgstr "Notas"
-
-msgid "PublicBody::Translation|Publication scheme"
-msgstr "Transparencia Activa"
-
-msgid "PublicBody::Translation|Request email"
-msgstr "Solicitar Correo"
-
-msgid "PublicBody::Translation|Short name"
-msgstr "Nombre Corto"
+msgid "Public page"
+msgstr ""
-msgid "PublicBody::Translation|Url name"
+msgid "Public page not available"
msgstr ""
-"<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=\"{{find_authority_url}}\">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=\"{{complain_url}}\">how to complain</a>.⏎\n"
-" </li>⏎\n"
-" <li>We have <a href=\"{{other_means_url}}\">suggestions</a>⏎\n"
-" on other means to answer your question.⏎\n"
-" </li>⏎\n"
-" </ul>"
msgid "PublicBody|Api key"
msgstr ""
@@ -1849,6 +1889,9 @@ msgstr "Versión"
msgid "Publication scheme"
msgstr "Esquema de publicación"
+msgid "Publication scheme URL"
+msgstr ""
+
msgid "Purge request"
msgstr "Eliminar pedido"
@@ -1908,6 +1951,9 @@ msgstr "Pida una revisión interna"
msgid "Request an internal review from {{person_or_body}}"
msgstr "Pedir una revisión interna a {{person_or_body}}"
+msgid "Request email"
+msgstr ""
+
msgid "Request has been removed"
msgstr "La solicitud ha sido eliminada"
@@ -2001,14 +2047,17 @@ msgstr "Resultados de la búsqueda"
msgid "Search the site to find what you were looking for."
msgstr "Buscar en esta web para encontrar lo que busca."
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
-msgstr[0] "Busca en la %d solicitud de información hecha a %s"
-msgstr[1] "Busca en las %d solicitudes de información hechas a %s"
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests made to {{public_body_name}}"
+msgstr[0] "Busca en la {{count}} solicitud de información hecha a {{public_body_name}}"
+msgstr[1] "Busca en las {{count}} solicitudes de información hechas a {{public_body_name}}"
msgid "Search your contributions"
msgstr "Busca tus aportaciones"
+msgid "See bounce message"
+msgstr ""
+
msgid "Select one to see more information about the authority."
msgstr "Elija uno para ver más información sobre el organismo."
@@ -2042,6 +2091,9 @@ msgstr "Enviar solicitud"
msgid "Set your profile photo"
msgstr "Cambiar foto de perfil"
+msgid "Short name"
+msgstr ""
+
msgid "Short name is already taken"
msgstr "Nombre de usuario ya en uso"
@@ -2141,6 +2193,9 @@ msgstr "Enviar"
msgid "Submit status"
msgstr "Enviar estado"
+msgid "Submit status and send message"
+msgstr ""
+
msgid "Subscribe to blog"
msgstr "Subscribirse al blog"
@@ -2162,6 +2217,9 @@ msgstr "Tabla de estados"
msgid "Table of varieties"
msgstr "Tabla de tipos de objetos"
+msgid "Tags"
+msgstr ""
+
msgid "Tags (separated by a space):"
msgstr "Etiquetas (separadas por un espacio):"
@@ -2189,6 +2247,9 @@ msgstr "¡Gracias por actualizar esta solicitud!"
msgid "Thank you for updating your profile photo"
msgstr "Gracias por actualizar tu foto de perfil"
+msgid "Thank you! We'll look into what happened and try and fix it up."
+msgstr ""
+
msgid "Thanks for helping - your work will make it easier for everyone to find successful\\nresponses, and maybe even let us make league tables..."
msgstr ""
"Gracias por ayudar - tu trabajo hace más sencillo que otros encuentren solicitudes\n"
@@ -2271,22 +2332,22 @@ msgstr "La solicitud fue <strong>exitosa</strong>."
msgid "The request was refused by the public authority"
msgstr "La solicitud ha sido rechazada por el organismo"
-msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"%s\">contact us</a> if you have any questions."
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
msgstr ""
"La solicitud que has intentado ver ha sido eliminada. Hay\n"
"varios posibles motivos para esto, pero no podemos ser más específicos aquí. Por favor <a\n"
-" href=\"%s\">contáctanos</a> si tiene cualquier pregunta."
+" href=\"{{url}}\">contáctanos</a> si tiene cualquier pregunta."
msgid "The requester has abandoned this request for some reason"
msgstr "El creador de la solicitud la ha cancelado por algún motivo"
-msgid "The response to your request has been <strong>delayed</strong>. You can say that, \\n by law, the authority should normally have responded\\n <strong>promptly</strong> and"
+msgid "The response to your request has been <strong>delayed</strong>. You can say that,\\n by law, the authority should normally have responded\\n <strong>promptly</strong> and"
msgstr ""
"La respuesta a tu solicitud ha sido <strong>retrasada</strong>.\n"
" Por ley, el organismo debería normalmente haber respondido\n"
" <strong>rápidamente</strong> y"
-msgid "The response to your request is <strong>long overdue</strong>. You can say that, by \\n law, under all circumstances, the authority should have responded\\n by now"
+msgid "The response to your request is <strong>long overdue</strong>. You can say that, by\\n law, under all circumstances, the authority should have responded\\n by now"
msgstr ""
"La respuesta a tu solicitud ha sido <strong>muy retrasada</strong>.\n"
" Por ley, bajo cualquier circunstancia, el organismo ya debería\n"
@@ -2298,6 +2359,9 @@ msgstr "El motor de búsqueda no está accesible en estos momentos: no podemos m
msgid "The search index is currently offline, so we can't show the Freedom of Information requests this person has made."
msgstr "El motor de búsqueda no está accesible en estos momentos: no podemos mostrar las solicitudes de información que ha hecho esta persona"
+msgid "The {{site_name}} team."
+msgstr ""
+
msgid "Then you can cancel the alert."
msgstr "Entonces podrás cancelar tu alerta."
@@ -2373,17 +2437,17 @@ msgstr "Entonces se enviará tu comentario a {{info_request_title}}."
msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
msgstr "Hay {{count}} comentarios en tu solicitud {{info_request}}. Sigue este enlace para leer lo que dicen."
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
-msgstr[0] "Hay %d persona siguiendo esta solicitud."
-msgstr[1] "Hay %d personas siguiendo esta solicitud."
-
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 ""
msgid "There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>."
msgstr "Hay un límite en el número de solicitudes que puedes hacer en un día, porque no queremos que los organismos públicos reciban un número exagerado de solicitudes mal formuladas. Si necesitas que el límite no se aplique en tu caso, por favor <a href='{{help_contact_path}}'>contacta con nosotros</a>."
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
+msgstr[0] "Hay {{count}} persona siguiendo esta solicitud."
+msgstr[1] "Hay {{count}} personas siguiendo esta solicitud."
+
msgid "There was a <strong>delivery error</strong> or similar, which needs fixing by the {{site_name}} team."
msgstr "Se ha producido un <strong>error en la entrega</strong> o similar, y necesita ser arreglado por el equipo de {{site_name}}."
@@ -2422,10 +2486,10 @@ msgstr "Pedidos que estas siguiendo"
msgid "This authority no longer exists, so you cannot make a request to it."
msgstr "Este organismo ya no existe, no pueden realizarse solicitudes de información."
-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."
+msgid "This comment has been hidden. See annotations to\\n find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
"Este respuesta está oculta. Revisa los comentarios\n"
-" para descubrir por qué. Si es tu solicitud, <a href=\"%s\">abre una sesión</a> para ver la respuesta."
+" para descubrir por qué. Si es tu solicitud, <a href=\"{{url}}\">abre una sesión</a> para ver la respuesta."
msgid "This covers a very wide spectrum of information about the state of\\n the <strong>natural and built environment</strong>, such as:"
msgstr ""
@@ -2446,13 +2510,16 @@ msgstr ""
"Esto es porque {{title}} es una solicitud antigua\n"
"marcada para ya no recibir más respuestas."
+msgid "This is the first version."
+msgstr ""
+
msgid "This is your own request, so you will be automatically emailed when new responses arrive."
msgstr "Esta es tu solicitud, por lo que recibirás correos automáticamente cuando lleguen nuevas respuestas."
-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."
+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=\"{{url}}\">sign in</a> to view the response."
msgstr ""
"Este mensaje está oculto. Lee los comentarios\n"
-"\t\t\t\t\t\tpara descubrir por qué. Si es tu solicitud, <a href=\"%s\">abra una sesión</a> para ver la respuesta."
+"\t\t\t\t\t\tpara descubrir por qué. Si es tu solicitud, <a href=\"{{url}}\">abra una sesión</a> para ver la respuesta."
msgid "This particular request is finished:"
msgstr "Esta solicitud está cerrada:"
@@ -2460,19 +2527,19 @@ msgstr "Esta solicitud está cerrada:"
msgid "This person has made no Freedom of Information requests using this site."
msgstr "Esta persona no ha realizado solicitudes de información usando esta web."
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
-msgstr[0] "Tu %d solicitud de información"
-msgstr[1] "Tus %d solicitudes de información"
-
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
-msgstr[0] "Tu %d comentario"
-msgstr[1] "Tus %d comentarios"
-
msgid "This person's annotations"
msgstr "Tus comentarios"
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
+msgstr[0] "Tu {{count}} solicitud de información"
+msgstr[1] "Tus {{count}} solicitudes de información"
+
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
+msgstr[0] "Tu {{count}} comentario"
+msgstr[1] "Tus {{count}} comentarios"
+
msgid "This request <strong>requires administrator attention</strong>"
msgstr "Esta solicitud <strong>requiere la intervención de un administrador</strong>"
@@ -2496,8 +2563,8 @@ msgstr ""
"Esta solicitud ha sido <strong>retirada</strong> por la persona que la realizó. \n"
" \t Puede que haya una explicación en los mensajes a continuación."
-msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"%s\">contact us</a>."
-msgstr "Esta solicitud va a ser revisada por los administradores de la web, que no la han ocultado de momento. Si crees que debe ser ocultada, por favor <a href=\"%s\">contáctanos</a>."
+msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Esta solicitud va a ser revisada por los administradores de la web, que no la han ocultado de momento. Si crees que debe ser ocultada, por favor <a href=\"{{url}}\">contáctanos</a>."
msgid "This request has been reported for administrator attention"
msgstr "Este pedido ha sido reportado al administrador del sitio."
@@ -2513,21 +2580,24 @@ msgstr ""
"Esta solicitud tiene visibilidad 'oculta'. Puedes verla sólo porque estás identificado\n"
" como super-usuario."
-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."
+msgid "This request is hidden, so that only you the requester can see it. Please\\n <a href=\"{{url}}\">contact us</a> if you are not sure why."
msgstr ""
"Esta solicitud está oculta, por lo que sólo tú como creador puedes verla. Por favor\n"
-" <a href=\"%s\">contáctanos</a> si no estás seguro de por qué."
+" <a href=\"{{url}}\">contáctanos</a> si no estás seguro de por qué."
msgid "This request is still in progress:"
msgstr "Esta solicitud está todavía en proceso:"
+msgid "This request requires administrator attention"
+msgstr ""
+
msgid "This request was not made via {{site_name}}"
msgstr ""
-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."
+msgid "This response has been hidden. See annotations to find out why.\\n If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
"Este respuesta está oculta. Revisa los comentarios\n"
-" para descubrir por qué. Si es tu solicitud, <a href=\"%s\">abre una sesión</a> para ver la respuesta."
+" para descubrir por qué. Si es tu solicitud, <a href=\"{{url}}\">abre una sesión</a> para ver la respuesta."
msgid "This table shows the technical details of the internal events that happened\\nto this request on {{site_name}}. This could be used to generate information about\\nthe speed with which authorities respond to requests, the number of requests\\nwhich require a postal response and much more."
msgstr ""
@@ -2695,11 +2765,11 @@ msgstr "Se encontró un tipo de resultado inesperado"
msgid "Unexpected search result type "
msgstr "Se encontró un tipo de resultado inesperado "
-msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"%s\">contact us</a> to sort it out."
+msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"{{url}}\">contact us</a> to sort it out."
msgstr ""
"Desgraciadamente no tenemos la dirección\n"
"de correo para este organismo, así que no podemos validarlo.\n"
-"Por favor <a href=\"%s\">contáctenos</a> para arreglarlo."
+"Por favor <a href=\"{{url}}\">contáctenos</a> para arreglarlo."
msgid "Unfortunately, we do not have a working {{info_request_law_used_full}}\\naddress for"
msgstr "Desgraciadamente, no tenemos una dirección de correo válida para"
@@ -2734,6 +2804,9 @@ msgstr "usuario"
msgid "User info request sent alert"
msgstr "Alerta de informacion de usuario enviada"
+msgid "User – {{name}}"
+msgstr ""
+
msgid "UserInfoRequestSentAlert|Alert type"
msgstr "UserInfoRequestSentAlert|Alert type"
@@ -2788,6 +2861,9 @@ msgstr "User|Salt"
msgid "User|Url name"
msgstr "User|Url name"
+msgid "Version {{version}}"
+msgstr ""
+
msgid "View FOI email address"
msgstr "Ver dirección de correo"
@@ -2827,6 +2903,12 @@ msgstr "Esperando que el organismo responda"
msgid "Was the response you got to your FOI request any good?"
msgstr "¿Fue la respuesta a tu solicitud satisfactoria?"
+msgid "We consider it is not a valid FOI request, and have therefore hidden it from other users."
+msgstr ""
+
+msgid "We consider it to be vexatious, and have therefore hidden it from other users."
+msgstr ""
+
msgid "We do not have a working request email address for this authority."
msgstr "No tenemos una dirección de correo válida para este organismo."
@@ -2840,10 +2922,10 @@ msgstr ""
" &ndash;\n"
"\tsi eres {{user_link}} por favor <a href=\"{{url}}\">abre una sesión</a> y háznoslo saber."
-msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"%s\">details</a>). "
+msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"{{url}}\">details</a>). "
msgstr ""
"No revelaremos tu dirección de correo a nadie salvo que tú nos lo digas\n"
-" o la ley nos obligue (<a href=\"%s\">más información</a>). "
+" o la ley nos obligue (<a href=\"{{url}}\">más información</a>). "
msgid "We will not reveal your email address to anybody unless you\\nor the law tell us to."
msgstr ""
@@ -2896,8 +2978,8 @@ msgstr ""
"Cuando reciba la respuesta en papel, por favor ayude\n"
" a que otros sepan lo que dice:"
-msgid "When you're done, <strong>come back here</strong>, <a href=\"%s\">reload this page</a> and file your new request."
-msgstr "Cuando esté listo, <strong>vuelva aquí</strong>, <a href=\"%s\">recargue esta página</a> y cree una nueva solicitud."
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
+msgstr "Cuando esté listo, <strong>vuelva aquí</strong>, <a href=\"{{url}}\">recargue esta página</a> y cree una nueva solicitud."
msgid "Which of these is happening?"
msgstr "¿Qué está pasando?"
@@ -3005,11 +3087,11 @@ msgstr "Sabes lo que ha causado el error, y puedes <strong>sugerir una solución
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 ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
"Puede que encuentres una\n"
" en su página web, o preguntando por teléfono. Si la consigues\n"
-" por favor <a href=\"%s\">envíanosla</a>."
+" por favor <a href=\"{{url}}\">envíanosla</a>."
msgid "You may be able to find\\none on their website, or by phoning them up and asking. If you manage\\nto find one, then please <a href=\"{{help_url}}\">send it to us</a>."
msgstr ""
@@ -3055,6 +3137,9 @@ msgstr ""
"Sólo recibirás una respuesta a tu solicitud si continúas\n"
"con la aclaración."
+msgid "You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further."
+msgstr ""
+
msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
msgstr ""
@@ -3067,23 +3152,13 @@ msgstr "No estás recibiendo actualizaciones por correo."
msgid "You've now cleared your profile photo"
msgstr "Has borrado la foto de tu perfil"
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
-msgstr[0] "Tu %d solicitud de información"
-msgstr[1] "Tus %d solicitudes de información"
-
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
-msgstr[0] "Tu %d comentario"
-msgstr[1] "Tus %d comentarios"
-
-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>."
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
msgstr ""
"<strong>Tu nombre aparecerá públicamente</strong> \n"
-" (<a href=\"%s\">¿por qué?</a>)\n"
+" (<a href=\"{{why_url}}\">¿por qué?</a>)\n"
" en esta web y en motores de búsqueda. Si estás\n"
" pensando en utilizar un seudónimo, por favor \n"
-" <a href=\"%s\">lee esto primero</a>."
+" <a href=\"{{help_url}}\">lee esto primero</a>."
msgid "Your annotations"
msgstr "Tus comentarios"
@@ -3094,8 +3169,8 @@ msgstr ""
msgid "Your e-mail:"
msgstr "Tu correo:"
-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 "Tu respuesta no ha sido enviada porque esta solicitud ha sido bloqueada para evitar spam. Por favor <a href=\"%s\">contáctanos</a> si realmente quieres enviar una respuesta."
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
+msgstr "Tu respuesta no ha sido enviada porque esta solicitud ha sido bloqueada para evitar spam. Por favor <a href=\"{{url}}\">contáctanos</a> si realmente quieres enviar una respuesta."
msgid "Your follow up message has been sent on its way."
msgstr "Tu mensaje está en camino."
@@ -3118,10 +3193,10 @@ msgstr "Tu mensaje aparecerá en <strong>los motores de búsqueda</strong>"
msgid "Your name and annotation will appear in <strong>search engines</strong>."
msgstr "Tu nombre y su comentario aparecerán en los <strong>motores de búsqueda</strong>."
-msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"%s\">details</a>)."
+msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"{{url}}\">details</a>)."
msgstr ""
"Tu nombre, tu solicitud y cualquier respuesta aparecerán en los <strong>motores de búsqueda</strong>\n"
-" (<a href=\"%s\">detalles</a>)."
+" (<a href=\"{{url}}\">detalles</a>)."
msgid "Your name:"
msgstr "Tu nombre:"
@@ -3138,6 +3213,12 @@ msgstr "Tu contraseña:"
msgid "Your photo will be shown in public <strong>on the Internet</strong>,\\n wherever you do something on {{site_name}}."
msgstr ""
+msgid "Your request '{{request}}' at {{url}} has been reviewed by moderators."
+msgstr ""
+
+msgid "Your request on {{site_name}} hidden"
+msgstr ""
+
msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
msgstr "Tu solicitud se llamaba {{info_request}}. Haznos saber si has recibido la información para ayudarnos a controlar a"
@@ -3147,12 +3228,22 @@ msgstr "Tu solicitud:"
msgid "Your response to an FOI request was not delivered"
msgstr ""
-msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"%s\">read why</a> and answers to other questions."
-msgstr "Tu respuesta <strong>aparecerá en Internet</strong>, <a href=\"%s\">lee por qué</a> y respuestas a otras preguntas."
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
+msgstr "Tu respuesta <strong>aparecerá en Internet</strong>, <a href=\"{{url}}\">lee por qué</a> y respuestas a otras preguntas."
msgid "Your thoughts on what the {{site_name}} <strong>administrators</strong> should do about the request."
msgstr "Opine sobre lo que los <strong>administradores</strong> de {{site_name}} deberían hacer con la solicitud."
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
+msgstr[0] "Tu {{count}} solicitud de información"
+msgstr[1] "Tus {{count}} solicitudes de información"
+
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
+msgstr[0] "Tu {{count}} comentario"
+msgstr[1] "Tus {{count}} comentarios"
+
msgid "Your {{site_name}} email alert"
msgstr "Tu alerta en {{site_name}}"
@@ -3162,6 +3253,9 @@ msgstr "Un saludo,"
msgid "Yours sincerely,"
msgstr "Un saludo,"
+msgid "Yours,"
+msgstr ""
+
msgid "[FOI #{{request}} email]"
msgstr "[Dirección de correo de la solicitud #{{request}}]"
@@ -3182,6 +3276,9 @@ msgstr ""
msgid "admin"
msgstr "admin"
+msgid "alaveteli_foi:The software that runs {{site_name}}"
+msgstr ""
+
msgid "all requests"
msgstr "todas las solicitudes"
@@ -3215,6 +3312,9 @@ msgstr "cualquiera"
msgid "are long overdue."
msgstr "están muy retrasados."
+msgid "at"
+msgstr ""
+
msgid "authorities"
msgstr "organismos"
@@ -3227,6 +3327,9 @@ msgstr "comenzando con ‘{{first_letter}}’"
msgid "between two dates"
msgstr "entre dos fechas"
+msgid "but followupable"
+msgstr ""
+
msgid "by"
msgstr "antes de"
@@ -3310,19 +3413,25 @@ msgstr "mensajes de organismos"
msgid "messages from users"
msgstr "mensajes de usuarios"
+msgid "move..."
+msgstr ""
+
msgid "no later than"
msgstr "no más tarde de"
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
"ya no existe. \n"
"Desde la página de la solicitud, intenta responder a un mensaje en concreto, en vez de\n"
" responder a la solicitud en general. Si necesitas hacerlo y tienes una dirección de\n"
-" correo válida, por favor <a href=\"%s\">mándanosla</a>."
+" correo válida, por favor <a href=\"{{url}}\">mándanosla</a>."
msgid "normally"
msgstr "normalmente"
+msgid "not requestable due to: {{reason}}"
+msgstr ""
+
msgid "please sign in as "
msgstr "por favor abra una sesión como "
@@ -3346,6 +3455,9 @@ msgstr "envíe un mensaje de seguimiento"
msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
msgstr "enviada a {{public_body_name}} por {{info_request_user}} el {{date}}."
+msgid "set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA"
+msgstr ""
+
msgid "show quoted sections"
msgstr "mostrar partes citadas"
@@ -3367,6 +3479,11 @@ msgstr "que hiciste a"
msgid "the main FOI contact address for {{public_body}}"
msgstr "la dirección de contacto de {{public_body}}"
+#. This phrase completes the following sentences:
+#. Request an internal review from...
+#. Send a public follow up message to...
+#. Send a public reply to...
+#. Don't want to address your message to... ?
msgid "the main FOI contact at {{public_body}}"
msgstr "el contacto en {{public_body}}"
@@ -3415,9 +3532,32 @@ msgstr "información útil."
msgid "users"
msgstr "usuarios"
+msgid "what's that?"
+msgstr "¿Qué es eso?"
+
msgid "{{count}} FOI requests found"
msgstr "{{count}} solicitudes de información encontradas"
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] "{{count}} solicitud de información a {{public_body_name}}"
+msgstr[1] "{{count}} solicitudes de información a {{public_body_name}}"
+
+msgid "{{count}} person is following this authority"
+msgid_plural "{{count}} people are following this authority"
+msgstr[0] "{{count}} persona esta siguiendo este organismo"
+msgstr[1] "{{count}} personas estan siguiendo este organismo"
+
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
+msgstr[0] "{{count}} solicitud"
+msgstr[1] "{{count}} solicitudes"
+
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
+msgstr[0] "{{count}} solicitud enviada."
+msgstr[1] "{{count}} solicitudes enviadas."
+
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 ""
"{{existing_request_user}} ya\n"
@@ -3478,6 +3618,9 @@ msgstr "{{site_name}} envía nuevas solicitudes a <strong>{{request_email}}</str
msgid "{{site_name}} users have made {{number_of_requests}} requests, including:"
msgstr "Los usuarios de {{site_name}} han hecho {{number_of_requests}} solicitudes, incluyendo:"
+msgid "{{thing_changed}} was changed from <code>{{from_value}}</code> to <code>{{to_value}}</code>"
+msgstr ""
+
msgid "{{title}} - a Freedom of Information request to {{public_body}}"
msgstr "{{title}} - una solicitud de información a {{public_body}}"
diff --git a/locale/eu/app.po b/locale/eu/app.po
index 9988043ac..7e90214d0 100644
--- a/locale/eu/app.po
+++ b/locale/eu/app.po
@@ -3,16 +3,16 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# David Cabo <david.cabo@gmail.com>, 2012.
-# <ertoba@yahoo.es>, 2012.
+# David Cabo <david.cabo@gmail.com>, 2012
+# sroberto <ertoba@yahoo.es>, 2012
msgid ""
msgstr ""
"Project-Id-Version: alaveteli\n"
"Report-Msgid-Bugs-To: http://github.com/sebbacon/alaveteli/issues\n"
-"POT-Creation-Date: 2012-12-18 10:11+0000\n"
-"PO-Revision-Date: 2012-12-18 10:14+0000\n"
+"POT-Creation-Date: 2013-05-30 09:46+0100\n"
+"PO-Revision-Date: 2013-05-30 08:54+0000\n"
"Last-Translator: louisecrow <louise@mysociety.org>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language-Team: Basque (http://www.transifex.com/projects/p/alaveteli/language/eu/)\n"
"Language: eu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -22,8 +22,8 @@ msgstr ""
msgid " This will appear on your {{site_name}} profile, to make it\\n easier for others to get involved with what you're doing."
msgstr " Hau zure {{site_name}} profilean agertuko da, beste pertsonek zure eskabideak ulertu eta parte har dezaten."
-msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)"
-msgstr " (<strong>eraso politikorik gabe</strong>, irakur ezazu gure <a href=\"%s\">moderazio politika</a>)"
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
+msgstr " (<strong>eraso politikorik gabe</strong>, irakur ezazu gure <a href=\"{{url}}\">moderazio politika</a>)"
msgid " (<strong>patience</strong>, especially for large files, it may take a while!)"
msgstr " (<strong>pazientzia</strong>, batez ere fitxategi handiekin, hainbat minutu behar dezakete eta!)"
@@ -54,9 +54,9 @@ msgstr " Eskabidea <strong>ahalik eta hoberen</strong> argitzeko aholkua."
msgid " Ideas on what <strong>other documents to request</strong> which the authority may hold. "
msgstr " Erakunde publikoak izan ditzaketen <strong> beste agiriak eskatzeko </strong> ideiak. "
-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."
+msgid " If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\\n You may be able to find the address on their website, or by phoning them up and asking."
msgstr ""
-" Erabili behar den helbidea baldin badakizu, orduan mesedez <a href=\"%s\">bidal iezaguzu</a>.\n"
+" Erabili behar den helbidea baldin badakizu, orduan mesedez <a href=\"{{url}}\">bidal iezaguzu</a>.\n"
" Agian haien weg orrialdean aurki dezakezu, edo telefonoz deitu eta galdetzen badiezu."
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."
@@ -95,21 +95,6 @@ msgstr " Mezu hau bidali duzunean."
msgid "\"Hello! We have an <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">important message</a> for visitors outside {{country_name}}\""
msgstr ""
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
-msgstr[0] "_____ %d -ri egindako informazio eskabidea %s"
-msgstr[1] "_______ %d -ri egindako informazio eskabideak %s"
-
-msgid "%d request"
-msgid_plural "%d requests"
-msgstr[0] "%d eskabidea"
-msgstr[1] "%d eskabideak"
-
-msgid "%d request made."
-msgid_plural "%d requests made."
-msgstr[0] "%d eskabidea bidalita."
-msgstr[1] "%d eskabideak bidalita."
-
msgid "'Crime statistics by ward level for Wales'"
msgstr "'Espainiako krimen estatistika, eskualdeka'"
@@ -125,6 +110,9 @@ msgstr "'{{link_to_request}}', eskabide bat"
msgid "'{{link_to_user}}', a person"
msgstr "'{{link_to_user}}', pertsona bat"
+msgid "*unknown*"
+msgstr ""
+
msgid ",\\n\\n\\n\\nYours,\\n\\n{{user_name}}"
msgstr ""
",\n"
@@ -147,32 +135,14 @@ msgstr "2. Eskatu informazioa"
msgid "3. Now check your request"
msgstr "3. Berrikusi zure eskabidea"
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
-msgstr "<a href=\"%s\">Gehitu azalpenen bat</a> (eskatzaileari edo besteei laguntzearren)"
-
-msgid "<a href=\"%s\">Are we missing a public authority?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Are you the owner of\\n any commercial copyright on this page?</a>"
-msgstr "<a href=\"%s\">Orrialde honetako infomazioaren eskubideak dituzu zuk?</a>"
-
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
-msgstr "<a href=\"%s\">Guztiak ikusi</a> o <a href=\"%s\">eskatu beste bat gehitzeko</a>."
-
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
-msgstr "<a href=\"%s\">Ez duzu bilatzen ari zaren hori aurkitzen?</a>"
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
+msgstr "<a href=\"{{browse_url}}\">Guztiak ikusi</a> o <a href=\"{{add_url}}\">eskatu beste bat gehitzeko</a>."
-msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
-msgstr "<a href=\"%s\">Ireki saioa</a> zure pasahitza aldatzeko, inskribatzeko... ({{user_name}} bakarrik)"
+msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)"
+msgstr "<a href=\"{{url}}\">Gehitu azalpenen bat</a> (eskatzaileari edo besteei laguntzearren)"
-msgid "<a href=\"%s\">details</a>"
-msgstr "<a href=\"%s\">xehetasunak</a>"
-
-msgid "<a href=\"%s\">what's that?</a>"
-msgstr "<a href=\"%s\">Zer da hau?</a>"
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
+msgstr "<a href=\"{{url}}\">Ireki saioa</a> zure pasahitza aldatzeko, inskribatzeko... ({{user_name}} bakarrik)"
msgid "<p>All done! Thank you very much for your help.</p><p>There are <a href=\"{{helpus_url}}\">more things you can do</a> to help {{site_name}}.</p>"
msgstr "<p>Eginda dago! Eskerrik asko zure laguntzagatik.</p> {{site_name}} laguntzeko<p>badaude<a href=\"{{helpus_url}}\">egin ditzakezun gauza gehiago</a>.</p>"
@@ -191,9 +161,6 @@ msgstr ""
msgid "<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>"
msgstr "<p>Eskerrik asko! Espero dugu ez duzula luze itxaron behar izango.</p><p>Erantzuna {{late_number_of_days}} egunetan jaso behar izango zenuke, edo erantzuna beranduago helduko zela jakinarazi beharko lizukete (<a href=\"{{review_url}}\">informazio gehago</a>).</p>"
-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 "<p>Eskerrik asko! Gertatutakoa ikertuko dugu eta saiatuko gara konpontzen.</p><p> Hutsunea posta ematean gertatu baldin bada, eta erakunde honetako helbide gaurkotuagoa aurkitu ahal baduzu, mesedez, adieraz iezaguzu ondoko inprimakian.</p>"
-
msgid "<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>"
msgstr "<p>Eskerrik asko! Zure eskabidea atzeratuta dabil, {{very_late_number_of_days}} lan egun baino gehiago igaro dira. Eskabide gehienek erantzuna jaso beharko lukete {{late_number_of_days}} lan egunetan. Atzerapen hau dela eta, erreklamazioa egin dezakezu, beherago azaltzen den moduan.</p>"
@@ -218,11 +185,11 @@ msgstr "<p>Pozgarria da eskatu zenuen informazioa jaso duzula jakitea. Horri bur
msgid "<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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 "<p>Pozgarria da eskatu zenuen informazioa jaso duzula jakitea. Horri buruz idazten baduzu edo erabiltzen baduzu, mesedez itzul zaitez hona eta jarraian gehitu iruzkin bat, zer egin duzun azalduz.</p><p>{{site_name}} erabilgarria izan baldin bada,dagokion GKE<a href=\"{{donation_url}}\">diruz lagundu</a> ahal duzu.</p>"
-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 "<p>Eskabidean ez duzu zure posta elektronikoaren helbidea sartu behar, erantzuna jasotzeko (<a href=\"%s\">más detalles</a>).</p>"
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
+msgstr "<p>Eskabidean ez duzu zure posta elektronikoaren helbidea sartu behar, erantzuna jasotzeko (<a href=\"{{url}}\">más detalles</a>).</p>"
-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 "<p>Eskabidean ez duzu zure posta elektronikoaren helbidea sartu behar, erantzuna jasotzeko, ondoko urratsean eskatuko dizugu (<a href=\"%s\">xehetasun gehiago</a>).</p>"
+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=\"{{url}}\">details</a>).</p>"
+msgstr "<p>Eskabidean ez duzu zure posta elektronikoaren helbidea sartu behar, erantzuna jasotzeko, ondoko urratsean eskatuko dizugu (<a href=\"{{url}}\">xehetasun gehiago</a>).</p>"
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 "<p>Zure eskabideak <strong>posta kodea</strong> dakar. Eskabidearekin zerikusi zuzena izan ezean, mesedez ezaba ezazu edozein helbide, ya que <strong>Interneten guztion eskura</strong> egongo da eta.</p>"
@@ -238,15 +205,10 @@ msgstr ""
"<small>Web posta erabiltzen baduzu eta \"anti spam\" iragazkiak baldin badizutu, mesedez begira ezazu zure spam zorroan. Batzuetan, gure mezuak honela markatzen dira, akatsez.</small>\n"
"</p>"
-msgid "<span id='follow_count'>%d</span> person is following this authority"
-msgid_plural "<span id='follow_count'>%d</span> people are following this authority"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
+msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
msgstr ""
"<strong> Neure buruaz eska dezaket informazioa?</strong>\n"
-"\t\t\t<a href=\"%s\">Ez! (sakatu hemen xehetasun gehiagorako)</a>"
+"\t\t\t<a href=\"{{url}}\">Ez! (sakatu hemen xehetasun gehiagorako)</a>"
msgid "<strong><code>commented_by:tony_bowden</code></strong> to search annotations made by Tony Bowden, typing the name as in the URL."
msgstr "<strong><code>commented_by:rafael_nadal</code></strong> 'rafael_nadal' erabiltzaileak egindako iruzkinak bilatzeko."
@@ -303,8 +265,8 @@ msgstr ""
"<strong>Oharra:</strong>\n"
" Posta bat bidaliko dugu posta helbide berrira. Jarraitu argibideei helbide berria egiaztatzeko."
-msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"%s\">click here</a>."
-msgstr "<strong>Pribatutasun oharra:</strong> Zeure buruaz informazio pribatua eskatu nahi izanez gero, orduan <a href=\"%s\">jarraitu esteka honi</a>."
+msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"{{url}}\">click here</a>."
+msgstr "<strong>Pribatutasun oharra:</strong> Zeure buruaz informazio pribatua eskatu nahi izanez gero, orduan <a href=\"{{url}}\">jarraitu esteka honi</a>."
msgid "<strong>Privacy note:</strong> Your photo will be shown in public on the Internet,\\n wherever you do something on {{site_name}}."
msgstr ""
@@ -345,6 +307,9 @@ msgstr "erantzuna <strong>posta arruntean</strong> bidaliko da."
msgid "A strange reponse, required attention by the {{site_name}} team"
msgstr "Ez-ohiko erantzuna, {{site_name}} orrialdeko taldeak berraztertu behar du."
+msgid "A vexatious request"
+msgstr ""
+
msgid "A {{site_name}} user"
msgstr "{{site_name}} orrialdeko erabiltzailea."
@@ -354,6 +319,15 @@ msgstr "Zeure buruaz:"
msgid "Act on what you've learnt"
msgstr "Erabil ezazu informazio hau"
+msgid "Acts as xapian/acts as xapian job"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Action"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Model"
+msgstr ""
+
msgid "Add an annotation"
msgstr "Gehitu iruzkina"
@@ -434,11 +408,20 @@ msgstr ""
msgid "Anyone:"
msgstr "Edozein:"
+msgid "Applies to"
+msgstr ""
+
+msgid "Are we missing a public authority?"
+msgstr ""
+
+msgid "Are you the owner of any commercial copyright on this page?"
+msgstr "Orrialde honetako infomazioaren eskubideak dituzu zuk?"
+
msgid "Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries."
msgstr "Eska itzatzu agiriak edo informazio <strong>zehatza</strong>, web orrialde hau ez dago zalantza orokorrak argitzeko pentsatuta."
-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 "Orrialde honen amaieran, idatz ezazu erantzuna, eskanea dezaten konbentzitzeko (<a href=\"%s\">xehetasun gehiago</a>)."
+msgid "At the bottom of this page, write a reply to them trying to persuade them to scan it in\\n (<a href=\"{{url}}\">more details</a>)."
+msgstr "Orrialde honen amaieran, idatz ezazu erantzuna, eskanea dezaten konbentzitzeko (<a href=\"{{url}}\">xehetasun gehiago</a>)."
msgid "Attachment (optional):"
msgstr "Gehigarriak (aukerakoa):"
@@ -473,6 +456,12 @@ msgstr "Legearen arabera, edozein zirkunstantzia dela, {{public_body_link}}k jad
msgid "By law, {{public_body_link}} should normally have responded <strong>promptly</strong> and"
msgstr "Legearen arabera, {{public_body_link}}k jada erantzun behar izango zukeen <strong>laster</strong> eta"
+msgid "Calculated home page"
+msgstr ""
+
+msgid "Can't find the one you want?"
+msgstr "Ez duzu bilatzen ari zaren hori aurkitzen?"
+
msgid "Cancel a {{site_name}} alert"
msgstr "Baliogabetu {{site_name}}-ren alerta"
@@ -638,9 +627,15 @@ msgstr "Orain {{public_body_link}}-eko <strong>erantzunaren zain</strong> gaude,
msgid "Date:"
msgstr "Data:"
+msgid "Dear {{name}},"
+msgstr ""
+
msgid "Dear {{public_body_name}},"
msgstr "{{public_body_name}} agurgarria,"
+msgid "Default locale"
+msgstr ""
+
msgid "Delayed response to your FOI request - "
msgstr "Zure informaziorako sarbidearen eskabidea atzeratuta dabil - "
@@ -650,6 +645,9 @@ msgstr "Atzeratuta."
msgid "Delivery error"
msgstr "Akatsa ematean"
+msgid "Destroy {{name}}"
+msgstr ""
+
msgid "Details of request '"
msgstr "Eskabidearen xehetasunak '"
@@ -662,6 +660,9 @@ msgstr "Kontuz: mezu hau eta egingo duzun edozein erantzun Interneten argitaratu
msgid "Disclosure log"
msgstr ""
+msgid "Disclosure log URL"
+msgstr ""
+
msgid "Don't want to address your message to {{person_or_body}}? You can also write to:"
msgstr "Mezu bat bidali nahi diozu {{person_or_body}}-ri? Hona ere idatzi ahal diozu:"
@@ -680,12 +681,12 @@ msgstr "Ondoan datozen fitxategiak deskargatu"
msgid "EIR"
msgstr "EIR"
+msgid "Edit"
+msgstr ""
+
msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
msgstr "Editatu eta gehitu <strong>xehetasun gehiago</strong> aurreko mezuari, zergatik ez zauden erantzunarekin pozik azalduz."
-msgid "Edit language version:"
-msgstr "Editatu beste hizkuntzaren bertsioa:"
-
msgid "Edit text about you"
msgstr "Editatu zuri buruzko testua"
@@ -707,7 +708,7 @@ msgstr "Eskabide honen gaurkotzeak emailez jaso nahi ditut"
msgid "Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>"
msgstr "Sartu nahi dituzun hitzak, espazio batez bananduta, hau da <strong>parlamentua gastua</strong>"
-msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"%s\">contact us</a> if you need more)."
+msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"{{url}}\">contact us</a> if you need more)."
msgstr ""
msgid "Environmental Information Regulations"
@@ -725,14 +726,17 @@ msgstr "Gertaera historia"
msgid "Event history details"
msgstr "Gertaera historia"
-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 "Orrialde honetan idatziko duzun guztia <strong>irakurleen eskuragarri</strong> egongo da betiko (<a href=\"%s\">¿por qué?</a>)."
+msgid "Event {{id}}"
+msgstr ""
-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>)."
+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=\"{{url}}\">why?</a>)."
msgstr ""
"Orrialde honetan idatziko duzun guztia, <strong>zure izena</strong> barne, \n"
" <strong>irakurleen eskuragarri</strong> egongo da betiko\n"
-" (<a href=\"%s\">¿por qué?</a>)."
+" (<a href=\"{{url}}\">¿por qué?</a>)."
+
+msgid "Everything that you enter on this page\\n will be <strong>displayed publicly</strong> on\\n this website forever (<a href=\"{{url}}\">why?</a>)."
+msgstr "Orrialde honetan idatziko duzun guztia <strong>irakurleen eskuragarri</strong> egongo da betiko (<a href=\"{{url}}\">¿por qué?</a>)."
msgid "FOI"
msgstr "FOI"
@@ -740,6 +744,9 @@ msgstr "FOI"
msgid "FOI email address for {{public_body}}"
msgstr " {{public_body}}-rako posta helbidea"
+msgid "FOI request – {{title}}"
+msgstr ""
+
msgid "FOI requests"
msgstr "Informazio eskabideak"
@@ -755,14 +762,14 @@ msgstr ""
msgid "Failed to convert image to a PNG"
msgstr "Irudia PNG formatura bihurtzean huts egin da"
-msgid "Failed to convert image to the correct size: at %{cols}x%{rows}, need %{width}x%{height}"
-msgstr "Irudia behar bezalako tamainera bihurtzean huts egin da:: %{cols}x%{rows} da, %{width}x%{height} izan beharko luke."
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
+msgstr "Irudia behar bezalako tamainera bihurtzean huts egin da:: {{cols}}x{{rows}} da, {{width}}x{{height}} izan beharko luke."
msgid "Filter"
msgstr "Iragazi"
-msgid "First, type in the <strong>name of the UK public authority</strong> you'd \\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"%s#%s\">why?</a>)."
-msgstr "Lehenbizi, idatz ezazu informazioa eskatu nahi diozun <strong>erakundearen izena</strong>. <strong>Erantzuna eman behar dute</strong> (<a href=\"%s#%s\">zergatik?</a>)."
+msgid "First, type in the <strong>name of the UK public authority</strong> you'd\\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"{{url}}\">why?</a>)."
+msgstr "Lehenbizi, idatz ezazu informazioa eskatu nahi diozun <strong>erakundearen izena</strong>. <strong>Erantzuna eman behar dute</strong> (<a href=\"{{url}}\">zergatik?</a>)."
msgid "Foi attachment"
msgstr ""
@@ -842,8 +849,8 @@ msgstr "Ez dakigun arrazoia dela eta, erakunde honi eskabidea egitea ezinezkoa d
msgid "Forgotten your password?"
msgstr "Zure pasahitza ahaztu al duzu?"
-msgid "Found %d public authority %s"
-msgid_plural "Found %d public authorities %s"
+msgid "Found {{count}} public authority {{description}}"
+msgid_plural "Found {{count}} public authorities {{description}}"
msgstr[0] ""
msgstr[1] ""
@@ -880,8 +887,8 @@ msgstr "_______-ra egin diren informazio eskabideak"
msgid "From"
msgstr ""
-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 "Eskabidearen orrialdetik, saia zaitez mezu zehatz bati erantzuten, orokorrean eskabideari baino. Egin behar izanez gero eta posta helbide baliagarria baldin baduzu, mesedez <a href=\"%s\">bidal iezaguzu</a>."
+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=\"{{url}}\">send it to us</a>."
+msgstr "Eskabidearen orrialdetik, saia zaitez mezu zehatz bati erantzuten, orokorrean eskabideari baino. Egin behar izanez gero eta posta helbide baliagarria baldin baduzu, mesedez <a href=\"{{url}}\">bidal iezaguzu</a>."
msgid "From:"
msgstr "Nondik:"
@@ -892,6 +899,18 @@ msgstr "ZEHAZTU HEMEN ZURE KEXA"
msgid "Handled by post."
msgstr "Posta arruntaren bidez bidalita"
+msgid "Has tag string/has tag string tag"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Model"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Name"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Value"
+msgstr ""
+
msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
msgstr "Kaixo! {{country_name}}-ean egin ahal dituzu informazio eskabideak {{link_to_website}} erabiliz."
@@ -913,6 +932,9 @@ msgstr "Hauxe da idatzi duzun mezua, agian testua kopiatu eta gerorako gorde nah
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 "Kaixo! Zure laguntza behar dugu. Ondoko eskabidea egin zuen pertsonak ez digu jakinarazi arrakasta izan zuen ala ez. Badituzu minutu batzuk irakurtzeko eta sailkatzeko, guztion onurarako? Eskerrik asko."
+msgid "Hide request"
+msgstr ""
+
msgid "Holiday"
msgstr ""
@@ -925,6 +947,9 @@ msgstr "Holiday|Description"
msgid "Home"
msgstr "Hasiera"
+msgid "Home page"
+msgstr ""
+
msgid "Home page of authority"
msgstr "Erakundearen webgunea"
@@ -975,25 +1000,34 @@ msgstr "<strong>Informazioaren zati bat</strong> jaso dut"
msgid "I've received an <strong>error message</strong>"
msgstr "<strong>Errore mezua</strong> jaso dut"
-msgid "If the address is wrong, or you know a better address, please <a href=\"%s\">contact us</a>."
-msgstr "Helbidea zuzena ez bada, edo helbide gaurkotua baldin badakizu, mesedez, jar zaitez gurekin <a href=\"%s\">harremanetan</a>."
+msgid "I've received an error message"
+msgstr ""
+
+msgid "Id"
+msgstr ""
+
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Helbidea zuzena ez bada, edo helbide gaurkotua baldin badakizu, mesedez, jar zaitez gurekin <a href=\"{{url}}\">harremanetan</a>."
+
+msgid "If the error was a delivery failure, and you can find an up to date FOI email address for the authority, please tell us using the form below."
+msgstr ""
msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
msgstr ""
"Zuzena ez bada, edo {{user}}-ri eskabideari edo beste gaiari buruzko erantzuna bidali nahi izango bazenio, orduan idatz ezazu, mesedez, \n"
"{{contact_email}}-ra, laguntza eskatuz."
-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 "Erakunde publikotik jaso duzun erantzunarekin pozik ez bazaude, apelatzeko eskubidea daukazu (<a href=\"%s\">xehetasunak</a>)."
+msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"{{url}}\">details</a>)."
+msgstr "Erakunde publikotik jaso duzun erantzunarekin pozik ez bazaude, apelatzeko eskubidea daukazu (<a href=\"{{url}}\">xehetasunak</a>)."
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
-msgstr "Oraindik arazoak baldin badituzu, mesedez, jar zaitez gurekin <a href=\"%s\">harremanetan</a>."
+msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Oraindik arazoak baldin badituzu, mesedez, jar zaitez gurekin <a href=\"{{url}}\">harremanetan</a>."
-msgid "If you are the requester, then you may <a href=\"%s\">sign in</a> to view the request."
-msgstr "Eskabidea zurea baldin bada, <a href=\"%s\">saio bat zabaldu</a> ahal duzu ikusteko."
+msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request."
+msgstr "Eskabidea zurea baldin bada, <a href=\"{{url}}\">saio bat zabaldu</a> ahal duzu ikusteko."
-msgid "If you are thinking of using a pseudonym,\\n please <a href=\"%s\">read this first</a>."
-msgstr "Goitizena erabili nahi izanez gero, mesedez <a href=\"%s\">lehenago irakur ezazu hau</a>."
+msgid "If you are thinking of using a pseudonym,\\n please <a href=\"{{url}}\">read this first</a>."
+msgstr "Goitizena erabili nahi izanez gero, mesedez <a href=\"{{url}}\">lehenago irakur ezazu hau</a>."
msgid "If you are {{user_link}}, please"
msgstr "Zu {{user_link}} baldin bazara, mesedez"
@@ -1034,6 +1068,9 @@ msgstr "Lehenago {{site_name}} erabili baldin baduzu"
msgid "If your browser is set to accept cookies and you are seeing this message,\\nthen there is probably a fault with our server."
msgstr "Zure nabigatzaileak cookiak onartzen baditu eta mezu hau ikusten baldin baduzu, gure zerbitzarian egon daiteke errorea."
+msgid "Incoming email address"
+msgstr ""
+
msgid "Incoming message"
msgstr ""
@@ -1148,14 +1185,20 @@ msgstr "Agian zure nabigatzailea \"cookiak\" ez onartzeko konfiguratuta dago, ed
msgid "Items matching the following conditions are currently displayed on your wall."
msgstr ""
+msgid "Items sent in last month"
+msgstr ""
+
msgid "Joined in"
msgstr "_____-ean erregistratua"
msgid "Joined {{site_name}} in"
msgstr "{{site_name}}-ean erregistratua"
-msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)."
-msgstr "Izan zaitez <strong>konkretua</strong>, nahi duzuna lortzeko aukera gehiago izango duzu (<a href=\"%s\">zergatik?</a>)."
+msgid "Just one more thing"
+msgstr ""
+
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
+msgstr "Izan zaitez <strong>konkretua</strong>, nahi duzuna lortzeko aukera gehiago izango duzu (<a href=\"{{url}}\">zergatik?</a>)."
msgid "Keywords"
msgstr "Hitz gakoak"
@@ -1172,9 +1215,27 @@ msgstr "Jakinaraz iezaguzu zer egiten ari zinen mezu hau agertu zenean, baita zu
msgid "Link to this"
msgstr "Esteka"
+msgid "List all"
+msgstr ""
+
msgid "List of all authorities (CSV)"
msgstr "Erakunde guztien zerrenda (CSV)"
+msgid "Listing FOI requests"
+msgstr ""
+
+msgid "Listing public authorities"
+msgstr ""
+
+msgid "Listing public authorities matching '{{query}}'"
+msgstr ""
+
+msgid "Listing tracks"
+msgstr ""
+
+msgid "Listing users"
+msgstr ""
+
msgid "Log in to download a zip file of {{info_request_title}}"
msgstr "Ireki ezazu saio bat {{info_request_title}}-eko ZIP fitxategia deskargatzeko"
@@ -1274,6 +1335,9 @@ msgstr "Izen hori beste norbait erabiltzen ari da"
msgid "New Freedom of Information requests"
msgstr "Informaziorako Sarbidearen eskabide berriak"
+msgid "New censor rule"
+msgstr ""
+
msgid "New e-mail:"
msgstr "Helbide berria:"
@@ -1319,6 +1383,9 @@ msgstr "Ez da emaitzik aurkitu."
msgid "No similar requests found."
msgstr "Ez da antzeko eskabiderik aurkitu."
+msgid "No tracked things found."
+msgstr ""
+
msgid "Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet."
msgstr "Oraindik inork ez dio {{public_body_name}}-ri informazio eskabiderik egin web honen bidez."
@@ -1328,6 +1395,9 @@ msgstr "Ez da emaitzik aurkitu."
msgid "None made."
msgstr "Ez da honelakorik egin."
+msgid "Not a valid FOI request"
+msgstr ""
+
msgid "Note that the requester will not be notified about your annotation, because the request was published by {{public_body_name}} on their behalf."
msgstr ""
@@ -1373,6 +1443,9 @@ msgstr "Pertsona bat aurkitu dugu"
msgid "One public authority found"
msgstr "Erakunde bat aurkitu dugu"
+msgid "Only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL – don't worry about breaking URLs through renaming, as the history is used to redirect"
+msgstr ""
+
msgid "Only requests made using {{site_name}} are shown."
msgstr "{{site_name}}-ren bidez egindako eskabideak baino ez da erakusten."
@@ -1445,8 +1518,8 @@ msgstr "Eskabideak sailkatzeko jolasean aritu nahi?"
msgid "Please"
msgstr "Mesedez"
-msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
-msgstr "Mesedez, jar zaitez gurekin <a href=\"%s\">harremanetan</a>, hau konpon dezagun."
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
+msgstr "Mesedez, jar zaitez gurekin <a href=\"{{url}}\">harremanetan</a>, hau konpon dezagun."
msgid "Please <strong>answer the question above</strong> so we know whether the "
msgstr "Mesedez, <strong>erantzun iezaiozu aurreko galderari</strong>, guk jakin dezagun ea"
@@ -1552,8 +1625,8 @@ msgstr "Mesedez, eska ezazu kategoria hauetako informazioa soilik, <strong>ez ga
msgid "Please select each of these requests in turn, and <strong>let everyone know</strong>\\nif they are successful yet or not."
msgstr "Mesedez, aukera itzazu eskabideak banan banan, eta <strong>jakinarazi </strong> arrakasta izan duten ala ez."
-msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature"
-msgstr "Mesedez, beheko aldean sinatu zure izenarekin, edo aldatu sinadura \"%{signoff}\""
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
+msgstr "Mesedez, beheko aldean sinatu zure izenarekin, edo aldatu sinadura \"{{signoff}}\""
msgid "Please sign in as "
msgstr "Mesedez, ireki saioa ___________ bezala"
@@ -1564,9 +1637,6 @@ msgstr ""
msgid "Please type a message and/or choose a file containing your response."
msgstr "Mesedez, idatz ezazu mezua edota aukera ezazu erantzuna dakarren fitxategia."
-msgid "Please use the form below to tell us more."
-msgstr "Mesedez, erabil ezazu ondoko inprimakia azalpen gehiago emateko."
-
msgid "Please use this email address for all replies to this request:"
msgstr "Mesedez, erabil ezazu ondoko helbidea eskabide honen erantzun guztietarako:"
@@ -1657,37 +1727,19 @@ msgstr "Erakunde publikoak - {{description}}"
msgid "Public authorities {{start_count}} to {{end_count}} of {{total_count}}"
msgstr "Erakunde publikoak {{start_count}}-etik {{end_count}}-era, guztira {{total_count}}"
-msgid "Public body"
-msgstr ""
-
-msgid "Public body/translation"
-msgstr ""
-
-msgid "PublicBody::Translation|Disclosure log"
-msgstr ""
-
-msgid "PublicBody::Translation|First letter"
-msgstr ""
-
-msgid "PublicBody::Translation|Locale"
+msgid "Public authority – {{name}}"
msgstr ""
-msgid "PublicBody::Translation|Name"
-msgstr ""
-
-msgid "PublicBody::Translation|Notes"
-msgstr ""
-
-msgid "PublicBody::Translation|Publication scheme"
+msgid "Public body"
msgstr ""
-msgid "PublicBody::Translation|Request email"
+msgid "Public notes"
msgstr ""
-msgid "PublicBody::Translation|Short name"
+msgid "Public page"
msgstr ""
-msgid "PublicBody::Translation|Url name"
+msgid "Public page not available"
msgstr ""
msgid "PublicBody|Api key"
@@ -1735,6 +1787,9 @@ msgstr "Versión"
msgid "Publication scheme"
msgstr "Argitaratzeko eskema"
+msgid "Publication scheme URL"
+msgstr ""
+
msgid "Purge request"
msgstr ""
@@ -1794,6 +1849,9 @@ msgstr "Eskatu barneko berrikusketa"
msgid "Request an internal review from {{person_or_body}}"
msgstr "{{person_or_body}}-ri barneko berrikusketa eskatu."
+msgid "Request email"
+msgstr ""
+
msgid "Request has been removed"
msgstr "Eskabidea ezabatuta dago"
@@ -1887,14 +1945,17 @@ msgstr "Bilaketaren emaitzak"
msgid "Search the site to find what you were looking for."
msgstr "Bilatu web honetan bilatzen ari zarena aurkitzeko."
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
-msgstr[0] "Bilatu ______-ri egindako %d informazio eskabidean %s"
-msgstr[1] "Bilatu ______-ri egindako %d informazio eskabideetan %s"
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests made to {{public_body_name}}"
+msgstr[0] "Bilatu ______-ri egindako {{count}} informazio eskabidean {{public_body_name}}"
+msgstr[1] "Bilatu ______-ri egindako {{count}} informazio eskabideetan {{public_body_name}}"
msgid "Search your contributions"
msgstr "Bilatu zure ekarpenak"
+msgid "See bounce message"
+msgstr ""
+
msgid "Select one to see more information about the authority."
msgstr "Aukera ezazu bat erakunde honi buruzko informazio gehiago ikusteko"
@@ -1928,6 +1989,9 @@ msgstr "Bidali eskabidea"
msgid "Set your profile photo"
msgstr "Aldatu profilaren argazkia"
+msgid "Short name"
+msgstr ""
+
msgid "Short name is already taken"
msgstr "Erabiltzailearen izena jadanik hartuta dago."
@@ -2023,6 +2087,9 @@ msgstr "Bidali"
msgid "Submit status"
msgstr "Bidali egoera"
+msgid "Submit status and send message"
+msgstr ""
+
msgid "Subscribe to blog"
msgstr "Blogaren harpidetza eman"
@@ -2044,6 +2111,9 @@ msgstr "Egoeren taula"
msgid "Table of varieties"
msgstr "Objektu desberdinen taula"
+msgid "Tags"
+msgstr ""
+
msgid "Tags (separated by a space):"
msgstr "Hitz gakoak (espazio batez bananduak):"
@@ -2071,6 +2141,9 @@ msgstr "Eskerrik asko eskabide hau gaurkotzeagatik!"
msgid "Thank you for updating your profile photo"
msgstr "Eskerrik asko zure profilaren argazkia gaurkotzeagatik"
+msgid "Thank you! We'll look into what happened and try and fix it up."
+msgstr ""
+
msgid "Thanks for helping - your work will make it easier for everyone to find successful\\nresponses, and maybe even let us make league tables..."
msgstr "Eskerrik asko zure laguntzagatik, zure lanak arrakasta izan duten beste eskabideak aurkitzeko ahalegina arintzen du, sailkatzeko aukera ere ematen digu..."
@@ -2146,18 +2219,18 @@ msgstr "Eskabidea <strong>arrakastatsua</strong> izan da."
msgid "The request was refused by the public authority"
msgstr "_____ erakundeak ez du eskabidea onartu."
-msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"%s\">contact us</a> if you have any questions."
-msgstr "Ikusi nahi izan duzun eskabidea ezabatuta dago. Honetarako hainbat arrazoi daude, baina hemen izan gaitezke zehatzagoak. Mesedez, galderarik egin nahi baduzu jar zaitez gurekin <a href=\"%s\">harremanetan</a>."
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
+msgstr "Ikusi nahi izan duzun eskabidea ezabatuta dago. Honetarako hainbat arrazoi daude, baina hemen izan gaitezke zehatzagoak. Mesedez, galderarik egin nahi baduzu jar zaitez gurekin <a href=\"{{url}}\">harremanetan</a>."
msgid "The requester has abandoned this request for some reason"
msgstr "Eskabide honetako sortzaileak zerbait dela eta ezabatu du"
-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"
+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 ""
"Zure eskabidearen erantzuna <strong>atzeratu da</strong>.\n"
" Legearen arabera, erakundeak normalean <strong>azkar</strong> erantzun behar du eta"
-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"
+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 ""
"Zure eskabidearen erantzuna <strong> oso atzeratuta dago</strong>.\n"
" Legearen arabera, edonola ere, erakundeak jada erantzun behar izan dizu."
@@ -2168,6 +2241,9 @@ msgstr "Bilatzailea ez dago orain eskuragarri: ezin ditugu erakutsi erakunde hon
msgid "The search index is currently offline, so we can't show the Freedom of Information requests this person has made."
msgstr "Bilatzailea ez dago orain eskuragarri: ezin ditugu erakutsi pertsona honek egin dituen informazio eskabideak."
+msgid "The {{site_name}} team."
+msgstr ""
+
msgid "Then you can cancel the alert."
msgstr "Orduan ezeztatu ahal izango duzu zure alerta."
@@ -2243,17 +2319,17 @@ msgstr "Orduan zure iruzkina {{info_request_title}}-ri bidaliko zaio."
msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
msgstr "Badaude {{count}} iruzkin zure {{info_request}} eskabidean. Jarraitu esteka honi esaten dutena irakurtzeko."
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
-msgstr[0] "Badago eskabide honi jarraitzen dion pertsona %d."
-msgstr[1] "Badaude eskabide honi jarraitzen dioten %d pertsona."
-
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 ""
msgid "There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>."
msgstr "Badago egunean egin ditzakezun eskabide kopuru mugatua, ez dugulako nahi erakunde publikoek gaizki idatzitako eskabide gehiegizkoak jaso ditzaten. Zure kasuan muga hau aplika ez dadin behar izanez gero, mesedez jar zaitez gurekin <a href='{{help_contact_path}}'>harremanetan</a>."
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
+msgstr[0] "Badago eskabide honi jarraitzen dion pertsona {{count}}."
+msgstr[1] "Badaude eskabide honi jarraitzen dioten {{count}} pertsona."
+
msgid "There was a <strong>delivery error</strong> or similar, which needs fixing by the {{site_name}} team."
msgstr "<strong>Ematean errorea gertatu da</strong> edo antzeko zerbait, eta {{site_name}}-ko taldeak konpondu behar du."
@@ -2292,8 +2368,8 @@ msgstr ""
msgid "This authority no longer exists, so you cannot make a request to it."
msgstr "Erakunde hau jadanik ez da existitzen, ezin da informazio eskabiderik egin."
-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 "Erantzun hau ezkutatuta dago. Ikus itzazu iruzkinak jakiteko zergatik. Zure eskabidea baldin bada, <a href=\"%s\">ireki saioa</a> erantzuna ikusteko."
+msgid "This comment has been hidden. See annotations to\\n find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
+msgstr "Erantzun hau ezkutatuta dago. Ikus itzazu iruzkinak jakiteko zergatik. Zure eskabidea baldin bada, <a href=\"{{url}}\">ireki saioa</a> erantzuna ikusteko."
msgid "This covers a very wide spectrum of information about the state of\\n the <strong>natural and built environment</strong>, such as:"
msgstr "Honek <strong>ingurune naturala eta hiritartuaren</strong> egoerari buruzko informazio zabala dakar, esaterako:"
@@ -2310,11 +2386,14 @@ msgstr "Hau informaziorako sarbidearen eskabide baten ondoko fitxategi baten HTM
msgid "This is because {{title}} is an old request that has been\\nmarked to no longer receive responses."
msgstr "Hau gertatzen da {{title}} eskabide zaharra delako, erantzun gehiago jaso ez dezan markatuta."
+msgid "This is the first version."
+msgstr ""
+
msgid "This is your own request, so you will be automatically emailed when new responses arrive."
msgstr "Hauxe da zure eskabidea, horregatik erantzun berriak heltzen direnean automatikoki emailak jasoko dituzu."
-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 "Mezu hau ezkutatuta dago. Irakur itzazu iruzkinak jakiteko zergatik. Zure eskabidea baldin bada, <a href=\"%s\">ireki ezazu saioa</a> erantzuna ikusteko."
+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=\"{{url}}\">sign in</a> to view the response."
+msgstr "Mezu hau ezkutatuta dago. Irakur itzazu iruzkinak jakiteko zergatik. Zure eskabidea baldin bada, <a href=\"{{url}}\">ireki ezazu saioa</a> erantzuna ikusteko."
msgid "This particular request is finished:"
msgstr "Eskabide hau itxita dago:"
@@ -2322,19 +2401,19 @@ msgstr "Eskabide hau itxita dago:"
msgid "This person has made no Freedom of Information requests using this site."
msgstr "Pertsona honek ez du informazio eskabiderik egin web honen bidez."
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
-msgstr[0] "Zure informazio eskabide %d"
-msgstr[1] "Zure %d informazio eskabideak"
-
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
-msgstr[0] "Zure iruzkin %d "
-msgstr[1] "Zure %d iruzkinak"
-
msgid "This person's annotations"
msgstr "Zure iruzkinak"
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
+msgstr[0] "Zure informazio eskabide {{count}}"
+msgstr[1] "Zure {{count}} informazio eskabideak"
+
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
+msgstr[0] "Zure iruzkin {{count}} "
+msgstr[1] "Zure {{count}} iruzkinak"
+
msgid "This request <strong>requires administrator attention</strong>"
msgstr "Eskabide honek <strong>administratzailearen parte hartzea behar du</strong>"
@@ -2358,7 +2437,7 @@ msgstr ""
"Eskabide hau sortu zuen pertsonak <strong>kendu du</strong>. \n"
" \t Ondoko mezuetan egon daiteke honen azalpena."
-msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"%s\">contact us</a>."
+msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
msgid "This request has been reported for administrator attention"
@@ -2373,17 +2452,20 @@ msgstr "Eskabide honek erantzun ez-ohikoa jaso du eta {{site_name}}-ko taldearen
msgid "This request has prominence 'hidden'. You can only see it because you are logged\\n in as a super user."
msgstr "Eskabide honen ikusgarritasuna 'ezkutua' da. Zuk ikus dezakezu super-erabiltzaile bezala identifikatu zarelako."
-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 "Eskabide hau ezkututa dago, beraz zuk zeuk, sortzaile zaren heinean, ikus dezakezu. Mesedez, zergatik gertatzen den seguru ez bazaude, jar zaitez gurekin <a href=\"%s\">harremanetan</a>."
+msgid "This request is hidden, so that only you the requester can see it. Please\\n <a href=\"{{url}}\">contact us</a> if you are not sure why."
+msgstr "Eskabide hau ezkututa dago, beraz zuk zeuk, sortzaile zaren heinean, ikus dezakezu. Mesedez, zergatik gertatzen den seguru ez bazaude, jar zaitez gurekin <a href=\"{{url}}\">harremanetan</a>."
msgid "This request is still in progress:"
msgstr "Eskabide hau oraindik prozesatzen ari da:"
+msgid "This request requires administrator attention"
+msgstr ""
+
msgid "This request was not made via {{site_name}}"
msgstr ""
-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 "Erantzun hau ezkututa dago. Ikus itzazu iruzkinak jakiteko zergatik. Zeure eskabidea baldin bada, <a href=\"%s\">ireki saioa</a> erantzuna ikusteko."
+msgid "This response has been hidden. See annotations to find out why.\\n If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
+msgstr "Erantzun hau ezkututa dago. Ikus itzazu iruzkinak jakiteko zergatik. Zeure eskabidea baldin bada, <a href=\"{{url}}\">ireki saioa</a> erantzuna ikusteko."
msgid "This table shows the technical details of the internal events that happened\\nto this request on {{site_name}}. This could be used to generate information about\\nthe speed with which authorities respond to requests, the number of requests\\nwhich require a postal response and much more."
msgstr "Ondoko taulak {{site_name}} eskabidearekin zerikusia duten barne gertaeren datu teknikoak erakusten ditu. Datu hauek erabil daitezke estatistikak sortzeko, esaterako erakundeen erantzun abiadura edo posta arrunta erabiltzeko eskatzen duten eskabide kopurua."
@@ -2541,8 +2623,8 @@ msgstr "Ustegabeko emaitza aurkitu da"
msgid "Unexpected search result type "
msgstr "Ustegabeko emaitza aurkitu da "
-msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"%s\">contact us</a> to sort it out."
-msgstr "Zoritxarrez ez dugu erakunde honetako posta helbidea, beraz ezin izan dugu balioztatu. Mesedez, jar zaitez gurekin <a href=\"%s\">harremanetan</a> hau konpontzeko."
+msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"{{url}}\">contact us</a> to sort it out."
+msgstr "Zoritxarrez ez dugu erakunde honetako posta helbidea, beraz ezin izan dugu balioztatu. Mesedez, jar zaitez gurekin <a href=\"{{url}}\">harremanetan</a> hau konpontzeko."
msgid "Unfortunately, we do not have a working {{info_request_law_used_full}}\\naddress for"
msgstr "Zoritxarrez ez dugu posta helbide baliagarria honentzat: {{info_request_law_used_full}}"
@@ -2577,6 +2659,9 @@ msgstr ""
msgid "User info request sent alert"
msgstr ""
+msgid "User – {{name}}"
+msgstr ""
+
msgid "UserInfoRequestSentAlert|Alert type"
msgstr "UserInfoRequestSentAlert|Alert type"
@@ -2631,6 +2716,9 @@ msgstr "User|Salt"
msgid "User|Url name"
msgstr "User|Url name"
+msgid "Version {{version}}"
+msgstr ""
+
msgid "View FOI email address"
msgstr "Ikusi posta helbidea"
@@ -2670,6 +2758,12 @@ msgstr "Erakundearen erantzunaren zain"
msgid "Was the response you got to your FOI request any good?"
msgstr "Zure eskabideari emandako erantzuna behar bezalakoa izan da?"
+msgid "We consider it is not a valid FOI request, and have therefore hidden it from other users."
+msgstr ""
+
+msgid "We consider it to be vexatious, and have therefore hidden it from other users."
+msgstr ""
+
msgid "We do not have a working request email address for this authority."
msgstr "Ez daukagu erakunde honetako helbide baliagarririk."
@@ -2682,8 +2776,8 @@ msgstr ""
" &ndash;\n"
"\tzu {{user_link}} ez bazara, mesedez <a href=\"{{url}}\">ireki saioa </a> eta jakinarazi."
-msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"%s\">details</a>). "
-msgstr "Ez diogu inori emango zure posta helbidea, zeuk esan edo legeak behartzen bagaitu izan ezik (<a href=\"%s\">informazio gehiago</a>). "
+msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"{{url}}\">details</a>). "
+msgstr "Ez diogu inori emango zure posta helbidea, zeuk esan edo legeak behartzen bagaitu izan ezik (<a href=\"{{url}}\">informazio gehiago</a>). "
msgid "We will not reveal your email address to anybody unless you\\nor the law tell us to."
msgstr "Ez diogu inori emango zure posta helbidea, zeuk esan edo legeak behartzen bagaitu izan ezik."
@@ -2724,8 +2818,8 @@ msgstr "Mesedez, gaurkotu ezazu egoera, erantzunak informazio baliagarria dakarr
msgid "When you receive the paper response, please help\\n others find out what it says:"
msgstr "Erantzuna paperez jasoko duzunean, mesedez lagundu besteek jakin dezaten zer esaten duen:"
-msgid "When you're done, <strong>come back here</strong>, <a href=\"%s\">reload this page</a> and file your new request."
-msgstr "Prest zaudenean, <strong>itzul zaitez hona</strong>, <a href=\"%s\">kargatu berriro orrialde hau</a> eta sortu eskabide berria."
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
+msgstr "Prest zaudenean, <strong>itzul zaitez hona</strong>, <a href=\"{{url}}\">kargatu berriro orrialde hau</a> eta sortu eskabide berria."
msgid "Which of these is happening?"
msgstr "Zer gertatzen ari da?"
@@ -2829,8 +2923,8 @@ msgstr "Badakizu zerk eragin duen errorea eta <strong>irtenbidea iradoki</a> aha
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 ""
-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 "Agian aurkitu ahal duzu haien web orrialdean edo telefonoz galdetzen. Lortuz gero, mesedez <a href=\"%s\">bidal iezaguzu</a>."
+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=\"{{url}}\">send it to us</a>."
+msgstr "Agian aurkitu ahal duzu haien web orrialdean edo telefonoz galdetzen. Lortuz gero, mesedez <a href=\"{{url}}\">bidal iezaguzu</a>."
msgid "You may be able to find\\none on their website, or by phoning them up and asking. If you manage\\nto find one, then please <a href=\"{{help_url}}\">send it to us</a>."
msgstr ""
@@ -2871,6 +2965,9 @@ msgstr ""
msgid "You will only get an answer to your request if you follow up\\nwith the clarification."
msgstr "Azalpenarekin jarraituz gero zure eskabidearen erantzun bakarra jasoko duzu."
+msgid "You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further."
+msgstr ""
+
msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
msgstr ""
@@ -2883,21 +2980,11 @@ msgstr ""
msgid "You've now cleared your profile photo"
msgstr "Zure profilaren argazkia ezabatu duzu"
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
-msgstr[0] "Zure informazio eskabide %d "
-msgstr[1] "Zure %d informazio eskabideak"
-
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
-msgstr[0] "Zure iruzkin %d "
-msgstr[1] "Zure %d iruzkinak"
-
-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>."
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
msgstr ""
"Web honetan eta bilatzaile motoreetan <strong>zure izena agerian egongo da </strong> \n"
-" (<a href=\"%s\">zergatik?</a>). Goitizena erabiltzeko asmoa baldin baduzu, mesedez \n"
-" <a href=\"%s\">irakur ezazu hau lehenbizi</a>."
+" (<a href=\"{{why_url}}\">zergatik?</a>). Goitizena erabiltzeko asmoa baldin baduzu, mesedez \n"
+" <a href=\"{{help_url}}\">irakur ezazu hau lehenbizi</a>."
msgid "Your annotations"
msgstr "Zure iruzkinak"
@@ -2908,8 +2995,8 @@ msgstr ""
msgid "Your e-mail:"
msgstr "Zure helbide elektronikoa:"
-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 "Zure erantzuna ez da bidali, eskabide hau blokeatuta dagoelako, spama ekidetzearren. Benetan erantzuna bidali nahi baldin baduzu, mesedez, jar zaitez gurekin <a href=\"%s\">harremanetan</a>."
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
+msgstr "Zure erantzuna ez da bidali, eskabide hau blokeatuta dagoelako, spama ekidetzearren. Benetan erantzuna bidali nahi baldin baduzu, mesedez, jar zaitez gurekin <a href=\"{{url}}\">harremanetan</a>."
msgid "Your follow up message has been sent on its way."
msgstr "Zure mezua bidean dago."
@@ -2932,10 +3019,10 @@ msgstr "Zure mezua <strong>bilatzaileetan</strong> agertuko da."
msgid "Your name and annotation will appear in <strong>search engines</strong>."
msgstr "Zure izena eta iruzkina <strong>bilatzaileetan</strong> agertuko dira."
-msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"%s\">details</a>)."
+msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"{{url}}\">details</a>)."
msgstr ""
"Zure izena, eskabidea eta edozein erantzun <strong>bilatzaileetan </strong> agertuko dira\n"
-" (<a href=\"%s\">xehetasunak</a>)."
+" (<a href=\"{{url}}\">xehetasunak</a>)."
msgid "Your name:"
msgstr "Zure izena:"
@@ -2952,6 +3039,12 @@ msgstr "Zure pasahitza:"
msgid "Your photo will be shown in public <strong>on the Internet</strong>,\\n wherever you do something on {{site_name}}."
msgstr ""
+msgid "Your request '{{request}}' at {{url}} has been reviewed by moderators."
+msgstr ""
+
+msgid "Your request on {{site_name}} hidden"
+msgstr ""
+
msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
msgstr "Zure eskabidearen izenburua {{info_request}} zen. Jakinarazi informazioa jaso duzun, kontrolatzen laguntzearren."
@@ -2961,12 +3054,22 @@ msgstr "Zure eskabidea:"
msgid "Your response to an FOI request was not delivered"
msgstr ""
-msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"%s\">read why</a> and answers to other questions."
-msgstr "Zure erantzuna eta beste galderen erantzunak <strong>Interneten agertuko dira</strong>, <a href=\"%s\">irakurri zergatik</a>."
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
+msgstr "Zure erantzuna eta beste galderen erantzunak <strong>Interneten agertuko dira</strong>, <a href=\"{{url}}\">irakurri zergatik</a>."
msgid "Your thoughts on what the {{site_name}} <strong>administrators</strong> should do about the request."
msgstr "Emaiguzu zure iritzia, {{site_name}}-ko <strong>administratzaileek</strong> zer egin behar dute eskabidearekin?"
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
+msgstr[0] "Zure informazio eskabide {{count}} "
+msgstr[1] "Zure {{count}} informazio eskabideak"
+
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
+msgstr[0] "Zure iruzkin {{count}} "
+msgstr[1] "Zure {{count}} iruzkinak"
+
msgid "Your {{site_name}} email alert"
msgstr "Zure alerta {{site_name}}-ean"
@@ -2976,6 +3079,9 @@ msgstr "Adeitasunez,"
msgid "Yours sincerely,"
msgstr "Agur bero bat,"
+msgid "Yours,"
+msgstr ""
+
msgid "[FOI #{{request}} email]"
msgstr ""
@@ -2994,6 +3100,9 @@ msgstr "Eskatzen duzun informazioaren laburpena, lerro batean, adibidez"
msgid "admin"
msgstr "admin"
+msgid "alaveteli_foi:The software that runs {{site_name}}"
+msgstr ""
+
msgid "all requests"
msgstr "eskabide guztiak"
@@ -3027,6 +3136,9 @@ msgstr "edozein"
msgid "are long overdue."
msgstr "oso atzeratuta daude."
+msgid "at"
+msgstr ""
+
msgid "authorities"
msgstr "erakundeak"
@@ -3039,6 +3151,9 @@ msgstr "‘{{first_letter}}’-tik hasita"
msgid "between two dates"
msgstr "bi data tartean"
+msgid "but followupable"
+msgstr ""
+
msgid "by"
msgstr "nork"
@@ -3060,7 +3175,7 @@ msgstr ""
" Edo froga ezazu telefonoz deitzen."
msgid "details"
-msgstr ""
+msgstr "xehetasunak"
msgid "display_status only works for incoming and outgoing messages right now"
msgstr "display_status-ek orain sarrerako eta irteerako mezuekin bakarrik funtzionatzen du"
@@ -3122,17 +3237,23 @@ msgstr "erakundeetako mezua"
msgid "messages from users"
msgstr "erabiltzaileen mezuak"
+msgid "move..."
+msgstr ""
+
msgid "no later than"
msgstr "______ baino beranduago ez"
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
"ez da existitzen. \n"
-"Eskabidearen orrialdetik saia zaitez mezu zehatz bati erantzuten, eskabide osoari orokorrean erantzun baino. Hala egin behar izanez gero eta helbide elektroniko baliagarria baldin baduzu, mesedez <a href=\"%s\">bidal iezaguzu</a>."
+"Eskabidearen orrialdetik saia zaitez mezu zehatz bati erantzuten, eskabide osoari orokorrean erantzun baino. Hala egin behar izanez gero eta helbide elektroniko baliagarria baldin baduzu, mesedez <a href=\"{{url}}\">bidal iezaguzu</a>."
msgid "normally"
msgstr "normalean"
+msgid "not requestable due to: {{reason}}"
+msgstr ""
+
msgid "please sign in as "
msgstr "mesedez, ireki ezazu saioa _______ bezala"
@@ -3154,6 +3275,9 @@ msgstr "Bidal ezazu jarraipen mezu bat"
msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
msgstr "{{public_body_name}}-ri {{info_request_user}}-k bidali dio {{date}} egunean."
+msgid "set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA"
+msgstr ""
+
msgid "show quoted sections"
msgstr ""
@@ -3175,6 +3299,11 @@ msgstr "_____-ri egin diozuna."
msgid "the main FOI contact address for {{public_body}}"
msgstr "{{public_body}}-ren harremanetarako helbidea"
+#. This phrase completes the following sentences:
+#. Request an internal review from...
+#. Send a public follow up message to...
+#. Send a public reply to...
+#. Don't want to address your message to... ?
msgid "the main FOI contact at {{public_body}}"
msgstr "{{public_body}}-ren helbidea"
@@ -3223,9 +3352,32 @@ msgstr "informa baliagarria."
msgid "users"
msgstr "erabiltzaileak"
+msgid "what's that?"
+msgstr "Zer da hau?"
+
msgid "{{count}} FOI requests found"
msgstr "aurkitutako {{count}} informazio eskabide"
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] "_____ {{count}} -ri egindako informazio eskabidea {{public_body_name}}"
+msgstr[1] "_______ {{count}} -ri egindako informazio eskabideak {{public_body_name}}"
+
+msgid "{{count}} person is following this authority"
+msgid_plural "{{count}} people are following this authority"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
+msgstr[0] "{{count}} eskabidea"
+msgstr[1] "{{count}} eskabideak"
+
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
+msgstr[0] "{{count}} eskabidea bidalita."
+msgstr[1] "{{count}} eskabideak bidalita."
+
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 ""
"{{existing_request_user}}-k eskabide bera bidali du {{date}} egunean. <a href=\"{{existing_request}}\">dagoen eskabidea</a> ikus dezakezu,\n"
@@ -3285,6 +3437,9 @@ msgstr "{{site_name}}-k eskabide berriak bidali dizkio <strong>{{request_email}}
msgid "{{site_name}} users have made {{number_of_requests}} requests, including:"
msgstr " {{site_name}}-eko erabiltzaileek {{number_of_requests}} eskabide egin dituzte, haien artean:"
+msgid "{{thing_changed}} was changed from <code>{{from_value}}</code> to <code>{{to_value}}</code>"
+msgstr ""
+
msgid "{{title}} - a Freedom of Information request to {{public_body}}"
msgstr ""
diff --git a/locale/fr/app.po b/locale/fr/app.po
index c556d7462..db5a128ff 100644
--- a/locale/fr/app.po
+++ b/locale/fr/app.po
@@ -3,21 +3,32 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# <alex@alexskene.com>, 2011.
-# Benoît Simard <contact@bsimard.com>, 2013.
-# <borisjf@post.harvard.edu>, 2011.
-# <seb.bacon@gmail.com>, 2012.
-# skenaja <alex@alexskene.com>, 2011.
-# <tanguim@gmail.com>, 2011.
-# <victoria@access-info.org>, 2011.
+# skenaja <alex@alexskene.com>, 2011
+# andreas.pavlou <andreas@access-info.org>, 2013
+# andreas.pavlou <andreas@access-info.org>, 2013
+# Bbear <borisjf@post.harvard.edu>, 2011
+# sim51 <contact@bsimard.com>, 2013
+# Bbear <borisjf@post.harvard.edu>, 2011
+# radproject <radhouanef@gmail.com>, 2013
+# radproject <radhouanef@gmail.com>, 2013
+# rrobert <rrobertpolson@gmail.com>, 2013
+# rrobert <rrobertpolson@gmail.com>, 2013
+# sebbacon <seb.bacon@gmail.com>, 2012
+# sebbacon <seb.bacon@gmail.com>, 2012
+# sim51 <contact@bsimard.com>, 2013
+# skenaja <alex@alexskene.com>, 2011
+# teymour <tanguim@gmail.com>, 2011
+# teymour <tanguim@gmail.com>, 2011
+# vickyanderica <victoria@access-info.org>, 2011
+# vickyanderica <victoria@access-info.org>, 2011
msgid ""
msgstr ""
"Project-Id-Version: alaveteli\n"
"Report-Msgid-Bugs-To: http://github.com/sebbacon/alaveteli/issues\n"
-"POT-Creation-Date: 2012-12-18 10:11+0000\n"
-"PO-Revision-Date: 2013-02-04 22:03+0000\n"
-"Last-Translator: sim51 <contact@bsimard.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"POT-Creation-Date: 2013-05-30 09:46+0100\n"
+"PO-Revision-Date: 2013-05-30 09:00+0000\n"
+"Last-Translator: louisecrow <louise@mysociety.org>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/alaveteli/language/fr/)\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -25,22 +36,22 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
msgid " This will appear on your {{site_name}} profile, to make it\\n easier for others to get involved with what you're doing."
-msgstr ""
+msgstr "Ceci apparaîtra sur votre profil {{site_name}}, pour permettre \\n aux autres de s'impliquer dans ce que vous faites."
-msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)"
-msgstr ""
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
+msgstr "(<strong>aucune garantie</strong> politique, lire notre <a href=\"{{url}}\">politique de modération</a>)"
msgid " (<strong>patience</strong>, especially for large files, it may take a while!)"
-msgstr ""
+msgstr "(<strong>patience</strong>, surtout pour les fichiers volumineux, ça peut prendre un moment !)"
msgid " (you)"
msgstr "(vous)"
msgid " - view and make Freedom of Information requests"
-msgstr ""
+msgstr "-Voir et faire des demandes d'accès a l'information "
msgid " - wall"
-msgstr ""
+msgstr "-mur"
msgid " <strong>Note:</strong>\\n We will send you an email. Follow the instructions in it to change\\n your password."
msgstr ""
@@ -48,87 +59,75 @@ msgstr ""
" Nous allons vous envoyer un courrier électronique. Suivez les instructions de ce courrier pour changer votre mot de passe."
msgid " <strong>Privacy note:</strong> Your email address will be given to"
-msgstr " <strong>Protection de vos données :</strong> Votre adresse e-mail sera communiquée à"
+msgstr " <strong>Note de confidentialité :</strong> Votre adresse e-mail sera communiquée à"
msgid " <strong>Summarise</strong> the content of any information returned. "
-msgstr " <strong>Résumez</strong> les informations transmises. "
+msgstr " <strong>Résumez</strong>le contenu de toute information transmise. "
msgid " Advise on how to <strong>best clarify</strong> the request."
msgstr "Indiquez comment rendre la demande <strong>plus claire</strong>."
msgid " Ideas on what <strong>other documents to request</strong> which the authority may hold. "
-msgstr "Idées d'<strong>autres documents à demander</strong> que cette administration pourrait détenir."
+msgstr "Idées sur <strong>d'autres documents à demander</strong> que cette administration pourrait détenir."
-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."
+msgid " If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\\n You may be able to find the address on their website, or by phoning them up and asking."
msgstr ""
-" Si vous savez quelle adresse utiliser, merci de <a href=\"%s\">nous la communiquer</a>.\n"
+" Si vous savez quelle adresse utiliser, merci de <a href=\"{{url}}\">nous la communiquer</a>.\n"
" Vous êtes susceptible de trouver l'adresse sur leur site Internet ou en la leur demandant par téléphone."
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 ""
+msgstr "Intégrez des liens pertinants comme votre blog , page twitter \\n . Les liens sont cliquables . \\n e.g"
msgid " Link to the information requested, if it is <strong>already available</strong> on the Internet. "
-msgstr ""
+msgstr "Lien vers les informations demandées, si elle sont <strong>déjà disponibles</strong> sur Internet."
msgid " Offer better ways of <strong>wording the request</strong> to get the information. "
msgstr " Proposez d'autres <strong>formulations</strong> pour accéder à ces informations. "
msgid " Say how you've <strong>used the information</strong>, with links if possible."
-msgstr " Dites-nous comment vous avez <strong>utilisé ces informations</strong>, à l'aide de liens si possible."
+msgstr " Dites-nous comment vous avez <strong>utilisé ces informations</strong>, à l'aide des liens si possible."
msgid " Suggest <strong>where else</strong> the requester might find the information. "
msgstr " Suggérez <strong>un autre endroit</strong> où l'utilisateur pourrait trouver ces informations. "
msgid " What are you investigating using Freedom of Information? "
-msgstr ""
+msgstr "Sur quoi vous enquêtez en utilisant la liberté d'accès a l'information"
msgid " You are already being emailed updates about the request."
-msgstr ""
+msgstr "Un courriel vous à déjà été envoyé au sujet de cette demande."
msgid " You will also be emailed updates about the request."
-msgstr ""
+msgstr "Il vous sera également envoyé un courriel au sujet de cette demande."
msgid " made by "
-msgstr "Réalisé par"
+msgstr "faite par"
msgid " or "
msgstr "ou"
msgid " when you send this message."
-msgstr "quand vous envoyé ce message."
+msgstr "quand vous envoyez ce message."
msgid "\"Hello! We have an <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">important message</a> for visitors outside {{country_name}}\""
-msgstr ""
-
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "%d request"
-msgid_plural "%d requests"
-msgstr[0] "%d demande"
-msgstr[1] "%d demandes"
-
-msgid "%d request made."
-msgid_plural "%d requests made."
-msgstr[0] ""
-msgstr[1] ""
+msgstr "\"Bonjour! Nous avons <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">un message important </a> pour les visiteurs à l'extérieur de {{country_name}}\""
msgid "'Crime statistics by ward level for Wales'"
-msgstr ""
+msgstr "'Statistiques de la criminalité par niveau de paroisse au Pays de Galles'"
msgid "'Pollution levels over time for the River Tyne'"
-msgstr ""
+msgstr "« Évolution dans le temps des niveaux de pollution de la rivière Tyne »"
msgid "'{{link_to_authority}}', a public authority"
-msgstr ""
+msgstr "'{{lien_vers_administration}}', une administration publique"
msgid "'{{link_to_request}}', a request"
-msgstr ""
+msgstr "'{{link_to_request}}', une demande"
msgid "'{{link_to_user}}', a person"
-msgstr ""
+msgstr "{{lien_vers_utilisateur}}', une personne"
+
+msgid "*unknown*"
+msgstr "*unknown*"
msgid ",\\n\\n\\n\\nYours,\\n\\n{{user_name}}"
msgstr ",\\n\\n\\n\\nCordialement,\\n\\n{{user_name}}"
@@ -137,102 +136,76 @@ msgid "- or -"
msgstr "- ou -"
msgid "1. Select an authority"
-msgstr ""
+msgstr "1. Choisissez une administration"
msgid "2. Ask for Information"
msgstr "2. Posez une question"
msgid "3. Now check your request"
-msgstr "3. Maintenant, vérifier vos demandes"
-
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
-msgstr ""
-
-msgid "<a href=\"%s\">Are we missing a public authority?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Are you the owner of\\n any commercial copyright on this page?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
-msgstr "<a href=\"%s\">Voir tout</a> ou <a href=\"%s\"> demandez nous d'ajouter une</a>."
-
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
-msgstr ""
+msgstr "3. Maintenant, vérifier votre demande"
-msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
-msgstr ""
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
+msgstr "<a href=\"{{browse_url}}\">Voir tout</a> ou <a href=\"{{add_url}}\"> demandez nous d'ajouter une</a>."
-msgid "<a href=\"%s\">details</a>"
-msgstr ""
+msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)"
+msgstr "<a href=\"{{url}}\">Ajouter un commentaire</a> (pour aider le demandeur ou d'autres personnes)"
-msgid "<a href=\"%s\">what's that?</a>"
-msgstr ""
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
+msgstr "<a href=\"{{url}}\">Connectez-vous</a> pour changer le mot de passe, les abonnements et plus encore ({{user_name}} only)"
msgid "<p>All done! Thank you very much for your help.</p><p>There are <a href=\"{{helpus_url}}\">more things you can do</a> to help {{site_name}}.</p>"
-msgstr ""
+msgstr "<p>Tout est fait ! Merci beaucoup pour votre aide.</p><p> Il y a <a href=\"{{helpus_url}}\"> autres choses que vous pouvez faire</a> pour nous aider {{site_name}}.</p>"
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=\"{{find_authority_url}}\">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=\"{{complain_url}}\">how to complain</a>.\\n </li>\\n <li>We have <a href=\"{{other_means_url}}\">suggestions</a>\\n on other means to answer your question.\\n </li>\\n </ul>"
-msgstr ""
+msgstr "<p>Merci! Voici quelques idées sur ce qu'il faut faire ensuite :</p>\\n <ul>\\n <li>Pour envoyer votre demande à une autre autorité, d'abord copier le texte de votre demande ci-dessous, puis <a href=\"{{find_authority_url}}\">trouver l'autre autorité</a>.</li>\\n <li>Si vous souhaitez contester l'affirmation de l'autorité qu'ils ne détiennent pas l'information, voici \\n <a href=\"{{complain_url}}\">comment se plaindre </a>.\\n </li>\\n <li>Nous avons des <a href=\"{{other_means_url}}\">suggestions </a>\\n sur d'autres moyens pour répondre à votre question .\\n </li>\\n </ul>"
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 ""
+msgstr "<p> Merci ! J'espère que vous n'aurez pas à attendre plus longtemps. </ P> Selon la loi, vous devriez recevoir une réponse rapidement, et normalement avant la fin du <strong> {{date_response_required_by}} </ strong>. </ p>"
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 ""
+msgstr "<p>Merci! Espérons que votre attente n'est pas trop longue.</p> <p>Selon la loi, vous devriez obtenir une réponse rapidement, et normalement avant la fin de <strong>\\n{{date_response_required_by}}</strong>.</p>"
msgid "<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>"
-msgstr ""
-
-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 ""
+msgstr "<p>Merci ! Nous espérons que votre attente ne sera pas trop longue. </p><p> Vous devrez obtenir une réponse dans les {{late_number_of_days}} jours, ou bien vous serez prévenus si cela prendra plus de temps (href=\"{{review_url}}\"> <a détails </ a>). </ p>"
msgid "<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>"
-msgstr ""
+msgstr "<p>Merci ! Votre demande est en retard de plus de {{very_late_number_of_days}} jours ouvrables. La plupart des demandes doivent être traitées dans les {{late_number_of_days}} jours ouvrables. Pour vous plaindre, veuillez vous reporter ci-dessous.</p>"
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 ""
+msgstr "<p>Merci pour modifier le texte de vous sur votre profil .</p>\\n <p><strong>Ensuite...</strong> vous pouvez uploader une photo de profil.</p>"
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 ""
+msgstr "<p>Merci pour mettre à jour votre photo de profil.</p>\\n<p><strong>Ensuite...</strong> Vous pouvez mettre un texte sur vous et votre recherche sur votre profil.</p>"
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 ""
+msgstr "<p>Nous vous conseillons de modifier votre demande et de supprimer l'adresse e-mail.\\n Si vous la laissez, l'adresse e-mail sera envoyée à l'autorité, mais ne sera pas affichée sur le site.</p>"
msgid "<p>We're glad you got all the information that you wanted. If you write about or make use of the information, please come back and add an annotation below saying what you did.</p><p>If you found {{site_name}} useful, <a href=\"{{donation_url}}\">make a donation</a> to the charity which runs it.</p>"
-msgstr ""
+msgstr "<p>Nous sommes heureux que vous avez obtenu toutes les informations que vous vouliez . Si vous écrivez ou faites usage de l'information, veuillez revenir et ajouter une annotation en dessous décrivant ce que vous avez fait.</p><p>si vous avez trouvé {{site_name}} utile, <a href=\"{{donation_url}}\">Faites une donation</a> a l'organisation qui le gère.</p>"
msgid "<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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 ""
+msgstr "<p>Nous sommes heureux que vous avez partie de l'information que vous vouliez. si vous avez trouvé {{site_name}} utile, <a href=\"{{donation_url}}\">Faites une donation</a> a l'organisation qui le gère.</p><p>Si vous voulez essayer et obtenir le reste de l'information, voici ce qu'il faut faire maintenant.</p>"
-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 "<p>Vous n'avez pas besoin d'inclure votre adresse mail à votre demande pour obtenir une réponse(<a href=\"%s\">details</a>).</p>"
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
+msgstr "<p>Vous n'avez pas besoin d'inclure votre adresse mail à votre demande pour obtenir une réponse(<a href=\"{{url}}\">details</a>).</p>"
-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 ""
+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=\"{{url}}\">details</a>).</p>"
+msgstr "<p> Vous n'avez pas besoin d'inclure votre email dans la demande afin d'obtenir une réponse, vu que nous allons le demander sur l'écran suivant (<a href=\"{{url}}\">details</a>).</p>"
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 ""
+msgstr "<p>Vous avez demandé un certain <strong>code postal</strong>. Sauf s'il est directement lié a l'objet de vôtre demande , veuillez supprimer toute adresse car elle va <strong>apparaître publiquement sur ​​Internet</strong>.</p>"
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 {{late_number_of_days}} 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 ""
+msgstr "<p>Votre demande {{law_used_full}} a été <strong>envoyée</strong>!</p>\\n <p><strong>On va vous envoyer un email </strong>dès qu'il ya une réponse ou apres {{late_number_of_days}} jours ouvrables si l'autorité n'a toujours pas \\n répondu .</p>\\n <p>Si vous écrivez à propos de cette demande (par exemple dans un forum ou un blog) veuillez mettre un lien vers cette page et ajoutez une \\n remarque en dessous pour partager avec les autres citoyens. </p>"
msgid "<p>{{site_name}} is currently in maintenance. You can only view existing requests. You cannot make new ones, add followups or annotations, or otherwise change the database.</p> <p>{{read_only}}</p>"
-msgstr ""
+msgstr "<p>{{site_name}} est actuellement en maintenance. Vous pouvez uniquement afficher les demandes existantes. Vous ne pouvez pas faire de nouveaux, ajouter des suivis ou des annotations, ou par ailleurs changer la base de données .</p> <p>{{read_only}}</p>"
msgid "<small>If you use web-based email or have \"junk mail\" filters, also check your\\nbulk/spam mail folders. Sometimes, our messages are marked that way.</small>\\n</p>"
-msgstr ""
+msgstr "<small> Si vous utiliser le courrier électronique basé sur le Web ou des filtres de \"courrier indésirable\", vérifiez également vos dossiers de courrier spam . Parfois, nos messages sont marqués de cette façon</small> /n</p>"
-msgid "<span id='follow_count'>%d</span> person is following this authority"
-msgid_plural "<span id='follow_count'>%d</span> people are following this authority"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
-msgstr ""
+msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
+msgstr "<strong>Puis -je demander des informations sur moi ?</strong>\\n\t\t\t<a href=\"{{url}}\">Non! (cliquer ici pour plus de détails)</a>"
msgid "<strong><code>commented_by:tony_bowden</code></strong> to search annotations made by Tony Bowden, typing the name as in the URL."
msgstr "<strong><code>commented_by:tony_bowden</code></strong> Pour chercher des commentaires faits par Tony Bowden, écrivez le nom comme dans l'URL"
@@ -244,181 +217,202 @@ msgid "<strong><code>request:</code></strong> to restrict to a specific request,
msgstr "<strong><code>request:</code></strong> Pour vous limiter à une sollicitude concrète, tapez le titre comme dans l'URL."
msgid "<strong><code>requested_by:julian_todd</code></strong> to search requests made by Julian Todd, typing the name as in the URL."
-msgstr "<strong><code>requested_by:julian_todd</code></strong> Pour chercher les sollicitudes faites par Julian Todd, écrivez le nom comme dans l'URL. "
+msgstr "<strong><code>requested_by:julian_todd</code></strong> Pour chercher les demandes faites par Julian Todd, écrivez le nom comme dans l'URL. "
msgid "<strong><code>requested_from:home_office</code></strong> to search requests from the Home Office, typing the name as in the URL."
-msgstr "<strong><code>requested_from:home_office</code></strong> Pour chercher les sollicitudes du Home Office, écrivez le nom comme dans l'URL. "
+msgstr "<strong><code>requested_from:home_office</code></strong> Pour chercher les demandes du Home Office, écrivez le nom comme dans l'URL. "
msgid "<strong><code>status:</code></strong> to select based on the status or historical status of the request, see the <a href=\"{{statuses_url}}\">table of statuses</a> below."
-msgstr ""
+msgstr "<strong><code>statut :</code></strong>pour sélectionner en fonction du statut ou du statut historique de la demande, voir la <a href=\"{{statuses_url}}\">table des status</a> below."
msgid "<strong><code>tag:charity</code></strong> to find all public authorities 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 "<strong><code>tag:charity</code></strong> pour trouvez tous les institutions publiques ou les sollicitudes avec la même étiquette. Vous pouvez inclure plusieurs étiquettes,\\n ou plusieurs étiquettes, ex. <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 "<strong><code>tag:charity</code></strong> pour trouvez tous les institutions publiques ou les sollicitudes avec la même étiquette. Vous pouvez inclure plusieurs étiquettes,\\n ou plusieurs étiquettes, ex. <code>tag:openlylocal AND tag:financial_transaction:335633</code>. A noter que par défaut n'importe quel tag \\n peut etre présent , vous devez mettre <code>AND</code>explicitement si vous voulez que tout les résultats s'affichent ."
msgid "<strong><code>variety:</code></strong> to select type of thing to search for, see the <a href=\"{{varieties_url}}\">table of varieties</a> below."
-msgstr ""
+msgstr "<strong> <code> divers: </ code> </ strong> pour sélectionner le type de chose à rechercher, consulter le <a href=\"{{varieties_url}}\">tableau des divers</a> below."
msgid "<strong>Advice</strong> on how to get a response that will satisfy the requester. </li>"
-msgstr ""
+msgstr "<strong>Conseils</strong> sur la façon d'obtenir une réponse qui satisfera le demandeur. </li>"
msgid "<strong>All the information</strong> has been sent"
msgstr "<strong>Toutes les informations</strong> ont été envoyées"
msgid "<strong>Anything else</strong>, such as clarifying, prompting, thanking"
-msgstr ""
+msgstr "<strong>D'autres choses</strong>, comme clarifier, inciter, et remercier. "
msgid "<strong>Caveat emptor!</strong> To use this data in an honourable way, you will need \\na good internal knowledge of user behaviour on {{site_name}}. How, \\nwhy and by whom requests are categorised is not straightforward, and there will\\nbe user error and ambiguity. You will also need to understand FOI law, and the\\nway authorities use it. Plus you'll need to be an elite statistician. Please\\n<a href=\"{{contact_path}}\">contact us</a> with questions."
-msgstr ""
+msgstr "<strong>Caveat emptor!</strong> Pour utiliser ces données d'une façon honorable, vous devrez \\n avoir une bonne connaissance interne du comportement de l'utilisateur sur {{site_name}}. Comment , \\n pourquoi et par qui les demandes sont categorisées .Vous aurez également besoin de comprendre la loi accès à l'information, et les \\n manières dont les autorités fonctionnet . De plus, vous aurez besoin d'être un statisticien élite . Veuillez \\n<a href=\"{{contact_path}}\">Nous contacter </a> avec vos questions."
msgid "<strong>Clarification</strong> has been requested"
-msgstr ""
+msgstr "<strong>Des précisions</strong> ont été demandées"
msgid "<strong>No response</strong> has been received\\n <small>(maybe there's just an acknowledgement)</small>"
-msgstr ""
+msgstr "<strong>Aucune réponse</strong> n'a été reçue \\n <small>(peut-être il ya juste une reconnaissance)</small>"
msgid "<strong>Note:</strong> Because we're testing, requests are being sent to {{email}} rather than to the actual authority."
-msgstr ""
+msgstr "<strong>Note:</strong> Because we're testing, requests are being sent to {{email}} rather than to the actual authority."
msgid "<strong>Note:</strong> You're sending a message to yourself, presumably\\n to try out how it works."
-msgstr ""
+msgstr "<strong>Remarque:</strong> Vous envoyez un message à vous-même, sans doute \\n pour essayer de voir comment cela fonctionne."
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 ""
+msgstr "<strong>Remarque :</strong> Nous allons vous envoyer un courrier électronique à avotre nouvelle adresse . Suivez les instructions de ce courrier pour confirmer le changement de votre mail."
-msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"%s\">click here</a>."
-msgstr ""
+msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"{{url}}\">click here</a>."
+msgstr "<strong>Note de confidentialité:</strong> Si vous voulez demander des informations privées sur \\n vous-même alors <a href=\"{{url}}\">cliquez ici</a>."
msgid "<strong>Privacy note:</strong> Your photo will be shown in public on the Internet,\\n wherever you do something on {{site_name}}."
-msgstr ""
+msgstr "<strong>Note de confidentialité :</strong> votre photo va apparaitre publiquement sur internet ,\\n a chaque fois que vous changez quelque chose sur {{site_name}}."
msgid "<strong>Privacy warning:</strong> Your message, and any response\\n to it, will be displayed publicly on this website."
-msgstr ""
+msgstr "<strong>Avertissement de confidentialité:</strong> Votre message, et toute réponse \\n sera affichée publiquement sur ​​ce site."
msgid "<strong>Some of the information</strong> has been sent "
-msgstr ""
+msgstr "<strong>Certaines informations</strong> ont été envoyées "
msgid "<strong>Thank</strong> the public authority or "
-msgstr ""
+msgstr "<strong>Remerciez</strong> l'autorité publique ou"
msgid "<strong>did not have</strong> the information requested."
-msgstr ""
+msgstr "<strong>n'avait pas </strong> les informations demandées."
msgid "A <a href=\"{{request_url}}\">follow up</a> to <em>{{request_title}}</em> was sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
-msgstr ""
+msgstr "Un <a href=\"{{request_url}}\">suivi</a> à <em>{{request_title}}</em> a été envoyé à {{public_body_name}} par {{info_request_user}} le {{date}}."
msgid "A <a href=\"{{request_url}}\">response</a> to <em>{{request_title}}</em> was sent by {{public_body_name}} to {{info_request_user}} on {{date}}. The request status is: {{request_status}}"
-msgstr ""
+msgstr "Une <a href=\"{{request_url}}\">réponse</a> à <em>{{request_title}}</em>a été envoyée par {{public_body_name}} à {{info_request_user}} le {{date}}. L'état de la demande est: {{request_status}}"
msgid "A <strong>summary</strong> of the response if you have received it by post. "
-msgstr ""
+msgstr "Un <strong>résumé</strong> si vous l'avez reçue par la poste."
msgid "A Freedom of Information request"
-msgstr ""
+msgstr "Une demande d'accès à l'information"
msgid "A new request, <em><a href=\"{{request_url}}\">{{request_title}}</a></em>, was sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
-msgstr ""
+msgstr "Une nouvelle demande , <em><a href=\"{{request_url}}\">{{request_title}}</a></em>, a été envoyée à {{public_body_name}} par {{info_request_user}} le {{date}}."
msgid "A public authority"
-msgstr ""
+msgstr "Une autorité administrative"
msgid "A response will be sent <strong>by post</strong>"
-msgstr ""
+msgstr "Une réponse vous sera <strong>envoyée par la poste</strong>"
msgid "A strange reponse, required attention by the {{site_name}} team"
-msgstr ""
+msgstr "Une réponse étrange réclame de l'attention de l'équipe {{site_name}} "
+
+msgid "A vexatious request"
+msgstr "Une demande vexatoire"
msgid "A {{site_name}} user"
-msgstr ""
+msgstr "Un utilisateur {{site_name}} "
msgid "About you:"
-msgstr "A propos de vous&nbsp;:"
+msgstr "A propos de vous:"
msgid "Act on what you've learnt"
+msgstr "Agissez en fonction de ce que vous avez appris."
+
+msgid "Acts as xapian/acts as xapian job"
msgstr ""
-msgid "Add an annotation"
+msgid "ActsAsXapian::ActsAsXapianJob|Action"
msgstr ""
-msgid "Add an annotation to your request with choice quotes, or\\n a <strong>summary of the response</strong>."
+msgid "ActsAsXapian::ActsAsXapianJob|Model"
msgstr ""
+msgid "Add an annotation"
+msgstr "Ajouter une remarque"
+
+msgid "Add an annotation to your request with choice quotes, or\\n a <strong>summary of the response</strong>."
+msgstr "Ajouter une annotation à votre demande avec des citations de choix, ou \\n un <strong> résumé de réponse</strong>."
+
msgid "Added on {{date}}"
-msgstr ""
+msgstr "Ajouté le {{date}}"
msgid "Admin level is not included in list"
msgstr "Le niveau administratif n'est pas inclus dans cette liste"
msgid "Administration URL:"
-msgstr ""
+msgstr "URL de l'administration:"
msgid "Advanced search"
-msgstr ""
+msgstr "Recherche avancée"
msgid "Advanced search tips"
msgstr "Conseils pour une recherche avancée"
msgid "Advise on whether the <strong>refusal is legal</strong>, and how to complain about it if not."
-msgstr ""
+msgstr "Donner des conseils <strong>si le refus est légal</strong>, et comment se plaindre si il ne l'est pas."
msgid "Air, water, soil, land, flora and fauna (including how these effect\\n human beings)"
-msgstr ""
+msgstr "Air, l'eau, les sols, la flore et la faune (y compris la manière dont ils influent \\n les êtres humains)"
msgid "All of the information requested has been received"
-msgstr ""
+msgstr "Tout les renseignements demandés ont été reçus"
msgid "All the options below can use <strong>status</strong> or <strong>latest_status</strong> before the colon. For example, <strong>status:not_held</strong> will match requests which have <em>ever</em> been marked as not held; <strong>latest_status:not_held</strong> will match only requests that are <em>currently</em> marked as not held."
-msgstr ""
+msgstr "Toutes les options ci-dessous peuvent utiliser <strong>Etat</strong> ou <strong>dernier_etat</strong>avant les deux points . par exemple, <strong>Etat: non_tenu</strong>correspondra aux demandes qui ont <em>déjà</em> été marquées comme non tenues; <strong>dernier_etat:non_tenu</strong> correspondra uniquement aux demandes sont ont<em>actuellement</em> marquées comme non tenues."
msgid "All the options below can use <strong>variety</strong> or <strong>latest_variety</strong> before the colon. For example, <strong>variety:sent</strong> will match requests which have <em>ever</em> been sent; <strong>latest_variety:sent</strong> will match only requests that are <em>currently</em> marked as sent."
-msgstr ""
+msgstr "Toutes les options ci-dessous peuvent utiliser <strong>Etat</strong> ou <strong>dernier_etat</strong>avant les deux points . par exemple, <strong>Etat: non_tenu</strong>correspondra aux demandes qui ont <em>déjà</em> été marquées comme non tenues; <strong>dernier_etat:non_tenu</strong> correspondra uniquement aux demandes sont ont<em>actuellement</em> marquées comme non tenues."
msgid "Also called {{other_name}}."
-msgstr ""
+msgstr "Également appelé {{other_name}}."
msgid "Also send me alerts by email"
-msgstr ""
+msgstr "Envoyer moi aussi les alertes par mail "
msgid "Alter your subscription"
-msgstr ""
+msgstr "Modifier votre abonnement."
msgid "Although all responses are automatically published, we depend on\\nyou, the original requester, to evaluate them."
-msgstr ""
+msgstr "Bien que toutes les réponses sont automatiquement publiés, nous dépendons \\n de vous, le demandeur d'origine, pour les évaluer."
msgid "An <a href=\"{{request_url}}\">annotation</a> to <em>{{request_title}}</em> was made by {{event_comment_user}} on {{date}}"
-msgstr ""
+msgstr "Une <a href=\"{{request_url}}\">remarque</a> sur <em>{{request_title}}</em>a été faite {{event_comment_user}} le {{date}}"
msgid "An <strong>error message</strong> has been received"
-msgstr ""
+msgstr "Un <strong>message d'erreur</strong> a été reçu."
msgid "An Environmental Information Regulations request"
-msgstr ""
+msgstr "Une demande sur les règlements concernant l'information sur l'environnement"
msgid "An anonymous user"
-msgstr ""
+msgstr "Un utilisateur anonyme"
msgid "Annotation added to request"
-msgstr ""
+msgstr "Remarque ajoutée à la demande"
msgid "Annotations"
-msgstr ""
+msgstr "Remarque"
msgid "Annotations are so anyone, including you, can help the requester with their request. For example:"
-msgstr ""
+msgstr "Les annotations sont là afin que toute personne, y compris vous, puisse aider le demandeur Avec leur demande. Par exemple:"
msgid "Annotations will be posted publicly here, and are\\n <strong>not</strong> sent to {{public_body_name}}."
-msgstr ""
+msgstr "Les remarques seront postées ici et seront <strong>pas</strong> envoyées au {{public_body_name}}."
msgid "Anonymous user"
-msgstr ""
+msgstr "Utilisateur anonyme"
msgid "Anyone:"
-msgstr ""
+msgstr "Personne:"
+
+msgid "Applies to"
+msgstr "S'applique à"
+
+msgid "Are we missing a public authority?"
+msgstr "Vous ne trouvez pas celui que vous voulez ?"
+
+msgid "Are you the owner of any commercial copyright on this page?"
+msgstr "Êtes-vous le propriétaire d'un droit d'auteur commercial sur cette page?"
msgid "Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries."
-msgstr ""
+msgstr "Demandez des documents ou des <strong>informations spécifiques</strong>, ce site ne convient pas pour des renseignements d'ordre général."
-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 ""
+msgid "At the bottom of this page, write a reply to them trying to persuade them to scan it in\\n (<a href=\"{{url}}\">more details</a>)."
+msgstr "Au bas de cette page, écrire une réponse à leur essayant de les persuader de le numériser (<a href=\"{{url}}\">plus de détails</a>)."
msgid "Attachment (optional):"
msgstr "Pièce jointe (optionnel):"
@@ -427,70 +421,76 @@ msgid "Attachment:"
msgstr "Pièce jointe"
msgid "Awaiting classification."
-msgstr ""
+msgstr "En attente de classement."
msgid "Awaiting internal review."
-msgstr ""
+msgstr "En attente d'examen interne."
msgid "Awaiting response."
-msgstr ""
+msgstr "Réponse en attente"
msgid "Beginning with"
-msgstr ""
+msgstr "Commence avec"
msgid "Browse <a href='{{url}}'>other requests</a> for examples of how to word your request."
-msgstr ""
+msgstr "Parcourir <a href='{{url}}'>les autres demandes</a> , par exemple, comment la parole de votre demande."
msgid "Browse <a href='{{url}}'>other requests</a> to '{{public_body_name}}' for examples of how to word your request."
-msgstr ""
+msgstr "Parcourir <a href='{{url}}'>les autres demandes</a> to '{{public_body_name}}' , par exemple, comment la parole de votre demande"
msgid "Browse all authorities..."
-msgstr ""
+msgstr "Parcourir toutes les autorités publiques..."
msgid "By law, under all circumstances, {{public_body_link}} should have responded by now"
-msgstr ""
+msgstr "Selon la loi, en toutes circonstances, {{public_body_link}} aurait répondu en maintenant"
msgid "By law, {{public_body_link}} should normally have responded <strong>promptly</strong> and"
-msgstr ""
+msgstr "Selon la loi, {{public_body_link}} devrait normalement avoir répondu <strong>rapidement</strong> et"
+
+msgid "Calculated home page"
+msgstr "Page d'accueil calculée"
+
+msgid "Can't find the one you want?"
+msgstr "Vous ne trouvez pas celui que vous voulez?"
msgid "Cancel a {{site_name}} alert"
-msgstr ""
+msgstr "Annuler une {{site_name}} alerte"
msgid "Cancel some {{site_name}} alerts"
-msgstr ""
+msgstr "Annuler des {{site_name}} alertes"
msgid "Cancel, return to your profile page"
-msgstr ""
+msgstr "Annuler, retourner à votre page de profil"
msgid "Censor rule"
-msgstr ""
+msgstr "Règle de censure"
msgid "CensorRule|Last edit comment"
-msgstr ""
+msgstr "CensorRule|Last edit comment"
msgid "CensorRule|Last edit editor"
-msgstr ""
+msgstr "CensorRule|Last edit editor"
msgid "CensorRule|Regexp"
-msgstr ""
+msgstr "CensorRule|Regexp"
msgid "CensorRule|Replacement"
-msgstr ""
+msgstr "CensorRule|Replacement"
msgid "CensorRule|Text"
-msgstr ""
+msgstr "CensorRule|Text"
msgid "Change email on {{site_name}}"
-msgstr ""
+msgstr "Changer le courriel sur {{site_name}}"
msgid "Change password on {{site_name}}"
-msgstr ""
+msgstr "Changer mot de passe sur {{site_name}}"
msgid "Change profile photo"
-msgstr ""
+msgstr "Changer la photo de profil"
msgid "Change the text about you on your profile at {{site_name}}"
-msgstr ""
+msgstr "Modifier le texte sur vous dans votre profil {{site_name}}"
msgid "Change your email"
msgstr "Modifier votre adresse mail"
@@ -505,43 +505,43 @@ msgid "Change your password on {{site_name}}"
msgstr "Modifier votre mot de pass pour le site {{site_name}}"
msgid "Change your password {{site_name}}"
-msgstr ""
+msgstr "Changer votre mot de passe {{site_name}}"
msgid "Charity registration"
-msgstr ""
+msgstr "Organisme de bienfaisance"
msgid "Check for mistakes if you typed or copied the address."
-msgstr ""
+msgstr "Vérifiez les erreurs si vous avez tapé ou copié l'adresse."
msgid "Check you haven't included any <strong>personal information</strong>."
-msgstr ""
+msgstr "Vérifiez que vous n'avez pas inclus des informations personnelles"
msgid "Choose your profile photo"
-msgstr ""
+msgstr "Choisissez votre photo de profil"
msgid "Clarification"
-msgstr ""
+msgstr "Précisions"
msgid "Clarify your FOI request - "
-msgstr ""
+msgstr "Clarifier votre demande -"
msgid "Classify an FOI response from "
-msgstr ""
+msgstr "Classer comme FOI une réponse venant de"
msgid "Clear photo"
-msgstr ""
+msgstr "Supprimer la photo"
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\\nreview, asking them to find out why response to the request has been so slow."
-msgstr ""
+msgstr "Cliquez sur le lien ci-dessous pour envoyer un message à {{public_body_name}} en leur demandant de répondre à votre demande. Vous pourriez vous demander une révision \\n interne, leur demandant de savoir pourquoi la réponse à la demande a été si lente."
msgid "Click on the link below to send a message to {{public_body}} reminding them to reply to your request."
-msgstr ""
+msgstr "Cliquez sur le lien ci-dessous pour envoyer un message à {{public_body}} afin de leur rappeler de répondre à votre demande."
msgid "Close"
-msgstr ""
+msgstr "Fermer"
msgid "Comment"
-msgstr ""
+msgstr "Commentaire"
msgid "Comment|Body"
msgstr "Commentaire|Texte"
@@ -556,130 +556,142 @@ msgid "Comment|Visible"
msgstr "Commentaire|Visible"
msgid "Confirm you want to follow all successful FOI requests"
-msgstr ""
+msgstr "Confirmer que vous voulez suivre toutes les demandes d'accès a l'information réussies"
msgid "Confirm you want to follow new requests"
-msgstr ""
+msgstr "Confirmez que vous souhaitez suivre les nouvelles demandes"
msgid "Confirm you want to follow new requests or responses matching your search"
-msgstr ""
+msgstr "Confirmez que vous souhaitez suivre les nouvelles demandes ou les réponses correspondant à votre recherche"
msgid "Confirm you want to follow requests by '{{user_name}}'"
-msgstr ""
+msgstr "Confirmez que vous voulez suivre les demandes de '{{user_name}}'"
msgid "Confirm you want to follow requests to '{{public_body_name}}'"
-msgstr ""
+msgstr "Confirmez que vous voulez suivre les demandes à '{{public_body_name}}'"
msgid "Confirm you want to follow the request '{{request_title}}'"
-msgstr ""
+msgstr "Confirmez que vous voulez suivre la demande '{{request_title}}'"
msgid "Confirm your FOI request to "
-msgstr ""
+msgstr "Confirmer votre demande FOI pour"
msgid "Confirm your account on {{site_name}}"
-msgstr ""
+msgstr "Confirmer votre compte sur {{site_name}}"
msgid "Confirm your annotation to {{info_request_title}}"
-msgstr ""
+msgstr "Confirmer votre remarque pour {{info_request_title}}"
msgid "Confirm your email address"
-msgstr ""
+msgstr "Confirmer votre adresse e-mail"
msgid "Confirm your new email address on {{site_name}}"
-msgstr ""
+msgstr "Confirmer votre nouvelle adresse sur {{site_name}}"
msgid "Considered by administrators as not an FOI request and hidden from site."
-msgstr ""
+msgstr "N'est pas considérée par les administrateurs comme une demande d'accès à l'information et supprimée."
msgid "Considered by administrators as vexatious and hidden from site."
-msgstr ""
+msgstr "Considérée par les administrateurs comme vexatoire et cachée sur le site."
msgid "Contact {{recipient}}"
-msgstr ""
+msgstr "Contacter {{recipient}}"
msgid "Contact {{site_name}}"
msgstr "Contact {{site_name}}"
msgid "Could not identify the request from the email address"
-msgstr ""
+msgstr "Impossible d'identifier la demande à partir de l'adresse e-mail"
msgid "Couldn't understand the image file that you uploaded. PNG, JPEG, GIF and many other common image file formats are supported."
msgstr "Nous ne pouvons utiliser le fichier image que vous nous avez soumis. Nous acceptons les fichiers PNG, JPEG et GIF, ainsi qu'un grand nombre d'autres formats communément utilisés."
msgid "Crop your profile photo"
-msgstr ""
+msgstr "Recadrer votre photo de profil"
msgid "Cultural sites and built structures (as they may be affected by the\\n environmental factors listed above)"
-msgstr ""
+msgstr "Les sites culturels et les batiments (ils peuvent être affectés par \\n les facteurs environnementaux listés ci dessus) "
msgid "Currently <strong>waiting for a response</strong> from {{public_body_link}}, they must respond promptly and"
-msgstr ""
+msgstr "Acutuellement <strong>en attente d'une réponse</strong> du {{public_body_link}}, Ils doivent répondre rapidement et"
msgid "Date:"
+msgstr "Date:"
+
+msgid "Dear {{name}},"
msgstr ""
msgid "Dear {{public_body_name}},"
-msgstr ""
+msgstr "Cher {{public_body_name}},"
+
+msgid "Default locale"
+msgstr "Langue par défaut"
msgid "Delayed response to your FOI request - "
-msgstr ""
+msgstr "Réponse à votre demande FOI en retard- "
msgid "Delayed."
-msgstr ""
+msgstr "En retard"
msgid "Delivery error"
-msgstr ""
+msgstr "Erreur lors de l'envoi"
+
+msgid "Destroy {{name}}"
+msgstr "Détruire {{name}}"
msgid "Details of request '"
-msgstr ""
+msgstr "Détails de la demande"
msgid "Did you mean: {{correction}}"
msgstr "Vouliez-vous dire {{correction}} ?"
msgid "Disclaimer: This message and any reply that you make will be published on the internet. Our privacy and copyright policies:"
-msgstr ""
+msgstr "Attention : Ce message et les éventuelles réponses que vous écrivez seront publiées sur l'internet. Notre politique en matière de confidentialité et de droits d'auteur :"
msgid "Disclosure log"
-msgstr ""
+msgstr "Journal d'information"
+
+msgid "Disclosure log URL"
+msgstr "adresse du journal d'information"
msgid "Don't want to address your message to {{person_or_body}}? You can also write to:"
-msgstr ""
+msgstr "Vous ne voulez pas envoyer votre message à {{person_or_body}}? Vous pouvez aussi écrire à : "
msgid "Done"
-msgstr ""
+msgstr "Fait"
msgid "Done &gt;&gt;"
-msgstr ""
+msgstr "Fait &gt;&gt;"
msgid "Download a zip file of all correspondence"
-msgstr ""
+msgstr "Télécharger un fichier zip de toute la correspondance"
msgid "Download original attachment"
-msgstr ""
+msgstr "Télécharger la pièce jointe originale"
msgid "EIR"
-msgstr ""
+msgstr "EIR"
-msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
-msgstr ""
+msgid "Edit"
+msgstr "Modifier"
-msgid "Edit language version:"
-msgstr "Changer la langue :"
+msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
+msgstr "Modifier et ajouter <strong> plus de détails </strong> au message ci-dessus, \\n expliquant pourquoi vous n'êtes pas satisfait de leur réponse."
msgid "Edit text about you"
-msgstr ""
+msgstr "Modifier le texte sur vous"
msgid "Edit this request"
-msgstr ""
+msgstr "Modifier cette demande"
msgid "Either the email or password was not recognised, please try again."
-msgstr ""
+msgstr "Le courriel ou le mot de passe n'ont pas été reconnus, s'il vous plaît essayez de nouveau."
msgid "Either the email or password was not recognised, please try again. Or create a new account using the form on the right."
-msgstr ""
+msgstr "Le courriel ou le mot de passe n'ont pas été reconnus, s'il vous plaît essayez de nouveau. Ou, créer un nouveau compte en utilisant le formulaire à droite."
msgid "Email doesn't look like a valid address"
-msgstr ""
+msgstr "Le courriel ne ressemble pas à une adresse valide"
msgid "Email me future updates to this request"
msgstr "Me prévenir par e-mail quand cette demande évolue"
@@ -687,191 +699,209 @@ msgstr "Me prévenir par e-mail quand cette demande évolue"
msgid "Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>"
msgstr "Entrez les mots que vous voulez trouver séparés avec des espaces. ex. : <strong>voie rapide</strong>"
-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 ""
+msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"{{url}}\">contact us</a> if you need more)."
+msgstr "Entrez votre réponse ci-dessous. Vous pouvez joindre un fichier (utiliser le courrier électronique, ou \\n <a href=\"{{url}}\">contactez nous</a>)."
msgid "Environmental Information Regulations"
-msgstr ""
+msgstr "Règlements nationaux en matière d'information sur l'environnement"
msgid "Environmental Information Regulations requests made"
-msgstr ""
+msgstr "La demande au sujet des règlements nationaux en matière d'information sur l'environnement a été effectuée."
msgid "Environmental Information Regulations requests made using this site"
-msgstr ""
+msgstr "La demande au sujet des règlements nationaux en matière d'information sur l'environnement a été effectuée par l'intermédiaire de ce site."
msgid "Event history"
-msgstr ""
+msgstr "Historique des événements"
msgid "Event history details"
-msgstr ""
+msgstr "Détails de l'historique des événements"
-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 ""
+msgid "Event {{id}}"
+msgstr "Evènement {{id}}"
-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 ""
+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=\"{{url}}\">why?</a>)."
+msgstr "Tout ce que vous indiquez dans cette page, y compris <strong>votre nom </strong>,\\n va etre <strong>public </strong> sur \\n ce site (<a href=\"{{url}}\">pourquoi?</a>)."
+
+msgid "Everything that you enter on this page\\n will be <strong>displayed publicly</strong> on\\n this website forever (<a href=\"{{url}}\">why?</a>)."
+msgstr "Tout ce que vous ecrivez sur cette page \\n va etre <strong>public</strong> sur \\n ce site (<a href=\"{{url}}\">pouquoi?</a>)."
msgid "FOI"
-msgstr ""
+msgstr "DAI"
msgid "FOI email address for {{public_body}}"
-msgstr ""
+msgstr "Courriel FOI pour {{public_body}}"
+
+msgid "FOI request – {{title}}"
+msgstr "Demande d'acceès a l'information– {{title}}"
msgid "FOI requests"
-msgstr ""
+msgstr "Demandes FOI"
msgid "FOI requests by '{{user_name}}'"
-msgstr ""
+msgstr "Demandes FOI de '{{user_name}}'"
msgid "FOI requests {{start_count}} to {{end_count}} of {{total_count}}"
-msgstr ""
+msgstr "Demandes FOI {{start_count}} à {{end_count}} sur {{total_count}}"
msgid "FOI response requires admin ({{reason}}) - {{title}}"
-msgstr ""
+msgstr "Réponse necessitant l'administration ({{reason}}) - {{title}}"
msgid "Failed to convert image to a PNG"
msgstr "Nous n'avons pas pu convertir l'image au format PNG."
-msgid "Failed to convert image to the correct size: at %{cols}x%{rows}, need %{width}x%{height}"
-msgstr "Nous n'avons pas pu changer les dimensions de l'image: at %{cols}x%{rows}, need %{width}x%{height}"
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
+msgstr "Nous n'avons pas pu changer les dimensions de l'image: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
msgid "Filter"
-msgstr ""
+msgstr "Filtre"
-msgid "First, type in the <strong>name of the UK public authority</strong> you'd \\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"%s#%s\">why?</a>)."
-msgstr ""
+msgid "First, type in the <strong>name of the UK public authority</strong> you'd\\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"{{url}}\">why?</a>)."
+msgstr "Commencer par écrire le <strong>nom de l'organisme Tunisien</strong> à \\n solliciter. <strong>Légalement , Ils sont obligés de répondre </strong>\\n (<a href=\"{{url}}\">pourquoi?</a>)."
msgid "Foi attachment"
-msgstr ""
+msgstr "Piece jointe"
msgid "FoiAttachment|Charset"
-msgstr ""
+msgstr "FoiAttachment|Charset"
msgid "FoiAttachment|Content type"
-msgstr ""
+msgstr "FoiAttachment|Content type"
msgid "FoiAttachment|Display size"
-msgstr ""
+msgstr "FoiAttachment|Display size"
msgid "FoiAttachment|Filename"
-msgstr ""
+msgstr "FoiAttachment|Filename"
msgid "FoiAttachment|Hexdigest"
-msgstr ""
+msgstr "FoiAttachment|Hexdigest"
msgid "FoiAttachment|Url part number"
-msgstr ""
+msgstr "FoiAttachment|Url part number"
msgid "FoiAttachment|Within rfc822 subject"
-msgstr ""
+msgstr "FoiAttachment|Within rfc822 subject"
msgid "Follow"
-msgstr ""
+msgstr "Suivre"
msgid "Follow all new requests"
-msgstr ""
+msgstr "Suivre toutes les nouvelles demandes "
msgid "Follow new successful responses"
-msgstr ""
+msgstr "Suivre les nouvelles réponses réussies"
msgid "Follow requests to {{public_body_name}}"
-msgstr ""
+msgstr "Suivre les demandes à {{public_body_name}}"
msgid "Follow these requests"
-msgstr ""
+msgstr "Suivre ces demandes"
msgid "Follow things matching this search"
-msgstr ""
+msgstr "Suivre ce qui correspond a cette recherche "
msgid "Follow this authority"
-msgstr ""
+msgstr "Suivre cette autorité administrative"
msgid "Follow this link to see the request:"
-msgstr ""
+msgstr "Suivez ce lien pour voir la demande:"
msgid "Follow this person"
-msgstr ""
+msgstr "Suivre cette personne "
msgid "Follow this request"
-msgstr ""
+msgstr "Suivre cette demande"
msgid "Follow up"
-msgstr ""
+msgstr "Suivre"
msgid "Follow up message sent by requester"
-msgstr ""
+msgstr "Suivre les messages envoyés par le demandeur"
msgid "Follow up messages to existing requests are sent to "
-msgstr ""
+msgstr "Le suivi des demandes existantes sont envoyés à"
msgid "Follow ups and new responses to this request have been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you are {{user_link}} and need to send a follow up."
-msgstr ""
+msgstr "Les suivis et les nouvelles réponses à cette demande ont été arrêtés afin de prévenir le spam. Veuillez <a href=\"{{url}}\">Nous contacter </a> si vous êtes {{user_link}} et vous avez besoin d'envoyer un suivi."
msgid "Follow us on twitter"
-msgstr ""
+msgstr "Suivre sur Twitter"
msgid "Followups cannot be sent for this request, as it was made externally, and published here by {{public_body_name}} on the requester's behalf."
-msgstr ""
+msgstr "Il est impossible de suivre cette demande , elle a été faite ailleurs et publiée ici par {{public_body_name}} au nom du demandeur"
msgid "For an unknown reason, it is not possible to make a request to this authority."
msgstr "Par des raisons que nous ne pouvons pas déterminer, il est impossible d'envoyer des demandes à cette institution."
msgid "Forgotten your password?"
-msgstr ""
+msgstr "Vous avez oublié votre mot de passe?"
-msgid "Found %d public authority %s"
-msgid_plural "Found %d public authorities %s"
-msgstr[0] ""
-msgstr[1] ""
+msgid "Found {{count}} public authority {{description}}"
+msgid_plural "Found {{count}} public authorities {{description}}"
+msgstr[0] " {{count}} organisme public trouvé {{description}}"
+msgstr[1] " {{count}} organismes publics trouvés {{description}}"
msgid "Freedom of Information"
-msgstr ""
+msgstr "Liberté d'accès à l'information"
msgid "Freedom of Information Act"
-msgstr ""
+msgstr "Loi pour la liberté d'information"
msgid "Freedom of Information law does not apply to this authority, so you cannot make\\n a request to it."
-msgstr ""
+msgstr "Le droit d'accès à l'information ne s'applique pas à cette autorité, ainsi vous ne pouvez pas \\n lui adresser des demandes."
msgid "Freedom of Information law no longer applies to"
-msgstr ""
+msgstr "La loi pour la liberté d'information ne s'applique plus à"
msgid "Freedom of Information law no longer applies to this authority.Follow up messages to existing requests are sent to "
-msgstr ""
+msgstr "Le droit d'accès à l'information ne s'applique plus à cet etablissement .le suivi des messages aux demandes existantes sont envoyés à"
msgid "Freedom of Information requests made"
msgstr "sollicitudes d'accès à l'information envoyées"
msgid "Freedom of Information requests made by this person"
-msgstr ""
+msgstr "Demandes d'accès à l'information faites par cette personne"
msgid "Freedom of Information requests made by you"
-msgstr ""
+msgstr "Demandes d'accès à l'information faites par vous"
msgid "Freedom of Information requests made using this site"
msgstr "sollicitudes d'accès à l'information envoyées en utilisant cette site web"
msgid "Freedom of information requests to"
-msgstr ""
+msgstr "Demandes d'accès à l'information faites à"
msgid "From"
-msgstr ""
+msgstr "De"
-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 ""
+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=\"{{url}}\">send it to us</a>."
+msgstr "Sur la page de demande, essayez répondre à un message particulier, plutôt que d'envoyer \\n un suivi général. Si vous avez besoin de faire un suivi général, et vous saviez \\ n quel e-mail ira à la bonne place, s'il vous plaît <a href=\"{{url}}\">Envoyez le nous </a>."
msgid "From:"
-msgstr ""
+msgstr "De:"
msgid "GIVE DETAILS ABOUT YOUR COMPLAINT HERE"
-msgstr ""
+msgstr "DONNER DES DETAILS SUR VOTRE PLAINTE ICI"
msgid "Handled by post."
+msgstr "Envoyé par voie postale"
+
+msgid "Has tag string/has tag string tag"
msgstr ""
-msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
+msgid "HasTagString::HasTagStringTag|Model"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Name"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Value"
msgstr ""
+msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
+msgstr "Bonjour! Vous pouvez faire des demandes d'accès à l'information en {{country_name}} au {{link_to_website}}"
+
msgid "Hello, {{username}}!"
msgstr "Bonjour, {{username}}!"
@@ -879,16 +909,19 @@ msgid "Help"
msgstr "Aide"
msgid "Here <strong>described</strong> means when a user selected a status for the request, and\\nthe most recent event had its status updated to that value. <strong>calculated</strong> is then inferred by\\n{{site_name}} for intermediate events, which weren't given an explicit\\ndescription by a user. See the <a href=\"{{search_path}}\">search tips</a> for description of the states."
-msgstr ""
+msgstr "Ici e mot <strong> décrit </ strong> signifie quand un utilisateur a sélectionné un état ​​de la requête, et \\n l'événement le plus récent a mis à jour son statut à cette valeur. <strong> calculée </ strong> est alors déduite par \\n {{site_name}] pour les événements intermédiaires, qui n'ont pas reçu une description explicite \\n par un utilisateur. Voir les <a href=\"{{search_path}}\"> conseils de recherche </ a> pour la description des états."
msgid "Here is the message you wrote, in case you would like to copy the text and save it for later."
-msgstr ""
+msgstr "Voici le message que vous avez écrit, au cas où vous souhaitez copier le texte et l'enregistrer pour plus tard."
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 ""
+msgstr "Bonjour, Nous avons besoin de votre aide . La personne qui a effectué cette demande \\n ne nous a pas dit si'il a reçu une bonne réponse . Veuillez prendre quelques minutes pour lire et nous aider a classifier la demande . \\n Merci"
+
+msgid "Hide request"
+msgstr "Cacher la demande"
msgid "Holiday"
-msgstr ""
+msgstr "Vacances"
msgid "Holiday|Day"
msgstr "JoursFériés|Jour"
@@ -897,340 +930,379 @@ msgid "Holiday|Description"
msgstr "JoursFériés|Description"
msgid "Home"
-msgstr ""
+msgstr "Accueil"
+
+msgid "Home page"
+msgstr "Page d'accueil"
msgid "Home page of authority"
msgstr "Page web de l'institution"
msgid "However, you have the right to request environmental\\n information under a different law"
-msgstr ""
+msgstr "Cependant, vous avez le droit de demander des \\n informations environnementales en vertu d'une loi différente."
msgid "Human health and safety"
-msgstr ""
+msgstr "Santé et sécurité des personnes"
msgid "I am asking for <strong>new information</strong>"
-msgstr ""
+msgstr "Je vous demande de <strong>nouvelles informations</strong>."
msgid "I am requesting an <strong>internal review</strong>"
-msgstr ""
+msgstr "Je demande <strong>réexamen interne</strong>."
msgid "I don't like these ones &mdash; give me some more!"
-msgstr ""
+msgstr "Je n'aime pas ceux-ci &mdash; Donnez moi d'autres!"
msgid "I don't want to do any more tidying now!"
-msgstr ""
+msgstr "Je ne veux plus faire de rangement maintenant!"
msgid "I like this request"
-msgstr ""
+msgstr "J'aime cette demande "
msgid "I would like to <strong>withdraw this request</strong>"
-msgstr ""
+msgstr "Je voudrais <strong>retirer cette demande</strong>."
msgid "I'm still <strong>waiting</strong> for my information\\n <small>(maybe you got an acknowledgement)</small>"
-msgstr ""
+msgstr "Je suis enocre <strong>en attente </strong>de réponse \\n <small>(peut etre vous avez reçu un accusé de reception )</small>"
msgid "I'm still <strong>waiting</strong> for the internal review"
-msgstr ""
+msgstr "Je suis toujours en <strong>attente</strong> d'un réexamen interne."
msgid "I'm waiting for an <strong>internal review</strong> response"
-msgstr ""
+msgstr "Je suis en attente d'une réponse au sujet d'un <strong>réexamen interne</strong>."
msgid "I've been asked to <strong>clarify</strong> my request"
-msgstr ""
+msgstr "J'ai été invité à <strong>clarifier</strong> ma demande."
msgid "I've received <strong>all the information"
-msgstr ""
+msgstr "J'ai reçu <strong>toute les informations"
msgid "I've received <strong>some of the information</strong>"
-msgstr ""
+msgstr "J'air reçu <strong>une partie des informations</strong>"
msgid "I've received an <strong>error message</strong>"
-msgstr ""
+msgstr "J'ai reçu un <strong>message d'erreur</strong>."
-msgid "If the address is wrong, or you know a better address, please <a href=\"%s\">contact us</a>."
-msgstr ""
+msgid "I've received an error message"
+msgstr "J'ai reçu un <strong>message d'erreur</strong>."
+
+msgid "Id"
+msgstr "Id"
+
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Si l'adresse est erronée, ou si vous connaissez une meilleure adresse, s'il vous plaît <a href=\"{{url}}\">contactez-nous</a>."
+
+msgid "If the error was a delivery failure, and you can find an up to date FOI email address for the authority, please tell us using the form below."
+msgstr "Si l'erreur a été un échec de livraison, et vous pouvez trouver une mise à jour adresse email accès à l'information pour l'autorité, s'il vous plaît nous dire en utilisant le formulaire ci-dessous."
msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
-msgstr ""
+msgstr "Si c'est incorrect, ou si vous souhaitez envoyer une réponse tardive à la demande \\n ou un e-mail sur un autre sujet pour{{user}}, alors s'il vous plait contacter nous {{contact_email}} ."
-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 ""
+msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"{{url}}\">details</a>)."
+msgstr "Si vous n'etes pad satisfait de la réponse faite par l'organisme public , vous avez le droit de porter plainte (<a href=\"{{url}}\">details</a>)."
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
-msgstr ""
+msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Si vous rencontrez toujours des problèmes, s'il vous plaît <a href=\"{{url}}\">contact us</a>."
-msgid "If you are the requester, then you may <a href=\"%s\">sign in</a> to view the request."
-msgstr ""
+msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request."
+msgstr "Si vous êtes le demandeur, alors vous pouvez <a href=\"{{url}}\">sign in</a> voir à la demande."
-msgid "If you are thinking of using a pseudonym,\\n please <a href=\"%s\">read this first</a>."
-msgstr ""
+msgid "If you are thinking of using a pseudonym,\\n please <a href=\"{{url}}\">read this first</a>."
+msgstr "Si vous envisagez d'utiliser un pseudonyme, \\\\ veuillez <a href=\"{{url}}\">lire ça</a>."
msgid "If you are {{user_link}}, please"
msgstr "Si vous êtes {{user_link}}, merci de "
msgid "If you believe this request is not suitable, you can report it for attention by the site administrators"
-msgstr ""
+msgstr "Si vous pensez que cette demande n'est pas appropriée, vous pouvez la signaler à l'attention des administrateurs du site"
msgid "If you can't click on it in the email, you'll have to <strong>select and copy\\nit</strong> from the email. Then <strong>paste it into your browser</strong>, into the place\\nyou would type the address of any other webpage."
-msgstr ""
+msgstr "Si vous ne pouvez pas cliquer dans le mail , vous devrier <strong> selectionner et copier \\n<strong> a partir du mail . Apres , <strong> coller dans votre navigateur</strong> dans la barre d'adresse ."
msgid "If you can, scan in or photograph the response, and <strong>send us\\n a copy to upload</strong>."
-msgstr ""
+msgstr "Si vous pouvez , scannez ou photographiez une réponse , et <strong> envoyez nous une copie pour l'uploader </strong>"
msgid "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."
-msgstr ""
+msgstr "Si vous trouvez ce service utile en tant qu'agent d'accès à l'information, veuillez demander à votre webmaster de mette un lien vers notre site à partir de la page droit d'accès à l'information de votre organisation."
msgid "If you got the email <strong>more than six months ago</strong>, then this login link won't work any\\nmore. Please try doing what you were doing from the beginning."
-msgstr ""
+msgstr "Si vous avez reçu un email <strong> il ya plus de 6 mois </strong> , alors le lien pour vous connecter ne marche plus Veuillez recommencer depuis le debut "
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 ""
+msgstr "Si vous ne l'avez pas déjà fait, veuillez ecrire un message à l'autorité que vous avez retiré votre demande. Sinon, ils ne sauront pas qu'il a été retirée."
msgid "If you reply to this message it will go directly to {{user_name}}, who will\\nlearn your email address. Only reply if that is okay."
-msgstr ""
+msgstr "Si vous répondez a ce message ça ira directement à {{user_name}}, qui va \\n connaitre votre adresse mail Ne répondez que si cela ne vous dérange pas "
msgid "If you use web-based email or have \"junk mail\" filters, also check your\\nbulk/spam mail folders. Sometimes, our messages are marked that way."
-msgstr ""
+msgstr "Si vous utilisez gmail , yahoo , live ou vous avez un dossier 'courrier indésirable' . Parfois nos mails sont marqués comme spam"
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 ""
+msgstr "Si vous souhaitez que nous levons cette interdiction, alors vous pouvez poliment <a href=\"/help/contact\">Nous contacter </a> avec des explications . \\n"
msgid "If you're new to {{site_name}}"
-msgstr ""
+msgstr "Si vous êtes nouveau {{site_name}}"
msgid "If you've used {{site_name}} before"
-msgstr ""
+msgstr "Si vous avez utilisé {{site_name}} avant"
msgid "If your browser is set to accept cookies and you are seeing this message,\\nthen there is probably a fault with our server."
-msgstr ""
+msgstr "Si votre navigateur accepte les coockies et ce message affiché , \\n l'erreur est probablement liée a notre serveur"
+
+msgid "Incoming email address"
+msgstr "Adresse du courrier entrant"
msgid "Incoming message"
-msgstr ""
+msgstr "Message entrant"
msgid "IncomingMessage|Cached attachment text clipped"
-msgstr ""
+msgstr "IncomingMessage|Cached attachment text clipped"
msgid "IncomingMessage|Cached main body text folded"
-msgstr ""
+msgstr "IncomingMessage|Cached main body text folded"
msgid "IncomingMessage|Cached main body text unfolded"
-msgstr ""
+msgstr "IncomingMessage|Cached main body text unfolded"
msgid "IncomingMessage|Last parsed"
-msgstr ""
+msgstr "IncomingMessage|Last parsed"
msgid "IncomingMessage|Mail from"
-msgstr ""
+msgstr "IncomingMessage|Mail from"
msgid "IncomingMessage|Mail from domain"
-msgstr ""
+msgstr "IncomingMessage|Mail from domain"
msgid "IncomingMessage|Sent at"
-msgstr ""
+msgstr "IncomingMessage|Sent at"
msgid "IncomingMessage|Subject"
-msgstr ""
+msgstr "IncomingMessage|Subject"
msgid "IncomingMessage|Valid to reply to"
-msgstr ""
+msgstr "IncomingMessage|Valid to reply to"
msgid "Individual requests"
-msgstr ""
+msgstr "Les demandes individuelles"
msgid "Info request"
-msgstr ""
+msgstr "Info request"
msgid "Info request event"
-msgstr ""
+msgstr "Info request event"
msgid "InfoRequestEvent|Calculated state"
-msgstr ""
+msgstr "InfoRequestEvent|Calculated state"
msgid "InfoRequestEvent|Described state"
-msgstr ""
+msgstr "InfoRequestEvent|Described state"
msgid "InfoRequestEvent|Event type"
-msgstr ""
+msgstr "InfoRequestEvent|Event type"
msgid "InfoRequestEvent|Last described at"
-msgstr ""
+msgstr "InfoRequestEvent|Last described at"
msgid "InfoRequestEvent|Params yaml"
-msgstr ""
+msgstr "InfoRequestEvent|Params yaml"
msgid "InfoRequestEvent|Prominence"
-msgstr ""
+msgstr "InfoRequestEvent|Prominence"
msgid "InfoRequest|Allow new responses from"
-msgstr ""
+msgstr "InfoRequest|Allow new responses from"
msgid "InfoRequest|Attention requested"
-msgstr ""
+msgstr "InfoRequest|Attention requested"
msgid "InfoRequest|Awaiting description"
-msgstr ""
+msgstr "InfoRequest|Awaiting description"
msgid "InfoRequest|Comments allowed"
-msgstr ""
+msgstr "InfoRequest|Comments allowed"
msgid "InfoRequest|Described state"
-msgstr ""
+msgstr "InfoRequest|Described state"
msgid "InfoRequest|External url"
-msgstr ""
+msgstr "InfoRequest|External url"
msgid "InfoRequest|External user name"
-msgstr ""
+msgstr "InfoRequest|External user name"
msgid "InfoRequest|Handle rejected responses"
-msgstr ""
+msgstr "InfoRequest|Handle rejected responses"
msgid "InfoRequest|Idhash"
-msgstr ""
+msgstr "InfoRequest|Idhash"
msgid "InfoRequest|Law used"
-msgstr ""
+msgstr "InfoRequest|Law used"
msgid "InfoRequest|Prominence"
-msgstr ""
+msgstr "InfoRequest|Prominence"
msgid "InfoRequest|Title"
-msgstr ""
+msgstr "InfoRequest|Title"
msgid "InfoRequest|Url title"
-msgstr ""
+msgstr "InfoRequest|Url title"
msgid "Information not held."
-msgstr ""
+msgstr "Information non tenue."
msgid "Information on emissions and discharges (e.g. noise, energy,\\n radiation, waste materials)"
-msgstr ""
+msgstr "Informations sur les émissions et rejets (par exemple, le bruit, l'énergie, \\ n radiations, déchets)"
msgid "Internal review request"
-msgstr ""
+msgstr "Demande de révision interne"
msgid "Is {{email_address}} the wrong address for {{type_of_request}} requests to {{public_body_name}}? If so, please contact us using this form:"
-msgstr ""
+msgstr "Est ce que {{email_address}} la mauvaise adresse pour les demandes du type {{type_of_request}} à {{public_body_name}}? Si c'est le cas veuillez nous contacter en utilisant ce formulaire:"
msgid "It may be that your browser is not set to accept a thing called \"cookies\",\\nor cannot do so. If you can, please enable cookies, or try using a different\\nbrowser. Then press refresh to have another go."
-msgstr ""
+msgstr "Peut etre que votre navigateur n'accepte pas les coockies \\n . Si vous pouvez veuillez les activer ou utilisez un autre navigateur . apres cliquez sur le bouton refresh ."
msgid "Items matching the following conditions are currently displayed on your wall."
-msgstr ""
+msgstr "Elements correspondant aux conditions suivantes sont actuellement affichés sur votre mur."
+
+msgid "Items sent in last month"
+msgstr "Éléments envoyés le mois dernier"
msgid "Joined in"
-msgstr ""
+msgstr "Inscrit dans"
msgid "Joined {{site_name}} in"
-msgstr ""
+msgstr "Inscrit dans {{site_name}}"
-msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)."
-msgstr ""
+msgid "Just one more thing"
+msgstr "Juste une dernierre chose "
+
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
+msgstr "Soyez <strong> précis </strong>, vous aurez plus de chances d'obtenir ce que vous voulez (<a href=\"{{url}}\">pourquoi?</a>)."
msgid "Keywords"
-msgstr ""
+msgstr "Mots-clés"
msgid "Last authority viewed: "
-msgstr ""
+msgstr "Dernière autorité publique consultée :"
msgid "Last request viewed: "
-msgstr ""
+msgstr "Dernière demande consultée :"
msgid "Let us know what you were doing when this message\\nappeared and your browser and operating system type and version."
msgstr "Dites-nous ce que vous faisiez lorsque ce message est apparu ainsi que votre navigateur et le type et la version de votre système d'exploitation."
msgid "Link to this"
-msgstr ""
+msgstr "Créer un lien vers"
+
+msgid "List all"
+msgstr "Lister tout "
msgid "List of all authorities (CSV)"
msgstr "Liste de toutes les intitutions (CSV)"
+msgid "Listing FOI requests"
+msgstr "Liste des demandes DAI"
+
+msgid "Listing public authorities"
+msgstr "Liste des organismes publics"
+
+msgid "Listing public authorities matching '{{query}}'"
+msgstr "Liste des organismes publics correspondant à '{{query}}'"
+
+msgid "Listing tracks"
+msgstr "Liste des suivis"
+
+msgid "Listing users"
+msgstr "Liste des utilisateurs"
+
msgid "Log in to download a zip file of {{info_request_title}}"
-msgstr ""
+msgstr "Connectez-vous pour télécharger un fichier zip de {{info_request_title}}"
msgid "Log into the admin interface"
-msgstr ""
+msgstr "Se connecter a l'interface Admin"
msgid "Long overdue."
-msgstr ""
+msgstr "En retard depuis longtemps"
msgid "Made between"
-msgstr ""
+msgstr "Fait entre"
msgid "Mail server log"
-msgstr ""
+msgstr "Journal du serveur de mailing"
msgid "Mail server log done"
-msgstr ""
+msgstr "Journal du serveur mailing effectué"
msgid "MailServerLogDone|Filename"
-msgstr ""
+msgstr "MailServerLogDone|Filename"
msgid "MailServerLogDone|Last stat"
-msgstr ""
+msgstr "MailServerLogDone|Last stat"
msgid "MailServerLog|Line"
-msgstr ""
+msgstr "MailServerLog|Line"
msgid "MailServerLog|Order"
-msgstr ""
+msgstr "MailServerLog|Order"
msgid "Make a new <strong>Environmental Information</strong> request"
-msgstr ""
+msgstr "Faire une nouvelle demande <strong>d'information environnementale </strong> "
msgid "Make a new <strong>Freedom of Information</strong> request to {{public_body}}"
-msgstr ""
+msgstr "Faire une nouvelle demande <strong>d'accès a l'information </strong> à {{public_body}}"
msgid "Make a new<br/>\\n <strong>Freedom <span>of</span><br/>\\n Information<br/>\\n request</strong>"
-msgstr ""
+msgstr "Faire une<br/>\\n <strong>Nouvelle <span>demande</span><br/>\\n d'accès<br/>\\n à l'information</strong>"
msgid "Make a request"
-msgstr ""
+msgstr "Faire une demande"
msgid "Make an {{law_used_short}} request to '{{public_body_name}}'"
-msgstr ""
+msgstr "Faire une {{law_used_short}} demande à '{{public_body_name}}'"
msgid "Make and browse Freedom of Information (FOI) requests"
msgstr "Envoyer et rechercher des sollicitudes d'accès à lìnformation"
msgid "Make your own request"
-msgstr ""
+msgstr "Créer votre propre demande"
msgid "Many requests"
-msgstr ""
+msgstr "Beaucoup de demandes"
msgid "Message"
-msgstr ""
+msgstr "Message"
msgid "Message sent using {{site_name}} contact form, "
-msgstr ""
+msgstr "Message envoyé en utilisant le formulaire {{site_name}}"
msgid "Missing contact details for '"
-msgstr ""
+msgstr "Il manque les coordonnées pour '"
msgid "More about this authority"
msgstr "Plus d'infos sur cet administration"
msgid "More requests..."
-msgstr ""
+msgstr "Plus de demandes ..."
msgid "More similar requests"
-msgstr ""
+msgstr "Plus de demandes similaires"
msgid "More successful requests..."
msgstr "Les sollicitudes les plus réussites"
msgid "My profile"
-msgstr ""
+msgstr "Mon profil"
msgid "My request has been <strong>refused</strong>"
msgstr "Ma demande a été <strong>refusée</strong>"
msgid "My requests"
-msgstr ""
+msgstr "Mes demandes"
msgid "My wall"
-msgstr ""
+msgstr "Mon mur"
msgid "Name can't be blank"
msgstr "Le nom ne peut pas être effacé"
@@ -1239,13 +1311,16 @@ msgid "Name is already taken"
msgstr "Le nom est déjà pris"
msgid "New Freedom of Information requests"
-msgstr ""
+msgstr "Nouvelles demandes d'accès a l'information "
+
+msgid "New censor rule"
+msgstr "Une nouvelle règle de censure"
msgid "New e-mail:"
msgstr "Nouvel e-mail :"
msgid "New email doesn't look like a valid address"
-msgstr ""
+msgstr "La nouvelle adresse e-mail ne semble pas être une adresse valide"
msgid "New password:"
msgstr "Nouveau mot de passe :"
@@ -1254,25 +1329,25 @@ msgid "New password: (again)"
msgstr "Nouveau mot de passe : (confirmation)"
msgid "New response to '{{title}}'"
-msgstr ""
+msgstr "Nouvelle réponse à '{{title}}'"
msgid "New response to your FOI request - "
-msgstr ""
+msgstr "Nouvelle réponse à votre demande d'açcès à l'information"
msgid "New response to your request"
msgstr "Nouvelle réponse à votre demande"
msgid "New response to {{law_used_short}} request"
-msgstr ""
+msgstr "Nouvelle réponse à la {{law_used_short}} demande "
msgid "New updates for the request '{{request_title}}'"
-msgstr ""
+msgstr "Nouvelles mises à jour pour la demande '{{request_title}}'"
msgid "Newest results first"
msgstr "Les résultats les plus nouveaux en premier lieu"
msgid "Next"
-msgstr ""
+msgstr "Suivant"
msgid "Next, crop your photo &gt;&gt;"
msgstr "Ensuite, recadrer votre photo&gt;&gt;"
@@ -1281,11 +1356,14 @@ msgid "No requests of this sort yet."
msgstr "Pas encore de demande de ce type."
msgid "No results found."
-msgstr ""
+msgstr "Aucun résultat n'a étét trouvé."
msgid "No similar requests found."
msgstr "Pas de demandes similaires trouvés."
+msgid "No tracked things found."
+msgstr "Aucun suivi trouvé"
+
msgid "Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet."
msgstr "Personne n'a jamais envoyée une sollicitude d'accès à l'information à {{public_body_name}} en utilisant cette page."
@@ -1293,16 +1371,19 @@ msgid "None found."
msgstr "Aucun résultat trouvé."
msgid "None made."
-msgstr ""
+msgstr "Aucune demande "
+
+msgid "Not a valid FOI request"
+msgstr "Pas une demande d'accès a l'information valide"
msgid "Note that the requester will not be notified about your annotation, because the request was published by {{public_body_name}} on their behalf."
-msgstr ""
+msgstr "Notez que le demandeur ne sera pas informé de votre annotation, parce que la demande a été publié par {{public_body_name}} en leur nom"
msgid "Now check your email!"
msgstr "Maintenant, relevez votre email !"
msgid "Now preview your annotation"
-msgstr ""
+msgstr "Prévisualiser pour annotation"
msgid "Now preview your follow up"
msgstr "Maintenant prévisualiser votre suivi"
@@ -1311,76 +1392,79 @@ msgid "Now preview your message asking for an internal review"
msgstr "Maintenant prévisualiser votre message demandant un examen interne"
msgid "OR remove the existing photo"
-msgstr ""
+msgstr "Ou effacer la photo éxistante"
msgid "Offensive? Unsuitable?"
-msgstr ""
+msgstr "Offensif? inadapté?"
msgid "Oh no! Sorry to hear that your request was refused. Here is what to do now."
-msgstr ""
+msgstr "Oh non! Désolés d'apprendre que votre demande a été refusée. Voici ce qu'il faut faire maintenant."
msgid "Old e-mail:"
msgstr "Ancien e-mail :"
msgid "Old email address isn't the same as the address of the account you are logged in with"
-msgstr ""
+msgstr "Ancienne adresse mail n'est pas la même adresse du compte que vous êtes connecté avec"
msgid "Old email doesn't look like a valid address"
-msgstr ""
+msgstr "L'ancienne adresse mail ne ressemble pas à une adresse valide"
msgid "On this page"
msgstr "Sur cette page"
msgid "One FOI request found"
-msgstr ""
+msgstr "Une demande d'accès à l'information trouvée"
msgid "One person found"
-msgstr ""
+msgstr "Une personne trouvée"
msgid "One public authority found"
-msgstr ""
+msgstr "Une autorité administrative trouvée"
+
+msgid "Only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL – don't worry about breaking URLs through renaming, as the history is used to redirect"
+msgstr "Seulement mettre les abréviations qui sont réellement utilisés, sinon laisser vide."
msgid "Only requests made using {{site_name}} are shown."
msgstr "Seules les demandes faites en utilisant {{site_name}} sont présentés."
msgid "Only the authority can reply to this request, and I don't recognise the address this reply was sent from"
-msgstr ""
+msgstr "Seule l'autorité peut répondre à cette demande, et je ne reconnais pas l'adresse à partir de laquelle cette réponse a été envoyée"
msgid "Only the authority can reply to this request, but there is no \"From\" address to check against"
-msgstr ""
+msgstr "Seule l'autorité peut répondre à cette demande, mais il n'y a pas d'adresse \"From\" pour vérifier avec "
msgid "Or search in their website for this information."
-msgstr ""
+msgstr "Ou rechercher sur leur site Internet pour obtenir cette information."
msgid "Original request sent"
-msgstr ""
+msgstr "Demande originale envoyée"
msgid "Other:"
-msgstr ""
+msgstr "Autre:"
msgid "Outgoing message"
-msgstr ""
+msgstr "Message sortant"
msgid "OutgoingMessage|Body"
-msgstr ""
+msgstr "OutgoingMessage|Body"
msgid "OutgoingMessage|Last sent at"
-msgstr ""
+msgstr "OutgoingMessage|Last sent at"
msgid "OutgoingMessage|Message type"
-msgstr ""
+msgstr "OutgoingMessage|Message type"
msgid "OutgoingMessage|Status"
-msgstr ""
+msgstr "OutgoingMessage|Status"
msgid "OutgoingMessage|What doing"
-msgstr ""
+msgstr "OutgoingMessage|What doing"
msgid "Partially successful."
-msgstr ""
+msgstr "partiellement réussi."
msgid "Password is not correct"
-msgstr ""
+msgstr "Mot de passe incorrect"
msgid "Password:"
msgstr "Mot de passe :"
@@ -1389,22 +1473,22 @@ msgid "Password: (again)"
msgstr "Mot de passe : (confirmation)"
msgid "Paste this link into emails, tweets, and anywhere else:"
-msgstr ""
+msgstr "Coller ce lien dans les emails , tweets ou ailleurs"
msgid "People"
-msgstr ""
+msgstr "Citoyens"
msgid "People {{start_count}} to {{end_count}} of {{total_count}}"
-msgstr ""
+msgstr "Les gens {{start_count}} à {{end_count}} de {{total_count}}"
msgid "Photo of you:"
msgstr "Votre photo :"
msgid "Plans and administrative measures that affect these matters"
-msgstr ""
+msgstr "Les plans et les mesures administratives qui touchent ces questions"
msgid "Play the request categorisation game"
-msgstr ""
+msgstr "Jouez au jeu de catégorisation de la demande!"
msgid "Play the request categorisation game!"
msgstr "Jouez au jeu de catégorisation des demandes !"
@@ -1412,23 +1496,23 @@ msgstr "Jouez au jeu de catégorisation des demandes !"
msgid "Please"
msgstr "S'il vous plait"
-msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
-msgstr ""
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
+msgstr "Veuillez <a href=\"{{url}}\">nous contacter </a> afin que nous puissions le corriger."
msgid "Please <strong>answer the question above</strong> so we know whether the "
-msgstr ""
+msgstr "Veuillez <strong>répondre a la question ci-dessus</strong> pour qu'on sache si "
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 ""
+msgstr "Veuillez <strong> aller aux demandes suivantes </strong> et dites \\n nous si les réponses contiennent l'information demandée."
msgid "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=\"{{new_request_link}}\">file a new request</a>."
-msgstr ""
+msgstr "Veuillez écrire des messages <strong>Uniquement</strong>reliés à votre demande {{request_link}}. Si vous souhaitez demander des informations qui n'étaient pas dans votre demande initiale , alors <a href=\"{{new_request_link}}\">déposer une nouvelle demande</a>."
msgid "Please ask for environmental information only"
-msgstr ""
+msgstr "Veuillez demander uniquement des informations environnementales"
msgid "Please check the URL (i.e. the long code of letters and numbers) is copied\\ncorrectly from your email."
-msgstr ""
+msgstr "Veuillez voir si l'URL ( ie: la longue suite d'adresse contenant des chiffres et des lettres ) est correctement copiée depuis votre mail "
msgid "Please choose a file containing your photo."
msgstr "Choisissez un fichier qui contient votre photo."
@@ -1437,25 +1521,25 @@ msgid "Please choose what sort of reply you are making."
msgstr "Merci de choisir le type de réponse que vous entrez."
msgid "Please choose whether or not you got some of the information that you wanted."
-msgstr ""
+msgstr "Veuillez choisir si vous avez obtenu une partie de l'information que vous demandez ou pas . "
msgid "Please click on the link below to cancel or alter these emails."
-msgstr ""
+msgstr "Veuillez cliquer sur le lien ci dessous pour annuler ou modifer les email"
msgid "Please click on the link below to confirm that you want to \\nchange the email address that you use for {{site_name}}\\nfrom {{old_email}} to {{new_email}}"
-msgstr ""
+msgstr "Veuillez cliquer sur le lien ci dessous pour confirmer que vous voulez \\n changer l'adresse email que vous utilisez sur {{site_name}}\\n de {{old_email}} à {{new_email}}"
msgid "Please click on the link below to confirm your email address."
-msgstr ""
+msgstr "Veuillez cliquer sur le lien ci dessous pour confirmer votre adresse mail "
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 "Merci d'indiquer le thème de votre requête dans le champ \"Sujet\". Il n'est pas nécessaire d'indiquer qu'il s'agit d'une demande d'accès aux documents administratifs, nous le précisons par défaut."
msgid "Please don't upload offensive pictures. We will take down images\\n that we consider inappropriate."
-msgstr ""
+msgstr "Veuillez ne pas uploader des images agressives . nous allons supprimer les images qui nous semblent inappropriées."
msgid "Please enable \"cookies\" to carry on"
-msgstr ""
+msgstr "Veuillez autoriser les \"cookies\" pour poursuivre"
msgid "Please enter a password"
msgstr "Merci d'entrer un mot de passe"
@@ -1512,28 +1596,25 @@ msgid "Please keep the summary short, like in the subject of an email. You can u
msgstr "S'il vous plait soyez bref dans le résumé, comme dans le titre d'un email."
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 ""
+msgstr "Veuillez uniquement demander les informations qui appartiennent à ces catégories <strong> ne perdez pas votre temps </strong> ou celui de l'administration publique a demander des informations sans rapport avec ces catégories ."
msgid "Please select each of these requests in turn, and <strong>let everyone know</strong>\\nif they are successful yet or not."
-msgstr ""
+msgstr "Veuillez choisir ces demandes une par une et <strong> laisser tout le monde savoir </strong> si elles ont abouti ou pas ."
-msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature"
-msgstr "S'il vous plait signer à la fin avec votre nom, ou changez la \"%{signoff}\" signature"
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
+msgstr "S'il vous plait signer à la fin avec votre nom, ou changez la \"{{signoff}}\" signature"
msgid "Please sign in as "
-msgstr ""
+msgstr "Veuillez vous connecter en tant que "
msgid "Please sign in or make a new account."
-msgstr ""
+msgstr "Veuillez vous connecter ou créer un compte."
msgid "Please type a message and/or choose a file containing your response."
-msgstr ""
-
-msgid "Please use the form below to tell us more."
-msgstr ""
+msgstr "Veuillez ecrire un message et/ou choisir un fichier contenant votre réponse."
msgid "Please use this email address for all replies to this request:"
-msgstr ""
+msgstr "Veuillez utiliser cette adresse mail pour toutes les réponses sur cette demande"
msgid "Please write a summary with some text in it"
msgstr "S'il vous plait écrivez un résumé avec du texte"
@@ -1545,280 +1626,268 @@ msgid "Please write your annotation using a mixture of capital and lower case le
msgstr "S'il vous plait écrivez votre commentaire en utilisant des lettres majuscules et minuscules. Ce sera plus facile de lire."
msgid "Please write your follow up message containing the necessary clarifications below."
-msgstr ""
+msgstr "Veuillez ecrire votre message de suivi contenant toutes les clarifications necessaires présentes ci-dessous "
msgid "Please write your message using a mixture of capital and lower case letters. This makes it easier for others to read."
msgstr "S'il vous plait écrivez votre message en utilisant des lettres majuscules et minuscules. Ce sera plus facile de lire."
msgid "Point to <strong>related information</strong>, campaigns or forums which may be useful."
-msgstr ""
+msgstr "Indiquez <strong>les informations liées</strong>, compagnes ou forums qui peuvent être utiles"
msgid "Possibly related requests:"
-msgstr ""
+msgstr "Demandes similaires:"
msgid "Post annotation"
-msgstr ""
+msgstr "Ecrire une remarque"
msgid "Post redirect"
-msgstr ""
+msgstr "Post redirect"
msgid "PostRedirect|Circumstance"
-msgstr ""
+msgstr "PostRedirect|Circumstance"
msgid "PostRedirect|Email token"
-msgstr ""
+msgstr "PostRedirect|Email token"
msgid "PostRedirect|Post params yaml"
-msgstr ""
+msgstr "PostRedirect|Post params yaml"
msgid "PostRedirect|Reason params yaml"
-msgstr ""
+msgstr "PostRedirect|Reason params yaml"
msgid "PostRedirect|Token"
-msgstr ""
+msgstr "PostRedirect|Token"
msgid "PostRedirect|Uri"
-msgstr ""
+msgstr "PostRedirect|Uri"
msgid "Posted on {{date}} by {{author}}"
-msgstr ""
+msgstr "Ecrit le {{date}} par {{author}}"
msgid "Powered by <a href=\"http://www.alaveteli.org/\">Alaveteli</a>"
-msgstr ""
+msgstr "Powered by <a href=\"http://www.alaveteli.org/\">Alaveteli</a>"
msgid "Prev"
-msgstr ""
+msgstr "Pre"
msgid "Preview follow up to '"
-msgstr ""
+msgstr "Prévisualiser le suivi à '"
msgid "Preview new annotation on '{{info_request_title}}'"
-msgstr ""
+msgstr "Prévisualiser la nouvelle remarque sur '{{info_request_title}}'"
msgid "Preview your annotation"
-msgstr ""
+msgstr "Prévisualiser votre remarque"
msgid "Preview your message"
-msgstr ""
+msgstr "Prévisualiser votre message"
msgid "Preview your public request"
-msgstr ""
+msgstr "Prévisualiser votre demande "
msgid "Profile photo"
-msgstr ""
+msgstr "Photo de profil"
msgid "ProfilePhoto|Data"
-msgstr ""
+msgstr "ProfilePhoto|Data"
msgid "ProfilePhoto|Draft"
-msgstr ""
+msgstr "ProfilePhoto|Draft"
msgid "Public authorities"
-msgstr ""
+msgstr "Organismes publics"
msgid "Public authorities - {{description}}"
-msgstr ""
+msgstr "Organismes publics - {{description}}"
msgid "Public authorities {{start_count}} to {{end_count}} of {{total_count}}"
-msgstr ""
-
-msgid "Public body"
-msgstr ""
-
-msgid "Public body/translation"
-msgstr ""
-
-msgid "PublicBody::Translation|Disclosure log"
-msgstr ""
-
-msgid "PublicBody::Translation|First letter"
-msgstr ""
+msgstr "Organismes publics {{start_count}} à {{end_count}} de {{total_count}}"
-msgid "PublicBody::Translation|Locale"
-msgstr ""
-
-msgid "PublicBody::Translation|Name"
-msgstr ""
+msgid "Public authority – {{name}}"
+msgstr "Organisme public – {{name}}"
-msgid "PublicBody::Translation|Notes"
-msgstr ""
+msgid "Public body"
+msgstr "Organisme public"
-msgid "PublicBody::Translation|Publication scheme"
-msgstr ""
+msgid "Public notes"
+msgstr "Notes publiques"
-msgid "PublicBody::Translation|Request email"
-msgstr ""
+msgid "Public page"
+msgstr "Paque publique "
-msgid "PublicBody::Translation|Short name"
-msgstr ""
-
-msgid "PublicBody::Translation|Url name"
-msgstr ""
+msgid "Public page not available"
+msgstr "Page publique indisponible"
msgid "PublicBody|Api key"
-msgstr ""
+msgstr "PublicBody|Api key"
msgid "PublicBody|Disclosure log"
-msgstr ""
+msgstr "PublicBody|Disclosure log"
msgid "PublicBody|First letter"
-msgstr ""
+msgstr "PublicBody|First letter"
msgid "PublicBody|Home page"
-msgstr ""
+msgstr "PublicBody|Home page"
msgid "PublicBody|Info requests count"
-msgstr ""
+msgstr "PublicBody|Info requests count"
msgid "PublicBody|Last edit comment"
-msgstr ""
+msgstr "PublicBody|Last edit comment"
msgid "PublicBody|Last edit editor"
-msgstr ""
+msgstr "PublicBody|Last edit editor"
msgid "PublicBody|Name"
-msgstr ""
+msgstr "PublicBody|Name"
msgid "PublicBody|Notes"
-msgstr ""
+msgstr "PublicBody|Notes"
msgid "PublicBody|Publication scheme"
-msgstr ""
+msgstr "PublicBody|Publication scheme"
msgid "PublicBody|Request email"
-msgstr ""
+msgstr "PublicBody|Request email"
msgid "PublicBody|Short name"
-msgstr ""
+msgstr "PublicBody|Short name"
msgid "PublicBody|Url name"
-msgstr ""
+msgstr "PublicBody|Url name"
msgid "PublicBody|Version"
-msgstr ""
+msgstr "PublicBody|Version"
msgid "Publication scheme"
msgstr "Diffusions d'Infos Publiques"
+msgid "Publication scheme URL"
+msgstr "Publication scheme URL"
+
msgid "Purge request"
-msgstr ""
+msgstr "Supprimer la demande"
msgid "PurgeRequest|Model"
-msgstr ""
+msgstr "PurgeRequest|Model"
msgid "PurgeRequest|Url"
-msgstr ""
+msgstr "PurgeRequest|Url"
msgid "RSS feed"
-msgstr ""
+msgstr "Flux RSS "
msgid "RSS feed of updates"
-msgstr ""
+msgstr "Flux RSS de mises à jour"
msgid "Re-edit this annotation"
-msgstr ""
+msgstr "Réditer cette annotation"
msgid "Re-edit this message"
-msgstr ""
+msgstr "Réediter ce message"
msgid "Read about <a href=\"{{advanced_search_url}}\">advanced search operators</a>, such as proximity and wildcards."
-msgstr ""
+msgstr "Lire sur <a href=\"{{advanced_search_url}}\">Les opérateurs de recherche avancée</a>, tels que la proximité et caractères génériques."
msgid "Read blog"
msgstr "Lire le blog"
msgid "Received an error message, such as delivery failure."
-msgstr ""
+msgstr "Reçu un message d'erreur, tel que l'échec de la livraison."
msgid "Recently described results first"
-msgstr ""
+msgstr "Les résultats récemment décris en premier "
msgid "Refused."
-msgstr ""
+msgstr "Refusé"
msgid "Remember me</label> (keeps you signed in longer;\\n do not use on a public computer) "
-msgstr ""
+msgstr "Se rappeler du mot de passse </label> (vous permet de rester connecté ;\\n à ne pas utiliser sur un ordinateur public) "
msgid "Report abuse"
-msgstr ""
+msgstr "Signaler un abus"
msgid "Report an offensive or unsuitable request"
-msgstr ""
+msgstr "Signaler une demande offensive ou inappropriée"
msgid "Report this request"
-msgstr ""
+msgstr "Signaler cette demande"
msgid "Reported for administrator attention."
-msgstr ""
+msgstr "Rapporté à l'attention de l'administrateur."
msgid "Request an internal review"
-msgstr ""
+msgstr "Solliciter une révision interne "
msgid "Request an internal review from {{person_or_body}}"
-msgstr ""
+msgstr "Solliciter une révision interne de {{person_or_body}}"
+
+msgid "Request email"
+msgstr "Adresse mail"
msgid "Request has been removed"
-msgstr ""
+msgstr "Demande supprimée"
msgid "Request sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
-msgstr ""
+msgstr "Demande envoyée à {{public_body_name}} par {{info_request_user}} Le {{date}}."
msgid "Request to {{public_body_name}} by {{info_request_user}}. Annotated by {{event_comment_user}} on {{date}}."
-msgstr ""
+msgstr "Demande à {{public_body_name}} par {{info_request_user}}. Commentée par {{event_comment_user}} Le {{date}}."
msgid "Requested from {{public_body_name}} by {{info_request_user}} on {{date}}"
-msgstr ""
+msgstr "Demande de {{public_body_name}} par {{info_request_user}} le {{date}}"
msgid "Requested on {{date}}"
-msgstr ""
+msgstr "Demandé le {{date}}"
msgid "Requests for personal information and vexatious requests are not considered valid for FOI purposes (<a href=\"/help/about\">read more</a>)."
-msgstr ""
+msgstr "Les demandes de renseignements personnels et les demandes abusives ne sont pas considérées comme demandes valides (<a href=\"/help/about\">Lire plus</a>)."
msgid "Requests or responses matching your saved search"
-msgstr ""
+msgstr "Les demandes ou les réponses correspondant à votre recherche sauvegardée"
msgid "Respond by email"
-msgstr ""
+msgstr "Répondre par e-mail "
msgid "Respond to request"
-msgstr ""
+msgstr "Répondre à la demande"
msgid "Respond to the FOI request"
-msgstr ""
+msgstr "Répondre a la demande d'accès à l'information"
msgid "Respond using the web"
-msgstr ""
+msgstr "Répondre en utilisant le web"
msgid "Response"
-msgstr ""
+msgstr "Réponse"
msgid "Response from a public authority"
-msgstr ""
+msgstr "Réponse d'une autorité publique"
msgid "Response to '{{title}}'"
-msgstr ""
+msgstr "Réponse à '{{title}}'"
msgid "Response to this request is <strong>delayed</strong>."
-msgstr ""
+msgstr "La réponse à cette demande est <strong> retardée </ strong"
msgid "Response to this request is <strong>long overdue</strong>."
-msgstr ""
+msgstr "Réponse à cette demande est <strong> très en retard </ strong"
msgid "Response to your request"
-msgstr ""
+msgstr "Réponse a vôtre requête "
msgid "Response:"
-msgstr ""
+msgstr "Réponse"
msgid "Restrict to"
-msgstr ""
+msgstr "Limiter à "
msgid "Results page {{page_number}}"
msgstr "Page de résultats {{page_number}}"
msgid "Save"
-msgstr ""
+msgstr "Enregistrer"
msgid "Search"
msgstr "Rechercher"
@@ -1827,66 +1896,72 @@ msgid "Search Freedom of Information requests, public authorities and users"
msgstr "Chercher des sollicitudes d'accès à l'information, des institutions publiques et utilisateurs"
msgid "Search contributions by this person"
-msgstr ""
+msgstr "Rechercher les contributions de cette personne"
msgid "Search for words in:"
-msgstr ""
+msgstr "Rechercher des mots dans"
msgid "Search in"
-msgstr ""
+msgstr "Rechercher dans"
msgid "Search over<br/>\\n <strong>{{number_of_requests}} requests</strong> <span>and</span><br/>\\n <strong>{{number_of_authorities}} authorities</strong>"
-msgstr ""
+msgstr "Rechercher parmi<br/>\\n <strong>{{number_of_requests}} demandes</strong> <span>et</span><br/>\\n <strong>{{number_of_authorities}} organismes</strong>"
msgid "Search queries"
-msgstr ""
+msgstr "Requêtes de recherche"
msgid "Search results"
-msgstr ""
+msgstr "Résultats de recherche"
msgid "Search the site to find what you were looking for."
-msgstr ""
+msgstr "Rechercher dans le site pour trouver ce que vous cherchez"
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
-msgstr[0] ""
-msgstr[1] ""
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests made to {{public_body_name}}"
+msgstr[0] "Cherchez parmis la {{count}} demande faite à{{public_body_name}}"
+msgstr[1] "Cherchez parmis les {{count}} demandes faites à{{public_body_name}}"
msgid "Search your contributions"
-msgstr ""
+msgstr "Chercher vos contributions"
+
+msgid "See bounce message"
+msgstr "Voir le message de rebond"
msgid "Select one to see more information about the authority."
-msgstr ""
+msgstr "Sélectionnez l'une pour voir plus d'informations sur l'autorité."
msgid "Select the authority to write to"
-msgstr ""
+msgstr "Sélectionner un etablissement pour lui écrire "
msgid "Send a followup"
-msgstr ""
+msgstr "Envoyer un suivi"
msgid "Send a message to "
-msgstr ""
+msgstr "Envoyer un message à"
msgid "Send a public follow up message to {{person_or_body}}"
-msgstr ""
+msgstr "envoyer un message de suivi public à {{person_or_body}}"
msgid "Send a public reply to {{person_or_body}}"
-msgstr ""
+msgstr "Envoyer une réponse publique à {{person_or_body}}"
msgid "Send follow up to '{{title}}'"
-msgstr ""
+msgstr "Envoyer suivi à '{{title}}'"
msgid "Send message"
-msgstr ""
+msgstr "Envoyer un message"
msgid "Send message to "
-msgstr ""
+msgstr "Envoyer un message à"
msgid "Send request"
-msgstr ""
+msgstr "Envoyer une demande "
msgid "Set your profile photo"
-msgstr ""
+msgstr "Définir vôtre photo de profil"
+
+msgid "Short name"
+msgstr "Abbréviation "
msgid "Short name is already taken"
msgstr "Ce nom est déjà pris"
@@ -1895,16 +1970,16 @@ msgid "Show most relevant results first"
msgstr "Afficher les résultats les plus pertinents en premier"
msgid "Show only..."
-msgstr ""
+msgstr "Afficher uniquement..."
msgid "Showing"
-msgstr ""
+msgstr "Il y a"
msgid "Sign in"
-msgstr ""
+msgstr "Connexion"
msgid "Sign in or make a new account"
-msgstr ""
+msgstr "Se connecter ou créer un nouveau compte"
msgid "Sign in or sign up"
msgstr "Se connecter ou s'inscrire"
@@ -1913,553 +1988,571 @@ msgid "Sign out"
msgstr "Se déconnecter"
msgid "Sign up"
-msgstr ""
+msgstr "Créer un compte"
msgid "Similar requests"
-msgstr ""
+msgstr "Demandes similaires"
msgid "Simple search"
-msgstr ""
+msgstr "Recherche simple"
msgid "Some notes have been added to your FOI request - "
-msgstr ""
+msgstr "Quelques commentaires ont été ajoutés à vôtre demande -"
msgid "Some of the information requested has been received"
-msgstr ""
+msgstr "Quelques informations demandées ont été reçues"
msgid "Some people who've made requests haven't let us know whether they were\\nsuccessful or not. We need <strong>your</strong> help &ndash;\\nchoose one of these requests, read it, and let everyone know whether or not the\\ninformation has been provided. Everyone'll be exceedingly grateful."
-msgstr ""
+msgstr "Quelques uns parmis ceux qui ont fait les demandes ne nous ont pas fourni un retour \\n . Nous avons besoin de <strong> votre </strong> aide &ndash;\\n choisissez une de ces demandes , lisez la et faites nous savoir si l'information demandée est fournie ou pas . Tout le monde sera extrêmement reconnaissant."
msgid "Somebody added a note to your FOI request - "
-msgstr ""
+msgstr "Quelqu'un à ajouté un commentaire à votre demande -"
msgid "Someone has updated the status of your request"
-msgstr ""
+msgstr "Quelqu'un a mis à jour l'état de votre demande"
msgid "Someone, perhaps you, just tried to change their email address on\\n{{site_name}} from {{old_email}} to {{new_email}}."
-msgstr ""
+msgstr "Quelqu'un, peut-être vous, viens d'essayer de changer son adresse email sur {{site_name}} de {{old_email}} à {{new_email}}."
msgid "Sorry - you cannot respond to this request via {{site_name}}, because this is a copy of the request originally at {{link_to_original_request}}."
-msgstr ""
+msgstr "Vous ne pouvez pas répondre a cette demande via {{site_name}}, parce que c'est une copie de la demande originale ici {{link_to_original_request}}."
msgid "Sorry, but only {{user_name}} is allowed to do that."
-msgstr ""
+msgstr "Désolés , mais uniquement {{user_name}} est autorisé à faire ça."
msgid "Sorry, there was a problem processing this page"
-msgstr ""
+msgstr "Désolés, il y a eu un problème durant le traitement de la page"
msgid "Sorry, we couldn't find that page"
-msgstr ""
+msgstr "Page introuvable."
msgid "Special note for this authority!"
-msgstr ""
+msgstr "Remarque spéciale pour cette autorité"
msgid "Start"
-msgstr ""
+msgstr "Commencer "
msgid "Start now &raquo;"
-msgstr ""
+msgstr "Commencez dès maintenant &raquo;"
msgid "Start your own blog"
-msgstr ""
+msgstr "Commencez votre blog"
msgid "Stay up to date"
-msgstr ""
+msgstr "Restez à jour"
msgid "Still awaiting an <strong>internal review</strong>"
-msgstr ""
+msgstr "En attente d'une <strong>révision interne</strong>"
msgid "Subject"
-msgstr ""
+msgstr "Sujet"
msgid "Subject:"
-msgstr ""
+msgstr "Sujet:"
msgid "Submit"
-msgstr ""
+msgstr "Envoyer"
msgid "Submit status"
-msgstr ""
+msgstr "Etat d'envoi"
+
+msgid "Submit status and send message"
+msgstr "Soumettre statut et envoyer un message"
msgid "Subscribe to blog"
-msgstr ""
+msgstr "s'abonner au blog"
msgid "Successful Freedom of Information requests"
-msgstr ""
+msgstr "Demandes d'accès à l'information réussies"
msgid "Successful."
-msgstr ""
+msgstr "réussi."
msgid "Suggest how the requester can find the <strong>rest of the information</strong>."
-msgstr ""
+msgstr "Indiquer comment le demandeur peut trouver le <strong>reste de l'information</strong>."
msgid "Summary:"
-msgstr ""
+msgstr "Résumé"
msgid "Table of statuses"
msgstr "Table d'états"
msgid "Table of varieties"
-msgstr ""
+msgstr "Tables des variétés "
+
+msgid "Tags"
+msgstr "Tags"
msgid "Tags (separated by a space):"
-msgstr ""
+msgstr "Tags (séparés par un espace )"
msgid "Tags:"
-msgstr ""
+msgstr "Tags:"
msgid "Technical details"
-msgstr ""
+msgstr "Détails techniques:"
msgid "Thank you for helping us keep the site tidy!"
-msgstr ""
+msgstr "Merci de nous avoir aidé à maintenir le site en ordre!"
msgid "Thank you for making an annotation!"
-msgstr ""
+msgstr "Merci pour votre annotation!"
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 ""
+msgstr "Merci d'avoir répondu à cette demande d'accès à l'information ! Votre réponse a été publiée ci-dessous, et un lien vers votre réponse a été envoyé par courrier à "
msgid "Thank you for updating the status of the request '<a href=\"{{url}}\">{{info_request_title}}</a>'. There are some more requests below for you to classify."
-msgstr ""
+msgstr "Merci pour la mise à jour de l'état de cette demande '<a href=\"{{url}}\">{{info_request_title}}</a>'. Il ya encore quelques demandes ci-dessous à classer ."
msgid "Thank you for updating this request!"
-msgstr ""
+msgstr "Merci pour la mise à jour de cette demande "
msgid "Thank you for updating your profile photo"
-msgstr ""
+msgstr "Merci pour la mise à jour de votre photo de profil"
+
+msgid "Thank you! We'll look into what happened and try and fix it up."
+msgstr "Merci! Nous allons examiner ce qui s'est passé et essayer de le corriger."
msgid "Thanks for helping - your work will make it easier for everyone to find successful\\nresponses, and maybe even let us make league tables..."
-msgstr ""
+msgstr "Merci de nous aider - avec votre travail il sera plus facile pour tout le monde de trouver avec succès \\ n des réponses."
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 ""
+msgstr "Merci beaucoup - cela aidera les autres à trouver des choses utiles. Nous allons \\n aussi, si vous en avez besoin, donner des conseils sur ce qu'il faut faire au sujet de vos \\n demandes."
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 ""
+msgstr "Merci beaucoup - cela aidera les autres à trouver des choses utiles. Nous allons \\ n aussi, si vous en avez besoin, donner des conseils sur ce qu'il faut faire au sujet de votre \\ n demandes."
msgid "That doesn't look like a valid email address. Please check you have typed it correctly."
-msgstr ""
+msgstr "Ceci n'est pas une adresse mail valide . veuillez vérifier ce que vous avez entré "
msgid "The <strong>review has finished</strong> and overall:"
-msgstr ""
+msgstr "La <strong>révision terminée</strong> et en total:"
msgid "The Freedom of Information Act <strong>does not apply</strong> to"
-msgstr ""
+msgstr "Le droit d'accès à l'information <strong>ne s'applique pas </strong> à"
msgid "The accounts have been left as they previously were."
-msgstr ""
+msgstr "Les comptes sont laissés tels qu'ils étaient "
msgid "The authority do <strong>not have</strong> the information <small>(maybe they say who does)"
-msgstr ""
+msgstr "l'autorité <strong>ne détient pas </strong> l'information <small>(peut-être qu'ils disent qui l'a )</small>"
msgid "The authority only has a <strong>paper copy</strong> of the information."
-msgstr ""
+msgstr "L'autorité a uniquement <strong>la version en papier </strong> de cette information ."
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 ""
+msgstr "l'etablissement public dit qu'ils ont besoin d'une <strong> adresse postale </ strong>, et pas seulement un email, pour que ce soit une demande valide"
msgid "The authority would like to / has <strong>responded by post</strong> to this request."
-msgstr ""
+msgstr "L'autorité aimerait / a répondu <strong> par la poste </strong> à cette demande."
msgid "The email that you, on behalf of {{public_body}}, sent to\\n{{user}} to reply to an {{law_used_short}}\\nrequest has not been delivered."
-msgstr ""
+msgstr "Le message que vous , au nom de {{public_body}}, avez envoyé à \\n{{user}} en réponse à la demande {{law_used_short}}\\n n'a pas été delivré"
msgid "The page doesn't exist. Things you can try now:"
-msgstr ""
+msgstr "La page n'existe pas . Vous pouvez essayer de :"
msgid "The public authority does not have the information requested"
-msgstr ""
+msgstr "L'autorité administrative n'a pas les informations demandées"
msgid "The public authority would like part of the request explained"
-msgstr ""
+msgstr "L'autorité administrative aimerait l'explication de la demande "
msgid "The public authority would like to / has responded by post"
-msgstr ""
+msgstr "L'autorité administrative aimerait / a répondu par courrier"
msgid "The request has been <strong>refused</strong>"
-msgstr ""
+msgstr "La demande a été <strong>refusée</strong>"
msgid "The request has been updated since you originally loaded this page. Please check for any new incoming messages below, and try again."
-msgstr ""
+msgstr "La demande a été mise à jour depuis que vous avez chargé cette page. Veuillez vérifier tous les nouveaux messages ci-dessous et réessayez."
msgid "The request is <strong>waiting for clarification</strong>."
-msgstr ""
+msgstr "La demande est <strong>En attente de clarification</strong>."
msgid "The request was <strong>partially successful</strong>."
-msgstr ""
+msgstr "La demande est <strong>partiellement reussie</strong>."
msgid "The request was <strong>refused</strong> by"
-msgstr ""
+msgstr "La demande est <strong>rejetée</strong> par"
msgid "The request was <strong>successful</strong>."
-msgstr ""
+msgstr "La demande est <strong>réussie</strong>."
msgid "The request was refused by the public authority"
-msgstr ""
+msgstr "La demande a été rejetée par l'autorité publique"
-msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"%s\">contact us</a> if you have any questions."
-msgstr ""
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
+msgstr "La demande que vous avez essayé de voir a été retiré. Il ya \\n plusieurs raisons pour lesquelles nous aurions fait cela, désolé nous ne pouvons pas être plus précis ici . Veuillez <a\\n href=\"{{url}}\">nous contacter </a>si vous avez des questions."
msgid "The requester has abandoned this request for some reason"
-msgstr ""
+msgstr "Le demandeur a renoncé à cette demandepour une raison quelconque"
-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 ""
+msgid "The response to your request has been <strong>delayed</strong>. You can say that,\\n by law, the authority should normally have responded\\n <strong>promptly</strong> and"
+msgstr "La réponse a votre demande a été <strong> retardée </strong> . Vous pouvez dire que \\n légalement ; l'organisme public aurait dû répondre \\n <strong>rapidement</strong> et "
-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 ""
+msgid "The response to your request is <strong>long overdue</strong>. You can say that, by\\n law, under all circumstances, the authority should have responded\\n by now"
+msgstr "La réponse a votre demande est <strong>très en retard </strong>. Vous pouvez dire que selon la loi , en toutes circonstances, l'autorité aurait dû répondre \\n maintenant "
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 "Les fonctionnalités de recherche sont temporairement indisponibles. C'est pour cette raison que nous ne pouvons afficher les demandes d'information relative à cette institution."
msgid "The search index is currently offline, so we can't show the Freedom of Information requests this person has made."
+msgstr "Les fonctionnalités de recherche sont temporairement indisponibles , donc nous ne pouvons pas afficher les demandes d'accès à l'information que cette personne a effectué"
+
+msgid "The {{site_name}} team."
msgstr ""
msgid "Then you can cancel the alert."
-msgstr ""
+msgstr "Vous pouvez annuler l'alerte"
msgid "Then you can cancel the alerts."
-msgstr ""
+msgstr "après vous pouvez annuler les alertes "
msgid "Then you can change your email address used on {{site_name}}"
-msgstr ""
+msgstr "après vous pouvez changer l'adresse mail utilisée sur {{site_name}}"
msgid "Then you can change your password on {{site_name}}"
-msgstr ""
+msgstr "Ensuite, vous pouvez changer votre mot de passe sur {{site_name}}"
msgid "Then you can classify the FOI response you have got from "
-msgstr ""
+msgstr "Ensuite, vous pouvez classer la réponse que vous avez obtenu à partir de"
msgid "Then you can download a zip file of {{info_request_title}}."
-msgstr ""
+msgstr "Ensuite, vous pouvez télécharger un fichier zip {{info_request_title}}."
msgid "Then you can log into the administrative interface"
-msgstr ""
+msgstr "Ensuite, vous pouvez vous connecter à l'interface d'administration"
msgid "Then you can play the request categorisation game."
-msgstr ""
+msgstr "Ensuite, vous pouvez jouer le jeu de catégorisation de demande."
msgid "Then you can report the request '{{title}}'"
-msgstr ""
+msgstr "Ensuite, vous pouvez signaler la demande '{{title}}'"
msgid "Then you can send a message to "
-msgstr ""
+msgstr "Ensuite, vous pouvez envoyer un message à"
msgid "Then you can sign in to {{site_name}}"
-msgstr ""
+msgstr "Ensuite, vous pouvez vous connecter à {{site_name}}"
msgid "Then you can update the status of your request to "
-msgstr ""
+msgstr "Ensuite, vous pouvez mettre à jour l'état de votre demande à"
msgid "Then you can upload an FOI response. "
-msgstr ""
+msgstr "Ensuite, vous pouvez uploader une réponse "
msgid "Then you can write follow up message to "
-msgstr ""
+msgstr "Ensuite, vous pouvez écrire un message suivi pour"
msgid "Then you can write your reply to "
-msgstr ""
+msgstr "Ensuite, vous pouvez écrire votre réponse à"
msgid "Then you will be following all new FOI requests."
-msgstr ""
+msgstr "Ensuite vous suiverez toutes les nouvelles demandes ."
msgid "Then you will be notified whenever '{{user_name}}' requests something or gets a response."
-msgstr ""
+msgstr "Ensuite, vous serez averti à chaque fois '{{user_name}}' demande quelque chose ou obtient une réponse."
msgid "Then you will be notified whenever a new request or response matches your search."
-msgstr ""
+msgstr "Ensuite, vous serez averti à chaque fois une nouvelle demande ou d'une réponse correspond à votre recherche."
msgid "Then you will be notified whenever an FOI request succeeds."
-msgstr ""
+msgstr "Ensuite, vous serez averti à chaque fois qu'une demande réussit."
msgid "Then you will be notified whenever someone requests something or gets a response from '{{public_body_name}}'."
-msgstr ""
+msgstr "Ensuite, vous serez averti chaque fois que quelqu'un demande quelque chose ou obtient une réponse de '{{public_body_name}}'."
msgid "Then you will be updated whenever the request '{{request_title}}' is updated."
-msgstr ""
+msgstr "Ensuite, vous serez notifié à chaque fois que la demande '{{request_title}}' est mise à jour"
msgid "Then you'll be allowed to send FOI requests."
msgstr "Ensuite, vous serez autorisé à envoyer des demandes d'accès."
msgid "Then your FOI request to {{public_body_name}} will be sent."
-msgstr ""
+msgstr "Ensuite vôtre demande à {{public_body_name}} sera envoyée."
msgid "Then your annotation to {{info_request_title}} will be posted."
-msgstr ""
+msgstr "Ensuite vôtre remarque sur {{info_request_title}} va être postée "
msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
-msgstr ""
-
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "Il y a {{count}} nouvelles annotations sur vôtre demande {{info_request}} . Suivez ce lien pour voir ce qu'ils ont écrit."
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 ""
+msgstr "Il ya plus <strong> d'une personne </strong> qui utilise ce site et qui a ce nom \\n , dont un est affiché ci dessous , peut etre vous cherchez une personne différente ."
msgid "There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>."
-msgstr ""
+msgstr "Il ya une limite sur le nombre de demandes que vous pouvez faire en une journée, parce que nous ne voulons pas que les autorités publiques soient bombardés avec un grand nombre de demandes inappropriées. Si vous sentez que vous avez une bonne raison de demander que la limite soit levée pour vous, veuillez <a href='{{help_contact_path}}'>contacter nous</a>."
+
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
+msgstr[0] "Il ya une personne suivant cette demande "
+msgstr[1] "Il ya {{count}} personnes suivant cette demande "
msgid "There was a <strong>delivery error</strong> or similar, which needs fixing by the {{site_name}} team."
-msgstr ""
+msgstr "Il y avait <strong> une erreur de transmission r</strong> ou autre , qui doit être réparée par l'équipe {{site_name}}."
msgid "There was an error with the words you entered, please try again."
-msgstr ""
+msgstr "Il y a une erreur liée aux mots que vous avez saisies, veuillez réessayer."
msgid "There were no requests matching your query."
msgstr "Aucune demande d'information ne correspond à votre recherche."
msgid "There were no results matching your query."
-msgstr ""
+msgstr "Aucun résultat correspondant à votre recherche."
msgid "They are going to reply <strong>by post</strong>"
-msgstr ""
+msgstr "Ils vont répondre <strong>par courrier</strong>"
msgid "They do <strong>not have</strong> the information <small>(maybe they say who does)</small>"
-msgstr ""
+msgstr "Ils <strong>ne détiennent pas </strong> l'information <small>(peut-être qu'ils disent qui l'a )</small>"
msgid "They have been given the following explanation:"
-msgstr ""
+msgstr "On leur a donné l'explication suivante:"
msgid "They have not replied to your {{law_used_short}} request {{title}} promptly, as normally required by law"
-msgstr ""
+msgstr "Ils n'ont pas répondu à votre {{law_used_short}} demande {{title}} rapidement , normalement requis par la loi."
msgid "They have not replied to your {{law_used_short}} request {{title}}, \\nas required by law"
-msgstr ""
+msgstr "N'ont pas répondu à votre {{law_used_short}} demande {{title}}, \\n comme la loi l'oblige "
msgid "Things to do with this request"
-msgstr ""
+msgstr "Choses à faire avec cette demande"
msgid "Things you're following"
-msgstr ""
+msgstr "Choses que vous suivez"
msgid "This authority no longer exists, so you cannot make a request to it."
msgstr "Cette institution n'existe plus."
-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 ""
+msgid "This comment has been hidden. See annotations to\\n find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
+msgstr "Ce commentaire a été caché . Voir les annotations ci dessous pour \\n savoir pourquoi. Si vous êtes le demandeur, alors vous pouvez<a href=\"{{url}}\">vous connecter </a> pour voir la réponse."
msgid "This covers a very wide spectrum of information about the state of\\n the <strong>natural and built environment</strong>, such as:"
msgstr "Cela couvre un très large spectre d'informations sur l'état de <strong>l'environnement naturel et construit par l'homme,</strong> comme par exemple :"
msgid "This external request has been hidden"
-msgstr ""
+msgstr "Demande externe cachée"
msgid "This is a plain-text version of the Freedom of Information request \"{{request_title}}\". The latest, full version is available online at {{full_url}}"
-msgstr ""
+msgstr "Ceci est une version textuelle de la demande d'accès à l'information \"{{request_title}}\". La dernière version complète est disponible en ligne à {{full_url}}"
msgid "This is an HTML version of an attachment to the Freedom of Information request"
-msgstr ""
+msgstr "Ceci est une version HTML d'une pièce jointe à la demande d'accès à l'information"
msgid "This is because {{title}} is an old request that has been\\nmarked to no longer receive responses."
-msgstr ""
+msgstr "C'est parce que {{title}} est une vieille demande qui a été \\n marquée pour ne plus recevoir de réponses."
+
+msgid "This is the first version."
+msgstr "Ceci est la première version."
msgid "This is your own request, so you will be automatically emailed when new responses arrive."
-msgstr ""
+msgstr "Ceci est votre propre demande, afin que vous recevrez automatiquement un e-mail dès que de nouvelles réponses arrivent"
-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 ""
+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=\"{{url}}\">sign in</a> to view the response."
+msgstr "Ce message sortant a été caché. Voir les commentaires pour \\n\t\t\t\t\t\tsavoir pourquoi. Si vous êtes le demandeur, alors vous pouvez <a href=\"{{url}}\">vous connecter </a>pour voir la réponse."
msgid "This particular request is finished:"
-msgstr ""
+msgstr "Cette demande particulière est achevée:"
msgid "This person has made no Freedom of Information requests using this site."
-msgstr ""
+msgstr "Cette personne n'a pas fait de demandes d'accès à l'information via de ce site"
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
-msgstr[0] ""
-msgstr[1] ""
+msgid "This person's annotations"
+msgstr "Les annotations de cette personne"
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
-msgstr[0] ""
-msgstr[1] ""
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
+msgstr[0] "La demande d'accès a l'infromation de cette personne"
+msgstr[1] "Les {{count}} demandes d'accès a l'infromation de cette personne"
-msgid "This person's annotations"
-msgstr ""
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
+msgstr[0] "Le commentaire de cette personne "
+msgstr[1] "Les {{count}} commentaires de cette personne "
msgid "This request <strong>requires administrator attention</strong>"
-msgstr ""
+msgstr "Cette demande <strong> nécessite une attention de l'administrateur </strong>"
msgid "This request has already been reported for administrator attention"
-msgstr ""
+msgstr "Cette demande a déjà été signalé à l'attention de l'administrateur"
msgid "This request has an <strong>unknown status</strong>."
-msgstr ""
+msgstr "Cette demande a <strong> un statut inconnu </strong>."
msgid "This request has been <strong>hidden</strong> from the site, because an administrator considers it not to be an FOI request"
-msgstr ""
+msgstr "Cette demande a été <strong>cachée</strong> du site parce que l'administrateur la considere comme étant non liée au droit d'accès a l'information"
msgid "This request has been <strong>hidden</strong> from the site, because an administrator considers it vexatious"
-msgstr ""
+msgstr "Cette demande a été <strong>cachée</strong> du site parce qu'un administrateur la considère comme contrariante"
msgid "This request has been <strong>reported</strong> as needing administrator attention (perhaps because it is vexatious, or a request for personal information)"
-msgstr ""
+msgstr "Cette demande a été <strong>signalée</strong> (peut-être parce qu'elle est vexatoire, ou une demande de renseignements personnels)"
msgid "This request has been <strong>withdrawn</strong> by the person who made it.\\n There may be an explanation in the correspondence below."
-msgstr ""
+msgstr "Cette demande a été <strong> retirée </strong> par la personne qui l'a fait . \\n Il ya peut etre une explication ci dessous ."
-msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"%s\">contact us</a>."
-msgstr ""
+msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Cette demande a été marquée pour révision par les administrateurs du site, qui ne l'ont pas cachés à ce moment. Si vous pensez qu'elle doit être cachée , Veuillez <a href=\"{{url}}\">Nous contacter</a>."
msgid "This request has been reported for administrator attention"
-msgstr ""
+msgstr "Cette demande a été signalée "
msgid "This request has been set by an administrator to \"allow new responses from nobody\""
-msgstr ""
+msgstr "Cette demande a été définie par un administrateur de sorte à \" permettre à de nouvelles réponses de nobody\""
msgid "This request has had an unusual response, and <strong>requires attention</strong> from the {{site_name}} team."
-msgstr ""
+msgstr "Cette demande a eu une réponse inhabituelle, et <strong>necessite l'attention</strong> de l'équipe {{site_name}} ."
msgid "This request has prominence 'hidden'. You can only see it because you are logged\\n in as a super user."
-msgstr ""
+msgstr "Cette demande est cachée . Vous pouvez uniquement la voir parce que vous etes administrateur ."
-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 ""
+msgid "This request is hidden, so that only you the requester can see it. Please\\n <a href=\"{{url}}\">contact us</a> if you are not sure why."
+msgstr "Cette demande est masquée, uniquement le demandeur peut la voir.Veuillez <a href=\"{{url}}\">Nous contacter </a> si vous voulez en savoir plus "
msgid "This request is still in progress:"
-msgstr ""
+msgstr "Cette demande est encore en cours:"
+
+msgid "This request requires administrator attention"
+msgstr "Cette demande nécessite une attention de l'administrateur "
msgid "This request was not made via {{site_name}}"
-msgstr ""
+msgstr "cette demande n'a pas été faite à travers {{site_name}}"
-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 ""
+msgid "This response has been hidden. See annotations to find out why.\\n If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
+msgstr "Cette réponse a été cachée. Voir les commentaires pour savoir pourquoi. \\n Si vous êtes le demandeur, alors vous pouvez <a href=\"{{url}}\">vous connecter</a> pour voir la réponse."
msgid "This table shows the technical details of the internal events that happened\\nto this request on {{site_name}}. This could be used to generate information about\\nthe speed with which authorities respond to requests, the number of requests\\nwhich require a postal response and much more."
-msgstr ""
+msgstr "Ce tableau présente les détails techniques des événements internes qui ont eu lieu \\n à cette demande sur {{site_name}}. Cela pourrait être utilisé pour générer des informations sur \\n la vitesse avec laquelle les autorités répondent aux demandes, le nombre de demandes \\n qui nécessitent une réponse postale et bien plus encore."
msgid "This user has been banned from {{site_name}} "
-msgstr ""
+msgstr "Cet utilisateur a été banni de {{site_name}}"
msgid "This was not possible because there is already an account using \\nthe email address {{email}}."
-msgstr ""
+msgstr "Ceci n'est pas possible parce qu'il existe deja un compte utilisant l'adresse mail {{email}}."
msgid "To cancel these alerts"
-msgstr ""
+msgstr "Pour annuler ces alertes"
msgid "To cancel this alert"
-msgstr ""
+msgstr "Pour annuler cette alerte"
msgid "To carry on, you need to sign in or make an account. Unfortunately, there\\nwas a technical problem trying to do this."
-msgstr ""
+msgstr "Pour continuer, vous devez vous connecter ou créer un compte. Malheureusement, il \\n avait un problème technique en essayant de le faire."
msgid "To change your email address used on {{site_name}}"
-msgstr ""
+msgstr "Pour changer votre adresse e-mail utilisée sur {{site_name}}"
msgid "To classify the response to this FOI request"
-msgstr ""
+msgstr "Pour classer la réponse à cette demande d'accès a l'information"
msgid "To do that please send a private email to "
-msgstr ""
+msgstr "Pour ce faire, veuillez envoyer un courriel privé à"
msgid "To do this, first click on the link below."
-msgstr ""
+msgstr "Pour ce faire, cliquez d'abord sur le lien ci-dessous."
msgid "To download the zip file"
-msgstr ""
+msgstr "Pour télécharger le fichier zip"
msgid "To follow all successful requests"
-msgstr ""
+msgstr "Pour suivre toutes les demandes réussies"
msgid "To follow new requests"
-msgstr ""
+msgstr "Pour suivre les nouvelles demandes"
msgid "To follow requests and responses matching your search"
msgstr "Pour suivre les demandes d'information et les réponses correspondant à votre recherche"
msgid "To follow requests by '{{user_name}}'"
-msgstr ""
+msgstr "Pour suivre toutes les demandes effectuées par '{{user_name}}'"
msgid "To follow requests made using {{site_name}} to the public authority '{{public_body_name}}'"
-msgstr ""
+msgstr "Pour suivre les demandes effectuées a travers {{site_name}} a l'organisme publique '{{public_body_name}}'"
msgid "To follow the request '{{request_title}}'"
-msgstr ""
+msgstr "Pour suivre la demande '{{request_title}}'"
msgid "To help us keep the site tidy, someone else has updated the status of the \\n{{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."
-msgstr ""
+msgstr "Pour nous aider à maintenir ce site , une personne a mis a jour l'état de la \\n{{law_used_full}} demande {{title}} - que vous avez adressée à {{public_body}} - à \"{{display_status}}\" . Si vous êtes en désaccord avec leur catégorisation, s'il vous plaît mettre à jour le statut de nouveau vous-même à ce que vous croyez être plus précis."
msgid "To let everyone know, follow this link and then select the appropriate box."
-msgstr ""
+msgstr "Pour faire savoira tout le monde , suivez ce lien et sélectionnez ensuite la case appropriée"
msgid "To log into the administrative interface"
-msgstr ""
+msgstr "Pour vous connecter à l'interface Admin"
msgid "To play the request categorisation game"
-msgstr ""
+msgstr "Pour jouer au jeu de catégorisation de demande"
msgid "To post your annotation"
-msgstr ""
+msgstr "Pour soumettre votre annotation"
msgid "To reply to "
-msgstr ""
+msgstr "Répondre à"
msgid "To report this FOI request"
-msgstr ""
+msgstr "Pour signaler cette demande "
msgid "To send a follow up message to "
-msgstr ""
+msgstr "Pour envoyer un message de suivi à"
msgid "To send a message to "
-msgstr ""
+msgstr "Pour envoyer un message à"
msgid "To send your FOI request"
-msgstr ""
+msgstr "Pour envoyer une demande d'accès à l'information "
msgid "To update the status of this FOI request"
-msgstr ""
+msgstr "Pour mettre à jour l'état de cette demande "
msgid "To upload a response, you must be logged in using an email address from "
-msgstr ""
+msgstr "Pour télécharger une réponse, vous devez être connecté en utilisant une adresse e-mail de"
msgid "To use the advanced search, combine phrases and labels as described in the search tips below."
msgstr "Pour utiliser la recherche avancée, associez les termes et les étiquettes comme indiqué dans les conseils ci-dessous."
msgid "To view the email address that we use to send FOI requests to {{public_body_name}}, please enter these words."
-msgstr ""
+msgstr "Pour afficher l'adresse email que nous utilisons pour envoyer des demandes d'accès à l'information {{public_body_name}}, veuillez saisir ces mots."
msgid "To view the response, click on the link below."
-msgstr ""
+msgstr "Pour voir la réponse, cliquez sur le lien ci-dessous."
msgid "To {{public_body_link_absolute}}"
-msgstr ""
+msgstr "à {{public_body_link_absolute}}"
msgid "To:"
-msgstr ""
+msgstr "à:"
msgid "Today"
msgstr "Aujourd'hui"
msgid "Too many requests"
-msgstr ""
+msgstr "Trop de demandes "
msgid "Top search results:"
msgstr "Résultats les plus pertinents :"
msgid "Track thing"
-msgstr ""
+msgstr "Suivre chose"
msgid "Track this person"
-msgstr ""
+msgstr "Suivre cette personne"
msgid "Track this search"
-msgstr ""
+msgstr "Suivre cette recherche"
msgid "TrackThing|Track medium"
-msgstr ""
+msgstr "TrackThing|Track medium"
msgid "TrackThing|Track query"
-msgstr ""
+msgstr "TrackThing|Track query"
msgid "TrackThing|Track type"
-msgstr ""
+msgstr "TrackThing|Track type"
msgid "Turn off email alerts"
-msgstr ""
+msgstr "Désactiver les alertes e-mail"
msgid "Tweet this request"
msgstr "Partager cette demande d'information sur Twitter"
@@ -2471,43 +2564,43 @@ msgid "URL name can't be blank"
msgstr "Le champs URL ne peut être vide"
msgid "Unable to change email address on {{site_name}}"
-msgstr ""
+msgstr "Impossible de changer l'adresse email sur {{site_name}}"
msgid "Unable to send a reply to {{username}}"
-msgstr ""
+msgstr "Impossible d'envoyer une réponse à {{username}}"
msgid "Unable to send follow up message to {{username}}"
-msgstr ""
+msgstr "Impossible d'envoyer un message de suivi à {{username}}"
msgid "Unexpected search result type"
-msgstr ""
+msgstr "Type de résultat de recherche inattendu"
msgid "Unexpected search result type "
-msgstr ""
+msgstr "Type de résultat de recherche inattendu"
-msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"%s\">contact us</a> to sort it out."
-msgstr ""
+msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"{{url}}\">contact us</a> to sort it out."
+msgstr "Malheureusement, nous ne connaissons pas l'adresse email pour cette autorité, nous ne pouvons pas valider ça. \\n Veuillez {{url}}\">Nous contacter</a> pour règler ça."
msgid "Unfortunately, we do not have a working {{info_request_law_used_full}}\\naddress for"
-msgstr ""
+msgstr "Malheureusement, nous n'avons pas d'adresse {{info_request_law_used_full}} pour"
msgid "Unknown"
-msgstr ""
+msgstr "Inconnu"
msgid "Unsubscribe"
-msgstr ""
+msgstr "désabonner"
msgid "Unusual response."
-msgstr ""
+msgstr "Réponse intattendue"
msgid "Update the status of this request"
-msgstr ""
+msgstr "Mettre à jour l'état de cette demande"
msgid "Update the status of your request to "
-msgstr ""
+msgstr "Mettre à jour l'état de cette demande à"
msgid "Upload FOI response"
-msgstr ""
+msgstr "Uploader une réponse"
msgid "Use OR (in capital letters) where you don't mind which word, e.g. <strong><code>commons OR lords</code></strong>"
msgstr "Utilisez OR (en majuscules) pour indiquer que l'ordre des mots n'importe pas, \\n\\n par exemple, <code><strong>sénat OR assemblée</strong></code>"
@@ -2516,76 +2609,82 @@ msgid "Use quotes when you want to find an exact phrase, e.g. <strong><code>\"Li
msgstr "Utilisez les guillemets pour une expression exacte, par exemple, <code><strong>\"Conseil de l'europe\"</strong></code>"
msgid "User"
-msgstr ""
+msgstr "Utilisateur"
msgid "User info request sent alert"
-msgstr ""
+msgstr "Alerte envoyée"
+
+msgid "User – {{name}}"
+msgstr "Utilisateur– {{name}}"
msgid "UserInfoRequestSentAlert|Alert type"
-msgstr ""
+msgstr "UserInfoRequestSentAlert|Alert type"
msgid "User|About me"
-msgstr ""
+msgstr "User|About me"
msgid "User|Address"
-msgstr ""
+msgstr "User|Address"
msgid "User|Admin level"
-msgstr ""
+msgstr "User|Admin level"
msgid "User|Ban text"
-msgstr ""
+msgstr "User|Ban text"
msgid "User|Dob"
-msgstr ""
+msgstr "User|Dob"
msgid "User|Email"
-msgstr ""
+msgstr "User|Email"
msgid "User|Email bounce message"
-msgstr ""
+msgstr "User|Email bounce message"
msgid "User|Email bounced at"
-msgstr ""
+msgstr "User|Email bounced at"
msgid "User|Email confirmed"
-msgstr ""
+msgstr "User|Email confirmed"
msgid "User|Hashed password"
-msgstr ""
+msgstr "User|Hashed password"
msgid "User|Last daily track email"
-msgstr ""
+msgstr "User|Last daily track email"
msgid "User|Locale"
-msgstr ""
+msgstr "User|Locale"
msgid "User|Name"
-msgstr ""
+msgstr "User|Name"
msgid "User|No limit"
-msgstr ""
+msgstr "User|No limit"
msgid "User|Receive email alerts"
-msgstr ""
+msgstr "User|Receive email alerts"
msgid "User|Salt"
-msgstr ""
+msgstr "User|Salt"
msgid "User|Url name"
-msgstr ""
+msgstr "User|Url name"
+
+msgid "Version {{version}}"
+msgstr "Version {{version}}"
msgid "View FOI email address"
-msgstr ""
+msgstr "Voir les adresses mail "
msgid "View FOI email address for '{{public_body_name}}'"
-msgstr ""
+msgstr "Voir l'adresse mail pour '{{public_body_name}}'"
msgid "View FOI email address for {{public_body_name}}"
-msgstr ""
+msgstr "voir l'adresse mail pour {{public_body_name}}"
msgid "View Freedom of Information requests made by {{user_name}}:"
-msgstr ""
+msgstr "Voir les demandes faites par {{user_name}}:"
msgid "View and search requests"
msgstr "Visualiser et parcourir les demandes d'information"
@@ -2594,313 +2693,326 @@ msgid "View authorities"
msgstr "Voir institutions publiques"
msgid "View email"
-msgstr ""
+msgstr "Voir mail :"
msgid "View requests"
msgstr "Voir requêtes"
msgid "Waiting clarification."
-msgstr ""
+msgstr "En attente de clarification"
msgid "Waiting for an <strong>internal review</strong> by {{public_body_link}} of their handling of this request."
-msgstr ""
+msgstr "En attente <strong>d'une révision interne</strong> par {{public_body_link}} a propos de leur gestion de la demande."
msgid "Waiting for the public authority to complete an internal review of their handling of the request"
-msgstr ""
+msgstr "En attente de l'autorité administrative pour compléter une révision interne de leur gestion de la demande"
msgid "Waiting for the public authority to reply"
-msgstr ""
+msgstr "En attente de la réponse de l'autorité administrative"
msgid "Was the response you got to your FOI request any good?"
+msgstr "Est ce que vous êtes satisfait de la réponse que vous avez eu ?"
+
+msgid "We consider it is not a valid FOI request, and have therefore hidden it from other users."
msgstr ""
-msgid "We do not have a working request email address for this authority."
+msgid "We consider it to be vexatious, and have therefore hidden it from other users."
msgstr ""
+msgid "We do not have a working request email address for this authority."
+msgstr "Nous n'avons pas d'adresse email valide pour cette autorité."
+
msgid "We do not have a working {{law_used_full}} address for {{public_body_name}}."
-msgstr ""
+msgstr "Nous ne disposons pas d'adresse {{law_used_full}} pour {{public_body_name}}."
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=\"{{url}}\">sign in</a> and let everyone know."
-msgstr ""
+msgstr "Nous ne savons pas si la réponse la plus récente à cette demande contient l'information \\n ou non \\n &ndash;\\n\tsi vous etes {{user_link}} veuillez <a href=\"{{url}}\">vous connecter</a> et laisser nous savoir."
-msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"%s\">details</a>). "
-msgstr ""
-"Nous ne communiquerons pas votre adresse e-mail sauf si vous nous y \n"
-" autorisez ou si la loi nous y oblige (<a href=\"%s\">détails</a>). "
+msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"{{url}}\">details</a>). "
+msgstr "Nous ne communiquerons pas votre adresse e-mail sauf si vous nous y autorisez ou si la loi nous y oblige (<a href=\"{{url}}\">détails</a>). "
msgid "We will not reveal your email address to anybody unless you\\nor the law tell us to."
-msgstr ""
+msgstr "Nous ne communiquerons pas votre adresse e-mail sauf si vous nous y autorisez ou si la loi nous y oblige."
msgid "We will not reveal your email addresses to anybody unless you\\nor the law tell us to."
-msgstr ""
+msgstr "Nous ne communiquerons pas vos adresses e-mail sauf si vous nous y autorisez ou si la loi nous y oblige"
msgid "We're waiting for"
-msgstr ""
+msgstr "Nous attendons"
msgid "We're waiting for someone to read"
-msgstr ""
+msgstr "Nous attendons qu'une personne lise"
msgid "We've sent an email to your new email address. You'll need to click the link in\\nit before your email address will be changed."
-msgstr ""
+msgstr "Nous avons envoyé un email à votre nouvelle adresse email. Vous devez cliquer sur le lien là dedans \\n avant que votre adresse e-mail sera changé."
msgid "We've sent you an email, and you'll need to click the link in it before you can\\ncontinue."
-msgstr ""
+msgstr "Nous avons envoyé un email . Vous devez cliquer sur le lien dans \\n pour pouvoir continuer."
msgid "We've sent you an email, click the link in it, then you can change your password."
-msgstr ""
+msgstr "Nous vous avons envoyé un email , cliquez sur le lien qu'il contient pour changer votre mot de passe"
msgid "What are you doing?"
-msgstr ""
+msgstr "Qu'est ce que vous faites?"
msgid "What best describes the status of this request now?"
-msgstr ""
+msgstr "Quelle est la meilleure description de l'état de votre demande ?"
msgid "What information has been released?"
msgstr "Quelles informations ont été rendues publiques ?"
msgid "What information has been requested?"
-msgstr ""
+msgstr "Quelles sont les informations qui ont été demandées?"
msgid "When you get there, please update the status to say if the response \\ncontains any useful information."
-msgstr ""
+msgstr "Quand vous y arrivez, veuillez mettre à jour le statut et dire si la réponse \\n contient une information utile."
msgid "When you receive the paper response, please help\\n others find out what it says:"
-msgstr ""
+msgstr "Lorsque vous recevez la réponse sur papier, s'il vous plaît aidez \\n les autres à découvrir ce qu'elle contient:"
-msgid "When you're done, <strong>come back here</strong>, <a href=\"%s\">reload this page</a> and file your new request."
-msgstr ""
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
+msgstr "Lorsque vous aurez terminé, <strong> Revenez ici </ strong>, <a href=\"{{url}}\"> actualisez cette page </a> et déposez votre nouvelle demande."
msgid "Which of these is happening?"
-msgstr ""
+msgstr "Lequel se passe "
msgid "Who can I request information from?"
msgstr "A qui puis-je faire une demande d'information ?"
msgid "Withdrawn by the requester."
-msgstr ""
+msgstr "retirée par le demandeur "
msgid "Wk"
-msgstr ""
+msgstr "Wk"
msgid "Would you like to see a website like this in your country?"
msgstr "Soutenez-vous la création d'un site similaire dans votre pays ?"
msgid "Write a reply"
-msgstr ""
+msgstr "écrire une réponse "
msgid "Write a reply to "
-msgstr ""
+msgstr "écrire une réponse à"
msgid "Write your FOI follow up message to "
-msgstr ""
+msgstr "Ecrire votre message de suivi à"
msgid "Write your request in <strong>simple, precise language</strong>."
-msgstr ""
+msgstr "Formulez votre demande en langage <strong>simple et precis </strong>."
msgid "You"
-msgstr ""
+msgstr "Vous"
msgid "You are already following new requests"
-msgstr ""
+msgstr "Vous suivez déjà de nouvelles demandes"
msgid "You are already following requests to {{public_body_name}}"
-msgstr ""
+msgstr "Vous suivez déjà les demandes à {{public_body_name}}"
msgid "You are already following things matching this search"
-msgstr ""
+msgstr "Vous suivez déjà ce qui correspond à cette recherche"
msgid "You are already following this person"
-msgstr ""
+msgstr "Vous suivez déjà cette personne"
msgid "You are already following this request"
-msgstr ""
+msgstr "Vous suivez déjà cette demande"
msgid "You are already following updates about {{track_description}}"
-msgstr ""
+msgstr "Vous suivez déjà mises à jour sur {{track_description}}"
msgid "You are currently receiving notification of new activity on your wall by email."
-msgstr ""
+msgstr "Vous suivez actuellement des notifications a propos des nouvelles activités sur votre mur par email."
msgid "You are following all new successful responses"
-msgstr ""
+msgstr "vous suivez toutes les nouvelles réponses réussies"
msgid "You are no longer following {{track_description}}."
-msgstr ""
+msgstr "Vous ne suivez plus {{track_description}}."
msgid "You are now <a href=\"{{wall_url_user}}\">following</a> updates about {{track_description}}"
-msgstr ""
+msgstr "vous <a href=\"{{wall_url_user}}\">suivez </a>maintenant les mises à jour concernant {{track_description}}"
msgid "You can <strong>complain</strong> by"
-msgstr ""
+msgstr "Vous pouvez <strong>vous plaindre</strong> en "
msgid "You can change the requests and users you are following on <a href=\"{{profile_url}}\">your profile page</a>."
-msgstr ""
+msgstr "Vous pouvez modifier les demandes et les utilisateurs que vous suivez sur <a href=\"{{profile_url}}\">votre profil</a>."
msgid "You can get this page in computer-readable format as part of the main JSON\\npage for the request. See the <a href=\"{{api_path}}\">API documentation</a>."
-msgstr ""
+msgstr "Vous pouvez avoir cette page dans un format electronique en tant que partie du fichier JSON principal . Voir <a href=\"{{api_path}}\">API documentation</a>."
msgid "You can only request information about the environment from this authority."
msgstr "Vous ne pouvez demander des informations concernant l'environnement pour cette institution."
msgid "You have a new response to the {{law_used_full}} request "
-msgstr ""
+msgstr "Vous avez une nouvelle réponse à la demande {{law_used_full}} "
msgid "You have found a bug. Please <a href=\"{{contact_url}}\">contact us</a> to tell us about the problem"
msgstr "Vous avez identifié un bogue. Merci de <a href=\"{{contact_url}}\">nous contacter</a> pour nous signaler ce problème"
msgid "You have hit the rate limit on new requests. Users are ordinarily limited to {{max_requests_per_user_per_day}} requests in any rolling 24-hour period. You will be able to make another request in {{can_make_another_request}}."
-msgstr ""
+msgstr "Vous avez atteint la limite du nombre des nouvelles demandes. Les utilisateurs sont normalement limités à {max_requests_per_user_per_day}} demandes par jour . Vous serez en mesure de faire une autre demande dans {{can_make_another_request}}."
msgid "You have made no Freedom of Information requests using this site."
-msgstr ""
+msgstr "Vous n'avez jamais effectué de demandes d'accès à l'information en utilisant ce site"
msgid "You have now changed the text about you on your profile."
-msgstr ""
+msgstr "Vous avez changé votre description personnelle "
msgid "You have now changed your email address used on {{site_name}}"
-msgstr ""
+msgstr "Vous avez changé votre adresse mail utilisée dans {{site_name}}"
msgid "You just tried to sign up to {{site_name}}, when you\\nalready have an account. Your name and password have been\\nleft as they previously were.\\n\\nPlease click on the link below."
-msgstr ""
+msgstr "Vous avez essayé de vous inscrire sur {{site_name}}, alors que vous avez \\n déjà un compte. Votre nom et mot de passe ont été \\n laissés comme ils étaient auparavant. \\n\\n S'il vous plaît cliquer sur le lien ci-dessous."
msgid "You know what caused the error, and can <strong>suggest a solution</strong>, such as a working email address."
-msgstr ""
+msgstr "Vous savez ce qui a causé l'erreur et pouvez <strong>recommender une solution </strong> , une adresse mail valide par exemple."
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 ""
+msgstr "Vous pouvez <strong> inclure des pièces jointes </ strong>. Si vous souhaitez joindre un fichier \\n trop volumineux pour le courrier électronique, utiliser le formulaire ci-dessous."
-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 ""
+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=\"{{url}}\">send it to us</a>."
+msgstr "Vous pourrez peut-être trouver \\n un sur leur site Web ou en leur téléphonant et demander. Si vous parvenez \\n en trouver un, alors s'il vous plaît <a href=\"{{help_url}}\">contactez nous </a>."
msgid "You may be able to find\\none on their website, or by phoning them up and asking. If you manage\\nto find one, then please <a href=\"{{help_url}}\">send it to us</a>."
-msgstr ""
+msgstr "Vous pourrez peut-être trouver \\n un sur leur site Web ou en leur téléphonant et demander. Si vous parvenez \\n en trouver un, alors s'il vous plaît <a href=\"{{help_url}}\">contactez nous </a>."
msgid "You need to be logged in to change the text about you on your profile."
-msgstr ""
+msgstr "Vous devez être connectés pour changer votre description personnelle"
msgid "You need to be logged in to change your profile photo."
-msgstr ""
+msgstr "Vous devez être connectés pour changer votre photo de profil "
msgid "You need to be logged in to clear your profile photo."
-msgstr ""
+msgstr "Vous devez être connectés pour supprimer votre photo de profil"
msgid "You need to be logged in to edit your profile."
-msgstr ""
+msgstr "Vous devez être connectés pour modifier votre profil"
msgid "You previously submitted that exact follow up message for this request."
-msgstr ""
+msgstr "Vous avez dejà utilisé le même commentaire pour cette demande ."
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 ""
+msgstr "Vous devriez avoir reçu une copie de la demande par e-mail, et vous pouvez répondre \\n en <strong> répondant simplement </ strong> à cet email. Pour plus de facilité voici l'adresse:"
msgid "You want to <strong>give your postal address</strong> to the authority in private."
-msgstr ""
+msgstr "Vous voulez <strong>donner votre adresse postale </strong>en privé à l'autorité administrative."
msgid "You will be unable to make new requests, send follow ups, add annotations or\\nsend messages to other users. You may continue to view other requests, and set\\nup\\nemail alerts."
-msgstr ""
+msgstr "Vous serez incapable de faire de nouvelles demandes, envoyer des suivis, ajouter des annotations ou \\n envoyer des messages à d'autres utilisateurs. Vous pouvez continuer à voir d'autres demandes, et recevoir \\n \\n des alertes e-mail."
msgid "You will no longer be emailed updates for those alerts"
-msgstr ""
+msgstr "Vous ne recevrez plus des mises à jour pour ces alertes "
msgid "You will now be emailed updates about {{track_description}}. <a href=\"{{change_email_alerts_url}}\">Prefer not to receive emails?</a>"
-msgstr ""
+msgstr "Vous allez recevoir des mails de mise à jour concernant {{track_description}}. <a href=\"{{change_email_alerts_url}}\"> vous préférez ne pas recevoir de emails?</a>"
msgid "You will only get an answer to your request if you follow up\\nwith the clarification."
+msgstr "Vous ne pourrez obtenir une réponse à votre demande que si vous envoyer une \\n clarification."
+
+msgid "You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further."
msgstr ""
msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
-msgstr ""
+msgstr "Vous y etes . <a href=\"#\" id=\"send-request\">Continuer l'evoi de votre demande </a>"
msgid "You're long overdue a response to your FOI request - "
-msgstr ""
+msgstr "Vous attendez depuis longtemps une réponse à votre demande d'accès à l'information -"
msgid "You're not following anything."
-msgstr ""
+msgstr "Vous ne suivez rien ."
msgid "You've now cleared your profile photo"
-msgstr ""
-
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "Vous avez supprimé votre photo de profil"
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
-msgstr[0] ""
-msgstr[1] ""
-
-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 ""
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
+msgstr "Votre <strong>nom va apparaître publiquement</strong>\\n (<a href=\"{{why_url}}\">pourqoi?</a>)\\n dans ce site et les moteurs de recherche . Si vous \\n vous pensez à utiliser un pseudo veuillez \\n <a href=\"{{help_url}}\">Lire ça </a>."
msgid "Your annotations"
-msgstr ""
+msgstr "Vos commentaires "
msgid "Your details, including your email address, have not been given to anyone."
-msgstr ""
+msgstr "Vos coordonnées, y compris votre adresse e-mail, n'ont été données à personne."
msgid "Your e-mail:"
-msgstr ""
+msgstr "Votre e-mail:"
-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 ""
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
+msgstr "Votre suivi n'a pas été envoyé parce que cette demande a été arrêté afin de prévenir le spam. Veuillez <a href=\"{{url}}\">nous contacter</a>si vous voulez vraiment envoyer un message de suivi."
msgid "Your follow up message has been sent on its way."
-msgstr ""
+msgstr "Votre message de suivi à été envoyé ."
msgid "Your internal review request has been sent on its way."
-msgstr ""
+msgstr "Votre demande de révision interne a été envoyée "
msgid "Your message has been sent. Thank you for getting in touch! We'll get back to you soon."
-msgstr ""
+msgstr "Votre message a été envoyé . Merci de prendre contact! Nous reviendrons vers avec bientôt"
msgid "Your message to {{recipient_user_name}} has been sent"
-msgstr ""
+msgstr "Votre message à {{recipient_user_name}} a été envoyé"
msgid "Your message to {{recipient_user_name}} has been sent!"
-msgstr ""
+msgstr "Votre message à {{recipient_user_name}} a été envoyé!"
msgid "Your message will appear in <strong>search engines</strong>"
-msgstr ""
+msgstr "Votre message va apparaitre dans les <strong>Moteurs de recherche</strong>"
msgid "Your name and annotation will appear in <strong>search engines</strong>."
-msgstr ""
+msgstr "Votre nom et remarque vont apparaitre dans <strong>les moteurs de recherche</strong>."
-msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"%s\">details</a>)."
-msgstr ""
+msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"{{url}}\">details</a>)."
+msgstr "Votre nom , demande et toute réponse vont apparaître dans les <strong>moteurs de recherche </strong>\\n (<a href=\"{{url}}\">details</a>)."
msgid "Your name:"
-msgstr ""
+msgstr "Votre nom:"
msgid "Your original message is attached."
-msgstr ""
+msgstr "Votre message original est attaché"
msgid "Your password has been changed."
-msgstr ""
+msgstr "Votre mot de passe a été changé"
msgid "Your password:"
-msgstr ""
+msgstr "Votre mot de passe :"
msgid "Your photo will be shown in public <strong>on the Internet</strong>,\\n wherever you do something on {{site_name}}."
+msgstr "Votre photo va apparaitre publiquement <strong> sur internet </strong> ,\\n a chaque fois que vous changez quelque chose sur {{site_name}}."
+
+msgid "Your request '{{request}}' at {{url}} has been reviewed by moderators."
msgstr ""
-msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
+msgid "Your request on {{site_name}} hidden"
msgstr ""
+msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
+msgstr "Votre demande est appelée {{info_request}} . En laissant tout le monde savoir si vous avez obtenu l'information nous aidera a suivre "
+
msgid "Your request:"
-msgstr ""
+msgstr "Votre demande:"
msgid "Your response to an FOI request was not delivered"
-msgstr ""
+msgstr "Votre réponse n'a pas été délivrée"
-msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"%s\">read why</a> and answers to other questions."
-msgstr ""
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
+msgstr "Votre réponse va <strong>apparaître sur l'internet </strong>, <a href=\"{{url}}\">lire pourquoi</a> et répondre aux autres questions."
msgid "Your thoughts on what the {{site_name}} <strong>administrators</strong> should do about the request."
-msgstr ""
+msgstr "Vos idées sur ce que les <strong>administrateurs</strong> de {{site_name}} devraient faire a propos de la demande."
+
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
+msgstr[0] "Votre {{count}} demande d'accès à l'information"
+msgstr[1] "Vos {{count}} demandes d'accès à l'information"
+
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
+msgstr[0] "Votre {{count}} remarque"
+msgstr[1] "Vos {{count}} remarques"
msgid "Your {{site_name}} email alert"
-msgstr ""
+msgstr "Votre alerte mail de {{site_name}}"
msgid "Yours faithfully,"
msgstr "Je vous prie de croire, Monsieur/Madame, à l'assurance de mes salutations distinguées,"
@@ -2908,24 +3020,30 @@ msgstr "Je vous prie de croire, Monsieur/Madame, à l'assurance de mes salutatio
msgid "Yours sincerely,"
msgstr "Je vous prie de croire, Monsieur/Madame, à l'assurance de mes salutations distinguées,"
-msgid "[FOI #{{request}} email]"
+msgid "Yours,"
msgstr ""
+msgid "[FOI #{{request}} email]"
+msgstr "[FOI #{{request}} email]"
+
msgid "[{{public_body}} request email]"
-msgstr ""
+msgstr "[{{public_body}} request email]"
msgid "[{{site_name}} contact email]"
-msgstr ""
+msgstr "[{{site_name}} contact email]"
msgid "\\n\\n[ {{site_name}} note: The above text was badly encoded, and has had strange characters removed. ]"
-msgstr ""
+msgstr "\\n\\n[ {{site_name}} Remarque: Le texte ci-dessus a été mal codé, et les caractères étranges sont supprimés ]"
msgid "a one line summary of the information you are requesting, \\n\t\t\te.g."
-msgstr ""
+msgstr "un résumé d'une ligne de l'information que vous demandez, \\n\t\t\te.g."
msgid "admin"
msgstr "admin"
+msgid "alaveteli_foi:The software that runs {{site_name}}"
+msgstr "alaveteli_foi:The software that runs {{site_name}}"
+
msgid "all requests"
msgstr "toutes les demandes"
@@ -2933,31 +3051,34 @@ msgid "also called {{public_body_short_name}}"
msgstr "aussi appelé {{public_body_short_name}}"
msgid "an anonymous user"
-msgstr ""
+msgstr "un utilisateur anonyme"
msgid "and"
msgstr "et"
msgid "and update the status accordingly. Perhaps <strong>you</strong> might like to help out by doing that?"
-msgstr ""
+msgstr "Et mettre à jour par conséquent. Peut être <strong>vous</strong> voudriez nous aider en faisant ça?"
msgid "and update the status."
-msgstr ""
+msgstr "et mettre à jour l'état"
msgid "and we'll suggest <strong>what to do next</strong>"
-msgstr ""
+msgstr "Et on va suggérer <strong>quoi faire après</strong>"
msgid "any <a href=\"/list\">new requests</a>"
-msgstr ""
+msgstr "Toutes <a href=\"/list\">les nouvelles demandes</a>"
msgid "any <a href=\"/list/successful\">successful requests</a>"
-msgstr ""
+msgstr "toutes <a href=\"/list/successful\">les demandes réussies</a>"
msgid "anything"
-msgstr ""
+msgstr "tout"
msgid "are long overdue."
-msgstr ""
+msgstr "sont en retard"
+
+msgid "at"
+msgstr "à"
msgid "authorities"
msgstr "institutions"
@@ -2966,85 +3087,88 @@ msgid "awaiting a response"
msgstr "en attente d'une réponse"
msgid "beginning with ‘{{first_letter}}’"
-msgstr ""
+msgstr "Commençant par ‘{{first_letter}}’"
msgid "between two dates"
msgstr "entre deux dates"
+msgid "but followupable"
+msgstr "Mais suivable"
+
msgid "by"
-msgstr ""
+msgstr "par"
msgid "by <strong>{{date}}</strong>"
-msgstr ""
+msgstr "par <strong>{{date}}</strong>"
msgid "by {{public_body_name}} to {{info_request_user}} on {{date}}."
-msgstr ""
+msgstr "par {{public_body_name}} à {{info_request_user}} le {{date}}."
msgid "by {{user_link_absolute}}"
-msgstr ""
+msgstr "par {{user_link_absolute}}"
msgid "comments"
msgstr "commentaires"
msgid "containing your postal address, and asking them to reply to this request.\\n Or you could phone them."
-msgstr ""
+msgstr "contenant votre adresse postale, et en leur demandant de répondre à cette demande. \\n Ou vous pouvez leur téléphoner."
msgid "details"
-msgstr ""
+msgstr "détails"
msgid "display_status only works for incoming and outgoing messages right now"
-msgstr ""
+msgstr "display_status n'est valide que pour les messages entrant et sortant pour le moment"
msgid "during term time"
-msgstr ""
+msgstr "pendant l'année scolaire"
msgid "edit text about you"
-msgstr ""
+msgstr "modifier votre description personnelle"
msgid "even during holidays"
-msgstr ""
+msgstr "même pendant les vacances"
msgid "everything"
msgstr "tout"
msgid "external"
-msgstr ""
+msgstr "Externe"
msgid "has reported an"
-msgstr ""
+msgstr "à reporté un "
msgid "have delayed."
-msgstr ""
+msgstr "ont retardé"
msgid "hide quoted sections"
-msgstr ""
+msgstr "cacher les sections citées"
msgid "in term time"
-msgstr ""
+msgstr "en période scolaire"
msgid "in the category ‘{{category_name}}’"
-msgstr ""
+msgstr "dans la catégorie ‘{{category_name}}’"
msgid "internal error"
-msgstr ""
+msgstr "Erreur interne"
msgid "internal reviews"
msgstr "révisions internes"
msgid "is <strong>waiting for your clarification</strong>."
-msgstr ""
+msgstr "est <strong>en attente de votre clarification </strong>."
msgid "just to see how it works"
-msgstr ""
+msgstr "Juste pour voir comment ça marche"
msgid "left an annotation"
-msgstr ""
+msgstr "a laissé une remarque"
msgid "made."
-msgstr ""
+msgstr "faites."
msgid "matching the tag ‘{{tag_name}}’"
-msgstr ""
+msgstr "correspondant au tag ‘{{tag_name}}’"
msgid "messages from authorities"
msgstr "messages des institutions"
@@ -3052,20 +3176,26 @@ msgstr "messages des institutions"
msgid "messages from users"
msgstr "messages des utilisateurs"
+msgid "move..."
+msgstr "déplacer"
+
msgid "no later than"
-msgstr ""
+msgstr "au plus tard"
-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 ""
+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=\"{{url}}\">send it to us</a>."
+msgstr "n'existe plus . Si vous essayer de faire ça a partir de la page de demande , essayer de répondre un un message en particulier plutôt que d'envoyer \\n un suivi général. Si vous avez besoin de faire un suivi général, et vous saviez \\ n quel e-mail ira à la bonne place, s'il vous plaît <a href=\"{{url}}\">Envoyez le nous </a>."
msgid "normally"
-msgstr ""
+msgstr "normalement"
+
+msgid "not requestable due to: {{reason}}"
+msgstr "non demandable en raison de: {{reason}}"
msgid "please sign in as "
-msgstr ""
+msgstr "veuillez vous connecter en tant que "
msgid "requesting an internal review"
-msgstr ""
+msgstr "Solliciter une révision interne "
msgid "requests"
msgstr "demandes"
@@ -3074,22 +3204,25 @@ msgid "requests which are {{list_of_statuses}}"
msgstr "demandes qui sont"
msgid "response as needing administrator attention. Take a look, and reply to this\\nemail to let them know what you are going to do about it."
-msgstr ""
+msgstr "réponse ayant besoin d'attention de l'administrateur. Jetez un oeil, et répondez à cet \\n email pour leur faire savoir ce que vous allez faire à ce sujet."
msgid "send a follow up message"
-msgstr ""
+msgstr "Envoyer un message de suivi "
msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
-msgstr ""
+msgstr "Envoyée à {{public_body_name}} par {{info_request_user}} Le {{date}}."
+
+msgid "set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA"
+msgstr "set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA"
msgid "show quoted sections"
-msgstr ""
+msgstr "Afficher les sections citées"
msgid "sign in"
-msgstr ""
+msgstr "Connexion"
msgid "simple_date_format"
-msgstr ""
+msgstr "simple_date_format"
msgid "successful"
msgstr "fructueux/se"
@@ -3098,46 +3231,51 @@ msgid "successful requests"
msgstr "demandes qui ont abouti"
msgid "that you made to"
-msgstr ""
+msgstr "Que vous avez fait à "
msgid "the main FOI contact address for {{public_body}}"
-msgstr ""
+msgstr "l'adresse principale de l'agent d'accès a l'information au sein de {{public_body}}"
+#. This phrase completes the following sentences:
+#. Request an internal review from...
+#. Send a public follow up message to...
+#. Send a public reply to...
+#. Don't want to address your message to... ?
msgid "the main FOI contact at {{public_body}}"
-msgstr ""
+msgstr "L'agent d'acces l'information au sein de {{public_body}}"
msgid "the requester"
-msgstr ""
+msgstr "Le demandeur"
msgid "the {{site_name}} team"
-msgstr ""
+msgstr "L'équipe {{site_name}}"
msgid "to read"
-msgstr ""
+msgstr "à lire "
msgid "to send a follow up message."
-msgstr ""
+msgstr "Pour envoyer un message de suivi ."
msgid "to {{public_body}}"
-msgstr ""
+msgstr "à {{public_body}}"
msgid "unexpected prominence on request event"
-msgstr ""
+msgstr "Importance inattendue de la demande "
msgid "unknown reason "
-msgstr ""
+msgstr "raison inconnue"
msgid "unknown status "
-msgstr ""
+msgstr "état inconnu"
msgid "unresolved requests"
msgstr "demandes qui n'ont pas encore abouti"
msgid "unsubscribe"
-msgstr ""
+msgstr "se désabonner"
msgid "unsubscribe all"
-msgstr ""
+msgstr "désabonner tout "
msgid "unsuccessful"
msgstr "infructueux/se"
@@ -3146,28 +3284,51 @@ msgid "unsuccessful requests"
msgstr "demandes qui n'ont pas abouti"
msgid "useful information."
-msgstr ""
+msgstr "information utile"
msgid "users"
msgstr "utilisateurs"
+msgid "what's that?"
+msgstr "C'est quoi ça ?"
+
msgid "{{count}} FOI requests found"
msgstr "{{count}} demandes d'accès aux documents administratifs trouvées"
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] "{{count}} Liberté de pouvoir faire une demande d'informations sur {{public_body_name}}"
+msgstr[1] "{{count}} Liberté de pouvoir faire des demandes d'informations sur {{public_body_name}}"
+
+msgid "{{count}} person is following this authority"
+msgid_plural "{{count}} people are following this authority"
+msgstr[0] "{{count}} personne suit cette autorité administrative"
+msgstr[1] "{{count}} personnes suivent cette autorité administrative "
+
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
+msgstr[0] "{{count}} demande"
+msgstr[1] "{{count}} demandes"
+
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
+msgstr[0] "{{count}} demande réalisée."
+msgstr[1] "{{count}} demandes réalisées."
+
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 ""
+msgstr "{{existing_request_user}} a dejà effectué la même demande le {{date}}. Vous pouvez soit voir la <a href=\"{{existing_request}}\">demande existante </a>,\\n ou modifier les details ci dessous pour faire une nouvelle demande similaire ."
msgid "{{info_request_user_name}} only:"
-msgstr ""
+msgstr "{{info_request_user_name}} uniquement:"
msgid "{{law_used_full}} request - {{title}}"
-msgstr ""
+msgstr "{{law_used_full}} demande - {{title}}"
msgid "{{law_used_full}} request GQ - {{title}}"
-msgstr ""
+msgstr "{{law_used_full}} demande - {{title}}"
msgid "{{law_used}} requests at {{public_body}}"
-msgstr ""
+msgstr "{{law_used}} demandes à {{public_body}}"
msgid "{{length_of_time}} ago"
msgstr "depuis {{length_of_time}}"
@@ -3176,61 +3337,64 @@ msgid "{{list_of_things}} matching text '{{search_query}}'"
msgstr "{{list_of_things}} correspondant au texte '{{search_query}}'"
msgid "{{number_of_comments}} comments"
-msgstr ""
+msgstr "{{number_of_comments}} commentaires"
msgid "{{public_body_link}} answered a request about"
-msgstr ""
+msgstr "{{public_body_link}} a répondu à une demande sur"
msgid "{{public_body_link}} was sent a request about"
-msgstr ""
+msgstr "{{public_body_link}} a reçu une demande sur "
msgid "{{public_body_name}} only:"
-msgstr ""
+msgstr "{{public_body_name}} uniquement:"
msgid "{{public_body}} has asked you to explain part of your {{law_used}} request."
-msgstr ""
+msgstr "{{public_body}} vous a demandé de clarifier une partie de votre {{law_used}} demande."
msgid "{{public_body}} sent a response to {{user_name}}"
msgstr "{{public_body}} a répondu à {{user_name}}"
msgid "{{reason}}, please sign in or make a new account."
-msgstr ""
+msgstr "{{reason}}, Veuillez vous connecter ou créer un nouveau compte."
msgid "{{search_results}} matching '{{query}}'"
msgstr "{{search_results}} correspondant à '{{query}}'"
msgid "{{site_name}} blog and tweets"
-msgstr ""
+msgstr "{{site_name}} blog et tweets"
msgid "{{site_name}} covers requests to {{number_of_authorities}} authorities, including:"
msgstr "{{site_name}} gère les demandes adressées à {{number_of_authorities}} institutions, dont :"
msgid "{{site_name}} sends new requests to <strong>{{request_email}}</strong> for this authority."
-msgstr ""
+msgstr "{{site_name}} Envoi de nouvelles demandes <strong>{{request_email}}</strong> pour cette autorité."
msgid "{{site_name}} users have made {{number_of_requests}} requests, including:"
msgstr "Les utilisateurs de {{site_name}} ont envoyé {{number_of_requests}} demandes, dont :"
+msgid "{{thing_changed}} was changed from <code>{{from_value}}</code> to <code>{{to_value}}</code>"
+msgstr "{{thing_changed}} was changed from <code>{{from_value}}</code> to <code>{{to_value}}</code>"
+
msgid "{{title}} - a Freedom of Information request to {{public_body}}"
-msgstr ""
+msgstr "{{title}} - Une demande d'accès à l'information à {{public_body}}"
msgid "{{user_name}} (Account suspended)"
-msgstr ""
+msgstr "{{user_name}} (Compte suspondu)"
msgid "{{user_name}} - Freedom of Information requests"
-msgstr ""
+msgstr "{{user_name}} - Demandes d'accès à l'information"
msgid "{{user_name}} - user profile"
-msgstr ""
+msgstr "{{user_name}} - profil de l'utilisateur"
msgid "{{user_name}} added an annotation"
msgstr "{{user_name}} a ajouté une annotation"
msgid "{{user_name}} has annotated your {{law_used_short}} \\nrequest. Follow this link to see what they wrote."
-msgstr ""
+msgstr "{{user_name}} a commenté votre {{law_used_short}} \\ndemande. Suivez ce lien pour voir ce qu'il a ecrit "
msgid "{{user_name}} has used {{site_name}} to send you the message below."
-msgstr ""
+msgstr "{{user_name}} a utilisé {{site_name}} pour vous envoyer le message ci-dessous."
msgid "{{user_name}} sent a follow up message to {{public_body}}"
msgstr "{{user_name}} a envoyé un message de relance à {{public_body}}"
@@ -3239,10 +3403,10 @@ msgid "{{user_name}} sent a request to {{public_body}}"
msgstr "{{user_name}} a envoyé une demande à {{public_body}}"
msgid "{{username}} left an annotation:"
-msgstr ""
+msgstr "{{username}} a laissé une remarque:"
msgid "{{user}} ({{user_admin_link}}) made this {{law_used_full}} request (<a href=\"{{request_admin_url}}\">admin</a>) to {{public_body_link}} (<a href=\"{{public_body_admin_url}}\">admin</a>)"
-msgstr ""
+msgstr "{{user}} ({{user_admin_link}}) a fait cette {{law_used_full}} demande (<a href=\"{{request_admin_url}}\">admin</a>) à {{public_body_link}} (<a href=\"{{public_body_admin_url}}\">admin</a>)"
msgid "{{user}} made this {{law_used_full}} request"
-msgstr ""
+msgstr "{{user}} a fait cette {{law_used_full}} demande"
diff --git a/locale/gl/app.po b/locale/gl/app.po
index ca7679096..7da3fbaa7 100644
--- a/locale/gl/app.po
+++ b/locale/gl/app.po
@@ -3,15 +3,15 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# David Cabo <david.cabo@gmail.com>, 2012.
+# David Cabo <david.cabo@gmail.com>, 2012
msgid ""
msgstr ""
"Project-Id-Version: alaveteli\n"
"Report-Msgid-Bugs-To: http://github.com/sebbacon/alaveteli/issues\n"
-"POT-Creation-Date: 2012-12-18 10:11+0000\n"
-"PO-Revision-Date: 2012-12-18 10:14+0000\n"
+"POT-Creation-Date: 2013-05-30 09:46+0100\n"
+"PO-Revision-Date: 2013-05-30 08:54+0000\n"
"Last-Translator: louisecrow <louise@mysociety.org>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language-Team: Galician (http://www.transifex.com/projects/p/alaveteli/language/gl/)\n"
"Language: gl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -23,8 +23,8 @@ msgstr ""
" Esto aparecerá en tu perfil de {{site_name}}, para facilitar\n"
" que otras personas entiendan y participen en tus solicitudes."
-msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)"
-msgstr " (<strong>sin ataques políticos</strong>, lea nuestra <a href=\"%s\">política de moderación</a>)"
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
+msgstr " (<strong>sin ataques políticos</strong>, lea nuestra <a href=\"{{url}}\">política de moderación</a>)"
msgid " (<strong>patience</strong>, especially for large files, it may take a while!)"
msgstr "Mis solicitudes"
@@ -56,9 +56,9 @@ msgstr " Consejo sobre cómo <strong>aclarar lo mejor posible</strong> la solici
msgid " Ideas on what <strong>other documents to request</strong> which the authority may hold. "
msgstr " Ideas sobre <strong>qué otros documentos pedir</strong> que el organismo público puede tener. "
-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."
+msgid " If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\\n You may be able to find the address on their website, or by phoning them up and asking."
msgstr ""
-" Si conoces la dirección a utilizar, entonces por favor <a href=\"%s\">envíanosla</a>.\n"
+" Si conoces la dirección a utilizar, entonces por favor <a href=\"{{url}}\">envíanosla</a>.\n"
" Puede que la encuentres en su página web, o llamándoles por teléfono y preguntando."
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."
@@ -100,21 +100,6 @@ msgstr " cuando envió este mensaje."
msgid "\"Hello! We have an <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">important message</a> for visitors outside {{country_name}}\""
msgstr ""
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
-msgstr[0] "%d solicitud de información a %s"
-msgstr[1] "%d solicitudes de información a %s"
-
-msgid "%d request"
-msgid_plural "%d requests"
-msgstr[0] "%d solicitud"
-msgstr[1] "%d solicitudes"
-
-msgid "%d request made."
-msgid_plural "%d requests made."
-msgstr[0] "%d solicitud enviada."
-msgstr[1] "%d solicitudes enviadas."
-
msgid "'Crime statistics by ward level for Wales'"
msgstr "'Estadísticas de crímenes por región en España'"
@@ -130,6 +115,9 @@ msgstr "'{{link_to_request}}', una solicitud"
msgid "'{{link_to_user}}', a person"
msgstr "'{{link_to_user}}', una persona"
+msgid "*unknown*"
+msgstr ""
+
msgid ",\\n\\n\\n\\nYours,\\n\\n{{user_name}}"
msgstr ""
",\n"
@@ -152,34 +140,14 @@ msgstr "2. Solicite información"
msgid "3. Now check your request"
msgstr "3. Revisa tu solicitud"
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
-msgstr "<a href=\"%s\">Añada un comentario</a> (para ayudar al peticionario o a otros)"
-
-msgid "<a href=\"%s\">Are we missing a public authority?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Are you the owner of\\n any commercial copyright on this page?</a>"
-msgstr ""
-"<a href=\"%s\">¿Posee el copyright\n"
-" de alguna información de esta página?</a>"
-
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
-msgstr "<a href=\"%s\">Ver todas</a> o <a href=\"%s\">pídanos que añadamos una</a>."
-
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
-msgstr "<a href=\"%s\">¿No encuentra el que busca?</a>"
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
+msgstr "<a href=\"{{browse_url}}\">Ver todas</a> o <a href=\"{{add_url}}\">pídanos que añadamos una</a>."
-msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
-msgstr "<a href=\"%s\">Abre una sesión</a> para cambiar tu contraseña, suscripciones... (sólo {{user_name}})"
+msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)"
+msgstr "<a href=\"{{url}}\">Añada un comentario</a> (para ayudar al peticionario o a otros)"
-msgid "<a href=\"%s\">details</a>"
-msgstr "<a href=\"%s\">detalles</a>"
-
-msgid "<a href=\"%s\">what's that?</a>"
-msgstr "<a href=\"%s\">¿Qué es eso?</a>"
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
+msgstr "<a href=\"{{url}}\">Abre una sesión</a> para cambiar tu contraseña, suscripciones... (sólo {{user_name}})"
msgid "<p>All done! Thank you very much for your help.</p><p>There are <a href=\"{{helpus_url}}\">more things you can do</a> to help {{site_name}}.</p>"
msgstr "<p>¡Ya está! Muchas gracias por tu ayuda.</p><p>Hay <a href=\"{{helpus_url}}\">más cosas que puedes hacer</a> para ayudar a {{site_name}}.</p>"
@@ -198,9 +166,6 @@ msgstr ""
msgid "<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>"
msgstr "<p>¡Gracias! Deseamos que tu espera no sea demasiado larga.</p><p>Debería recibir una respuesta en {{late_number_of_days}} días, o ser informado de que tardará más (<a href=\"{{review_url}}\">más información</a>).</p>"
-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 "<p>¡Gracias! Investigaremos lo ocurrido y trataremos de arreglarlo.</p><p> Si el error ha sido al intentar entregar el correo, y puede encontrar una dirección más actualizada para este organismo, por favor indíquenoslo en el siguiente formulario.</p>"
-
msgid "<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>"
msgstr "<p>¡Gracias! Tu solicitud está muy retrasada, han pasado más de {{very_late_number_of_days}} días laborales. La mayoría de las solicitudes deberían ser respondidas en {{late_number_of_days}} días laborales. Puede reclamar sobre esta situación, como se explica más abajo.</p>"
@@ -225,11 +190,11 @@ msgstr "<p>Nos alegra saber que has obtenido toda la información que solicitast
msgid "<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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 "<p>Nos alegra saber que has obtenido parte de la información que solicitaste. Si escribes sobre ella, o la utilizas, por favor vuelve y añade un comentario a continuación explicando lo que has hecho.</p><p>Si {{site_name}} te ha resultado útil, <a href=\"{{donation_url}}\">puedes donar</a> a la ONG responsable.</p>"
-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 "<p>No necesitas incluir tu dirección de correo en la solicitud para recibir una respuesta (<a href=\"%s\">más detalles</a>).</p>"
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
+msgstr "<p>No necesitas incluir tu dirección de correo en la solicitud para recibir una respuesta (<a href=\"{{url}}\">más detalles</a>).</p>"
-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 "<p>No necesitas incluir tu dirección de correo en la solicitud para recibir una respuesta, te la pediremos en el siguiente paso (<a href=\"%s\">más detalles</a>).</p>"
+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=\"{{url}}\">details</a>).</p>"
+msgstr "<p>No necesitas incluir tu dirección de correo en la solicitud para recibir una respuesta, te la pediremos en el siguiente paso (<a href=\"{{url}}\">más detalles</a>).</p>"
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 "<p>Tu solicitud incluye un <strong>código postal</strong>. Salvo que esté directamente relacionado con su solicitud, por favor elimina cualquier dirección, ya que <strong>estará disponible públicamente en Internet</strong>.</p>"
@@ -246,15 +211,10 @@ msgstr ""
"tus carpetas de spam. A veces, nuestros mensajes se marcan así por error.</small>\n"
"</p>"
-msgid "<span id='follow_count'>%d</span> person is following this authority"
-msgid_plural "<span id='follow_count'>%d</span> people are following this authority"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
+msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
msgstr ""
"<strong> ¿Puedo pedir información sobre mí?</strong>\n"
-"\t\t\t<a href=\"%s\">¡No! (Pulse aquí para más detalles)</a>"
+"\t\t\t<a href=\"{{url}}\">¡No! (Pulse aquí para más detalles)</a>"
msgid "<strong><code>commented_by:tony_bowden</code></strong> to search annotations made by Tony Bowden, typing the name as in the URL."
msgstr "<strong><code>commented_by:rafael_nadal</code></strong> para buscar comentarios hechos por el usuario 'rafael_nadal'."
@@ -322,10 +282,10 @@ msgstr ""
" Enviaremos un correo a la nueva dirección de correo. Sigue\n"
" sus instrucciones para confirmar la nueva dirección."
-msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"%s\">click here</a>."
+msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"{{url}}\">click here</a>."
msgstr ""
"<strong>Nota sobre privacidad:</strong> Si quiere solicitar información privada\n"
-" sobre sí mismo entonces <a href=\"%s\">siga este enlace</a>."
+" sobre sí mismo entonces <a href=\"{{url}}\">siga este enlace</a>."
msgid "<strong>Privacy note:</strong> Your photo will be shown in public on the Internet,\\n wherever you do something on {{site_name}}."
msgstr ""
@@ -368,6 +328,9 @@ msgstr "Una respuesta será enviada <strong>por correo ordinario</strong>"
msgid "A strange reponse, required attention by the {{site_name}} team"
msgstr "Una respuesta inusual, debe ser revisada por el equipo de {{site_name}}"
+msgid "A vexatious request"
+msgstr ""
+
msgid "A {{site_name}} user"
msgstr "Un usuario de {{site_name}}"
@@ -377,6 +340,15 @@ msgstr "Sobre mí:"
msgid "Act on what you've learnt"
msgstr "Utilice esta información"
+msgid "Acts as xapian/acts as xapian job"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Action"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Model"
+msgstr ""
+
msgid "Add an annotation"
msgstr "Añada un comentario"
@@ -463,13 +435,22 @@ msgstr ""
msgid "Anyone:"
msgstr "Cualquiera:"
+msgid "Applies to"
+msgstr ""
+
+msgid "Are we missing a public authority?"
+msgstr ""
+
+msgid "Are you the owner of any commercial copyright on this page?"
+msgstr "¿Posee el copyright de alguna información de esta página?"
+
msgid "Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries."
msgstr "Pide documentos o información <strong>específica</strong>, esta web no está pensada para resolver dudas generales."
-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>)."
+msgid "At the bottom of this page, write a reply to them trying to persuade them to scan it in\\n (<a href=\"{{url}}\">more details</a>)."
msgstr ""
"Al final de esta página, escribe una respuesta intentando convencerles de que lo escaneen\n"
-" (<a href=\"%s\">más detalles</a>)."
+" (<a href=\"{{url}}\">más detalles</a>)."
msgid "Attachment (optional):"
msgstr "Adjuntos (opcional):"
@@ -504,6 +485,12 @@ msgstr "Por ley, bajo cualquier circunstancia, {{public_body_link}} ya debería
msgid "By law, {{public_body_link}} should normally have responded <strong>promptly</strong> and"
msgstr "Por ley, {{public_body_link}} debería haber respondido <strong>pronto</strong> y"
+msgid "Calculated home page"
+msgstr ""
+
+msgid "Can't find the one you want?"
+msgstr "¿No encuentra el que busca?"
+
msgid "Cancel a {{site_name}} alert"
msgstr "Cancele una alerta de {{site_name}}"
@@ -673,9 +660,15 @@ msgstr "Actualmente <strong>esperando la respuesta</strong> de {{public_body_lin
msgid "Date:"
msgstr "Fecha:"
+msgid "Dear {{name}},"
+msgstr ""
+
msgid "Dear {{public_body_name}},"
msgstr "Estimado {{public_body_name}},"
+msgid "Default locale"
+msgstr ""
+
msgid "Delayed response to your FOI request - "
msgstr "Respuesta retrasada a tu solicitud de acceso a información - "
@@ -685,6 +678,9 @@ msgstr "Retrasado."
msgid "Delivery error"
msgstr "Error en la entrega"
+msgid "Destroy {{name}}"
+msgstr ""
+
msgid "Details of request '"
msgstr "Detalles de la solicitud '"
@@ -697,6 +693,9 @@ msgstr "Atención: Este mensaje y cualquier respuesta que hagas serán publicada
msgid "Disclosure log"
msgstr ""
+msgid "Disclosure log URL"
+msgstr ""
+
msgid "Don't want to address your message to {{person_or_body}}? You can also write to:"
msgstr "¿Quieres mandar tu mensaje a {{person_or_body}}? También puedes escribir a:"
@@ -715,14 +714,14 @@ msgstr "Descargar ficheros adjuntos"
msgid "EIR"
msgstr "EIR"
+msgid "Edit"
+msgstr ""
+
msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
msgstr ""
"Edita y añade <strong>más detalles</strong> al mensaje anterior,\n"
" explicando por qué no estás satisfecho con su respuesta."
-msgid "Edit language version:"
-msgstr "Editar versión en idioma:"
-
msgid "Edit text about you"
msgstr "Edite el texto sobre tí"
@@ -744,7 +743,7 @@ msgstr "Quiero recibir emails con las actulizaciones de esta solicitud"
msgid "Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>"
msgstr "Introduzca las palabras que desee separadas por espacio, es decir <strong>parlamento gasto</strong>"
-msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"%s\">contact us</a> if you need more)."
+msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"{{url}}\">contact us</a> if you need more)."
msgstr ""
msgid "Environmental Information Regulations"
@@ -762,17 +761,20 @@ msgstr "Historial de eventos"
msgid "Event history details"
msgstr "Historial de eventos"
-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>)."
+msgid "Event {{id}}"
msgstr ""
-"Todo lo que escriba en esta página \n"
-" estará <strong>disponible públicamente</strong> en\n"
-" está web para siempre (<a href=\"%s\">¿por qué?</a>)."
-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>)."
+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=\"{{url}}\">why?</a>)."
msgstr ""
"Todo lo que escribas en esta página, incluyendo <strong>tu nombre</strong>, \n"
" estará <strong>disponible públicamente</strong> en\n"
-" está web para siempre (<a href=\"%s\">¿por qué?</a>)."
+" está web para siempre (<a href=\"{{url}}\">¿por qué?</a>)."
+
+msgid "Everything that you enter on this page\\n will be <strong>displayed publicly</strong> on\\n this website forever (<a href=\"{{url}}\">why?</a>)."
+msgstr ""
+"Todo lo que escriba en esta página \n"
+" estará <strong>disponible públicamente</strong> en\n"
+" está web para siempre (<a href=\"{{url}}\">¿por qué?</a>)."
msgid "FOI"
msgstr "FOI"
@@ -780,6 +782,9 @@ msgstr "FOI"
msgid "FOI email address for {{public_body}}"
msgstr "Dirección de correo para {{public_body}}"
+msgid "FOI request – {{title}}"
+msgstr ""
+
msgid "FOI requests"
msgstr "Solicitudes de información"
@@ -795,14 +800,14 @@ msgstr ""
msgid "Failed to convert image to a PNG"
msgstr "Error al convertir la imagen a PNG"
-msgid "Failed to convert image to the correct size: at %{cols}x%{rows}, need %{width}x%{height}"
-msgstr "Error al convertir la imagen al tamaño adecuado: es %{cols}x%{rows}, debería ser %{width}x%{height}"
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
+msgstr "Error al convertir la imagen al tamaño adecuado: es {{cols}}x{{rows}}, debería ser {{width}}x{{height}}"
msgid "Filter"
msgstr "Filtrar"
-msgid "First, type in the <strong>name of the UK public authority</strong> you'd \\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"%s#%s\">why?</a>)."
-msgstr "Primero, escribe el <strong>nombre de la institución</strong> a la que quieres pedir información. <strong>Están obligados a responder</strong> (<a href=\"%s#%s\">¿por qué?</a>)."
+msgid "First, type in the <strong>name of the UK public authority</strong> you'd\\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"{{url}}\">why?</a>)."
+msgstr "Primero, escribe el <strong>nombre de la institución</strong> a la que quieres pedir información. <strong>Están obligados a responder</strong> (<a href=\"{{url}}\">¿por qué?</a>)."
msgid "Foi attachment"
msgstr ""
@@ -882,8 +887,8 @@ msgstr "No es posible hacer una solicitud a este organismo, por motivos desconoc
msgid "Forgotten your password?"
msgstr "¿Has olvidado tu contraseña?"
-msgid "Found %d public authority %s"
-msgid_plural "Found %d public authorities %s"
+msgid "Found {{count}} public authority {{description}}"
+msgid_plural "Found {{count}} public authorities {{description}}"
msgstr[0] ""
msgstr[1] ""
@@ -920,11 +925,11 @@ msgstr "Solicitudes de información a"
msgid "From"
msgstr ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
"Desde la página de la solicitud, intente responder a un mensaje en concreto, en vez de\n"
" responder a la solicitud en general. Si necesita hacerlo y tiene una dirección de\n"
-" correo válida, por favor <a href=\"%s\">mándenosla</a>."
+" correo válida, por favor <a href=\"{{url}}\">mándenosla</a>."
msgid "From:"
msgstr "De:"
@@ -935,6 +940,18 @@ msgstr "DETALLA TU QUEJA AQUÍ"
msgid "Handled by post."
msgstr "Resuelta por correo ordinario"
+msgid "Has tag string/has tag string tag"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Model"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Name"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Value"
+msgstr ""
+
msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
msgstr "¡Hola! Puede hacer solicitudes de información en {{country_name}} usando {{link_to_website}}"
@@ -960,6 +977,9 @@ msgstr ""
" no nos ha dicho si tuvo o no éxito. ¿Te importaría invertir unos minutos\n"
" en leerla y ayudarnos a clasificarla para el beneficio de todos? Gracias."
+msgid "Hide request"
+msgstr ""
+
msgid "Holiday"
msgstr ""
@@ -972,6 +992,9 @@ msgstr "Holiday|Description"
msgid "Home"
msgstr "Inicio"
+msgid "Home page"
+msgstr ""
+
msgid "Home page of authority"
msgstr "Sitio web del organismo"
@@ -1024,8 +1047,17 @@ msgstr "He recibido <strong>parte de la información</strong>"
msgid "I've received an <strong>error message</strong>"
msgstr "He recibido un <strong>mensaje de error</strong>"
-msgid "If the address is wrong, or you know a better address, please <a href=\"%s\">contact us</a>."
-msgstr "Si la dirección es incorrecta, o conoce una más actualizada, por favor <a href=\"%s\">contáctenos</a>."
+msgid "I've received an error message"
+msgstr ""
+
+msgid "Id"
+msgstr ""
+
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Si la dirección es incorrecta, o conoce una más actualizada, por favor <a href=\"{{url}}\">contáctenos</a>."
+
+msgid "If the error was a delivery failure, and you can find an up to date FOI email address for the authority, please tell us using the form below."
+msgstr ""
msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
msgstr ""
@@ -1033,22 +1065,22 @@ msgstr ""
"o un correo sobre otro tema a {{user}}, entonces por favor\n"
"escribe a {{contact_email}} solicitando ayuda."
-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>)."
+msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"{{url}}\">details</a>)."
msgstr ""
"Si no está satisfecho con la respuesta que ha recibido del\n"
" organismo público, tiene derecho a\n"
-" apelar (<a href=\"%s\">detalles</a>)."
+" apelar (<a href=\"{{url}}\">detalles</a>)."
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
-msgstr "Si aún tiene problemas, por favor <a href=\"%s\">contáctenos</a>."
+msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Si aún tiene problemas, por favor <a href=\"{{url}}\">contáctenos</a>."
-msgid "If you are the requester, then you may <a href=\"%s\">sign in</a> to view the request."
-msgstr "Si la solicitud es tuya, puedes <a href=\"%s\">abrir una sesión</a> para verla."
+msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request."
+msgstr "Si la solicitud es tuya, puedes <a href=\"{{url}}\">abrir una sesión</a> para verla."
-msgid "If you are thinking of using a pseudonym,\\n please <a href=\"%s\">read this first</a>."
+msgid "If you are thinking of using a pseudonym,\\n please <a href=\"{{url}}\">read this first</a>."
msgstr ""
"Si está pensando en utilizar un pseudónimo,\n"
-" por favor <a href=\"%s\">lea esto primero</a>."
+" por favor <a href=\"{{url}}\">lea esto primero</a>."
msgid "If you are {{user_link}}, please"
msgstr "Si es {{user_link}}, por favor"
@@ -1102,6 +1134,9 @@ msgstr ""
"Si tu navegador acepta cookies y estás viendo este mensaje,\n"
"puede que haya un problema en nuestro servidor."
+msgid "Incoming email address"
+msgstr ""
+
msgid "Incoming message"
msgstr ""
@@ -1221,14 +1256,20 @@ msgstr ""
msgid "Items matching the following conditions are currently displayed on your wall."
msgstr ""
+msgid "Items sent in last month"
+msgstr ""
+
msgid "Joined in"
msgstr "Registrado el"
msgid "Joined {{site_name}} in"
msgstr "Registrado en {{site_name}} el"
-msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)."
-msgstr "Sea <strong>específico</strong>, tendrá más probabilidades de conseguir lo que quiere (<a href=\"%s\">¿por qué?</a>)."
+msgid "Just one more thing"
+msgstr ""
+
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
+msgstr "Sea <strong>específico</strong>, tendrá más probabilidades de conseguir lo que quiere (<a href=\"{{url}}\">¿por qué?</a>)."
msgid "Keywords"
msgstr "Términos"
@@ -1248,9 +1289,27 @@ msgstr ""
msgid "Link to this"
msgstr "Enlace"
+msgid "List all"
+msgstr ""
+
msgid "List of all authorities (CSV)"
msgstr "Lista de todos los organismos (CSV)"
+msgid "Listing FOI requests"
+msgstr ""
+
+msgid "Listing public authorities"
+msgstr ""
+
+msgid "Listing public authorities matching '{{query}}'"
+msgstr ""
+
+msgid "Listing tracks"
+msgstr ""
+
+msgid "Listing users"
+msgstr ""
+
msgid "Log in to download a zip file of {{info_request_title}}"
msgstr "Abra una sesión para descargar el fichero ZIP de {{info_request_title}}"
@@ -1350,6 +1409,9 @@ msgstr "El nombre ya está siendo utilizado"
msgid "New Freedom of Information requests"
msgstr "Nuevas solicitudes de acceso a información"
+msgid "New censor rule"
+msgstr ""
+
msgid "New e-mail:"
msgstr "Nueva dirección:"
@@ -1395,6 +1457,9 @@ msgstr "No se han encontrado resultados."
msgid "No similar requests found."
msgstr "No se han encontrado solicitudes similares."
+msgid "No tracked things found."
+msgstr ""
+
msgid "Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet."
msgstr "Nadie ha realizado todavía una solicitud de información a {{public_body_name}} usando esta web."
@@ -1404,6 +1469,9 @@ msgstr "No se han encontrado resultados."
msgid "None made."
msgstr "Ninguno/a."
+msgid "Not a valid FOI request"
+msgstr ""
+
msgid "Note that the requester will not be notified about your annotation, because the request was published by {{public_body_name}} on their behalf."
msgstr ""
@@ -1449,6 +1517,9 @@ msgstr "Una persona encontrada"
msgid "One public authority found"
msgstr "Un organismo público encontrado"
+msgid "Only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL – don't worry about breaking URLs through renaming, as the history is used to redirect"
+msgstr ""
+
msgid "Only requests made using {{site_name}} are shown."
msgstr "Sólo se muestran las solicitudes realizadas con {{site_name}}."
@@ -1521,8 +1592,8 @@ msgstr "Juega al juego de clasificación de solicitudes!"
msgid "Please"
msgstr "Por favor"
-msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
-msgstr "Por favor <a href=\"%s\">contacta</a> con nosotros para que podamos arreglarlo."
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
+msgstr "Por favor <a href=\"{{url}}\">contacta</a> con nosotros para que podamos arreglarlo."
msgid "Please <strong>answer the question above</strong> so we know whether the "
msgstr "Por favor <strong>responda la pregunta anterior</strong> para que sepamos si "
@@ -1637,8 +1708,8 @@ msgstr ""
"Por favor elije estas solicitudes una a una, y <strong>haz que se sepa</strong>\n"
"si han tenido éxito o no."
-msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature"
-msgstr "Por favor, firma con tu nombre en la parte inferior, o cambia la firma \"%{signoff}\""
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
+msgstr "Por favor, firma con tu nombre en la parte inferior, o cambia la firma \"{{signoff}}\""
msgid "Please sign in as "
msgstr "Por favor abre una sesión como "
@@ -1649,9 +1720,6 @@ msgstr ""
msgid "Please type a message and/or choose a file containing your response."
msgstr "Por favor escribe un mensaje y/o escoje un fichero conteniendo su respuesta."
-msgid "Please use the form below to tell us more."
-msgstr "Por favor use el formulario a continuación para decirnos más."
-
msgid "Please use this email address for all replies to this request:"
msgstr "Por favor use la siguiente dirección de correo para todas las respuestas a esta solicitud:"
@@ -1742,37 +1810,19 @@ msgstr "Organismos públicos - {{description}}"
msgid "Public authorities {{start_count}} to {{end_count}} of {{total_count}}"
msgstr "Organismos públicos {{start_count}} a {{end_count}} de {{total_count}}"
-msgid "Public body"
-msgstr ""
-
-msgid "Public body/translation"
-msgstr ""
-
-msgid "PublicBody::Translation|Disclosure log"
+msgid "Public authority – {{name}}"
msgstr ""
-msgid "PublicBody::Translation|First letter"
-msgstr ""
-
-msgid "PublicBody::Translation|Locale"
-msgstr ""
-
-msgid "PublicBody::Translation|Name"
-msgstr ""
-
-msgid "PublicBody::Translation|Notes"
-msgstr ""
-
-msgid "PublicBody::Translation|Publication scheme"
+msgid "Public body"
msgstr ""
-msgid "PublicBody::Translation|Request email"
+msgid "Public notes"
msgstr ""
-msgid "PublicBody::Translation|Short name"
+msgid "Public page"
msgstr ""
-msgid "PublicBody::Translation|Url name"
+msgid "Public page not available"
msgstr ""
msgid "PublicBody|Api key"
@@ -1820,6 +1870,9 @@ msgstr "Versión"
msgid "Publication scheme"
msgstr "Esquema de publicación"
+msgid "Publication scheme URL"
+msgstr ""
+
msgid "Purge request"
msgstr ""
@@ -1879,6 +1932,9 @@ msgstr "Pida una revisión interna"
msgid "Request an internal review from {{person_or_body}}"
msgstr "Pedir una revisión interna a {{person_or_body}}"
+msgid "Request email"
+msgstr ""
+
msgid "Request has been removed"
msgstr "La solicitud ha sido eliminada"
@@ -1972,14 +2028,17 @@ msgstr "Resultados de la búsqueda"
msgid "Search the site to find what you were looking for."
msgstr "Buscar en esta web para encontrar lo que busca."
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
-msgstr[0] "Busque en la %d solicitud de información hecha a %s"
-msgstr[1] "Busque entre las %d solicitudes de información hechas a %s"
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests made to {{public_body_name}}"
+msgstr[0] "Busque en la {{count}} solicitud de información hecha a {{public_body_name}}"
+msgstr[1] "Busque entre las {{count}} solicitudes de información hechas a {{public_body_name}}"
msgid "Search your contributions"
msgstr "Busca tus aportaciones"
+msgid "See bounce message"
+msgstr ""
+
msgid "Select one to see more information about the authority."
msgstr "Elija uno para ver más información sobre el organismo."
@@ -2013,6 +2072,9 @@ msgstr "Enviar solicitud"
msgid "Set your profile photo"
msgstr "Cambiar foto de perfil"
+msgid "Short name"
+msgstr ""
+
msgid "Short name is already taken"
msgstr "Nombre de usuario ya en uso"
@@ -2112,6 +2174,9 @@ msgstr "Enviar"
msgid "Submit status"
msgstr "Enviar estado"
+msgid "Submit status and send message"
+msgstr ""
+
msgid "Subscribe to blog"
msgstr "Subscribirse al blog"
@@ -2133,6 +2198,9 @@ msgstr "Tabla de estados"
msgid "Table of varieties"
msgstr "Tabla de tipos de objetos"
+msgid "Tags"
+msgstr ""
+
msgid "Tags (separated by a space):"
msgstr "Etiquetas (separadas por un espacio):"
@@ -2160,6 +2228,9 @@ msgstr "¡Gracias por actualizar esta solicitud!"
msgid "Thank you for updating your profile photo"
msgstr "Gracias por actualizar tu foto de perfil"
+msgid "Thank you! We'll look into what happened and try and fix it up."
+msgstr ""
+
msgid "Thanks for helping - your work will make it easier for everyone to find successful\\nresponses, and maybe even let us make league tables..."
msgstr ""
"Gracias por ayudar - tu trabajo hace más sencillo que otros encuentren solicitudes\n"
@@ -2242,22 +2313,22 @@ msgstr "La solicitud fue <strong>exitosa</strong>."
msgid "The request was refused by the public authority"
msgstr "La solicitud ha sido rechazada por el organismo"
-msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"%s\">contact us</a> if you have any questions."
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
msgstr ""
"La solicitud que ha intentado ver ha sido eliminada. Hay\n"
"varios posibles motivos para esto, pero no podemos ser más específicos aquí. Por favor <a\n"
-" href=\"%s\">contáctenos</a> si tiene cualquier pregunta."
+" href=\"{{url}}\">contáctenos</a> si tiene cualquier pregunta."
msgid "The requester has abandoned this request for some reason"
msgstr "El creador de la solicitud la ha cancelado por algún motivo"
-msgid "The response to your request has been <strong>delayed</strong>. You can say that, \\n by law, the authority should normally have responded\\n <strong>promptly</strong> and"
+msgid "The response to your request has been <strong>delayed</strong>. You can say that,\\n by law, the authority should normally have responded\\n <strong>promptly</strong> and"
msgstr ""
"La respuesta a tu solicitud ha sido <strong>retrasada</strong>.\n"
" Por ley, el organismo debería normalmente haber respondido\n"
" <strong>rápidamente</strong> y"
-msgid "The response to your request is <strong>long overdue</strong>. You can say that, by \\n law, under all circumstances, the authority should have responded\\n by now"
+msgid "The response to your request is <strong>long overdue</strong>. You can say that, by\\n law, under all circumstances, the authority should have responded\\n by now"
msgstr ""
"La respuesta a tu solicitud ha sido <strong>muy retrasada</strong>.\n"
" Por ley, bajo cualquier circunstancia, el organismo ya debería\n"
@@ -2269,6 +2340,9 @@ msgstr "El motor de búsqueda no está accesible en estos momentos: no podemos m
msgid "The search index is currently offline, so we can't show the Freedom of Information requests this person has made."
msgstr "El motor de búsqueda no está accesible en estos momentos: no podemos mostrar las solicitudes de información que ha hecho esta persona"
+msgid "The {{site_name}} team."
+msgstr ""
+
msgid "Then you can cancel the alert."
msgstr "Entonces podrás cancelar tu alerta."
@@ -2344,17 +2418,17 @@ msgstr "Entonces se enviará tu comentario a {{info_request_title}}."
msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
msgstr "Hay {{count}} comentarios en tu solicitud {{info_request}}. Sigue este enlace para leer lo que dicen."
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
-msgstr[0] "Hay %d persona siguiendo esta solicitud."
-msgstr[1] "Hay %d personas siguiendo esta solicitud."
-
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 ""
msgid "There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>."
msgstr "Hay un límite en el número de solicitudes que puedes hacer en un día, porque no queremos que los organismos públicos reciban un número exagerado de solicitudes mal formuladas. Si necesitas que el límite no se aplique en tu caso, por favor <a href='{{help_contact_path}}'>contacta con nosotros</a>."
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
+msgstr[0] "Hay {{count}} persona siguiendo esta solicitud."
+msgstr[1] "Hay {{count}} personas siguiendo esta solicitud."
+
msgid "There was a <strong>delivery error</strong> or similar, which needs fixing by the {{site_name}} team."
msgstr "Se ha producido un <strong>error en la entrega</strong> o similar, y necesita ser arreglado por el equipo de {{site_name}}."
@@ -2393,10 +2467,10 @@ msgstr ""
msgid "This authority no longer exists, so you cannot make a request to it."
msgstr "Este organismo ya no existe, no pueden realizarse solicitudes de información."
-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."
+msgid "This comment has been hidden. See annotations to\\n find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
"Este respuesta está oculta. Revisa los comentarios\n"
-" para descubrir por qué. Si es tu solicitud, <a href=\"%s\">abre una sesión</a> para ver la respuesta."
+" para descubrir por qué. Si es tu solicitud, <a href=\"{{url}}\">abre una sesión</a> para ver la respuesta."
msgid "This covers a very wide spectrum of information about the state of\\n the <strong>natural and built environment</strong>, such as:"
msgstr ""
@@ -2417,13 +2491,16 @@ msgstr ""
"Esto es porque {{title}} es una solicitud antigua\n"
"marcada para ya no recibir más respuestas."
+msgid "This is the first version."
+msgstr ""
+
msgid "This is your own request, so you will be automatically emailed when new responses arrive."
msgstr "Esta es tu solicitud, por lo que recibirás correos automáticamente cuando lleguen nuevas respuestas."
-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."
+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=\"{{url}}\">sign in</a> to view the response."
msgstr ""
"Este mensaje está oculto. Lee los comentarios\n"
-"\t\t\t\t\t\tpara descubrir por qué. Si es tu solicitud, <a href=\"%s\">abra una sesión</a> para ver la respuesta."
+"\t\t\t\t\t\tpara descubrir por qué. Si es tu solicitud, <a href=\"{{url}}\">abra una sesión</a> para ver la respuesta."
msgid "This particular request is finished:"
msgstr "Esta solicitud está cerrada:"
@@ -2431,19 +2508,19 @@ msgstr "Esta solicitud está cerrada:"
msgid "This person has made no Freedom of Information requests using this site."
msgstr "Esta persona no ha realizado solicitudes de información usando esta web."
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
-msgstr[0] "Tu %d solicitud de información"
-msgstr[1] "Tus %d solicitudes de información"
-
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
-msgstr[0] "Tu %d comentario"
-msgstr[1] "Tus %d comentarios"
-
msgid "This person's annotations"
msgstr "Tus comentarios"
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
+msgstr[0] "Tu {{count}} solicitud de información"
+msgstr[1] "Tus {{count}} solicitudes de información"
+
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
+msgstr[0] "Tu {{count}} comentario"
+msgstr[1] "Tus {{count}} comentarios"
+
msgid "This request <strong>requires administrator attention</strong>"
msgstr "Esta solicitud <strong>requiere la intervención de un administrador</strong>"
@@ -2467,7 +2544,7 @@ msgstr ""
"Esta solicitud ha sido <strong>retirada</strong> por la persona que la realizó. \n"
" \t Puede que haya una explicación en los mensajes a continuación."
-msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"%s\">contact us</a>."
+msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
msgid "This request has been reported for administrator attention"
@@ -2484,21 +2561,24 @@ msgstr ""
"Esta solicitud tiene visibilidad 'oculta'. Puedes verla sólo porque estás identificado\n"
" como super-usuario."
-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."
+msgid "This request is hidden, so that only you the requester can see it. Please\\n <a href=\"{{url}}\">contact us</a> if you are not sure why."
msgstr ""
"Esta solicitud está oculta, por lo que sólo tú como creador puedes verla. Por favor\n"
-" <a href=\"%s\">contáctanos</a> si no estás seguro de por qué."
+" <a href=\"{{url}}\">contáctanos</a> si no estás seguro de por qué."
msgid "This request is still in progress:"
msgstr "Esta solicitud está todavía en proceso:"
+msgid "This request requires administrator attention"
+msgstr ""
+
msgid "This request was not made via {{site_name}}"
msgstr ""
-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."
+msgid "This response has been hidden. See annotations to find out why.\\n If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
"Este respuesta está oculta. Revisa los comentarios\n"
-" para descubrir por qué. Si es tu solicitud, <a href=\"%s\">abre una sesión</a> para ver la respuesta."
+" para descubrir por qué. Si es tu solicitud, <a href=\"{{url}}\">abre una sesión</a> para ver la respuesta."
msgid "This table shows the technical details of the internal events that happened\\nto this request on {{site_name}}. This could be used to generate information about\\nthe speed with which authorities respond to requests, the number of requests\\nwhich require a postal response and much more."
msgstr ""
@@ -2666,11 +2746,11 @@ msgstr "Se encontró un tipo de resultado inesperado"
msgid "Unexpected search result type "
msgstr "Se encontró un tipo de resultado inesperado "
-msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"%s\">contact us</a> to sort it out."
+msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"{{url}}\">contact us</a> to sort it out."
msgstr ""
"Desgraciadamente no tenemos la dirección\n"
"de correo para este organismo, así que no podemos validarlo.\n"
-"Por favor <a href=\"%s\">contáctenos</a> para arreglarlo."
+"Por favor <a href=\"{{url}}\">contáctenos</a> para arreglarlo."
msgid "Unfortunately, we do not have a working {{info_request_law_used_full}}\\naddress for"
msgstr "Desgraciadamente, no tenemos una dirección de correo válida para"
@@ -2705,6 +2785,9 @@ msgstr ""
msgid "User info request sent alert"
msgstr ""
+msgid "User – {{name}}"
+msgstr ""
+
msgid "UserInfoRequestSentAlert|Alert type"
msgstr "UserInfoRequestSentAlert|Alert type"
@@ -2759,6 +2842,9 @@ msgstr "User|Salt"
msgid "User|Url name"
msgstr "User|Url name"
+msgid "Version {{version}}"
+msgstr ""
+
msgid "View FOI email address"
msgstr "Ver dirección de correo"
@@ -2798,6 +2884,12 @@ msgstr "Esperando que el organismo responda"
msgid "Was the response you got to your FOI request any good?"
msgstr "¿Fue la respuesta a tu solicitud satisfactoria?"
+msgid "We consider it is not a valid FOI request, and have therefore hidden it from other users."
+msgstr ""
+
+msgid "We consider it to be vexatious, and have therefore hidden it from other users."
+msgstr ""
+
msgid "We do not have a working request email address for this authority."
msgstr "No tenemos una dirección de correo válida para este organismo."
@@ -2811,10 +2903,10 @@ msgstr ""
" &ndash;\n"
"\tsi es {{user_link}} por favor <a href=\"{{url}}\">abra una sesión</a> y háganoslo saber."
-msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"%s\">details</a>). "
+msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"{{url}}\">details</a>). "
msgstr ""
"No revelaremos tu dirección de correo a nadie salvo que tú nos lo digas\n"
-" o la ley nos obligue (<a href=\"%s\">más información</a>). "
+" o la ley nos obligue (<a href=\"{{url}}\">más información</a>). "
msgid "We will not reveal your email address to anybody unless you\\nor the law tell us to."
msgstr ""
@@ -2867,8 +2959,8 @@ msgstr ""
"Cuando reciba la respuesta en papel, por favor ayude\n"
" a que otros sepan lo que dice:"
-msgid "When you're done, <strong>come back here</strong>, <a href=\"%s\">reload this page</a> and file your new request."
-msgstr "Cuando esté listo, <strong>vuelva aquí</strong>, <a href=\"%s\">recargue esta página</a> y cree una nueva solicitud."
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
+msgstr "Cuando esté listo, <strong>vuelva aquí</strong>, <a href=\"{{url}}\">recargue esta página</a> y cree una nueva solicitud."
msgid "Which of these is happening?"
msgstr "¿Qué está pasando?"
@@ -2976,11 +3068,11 @@ msgstr "Sabes lo que ha causado el error, y puedes <strong>sugerir una solución
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 ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
"Puede que encuentres una\n"
" en su página web, o preguntando por teléfono. Si la consigues\n"
-" por favor <a href=\"%s\">envíanosla</a>."
+" por favor <a href=\"{{url}}\">envíanosla</a>."
msgid "You may be able to find\\none on their website, or by phoning them up and asking. If you manage\\nto find one, then please <a href=\"{{help_url}}\">send it to us</a>."
msgstr ""
@@ -3026,6 +3118,9 @@ msgstr ""
"Sólo recibirás una respuesta a tu solicitud si continúas\n"
"con la aclaración."
+msgid "You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further."
+msgstr ""
+
msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
msgstr ""
@@ -3038,23 +3133,13 @@ msgstr ""
msgid "You've now cleared your profile photo"
msgstr "Has borrado la foto de tu perfil"
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
-msgstr[0] "Tu %d solicitud de información"
-msgstr[1] "Tus %d solicitudes de información"
-
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
-msgstr[0] "Tu %d comentario"
-msgstr[1] "Tus %d comentarios"
-
-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>."
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
msgstr ""
"<strong>Tu nombre aparecerá públicamente</strong> \n"
-" (<a href=\"%s\">¿por qué?</a>)\n"
+" (<a href=\"{{why_url}}\">¿por qué?</a>)\n"
" en esta web y en motores de búsqueda. Si estás\n"
" pensando en utilizar un seudónimo, por favor \n"
-" <a href=\"%s\">lee esto primero</a>."
+" <a href=\"{{help_url}}\">lee esto primero</a>."
msgid "Your annotations"
msgstr "Tus comentarios"
@@ -3065,8 +3150,8 @@ msgstr ""
msgid "Your e-mail:"
msgstr "Tu correo:"
-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 "Tu respuesta no ha sido enviada porque esta solicitud ha sido bloqueada para evitar spam. Por favor <a href=\"%s\">contáctanos</a> si realmente quieres enviar una respuesta."
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
+msgstr "Tu respuesta no ha sido enviada porque esta solicitud ha sido bloqueada para evitar spam. Por favor <a href=\"{{url}}\">contáctanos</a> si realmente quieres enviar una respuesta."
msgid "Your follow up message has been sent on its way."
msgstr "Tu mensaje está en camino."
@@ -3089,10 +3174,10 @@ msgstr "Tu mensaje aparecerá en <strong>los motores de búsqueda</strong>"
msgid "Your name and annotation will appear in <strong>search engines</strong>."
msgstr "Tu nombre y su comentario aparecerán en los <strong>motores de búsqueda</strong>."
-msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"%s\">details</a>)."
+msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"{{url}}\">details</a>)."
msgstr ""
"Tu nombre, tu solicitud y cualquier respuesta aparecerán en los <strong>motoros de búsqueda</strong>\n"
-" (<a href=\"%s\">detalles</a>)."
+" (<a href=\"{{url}}\">detalles</a>)."
msgid "Your name:"
msgstr "Tu nombre:"
@@ -3109,6 +3194,12 @@ msgstr "Tu contraseña:"
msgid "Your photo will be shown in public <strong>on the Internet</strong>,\\n wherever you do something on {{site_name}}."
msgstr ""
+msgid "Your request '{{request}}' at {{url}} has been reviewed by moderators."
+msgstr ""
+
+msgid "Your request on {{site_name}} hidden"
+msgstr ""
+
msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
msgstr "Tu solicitud se llamaba {{info_request}}. Haznos saber si has recibido la información para ayudarnos a controlar a"
@@ -3118,12 +3209,22 @@ msgstr "Tu solicitud:"
msgid "Your response to an FOI request was not delivered"
msgstr ""
-msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"%s\">read why</a> and answers to other questions."
-msgstr "Tu respuesta <strong>aparecerá en Internet</strong>, <a href=\"%s\">lee por qué</a> y respuestas a otras preguntas."
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
+msgstr "Tu respuesta <strong>aparecerá en Internet</strong>, <a href=\"{{url}}\">lee por qué</a> y respuestas a otras preguntas."
msgid "Your thoughts on what the {{site_name}} <strong>administrators</strong> should do about the request."
msgstr "Opine sobre lo que los <strong>administradores</strong> de {{site_name}} deberían hacer con la solicitud."
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
+msgstr[0] "Tu {{count}} solicitud de información"
+msgstr[1] "Tus {{count}} solicitudes de información"
+
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
+msgstr[0] "Tu {{count}} comentario"
+msgstr[1] "Tus {{count}} comentarios"
+
msgid "Your {{site_name}} email alert"
msgstr "Tu alerta en {{site_name}}"
@@ -3133,6 +3234,9 @@ msgstr "Un saludo,"
msgid "Yours sincerely,"
msgstr "Un saludo,"
+msgid "Yours,"
+msgstr ""
+
msgid "[FOI #{{request}} email]"
msgstr ""
@@ -3153,6 +3257,9 @@ msgstr ""
msgid "admin"
msgstr "admin"
+msgid "alaveteli_foi:The software that runs {{site_name}}"
+msgstr ""
+
msgid "all requests"
msgstr "todas las solicitudes"
@@ -3186,6 +3293,9 @@ msgstr "cualquiera"
msgid "are long overdue."
msgstr "están muy retrasados."
+msgid "at"
+msgstr ""
+
msgid "authorities"
msgstr "organismos"
@@ -3198,6 +3308,9 @@ msgstr "comenzando con ‘{{first_letter}}’"
msgid "between two dates"
msgstr "entre dos fechas"
+msgid "but followupable"
+msgstr ""
+
msgid "by"
msgstr "por"
@@ -3219,7 +3332,7 @@ msgstr ""
" O prueba a llamarles por teléfono."
msgid "details"
-msgstr ""
+msgstr "detalles"
msgid "display_status only works for incoming and outgoing messages right now"
msgstr "display_status sólo funciona para mensajes de entrada y salida ahora mismo"
@@ -3281,19 +3394,25 @@ msgstr "mensajes de organismos"
msgid "messages from users"
msgstr "mensajes de usuarios"
+msgid "move..."
+msgstr ""
+
msgid "no later than"
msgstr "no más tarde de"
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
"ya no existe. \n"
"Desde la página de la solicitud, intente responder a un mensaje en concreto, en vez de\n"
" responder a la solicitud en general. Si necesita hacerlo y tiene una dirección de\n"
-" correo válida, por favor <a href=\"%s\">mándenosla</a>."
+" correo válida, por favor <a href=\"{{url}}\">mándenosla</a>."
msgid "normally"
msgstr "normalmente"
+msgid "not requestable due to: {{reason}}"
+msgstr ""
+
msgid "please sign in as "
msgstr "por favor abra una sesión como "
@@ -3317,6 +3436,9 @@ msgstr "envíe un mensaje de seguimiento"
msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
msgstr "enviada a {{public_body_name}} por {{info_request_user}} el {{date}}."
+msgid "set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA"
+msgstr ""
+
msgid "show quoted sections"
msgstr ""
@@ -3338,6 +3460,11 @@ msgstr "que hizo a"
msgid "the main FOI contact address for {{public_body}}"
msgstr "la dirección de contacto de {{public_body}}"
+#. This phrase completes the following sentences:
+#. Request an internal review from...
+#. Send a public follow up message to...
+#. Send a public reply to...
+#. Don't want to address your message to... ?
msgid "the main FOI contact at {{public_body}}"
msgstr "el contacto en {{public_body}}"
@@ -3386,9 +3513,32 @@ msgstr "información útil."
msgid "users"
msgstr "usuarios"
+msgid "what's that?"
+msgstr "¿Qué es eso?"
+
msgid "{{count}} FOI requests found"
msgstr "{{count}} solicitudes de información encontradas"
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] "{{count}} solicitud de información a {{public_body_name}}"
+msgstr[1] "{{count}} solicitudes de información a {{public_body_name}}"
+
+msgid "{{count}} person is following this authority"
+msgid_plural "{{count}} people are following this authority"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
+msgstr[0] "{{count}} solicitud"
+msgstr[1] "{{count}} solicitudes"
+
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
+msgstr[0] "{{count}} solicitud enviada."
+msgstr[1] "{{count}} solicitudes enviadas."
+
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 ""
"{{existing_request_user}} ya\n"
@@ -3449,6 +3599,9 @@ msgstr "{{site_name}} envía nuevas solicitudes a <strong>{{request_email}}</str
msgid "{{site_name}} users have made {{number_of_requests}} requests, including:"
msgstr "Los usuarios de {{site_name}} han hecho {{number_of_requests}} solicitudes, incluyendo:"
+msgid "{{thing_changed}} was changed from <code>{{from_value}}</code> to <code>{{to_value}}</code>"
+msgstr ""
+
msgid "{{title}} - a Freedom of Information request to {{public_body}}"
msgstr ""
diff --git a/locale/he_IL/app.po b/locale/he_IL/app.po
index 88ecdb4c6..908be330d 100644
--- a/locale/he_IL/app.po
+++ b/locale/he_IL/app.po
@@ -3,18 +3,27 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# Nir Hirshman <nirshman99@gmail.com>, 2013.
-# Ram Ezrach <ram.ezrach@gmail.com>, 2013.
-# <r@roishlomi.com>, 2013.
-# Yair Uziel <yair.uziel@gmail.com>, 2013.
+# nirshman <nirshman99@gmail.com>, 2013
+# nirshman <nirshman99@gmail.com>, 2013
+# Ram Ezrach <ram.ezrach@gmail.com>, 2013
+# rshlo <r@roishlomi.com>, 2013
+# rshlo <r@roishlomi.com>, 2013
+# yauzi <yair.uziel@gmail.com>, 2013
+# yauzi <yair.uziel@gmail.com>, 2013
+# yehuda <yehudab@gmail.com>, 2013
+# yehuda <yehudab@gmail.com>, 2013
+# Yoni Yalovitsky <yoni@yalovitsky.com>, 2013
+# Yoni Yalovitsky <yoni@yalovitsky.com>, 2013
+# Z.D <zdevir@gmail.com>, 2013
+# Z.D <zdevir@gmail.com>, 2013
msgid ""
msgstr ""
"Project-Id-Version: alaveteli\n"
"Report-Msgid-Bugs-To: http://github.com/sebbacon/alaveteli/issues\n"
-"POT-Creation-Date: 2012-12-18 10:11+0000\n"
-"PO-Revision-Date: 2013-02-13 19:08+0000\n"
-"Last-Translator: Ram Ezrach <ram.ezrach@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"POT-Creation-Date: 2013-05-30 09:46+0100\n"
+"PO-Revision-Date: 2013-05-30 08:54+0000\n"
+"Last-Translator: louisecrow <louise@mysociety.org>\n"
+"Language-Team: Hebrew (Israel) (http://www.transifex.com/projects/p/alaveteli/language/he_IL/)\n"
"Language: he_IL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -22,64 +31,64 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid " This will appear on your {{site_name}} profile, to make it\\n easier for others to get involved with what you're doing."
-msgstr ""
+msgstr "זה יופיע בפרופיל של {{site_name}} כדי להקל n\\ על אחרים לעזור במה שאתם עושים."
-msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)"
-msgstr " (<strong>בלי פוליטיקה מפלגתית!</strong> קראו את<a href=\"%s\">מדיניות הניהול</a>) שלנו"
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
+msgstr " (<strong>בלי פוליטיקה מפלגתית!</strong> קראו את<a href=\"{{url}}\">מדיניות הניהול</a>) שלנו"
msgid " (<strong>patience</strong>, especially for large files, it may take a while!)"
-msgstr " (<strong>הורדת קבצים גדולים עלולה לארוך מס' דקות</strong>)"
+msgstr " (<strong>נא המתינו, הורדת קבצים גדולים עלולה לארוך מספר דקות</strong>)"
msgid " (you)"
msgstr "(אתם)"
msgid " - view and make Freedom of Information requests"
-msgstr "- צפו ומלאו בקשות על-פי חוק חופש המידע"
+msgstr "– צפו והגישו בקשות למידע"
msgid " - wall"
msgstr " - קיר"
msgid " <strong>Note:</strong>\\n We will send you an email. Follow the instructions in it to change\\n your password."
-msgstr " <strong>הערה:<strong/>/n בקרוב יישלח אליך מייל. עקוב אחר ההוראות המצויות בו על מנת לשנות n\\את הסיסמא שלך."
+msgstr " <strong>הערה:<strong/> בקרוב יישלח אליכם דואר אלקטרוני. עקוב אחר ההוראות המצויות בו על מנת לשנות את הסיסמא."
msgid " <strong>Privacy note:</strong> Your email address will be given to"
-msgstr " <strong>הערה לגבי פרטיות:</strong> כתובת הדוא\"ל שלכם תועבר"
+msgstr " <strong>הערת פרטיות:</strong> כתובת הדוא\"ל שלכם תימסר ל- "
msgid " <strong>Summarise</strong> the content of any information returned. "
-msgstr " <strong>סיכום</strong> תוכן כל מידע מוחזר. "
+msgstr " <strong>סכמו</strong> תוכן של כל מידע מוחזר"
msgid " Advise on how to <strong>best clarify</strong> the request."
-msgstr " עצה כיצד <strong>להבהיר בצורה הטובה ביותר</strong>את הבקשה."
+msgstr "הסברים כיצד <strong>לנסח בצורה בהירה</strong> את הבקשה."
msgid " Ideas on what <strong>other documents to request</strong> which the authority may hold. "
-msgstr "רעיונות על <strong>אילו מסמכים אחרים לבקש</strong> שישנם בידי הרשויות hold. "
+msgstr "רעיונות ל<strong>מסמכים נוספים</strong> שיש בידי הרשויות, <strong>שניתן לבקשם</strong>."
-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 ""
+msgid " If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\\n You may be able to find the address on their website, or by phoning them up and asking."
+msgstr "אם אתם יודעים את הכתובת, נא <a href=\"{{url}}\">שלחו לנו</a>.\\n הכתובת נמצאת באתר האינטרנט שלהם, או שתבררו אותה בשיחת טלפון."
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 ""
+msgstr "הוסיפו קישורים מתאימים כמו למשל לדף הקמפיין, לבלוג שלכם או לטוויטר. יהיה ניתן להקליק עליהם n\\. למשל"
msgid " Link to the information requested, if it is <strong>already available</strong> on the Internet. "
-msgstr " קישור לבקשת מידע אם <strong>היא כבר קיימת</strong> באינטרנט. "
+msgstr "קישור לבקשת המידע, אם <strong>קיימת</strong> באינטרנט."
msgid " Offer better ways of <strong>wording the request</strong> to get the information. "
-msgstr " מציע דרכים טובות יותר<strong>לניסוח הבקשה</strong> לקבלת המידע. "
+msgstr "הציעו דרכים טובות יותר <strong>לניסוח הבקשה</strong> לקבלת המידע."
msgid " Say how you've <strong>used the information</strong>, with links if possible."
-msgstr " ספרו איך <strong>השתמשתם במידע, </strong>עם קישורים, אם אפשר."
+msgstr " ספרו לנו כצד <strong>השתמשתם במידע</strong>. הוסיפו קישורים אם ניתן."
msgid " Suggest <strong>where else</strong> the requester might find the information. "
-msgstr " הציעו <strong>איפה עוד</strong> מגיש הבקשה יוכל למצוא עוד מידע. "
+msgstr "הציעו <strong>היכן</strong> מגיש הבקשה יכול להשיג את המידע המבוקש."
msgid " What are you investigating using Freedom of Information? "
-msgstr "מה אתה מבקש לחקור, באמצעות הבקשה תחת חוק חופש המידע?"
+msgstr "מה אתם מבקשים לחקור באמצעות בקשת המידע?"
msgid " You are already being emailed updates about the request."
-msgstr "כתובת הדוא\"ל שלך כבר רשומה לקבלת עדכונים על הבקשה"
+msgstr "כתובת הדוא\"ל רשומה לקבלת עדכונים על הבקשה."
msgid " You will also be emailed updates about the request."
-msgstr "תקבל גם עדכונים בדוא\"ל על הבקשה"
+msgstr "תקבלו גם עדכונים בדוא\"ל על הבקשה."
msgid " made by "
msgstr "נוצר על-ידי"
@@ -88,31 +97,16 @@ msgid " or "
msgstr "או "
msgid " when you send this message."
-msgstr "כאשר אתם שולחים הודעה זו"
+msgstr "כאשר אתם שולחים הודעה זו."
msgid "\"Hello! We have an <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">important message</a> for visitors outside {{country_name}}\""
-msgstr ""
-
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
-msgstr[0] "%d בקשת תחת חוק חופש המידע עבור %s"
-msgstr[1] "%d בקשות תחת חוק חופש המידע עבור %s"
-
-msgid "%d request"
-msgid_plural "%d requests"
-msgstr[0] "%d בקשה"
-msgstr[1] "%d בקשות"
-
-msgid "%d request made."
-msgid_plural "%d requests made."
-msgstr[0] "%d הבקשה נמסרה."
-msgstr[1] "%d הבקשות נמסרו."
+msgstr "\"שלום! יש לנו <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">הודעה חשובה</a> למבקרים מחוץ ל- {{country_name}}\""
msgid "'Crime statistics by ward level for Wales'"
-msgstr "'סטטיסטיקות פשע ברמה מילולית על וויילס'"
+msgstr "'סטטיסטיקות פשע מפורטות בדרום תל-אביב'"
msgid "'Pollution levels over time for the River Tyne'"
-msgstr "'רמות זיהום לאורך זמן לנהר Tyne'"
+msgstr "'רמות זיהום לאורך זמן בנחל הקישון'"
msgid "'{{link_to_authority}}', a public authority"
msgstr "'{{link_to_authority}}', רשות ציבורית"
@@ -121,79 +115,61 @@ msgid "'{{link_to_request}}', a request"
msgstr "'{{link_to_request}}', בקשה"
msgid "'{{link_to_user}}', a person"
-msgstr "'{{link_to_user}}', אדם"
+msgstr "'{{link_to_user}}', משתמש"
+
+msgid "*unknown*"
+msgstr "\"לא ידוע\""
msgid ",\\n\\n\\n\\nYours,\\n\\n{{user_name}}"
-msgstr ""
+msgstr ",\\n\\n\\n\\nשלכם,\\n\\n{{user_name}}"
msgid "- or -"
msgstr "- או -"
msgid "1. Select an authority"
-msgstr "1. בחר רשות"
+msgstr "1. בחרו רשות"
msgid "2. Ask for Information"
-msgstr "2. בקש מידע"
+msgstr "2. בקשו מידע"
msgid "3. Now check your request"
-msgstr "3. עתה בדוק את בקשתך"
-
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
+msgstr "3. עתה בדקו את בקשתכם"
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
-msgstr "<a href=\"%s\">הוסף הסברים</a> (כדי לסייע למגיש הבקשה או אחרים)"
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
+msgstr "<a href=\"{{browse_url}}\">צפו בכולם</a> או <a href=\"{{add_url}}\">בקשו מאיתנו להוסיף אחת</a>."
-msgid "<a href=\"%s\">Are we missing a public authority?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Are you the owner of\\n any commercial copyright on this page?</a>"
-msgstr ""
+msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)"
+msgstr "<a href=\"{{url}}\">להוסיף הסבר</a> (כדי לסייע למגיש הבקשה או לאחרים)"
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
-msgstr "<a href=\"%s\">גלוש לכולם</a> או <a href=\"%s\">בקש מאיתנו להוסיף אחד</a>."
-
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
-msgstr "<a href=\"%s\">לא מוצאים את מה שאתם מחפשים?</a>"
-
-msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
-msgstr "<a href=\"%s\">היכנסו</a> לשנות סיסמה, מנוי, ועוד. ({{user_name}} only)"
-
-msgid "<a href=\"%s\">details</a>"
-msgstr "<a href=\"%s\">פרטים</a>"
-
-msgid "<a href=\"%s\">what's that?</a>"
-msgstr "<a href=\"%s\">מה זה?</a>"
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
+msgstr "<a href=\"{{url}}\">היכנסו</a> כדי לשנות סיסמה, מנויים וכדומה. (רק {{user_name}})"
msgid "<p>All done! Thank you very much for your help.</p><p>There are <a href=\"{{helpus_url}}\">more things you can do</a> to help {{site_name}}.</p>"
-msgstr "<p>הסתיים! תודה על הסיוע שלכם</p><p>ישנם <a href=\"{{helpus_url}}\">עוד דברים שתוכלו לעשות</a> כדי לעזור {{site_name}}.</p>"
+msgstr "<p>זה הכל! תודה על עזרתכם.</p><p>ישנם <a href=\"{{helpus_url}}\">כמה דברים נוספים</a> שתוכלו לעשות כדי לעזור ל-{{site_name}}.</p>"
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=\"{{find_authority_url}}\">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=\"{{complain_url}}\">how to complain</a>.\\n </li>\\n <li>We have <a href=\"{{other_means_url}}\">suggestions</a>\\n on other means to answer your question.\\n </li>\\n </ul>"
-msgstr ""
+msgstr "<p>תודה לכם. הנה כמה דברים שתוכלו לעשות עתה:</p>\\n <ul>\\n <li>כדי לשלוח בקשת מידע לרשות אחרת, העתיקו את הבקשה מכאן למטה, ואז <a href=\"{{find_authority_url}}\">מצאו את הרשות</a>.</li>\\n <li>אם אתם רוצים לסתור את טענת הרשות, שהמידע לא נמצא ברשותה,\\n <a href=\"{{complain_url}}\">כך תוכלו להתלונן</a>.\\n </li>\\n <li>יש לנו <a href=\"{{other_means_url}}\">הצעות</a>\\n לדרכים אחרות להשיב לבקשה שלכם.\\n </li>\\n </ul>"
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 "<p>תודה רבה! אנו מקווים שהממתנה תהיה קצרה.</p> <p>על-פי החוק, הייתם אמורים לקבל תגובה מייד, לרוב לפני ה- <strong>{{date_response_required_by}}</strong>.</p>"
+msgstr "<p>תודה רבה! אנו מקווים שהממתנה תהיה קצרה.</p> <p>לפי החוק, אתם אמורים לקבל תגובה תוך זמן קצר, לרוב לפני ה- <strong>{{date_response_required_by}}</strong>.</p>"
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 ""
+msgstr "<p>תודה לך! אנחנו מקווים שההמתנה לא תהיה ארוכה מדי.</p> <p>על-פי החוק, התשובה אמורה להגיע בהקדם, ובמקרים הרגילים לא יאוחר מתאריך <strong>{{date_response_required_by}}</strong>.</p>"
msgid "<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>"
msgstr "<p>תודה לכם! אנו מקווים שלא המתנתם זמן רב. </p><p>התגובה אמורה להגיע תוך {{late_number_of_days}} ימים, או שתקבלו הודעה על דחיית מועד קבלת התשובה (<a href=\"{{review_url}}\">פרטים</a>).</p>"
-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 "<p>תודה לכם! נבדוק מה קרה וננסה לטפל בכך. </p><p>אם היתה תקלה במסירה ואתם יכולים למצוא כתובת דוא\"ל FOI עדכנית לרשות, נא הודיעו לנו באמצעות הטופס למטה.</p>"
-
msgid "<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>"
-msgstr "<p>תודה לכם! בקשתכם היתה צריכה להענותת כבר לפני {{very_late_number_of_days}} ימי עבודה. רוב הבקשות נענות תוך {{late_number_of_days}} ימי עבודה. ייתכן ותרצו להגיש תלונה באמצעות הטופס למטה.</p>"
+msgstr "<p>תודה לכם! בקשתכם היתה צריכה להענות כבר לפני {{very_late_number_of_days}} ימי עבודה. רוב הבקשות נענות תוך {{late_number_of_days}} ימי עבודה. ייתכן ותרצו להגיש תלונה באמצעות הטופס למטה.</p>"
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 ""
+msgstr "<p>תודה על שינוי הפרטים.</p><p><strong>ועכשיו...</strong> תוכלו להוסיף גם תמונת פרופיל.</p>"
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 ""
+msgstr "<p>תודה על עדכון התמונה.</p><p><strong>ועכשיו...</strong> תוכלו להוסיף גם פרטים נוספים עליכם לדף הפרופיל.</p>"
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 ""
+msgstr "<p>אנו ממליצים שתסירו את כתובת הדוא\"ל מהבקשה שלכם.\\n אם לא תסירו אותה, הכתובת תשלח לרשות, אבל לא תוצג באתר.</p>"
msgid "<p>We're glad you got all the information that you wanted. If you write about or make use of the information, please come back and add an annotation below saying what you did.</p><p>If you found {{site_name}} useful, <a href=\"{{donation_url}}\">make a donation</a> to the charity which runs it.</p>"
msgstr "<p>אנו שמחים שקיבלתם את המידע שביקשתם. אם אתם כותבים על המידע או משתמשים בו, נא חזרו לדף זה והוסיפו למטה הערה על מה שעשיתם. </p><p>אם מצאתם את {{site_name}}שימושי, <a href=\"{{donation_url}}\">הרימו תרומה</a> לגוף שמפעיל אותו.</p>"
@@ -201,40 +177,37 @@ msgstr "<p>אנו שמחים שקיבלתם את המידע שביקשתם. אם
msgid "<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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 "<p>אנו שמחים שקיבלתם חלק מהמידע שביקשתם. אם מצאתם את {{site_name}} שימושי, <a href=\"{{donation_url}}\">הרימו תרומה</a> לגוף שמפעיל אותו.</p><p>אם אתם רוצים לנסות לקבל את שאר המידע, הנה מה שעליכם לעשות כעת.</p>"
-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 "<p>אין צורך לכלול את כתובת הדוא\"ל שלכם בבקשה, כדי לקבל מענה. (<a href=\"%s\">details</a>).</p>"
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
+msgstr "<p>אין צורך לכלול את כתובת הדוא\"ל שלכם בבקשה, כדי לקבל מענה. (<a href=\"{{url}}\">details</a>).</p>"
-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 "<p>אין צורך לכלול את כתובת הדוא\"ל שלכם בבקשה, כדי לקבל מענה, כי בדף הבא תמסרו אותה. (<a href=\"%s\">details</a>).</p>"
+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=\"{{url}}\">details</a>).</p>"
+msgstr "<p>אין צורך לכלול את כתובת הדוא\"ל שלכם בבקשה, שכן בדף הבא תתבקשו לספק את כתובת הדוא\"ל (<a href=\"{{url}}\">פרטים</a>).</p>"
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 "<p>הבקשה שלכם מכילה <strong>מספר מיקוד</strong>. אם המיקוד אינו קשור ישירות לנושא הבקשה, נא מיחקו אותו, כי הוא יופיע<strong>בצורה גלויה באינטרנט</strong>.</p>"
+msgstr "<p>הבקשה כוללת <strong>מיקוד דואר</strong>. אם המיקוד אינו קשור ישירות לנושא הבקשה, אנא הסירו אותו, שכן הוא יופיע <strong>בצורה גלויה</strong> באינטרנט.</p>"
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 {{late_number_of_days}} 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 ""
+msgstr "<p>בקשת {{law_used_full}} שלך <strong>יצאה לדרכה</strong>!</p><p><strong>אנחנו נשלח לך דוא\"ל</strong> כאשר תגיע תגובה, או אחרי {{late_number_of_days}} ימי עבודה אם הרשות עדיין לא תענה.</p><p>אם אתם כותבים על הבקשה הזאת (למשל בפורום או בבלוג) אנא הוסיפו קישור לדף הזה, והוסיפו הערה על כך למטה.</p>"
msgid "<p>{{site_name}} is currently in maintenance. You can only view existing requests. You cannot make new ones, add followups or annotations, or otherwise change the database.</p> <p>{{read_only}}</p>"
-msgstr "<p>{{site_name}} נמצא כעת בתחזוקה. ניתן לצפות בבקשות בלבד. לא ניתן להגיש בקשות חדשות, לעקוב או להעיר, או לעשות כל שינוי במידע באתר.</p> <p>{{read_only}}</p>"
+msgstr "<p>{{site_name}} נמצא כעת בתחזוקה. ניתן לצפות בבקשות בלבד. לא ניתן להגיש בקשות חדשות, לעקוב, להוסיף הערות, או לעשות כל שינוי במידע שבאתר.</p> <p>{{read_only}}</p>"
msgid "<small>If you use web-based email or have \"junk mail\" filters, also check your\\nbulk/spam mail folders. Sometimes, our messages are marked that way.</small>\\n</p>"
-msgstr ""
+msgstr "<small>אם אתם משתמשים בשירות דואר מבוסס רשת, בדקו את תיבת דואר הזבל שלכם.\\nbulk/spam ייתכן וההודעה שלנו סומנה ככזו בטעות.</small>\\n</p>"
-msgid "<span id='follow_count'>%d</span> person is following this authority"
-msgid_plural "<span id='follow_count'>%d</span> people are following this authority"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
+msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
msgstr ""
+"<strong> האם אפשר לבקש מידע אודותי?</strong>\n"
+"<a href=\"{{url}}\">לא! (הקליקו כאן לפרטים)</a>"
msgid "<strong><code>commented_by:tony_bowden</code></strong> to search annotations made by Tony Bowden, typing the name as in the URL."
msgstr "<strong><code>הערה_על-ידי:גיל_ללוש</code></strong>כדי לחפש הערות של גיל ללוש, הכניסו את השם כמו בכתובת אינטרנט."
msgid "<strong><code>filetype:pdf</code></strong> to find all responses with PDF attachments. Or try these: <code>{{list_of_file_extensions}}</code>"
-msgstr "<strong><code>filetype:pdf</code></strong>כדי למצוא את כל התגובות שמצורף אליהן קובץ PDF, או נסו את אלה: <code>{{list_of_file_extensions}}</code>"
+msgstr "<strong><code>filetype:pdf</code></strong> כדי למצוא את כל התגובות שמצורף אליהן קובץ PDF. לחלופין, נסו את אלה: <code>{{list_of_file_extensions}}</code>"
msgid "<strong><code>request:</code></strong> to restrict to a specific request, typing the title as in the URL."
-msgstr "<strong><code>בקשה:</code></strong>להגביל לבקשה מסויימת, מכניסים את הכותרת ככתובת אינטרנט."
+msgstr "<strong><code>בקשה:</code></strong> להגביל לבקשה מסויימת, הקלידו את הכותרת ככתובת אינטרנט."
msgid "<strong><code>requested_by:julian_todd</code></strong> to search requests made by Julian Todd, typing the name as in the URL."
msgstr "<strong><code>התבקש_על-ידי: XXX_YYY</code></strong>לחיפוש בקשות שהגיש ,XXX_YYY יש להכניס את השם ככתובת אינטרנט."
@@ -246,94 +219,106 @@ msgid "<strong><code>status:</code></strong> to select based on the status or hi
msgstr "<strong><code>מצב:</code></strong> לחיפוש המבוסס על מצב (סטטוס) הבקשה או הסטוריית המצבים שלה, ראו <a href=\"{{statuses_url}}\">את טבלת המצבים</a> למטה."
msgid "<strong><code>tag:charity</code></strong> to find all public authorities 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 ""
+msgstr "<strong><code>tag:charity</code></strong> כדי למצוא את כל הרשויות הציבוריות או בקשות עם תגית מסויימת. תוכלו לכלול כמה תגיות,\\n וערכים, למשל <code>tag:openlylocal AND tag:financial_transaction:335633</code>. שימו לב, שכברירת מחדל, כל תגית\\n יכולה להיות מוצגת - עליכם לרשום את המילה <code>AND</code> אם אתם רוצים להציג להציג את כולן."
msgid "<strong><code>variety:</code></strong> to select type of thing to search for, see the <a href=\"{{varieties_url}}\">table of varieties</a> below."
-msgstr "<strong><code>סוגים:</code></strong> לבחירת סוג החיפוש, ראו <a href=\"{{varieties_url}}\">את טבלת סוגי החיפוש</a> below."
+msgstr "<strong><code>סוגים:</code></strong> לבחירת סוג החיפוש, ראו <a href=\"{{varieties_url}}\">טבלת סוגים</a> למטה."
msgid "<strong>Advice</strong> on how to get a response that will satisfy the requester. </li>"
-msgstr "<strong>עצה</strong> כיצד לקבל תגובה שתספק את המבקש. </li>"
+msgstr "<strong>עצה</strong> כיצד לקבל תשובה שתספק את המבקש.</li>"
msgid "<strong>All the information</strong> has been sent"
msgstr "<strong>כל המידע</strong> נשלח"
msgid "<strong>Anything else</strong>, such as clarifying, prompting, thanking"
-msgstr "<strong>כל דבר אחר,</strong>, כמו להבהיר, לעודד, להודות"
+msgstr "<strong>כל דבר נוסף</strong>, כמו להבהיר, לעודד, להודות"
msgid "<strong>Caveat emptor!</strong> To use this data in an honourable way, you will need \\na good internal knowledge of user behaviour on {{site_name}}. How, \\nwhy and by whom requests are categorised is not straightforward, and there will\\nbe user error and ambiguity. You will also need to understand FOI law, and the\\nway authorities use it. Plus you'll need to be an elite statistician. Please\\n<a href=\"{{contact_path}}\">contact us</a> with questions."
-msgstr ""
+msgstr "<strong>אזהרה!</strong> כדי להשתמש במידע זה בהגינות, תצטרכו \\na ידע פנימי טוב על התנהגות המשתמש ב- {{site_name}}. איך, \\nמדוע ועל-ידי מי מחולקות הבקשות לקטגוריות, אינו דבר מובן מאליו, וייתכנו\\nbe שגיאות משתמש ואי-בהירות. תצטרכו גם להבין את חוק חופש המידע והדרך \\nway בה משתמשות בו הרשויות. בנוסף, תצטרכו להיות בעלי ידע בסטטיסטיקה. נא\\n<a href=\"{{contact_path}}\">צרו איתנו קשר</a>אם יש לכם שאלה."
msgid "<strong>Clarification</strong> has been requested"
-msgstr "הוגשה בקשה <strong>להבהרה</strong> "
+msgstr "הוגשה בקשה <strong>להבהרה</strong>"
msgid "<strong>No response</strong> has been received\\n <small>(maybe there's just an acknowledgement)</small>"
-msgstr ""
+msgstr "<strong>שום תגובה</strong> לא התקבלה <small>(אולי יש רק אישור)</small>"
msgid "<strong>Note:</strong> Because we're testing, requests are being sent to {{email}} rather than to the actual authority."
-msgstr ""
+msgstr "<strong>הערה:</strong> בגלל שאנחנו בודקים, הבקשות ישלחו לכתובת {{email}} במקום לרשות האמיתית."
msgid "<strong>Note:</strong> You're sending a message to yourself, presumably\\n to try out how it works."
-msgstr ""
+msgstr "<strong>הערה:</strong> אתם שולחים בקשה לעצמכם, כנראה כדי לנסות לראות איך זה עובד."
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 ""
+msgstr "<strong>הערה:</strong>\\n אנו נשלח הודעת אימות לכתובת הדוא\"ל החדשה שלך. עקבו אחר \\n ההוראות כדי לאשר את שינוי הכתובת."
-msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"%s\">click here</a>."
-msgstr ""
+msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"{{url}}\">click here</a>."
+msgstr "<strong>הערת פרטיות:</strong>אם תרצו לבקש מידע פרטי על\\n עצמכם, <a href=\"{{url}}\">הקליקו כאן</a>."
msgid "<strong>Privacy note:</strong> Your photo will be shown in public on the Internet,\\n wherever you do something on {{site_name}}."
-msgstr ""
+msgstr "<strong>הערת פרטיות:</strong> התמונה שלכם תוצג באופן פומבי באינטרנט,\\n בכל פעם שתעשו משהו באתר {{site_name}}."
msgid "<strong>Privacy warning:</strong> Your message, and any response\\n to it, will be displayed publicly on this website."
-msgstr ""
+msgstr "<strong>אזהרת פרטיות:</strong> <strong>אזהרת פרטיות:</strong> ההודעה שלכם והתגובה שלי\\n יוצגו באופן פומבי באתר זה."
msgid "<strong>Some of the information</strong> has been sent "
msgstr "<strong>חלק מהמידע</strong> נשלח "
msgid "<strong>Thank</strong> the public authority or "
-msgstr "<strong>מסרו תודה</strong> לרשות הציבורית או "
+msgstr "<strong>הודו</strong> לרשות הציבורית או "
msgid "<strong>did not have</strong> the information requested."
-msgstr "<strong>לא היה</strong>את המידע המבוקש."
+msgstr "<strong>אין</strong> את המידע המבוקש."
msgid "A <a href=\"{{request_url}}\">follow up</a> to <em>{{request_title}}</em> was sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
-msgstr ""
+msgstr "<a href=\"{{request_url}}\">מעקב</a> ל- <em>{{request_title}}</em> נשלחה ל- {{public_body_name}} על-ידי {{info_request_user}} בתאריך {{date}}."
msgid "A <a href=\"{{request_url}}\">response</a> to <em>{{request_title}}</em> was sent by {{public_body_name}} to {{info_request_user}} on {{date}}. The request status is: {{request_status}}"
-msgstr ""
+msgstr "<a href=\"{{request_url}}\">תגובה לבקשה</a> ל- <em>{{request_title}}</em> נשלחה על-ידי {{public_body_name}} ל- {{info_request_user}} בתאריך {{date}}. סטטוס הבקשה הוא: {{request_status}}"
msgid "A <strong>summary</strong> of the response if you have received it by post. "
-msgstr "<strong>סיכום</strong> התגובה, לו הייתם מקבלים אותה בפוסט. "
+msgstr "<strong>סיכום</strong> התגובה, אם קיבלתם אותה בדואר."
msgid "A Freedom of Information request"
-msgstr "בקשת חופש מידע"
+msgstr "בקשת מידע"
msgid "A new request, <em><a href=\"{{request_url}}\">{{request_title}}</a></em>, was sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
-msgstr ""
+msgstr "בקשה חדשה, <em><a href=\"{{request_url}}\">{{request_title}}</a></em>, נשלחה אל {{public_body_name}} על-ידי {{info_request_user}} בתאריך {{date}}."
msgid "A public authority"
msgstr "רשות ציבורית"
msgid "A response will be sent <strong>by post</strong>"
-msgstr "תשובה תשלח <strong>ע\"י רשומה</strong>"
+msgstr "תשובה תשלח <strong>בדואר</strong>"
msgid "A strange reponse, required attention by the {{site_name}} team"
msgstr "תגובה מוזרה, נדרשת תשומת לב של צוות {{site_name}}"
+msgid "A vexatious request"
+msgstr "בקשה חסרה"
+
msgid "A {{site_name}} user"
-msgstr "משתמש {{site_name}} "
+msgstr "משתמש {{site_name}}"
msgid "About you:"
msgstr "אודותיך:"
msgid "Act on what you've learnt"
-msgstr "פעל לפי מה שלמדת"
+msgstr "פעלו לפי מה שלמדתם"
+
+msgid "Acts as xapian/acts as xapian job"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Action"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Model"
+msgstr ""
msgid "Add an annotation"
msgstr "הוסיפו הערה"
msgid "Add an annotation to your request with choice quotes, or\\n a <strong>summary of the response</strong>."
-msgstr ""
+msgstr "הוסיפו הערה לבקשה שלכם במרכאות, או \\n <strong>סיכום התגובה</strong>."
msgid "Added on {{date}}"
msgstr "התווסף בתאריך {{date}}"
@@ -351,40 +336,40 @@ msgid "Advanced search tips"
msgstr "טיפים לחיפוש מתקדם"
msgid "Advise on whether the <strong>refusal is legal</strong>, and how to complain about it if not."
-msgstr ""
+msgstr "מידע באשר <strong>לחוקיות הסירוב</strong>, וכיצד להתלונן אם הסירוב אינו חוקי."
msgid "Air, water, soil, land, flora and fauna (including how these effect\\n human beings)"
-msgstr ""
+msgstr "אויר, מים, אדמה, צמחים ובעלי חיים (כולל כיצד הם משפיעים\\n על בני האדם)"
msgid "All of the information requested has been received"
msgstr "התקבל המידע הנדרש"
msgid "All the options below can use <strong>status</strong> or <strong>latest_status</strong> before the colon. For example, <strong>status:not_held</strong> will match requests which have <em>ever</em> been marked as not held; <strong>latest_status:not_held</strong> will match only requests that are <em>currently</em> marked as not held."
-msgstr ""
+msgstr "ניתן להוסיף <strong>סטטוס</strong> או <strong>סטטוס_אחרון</strong>, לפני הנקודותיים. לדוגמה, <strong>סטטוס:לא_התקיים</strong> יתאים לבקשות שסומנו כך <em>אי-פעם</em>; <strong>סטטוס_אחרון:לא_התקיים</strong> יתאים רק לבקשות שמסומנות <em>כרגע</em> כלא_התקיים."
msgid "All the options below can use <strong>variety</strong> or <strong>latest_variety</strong> before the colon. For example, <strong>variety:sent</strong> will match requests which have <em>ever</em> been sent; <strong>latest_variety:sent</strong> will match only requests that are <em>currently</em> marked as sent."
-msgstr ""
+msgstr "כל האפשרויות למטה יכולות לעשות שימוש<strong>במגוון</strong> או <strong>מגוון_אחרון</strong> לפני הנקודותיים. לדוגמה, <strong>מגוון:נשלח</strong> יתאים לבקשות שנשלחו <em>כבר</em> בעבר; <strong>מגוון_אחרון:נשלח</strong> יתאים רק לבקשות שמסומנות <em>כרגע</em>ככאלו שנשלחו."
msgid "Also called {{other_name}}."
msgstr "גם נקרא {{other_name}}"
msgid "Also send me alerts by email"
-msgstr ""
+msgstr "שלחו לנו גם התרעות בדוא\"ל"
msgid "Alter your subscription"
msgstr "לאחר ההרשמה שלכם"
msgid "Although all responses are automatically published, we depend on\\nyou, the original requester, to evaluate them."
-msgstr ""
+msgstr "למרות שכל התגובות מפורסמות באופן אוטומטי, אנו תלויים\\nyou, בבדיקתן על-ידי המגיש המקורי שלהן."
msgid "An <a href=\"{{request_url}}\">annotation</a> to <em>{{request_title}}</em> was made by {{event_comment_user}} on {{date}}"
-msgstr ""
+msgstr "<a href=\"{{request_url}}\">הבהרה</a> לבקשה <em>{{request_title}}</em> נעשתה ע\"י {{event_comment_user}} בתאריך {{date}}"
msgid "An <strong>error message</strong> has been received"
msgstr "התקבלה <strong>הודעת שגיאה</strong>"
msgid "An Environmental Information Regulations request"
-msgstr ""
+msgstr "בקשה למידע על רגולציה סביבתית"
msgid "An anonymous user"
msgstr "משתמש אנונימי"
@@ -396,10 +381,10 @@ msgid "Annotations"
msgstr "הערות"
msgid "Annotations are so anyone, including you, can help the requester with their request. For example:"
-msgstr ""
+msgstr "הסברים מיועדים לכך שכל אחד, כולל אתם, יוכל לעזור למגיש הבקשה עם הבקשה. לדוגמה:"
msgid "Annotations will be posted publicly here, and are\\n <strong>not</strong> sent to {{public_body_name}}."
-msgstr ""
+msgstr "הערות יפורסמו כאן \\n <strong>ולא</strong> יישלחו ל- {{public_body_name}}."
msgid "Anonymous user"
msgstr "משתמש אנונימי"
@@ -407,11 +392,20 @@ msgstr "משתמש אנונימי"
msgid "Anyone:"
msgstr "כל אחד:"
+msgid "Applies to"
+msgstr "תקף ל- "
+
+msgid "Are we missing a public authority?"
+msgstr "האם חסר לנו גוף ציבורי?"
+
+msgid "Are you the owner of any commercial copyright on this page?"
+msgstr "האם אתם הבעלים של\\n זכויות יוצרים מסחריות על עמוד זה?"
+
msgid "Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries."
-msgstr ""
+msgstr "בקשו מסמכים או מידע <strong>מסויימים</strong>. אתר זה אינו מיועד לבקשות כלליות."
-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 ""
+msgid "At the bottom of this page, write a reply to them trying to persuade them to scan it in\\n (<a href=\"{{url}}\">more details</a>)."
+msgstr "רשמו את התגובה שלכם בתחתית עמוד זה, ונסו לשכנע אותם לסרוק את זה \\n (<a href=\"{{url}}\">more details</a>)."
msgid "Attachment (optional):"
msgstr "קובץ מצורף (לא חובה):"
@@ -429,22 +423,28 @@ msgid "Awaiting response."
msgstr "ממתין לתשובה."
msgid "Beginning with"
-msgstr "מתחיל עם"
+msgstr "חיפוש על-פי אות ראשונה"
msgid "Browse <a href='{{url}}'>other requests</a> for examples of how to word your request."
-msgstr ""
+msgstr "הקליקו על <a href='{{url}}'>בקשות אחרות</a> לצפות בדוגמאות לניסוח הבקשה."
msgid "Browse <a href='{{url}}'>other requests</a> to '{{public_body_name}}' for examples of how to word your request."
-msgstr ""
+msgstr "הקליקו על <a href='{{url}}'>בקשות אחרות</a> אל '{{public_body_name}}' לצפות בדוגמאות לניסוח הבקשה."
msgid "Browse all authorities..."
msgstr "עיון בכל הרשויות..."
msgid "By law, under all circumstances, {{public_body_link}} should have responded by now"
-msgstr "לפי החוק, בכפוף לנסיבות, {{public_body_link}} היה צריך להשיב עד עתה"
+msgstr "לפי החוק, בכפוף לנסיבות, {{public_body_link}} היו צרכים להשיב עד עתה"
msgid "By law, {{public_body_link}} should normally have responded <strong>promptly</strong> and"
-msgstr ""
+msgstr "על-פי החוק, {{public_body_link}} היה/היתה צריך/צריכה להגיב כבר"
+
+msgid "Calculated home page"
+msgstr "דף בית מחושב"
+
+msgid "Can't find the one you want?"
+msgstr "לא מוצאים את מה שאתם מחפשים?"
msgid "Cancel a {{site_name}} alert"
msgstr "ביטול התראה מאתר {{site_name}}"
@@ -459,19 +459,19 @@ msgid "Censor rule"
msgstr "הוראת צנזורה"
msgid "CensorRule|Last edit comment"
-msgstr ""
+msgstr "CensorRule|עריכה אחרונה - הערה"
msgid "CensorRule|Last edit editor"
-msgstr ""
+msgstr "CensorRule|עריכה אחרונה - עורך"
msgid "CensorRule|Regexp"
-msgstr ""
+msgstr "CensorRule|Regexp"
msgid "CensorRule|Replacement"
-msgstr ""
+msgstr "CensorRule|תחליף"
msgid "CensorRule|Text"
-msgstr ""
+msgstr "CensorRule|טקסט"
msgid "Change email on {{site_name}}"
msgstr "שנו דואר אלקטרוני לאתר {{site_name}}"
@@ -483,16 +483,16 @@ msgid "Change profile photo"
msgstr "שנה תמונת פרופיל"
msgid "Change the text about you on your profile at {{site_name}}"
-msgstr ""
+msgstr "ערכו את הפרופיל שלכם ב- {{site_name}}"
msgid "Change your email"
-msgstr "בדקו את הדואר שלכם"
+msgstr "שינוי כתובת מייל"
msgid "Change your email address used on {{site_name}}"
msgstr "שנה את כתובת האימייל ב {{site_name}}"
msgid "Change your password"
-msgstr "שנה סיסמתך"
+msgstr "שינוי סיסמה"
msgid "Change your password on {{site_name}}"
msgstr "שנה סיסמתך ב {{site_name}}"
@@ -516,16 +516,16 @@ msgid "Clarification"
msgstr "הבהרה"
msgid "Clarify your FOI request - "
-msgstr ""
+msgstr "הבהירו את בקשת המידע - "
msgid "Classify an FOI response from "
msgstr "קטלג בקשה לחוק חופש המידע מאת"
msgid "Clear photo"
-msgstr ""
+msgstr "הסר צילום"
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\\nreview, asking them to find out why response to the request has been so slow."
-msgstr ""
+msgstr "הקליקו על הקישור למטה כדי לשלוח הודעה ל- {{public_body_name}} שתבקש מהם להשיב לבקשה שלכם. תרצו אולי לבקש בדיקה\\nפנימית, כדי לדעת מדוע התעכבה התגובה שלהם לבקשה."
msgid "Click on the link below to send a message to {{public_body}} reminding them to reply to your request."
msgstr "הקליקו על הלינק כדי לשלוח הודעה אל {{public_body}} כדי להזכיר לכם שהם צריכים להשיב לבקשה שלכם."
@@ -549,7 +549,7 @@ msgid "Comment|Visible"
msgstr "הערה|גלוי"
msgid "Confirm you want to follow all successful FOI requests"
-msgstr ""
+msgstr "אשרו שאתם רוצים לעקוב אחר כל בקשות המידע שנענו"
msgid "Confirm you want to follow new requests"
msgstr "אשרו שאתם רוצים לעקוב אחר בקשות חדשות"
@@ -561,7 +561,7 @@ msgid "Confirm you want to follow requests by '{{user_name}}'"
msgstr "אשרו שאתם רוצים לעקוב אחר בקשות מאת '{{user_name}}'"
msgid "Confirm you want to follow requests to '{{public_body_name}}'"
-msgstr ""
+msgstr "אשרו שאתם רוצים לעקוב אחר בקשות עבור '{{public_body_name}}'"
msgid "Confirm you want to follow the request '{{request_title}}'"
msgstr "אשרו שאתם רוצים לעקוב אחר הבקשות '{{request_title}}'"
@@ -576,22 +576,22 @@ msgid "Confirm your annotation to {{info_request_title}}"
msgstr "אשרו את ההערה שלכם אל {{info_request_title}}"
msgid "Confirm your email address"
-msgstr "אשרו את אימייל הדואר האלקטרוני שלכם"
+msgstr "אשרו את כתובת הדואר האלקטרוני שלכם"
msgid "Confirm your new email address on {{site_name}}"
-msgstr "אשרו את כתובת הדואר האלקטרוני שלכם באתר {{site_name}}"
+msgstr "אשרו את כתובת הדואר האלקטרוני החדשה שלכם באתר {{site_name}}"
msgid "Considered by administrators as not an FOI request and hidden from site."
-msgstr ""
+msgstr "אינה נחשבת ע\"י המנהלים כבקשה לפי חוק חופש המידע ומוסתרת מהאתר."
msgid "Considered by administrators as vexatious and hidden from site."
-msgstr ""
+msgstr "נחשב על ידי מנהלים כמרגיז ומוסתר מהאתר."
msgid "Contact {{recipient}}"
-msgstr ""
+msgstr "צרו קשר עם {{recipient}}"
msgid "Contact {{site_name}}"
-msgstr "צור קשר {{site_name}}"
+msgstr "צרו קשר עם {{site_name}}"
msgid "Could not identify the request from the email address"
msgstr "לא ניתן היה לזהות את הבקשה מכתובת הדואר האלקטרוני"
@@ -603,19 +603,25 @@ msgid "Crop your profile photo"
msgstr "חתכו את תמונת הפרופיל שלכם"
msgid "Cultural sites and built structures (as they may be affected by the\\n environmental factors listed above)"
-msgstr ""
+msgstr "אתרי תרבות ומבנים (אלה עלולים להיות מושפעים\\n מגורמים סביבתיים המופיעים למעלה)"
msgid "Currently <strong>waiting for a response</strong> from {{public_body_link}}, they must respond promptly and"
-msgstr "ממתין <strong>לתגובה</strong>מ- {{public_body_link}}, הם חייבים להגיב מייד ו- promptly and"
+msgstr "כרגע <strong>ממתין לתגובה</strong> מ{{public_body_link}}, הם חייבים להגיב בהקדם, "
msgid "Date:"
msgstr "תאריך:"
+msgid "Dear {{name}},"
+msgstr ""
+
msgid "Dear {{public_body_name}},"
msgstr "{{public_body_name}} נכבד, "
+msgid "Default locale"
+msgstr "ברירת מחדל של הגדרות מקומיות"
+
msgid "Delayed response to your FOI request - "
-msgstr ""
+msgstr "עיכוב בתגובה לבקשה על-פי חוק חופש המידע - "
msgid "Delayed."
msgstr "מעוכב."
@@ -623,6 +629,9 @@ msgstr "מעוכב."
msgid "Delivery error"
msgstr "שגיאה בשליחה"
+msgid "Destroy {{name}}"
+msgstr "השמד {{name}}"
+
msgid "Details of request '"
msgstr "פרטי הבקשה '"
@@ -630,13 +639,16 @@ msgid "Did you mean: {{correction}}"
msgstr "האם התכוונתם: {{correction}}"
msgid "Disclaimer: This message and any reply that you make will be published on the internet. Our privacy and copyright policies:"
-msgstr ""
+msgstr "כתב ויתור: הודעה זו וכל הודעה הקשורה אליה שתשלחו, תפורסם באינטרנט. מדיניות הפרטיות והגנת הזכויות שלנו:"
msgid "Disclosure log"
-msgstr ""
+msgstr "יומן גילוי נאות"
+
+msgid "Disclosure log URL"
+msgstr "כתובת יומן גילוי נאות"
msgid "Don't want to address your message to {{person_or_body}}? You can also write to:"
-msgstr ""
+msgstr "לא מעוניינים להפנות את ההודעה ל- {{person_or_body}}? תוכלו לכתוב ל:"
msgid "Done"
msgstr "הסתיים"
@@ -645,31 +657,31 @@ msgid "Done &gt;&gt;"
msgstr "בוצע &gt;&gt;"
msgid "Download a zip file of all correspondence"
-msgstr "הורידו "
+msgstr "להוריד קובץ זיפ עם כל ההתכתבות"
msgid "Download original attachment"
-msgstr "הורד את המסמך המצורף המקורי"
+msgstr "הורידו את המסמך המצורף המקורי"
msgid "EIR"
msgstr "דוח מידע תקנות סביבתיות"
-msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
-msgstr ""
+msgid "Edit"
+msgstr "ערכו"
-msgid "Edit language version:"
-msgstr "ערוך גרסת שפה:"
+msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
+msgstr "ערכו והוסיפו <strong>פרטים נוספים</strong> להודעה למעלה, /n המסבירים מדוע אתם לא מרוצים מהתגובה שלהם"
msgid "Edit text about you"
-msgstr "ערוך את הטקסט אודותיך"
+msgstr "ערכו את הטקסט אודותיכם"
msgid "Edit this request"
-msgstr "ערוך את הבקשה"
+msgstr "ערכו את הבקשה"
msgid "Either the email or password was not recognised, please try again."
msgstr "כתובת המייל או הסיסמא לא זוהו, אנא נסו שנית."
msgid "Either the email or password was not recognised, please try again. Or create a new account using the form on the right."
-msgstr ""
+msgstr "כתובת הדוא\"ל או הסיסמה שגויים. נסו שוב. ליצירת חשבון חדש, מלאו את הפרטים מימין."
msgid "Email doesn't look like a valid address"
msgstr "כתובת הדואר האלקטרוני היא לא כתובת חוקית"
@@ -678,10 +690,10 @@ msgid "Email me future updates to this request"
msgstr "שלחו לי עדכונים בדואר אלקטרוני לגבי הבקשה"
msgid "Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>"
-msgstr ""
+msgstr "הכניסו את מילות החיפוש עם רווח ביניהן. לדוגמה, e.g. <strong>נתיב עליה</strong>"
-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 ""
+msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"{{url}}\">contact us</a> if you need more)."
+msgstr "הכניסו את תגובתכם כאן. אתם יכולים לצרף קובץ אחד (פנו באימייל או r\\n <a hצרו קשרref=\"{{url}}\"></a> אם יש צורך ביותר מאחד)."
msgid "Environmental Information Regulations"
msgstr "מידע תקנות סביבתיות"
@@ -690,19 +702,22 @@ msgid "Environmental Information Regulations requests made"
msgstr "בקשות לגבי מידע תקנות סביבתיות"
msgid "Environmental Information Regulations requests made using this site"
-msgstr ""
+msgstr "בקשה למידע על תקנות סביבה, שהוגשה באמצעות האתר"
msgid "Event history"
msgstr "היסטוריית אירועים"
msgid "Event history details"
-msgstr "פרטי אירוע היסטורי:"
+msgstr "פירוט היסטוריית אירועים"
-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 ""
+msgid "Event {{id}}"
+msgstr "אירוע {{id}}"
-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 ""
+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=\"{{url}}\">why?</a>)."
+msgstr "כל מה שתזינו בדף הזה, כולל <strong>השם שלכם</strong>, יוצג <strong>פתוח לציבור</strong> באתר הזה לנצח (<a href=\"{{url}}\">למה?</a>)."
+
+msgid "Everything that you enter on this page\\n will be <strong>displayed publicly</strong> on\\n this website forever (<a href=\"{{url}}\">why?</a>)."
+msgstr "כל מה שתזינו בדף הזה, יוצג <strong>פתוח לציבור</strong> באתר הזה לנצח (<a href=\"{{url}}\">למה?</a>)."
msgid "FOI"
msgstr "חוק חופש המידע"
@@ -710,71 +725,74 @@ msgstr "חוק חופש המידע"
msgid "FOI email address for {{public_body}}"
msgstr "כתובת לפניות לפי חוק חופש המידע עבור {{public_body}}"
+msgid "FOI request – {{title}}"
+msgstr "בקשת מידע חופשי - {{title}}"
+
msgid "FOI requests"
msgstr "בקשות לפי חוק חופש המידע"
msgid "FOI requests by '{{user_name}}'"
-msgstr ""
+msgstr "בקשה לקבלת מידע על-פי חוק חופש המידע, שהוגשה על-ידי '{{user_name}}'"
msgid "FOI requests {{start_count}} to {{end_count}} of {{total_count}}"
-msgstr ""
+msgstr "בקשות לקבלת מידע על-פי חוק חופש המידע {{start_count}} עד {{end_count}} מתוך {{total_count}}"
msgid "FOI response requires admin ({{reason}}) - {{title}}"
-msgstr ""
+msgstr "תגובה לפי חוק חופש המידע דורשת ({{reason}}) - {{title}} מנהל"
msgid "Failed to convert image to a PNG"
-msgstr ""
+msgstr "המרת הקובץ לפורמט PNG נכשלה"
-msgid "Failed to convert image to the correct size: at %{cols}x%{rows}, need %{width}x%{height}"
-msgstr ""
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
+msgstr "המרת התמונה לגודל המתאים נכשלה: ל- {{cols}}x{{rows}}, נדרש {{width}}x{{height}}"
msgid "Filter"
msgstr "סינון"
-msgid "First, type in the <strong>name of the UK public authority</strong> you'd \\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"%s#%s\">why?</a>)."
-msgstr ""
+msgid "First, type in the <strong>name of the UK public authority</strong> you'd\\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"{{url}}\">why?</a>)."
+msgstr "ראשית, הקלידו את <strong>שם הגוף הממשלתי </strong>, ממנו ברצונכם לקבל מידע.\\n <strong>לפי חוק, עליהם למסור תגובה</strong> (<a href=\"{{url}}\">מדוע?</a>)."
msgid "Foi attachment"
-msgstr ""
+msgstr "מסמף מצורף עבור חוק חופש המידע"
msgid "FoiAttachment|Charset"
-msgstr ""
+msgstr "בקשהמצורפת|סוג קידוד"
msgid "FoiAttachment|Content type"
-msgstr ""
+msgstr "בקשהמצורפת|סוג תוכן"
msgid "FoiAttachment|Display size"
-msgstr ""
+msgstr "בקשהמצורפת|גודל תצוגה"
msgid "FoiAttachment|Filename"
-msgstr ""
+msgstr "בקשהמצורפת|שםקובץ"
msgid "FoiAttachment|Hexdigest"
-msgstr ""
+msgstr "בקשהמצורפת|לקטHEX"
msgid "FoiAttachment|Url part number"
-msgstr ""
+msgstr "בקשהמצורפת|מק\"ט URL"
msgid "FoiAttachment|Within rfc822 subject"
-msgstr ""
+msgstr "בקשהמצורפת|במסגרת סעיף XXX"
msgid "Follow"
-msgstr "עקוב"
+msgstr "עקבו"
msgid "Follow all new requests"
msgstr "עקבו אחר הבקשות החדשות"
msgid "Follow new successful responses"
-msgstr ""
+msgstr "עקבו אחר תגובות מאושרות חדשות"
msgid "Follow requests to {{public_body_name}}"
-msgstr ""
+msgstr "עקבו אחר בקשות עבור {{public_body_name}}"
msgid "Follow these requests"
msgstr "עקבו אחר הבקשות הללו"
msgid "Follow things matching this search"
-msgstr ""
+msgstr "עקבו אחר התאמות לחיפוש זה"
msgid "Follow this authority"
msgstr "עקבו אחר הרשות הזו"
@@ -795,27 +813,27 @@ msgid "Follow up message sent by requester"
msgstr "הודעת עדכון נשלחה על ידי המבקש"
msgid "Follow up messages to existing requests are sent to "
-msgstr ""
+msgstr "הודעות מעקב לבקשות קיימות נשלחות ל- "
msgid "Follow ups and new responses to this request have been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you are {{user_link}} and need to send a follow up."
-msgstr ""
+msgstr "הודעות תגובה והודעות חדשות לבקשה זו נחסמו מחשש לדואר זבל. נא <a href=\"{{url}}\">צרו קשר</a> אם את/ה {{user_link}} וצריך לשלוח הודעת המשך."
msgid "Follow us on twitter"
-msgstr "עקוב אחרינו בטוויטר"
+msgstr "עקבו אחרינו בטוויטר"
msgid "Followups cannot be sent for this request, as it was made externally, and published here by {{public_body_name}} on the requester's behalf."
-msgstr ""
+msgstr "מצטערים, איננו יכולים לשלוח הודעות מעקב עבור בקשה זו, מכיוון שהיא בוצעה מחוץ לאתר, ופורסמה כאן ע\"י {{public_body_name}} בשמו של המבקש."
msgid "For an unknown reason, it is not possible to make a request to this authority."
-msgstr ""
+msgstr "לא ניתן להגיש בקשה לרשות זו, מסיבה לא ידועה."
msgid "Forgotten your password?"
msgstr "שכחתם את הסיסמה?"
-msgid "Found %d public authority %s"
-msgid_plural "Found %d public authorities %s"
-msgstr[0] ""
-msgstr[1] ""
+msgid "Found {{count}} public authority {{description}}"
+msgid_plural "Found {{count}} public authorities {{description}}"
+msgstr[0] "נמצא גוף ציבורי {{count}} שהוא {{description}}"
+msgstr[1] "נמצאו {{count}} הרשויות הציבוריות הבאות {{description}}:"
msgid "Freedom of Information"
msgstr "חופש המידע"
@@ -824,34 +842,34 @@ msgid "Freedom of Information Act"
msgstr "חוק חופש המידע "
msgid "Freedom of Information law does not apply to this authority, so you cannot make\\n a request to it."
-msgstr "חוק החופש המידע אינו חל על הרשות הזאת, אז אתה לא יכול לבצעn/ בקשה למידע ממנה."
+msgstr "חוק החופש המידע אינו חל על הרשות הזאת, אז אתה לא יכול לבצע בקשה למידע ממנה."
msgid "Freedom of Information law no longer applies to"
-msgstr ""
+msgstr "חוק חופש המידע לא תקף ל- "
msgid "Freedom of Information law no longer applies to this authority.Follow up messages to existing requests are sent to "
-msgstr ""
+msgstr "חוק חופש המידע לא תקף לרשות זו. הודעות המשך לבקשה קיימת נשלחות ל- "
msgid "Freedom of Information requests made"
-msgstr "בקשות לפי חוק חופש המידע שהתבצעו"
+msgstr "בקשות לפי חוק חופש המידע שנוצרו"
msgid "Freedom of Information requests made by this person"
-msgstr ""
+msgstr "בקשות על-פי חוק חופש המידע שנוצרו על-ידי אדם זה."
msgid "Freedom of Information requests made by you"
msgstr "בקשות לחופש המידע שנעשו על ידכם"
msgid "Freedom of Information requests made using this site"
-msgstr ""
+msgstr "בקשות על-פי חוק חופש המידע שטופלו באתר זה"
msgid "Freedom of information requests to"
-msgstr ""
+msgstr "בקשות על-פי חוק חופש המידע אל"
msgid "From"
msgstr "מאת"
-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 ""
+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=\"{{url}}\">send it to us</a>."
+msgstr "מעמוד הבקשה, נסו להגיב להודעה מסוימת, ולא לשלוח תגובה כללית. אם ברצונכם להגיב כללית, ומכירים כתובת ישירה שתגיע למקום הנכון, אנא <a href=\"{{url}}\">שלחו אותה אלינו</a>."
msgid "From:"
msgstr "מאת:"
@@ -860,11 +878,23 @@ msgid "GIVE DETAILS ABOUT YOUR COMPLAINT HERE"
msgstr "ספקו פרטים על התלונה שלכם כאן"
msgid "Handled by post."
+msgstr "טופל בפוסט."
+
+msgid "Has tag string/has tag string tag"
msgstr ""
-msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
+msgid "HasTagString::HasTagStringTag|Model"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Name"
msgstr ""
+msgid "HasTagString::HasTagStringTag|Value"
+msgstr ""
+
+msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
+msgstr "שלום! אתם יכולים להגיש בקשות על-פי חוק חופש המידע ב{{country_name}} באתר {{link_to_website}}"
+
msgid "Hello, {{username}}!"
msgstr "שלום, {{username}}!"
@@ -872,31 +902,37 @@ msgid "Help"
msgstr "עזרה"
msgid "Here <strong>described</strong> means when a user selected a status for the request, and\\nthe most recent event had its status updated to that value. <strong>calculated</strong> is then inferred by\\n{{site_name}} for intermediate events, which weren't given an explicit\\ndescription by a user. See the <a href=\"{{search_path}}\">search tips</a> for description of the states."
-msgstr ""
+msgstr "כאן <strong>מתוארים</strong> אמצעים, כאשר המשתמש בחר בסטטוס לבקשה, ו- \\nהאירוע האחרון עודכן לסטטוס הזה. <strong>calculated</strong> is then inferred by\\n{{site_name}} for intermediate events, which weren't given an explicit\\ndescription by a user. See the <a href=\"{{search_path}}\">search tips</a> for description of the states."
msgid "Here is the message you wrote, in case you would like to copy the text and save it for later."
msgstr "הנה ההודעה שכתבתם, במקרה שאתם רוצים להעתיק את הטקסט ולשמור אותו."
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 ""
+msgstr "היי! אנו זקוקים לעזרתך. האדם אשר הגיש את הבקשה הנ\"ל \\n לא אמר לנו האם היא הסתיימה בהצלחה. האם תסכים לקרוא אותה \\n ולעזור לנו לשמור על האתר מסודר עבור כולם? \\n תודה."
+
+msgid "Hide request"
+msgstr "הסתרת בקשה"
msgid "Holiday"
msgstr "חגים"
msgid "Holiday|Day"
-msgstr ""
+msgstr "Holiday|Day"
msgid "Holiday|Description"
-msgstr ""
+msgstr "Holiday|Description"
msgid "Home"
-msgstr "בית"
+msgstr "עמוד הבית"
+
+msgid "Home page"
+msgstr "עמוד הבית"
msgid "Home page of authority"
msgstr "עמוד הבית של הרשות"
msgid "However, you have the right to request environmental\\n information under a different law"
-msgstr ""
+msgstr "לעומת זאת, יש לכם את הזכות לבקש מידע סביבתי /n תחת חוק אחר"
msgid "Human health and safety"
msgstr "בריאות ובטחון הציבור"
@@ -905,10 +941,10 @@ msgid "I am asking for <strong>new information</strong>"
msgstr "אני מבקש <strong>מידע חדש</strong>"
msgid "I am requesting an <strong>internal review</strong>"
-msgstr ""
+msgstr "אנו מבקשים <strong>בדיקה פנימית</strong>"
msgid "I don't like these ones &mdash; give me some more!"
-msgstr ""
+msgstr "אלה לא מתאימים לנו &mdash; תנו לנו אחרים!"
msgid "I don't want to do any more tidying now!"
msgstr "אני לא רוצה לבצע עוד ניקיונות עכשיו!"
@@ -920,73 +956,82 @@ msgid "I would like to <strong>withdraw this request</strong>"
msgstr " אני מעוניין <strong>למשוך את הבקשה</strong>"
msgid "I'm still <strong>waiting</strong> for my information\\n <small>(maybe you got an acknowledgement)</small>"
-msgstr ""
+msgstr "אנו עדיין <strong>ממתינים</strong> למידע שלנו <small>(אולי קיבלת התייחסות)</small>"
msgid "I'm still <strong>waiting</strong> for the internal review"
-msgstr ""
+msgstr "אנו עדיין <strong>ממתינים</strong> לבדיקה הפנימית"
msgid "I'm waiting for an <strong>internal review</strong> response"
-msgstr ""
+msgstr "אנחנו מחכים לתגובה על <strong>הבדיקה הפנימית</strong>"
msgid "I've been asked to <strong>clarify</strong> my request"
-msgstr ""
+msgstr "נדרשנו <strong>להבהיר</strong> את בקשתנו"
msgid "I've received <strong>all the information"
msgstr "קיבלתי <strong>את כל המידע"
msgid "I've received <strong>some of the information</strong>"
-msgstr ""
+msgstr "קיבלנו <strong>חלק מהמידע</strong>"
msgid "I've received an <strong>error message</strong>"
-msgstr ""
+msgstr "קיבלנו <strong>הודעת שגיאה</strong>"
-msgid "If the address is wrong, or you know a better address, please <a href=\"%s\">contact us</a>."
-msgstr ""
+msgid "I've received an error message"
+msgstr "קיבלנו <strong>הודעת שגיאה</strong>"
+
+msgid "Id"
+msgstr "מזהה"
+
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
+msgstr "אם הכתובת שגוייה, או יש לכם כתובת אחרת, נא <a href=\"{{url}}\">צרו איתנו קשר</a>."
+
+msgid "If the error was a delivery failure, and you can find an up to date FOI email address for the authority, please tell us using the form below."
+msgstr "אם השגיאה נגרמה כתוצאה מכתובת דוא\"ל שגויה, ואתם יכולים למצוא כתובת עדכנית של הגוף הציבורי, אנא ספרו לנו בעזרת הטופס למטה."
msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
-msgstr ""
+msgstr "אם המידע אינו נכון, או אם ברצונכם לשלוח תגובה מאוחרת למבקש /n או אימייל בנושא אחר אל {{user}}, אנא צרו קשר עם {{contact_email}} עבור עזרה."
-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 ""
+msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"{{url}}\">details</a>)."
+msgstr "אם אתם לא מרוצים מהתגובה שקיבלתם מהגוף הציבורי, /n יש לכם את הזכות להתלונן (<a href=\"{{url}}\">לפרטים</a>)."
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
-msgstr "אם עדיין נתקלתם בבעיה אנא <a href=\"%s\">צרו איתנו קשר</a>."
+msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>."
+msgstr "אם עדיין נתקלתם בבעיה אנא <a href=\"{{url}}\">צרו איתנו קשר</a>."
-msgid "If you are the requester, then you may <a href=\"%s\">sign in</a> to view the request."
-msgstr ""
+msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request."
+msgstr "אם אתם מגישי הבקשה, תרצו אולי <a href=\"{{url}}\">להתחבר</a> כדי לצפות בבקשה."
-msgid "If you are thinking of using a pseudonym,\\n please <a href=\"%s\">read this first</a>."
-msgstr ""
+msgid "If you are thinking of using a pseudonym,\\n please <a href=\"{{url}}\">read this first</a>."
+msgstr "אם אתם שוקלים שימוש בזהות בדויה, /n אנא <a href=\"{{url}}\">קיראו זאת קודם</a>."
msgid "If you are {{user_link}}, please"
msgstr "אם אתה המשתמש {{user_link}}, בבקשה"
msgid "If you believe this request is not suitable, you can report it for attention by the site administrators"
-msgstr ""
+msgstr "אם הנכם סבורים שיש להסתיר בקשה זו או להסיר אותה , תוכלו לדווח למנהלי האתר"
msgid "If you can't click on it in the email, you'll have to <strong>select and copy\\nit</strong> from the email. Then <strong>paste it into your browser</strong>, into the place\\nyou would type the address of any other webpage."
-msgstr ""
+msgstr "אם אתם לא מצליחים להקליק על זה בגוף ההודעה, עליכם <strong>לבחור ולהעתיק \\nאת הלינק</strong> מתוך ההודעה. לאחר מכן <strong>הדביקו אותו בשורת הכתובת של הדפדפן</strong> /n כמו כל כתובת אחרת."
msgid "If you can, scan in or photograph the response, and <strong>send us\\n a copy to upload</strong>."
-msgstr ""
+msgstr "אם אתם יכולים, סירקו או צלמו את הבקשה, <strong>ושילחו לנו עותק שנוכל להעלות</strong>."
msgid "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."
-msgstr ""
+msgstr "אם אתם מוצאים שירות זה כמתאים להגשת בקשות על-פי חוק חופש המידע, בקשו ממנהל הרשת שלכם לשים קישור בדף הגשת הבקשות באתר שלכם."
msgid "If you got the email <strong>more than six months ago</strong>, then this login link won't work any\\nmore. Please try doing what you were doing from the beginning."
-msgstr ""
+msgstr "אם קיבלתם את הדוא\"ל <strong>לפני יותר משישה חודשים</strong>, הקישור לא יעבוד יותר. /n נסו להתחיל את התהליך מההתחלה."
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 ""
+msgstr "אם טרם עשיתם זאת, נא רשמו למטה פניה לרשות המתאימה ובה הסבר על ביטול הבקשה שלכם, אחרת לא ידעו שהבקשה בוטלה."
msgid "If you reply to this message it will go directly to {{user_name}}, who will\\nlearn your email address. Only reply if that is okay."
-msgstr ""
+msgstr "תגובה על ההודעה הזו תגיע ישירות אל {{user_name}}, אשר ידע בעקבות זאת את כתובתכם. השיבו רק אם זה בסדר."
msgid "If you use web-based email or have \"junk mail\" filters, also check your\\nbulk/spam mail folders. Sometimes, our messages are marked that way."
-msgstr ""
+msgstr "אם אתם משתמשים באימייל מבוסס רשת, או שיש לכם מסנני ספאם, אנא בדקו את תיקיית הספאם. ההודעות שלנו לפעמים מגיעות לשם."
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 ""
+msgstr "אם תרצו שנסיר את המגבלה הזו, אתם יכולים <a href=\"/help/contact\">ליצור איתנו קשר</a> ולספק סיבות. \\n"
msgid "If you're new to {{site_name}}"
msgstr "אם אתם חדשים באתר {{site_name}}"
@@ -995,160 +1040,187 @@ msgid "If you've used {{site_name}} before"
msgstr "אם השתמשתם באתר {{site_name}} before לפני"
msgid "If your browser is set to accept cookies and you are seeing this message,\\nthen there is probably a fault with our server."
-msgstr ""
+msgstr "אם הדפדפן שלכם מקבל עוגיות ואתם רואים הודעה זו, \\n אז כנראה שיש תקלה בשרת שלנו."
+
+msgid "Incoming email address"
+msgstr "כתובת לקבלת דואר אלקטרוני"
msgid "Incoming message"
msgstr "הודעה נכנסת"
msgid "IncomingMessage|Cached attachment text clipped"
-msgstr ""
+msgstr "IncomingMessage|Cached הטקסט המצורף נחתך"
msgid "IncomingMessage|Cached main body text folded"
-msgstr ""
+msgstr "IncomingMessage|Cached הטקסט המרכזי צומצם"
msgid "IncomingMessage|Cached main body text unfolded"
-msgstr ""
+msgstr "IncomingMessage|Cached הטקסט המרכזי הורחב"
msgid "IncomingMessage|Last parsed"
-msgstr ""
+msgstr "IncomingMessage|Last עובד"
msgid "IncomingMessage|Mail from"
-msgstr ""
+msgstr "IncomingMessage|Mail מאת"
msgid "IncomingMessage|Mail from domain"
-msgstr ""
+msgstr "IncomingMessage|Mail מהדומיין"
msgid "IncomingMessage|Sent at"
-msgstr ""
+msgstr "IncomingMessage|Sent בשעה"
msgid "IncomingMessage|Subject"
-msgstr ""
+msgstr "IncomingMessage|Subject"
msgid "IncomingMessage|Valid to reply to"
-msgstr ""
+msgstr "IncomingMessage|Valid להשיב ל- "
msgid "Individual requests"
msgstr "דרישות נפרדות"
msgid "Info request"
-msgstr ""
+msgstr "בקשת מידע"
msgid "Info request event"
-msgstr ""
+msgstr "אירוע בקשת מידע"
msgid "InfoRequestEvent|Calculated state"
-msgstr ""
+msgstr "InfoRequestEvent|Calculated מצב"
msgid "InfoRequestEvent|Described state"
-msgstr ""
+msgstr "InfoRequestEvent|Described מצב"
msgid "InfoRequestEvent|Event type"
-msgstr ""
+msgstr "InfoRequestEvent|Event סוג"
msgid "InfoRequestEvent|Last described at"
-msgstr ""
+msgstr "InfoRequestEvent|Last תואר ב- "
msgid "InfoRequestEvent|Params yaml"
-msgstr ""
+msgstr "InfoRequestEvent|Params yaml"
msgid "InfoRequestEvent|Prominence"
-msgstr ""
+msgstr "InfoRequestEvent|Prominence"
msgid "InfoRequest|Allow new responses from"
-msgstr ""
+msgstr "InfoRequest|Allow תגובות חדשות מ- "
msgid "InfoRequest|Attention requested"
-msgstr ""
+msgstr "בקשת מידע | אנא שימו לב"
msgid "InfoRequest|Awaiting description"
-msgstr ""
+msgstr "InfoRequest|Awaiting תיאור"
msgid "InfoRequest|Comments allowed"
-msgstr ""
+msgstr "InfoRequest|Comments allowed"
msgid "InfoRequest|Described state"
-msgstr ""
+msgstr "InfoRequest|Described מצב"
msgid "InfoRequest|External url"
-msgstr ""
+msgstr "InfoRequest|External url"
msgid "InfoRequest|External user name"
-msgstr ""
+msgstr "InfoRequest|External user name"
msgid "InfoRequest|Handle rejected responses"
-msgstr ""
+msgstr "InfoRequest|Handle תגובות שנדחו"
msgid "InfoRequest|Idhash"
-msgstr ""
+msgstr "InfoRequest|Idhash"
msgid "InfoRequest|Law used"
-msgstr ""
+msgstr "InfoRequest|Law היו בשימוש"
msgid "InfoRequest|Prominence"
-msgstr ""
+msgstr "InfoRequest|Prominence"
msgid "InfoRequest|Title"
-msgstr ""
+msgstr "InfoRequest|Title"
msgid "InfoRequest|Url title"
-msgstr ""
+msgstr "InfoRequest|Url כותרת"
msgid "Information not held."
-msgstr ""
+msgstr "המידע לא נמסר."
msgid "Information on emissions and discharges (e.g. noise, energy,\\n radiation, waste materials)"
-msgstr ""
+msgstr "מידע על אתרי והשלכת פסולת (כגון רעש, אנרגיה,\\n קרינה, חומרים מתכלים)"
msgid "Internal review request"
-msgstr ""
+msgstr "בקשת בדיקה פנימית"
msgid "Is {{email_address}} the wrong address for {{type_of_request}} requests to {{public_body_name}}? If so, please contact us using this form:"
-msgstr ""
+msgstr "האם הכתובת {{email_address}} היא הנכונה לבקשת {{type_of_request}} אל {{public_body_name}}? אם לא, נא צרו איתנו קשר באמצעות טופס זה:"
msgid "It may be that your browser is not set to accept a thing called \"cookies\",\\nor cannot do so. If you can, please enable cookies, or try using a different\\nbrowser. Then press refresh to have another go."
-msgstr ""
+msgstr "ייתכן והדפדפן שלכם מוגדר שלא לקבל \"עוגיות\" (\"cookies\") ,\\nאו לא מצליח לעשות כן. בדקו את הגדרות הדפדפן שלכם או השתמשו בדפדפן\\nאחר. לאחר מכן נסו שוב."
msgid "Items matching the following conditions are currently displayed on your wall."
-msgstr ""
+msgstr "פריטים המתאימים לתנאים הבאים מוצגים כעת על הקיר שלך."
+
+msgid "Items sent in last month"
+msgstr "פריטים שנשלחו בחודש שעבר"
msgid "Joined in"
-msgstr ""
+msgstr "הצטרף/פה"
msgid "Joined {{site_name}} in"
-msgstr ""
+msgstr "הצטרף/פה ל- {{site_name}}ב- "
-msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)."
-msgstr ""
+msgid "Just one more thing"
+msgstr "רק עוד דבר אחד"
+
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
+msgstr "שמור על זה <strong>ממוקד</strong>, כנראה שכך תקבלו את מה שאתם רוצים. (<a href=\"{{url}}\">מדוע?</a>)."
msgid "Keywords"
msgstr "מילות מפתח"
msgid "Last authority viewed: "
-msgstr ""
+msgstr "הרשות האחרונה שנצפתה:"
msgid "Last request viewed: "
msgstr "בקשה אחרונה שנצפתה:"
msgid "Let us know what you were doing when this message\\nappeared and your browser and operating system type and version."
-msgstr ""
+msgstr "ספרו לנו מה עשיתם כשהודעה זו\\nהופיעה, וכן מהו הדפדפן שלכם, מערכת ההפעלה שלכם והגרסה שלה."
msgid "Link to this"
-msgstr ""
+msgstr "קישור לכאן"
+
+msgid "List all"
+msgstr "רשימת הכל"
msgid "List of all authorities (CSV)"
-msgstr ""
+msgstr "רשימת כל הרשויות (CSV)"
+
+msgid "Listing FOI requests"
+msgstr "רשימת בקשות על-פי חוק חופש המידע"
+
+msgid "Listing public authorities"
+msgstr "רשימת רשויות ציבוריות"
+
+msgid "Listing public authorities matching '{{query}}'"
+msgstr "מציג גופים ציבורים הכוללים את '{{query}}'"
+
+msgid "Listing tracks"
+msgstr "רשימת מעקב"
+
+msgid "Listing users"
+msgstr "רשימת משתמשים"
msgid "Log in to download a zip file of {{info_request_title}}"
-msgstr ""
+msgstr "יש להיכנס למערכת כדי להוריד קובץ זיפ של {{info_request_title}}"
msgid "Log into the admin interface"
-msgstr ""
+msgstr "התחבר לממשק הניהול"
msgid "Long overdue."
msgstr "עברה ממזמן."
msgid "Made between"
-msgstr "נעשתה בין"
+msgstr "הוגשה בין"
msgid "Mail server log"
msgstr "יומן אירועים שרת דואר"
@@ -1157,37 +1229,37 @@ msgid "Mail server log done"
msgstr "התבצע רישום אירועים של שרת הדואר"
msgid "MailServerLogDone|Filename"
-msgstr ""
+msgstr "MailServerLogDone|Filename"
msgid "MailServerLogDone|Last stat"
-msgstr ""
+msgstr "MailServerLogDone|Last stat"
msgid "MailServerLog|Line"
-msgstr ""
+msgstr "MailServerLog|Line"
msgid "MailServerLog|Order"
-msgstr ""
+msgstr "MailServerLog|Order"
msgid "Make a new <strong>Environmental Information</strong> request"
-msgstr ""
+msgstr "יצירת בקשת <strong>מידע סביבתי</strong> חדשה"
msgid "Make a new <strong>Freedom of Information</strong> request to {{public_body}}"
-msgstr ""
+msgstr "יצירת בקשת <strong>חופש מידע</strong> חדשה ל{{public_body}}"
msgid "Make a new<br/>\\n <strong>Freedom <span>of</span><br/>\\n Information<br/>\\n request</strong>"
-msgstr ""
+msgstr "הגישו<br><strong>בקשה</strong><br><span>לפתיחת</span> <br><strong>מאגר מידע</strong>"
msgid "Make a request"
-msgstr "בצעו בקשה"
+msgstr "בקשה חדשה"
msgid "Make an {{law_used_short}} request to '{{public_body_name}}'"
-msgstr ""
+msgstr "יצירת בקשת {{law_used_short}} ל '{{public_body_name}}'"
msgid "Make and browse Freedom of Information (FOI) requests"
-msgstr ""
+msgstr "יצירה וצפייה בבקשות חופש מידע"
msgid "Make your own request"
-msgstr ""
+msgstr "יצירת בקשה משלכם"
msgid "Many requests"
msgstr "דרישות שונות"
@@ -1196,28 +1268,28 @@ msgid "Message"
msgstr "הודעה"
msgid "Message sent using {{site_name}} contact form, "
-msgstr ""
+msgstr "הבקשה נשלחה באמצעות טופס יצירת קשר של {{site_name}},"
msgid "Missing contact details for '"
-msgstr ""
+msgstr "חסרים פרטי יצירת קשר של '"
msgid "More about this authority"
-msgstr ""
+msgstr "עוד פרטים על רשות זו"
msgid "More requests..."
-msgstr "דרישות נוספות"
+msgstr "בקשות נוספות..."
msgid "More similar requests"
-msgstr ""
+msgstr "בקשות דומות נוספות"
msgid "More successful requests..."
-msgstr ""
+msgstr "בקשות נוספות שנענו..."
msgid "My profile"
msgstr "הפרופיל שלי"
msgid "My request has been <strong>refused</strong>"
-msgstr ""
+msgstr "הבקשה שלי <strong>נדחתה</strong>"
msgid "My requests"
msgstr "הבקשות שלי"
@@ -1226,7 +1298,7 @@ msgid "My wall"
msgstr "הקיר שלי"
msgid "Name can't be blank"
-msgstr ""
+msgstr "חובה למלא שם"
msgid "Name is already taken"
msgstr "השם כבר תפוס"
@@ -1234,6 +1306,9 @@ msgstr "השם כבר תפוס"
msgid "New Freedom of Information requests"
msgstr "בקשות חדשות לחופש המידע"
+msgid "New censor rule"
+msgstr "חוק צנזור חדש"
+
msgid "New e-mail:"
msgstr "דואר אלקטרוני חדש:"
@@ -1247,22 +1322,22 @@ msgid "New password: (again)"
msgstr "סיסמה חדשה (שוב):"
msgid "New response to '{{title}}'"
-msgstr ""
+msgstr "תשובה חדשה ל'{{title}}'"
msgid "New response to your FOI request - "
-msgstr ""
+msgstr "תגובה חדשה לבקשת חופש המידע שלך -"
msgid "New response to your request"
-msgstr ""
+msgstr "תגובה חדשה לבקשה שלך"
msgid "New response to {{law_used_short}} request"
-msgstr ""
+msgstr "תגובה חדשה לבקשת {{law_used_short}}"
msgid "New updates for the request '{{request_title}}'"
-msgstr ""
+msgstr "עדכונים חדשים לבקשה '{{request_title}}'"
msgid "Newest results first"
-msgstr ""
+msgstr "תוצאות חדשות יותר ראשונות"
msgid "Next"
msgstr "הבא"
@@ -1279,47 +1354,53 @@ msgstr "אין תוצאות."
msgid "No similar requests found."
msgstr "לא נמצאות בקשות דומות."
+msgid "No tracked things found."
+msgstr "לא נמצאו דברים במעקב"
+
msgid "Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet."
-msgstr ""
+msgstr "אף אחד לא שלח בקשת מידע חופשי ל{{public_body_name}} דרך האתר הזה."
msgid "None found."
msgstr "לא נמצאו."
msgid "None made."
-msgstr ""
+msgstr "לא בוצע שינוי."
+
+msgid "Not a valid FOI request"
+msgstr "בקשת מידע לא תקפה"
msgid "Note that the requester will not be notified about your annotation, because the request was published by {{public_body_name}} on their behalf."
-msgstr ""
+msgstr "שימו לב כי לא נודיע למבקש על הערתכם, מכיוון שהבקשה פורסמה ע\"י {{public_body_name}} ובשמם."
msgid "Now check your email!"
msgstr "עכשיו בידקו את האימייל שלכם!"
msgid "Now preview your annotation"
-msgstr ""
+msgstr "ראו את הערותייכם כעת"
msgid "Now preview your follow up"
-msgstr ""
+msgstr "ראו את פניית ההמשך שלכם כעת"
msgid "Now preview your message asking for an internal review"
-msgstr ""
+msgstr "ראו את בקשתכם לקבלת בדיקה פנימית"
msgid "OR remove the existing photo"
-msgstr ""
+msgstr "-או- הסירו את התמונה הקיימת"
msgid "Offensive? Unsuitable?"
msgstr "תוקפני? לא מתאים?"
msgid "Oh no! Sorry to hear that your request was refused. Here is what to do now."
-msgstr ""
+msgstr "מצטערים לשמוע שבקשתכם לא נענתה. הנה מה שתוכלו לעשות."
msgid "Old e-mail:"
msgstr "אימייל ישן:"
msgid "Old email address isn't the same as the address of the account you are logged in with"
-msgstr ""
+msgstr "כתובת הדוא\"ל הקודמת לא תואמת לכתובת החשבון שלכם"
msgid "Old email doesn't look like a valid address"
-msgstr ""
+msgstr "כתובת הדוא\"ל הקודמת לא תקינה"
msgid "On this page"
msgstr "בעמוד הזה"
@@ -1331,16 +1412,19 @@ msgid "One person found"
msgstr "אדם אחד נמצא"
msgid "One public authority found"
-msgstr ""
+msgstr "נצמאה רשות ציבורית אחת"
+
+msgid "Only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL – don't worry about breaking URLs through renaming, as the history is used to redirect"
+msgstr "השתמשו רק בקיצורים שבאמת נמצאים בשימוש, אחרת השאירו ריק. השם הקצר והארוך ישמשו לבניית ה URL - אל תדאגו בקשר לשבירת קישורים ישנים בגלל שינוי השם. המידע ההיסטורי ישמש כדי להפנות לקישור החדש."
msgid "Only requests made using {{site_name}} are shown."
-msgstr ""
+msgstr "מוצגות רק בקשות שהוגשו באמצעות האתר {{site_name}}."
msgid "Only the authority can reply to this request, and I don't recognise the address this reply was sent from"
-msgstr ""
+msgstr "רק הרשות יכולה להשיב לבקשה זו, וכתובת הדוא\"ל ממנה נשלחה התגובה לא מזוהה במערכת"
msgid "Only the authority can reply to this request, but there is no \"From\" address to check against"
-msgstr ""
+msgstr "רק הרשות יכולה להשיב לבקשה זו, אבל לא קיימת כתובת דוא\"ל בשדה \"מאת\", שניתן לבדוק אותה"
msgid "Or search in their website for this information."
msgstr "או חפשו באתר שלהם למידע הזה."
@@ -1352,22 +1436,22 @@ msgid "Other:"
msgstr "אחר:"
msgid "Outgoing message"
-msgstr ""
+msgstr "הודעה יוצאת"
msgid "OutgoingMessage|Body"
-msgstr ""
+msgstr "OutgoingMessage|Body"
msgid "OutgoingMessage|Last sent at"
-msgstr ""
+msgstr "OutgoingMessage|Last נשלחה ב- "
msgid "OutgoingMessage|Message type"
-msgstr ""
+msgstr "OutgoingMessage|Message סוג"
msgid "OutgoingMessage|Status"
-msgstr ""
+msgstr "OutgoingMessage|Status"
msgid "OutgoingMessage|What doing"
-msgstr ""
+msgstr "OutgoingMessage|What מתבצע"
msgid "Partially successful."
msgstr "נכון חלקית."
@@ -1388,64 +1472,64 @@ msgid "People"
msgstr "אנשים"
msgid "People {{start_count}} to {{end_count}} of {{total_count}}"
-msgstr ""
+msgstr "מס' אנשים: {{start_count}} עד {{end_count}} מתוך {{total_count}}"
msgid "Photo of you:"
msgstr "תמונה שלך:"
msgid "Plans and administrative measures that affect these matters"
-msgstr ""
+msgstr "תוכניות וצעדים אדמיניסטרטיביים שמשפיעים על נושאים אלה"
msgid "Play the request categorisation game"
-msgstr ""
+msgstr "שחקו במשחק סיווג בקשות המידע"
msgid "Play the request categorisation game!"
-msgstr ""
+msgstr "שחקו במשחק סיווג בקשות המידע!"
msgid "Please"
msgstr "בבקשה"
-msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
-msgstr ""
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
+msgstr "נא <a href=\"{{url}}\">צרו איתנו קשר</a> שנוכל לטפל בכך."
msgid "Please <strong>answer the question above</strong> so we know whether the "
-msgstr ""
+msgstr "נא <strong>ענו על השאלה למעלה</strong> שנדע אם "
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 ""
+msgstr "<strong>חזרו לבקשות המידע הבאות</strong>, וספרו לנו\\n אם היה מידע בתגובות האחרונות להן."
msgid "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=\"{{new_request_link}}\">file a new request</a>."
-msgstr ""
+msgstr "נא כתבו <strong>רק</strong> הודעות ישירות הקשורות לבקשה שלכם {{request_link}}. אם תרצו לבקש מידע שלא ביקשתם בבקשה המקורית שלכם <a href=\"{{new_request_link}}\">הגישו בקשה חדשה</a>."
msgid "Please ask for environmental information only"
-msgstr ""
+msgstr "יש לבקש מידע סביבתי בלבד"
msgid "Please check the URL (i.e. the long code of letters and numbers) is copied\\ncorrectly from your email."
-msgstr ""
+msgstr "בדקו אם כתובת האינטרנט (i.e. המופיעה כצרוף של אותיות וספרות) הועתקה\\nנכון מהדוא\"ל שלכם."
msgid "Please choose a file containing your photo."
-msgstr ""
+msgstr "בחרו בקובץ התמונה שלכם"
msgid "Please choose what sort of reply you are making."
-msgstr ""
+msgstr "בחרו בסוג התגובה שאתם מכינים"
msgid "Please choose whether or not you got some of the information that you wanted."
-msgstr ""
+msgstr "בחרו האם קיבלתם כבר חלק מהמידע שאתם רוצים"
msgid "Please click on the link below to cancel or alter these emails."
msgstr "בבקשה הקליקו או "
msgid "Please click on the link below to confirm that you want to \\nchange the email address that you use for {{site_name}}\\nfrom {{old_email}} to {{new_email}}"
-msgstr ""
+msgstr "הקליקו על הקישור למטה כדי לאשר שאתם רוצים \\nלשנות את כתובת הדוא\"ל שלכם {{site_name}}\\nמ- {{old_email}} ל- {{new_email}}"
msgid "Please click on the link below to confirm your email address."
-msgstr ""
+msgstr "הקליקו על הקישור למטה לאישור כתובת הדוא\"ל שלכם"
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 ""
+msgstr "הוסיפו תיאור רחב יותר של הבקשה. אין צורך שתציינו שזו בקשה על-פי חוק חופש המידע. הדבר נעשה באופן אוטומטי."
msgid "Please don't upload offensive pictures. We will take down images\\n that we consider inappropriate."
-msgstr ""
+msgstr "אין לעלות תמונות פוגעות. תמונות כאלה יוסרו\\n על ידינו."
msgid "Please enable \"cookies\" to carry on"
msgstr "אנא אשרו שימוש ב\"עוגיות\" כדי להמשיך"
@@ -1463,7 +1547,7 @@ msgid "Please enter a valid email address"
msgstr "בבקשה הקלד כתובת דואר אלקטרוני נכונה"
msgid "Please enter the message you want to send"
-msgstr ""
+msgstr "הכניסו את ההודעה שאתם רוצים לשלוח"
msgid "Please enter the same password twice"
msgstr "בבקשה הקלידו את הסיסמה שוב"
@@ -1475,16 +1559,16 @@ msgid "Please enter your email address"
msgstr "בבקשה הקלד את הדואר האלקטרוני שלך"
msgid "Please enter your follow up message"
-msgstr ""
+msgstr "הכניסו את הודעת ההמשך שלכם"
msgid "Please enter your letter requesting information"
-msgstr ""
+msgstr "הכניסו את מכתב בקשת המידע שלכם"
msgid "Please enter your name"
msgstr "בבקשה הקלידו את שמכם"
msgid "Please enter your name, not your email address, in the name field."
-msgstr ""
+msgstr "הכניסו שם (לא כתובת דוא\"ל) בשדה המתאים"
msgid "Please enter your new email address"
msgstr "אנא הקלד את כתובת הדואר האלקטרוני החדשה שלך"
@@ -1496,34 +1580,31 @@ msgid "Please enter your password"
msgstr "אנא הקלד את הסיסמה שלך"
msgid "Please give details explaining why you want a review"
-msgstr ""
+msgstr "נא פרטו מדוע אתם מבקשים בדיקה"
msgid "Please keep it shorter than 500 characters"
msgstr "בבקשה הקפד על תקציר של פחות מ-500 תווים"
msgid "Please keep the summary short, like in the subject of an email. You can use a phrase, rather than a full sentence."
-msgstr ""
+msgstr "סכמו בקצרה, בדומה לנושא של הודעת דוא\"ל. השתמשו בביטויים ומשפטים קצרים. "
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 ""
+msgstr "הגישו בקשות רק למידע בקטגוריות הללו. <strong>אל תבזבזו את\\n זמנכם</strong> או את זמן הרשות, בבקשות של מידע שאיננו קשור."
msgid "Please select each of these requests in turn, and <strong>let everyone know</strong>\\nif they are successful yet or not."
-msgstr ""
+msgstr "אנא בחר כל אחת מהבקשות הבאות, <strong>וספר לכולם</strong>\\n האם הן הצליחו כבר או עדיין לא."
-msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature"
-msgstr ""
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
+msgstr "חתמו למטה בשמכם, או שנו את \"{{signoff}}\" החתימה"
msgid "Please sign in as "
-msgstr "בבקשה התחברו כ"
+msgstr "נא התחברו כ"
msgid "Please sign in or make a new account."
msgstr "תוכלו להתחבר או ליצור חשבון חדש."
msgid "Please type a message and/or choose a file containing your response."
-msgstr ""
-
-msgid "Please use the form below to tell us more."
-msgstr "בבקשה השתמש בטופס מתחת כדי לספר לנו עוד:"
+msgstr "כתבו את ההודעה ו/או בחרו בקובץ הבקשה שלכם"
msgid "Please use this email address for all replies to this request:"
msgstr "בבקשה השתמשו בכתובת המייל הבאה לתשובות עבור הבקשה הזו:"
@@ -1532,61 +1613,61 @@ msgid "Please write a summary with some text in it"
msgstr "אנא הקלידו תקציר עם טקסט כלשהוא"
msgid "Please write the summary using a mixture of capital and lower case letters. This makes it easier for others to read."
-msgstr ""
+msgstr "כתבו את הסיכום בצורה בהירה ומתומצתת."
msgid "Please write your annotation using a mixture of capital and lower case letters. This makes it easier for others to read."
-msgstr ""
+msgstr "כתבו את ההערות שלכם בצורה בהירה ומתומצתת."
msgid "Please write your follow up message containing the necessary clarifications below."
-msgstr ""
+msgstr "כתבו את בקשת ההמשך שלכם בצורה בהירה ומתומצתת."
msgid "Please write your message using a mixture of capital and lower case letters. This makes it easier for others to read."
-msgstr ""
+msgstr "כתבו את ההודעה בצורה בהירה ומתומצתת."
msgid "Point to <strong>related information</strong>, campaigns or forums which may be useful."
-msgstr ""
+msgstr "הצביעו על <strong>מידע שקשור</strong>, קמפיינים או פורומים שיוכלו לסייע."
msgid "Possibly related requests:"
-msgstr ""
+msgstr "אפשרות לבקשה קשורה:"
msgid "Post annotation"
msgstr "פרסם הערה"
msgid "Post redirect"
-msgstr ""
+msgstr "פרסם הפניה"
msgid "PostRedirect|Circumstance"
-msgstr ""
+msgstr "PostRedirect|Circumstance"
msgid "PostRedirect|Email token"
-msgstr ""
+msgstr "PostRedirect|Email אסימון"
msgid "PostRedirect|Post params yaml"
-msgstr ""
+msgstr "PostRedirect|Post params yaml"
msgid "PostRedirect|Reason params yaml"
-msgstr ""
+msgstr "PostRedirect|Reason params yaml"
msgid "PostRedirect|Token"
-msgstr ""
+msgstr "PostRedirect|Token"
msgid "PostRedirect|Uri"
-msgstr ""
+msgstr "PostRedirect|Uri"
msgid "Posted on {{date}} by {{author}}"
-msgstr ""
+msgstr "פורסם ב- {{date}} על-ידי {{author}}"
msgid "Powered by <a href=\"http://www.alaveteli.org/\">Alaveteli</a>"
-msgstr ""
+msgstr "נוצר על-ידי <a href=\"http://www.alaveteli.org/\">Alaveteli</a>"
msgid "Prev"
msgstr "הקודם"
msgid "Preview follow up to '"
-msgstr ""
+msgstr "צפייה מוקדמת של המשך של"
msgid "Preview new annotation on '{{info_request_title}}'"
-msgstr ""
+msgstr "צפייה מוקדמת בהערה על '{{info_request_title}}'"
msgid "Preview your annotation"
msgstr "תצוגה מקדימה של ההערה"
@@ -1595,208 +1676,196 @@ msgid "Preview your message"
msgstr "תצוגה מקדימה של ההודעה שלך"
msgid "Preview your public request"
-msgstr ""
+msgstr "צפה בבקשה הציבורית שלך"
msgid "Profile photo"
msgstr "תמונת פרופיל"
msgid "ProfilePhoto|Data"
-msgstr ""
+msgstr "ProfilePhoto|Data"
msgid "ProfilePhoto|Draft"
-msgstr ""
+msgstr "ProfilePhoto|Draft"
msgid "Public authorities"
-msgstr ""
+msgstr "רשויות ציבוריות"
msgid "Public authorities - {{description}}"
-msgstr ""
+msgstr "רשויות ציבוריות - {{description}}"
msgid "Public authorities {{start_count}} to {{end_count}} of {{total_count}}"
-msgstr ""
-
-msgid "Public body"
-msgstr ""
-
-msgid "Public body/translation"
-msgstr ""
-
-msgid "PublicBody::Translation|Disclosure log"
-msgstr ""
-
-msgid "PublicBody::Translation|First letter"
-msgstr ""
+msgstr "רשויות ציבוריות {{start_count}} עד {{end_count}} מתוך {{total_count}}"
-msgid "PublicBody::Translation|Locale"
-msgstr ""
-
-msgid "PublicBody::Translation|Name"
-msgstr ""
+msgid "Public authority – {{name}}"
+msgstr "רשות ציבורית – {{name}}"
-msgid "PublicBody::Translation|Notes"
-msgstr ""
-
-msgid "PublicBody::Translation|Publication scheme"
-msgstr ""
+msgid "Public body"
+msgstr "גוף ציבורי"
-msgid "PublicBody::Translation|Request email"
-msgstr ""
+msgid "Public notes"
+msgstr "רשימות ציבוריות"
-msgid "PublicBody::Translation|Short name"
-msgstr ""
+msgid "Public page"
+msgstr "דף ציבורי"
-msgid "PublicBody::Translation|Url name"
-msgstr ""
+msgid "Public page not available"
+msgstr "הדף הציבורי לא זמין"
msgid "PublicBody|Api key"
-msgstr ""
+msgstr "PublicBody|Api key"
msgid "PublicBody|Disclosure log"
-msgstr ""
+msgstr "PublicBody|Disclosure log"
msgid "PublicBody|First letter"
-msgstr ""
+msgstr "PublicBody|First מכתב"
msgid "PublicBody|Home page"
-msgstr ""
+msgstr "PublicBody|Home עמ'"
msgid "PublicBody|Info requests count"
-msgstr ""
+msgstr "גוף ציבורי|מספר הבקשות שהוגשו"
msgid "PublicBody|Last edit comment"
-msgstr ""
+msgstr "PublicBody|Last ערכו הערה"
msgid "PublicBody|Last edit editor"
-msgstr ""
+msgstr "PublicBody|Last עריכה עורך"
msgid "PublicBody|Name"
-msgstr ""
+msgstr "PublicBody|Name"
msgid "PublicBody|Notes"
-msgstr ""
+msgstr "PublicBody|Notes"
msgid "PublicBody|Publication scheme"
-msgstr ""
+msgstr "PublicBody|Publication תוכנית"
msgid "PublicBody|Request email"
-msgstr ""
+msgstr "PublicBody|Request דוא\"ל"
msgid "PublicBody|Short name"
-msgstr ""
+msgstr "PublicBody|Short שם"
msgid "PublicBody|Url name"
-msgstr ""
+msgstr "PublicBody|Url שם"
msgid "PublicBody|Version"
-msgstr ""
+msgstr "PublicBody|Version"
msgid "Publication scheme"
-msgstr ""
+msgstr "תוכנית פרסום"
+
+msgid "Publication scheme URL"
+msgstr "כתובת תוכנית פרסומים"
msgid "Purge request"
-msgstr ""
+msgstr "נקה בקשה"
msgid "PurgeRequest|Model"
-msgstr ""
+msgstr "PurgeRequest|Model"
msgid "PurgeRequest|Url"
-msgstr ""
+msgstr "PurgeRequest|Url"
msgid "RSS feed"
msgstr "ערוץ RSS"
msgid "RSS feed of updates"
-msgstr ""
+msgstr "עדכוני RSS (ר.ס.ס.)"
msgid "Re-edit this annotation"
-msgstr ""
+msgstr "ערוך מחדש הערה זו"
msgid "Re-edit this message"
msgstr "ערכו מחדש "
msgid "Read about <a href=\"{{advanced_search_url}}\">advanced search operators</a>, such as proximity and wildcards."
-msgstr ""
+msgstr "קרא על <a href=\"{{advanced_search_url}}\">אופרטורים לחיפוש מתקדם</a>, כקרבה וסימנים כלליים (Wildcards)."
msgid "Read blog"
-msgstr "קראו את הבלוג"
+msgstr "בלוג"
msgid "Received an error message, such as delivery failure."
-msgstr ""
+msgstr "התקבלה הודעת שגיאה, כגון, שגיאת מסירה"
msgid "Recently described results first"
-msgstr ""
+msgstr "תוצאות אחרונות מופיעות ראשונות"
msgid "Refused."
-msgstr ""
+msgstr "סורב"
msgid "Remember me</label> (keeps you signed in longer;\\n do not use on a public computer) "
-msgstr ""
+msgstr "זכור אותנו</label> (תוכלו להיכנס ללא הקשת הסיסמה;\\n אין לסמן אפשרות זו במחשב ציבורי) "
msgid "Report abuse"
-msgstr ""
+msgstr "דיווח על שימוש לרעה"
msgid "Report an offensive or unsuitable request"
-msgstr ""
+msgstr "דווחו על בקשה לא מתאימה או פוגענית"
msgid "Report this request"
-msgstr ""
+msgstr "דווחו על בקשה זו"
msgid "Reported for administrator attention."
-msgstr ""
+msgstr "דווח לטיפול מנהל."
msgid "Request an internal review"
-msgstr ""
+msgstr "לבקש לבדיקה פנימית"
msgid "Request an internal review from {{person_or_body}}"
-msgstr ""
+msgstr "בקשה לבדיקה פנימית מ- {{person_or_body}}"
+
+msgid "Request email"
+msgstr "בקשת דוא\"ל"
msgid "Request has been removed"
-msgstr ""
+msgstr "הבקשה הוסרה"
msgid "Request sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
-msgstr ""
+msgstr "הבקשה נשלחה ל- {{public_body_name}} על-ידי {{info_request_user}} בתאריך {{date}}."
msgid "Request to {{public_body_name}} by {{info_request_user}}. Annotated by {{event_comment_user}} on {{date}}."
-msgstr ""
+msgstr "בקשה ל{{public_body_name}} הוגשה ע\"י {{info_request_user}}. תגובות ע\"י {{event_comment_user}} בתאריך {{date}}."
msgid "Requested from {{public_body_name}} by {{info_request_user}} on {{date}}"
-msgstr ""
+msgstr "בקשה מ{{public_body_name}} ע\"י {{info_request_user}} בתאריך {{date}}"
msgid "Requested on {{date}}"
-msgstr ""
+msgstr "הוגשה בתאריך {{date}}"
msgid "Requests for personal information and vexatious requests are not considered valid for FOI purposes (<a href=\"/help/about\">read more</a>)."
-msgstr ""
+msgstr "בקשות למידע אישי ובקשות מטרידות אינן קבילות עבור מטרות חוק חופש המידע."
msgid "Requests or responses matching your saved search"
-msgstr ""
+msgstr "בקשות או תגובות המתאימות לחיפוש השמור שלך."
msgid "Respond by email"
-msgstr ""
+msgstr "הגיבו בדוא\"ל"
msgid "Respond to request"
-msgstr ""
+msgstr "להגיב לבקשה"
msgid "Respond to the FOI request"
-msgstr ""
+msgstr "הגיבו לבקשת חופש המידע"
msgid "Respond using the web"
-msgstr ""
+msgstr "הגיבו דרך הרשת"
msgid "Response"
-msgstr ""
+msgstr "תגובה"
msgid "Response from a public authority"
-msgstr ""
+msgstr "תגובה מראשות ציבורית"
msgid "Response to '{{title}}'"
-msgstr ""
+msgstr "תגובה ל'{{title}}'"
msgid "Response to this request is <strong>delayed</strong>."
-msgstr ""
+msgstr "התגובה לבקשה זו <strong>מתעכבת</strong>."
msgid "Response to this request is <strong>long overdue</strong>."
-msgstr ""
+msgstr "התגובה לבקשה זו <strong>מתאחרת מאוד</strong>."
msgid "Response to your request"
msgstr "תגובה לבקשה שלך"
@@ -1805,10 +1874,10 @@ msgid "Response:"
msgstr "תגובה:"
msgid "Restrict to"
-msgstr ""
+msgstr "מוגבל ל- "
msgid "Results page {{page_number}}"
-msgstr ""
+msgstr "דף תוצאות {{page_number}}"
msgid "Save"
msgstr "שמירה"
@@ -1817,57 +1886,60 @@ msgid "Search"
msgstr "חיפוש"
msgid "Search Freedom of Information requests, public authorities and users"
-msgstr ""
+msgstr "חפש בקשות על-פי חוק חופש המידע, רשויות ציבוריות ומשתמשים"
msgid "Search contributions by this person"
-msgstr ""
+msgstr "חפש תוספות של אדם זה"
msgid "Search for words in:"
msgstr "חיפוש אחר המילים ב:"
msgid "Search in"
-msgstr ""
+msgstr "חפש ב- "
msgid "Search over<br/>\\n <strong>{{number_of_requests}} requests</strong> <span>and</span><br/>\\n <strong>{{number_of_authorities}} authorities</strong>"
-msgstr ""
+msgstr "חפשו במאגר של<br/><strong>{{number_of_requests}} בקשות</strong> <span>שנשלחו אל</span><br/>\\n <strong>{{number_of_authorities}} רשויות</strong>"
msgid "Search queries"
msgstr "שאילתות חיפוש"
msgid "Search results"
-msgstr ""
+msgstr "תוצאות החיפוש "
msgid "Search the site to find what you were looking for."
-msgstr ""
+msgstr "חפש באתר"
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
-msgstr[0] ""
-msgstr[1] ""
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests made to {{public_body_name}}"
+msgstr[0] "חפש בקשות מידע מבין {{count}} שנמסרה אל {{public_body_name}}"
+msgstr[1] "חפש בקשות מידע מבין {{count}} שנמסרו אל {{public_body_name}}"
msgid "Search your contributions"
-msgstr ""
+msgstr "חפש בין התוספות שלך"
+
+msgid "See bounce message"
+msgstr "ראו הודעת תגובה"
msgid "Select one to see more information about the authority."
-msgstr ""
+msgstr "ביחרו את אחד הגופים מן הרשימה על מנת לקבל עליו מידע נוסף."
msgid "Select the authority to write to"
-msgstr ""
+msgstr "בחרו את הראשות שתרצו לכתוב אליה"
msgid "Send a followup"
-msgstr ""
+msgstr "לשלוח הודעת המשך"
msgid "Send a message to "
msgstr "שלחו הודעה אל"
msgid "Send a public follow up message to {{person_or_body}}"
-msgstr ""
+msgstr "שלחו הודעת המשך ציבורית ל{{person_or_body}}"
msgid "Send a public reply to {{person_or_body}}"
-msgstr ""
+msgstr "שלחו תגובה ציבורית ל{{person_or_body}}"
msgid "Send follow up to '{{title}}'"
-msgstr ""
+msgstr "שלח בקשת מעקב ל'{{request_title}}'"
msgid "Send message"
msgstr "שלחו הודעה"
@@ -1876,37 +1948,40 @@ msgid "Send message to "
msgstr "שלחו הודעה"
msgid "Send request"
-msgstr ""
+msgstr "שלחו בקשה"
msgid "Set your profile photo"
-msgstr ""
+msgstr "הגדירו תמונת פרופיל"
+
+msgid "Short name"
+msgstr "שם קצר"
msgid "Short name is already taken"
msgstr "השם הקצר כבר תפוס"
msgid "Show most relevant results first"
-msgstr ""
+msgstr "הצג תוצאות רלוונטיות ראשונות"
msgid "Show only..."
msgstr "הצג רק..."
msgid "Showing"
-msgstr ""
+msgstr "תצוגה"
msgid "Sign in"
-msgstr "התחבר"
+msgstr "התחברו"
msgid "Sign in or make a new account"
-msgstr "התחבר או צור חשבון חדש"
+msgstr "התחברו או צרו חשבון חדש"
msgid "Sign in or sign up"
-msgstr "התחבר או הירשם"
+msgstr "היכנסו או הירשמו"
msgid "Sign out"
msgstr "התנתק"
msgid "Sign up"
-msgstr "התחבר"
+msgstr "הרשמה"
msgid "Similar requests"
msgstr "בקשות דומות"
@@ -1915,13 +1990,13 @@ msgid "Simple search"
msgstr "חיפוש פשוט"
msgid "Some notes have been added to your FOI request - "
-msgstr ""
+msgstr "התווספו הערות לבקשת חופש המידע שלך"
msgid "Some of the information requested has been received"
-msgstr ""
+msgstr "חלק מהמידע המבוקש התקבל"
msgid "Some people who've made requests haven't let us know whether they were\\nsuccessful or not. We need <strong>your</strong> help &ndash;\\nchoose one of these requests, read it, and let everyone know whether or not the\\ninformation has been provided. Everyone'll be exceedingly grateful."
-msgstr ""
+msgstr "חלק מהאנשים אשר הגישו בקשות לא עדכנו האם הן הצליחו או לא. \\n אנו <strong>זקוקים לעזרתך</strong> -\\n בחר באחת מהבקשות, קרא אותה, ואפשר לכולם לדעת האם המידע סופק. \\n כולנו נהיה אסירי תודה."
msgid "Somebody added a note to your FOI request - "
msgstr "התווספה הערה לבקשת חוק חופש המידע שלך"
@@ -1930,13 +2005,13 @@ msgid "Someone has updated the status of your request"
msgstr "מישהו עדכן את הססטוס של הדרישה שלך"
msgid "Someone, perhaps you, just tried to change their email address on\\n{{site_name}} from {{old_email}} to {{new_email}}."
-msgstr ""
+msgstr "אתם או משיהו אחר ביקש לשנות את כתובת הדוא\"ל באתר\\n{{site_name}} מ- {{old_email}} ל- {{new_email}}."
msgid "Sorry - you cannot respond to this request via {{site_name}}, because this is a copy of the request originally at {{link_to_original_request}}."
-msgstr ""
+msgstr "מצטערים, לא תוכל להגיב על בקשה זו דרך {{site_name}}, מכיוון שזהו עותק של הבקשה המקורית שמופיע כאן: {{link_to_original_request}}."
msgid "Sorry, but only {{user_name}} is allowed to do that."
-msgstr ""
+msgstr "מצטערים, אבל רק {{user_name}} מורשה לעשות את זה."
msgid "Sorry, there was a problem processing this page"
msgstr "מצטערים, היתה בעיה בהצעת הדף הזה"
@@ -1945,22 +2020,22 @@ msgid "Sorry, we couldn't find that page"
msgstr "מצטערים, אנחנו לא יכולים למצוא את הדף המבוקש"
msgid "Special note for this authority!"
-msgstr ""
+msgstr "הערה מיוחדת לרשות זו"
msgid "Start"
-msgstr "התחל"
+msgstr "התחילו"
msgid "Start now &raquo;"
-msgstr "התחל עכשיו &raquo;"
+msgstr "התחילו עכשיו &raquo;"
msgid "Start your own blog"
-msgstr "התחל את הבלוג שלך"
+msgstr "צרו את הבלוג שלכם"
msgid "Stay up to date"
msgstr "הישאר מעודכן"
msgid "Still awaiting an <strong>internal review</strong>"
-msgstr ""
+msgstr "עדיין בהמתנה <strong>לבדיקה פנימית</strong>"
msgid "Subject"
msgstr "נושא"
@@ -1974,17 +2049,20 @@ msgstr "שלח"
msgid "Submit status"
msgstr "הצג סטטוס"
+msgid "Submit status and send message"
+msgstr "רשמו מצב ושלחו הודעה"
+
msgid "Subscribe to blog"
-msgstr "הירשם לבלוג"
+msgstr "הירשמו לבלוג"
msgid "Successful Freedom of Information requests"
-msgstr ""
+msgstr "בקשות מידע שנענו"
msgid "Successful."
msgstr "עבר בהצלחה."
msgid "Suggest how the requester can find the <strong>rest of the information</strong>."
-msgstr ""
+msgstr "הציעו כיצד מגיש הבקשה יכול למצוא את <strong>שאר המידע</strong>."
msgid "Summary:"
msgstr "תקציר:"
@@ -1993,10 +2071,13 @@ msgid "Table of statuses"
msgstr "טבלת סטטוסים"
msgid "Table of varieties"
-msgstr ""
+msgstr "טבלת משתנים"
+
+msgid "Tags"
+msgstr "תגיות"
msgid "Tags (separated by a space):"
-msgstr ""
+msgstr "תגיות (רווח בין תגית לתגית)"
msgid "Tags:"
msgstr "תגיות:"
@@ -2005,16 +2086,16 @@ msgid "Technical details"
msgstr "פרטים טכניים"
msgid "Thank you for helping us keep the site tidy!"
-msgstr ""
+msgstr "תודה שעזרתם לנו לשמור על אתר מאורגן"
msgid "Thank you for making an annotation!"
msgstr "תודה על ההערה שהוספתם!"
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 ""
+msgstr "תודה על תגובתכם לבקשת חוק חופש המידע זו. תגובתכם פורסמה למטה וקישור אליה נשלח לתיבת הדוא\"ל שלכם."
msgid "Thank you for updating the status of the request '<a href=\"{{url}}\">{{info_request_title}}</a>'. There are some more requests below for you to classify."
-msgstr ""
+msgstr "תודה שעדכנתם את מצב הבקשה '<a href=\"{{url}}\">{{info_request_title}}</a>'. למטה תוכלו למצוא בקשות נוספות שממתינות לסיווג."
msgid "Thank you for updating this request!"
msgstr "תודה על עדכון הבקשה!"
@@ -2022,314 +2103,326 @@ msgstr "תודה על עדכון הבקשה!"
msgid "Thank you for updating your profile photo"
msgstr "תודה על עדכון תמונת הפרופיל"
+msgid "Thank you! We'll look into what happened and try and fix it up."
+msgstr "תודה רבה! נבדוק מה קרה וננסה לתקן זאת"
+
msgid "Thanks for helping - your work will make it easier for everyone to find successful\\nresponses, and maybe even let us make league tables..."
-msgstr ""
+msgstr "תודה על העזרה - העזרה שלך תסייע לכולם למצוא בקשות שנענו."
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 ""
+msgstr "תודה רבה, זה יעזור לאחרים למצוא מידע בצורה יעילה יותר.\\n נוכל גם לתת לכם טיפים, מה לעשות בשלב הבא של הגשת הבקשות\\n שלכם."
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 ""
+msgstr "תודה שסייעתם לשמור על <strong>בהירות וארגון</strong>.\\n נוכל גם לתת לכם טיפים, מה לעשות לגבי כל אחת מהבקשות\\n שלכם."
msgid "That doesn't look like a valid email address. Please check you have typed it correctly."
-msgstr ""
+msgstr "כתובת הדוא\"ל לא חוקית. נא בידקו אותה שנית."
msgid "The <strong>review has finished</strong> and overall:"
-msgstr ""
+msgstr "<strong>הבחינה הסתיימה</strong> ובסך הכל:"
msgid "The Freedom of Information Act <strong>does not apply</strong> to"
-msgstr ""
+msgstr "חוק חופש המידע <strong>אינו חל</strong> על"
msgid "The accounts have been left as they previously were."
-msgstr ""
+msgstr "החשבונות נשארו ללא שינוי."
msgid "The authority do <strong>not have</strong> the information <small>(maybe they say who does)"
-msgstr ""
+msgstr "לרשות <strong>אין</strong> את המידע <small>(אולי הם אומרים למי כן יש)"
msgid "The authority only has a <strong>paper copy</strong> of the information."
-msgstr ""
+msgstr "לרשות יש רק <strong>עותק קשיח</strong> של המידע."
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 ""
+msgstr "הרשות מבקשת <strong>כתובת\\n דואר</strong>, ולא רק כתובת דוא\"ל, כדי להגיש בקשת מידע רשמית."
msgid "The authority would like to / has <strong>responded by post</strong> to this request."
-msgstr ""
+msgstr "הרשות רוצה להגיב / כבר הגיבה <strong>בדואר ררגיל</strong> לבקשה הזאת."
msgid "The email that you, on behalf of {{public_body}}, sent to\\n{{user}} to reply to an {{law_used_short}}\\nrequest has not been delivered."
-msgstr ""
+msgstr "הדוא\"ל ששלחתם בשם {{public_body}}, ל- \\n{{user}} כדי להגיב על בקשת {{law_used_short}}\\nלא נמסר."
msgid "The page doesn't exist. Things you can try now:"
-msgstr ""
+msgstr "הדף לא קיים. דברים שתוכלו לנסות כעת:"
msgid "The public authority does not have the information requested"
-msgstr ""
+msgstr "לרשות הציבורית אין את המידע המבוקש"
msgid "The public authority would like part of the request explained"
-msgstr ""
+msgstr "הרשות הציבורית רוצה הסברים נוספים לחלק מהבקשה"
msgid "The public authority would like to / has responded by post"
-msgstr ""
+msgstr "הרשות הציבורית רוצה להגיב / כבר הגיבה בדואר ררגיל"
msgid "The request has been <strong>refused</strong>"
-msgstr ""
+msgstr "הבקשה <strong>סורבה</strong>"
msgid "The request has been updated since you originally loaded this page. Please check for any new incoming messages below, and try again."
-msgstr ""
+msgstr "הבקשה עודכנה מאז נכנסתם לדף זה. בדקו אם יש הודעות חדשות למטה ונסו שנית."
msgid "The request is <strong>waiting for clarification</strong>."
-msgstr ""
+msgstr "בקשה זו <strong>ממתינה להבהרות נוספות</strong>."
msgid "The request was <strong>partially successful</strong>."
-msgstr ""
+msgstr "הבקשה <strong>נענתה באופן חלקי</strong>."
msgid "The request was <strong>refused</strong> by"
-msgstr ""
+msgstr "הבקשה <strong>סורבה</strong> על-ידי"
msgid "The request was <strong>successful</strong>."
-msgstr ""
+msgstr "הבקשה <strong>נענתה</strong>."
msgid "The request was refused by the public authority"
-msgstr ""
+msgstr "הבקשה סורבה על-ידי רשות ציבורית"
-msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"%s\">contact us</a> if you have any questions."
-msgstr ""
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
+msgstr "הבקשה בה ניסיתם לצפות נמחקה. יש\\nמגוון סיבות לצעד כזה ולצערנו לא נוכל לפרט. נא <a\\n href=\"{{url}}\">צרו איתנו קשר</a>אם יש לכם שאלות."
msgid "The requester has abandoned this request for some reason"
-msgstr ""
+msgstr "מגיש הבקשה נסוג ממנה מסיבה כלשהי"
-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 ""
+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 "התגובה לבקשתכם <strong>התעכבה</strong>. תוכלו לומר, \\n שעל-פי החוק הרשות היתה צריכה כבר להגיב בדרך כלל\\n <strong>מייד</strong> ו- "
-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 ""
+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 "התשובה לשאלתך <strong>מ אחרת להגיע</strong>. תוכלו לומר כי על פי חוק \\n הרשות היתה צריכה להגיב זה מכבר \\n "
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 ""
+msgstr "מנוע החיפוש לא זמין כרגע, לכן לא תוכלו לצפות בבקשות מידע שהוגשו לרשות זו."
msgid "The search index is currently offline, so we can't show the Freedom of Information requests this person has made."
+msgstr "מנוע החיפוש לא זמין כרגע, לכן לא תוכלו לצפות בבקשות מידע של אדם זה."
+
+msgid "The {{site_name}} team."
msgstr ""
msgid "Then you can cancel the alert."
-msgstr ""
+msgstr "אתם יכולים לבטל את האתרעה."
msgid "Then you can cancel the alerts."
-msgstr ""
+msgstr "אתם יכולים לבטל את ההתרעות."
msgid "Then you can change your email address used on {{site_name}}"
-msgstr ""
+msgstr "אז אתם יכולים לשנות את כתובת הדוא\"ל שלכם ב- {{site_name}}"
msgid "Then you can change your password on {{site_name}}"
-msgstr ""
+msgstr "אז תוכלו לשנות את הסיסמה שלכם באתר {{site_name}}"
msgid "Then you can classify the FOI response you have got from "
-msgstr ""
+msgstr "אז תוכלו לסווג את תגובת בקשת המידע שקיבלתם מ- "
msgid "Then you can download a zip file of {{info_request_title}}."
-msgstr ""
+msgstr "אז תוכלו להוריד קובץ ZIP של {{info_request_title}}."
msgid "Then you can log into the administrative interface"
-msgstr ""
+msgstr "לאחר מכן תוכלו להתחבר לממשק הניהול"
msgid "Then you can play the request categorisation game."
-msgstr ""
+msgstr "אז תוכלו לשחק במשחק סיווג הבקשות"
msgid "Then you can report the request '{{title}}'"
-msgstr ""
+msgstr "לאחר מכן תוכלו לדווח על הבקשה '{{title}}'"
msgid "Then you can send a message to "
-msgstr ""
+msgstr "אז תוכלו לשלוח הודעה ל- "
msgid "Then you can sign in to {{site_name}}"
-msgstr ""
+msgstr "אז תוכלו להיכנס לאתר {{site_name}}"
msgid "Then you can update the status of your request to "
-msgstr ""
+msgstr "אז תוכלו לעדכן את מצב הבקשה שלכם ל- "
msgid "Then you can upload an FOI response. "
-msgstr ""
+msgstr "אז תוכלו להעלות בקשת מידע"
msgid "Then you can write follow up message to "
-msgstr ""
+msgstr "אז תוכלו לרשום הודעת מעקב ל- "
msgid "Then you can write your reply to "
-msgstr ""
+msgstr "אז תוכלו לכתוב את התגובה שלכם ל- "
msgid "Then you will be following all new FOI requests."
-msgstr ""
+msgstr "לאחר מכן תעקוב אחר כל בקשות חוק חופש המידע החדשות."
msgid "Then you will be notified whenever '{{user_name}}' requests something or gets a response."
-msgstr ""
+msgstr "לאחר מכן תקבלו התרעה כאשר '{{user_name}}' מגיש בקשה או מקבל תגובה."
msgid "Then you will be notified whenever a new request or response matches your search."
-msgstr ""
+msgstr "לאחר מכן תקבלו התרעה כאשר בקשה חדשה או תגובה תואמת את החיפוש."
msgid "Then you will be notified whenever an FOI request succeeds."
-msgstr ""
+msgstr "לאחר מכן תקבל הודעה כאשר בקשה לפי חוק חופש המידע מאושרת."
msgid "Then you will be notified whenever someone requests something or gets a response from '{{public_body_name}}'."
-msgstr ""
+msgstr "לאחר תקבלו התרעה כאשר מישהו מקבל תגובה או מגיש בקשה עבור '{{public_body_name}}'."
msgid "Then you will be updated whenever the request '{{request_title}}' is updated."
-msgstr ""
+msgstr "לאחר מכן תקבלו עדכון כאשר הבקשה '{{request_title}}' מתעדכנת."
msgid "Then you'll be allowed to send FOI requests."
-msgstr ""
+msgstr "אז תורשו לשלוח בקשות מידע"
msgid "Then your FOI request to {{public_body_name}} will be sent."
-msgstr ""
+msgstr "אז תישלח בקשת המידע שלכם ל- {{public_body_name}}."
msgid "Then your annotation to {{info_request_title}} will be posted."
-msgstr ""
+msgstr "אז תפורסם ההערה שלכם ל- {{info_request_title}} ."
msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
-msgstr ""
-
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "ישנן {{count}} הערות חדשות על בקשת ה- {{info_request}} שלכם. הקליקו על קישור זה לראות אותן."
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 ""
+msgstr "יש <strong>יותר מאדם אחד</strong> המשתמש במערכת בשם זה.\\n אחד מהם מופיע כאן, יתכן ואתה מתכוון לשם אחר:"
msgid "There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>."
-msgstr ""
+msgstr "מספר הבקשות שניתן להגיש ביום מוגבל, כי אנו לא רוצים להציף את הרשויות הציבוריות בבקשות שווא. אם אתם רוצים להגדיל את המספר המותר, <a href='{{help_contact_path}}'>צרו קשר</a>."
+
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
+msgstr[0] "עוקב אחר הבקשה הזו אדם {{count}}"
+msgstr[1] "עוקבים אחר הבקשה הזו {{count}} אנשים"
msgid "There was a <strong>delivery error</strong> or similar, which needs fixing by the {{site_name}} team."
-msgstr ""
+msgstr "היתה <strong>תקלה במסירה</strong> שדורשת טיפול על-ידי אנשי {{site_name}}."
msgid "There was an error with the words you entered, please try again."
-msgstr ""
+msgstr "יש שגיאה בטקסט שהכנסתם. נסו שנית."
msgid "There were no requests matching your query."
-msgstr ""
+msgstr "אין בקשות התואמות את שאילתת החיפוש שלכם"
msgid "There were no results matching your query."
msgstr "אין תוצאות שמתאימות לחיפוש שלך."
msgid "They are going to reply <strong>by post</strong>"
-msgstr ""
+msgstr "הם עומדים להשיב <strong>בפוסט</strong>"
msgid "They do <strong>not have</strong> the information <small>(maybe they say who does)</small>"
-msgstr ""
+msgstr " <strong>אין להם</strong> את המידע <small>(ייתכן והם יאמרו למי יש אותו)</small>"
msgid "They have been given the following explanation:"
-msgstr ""
+msgstr "ניתן להם ההסבר הבא:"
msgid "They have not replied to your {{law_used_short}} request {{title}} promptly, as normally required by law"
-msgstr ""
+msgstr "הם לא השיבו {{law_used_short}} לבקשתכם {{title}} מייד, כפי שקבוע בחוק"
msgid "They have not replied to your {{law_used_short}} request {{title}}, \\nas required by law"
-msgstr ""
+msgstr "לא התקבלה תגובה לבקשת {{title}} לפי חוק {{law_used_short}, \\nפי שקבוע בחוק."
msgid "Things to do with this request"
-msgstr ""
+msgstr "דברים שניתן לעשות עם הבקשה"
msgid "Things you're following"
-msgstr ""
+msgstr "דברים אחריהם אתם עוקבים"
msgid "This authority no longer exists, so you cannot make a request to it."
-msgstr ""
+msgstr "רשות זו לא קיימת כבר, לכן לא ניתן להגיש לה בקשה."
-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 ""
+msgid "This comment has been hidden. See annotations to\\n find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
+msgstr "תגובה זו הוסתרה. תוכלו לבדוק בהערות כדי לגלות\\n מדוע. אם אתם המבקשים, תוכלו <a href=\"{{url}}\">להיכנס למערכת</a> כדי לראות את התגובה."
msgid "This covers a very wide spectrum of information about the state of\\n the <strong>natural and built environment</strong>, such as:"
-msgstr ""
+msgstr "דבר זה מכסה מנעד רחב של מידע על מצב\\n <strong>הסביבה הטבעית והבנויה</strong>, כגון:"
msgid "This external request has been hidden"
-msgstr ""
+msgstr "בקשה חיצונית זו הוסתרה"
msgid "This is a plain-text version of the Freedom of Information request \"{{request_title}}\". The latest, full version is available online at {{full_url}}"
-msgstr ""
+msgstr "זוהי גרסת טקסט של בקשת המידע \"{{request_title}}\". הגרסה האחרונה, המלאה, זמינה ברשת בכתובת {{full_url}}"
msgid "This is an HTML version of an attachment to the Freedom of Information request"
-msgstr ""
+msgstr "זו גרסת HTML של נספח לבקשת המידע "
msgid "This is because {{title}} is an old request that has been\\nmarked to no longer receive responses."
-msgstr ""
+msgstr "מצב זה קורה מכיוון ש{{title}} היא בקשה ישנה\\n שלא מקבלת תגובות יותר."
+
+msgid "This is the first version."
+msgstr "זוהי הגרסה הראשונה"
msgid "This is your own request, so you will be automatically emailed when new responses arrive."
-msgstr ""
+msgstr "זו בקשה שלכם, כך שתקבלו דוא\"ל מייד כשיגיעו תגובות חדשות."
-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 ""
+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=\"{{url}}\">sign in</a> to view the response."
+msgstr "ההודעה היוצאת הזו הוסתרה. ראה הערות ל\\n»»»»»» כדי לגלות מדוע. אם אתם המבקשים, תוכלו <a href=\"{{url}}\">להיכנס למערכת</a> כדי לראות את התגובה."
msgid "This particular request is finished:"
-msgstr ""
+msgstr "הטיפול בבקשה זו הסתיים"
msgid "This person has made no Freedom of Information requests using this site."
-msgstr ""
+msgstr "אדם זה טרם הגיש בקשות מידע באמצעות אתר זה"
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
-msgstr[0] ""
-msgstr[1] ""
+msgid "This person's annotations"
+msgstr "הערות של אדם זה"
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
-msgstr[0] ""
-msgstr[1] ""
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
+msgstr[0] "בקשת מידע {{count}} של אדם זה"
+msgstr[1] "{{count}} בקשות מידע של אדם זה"
-msgid "This person's annotations"
-msgstr ""
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
+msgstr[0] "הערה {{count}} של אדם זה"
+msgstr[1] "{{count}} הערות של אדם זה"
msgid "This request <strong>requires administrator attention</strong>"
-msgstr ""
+msgstr "בקשה זו <strong>מצריכה טיפול מנהל</strong>"
msgid "This request has already been reported for administrator attention"
-msgstr ""
+msgstr "בקשה זו כבר דווחה לטיפול מנהל"
msgid "This request has an <strong>unknown status</strong>."
-msgstr ""
+msgstr "לבקשה זו <strong>סטטוס לא ידוע</strong>."
msgid "This request has been <strong>hidden</strong> from the site, because an administrator considers it not to be an FOI request"
-msgstr ""
+msgstr "בקשה זו <strong>מוסתרת</strong> מהאתר, מכיוון שמנהל סבור שהיא אינה על פי חוק חופש המידע"
msgid "This request has been <strong>hidden</strong> from the site, because an administrator considers it vexatious"
-msgstr ""
+msgstr "בקשה זו <strong>מוסתרת</strong> מהאתר, מכיוון שמנהל סבור שהיא מרגיזה"
msgid "This request has been <strong>reported</strong> as needing administrator attention (perhaps because it is vexatious, or a request for personal information)"
-msgstr ""
+msgstr "הבקשה <strong>דווחה</strong> כזקוקה לתשומת לב של מנהלי האתר (יתכן שהיא בלתי מוצדקת, או כוללת דרישה למידע אישי)"
msgid "This request has been <strong>withdrawn</strong> by the person who made it.\\n There may be an explanation in the correspondence below."
-msgstr ""
+msgstr "בקשה זו <strong>הוסרה</strong> ע\"י האדם שהגיש אותה.\\n יכול להיות שיהיה לכך הסבר בהתכתבות שלהלן. "
-msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"%s\">contact us</a>."
-msgstr ""
+msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"{{url}}\">contact us</a>."
+msgstr "בקשה זו שומנה כמועמדת לביקורת של מנהלי האתר. לאחר שנבדקה החלטנו שלא להסתיר את בקשה זו כעת. אם אתם סבורים כי יש להסתיר את בקשה זו, אנא please <a href=\"{{url}}\">צרו קשר</a>."
msgid "This request has been reported for administrator attention"
-msgstr ""
+msgstr "בקשה זו דווחה לטיפול מנהל"
msgid "This request has been set by an administrator to \"allow new responses from nobody\""
-msgstr ""
+msgstr "בקשה זו סווגה על-יד מנהל כ\"ללא אפשרות תגובה\""
msgid "This request has had an unusual response, and <strong>requires attention</strong> from the {{site_name}} team."
-msgstr ""
+msgstr "בקשה זו קיבלה תגובה יוצאת דופן <strong>המצריכה את תשומת לב</strong>אנשי האתר {{site_name}} team."
msgid "This request has prominence 'hidden'. You can only see it because you are logged\\n in as a super user."
-msgstr ""
+msgstr "הבקשה סומנה כ'נסתרת'. אתה יכול לראות אותה רק מכיוון שאתה מחוברn\\ כמנהל"
-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 ""
+msgid "This request is hidden, so that only you the requester can see it. Please\\n <a href=\"{{url}}\">contact us</a> if you are not sure why."
+msgstr "בקשה זו הוסתרה, כך שרק המבקש יכול לראות אותה.\\n <a href=\"{{url}}\">צור קשר</a> אם אינך בטוח מדוע מזה כך. "
msgid "This request is still in progress:"
-msgstr ""
+msgstr "בקשה זו עדיין מטופלת:"
+
+msgid "This request requires administrator attention"
+msgstr "בקשה זו נדרשת לבדיקת סמכות ניהולית"
msgid "This request was not made via {{site_name}}"
-msgstr ""
+msgstr "בקשה זו לא בוצעה דרך {{site_name}}"
-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 ""
+msgid "This response has been hidden. See annotations to find out why.\\n If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
+msgstr "תגובה זו הוסתרה. תוכלו לבדוק בהערות כדי לגלות\\n מדוע. אם אתם המבקשים, תוכלו <a href=\"{{url}}\">להיכנס למערכת</a> כדי לראות את התגובה."
msgid "This table shows the technical details of the internal events that happened\\nto this request on {{site_name}}. This could be used to generate information about\\nthe speed with which authorities respond to requests, the number of requests\\nwhich require a postal response and much more."
-msgstr ""
+msgstr "הטבלה מציגה את הפרטים הטכניים של אירועים פנימיים שקרו\\n לבקשה הזאת ב {{site_name}}. ניתן להשתמש במידע כדי לדעת מהי\\n המהירות בה רשויות מגיבות לבקשות, מספר הבקשות\\n שדרשו שליחת דואר ודברים רבים נוספים."
msgid "This user has been banned from {{site_name}} "
msgstr "המשתמש הזה נחסם מהאתר {{site_name}}"
msgid "This was not possible because there is already an account using \\nthe email address {{email}}."
-msgstr ""
+msgstr "לא ניתן ליצור חשבון מכיוון שיש כבר חשבון קיים עם כתובת המייל {{email}}."
msgid "To cancel these alerts"
msgstr "לבטל את ההתראות הללו"
@@ -2338,52 +2431,52 @@ msgid "To cancel this alert"
msgstr "לבטל את ההתראה"
msgid "To carry on, you need to sign in or make an account. Unfortunately, there\\nwas a technical problem trying to do this."
-msgstr ""
+msgstr "כדי להמשיך אתם צריכים להכנס עם החשבון שלכם או ליצור חשבון חדש. לצערנו, הייתה\\n תקלה טכנית בזמן שניסיתם לעשות זאת."
msgid "To change your email address used on {{site_name}}"
msgstr "לשנות את כתובת הדואר האלקטרוני שבה משתמשים באתר {{site_name}}"
msgid "To classify the response to this FOI request"
-msgstr ""
+msgstr "כדי לסווג את התגובה לבקשת מידע זו"
msgid "To do that please send a private email to "
-msgstr ""
+msgstr "כדי לבצע זאת, יש לשלוח דוא\"ל ל- "
msgid "To do this, first click on the link below."
-msgstr ""
+msgstr "כדי לבצע זאת, הקליקו תחילה על הקישור מתחת"
msgid "To download the zip file"
msgstr "להורדת הקובץ המכווץ"
msgid "To follow all successful requests"
-msgstr ""
+msgstr "למעקב אחר כל הבקשות שהצליחו"
msgid "To follow new requests"
-msgstr ""
+msgstr "למעקב אחר בקשות החדשות"
msgid "To follow requests and responses matching your search"
-msgstr ""
+msgstr "כדי לעקוב אחר בקשות מידע ותגובות המתאימות לחיפוש שלכם"
msgid "To follow requests by '{{user_name}}'"
-msgstr ""
+msgstr "לעקוב אחר בקשות שנעשו ע\"י '{{user_name}}'"
msgid "To follow requests made using {{site_name}} to the public authority '{{public_body_name}}'"
-msgstr ""
+msgstr "לעקוב אחר בקשות שנעשו באמצעות {{site_name}} לרשות הציבורית '{{public_body_name}}'"
msgid "To follow the request '{{request_title}}'"
-msgstr ""
+msgstr "לעקוב אחר הבקשה '{{request_title}}'"
msgid "To help us keep the site tidy, someone else has updated the status of the \\n{{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."
-msgstr ""
+msgstr "במטרה לעזור לנו לשמור על הסדר באתר, מישהו אחר עדכן את סטטוס \\n{{law_used_full}} הבקשה {{title}} שהפניתם ל-{{public_body}}, to \"{{display_status}}\" אם אינכם מסכימים עם אפיון זה, אנא עדכנו את הסטטוס שוב למצב שהינו יותר מדויק בעיניכם."
msgid "To let everyone know, follow this link and then select the appropriate box."
-msgstr ""
+msgstr "כדי לשתף, ליחצו על הלינק וסמנו את התיבה המתאימה"
msgid "To log into the administrative interface"
-msgstr ""
+msgstr "להתחברות לממשק הניהול"
msgid "To play the request categorisation game"
-msgstr ""
+msgstr "כדי לשחק במשחק סיווג הקטגוריות"
msgid "To post your annotation"
msgstr "כדי לפרסם את ההערה שלך"
@@ -2392,7 +2485,7 @@ msgid "To reply to "
msgstr "בתשובה אל"
msgid "To report this FOI request"
-msgstr ""
+msgstr "לדווח על בקשת חוק חופש המידע הזו."
msgid "To send a follow up message to "
msgstr "לשלוח הודעת מעקב אל"
@@ -2401,25 +2494,25 @@ msgid "To send a message to "
msgstr "לשלוח הודעה אל"
msgid "To send your FOI request"
-msgstr ""
+msgstr "כדי לשלוח את בקשת המידע שלכם"
msgid "To update the status of this FOI request"
-msgstr ""
+msgstr "כדי לעדכן את הסטטוס של בקשת מידע זו"
msgid "To upload a response, you must be logged in using an email address from "
-msgstr ""
+msgstr "כדי להגיב עליכם להיות מחוברים עם כתובת דוא\"ל מ- "
msgid "To use the advanced search, combine phrases and labels as described in the search tips below."
-msgstr ""
+msgstr "כדי להשתמש בחיפוש המתקדם, שלב ביטויים ותוויות כפי שמתואר בטיפים על החיפוש למטה"
msgid "To view the email address that we use to send FOI requests to {{public_body_name}}, please enter these words."
-msgstr ""
+msgstr "כדי לראות את כתובת הדוא\"ל בה עשינו שימוש להגשת בקשות המידע ל- {{public_body_name}}, הכניסו את המילים הבאות."
msgid "To view the response, click on the link below."
-msgstr ""
+msgstr "לראות את התגובה, הקליקו על הקישור מתחת"
msgid "To {{public_body_link_absolute}}"
-msgstr ""
+msgstr "ל- {{public_body_link_absolute}}"
msgid "To:"
msgstr "אל:"
@@ -2428,13 +2521,13 @@ msgid "Today"
msgstr "היום"
msgid "Too many requests"
-msgstr ""
+msgstr "יותר מדי בקשות"
msgid "Top search results:"
msgstr "תוצאות החיפוש המובילות:"
msgid "Track thing"
-msgstr ""
+msgstr "עקבו אחרי משהו"
msgid "Track this person"
msgstr "עקבו אחר האדם הזה"
@@ -2443,46 +2536,46 @@ msgid "Track this search"
msgstr "עקבו אחר החיפוש הזה"
msgid "TrackThing|Track medium"
-msgstr ""
+msgstr "TrackThing|Track כלי תקשורת"
msgid "TrackThing|Track query"
-msgstr ""
+msgstr "TrackThing|Track שאילתה"
msgid "TrackThing|Track type"
-msgstr ""
+msgstr "TrackThing|Track סוג"
msgid "Turn off email alerts"
-msgstr ""
+msgstr "כיבוי התראות בדוא\"ל"
msgid "Tweet this request"
msgstr "צייצו את הבקשה"
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 ""
+msgstr "הכניסו <strong><code>01/01/2013..14/01/2013</code></strong> להראות רק מה שקרה בין התאריכים הללו בחודש ינואר."
msgid "URL name can't be blank"
-msgstr ""
+msgstr "יש למלא את כתובת האינטרנט "
msgid "Unable to change email address on {{site_name}}"
-msgstr ""
+msgstr "לא ניתן לשנות את כתובת הדוא\"ל באתר {{site_name}}"
msgid "Unable to send a reply to {{username}}"
-msgstr ""
+msgstr "לא ניתן לשלוח תגובה ל- {{username}}"
msgid "Unable to send follow up message to {{username}}"
-msgstr ""
+msgstr "לא ניתן לשלוח הודעת מעקב ל- {{username}}"
msgid "Unexpected search result type"
-msgstr ""
+msgstr "תוצאת חיפוש לא צפויה"
msgid "Unexpected search result type "
-msgstr ""
+msgstr "תוצאת חיפוש לא צפויה"
-msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"%s\">contact us</a> to sort it out."
-msgstr ""
+msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"{{url}}\">contact us</a> to sort it out."
+msgstr "לצערנו, איננו מכירים את FOI\\nכתובת הדוא\"ל של רשות זו, ולכן איננו יכולים לאמת אותה.\\nאנא <a href=\"{{url}}\">צרו איתנו קשר</a> כדי לטפל בכך."
msgid "Unfortunately, we do not have a working {{info_request_law_used_full}}\\naddress for"
-msgstr ""
+msgstr "לצערנו, אין לנו כתובת פעילה לחוק {{info_request_law_used_full}}\\n עבור"
msgid "Unknown"
msgstr "לא ידוע"
@@ -2494,151 +2587,163 @@ msgid "Unusual response."
msgstr "תגובה מוזרה"
msgid "Update the status of this request"
-msgstr "עדכון על הסטטוס של הבקשה הזאת"
+msgstr "לעדכן את סטטוס הבקשה הזאת"
msgid "Update the status of your request to "
-msgstr ""
+msgstr "עדכן את סטטוס הבקשה שלכם ל- "
msgid "Upload FOI response"
msgstr "בקשת לחוק חופש המידע הועלתה"
msgid "Use OR (in capital letters) where you don't mind which word, e.g. <strong><code>commons OR lords</code></strong>"
-msgstr ""
+msgstr "*****הקלידו OR (באותיות גדולות) כדי לחפש יותר ממילה אחת, לדוגמה, <strong><code>רגיל OR בכיר</code></strong>"
msgid "Use quotes when you want to find an exact phrase, e.g. <strong><code>\"Liverpool City Council\"</code></strong>"
-msgstr ""
+msgstr "השתמשו במרכאות כדי לחפש את הביטוי המדוייק, לדוגמה, <strong><code>\"מועצת העיר ירושלים\"</code></strong>"
msgid "User"
-msgstr ""
+msgstr "משתמש"
msgid "User info request sent alert"
-msgstr ""
+msgstr "התרעת בקשת מידע ממשתמש"
+
+msgid "User – {{name}}"
+msgstr "משתמש – {{name}}"
msgid "UserInfoRequestSentAlert|Alert type"
-msgstr ""
+msgstr "UserInfoRequestSentAlert|Alert type"
msgid "User|About me"
-msgstr ""
+msgstr "User|About me"
msgid "User|Address"
-msgstr ""
+msgstr "משתמש|כתובת"
msgid "User|Admin level"
-msgstr ""
+msgstr "User|Admin level"
msgid "User|Ban text"
-msgstr ""
+msgstr "User|Ban text"
msgid "User|Dob"
-msgstr ""
+msgstr "משתמש|תאריך לידה"
msgid "User|Email"
-msgstr ""
+msgstr "User|Email"
msgid "User|Email bounce message"
-msgstr ""
+msgstr "User|Email bounce message"
msgid "User|Email bounced at"
-msgstr ""
+msgstr "User|Email bounced at"
msgid "User|Email confirmed"
-msgstr ""
+msgstr "User|Email confirmed"
msgid "User|Hashed password"
-msgstr ""
+msgstr "User|Hashed password"
msgid "User|Last daily track email"
-msgstr ""
+msgstr "User|Last daily track email"
msgid "User|Locale"
-msgstr ""
+msgstr "User|Locale"
msgid "User|Name"
-msgstr ""
+msgstr "User|Name"
msgid "User|No limit"
-msgstr ""
+msgstr "User|No limit"
msgid "User|Receive email alerts"
-msgstr ""
+msgstr "User|Receive email alerts"
msgid "User|Salt"
-msgstr ""
+msgstr "User|Salt"
msgid "User|Url name"
-msgstr ""
+msgstr "User|Url name"
+
+msgid "Version {{version}}"
+msgstr "גירסה {{version}}"
msgid "View FOI email address"
-msgstr ""
+msgstr "צפו בדוא\"ל של בקשות מידע"
msgid "View FOI email address for '{{public_body_name}}'"
-msgstr ""
+msgstr "צפו בדוא\"ל של בקשות מידע ל- '{{public_body_name}}'"
msgid "View FOI email address for {{public_body_name}}"
-msgstr ""
+msgstr "צפו בדוא\"ל של בקשות מידע ל- '{{public_body_name}}'"
msgid "View Freedom of Information requests made by {{user_name}}:"
-msgstr ""
+msgstr "צפו בבקשות מידע שהוגשו על-ידי {{user_name}}:"
msgid "View and search requests"
-msgstr ""
+msgstr "צפו וחפשו בקשות מידע"
msgid "View authorities"
-msgstr ""
+msgstr "רשויות"
msgid "View email"
msgstr "צפו בדואר האלקטרוני"
msgid "View requests"
-msgstr "צפה בבקשות"
+msgstr "בקשות מידע"
msgid "Waiting clarification."
msgstr "ממתין להבהרות"
msgid "Waiting for an <strong>internal review</strong> by {{public_body_link}} of their handling of this request."
-msgstr ""
+msgstr "ממתין <strong>לבדיקה פנימית</strong> על-ידי {{public_body_link}} של אופן הטיפול שלהם בבקשה.."
msgid "Waiting for the public authority to complete an internal review of their handling of the request"
-msgstr ""
+msgstr "ממתין לרשות הציבורית שתסיים בדיקה פנימית של אופן הטיפול שלהם בבקשה"
msgid "Waiting for the public authority to reply"
msgstr "בהמתנה לתשובה של רשות ציבורית"
msgid "Was the response you got to your FOI request any good?"
+msgstr "האם קיבלתם תגובה מספקת על בקשת המידע שלכם?"
+
+msgid "We consider it is not a valid FOI request, and have therefore hidden it from other users."
msgstr ""
-msgid "We do not have a working request email address for this authority."
+msgid "We consider it to be vexatious, and have therefore hidden it from other users."
msgstr ""
+msgid "We do not have a working request email address for this authority."
+msgstr "אין ברשותנו כתובת דוא\"ל פעילה להגשת בקשות מידע לרשות זו."
+
msgid "We do not have a working {{law_used_full}} address for {{public_body_name}}."
-msgstr ""
+msgstr "אין ברשותנו {{law_used_full}} כתובת פעילה ל- {{public_body_name}}."
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=\"{{url}}\">sign in</a> and let everyone know."
-msgstr ""
+msgstr "איננו יודעים האם התגובה האחרונה לבקשה זו כוללת\\n מידע או לא\\n &ndash;\\n\tאם אתם {{user_link}} אנא <a href=\"{{url}}\">הכנסו למערכת</a> ועדכנו את כולם."
-msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"%s\">details</a>). "
-msgstr ""
+msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"{{url}}\">details</a>). "
+msgstr "אנחנו לא נחשוף את כתובת המייל שלכם לאף אחד, אלא אם אתם אוn\\ החוק יבקשו זאת (<a href=\"{{url}}\">details</a>)."
msgid "We will not reveal your email address to anybody unless you\\nor the law tell us to."
-msgstr ""
+msgstr "אנחנו לא נחשוף את כתובת המייל שלכם לאף אחד, אלא אם אתם אוn\\ החוק יבקשו זאת"
msgid "We will not reveal your email addresses to anybody unless you\\nor the law tell us to."
-msgstr ""
+msgstr "אנחנו לא נחשוף את כתובות המייל שלכם לאף אחד, אלא אם נידרש על פי חוק."
msgid "We're waiting for"
msgstr "אנחנו ממתינים עבור"
msgid "We're waiting for someone to read"
-msgstr ""
+msgstr "אנו ממתינים שמישהו יקרא"
msgid "We've sent an email to your new email address. You'll need to click the link in\\nit before your email address will be changed."
-msgstr ""
+msgstr "שלחנו דוא\"ל לכתובת החדשה שהזנתם. אנא לחצו על הקישור המופיע במכתב\\nבשביל לאשר את שינוי הכתובת."
msgid "We've sent you an email, and you'll need to click the link in it before you can\\ncontinue."
-msgstr "שלחנו לכם אימייל ואתם צריכים להקליק על הקישור בהודעה לפני שתוכלוn/ להמשיך"
+msgstr "שלחנו לכם דואר אלקטרוני ואתם צריכים להקליק על הקישור בהודעה לפני שתוכלו להמשיך."
msgid "We've sent you an email, click the link in it, then you can change your password."
-msgstr ""
+msgstr "שלחנו לכם הודעת דוא\"ל עם קישור. הקליקו עליו כדי לשנות את הסיסמה."
msgid "What are you doing?"
msgstr "מה אתם עושים?"
@@ -2650,299 +2755,316 @@ msgid "What information has been released?"
msgstr "איזה מידע הוצג?"
msgid "What information has been requested?"
-msgstr "מה המידע שנדרש?"
+msgstr "אילו בקשות כבר הוגשו?"
msgid "When you get there, please update the status to say if the response \\ncontains any useful information."
-msgstr ""
+msgstr "כאשר הנכם מגיעים לעמוד, אנא עדכנו את הסטטוס כדי לאשר האם התגובה \\n מכילה מידע שימושי."
msgid "When you receive the paper response, please help\\n others find out what it says:"
-msgstr ""
+msgstr "כאשר תקבלו את מכתב התגובה, אנא עזרו \\n לאחרים להבין את תוכנו:"
-msgid "When you're done, <strong>come back here</strong>, <a href=\"%s\">reload this page</a> and file your new request."
-msgstr ""
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
+msgstr "כשתסיימו, <strong>חזרו לכאן</strong>, <a href=\"{{url}}\">כנסו שוב לדף הזה</a> והגישו את בקשתכם."
msgid "Which of these is happening?"
-msgstr ""
+msgstr "מה מהדברים הללו קורה?"
msgid "Who can I request information from?"
-msgstr ""
+msgstr "ממי ניתן לבקש מידע?"
msgid "Withdrawn by the requester."
-msgstr ""
+msgstr "בוטל על-ידי מגיש הבקשה"
msgid "Wk"
-msgstr ""
+msgstr "Wk"
msgid "Would you like to see a website like this in your country?"
-msgstr ""
+msgstr "האם תרצה לראות אתר אינטרנט כזה בישראל?"
msgid "Write a reply"
-msgstr "כתבו תשובה"
+msgstr "לכתוב תשובה"
msgid "Write a reply to "
msgstr "כתבו תשובה אל"
msgid "Write your FOI follow up message to "
-msgstr ""
+msgstr "כתבו את בקשת המעקב למידע ל-"
msgid "Write your request in <strong>simple, precise language</strong>."
-msgstr ""
+msgstr "כתבו את בקשתכם <strong>בשפה פשוטה ומדוייקת</strong>."
msgid "You"
-msgstr ""
+msgstr "אתם"
msgid "You are already following new requests"
-msgstr ""
+msgstr "אתם כבר עוקבים אחר בקשות חדשות"
msgid "You are already following requests to {{public_body_name}}"
-msgstr ""
+msgstr "אתם כבר עוקבים אחר בקשות חדשות עבור {{public_body_name}}"
msgid "You are already following things matching this search"
-msgstr ""
+msgstr "אתם כבר עוקבים אחר דברים התואמים את החיפוש הנ\"ל"
msgid "You are already following this person"
-msgstr ""
+msgstr "אתם כבר עוקבים אחר האדם הזה"
msgid "You are already following this request"
-msgstr ""
+msgstr "אתם כבר עוקבים אחר הבקשה הזאת"
msgid "You are already following updates about {{track_description}}"
-msgstr ""
+msgstr "אתם כבר עוקבים אחר עדכונים אודות {{track_description}}"
msgid "You are currently receiving notification of new activity on your wall by email."
-msgstr ""
+msgstr "נשלחות אליהם התראות במייל בנוגע לפעילות חדשה על הקיר שלכם."
msgid "You are following all new successful responses"
-msgstr ""
+msgstr "אתם עוקבים אחר כל הבקשות החדשות שנענו"
msgid "You are no longer following {{track_description}}."
msgstr "אתה לא עוקב יותר אחרי {{track_description}}"
msgid "You are now <a href=\"{{wall_url_user}}\">following</a> updates about {{track_description}}"
-msgstr ""
+msgstr "אתם כעת <a href=\"{{wall_url_user}}\">עוקבים</a> אחר עדכונים אודות {{track_description}}"
msgid "You can <strong>complain</strong> by"
-msgstr ""
+msgstr "אתם יכולים <strong>להתלונן</strong> עד"
msgid "You can change the requests and users you are following on <a href=\"{{profile_url}}\">your profile page</a>."
-msgstr ""
+msgstr "אתם יכולים לשנות אחר אילו בקשות ומשתמשים אתם עוקבים <a href=\"{{profile_url}}\">בפרופיל שלכם</a>."
msgid "You can get this page in computer-readable format as part of the main JSON\\npage for the request. See the <a href=\"{{api_path}}\">API documentation</a>."
-msgstr ""
+msgstr "אתם יכולים לקבל את עמוד זה בפורמט המיועד למחשבים כחלק מעמוד ה-JSON\\nשל בקשה זו. ראו את <a href=\"{{api_path}}\">תיעוד ה-API </a>."
msgid "You can only request information about the environment from this authority."
-msgstr ""
+msgstr "ניתן לבקש רק מידע סביבתי מרשות זו."
msgid "You have a new response to the {{law_used_full}} request "
msgstr "יש לך תשובה חדשה לחוק {{law_used_full}} "
msgid "You have found a bug. Please <a href=\"{{contact_url}}\">contact us</a> to tell us about the problem"
-msgstr ""
+msgstr "מצאתם באג. <a href=\"{{contact_url}}\">צרו יתנו קשר</a> כדי לתאר את הבעיה."
msgid "You have hit the rate limit on new requests. Users are ordinarily limited to {{max_requests_per_user_per_day}} requests in any rolling 24-hour period. You will be able to make another request in {{can_make_another_request}}."
-msgstr ""
+msgstr "עברתם את המכסה היומית המותרת להגשת בקשות מידע. לרוב מוגבלים המשתמשים ל- {{max_requests_per_user_per_day}} בקשות ביממה. תוכלו להגיש בקשה נוספת בעוד {{can_make_another_request}} שעות."
msgid "You have made no Freedom of Information requests using this site."
-msgstr ""
+msgstr "טרם הגשתם בקשת מידע על-פי חוק חופש המידע באתר זה."
msgid "You have now changed the text about you on your profile."
-msgstr ""
+msgstr "שינוי הפרופיל שלכם בוצע בהצלחה."
msgid "You have now changed your email address used on {{site_name}}"
-msgstr ""
+msgstr "שינוי כתובת הדוא\"ל שלכם באתר {{site_name}} בוצע בהצלחה."
msgid "You just tried to sign up to {{site_name}}, when you\\nalready have an account. Your name and password have been\\nleft as they previously were.\\n\\nPlease click on the link below."
-msgstr ""
+msgstr "ניסיתם להירשם לאתר {{site_name}}, כאשר\\nכבר יש ברשותכם חשבון. שם המשתמש והסיסמא שלכם\\nנותרו ללא שינוי.\\n\\nאנא לחצו על הקישור למטה."
msgid "You know what caused the error, and can <strong>suggest a solution</strong>, such as a working email address."
-msgstr ""
+msgstr "בהכירכם את הסיבה לתקלה, תוכלו <strong>להציע פתרון</strong>, כמו כתובת דוא\"ל פעילה.."
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 ""
+msgstr "אתם יכולים <strong>לצרף קבצים</strong>. אם ברצונכם לצרף \\n קובץ שהוא גדול מדי לדוא\"ל, אנא השתמשו בטופס למטה."
-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 ""
+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=\"{{url}}\">send it to us</a>."
+msgstr "תוכלו אולי לברר זאת\\nבאתר שלהם, או ע\"י התקשרות עימם בטלפון. אם תצליחו בבירור זה, \\nאנא <a href=\"{{url}}\">עדכנו אותנו</a>."
msgid "You may be able to find\\none on their website, or by phoning them up and asking. If you manage\\nto find one, then please <a href=\"{{help_url}}\">send it to us</a>."
-msgstr ""
+msgstr "יתכן שתמצאו אותה באתר שלהם, או שתוכלו להתקשר אליהם ולשאול. אם אתם מצליחים למצוא אותה, אנא <a href=\"{{help_url}}\">שלחו אלינו</a>."
msgid "You need to be logged in to change the text about you on your profile."
-msgstr ""
+msgstr "יש להתחבר כדי לשנות את הפרופיל שלכם."
msgid "You need to be logged in to change your profile photo."
-msgstr ""
+msgstr "יש להתחבר כדי לשנות את תמונת הפרופיל שלכם."
msgid "You need to be logged in to clear your profile photo."
-msgstr ""
+msgstr "יש להתחבר כדי להסיר את תמונת הפרופיל שלכם."
msgid "You need to be logged in to edit your profile."
-msgstr ""
+msgstr "דרוש חיבור למערכת על מנת לערוך את הפרופיל."
msgid "You previously submitted that exact follow up message for this request."
-msgstr ""
+msgstr "כבר שלחתם בעבר את הודעת המעקב הזו."
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 ""
+msgstr "הייתם אמורים לקבל עותק של הבקשה בדוא\"ל, ותוכלו להגיב לה\\n פשוט ע\"י <strong>כתיבת תגובה</strong> לאותו מכתב. לנוחותכם, זוהי הכתובת:"
msgid "You want to <strong>give your postal address</strong> to the authority in private."
-msgstr ""
+msgstr "אתם מעוניינים <strong>למסור את כתובת הדואר שלכם</strong> לרשות באופן פרטי."
msgid "You will be unable to make new requests, send follow ups, add annotations or\\nsend messages to other users. You may continue to view other requests, and set\\nup\\nemail alerts."
-msgstr ""
+msgstr "לא תוכלו ליצור בקשות חדשות, לשלוח עדכונים לבקשות, להוסיף הערות או\\nלשלוח הודעות למשתמשים אחרים. תוכלו להמשיך לצפות בבקשות אחרות, ולהגדיר\\nקבלת התראות בדוא\"ל."
msgid "You will no longer be emailed updates for those alerts"
-msgstr ""
+msgstr "לא תקבלו יותר התרעות אלה בדוא\"ל"
msgid "You will now be emailed updates about {{track_description}}. <a href=\"{{change_email_alerts_url}}\">Prefer not to receive emails?</a>"
-msgstr ""
+msgstr "כעת תקבלו עדכונים באימייל אודות t {{track_description}}. <a href=\"{{change_email_alerts_url}}\">מעדיפים לא לקבל אימיילים?</a>"
msgid "You will only get an answer to your request if you follow up\\nwith the clarification."
+msgstr "תוכלו לקבל תשובה לבקשה זו רק עם תגיבו \\nעם הבהרה."
+
+msgid "You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further."
msgstr ""
msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
-msgstr ""
+msgstr "אתם בפנים. <a href=\"#\" id=\"send-request\">המשיכו בשליחת הבקשה</a>"
msgid "You're long overdue a response to your FOI request - "
-msgstr ""
+msgstr "אתם ממתינים זמן רב מידי לתגובה על בקשת מידע - "
msgid "You're not following anything."
-msgstr ""
+msgstr "אתם לא עוקבים אחר דבר."
msgid "You've now cleared your profile photo"
-msgstr ""
+msgstr "תמונת הפרופיל שלכם הוסרה בהצלחה"
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
-msgstr[0] ""
-msgstr[1] ""
-
-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>."
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
msgstr ""
+"השם שלכם יופיע <strong/> בצורה פומבית <strong> \\n (<a href=\"{{why_url}}\">למה?</a>)\\n באתר הזה ובמנועי חיפוש. \n"
+"אם אתם\\n חושבים להשתמש בשם בדוי, בבקשה \\n <a href=\"{{help_url}}\">קראו זאת קודם</a>. "
msgid "Your annotations"
-msgstr ""
+msgstr "ההערות שלכם"
msgid "Your details, including your email address, have not been given to anyone."
-msgstr ""
+msgstr "הפרטים שלכם, כולל כתובת הדואר האלקטרוני, לא ניתנו לאף אחד."
msgid "Your e-mail:"
-msgstr ""
+msgstr "הדוא\"ל שלכם:"
-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 ""
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
+msgstr "הודעת המעקב שלכם לא נשלחה, כי היא זוהתה כדואר זבל. <a href=\"{{url}}\">נא צרו איתנו קשר</a>אם אתם באמת מעוניינים לשלוח אותה."
msgid "Your follow up message has been sent on its way."
-msgstr ""
+msgstr "הודעת המעקב שלכם נשלחה בהצלחה."
msgid "Your internal review request has been sent on its way."
-msgstr ""
+msgstr "בקשת הבדיקה הפנימית שלכם נשלחה בהצלחה."
msgid "Your message has been sent. Thank you for getting in touch! We'll get back to you soon."
-msgstr ""
+msgstr "ההודעה שלכם נשלחה. תודה שיצרתם קשר. נשוב אליכם בקרוב."
msgid "Your message to {{recipient_user_name}} has been sent"
-msgstr ""
+msgstr "ההודעה שלך עבור{{recipient_user_name}} נשלחה"
msgid "Your message to {{recipient_user_name}} has been sent!"
-msgstr ""
+msgstr "הודעתכם ל- {{recipient_user_name}}נשלחה!"
msgid "Your message will appear in <strong>search engines</strong>"
-msgstr ""
+msgstr "הודעתכם תופיע <strong>במנועי החיפוש</strong>"
msgid "Your name and annotation will appear in <strong>search engines</strong>."
-msgstr ""
+msgstr "שמכם וההערה שלכם יופיעו <strong>במנועי החיפוש</strong>."
-msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"%s\">details</a>)."
-msgstr ""
+msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"{{url}}\">details</a>)."
+msgstr "שמכם, הבקשה וכל התגובות לה יופיעו <strong>במנועי חיפוש</strong>\\n (<a href=\"{{url}}\">לפרטים</a>)."
msgid "Your name:"
-msgstr ""
+msgstr "שמכם:"
msgid "Your original message is attached."
-msgstr ""
+msgstr "הההודעה המקורית שלכם מצורפת."
msgid "Your password has been changed."
-msgstr ""
+msgstr "הסיסמה שונתה בהצלחה."
msgid "Your password:"
-msgstr ""
+msgstr "הסיסמה שלכם:"
msgid "Your photo will be shown in public <strong>on the Internet</strong>,\\n wherever you do something on {{site_name}}."
+msgstr "התמונה שלכם תוצג באופן פומבי באינטרנט,\\n בכל פעם שתעשו משהו באתר {{site_name}}."
+
+msgid "Your request '{{request}}' at {{url}} has been reviewed by moderators."
msgstr ""
-msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
+msgid "Your request on {{site_name}} hidden"
msgstr ""
+msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
+msgstr "הבקשה שלכם נקראת {{info_request}}. אם תודיעו זאת לאחרים נוכל לעדכן את התווית"
+
msgid "Your request:"
-msgstr ""
+msgstr "בקשתכם:"
msgid "Your response to an FOI request was not delivered"
msgstr "התגובה שלך לבקשה לפי חוק חופש המידע לא נשלחה"
-msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"%s\">read why</a> and answers to other questions."
-msgstr ""
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
+msgstr "תגובתכם <strong>תופיע באינטרנט</strong>, <a href=\"{{url}}\">קראו מדוע</a> and וצפו בתשובות לשאלות נוספות."
msgid "Your thoughts on what the {{site_name}} <strong>administrators</strong> should do about the request."
-msgstr ""
+msgstr "דעתכם על מה {{site_name}} <strong>שמנהלי האתר</strong> צרכים לעשות בקשר לבקשה."
+
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
+msgstr[0] "בקשת המידע {{count}} שלכם"
+msgstr[1] " {{count}} בקשות המידע שלכם"
+
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
+msgstr[0] "הערה {{count}} שלכם"
+msgstr[1] "{{count}} ההערות שלכם"
msgid "Your {{site_name}} email alert"
-msgstr ""
+msgstr "התרעת הדוא\"ל שלכם מאתר {{site_name}} "
msgid "Yours faithfully,"
-msgstr ""
+msgstr "שלכם במסירות,"
msgid "Yours sincerely,"
+msgstr "שלכם בכנות,"
+
+msgid "Yours,"
msgstr ""
msgid "[FOI #{{request}} email]"
-msgstr ""
+msgstr "[FOI #{{request}} email]"
msgid "[{{public_body}} request email]"
-msgstr ""
+msgstr "[{{public_body}}הדוא\"ל המבוקש]"
msgid "[{{site_name}} contact email]"
-msgstr ""
+msgstr "[{{site_name}} דוא\"ל ליצירת קשר]"
msgid "\\n\\n[ {{site_name}} note: The above text was badly encoded, and has had strange characters removed. ]"
-msgstr ""
+msgstr "\\n\\n[ הערת {{site_name}}: הטקסט המופיע למעלה קודד בצורה שגויה. התווים הלא מזוהים נמחקו ]"
msgid "a one line summary of the information you are requesting, \\n\t\t\te.g."
-msgstr ""
+msgstr "משפט קצר אחד לגבי המידע שאתם מבקשים, \\n»»»e.g."
msgid "admin"
msgstr "מנהל"
+msgid "alaveteli_foi:The software that runs {{site_name}}"
+msgstr "Alaveteli: התוכנה מאחורי {{site_name}}"
+
msgid "all requests"
msgstr "כל הבקשות"
msgid "also called {{public_body_short_name}}"
-msgstr ""
+msgstr "הנקרא גם {{public_body_short_name}}"
msgid "an anonymous user"
msgstr "משתמש אנונימי"
msgid "and"
-msgstr ""
+msgstr "וְ"
msgid "and update the status accordingly. Perhaps <strong>you</strong> might like to help out by doing that?"
-msgstr ""
+msgstr "ועדכנו את הסטטוס בהתאם. <strong>האם תרצו</strong> לסייע בכך שתעשו זאת?"
msgid "and update the status."
-msgstr ""
+msgstr "ועדכנו את הסטטוס."
msgid "and we'll suggest <strong>what to do next</strong>"
-msgstr ""
+msgstr "ונציע <strong>מה לעשות בהמשך</strong>"
msgid "any <a href=\"/list\">new requests</a>"
-msgstr ""
+msgstr "כל <a href=\"/list\">בקשה חדשה</a>"
msgid "any <a href=\"/list/successful\">successful requests</a>"
-msgstr ""
+msgstr "כל <a href=\"/list/successful\">בקשה שהצליחה</a>"
msgid "anything"
msgstr "הכל"
@@ -2950,6 +3072,9 @@ msgstr "הכל"
msgid "are long overdue."
msgstr "עברו את תאריך היעד."
+msgid "at"
+msgstr "ב- "
+
msgid "authorities"
msgstr "רשויות"
@@ -2957,43 +3082,46 @@ msgid "awaiting a response"
msgstr "ממתין לבקשה"
msgid "beginning with ‘{{first_letter}}’"
-msgstr ""
+msgstr "להתחיל ב- ‘{{first_letter}}’"
msgid "between two dates"
msgstr "בין שני תאריכים"
+msgid "but followupable"
+msgstr "אבל ניתן לעקוב אחריהם"
+
msgid "by"
-msgstr "מאת"
+msgstr "עד תאריך"
msgid "by <strong>{{date}}</strong>"
-msgstr ""
+msgstr "עד תאריך <strong>{{date}}</strong>"
msgid "by {{public_body_name}} to {{info_request_user}} on {{date}}."
-msgstr ""
+msgstr "על-ידי {{public_body_name}} אל {{info_request_user}} בתאריך {{date}}."
msgid "by {{user_link_absolute}}"
-msgstr ""
+msgstr "על-ידי {{user_link_absolute}}"
msgid "comments"
-msgstr ""
+msgstr "הערות"
msgid "containing your postal address, and asking them to reply to this request.\\n Or you could phone them."
-msgstr ""
+msgstr "אשר כולל את כתובת המגורים שלכם, ובו אתם מבקשים מהם להגיב לבקשה.\\n לחילופין, תוכלו להתקשר אליהם."
msgid "details"
msgstr "פרטים"
msgid "display_status only works for incoming and outgoing messages right now"
-msgstr ""
+msgstr "display_status עובד רק לגבי הצעות המתקבלות ונשלחות עכשיו"
msgid "during term time"
-msgstr ""
+msgstr "במהלך התקופה"
msgid "edit text about you"
-msgstr ""
+msgstr "ערכו את הטקסט עליכם"
msgid "even during holidays"
-msgstr ""
+msgstr "גם בימי חג"
msgid "everything"
msgstr "הכל"
@@ -3002,79 +3130,88 @@ msgid "external"
msgstr "חיצוני"
msgid "has reported an"
-msgstr ""
+msgstr "דווח שתגובה לבקשת "
msgid "have delayed."
-msgstr ""
+msgstr "התעכב"
msgid "hide quoted sections"
-msgstr ""
+msgstr "הסתר פסקאות מצוטטות"
msgid "in term time"
-msgstr ""
+msgstr "בתקופת הזמן"
msgid "in the category ‘{{category_name}}’"
-msgstr ""
+msgstr "בקטגוריה ‘{{category_name}}’"
msgid "internal error"
-msgstr ""
+msgstr "שגיאה פנימית"
msgid "internal reviews"
msgstr "ביקורות פנימיות"
msgid "is <strong>waiting for your clarification</strong>."
-msgstr ""
+msgstr " <strong>ממתין להבהרות שלכם</strong>."
msgid "just to see how it works"
-msgstr ""
+msgstr "רק כדי לראות איך זה עובד"
msgid "left an annotation"
msgstr "השאיר הודעה"
msgid "made."
-msgstr ""
+msgstr "בוצע"
msgid "matching the tag ‘{{tag_name}}’"
-msgstr ""
+msgstr "תואם לתווית ‘{{tag_name}}’"
msgid "messages from authorities"
-msgstr ""
+msgstr "מסר מהרשויות"
msgid "messages from users"
msgstr "הודעות ממשתמשים"
+msgid "move..."
+msgstr "להעביר..."
+
msgid "no later than"
msgstr "לא יאוחר מ"
-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 ""
+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=\"{{url}}\">send it to us</a>."
+msgstr "לא קיימים יותר. מעמוד הבקשה, נסו להגיב להודעה מסוימת, ולא לשלוח תגובה כללית. אם ברצונכם להגיב כללית, ומכירים כתובת ישירה שתגיע למקום הנכון, אנא <a href=\"{{url}}\">שלחו אותה אלינו</a>."
msgid "normally"
-msgstr "באופן כללי"
+msgstr "לרוב"
+
+msgid "not requestable due to: {{reason}}"
+msgstr "לא ניתן לבקש בגלל: {{reason}}"
msgid "please sign in as "
msgstr "בבקשה התחבר כ"
msgid "requesting an internal review"
-msgstr ""
+msgstr "מבקש בדיקה פנימית"
msgid "requests"
msgstr "בקשות"
msgid "requests which are {{list_of_statuses}}"
-msgstr ""
+msgstr "בקשות שהן {{list_of_statuses}}"
msgid "response as needing administrator attention. Take a look, and reply to this\\nemail to let them know what you are going to do about it."
-msgstr ""
+msgstr "דורשת התייחסות של מנהלי המערכת. בידקו את התגובה וענו למייל הזה, כדי להודיע להם מה אתם מתכוונים לעשות בעניין זה."
msgid "send a follow up message"
msgstr "שלח הודעת מעקב"
msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
-msgstr ""
+msgstr "נשלח ל- {{public_body_name}} על-ידי {{info_request_user}} בתאריך {{date}}."
+
+msgid "set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA"
+msgstr "קבע ל<strong>ריק</strong> (מחרוזת ריקה) אם לא ניתן למצוא כתובת; הכתובות האלה <strong>פתוחות לציבור</strong> מכוון שכל אחד יכול לצפות בהן אחרי הזנת CAPTCHA"
msgid "show quoted sections"
-msgstr ""
+msgstr "הצג פסקאות מצוטטות"
msgid "sign in"
msgstr "התחבר"
@@ -3086,22 +3223,27 @@ msgid "successful"
msgstr "עבר בהצלחה"
msgid "successful requests"
-msgstr "בקשות מוצלחות"
+msgstr "בקשות שנענו"
msgid "that you made to"
-msgstr ""
+msgstr "שביצעתם כדי"
msgid "the main FOI contact address for {{public_body}}"
-msgstr ""
+msgstr "כתובת הקשר העיקרית לבקשות מידע {{public_body}}"
+#. This phrase completes the following sentences:
+#. Request an internal review from...
+#. Send a public follow up message to...
+#. Send a public reply to...
+#. Don't want to address your message to... ?
msgid "the main FOI contact at {{public_body}}"
-msgstr ""
+msgstr "איש הקשר העיקרי לבקשות מידע ב- {{public_body}}"
msgid "the requester"
msgstr "המבקש"
msgid "the {{site_name}} team"
-msgstr ""
+msgstr "צוות האתר {{site_name}}"
msgid "to read"
msgstr "לקריאה"
@@ -3110,10 +3252,10 @@ msgid "to send a follow up message."
msgstr "לשלוח הודעת מעקב."
msgid "to {{public_body}}"
-msgstr ""
+msgstr "אל {{public_body}}"
msgid "unexpected prominence on request event"
-msgstr ""
+msgstr "תקלה בלתי צפויה בבקשה"
msgid "unknown reason "
msgstr "סיבה לא ידוע"
@@ -3134,7 +3276,7 @@ msgid "unsuccessful"
msgstr "לא הצליח"
msgid "unsuccessful requests"
-msgstr ""
+msgstr "בקשות שנדחו"
msgid "useful information."
msgstr "מידע שימושי."
@@ -3142,98 +3284,124 @@ msgstr "מידע שימושי."
msgid "users"
msgstr "משתמשים"
+msgid "what's that?"
+msgstr "מה זה?"
+
msgid "{{count}} FOI requests found"
-msgstr ""
+msgstr "נמצאו {{count}} בקשות מידע "
+
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] "{{count}} בקשת תחת חוק חופש המידע עבור {{public_body_name}}"
+msgstr[1] "{{count}} בקשות מידע עבור {{public_body_name}}"
+
+msgid "{{count}} person is following this authority"
+msgid_plural "{{count}} people are following this authority"
+msgstr[0] "אדם {{count}} עוקב/ת אחר רשות זו"
+msgstr[1] "{{count}} אנשים עוקבים אחר רשות זו"
+
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
+msgstr[0] "בקשה {{count}}"
+msgstr[1] "{{count}} בקשות"
+
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
+msgstr[0] "בקשה {{count}} נמסרה."
+msgstr[1] "{{count}} בקשות נמסרו."
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 ""
+msgstr "{{existing_request_user}} יצר/ה בקשה זהה בתאריך {{date}}. אתם יכולים לצפות <a href=\"{{existing_request}}\">בבקשה הקיימת</a>, או לערוך את פרטי הבקשה למטה כדי ליצור בקשה שונה במעט."
msgid "{{info_request_user_name}} only:"
-msgstr ""
+msgstr "רק {{info_request_user_name}}:"
msgid "{{law_used_full}} request - {{title}}"
-msgstr ""
+msgstr "בקשת {{law_used_full}} - {{title}} "
msgid "{{law_used_full}} request GQ - {{title}}"
-msgstr ""
+msgstr "{{law_used_full}} בקשת GQ - {{title}}"
msgid "{{law_used}} requests at {{public_body}}"
msgstr "{{law_used}} בקשות ב{{public_body}}"
msgid "{{length_of_time}} ago"
-msgstr ""
+msgstr "לפני {{length_of_time}}"
msgid "{{list_of_things}} matching text '{{search_query}}'"
-msgstr ""
+msgstr "{{list_of_things}} טקסט תואם '{{search_query}}'"
msgid "{{number_of_comments}} comments"
-msgstr ""
+msgstr "{{number_of_comments}} הערות"
msgid "{{public_body_link}} answered a request about"
-msgstr ""
+msgstr "{{public_body_link}} השיב לבקשה בנושא"
msgid "{{public_body_link}} was sent a request about"
-msgstr ""
+msgstr "ל{{public_body_link}} נשלחה בקשה בנושא"
msgid "{{public_body_name}} only:"
-msgstr ""
+msgstr "רק {{public_body_name}}:"
msgid "{{public_body}} has asked you to explain part of your {{law_used}} request."
msgstr "{{public_body}} ביקש מכם להסביר חלק מה{{law_used}} בבקשה."
msgid "{{public_body}} sent a response to {{user_name}}"
-msgstr ""
+msgstr "{{public_body}} שלח/ה תגובה ל- {{user_name}}"
msgid "{{reason}}, please sign in or make a new account."
msgstr "{{reason}}, בבקשה התחברו או צרו חשבון חדש."
msgid "{{search_results}} matching '{{query}}'"
-msgstr ""
+msgstr "{{search_results}} תואם '{{query}}'"
msgid "{{site_name}} blog and tweets"
msgstr "{{site_name}} בלוג וציוצים"
msgid "{{site_name}} covers requests to {{number_of_authorities}} authorities, including:"
-msgstr ""
+msgstr "{{site_name}}מטפל בבקשות ל- {{number_of_authorities}}רשויות, כולל:"
msgid "{{site_name}} sends new requests to <strong>{{request_email}}</strong> for this authority."
-msgstr ""
+msgstr "{{site_name}} שולח בקשות חדשות ל- <strong>{{request_email}}</strong>עבור רשות זו."
msgid "{{site_name}} users have made {{number_of_requests}} requests, including:"
-msgstr ""
+msgstr "משתמשי {{site_name}} הגישו {{number_of_requests}} בקשות, ובהן:"
+
+msgid "{{thing_changed}} was changed from <code>{{from_value}}</code> to <code>{{to_value}}</code>"
+msgstr "{{thing_changed}} השתנה מ- <code>{{from_value}}</code> אל <code>{{to_value}}</code>"
msgid "{{title}} - a Freedom of Information request to {{public_body}}"
-msgstr ""
+msgstr "{{title}} - בקשת מידע עבור {{public_body}}"
msgid "{{user_name}} (Account suspended)"
msgstr "{{user_name}} (חשבון הושעה)"
msgid "{{user_name}} - Freedom of Information requests"
-msgstr ""
+msgstr "בקשות המידע של - {{user_name}} "
msgid "{{user_name}} - user profile"
-msgstr ""
+msgstr "פרופיל משתמש - {{user_name}}"
msgid "{{user_name}} added an annotation"
msgstr "{{user_name}} הוסיף הערה"
msgid "{{user_name}} has annotated your {{law_used_short}} \\nrequest. Follow this link to see what they wrote."
-msgstr ""
+msgstr "{{user_name}} הוסיף/ה הערה לבקשת {{law_used_short}} שלך. לחצו על הקישור כדי לראות מה הם כתבו."
msgid "{{user_name}} has used {{site_name}} to send you the message below."
-msgstr ""
+msgstr "{{user_name}} השתמש באתר {{site_name}} לשלוח את ההודעה הבאה."
msgid "{{user_name}} sent a follow up message to {{public_body}}"
-msgstr ""
+msgstr "{{user_name}} שלח בקשת מעקב ל- {{public_body}}"
msgid "{{user_name}} sent a request to {{public_body}}"
-msgstr ""
+msgstr "{{user_name}} שלח בקשה ל- {{public_body}}"
msgid "{{username}} left an annotation:"
msgstr "{{username}} הוסיף הערה:"
msgid "{{user}} ({{user_admin_link}}) made this {{law_used_full}} request (<a href=\"{{request_admin_url}}\">admin</a>) to {{public_body_link}} (<a href=\"{{public_body_admin_url}}\">admin</a>)"
-msgstr ""
+msgstr "{{user}} ({{user_admin_link}}) יצר את בקשת {{law_used_full}} (<a href=\"{{request_admin_url}}\">מנהל</a>) הזאת אל {{public_body_link}} (<a href=\"{{public_body_admin_url}}\">מנהל</a>)"
msgid "{{user}} made this {{law_used_full}} request"
-msgstr ""
+msgstr "{{user}} הגיש בקשת {{law_used_full}} זו"
diff --git a/locale/hu_HU/app.po b/locale/hu_HU/app.po
index 971aa8b7b..cba0f0446 100644
--- a/locale/hu_HU/app.po
+++ b/locale/hu_HU/app.po
@@ -3,15 +3,16 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# <alaveteli@atlatszo.hu>, 2012.
+# alaveteli_hu <alaveteli@atlatszo.hu>, 2012
+# Ebatta <orsibatta@gmail.com>, 2013
msgid ""
msgstr ""
"Project-Id-Version: alaveteli\n"
"Report-Msgid-Bugs-To: http://github.com/sebbacon/alaveteli/issues\n"
-"POT-Creation-Date: 2012-12-18 10:11+0000\n"
-"PO-Revision-Date: 2012-12-18 10:14+0000\n"
+"POT-Creation-Date: 2013-05-30 09:46+0100\n"
+"PO-Revision-Date: 2013-05-30 08:54+0000\n"
"Last-Translator: louisecrow <louise@mysociety.org>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/alaveteli/language/hu_HU/)\n"
"Language: hu_HU\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -21,8 +22,8 @@ msgstr ""
msgid " This will appear on your {{site_name}} profile, to make it\\n easier for others to get involved with what you're doing."
msgstr "Ez a bemutatkozás megjelenik az ön {{site_name}} profiljában, így mások is láthatják, hogy ön milyen témakörrel foglalkozik. "
-msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)"
-msgstr "(<strong>NE</strong> politizáljon!!! Kérjük olvassa el <a href=\"%s\">moderálási alapelveinket</a>)!"
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
+msgstr "(<strong>NE</strong> politizáljon!!! Kérjük olvassa el <a href=\"{{url}}\">moderálási alapelveinket</a>)!"
msgid " (<strong>patience</strong>, especially for large files, it may take a while!)"
msgstr "(<strong>Kérjük, legyen türelemmel</strong>, a művelet végrehajtása némi időt vesz igénybe - különösen nagy fájlok esetén.)"
@@ -34,7 +35,7 @@ msgid " - view and make Freedom of Information requests"
msgstr " - közérdekű adat igénylések megtekintése és benyújtása"
msgid " - wall"
-msgstr ""
+msgstr " - fal"
msgid " <strong>Note:</strong>\\n We will send you an email. Follow the instructions in it to change\\n your password."
msgstr ""
@@ -53,9 +54,9 @@ msgstr " Adjon tanácsot, hogy hogyan lehet <strong>pontosítani</strong> az ada
msgid " Ideas on what <strong>other documents to request</strong> which the authority may hold. "
msgstr " Ötletek arra vonatkozóan, hogy milyen <strong>egyéb dokumentumokat lehet igényelni</strong>, amelyekkel az adatgazda rendelkezhet. "
-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."
+msgid " If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\\n You may be able to find the address on their website, or by phoning them up and asking."
msgstr ""
-" Ha ismer használható címet, kérjük <a href=\"%s\">küldje el nekünk</a>.\n"
+" Ha ismer használható címet, kérjük <a href=\"{{url}}\">küldje el nekünk</a>.\n"
" A címet megtalálhatja az adatgazda weboldalán, illetve telefonon is érdeklődhet. "
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."
@@ -94,22 +95,7 @@ msgid " when you send this message."
msgstr " részére, így a címzett megismerheti azt."
msgid "\"Hello! We have an <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">important message</a> for visitors outside {{country_name}}\""
-msgstr ""
-
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
-msgstr[0] "%2$s az alábbi %1$ddb közérdekűadat-igénylést kapta eddig"
-msgstr[1] "%2$s az alábbi %1$ddb közérdekűadat-igénylést kapta eddig"
-
-msgid "%d request"
-msgid_plural "%d requests"
-msgstr[0] "%d igénylés"
-msgstr[1] "%d igénylés"
-
-msgid "%d request made."
-msgid_plural "%d requests made."
-msgstr[0] "%d igénylés készült"
-msgstr[1] "%d igénylés készült"
+msgstr "\"Üdvözöljük! <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">Fontos üzenet</a> nem {{country_name}}\" országból való látogatók számára"
msgid "'Crime statistics by ward level for Wales'"
msgstr "'A kiskereki oktatási intézmények 2010-es évi ételszállítási szerződései'."
@@ -126,6 +112,9 @@ msgstr "'{{link_to_request}}', igénylés "
msgid "'{{link_to_user}}', a person"
msgstr "'{{link_to_user}}', személy "
+msgid "*unknown*"
+msgstr "*ismeretlen*"
+
msgid ",\\n\\n\\n\\nYours,\\n\\n{{user_name}}"
msgstr ""
",\n"
@@ -148,40 +137,20 @@ msgstr "2. Az adatigénylés összeállítása"
msgid "3. Now check your request"
msgstr "3. Az adatigénylés ellenőrzése"
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a> "
-
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
-msgstr "<a href=\"%s\">Kommentálhatja az igénylést</a> - amivel segítségére lehet az igénylőnek, valamint a téma iránt érdelődőknek."
-
-msgid "<a href=\"%s\">Are we missing a public authority?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Are you the owner of\\n any commercial copyright on this page?</a>"
-msgstr ""
-"<a href=\"%s\">Tulajdonosa az\n"
-" oldalon található bármely kereskedelmi célú szerzői jognak?</a> "
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
+msgstr "<a href=\"{{browse_url}}\">Böngésszen az összes között</a> vagy <a href=\"{{add_url}}\">ha kéri, felvesszük a hiányzót</a>. "
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
-msgstr "<a href=\"%s\">Böngésszen az összes között</a> vagy <a href=\"%s\">ha kéri, felvesszük a hiányzót</a>. "
+msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)"
+msgstr "<a href=\"{{url}}\">Kommentálhatja az igénylést</a> - amivel segítségére lehet az igénylőnek, valamint a téma iránt érdelődőknek."
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
-msgstr "<a href=\"%s\">Nem találja, amit keresett?</a> "
-
-msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
-msgstr "<a href=\"%s\">Jelentkezzen be</a> a jelszó módosításához, a feliratkozáshoz stb. (csak {{user_name}}) "
-
-msgid "<a href=\"%s\">details</a>"
-msgstr "<a href=\"%s\">részletek</a> "
-
-msgid "<a href=\"%s\">what's that?</a>"
-msgstr "<a href=\"%s\">mi ez?</a> "
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
+msgstr "<a href=\"{{url}}\">Jelentkezzen be</a> a jelszó módosításához, a feliratkozáshoz stb. (csak {{user_name}}) "
msgid "<p>All done! Thank you very much for your help.</p><p>There are <a href=\"{{helpus_url}}\">more things you can do</a> to help {{site_name}}.</p>"
msgstr "<p>Kész! Köszönjük segítségét.</p><p>Különféle <a href=\"{{helpus_url}}\">módokon tud</a> segítséget nyújtani a {{site_name}} számára.</p> "
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=\"{{find_authority_url}}\">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=\"{{complain_url}}\">how to complain</a>.\\n </li>\\n <li>We have <a href=\"{{other_means_url}}\">suggestions</a>\\n on other means to answer your question.\\n </li>\\n </ul>"
-msgstr ""
+msgstr "<p>Köszönjük! Néhány javaslat a következő lépést illetően:</p>\\n <ul>\\n <li>Ha igénylését egy másik adatgazdának is el szeretné küldeni, először másolja be alulra igénylésének szövegét, majd <a href=\"{{find_authority_url}}\">keresse ki a másik adatgazdát</a>.</li>\\n <li>Amennyiben meg kívánja támadni a közintézmény azon állítását, miszerint nem rendelkeznek a kért információval, itt ismerheti meg a\\n <a href=\"{{complain_url}}\">panasz benyújtásának menetét</a>.\\n </li>\\n <li>Van <a href=\"{{other_means_url}}\">javaslatunk</a>\\n arra vonatkozóan, hogy kérdésére hogyan lehetne választ kapni.n </li>\\n </ul>"
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 "<p>Köszönjük! Reméljük, nem kell már sokáig várakoznia.</p> <p>A jogszabályi előírások szerint azonnal választ kellett volna kapnia, de legkésőbb <strong>{{date_response_required_by}}</strong>-ig.</p> "
@@ -194,9 +163,6 @@ msgstr ""
msgid "<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>"
msgstr "<p>Köszönjük! Reméljük, nem kell sokáig várakoznia.</p><p>{{late_number_of_days}} napon belül választ kell kapnia. Amennyiben a válaszadás ennél több időt vesz igénybe, arról tájékoztatást kell kapnia (<a href=\"{{review_url}}\">részletek</a>).</p>"
-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 "<p>Köszönjük! Megvizsgáljuk, hogy mi történt, és megpróbáljuk orvosolni a helyzetet.</p><p>Ha a hiba a továbbítás során merült fel, és újabb e-mail címet talál, amely használható arra, hogy az adott közintézményhez fordulhasson közérdekű adatok igénylésével, az alábbi űrlapon tájékoztasson bennünket.</p> "
-
msgid "<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>"
msgstr "<p>Köszönjük! Igénylése több mint {{very_late_number_of_days}} munkanappal lejárt. A legtöbb igénylésre {{late_number_of_days}} munkanapon belül választ kell adni. Amennyiben panaszt kíván tenni, lásd alább.</p>"
@@ -221,17 +187,17 @@ msgstr "<p>Örülünk, hogy megkapta az összes kért információt! Kérjük, k
msgid "<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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 "<p>Örülünk, hogy megkapta a kért információk egy részét. Amennyiben a {{site_name}} weboldalt hasznosnak találta, <a href=\"{{donation_url}}\">adományával támogassa</a> a weboldalt üzemeltető jótékonysági szervezetet.</p><p>Amennyiben a hiányzó információkat is meg kívánja szerezni, a következőket kell tennie.</p> "
-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 "<p>Az igénylésben nem kell feltüntetnie e-mail címét ahhoz, hogy választ kapjon (<a href=\"%s\">részletek</a>).</p> "
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
+msgstr "<p>Az igénylésben nem kell feltüntetnie e-mail címét ahhoz, hogy választ kapjon (<a href=\"{{url}}\">részletek</a>).</p> "
-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 "<p>Az igénylésben nem kell feltüntetnie e-mail címét ahhoz, hogy választ kapjon, mivel azt a következő képernyőn kell megadnia (<a href=\"%s\">részletek</a>).</p>"
+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=\"{{url}}\">details</a>).</p>"
+msgstr "<p>Az igénylésben nem kell feltüntetnie e-mail címét ahhoz, hogy választ kapjon, mivel azt a következő képernyőn kell megadnia (<a href=\"{{url}}\">részletek</a>).</p>"
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 "<p>Igénylésében szerepel <strong>irányítószám</strong>. Amennyiben az nem kapcsolódik közvetlenül az igénylés tárgyához, kérjük, címének adatait távolítsa el, mivel az <strong>nyilvánosan is megjelenik az interneten</strong>.</p> "
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 {{late_number_of_days}} 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 ""
+msgstr "<p>{{law_used_full}} igénylését <strong>elküldtük</strong>.</p>\\nA válasz érkeztéről <p><strong>e-mailben értesítjük önt</strong>. Ha az adatgazda {{late_number_of_days}} munkanap elteltével sem válaszol, a határidő lejártakor emlékeztetőt\\n küldünk önnek.</p>\\n <p>Amennyiben adatigénylését máshol is megemlíti (például: internetes fórumon vagy blogbejegyzésben), kérjük, helyezzen el ott egy erre a KiMitTud oldalra mutató hivatkozást.\\n Az ilyen megosztásokról tegyen itt is említést hozzászólás formájában.</p>"
msgid "<p>{{site_name}} is currently in maintenance. You can only view existing requests. You cannot make new ones, add followups or annotations, or otherwise change the database.</p> <p>{{read_only}}</p>"
msgstr "<p>A {{site_name}} jelenleg karbantartás alatt áll. Csak a meglevő igényléseket tudja megtekinteni. Nem vehet fel új igénylést, fejleményt, hozzászólást és egyéb módon sem módosíthatja az adatbázist.</p> <p>{{read_only}}</p> "
@@ -242,13 +208,8 @@ msgstr ""
"levélszemetet tartalmazó mappákat is. Előfordulhat, hogy üzeneteink ide kerülnek.</small>\n"
"</p> "
-msgid "<span id='follow_count'>%d</span> person is following this authority"
-msgid_plural "<span id='follow_count'>%d</span> people are following this authority"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
-msgstr "Saját magamról is kérhetek információt? <br><strong>Nem!</strong> (<a href=\"%s\">Itt olvashat arról, hogy miért nem</a>)"
+msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
+msgstr "Saját magamról is kérhetek információt? <br><strong>Nem!</strong> (<a href=\"{{url}}\">Itt olvashat arról, hogy miért nem</a>)"
msgid "<strong><code>commented_by:tony_bowden</code></strong> to search annotations made by Tony Bowden, typing the name as in the URL."
msgstr "<strong><code>commented_by:tony_bowden</code></strong> Kovács János hozzászólásainak kereséséhez a név beírásával az URL szerint."
@@ -304,10 +265,10 @@ msgstr ""
" <small>(előfordulhat, hogy csak visszaigazolás érkezett)</small> "
msgid "<strong>Note:</strong> Because we're testing, requests are being sent to {{email}} rather than to the actual authority."
-msgstr ""
+msgstr "<strong>Megjegyzés:</strong> Mivel egyelőre a tesztelést végezzük, az igényléseket az adott adatgazda helyett a(z) {{email}} e-mail címre küldjük."
msgid "<strong>Note:</strong> You're sending a message to yourself, presumably\\n to try out how it works."
-msgstr ""
+msgstr "<strong>Megjegyzés:</strong> Ezzel saját magának küldhet próbaüzenetet."
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 ""
@@ -315,13 +276,13 @@ msgstr ""
" E-mailt küldünk új e-mail címére. Kövesse az\n"
" abban található utasításokat az e-mail cím módosításának megerősítéséhez!"
-msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"%s\">click here</a>."
+msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"{{url}}\">click here</a>."
msgstr ""
"<strong>Adatvédelmi nyilatkozat:</strong> Amennyiben önmagáról kíván személyes\n"
-" jellegű információt igényelni, <a href=\"%s\">kattintson ide</a>. "
+" jellegű információt igényelni, <a href=\"{{url}}\">kattintson ide</a>. "
msgid "<strong>Privacy note:</strong> Your photo will be shown in public on the Internet,\\n wherever you do something on {{site_name}}."
-msgstr ""
+msgstr "<strong>Adatvédelmi nyilatkozat:</strong> Profilképe a {{site_name}} weboldalon\\n nyilvánosan megjelenik."
msgid "<strong>Privacy warning:</strong> Your message, and any response\\n to it, will be displayed publicly on this website."
msgstr ""
@@ -338,10 +299,10 @@ msgid "<strong>did not have</strong> the information requested."
msgstr "<strong>nem kapta meg</strong> a kért információt. "
msgid "A <a href=\"{{request_url}}\">follow up</a> to <em>{{request_title}}</em> was sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
-msgstr ""
+msgstr "A(z) <em>{{request_title}}</em> adatigénylésre vonatkozóan {{info_request_user}} <a href=\"{{request_url}}\">emlékeztetőt</a> küldött a(z) {{public_body_name}} részére {{date}} napon."
msgid "A <a href=\"{{request_url}}\">response</a> to <em>{{request_title}}</em> was sent by {{public_body_name}} to {{info_request_user}} on {{date}}. The request status is: {{request_status}}"
-msgstr ""
+msgstr "A(z) {{public_body_name}} <a href=\"{{request_url}}\">választ küldött</a> a(z) <em>{{request_title}}</em> adatigénylésre vonatkozóan {{info_request_user}} részére {{date}} napon. Az adatigénylés állapota: {{request_status}}."
msgid "A <strong>summary</strong> of the response if you have received it by post. "
msgstr "A válasz <strong>összefoglalása</strong>, amennyiben azt postán kapta meg. "
@@ -350,7 +311,7 @@ msgid "A Freedom of Information request"
msgstr "Közérdekűadat-igénylés "
msgid "A new request, <em><a href=\"{{request_url}}\">{{request_title}}</a></em>, was sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
-msgstr ""
+msgstr "{{info_request_user}} új adatigénylést <em><a href=\"{{request_url}}\">{{request_title}}</a></em> küldött a(z) {{public_body_name}} részére {{date}} napon."
msgid "A public authority"
msgstr "Egy adatgazda"
@@ -361,6 +322,9 @@ msgstr "A válasz <strong>postai úton</strong> érkezik"
msgid "A strange reponse, required attention by the {{site_name}} team"
msgstr "Furcsa válasz, amelyre felfigyelt a {{site_name}} csapata "
+msgid "A vexatious request"
+msgstr "Zaklató jellegű igénylés"
+
msgid "A {{site_name}} user"
msgstr "{{site_name}} felhasználó "
@@ -370,6 +334,15 @@ msgstr "Magamról: "
msgid "Act on what you've learnt"
msgstr "Tegyen lépéseket a megismert tények alapján "
+msgid "Acts as xapian/acts as xapian job"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Action"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Model"
+msgstr ""
+
msgid "Add an annotation"
msgstr "Hozzászólás"
@@ -412,7 +385,7 @@ msgid "Also called {{other_name}}."
msgstr "Más néven: {{other_name}}."
msgid "Also send me alerts by email"
-msgstr ""
+msgstr "E-mailben is kérek értesítőt"
msgid "Alter your subscription"
msgstr "Feliratkozások módosítása "
@@ -421,7 +394,7 @@ msgid "Although all responses are automatically published, we depend on\\nyou, t
msgstr " Minden választ automatikusan közzéteszünk, de azokat az eredeti igénylő/n - jelen esetben Ön - értékelheti."
msgid "An <a href=\"{{request_url}}\">annotation</a> to <em>{{request_title}}</em> was made by {{event_comment_user}} on {{date}}"
-msgstr ""
+msgstr "{{event_comment_user}} <a href=\"{{request_url}}\">hozzászólást</a> küldött a(z) <em>{{request_title}}</em> adatigénylésre vonatkozóan {{date}} napon."
msgid "An <strong>error message</strong> has been received"
msgstr "<strong>Hibaüzenet</strong> érkezett "
@@ -430,7 +403,7 @@ msgid "An Environmental Information Regulations request"
msgstr "Környezeti információ igénylése "
msgid "An anonymous user"
-msgstr ""
+msgstr "Névtelen felhasználó"
msgid "Annotation added to request"
msgstr "Hozzászólás készült az igényléshez"
@@ -447,18 +420,27 @@ msgstr ""
" <strong>nem</strong> küldjük el a(z) {{public_body_name}} részére. "
msgid "Anonymous user"
-msgstr ""
+msgstr "Névtelen felhasználó"
msgid "Anyone:"
msgstr "Bárki:"
+msgid "Applies to"
+msgstr "A következőre vonatkozik:"
+
+msgid "Are we missing a public authority?"
+msgstr ""
+
+msgid "Are you the owner of any commercial copyright on this page?"
+msgstr "Tulajdonosa az oldalon található bármely kereskedelmi célú szerzői jognak?"
+
msgid "Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries."
msgstr "Kérése irányulhat <strong>konkrét</strong> dokumentumokra vagy információkra, de az oldal általános tudakozódásra nem alkalmas. "
-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>)."
+msgid "At the bottom of this page, write a reply to them trying to persuade them to scan it in\\n (<a href=\"{{url}}\">more details</a>)."
msgstr ""
"Az oldal alsó részén írjon választ, amiben kéri a dokumentum szkennelését\n"
-" (<a href=\"%s\">további részletek</a>). "
+" (<a href=\"{{url}}\">további részletek</a>). "
msgid "Attachment (optional):"
msgstr "Melléklet (opcionális): "
@@ -493,6 +475,12 @@ msgstr "A vonatkozó jogszabály értelmében a(z) {{public_body_link}} munkat
msgid "By law, {{public_body_link}} should normally have responded <strong>promptly</strong> and"
msgstr "A vonatkozó jogszabály értelmében a(z) {{public_body_link}} adatgazdának normális esetben"
+msgid "Calculated home page"
+msgstr ""
+
+msgid "Can't find the one you want?"
+msgstr "Nem találja, amit keresett?"
+
msgid "Cancel a {{site_name}} alert"
msgstr "{{site_name}} értesítő törlése "
@@ -503,7 +491,7 @@ msgid "Cancel, return to your profile page"
msgstr "Mégse, visszatérés a profiloldalra "
msgid "Censor rule"
-msgstr ""
+msgstr "Cenzúrára vonatkozó szabály "
msgid "CensorRule|Last edit comment"
msgstr "CensorRule|Last edit comment"
@@ -512,7 +500,7 @@ msgid "CensorRule|Last edit editor"
msgstr "CensorRule|Last edit editor"
msgid "CensorRule|Regexp"
-msgstr ""
+msgstr "CensorRule|Regexp"
msgid "CensorRule|Replacement"
msgstr "CensorRule|Replacement"
@@ -563,13 +551,13 @@ msgid "Clarification"
msgstr "Pontosítás"
msgid "Clarify your FOI request - "
-msgstr ""
+msgstr "A közérdekűadat-igénylés pontosítása"
msgid "Classify an FOI response from "
msgstr "-tól/-től származó közérdekű adat igénylésére érkező válasz besorolása "
msgid "Clear photo"
-msgstr ""
+msgstr "Jó minőségű fénykép"
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\\nreview, asking them to find out why response to the request has been so slow."
msgstr ""
@@ -580,10 +568,10 @@ msgid "Click on the link below to send a message to {{public_body}} reminding th
msgstr "Az alábbi hivatkozásra kattintva üzenetet küldhet a(z) {{public_body}} részére, amelyben emlékezteti őket, hogy az igénylésre válaszoljanak. "
msgid "Close"
-msgstr ""
+msgstr "Bezárás"
msgid "Comment"
-msgstr ""
+msgstr "Megjegyzés"
msgid "Comment|Body"
msgstr "Comment|Body"
@@ -598,22 +586,22 @@ msgid "Comment|Visible"
msgstr "Comment|Visible"
msgid "Confirm you want to follow all successful FOI requests"
-msgstr ""
+msgstr "Erősítse meg, hogy követni kívánja az összes közérdekűadat-igénylést"
msgid "Confirm you want to follow new requests"
-msgstr ""
+msgstr "Erősítse meg, hogy követni kívánja az új adatigényléseket"
msgid "Confirm you want to follow new requests or responses matching your search"
-msgstr ""
+msgstr "Erősítse meg, hogy követni kívánja az új adatigényléseket vagy a keresési feltételeknek megfelelő válaszokat"
msgid "Confirm you want to follow requests by '{{user_name}}'"
-msgstr ""
+msgstr "Erősítse meg, hogy követni kívánja '{{user_name}}' adatigényléseit"
msgid "Confirm you want to follow requests to '{{public_body_name}}'"
-msgstr ""
+msgstr "Erősítse meg, hogy követni kívánja a(z) '{{public_body_name}}' részére küldött adatigényléseket"
msgid "Confirm you want to follow the request '{{request_title}}'"
-msgstr ""
+msgstr "Erősítse meg, hogy követni kívánja a(z) '{{request_title}}' adatigénylést"
msgid "Confirm your FOI request to "
msgstr "{{public_body_name}} számára küldött közérdekűadat-igénylés megerősítése. "
@@ -631,13 +619,13 @@ msgid "Confirm your new email address on {{site_name}}"
msgstr "Új e-mail címének megerősítése a {{site_name}} weboldalon "
msgid "Considered by administrators as not an FOI request and hidden from site."
-msgstr ""
+msgstr "Az adminisztrátorok szerint az adatigénylés nem közérdekű, és ezért nem jelenik meg."
msgid "Considered by administrators as vexatious and hidden from site."
-msgstr ""
+msgstr "Az adminisztrátorok szerint az adatigénylés zaklató jellegű, és ezért nem jelenik meg."
msgid "Contact {{recipient}}"
-msgstr ""
+msgstr "Kapcsolatfelvétel a(z) {{recipient}} képviselőjével"
msgid "Contact {{site_name}}"
msgstr "Kapcsolatfelvétel a {{site_name}} üzemeltetőjével"
@@ -662,9 +650,15 @@ msgstr "Jelenleg a(z) {{public_body_link}} <strong>válaszát</strong> várjuk.
msgid "Date:"
msgstr "Dátum: "
+msgid "Dear {{name}},"
+msgstr ""
+
msgid "Dear {{public_body_name}},"
msgstr "Tisztelt {{public_body_name}}! "
+msgid "Default locale"
+msgstr ""
+
msgid "Delayed response to your FOI request - "
msgstr "Késedelmes válasz a közérdekű adatok igénylésére - "
@@ -674,6 +668,9 @@ msgstr "Késedelmes. "
msgid "Delivery error"
msgstr "Továbbítási hiba "
+msgid "Destroy {{name}}"
+msgstr ""
+
msgid "Details of request '"
msgstr "Igénylés részletei ' "
@@ -684,6 +681,9 @@ msgid "Disclaimer: This message and any reply that you make will be published on
msgstr "Jognyilatkozat: Ezt az üzenetet és az ön válaszát is közzétesszük az interneten. Az adatvédelemre és szerzői jogokra vonatkozó politikánk: "
msgid "Disclosure log"
+msgstr "Közzétételi napló"
+
+msgid "Disclosure log URL"
msgstr ""
msgid "Don't want to address your message to {{person_or_body}}? You can also write to:"
@@ -693,7 +693,7 @@ msgid "Done"
msgstr "Kész. "
msgid "Done &gt;&gt;"
-msgstr ""
+msgstr "Kész &gt;&gt;"
msgid "Download a zip file of all correspondence"
msgstr "Az adatigényléssel kapcsolatos eddigi teljes levelezés letöltése <i>zip</i> formátumban"
@@ -704,14 +704,14 @@ msgstr "Eredeti melléklet letöltése "
msgid "EIR"
msgstr "Környezeti információról szóló rendeletet "
+msgid "Edit"
+msgstr ""
+
msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
msgstr ""
"Módosítsa a fenti üzenetet úgy, hogy <strong>részletezi</strong>,\n"
" hogy miért elégedetlen a kapott válasszal."
-msgid "Edit language version:"
-msgstr "A nyelv módosítása: "
-
msgid "Edit text about you"
msgstr "Bemutatkozásom módosítása "
@@ -733,7 +733,7 @@ msgstr "E-mailben kérek értesítést az igényléssel kapcsolatos jövőbeli f
msgid "Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>"
msgstr "Írja be azokat a szavakat, amelyeket szóközzel elválasztva kíván megjeleníteni, pl. <strong>kapaszkodó sáv</strong> "
-msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"%s\">contact us</a> if you need more)."
+msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"{{url}}\">contact us</a> if you need more)."
msgstr ""
msgid "Environmental Information Regulations"
@@ -751,17 +751,20 @@ msgstr "Eseménytörténet"
msgid "Event history details"
msgstr "Eseménytörténet részletei "
-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>)."
+msgid "Event {{id}}"
msgstr ""
-"Minden, amit itt beír, \n"
-" örökre <strong>látható lesz</strong> ezen\n"
-" a weboldalon. (<a href=\"%s\">Itt olvashat arról, hogy miért van ez így</a>) "
-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>)."
+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=\"{{url}}\">why?</a>)."
msgstr ""
"Az <strong>ön neve</strong>, valamint minden, amit itt beír,\n"
" örökre <strong>látható marad</strong> ezen\n"
-" a weboldalon. ( <a href=\"%s\">... Miért?</a> )<br/>"
+" a weboldalon. ( <a href=\"{{url}}\">... Miért?</a> )<br/>"
+
+msgid "Everything that you enter on this page\\n will be <strong>displayed publicly</strong> on\\n this website forever (<a href=\"{{url}}\">why?</a>)."
+msgstr ""
+"Minden, amit itt beír, \n"
+" örökre <strong>látható lesz</strong> ezen\n"
+" a weboldalon. (<a href=\"{{url}}\">Itt olvashat arról, hogy miért van ez így</a>) "
msgid "FOI"
msgstr "KözAdat"
@@ -769,6 +772,9 @@ msgstr "KözAdat"
msgid "FOI email address for {{public_body}}"
msgstr "{{public_body}} közérdekű adatok igényléséhez használt e-mail címe "
+msgid "FOI request – {{title}}"
+msgstr ""
+
msgid "FOI requests"
msgstr "Közérdekűadat-igénylések "
@@ -779,25 +785,25 @@ msgid "FOI requests {{start_count}} to {{end_count}} of {{total_count}}"
msgstr "közérdekűadat-igénylések: {{start_count}} - {{end_count}}, összesen: {{total_count}} "
msgid "FOI response requires admin ({{reason}}) - {{title}}"
-msgstr ""
+msgstr "A közérdekűadat-igénylés megválaszolásához adminisztrátori beavatkozás szükséges ({{reason}}) - {{title}}"
msgid "Failed to convert image to a PNG"
msgstr "Nem sikerült a kép PNG formátumba való átalakítása "
-msgid "Failed to convert image to the correct size: at %{cols}x%{rows}, need %{width}x%{height}"
-msgstr "Nem sikerült a képet a megfelelő méretre alakítani: %{cols}x%{rows} esetén: %{width}x%{height} "
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
+msgstr "Nem sikerült a képet a megfelelő méretre alakítani: {{cols}}x{{rows}} esetén: {{width}}x{{height}} "
msgid "Filter"
msgstr "Szűrő"
-msgid "First, type in the <strong>name of the UK public authority</strong> you'd \\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"%s#%s\">why?</a>)."
+msgid "First, type in the <strong>name of the UK public authority</strong> you'd\\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"{{url}}\">why?</a>)."
msgstr ""
"Először is keresse ki a KiMitTud adatbázisából azt az <strong>adatgazdát</strong>, amelyiktől \n"
" információt szeretne kérni. <strong>A vonatkozó jogszabály értelmében az adatgazdának kötelező válaszolnia.</strong>\n"
-" <a href=\"%s#%s\">... Miért?</a><br/>Írja be a keresett adatgazda nevét, vagy nevének (ismert) részletét az alábbi mezőbe!"
+" <a href=\"{{url}}\">... Miért?</a><br/>Írja be a keresett adatgazda nevét, vagy nevének (ismert) részletét az alábbi mezőbe!"
msgid "Foi attachment"
-msgstr ""
+msgstr "Közérdekűadat-igénylés melléklete"
msgid "FoiAttachment|Charset"
msgstr "FoiAttachment|Charset"
@@ -821,22 +827,22 @@ msgid "FoiAttachment|Within rfc822 subject"
msgstr "FoiAttachment|Within rfc822 subject"
msgid "Follow"
-msgstr ""
+msgstr "Követés"
msgid "Follow all new requests"
-msgstr ""
+msgstr "Minden új igénylés követése"
msgid "Follow new successful responses"
-msgstr ""
+msgstr "Új sikeres válaszok követése"
msgid "Follow requests to {{public_body_name}}"
-msgstr ""
+msgstr "{{public_body_name}} részére küldött adatigénylések követése"
msgid "Follow these requests"
msgstr "Értesítő igénylése az adatigénylésekkel kapcsolatos fejlemények vonatkozásában."
msgid "Follow things matching this search"
-msgstr ""
+msgstr "Keresési feltételnek megfelelő elemek követése"
msgid "Follow this authority"
msgstr "Kísérje figyelemmel ezt az adatgazdát!"
@@ -845,7 +851,7 @@ msgid "Follow this link to see the request:"
msgstr "Ezen a hivatkozáson tekinthető meg az igénylés:"
msgid "Follow this person"
-msgstr ""
+msgstr "Ezen felhasználó követése"
msgid "Follow this request"
msgstr "Értesítő igénylése az adatigényléssel kapcsolatos fejlemények vonatkozásában."
@@ -866,7 +872,7 @@ msgid "Follow us on twitter"
msgstr "Kövessen bennünket a twitteren "
msgid "Followups cannot be sent for this request, as it was made externally, and published here by {{public_body_name}} on the requester's behalf."
-msgstr ""
+msgstr "Ehhez az igényléshez nem küldhető emlékeztető üzenet, mivel az adatigénylést máshol nyújtották be, és itt az igénylő kérésére a(z) {{public_body_name}} tette közzé."
msgid "For an unknown reason, it is not possible to make a request to this authority."
msgstr "Ismeretlen okból kifolyólag ennek a közintézménynek nem lehet igénylést küldeni. "
@@ -874,8 +880,8 @@ msgstr "Ismeretlen okból kifolyólag ennek a közintézménynek nem lehet igén
msgid "Forgotten your password?"
msgstr "Elfelejtette jelszavát? "
-msgid "Found %d public authority %s"
-msgid_plural "Found %d public authorities %s"
+msgid "Found {{count}} public authority {{description}}"
+msgid_plural "Found {{count}} public authorities {{description}}"
msgstr[0] ""
msgstr[1] ""
@@ -912,13 +918,13 @@ msgid "Freedom of information requests to"
msgstr "Közérdekű adatok, melyeket a ettől az adatgazdától igényeltek: "
msgid "From"
-msgstr ""
+msgstr "Feladó"
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
"Az igénylési oldalról próbáljon választ adni egy adott üzenetre ahelyett, hogy\n"
" általános nyomon követést küldene. Ha általános nyomon követést kíván küldeni, és ismer olyan\n"
-" e-mail címet, amely a megfelelő helyre kerül, <a href=\"%s\">küldje el nekünk is</a>. "
+" e-mail címet, amely a megfelelő helyre kerül, <a href=\"{{url}}\">küldje el nekünk is</a>. "
msgid "From:"
msgstr "Feladó:"
@@ -929,6 +935,18 @@ msgstr "ITT ÍRJA LE PANASZÁNAK RÉSZLETEIT "
msgid "Handled by post."
msgstr "Postai úton kézbesítve"
+msgid "Has tag string/has tag string tag"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Model"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Name"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Value"
+msgstr ""
+
msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
msgstr "Üdvözöljük. {{country_name}} területén illetékes adatgazdáktól a {{link_to_website}} weboldalon igényelhet közérdekű adatokat. "
@@ -955,9 +973,12 @@ msgstr ""
" olvassa el, és segítsen nekünk, hogy mindenki számára rendezett legyen ez a webhely.\n"
" Köszönjük. "
-msgid "Holiday"
+msgid "Hide request"
msgstr ""
+msgid "Holiday"
+msgstr "Ünnepnap"
+
msgid "Holiday|Day"
msgstr "Holiday|Day"
@@ -967,6 +988,9 @@ msgstr "Holiday|Description"
msgid "Home"
msgstr "Címlap"
+msgid "Home page"
+msgstr ""
+
msgid "Home page of authority"
msgstr "Az adatgazda weboldala "
@@ -991,7 +1015,7 @@ msgid "I don't want to do any more tidying now!"
msgstr "Nem szeretnék többet rendet rakni most! "
msgid "I like this request"
-msgstr ""
+msgstr "Kedvelem ezt az igénylést"
msgid "I would like to <strong>withdraw this request</strong>"
msgstr "<strong>Vissza szeretném vonni az igénylést</strong> "
@@ -1019,8 +1043,17 @@ msgstr "Megkaptam <strong>az információk egy részét</strong>."
msgid "I've received an <strong>error message</strong>"
msgstr "<strong>Hibaüzenetet</strong> kaptam "
-msgid "If the address is wrong, or you know a better address, please <a href=\"%s\">contact us</a>."
-msgstr "Ha hibás a cím, vagy ismer egy jobb címet, <a href=\"%s\">lépjen velünk kapcsolatba</a>. "
+msgid "I've received an error message"
+msgstr ""
+
+msgid "Id"
+msgstr ""
+
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Ha hibás a cím, vagy ismer egy jobb címet, <a href=\"{{url}}\">lépjen velünk kapcsolatba</a>. "
+
+msgid "If the error was a delivery failure, and you can find an up to date FOI email address for the authority, please tell us using the form below."
+msgstr ""
msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
msgstr ""
@@ -1028,28 +1061,28 @@ msgstr ""
"vagy {{user}} részére más tárgy miatt e-mailt kíván küldeni, küldjön \n"
"e-mail üzenetet a(z) {{contact_email}} részére, hogy segítséget kapjon. "
-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>)."
+msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"{{url}}\">details</a>)."
msgstr ""
"Ha nem elégedett az \n"
" adatgazda válaszával, joga van\n"
-" panaszt tenni (<a href=\"%s\">részletek</a>). "
+" panaszt tenni (<a href=\"{{url}}\">részletek</a>). "
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
-msgstr "Ha továbbra is fennáll a probléma, <a href=\"%s\">lépjen velünk kapcsolatba</a>. "
+msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Ha továbbra is fennáll a probléma, <a href=\"{{url}}\">lépjen velünk kapcsolatba</a>. "
-msgid "If you are the requester, then you may <a href=\"%s\">sign in</a> to view the request."
-msgstr "Ha ön az igénylő, az igénylés megtekintéséhez <a href=\"%s\">bejelentkezhet</a>. "
+msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request."
+msgstr "Ha ön az igénylő, az igénylés megtekintéséhez <a href=\"{{url}}\">bejelentkezhet</a>. "
-msgid "If you are thinking of using a pseudonym,\\n please <a href=\"%s\">read this first</a>."
+msgid "If you are thinking of using a pseudonym,\\n please <a href=\"{{url}}\">read this first</a>."
msgstr ""
"Amenniyben álnevet kíván használni,\n"
-"kérjük olvassa el előbb az ezzel kapcsolatos <a href=\"%s\">tudnivalókat</a>!"
+"kérjük olvassa el előbb az ezzel kapcsolatos <a href=\"{{url}}\">tudnivalókat</a>!"
msgid "If you are {{user_link}}, please"
msgstr "Ha ön {{user_link}}, kérjük, "
msgid "If you believe this request is not suitable, you can report it for attention by the site administrators"
-msgstr ""
+msgstr "Ha úgy gondolja, hogy az igénylés nem elfogadható, jelentheti az adminisztrátorok részére"
msgid "If you can't click on it in the email, you'll have to <strong>select and copy\\nit</strong> from the email. Then <strong>paste it into your browser</strong>, into the place\\nyou would type the address of any other webpage."
msgstr ""
@@ -1074,7 +1107,7 @@ msgid "If you have not done so already, please write a message below telling the
msgstr "Ha még nem tette meg eddig, írjon alább üzenetet, amelyben tájékoztatja a közintézményt, hogy igénylését visszavonta. Máskülönben nem fogják tudni, hogy az igénylés vissza lett vonva. "
msgid "If you reply to this message it will go directly to {{user_name}}, who will\\nlearn your email address. Only reply if that is okay."
-msgstr ""
+msgstr "Ha válaszol erre az üzenetre, válaszát közvetlenül {{user_name}} fogja\\nmegkapni, aki látni fogja az ön e-mail címét. Csak akkor válaszoljon, ha ezzel egyetért."
msgid "If you use web-based email or have \"junk mail\" filters, also check your\\nbulk/spam mail folders. Sometimes, our messages are marked that way."
msgstr ""
@@ -1097,9 +1130,12 @@ msgstr ""
"Ha böngészőjében engedélyezve van a sütik fogadása, és látja ezt az üzenetet,\n"
"valószínűleg hiba van a kiszolgálónkkal. "
-msgid "Incoming message"
+msgid "Incoming email address"
msgstr ""
+msgid "Incoming message"
+msgstr "Beérkező üzenet"
+
msgid "IncomingMessage|Cached attachment text clipped"
msgstr "IncomingMessage|Cached attachment text clipped"
@@ -1128,13 +1164,13 @@ msgid "IncomingMessage|Valid to reply to"
msgstr "IncomingMessage|Valid to reply to"
msgid "Individual requests"
-msgstr ""
+msgstr "Egyéni igénylések"
msgid "Info request"
-msgstr ""
+msgstr "Információ kérése "
msgid "Info request event"
-msgstr ""
+msgstr "Információkérési esemény "
msgid "InfoRequestEvent|Calculated state"
msgstr "InfoRequestEvent|Calculated state"
@@ -1158,22 +1194,22 @@ msgid "InfoRequest|Allow new responses from"
msgstr "InfoRequest|Allow new responses from"
msgid "InfoRequest|Attention requested"
-msgstr ""
+msgstr "InfoRequest|Attention requested"
msgid "InfoRequest|Awaiting description"
msgstr "InfoRequest|Awaiting description"
msgid "InfoRequest|Comments allowed"
-msgstr ""
+msgstr "InfoRequest|Comments allowed"
msgid "InfoRequest|Described state"
msgstr "InfoRequest|Described state"
msgid "InfoRequest|External url"
-msgstr ""
+msgstr "InfoRequest|External url"
msgid "InfoRequest|External user name"
-msgstr ""
+msgstr "InfoRequest|External user name"
msgid "InfoRequest|Handle rejected responses"
msgstr "InfoRequest|Handle rejected responses"
@@ -1214,6 +1250,9 @@ msgstr ""
"böngészőt használni. Nyomja meg a frissítés gombot, ha újra szeretne próbálkozni."
msgid "Items matching the following conditions are currently displayed on your wall."
+msgstr "Az alábbi feltételeknek megfelelő elemek az üzenőfalán láthatók."
+
+msgid "Items sent in last month"
msgstr ""
msgid "Joined in"
@@ -1222,8 +1261,11 @@ msgstr "Regisztráció éve:"
msgid "Joined {{site_name}} in"
msgstr "{{site_name}} regisztráció éve:"
-msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)."
-msgstr "Fogalmazzon <strong>lényegre törően</strong>, hogy biztosan azt kapja, amire szüksége van! (<a href=\"%s\">...Miért?</a>)"
+msgid "Just one more thing"
+msgstr ""
+
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
+msgstr "Fogalmazzon <strong>lényegre törően</strong>, hogy biztosan azt kapja, amire szüksége van! (<a href=\"{{url}}\">...Miért?</a>)"
msgid "Keywords"
msgstr "Kulcsszavak:"
@@ -1242,14 +1284,32 @@ msgstr ""
msgid "Link to this"
msgstr "Hivatkozása ide "
+msgid "List all"
+msgstr ""
+
msgid "List of all authorities (CSV)"
msgstr "Az rendszerünkben található adatgazdák listája (CSV) "
+msgid "Listing FOI requests"
+msgstr ""
+
+msgid "Listing public authorities"
+msgstr ""
+
+msgid "Listing public authorities matching '{{query}}'"
+msgstr ""
+
+msgid "Listing tracks"
+msgstr ""
+
+msgid "Listing users"
+msgstr ""
+
msgid "Log in to download a zip file of {{info_request_title}}"
msgstr "Jelentkezzen be, hogy a {{info_request_title}} tárgyú adatigénylési zip-fájlként letölthesse"
msgid "Log into the admin interface"
-msgstr ""
+msgstr "Bejelentkezés az adminisztrátori interfészre"
msgid "Long overdue."
msgstr "Régóta lejárt"
@@ -1258,22 +1318,22 @@ msgid "Made between"
msgstr "Készült:"
msgid "Mail server log"
-msgstr ""
+msgstr "Levelezőkiszolgáló napló"
msgid "Mail server log done"
-msgstr ""
+msgstr "Levelezőkiszolgáló napló elkészült"
msgid "MailServerLogDone|Filename"
-msgstr ""
+msgstr "MailServerLogDone|Filename"
msgid "MailServerLogDone|Last stat"
-msgstr ""
+msgstr "MailServerLogDone|Last stat"
msgid "MailServerLog|Line"
-msgstr ""
+msgstr "MailServerLog|Line"
msgid "MailServerLog|Order"
-msgstr ""
+msgstr "MailServerLog|Order"
msgid "Make a new <strong>Environmental Information</strong> request"
msgstr "Új <strong>környezeti információ</strong> igénylés "
@@ -1302,10 +1362,10 @@ msgid "Make your own request"
msgstr "Adatigénylés létrehozása "
msgid "Many requests"
-msgstr ""
+msgstr "Sok igénylés"
msgid "Message"
-msgstr ""
+msgstr "Üzenet"
msgid "Message sent using {{site_name}} contact form, "
msgstr "Üzenet elküldve a {{site_name}} kapcsolatfelvételi űrlapján, "
@@ -1317,7 +1377,7 @@ msgid "More about this authority"
msgstr "További információ erről az adatgazdáról"
msgid "More requests..."
-msgstr ""
+msgstr "Több igénylés..."
msgid "More similar requests"
msgstr "Több hasonló igénylés "
@@ -1335,7 +1395,7 @@ msgid "My requests"
msgstr " Adatigényléseim "
msgid "My wall"
-msgstr ""
+msgstr "Saját üzenőfal"
msgid "Name can't be blank"
msgstr "Név nem lehet üres "
@@ -1346,6 +1406,9 @@ msgstr "Név már foglalt "
msgid "New Freedom of Information requests"
msgstr "Új közérdekűadat-igénylések "
+msgid "New censor rule"
+msgstr ""
+
msgid "New e-mail:"
msgstr "Új e-mail: "
@@ -1359,7 +1422,7 @@ msgid "New password: (again)"
msgstr "Új jelszó: (újból) "
msgid "New response to '{{title}}'"
-msgstr ""
+msgstr "Új válasz a(z) '{{title}}' igénylésre"
msgid "New response to your FOI request - "
msgstr "Új válasz közérdekű adatok igénylésére - "
@@ -1391,6 +1454,9 @@ msgstr "Nincsen találat. "
msgid "No similar requests found."
msgstr "Nincsen hasonló igénylés. "
+msgid "No tracked things found."
+msgstr ""
+
msgid "Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet."
msgstr "{{public_body_name}} még nem kapott közérdekűadat-igénylést a KiMitTud weboldalon keresztül."
@@ -1400,9 +1466,12 @@ msgstr "Nem található."
msgid "None made."
msgstr "Még nincs."
-msgid "Note that the requester will not be notified about your annotation, because the request was published by {{public_body_name}} on their behalf."
+msgid "Not a valid FOI request"
msgstr ""
+msgid "Note that the requester will not be notified about your annotation, because the request was published by {{public_body_name}} on their behalf."
+msgstr "Az adatigénylő nem kap értesítést a hozzászólásról, mert az igénylést maga a(z) {{public_body_name}} hozta nyilvánosságra."
+
msgid "Now check your email!"
msgstr "Kérjük, ellenőrizze postafiókját! "
@@ -1419,7 +1488,7 @@ msgid "OR remove the existing photo"
msgstr "VAGY meglevő fénykép eltávolítása "
msgid "Offensive? Unsuitable?"
-msgstr ""
+msgstr "Sértő? Nem alkalmas?"
msgid "Oh no! Sorry to hear that your request was refused. Here is what to do now."
msgstr "Sajnáljuk, hogy igénylését elutasították. A következőket teheti: "
@@ -1445,6 +1514,9 @@ msgstr "Egy személy található "
msgid "One public authority found"
msgstr "Egy adatgazda található a rendszerünkben"
+msgid "Only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL – don't worry about breaking URLs through renaming, as the history is used to redirect"
+msgstr ""
+
msgid "Only requests made using {{site_name}} are shown."
msgstr "Csak a {{site_name}} weboldalon benyújtott igénylések láthatók. "
@@ -1464,7 +1536,7 @@ msgid "Other:"
msgstr "Egyéb: "
msgid "Outgoing message"
-msgstr ""
+msgstr "Kimenő üzenet"
msgid "OutgoingMessage|Body"
msgstr "OutgoingMessage|Body"
@@ -1497,7 +1569,7 @@ msgid "Paste this link into emails, tweets, and anywhere else:"
msgstr "Másolja be ezt a hivatkozást e-mailbe, tweetbe és máshova: "
msgid "People"
-msgstr ""
+msgstr "Személyek"
msgid "People {{start_count}} to {{end_count}} of {{total_count}}"
msgstr "Személyek: {{start_count}} - {{end_count}}, összesen: {{total_count}} "
@@ -1517,8 +1589,8 @@ msgstr "Kérjük, hajtsa végre az igénylések besorolását. "
msgid "Please"
msgstr "Kérjük, "
-msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
-msgstr "Kérjük, <a href=\"%s\">lépjen velünk kapcsolatba</a>, hogy kijavítsuk a hibát. "
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
+msgstr "Kérjük, <a href=\"{{url}}\">lépjen velünk kapcsolatba</a>, hogy kijavítsuk a hibát. "
msgid "Please <strong>answer the question above</strong> so we know whether the "
msgstr "Kérjük, <strong>válaszoljon a fenti kérdésre</strong>, hogy tudjuk, hogy vajon "
@@ -1635,21 +1707,18 @@ msgstr ""
"Sorban jelölje ki az egyes igényléseket, és <strong>jelezze mindannyiunk számára,</strong>\n"
"hogy ezek sikeresen lezárultak-e vagy sem. "
-msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature"
-msgstr "Kérjük, írja alá nevét a lap alján vagy módosítsa a \"%{signoff}\" aláírást "
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
+msgstr "Kérjük, írja alá nevét a lap alján vagy módosítsa a \"{{signoff}}\" aláírást "
msgid "Please sign in as "
msgstr "Jelentkezzen be mint "
msgid "Please sign in or make a new account."
-msgstr ""
+msgstr "Jelentkezzen be vagy hozzon létre új fiókot."
msgid "Please type a message and/or choose a file containing your response."
msgstr "Írja be üzenetét és/vagy válassza ki a válaszát tartalmazó fájlt. "
-msgid "Please use the form below to tell us more."
-msgstr "Az alábbi űrlapon további részleteket is megadhat. "
-
msgid "Please use this email address for all replies to this request:"
msgstr "Ezt az e-mail címet használja, amikor erre az igénylésre válaszol: "
@@ -1678,7 +1747,7 @@ msgid "Post annotation"
msgstr "Hozzászólás beküldése "
msgid "Post redirect"
-msgstr ""
+msgstr "Feladás átirányítása"
msgid "PostRedirect|Circumstance"
msgstr "PostRedirect|Circumstance"
@@ -1723,7 +1792,7 @@ msgid "Preview your public request"
msgstr "Adatigénylése előnézetének megtekintése "
msgid "Profile photo"
-msgstr ""
+msgstr "Profilkép"
msgid "ProfilePhoto|Data"
msgstr "ProfilePhoto|Data"
@@ -1740,44 +1809,26 @@ msgstr "Adatgazdák - {{description}} "
msgid "Public authorities {{start_count}} to {{end_count}} of {{total_count}}"
msgstr "Adatgazdák: {{start_count}} - {{end_count}}, összesen: {{total_count}} "
-msgid "Public body"
+msgid "Public authority – {{name}}"
msgstr ""
-msgid "Public body/translation"
-msgstr ""
-
-msgid "PublicBody::Translation|Disclosure log"
-msgstr ""
-
-msgid "PublicBody::Translation|First letter"
-msgstr ""
-
-msgid "PublicBody::Translation|Locale"
-msgstr ""
-
-msgid "PublicBody::Translation|Name"
-msgstr ""
-
-msgid "PublicBody::Translation|Notes"
-msgstr ""
-
-msgid "PublicBody::Translation|Publication scheme"
-msgstr ""
+msgid "Public body"
+msgstr "Adatgazda"
-msgid "PublicBody::Translation|Request email"
+msgid "Public notes"
msgstr ""
-msgid "PublicBody::Translation|Short name"
+msgid "Public page"
msgstr ""
-msgid "PublicBody::Translation|Url name"
+msgid "Public page not available"
msgstr ""
msgid "PublicBody|Api key"
-msgstr ""
+msgstr "PublicBody|Api key"
msgid "PublicBody|Disclosure log"
-msgstr ""
+msgstr "PublicBody|Disclosure log"
msgid "PublicBody|First letter"
msgstr "PublicBody|First letter"
@@ -1786,7 +1837,7 @@ msgid "PublicBody|Home page"
msgstr "PublicBody|Home page"
msgid "PublicBody|Info requests count"
-msgstr ""
+msgstr "PublicBody|Info requests count"
msgid "PublicBody|Last edit comment"
msgstr "PublicBody|Last edit comment"
@@ -1818,14 +1869,17 @@ msgstr "PublicBody|Version"
msgid "Publication scheme"
msgstr "Közzétételi rendszer "
-msgid "Purge request"
+msgid "Publication scheme URL"
msgstr ""
+msgid "Purge request"
+msgstr "Igénylés tisztítása"
+
msgid "PurgeRequest|Model"
-msgstr ""
+msgstr "PurgeRequest|Model"
msgid "PurgeRequest|Url"
-msgstr ""
+msgstr "PurgeRequest|Url"
msgid "RSS feed"
msgstr "RSS feed"
@@ -1863,13 +1917,13 @@ msgid "Report abuse"
msgstr "Visszaélés jelentése"
msgid "Report an offensive or unsuitable request"
-msgstr ""
+msgstr "Sértő vagy nem alkalmas igénylés jelentése"
msgid "Report this request"
-msgstr ""
+msgstr "Igénylés jelentése"
msgid "Reported for administrator attention."
-msgstr ""
+msgstr "Bejelentve az adminisztrátornak."
msgid "Request an internal review"
msgstr "Belső felülvizsgálat kérése"
@@ -1877,6 +1931,9 @@ msgstr "Belső felülvizsgálat kérése"
msgid "Request an internal review from {{person_or_body}}"
msgstr "Belső felülvizsgálat kérése {{person_or_body}}-tól/-től "
+msgid "Request email"
+msgstr ""
+
msgid "Request has been removed"
msgstr "Igénylés el lett távolítva "
@@ -1893,7 +1950,7 @@ msgid "Requested on {{date}}"
msgstr "Igénylés benyújtva {{date}} napon "
msgid "Requests for personal information and vexatious requests are not considered valid for FOI purposes (<a href=\"/help/about\">read more</a>)."
-msgstr ""
+msgstr "Személyes információk kérése vagy zaklatásnak minősülő igénylés nem tekinthetők érvényes közérdekűadat-igénylésnek (<a href=\"/help/about\">További részletek</a>)."
msgid "Requests or responses matching your saved search"
msgstr "Az ön által beállított keresési feltételeknek megfelelő igénylések vagy válaszok "
@@ -1917,7 +1974,7 @@ msgid "Response from a public authority"
msgstr "Válasz érkezett a közintézménytől "
msgid "Response to '{{title}}'"
-msgstr ""
+msgstr "Válasz a(z) '{{title}}' igénylésre"
msgid "Response to this request is <strong>delayed</strong>."
msgstr "Az igénylés megválaszolása <strong>késik</strong>. "
@@ -1962,7 +2019,7 @@ msgstr ""
" <strong>{{number_of_authorities}} adatgazda</strong> között böngészhet pillanatnyilag a rendszerünkben."
msgid "Search queries"
-msgstr ""
+msgstr "Keresési lekérdezések"
msgid "Search results"
msgstr "A keresés eredménye"
@@ -1970,14 +2027,17 @@ msgstr "A keresés eredménye"
msgid "Search the site to find what you were looking for."
msgstr "Keresse a weboldalon a kívánt információkat. "
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
-msgstr[0] "Eddig még senki sem nyújtott be %s számára adatigénylést"
-msgstr[1] "Keresés a %d %s-t érintő adatigénylésben"
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests made to {{public_body_name}}"
+msgstr[0] "Eddig még senki sem nyújtott be {{public_body_name}} számára adatigénylést"
+msgstr[1] "Keresés a {{count}} {{public_body_name}}-t érintő adatigénylésben"
msgid "Search your contributions"
msgstr "Keresés az adatigényléseimben"
+msgid "See bounce message"
+msgstr ""
+
msgid "Select one to see more information about the authority."
msgstr "Válassza ki a keresett adatgazdát az alábbi listából!"
@@ -1997,7 +2057,7 @@ msgid "Send a public reply to {{person_or_body}}"
msgstr "Nyilvános válasz küldése {{person_or_body}} részére "
msgid "Send follow up to '{{title}}'"
-msgstr ""
+msgstr "Emlékeztető üzenet küldése a(z) '{{title}}' igényléshez"
msgid "Send message"
msgstr "Üzenet küldése "
@@ -2011,6 +2071,9 @@ msgstr "Igénylés küldése "
msgid "Set your profile photo"
msgstr "Profilkép beállítása "
+msgid "Short name"
+msgstr ""
+
msgid "Short name is already taken"
msgstr "Rövid név már foglalt "
@@ -2061,7 +2124,7 @@ msgid "Somebody added a note to your FOI request - "
msgstr "Közérdekűadat-igényléséhez valaki hozzászólt - "
msgid "Someone has updated the status of your request"
-msgstr ""
+msgstr "Valaki módosította az igénylés állapotát"
msgid "Someone, perhaps you, just tried to change their email address on\\n{{site_name}} from {{old_email}} to {{new_email}}."
msgstr ""
@@ -2069,7 +2132,7 @@ msgstr ""
"{{site_name}} weboldalon a következőről: {{old_email}} a következőre: {{new_email}}. "
msgid "Sorry - you cannot respond to this request via {{site_name}}, because this is a copy of the request originally at {{link_to_original_request}}."
-msgstr ""
+msgstr "Az igénylésre sajnos nem tud a {{site_name}} weboldalon választ adni, mert ez a(z) {{link_to_original_request}} eredeti igénylés másolata."
msgid "Sorry, but only {{user_name}} is allowed to do that."
msgstr "Erre csak {{user_name}} jogosult. "
@@ -2099,7 +2162,7 @@ msgid "Still awaiting an <strong>internal review</strong>"
msgstr "Továbbra is <strong>belső felülvizsgálatra</strong> várva "
msgid "Subject"
-msgstr ""
+msgstr "Tárgy"
msgid "Subject:"
msgstr "Tárgy: "
@@ -2110,6 +2173,9 @@ msgstr "Mehet"
msgid "Submit status"
msgstr "Az igénylés státuszának beállítása "
+msgid "Submit status and send message"
+msgstr ""
+
msgid "Subscribe to blog"
msgstr "Feliratkozás a blogra "
@@ -2131,6 +2197,9 @@ msgstr "Állapottáblázat"
msgid "Table of varieties"
msgstr "Választéktáblázat"
+msgid "Tags"
+msgstr ""
+
msgid "Tags (separated by a space):"
msgstr "Címkék (szóközzel elválasztva): "
@@ -2158,6 +2227,9 @@ msgstr "Köszönjük, hogy frissítette az igénylést. "
msgid "Thank you for updating your profile photo"
msgstr "Köszönjük, hogy frissítette profilképét "
+msgid "Thank you! We'll look into what happened and try and fix it up."
+msgstr ""
+
msgid "Thanks for helping - your work will make it easier for everyone to find successful\\nresponses, and maybe even let us make league tables..."
msgstr ""
"Köszönjük segítségét - munkájának köszönhetően bárki egyszerűbben találhatja meg a sikeres\n"
@@ -2240,22 +2312,22 @@ msgstr "Az igénylés <strong>sikeres volt</strong>. "
msgid "The request was refused by the public authority"
msgstr "Az adatgazda az igénylést elutasította"
-msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"%s\">contact us</a> if you have any questions."
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
msgstr ""
"A megtekinteni kívánt igénylés el lett távolítva. Ennek\n"
"különböző okai lehetnek, de erről bővebb információval itt nem szolgálhatunk. Amennyiben kérdése van, <a\n"
-" href=\"%s\">lépjen velünk kapcsolatba</a>. "
+" href=\"{{url}}\">lépjen velünk kapcsolatba</a>. "
msgid "The requester has abandoned this request for some reason"
msgstr "Az igénylő valami miatt felhagyott igénylésével"
-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"
+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 ""
"Az igénylésére való válasz <strong>késik</strong>. ön mondhatja azt, hogy \n"
" a jogszabály értelmében a közintézménynek általában \n"
" <strong>azonnal</strong> kellett volna válaszolnia, és "
-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"
+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 ""
"Az igénylését már <strong>régen meg kellett volna válaszolni</strong>. ön mondhatja azt, hogy \n"
" a jogszabály értelmében a közintézménynek minden körülmények közt válaszolnia kellett volna\n"
@@ -2267,6 +2339,9 @@ msgstr "A kereső jelenleg nem működik, így nem tudjuk megjeleníteni azokat
msgid "The search index is currently offline, so we can't show the Freedom of Information requests this person has made."
msgstr "A kereső jelenleg nem működik, így nem tudjuk megjeleníteni azokat a közérdekűadat-igényléseket, amelyeket ez a személy nyújtott be. "
+msgid "The {{site_name}} team."
+msgstr ""
+
msgid "Then you can cancel the alert."
msgstr "Ezután törölheti az értesítőt. "
@@ -2286,13 +2361,13 @@ msgid "Then you can download a zip file of {{info_request_title}}."
msgstr "Ezután letöltheti a(z) {{info_request_title}} igénylést zip-fájlban. "
msgid "Then you can log into the administrative interface"
-msgstr ""
+msgstr "Ezután bejelentkezhet az adminisztrátori interfészre"
msgid "Then you can play the request categorisation game."
msgstr "Ezután elvégezheti az igénylés besorolását. "
msgid "Then you can report the request '{{title}}'"
-msgstr ""
+msgstr "Ezután jelentheti a(z) '{{title}}' igénylést"
msgid "Then you can send a message to "
msgstr "Ezután üzenetet küldhet a következőnek: "
@@ -2313,22 +2388,22 @@ msgid "Then you can write your reply to "
msgstr "Ezután válaszolhat a következőnek: "
msgid "Then you will be following all new FOI requests."
-msgstr ""
+msgstr "Ezután az összes új közérdekűadat-igénylést követni fogja."
msgid "Then you will be notified whenever '{{user_name}}' requests something or gets a response."
-msgstr ""
+msgstr "Ezután értesítést kap, amint '{{user_name}}' igénylést nyújt be, vagy választ kap. "
msgid "Then you will be notified whenever a new request or response matches your search."
-msgstr ""
+msgstr "Ezután értesítést kap, ha keresésének megfelelő új igénylés vagy válasz érkezik. "
msgid "Then you will be notified whenever an FOI request succeeds."
-msgstr ""
+msgstr "Ezután értesítést kap, ha egy közérdekűadat-igénylés sikeresen lezárul. "
msgid "Then you will be notified whenever someone requests something or gets a response from '{{public_body_name}}'."
-msgstr ""
+msgstr "Ezután értesítést kap, ha valaki igénylést nyújt be, vagy választ kap a(z) '{{public_body_name}}' adatgazdától. "
msgid "Then you will be updated whenever the request '{{request_title}}' is updated."
-msgstr ""
+msgstr "Ezután értesítést kap, ha a(z) '{{request_title}}' igénylést frissítik. "
msgid "Then you'll be allowed to send FOI requests."
msgstr "Ezután önnek lehetősége van közérdekűadat-igénylést benyújtani. "
@@ -2342,17 +2417,17 @@ msgstr "Ezután megjelenik a(z) {{info_request_title}} igénylésre vonatkozó h
msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
msgstr "{{count}} új hozzászólás érkezett a(z) {{info_request}} igényléséhez. A hivatkozásra kattintva elolvashatja ezeket. "
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
-msgstr[0] "Ezt az igénylést %d felhasználó kíséri figyelemmel."
-msgstr[1] "Ezt az igénylést %d felhasználó kíséri figyelemmel."
-
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 ""
+msgstr "A weboldal felhasználói között <strong>több</strong> ilyen nevű személy is van.\\n Egyiküket láthatja alább, de előfordulhat, hogy ez nem ön. "
msgid "There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>."
msgstr "Ennek a korlátozásnak az az oka hogy nem szeretnénk ha nagy mennyiségű inadekvát adatigényléssel árasztaná el az adatgazdákat valaki. Ha úgy érzi hogy nyomós oka van ennél több adatigénylést kezdeményezni rövid időn belül, kérjük, <a href='{{help_contact_path}}'>lépjen kapcsolatba</a> velünk."
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
+msgstr[0] "Ezt az igénylést {{count}} felhasználó kíséri figyelemmel."
+msgstr[1] "Ezt az igénylést {{count}} felhasználó kíséri figyelemmel."
+
msgid "There was a <strong>delivery error</strong> or similar, which needs fixing by the {{site_name}} team."
msgstr "<strong>Kézbesítési hiba</strong> vagy valami hasonló történt, amelyet a {{site_name}} csapatának ki kell javítania. "
@@ -2386,15 +2461,15 @@ msgid "Things to do with this request"
msgstr "Az adatigényléssel kapcsolatosan az alábbi lehetőségek közül választhat:"
msgid "Things you're following"
-msgstr ""
+msgstr "Követett elemek:"
msgid "This authority no longer exists, so you cannot make a request to it."
msgstr "Ez az adatgazda már nem létezik, ezért nem tud adatigényléseket fogadni. "
-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."
+msgid "This comment has been hidden. See annotations to\\n find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
"Ez a hozzászolás el lett rejtve. A megjegyzésekből\n"
-" megtudhatja ennek okát. Ha ön az igénylő, a válasz megtekintéséhez <a href=\"%s\">bejelentkezhet</a>. "
+" megtudhatja ennek okát. Ha ön az igénylő, a válasz megtekintéséhez <a href=\"{{url}}\">bejelentkezhet</a>. "
msgid "This covers a very wide spectrum of information about the state of\\n the <strong>natural and built environment</strong>, such as:"
msgstr ""
@@ -2402,7 +2477,7 @@ msgstr ""
" a<strong>természeti és épített környezetre</strong> vonatkozóan, mint például: "
msgid "This external request has been hidden"
-msgstr ""
+msgstr "A külső igénylés el van rejtve"
msgid "This is a plain-text version of the Freedom of Information request \"{{request_title}}\". The latest, full version is available online at {{full_url}}"
msgstr "Ez a közérdekűadat-igénylés egyszerű szöveges változata \"{{request_title}}\". A legutóbbi, teljes változatot itt találja: {{full_url}} "
@@ -2415,13 +2490,16 @@ msgstr ""
"Ennek az a magyarázata, hogy a(z) {{title}} igénylés már régi,\n"
"amelyre jelölése miatt már nem érkezik válasz. "
+msgid "This is the first version."
+msgstr ""
+
msgid "This is your own request, so you will be automatically emailed when new responses arrive."
msgstr "Ez az ön saját igénylése, így automatikusan e-mail üzenetet kap, ha válasz érkezik. "
-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."
+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=\"{{url}}\">sign in</a> to view the response."
msgstr ""
"Ez a kimenő üzenet el lett rejtve. A megjegyzésekből\n"
-"\t\t\t\t\t\tmegtudhatja ennek okát. Ha ön az igénylő, a válasz megtekintéséhez <a href=\"%s\">bejelentkezhet</a>. "
+"\t\t\t\t\t\tmegtudhatja ennek okát. Ha ön az igénylő, a válasz megtekintéséhez <a href=\"{{url}}\">bejelentkezhet</a>. "
msgid "This particular request is finished:"
msgstr "Ez az igénylés lezárult: "
@@ -2429,47 +2507,47 @@ msgstr "Ez az igénylés lezárult: "
msgid "This person has made no Freedom of Information requests using this site."
msgstr "Ez a személy még nem igényelt közérdekű adatokat a KiMitTud weboldal segítségével. "
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
-msgstr[0] "Ez a felhasználó még nem kísér figyelemmel semmilyen adatigénylést figyel."
-msgstr[1] "Ez a felhazsnáló az alábbi %d adatigénylést kíséri figyelemmel."
-
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
-msgstr[0] "A felhasználó %d hozzászólása"
-msgstr[1] "A felhasználó %d hozzászólása"
-
msgid "This person's annotations"
msgstr "A felhasználó hozzászólásai"
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
+msgstr[0] "Ez a felhasználó még nem kísér figyelemmel semmilyen adatigénylést figyel."
+msgstr[1] "Ez a felhazsnáló az alábbi {{count}} adatigénylést kíséri figyelemmel."
+
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
+msgstr[0] "A felhasználó {{count}} hozzászólása"
+msgstr[1] "A felhasználó {{count}} hozzászólása"
+
msgid "This request <strong>requires administrator attention</strong>"
msgstr "Ezt az igénylést <strong>meg kell vizsgálnia az adminisztrátornak</strong> "
msgid "This request has already been reported for administrator attention"
-msgstr ""
+msgstr "Ezt az igénylést már jelentették az adminisztrátornak"
msgid "This request has an <strong>unknown status</strong>."
msgstr "Ennek az igénylésnek <strong>ismeretlen az állapota</strong>. "
msgid "This request has been <strong>hidden</strong> from the site, because an administrator considers it not to be an FOI request"
-msgstr ""
+msgstr "Ez az igénylés <strong>nem jelenik meg</strong> a weboldalon, mert az adminisztrátor nem közérdekűadat-igénylésnek minősítette"
msgid "This request has been <strong>hidden</strong> from the site, because an administrator considers it vexatious"
-msgstr ""
+msgstr "Ez az igénylés <strong>nem jelenik meg</strong> a weboldalon, mert az adminisztrátor zaklató jellegűnek minősítette"
msgid "This request has been <strong>reported</strong> as needing administrator attention (perhaps because it is vexatious, or a request for personal information)"
-msgstr ""
+msgstr "Ezt az igénylést <strong>jelentették</strong> az adminisztrátornak (valószínűleg azért, mert zaklató jellegű vagy személyes információra irányult)"
msgid "This request has been <strong>withdrawn</strong> by the person who made it.\\n There may be an explanation in the correspondence below."
msgstr ""
"Ezt az igénylést <strong>visszavonta</strong> az azt benyújtó személy. \n"
" \t Előfordulhat, hogy az alábbi levelezésben megtalálja ennek magyarázatát."
-msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"%s\">contact us</a>."
+msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
msgid "This request has been reported for administrator attention"
-msgstr ""
+msgstr "Ezt az igénylést már jelentették az adminisztrátornak"
msgid "This request has been set by an administrator to \"allow new responses from nobody\""
msgstr "Az adminisztrátor erre az igénylésre \"új választ senki sem küldhet\" beállítást adott meg "
@@ -2482,21 +2560,24 @@ msgstr ""
"Ennek az igénylésnek a népszerűsége el van 'rejtve'. Csak azért láthatja, mert kiemelt felhasználóként\n"
" jelentkezett be. "
-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."
+msgid "This request is hidden, so that only you the requester can see it. Please\\n <a href=\"{{url}}\">contact us</a> if you are not sure why."
msgstr ""
"Ez az igénylés el van rejtve, és azt kizárólag az igénylő láthatja. Ha nem tudja ennek okát,\n"
-" <a href=\"%s\">lépjen velünk kapcsolatba</a>"
+" <a href=\"{{url}}\">lépjen velünk kapcsolatba</a>"
msgid "This request is still in progress:"
msgstr "Ez az igénylés még mindig folyamatban van: "
-msgid "This request was not made via {{site_name}}"
+msgid "This request requires administrator attention"
msgstr ""
-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."
+msgid "This request was not made via {{site_name}}"
+msgstr "Az igénylést nem a(z) {{site_name}} weboldalon keresztül nyújtották be"
+
+msgid "This response has been hidden. See annotations to find out why.\\n If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
"Ez a válasz el lett rejtve. A megjegyzésekből megtudhatja ennek okát.\n"
-" Ha ön az igénylő, a válasz megtekintéséhez <a href=\"%s\">bejelentkezhet</a>. "
+" Ha ön az igénylő, a válasz megtekintéséhez <a href=\"{{url}}\">bejelentkezhet</a>. "
msgid "This table shows the technical details of the internal events that happened\\nto this request on {{site_name}}. This could be used to generate information about\\nthe speed with which authorities respond to requests, the number of requests\\nwhich require a postal response and much more."
msgstr ""
@@ -2540,22 +2621,22 @@ msgid "To download the zip file"
msgstr "Ha le szeretné tölteni a zip-fájlt "
msgid "To follow all successful requests"
-msgstr ""
+msgstr "Sikeres igénylések követése"
msgid "To follow new requests"
-msgstr ""
+msgstr "Új igénylések követése"
msgid "To follow requests and responses matching your search"
msgstr "Ha követni szeretné a keresésének megfelelő igényléseket és válaszokat "
msgid "To follow requests by '{{user_name}}'"
-msgstr ""
+msgstr "'{{user_name}}' igényléseinek követése"
msgid "To follow requests made using {{site_name}} to the public authority '{{public_body_name}}'"
-msgstr ""
+msgstr "{{site_name}} weboldalon a(z) '{{public_body_name}}' részére küldött adatigénylések követése"
msgid "To follow the request '{{request_title}}'"
-msgstr ""
+msgstr "A(z) '{{request_title}}' igénylés követése"
msgid "To help us keep the site tidy, someone else has updated the status of the \\n{{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."
msgstr ""
@@ -2563,10 +2644,10 @@ msgstr ""
"{{law_used_full}} {{title}} című igénylést. A frissítés következtében ennek állapota: \"{{display_status}}\". Ha nem ért egyet ezzel a besorolással, frissítse ön is az állapotot olyan értékre, amely ön szerint pontosabb. "
msgid "To let everyone know, follow this link and then select the appropriate box."
-msgstr ""
+msgstr "Ha tájékoztatni szeretne mindenkit, kattintson a hivatkozásra, majd jelölje be a megfelelő négyzetet. "
msgid "To log into the administrative interface"
-msgstr ""
+msgstr "Bejelentkezés az adminisztrátori interfészre"
msgid "To play the request categorisation game"
msgstr "Ha osztályozni szeretné az igénylést "
@@ -2578,7 +2659,7 @@ msgid "To reply to "
msgstr "Ha válaszolni kíván a következőnek:"
msgid "To report this FOI request"
-msgstr ""
+msgstr "Közérdekűadat-igénylés jelentése"
msgid "To send a follow up message to "
msgstr "Ha emlékeztető üzenetet szeretne küldeni a(z) "
@@ -2614,13 +2695,13 @@ msgid "Today"
msgstr "Ma "
msgid "Too many requests"
-msgstr ""
+msgstr "Túl sok igénylés"
msgid "Top search results:"
msgstr "Találatok: "
msgid "Track thing"
-msgstr ""
+msgstr "Elem nyomon követése "
msgid "Track this person"
msgstr "Feliratkozás a felhasználó tevékenyégéről beszámoló hírlevélre"
@@ -2638,7 +2719,7 @@ msgid "TrackThing|Track type"
msgstr "TrackThing|Track type"
msgid "Turn off email alerts"
-msgstr ""
+msgstr "Értesítő e-mailben kikapcsolása"
msgid "Tweet this request"
msgstr "Az igénylés elküldése tweetben"
@@ -2664,11 +2745,11 @@ msgstr "Váratlan keresésieredmény-típus "
msgid "Unexpected search result type "
msgstr "Váratlan keresésieredmény-típus "
-msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"%s\">contact us</a> to sort it out."
+msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"{{url}}\">contact us</a> to sort it out."
msgstr ""
"Sajnos nem ismerjük az adatgazda\n"
"közérdekű adatigényléshez használt e-mail címét, így ezt nem tudjuk hitelesíteni.\n"
-"Kérjük, <a href=\"%s\">lépjen velünk kapcsolatba</a>, hogy megoldjuk a problémát. "
+"Kérjük, <a href=\"{{url}}\">lépjen velünk kapcsolatba</a>, hogy megoldjuk a problémát. "
msgid "Unfortunately, we do not have a working {{info_request_law_used_full}}\\naddress for"
msgstr ""
@@ -2679,7 +2760,7 @@ msgid "Unknown"
msgstr "Ismeretlen"
msgid "Unsubscribe"
-msgstr ""
+msgstr "Leiratkozás"
msgid "Unusual response."
msgstr "Szokatlan válasz"
@@ -2691,7 +2772,7 @@ msgid "Update the status of your request to "
msgstr "Igénylése állapotának frissítése a következőre: "
msgid "Upload FOI response"
-msgstr ""
+msgstr "Közérdekűadat-igénylésre kapott válasz"
msgid "Use OR (in capital letters) where you don't mind which word, e.g. <strong><code>commons OR lords</code></strong>"
msgstr "Használja az OR kifejezést (nagybetűkkel), ha mindegy, hogy melyik szó, pl. <strong><code>alsóház OR felsőház</code></strong> "
@@ -2700,11 +2781,14 @@ msgid "Use quotes when you want to find an exact phrase, e.g. <strong><code>\"Li
msgstr "Ha egy adott kifejezést keres, használjon idézőjeleket; például: <strong><code>\"Liverpool City Council\"</code></strong> "
msgid "User"
-msgstr ""
+msgstr "Felhasználó"
msgid "User info request sent alert"
msgstr ""
+msgid "User – {{name}}"
+msgstr ""
+
msgid "UserInfoRequestSentAlert|Alert type"
msgstr "UserInfoRequestSentAlert|Alert type"
@@ -2712,7 +2796,7 @@ msgid "User|About me"
msgstr "User|About me"
msgid "User|Address"
-msgstr ""
+msgstr "User|Address"
msgid "User|Admin level"
msgstr "User|Admin level"
@@ -2721,7 +2805,7 @@ msgid "User|Ban text"
msgstr "User|Ban text"
msgid "User|Dob"
-msgstr ""
+msgstr "User|Dob"
msgid "User|Email"
msgstr "User|Email"
@@ -2751,7 +2835,7 @@ msgid "User|No limit"
msgstr "User|No limit"
msgid "User|Receive email alerts"
-msgstr ""
+msgstr "User|Receive email alerts"
msgid "User|Salt"
msgstr "User|Salt"
@@ -2759,6 +2843,9 @@ msgstr "User|Salt"
msgid "User|Url name"
msgstr "User|Url name"
+msgid "Version {{version}}"
+msgstr ""
+
msgid "View FOI email address"
msgstr "Az adatgazda e-mail címe (amelyre a közérdekűadat-igényléseket elküldjük)"
@@ -2798,6 +2885,12 @@ msgstr "Az adatgazda válaszára várakozik "
msgid "Was the response you got to your FOI request any good?"
msgstr "A közérdekűadat-igénylésére kielégítő választ kapott? "
+msgid "We consider it is not a valid FOI request, and have therefore hidden it from other users."
+msgstr ""
+
+msgid "We consider it to be vexatious, and have therefore hidden it from other users."
+msgstr ""
+
msgid "We do not have a working request email address for this authority."
msgstr "Nem rendelkezünk az adatgazda működő e-mail címével. "
@@ -2811,10 +2904,10 @@ msgstr ""
" &ndash;\n"
"\tamennyiben ön {{user_link}}, kérjük, <a href=\"{{url}}\">jelentkezzen be</a>, és értékelje a megkapott adatokat."
-msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"%s\">details</a>). "
+msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"{{url}}\">details</a>). "
msgstr ""
"E-mail címét senkinek sem adjuk ki - kivéve, ha azt ön kéri\n"
-" vagy jogszabály előírja (<a href=\"%s\">részletek</a>). "
+" vagy jogszabály előírja (<a href=\"{{url}}\">részletek</a>). "
msgid "We will not reveal your email address to anybody unless you\\nor the law tell us to."
msgstr ""
@@ -2853,7 +2946,7 @@ msgid "What information has been released?"
msgstr "Mire voltak kíváncsiak mások? "
msgid "What information has been requested?"
-msgstr ""
+msgstr "Milyen adatot igényeltek?"
msgid "When you get there, please update the status to say if the response \\ncontains any useful information."
msgstr ""
@@ -2865,8 +2958,8 @@ msgstr ""
"Ha papíron megkapja a választ, tájékoztasson másokat is\n"
" annak tartalmáról: "
-msgid "When you're done, <strong>come back here</strong>, <a href=\"%s\">reload this page</a> and file your new request."
-msgstr "Ha elkészült, <strong>térjen ide vissza</strong>, <a href=\"%s\">újból töltse be az oldalt</a> és nyújtsa be új igénylését. "
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
+msgstr "Ha elkészült, <strong>térjen ide vissza</strong>, <a href=\"{{url}}\">újból töltse be az oldalt</a> és nyújtsa be új igénylését. "
msgid "Which of these is happening?"
msgstr "Az alábbiak közül mi történik most? "
@@ -2899,28 +2992,28 @@ msgid "You"
msgstr "ön"
msgid "You are already following new requests"
-msgstr ""
+msgstr "Ön már követi az új igényléseket"
msgid "You are already following requests to {{public_body_name}}"
-msgstr ""
+msgstr "Ön már követi a(z) {{public_body_name}} részére küldött adatigényléseket"
msgid "You are already following things matching this search"
-msgstr ""
+msgstr "Ön már követi a keresési feltételeknek megfelelő elemeket"
msgid "You are already following this person"
-msgstr ""
+msgstr "Ön már követi ezt a személyt"
msgid "You are already following this request"
-msgstr ""
+msgstr "Ön már követi ezt az igénylést"
msgid "You are already following updates about {{track_description}}"
msgstr ""
msgid "You are currently receiving notification of new activity on your wall by email."
-msgstr ""
+msgstr "Az új tevékenységekről értesítést kap e-mailben az üzenőfalára."
msgid "You are following all new successful responses"
-msgstr ""
+msgstr "Követi az összes sikeres választ"
msgid "You are no longer following {{track_description}}."
msgstr ""
@@ -2932,7 +3025,7 @@ msgid "You can <strong>complain</strong> by"
msgstr "<strong>Panaszt nyújthat be</strong> a következő időpontig:"
msgid "You can change the requests and users you are following on <a href=\"{{profile_url}}\">your profile page</a>."
-msgstr ""
+msgstr "Módosíthatja a <a href=\"{{profile_url}}\">profiloldalon</a> követett igényléseket és felhasználókat."
msgid "You can get this page in computer-readable format as part of the main JSON\\npage for the request. See the <a href=\"{{api_path}}\">API documentation</a>."
msgstr ""
@@ -2972,13 +3065,13 @@ msgid "You know what caused the error, and can <strong>suggest a solution</stron
msgstr "ön tudja, hogy mi okozta a hibát, és tud <strong>megoldást javasolni</strong>, mint például egy ténylegesen működő e-mail címet. "
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 ""
+msgstr "<strong>Mellékleteket is csatolhat</strong>. Ha olyan fájlt szeretne csatolni, amely\\n e-mailben történő küldéshez túl nagy, használja az alábbi űrlapot. "
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
"Előfordulhat, hogy\n"
" weboldalukon is talál ilyet, vagy hívja fel őket és érdeklődjön. Ha sikerült\n"
-" ilyet találnia, kérjük, <a href=\"%s\">küldje el nekünk</a> is. "
+" ilyet találnia, kérjük, <a href=\"{{url}}\">küldje el nekünk</a> is. "
msgid "You may be able to find\\none on their website, or by phoning them up and asking. If you manage\\nto find one, then please <a href=\"{{help_url}}\">send it to us</a>."
msgstr ""
@@ -2996,13 +3089,13 @@ msgid "You need to be logged in to clear your profile photo."
msgstr "A profilkép törléséhez először be kell jelentkeznie. "
msgid "You need to be logged in to edit your profile."
-msgstr ""
+msgstr "Profiljának módosításához be kell jelentkeznie."
msgid "You previously submitted that exact follow up message for this request."
msgstr "Korábban már beküldte ugyanezt a nyomon követési üzenetet erre az igénylésre vonatkozóan. "
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 ""
+msgstr "E-mailben meg kellett volna kapnia az igénylést, és a válaszadáshoz\\n <strong>egyszerűen válaszolnia</strong> kell erre az e-mailre. A kényelem kedvéért, íme a cím: "
msgid "You want to <strong>give your postal address</strong> to the authority in private."
msgstr "<strong>Postai címét megadhatja</strong> a közintézménynek bizalmasan. "
@@ -3025,44 +3118,37 @@ msgstr ""
"Igénylésére csak akkor fog választ kapni, ha végrehajtja a\n"
"pontosítást."
-msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
+msgid "You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further."
msgstr ""
+msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
+msgstr "Bejelentkezett. <a href=\"#\" id=\"send-request\">Igénylés elküldésének folytatása</a>"
+
msgid "You're long overdue a response to your FOI request - "
msgstr "Közérdekűadat-igénylésére már rég választ kellett volna kapnia - "
msgid "You're not following anything."
-msgstr ""
+msgstr "Ön nem követ semmit."
msgid "You've now cleared your profile photo"
msgstr "Eltávolította profilképét "
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
-msgstr[0] "Ön még nem készített adatigénylést"
-msgstr[1] "Az ön %d adatigénylése"
-
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
-msgstr[0] "Az ön %d hozzászólása"
-msgstr[1] "Az ön %d hozzászólása"
-
-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>."
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
msgstr ""
-"Az ön <strong>neve nyilvánosan megjelenik</strong> ezen a weboldalon és a keresőmotorokban (<a href=\"%s\">miért?</a>)\n"
-" Ha álnevet kíván használni, <a href=\"%s\">olvassa el ezt először</a>. "
+"Az ön <strong>neve nyilvánosan megjelenik</strong> ezen a weboldalon és a keresőmotorokban (<a href=\"{{why_url}}\">miért?</a>)\n"
+" Ha álnevet kíván használni, <a href=\"{{help_url}}\">olvassa el ezt először</a>. "
msgid "Your annotations"
msgstr "Hozzászólásaim"
msgid "Your details, including your email address, have not been given to anyone."
-msgstr ""
+msgstr "Adatait (beleértve az e-mail címét) senkinek nem továbítottuk."
msgid "Your e-mail:"
msgstr "Az ön e-mail címe: "
-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 "Nyomon követési üzenete nem lett továbbítva, mert az igénylést a levélszemét megakadályozása érdekében leállították. <a href=\"%s\">Lépjen velünk kapcsolatba</a>, ha tényleg szeretne nyomon követési üzenetet küldeni. "
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
+msgstr "Nyomon követési üzenete nem lett továbbítva, mert az igénylést a levélszemét megakadályozása érdekében leállították. <a href=\"{{url}}\">Lépjen velünk kapcsolatba</a>, ha tényleg szeretne nyomon követési üzenetet küldeni. "
msgid "Your follow up message has been sent on its way."
msgstr "Nyomon követési üzenetét elküldtük. "
@@ -3074,7 +3160,7 @@ msgid "Your message has been sent. Thank you for getting in touch! We'll get bac
msgstr "Üzenetét elküldtük. Köszönjük, hogy kapcsolatba lépett velünk! Hamarosan jelentkezünk. "
msgid "Your message to {{recipient_user_name}} has been sent"
-msgstr ""
+msgstr "{{recipient_user_name}} részére írt üzenetét a rendszer elküldte"
msgid "Your message to {{recipient_user_name}} has been sent!"
msgstr "Üzenetét elküldtük {{recipient_user_name}} részére. "
@@ -3085,10 +3171,10 @@ msgstr "Üzenete megjelenik a <strong>keresőmotorokban</strong> "
msgid "Your name and annotation will appear in <strong>search engines</strong>."
msgstr "Az ön neve és hozzászólásai megjelennek a <strong>keresőmotorokban</strong>. "
-msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"%s\">details</a>)."
+msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"{{url}}\">details</a>)."
msgstr ""
"Az ön neve, az igénylés és a válaszok megjelennek a <strong>keresőmotorokban</strong>. \n"
-" <a href=\"%s\">Részletek itt.</a>"
+" <a href=\"{{url}}\">Részletek itt.</a>"
msgid "Your name:"
msgstr "Neve: "
@@ -3103,6 +3189,12 @@ msgid "Your password:"
msgstr "Az ön jelszava: "
msgid "Your photo will be shown in public <strong>on the Internet</strong>,\\n wherever you do something on {{site_name}}."
+msgstr "Profilképe az <strong>interneten</strong> nyilvánosan megjelenik, ha a {{site_name}} weboldalon valamilyen műveletet hajt végre."
+
+msgid "Your request '{{request}}' at {{url}} has been reviewed by moderators."
+msgstr ""
+
+msgid "Your request on {{site_name}} hidden"
msgstr ""
msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
@@ -3112,14 +3204,24 @@ msgid "Your request:"
msgstr "Az ön igénylése: "
msgid "Your response to an FOI request was not delivered"
-msgstr ""
+msgstr "Közérdekűadat-igénylésre adott válaszát nem lehet továbbítani"
-msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"%s\">read why</a> and answers to other questions."
-msgstr "Válasza <strong>megjelenik az interneten</strong>, <a href=\"%s\">olvassa el, miért</a> az egyéb kérdésekre adott válaszokhoz hasonlóan. "
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
+msgstr "Válasza <strong>megjelenik az interneten</strong>, <a href=\"{{url}}\">olvassa el, miért</a> az egyéb kérdésekre adott válaszokhoz hasonlóan. "
msgid "Your thoughts on what the {{site_name}} <strong>administrators</strong> should do about the request."
msgstr "Az ön gondolatai arra vonatkozóan, hogy a {{site_name}} <strong>adminisztrátorainak</strong> mit kellene tenniük az igényléssel kapcsolatosan. "
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
+msgstr[0] "Ön még nem készített adatigénylést"
+msgstr[1] "Az ön {{count}} adatigénylése"
+
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
+msgstr[0] "Az ön {{count}} hozzászólása"
+msgstr[1] "Az ön {{count}} hozzászólása"
+
msgid "Your {{site_name}} email alert"
msgstr "{{site_name}} hírlevél"
@@ -3129,6 +3231,9 @@ msgstr "Üdvözlettel: "
msgid "Yours sincerely,"
msgstr "Üdvözlettel: "
+msgid "Yours,"
+msgstr ""
+
msgid "[FOI #{{request}} email]"
msgstr ""
@@ -3147,6 +3252,9 @@ msgstr "Az igényelt információk összefoglalása egy sorban. pl:<br/>"
msgid "admin"
msgstr "admin"
+msgid "alaveteli_foi:The software that runs {{site_name}}"
+msgstr ""
+
msgid "all requests"
msgstr " minden igénylés "
@@ -3154,7 +3262,7 @@ msgid "also called {{public_body_short_name}}"
msgstr "más néven {{public_body_short_name}} "
msgid "an anonymous user"
-msgstr ""
+msgstr "névtelen felhasználó"
msgid "and"
msgstr "és"
@@ -3180,6 +3288,9 @@ msgstr "bármi"
msgid "are long overdue."
msgstr "adatgazdának már régen válaszolnia kellett volna."
+msgid "at"
+msgstr ""
+
msgid "authorities"
msgstr "közintézmények"
@@ -3192,6 +3303,9 @@ msgstr "‘{{first_letter}}’ kezdőbetűvel "
msgid "between two dates"
msgstr "két dátum között "
+msgid "but followupable"
+msgstr ""
+
msgid "by"
msgstr "által"
@@ -3213,7 +3327,7 @@ msgstr ""
" Telefonon is kapcsolatba léphet velük. "
msgid "details"
-msgstr ""
+msgstr "részletek"
msgid "display_status only works for incoming and outgoing messages right now"
msgstr "display_status csak az éppen most beérkező és kimenő üzenetek esetében működik "
@@ -3231,7 +3345,7 @@ msgid "everything"
msgstr "minden"
msgid "external"
-msgstr ""
+msgstr "külső"
msgid "has reported an"
msgstr "bejelentett"
@@ -3240,7 +3354,7 @@ msgid "have delayed."
msgstr "késedelmes. "
msgid "hide quoted sections"
-msgstr ""
+msgstr "idézett részek elrejtése"
msgid "in term time"
msgstr "szorgalmi időszakban "
@@ -3275,19 +3389,25 @@ msgstr "közintézményektől érkező üzenetek "
msgid "messages from users"
msgstr "felhasználóktól érkező üzenetek "
+msgid "move..."
+msgstr ""
+
msgid "no later than"
msgstr "nem később, mint "
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
"már nem létezik. Ha \n"
" Az igénylési oldalról próbáljon választ adni egy adott üzenetre ahelyett, hogy\n"
" általános nyomon követést küldene. Ha általános nyomon követést kíván küldeni, és ismer olyan\n"
-" e-mail címet, amely a megfelelő helyre kerül, <a href=\"%s\">küldje el nekünk is</a>. "
+" e-mail címet, amely a megfelelő helyre kerül, <a href=\"{{url}}\">küldje el nekünk is</a>. "
msgid "normally"
msgstr "normális esetben "
+msgid "not requestable due to: {{reason}}"
+msgstr ""
+
msgid "please sign in as "
msgstr "jelentkezzen be mint "
@@ -3311,14 +3431,17 @@ msgstr "nyomon követési üzenet küldése "
msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
msgstr "{{info_request_user}} {{public_body_name}} adatgazdánál {{date}} -n. "
-msgid "show quoted sections"
+msgid "set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA"
msgstr ""
+msgid "show quoted sections"
+msgstr "idézett részek megjelenítése"
+
msgid "sign in"
msgstr "bejelentkezés"
msgid "simple_date_format"
-msgstr ""
+msgstr "simple_date_format"
msgid "successful"
msgstr "sikeres"
@@ -3332,11 +3455,16 @@ msgstr "amelyeket ön nyújtott be a(z) "
msgid "the main FOI contact address for {{public_body}}"
msgstr "{{public_body}} közérdekűadat-igényléshez használt elsődleges e-mail címe "
+#. This phrase completes the following sentences:
+#. Request an internal review from...
+#. Send a public follow up message to...
+#. Send a public reply to...
+#. Don't want to address your message to... ?
msgid "the main FOI contact at {{public_body}}"
msgstr "{{public_body}} közérdekűadat-igénylésekkel foglalkozó elsődleges kapcsolattartója "
msgid "the requester"
-msgstr ""
+msgstr "igénylő"
msgid "the {{site_name}} team"
msgstr "a {{site_name}} csapata "
@@ -3380,9 +3508,32 @@ msgstr "hasznos információ. "
msgid "users"
msgstr "felhasználók"
+msgid "what's that?"
+msgstr "mi ez? "
+
msgid "{{count}} FOI requests found"
msgstr "A fent megadott szempontoknak az eddigi adatigénylések közül az alábbi {{count}} felel meg:"
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] "{{public_body_name}} az alábbi {{count}}db közérdekűadat-igénylést kapta eddig"
+msgstr[1] "{{public_body_name}} az alábbi {{count}}db közérdekűadat-igénylést kapta eddig"
+
+msgid "{{count}} person is following this authority"
+msgid_plural "{{count}} people are following this authority"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
+msgstr[0] "{{count}} igénylés"
+msgstr[1] "{{count}} igénylés"
+
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
+msgstr[0] "{{count}} igénylés készült"
+msgstr[1] "{{count}} igénylés készült"
+
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 ""
"{{existing_request_user}} már létrehozta\n"
@@ -3399,7 +3550,7 @@ msgid "{{law_used_full}} request GQ - {{title}}"
msgstr "{{law_used_full}} igénylés GQ - {{title}} "
msgid "{{law_used}} requests at {{public_body}}"
-msgstr ""
+msgstr "{{law_used}} igénylések {{public_body}} adatgazdánál"
msgid "{{length_of_time}} ago"
msgstr "Azóta {{length_of_time}} telt el."
@@ -3411,22 +3562,22 @@ msgid "{{number_of_comments}} comments"
msgstr "{{number_of_comments}} hozzászólás"
msgid "{{public_body_link}} answered a request about"
-msgstr ""
+msgstr "{{public_body_link}} válaszolt a következőre irányuló adatigénylésre:"
msgid "{{public_body_link}} was sent a request about"
-msgstr ""
+msgstr "{{public_body_link}} a következőre irányuló adatigénylést kapott:"
msgid "{{public_body_name}} only:"
msgstr "Csak a(z) {{public_body_name}} munkatársa:"
msgid "{{public_body}} has asked you to explain part of your {{law_used}} request."
-msgstr ""
+msgstr "{{public_body}} kéri, hogy {{law_used}} igénylésének egy részét magyarázza meg."
msgid "{{public_body}} sent a response to {{user_name}}"
msgstr "{{public_body}} választ küldött {{user_name}} részére "
msgid "{{reason}}, please sign in or make a new account."
-msgstr ""
+msgstr "{{reason}}, jelentkezzen be vagy hozzon létre új fiókot"
msgid "{{search_results}} matching '{{query}}'"
msgstr "{{search_results}}, amelyek megfelelnek a(z) '{{query}}' lekérdezésnek "
@@ -3443,17 +3594,20 @@ msgstr "A {{site_name}} új igénylést küld a(z) <strong>{{request_email}}</st
msgid "{{site_name}} users have made {{number_of_requests}} requests, including:"
msgstr "A {{site_name}} felhasználói eddig {{number_of_requests}} igényléssel fordultak az adatgazdákhoz a rendszerünk segítségével. Ilyenek például: "
-msgid "{{title}} - a Freedom of Information request to {{public_body}}"
+msgid "{{thing_changed}} was changed from <code>{{from_value}}</code> to <code>{{to_value}}</code>"
msgstr ""
+msgid "{{title}} - a Freedom of Information request to {{public_body}}"
+msgstr "{{title}} - közérdekűadat-igénylés {{public_body}} részére"
+
msgid "{{user_name}} (Account suspended)"
msgstr "{{user_name}} (Fiók felfüggesztve) "
msgid "{{user_name}} - Freedom of Information requests"
-msgstr ""
+msgstr "{{user_name}} - Közérdekűadat-igénylések "
msgid "{{user_name}} - user profile"
-msgstr ""
+msgstr "{{user_name}} - felhasználói profil"
msgid "{{user_name}} added an annotation"
msgstr "{{user_name}} hozzászólt"
diff --git a/locale/id/app.po b/locale/id/app.po
index 7a0cb6fb9..2dd368b4c 100644
--- a/locale/id/app.po
+++ b/locale/id/app.po
@@ -3,17 +3,21 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# <agus.triwanto@gmail.com>, 2012.
-# <ariadi01@gmail.com>, 2012.
-# <bobo@airputih.org>, 2012.
+# njung <agung@airputih.or.id>, 2013
+# Agus Triwanto <agus.triwanto@gmail.com>, 2012
+# Agus Triwanto <agus.triwanto@gmail.com>, 2012
+# <ariadi01@gmail.com>, 2012
+# bobo7e836b32124642a5 <bobo@airputih.org>, 2012
+# bobo7e836b32124642a5 <bobo@airputih.org>, 2012
+# njung <agung@airputih.or.id>, 2013
msgid ""
msgstr ""
"Project-Id-Version: alaveteli\n"
"Report-Msgid-Bugs-To: http://github.com/sebbacon/alaveteli/issues\n"
-"POT-Creation-Date: 2012-12-18 10:11+0000\n"
-"PO-Revision-Date: 2012-12-18 10:14+0000\n"
+"POT-Creation-Date: 2013-05-30 09:46+0100\n"
+"PO-Revision-Date: 2013-05-30 08:54+0000\n"
"Last-Translator: louisecrow <louise@mysociety.org>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language-Team: Indonesian (http://www.transifex.com/projects/p/alaveteli/language/id/)\n"
"Language: id\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -25,8 +29,8 @@ msgstr ""
"Ini akan muncul di profil {{site_name}} Anda, untuk membuatnya\n"
" lebih mudah bagi yang lain untuk terlibat dengan apa yang sedang Anda kerjakan."
-msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)"
-msgstr "(<strong>politik kasar</strong> tidak diperkenankan, bacalah kebijakan <a href=\"%s\">moderasi kami</a>)"
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
+msgstr "(<strong>politik kasar</strong> tidak diperkenankan, bacalah kebijakan <a href=\"{{url}}\">moderasi kami</a>)"
msgid " (<strong>patience</strong>, especially for large files, it may take a while!)"
msgstr " (<strong>sabar</strong>, khususnya untuk file berukuran besar, membutuhkan beberapa waktu!)"
@@ -58,9 +62,9 @@ msgstr " Beritahukan tentang bagaimana <strong>cara terbaik untuk mengklarifikas
msgid " Ideas on what <strong>other documents to request</strong> which the authority may hold. "
msgstr "Gagasan tentang <strong>dokumen lain untuk diminta</strong> yang mungkin dimiliki oleh pihak berwenang."
-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."
+msgid " If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\\n You may be able to find the address on their website, or by phoning them up and asking."
msgstr ""
-" Jika Anda mengetahui alamat yang digunakan, maka silakan<a href=\"%s\">mengirimkannya kepada kami</a>.\n"
+" Jika Anda mengetahui alamat yang digunakan, maka silakan<a href=\"{{url}}\">mengirimkannya kepada kami</a>.\n"
" Anda mungkin dapat menemukan alamatnya di website mereka, atau dengan menelepon dan menanyakannya kepada mereka."
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."
@@ -100,19 +104,7 @@ msgid " when you send this message."
msgstr " saat Anda mengirim pesan ini."
msgid "\"Hello! We have an <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">important message</a> for visitors outside {{country_name}}\""
-msgstr ""
-
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
-msgstr[0] "%d Permintaan Kebebasan Informasi ke %s"
-
-msgid "%d request"
-msgid_plural "%d requests"
-msgstr[0] "%d permintaan-permintaan"
-
-msgid "%d request made."
-msgid_plural "%d requests made."
-msgstr[0] "%d permintaan-permintaan yang diajukan."
+msgstr "\"Halo! Kami mempunyai <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">pesan penting</a> untuk pengunjung diluar {{country_name}}\""
msgid "'Crime statistics by ward level for Wales'"
msgstr "'Statistik Kriminal berdasarkan tingkat penjara untuk Wales'"
@@ -129,6 +121,9 @@ msgstr "'{{link_to_request}}', sebuah permintaan"
msgid "'{{link_to_user}}', a person"
msgstr "'{{link_to_user}}', seseorang"
+msgid "*unknown*"
+msgstr "*Tidak diketahui*"
+
msgid ",\\n\\n\\n\\nYours,\\n\\n{{user_name}}"
msgstr ""
",\n"
@@ -151,34 +146,14 @@ msgstr "2. Minta informasi"
msgid "3. Now check your request"
msgstr "3. Sekarang periksa permintaan Anda"
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
-msgstr "<a href=\"%s\">Tambahkan anotasi</a> (untuk membantu peminta informasi atau yang lain)"
-
-msgid "<a href=\"%s\">Are we missing a public authority?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Are you the owner of\\n any commercial copyright on this page?</a>"
-msgstr ""
-"<a href=\"%s\">Apakah Anda pemilik dari \n"
-" hak cipta komersial di halaman ini?</a>"
-
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
-msgstr "<a href=\"%s\">Lihat semua</a> atau <a href=\"%s\">minta kami untuk menambahkan</a>."
-
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
-msgstr "<a href=\"%s\">Tidak dapat menemukan apa yang Anda inginkan?</a>"
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
+msgstr "<a href=\"{{browse_url}}\">Lihat semua</a> atau <a href=\"{{add_url}}\">minta kami untuk menambahkan</a>."
-msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
-msgstr "<a href=\"%s\">Daftar</a> untuk mengubah kode sandi, langganan dan lain-lain (hanya {{user_name}})"
+msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)"
+msgstr "<a href=\"{{url}}\">Tambahkan anotasi</a> (untuk membantu peminta informasi atau yang lain)"
-msgid "<a href=\"%s\">details</a>"
-msgstr "<a href=\"%s\">rincian</a>"
-
-msgid "<a href=\"%s\">what's that?</a>"
-msgstr "<a href=\"%s\">Apa itu?</a>"
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
+msgstr "<a href=\"{{url}}\">Daftar</a> untuk mengubah kode sandi, langganan dan lain-lain (hanya {{user_name}})"
msgid "<p>All done! Thank you very much for your help.</p><p>There are <a href=\"{{helpus_url}}\">more things you can do</a> to help {{site_name}}.</p>"
msgstr "<p>Selesai! Terima kasih banyak untuk bantuan Anda.</p><p>Ada <a href=\"{{helpus_url}}\">lebih banyak hal-hal yang bisa Anda lakukan </a> untuk membantu{{site_name}}.</p>"
@@ -207,9 +182,6 @@ msgstr ""
msgid "<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>"
msgstr "<p>Terima kasih! Mudah-mudahan Anda tidak terlalu lama menunggu.</p><p>Anda seharusnya mendapatkan tanggapan dalam waktu{{late_number_of_days}} hari, atau akan diinformasikan jika akan memakan waktu lebih lama (<a href=\"{{review_url}}\">rincian</a>).</p>"
-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 "<p>Terima kasih! Kami akan menyelidiki apa yang terjadi dan mencoba untuk memperbaikinya.</p><p>Jika kesalahannya berupa kegagalan dalam pengiriman, dan Anda dapat menemukan alamat email FOI yang terbaru untuk otoritas, mohon informasikan kepada kami menggunakan formulir di bawah.</p>"
-
msgid "<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>"
msgstr "<p>Terima kasih! Permintaan Anda sudah lama terlambat, lebih dari {{very_late_number_of_days}} hari kerja. Kebanyakan permintaan seharusnya dijawab dalam waktu {{late_number_of_days}} hari kerja. Anda mungkin ingin mengajukan keberatan mengenai hal ini, lihat di bawah.</p>"
@@ -234,11 +206,11 @@ msgstr "<p>Kami senang Anda memperoleh semua informasi yang Anda inginkan. Jika
msgid "<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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 "<p>Kami senang Anda memperoleh beberapa informasi yang Anda inginkan. Jika Anda merasakannya {{site_name}} berguna, <a href=\"{{donation_url}}\">berikanlah donasi</a> kepada badan amal yang mengelolanya.</p><p>Jika Anda ingin mencoba dan mendapatkan seluruh informasi tersebut, berikut apa yang harus dilakukan sekarang.</p>"
-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 "<p>Anda tidak perlu menyertakan email Anda dalam permintaan ini untuk mendapatkan balasan (<a href=\"%s\">rincian</a>).</p>"
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
+msgstr "<p>Anda tidak perlu menyertakan email Anda dalam permintaan ini untuk mendapatkan balasan (<a href=\"{{url}}\">rincian</a>).</p>"
-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 "<p>Anda tidak perlu menyertakan email Anda dalam permintaan ini untuk mendapatkan balasan, karena kami akan memintanya di layar berikutnya (<a href=\"%s\">rincian</a>).</p>"
+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=\"{{url}}\">details</a>).</p>"
+msgstr "<p>Anda tidak perlu menyertakan email Anda dalam permintaan ini untuk mendapatkan balasan, karena kami akan memintanya di layar berikutnya (<a href=\"{{url}}\">rincian</a>).</p>"
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 "<p>Permintaan Anda memuat <strong>kode pos</strong>. Kecuali berhubungan langsung dengan subyek permintaan Anda, silakan hapus alamat apapun karena <strong>akan tampil secara terbuka di Internet</strong>.</p>"
@@ -260,14 +232,10 @@ msgstr ""
"bulk/spam Anda. Terkadang, pesan-pesan kami ditandai seperti demikian.</small>\n"
"</p>"
-msgid "<span id='follow_count'>%d</span> person is following this authority"
-msgid_plural "<span id='follow_count'>%d</span> people are following this authority"
-msgstr[0] "<span id='follow_count'>%d</span> orang mengikuti otoritas ini"
-
-msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
+msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
msgstr ""
"<strong> Bisakah saya meminta informasi tentang saya sendiri?</strong>\n"
-"\t\t\t<a href=\"%s\">Tidak! (Klik di sini untuk rincian)</a>"
+"\t\t\t<a href=\"{{url}}\">Tidak! (Klik di sini untuk rincian)</a>"
msgid "<strong><code>commented_by:tony_bowden</code></strong> to search annotations made by Tony Bowden, typing the name as in the URL."
msgstr "<strong><code>dikomentari oleh:tony_bowden</code></strong> untuk mencari anotasi yang dibuat oleh Tony Bowden, mengetikkan nama seperti di URL."
@@ -323,10 +291,10 @@ msgstr ""
" <small>(mungkin hanya ada sebuah sambutan)</small>"
msgid "<strong>Note:</strong> Because we're testing, requests are being sent to {{email}} rather than to the actual authority."
-msgstr ""
+msgstr "<strong>Catatan:</strong> Karena kami melakukan ujicoba, permintaan akan dikirim ke {{email}} daripada otoritas sebenarnya."
msgid "<strong>Note:</strong> You're sending a message to yourself, presumably\\n to try out how it works."
-msgstr ""
+msgstr "<strong>Catatan:</strong> Anda mengirim pesan kepada Anda sendiri, sepertinya untuk mencoba bagaimana ini bekerja."
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 ""
@@ -334,13 +302,13 @@ msgstr ""
" Kami akan mengirimkan email ke alamat email Anda yang baru. Ikutilah\n"
" instruksi di dalamnya untuk mengkonfirmasi perubahan email Anda."
-msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"%s\">click here</a>."
+msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"{{url}}\">click here</a>."
msgstr ""
"<strong>Catatan privasi:</strong> Jika Anda ingin meminta informasi privat tentang\n"
-" Anda sendiri maka <a href=\"%s\">click here</a>."
+" Anda sendiri maka <a href=\"{{url}}\">click here</a>."
msgid "<strong>Privacy note:</strong> Your photo will be shown in public on the Internet,\\n wherever you do something on {{site_name}}."
-msgstr ""
+msgstr "<strong>Catatan privasi:</strong> Foto Anda akan ditampilkan secara terbuka di internet,\\n di mana pun anda melakukan sesuatu pada {{site_name}}."
msgid "<strong>Privacy warning:</strong> Your message, and any response\\n to it, will be displayed publicly on this website."
msgstr ""
@@ -380,6 +348,9 @@ msgstr "Respon akan dikirimkan <strong>lewat pos </strong>"
msgid "A strange reponse, required attention by the {{site_name}} team"
msgstr "Respon yang tidak biasa, membutuhkan perhatian tim {{site_name}}"
+msgid "A vexatious request"
+msgstr "Sebuah permintaan menjengkelkan"
+
msgid "A {{site_name}} user"
msgstr "Pengguna{{site_name}}"
@@ -389,6 +360,15 @@ msgstr "Tentang Anda:"
msgid "Act on what you've learnt"
msgstr "Bertindak atas apa yang telah Anda pelajari"
+msgid "Acts as xapian/acts as xapian job"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Action"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Model"
+msgstr ""
+
msgid "Add an annotation"
msgstr "Tambahkan anotasi"
@@ -453,7 +433,7 @@ msgid "An Environmental Information Regulations request"
msgstr "Permintaan Peraturan Informasi Lingkungan"
msgid "An anonymous user"
-msgstr ""
+msgstr "Sebuah pengguna anonim"
msgid "Annotation added to request"
msgstr "Anotasi ditambahkan untuk meminta"
@@ -470,18 +450,27 @@ msgstr ""
" <strong>tidak</strong> dikirimkan ke{{public_body_name}}"
msgid "Anonymous user"
-msgstr ""
+msgstr "Pengguna anonim"
msgid "Anyone:"
msgstr "Siapapun:"
+msgid "Applies to"
+msgstr "Berlaku untuk"
+
+msgid "Are we missing a public authority?"
+msgstr "Adakah otoritas publik yang belum kami cantumkan?"
+
+msgid "Are you the owner of any commercial copyright on this page?"
+msgstr "Apakah Anda pemilik dari hak cipta komersial di halaman ini?"
+
msgid "Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries."
msgstr "Meminta <strong>dokumen atau informasi</strong> spesifik, situs ini tidak cocok untuk pertanyaan umum."
-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>)."
+msgid "At the bottom of this page, write a reply to them trying to persuade them to scan it in\\n (<a href=\"{{url}}\">more details</a>)."
msgstr ""
"Di bagian bawah halaman ini, tulislah balasan kepada mereka berusaha membujuk mereka untuk memindainya \n"
-" (<a href=\"%s\">lebih banyak rincian</a>)."
+" (<a href=\"{{url}}\">lebih banyak rincian</a>)."
msgid "Attachment (optional):"
msgstr "Lampiran (opsional):"
@@ -516,6 +505,12 @@ msgstr "Berdasarkan undang-undang, dalam semua keadaan, {{public_body_link}} sek
msgid "By law, {{public_body_link}} should normally have responded <strong>promptly</strong> and"
msgstr "Berdasarkan undang-undang, {{public_body_link}} seharusnya sudah menanggapi <strong>pada waktunya</strong> dan"
+msgid "Calculated home page"
+msgstr "Terhitung halaman beranda"
+
+msgid "Can't find the one you want?"
+msgstr "Tidak dapat menemukan apa yang Anda inginkan?"
+
msgid "Cancel a {{site_name}} alert"
msgstr "Membatalkan{{site_name}} tanda notifikasi"
@@ -535,7 +530,7 @@ msgid "CensorRule|Last edit editor"
msgstr "CensorRule|Last edit editor"
msgid "CensorRule|Regexp"
-msgstr ""
+msgstr "CensorRule | Regexp"
msgid "CensorRule|Replacement"
msgstr "CensorRule|Replacement"
@@ -592,7 +587,7 @@ msgid "Classify an FOI response from "
msgstr "Mengklasifikasi respon FOI dari "
msgid "Clear photo"
-msgstr ""
+msgstr "Bersihkan foto"
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\\nreview, asking them to find out why response to the request has been so slow."
msgstr ""
@@ -603,7 +598,7 @@ msgid "Click on the link below to send a message to {{public_body}} reminding th
msgstr "Klik tautan di bawah untuk mengirimkan pesan kepada{{public_body}} mengingatkan mereka untuk menjawab permintaan Anda."
msgid "Close"
-msgstr ""
+msgstr "Tutup"
msgid "Comment"
msgstr "Komentar"
@@ -660,7 +655,7 @@ msgid "Considered by administrators as vexatious and hidden from site."
msgstr "Pertimbangan administrator yang mengesalkan dan tersembunyi dari website"
msgid "Contact {{recipient}}"
-msgstr ""
+msgstr "Kontak {{recipient}}"
msgid "Contact {{site_name}}"
msgstr "Kontak {{site_name}}"
@@ -685,9 +680,15 @@ msgstr "Saat ini<strong>sedang menunggu respon</strong> dari{{public_body_link}}
msgid "Date:"
msgstr "Tanggal:"
+msgid "Dear {{name}},"
+msgstr ""
+
msgid "Dear {{public_body_name}},"
msgstr "Yang terhormat {{public_body_name}},"
+msgid "Default locale"
+msgstr "Locale default"
+
msgid "Delayed response to your FOI request - "
msgstr "Respon yang tertunda atas permintaan FOI Anda - "
@@ -697,6 +698,9 @@ msgstr "Tertunda."
msgid "Delivery error"
msgstr "Kesalahan pengiriman"
+msgid "Destroy {{name}}"
+msgstr "Menghapus {{name}}"
+
msgid "Details of request '"
msgstr "Rincian permintaan '"
@@ -707,7 +711,10 @@ msgid "Disclaimer: This message and any reply that you make will be published on
msgstr "Sangkalan: Pesan ini dan balasan apapun yang Anda buat akan dimuat di Internet. Kebijakan privasi dan hak citpta kami:"
msgid "Disclosure log"
-msgstr ""
+msgstr "Pembukaan log"
+
+msgid "Disclosure log URL"
+msgstr "Pembukaan riwayat URL"
msgid "Don't want to address your message to {{person_or_body}}? You can also write to:"
msgstr "Tidak mau mengalamatkan pesan Anda kepada {{person_or_body}}? Anda dapat juga menulis kepada:"
@@ -716,7 +723,7 @@ msgid "Done"
msgstr "Selesai"
msgid "Done &gt;&gt;"
-msgstr ""
+msgstr "Selesai &gt;&gt;"
msgid "Download a zip file of all correspondence"
msgstr "Unduh file zip dari semua korespondensi"
@@ -727,14 +734,14 @@ msgstr "Unduh lampiran original"
msgid "EIR"
msgstr "EIR"
+msgid "Edit"
+msgstr "Ubah"
+
msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
msgstr ""
"Edit dan tambah<strong>lebih banyak rincian</strong> ke pesan di atas,\n"
" Menjelaskan mengapa Anda tidak puas dengan respon mereka."
-msgid "Edit language version:"
-msgstr "Edit versi bahasa:"
-
msgid "Edit text about you"
msgstr "Edit teks tentang Anda"
@@ -756,8 +763,8 @@ msgstr "Email saya update dari permintaan ini"
msgid "Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>"
msgstr "Masukkan kata-kata yang ingin Anda cari dipisahkan dengan spasi, contoh <strong>jalur pendakian</strong>"
-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 ""
+msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"{{url}}\">contact us</a> if you need more)."
+msgstr "Masukkan respon Anda di bawah. Anda dapat melampirkan satu file (gunakan email, atau\\n <a href=\"{{url}}\">kontak kami</a> jika Anda butuh lebih)."
msgid "Environmental Information Regulations"
msgstr "Peraturan Informasi Lingkungan"
@@ -774,17 +781,20 @@ msgstr "Sejarah peristiwa"
msgid "Event history details"
msgstr "Rincian sejarah peristiwa"
-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>)."
+msgid "Event {{id}}"
+msgstr "Event {{id}}"
+
+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=\"{{url}}\">why?</a>)."
msgstr ""
-"Semua yang Anda masukkan di halama ini \n"
+"Semua yang Anda masukkan di halaman ini, termasuk<strong>nama Anda</strong>, \n"
" akan<strong>ditampilkan secara terbuka </strong> di\n"
-" website ini selamanya (<a href=\"%s\">kenapa?</a>)."
+" website ini selamanya (<a href=\"{{url}}\">kenapa?</a>)."
-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>)."
+msgid "Everything that you enter on this page\\n will be <strong>displayed publicly</strong> on\\n this website forever (<a href=\"{{url}}\">why?</a>)."
msgstr ""
-"Semua yang Anda masukkan di halaman ini, termasuk<strong>nama Anda</strong>, \n"
+"Semua yang Anda masukkan di halama ini \n"
" akan<strong>ditampilkan secara terbuka </strong> di\n"
-" website ini selamanya (<a href=\"%s\">kenapa?</a>)."
+" website ini selamanya (<a href=\"{{url}}\">kenapa?</a>)."
msgid "FOI"
msgstr "FOI"
@@ -792,6 +802,9 @@ msgstr "FOI"
msgid "FOI email address for {{public_body}}"
msgstr "Alamat email FOI untuk{{public_body}}"
+msgid "FOI request – {{title}}"
+msgstr "Permintaan FOI - {{title}}"
+
msgid "FOI requests"
msgstr "Permintaan FOI"
@@ -807,17 +820,17 @@ msgstr "Jawaban permintaan membutuhkan {{{reason}}} - {{title}}"
msgid "Failed to convert image to a PNG"
msgstr "Failed to convert image to a PNG"
-msgid "Failed to convert image to the correct size: at %{cols}x%{rows}, need %{width}x%{height}"
-msgstr "Tidak berhasil mengubah gambar ke ukuran yang tepat: pada %{cols}x%{rows}, need %{width}x%{height}"
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
+msgstr "Tidak berhasil mengubah gambar ke ukuran yang tepat: pada {{cols}}x{{rows}}, need {{width}}x{{height}}"
msgid "Filter"
msgstr "Filter"
-msgid "First, type in the <strong>name of the UK public authority</strong> you'd \\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"%s#%s\">why?</a>)."
+msgid "First, type in the <strong>name of the UK public authority</strong> you'd\\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"{{url}}\">why?</a>)."
msgstr ""
"Pertama, ketik <strong>nama dari otoritas public Kerajaan Inggris </strong> Anda\n"
" ingin informasi dari. <strong>Berdasarkan undang-undang, mereka harus merespon </strong>\n"
-" (<a href=\"%s#%s\">mengapa?</a>)."
+" (<a href=\"{{url}}\">mengapa?</a>)."
msgid "Foi attachment"
msgstr "Lampiran permintaan"
@@ -889,7 +902,7 @@ msgid "Follow us on twitter"
msgstr "Ikuti kami di twitter"
msgid "Followups cannot be sent for this request, as it was made externally, and published here by {{public_body_name}} on the requester's behalf."
-msgstr ""
+msgstr "Tindak lanjut tidak dapat dikirim untuk permintaan ini, seperti yang dibuat secara eksternal, dan ditampilkan disini oleh {{public_body_name}} pada atas nama peminta informasi."
msgid "For an unknown reason, it is not possible to make a request to this authority."
msgstr "Untuk alasan yang tidak diketahui, Anda tidak dapat mengajukan permintaan kepada otoritas ini."
@@ -897,9 +910,9 @@ msgstr "Untuk alasan yang tidak diketahui, Anda tidak dapat mengajukan permintaa
msgid "Forgotten your password?"
msgstr "Lupa kode sandi Anda?"
-msgid "Found %d public authority %s"
-msgid_plural "Found %d public authorities %s"
-msgstr[0] ""
+msgid "Found {{count}} public authority {{description}}"
+msgid_plural "Found {{count}} public authorities {{description}}"
+msgstr[0] "Menemukan {{count}} otoritas publik {{description}}"
msgid "Freedom of Information"
msgstr "Freedom of Information"
@@ -934,13 +947,13 @@ msgid "Freedom of information requests to"
msgstr "Permintaan Freedom of information kepada"
msgid "From"
-msgstr ""
+msgstr "Dari"
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
"Dari halaman permintaan, cobalah untuk membalas ke pesan tertentu, daripada mengirimkan\n"
" tindak lanjut umum. Jika Anda perlu membuat tindak lanjut umum, dan tahu\n"
-" email yang akan dikirimkan ke tempat yang benar, silakan <a href=\"%s\">kirimkan kepada kami</a>."
+" email yang akan dikirimkan ke tempat yang benar, silakan <a href=\"{{url}}\">kirimkan kepada kami</a>."
msgid "From:"
msgstr "Dari:"
@@ -951,6 +964,18 @@ msgstr "BERIKAN RINCIAN TENTANG KEBERATAN ANDA DI SINI"
msgid "Handled by post."
msgstr "Ditangani oleh pos."
+msgid "Has tag string/has tag string tag"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Model"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Name"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Value"
+msgstr ""
+
msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
msgstr "Halo! Anda dapat membuat permintaan Freedom of Information di {{country_name}} pada{{link_to_website}}"
@@ -976,6 +1001,9 @@ msgstr ""
" waktu untuk membacanya dan membantu kami menjaga agar tempat ini tetap rapi untuk semua orang?\n"
" Terima kasih."
+msgid "Hide request"
+msgstr "Sembunyikan permintaan"
+
msgid "Holiday"
msgstr "Liburan"
@@ -988,6 +1016,9 @@ msgstr "Hari libur|Deskripsi"
msgid "Home"
msgstr "Awal"
+msgid "Home page"
+msgstr "Halaman beranda"
+
msgid "Home page of authority"
msgstr "Situs web otoritas"
@@ -1040,8 +1071,17 @@ msgstr "Saya sudah menerima <strong>beberapa informasi</strong>"
msgid "I've received an <strong>error message</strong>"
msgstr "Saya sudah menerima <strong>pesan error</strong>"
-msgid "If the address is wrong, or you know a better address, please <a href=\"%s\">contact us</a>."
-msgstr "Jika alamatnya salah, atau Anda tahu alamat yang lebih baik, silakan <a href=\"%s\">hubungi kami</a>."
+msgid "I've received an error message"
+msgstr "Saya menerima pesan error"
+
+msgid "Id"
+msgstr "Id"
+
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Jika alamatnya salah, atau Anda tahu alamat yang lebih baik, silakan <a href=\"{{url}}\">hubungi kami</a>."
+
+msgid "If the error was a delivery failure, and you can find an up to date FOI email address for the authority, please tell us using the form below."
+msgstr "Jika errornya adalah kegagalan pengiriman, dan Anda dapat menemukan alamat email FOI otoritas publik yang baru, silakan memberi tahu kami menggunakan form dibawah ini."
msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
msgstr ""
@@ -1049,28 +1089,28 @@ msgstr ""
"atau sebuah email tentang subyek lainnya kepada {{user}}, maka silakan\n"
"email {{contact_email}} untuk bantuan."
-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>)."
+msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"{{url}}\">details</a>)."
msgstr ""
"Jika Anda tidak puas dengan respon yang Anda peroleh dari\n"
" otoritas publik tersebut, Anda berhak untuk\n"
-" mengajukan keberatan (<a href=\"%s\">rincian</a>)."
+" mengajukan keberatan (<a href=\"{{url}}\">rincian</a>)."
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
-msgstr "Jika Anda masih mengalami kesulitan, silakan <a href=\"%s\">hubungi kami</a>."
+msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Jika Anda masih mengalami kesulitan, silakan <a href=\"{{url}}\">hubungi kami</a>."
-msgid "If you are the requester, then you may <a href=\"%s\">sign in</a> to view the request."
-msgstr "Jika Anda adalah sang pemohon, maka Anda dapat <a href=\"%s\">mendaftar</a> untuk menampilkan permintaan tersebut."
+msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request."
+msgstr "Jika Anda adalah sang pemohon, maka Anda dapat <a href=\"{{url}}\">mendaftar</a> untuk menampilkan permintaan tersebut."
-msgid "If you are thinking of using a pseudonym,\\n please <a href=\"%s\">read this first</a>."
+msgid "If you are thinking of using a pseudonym,\\n please <a href=\"{{url}}\">read this first</a>."
msgstr ""
"Jika Anda mempertimbangkan untuk menggunakan nama samaran,\n"
-" silakan <a href=\"%s\">baca ini terlebih dahulu</a>."
+" silakan <a href=\"{{url}}\">baca ini terlebih dahulu</a>."
msgid "If you are {{user_link}}, please"
msgstr "Jika Anda adalah {{user_link}}, silakan"
msgid "If you believe this request is not suitable, you can report it for attention by the site administrators"
-msgstr ""
+msgstr "Jika anda yakin permintaan ini tidak sesuai, Anda dapat melaporkannya sehingga menjadi perhatian administrator situs"
msgid "If you can't click on it in the email, you'll have to <strong>select and copy\\nit</strong> from the email. Then <strong>paste it into your browser</strong>, into the place\\nyou would type the address of any other webpage."
msgstr ""
@@ -1095,7 +1135,7 @@ msgid "If you have not done so already, please write a message below telling the
msgstr "Jika Anda belum melakukannya, silakan tulis pesan di bawah untuk member tahu otoritas bahwa Anda telah menarik permintaan Anda. Jika tidak, mereka tidak akan tahu bahwa permintaan tersebut telah ditarik."
msgid "If you reply to this message it will go directly to {{user_name}}, who will\\nlearn your email address. Only reply if that is okay."
-msgstr ""
+msgstr "Jika Anda membalas pesan ini maka akan diteruskan ke {{user_name}}, yang akan melihat alamat email Anda. Hanya balasan jika itu tidak apa-apa."
msgid "If you use web-based email or have \"junk mail\" filters, also check your\\nbulk/spam mail folders. Sometimes, our messages are marked that way."
msgstr ""
@@ -1118,6 +1158,9 @@ msgstr ""
"Jika browser Anda diatur untuk menerima cookie dan Anda melihat pesan ini,\n"
"maka kemungkinan ada kesalahan pada server kami."
+msgid "Incoming email address"
+msgstr "Email masuk"
+
msgid "Incoming message"
msgstr "Pesan Masuk"
@@ -1149,7 +1192,7 @@ msgid "IncomingMessage|Valid to reply to"
msgstr "IncomingMessage|Valid to reply to"
msgid "Individual requests"
-msgstr ""
+msgstr "Permintaan individu"
msgid "Info request"
msgstr "Info permintaan"
@@ -1185,16 +1228,16 @@ msgid "InfoRequest|Awaiting description"
msgstr "InfoRequest|Awaiting description"
msgid "InfoRequest|Comments allowed"
-msgstr ""
+msgstr "InfoRequest | Comments allowed"
msgid "InfoRequest|Described state"
msgstr "InfoRequest|Described state"
msgid "InfoRequest|External url"
-msgstr ""
+msgstr "InfoRequest | External url"
msgid "InfoRequest|External user name"
-msgstr ""
+msgstr "InfoRequest | External user name"
msgid "InfoRequest|Handle rejected responses"
msgstr "InfoRequest|Handle rejected responses"
@@ -1237,14 +1280,20 @@ msgstr ""
msgid "Items matching the following conditions are currently displayed on your wall."
msgstr "Kesesuaian permintaan akan ditampilkan pada wall Anda."
+msgid "Items sent in last month"
+msgstr "Item terkirim pada akhir bulan"
+
msgid "Joined in"
msgstr "Bergabung di"
msgid "Joined {{site_name}} in"
msgstr "Bergabung {{site_name}} di"
-msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)."
-msgstr "Tetap <strong>fokus</strong>, Anda akan lebih mungkin untuk mendapatkan apa yang Anda inginkan (<a href=\"%s\">mengapa?</a>)."
+msgid "Just one more thing"
+msgstr "Satu hal lagi"
+
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
+msgstr "Tetap <strong>fokus</strong>, Anda akan lebih mungkin untuk mendapatkan apa yang Anda inginkan (<a href=\"{{url}}\">mengapa?</a>)."
msgid "Keywords"
msgstr "Katakunci"
@@ -1263,9 +1312,27 @@ msgstr ""
msgid "Link to this"
msgstr "Tautan kepada ini"
+msgid "List all"
+msgstr "Daftar keseluruhan"
+
msgid "List of all authorities (CSV)"
msgstr "Daftar dari semua otoritas (CSV)"
+msgid "Listing FOI requests"
+msgstr "Daftar permintaan FOI"
+
+msgid "Listing public authorities"
+msgstr "Daftar otoritas publik"
+
+msgid "Listing public authorities matching '{{query}}'"
+msgstr "Daftar otoritas publik sesuai '{{query}}'"
+
+msgid "Listing tracks"
+msgstr "Daftar lacak"
+
+msgid "Listing users"
+msgstr "Daftar pengguna"
+
msgid "Log in to download a zip file of {{info_request_title}}"
msgstr "Masuk untuk mengunduh file zip dari {{info_request_title}}"
@@ -1279,22 +1346,22 @@ msgid "Made between"
msgstr "Dibuat antara"
msgid "Mail server log"
-msgstr ""
+msgstr "Riwayat server email"
msgid "Mail server log done"
-msgstr ""
+msgstr "Riwayat server mail selesai"
msgid "MailServerLogDone|Filename"
-msgstr ""
+msgstr "MailServerLogDone | Filename"
msgid "MailServerLogDone|Last stat"
-msgstr ""
+msgstr "MailServerLogDone | Last stat"
msgid "MailServerLog|Line"
-msgstr ""
+msgstr "MailServerLog | Line"
msgid "MailServerLog|Order"
-msgstr ""
+msgstr "MailServerLog | Order"
msgid "Make a new <strong>Environmental Information</strong> request"
msgstr "Buat permintaan<strong>Informasi Lingkungan</strong> yang baru"
@@ -1322,10 +1389,10 @@ msgid "Make your own request"
msgstr "Buat permintaan Anda sendiri"
msgid "Many requests"
-msgstr ""
+msgstr "Banyak permintaan"
msgid "Message"
-msgstr ""
+msgstr "Pesan"
msgid "Message sent using {{site_name}} contact form, "
msgstr "Pesan dikirim menggunakan {{site_name}} kontak dari, "
@@ -1337,7 +1404,7 @@ msgid "More about this authority"
msgstr "Lebih jauh tentang otoritas ini"
msgid "More requests..."
-msgstr ""
+msgstr "Permintaan lainnya..."
msgid "More similar requests"
msgstr "Lebih banyak permintaan serupa"
@@ -1366,6 +1433,9 @@ msgstr "Nama sudah diambil"
msgid "New Freedom of Information requests"
msgstr "Permintaan Freedom of Information baru"
+msgid "New censor rule"
+msgstr "Peraturan sensor baru"
+
msgid "New e-mail:"
msgstr "Email baru:"
@@ -1379,7 +1449,7 @@ msgid "New password: (again)"
msgstr "Kode sandi baru: (lagi)"
msgid "New response to '{{title}}'"
-msgstr ""
+msgstr "Respon baru untuk '{{title}}'"
msgid "New response to your FOI request - "
msgstr "Respon baru untuk permintaan FOI Anda -"
@@ -1411,6 +1481,9 @@ msgstr "Tidak ditemukan hasil."
msgid "No similar requests found."
msgstr "Tidak ditemukan permintaan serupa."
+msgid "No tracked things found."
+msgstr "Tidak ditemukan hal-hal yang dilacak."
+
msgid "Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet."
msgstr "Belum ada orang yang membuat permintaan Freedom of Information kepada{{public_body_name}} menggunakan situs ini."
@@ -1420,8 +1493,11 @@ msgstr "Tidak ditemukan."
msgid "None made."
msgstr "Tidak ada yang dibuat."
+msgid "Not a valid FOI request"
+msgstr "Permintaan FOI tidak valid"
+
msgid "Note that the requester will not be notified about your annotation, because the request was published by {{public_body_name}} on their behalf."
-msgstr ""
+msgstr "Catat bahwa peminta informasi tidak akan mendapat pemberitahuan tentang notasi Anda, karena permintaan ditampilkan oleh {{public_body_name}} atas nama mereka."
msgid "Now check your email!"
msgstr "Sekarang periksa email Anda!"
@@ -1465,6 +1541,9 @@ msgstr "Satu orang ditemukan"
msgid "One public authority found"
msgstr "Satu otoritas publik ditemukan"
+msgid "Only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL – don't worry about breaking URLs through renaming, as the history is used to redirect"
+msgstr "Masukkan singkatan yang benar-benar digunakan, jika tidak biarkan kosong. Panjang atau pendek nama yang digunakan di URL - Jangan khawatir merusak URL melalui penggantian nama, sebagai riwayat yang digunakan untuk pengarahan"
+
msgid "Only requests made using {{site_name}} are shown."
msgstr "Hanya permintaan yang dibuat menggunakan {{site_name}} yang ditampilkan."
@@ -1517,7 +1596,7 @@ msgid "Paste this link into emails, tweets, and anywhere else:"
msgstr "Paste tautan ini ke email, tweets, dan tempat lain:"
msgid "People"
-msgstr ""
+msgstr "Masyarakat"
msgid "People {{start_count}} to {{end_count}} of {{total_count}}"
msgstr "Orang{{start_count}} ke{{end_count}} dari{{total_count}}"
@@ -1537,8 +1616,8 @@ msgstr "Mainkan permainan kategorisasi permintaan!"
msgid "Please"
msgstr "Silakan"
-msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
-msgstr "Silakan<a href=\"%s\">berhubungan</a> dengan kami sehingga kami dapat memperbaikinya."
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
+msgstr "Silakan<a href=\"{{url}}\">berhubungan</a> dengan kami sehingga kami dapat memperbaikinya."
msgid "Please <strong>answer the question above</strong> so we know whether the "
msgstr "Mohon <strong>jawab pertanyaan di atas</strong> sehingga kami tahu apakah "
@@ -1653,23 +1732,18 @@ msgstr ""
"Silakan pilih masing-masing permintaan ini bergantian, dan <strong>biarkan semua orang tahu </strong>\n"
"apakah mereka sudah berhasil atau belum."
-msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature"
-msgstr ""
-"Mohon tandatangani bagian bawah dengan nama Anda, atau ubah \"%{signoff}\" tanda tangan\n"
-"Silakan masuk sebagai "
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
+msgstr "Mohon tandatangani bagian bawah dengan nama Anda, atau ubah \"{{signoff}}\" tanda tangan"
msgid "Please sign in as "
msgstr "Silakan masuk sebagai"
msgid "Please sign in or make a new account."
-msgstr ""
+msgstr "Silakan masuk atau membuat akun baru"
msgid "Please type a message and/or choose a file containing your response."
msgstr "Slakan ketik pesan dan/atau pilih file yang berisi respon Anda."
-msgid "Please use the form below to tell us more."
-msgstr "Silakan gunakan formulir di bawah untuk memberitahu kami lebih banyak."
-
msgid "Please use this email address for all replies to this request:"
msgstr "Silakan gunakan alamat email ini untuk semua balasan kepada permintaan ini:"
@@ -1760,44 +1834,26 @@ msgstr "Otoritas publik - {{description}}"
msgid "Public authorities {{start_count}} to {{end_count}} of {{total_count}}"
msgstr "Ptoritas publik {{start_count}} ke{{end_count}} dari {{total_count}}"
+msgid "Public authority – {{name}}"
+msgstr "Otoritas publik - {{name}}"
+
msgid "Public body"
msgstr "Badan publik"
-msgid "Public body/translation"
-msgstr "Public body/translation"
-
-msgid "PublicBody::Translation|Disclosure log"
-msgstr ""
-
-msgid "PublicBody::Translation|First letter"
-msgstr "PublicBody::Translation|First letter"
-
-msgid "PublicBody::Translation|Locale"
-msgstr "PublicBody::Translation|Locale"
+msgid "Public notes"
+msgstr "Catatan publik"
-msgid "PublicBody::Translation|Name"
-msgstr "PublicBody::Translation|Name"
+msgid "Public page"
+msgstr "Halaman publik"
-msgid "PublicBody::Translation|Notes"
-msgstr "PublicBody::Translation|Notes"
-
-msgid "PublicBody::Translation|Publication scheme"
-msgstr "PublicBody::Translation|Publication scheme"
-
-msgid "PublicBody::Translation|Request email"
-msgstr "PublicBody::Translation|Request email"
-
-msgid "PublicBody::Translation|Short name"
-msgstr "PublicBody::Translation|Short name"
-
-msgid "PublicBody::Translation|Url name"
-msgstr "PublicBody::Translation|Url name"
+msgid "Public page not available"
+msgstr "Halaman publik tidak ada"
msgid "PublicBody|Api key"
-msgstr ""
+msgstr "PublicBody | Api key"
msgid "PublicBody|Disclosure log"
-msgstr ""
+msgstr "PublicBody | Disclosure log"
msgid "PublicBody|First letter"
msgstr "PublicBody|First letter"
@@ -1806,7 +1862,7 @@ msgid "PublicBody|Home page"
msgstr "PublicBody|Home page"
msgid "PublicBody|Info requests count"
-msgstr ""
+msgstr "PublicBody | Info requests count"
msgid "PublicBody|Last edit comment"
msgstr "PublicBody|Last edit comment"
@@ -1838,6 +1894,9 @@ msgstr "PublicBody|Version"
msgid "Publication scheme"
msgstr "Skema publikasi"
+msgid "Publication scheme URL"
+msgstr "Skema publikasi URL"
+
msgid "Purge request"
msgstr "Pembersihan permintaan"
@@ -1897,6 +1956,9 @@ msgstr "Minta kajian internal"
msgid "Request an internal review from {{person_or_body}}"
msgstr "Minta kajian internal dari {{person_or_body}}"
+msgid "Request email"
+msgstr "Email permintaan"
+
msgid "Request has been removed"
msgstr "Permintaan telah dihapus"
@@ -1937,7 +1999,7 @@ msgid "Response from a public authority"
msgstr "Respon dari otoritas publik"
msgid "Response to '{{title}}'"
-msgstr ""
+msgstr "Respon ke '{{title}}'"
msgid "Response to this request is <strong>delayed</strong>."
msgstr "Respon atas permintaan ini <strong>ditunda</strong>."
@@ -1982,7 +2044,7 @@ msgstr ""
" <strong>{{number_of_authorities}} otoritas</strong>"
msgid "Search queries"
-msgstr ""
+msgstr "Permintaan pencarian"
msgid "Search results"
msgstr "Hasil pencarian"
@@ -1990,13 +2052,16 @@ msgstr "Hasil pencarian"
msgid "Search the site to find what you were looking for."
msgstr "Cari situs ini untuk menemukan apa yang Anda cari."
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
-msgstr[0] "Cari di dalam %d permintaan Freedom of Information yang dibuat kepada %s"
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests made to {{public_body_name}}"
+msgstr[0] "Cari di dalam {{count}} permintaan Freedom of Information yang dibuat kepada {{public_body_name}}"
msgid "Search your contributions"
msgstr "Cari kontribusi Anda"
+msgid "See bounce message"
+msgstr "Lihan pesan kembali"
+
msgid "Select one to see more information about the authority."
msgstr "Pilih satu untuk melihat lebih banyak informasi tentang otoritas terkait."
@@ -2016,7 +2081,7 @@ msgid "Send a public reply to {{person_or_body}}"
msgstr "Kirim balasan terbuka kepada {{person_or_body}}"
msgid "Send follow up to '{{title}}'"
-msgstr ""
+msgstr "Mengikuti permintaan '{{title}}'"
msgid "Send message"
msgstr "Kirim pesan"
@@ -2030,6 +2095,9 @@ msgstr "Kirim permintaan"
msgid "Set your profile photo"
msgstr "Mengatur foto profil Anda"
+msgid "Short name"
+msgstr "Nama singkat"
+
msgid "Short name is already taken"
msgstr "Nama pendek sudah diambil"
@@ -2080,7 +2148,7 @@ msgid "Somebody added a note to your FOI request - "
msgstr "Seseorang menambahkan catatan kepada permintaan FOI Anda -"
msgid "Someone has updated the status of your request"
-msgstr ""
+msgstr "Seseorang memperbarui status permintaan Anda"
msgid "Someone, perhaps you, just tried to change their email address on\\n{{site_name}} from {{old_email}} to {{new_email}}."
msgstr ""
@@ -2088,7 +2156,7 @@ msgstr ""
"{{site_name}} dari {{old_email}} menjadi {{new_email}}."
msgid "Sorry - you cannot respond to this request via {{site_name}}, because this is a copy of the request originally at {{link_to_original_request}}."
-msgstr ""
+msgstr "Maaf - Anda tidak dapat merespon permintaan ini melalui {{site_name}}, karena ini merupakan salinan permintaan yang asli di {{link_to_original_request}}."
msgid "Sorry, but only {{user_name}} is allowed to do that."
msgstr "Maaf, tapi hanya {{user_name}} yang diijinkan untuk melakukannya."
@@ -2118,7 +2186,7 @@ msgid "Still awaiting an <strong>internal review</strong>"
msgstr "Masih menunggu <strong>kajian internal</strong>"
msgid "Subject"
-msgstr ""
+msgstr "Subyek"
msgid "Subject:"
msgstr "Subyek:"
@@ -2129,6 +2197,9 @@ msgstr "Masukkan"
msgid "Submit status"
msgstr "Kirim status"
+msgid "Submit status and send message"
+msgstr "Kirim status dan kirim pesan"
+
msgid "Subscribe to blog"
msgstr "Berlangganan kepada blog"
@@ -2150,6 +2221,9 @@ msgstr "Tabel status"
msgid "Table of varieties"
msgstr "Tabel jenis"
+msgid "Tags"
+msgstr "Label"
+
msgid "Tags (separated by a space):"
msgstr "Label (dipisahkan oleh spasi):"
@@ -2177,6 +2251,9 @@ msgstr "Terima kasih telah memperbarui permintaan ini!"
msgid "Thank you for updating your profile photo"
msgstr "Terima kasih telah memperbarui foto profil Anda"
+msgid "Thank you! We'll look into what happened and try and fix it up."
+msgstr "Terimakasih! Kami akan melihat apa yang terjadi dan mencoba memperbaikinya."
+
msgid "Thanks for helping - your work will make it easier for everyone to find successful\\nresponses, and maybe even let us make league tables..."
msgstr ""
"Terima kasih sudah membantu - karya Anda akan mempermudah semua orang untuk mendapatkan \n"
@@ -2259,22 +2336,22 @@ msgstr "Permintaan <strong>berhasil</strong>."
msgid "The request was refused by the public authority"
msgstr "Permintaan ditolak oleh otoritas publik"
-msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"%s\">contact us</a> if you have any questions."
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
msgstr ""
"Permintaan yang Anda coba untuk tampilkan telah dihapus. Ada\n"
"berbagai alasan mengapa kami mungkin melakukan hal ini, maaf kami tidak dapat lebih spesifik lagi di sini. Silakan <a\n"
-" href=\"%s\">hubungi kami</a> jika Anda memiliki pertanyaan apapun."
+" href=\"{{url}}\">hubungi kami</a> jika Anda memiliki pertanyaan apapun."
msgid "The requester has abandoned this request for some reason"
msgstr "Pemohon telah mengabaikan permintaan ini karena beberapa alasan"
-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"
+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 ""
"Respon terhadap permintaan Anda telah <strong>ditunda</strong>. Anda dapat mengatakan bahwa, \n"
" Berdasarkan undang-undang, otoritas seharusnya sudah merespon\n"
" <strong>dengan segera</strong> dan"
-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"
+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 ""
"Respon terhadap permintaan Anda sudah <strong>lama terlambat</strong>. Anda dapat mengatakan bahwa, berdasarkan \n"
" undang-undang, dalam keadaan apapun, otoritas seharusnya sudah merespon\n"
@@ -2286,6 +2363,9 @@ msgstr "Indeks pencarian saat ini sedang offline, sehingga kami tidak dapat mena
msgid "The search index is currently offline, so we can't show the Freedom of Information requests this person has made."
msgstr "Indeks pencarian saat ini sedang offline, sehingga kami tidak dapat menampilkan permintaan Freedom of Information yang telah dibuat oleh orang ini."
+msgid "The {{site_name}} team."
+msgstr ""
+
msgid "Then you can cancel the alert."
msgstr "Maka Anda dapat membatalkan tanda notifikasi."
@@ -2361,16 +2441,16 @@ msgstr "Maka anotasi Anda kepada {{info_request_title}} akan diposting."
msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
msgstr "Ada {{count}} anotasi baru pada permintaan {{info_request}} Anda. Ikuti tautan ini untuk melihat apa yang mereka tulis."
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
-msgstr[0] "Ada %d orang mengikuti permintaan ini"
-
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 ""
+msgstr "Ada <strong>lebih dari satu orang</strong> yang menggunakan situs ini dan memiliki nama ini.\\n Salah satu dari mereka ditunjukkan dibawah, mungkin yang Anda maksud orang yang berbeda:"
msgid "There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>."
msgstr "Ada batas jumlah permintaan yang dapat Anda buat dalam sehari, karena kami tidak mau otoritas publik dibombardir dengan sejumlah besar permintaan yang tidak sesuai. Jika Anda merasa Anda memiliki alasan yang bagus untuk meminta batasan ini dicabut dalam kasus Anda, silakan <a href='{{help_contact_path}}'>berhubungan</a>."
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
+msgstr[0] "Ada {{count}} orang mengikuti permintaan ini"
+
msgid "There was a <strong>delivery error</strong> or similar, which needs fixing by the {{site_name}} team."
msgstr "Ada <strong>kesalahan pengiriman</strong> atau yang serupa, yang perlu diperbaiki oleh {{site_name}} tim."
@@ -2409,10 +2489,10 @@ msgstr "Hal yang Anda ikuti"
msgid "This authority no longer exists, so you cannot make a request to it."
msgstr "Otoritas ini tidak lagi ada, sehingga Anda tidak dapat membuat permintaan kepadanya."
-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."
+msgid "This comment has been hidden. See annotations to\\n find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
"Komentar ini sudah disembunyikan. Lihat anotasi untuk\n"
-" mengetahui kenapa. Jika Anda adalah sang pemohon, maka Anda dapat <a href=\"%s\">masuk</a> untuk menampilkan respon tersebut."
+" mengetahui kenapa. Jika Anda adalah sang pemohon, maka Anda dapat <a href=\"{{url}}\">masuk</a> untuk menampilkan respon tersebut."
msgid "This covers a very wide spectrum of information about the state of\\n the <strong>natural and built environment</strong>, such as:"
msgstr ""
@@ -2420,7 +2500,7 @@ msgstr ""
"lingkungan <strong> alami dan buatan </strong>, seperti:"
msgid "This external request has been hidden"
-msgstr ""
+msgstr "Permintaan luar ini telah disembunyikan"
msgid "This is a plain-text version of the Freedom of Information request \"{{request_title}}\". The latest, full version is available online at {{full_url}}"
msgstr "Ini merupakan versi teks biasa dari permintaan Freedom of Information \"{{request_title}}\". Yang terbaru, versi lengkap tersedia online di {{full_url}}"
@@ -2433,13 +2513,16 @@ msgstr ""
"Ini karena {{title}} merupakan permintaan lama yang sudah\n"
"ditandai untuk tidak lagi menerima respon."
+msgid "This is the first version."
+msgstr "Ini merupakan versi pertama"
+
msgid "This is your own request, so you will be automatically emailed when new responses arrive."
msgstr "Ini adalah permintaan Anda sendiri, sehingga Anda akan secara otomatis dikirimi email ketika respon baru diterima."
-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."
+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=\"{{url}}\">sign in</a> to view the response."
msgstr ""
"Pesan keluar ini telah disembunyikan. Lihat anotasi untuk\n"
-"\t\t\t\t\t\tmengetahui kenapa. Jika Anda adalah sang pemohon, maka Anda dapat <a href=\"%s\">masuk</a> untuk menampilkan respon tersebut."
+"\t\t\t\t\t\tmengetahui kenapa. Jika Anda adalah sang pemohon, maka Anda dapat <a href=\"{{url}}\">masuk</a> untuk menampilkan respon tersebut."
msgid "This particular request is finished:"
msgstr "Peemintaan khusus ini telah selesai:"
@@ -2447,17 +2530,17 @@ msgstr "Peemintaan khusus ini telah selesai:"
msgid "This person has made no Freedom of Information requests using this site."
msgstr "Orang ini belum membuat permintaan Freedom of Information apapun menggunakan situs ini."
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
-msgstr[0] "Orang ini %d permintaan Freedom of Information"
-
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
-msgstr[0] "Orang ini %d anotasi"
-
msgid "This person's annotations"
msgstr "Anotasi orang ini"
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
+msgstr[0] "Orang ini {{count}} permintaan Freedom of Information"
+
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
+msgstr[0] "Orang ini {{count}} anotasi"
+
msgid "This request <strong>requires administrator attention</strong>"
msgstr "Permintaan ini <strong>membutuhkan perhatian administrator</strong>"
@@ -2481,8 +2564,8 @@ msgstr ""
"Permintaan ini telah <strong>ditarik</strong> oleh orang yang membuatnya. \n"
" \t Mungkin ada penjelasan dalam korespondensi di bawah."
-msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"%s\">contact us</a>."
-msgstr "Permintaan ini telah ditandai untuk di review oleh administrator, tetapi tidak disembunyikan pada saat ini. Jika Anda yakin akan disembunyikan, silakan <a href=\"%s\">kontak kami</a>."
+msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Permintaan ini telah ditandai untuk di review oleh administrator, tetapi tidak disembunyikan pada saat ini. Jika Anda yakin akan disembunyikan, silakan <a href=\"{{url}}\">kontak kami</a>."
msgid "This request has been reported for administrator attention"
msgstr "Permintaan ini telah dilaporkan untuk perhatian administrator"
@@ -2498,21 +2581,24 @@ msgstr ""
"Permintaan ini memiliki keulungan 'tersembunyi'. Anda hanya dapat melihatnya karena Anda masuk\n"
" sebagai pengguna super."
-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."
+msgid "This request is hidden, so that only you the requester can see it. Please\\n <a href=\"{{url}}\">contact us</a> if you are not sure why."
msgstr ""
"Permintaan ini disembunyikan, sehingga hanya Anda sang pemhon yang dapat melihatnya. Silakan\n"
-" <a href=\"%s\">hubungi kami</a> jika Anda tidak yakin mengapa."
+" <a href=\"{{url}}\">hubungi kami</a> jika Anda tidak yakin mengapa."
msgid "This request is still in progress:"
msgstr "Permintaan ini masih dalam proses:"
+msgid "This request requires administrator attention"
+msgstr "Permintaan ini membutuhkan perhatian administrator"
+
msgid "This request was not made via {{site_name}}"
-msgstr ""
+msgstr "Permintaan ini tidak dibuat melalui {{site_name}}"
-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."
+msgid "This response has been hidden. See annotations to find out why.\\n If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
"Respon ini telah disembunyikan. Lihat anotasi untuk mengetahui kenapa.\n"
-" Jika Anda adalah sang pemohon, maka Anda dapat <a href=\"%s\">masuk</a> untuk melihat respon tersebut."
+" Jika Anda adalah sang pemohon, maka Anda dapat <a href=\"{{url}}\">masuk</a> untuk melihat respon tersebut."
msgid "This table shows the technical details of the internal events that happened\\nto this request on {{site_name}}. This could be used to generate information about\\nthe speed with which authorities respond to requests, the number of requests\\nwhich require a postal response and much more."
msgstr ""
@@ -2579,7 +2665,7 @@ msgstr ""
"{{law_used_full}} permintaan {{title}} yang Anda buat kepada {{public_body}}, untuk \"{{display_status}}\" Jika Anda tidak setuju dengan penggolongan mereka, silakan perbarui status itu lagi sendiri menjadi apa yang menurut Anda lebih akurat."
msgid "To let everyone know, follow this link and then select the appropriate box."
-msgstr ""
+msgstr "Agar semua orang tahu, ikuti tautanini dan kemudian pilih kotak yang sesuai."
msgid "To log into the administrative interface"
msgstr "Untuk masuk ke tampilan administrasi"
@@ -2680,11 +2766,11 @@ msgstr "Jenis hasil pencarian yang tidak terduga"
msgid "Unexpected search result type "
msgstr "Jenis hasil pencarian yang tidak terduga "
-msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"%s\">contact us</a> to sort it out."
+msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"{{url}}\">contact us</a> to sort it out."
msgstr ""
"Sayangnya kami tidak mengetahui FOI \n"
"alamat email untuk otoritas tersebut, sehingga kami tidak dapat memvalidasi ini.\n"
-"Silakan <a href=\"%s\">hubungi kami</a> untuk mengatasinya."
+"Silakan <a href=\"{{url}}\">hubungi kami</a> untuk mengatasinya."
msgid "Unfortunately, we do not have a working {{info_request_law_used_full}}\\naddress for"
msgstr ""
@@ -2695,7 +2781,7 @@ msgid "Unknown"
msgstr "Tidak diketahui"
msgid "Unsubscribe"
-msgstr ""
+msgstr "Berhenti langganan"
msgid "Unusual response."
msgstr "Respon yang tidak biasa."
@@ -2707,7 +2793,7 @@ msgid "Update the status of your request to "
msgstr "Memperbarui status permintaan Anda kepada"
msgid "Upload FOI response"
-msgstr ""
+msgstr "Unggah respon FOI"
msgid "Use OR (in capital letters) where you don't mind which word, e.g. <strong><code>commons OR lords</code></strong>"
msgstr "Gunakan ATAU (dalam huruf kapital) di mana Anda tidak keberatan kata yang mana, misalnya <strong><code>majelis perwakilan rendah ATAU pejabat tinggi</code></strong>"
@@ -2721,6 +2807,9 @@ msgstr "Pengguna"
msgid "User info request sent alert"
msgstr "Informasi permintaan pengguna telah mengirim notifikasi"
+msgid "User – {{name}}"
+msgstr "Pengguna - {{name}}"
+
msgid "UserInfoRequestSentAlert|Alert type"
msgstr "UserInfoRequestSentAlert|Alert type"
@@ -2728,7 +2817,7 @@ msgid "User|About me"
msgstr "User|About me"
msgid "User|Address"
-msgstr ""
+msgstr "User | Address"
msgid "User|Admin level"
msgstr "User|Admin level"
@@ -2737,7 +2826,7 @@ msgid "User|Ban text"
msgstr "User|Ban text"
msgid "User|Dob"
-msgstr ""
+msgstr "User | Dob"
msgid "User|Email"
msgstr "User|Email"
@@ -2775,6 +2864,9 @@ msgstr "User|Salt"
msgid "User|Url name"
msgstr "User|Url name"
+msgid "Version {{version}}"
+msgstr "Versi {{version}}"
+
msgid "View FOI email address"
msgstr "Tampilkan alamat email FOI"
@@ -2814,6 +2906,12 @@ msgstr "Menunggu otoritas publik untuk membalas"
msgid "Was the response you got to your FOI request any good?"
msgstr "Apakah respon yang Anda terima atas permintaa FOI Anda berguna?"
+msgid "We consider it is not a valid FOI request, and have therefore hidden it from other users."
+msgstr ""
+
+msgid "We consider it to be vexatious, and have therefore hidden it from other users."
+msgstr ""
+
msgid "We do not have a working request email address for this authority."
msgstr "Kami tidak memiliki alamat email permintaan yang bekerja untuk otoritas ini."
@@ -2827,10 +2925,10 @@ msgstr ""
" &ndash;\n"
"\tjika Anda adalah {{user_link}} silakan <a href=\"{{url}}\">masuk</a> dan jangan biarkan siapapun tahu."
-msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"%s\">details</a>). "
+msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"{{url}}\">details</a>). "
msgstr ""
"Kami tidak akan mengungkapkan alamat email Anda kepada siapapun kecuali Anda atau\n"
-" undang-undang menyuruh kami untuk melakukannya (<a href=\"%s\">rincian</a>). "
+" undang-undang menyuruh kami untuk melakukannya (<a href=\"{{url}}\">rincian</a>). "
msgid "We will not reveal your email address to anybody unless you\\nor the law tell us to."
msgstr ""
@@ -2871,7 +2969,7 @@ msgid "What information has been released?"
msgstr "Informasi apa yang sudah dirilis?"
msgid "What information has been requested?"
-msgstr ""
+msgstr "Informasi apa yang telah diminta?"
msgid "When you get there, please update the status to say if the response \\ncontains any useful information."
msgstr ""
@@ -2883,8 +2981,8 @@ msgstr ""
"Ketika Anda menerima respon tertulis, mohon bantu\n"
" yang lainnya untuk mengetahui apa yang dikatakannya:"
-msgid "When you're done, <strong>come back here</strong>, <a href=\"%s\">reload this page</a> and file your new request."
-msgstr "Ketika Anda selesai, <strong>kembali ke sini</strong>, <a href=\"%s\">muat ulang halaman ini</a> dan ajukan permintaan baru Anda."
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
+msgstr "Ketika Anda selesai, <strong>kembali ke sini</strong>, <a href=\"{{url}}\">muat ulang halaman ini</a> dan ajukan permintaan baru Anda."
msgid "Which of these is happening?"
msgstr "Yang mana di antara hal-hal ini yang terjadi?"
@@ -2990,13 +3088,13 @@ msgid "You know what caused the error, and can <strong>suggest a solution</stron
msgstr "Anda tahu apa yang menyebabkan kesalahan tersebut, dan dapat <strong>menyarankan solusi</strong>, seperti alamat email yang bekerja."
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 ""
+msgstr "Anda dapat <strong>mengikutsertakan lampiran</strong>. Jika Anda hendak melampirkan sebuah\\n file yang terlalu besar untuk email, gunakan formulir di bawah."
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
"Anda mungkin dapat menemukan\n"
" satu di website mereka, atau dengan menelepon mereka dan bertanya. Jika Anda berhasil\n"
-" menemukannya, maka mohon <a href=\"%s\">kirimkan kepada kami</a>."
+" menemukannya, maka mohon <a href=\"{{url}}\">kirimkan kepada kami</a>."
msgid "You may be able to find\\none on their website, or by phoning them up and asking. If you manage\\nto find one, then please <a href=\"{{help_url}}\">send it to us</a>."
msgstr ""
@@ -3020,7 +3118,7 @@ msgid "You previously submitted that exact follow up message for this request."
msgstr "Anda sebelumnya memasukkan pesan tindak lanjut yang sama persis untuk permintaan ini."
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 ""
+msgstr "Anda seharusnya menerima salinan dari permintaan tersebut lewat email, dan Anda dapat merespon\\n <strong>hanya dengan membalas</strong> kepada email tersebut. Untuk kenyamanan Anda, berikut adalah alamatnya:"
msgid "You want to <strong>give your postal address</strong> to the authority in private."
msgstr "Anda ingin <strong>memberikan alamat pos Anda</strong> kepada otoritas tersebut secara pribadi."
@@ -3042,9 +3140,12 @@ msgstr ""
"Anda hanya akan menerima jawaban atas permintaan Anda jika Anda menindaklanjuti\n"
"dengan klarifikasi."
-msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
+msgid "You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further."
msgstr ""
+msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
+msgstr "Anda telah masuk. <a href=\"#\" id=\"send-request\">Lanjut mengirim permintaan Anda</a>"
+
msgid "You're long overdue a response to your FOI request - "
msgstr "Anda telah lama menunda respon terhadap permintaan FOI Anda - "
@@ -3054,33 +3155,25 @@ msgstr "Anda tidak mengikuti apapun."
msgid "You've now cleared your profile photo"
msgstr "Anda sekarang telah menghapus foto profil Anda"
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
-msgstr[0] "Permintaan Freedom of Information %d Anda"
-
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
-msgstr[0] "Anotasi %d Anda"
-
-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>."
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
msgstr ""
"Nama <strong>Anda akan muncul secara terbuka </strong> \n"
-" (<a href=\"%s\">mengapa?</a>)\n"
+" (<a href=\"{{why_url}}\">mengapa?</a>)\n"
" di website ini dan di mesin pencari. Jika Anda\n"
" mempertimbangkan untuk menggunakan nama samaran, silakan\n"
-" <a href=\"%s\">baca ini terlebih dahulu</a>."
+" <a href=\"{{help_url}}\">baca ini terlebih dahulu</a>."
msgid "Your annotations"
msgstr "anotasi Anda"
msgid "Your details, including your email address, have not been given to anyone."
-msgstr ""
+msgstr "Rincian Anda, termasuk alamat email Anda, tidak akan diberikan ke siapapun."
msgid "Your e-mail:"
msgstr "Email Anda:"
-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 "Tindak lanjut Anda belum dikirimkan karena permintaan ini telah dihentikan untuk mencegah spam. Silakan <a href=\"%s\">hubungi kami</a> jika Anda benar-benar ingin mengirimkan pesan tindak lanjut."
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
+msgstr "Tindak lanjut Anda belum dikirimkan karena permintaan ini telah dihentikan untuk mencegah spam. Silakan <a href=\"{{url}}\">hubungi kami</a> jika Anda benar-benar ingin mengirimkan pesan tindak lanjut."
msgid "Your follow up message has been sent on its way."
msgstr "Pesan tindak lanjut Anda sedang dalam pengiriman."
@@ -3103,10 +3196,10 @@ msgstr "Pesan Anda akan tampak di <strong>mesin pencari</strong>"
msgid "Your name and annotation will appear in <strong>search engines</strong>."
msgstr "Nama dan anotasi Anda akan tampak di <strong>mesin pencari</strong>."
-msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"%s\">details</a>)."
+msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"{{url}}\">details</a>)."
msgstr ""
"Nama Anda, permintaan dan setiap permintaan akan tampak di <strong>mesin pencari</strong>\n"
-" (<a href=\"%s\">rincian</a>)."
+" (<a href=\"{{url}}\">rincian</a>)."
msgid "Your name:"
msgstr "Nama Anda:"
@@ -3121,6 +3214,12 @@ msgid "Your password:"
msgstr "kode sandi aAnda:"
msgid "Your photo will be shown in public <strong>on the Internet</strong>,\\n wherever you do something on {{site_name}}."
+msgstr "Foto Anda akan ditampilkan secara terbuka <strong>di Internet</strong>,\\n di mana pun Anda melakukan sesuatu pada {{site_name}}."
+
+msgid "Your request '{{request}}' at {{url}} has been reviewed by moderators."
+msgstr ""
+
+msgid "Your request on {{site_name}} hidden"
msgstr ""
msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
@@ -3130,14 +3229,22 @@ msgid "Your request:"
msgstr "Permintaan Anda :"
msgid "Your response to an FOI request was not delivered"
-msgstr ""
+msgstr "Respon Anda ke permintaan FOI tidak terkirim"
-msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"%s\">read why</a> and answers to other questions."
-msgstr "Respon Anda akan <strong>tampil di Internet</strong>, <a href=\"%s\">baca mengapa</a> dan jawaban-jawaban atas pertanyaan-pertanyaan lain."
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
+msgstr "Respon Anda akan <strong>tampil di Internet</strong>, <a href=\"{{url}}\">baca mengapa</a> dan jawaban-jawaban atas pertanyaan-pertanyaan lain."
msgid "Your thoughts on what the {{site_name}} <strong>administrators</strong> should do about the request."
msgstr "Pendapat Anda tentang apa yang{{site_name}} <strong>administrator</strong> harus lakukan tentang permintaan ini."
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
+msgstr[0] "Permintaan Freedom of Information {{count}} Anda"
+
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
+msgstr[0] "Anotasi {{count}} Anda"
+
msgid "Your {{site_name}} email alert"
msgstr "tanda notifikasi email {{site_name}} Anda"
@@ -3147,6 +3254,9 @@ msgstr "Hormat saya,"
msgid "Yours sincerely,"
msgstr "Hormat saya,"
+msgid "Yours,"
+msgstr ""
+
msgid "[FOI #{{request}} email]"
msgstr "[FOI #{{request}} email]"
@@ -3167,6 +3277,9 @@ msgstr ""
msgid "admin"
msgstr "admin"
+msgid "alaveteli_foi:The software that runs {{site_name}}"
+msgstr "alaveteli_foi:Perangkat lunak yang berjalan {{site_name}}"
+
msgid "all requests"
msgstr "semua permintaan"
@@ -3174,7 +3287,7 @@ msgid "also called {{public_body_short_name}}"
msgstr "juga disebut {{public_body_short_name}}"
msgid "an anonymous user"
-msgstr ""
+msgstr "pengguna anonim"
msgid "and"
msgstr "dan"
@@ -3200,6 +3313,9 @@ msgstr "apa saja"
msgid "are long overdue."
msgstr "sudah lama terlambat."
+msgid "at"
+msgstr "di"
+
msgid "authorities"
msgstr "otoritas"
@@ -3212,6 +3328,9 @@ msgstr "dimulai dengan ‘{{first_letter}}’"
msgid "between two dates"
msgstr "antara dua tanggal"
+msgid "but followupable"
+msgstr "tetapi terikuti"
+
msgid "by"
msgstr "oleh"
@@ -3251,7 +3370,7 @@ msgid "everything"
msgstr "seluruhnya"
msgid "external"
-msgstr ""
+msgstr "luar"
msgid "has reported an"
msgstr "telah melaporkan"
@@ -3295,19 +3414,25 @@ msgstr "pesan dari otoritas"
msgid "messages from users"
msgstr "pesan dari pengguna"
+msgid "move..."
+msgstr "pindah..."
+
msgid "no later than"
msgstr "tidak kurang dari"
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
"tidak lagi ada. Jika Anda mencoba untuk membuat\n"
" Dari halaman permintaan, coba untuk membalas ke pesan tertentu, daripada mengirim\n"
" tindak lanjut umum. Jika Anda perlu membuat tindak lanjut umum, dan tahu\n"
-" email yang akan pergi ke tempat yang tepat, silakan <a href=\"%s\">mengirimkannya kepada kami</a>."
+" email yang akan pergi ke tempat yang tepat, silakan <a href=\"{{url}}\">mengirimkannya kepada kami</a>."
msgid "normally"
msgstr "biasanya"
+msgid "not requestable due to: {{reason}}"
+msgstr "Tidak mengandung permintaan karena: {{reason}}"
+
msgid "please sign in as "
msgstr "silakan masuk sebagai "
@@ -3331,6 +3456,9 @@ msgstr "mengirimkan pesan tidak lanjut"
msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
msgstr "dikirmkan ke {{public_body_name}} oleh {{info_request_user}} pada {{date}}."
+msgid "set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA"
+msgstr "set <strong>kosong</strong> (string kosong) jika tidak dapat menemukan alamat; email ini <strong>publik</strong> bagi siapapun dapat melihatnya dengan sebuah CAPTCHA"
+
msgid "show quoted sections"
msgstr "Tampilkan bagian yang dikutip"
@@ -3352,11 +3480,16 @@ msgstr "yang Anda buat kepada"
msgid "the main FOI contact address for {{public_body}}"
msgstr "alamat kontak FOI utama untuk {{public_body}}"
+#. This phrase completes the following sentences:
+#. Request an internal review from...
+#. Send a public follow up message to...
+#. Send a public reply to...
+#. Don't want to address your message to... ?
msgid "the main FOI contact at {{public_body}}"
msgstr "kontak FOI utama di {{public_body}}"
msgid "the requester"
-msgstr ""
+msgstr "peminta informasi"
msgid "the {{site_name}} team"
msgstr "tim {{site_name}}"
@@ -3400,9 +3533,28 @@ msgstr "informasi yang berguna"
msgid "users"
msgstr "pengguna"
+msgid "what's that?"
+msgstr "Apa itu?"
+
msgid "{{count}} FOI requests found"
msgstr "{{count}} permintaan FOI ditemukan"
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] "{{count}} Permintaan Kebebasan Informasi ke {{public_body_name}}"
+
+msgid "{{count}} person is following this authority"
+msgid_plural "{{count}} people are following this authority"
+msgstr[0] "{{count}} orang mengikuti otoritas ini"
+
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
+msgstr[0] "{{count}} permintaan-permintaan"
+
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
+msgstr[0] "{{count}} permintaan-permintaan yang diajukan."
+
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 ""
"{{existing_request_user}} sudah\n"
@@ -3431,10 +3583,10 @@ msgid "{{number_of_comments}} comments"
msgstr "{{number_of_comments}} komentar"
msgid "{{public_body_link}} answered a request about"
-msgstr ""
+msgstr "{{public_body_link}} menjawab permintaan tentang"
msgid "{{public_body_link}} was sent a request about"
-msgstr ""
+msgstr "{{public_body_link}} telah mengirim permintaan tentang"
msgid "{{public_body_name}} only:"
msgstr "Hanya {{public_body_name}} :"
@@ -3446,7 +3598,7 @@ msgid "{{public_body}} sent a response to {{user_name}}"
msgstr "{{public_body}} mengirimkan respon kepada {{user_name}}"
msgid "{{reason}}, please sign in or make a new account."
-msgstr ""
+msgstr "{{reason}}, silakan masuk atau membuat akun baru."
msgid "{{search_results}} matching '{{query}}'"
msgstr "{{search_results}} sesuai '{{query}}'"
@@ -3463,6 +3615,9 @@ msgstr "{{site_name}} mengirimkan permintaan baru kepada <strong>{{request_email
msgid "{{site_name}} users have made {{number_of_requests}} requests, including:"
msgstr "{{site_name}} users have made {{number_of_requests}} requests, including:"
+msgid "{{thing_changed}} was changed from <code>{{from_value}}</code> to <code>{{to_value}}</code>"
+msgstr "{{thing_changed}} telah diubah dari <code>{{from_value}}</code> ke <code>{{to_value}}</code>"
+
msgid "{{title}} - a Freedom of Information request to {{public_body}}"
msgstr "{{title}} - sebuah permintaan Keterbukaan Informasi kepada {{public_body}}"
@@ -3470,10 +3625,10 @@ msgid "{{user_name}} (Account suspended)"
msgstr "{{user_name}} (Akun ditangguhkan)"
msgid "{{user_name}} - Freedom of Information requests"
-msgstr ""
+msgstr "{{user_name}} - permintaan Keterbukaan Informasi"
msgid "{{user_name}} - user profile"
-msgstr ""
+msgstr "{{user_name}} - profil pengguna"
msgid "{{user_name}} added an annotation"
msgstr "{{user_name}} menambahkan anotasi"
diff --git a/locale/it/app.po b/locale/it/app.po
new file mode 100644
index 000000000..302f1c6d9
--- /dev/null
+++ b/locale/it/app.po
@@ -0,0 +1,3392 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# marcogiustini <info@marcogiustini.info>, 2013
+# marcogiustini <info@marcogiustini.info>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: alaveteli\n"
+"Report-Msgid-Bugs-To: http://github.com/sebbacon/alaveteli/issues\n"
+"POT-Creation-Date: 2013-05-30 09:46+0100\n"
+"PO-Revision-Date: 2013-05-30 08:54+0000\n"
+"Last-Translator: louisecrow <louise@mysociety.org>\n"
+"Language-Team: Italian (http://www.transifex.com/projects/p/alaveteli/language/it/)\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid " This will appear on your {{site_name}} profile, to make it\\n easier for others to get involved with what you're doing."
+msgstr ""
+
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
+msgstr "(<strong>no invettive</strong> politiche, leggi il nostro <a href=\"{{url}}\">regolamento di moderazione</a>)"
+
+msgid " (<strong>patience</strong>, especially for large files, it may take a while!)"
+msgstr " (<strong>pazienza</strong>, specialmente per caricare i file grandi, ci vuole un pò!)"
+
+msgid " (you)"
+msgstr " (tu)"
+
+msgid " - view and make Freedom of Information requests"
+msgstr " - vedi e crea richieste FOI"
+
+msgid " - wall"
+msgstr ""
+
+msgid " <strong>Note:</strong>\\n We will send you an email. Follow the instructions in it to change\\n your password."
+msgstr ""
+
+msgid " <strong>Privacy note:</strong> Your email address will be given to"
+msgstr " <strong>Nota Privacy:</strong> Il tuo indirizzo di email sarà dato a"
+
+msgid " <strong>Summarise</strong> the content of any information returned. "
+msgstr " <strong>Sommarizza</strong> il contenuto di ogni informazione di risposta. "
+
+msgid " Advise on how to <strong>best clarify</strong> the request."
+msgstr ""
+
+msgid " Ideas on what <strong>other documents to request</strong> which the authority may hold. "
+msgstr ""
+
+msgid " If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\\n You may be able to find the address on their website, or by phoning them up and asking."
+msgstr ""
+
+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 ""
+
+msgid " Link to the information requested, if it is <strong>already available</strong> on the Internet. "
+msgstr ""
+
+msgid " Offer better ways of <strong>wording the request</strong> to get the information. "
+msgstr ""
+
+msgid " Say how you've <strong>used the information</strong>, with links if possible."
+msgstr ""
+
+msgid " Suggest <strong>where else</strong> the requester might find the information. "
+msgstr ""
+
+msgid " What are you investigating using Freedom of Information? "
+msgstr ""
+
+msgid " You are already being emailed updates about the request."
+msgstr ""
+
+msgid " You will also be emailed updates about the request."
+msgstr ""
+
+msgid " made by "
+msgstr ""
+
+msgid " or "
+msgstr ""
+
+msgid " when you send this message."
+msgstr ""
+
+msgid "\"Hello! We have an <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">important message</a> for visitors outside {{country_name}}\""
+msgstr ""
+
+msgid "'Crime statistics by ward level for Wales'"
+msgstr ""
+
+msgid "'Pollution levels over time for the River Tyne'"
+msgstr ""
+
+msgid "'{{link_to_authority}}', a public authority"
+msgstr ""
+
+msgid "'{{link_to_request}}', a request"
+msgstr ""
+
+msgid "'{{link_to_user}}', a person"
+msgstr ""
+
+msgid "*unknown*"
+msgstr ""
+
+msgid ",\\n\\n\\n\\nYours,\\n\\n{{user_name}}"
+msgstr ""
+
+msgid "- or -"
+msgstr ""
+
+msgid "1. Select an authority"
+msgstr ""
+
+msgid "2. Ask for Information"
+msgstr ""
+
+msgid "3. Now check your request"
+msgstr ""
+
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
+msgstr ""
+
+msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)"
+msgstr ""
+
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
+msgstr ""
+
+msgid "<p>All done! Thank you very much for your help.</p><p>There are <a href=\"{{helpus_url}}\">more things you can do</a> to help {{site_name}}.</p>"
+msgstr ""
+
+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=\"{{find_authority_url}}\">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=\"{{complain_url}}\">how to complain</a>.\\n </li>\\n <li>We have <a href=\"{{other_means_url}}\">suggestions</a>\\n on other means to answer your question.\\n </li>\\n </ul>"
+msgstr ""
+
+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 ""
+
+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 ""
+
+msgid "<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>"
+msgstr ""
+
+msgid "<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>"
+msgstr ""
+
+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 ""
+
+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 ""
+
+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 ""
+
+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 {{site_name}} useful, <a href=\"{{donation_url}}\">make a donation</a> to the charity which runs it.</p>"
+msgstr ""
+
+msgid "<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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 ""
+
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
+msgstr ""
+
+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=\"{{url}}\">details</a>).</p>"
+msgstr ""
+
+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 ""
+
+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 {{late_number_of_days}} 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 ""
+
+msgid "<p>{{site_name}} is currently in maintenance. You can only view existing requests. You cannot make new ones, add followups or annotations, or otherwise change the database.</p> <p>{{read_only}}</p>"
+msgstr ""
+
+msgid "<small>If you use web-based email or have \"junk mail\" filters, also check your\\nbulk/spam mail folders. Sometimes, our messages are marked that way.</small>\\n</p>"
+msgstr ""
+
+msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
+msgstr ""
+
+msgid "<strong><code>commented_by:tony_bowden</code></strong> to search annotations made by Tony Bowden, typing the name as in the URL."
+msgstr ""
+
+msgid "<strong><code>filetype:pdf</code></strong> to find all responses with PDF attachments. Or try these: <code>{{list_of_file_extensions}}</code>"
+msgstr ""
+
+msgid "<strong><code>request:</code></strong> to restrict to a specific request, typing the title as in the URL."
+msgstr ""
+
+msgid "<strong><code>requested_by:julian_todd</code></strong> to search requests made by Julian Todd, typing the name as in the URL."
+msgstr ""
+
+msgid "<strong><code>requested_from:home_office</code></strong> to search requests from the Home Office, typing the name as in the URL."
+msgstr ""
+
+msgid "<strong><code>status:</code></strong> to select based on the status or historical status of the request, see the <a href=\"{{statuses_url}}\">table of statuses</a> below."
+msgstr ""
+
+msgid "<strong><code>tag:charity</code></strong> to find all public authorities 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 ""
+
+msgid "<strong><code>variety:</code></strong> to select type of thing to search for, see the <a href=\"{{varieties_url}}\">table of varieties</a> below."
+msgstr ""
+
+msgid "<strong>Advice</strong> on how to get a response that will satisfy the requester. </li>"
+msgstr ""
+
+msgid "<strong>All the information</strong> has been sent"
+msgstr ""
+
+msgid "<strong>Anything else</strong>, such as clarifying, prompting, thanking"
+msgstr ""
+
+msgid "<strong>Caveat emptor!</strong> To use this data in an honourable way, you will need \\na good internal knowledge of user behaviour on {{site_name}}. How, \\nwhy and by whom requests are categorised is not straightforward, and there will\\nbe user error and ambiguity. You will also need to understand FOI law, and the\\nway authorities use it. Plus you'll need to be an elite statistician. Please\\n<a href=\"{{contact_path}}\">contact us</a> with questions."
+msgstr ""
+
+msgid "<strong>Clarification</strong> has been requested"
+msgstr ""
+
+msgid "<strong>No response</strong> has been received\\n <small>(maybe there's just an acknowledgement)</small>"
+msgstr ""
+
+msgid "<strong>Note:</strong> Because we're testing, requests are being sent to {{email}} rather than to the actual authority."
+msgstr ""
+
+msgid "<strong>Note:</strong> You're sending a message to yourself, presumably\\n to try out how it works."
+msgstr ""
+
+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 ""
+
+msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"{{url}}\">click here</a>."
+msgstr ""
+
+msgid "<strong>Privacy note:</strong> Your photo will be shown in public on the Internet,\\n wherever you do something on {{site_name}}."
+msgstr ""
+
+msgid "<strong>Privacy warning:</strong> Your message, and any response\\n to it, will be displayed publicly on this website."
+msgstr ""
+
+msgid "<strong>Some of the information</strong> has been sent "
+msgstr ""
+
+msgid "<strong>Thank</strong> the public authority or "
+msgstr ""
+
+msgid "<strong>did not have</strong> the information requested."
+msgstr ""
+
+msgid "A <a href=\"{{request_url}}\">follow up</a> to <em>{{request_title}}</em> was sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
+msgstr ""
+
+msgid "A <a href=\"{{request_url}}\">response</a> to <em>{{request_title}}</em> was sent by {{public_body_name}} to {{info_request_user}} on {{date}}. The request status is: {{request_status}}"
+msgstr ""
+
+msgid "A <strong>summary</strong> of the response if you have received it by post. "
+msgstr ""
+
+msgid "A Freedom of Information request"
+msgstr ""
+
+msgid "A new request, <em><a href=\"{{request_url}}\">{{request_title}}</a></em>, was sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
+msgstr ""
+
+msgid "A public authority"
+msgstr ""
+
+msgid "A response will be sent <strong>by post</strong>"
+msgstr ""
+
+msgid "A strange reponse, required attention by the {{site_name}} team"
+msgstr ""
+
+msgid "A vexatious request"
+msgstr ""
+
+msgid "A {{site_name}} user"
+msgstr ""
+
+msgid "About you:"
+msgstr ""
+
+msgid "Act on what you've learnt"
+msgstr ""
+
+msgid "Acts as xapian/acts as xapian job"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Action"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Model"
+msgstr ""
+
+msgid "Add an annotation"
+msgstr ""
+
+msgid "Add an annotation to your request with choice quotes, or\\n a <strong>summary of the response</strong>."
+msgstr ""
+
+msgid "Added on {{date}}"
+msgstr ""
+
+msgid "Admin level is not included in list"
+msgstr ""
+
+msgid "Administration URL:"
+msgstr ""
+
+msgid "Advanced search"
+msgstr ""
+
+msgid "Advanced search tips"
+msgstr ""
+
+msgid "Advise on whether the <strong>refusal is legal</strong>, and how to complain about it if not."
+msgstr ""
+
+msgid "Air, water, soil, land, flora and fauna (including how these effect\\n human beings)"
+msgstr ""
+
+msgid "All of the information requested has been received"
+msgstr ""
+
+msgid "All the options below can use <strong>status</strong> or <strong>latest_status</strong> before the colon. For example, <strong>status:not_held</strong> will match requests which have <em>ever</em> been marked as not held; <strong>latest_status:not_held</strong> will match only requests that are <em>currently</em> marked as not held."
+msgstr ""
+
+msgid "All the options below can use <strong>variety</strong> or <strong>latest_variety</strong> before the colon. For example, <strong>variety:sent</strong> will match requests which have <em>ever</em> been sent; <strong>latest_variety:sent</strong> will match only requests that are <em>currently</em> marked as sent."
+msgstr ""
+
+msgid "Also called {{other_name}}."
+msgstr ""
+
+msgid "Also send me alerts by email"
+msgstr ""
+
+msgid "Alter your subscription"
+msgstr ""
+
+msgid "Although all responses are automatically published, we depend on\\nyou, the original requester, to evaluate them."
+msgstr ""
+
+msgid "An <a href=\"{{request_url}}\">annotation</a> to <em>{{request_title}}</em> was made by {{event_comment_user}} on {{date}}"
+msgstr ""
+
+msgid "An <strong>error message</strong> has been received"
+msgstr ""
+
+msgid "An Environmental Information Regulations request"
+msgstr ""
+
+msgid "An anonymous user"
+msgstr ""
+
+msgid "Annotation added to request"
+msgstr ""
+
+msgid "Annotations"
+msgstr ""
+
+msgid "Annotations are so anyone, including you, can help the requester with their request. For example:"
+msgstr ""
+
+msgid "Annotations will be posted publicly here, and are\\n <strong>not</strong> sent to {{public_body_name}}."
+msgstr ""
+
+msgid "Anonymous user"
+msgstr ""
+
+msgid "Anyone:"
+msgstr ""
+
+msgid "Applies to"
+msgstr ""
+
+msgid "Are we missing a public authority?"
+msgstr ""
+
+msgid "Are you the owner of any commercial copyright on this page?"
+msgstr ""
+
+msgid "Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries."
+msgstr ""
+
+msgid "At the bottom of this page, write a reply to them trying to persuade them to scan it in\\n (<a href=\"{{url}}\">more details</a>)."
+msgstr ""
+
+msgid "Attachment (optional):"
+msgstr ""
+
+msgid "Attachment:"
+msgstr ""
+
+msgid "Awaiting classification."
+msgstr ""
+
+msgid "Awaiting internal review."
+msgstr ""
+
+msgid "Awaiting response."
+msgstr ""
+
+msgid "Beginning with"
+msgstr ""
+
+msgid "Browse <a href='{{url}}'>other requests</a> for examples of how to word your request."
+msgstr ""
+
+msgid "Browse <a href='{{url}}'>other requests</a> to '{{public_body_name}}' for examples of how to word your request."
+msgstr ""
+
+msgid "Browse all authorities..."
+msgstr ""
+
+msgid "By law, under all circumstances, {{public_body_link}} should have responded by now"
+msgstr ""
+
+msgid "By law, {{public_body_link}} should normally have responded <strong>promptly</strong> and"
+msgstr ""
+
+msgid "Calculated home page"
+msgstr ""
+
+msgid "Can't find the one you want?"
+msgstr ""
+
+msgid "Cancel a {{site_name}} alert"
+msgstr ""
+
+msgid "Cancel some {{site_name}} alerts"
+msgstr ""
+
+msgid "Cancel, return to your profile page"
+msgstr ""
+
+msgid "Censor rule"
+msgstr ""
+
+msgid "CensorRule|Last edit comment"
+msgstr ""
+
+msgid "CensorRule|Last edit editor"
+msgstr ""
+
+msgid "CensorRule|Regexp"
+msgstr ""
+
+msgid "CensorRule|Replacement"
+msgstr ""
+
+msgid "CensorRule|Text"
+msgstr ""
+
+msgid "Change email on {{site_name}}"
+msgstr ""
+
+msgid "Change password on {{site_name}}"
+msgstr ""
+
+msgid "Change profile photo"
+msgstr ""
+
+msgid "Change the text about you on your profile at {{site_name}}"
+msgstr ""
+
+msgid "Change your email"
+msgstr ""
+
+msgid "Change your email address used on {{site_name}}"
+msgstr ""
+
+msgid "Change your password"
+msgstr ""
+
+msgid "Change your password on {{site_name}}"
+msgstr ""
+
+msgid "Change your password {{site_name}}"
+msgstr ""
+
+msgid "Charity registration"
+msgstr ""
+
+msgid "Check for mistakes if you typed or copied the address."
+msgstr ""
+
+msgid "Check you haven't included any <strong>personal information</strong>."
+msgstr ""
+
+msgid "Choose your profile photo"
+msgstr ""
+
+msgid "Clarification"
+msgstr ""
+
+msgid "Clarify your FOI request - "
+msgstr ""
+
+msgid "Classify an FOI response from "
+msgstr ""
+
+msgid "Clear photo"
+msgstr ""
+
+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\\nreview, asking them to find out why response to the request has been so slow."
+msgstr ""
+
+msgid "Click on the link below to send a message to {{public_body}} reminding them to reply to your request."
+msgstr ""
+
+msgid "Close"
+msgstr ""
+
+msgid "Comment"
+msgstr ""
+
+msgid "Comment|Body"
+msgstr ""
+
+msgid "Comment|Comment type"
+msgstr ""
+
+msgid "Comment|Locale"
+msgstr ""
+
+msgid "Comment|Visible"
+msgstr ""
+
+msgid "Confirm you want to follow all successful FOI requests"
+msgstr ""
+
+msgid "Confirm you want to follow new requests"
+msgstr ""
+
+msgid "Confirm you want to follow new requests or responses matching your search"
+msgstr ""
+
+msgid "Confirm you want to follow requests by '{{user_name}}'"
+msgstr ""
+
+msgid "Confirm you want to follow requests to '{{public_body_name}}'"
+msgstr ""
+
+msgid "Confirm you want to follow the request '{{request_title}}'"
+msgstr ""
+
+msgid "Confirm your FOI request to "
+msgstr ""
+
+msgid "Confirm your account on {{site_name}}"
+msgstr ""
+
+msgid "Confirm your annotation to {{info_request_title}}"
+msgstr ""
+
+msgid "Confirm your email address"
+msgstr ""
+
+msgid "Confirm your new email address on {{site_name}}"
+msgstr ""
+
+msgid "Considered by administrators as not an FOI request and hidden from site."
+msgstr ""
+
+msgid "Considered by administrators as vexatious and hidden from site."
+msgstr ""
+
+msgid "Contact {{recipient}}"
+msgstr ""
+
+msgid "Contact {{site_name}}"
+msgstr ""
+
+msgid "Could not identify the request from the email address"
+msgstr ""
+
+msgid "Couldn't understand the image file that you uploaded. PNG, JPEG, GIF and many other common image file formats are supported."
+msgstr ""
+
+msgid "Crop your profile photo"
+msgstr ""
+
+msgid "Cultural sites and built structures (as they may be affected by the\\n environmental factors listed above)"
+msgstr ""
+
+msgid "Currently <strong>waiting for a response</strong> from {{public_body_link}}, they must respond promptly and"
+msgstr ""
+
+msgid "Date:"
+msgstr ""
+
+msgid "Dear {{name}},"
+msgstr ""
+
+msgid "Dear {{public_body_name}},"
+msgstr ""
+
+msgid "Default locale"
+msgstr ""
+
+msgid "Delayed response to your FOI request - "
+msgstr ""
+
+msgid "Delayed."
+msgstr ""
+
+msgid "Delivery error"
+msgstr ""
+
+msgid "Destroy {{name}}"
+msgstr ""
+
+msgid "Details of request '"
+msgstr ""
+
+msgid "Did you mean: {{correction}}"
+msgstr ""
+
+msgid "Disclaimer: This message and any reply that you make will be published on the internet. Our privacy and copyright policies:"
+msgstr ""
+
+msgid "Disclosure log"
+msgstr ""
+
+msgid "Disclosure log URL"
+msgstr ""
+
+msgid "Don't want to address your message to {{person_or_body}}? You can also write to:"
+msgstr ""
+
+msgid "Done"
+msgstr ""
+
+msgid "Done &gt;&gt;"
+msgstr ""
+
+msgid "Download a zip file of all correspondence"
+msgstr ""
+
+msgid "Download original attachment"
+msgstr ""
+
+msgid "EIR"
+msgstr ""
+
+msgid "Edit"
+msgstr ""
+
+msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
+msgstr ""
+
+msgid "Edit text about you"
+msgstr ""
+
+msgid "Edit this request"
+msgstr ""
+
+msgid "Either the email or password was not recognised, please try again."
+msgstr ""
+
+msgid "Either the email or password was not recognised, please try again. Or create a new account using the form on the right."
+msgstr ""
+
+msgid "Email doesn't look like a valid address"
+msgstr ""
+
+msgid "Email me future updates to this request"
+msgstr ""
+
+msgid "Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>"
+msgstr ""
+
+msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"{{url}}\">contact us</a> if you need more)."
+msgstr ""
+
+msgid "Environmental Information Regulations"
+msgstr ""
+
+msgid "Environmental Information Regulations requests made"
+msgstr ""
+
+msgid "Environmental Information Regulations requests made using this site"
+msgstr ""
+
+msgid "Event history"
+msgstr ""
+
+msgid "Event history details"
+msgstr ""
+
+msgid "Event {{id}}"
+msgstr ""
+
+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=\"{{url}}\">why?</a>)."
+msgstr ""
+
+msgid "Everything that you enter on this page\\n will be <strong>displayed publicly</strong> on\\n this website forever (<a href=\"{{url}}\">why?</a>)."
+msgstr ""
+
+msgid "FOI"
+msgstr ""
+
+msgid "FOI email address for {{public_body}}"
+msgstr ""
+
+msgid "FOI request – {{title}}"
+msgstr ""
+
+msgid "FOI requests"
+msgstr ""
+
+msgid "FOI requests by '{{user_name}}'"
+msgstr ""
+
+msgid "FOI requests {{start_count}} to {{end_count}} of {{total_count}}"
+msgstr ""
+
+msgid "FOI response requires admin ({{reason}}) - {{title}}"
+msgstr ""
+
+msgid "Failed to convert image to a PNG"
+msgstr ""
+
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
+msgstr ""
+
+msgid "Filter"
+msgstr ""
+
+msgid "First, type in the <strong>name of the UK public authority</strong> you'd\\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"{{url}}\">why?</a>)."
+msgstr ""
+
+msgid "Foi attachment"
+msgstr ""
+
+msgid "FoiAttachment|Charset"
+msgstr ""
+
+msgid "FoiAttachment|Content type"
+msgstr ""
+
+msgid "FoiAttachment|Display size"
+msgstr ""
+
+msgid "FoiAttachment|Filename"
+msgstr ""
+
+msgid "FoiAttachment|Hexdigest"
+msgstr ""
+
+msgid "FoiAttachment|Url part number"
+msgstr ""
+
+msgid "FoiAttachment|Within rfc822 subject"
+msgstr ""
+
+msgid "Follow"
+msgstr ""
+
+msgid "Follow all new requests"
+msgstr ""
+
+msgid "Follow new successful responses"
+msgstr ""
+
+msgid "Follow requests to {{public_body_name}}"
+msgstr ""
+
+msgid "Follow these requests"
+msgstr ""
+
+msgid "Follow things matching this search"
+msgstr ""
+
+msgid "Follow this authority"
+msgstr ""
+
+msgid "Follow this link to see the request:"
+msgstr ""
+
+msgid "Follow this person"
+msgstr ""
+
+msgid "Follow this request"
+msgstr ""
+
+msgid "Follow up"
+msgstr ""
+
+msgid "Follow up message sent by requester"
+msgstr ""
+
+msgid "Follow up messages to existing requests are sent to "
+msgstr ""
+
+msgid "Follow ups and new responses to this request have been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you are {{user_link}} and need to send a follow up."
+msgstr ""
+
+msgid "Follow us on twitter"
+msgstr ""
+
+msgid "Followups cannot be sent for this request, as it was made externally, and published here by {{public_body_name}} on the requester's behalf."
+msgstr ""
+
+msgid "For an unknown reason, it is not possible to make a request to this authority."
+msgstr ""
+
+msgid "Forgotten your password?"
+msgstr ""
+
+msgid "Found {{count}} public authority {{description}}"
+msgid_plural "Found {{count}} public authorities {{description}}"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Freedom of Information"
+msgstr ""
+
+msgid "Freedom of Information Act"
+msgstr ""
+
+msgid "Freedom of Information law does not apply to this authority, so you cannot make\\n a request to it."
+msgstr ""
+
+msgid "Freedom of Information law no longer applies to"
+msgstr ""
+
+msgid "Freedom of Information law no longer applies to this authority.Follow up messages to existing requests are sent to "
+msgstr ""
+
+msgid "Freedom of Information requests made"
+msgstr ""
+
+msgid "Freedom of Information requests made by this person"
+msgstr ""
+
+msgid "Freedom of Information requests made by you"
+msgstr ""
+
+msgid "Freedom of Information requests made using this site"
+msgstr ""
+
+msgid "Freedom of information requests to"
+msgstr ""
+
+msgid "From"
+msgstr ""
+
+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=\"{{url}}\">send it to us</a>."
+msgstr ""
+
+msgid "From:"
+msgstr ""
+
+msgid "GIVE DETAILS ABOUT YOUR COMPLAINT HERE"
+msgstr ""
+
+msgid "Handled by post."
+msgstr ""
+
+msgid "Has tag string/has tag string tag"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Model"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Name"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Value"
+msgstr ""
+
+msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
+msgstr ""
+
+msgid "Hello, {{username}}!"
+msgstr ""
+
+msgid "Help"
+msgstr ""
+
+msgid "Here <strong>described</strong> means when a user selected a status for the request, and\\nthe most recent event had its status updated to that value. <strong>calculated</strong> is then inferred by\\n{{site_name}} for intermediate events, which weren't given an explicit\\ndescription by a user. See the <a href=\"{{search_path}}\">search tips</a> for description of the states."
+msgstr ""
+
+msgid "Here is the message you wrote, in case you would like to copy the text and save it for later."
+msgstr ""
+
+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 ""
+
+msgid "Hide request"
+msgstr ""
+
+msgid "Holiday"
+msgstr ""
+
+msgid "Holiday|Day"
+msgstr ""
+
+msgid "Holiday|Description"
+msgstr ""
+
+msgid "Home"
+msgstr ""
+
+msgid "Home page"
+msgstr ""
+
+msgid "Home page of authority"
+msgstr ""
+
+msgid "However, you have the right to request environmental\\n information under a different law"
+msgstr ""
+
+msgid "Human health and safety"
+msgstr ""
+
+msgid "I am asking for <strong>new information</strong>"
+msgstr ""
+
+msgid "I am requesting an <strong>internal review</strong>"
+msgstr ""
+
+msgid "I don't like these ones &mdash; give me some more!"
+msgstr ""
+
+msgid "I don't want to do any more tidying now!"
+msgstr ""
+
+msgid "I like this request"
+msgstr ""
+
+msgid "I would like to <strong>withdraw this request</strong>"
+msgstr ""
+
+msgid "I'm still <strong>waiting</strong> for my information\\n <small>(maybe you got an acknowledgement)</small>"
+msgstr ""
+
+msgid "I'm still <strong>waiting</strong> for the internal review"
+msgstr ""
+
+msgid "I'm waiting for an <strong>internal review</strong> response"
+msgstr ""
+
+msgid "I've been asked to <strong>clarify</strong> my request"
+msgstr ""
+
+msgid "I've received <strong>all the information"
+msgstr ""
+
+msgid "I've received <strong>some of the information</strong>"
+msgstr ""
+
+msgid "I've received an <strong>error message</strong>"
+msgstr ""
+
+msgid "I've received an error message"
+msgstr ""
+
+msgid "Id"
+msgstr ""
+
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
+msgstr ""
+
+msgid "If the error was a delivery failure, and you can find an up to date FOI email address for the authority, please tell us using the form below."
+msgstr ""
+
+msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
+msgstr ""
+
+msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"{{url}}\">details</a>)."
+msgstr ""
+
+msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>."
+msgstr ""
+
+msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request."
+msgstr ""
+
+msgid "If you are thinking of using a pseudonym,\\n please <a href=\"{{url}}\">read this first</a>."
+msgstr ""
+
+msgid "If you are {{user_link}}, please"
+msgstr ""
+
+msgid "If you believe this request is not suitable, you can report it for attention by the site administrators"
+msgstr ""
+
+msgid "If you can't click on it in the email, you'll have to <strong>select and copy\\nit</strong> from the email. Then <strong>paste it into your browser</strong>, into the place\\nyou would type the address of any other webpage."
+msgstr ""
+
+msgid "If you can, scan in or photograph the response, and <strong>send us\\n a copy to upload</strong>."
+msgstr ""
+
+msgid "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."
+msgstr ""
+
+msgid "If you got the email <strong>more than six months ago</strong>, then this login link won't work any\\nmore. Please try doing what you were doing from the beginning."
+msgstr ""
+
+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 ""
+
+msgid "If you reply to this message it will go directly to {{user_name}}, who will\\nlearn your email address. Only reply if that is okay."
+msgstr ""
+
+msgid "If you use web-based email or have \"junk mail\" filters, also check your\\nbulk/spam mail folders. Sometimes, our messages are marked that way."
+msgstr ""
+
+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 ""
+
+msgid "If you're new to {{site_name}}"
+msgstr ""
+
+msgid "If you've used {{site_name}} before"
+msgstr ""
+
+msgid "If your browser is set to accept cookies and you are seeing this message,\\nthen there is probably a fault with our server."
+msgstr ""
+
+msgid "Incoming email address"
+msgstr ""
+
+msgid "Incoming message"
+msgstr ""
+
+msgid "IncomingMessage|Cached attachment text clipped"
+msgstr ""
+
+msgid "IncomingMessage|Cached main body text folded"
+msgstr ""
+
+msgid "IncomingMessage|Cached main body text unfolded"
+msgstr ""
+
+msgid "IncomingMessage|Last parsed"
+msgstr ""
+
+msgid "IncomingMessage|Mail from"
+msgstr ""
+
+msgid "IncomingMessage|Mail from domain"
+msgstr ""
+
+msgid "IncomingMessage|Sent at"
+msgstr ""
+
+msgid "IncomingMessage|Subject"
+msgstr ""
+
+msgid "IncomingMessage|Valid to reply to"
+msgstr ""
+
+msgid "Individual requests"
+msgstr ""
+
+msgid "Info request"
+msgstr ""
+
+msgid "Info request event"
+msgstr ""
+
+msgid "InfoRequestEvent|Calculated state"
+msgstr ""
+
+msgid "InfoRequestEvent|Described state"
+msgstr ""
+
+msgid "InfoRequestEvent|Event type"
+msgstr ""
+
+msgid "InfoRequestEvent|Last described at"
+msgstr ""
+
+msgid "InfoRequestEvent|Params yaml"
+msgstr ""
+
+msgid "InfoRequestEvent|Prominence"
+msgstr ""
+
+msgid "InfoRequest|Allow new responses from"
+msgstr ""
+
+msgid "InfoRequest|Attention requested"
+msgstr ""
+
+msgid "InfoRequest|Awaiting description"
+msgstr ""
+
+msgid "InfoRequest|Comments allowed"
+msgstr ""
+
+msgid "InfoRequest|Described state"
+msgstr ""
+
+msgid "InfoRequest|External url"
+msgstr ""
+
+msgid "InfoRequest|External user name"
+msgstr ""
+
+msgid "InfoRequest|Handle rejected responses"
+msgstr ""
+
+msgid "InfoRequest|Idhash"
+msgstr ""
+
+msgid "InfoRequest|Law used"
+msgstr ""
+
+msgid "InfoRequest|Prominence"
+msgstr ""
+
+msgid "InfoRequest|Title"
+msgstr ""
+
+msgid "InfoRequest|Url title"
+msgstr ""
+
+msgid "Information not held."
+msgstr ""
+
+msgid "Information on emissions and discharges (e.g. noise, energy,\\n radiation, waste materials)"
+msgstr ""
+
+msgid "Internal review request"
+msgstr ""
+
+msgid "Is {{email_address}} the wrong address for {{type_of_request}} requests to {{public_body_name}}? If so, please contact us using this form:"
+msgstr ""
+
+msgid "It may be that your browser is not set to accept a thing called \"cookies\",\\nor cannot do so. If you can, please enable cookies, or try using a different\\nbrowser. Then press refresh to have another go."
+msgstr ""
+
+msgid "Items matching the following conditions are currently displayed on your wall."
+msgstr ""
+
+msgid "Items sent in last month"
+msgstr ""
+
+msgid "Joined in"
+msgstr ""
+
+msgid "Joined {{site_name}} in"
+msgstr ""
+
+msgid "Just one more thing"
+msgstr ""
+
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
+msgstr ""
+
+msgid "Keywords"
+msgstr ""
+
+msgid "Last authority viewed: "
+msgstr ""
+
+msgid "Last request viewed: "
+msgstr ""
+
+msgid "Let us know what you were doing when this message\\nappeared and your browser and operating system type and version."
+msgstr ""
+
+msgid "Link to this"
+msgstr ""
+
+msgid "List all"
+msgstr ""
+
+msgid "List of all authorities (CSV)"
+msgstr ""
+
+msgid "Listing FOI requests"
+msgstr ""
+
+msgid "Listing public authorities"
+msgstr ""
+
+msgid "Listing public authorities matching '{{query}}'"
+msgstr ""
+
+msgid "Listing tracks"
+msgstr ""
+
+msgid "Listing users"
+msgstr ""
+
+msgid "Log in to download a zip file of {{info_request_title}}"
+msgstr ""
+
+msgid "Log into the admin interface"
+msgstr ""
+
+msgid "Long overdue."
+msgstr ""
+
+msgid "Made between"
+msgstr ""
+
+msgid "Mail server log"
+msgstr ""
+
+msgid "Mail server log done"
+msgstr ""
+
+msgid "MailServerLogDone|Filename"
+msgstr ""
+
+msgid "MailServerLogDone|Last stat"
+msgstr ""
+
+msgid "MailServerLog|Line"
+msgstr ""
+
+msgid "MailServerLog|Order"
+msgstr ""
+
+msgid "Make a new <strong>Environmental Information</strong> request"
+msgstr ""
+
+msgid "Make a new <strong>Freedom of Information</strong> request to {{public_body}}"
+msgstr ""
+
+msgid "Make a new<br/>\\n <strong>Freedom <span>of</span><br/>\\n Information<br/>\\n request</strong>"
+msgstr ""
+
+msgid "Make a request"
+msgstr ""
+
+msgid "Make an {{law_used_short}} request to '{{public_body_name}}'"
+msgstr ""
+
+msgid "Make and browse Freedom of Information (FOI) requests"
+msgstr ""
+
+msgid "Make your own request"
+msgstr ""
+
+msgid "Many requests"
+msgstr ""
+
+msgid "Message"
+msgstr ""
+
+msgid "Message sent using {{site_name}} contact form, "
+msgstr ""
+
+msgid "Missing contact details for '"
+msgstr ""
+
+msgid "More about this authority"
+msgstr ""
+
+msgid "More requests..."
+msgstr ""
+
+msgid "More similar requests"
+msgstr ""
+
+msgid "More successful requests..."
+msgstr ""
+
+msgid "My profile"
+msgstr ""
+
+msgid "My request has been <strong>refused</strong>"
+msgstr ""
+
+msgid "My requests"
+msgstr ""
+
+msgid "My wall"
+msgstr ""
+
+msgid "Name can't be blank"
+msgstr ""
+
+msgid "Name is already taken"
+msgstr ""
+
+msgid "New Freedom of Information requests"
+msgstr ""
+
+msgid "New censor rule"
+msgstr ""
+
+msgid "New e-mail:"
+msgstr ""
+
+msgid "New email doesn't look like a valid address"
+msgstr ""
+
+msgid "New password:"
+msgstr ""
+
+msgid "New password: (again)"
+msgstr ""
+
+msgid "New response to '{{title}}'"
+msgstr ""
+
+msgid "New response to your FOI request - "
+msgstr ""
+
+msgid "New response to your request"
+msgstr ""
+
+msgid "New response to {{law_used_short}} request"
+msgstr ""
+
+msgid "New updates for the request '{{request_title}}'"
+msgstr ""
+
+msgid "Newest results first"
+msgstr ""
+
+msgid "Next"
+msgstr ""
+
+msgid "Next, crop your photo &gt;&gt;"
+msgstr ""
+
+msgid "No requests of this sort yet."
+msgstr ""
+
+msgid "No results found."
+msgstr ""
+
+msgid "No similar requests found."
+msgstr ""
+
+msgid "No tracked things found."
+msgstr ""
+
+msgid "Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet."
+msgstr ""
+
+msgid "None found."
+msgstr ""
+
+msgid "None made."
+msgstr ""
+
+msgid "Not a valid FOI request"
+msgstr ""
+
+msgid "Note that the requester will not be notified about your annotation, because the request was published by {{public_body_name}} on their behalf."
+msgstr ""
+
+msgid "Now check your email!"
+msgstr ""
+
+msgid "Now preview your annotation"
+msgstr ""
+
+msgid "Now preview your follow up"
+msgstr ""
+
+msgid "Now preview your message asking for an internal review"
+msgstr ""
+
+msgid "OR remove the existing photo"
+msgstr ""
+
+msgid "Offensive? Unsuitable?"
+msgstr ""
+
+msgid "Oh no! Sorry to hear that your request was refused. Here is what to do now."
+msgstr ""
+
+msgid "Old e-mail:"
+msgstr ""
+
+msgid "Old email address isn't the same as the address of the account you are logged in with"
+msgstr ""
+
+msgid "Old email doesn't look like a valid address"
+msgstr ""
+
+msgid "On this page"
+msgstr ""
+
+msgid "One FOI request found"
+msgstr ""
+
+msgid "One person found"
+msgstr ""
+
+msgid "One public authority found"
+msgstr ""
+
+msgid "Only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL – don't worry about breaking URLs through renaming, as the history is used to redirect"
+msgstr ""
+
+msgid "Only requests made using {{site_name}} are shown."
+msgstr ""
+
+msgid "Only the authority can reply to this request, and I don't recognise the address this reply was sent from"
+msgstr ""
+
+msgid "Only the authority can reply to this request, but there is no \"From\" address to check against"
+msgstr ""
+
+msgid "Or search in their website for this information."
+msgstr ""
+
+msgid "Original request sent"
+msgstr ""
+
+msgid "Other:"
+msgstr ""
+
+msgid "Outgoing message"
+msgstr ""
+
+msgid "OutgoingMessage|Body"
+msgstr ""
+
+msgid "OutgoingMessage|Last sent at"
+msgstr ""
+
+msgid "OutgoingMessage|Message type"
+msgstr ""
+
+msgid "OutgoingMessage|Status"
+msgstr ""
+
+msgid "OutgoingMessage|What doing"
+msgstr ""
+
+msgid "Partially successful."
+msgstr ""
+
+msgid "Password is not correct"
+msgstr ""
+
+msgid "Password:"
+msgstr ""
+
+msgid "Password: (again)"
+msgstr ""
+
+msgid "Paste this link into emails, tweets, and anywhere else:"
+msgstr ""
+
+msgid "People"
+msgstr ""
+
+msgid "People {{start_count}} to {{end_count}} of {{total_count}}"
+msgstr ""
+
+msgid "Photo of you:"
+msgstr ""
+
+msgid "Plans and administrative measures that affect these matters"
+msgstr ""
+
+msgid "Play the request categorisation game"
+msgstr ""
+
+msgid "Play the request categorisation game!"
+msgstr ""
+
+msgid "Please"
+msgstr ""
+
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
+msgstr ""
+
+msgid "Please <strong>answer the question above</strong> so we know whether the "
+msgstr ""
+
+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 ""
+
+msgid "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=\"{{new_request_link}}\">file a new request</a>."
+msgstr ""
+
+msgid "Please ask for environmental information only"
+msgstr ""
+
+msgid "Please check the URL (i.e. the long code of letters and numbers) is copied\\ncorrectly from your email."
+msgstr ""
+
+msgid "Please choose a file containing your photo."
+msgstr ""
+
+msgid "Please choose what sort of reply you are making."
+msgstr ""
+
+msgid "Please choose whether or not you got some of the information that you wanted."
+msgstr ""
+
+msgid "Please click on the link below to cancel or alter these emails."
+msgstr ""
+
+msgid "Please click on the link below to confirm that you want to \\nchange the email address that you use for {{site_name}}\\nfrom {{old_email}} to {{new_email}}"
+msgstr ""
+
+msgid "Please click on the link below to confirm your email address."
+msgstr ""
+
+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 ""
+
+msgid "Please don't upload offensive pictures. We will take down images\\n that we consider inappropriate."
+msgstr ""
+
+msgid "Please enable \"cookies\" to carry on"
+msgstr ""
+
+msgid "Please enter a password"
+msgstr ""
+
+msgid "Please enter a subject"
+msgstr ""
+
+msgid "Please enter a summary of your request"
+msgstr ""
+
+msgid "Please enter a valid email address"
+msgstr ""
+
+msgid "Please enter the message you want to send"
+msgstr ""
+
+msgid "Please enter the same password twice"
+msgstr ""
+
+msgid "Please enter your annotation"
+msgstr ""
+
+msgid "Please enter your email address"
+msgstr ""
+
+msgid "Please enter your follow up message"
+msgstr ""
+
+msgid "Please enter your letter requesting information"
+msgstr ""
+
+msgid "Please enter your name"
+msgstr ""
+
+msgid "Please enter your name, not your email address, in the name field."
+msgstr ""
+
+msgid "Please enter your new email address"
+msgstr ""
+
+msgid "Please enter your old email address"
+msgstr ""
+
+msgid "Please enter your password"
+msgstr ""
+
+msgid "Please give details explaining why you want a review"
+msgstr ""
+
+msgid "Please keep it shorter than 500 characters"
+msgstr ""
+
+msgid "Please keep the summary short, like in the subject of an email. You can use a phrase, rather than a full sentence."
+msgstr ""
+
+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 ""
+
+msgid "Please select each of these requests in turn, and <strong>let everyone know</strong>\\nif they are successful yet or not."
+msgstr ""
+
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
+msgstr ""
+
+msgid "Please sign in as "
+msgstr ""
+
+msgid "Please sign in or make a new account."
+msgstr ""
+
+msgid "Please type a message and/or choose a file containing your response."
+msgstr ""
+
+msgid "Please use this email address for all replies to this request:"
+msgstr ""
+
+msgid "Please write a summary with some text in it"
+msgstr ""
+
+msgid "Please write the summary using a mixture of capital and lower case letters. This makes it easier for others to read."
+msgstr ""
+
+msgid "Please write your annotation using a mixture of capital and lower case letters. This makes it easier for others to read."
+msgstr ""
+
+msgid "Please write your follow up message containing the necessary clarifications below."
+msgstr ""
+
+msgid "Please write your message using a mixture of capital and lower case letters. This makes it easier for others to read."
+msgstr ""
+
+msgid "Point to <strong>related information</strong>, campaigns or forums which may be useful."
+msgstr ""
+
+msgid "Possibly related requests:"
+msgstr ""
+
+msgid "Post annotation"
+msgstr ""
+
+msgid "Post redirect"
+msgstr ""
+
+msgid "PostRedirect|Circumstance"
+msgstr ""
+
+msgid "PostRedirect|Email token"
+msgstr ""
+
+msgid "PostRedirect|Post params yaml"
+msgstr ""
+
+msgid "PostRedirect|Reason params yaml"
+msgstr ""
+
+msgid "PostRedirect|Token"
+msgstr ""
+
+msgid "PostRedirect|Uri"
+msgstr ""
+
+msgid "Posted on {{date}} by {{author}}"
+msgstr ""
+
+msgid "Powered by <a href=\"http://www.alaveteli.org/\">Alaveteli</a>"
+msgstr ""
+
+msgid "Prev"
+msgstr ""
+
+msgid "Preview follow up to '"
+msgstr ""
+
+msgid "Preview new annotation on '{{info_request_title}}'"
+msgstr ""
+
+msgid "Preview your annotation"
+msgstr ""
+
+msgid "Preview your message"
+msgstr ""
+
+msgid "Preview your public request"
+msgstr ""
+
+msgid "Profile photo"
+msgstr ""
+
+msgid "ProfilePhoto|Data"
+msgstr ""
+
+msgid "ProfilePhoto|Draft"
+msgstr ""
+
+msgid "Public authorities"
+msgstr ""
+
+msgid "Public authorities - {{description}}"
+msgstr ""
+
+msgid "Public authorities {{start_count}} to {{end_count}} of {{total_count}}"
+msgstr ""
+
+msgid "Public authority – {{name}}"
+msgstr ""
+
+msgid "Public body"
+msgstr ""
+
+msgid "Public notes"
+msgstr ""
+
+msgid "Public page"
+msgstr ""
+
+msgid "Public page not available"
+msgstr ""
+
+msgid "PublicBody|Api key"
+msgstr ""
+
+msgid "PublicBody|Disclosure log"
+msgstr ""
+
+msgid "PublicBody|First letter"
+msgstr ""
+
+msgid "PublicBody|Home page"
+msgstr ""
+
+msgid "PublicBody|Info requests count"
+msgstr ""
+
+msgid "PublicBody|Last edit comment"
+msgstr ""
+
+msgid "PublicBody|Last edit editor"
+msgstr ""
+
+msgid "PublicBody|Name"
+msgstr ""
+
+msgid "PublicBody|Notes"
+msgstr ""
+
+msgid "PublicBody|Publication scheme"
+msgstr ""
+
+msgid "PublicBody|Request email"
+msgstr ""
+
+msgid "PublicBody|Short name"
+msgstr ""
+
+msgid "PublicBody|Url name"
+msgstr ""
+
+msgid "PublicBody|Version"
+msgstr ""
+
+msgid "Publication scheme"
+msgstr ""
+
+msgid "Publication scheme URL"
+msgstr ""
+
+msgid "Purge request"
+msgstr ""
+
+msgid "PurgeRequest|Model"
+msgstr ""
+
+msgid "PurgeRequest|Url"
+msgstr ""
+
+msgid "RSS feed"
+msgstr ""
+
+msgid "RSS feed of updates"
+msgstr ""
+
+msgid "Re-edit this annotation"
+msgstr ""
+
+msgid "Re-edit this message"
+msgstr ""
+
+msgid "Read about <a href=\"{{advanced_search_url}}\">advanced search operators</a>, such as proximity and wildcards."
+msgstr ""
+
+msgid "Read blog"
+msgstr ""
+
+msgid "Received an error message, such as delivery failure."
+msgstr ""
+
+msgid "Recently described results first"
+msgstr ""
+
+msgid "Refused."
+msgstr ""
+
+msgid "Remember me</label> (keeps you signed in longer;\\n do not use on a public computer) "
+msgstr ""
+
+msgid "Report abuse"
+msgstr ""
+
+msgid "Report an offensive or unsuitable request"
+msgstr ""
+
+msgid "Report this request"
+msgstr ""
+
+msgid "Reported for administrator attention."
+msgstr ""
+
+msgid "Request an internal review"
+msgstr ""
+
+msgid "Request an internal review from {{person_or_body}}"
+msgstr ""
+
+msgid "Request email"
+msgstr ""
+
+msgid "Request has been removed"
+msgstr ""
+
+msgid "Request sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
+msgstr ""
+
+msgid "Request to {{public_body_name}} by {{info_request_user}}. Annotated by {{event_comment_user}} on {{date}}."
+msgstr ""
+
+msgid "Requested from {{public_body_name}} by {{info_request_user}} on {{date}}"
+msgstr ""
+
+msgid "Requested on {{date}}"
+msgstr ""
+
+msgid "Requests for personal information and vexatious requests are not considered valid for FOI purposes (<a href=\"/help/about\">read more</a>)."
+msgstr ""
+
+msgid "Requests or responses matching your saved search"
+msgstr ""
+
+msgid "Respond by email"
+msgstr ""
+
+msgid "Respond to request"
+msgstr ""
+
+msgid "Respond to the FOI request"
+msgstr ""
+
+msgid "Respond using the web"
+msgstr ""
+
+msgid "Response"
+msgstr ""
+
+msgid "Response from a public authority"
+msgstr ""
+
+msgid "Response to '{{title}}'"
+msgstr ""
+
+msgid "Response to this request is <strong>delayed</strong>."
+msgstr ""
+
+msgid "Response to this request is <strong>long overdue</strong>."
+msgstr ""
+
+msgid "Response to your request"
+msgstr ""
+
+msgid "Response:"
+msgstr ""
+
+msgid "Restrict to"
+msgstr ""
+
+msgid "Results page {{page_number}}"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Search"
+msgstr ""
+
+msgid "Search Freedom of Information requests, public authorities and users"
+msgstr ""
+
+msgid "Search contributions by this person"
+msgstr ""
+
+msgid "Search for words in:"
+msgstr ""
+
+msgid "Search in"
+msgstr ""
+
+msgid "Search over<br/>\\n <strong>{{number_of_requests}} requests</strong> <span>and</span><br/>\\n <strong>{{number_of_authorities}} authorities</strong>"
+msgstr ""
+
+msgid "Search queries"
+msgstr ""
+
+msgid "Search results"
+msgstr ""
+
+msgid "Search the site to find what you were looking for."
+msgstr ""
+
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests made to {{public_body_name}}"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Search your contributions"
+msgstr ""
+
+msgid "See bounce message"
+msgstr ""
+
+msgid "Select one to see more information about the authority."
+msgstr ""
+
+msgid "Select the authority to write to"
+msgstr ""
+
+msgid "Send a followup"
+msgstr ""
+
+msgid "Send a message to "
+msgstr ""
+
+msgid "Send a public follow up message to {{person_or_body}}"
+msgstr ""
+
+msgid "Send a public reply to {{person_or_body}}"
+msgstr ""
+
+msgid "Send follow up to '{{title}}'"
+msgstr ""
+
+msgid "Send message"
+msgstr ""
+
+msgid "Send message to "
+msgstr ""
+
+msgid "Send request"
+msgstr ""
+
+msgid "Set your profile photo"
+msgstr ""
+
+msgid "Short name"
+msgstr ""
+
+msgid "Short name is already taken"
+msgstr ""
+
+msgid "Show most relevant results first"
+msgstr ""
+
+msgid "Show only..."
+msgstr ""
+
+msgid "Showing"
+msgstr ""
+
+msgid "Sign in"
+msgstr ""
+
+msgid "Sign in or make a new account"
+msgstr ""
+
+msgid "Sign in or sign up"
+msgstr ""
+
+msgid "Sign out"
+msgstr ""
+
+msgid "Sign up"
+msgstr ""
+
+msgid "Similar requests"
+msgstr ""
+
+msgid "Simple search"
+msgstr ""
+
+msgid "Some notes have been added to your FOI request - "
+msgstr ""
+
+msgid "Some of the information requested has been received"
+msgstr ""
+
+msgid "Some people who've made requests haven't let us know whether they were\\nsuccessful or not. We need <strong>your</strong> help &ndash;\\nchoose one of these requests, read it, and let everyone know whether or not the\\ninformation has been provided. Everyone'll be exceedingly grateful."
+msgstr ""
+
+msgid "Somebody added a note to your FOI request - "
+msgstr ""
+
+msgid "Someone has updated the status of your request"
+msgstr ""
+
+msgid "Someone, perhaps you, just tried to change their email address on\\n{{site_name}} from {{old_email}} to {{new_email}}."
+msgstr ""
+
+msgid "Sorry - you cannot respond to this request via {{site_name}}, because this is a copy of the request originally at {{link_to_original_request}}."
+msgstr ""
+
+msgid "Sorry, but only {{user_name}} is allowed to do that."
+msgstr ""
+
+msgid "Sorry, there was a problem processing this page"
+msgstr ""
+
+msgid "Sorry, we couldn't find that page"
+msgstr ""
+
+msgid "Special note for this authority!"
+msgstr ""
+
+msgid "Start"
+msgstr ""
+
+msgid "Start now &raquo;"
+msgstr ""
+
+msgid "Start your own blog"
+msgstr ""
+
+msgid "Stay up to date"
+msgstr ""
+
+msgid "Still awaiting an <strong>internal review</strong>"
+msgstr ""
+
+msgid "Subject"
+msgstr ""
+
+msgid "Subject:"
+msgstr ""
+
+msgid "Submit"
+msgstr ""
+
+msgid "Submit status"
+msgstr ""
+
+msgid "Submit status and send message"
+msgstr ""
+
+msgid "Subscribe to blog"
+msgstr ""
+
+msgid "Successful Freedom of Information requests"
+msgstr ""
+
+msgid "Successful."
+msgstr ""
+
+msgid "Suggest how the requester can find the <strong>rest of the information</strong>."
+msgstr ""
+
+msgid "Summary:"
+msgstr ""
+
+msgid "Table of statuses"
+msgstr ""
+
+msgid "Table of varieties"
+msgstr ""
+
+msgid "Tags"
+msgstr ""
+
+msgid "Tags (separated by a space):"
+msgstr ""
+
+msgid "Tags:"
+msgstr ""
+
+msgid "Technical details"
+msgstr ""
+
+msgid "Thank you for helping us keep the site tidy!"
+msgstr ""
+
+msgid "Thank you for making an annotation!"
+msgstr ""
+
+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 ""
+
+msgid "Thank you for updating the status of the request '<a href=\"{{url}}\">{{info_request_title}}</a>'. There are some more requests below for you to classify."
+msgstr ""
+
+msgid "Thank you for updating this request!"
+msgstr ""
+
+msgid "Thank you for updating your profile photo"
+msgstr ""
+
+msgid "Thank you! We'll look into what happened and try and fix it up."
+msgstr ""
+
+msgid "Thanks for helping - your work will make it easier for everyone to find successful\\nresponses, and maybe even let us make league tables..."
+msgstr ""
+
+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 ""
+
+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 ""
+
+msgid "That doesn't look like a valid email address. Please check you have typed it correctly."
+msgstr ""
+
+msgid "The <strong>review has finished</strong> and overall:"
+msgstr ""
+
+msgid "The Freedom of Information Act <strong>does not apply</strong> to"
+msgstr ""
+
+msgid "The accounts have been left as they previously were."
+msgstr ""
+
+msgid "The authority do <strong>not have</strong> the information <small>(maybe they say who does)"
+msgstr ""
+
+msgid "The authority only has a <strong>paper copy</strong> of the information."
+msgstr ""
+
+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 ""
+
+msgid "The authority would like to / has <strong>responded by post</strong> to this request."
+msgstr ""
+
+msgid "The email that you, on behalf of {{public_body}}, sent to\\n{{user}} to reply to an {{law_used_short}}\\nrequest has not been delivered."
+msgstr ""
+
+msgid "The page doesn't exist. Things you can try now:"
+msgstr ""
+
+msgid "The public authority does not have the information requested"
+msgstr ""
+
+msgid "The public authority would like part of the request explained"
+msgstr ""
+
+msgid "The public authority would like to / has responded by post"
+msgstr ""
+
+msgid "The request has been <strong>refused</strong>"
+msgstr ""
+
+msgid "The request has been updated since you originally loaded this page. Please check for any new incoming messages below, and try again."
+msgstr ""
+
+msgid "The request is <strong>waiting for clarification</strong>."
+msgstr ""
+
+msgid "The request was <strong>partially successful</strong>."
+msgstr ""
+
+msgid "The request was <strong>refused</strong> by"
+msgstr ""
+
+msgid "The request was <strong>successful</strong>."
+msgstr ""
+
+msgid "The request was refused by the public authority"
+msgstr ""
+
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
+msgstr ""
+
+msgid "The requester has abandoned this request for some reason"
+msgstr ""
+
+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 ""
+
+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 ""
+
+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 ""
+
+msgid "The search index is currently offline, so we can't show the Freedom of Information requests this person has made."
+msgstr ""
+
+msgid "The {{site_name}} team."
+msgstr ""
+
+msgid "Then you can cancel the alert."
+msgstr ""
+
+msgid "Then you can cancel the alerts."
+msgstr ""
+
+msgid "Then you can change your email address used on {{site_name}}"
+msgstr ""
+
+msgid "Then you can change your password on {{site_name}}"
+msgstr ""
+
+msgid "Then you can classify the FOI response you have got from "
+msgstr ""
+
+msgid "Then you can download a zip file of {{info_request_title}}."
+msgstr ""
+
+msgid "Then you can log into the administrative interface"
+msgstr ""
+
+msgid "Then you can play the request categorisation game."
+msgstr ""
+
+msgid "Then you can report the request '{{title}}'"
+msgstr ""
+
+msgid "Then you can send a message to "
+msgstr ""
+
+msgid "Then you can sign in to {{site_name}}"
+msgstr ""
+
+msgid "Then you can update the status of your request to "
+msgstr ""
+
+msgid "Then you can upload an FOI response. "
+msgstr ""
+
+msgid "Then you can write follow up message to "
+msgstr ""
+
+msgid "Then you can write your reply to "
+msgstr ""
+
+msgid "Then you will be following all new FOI requests."
+msgstr ""
+
+msgid "Then you will be notified whenever '{{user_name}}' requests something or gets a response."
+msgstr ""
+
+msgid "Then you will be notified whenever a new request or response matches your search."
+msgstr ""
+
+msgid "Then you will be notified whenever an FOI request succeeds."
+msgstr ""
+
+msgid "Then you will be notified whenever someone requests something or gets a response from '{{public_body_name}}'."
+msgstr ""
+
+msgid "Then you will be updated whenever the request '{{request_title}}' is updated."
+msgstr ""
+
+msgid "Then you'll be allowed to send FOI requests."
+msgstr ""
+
+msgid "Then your FOI request to {{public_body_name}} will be sent."
+msgstr ""
+
+msgid "Then your annotation to {{info_request_title}} will be posted."
+msgstr ""
+
+msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
+msgstr ""
+
+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 ""
+
+msgid "There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>."
+msgstr ""
+
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "There was a <strong>delivery error</strong> or similar, which needs fixing by the {{site_name}} team."
+msgstr ""
+
+msgid "There was an error with the words you entered, please try again."
+msgstr ""
+
+msgid "There were no requests matching your query."
+msgstr ""
+
+msgid "There were no results matching your query."
+msgstr ""
+
+msgid "They are going to reply <strong>by post</strong>"
+msgstr ""
+
+msgid "They do <strong>not have</strong> the information <small>(maybe they say who does)</small>"
+msgstr ""
+
+msgid "They have been given the following explanation:"
+msgstr ""
+
+msgid "They have not replied to your {{law_used_short}} request {{title}} promptly, as normally required by law"
+msgstr ""
+
+msgid "They have not replied to your {{law_used_short}} request {{title}}, \\nas required by law"
+msgstr ""
+
+msgid "Things to do with this request"
+msgstr ""
+
+msgid "Things you're following"
+msgstr ""
+
+msgid "This authority no longer exists, so you cannot make a request to it."
+msgstr ""
+
+msgid "This comment has been hidden. See annotations to\\n find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
+msgstr ""
+
+msgid "This covers a very wide spectrum of information about the state of\\n the <strong>natural and built environment</strong>, such as:"
+msgstr ""
+
+msgid "This external request has been hidden"
+msgstr ""
+
+msgid "This is a plain-text version of the Freedom of Information request \"{{request_title}}\". The latest, full version is available online at {{full_url}}"
+msgstr ""
+
+msgid "This is an HTML version of an attachment to the Freedom of Information request"
+msgstr ""
+
+msgid "This is because {{title}} is an old request that has been\\nmarked to no longer receive responses."
+msgstr ""
+
+msgid "This is the first version."
+msgstr ""
+
+msgid "This is your own request, so you will be automatically emailed when new responses arrive."
+msgstr ""
+
+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=\"{{url}}\">sign in</a> to view the response."
+msgstr ""
+
+msgid "This particular request is finished:"
+msgstr ""
+
+msgid "This person has made no Freedom of Information requests using this site."
+msgstr ""
+
+msgid "This person's annotations"
+msgstr ""
+
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
+msgstr[0] " - vedi e crea richieste FOI"
+msgstr[1] " - vedi e crea richieste FOI"
+
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "This request <strong>requires administrator attention</strong>"
+msgstr ""
+
+msgid "This request has already been reported for administrator attention"
+msgstr ""
+
+msgid "This request has an <strong>unknown status</strong>."
+msgstr ""
+
+msgid "This request has been <strong>hidden</strong> from the site, because an administrator considers it not to be an FOI request"
+msgstr ""
+
+msgid "This request has been <strong>hidden</strong> from the site, because an administrator considers it vexatious"
+msgstr ""
+
+msgid "This request has been <strong>reported</strong> as needing administrator attention (perhaps because it is vexatious, or a request for personal information)"
+msgstr ""
+
+msgid "This request has been <strong>withdrawn</strong> by the person who made it.\\n There may be an explanation in the correspondence below."
+msgstr ""
+
+msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"{{url}}\">contact us</a>."
+msgstr ""
+
+msgid "This request has been reported for administrator attention"
+msgstr ""
+
+msgid "This request has been set by an administrator to \"allow new responses from nobody\""
+msgstr ""
+
+msgid "This request has had an unusual response, and <strong>requires attention</strong> from the {{site_name}} team."
+msgstr ""
+
+msgid "This request has prominence 'hidden'. You can only see it because you are logged\\n in as a super user."
+msgstr ""
+
+msgid "This request is hidden, so that only you the requester can see it. Please\\n <a href=\"{{url}}\">contact us</a> if you are not sure why."
+msgstr ""
+
+msgid "This request is still in progress:"
+msgstr ""
+
+msgid "This request requires administrator attention"
+msgstr ""
+
+msgid "This request was not made via {{site_name}}"
+msgstr ""
+
+msgid "This response has been hidden. See annotations to find out why.\\n If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
+msgstr ""
+
+msgid "This table shows the technical details of the internal events that happened\\nto this request on {{site_name}}. This could be used to generate information about\\nthe speed with which authorities respond to requests, the number of requests\\nwhich require a postal response and much more."
+msgstr ""
+
+msgid "This user has been banned from {{site_name}} "
+msgstr ""
+
+msgid "This was not possible because there is already an account using \\nthe email address {{email}}."
+msgstr ""
+
+msgid "To cancel these alerts"
+msgstr ""
+
+msgid "To cancel this alert"
+msgstr ""
+
+msgid "To carry on, you need to sign in or make an account. Unfortunately, there\\nwas a technical problem trying to do this."
+msgstr ""
+
+msgid "To change your email address used on {{site_name}}"
+msgstr ""
+
+msgid "To classify the response to this FOI request"
+msgstr ""
+
+msgid "To do that please send a private email to "
+msgstr ""
+
+msgid "To do this, first click on the link below."
+msgstr ""
+
+msgid "To download the zip file"
+msgstr ""
+
+msgid "To follow all successful requests"
+msgstr ""
+
+msgid "To follow new requests"
+msgstr ""
+
+msgid "To follow requests and responses matching your search"
+msgstr ""
+
+msgid "To follow requests by '{{user_name}}'"
+msgstr ""
+
+msgid "To follow requests made using {{site_name}} to the public authority '{{public_body_name}}'"
+msgstr ""
+
+msgid "To follow the request '{{request_title}}'"
+msgstr ""
+
+msgid "To help us keep the site tidy, someone else has updated the status of the \\n{{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."
+msgstr ""
+
+msgid "To let everyone know, follow this link and then select the appropriate box."
+msgstr ""
+
+msgid "To log into the administrative interface"
+msgstr ""
+
+msgid "To play the request categorisation game"
+msgstr ""
+
+msgid "To post your annotation"
+msgstr ""
+
+msgid "To reply to "
+msgstr ""
+
+msgid "To report this FOI request"
+msgstr ""
+
+msgid "To send a follow up message to "
+msgstr ""
+
+msgid "To send a message to "
+msgstr ""
+
+msgid "To send your FOI request"
+msgstr ""
+
+msgid "To update the status of this FOI request"
+msgstr ""
+
+msgid "To upload a response, you must be logged in using an email address from "
+msgstr ""
+
+msgid "To use the advanced search, combine phrases and labels as described in the search tips below."
+msgstr ""
+
+msgid "To view the email address that we use to send FOI requests to {{public_body_name}}, please enter these words."
+msgstr ""
+
+msgid "To view the response, click on the link below."
+msgstr ""
+
+msgid "To {{public_body_link_absolute}}"
+msgstr ""
+
+msgid "To:"
+msgstr ""
+
+msgid "Today"
+msgstr ""
+
+msgid "Too many requests"
+msgstr ""
+
+msgid "Top search results:"
+msgstr ""
+
+msgid "Track thing"
+msgstr ""
+
+msgid "Track this person"
+msgstr ""
+
+msgid "Track this search"
+msgstr ""
+
+msgid "TrackThing|Track medium"
+msgstr ""
+
+msgid "TrackThing|Track query"
+msgstr ""
+
+msgid "TrackThing|Track type"
+msgstr ""
+
+msgid "Turn off email alerts"
+msgstr ""
+
+msgid "Tweet this request"
+msgstr ""
+
+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 ""
+
+msgid "URL name can't be blank"
+msgstr ""
+
+msgid "Unable to change email address on {{site_name}}"
+msgstr ""
+
+msgid "Unable to send a reply to {{username}}"
+msgstr ""
+
+msgid "Unable to send follow up message to {{username}}"
+msgstr ""
+
+msgid "Unexpected search result type"
+msgstr ""
+
+msgid "Unexpected search result type "
+msgstr ""
+
+msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"{{url}}\">contact us</a> to sort it out."
+msgstr ""
+
+msgid "Unfortunately, we do not have a working {{info_request_law_used_full}}\\naddress for"
+msgstr ""
+
+msgid "Unknown"
+msgstr ""
+
+msgid "Unsubscribe"
+msgstr ""
+
+msgid "Unusual response."
+msgstr ""
+
+msgid "Update the status of this request"
+msgstr ""
+
+msgid "Update the status of your request to "
+msgstr ""
+
+msgid "Upload FOI response"
+msgstr ""
+
+msgid "Use OR (in capital letters) where you don't mind which word, e.g. <strong><code>commons OR lords</code></strong>"
+msgstr ""
+
+msgid "Use quotes when you want to find an exact phrase, e.g. <strong><code>\"Liverpool City Council\"</code></strong>"
+msgstr ""
+
+msgid "User"
+msgstr ""
+
+msgid "User info request sent alert"
+msgstr ""
+
+msgid "User – {{name}}"
+msgstr ""
+
+msgid "UserInfoRequestSentAlert|Alert type"
+msgstr ""
+
+msgid "User|About me"
+msgstr ""
+
+msgid "User|Address"
+msgstr ""
+
+msgid "User|Admin level"
+msgstr ""
+
+msgid "User|Ban text"
+msgstr ""
+
+msgid "User|Dob"
+msgstr ""
+
+msgid "User|Email"
+msgstr ""
+
+msgid "User|Email bounce message"
+msgstr ""
+
+msgid "User|Email bounced at"
+msgstr ""
+
+msgid "User|Email confirmed"
+msgstr ""
+
+msgid "User|Hashed password"
+msgstr ""
+
+msgid "User|Last daily track email"
+msgstr ""
+
+msgid "User|Locale"
+msgstr ""
+
+msgid "User|Name"
+msgstr ""
+
+msgid "User|No limit"
+msgstr ""
+
+msgid "User|Receive email alerts"
+msgstr ""
+
+msgid "User|Salt"
+msgstr ""
+
+msgid "User|Url name"
+msgstr ""
+
+msgid "Version {{version}}"
+msgstr ""
+
+msgid "View FOI email address"
+msgstr ""
+
+msgid "View FOI email address for '{{public_body_name}}'"
+msgstr ""
+
+msgid "View FOI email address for {{public_body_name}}"
+msgstr ""
+
+msgid "View Freedom of Information requests made by {{user_name}}:"
+msgstr ""
+
+msgid "View and search requests"
+msgstr ""
+
+msgid "View authorities"
+msgstr ""
+
+msgid "View email"
+msgstr ""
+
+msgid "View requests"
+msgstr ""
+
+msgid "Waiting clarification."
+msgstr ""
+
+msgid "Waiting for an <strong>internal review</strong> by {{public_body_link}} of their handling of this request."
+msgstr ""
+
+msgid "Waiting for the public authority to complete an internal review of their handling of the request"
+msgstr ""
+
+msgid "Waiting for the public authority to reply"
+msgstr ""
+
+msgid "Was the response you got to your FOI request any good?"
+msgstr ""
+
+msgid "We consider it is not a valid FOI request, and have therefore hidden it from other users."
+msgstr ""
+
+msgid "We consider it to be vexatious, and have therefore hidden it from other users."
+msgstr ""
+
+msgid "We do not have a working request email address for this authority."
+msgstr ""
+
+msgid "We do not have a working {{law_used_full}} address for {{public_body_name}}."
+msgstr ""
+
+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=\"{{url}}\">sign in</a> and let everyone know."
+msgstr ""
+
+msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"{{url}}\">details</a>). "
+msgstr ""
+
+msgid "We will not reveal your email address to anybody unless you\\nor the law tell us to."
+msgstr ""
+
+msgid "We will not reveal your email addresses to anybody unless you\\nor the law tell us to."
+msgstr ""
+
+msgid "We're waiting for"
+msgstr ""
+
+msgid "We're waiting for someone to read"
+msgstr ""
+
+msgid "We've sent an email to your new email address. You'll need to click the link in\\nit before your email address will be changed."
+msgstr ""
+
+msgid "We've sent you an email, and you'll need to click the link in it before you can\\ncontinue."
+msgstr ""
+
+msgid "We've sent you an email, click the link in it, then you can change your password."
+msgstr ""
+
+msgid "What are you doing?"
+msgstr ""
+
+msgid "What best describes the status of this request now?"
+msgstr ""
+
+msgid "What information has been released?"
+msgstr ""
+
+msgid "What information has been requested?"
+msgstr ""
+
+msgid "When you get there, please update the status to say if the response \\ncontains any useful information."
+msgstr ""
+
+msgid "When you receive the paper response, please help\\n others find out what it says:"
+msgstr ""
+
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
+msgstr ""
+
+msgid "Which of these is happening?"
+msgstr ""
+
+msgid "Who can I request information from?"
+msgstr ""
+
+msgid "Withdrawn by the requester."
+msgstr ""
+
+msgid "Wk"
+msgstr ""
+
+msgid "Would you like to see a website like this in your country?"
+msgstr ""
+
+msgid "Write a reply"
+msgstr ""
+
+msgid "Write a reply to "
+msgstr ""
+
+msgid "Write your FOI follow up message to "
+msgstr ""
+
+msgid "Write your request in <strong>simple, precise language</strong>."
+msgstr ""
+
+msgid "You"
+msgstr ""
+
+msgid "You are already following new requests"
+msgstr ""
+
+msgid "You are already following requests to {{public_body_name}}"
+msgstr ""
+
+msgid "You are already following things matching this search"
+msgstr ""
+
+msgid "You are already following this person"
+msgstr ""
+
+msgid "You are already following this request"
+msgstr ""
+
+msgid "You are already following updates about {{track_description}}"
+msgstr ""
+
+msgid "You are currently receiving notification of new activity on your wall by email."
+msgstr ""
+
+msgid "You are following all new successful responses"
+msgstr ""
+
+msgid "You are no longer following {{track_description}}."
+msgstr ""
+
+msgid "You are now <a href=\"{{wall_url_user}}\">following</a> updates about {{track_description}}"
+msgstr ""
+
+msgid "You can <strong>complain</strong> by"
+msgstr ""
+
+msgid "You can change the requests and users you are following on <a href=\"{{profile_url}}\">your profile page</a>."
+msgstr ""
+
+msgid "You can get this page in computer-readable format as part of the main JSON\\npage for the request. See the <a href=\"{{api_path}}\">API documentation</a>."
+msgstr ""
+
+msgid "You can only request information about the environment from this authority."
+msgstr ""
+
+msgid "You have a new response to the {{law_used_full}} request "
+msgstr ""
+
+msgid "You have found a bug. Please <a href=\"{{contact_url}}\">contact us</a> to tell us about the problem"
+msgstr ""
+
+msgid "You have hit the rate limit on new requests. Users are ordinarily limited to {{max_requests_per_user_per_day}} requests in any rolling 24-hour period. You will be able to make another request in {{can_make_another_request}}."
+msgstr ""
+
+msgid "You have made no Freedom of Information requests using this site."
+msgstr ""
+
+msgid "You have now changed the text about you on your profile."
+msgstr ""
+
+msgid "You have now changed your email address used on {{site_name}}"
+msgstr ""
+
+msgid "You just tried to sign up to {{site_name}}, when you\\nalready have an account. Your name and password have been\\nleft as they previously were.\\n\\nPlease click on the link below."
+msgstr ""
+
+msgid "You know what caused the error, and can <strong>suggest a solution</strong>, such as a working email address."
+msgstr ""
+
+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 ""
+
+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=\"{{url}}\">send it to us</a>."
+msgstr ""
+
+msgid "You may be able to find\\none on their website, or by phoning them up and asking. If you manage\\nto find one, then please <a href=\"{{help_url}}\">send it to us</a>."
+msgstr ""
+
+msgid "You need to be logged in to change the text about you on your profile."
+msgstr ""
+
+msgid "You need to be logged in to change your profile photo."
+msgstr ""
+
+msgid "You need to be logged in to clear your profile photo."
+msgstr ""
+
+msgid "You need to be logged in to edit your profile."
+msgstr ""
+
+msgid "You previously submitted that exact follow up message for this request."
+msgstr ""
+
+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 ""
+
+msgid "You want to <strong>give your postal address</strong> to the authority in private."
+msgstr ""
+
+msgid "You will be unable to make new requests, send follow ups, add annotations or\\nsend messages to other users. You may continue to view other requests, and set\\nup\\nemail alerts."
+msgstr ""
+
+msgid "You will no longer be emailed updates for those alerts"
+msgstr ""
+
+msgid "You will now be emailed updates about {{track_description}}. <a href=\"{{change_email_alerts_url}}\">Prefer not to receive emails?</a>"
+msgstr ""
+
+msgid "You will only get an answer to your request if you follow up\\nwith the clarification."
+msgstr ""
+
+msgid "You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further."
+msgstr ""
+
+msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
+msgstr ""
+
+msgid "You're long overdue a response to your FOI request - "
+msgstr ""
+
+msgid "You're not following anything."
+msgstr ""
+
+msgid "You've now cleared your profile photo"
+msgstr ""
+
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
+msgstr ""
+
+msgid "Your annotations"
+msgstr ""
+
+msgid "Your details, including your email address, have not been given to anyone."
+msgstr ""
+
+msgid "Your e-mail:"
+msgstr ""
+
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
+msgstr ""
+
+msgid "Your follow up message has been sent on its way."
+msgstr ""
+
+msgid "Your internal review request has been sent on its way."
+msgstr ""
+
+msgid "Your message has been sent. Thank you for getting in touch! We'll get back to you soon."
+msgstr ""
+
+msgid "Your message to {{recipient_user_name}} has been sent"
+msgstr ""
+
+msgid "Your message to {{recipient_user_name}} has been sent!"
+msgstr ""
+
+msgid "Your message will appear in <strong>search engines</strong>"
+msgstr ""
+
+msgid "Your name and annotation will appear in <strong>search engines</strong>."
+msgstr ""
+
+msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"{{url}}\">details</a>)."
+msgstr ""
+
+msgid "Your name:"
+msgstr ""
+
+msgid "Your original message is attached."
+msgstr ""
+
+msgid "Your password has been changed."
+msgstr ""
+
+msgid "Your password:"
+msgstr ""
+
+msgid "Your photo will be shown in public <strong>on the Internet</strong>,\\n wherever you do something on {{site_name}}."
+msgstr ""
+
+msgid "Your request '{{request}}' at {{url}} has been reviewed by moderators."
+msgstr ""
+
+msgid "Your request on {{site_name}} hidden"
+msgstr ""
+
+msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
+msgstr ""
+
+msgid "Your request:"
+msgstr ""
+
+msgid "Your response to an FOI request was not delivered"
+msgstr ""
+
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
+msgstr ""
+
+msgid "Your thoughts on what the {{site_name}} <strong>administrators</strong> should do about the request."
+msgstr ""
+
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
+msgstr[0] " - vedi e crea richieste FOI"
+msgstr[1] " - vedi e crea richieste FOI"
+
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Your {{site_name}} email alert"
+msgstr ""
+
+msgid "Yours faithfully,"
+msgstr ""
+
+msgid "Yours sincerely,"
+msgstr ""
+
+msgid "Yours,"
+msgstr ""
+
+msgid "[FOI #{{request}} email]"
+msgstr ""
+
+msgid "[{{public_body}} request email]"
+msgstr ""
+
+msgid "[{{site_name}} contact email]"
+msgstr ""
+
+msgid "\\n\\n[ {{site_name}} note: The above text was badly encoded, and has had strange characters removed. ]"
+msgstr ""
+
+msgid "a one line summary of the information you are requesting, \\n\t\t\te.g."
+msgstr ""
+
+msgid "admin"
+msgstr ""
+
+msgid "alaveteli_foi:The software that runs {{site_name}}"
+msgstr ""
+
+msgid "all requests"
+msgstr ""
+
+msgid "also called {{public_body_short_name}}"
+msgstr ""
+
+msgid "an anonymous user"
+msgstr ""
+
+msgid "and"
+msgstr ""
+
+msgid "and update the status accordingly. Perhaps <strong>you</strong> might like to help out by doing that?"
+msgstr ""
+
+msgid "and update the status."
+msgstr ""
+
+msgid "and we'll suggest <strong>what to do next</strong>"
+msgstr ""
+
+msgid "any <a href=\"/list\">new requests</a>"
+msgstr ""
+
+msgid "any <a href=\"/list/successful\">successful requests</a>"
+msgstr ""
+
+msgid "anything"
+msgstr ""
+
+msgid "are long overdue."
+msgstr ""
+
+msgid "at"
+msgstr ""
+
+msgid "authorities"
+msgstr ""
+
+msgid "awaiting a response"
+msgstr ""
+
+msgid "beginning with ‘{{first_letter}}’"
+msgstr ""
+
+msgid "between two dates"
+msgstr ""
+
+msgid "but followupable"
+msgstr ""
+
+msgid "by"
+msgstr ""
+
+msgid "by <strong>{{date}}</strong>"
+msgstr ""
+
+msgid "by {{public_body_name}} to {{info_request_user}} on {{date}}."
+msgstr ""
+
+msgid "by {{user_link_absolute}}"
+msgstr ""
+
+msgid "comments"
+msgstr ""
+
+msgid "containing your postal address, and asking them to reply to this request.\\n Or you could phone them."
+msgstr ""
+
+msgid "details"
+msgstr ""
+
+msgid "display_status only works for incoming and outgoing messages right now"
+msgstr ""
+
+msgid "during term time"
+msgstr ""
+
+msgid "edit text about you"
+msgstr ""
+
+msgid "even during holidays"
+msgstr ""
+
+msgid "everything"
+msgstr ""
+
+msgid "external"
+msgstr ""
+
+msgid "has reported an"
+msgstr ""
+
+msgid "have delayed."
+msgstr ""
+
+msgid "hide quoted sections"
+msgstr ""
+
+msgid "in term time"
+msgstr ""
+
+msgid "in the category ‘{{category_name}}’"
+msgstr ""
+
+msgid "internal error"
+msgstr ""
+
+msgid "internal reviews"
+msgstr ""
+
+msgid "is <strong>waiting for your clarification</strong>."
+msgstr ""
+
+msgid "just to see how it works"
+msgstr ""
+
+msgid "left an annotation"
+msgstr ""
+
+msgid "made."
+msgstr ""
+
+msgid "matching the tag ‘{{tag_name}}’"
+msgstr ""
+
+msgid "messages from authorities"
+msgstr ""
+
+msgid "messages from users"
+msgstr ""
+
+msgid "move..."
+msgstr ""
+
+msgid "no later than"
+msgstr ""
+
+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=\"{{url}}\">send it to us</a>."
+msgstr ""
+
+msgid "normally"
+msgstr ""
+
+msgid "not requestable due to: {{reason}}"
+msgstr ""
+
+msgid "please sign in as "
+msgstr ""
+
+msgid "requesting an internal review"
+msgstr ""
+
+msgid "requests"
+msgstr ""
+
+msgid "requests which are {{list_of_statuses}}"
+msgstr ""
+
+msgid "response as needing administrator attention. Take a look, and reply to this\\nemail to let them know what you are going to do about it."
+msgstr ""
+
+msgid "send a follow up message"
+msgstr ""
+
+msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
+msgstr ""
+
+msgid "set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA"
+msgstr ""
+
+msgid "show quoted sections"
+msgstr ""
+
+msgid "sign in"
+msgstr ""
+
+msgid "simple_date_format"
+msgstr ""
+
+msgid "successful"
+msgstr ""
+
+msgid "successful requests"
+msgstr ""
+
+msgid "that you made to"
+msgstr ""
+
+msgid "the main FOI contact address for {{public_body}}"
+msgstr ""
+
+#. This phrase completes the following sentences:
+#. Request an internal review from...
+#. Send a public follow up message to...
+#. Send a public reply to...
+#. Don't want to address your message to... ?
+msgid "the main FOI contact at {{public_body}}"
+msgstr ""
+
+msgid "the requester"
+msgstr ""
+
+msgid "the {{site_name}} team"
+msgstr ""
+
+msgid "to read"
+msgstr ""
+
+msgid "to send a follow up message."
+msgstr ""
+
+msgid "to {{public_body}}"
+msgstr ""
+
+msgid "unexpected prominence on request event"
+msgstr ""
+
+msgid "unknown reason "
+msgstr ""
+
+msgid "unknown status "
+msgstr ""
+
+msgid "unresolved requests"
+msgstr ""
+
+msgid "unsubscribe"
+msgstr ""
+
+msgid "unsubscribe all"
+msgstr ""
+
+msgid "unsuccessful"
+msgstr ""
+
+msgid "unsuccessful requests"
+msgstr ""
+
+msgid "useful information."
+msgstr ""
+
+msgid "users"
+msgstr ""
+
+msgid "what's that?"
+msgstr ""
+
+msgid "{{count}} FOI requests found"
+msgstr ""
+
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "{{count}} person is following this authority"
+msgid_plural "{{count}} people are following this authority"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
+msgstr[0] ""
+msgstr[1] ""
+
+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 ""
+
+msgid "{{info_request_user_name}} only:"
+msgstr ""
+
+msgid "{{law_used_full}} request - {{title}}"
+msgstr ""
+
+msgid "{{law_used_full}} request GQ - {{title}}"
+msgstr ""
+
+msgid "{{law_used}} requests at {{public_body}}"
+msgstr ""
+
+msgid "{{length_of_time}} ago"
+msgstr ""
+
+msgid "{{list_of_things}} matching text '{{search_query}}'"
+msgstr ""
+
+msgid "{{number_of_comments}} comments"
+msgstr ""
+
+msgid "{{public_body_link}} answered a request about"
+msgstr ""
+
+msgid "{{public_body_link}} was sent a request about"
+msgstr ""
+
+msgid "{{public_body_name}} only:"
+msgstr ""
+
+msgid "{{public_body}} has asked you to explain part of your {{law_used}} request."
+msgstr ""
+
+msgid "{{public_body}} sent a response to {{user_name}}"
+msgstr ""
+
+msgid "{{reason}}, please sign in or make a new account."
+msgstr ""
+
+msgid "{{search_results}} matching '{{query}}'"
+msgstr ""
+
+msgid "{{site_name}} blog and tweets"
+msgstr ""
+
+msgid "{{site_name}} covers requests to {{number_of_authorities}} authorities, including:"
+msgstr ""
+
+msgid "{{site_name}} sends new requests to <strong>{{request_email}}</strong> for this authority."
+msgstr ""
+
+msgid "{{site_name}} users have made {{number_of_requests}} requests, including:"
+msgstr ""
+
+msgid "{{thing_changed}} was changed from <code>{{from_value}}</code> to <code>{{to_value}}</code>"
+msgstr ""
+
+msgid "{{title}} - a Freedom of Information request to {{public_body}}"
+msgstr ""
+
+msgid "{{user_name}} (Account suspended)"
+msgstr ""
+
+msgid "{{user_name}} - Freedom of Information requests"
+msgstr ""
+
+msgid "{{user_name}} - user profile"
+msgstr ""
+
+msgid "{{user_name}} added an annotation"
+msgstr ""
+
+msgid "{{user_name}} has annotated your {{law_used_short}} \\nrequest. Follow this link to see what they wrote."
+msgstr ""
+
+msgid "{{user_name}} has used {{site_name}} to send you the message below."
+msgstr ""
+
+msgid "{{user_name}} sent a follow up message to {{public_body}}"
+msgstr ""
+
+msgid "{{user_name}} sent a request to {{public_body}}"
+msgstr ""
+
+msgid "{{username}} left an annotation:"
+msgstr ""
+
+msgid "{{user}} ({{user_admin_link}}) made this {{law_used_full}} request (<a href=\"{{request_admin_url}}\">admin</a>) to {{public_body_link}} (<a href=\"{{public_body_admin_url}}\">admin</a>)"
+msgstr ""
+
+msgid "{{user}} made this {{law_used_full}} request"
+msgstr ""
diff --git a/locale/model_attributes.rb b/locale/model_attributes.rb
index 27925cd02..ba3a60c90 100644
--- a/locale/model_attributes.rb
+++ b/locale/model_attributes.rb
@@ -1,4 +1,7 @@
#DO NOT MODIFY! AUTOMATICALLY GENERATED FILE!
+_('Acts as xapian/acts as xapian job')
+_('ActsAsXapian::ActsAsXapianJob|Action')
+_('ActsAsXapian::ActsAsXapianJob|Model')
_('Censor rule')
_('CensorRule|Last edit comment')
_('CensorRule|Last edit editor')
@@ -18,6 +21,10 @@ _('FoiAttachment|Filename')
_('FoiAttachment|Hexdigest')
_('FoiAttachment|Url part number')
_('FoiAttachment|Within rfc822 subject')
+_('Has tag string/has tag string tag')
+_('HasTagString::HasTagStringTag|Model')
+_('HasTagString::HasTagStringTag|Name')
+_('HasTagString::HasTagStringTag|Value')
_('Holiday')
_('Holiday|Day')
_('Holiday|Description')
@@ -89,16 +96,6 @@ _('PublicBody|Request email')
_('PublicBody|Short name')
_('PublicBody|Url name')
_('PublicBody|Version')
-_('Public body/translation')
-_('PublicBody::Translation|Disclosure log')
-_('PublicBody::Translation|First letter')
-_('PublicBody::Translation|Locale')
-_('PublicBody::Translation|Name')
-_('PublicBody::Translation|Notes')
-_('PublicBody::Translation|Publication scheme')
-_('PublicBody::Translation|Request email')
-_('PublicBody::Translation|Short name')
-_('PublicBody::Translation|Url name')
_('Purge request')
_('PurgeRequest|Model')
_('PurgeRequest|Url')
diff --git a/locale/nb_NO/app.po b/locale/nb_NO/app.po
index b548c3e32..68d32c8c0 100644
--- a/locale/nb_NO/app.po
+++ b/locale/nb_NO/app.po
@@ -6,21 +6,21 @@
msgid ""
msgstr ""
"Project-Id-Version: alaveteli\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-12-18 10:11+0000\n"
-"PO-Revision-Date: 2011-03-09 17:48+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"Report-Msgid-Bugs-To: http://github.com/sebbacon/alaveteli/issues\n"
+"POT-Creation-Date: 2013-05-30 09:46+0100\n"
+"PO-Revision-Date: 2013-05-30 09:01+0000\n"
+"Last-Translator: louisecrow <louise@mysociety.org>\n"
+"Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/alaveteli/language/nb_NO/)\n"
"Language: nb_NO\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid " This will appear on your {{site_name}} profile, to make it\\n easier for others to get involved with what you're doing."
msgstr ""
-msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)"
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
msgstr ""
msgid " (<strong>patience</strong>, especially for large files, it may take a while!)"
@@ -50,7 +50,7 @@ msgstr ""
msgid " Ideas on what <strong>other documents to request</strong> which the authority may hold. "
msgstr ""
-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."
+msgid " If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\\n You may be able to find the address on their website, or by phoning them up and asking."
msgstr ""
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."
@@ -89,21 +89,6 @@ msgstr ""
msgid "\"Hello! We have an <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">important message</a> for visitors outside {{country_name}}\""
msgstr ""
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "%d request"
-msgid_plural "%d requests"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "%d request made."
-msgid_plural "%d requests made."
-msgstr[0] ""
-msgstr[1] ""
-
msgid "'Crime statistics by ward level for Wales'"
msgstr ""
@@ -119,6 +104,9 @@ msgstr ""
msgid "'{{link_to_user}}', a person"
msgstr ""
+msgid "*unknown*"
+msgstr ""
+
msgid ",\\n\\n\\n\\nYours,\\n\\n{{user_name}}"
msgstr ""
@@ -134,31 +122,13 @@ msgstr ""
msgid "3. Now check your request"
msgstr ""
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
msgstr ""
-msgid "<a href=\"%s\">Are we missing a public authority?</a>"
+msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)"
msgstr ""
-msgid "<a href=\"%s\">Are you the owner of\\n any commercial copyright on this page?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
-msgstr ""
-
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
-msgstr ""
-
-msgid "<a href=\"%s\">details</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">what's that?</a>"
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
msgstr ""
msgid "<p>All done! Thank you very much for your help.</p><p>There are <a href=\"{{helpus_url}}\">more things you can do</a> to help {{site_name}}.</p>"
@@ -176,9 +146,6 @@ msgstr ""
msgid "<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>"
msgstr ""
-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 ""
-
msgid "<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>"
msgstr ""
@@ -197,10 +164,10 @@ msgstr ""
msgid "<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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 ""
-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>"
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
msgstr ""
-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>"
+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=\"{{url}}\">details</a>).</p>"
msgstr ""
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>"
@@ -215,12 +182,7 @@ msgstr ""
msgid "<small>If you use web-based email or have \"junk mail\" filters, also check your\\nbulk/spam mail folders. Sometimes, our messages are marked that way.</small>\\n</p>"
msgstr ""
-msgid "<span id='follow_count'>%d</span> person is following this authority"
-msgid_plural "<span id='follow_count'>%d</span> people are following this authority"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
+msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
msgstr ""
msgid "<strong><code>commented_by:tony_bowden</code></strong> to search annotations made by Tony Bowden, typing the name as in the URL."
@@ -274,7 +236,7 @@ msgstr ""
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 ""
-msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"%s\">click here</a>."
+msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"{{url}}\">click here</a>."
msgstr ""
msgid "<strong>Privacy note:</strong> Your photo will be shown in public on the Internet,\\n wherever you do something on {{site_name}}."
@@ -316,6 +278,9 @@ msgstr ""
msgid "A strange reponse, required attention by the {{site_name}} team"
msgstr ""
+msgid "A vexatious request"
+msgstr ""
+
msgid "A {{site_name}} user"
msgstr ""
@@ -325,6 +290,15 @@ msgstr ""
msgid "Act on what you've learnt"
msgstr ""
+msgid "Acts as xapian/acts as xapian job"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Action"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Model"
+msgstr ""
+
msgid "Add an annotation"
msgstr ""
@@ -403,10 +377,19 @@ msgstr ""
msgid "Anyone:"
msgstr ""
+msgid "Applies to"
+msgstr ""
+
+msgid "Are we missing a public authority?"
+msgstr ""
+
+msgid "Are you the owner of any commercial copyright on this page?"
+msgstr ""
+
msgid "Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries."
msgstr ""
-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>)."
+msgid "At the bottom of this page, write a reply to them trying to persuade them to scan it in\\n (<a href=\"{{url}}\">more details</a>)."
msgstr ""
msgid "Attachment (optional):"
@@ -442,6 +425,12 @@ msgstr ""
msgid "By law, {{public_body_link}} should normally have responded <strong>promptly</strong> and"
msgstr ""
+msgid "Calculated home page"
+msgstr ""
+
+msgid "Can't find the one you want?"
+msgstr ""
+
msgid "Cancel a {{site_name}} alert"
msgstr ""
@@ -607,9 +596,15 @@ msgstr ""
msgid "Date:"
msgstr ""
+msgid "Dear {{name}},"
+msgstr ""
+
msgid "Dear {{public_body_name}},"
msgstr ""
+msgid "Default locale"
+msgstr ""
+
msgid "Delayed response to your FOI request - "
msgstr ""
@@ -619,6 +614,9 @@ msgstr ""
msgid "Delivery error"
msgstr ""
+msgid "Destroy {{name}}"
+msgstr ""
+
msgid "Details of request '"
msgstr ""
@@ -631,6 +629,9 @@ msgstr ""
msgid "Disclosure log"
msgstr ""
+msgid "Disclosure log URL"
+msgstr ""
+
msgid "Don't want to address your message to {{person_or_body}}? You can also write to:"
msgstr ""
@@ -649,10 +650,10 @@ msgstr ""
msgid "EIR"
msgstr ""
-msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
+msgid "Edit"
msgstr ""
-msgid "Edit language version:"
+msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
msgstr ""
msgid "Edit text about you"
@@ -676,7 +677,7 @@ msgstr ""
msgid "Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>"
msgstr ""
-msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"%s\">contact us</a> if you need more)."
+msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"{{url}}\">contact us</a> if you need more)."
msgstr ""
msgid "Environmental Information Regulations"
@@ -694,10 +695,13 @@ msgstr ""
msgid "Event history details"
msgstr ""
-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>)."
+msgid "Event {{id}}"
msgstr ""
-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>)."
+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=\"{{url}}\">why?</a>)."
+msgstr ""
+
+msgid "Everything that you enter on this page\\n will be <strong>displayed publicly</strong> on\\n this website forever (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "FOI"
@@ -706,6 +710,9 @@ msgstr ""
msgid "FOI email address for {{public_body}}"
msgstr ""
+msgid "FOI request – {{title}}"
+msgstr ""
+
msgid "FOI requests"
msgstr ""
@@ -721,13 +728,13 @@ msgstr ""
msgid "Failed to convert image to a PNG"
msgstr ""
-msgid "Failed to convert image to the correct size: at %{cols}x%{rows}, need %{width}x%{height}"
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
msgstr ""
msgid "Filter"
msgstr ""
-msgid "First, type in the <strong>name of the UK public authority</strong> you'd \\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"%s#%s\">why?</a>)."
+msgid "First, type in the <strong>name of the UK public authority</strong> you'd\\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "Foi attachment"
@@ -808,8 +815,8 @@ msgstr ""
msgid "Forgotten your password?"
msgstr ""
-msgid "Found %d public authority %s"
-msgid_plural "Found %d public authorities %s"
+msgid "Found {{count}} public authority {{description}}"
+msgid_plural "Found {{count}} public authorities {{description}}"
msgstr[0] ""
msgstr[1] ""
@@ -846,7 +853,7 @@ msgstr ""
msgid "From"
msgstr ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "From:"
@@ -858,6 +865,18 @@ msgstr ""
msgid "Handled by post."
msgstr ""
+msgid "Has tag string/has tag string tag"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Model"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Name"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Value"
+msgstr ""
+
msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
msgstr ""
@@ -876,6 +895,9 @@ msgstr ""
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 ""
+msgid "Hide request"
+msgstr ""
+
msgid "Holiday"
msgstr ""
@@ -888,6 +910,9 @@ msgstr ""
msgid "Home"
msgstr ""
+msgid "Home page"
+msgstr ""
+
msgid "Home page of authority"
msgstr ""
@@ -936,22 +961,31 @@ msgstr ""
msgid "I've received an <strong>error message</strong>"
msgstr ""
-msgid "If the address is wrong, or you know a better address, please <a href=\"%s\">contact us</a>."
+msgid "I've received an error message"
+msgstr ""
+
+msgid "Id"
+msgstr ""
+
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
+msgstr ""
+
+msgid "If the error was a delivery failure, and you can find an up to date FOI email address for the authority, please tell us using the form below."
msgstr ""
msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
msgstr ""
-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>)."
+msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"{{url}}\">details</a>)."
msgstr ""
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
+msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
-msgid "If you are the requester, then you may <a href=\"%s\">sign in</a> to view the request."
+msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request."
msgstr ""
-msgid "If you are thinking of using a pseudonym,\\n please <a href=\"%s\">read this first</a>."
+msgid "If you are thinking of using a pseudonym,\\n please <a href=\"{{url}}\">read this first</a>."
msgstr ""
msgid "If you are {{user_link}}, please"
@@ -993,6 +1027,9 @@ msgstr ""
msgid "If your browser is set to accept cookies and you are seeing this message,\\nthen there is probably a fault with our server."
msgstr ""
+msgid "Incoming email address"
+msgstr ""
+
msgid "Incoming message"
msgstr ""
@@ -1107,13 +1144,19 @@ msgstr ""
msgid "Items matching the following conditions are currently displayed on your wall."
msgstr ""
+msgid "Items sent in last month"
+msgstr ""
+
msgid "Joined in"
msgstr ""
msgid "Joined {{site_name}} in"
msgstr ""
-msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)."
+msgid "Just one more thing"
+msgstr ""
+
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "Keywords"
@@ -1131,9 +1174,27 @@ msgstr ""
msgid "Link to this"
msgstr ""
+msgid "List all"
+msgstr ""
+
msgid "List of all authorities (CSV)"
msgstr ""
+msgid "Listing FOI requests"
+msgstr ""
+
+msgid "Listing public authorities"
+msgstr ""
+
+msgid "Listing public authorities matching '{{query}}'"
+msgstr ""
+
+msgid "Listing tracks"
+msgstr ""
+
+msgid "Listing users"
+msgstr ""
+
msgid "Log in to download a zip file of {{info_request_title}}"
msgstr ""
@@ -1230,6 +1291,9 @@ msgstr ""
msgid "New Freedom of Information requests"
msgstr ""
+msgid "New censor rule"
+msgstr ""
+
msgid "New e-mail:"
msgstr ""
@@ -1275,6 +1339,9 @@ msgstr ""
msgid "No similar requests found."
msgstr ""
+msgid "No tracked things found."
+msgstr ""
+
msgid "Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet."
msgstr ""
@@ -1284,6 +1351,9 @@ msgstr ""
msgid "None made."
msgstr ""
+msgid "Not a valid FOI request"
+msgstr ""
+
msgid "Note that the requester will not be notified about your annotation, because the request was published by {{public_body_name}} on their behalf."
msgstr ""
@@ -1329,6 +1399,9 @@ msgstr ""
msgid "One public authority found"
msgstr ""
+msgid "Only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL – don't worry about breaking URLs through renaming, as the history is used to redirect"
+msgstr ""
+
msgid "Only requests made using {{site_name}} are shown."
msgstr ""
@@ -1401,7 +1474,7 @@ msgstr ""
msgid "Please"
msgstr ""
-msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
msgstr ""
msgid "Please <strong>answer the question above</strong> so we know whether the "
@@ -1506,7 +1579,7 @@ msgstr ""
msgid "Please select each of these requests in turn, and <strong>let everyone know</strong>\\nif they are successful yet or not."
msgstr ""
-msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature"
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
msgstr ""
msgid "Please sign in as "
@@ -1518,9 +1591,6 @@ msgstr ""
msgid "Please type a message and/or choose a file containing your response."
msgstr ""
-msgid "Please use the form below to tell us more."
-msgstr ""
-
msgid "Please use this email address for all replies to this request:"
msgstr ""
@@ -1611,37 +1681,19 @@ msgstr ""
msgid "Public authorities {{start_count}} to {{end_count}} of {{total_count}}"
msgstr ""
-msgid "Public body"
-msgstr ""
-
-msgid "Public body/translation"
-msgstr ""
-
-msgid "PublicBody::Translation|Disclosure log"
-msgstr ""
-
-msgid "PublicBody::Translation|First letter"
-msgstr ""
-
-msgid "PublicBody::Translation|Locale"
-msgstr ""
-
-msgid "PublicBody::Translation|Name"
+msgid "Public authority – {{name}}"
msgstr ""
-msgid "PublicBody::Translation|Notes"
-msgstr ""
-
-msgid "PublicBody::Translation|Publication scheme"
+msgid "Public body"
msgstr ""
-msgid "PublicBody::Translation|Request email"
+msgid "Public notes"
msgstr ""
-msgid "PublicBody::Translation|Short name"
+msgid "Public page"
msgstr ""
-msgid "PublicBody::Translation|Url name"
+msgid "Public page not available"
msgstr ""
msgid "PublicBody|Api key"
@@ -1689,6 +1741,9 @@ msgstr ""
msgid "Publication scheme"
msgstr ""
+msgid "Publication scheme URL"
+msgstr ""
+
msgid "Purge request"
msgstr ""
@@ -1746,6 +1801,9 @@ msgstr ""
msgid "Request an internal review from {{person_or_body}}"
msgstr ""
+msgid "Request email"
+msgstr ""
+
msgid "Request has been removed"
msgstr ""
@@ -1836,14 +1894,17 @@ msgstr ""
msgid "Search the site to find what you were looking for."
msgstr ""
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests made to {{public_body_name}}"
msgstr[0] ""
msgstr[1] ""
msgid "Search your contributions"
msgstr ""
+msgid "See bounce message"
+msgstr ""
+
msgid "Select one to see more information about the authority."
msgstr ""
@@ -1877,6 +1938,9 @@ msgstr ""
msgid "Set your profile photo"
msgstr ""
+msgid "Short name"
+msgstr ""
+
msgid "Short name is already taken"
msgstr ""
@@ -1970,6 +2034,9 @@ msgstr ""
msgid "Submit status"
msgstr ""
+msgid "Submit status and send message"
+msgstr ""
+
msgid "Subscribe to blog"
msgstr ""
@@ -1991,6 +2058,9 @@ msgstr ""
msgid "Table of varieties"
msgstr ""
+msgid "Tags"
+msgstr ""
+
msgid "Tags (separated by a space):"
msgstr ""
@@ -2018,6 +2088,9 @@ msgstr ""
msgid "Thank you for updating your profile photo"
msgstr ""
+msgid "Thank you! We'll look into what happened and try and fix it up."
+msgstr ""
+
msgid "Thanks for helping - your work will make it easier for everyone to find successful\\nresponses, and maybe even let us make league tables..."
msgstr ""
@@ -2087,16 +2160,16 @@ msgstr ""
msgid "The request was refused by the public authority"
msgstr ""
-msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"%s\">contact us</a> if you have any questions."
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
msgstr ""
msgid "The requester has abandoned this request for some reason"
msgstr ""
-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"
+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 ""
-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"
+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 ""
msgid "The search index is currently offline, so we can't show the Freedom of Information requests that have been made to this authority."
@@ -2105,6 +2178,9 @@ msgstr ""
msgid "The search index is currently offline, so we can't show the Freedom of Information requests this person has made."
msgstr ""
+msgid "The {{site_name}} team."
+msgstr ""
+
msgid "Then you can cancel the alert."
msgstr ""
@@ -2180,17 +2256,17 @@ msgstr ""
msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
msgstr ""
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
-msgstr[0] ""
-msgstr[1] ""
-
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 ""
msgid "There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>."
msgstr ""
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "There was a <strong>delivery error</strong> or similar, which needs fixing by the {{site_name}} team."
msgstr ""
@@ -2227,7 +2303,7 @@ msgstr ""
msgid "This authority no longer exists, so you cannot make a request to it."
msgstr ""
-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."
+msgid "This comment has been hidden. See annotations to\\n find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This covers a very wide spectrum of information about the state of\\n the <strong>natural and built environment</strong>, such as:"
@@ -2245,10 +2321,13 @@ msgstr ""
msgid "This is because {{title}} is an old request that has been\\nmarked to no longer receive responses."
msgstr ""
+msgid "This is the first version."
+msgstr ""
+
msgid "This is your own request, so you will be automatically emailed when new responses arrive."
msgstr ""
-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."
+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=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This particular request is finished:"
@@ -2257,19 +2336,19 @@ msgstr ""
msgid "This person has made no Freedom of Information requests using this site."
msgstr ""
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
+msgid "This person's annotations"
+msgstr ""
+
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
msgstr[0] ""
msgstr[1] ""
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
msgstr[0] ""
msgstr[1] ""
-msgid "This person's annotations"
-msgstr ""
-
msgid "This request <strong>requires administrator attention</strong>"
msgstr ""
@@ -2291,7 +2370,7 @@ msgstr ""
msgid "This request has been <strong>withdrawn</strong> by the person who made it.\\n There may be an explanation in the correspondence below."
msgstr ""
-msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"%s\">contact us</a>."
+msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
msgid "This request has been reported for administrator attention"
@@ -2306,16 +2385,19 @@ msgstr ""
msgid "This request has prominence 'hidden'. You can only see it because you are logged\\n in as a super user."
msgstr ""
-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."
+msgid "This request is hidden, so that only you the requester can see it. Please\\n <a href=\"{{url}}\">contact us</a> if you are not sure why."
msgstr ""
msgid "This request is still in progress:"
msgstr ""
+msgid "This request requires administrator attention"
+msgstr ""
+
msgid "This request was not made via {{site_name}}"
msgstr ""
-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."
+msgid "This response has been hidden. See annotations to find out why.\\n If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This table shows the technical details of the internal events that happened\\nto this request on {{site_name}}. This could be used to generate information about\\nthe speed with which authorities respond to requests, the number of requests\\nwhich require a postal response and much more."
@@ -2474,7 +2556,7 @@ msgstr ""
msgid "Unexpected search result type "
msgstr ""
-msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"%s\">contact us</a> to sort it out."
+msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"{{url}}\">contact us</a> to sort it out."
msgstr ""
msgid "Unfortunately, we do not have a working {{info_request_law_used_full}}\\naddress for"
@@ -2510,6 +2592,9 @@ msgstr ""
msgid "User info request sent alert"
msgstr ""
+msgid "User – {{name}}"
+msgstr ""
+
msgid "UserInfoRequestSentAlert|Alert type"
msgstr ""
@@ -2564,6 +2649,9 @@ msgstr ""
msgid "User|Url name"
msgstr ""
+msgid "Version {{version}}"
+msgstr ""
+
msgid "View FOI email address"
msgstr ""
@@ -2603,6 +2691,12 @@ msgstr ""
msgid "Was the response you got to your FOI request any good?"
msgstr ""
+msgid "We consider it is not a valid FOI request, and have therefore hidden it from other users."
+msgstr ""
+
+msgid "We consider it to be vexatious, and have therefore hidden it from other users."
+msgstr ""
+
msgid "We do not have a working request email address for this authority."
msgstr ""
@@ -2612,7 +2706,7 @@ msgstr ""
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=\"{{url}}\">sign in</a> and let everyone know."
msgstr ""
-msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"%s\">details</a>). "
+msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"{{url}}\">details</a>). "
msgstr ""
msgid "We will not reveal your email address to anybody unless you\\nor the law tell us to."
@@ -2654,7 +2748,7 @@ msgstr ""
msgid "When you receive the paper response, please help\\n others find out what it says:"
msgstr ""
-msgid "When you're done, <strong>come back here</strong>, <a href=\"%s\">reload this page</a> and file your new request."
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
msgstr ""
msgid "Which of these is happening?"
@@ -2756,7 +2850,7 @@ msgstr ""
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 ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "You may be able to find\\none on their website, or by phoning them up and asking. If you manage\\nto find one, then please <a href=\"{{help_url}}\">send it to us</a>."
@@ -2795,6 +2889,9 @@ msgstr ""
msgid "You will only get an answer to your request if you follow up\\nwith the clarification."
msgstr ""
+msgid "You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further."
+msgstr ""
+
msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
msgstr ""
@@ -2807,17 +2904,7 @@ msgstr ""
msgid "You've now cleared your profile photo"
msgstr ""
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
-msgstr[0] ""
-msgstr[1] ""
-
-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>."
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
msgstr ""
msgid "Your annotations"
@@ -2829,7 +2916,7 @@ msgstr ""
msgid "Your e-mail:"
msgstr ""
-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."
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
msgstr ""
msgid "Your follow up message has been sent on its way."
@@ -2853,7 +2940,7 @@ msgstr ""
msgid "Your name and annotation will appear in <strong>search engines</strong>."
msgstr ""
-msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"%s\">details</a>)."
+msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"{{url}}\">details</a>)."
msgstr ""
msgid "Your name:"
@@ -2871,6 +2958,12 @@ msgstr ""
msgid "Your photo will be shown in public <strong>on the Internet</strong>,\\n wherever you do something on {{site_name}}."
msgstr ""
+msgid "Your request '{{request}}' at {{url}} has been reviewed by moderators."
+msgstr ""
+
+msgid "Your request on {{site_name}} hidden"
+msgstr ""
+
msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
msgstr ""
@@ -2880,12 +2973,22 @@ msgstr ""
msgid "Your response to an FOI request was not delivered"
msgstr ""
-msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"%s\">read why</a> and answers to other questions."
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
msgstr ""
msgid "Your thoughts on what the {{site_name}} <strong>administrators</strong> should do about the request."
msgstr ""
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Your {{site_name}} email alert"
msgstr ""
@@ -2895,6 +2998,9 @@ msgstr ""
msgid "Yours sincerely,"
msgstr ""
+msgid "Yours,"
+msgstr ""
+
msgid "[FOI #{{request}} email]"
msgstr ""
@@ -2913,6 +3019,9 @@ msgstr ""
msgid "admin"
msgstr ""
+msgid "alaveteli_foi:The software that runs {{site_name}}"
+msgstr ""
+
msgid "all requests"
msgstr ""
@@ -2946,6 +3055,9 @@ msgstr ""
msgid "are long overdue."
msgstr ""
+msgid "at"
+msgstr ""
+
msgid "authorities"
msgstr ""
@@ -2958,6 +3070,9 @@ msgstr ""
msgid "between two dates"
msgstr ""
+msgid "but followupable"
+msgstr ""
+
msgid "by"
msgstr ""
@@ -3039,15 +3154,21 @@ msgstr ""
msgid "messages from users"
msgstr ""
+msgid "move..."
+msgstr ""
+
msgid "no later than"
msgstr ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "normally"
msgstr ""
+msgid "not requestable due to: {{reason}}"
+msgstr ""
+
msgid "please sign in as "
msgstr ""
@@ -3069,6 +3190,9 @@ msgstr ""
msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
msgstr ""
+msgid "set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA"
+msgstr ""
+
msgid "show quoted sections"
msgstr ""
@@ -3090,6 +3214,11 @@ msgstr ""
msgid "the main FOI contact address for {{public_body}}"
msgstr ""
+#. This phrase completes the following sentences:
+#. Request an internal review from...
+#. Send a public follow up message to...
+#. Send a public reply to...
+#. Don't want to address your message to... ?
msgid "the main FOI contact at {{public_body}}"
msgstr ""
@@ -3138,9 +3267,32 @@ msgstr ""
msgid "users"
msgstr ""
+msgid "what's that?"
+msgstr ""
+
msgid "{{count}} FOI requests found"
msgstr ""
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "{{count}} person is following this authority"
+msgid_plural "{{count}} people are following this authority"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
+msgstr[0] ""
+msgstr[1] ""
+
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 ""
@@ -3198,6 +3350,9 @@ msgstr ""
msgid "{{site_name}} users have made {{number_of_requests}} requests, including:"
msgstr ""
+msgid "{{thing_changed}} was changed from <code>{{from_value}}</code> to <code>{{to_value}}</code>"
+msgstr ""
+
msgid "{{title}} - a Freedom of Information request to {{public_body}}"
msgstr ""
diff --git a/locale/pt_BR/app.po b/locale/pt_BR/app.po
index 6af77b24e..44bba74f4 100644
--- a/locale/pt_BR/app.po
+++ b/locale/pt_BR/app.po
@@ -3,33 +3,34 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# <3laste2000@gmail.com>, 2012.
-# <a.serramassuda@gmail.com>, 2012.
-# Bruno <bgx@bol.com.br>, 2012.
-# <brunomelnic@gmail.com>, 2012-2013.
-# Carlos Vieira <edu.carlos.vieira@gmail.com>, 2011.
-# <danielabsilva@gmail.com>, 2011.
-# <everton137@gmail.com>, 2011.
-# <gabileitao@gmail.com>, 2012.
-# <jcmarkun@gmail.com>, 2011.
-# <kerick.quimica@gmail.com>, 2012.
-# <leandrosalvador@gmail.com>, 2013.
-# <leandrosalvador@gmail.com>, 2013.
-# <lianelira@gmail.com>, 2011.
-# <luis.leao@gmail.com>, 2011.
-# <Nitaibezerra@gmail.com>, 2012.
-# <patriciacornils@gmail.com>, 2011.
-# <pedro@esfera.mobi>, 2011-2012.
-# <rafael.moretti@gmail.com>, 2012.
-# <vitor@vitorbaptista.com>, 2013.
+# elaste <3laste2000@gmail.com>, 2012
+# serramassuda <a.serramassuda@gmail.com>, 2012
+# Bruno <bgx@bol.com.br>, 2012
+# brunomelnic <brunomelnic@gmail.com>, 2012-2013
+# Carlos Vieira <edu.carlos.vieira@gmail.com>, 2011
+# danielabsilva <danielabsilva@gmail.com>, 2011
+# <everton137@gmail.com>, 2011
+# gabinardy <gabileitao@gmail.com>, 2012
+# jcmarkun <jcmarkun@gmail.com>, 2011
+# Kerick <kerick.quimica@gmail.com>, 2012
+# leandrosalvador <leandrosalvador@gmail.com>, 2013
+# leandrosalvador <leandrosalvador@gmail.com>, 2013
+# lianelira <lianelira@gmail.com>, 2011
+# luisleao <luis.leao@gmail.com>, 2011
+# Nitai <Nitaibezerra@gmail.com>, 2012
+# patriciacornils <patriciacornils@gmail.com>, 2011
+# markun <pedro@esfera.mobi>, 2011-2012
+# Rafael Moretti <rafael.moretti@gmail.com>, 2012
+# vitorbaptista <vitor@vitorbaptista.com>, 2013
+# vitorbaptista <vitor@vitorbaptista.com>, 2013
msgid ""
msgstr ""
"Project-Id-Version: alaveteli\n"
"Report-Msgid-Bugs-To: http://github.com/sebbacon/alaveteli/issues\n"
-"POT-Creation-Date: 2012-12-18 10:11+0000\n"
-"PO-Revision-Date: 2013-01-19 01:35+0000\n"
-"Last-Translator: leandrosalvador <leandrosalvador@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"POT-Creation-Date: 2013-05-30 09:46+0100\n"
+"PO-Revision-Date: 2013-05-30 08:54+0000\n"
+"Last-Translator: louisecrow <louise@mysociety.org>\n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/alaveteli/language/pt_BR/)\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -39,8 +40,8 @@ msgstr ""
msgid " This will appear on your {{site_name}} profile, to make it\\n easier for others to get involved with what you're doing."
msgstr "Isso aparecerá no seu perfil no {{site_name}}, para que outras pessoas envolvam-se mais facilmente com o que você está fazendo."
-msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)"
-msgstr "(<strong>sem ataques</strong> políticos, leia nossa <a href=\"%s\">política de moderação</a>)"
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
+msgstr "(<strong>sem ataques</strong> políticos, leia nossa <a href=\"{{url}}\">política de moderação</a>)"
msgid " (<strong>patience</strong>, especially for large files, it may take a while!)"
msgstr "(<strong>paciência,</strong> especialmente para arquivos grandes, pode demorar um pouco!)"
@@ -69,8 +70,8 @@ msgstr "Recomendações sobre como <strong>tornar mais claro</strong> o pedido."
msgid " Ideas on what <strong>other documents to request</strong> which the authority may hold. "
msgstr "Ideias de <strong>outras informações</strong> a serem solicitadas para esse órgão público."
-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 "Se você souber o endereço de e-mail do órgão público que deve receber esse pedido, <a href=\"%s\">envie-o para nós</a>. Você pode encontrar o endereço de e-mail no site do órgão ou pelo telefone."
+msgid " If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\\n You may be able to find the address on their website, or by phoning them up and asking."
+msgstr "Se você souber o endereço de e-mail do órgão público que deve receber esse pedido, <a href=\"{{url}}\">envie-o para nós</a>. Você pode encontrar o endereço de e-mail no site do órgão ou pelo telefone."
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 "Inclua links relevantes, como para um site de mobilização, seu blog ou uma conta no Twitter. Eles serão clicáveis, por exemplo."
@@ -108,21 +109,6 @@ msgstr "quando você enviar esta mensagem."
msgid "\"Hello! We have an <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">important message</a> for visitors outside {{country_name}}\""
msgstr "\"Olá! Temos uma <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">mensagem importante</a> para visitantes de fora do {{country_name}}\""
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
-msgstr[0] "%d Pedido de Acesso à Informação solicitado para %s"
-msgstr[1] "%d Pedidos de Acesso à Informação solicitados para %s"
-
-msgid "%d request"
-msgid_plural "%d requests"
-msgstr[0] "%d pedido"
-msgstr[1] "%d pedidos"
-
-msgid "%d request made."
-msgid_plural "%d requests made."
-msgstr[0] "%d pedido realizado."
-msgstr[1] "%d pedidos realizados."
-
msgid "'Crime statistics by ward level for Wales'"
msgstr "'Estatísticas de crimes por bairro na cidade de São Paulo'"
@@ -138,6 +124,9 @@ msgstr "'{{link_to_request}}', um pedido"
msgid "'{{link_to_user}}', a person"
msgstr "'{{link_to_user}}', uma pessoa"
+msgid "*unknown*"
+msgstr ""
+
msgid ",\\n\\n\\n\\nYours,\\n\\n{{user_name}}"
msgstr ""
",\n"
@@ -160,32 +149,14 @@ msgstr "2. Solicite uma informação"
msgid "3. Now check your request"
msgstr "3. Verifique seu pedido de informação"
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
-msgstr "<a href=\"%s\">Adicione um comentário</a> (para ajudar o solicitante ou outros)"
-
-msgid "<a href=\"%s\">Are we missing a public authority?</a>"
-msgstr "<a href=\"%s\">Estamos esquecendo de um órgão público?</a>"
-
-msgid "<a href=\"%s\">Are you the owner of\\n any commercial copyright on this page?</a>"
-msgstr "<a href=\"%s\">Você é o dono dos direitos autorais dessa página?</a>"
-
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
-msgstr "<a href=\"%s\">Veja todos</a> ou <a href=\"%s\">peça-nos para adicionar um</a>."
-
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
-msgstr "<a href=\"%s\">Não conseguiu encontrar o que procurava?</a>"
-
-msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
-msgstr "<a href=\"%s\">Acesse aqui</a> para alterar sua senha, acompanhamento de pedidos e mais (apenas para {{user_name}})"
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
+msgstr "<a href=\"{{browse_url}}\">Veja todos</a> ou <a href=\"{{add_url}}\">peça-nos para adicionar um</a>."
-msgid "<a href=\"%s\">details</a>"
-msgstr "<a href=\"%s\">detalhes</a>"
+msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)"
+msgstr "<a href=\"{{url}}\">Adicione um comentário</a> (para ajudar o solicitante ou outros)"
-msgid "<a href=\"%s\">what's that?</a>"
-msgstr "<a href=\"%s\">o que é isso?</a>"
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
+msgstr "<a href=\"{{url}}\">Acesse aqui</a> para alterar sua senha, acompanhamento de pedidos e mais (apenas para {{user_name}})"
msgid "<p>All done! Thank you very much for your help.</p><p>There are <a href=\"{{helpus_url}}\">more things you can do</a> to help {{site_name}}.</p>"
msgstr "<p>Tudo certo! Muito obrigado por sua ajuda.</p><p>Existem <a href=\"{{helpus_url}}\">mais coisas que você pode fazer</a> para ajudar o {{site_name}}.</p>"
@@ -202,9 +173,6 @@ msgstr "<p>Obrigado! Esperamos que você não tenha que esperar muito.</p><p> Co
msgid "<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>"
msgstr "<p>Obrigado! Esperamos que você não tenha que esperar muito.</p><p> Conforme a Lei de Acesso à Informação, você deverá receber uma resposta em no máximo <strong>{{date_response_required_by}}</strong> dias, ou ser informado dentro desse período de que serão necessários no máximo mais 10 dias em (<a href=\"{{review_url}}\">detalhes</a>).</p>"
-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 "<p>Obrigado! Nós vamos olhar o que aconteceu e tentar consertar.</p><p>Se foi um erro de envio e você puder achar um email atualizado desse orgão, por favor nos avise no formulário abaixo.</p>"
-
msgid "<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>"
msgstr "<p>Obrigado! Sua resposta está bastante atrasada, por mais de {{very_late_number_of_days}} dias. A maioria dos pedidos deve ser respondido dentro de {{late_number_of_days}} dias. Você pode reclamar disso, veja abaixo.</p>"
@@ -229,17 +197,17 @@ msgstr "<p>Nós estamos felizes que você tenha conseguido toda a informação q
msgid "<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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 "<p>Nós estamos felizes que você tenha conseguido toda a informação que procurava. Se você for escrever sobre ou fazer uso dessa informação, por favor, volte depois e deixe um comentário contando o que você fez.</p><p>Se você achou o {{site_name}} útil, divulgue para seus contatos, exerça a cidadania!</p>"
-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 "<p>Você não precisa incluir seu e-mail no pedido de informação para receber uma resposta (<a href=\"%s\">detalhes</a>).</p>"
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
+msgstr "<p>Você não precisa incluir seu e-mail no pedido de informação para receber uma resposta (<a href=\"{{url}}\">detalhes</a>).</p>"
-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 "<p>Você não precisa incluir seu e-mail no pedido de informação para receber uma resposta, já que vamos requisitá-lo na próxima tela (<a href=\"%s\">detalhes</a>).</p>"
+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=\"{{url}}\">details</a>).</p>"
+msgstr "<p>Você não precisa incluir seu e-mail no pedido de informação para receber uma resposta, já que vamos requisitá-lo na próxima tela (<a href=\"{{url}}\">detalhes</a>).</p>"
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 "<p>Seu pedido contém um <strong>endereço físico</strong>. A menos que isso seja diretamente relacionado ao assunto da sua requisição, por favor, remova qualquer endereço, uma vez que eles serão <strong>publicados na Internet</strong>.</p>"
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 {{late_number_of_days}} 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 "<p>Seu Pedido de Acesso à Informação Pública foi <strong>enviado</strong>!</p>\\n <p><strong>Vamos enviar-lhe um email</strong> quando houver uma resposta, ou depois de {{late_number_of_days}} dias úteis se o órgão público ainda não tiver \\n respondido.</p>\\n <p>Se você escrever sobre este pedido (em um fórum ou blog, por exemplo), por favor, crie um link para esta página e adicione \\n comentários avisando as pessoas sobre seu pedido.</p>"
+msgstr "<p>Seu Pedido de Acesso à Informação foi <strong>enviado</strong>!</p>\\n <p><strong>Vamos enviar-lhe um email</strong> quando houver uma resposta, ou depois de {{late_number_of_days}} dias úteis se o órgão público ainda não tiver \\n respondido.</p>\\n <p>Se você escrever sobre este pedido (em um fórum ou blog, por exemplo), por favor, crie um link para esta página e adicione \\n comentários avisando as pessoas sobre seu pedido.</p>"
msgid "<p>{{site_name}} is currently in maintenance. You can only view existing requests. You cannot make new ones, add followups or annotations, or otherwise change the database.</p> <p>{{read_only}}</p>"
msgstr "<p>{{site_name}} está em manutenção. Você pode apenas visualizar pedidos de informação existentes. Você não pode criar novos, adicionar acompanhamentos ou comentários, ou ainda fazer mudanças na base de dados.</p> <p>{{read_only}}</p>"
@@ -247,13 +215,8 @@ msgstr "<p>{{site_name}} está em manutenção. Você pode apenas visualizar ped
msgid "<small>If you use web-based email or have \"junk mail\" filters, also check your\\nbulk/spam mail folders. Sometimes, our messages are marked that way.</small>\\n</p>"
msgstr "<small>Se você acessa seu e-mail por algum site da web, ou se tiver filtros para conteúdo indesejado, verifique também suas caixas de spam. Às vezes, nossas mensagens podem ser marcadas dessa forma pelo seu provedor.</small> </p>"
-msgid "<span id='follow_count'>%d</span> person is following this authority"
-msgid_plural "<span id='follow_count'>%d</span> people are following this authority"
-msgstr[0] "<span id='follow_count'>%d</span> pessoa está acompanhando esta autoridade"
-msgstr[1] "<span id='follow_count'>%d</span> pessoas estão acompanhando esta autoridade"
-
-msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
-msgstr "<strong>Posso pedir informações sobre mim?</strong> <span class=\"whitespace other\" title=\"Aba\">»» »</span> <a href=\"%s\">Não! (Clique aqui para mais detalhes)</a>"
+msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
+msgstr "<strong>Posso pedir informações sobre mim?</strong> <span class=\"whitespace other\" title=\"Aba\">»» »</span> <a href=\"{{url}}\">Não! (Clique aqui para mais detalhes)</a>"
msgid "<strong><code>commented_by:tony_bowden</code></strong> to search annotations made by Tony Bowden, typing the name as in the URL."
msgstr "<strong><code>commented_by:joao_silva</code></strong> para procurar comentários feitos por João Silva, digitando o nome como aparece na URL."
@@ -311,8 +274,8 @@ msgstr "<strong>Nota:</strong> Você está enviando mensagem para si mesmo, prov
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 "<strong>Atenção:</strong> Vamos enviar um email para você. Siga as instruções para confirmar a alteração o seu e-mail."
-msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"%s\">click here</a>."
-msgstr "<strong>Observação sobre privacidade:</strong> Se você deseja solicitar informações privadas sobre si mesmo, <a href=\"%s\">clique aqui</a> ."
+msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"{{url}}\">click here</a>."
+msgstr "<strong>Observação sobre privacidade:</strong> Se você deseja solicitar informações privadas sobre si mesmo, <a href=\"{{url}}\">clique aqui</a> ."
msgid "<strong>Privacy note:</strong> Your photo will be shown in public on the Internet,\\n wherever you do something on {{site_name}}."
msgstr "<strong>Nota de privacidade:</strong> Sua foto sera exibida publicamente na internet,\\n onde quer que você atue no {{site_name}}."
@@ -353,6 +316,9 @@ msgstr "Uma resposta será enviada <strong>por correio</strong>"
msgid "A strange reponse, required attention by the {{site_name}} team"
msgstr "Resposta estranha, é necessária atenção da equipe do {{site_name}}"
+msgid "A vexatious request"
+msgstr ""
+
msgid "A {{site_name}} user"
msgstr "Um usuário do {{site_name}}"
@@ -362,6 +328,15 @@ msgstr "Sobre você:"
msgid "Act on what you've learnt"
msgstr "Faça algo com o que você aprendeu"
+msgid "Acts as xapian/acts as xapian job"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Action"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Model"
+msgstr ""
+
msgid "Add an annotation"
msgstr "Adicionar um comentário"
@@ -440,11 +415,20 @@ msgstr "Usuário anônimo"
msgid "Anyone:"
msgstr "Qualquer um:"
+msgid "Applies to"
+msgstr ""
+
+msgid "Are we missing a public authority?"
+msgstr "Estamos esquecendo de um órgão público?"
+
+msgid "Are you the owner of any commercial copyright on this page?"
+msgstr "Você é o dono dos direitos autorais dessa página?"
+
msgid "Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries."
msgstr "Solicite apenas documentos ou informações <strong>específicas,</strong>, este site não é adequado para requisições gerais ao governo."
-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 "Na parte inferior da página, escrever uma resposta, tentando persuadir o órgão a escanear o documento ( <a href=\"%s\">mais detalhes</a> )."
+msgid "At the bottom of this page, write a reply to them trying to persuade them to scan it in\\n (<a href=\"{{url}}\">more details</a>)."
+msgstr "Na parte inferior da página, escrever uma resposta, tentando persuadir o órgão a escanear o documento ( <a href=\"{{url}}\">mais detalhes</a> )."
msgid "Attachment (optional):"
msgstr "Anexo (opcional):"
@@ -479,6 +463,12 @@ msgstr "De acordo com a lei, em qualquer circunstância, {{public_body_link}} j
msgid "By law, {{public_body_link}} should normally have responded <strong>promptly</strong> and"
msgstr "De acordo com a lei, {{public_body_link}} deveria ter respondido <strong>prontamente</strong> seu pedido e"
+msgid "Calculated home page"
+msgstr ""
+
+msgid "Can't find the one you want?"
+msgstr "Não conseguiu encontrar o que procurava?"
+
msgid "Cancel a {{site_name}} alert"
msgstr "Cancele um alerta do {{site_name}}"
@@ -644,9 +634,15 @@ msgstr "Atualmente <strong>aguardando uma resposta</strong> de {{public_body_lin
msgid "Date:"
msgstr "Data:"
+msgid "Dear {{name}},"
+msgstr ""
+
msgid "Dear {{public_body_name}},"
msgstr "Prezado(a) {{public_body_name}},"
+msgid "Default locale"
+msgstr ""
+
msgid "Delayed response to your FOI request - "
msgstr "A resposta ao seu pedido de informação está atrasada."
@@ -656,6 +652,9 @@ msgstr "Atrasado."
msgid "Delivery error"
msgstr "Erro de entrega"
+msgid "Destroy {{name}}"
+msgstr ""
+
msgid "Details of request '"
msgstr "Detalhes do pedido"
@@ -663,11 +662,14 @@ msgid "Did you mean: {{correction}}"
msgstr "Você quis dizer: {{correction}}"
msgid "Disclaimer: This message and any reply that you make will be published on the internet. Our privacy and copyright policies:"
-msgstr "Aviso: Esta mensagem e todas as respostas serão publicadas na internet. Leia sobre nossa política de privacidade:"
+msgstr "Aviso: Esta mensagem e todas as respostas enviadas serão publicadas na Internet, por meio da plataforma Queremos Saber http://queremossaber.org.br/. Leia algumas questões sobre acesso a informação para agentes públicos http://queremossaber.org.br/help/officers/."
msgid "Disclosure log"
msgstr ""
+msgid "Disclosure log URL"
+msgstr ""
+
msgid "Don't want to address your message to {{person_or_body}}? You can also write to:"
msgstr "Você não quer enviar sua mensagem para {{person_or_body}}? Você também pode escrever para:"
@@ -686,12 +688,12 @@ msgstr "Fazer download anexo original"
msgid "EIR"
msgstr "RIMA"
+msgid "Edit"
+msgstr ""
+
msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
msgstr "Editar e adicionar <strong>mais detalhes</strong> à mensagem acima, explicando por que você está insatisfeito com a resposta que recebeu."
-msgid "Edit language version:"
-msgstr "Trocar o idioma do site:"
-
msgid "Edit text about you"
msgstr "Alterar o texto sobre você"
@@ -713,8 +715,8 @@ msgstr "Envie-me atualizações deste pedido por e-mail"
msgid "Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>"
msgstr "Informe palavras que você deseja procurar separadas por espaços, por exemplo <strong>gastos educação</strong>"
-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 "Digite sua resposta abaixo. Você pode anexar um arquivo (utilize email ou\\n <a href=\"%s\">fale conosco</a> se precisar de mais informações)."
+msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"{{url}}\">contact us</a> if you need more)."
+msgstr "Digite sua resposta abaixo. Você pode anexar um arquivo (utilize email ou\\n <a href=\"{{url}}\">fale conosco</a> se precisar de mais informações)."
msgid "Environmental Information Regulations"
msgstr "Lei de Acesso à Informação Ambiental"
@@ -731,11 +733,14 @@ msgstr "Histórico de eventos"
msgid "Event history details"
msgstr "Detalhe do histórico de eventos"
-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 "Tudo o que você publicar nesta página será <strong>exibido publicamente</strong> neste site para sempre ( <a href=\"%s\">por quê?</a> )."
+msgid "Event {{id}}"
+msgstr ""
-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 "Tudo o que você publicar nesta página, incluindo <strong>seu nome</strong>, será <strong>exibido publicamente</strong> neste site para sempre ( <a href=\"%s\">por quê?</a> )."
+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=\"{{url}}\">why?</a>)."
+msgstr "Tudo o que você publicar nesta página, incluindo <strong>seu nome</strong>, será <strong>exibido publicamente</strong> neste site para sempre ( <a href=\"{{url}}\">por quê?</a> )."
+
+msgid "Everything that you enter on this page\\n will be <strong>displayed publicly</strong> on\\n this website forever (<a href=\"{{url}}\">why?</a>)."
+msgstr "Tudo o que você publicar nesta página será <strong>exibido publicamente</strong> neste site para sempre ( <a href=\"{{url}}\">por quê?</a> )."
msgid "FOI"
msgstr "acesso à informação"
@@ -743,6 +748,9 @@ msgstr "acesso à informação"
msgid "FOI email address for {{public_body}}"
msgstr "Email de contato para {{public_body}}"
+msgid "FOI request – {{title}}"
+msgstr ""
+
msgid "FOI requests"
msgstr "Pedidos de acesso à informação"
@@ -758,16 +766,16 @@ msgstr "Respostas ao PAI requer acesso de administrador ({{reason}}) - {{title}}
msgid "Failed to convert image to a PNG"
msgstr "Erro ao converter a imagem para PNG"
-msgid "Failed to convert image to the correct size: at %{cols}x%{rows}, need %{width}x%{height}"
-msgstr "Erro ao tentar converter a imagem para o tamanho correto: no %{colunas} x% {linhas}, precisa de um % {largura} x%{altura}"
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
+msgstr "Erro ao tentar converter a imagem para o tamanho correto: no {{cols}}x{{rows}, precisa de um {{width}x{{height}}"
msgid "Filter"
msgstr "Filtro"
-msgid "First, type in the <strong>name of the UK public authority</strong> you'd \\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"%s#%s\">why?</a>)."
+msgid "First, type in the <strong>name of the UK public authority</strong> you'd\\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"{{url}}\">why?</a>)."
msgstr ""
"Primeiro, insira o <strong>nome da autoridade pública brasileira</strong> da qual você gostaria de receber informação. <strong>Por lei, eles são obrigados a responder</strong>\n"
-" (<a href=\"%s#%s\">por quê?</a>)."
+" (<a href=\"{{url}}\">por quê?</a>)."
msgid "Foi attachment"
msgstr "Anexo do pedido"
@@ -847,10 +855,10 @@ msgstr "Devido a um erro desconhecido, não foi possível realizar seu pedido pa
msgid "Forgotten your password?"
msgstr "Esqueceu a sua senha?"
-msgid "Found %d public authority %s"
-msgid_plural "Found %d public authorities %s"
-msgstr[0] "%d órgão público encontrado %s"
-msgstr[1] "%d órgãos públicos encontrados %s"
+msgid "Found {{count}} public authority {{description}}"
+msgid_plural "Found {{count}} public authorities {{description}}"
+msgstr[0] "{{count}} órgão público encontrado {{description}}"
+msgstr[1] "{{count}} órgãos públicos encontrados {{description}}"
msgid "Freedom of Information"
msgstr "Acesso à Informação Pública"
@@ -885,8 +893,8 @@ msgstr "Pedidos de acesso a informação para "
msgid "From"
msgstr "De"
-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 "A partir da página de solicitação, tente responder a uma mensagem específica, em vez de enviar um pedido de acompanhamento geral. Se você precisa fazer um acompanhamento geral, e sabe um endereço de e-mail para que ele chegue ao lugar certo, por favor, <a href=\"%s\">envie para nós</a> ."
+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=\"{{url}}\">send it to us</a>."
+msgstr "A partir da página de solicitação, tente responder a uma mensagem específica, em vez de enviar um pedido de acompanhamento geral. Se você precisa fazer um acompanhamento geral, e sabe um endereço de e-mail para que ele chegue ao lugar certo, por favor, <a href=\"{{url}}\">envie para nós</a> ."
msgid "From:"
msgstr "De:"
@@ -897,6 +905,18 @@ msgstr "DÊ DETALHES SOBRE SUA QUEIXA AQUI"
msgid "Handled by post."
msgstr "Encaminhado por correio."
+msgid "Has tag string/has tag string tag"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Model"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Name"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Value"
+msgstr ""
+
msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
msgstr "Olá! Você pode fazer pedidos de informação no {{country_name}} em {{link_to_website}}"
@@ -921,6 +941,9 @@ msgstr ""
" um momento para lê-lo e contribuir para manter o local organizado para todos?\n"
" Obrigado."
+msgid "Hide request"
+msgstr ""
+
msgid "Holiday"
msgstr "Feriado"
@@ -933,6 +956,9 @@ msgstr "Férias | Descrição"
msgid "Home"
msgstr "Início"
+msgid "Home page"
+msgstr ""
+
msgid "Home page of authority"
msgstr "Site do órgão público"
@@ -981,23 +1007,32 @@ msgstr "Recebi <strong>algumas das informações solicitadas</strong>"
msgid "I've received an <strong>error message</strong>"
msgstr "Recebi uma <strong>mensagem de erro</strong>"
-msgid "If the address is wrong, or you know a better address, please <a href=\"%s\">contact us</a>."
-msgstr "Se o endereço de email estiver errado, ou se você sabe de um outro melhor, <a href=\"%s\">entre em contato conosco</a> ."
+msgid "I've received an error message"
+msgstr ""
+
+msgid "Id"
+msgstr ""
+
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Se o endereço de email estiver errado, ou se você sabe de um outro melhor, <a href=\"{{url}}\">entre em contato conosco</a> ."
+
+msgid "If the error was a delivery failure, and you can find an up to date FOI email address for the authority, please tell us using the form below."
+msgstr ""
msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
msgstr "Se isso estiver errado, ou se você gostaria de enviar uma resposta final para o pedido, ou um e-mail sobre algum outro assunto para {{user}}, então escreva para {{contact_email}} para obter ajuda."
-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 "Se você estiver insatisfeito com a resposta que recebeu do órgão público, você tem o direito de reclamar ( <a href=\"%s\">detalhes</a> )."
+msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"{{url}}\">details</a>)."
+msgstr "Se você estiver insatisfeito com a resposta que recebeu do órgão público, você tem o direito de reclamar ( <a href=\"{{url}}\">detalhes</a> )."
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
-msgstr "Se você continua com problemas, <a href=\"%s\">entre em contato conosco</a>."
+msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Se você continua com problemas, <a href=\"{{url}}\">entre em contato conosco</a>."
-msgid "If you are the requester, then you may <a href=\"%s\">sign in</a> to view the request."
-msgstr "Se você for o solicitante, então pode <a href=\"%s\">entrar</a> para visualizar o pedido."
+msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request."
+msgstr "Se você for o solicitante, então pode <a href=\"{{url}}\">entrar</a> para visualizar o pedido."
-msgid "If you are thinking of using a pseudonym,\\n please <a href=\"%s\">read this first</a>."
-msgstr "Se você está pensando em usar um pseudônimo, por favor, <a href=\"%s\">leia isso primeiro</a> ."
+msgid "If you are thinking of using a pseudonym,\\n please <a href=\"{{url}}\">read this first</a>."
+msgstr "Se você está pensando em usar um pseudônimo, por favor, <a href=\"{{url}}\">leia isso primeiro</a> ."
msgid "If you are {{user_link}}, please"
msgstr "Se você é {{user_link}}, por favor"
@@ -1012,7 +1047,7 @@ msgid "If you can, scan in or photograph the response, and <strong>send us\\n
msgstr "Se você puder, digitalizar ou fotografe a resposta, e <strong>envie-nos uma cópia para publicação no site</strong>."
msgid "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."
-msgstr "Caso você ache esse serviço útil, por favor entre em contato."
+msgstr "Conheça a Lei de Acesso à Informação Pública: http://www.planalto.gov.br/ccivil_03/_ato2011-2014/2011/lei/l12527.htm"
msgid "If you got the email <strong>more than six months ago</strong>, then this login link won't work any\\nmore. Please try doing what you were doing from the beginning."
msgstr "Se você recebeu o e-mail de confirmação <strong>há mais de seis meses,</strong> então este link não funciona mais. Tente começar novamente."
@@ -1038,6 +1073,9 @@ msgstr "Se você já utilizou o {{site_name}} antes"
msgid "If your browser is set to accept cookies and you are seeing this message,\\nthen there is probably a fault with our server."
msgstr "Se seu navegador está configurado para aceitar \"cookies\" e você está vendo esta mensagem, então provavelmente é culpa do nosso servidor."
+msgid "Incoming email address"
+msgstr ""
+
msgid "Incoming message"
msgstr "Caixa de entrada"
@@ -1152,14 +1190,20 @@ msgstr "Pode ser que seu navegador não possa aceitar ou não esteja configurado
msgid "Items matching the following conditions are currently displayed on your wall."
msgstr "Itens correspondentes aos seguintes critérios estão sendo mostradas na sua página."
+msgid "Items sent in last month"
+msgstr ""
+
msgid "Joined in"
msgstr "No site desde "
msgid "Joined {{site_name}} in"
msgstr "Entrou no {{site_name}} em"
-msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)."
-msgstr "Mantenha seu pedido <strong>focado,</strong> você terá mais chances de conseguir o que quer ( <a href=\"%s\">por quê?</a> )."
+msgid "Just one more thing"
+msgstr ""
+
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
+msgstr "Mantenha seu pedido <strong>focado,</strong> você terá mais chances de conseguir o que quer ( <a href=\"{{url}}\">por quê?</a> )."
msgid "Keywords"
msgstr "Palavras-chave"
@@ -1176,9 +1220,27 @@ msgstr "Conte para nós o que você estava fazendo quando apareceu esta mensagem
msgid "Link to this"
msgstr "Link para cá"
+msgid "List all"
+msgstr ""
+
msgid "List of all authorities (CSV)"
msgstr "Lista de todos os órgãos públicos (formato CSV)"
+msgid "Listing FOI requests"
+msgstr ""
+
+msgid "Listing public authorities"
+msgstr ""
+
+msgid "Listing public authorities matching '{{query}}'"
+msgstr ""
+
+msgid "Listing tracks"
+msgstr ""
+
+msgid "Listing users"
+msgstr ""
+
msgid "Log in to download a zip file of {{info_request_title}}"
msgstr "Faça o login para baixar o arquivo compactado de {{info_request_title}}"
@@ -1278,6 +1340,9 @@ msgstr "Nome já foi utilizado"
msgid "New Freedom of Information requests"
msgstr "Novos pedidos de informação"
+msgid "New censor rule"
+msgstr ""
+
msgid "New e-mail:"
msgstr "Novo e-mail:"
@@ -1323,6 +1388,9 @@ msgstr "Nenhum resultado encontrado."
msgid "No similar requests found."
msgstr "Nenhum pedido semelhante encontrado."
+msgid "No tracked things found."
+msgstr ""
+
msgid "Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet."
msgstr "Ninguém realizou nenhum pedido de acesso a informação para {{public_body_name}} através deste site."
@@ -1332,6 +1400,9 @@ msgstr "Nenhum encontrado."
msgid "None made."
msgstr "Nenhum."
+msgid "Not a valid FOI request"
+msgstr ""
+
msgid "Note that the requester will not be notified about your annotation, because the request was published by {{public_body_name}} on their behalf."
msgstr "Repare que o requerente não sera notificado sobre suas anotações porque a requisição foi publicada por {{public_body_name}} em outro nome."
@@ -1377,6 +1448,9 @@ msgstr "Encontramos uma pessoa"
msgid "One public authority found"
msgstr "Encontramos um órgão de governo"
+msgid "Only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL – don't worry about breaking URLs through renaming, as the history is used to redirect"
+msgstr ""
+
msgid "Only requests made using {{site_name}} are shown."
msgstr "Apenas os pedidos feitos por meio do {{site_name}} são mostrados aqui."
@@ -1449,8 +1523,8 @@ msgstr "Adicione categorias ao seu pedido!"
msgid "Please"
msgstr "Por favor"
-msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
-msgstr "Por favor <a href=\"%s\">entre em contato</a> conosco para consertarmos isso."
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
+msgstr "Por favor <a href=\"{{url}}\">entre em contato</a> conosco para consertarmos isso."
msgid "Please <strong>answer the question above</strong> so we know whether the "
msgstr "Por favor, <strong>responda a pergunta acima</strong> para sabermos se o"
@@ -1554,8 +1628,8 @@ msgstr "Por favor, solicitar somente informações referentes às categorias do
msgid "Please select each of these requests in turn, and <strong>let everyone know</strong>\\nif they are successful yet or not."
msgstr "Por favor, selecione uma solicitação por vez e <strong>deixe todo mundo saber</strong> se elas já são bem sucedidas ou não."
-msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature"
-msgstr "Por favor, assine com seu nome ao fim da mensagem, ou altere a sua \"%{signoff}\" assinatura"
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
+msgstr "Por favor, assine com seu nome ao fim da mensagem, ou altere a sua \"{{signoff}}\" assinatura"
msgid "Please sign in as "
msgstr "Faça o login como "
@@ -1566,9 +1640,6 @@ msgstr "Por favor entre ou crie uma nova conta."
msgid "Please type a message and/or choose a file containing your response."
msgstr "Escreva por favor uma mensagem e/ou selecione um arquivo contendo sua resposta."
-msgid "Please use the form below to tell us more."
-msgstr "Utilize o formulário a seguir para maiores informações."
-
msgid "Please use this email address for all replies to this request:"
msgstr "Por favor use esse endereço de email em todas as repostas para este pedido:"
@@ -1659,37 +1730,19 @@ msgstr "Orgãos públicos - {{description}}"
msgid "Public authorities {{start_count}} to {{end_count}} of {{total_count}}"
msgstr "Órgão público {{start_count}} para {{end_count}} de {{total_count}}"
-msgid "Public body"
-msgstr "Órgão público"
-
-msgid "Public body/translation"
-msgstr "Public body/translation"
-
-msgid "PublicBody::Translation|Disclosure log"
+msgid "Public authority – {{name}}"
msgstr ""
-msgid "PublicBody::Translation|First letter"
-msgstr ""
-
-msgid "PublicBody::Translation|Locale"
-msgstr ""
-
-msgid "PublicBody::Translation|Name"
-msgstr ""
-
-msgid "PublicBody::Translation|Notes"
-msgstr ""
+msgid "Public body"
+msgstr "Órgão público"
-msgid "PublicBody::Translation|Publication scheme"
+msgid "Public notes"
msgstr ""
-msgid "PublicBody::Translation|Request email"
-msgstr "PublicBody::Translation|Solicitar email"
-
-msgid "PublicBody::Translation|Short name"
+msgid "Public page"
msgstr ""
-msgid "PublicBody::Translation|Url name"
+msgid "Public page not available"
msgstr ""
msgid "PublicBody|Api key"
@@ -1737,6 +1790,9 @@ msgstr "PublicBody | Versão"
msgid "Publication scheme"
msgstr "Esquema de publicação"
+msgid "Publication scheme URL"
+msgstr ""
+
msgid "Purge request"
msgstr "Remover pedido"
@@ -1794,6 +1850,9 @@ msgstr "Apresentar recurso"
msgid "Request an internal review from {{person_or_body}}"
msgstr "Enviar um recurso para {{person_or_body}}"
+msgid "Request email"
+msgstr ""
+
msgid "Request has been removed"
msgstr "Pedido removido com sucesso"
@@ -1884,14 +1943,17 @@ msgstr "Resultados da busca"
msgid "Search the site to find what you were looking for."
msgstr "Pesquise no site para encontrar o que você está procurando."
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
-msgstr[0] "Pesquisar %d Pedidos de Acesso à Informação para %s"
-msgstr[1] "Pesquisar %d Pedidos de Acesso à Informação feitos a %s"
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests made to {{public_body_name}}"
+msgstr[0] "Pesquisar {{count}} Pedidos de Acesso à Informação para {{public_body_name}}"
+msgstr[1] "Pesquisar {{count}} Pedidos de Acesso à Informação feitos a {{public_body_name}}"
msgid "Search your contributions"
msgstr "Buscar suas contribuições"
+msgid "See bounce message"
+msgstr ""
+
msgid "Select one to see more information about the authority."
msgstr "Selecionar para ver mais informações sobre este órgão público."
@@ -1925,6 +1987,9 @@ msgstr "Enviar pedido"
msgid "Set your profile photo"
msgstr "Definir sua foto do perfil"
+msgid "Short name"
+msgstr ""
+
msgid "Short name is already taken"
msgstr "Nome de usuário já cadastrado"
@@ -2018,6 +2083,9 @@ msgstr "Enviar"
msgid "Submit status"
msgstr "Enviar situação"
+msgid "Submit status and send message"
+msgstr ""
+
msgid "Subscribe to blog"
msgstr "Assine o blog"
@@ -2039,6 +2107,9 @@ msgstr "Tabela de situações"
msgid "Table of varieties"
msgstr "Tabela de variedades"
+msgid "Tags"
+msgstr ""
+
msgid "Tags (separated by a space):"
msgstr "Tags (separadas por um espaço):"
@@ -2066,6 +2137,9 @@ msgstr "Obrigado por atualizar esta solicitação!"
msgid "Thank you for updating your profile photo"
msgstr "Obrigado por atualizar sua foto do perfil"
+msgid "Thank you! We'll look into what happened and try and fix it up."
+msgstr ""
+
msgid "Thanks for helping - your work will make it easier for everyone to find successful\\nresponses, and maybe even let us make league tables..."
msgstr "Obrigado por ajudar, seu trabalho tornará mais fácil para todo mundo achar respostas com sucesso, e talvez até mesmo permitir que nos façamos tabelas classificativas..."
@@ -2137,18 +2211,18 @@ msgstr "Esse pedido foi <strong>atendido</strong>."
msgid "The request was refused by the public authority"
msgstr "O pedido foi recusado pela autoridade pública"
-msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"%s\">contact us</a> if you have any questions."
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
msgstr ""
"O pedido . Please <a\n"
-" href=\"%s\">contact us</a> if you have any questions."
+" href=\"{{url}}\">contact us</a> if you have any questions."
msgid "The requester has abandoned this request for some reason"
msgstr "O solicitante abandonou esse pedido por alguma razão"
-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"
+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 "A resposta para esse pedido <strong>atrasou</strong>. Você pode afirmar que, por lei, o orgão deveria ter respondido e"
-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"
+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 "A resposta para seu pedido está <strong>super atrasada</strong>. Voc~e pode afirmar que, por \\n lei, sob qualquer circunstância, o poder público já deveria\\n ter respondido"
msgid "The search index is currently offline, so we can't show the Freedom of Information requests that have been made to this authority."
@@ -2157,6 +2231,9 @@ msgstr "O index de busca está temporariamente offline, então não podemos exib
msgid "The search index is currently offline, so we can't show the Freedom of Information requests this person has made."
msgstr "A busca não esta funcionando, então nós não podemos mostrar os pedidos de acesso a informação que essa pessoa fez."
+msgid "The {{site_name}} team."
+msgstr ""
+
msgid "Then you can cancel the alert."
msgstr "Então você pode cancelar o alerta."
@@ -2232,17 +2309,17 @@ msgstr "Então seu comentário sobre {{info_request_title}} será publicado."
msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
msgstr "Existem {{count}} novas anotações no seu {{info_request}} pedido de informação. Clique no link para saber o que escrito sobre o seu pedido."
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
-msgstr[0] "Há %d pessoa acompanhando este pedido"
-msgstr[1] "Há %d pessoas acompanhando este pedido"
-
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 "Há <strong>mais de uma pessoa</strong> que utiliza este site e possui este nome.\\n Um deles é exibido abaixo, você deve definir um diferente:"
msgid "There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>."
msgstr "Há um limite de pedidos de informação que você pode fazer em um dia, porque não queremos que as autoridades públicas sejam bombardeadas por um número grande de pedidos inapropriados. Se você considera ter uma boa razão para seu limite ser ampliado, por favor <a href='{{help_contact_path}}'>nos contate</a>."
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
+msgstr[0] "Há {{count}} pessoa acompanhando este pedido"
+msgstr[1] "Há {{count}} pessoas acompanhando este pedido"
+
msgid "There was a <strong>delivery error</strong> or similar, which needs fixing by the {{site_name}} team."
msgstr "Ocorreu um <strong>erro no envio</strong> ou algo parecido, que precisa ser consertado pela equipe do {{site_name}}."
@@ -2281,8 +2358,8 @@ msgstr "O que você está seguindo"
msgid "This authority no longer exists, so you cannot make a request to it."
msgstr "Este órgão de governo não existe, portanto você não pode criar um pedido de informação para ele."
-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 "Este comentário foi ocultado. Veja as anotações para descobrir o motivo. Se você é o solicitante, então pode <a href=\"%s\">entrar</a> para visualizar a resposta."
+msgid "This comment has been hidden. See annotations to\\n find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
+msgstr "Este comentário foi ocultado. Veja as anotações para descobrir o motivo. Se você é o solicitante, então pode <a href=\"{{url}}\">entrar</a> para visualizar a resposta."
msgid "This covers a very wide spectrum of information about the state of\\n the <strong>natural and built environment</strong>, such as:"
msgstr "Este pedido abrange um espectro muito amplo de informações sobre o estado do <strong>meio-ambiente, </strong> tais como:"
@@ -2299,11 +2376,14 @@ msgstr "Esta é a versão HTML de um anexo ao pedido de informação"
msgid "This is because {{title}} is an old request that has been\\nmarked to no longer receive responses."
msgstr "Isso porque {{title}} é um pedido antigo que foi marcado para não receber mais respostas."
+msgid "This is the first version."
+msgstr ""
+
msgid "This is your own request, so you will be automatically emailed when new responses arrive."
msgstr "Esse é o seu próprio pedido, então você vai receber um email automaticamente quando uma nova resposta chegar."
-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 "Esta mensagem foi ocultada. Veja as anotações para \\n\t\t\t\t\t\tdescobrir o porquê. Se você é o requerente, deve <a href=\"%s\">logar</a> para visualizar a resposta."
+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=\"{{url}}\">sign in</a> to view the response."
+msgstr "Esta mensagem foi ocultada. Veja as anotações para \\n\t\t\t\t\t\tdescobrir o porquê. Se você é o requerente, deve <a href=\"{{url}}\">logar</a> para visualizar a resposta."
msgid "This particular request is finished:"
msgstr "Esse pedido foi finalizado:"
@@ -2311,19 +2391,19 @@ msgstr "Esse pedido foi finalizado:"
msgid "This person has made no Freedom of Information requests using this site."
msgstr "Essa pessoa não fez nenhum pedido de acesso a informação usando este site."
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
-msgstr[0] "%d pedidos dessa pessoa."
-msgstr[1] "%d pedidos dessa pessoa."
-
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
-msgstr[0] "%d comentário dessa pessoa."
-msgstr[1] "%d comentários dessa pessoa."
-
msgid "This person's annotations"
msgstr "Comentários dessa pessoa."
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
+msgstr[0] "{{count}} pedidos dessa pessoa."
+msgstr[1] "{{count}} pedidos dessa pessoa."
+
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
+msgstr[0] "{{count}} comentário dessa pessoa."
+msgstr[1] "{{count}} comentários dessa pessoa."
+
msgid "This request <strong>requires administrator attention</strong>"
msgstr "Esse pedido <strong>precisa de atenção dos administradores</strong>"
@@ -2345,8 +2425,8 @@ msgstr "Este requirimento foi <strong>indicado</strong> pendente de revisão pel
msgid "This request has been <strong>withdrawn</strong> by the person who made it.\\n There may be an explanation in the correspondence below."
msgstr "Este pedido foi <strong>removido</strong> pela pessoa que o fez. Pode ser que exista uma explicação na troca de emails abaixo."
-msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"%s\">contact us</a>."
-msgstr "Esse pedido foi marcado para revisão pelos administradores, que ainda não esconderam-no. Se você acha que ele deveria ser escondido, por favor <a href=\"%s\">entre em contato</a>."
+msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Esse pedido foi marcado para revisão pelos administradores, que ainda não esconderam-no. Se você acha que ele deveria ser escondido, por favor <a href=\"{{url}}\">entre em contato</a>."
msgid "This request has been reported for administrator attention"
msgstr "Esse pedido foi encaminhado para avaliação do administrador"
@@ -2360,19 +2440,22 @@ msgstr "Esta requisição teve uma resposta atípica, e <strong>requer atenção
msgid "This request has prominence 'hidden'. You can only see it because you are logged\\n in as a super user."
msgstr "Esse pedido esta marcado como 'escondido'. Você só pode vê-lo porque esta conectado como um administrador."
-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 "Esse pedido esta escondido, apenas quem pediu pode ver. Por favor <a href=\"%s\">contate-nos</a> se você não tem certeza de porque."
+msgid "This request is hidden, so that only you the requester can see it. Please\\n <a href=\"{{url}}\">contact us</a> if you are not sure why."
+msgstr "Esse pedido esta escondido, apenas quem pediu pode ver. Por favor <a href=\"{{url}}\">contate-nos</a> se você não tem certeza de porque."
msgid "This request is still in progress:"
msgstr "Esse pedido ainda não acabou:"
+msgid "This request requires administrator attention"
+msgstr ""
+
msgid "This request was not made via {{site_name}}"
msgstr "Este pedido não foi feito através de {{site_name}}"
-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."
+msgid "This response has been hidden. See annotations to find out why.\\n If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
"Essa resposta foi ocultada. Veja as anotações para descobrir por quê.\n"
-" Se você for o solicitante, então pode <a href=\"%s\">entrar</a> para visualizar a resposta."
+" Se você for o solicitante, então pode <a href=\"{{url}}\">entrar</a> para visualizar a resposta."
msgid "This table shows the technical details of the internal events that happened\\nto this request on {{site_name}}. This could be used to generate information about\\nthe speed with which authorities respond to requests, the number of requests\\nwhich require a postal response and much more."
msgstr ""
@@ -2532,10 +2615,10 @@ msgstr "Tipo inesperado de resultado da busca"
msgid "Unexpected search result type "
msgstr "Tipo inesperado de resultado da busca "
-msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"%s\">contact us</a> to sort it out."
+msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"{{url}}\">contact us</a> to sort it out."
msgstr ""
"Infelizmente nós não sabemos o email de contato para esse orgão, então não podemos validar isso.\n"
-"Por favor <a href=\"%s\">entre em contato</a> para corrigirmos isso."
+"Por favor <a href=\"{{url}}\">entre em contato</a> para corrigirmos isso."
msgid "Unfortunately, we do not have a working {{info_request_law_used_full}}\\naddress for"
msgstr "Infelizmente, nós não temos um email válido de "
@@ -2570,6 +2653,9 @@ msgstr "Usuário"
msgid "User info request sent alert"
msgstr "Requisição de informação de usuário mandou alerta"
+msgid "User – {{name}}"
+msgstr ""
+
msgid "UserInfoRequestSentAlert|Alert type"
msgstr "UserInfoRequestSentAlert | Tipo de alerta"
@@ -2624,6 +2710,9 @@ msgstr "Usuário | Salt"
msgid "User|Url name"
msgstr "Usuário | Url"
+msgid "Version {{version}}"
+msgstr ""
+
msgid "View FOI email address"
msgstr "Ver o endereço de email do pedido de informação"
@@ -2663,6 +2752,12 @@ msgstr "Aguardando resposta do órgão público"
msgid "Was the response you got to your FOI request any good?"
msgstr "A resposta ao seu pedido de acesso à informação foi satisfatória?"
+msgid "We consider it is not a valid FOI request, and have therefore hidden it from other users."
+msgstr ""
+
+msgid "We consider it to be vexatious, and have therefore hidden it from other users."
+msgstr ""
+
msgid "We do not have a working request email address for this authority."
msgstr "Nós não temos um email válido desse orgão."
@@ -2672,8 +2767,8 @@ msgstr "Nós não temos um email do {{public_body_name}} para fazer pedidos de a
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=\"{{url}}\">sign in</a> and let everyone know."
msgstr "Nós ainda não sabemos se esta última resposta contém ou não a informação que foi pedida. Se você for {{user_link}} por favor <a href=\"{{url}}\">acesse</a> e deixe todos saberem."
-msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"%s\">details</a>). "
-msgstr "Nós não vamos revelar o seu endereço de e-mail para ninguém, a menos que você ou a Justiça nos mandem fazer isso ( <a href=\"%s\">detalhes</a> )."
+msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"{{url}}\">details</a>). "
+msgstr "Nós não vamos revelar o seu endereço de e-mail para ninguém, a menos que você ou a Justiça nos mandem fazer isso ( <a href=\"{{url}}\">detalhes</a> )."
msgid "We will not reveal your email address to anybody unless you\\nor the law tell us to."
msgstr "Nós não iremos revelar o seu endereço de email para ninguém a menos que você ou a lei nos solicite."
@@ -2714,8 +2809,8 @@ msgstr "Quando você chegar lá, favor atualizar a situação se a resposta tive
msgid "When you receive the paper response, please help\\n others find out what it says:"
msgstr "Quando receber a resposta em papel, por favor contribua para que outros saibam o que ela diz:"
-msgid "When you're done, <strong>come back here</strong>, <a href=\"%s\">reload this page</a> and file your new request."
-msgstr "Quando tiver concluído, <strong>retorne aqui</strong>, <a href=\"%s\">recarregue esta página</a> e registre sua nova requisição."
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
+msgstr "Quando tiver concluído, <strong>retorne aqui</strong>, <a href=\"{{url}}\">recarregue esta página</a> e registre sua nova requisição."
msgid "Which of these is happening?"
msgstr "Qual desses está ocorrendo?"
@@ -2790,7 +2885,7 @@ msgid "You can only request information about the environment from this authorit
msgstr "Você pode apenas ver pedidos de informação sobre o meio-ambiente feitos para essa entidade."
msgid "You have a new response to the {{law_used_full}} request "
-msgstr "Você tem uma nova resposta para o seu pedido de acesso à informação."
+msgstr "Você tem uma nova resposta para o seu pedido de {{law_used_full}}"
msgid "You have found a bug. Please <a href=\"{{contact_url}}\">contact us</a> to tell us about the problem"
msgstr "Você encontrou um bug. Por favor, <a href=\"{{contact_url}}\">entre em contato conosco</a> para nos informar sobre o problema."
@@ -2819,8 +2914,8 @@ msgstr "Você sabe o que causou o erro e pode <strong>sugerir uma solução</str
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 "Você pode<strong>incluir anexos</strong>. Se preferir adicionar um arquivo \\nmuito grande para emails, use o formulário abaixo."
-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 "Talvez você consiga achar um email no site deles ou telefonando e perguntando. Se você conseguir encontrar, por favor <a href=\"%s\">envie para nós</a>."
+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=\"{{url}}\">send it to us</a>."
+msgstr "Talvez você consiga achar um email no site deles ou telefonando e perguntando. Se você conseguir encontrar, por favor <a href=\"{{url}}\">envie para nós</a>."
msgid "You may be able to find\\none on their website, or by phoning them up and asking. If you manage\\nto find one, then please <a href=\"{{help_url}}\">send it to us</a>."
msgstr "Você pode encontrar no \\nsite deles ou telefonando e perguntando. Se conseguir, por favor\\n <a href=\"{{help_url}}\">envie para nós</a>."
@@ -2858,6 +2953,9 @@ msgstr "Você irá receber atualizações por email sobre {{track_description}}.
msgid "You will only get an answer to your request if you follow up\\nwith the clarification."
msgstr "Você só vai receber uma resposta para o seu pedido se enviar uma mensagem com as explicações adicionais."
+msgid "You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further."
+msgstr ""
+
msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
msgstr "Você está dentro. <a href=\"#\" id=\"send-request\">Continue enviando seu pedido</a>"
@@ -2870,23 +2968,13 @@ msgstr "Você não está acompanhando nada."
msgid "You've now cleared your profile photo"
msgstr "Você apagou sua foto do perfil"
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
-msgstr[0] "Seu %d pedido"
-msgstr[1] "Seus %d pedidos"
-
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
-msgstr[0] "Seu %d comentário"
-msgstr[1] "Seus %d comentários"
-
-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>."
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
msgstr ""
"Seu <strong>nome vai aparecer publicamente</strong> \n"
-" (<a href=\"%s\">porque?</a>)\n"
+" (<a href=\"{{why_url}}\">porque?</a>)\n"
" neste website e em mecanismos de busca. Se você\n"
" estiver pensando em usar um pseudônimo, por favor \n"
-" <a href=\"%s\">leia isso antes</a>."
+" <a href=\"{{help_url}}\">leia isso antes</a>."
msgid "Your annotations"
msgstr "Seus comentários"
@@ -2897,8 +2985,8 @@ msgstr "Seus dados, incluindo endereço de email (não foram fornecidos a ningu
msgid "Your e-mail:"
msgstr "Seu e-mail:"
-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 "Sua mensagem não foi enviada por que esse pedido foi interrompido para impedir spam. Por favor <a href=\"%s\">entre em contato</a> se você realmente quer enviar essa mensagem."
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
+msgstr "Sua mensagem não foi enviada por que esse pedido foi interrompido para impedir spam. Por favor <a href=\"{{url}}\">entre em contato</a> se você realmente quer enviar essa mensagem."
msgid "Your follow up message has been sent on its way."
msgstr "Sua mensagem foi encaminhada."
@@ -2921,8 +3009,8 @@ msgstr "Suas mensagens aparecerão em <strong>mecanismos de busca</strong>"
msgid "Your name and annotation will appear in <strong>search engines</strong>."
msgstr "Seu nome e anotações aparecerão em <strong>mecanismos de busca</strong>."
-msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"%s\">details</a>)."
-msgstr "Seu <strong>nome, pedido e quaisquer respostas vão aparecer publicamente</strong> (<a href=\"%s\">porque?</a>) neste website e em mecanismos de busca."
+msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"{{url}}\">details</a>)."
+msgstr "Seu <strong>nome, pedido e quaisquer respostas vão aparecer publicamente</strong> (<a href=\"{{url}}\">porque?</a>) neste website e em mecanismos de busca."
msgid "Your name:"
msgstr "Seu nome:"
@@ -2941,6 +3029,12 @@ msgstr ""
"Sua foto será exibida em público <strong>na internet</strong>,\\n \n"
"em qualquer ação que fizer no {{site_name}}."
+msgid "Your request '{{request}}' at {{url}} has been reviewed by moderators."
+msgstr ""
+
+msgid "Your request on {{site_name}} hidden"
+msgstr ""
+
msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
msgstr "Sua requisição foi nomeada {{info_request}}. Permitir que todos saibam onde você obteve a informação irá nos ajudar a manter as abas"
@@ -2950,12 +3044,22 @@ msgstr "Seu pedido:"
msgid "Your response to an FOI request was not delivered"
msgstr "Sua resposta a um PAI não foi enviada"
-msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"%s\">read why</a> and answers to other questions."
-msgstr "Sua resposta irá <strong>aparecer na Internet</strong>, <a href=\"%s\">leia por que</a> e respostas para outras perguntas."
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
+msgstr "Sua resposta irá <strong>aparecer na Internet</strong>, <a href=\"{{url}}\">leia por que</a> e respostas para outras perguntas."
msgid "Your thoughts on what the {{site_name}} <strong>administrators</strong> should do about the request."
msgstr "Sua opnião sobre o que os <strong>administradores</strong> do {{site_name}} deveriam fazer com o pedido."
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
+msgstr[0] "Seu {{count}} pedido"
+msgstr[1] "Seus {{count}} pedidos"
+
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
+msgstr[0] "Seu {{count}} comentário"
+msgstr[1] "Seus {{count}} comentários"
+
msgid "Your {{site_name}} email alert"
msgstr "Seu alerta de mensagem do {{site_name}}"
@@ -2965,6 +3069,9 @@ msgstr "Atenciosamente,"
msgid "Yours sincerely,"
msgstr "Grato(a),"
+msgid "Yours,"
+msgstr ""
+
msgid "[FOI #{{request}} email]"
msgstr ""
@@ -2983,6 +3090,9 @@ msgstr "um resumo de uma linha sobre a informação que você esta pedindo, e.x.
msgid "admin"
msgstr "administrador"
+msgid "alaveteli_foi:The software that runs {{site_name}}"
+msgstr ""
+
msgid "all requests"
msgstr "todos os pedidos"
@@ -3016,6 +3126,9 @@ msgstr "qualquer coisa"
msgid "are long overdue."
msgstr "estouraram bastante o prazo."
+msgid "at"
+msgstr ""
+
msgid "authorities"
msgstr "órgãos de governo"
@@ -3028,6 +3141,9 @@ msgstr "começando com ‘{{first_letter}}’"
msgid "between two dates"
msgstr "entre duas datas"
+msgid "but followupable"
+msgstr ""
+
msgid "by"
msgstr "por"
@@ -3109,15 +3225,21 @@ msgstr "mensagens de órgãos publicos"
msgid "messages from users"
msgstr "mensagens de usuários"
+msgid "move..."
+msgstr ""
+
msgid "no later than"
msgstr "até o dia"
-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 "não existe mais. Se você está tentanto fazer\\n a partir da página de solicitação, tente responder a uma mensagem em específico em vez de enviar\\n uma resposta geral. Se você precisa fazer um resposta geral, e sabe\\n qual o email correto, por favor <a href=\"%s\">send it to us</a>."
+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=\"{{url}}\">send it to us</a>."
+msgstr "não existe mais. Se você está tentanto fazer\\n a partir da página de solicitação, tente responder a uma mensagem em específico em vez de enviar\\n uma resposta geral. Se você precisa fazer um resposta geral, e sabe\\n qual o email correto, por favor <a href=\"{{url}}\">send it to us</a>."
msgid "normally"
msgstr " "
+msgid "not requestable due to: {{reason}}"
+msgstr ""
+
msgid "please sign in as "
msgstr "faça o login como"
@@ -3139,6 +3261,9 @@ msgstr "enviar uma mensagem de acompanhamento"
msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
msgstr "enviado para {{public_body_name}} por {{info_request_user}} em {{date}}."
+msgid "set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA"
+msgstr ""
+
msgid "show quoted sections"
msgstr "mostrar citações"
@@ -3160,6 +3285,11 @@ msgstr "que você fez para"
msgid "the main FOI contact address for {{public_body}}"
msgstr "contato do {{public_body}}"
+#. This phrase completes the following sentences:
+#. Request an internal review from...
+#. Send a public follow up message to...
+#. Send a public reply to...
+#. Don't want to address your message to... ?
msgid "the main FOI contact at {{public_body}}"
msgstr "{{public_body}}"
@@ -3208,9 +3338,32 @@ msgstr "informações úteis."
msgid "users"
msgstr "usuários"
+msgid "what's that?"
+msgstr "o que é isso?"
+
msgid "{{count}} FOI requests found"
msgstr "{{count}} pedidos de acesso a informação encontrados"
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] "{{count}} Pedido de Acesso à Informação solicitado para {{public_body_name}}"
+msgstr[1] "{{count}} Pedidos de Acesso à Informação solicitados para {{public_body_name}}"
+
+msgid "{{count}} person is following this authority"
+msgid_plural "{{count}} people are following this authority"
+msgstr[0] "{{count}} pessoa está acompanhando esta autoridade"
+msgstr[1] "{{count}} pessoas estão acompanhando esta autoridade"
+
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
+msgstr[0] "{{count}} pedido"
+msgstr[1] "{{count}} pedidos"
+
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
+msgstr[0] "{{count}} pedido realizado."
+msgstr[1] "{{count}} pedidos realizados."
+
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 "{{existing_request_user}} já fez um pedido parecido com o seu em {{date}}. Você pode ver o <a href=\"{{existing_request}}\">pedido existente</a> , ou editar os detalhes abaixo para fazer um pedido semelhante."
@@ -3218,10 +3371,10 @@ msgid "{{info_request_user_name}} only:"
msgstr "{{info_request_user_name}} apenas:"
msgid "{{law_used_full}} request - {{title}}"
-msgstr "{{law_used_full}} pedido - {{title}}"
+msgstr "Pedido de {{law_used_full}} - {{title}}"
msgid "{{law_used_full}} request GQ - {{title}}"
-msgstr "{{law_used_full}} request GQ - {{title}}"
+msgstr ""
msgid "{{law_used}} requests at {{public_body}}"
msgstr "Pedidos de Informação a(o) {{public_body}}"
@@ -3268,6 +3421,9 @@ msgstr "{{site_name}} envia novos pedidos para <strong>{{request_email}}</strong
msgid "{{site_name}} users have made {{number_of_requests}} requests, including:"
msgstr "Os usuários do {{site_name}} fizeram {{number_of_requests}} pedidos, incluindo:"
+msgid "{{thing_changed}} was changed from <code>{{from_value}}</code> to <code>{{to_value}}</code>"
+msgstr ""
+
msgid "{{title}} - a Freedom of Information request to {{public_body}}"
msgstr "{{title}} - um pedido de acesso à informação para {{public_body}}"
@@ -3284,7 +3440,7 @@ msgid "{{user_name}} added an annotation"
msgstr "{{user_name}} adicionou um comentário"
msgid "{{user_name}} has annotated your {{law_used_short}} \\nrequest. Follow this link to see what they wrote."
-msgstr "{{user_name}} fez anotações em seu pedido\\n{{law_used_short}}. Siga este link para saber o que foi escrito."
+msgstr "{{user_name}} fez anotações em seu pedido de\\n{{law_used_short}}. Siga este link para saber o que foi escrito."
msgid "{{user_name}} has used {{site_name}} to send you the message below."
msgstr "{{user_name}} usou o {{site_name}} para enviar-lhe a mensagem abaixo."
@@ -3302,4 +3458,4 @@ msgid "{{user}} ({{user_admin_link}}) made this {{law_used_full}} request (<a hr
msgstr "{{user}} ({{user_admin_link}}) fez esse pedido (<a href=\"{{request_admin_url}}\">admin</a>) para {{public_body_link}} (<a href=\"{{public_body_admin_url}}\">admin</a>)"
msgid "{{user}} made this {{law_used_full}} request"
-msgstr "{{user}} fez esse pedido de informação"
+msgstr "{{user}} fez esse pedido de {{law_used_full}}"
diff --git a/locale/ro_RO/app.po b/locale/ro_RO/app.po
index c12b00c5d..e5c45e3d3 100644
--- a/locale/ro_RO/app.po
+++ b/locale/ro_RO/app.po
@@ -3,18 +3,28 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# <andreicristianpetcu@gmail.com>, 2012.
-# <copyratul@gmail.com>, 2012.
-# Rodica Ardelean <rodxy@yahoo.com>, 2013.
-# <rodxy@yahoo.com>, 2013.
+# andreicristianpetcu <andreicristianpetcu@gmail.com>, 2012-2013
+# andreicristianpetcu <andreicristianpetcu@gmail.com>, 2013
+# andreicristianpetcu <andreicristianpetcu@gmail.com>, 2012
+# CoPyratul <copyratul@gmail.com>, 2012
+# CoPyratul <copyratul@gmail.com>, 2012
+# yozness <cosmin@funkycitizens.org>, 2013
+# elena.calistru <calistru.elena@gmail.com>, 2013
+# elena.calistru <calistru.elena@gmail.com>, 2013
+# Paul Chioveanu <paul_kimmy@yahoo.com>, 2013
+# Paul Chioveanu <paul_kimmy@yahoo.com>, 2013
+# rodicaa <rodxy@yahoo.com>, 2013
+# rodicaa <rodxy@yahoo.com>, 2013
+# rodicaa <rodxy@yahoo.com>, 2013
+# yozness <cosmin@funkycitizens.org>, 2013
msgid ""
msgstr ""
"Project-Id-Version: alaveteli\n"
"Report-Msgid-Bugs-To: http://github.com/sebbacon/alaveteli/issues\n"
-"POT-Creation-Date: 2012-12-18 10:11+0000\n"
-"PO-Revision-Date: 2013-01-22 22:02+0000\n"
-"Last-Translator: rodicaa <rodxy@yahoo.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"POT-Creation-Date: 2013-05-30 09:46+0100\n"
+"PO-Revision-Date: 2013-05-30 08:54+0000\n"
+"Last-Translator: louisecrow <louise@mysociety.org>\n"
+"Language-Team: Romanian (Romania) (http://www.transifex.com/projects/p/alaveteli/language/ro_RO/)\n"
"Language: ro_RO\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -24,62 +34,62 @@ msgstr ""
msgid " This will appear on your {{site_name}} profile, to make it\\n easier for others to get involved with what you're doing."
msgstr " Aceasta o să apară pe profilul tău de pe situl {{site_name}} , pentru a fi mai ușor altora să se implice în ceea ce faci."
-msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)"
-msgstr " (<strong> fara politici de garantare </strong> cititi politica noastra de <a href=\"%s\">moderare</a>)"
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
+msgstr " (<strong>Te rugăm să eviţi discuţiile aprinse pe teme politice</strong> - vezi <a href=\"{{url}}\">politica noastra de moderare</a>)"
msgid " (<strong>patience</strong>, especially for large files, it may take a while!)"
-msgstr " (<strong>rabdare</strong>, in special pentru fisierele mari, ar putea dura ceva!)"
+msgstr " (<strong>răbdare</strong>, s-ar putea să dureze puţin, mai ales dacă fişierul e mare!)"
msgid " (you)"
-msgstr "(tu)"
+msgstr "(dvs.)"
msgid " - view and make Freedom of Information requests"
-msgstr "Vizializare si emitere cereri de \"Libertatea Informatilor\""
+msgstr "- vezi cum arată şi trimite o solicitare de acces la informaţii"
msgid " - wall"
-msgstr ""
+msgstr " - perete"
msgid " <strong>Note:</strong>\\n We will send you an email. Follow the instructions in it to change\\n your password."
-msgstr ""
+msgstr " <strong>Notă:</strong>\\n Vă vom trimite un email. Urmaţi instrucţiunile din acesta pentru a modifica \\n parola dvs.."
msgid " <strong>Privacy note:</strong> Your email address will be given to"
-msgstr " <strong> Nota de confidentialitate:</strong> Adresa dvs. de email va fi trimisa catre"
+msgstr " <strong>Notă de confidenţialitate:</strong> Adresa ta de email va fi văzută şi de către"
msgid " <strong>Summarise</strong> the content of any information returned. "
-msgstr " <strong>Rezumati </strong> continutului oricarei informatii returnate. "
+msgstr " <strong>Rezumă</strong> conţinutul oricărei informaţii returnate. "
msgid " Advise on how to <strong>best clarify</strong> the request."
-msgstr " Sfaturi despre cum sa <strong>exprimati cat mai clar </strong> cererea."
+msgstr "Sfătuieşte-ne cum să <strong>facem solicitarea cât mai clară </strong>."
msgid " Ideas on what <strong>other documents to request</strong> which the authority may hold. "
-msgstr " Idei despre ce ong>alte documente sa solicitati</strong> si ce autoritate le poate detine. "
+msgstr "<strong>Alte documente</strong> pe care le poţi solicita de la aceeaşi autoritate."
-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 ""
+msgid " If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\\n You may be able to find the address on their website, or by phoning them up and asking."
+msgstr " Dacă cunoaşteţi adresa ce trebuie utilizată, atunci vă rugăm să <a href=\"{{url}}\">ne-o trimiteţi</a>.\\n Aţi putea găsi adresa pe siteul lor, sau telefonându-le şi întrebând."
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 ""
+msgstr "Include link-uri relevante, precum cele către pagina campaniei, blogul tău sau către un cont de Twitter. Acestea vor fi accesibile direct din site. \\n e.g."
msgid " Link to the information requested, if it is <strong>already available</strong> on the Internet. "
-msgstr " Link-ul catre informatia ceruta, daca este <strong> disponibila</strong> pe Internet. "
+msgstr " Link-ul către informaţia cerută, dacă aceasta e<strong>deja disponibilă</strong> pe Internet. "
msgid " Offer better ways of <strong>wording the request</strong> to get the information. "
-msgstr " Ofera cai mai bune <strong>de a formula cererea</strong> pentru a obtine informatia. "
+msgstr "Sugerează-ne <strong>cum putem formula mai bine cererea</strong> pentru a obţine informaţia dorită."
msgid " Say how you've <strong>used the information</strong>, with links if possible."
-msgstr " Spuneti cum ati <strong> utilizat informatiile</strong>, cu link-uri, daca este posibil."
+msgstr " Spune-ne <strong> cum te-ai folosite de informaţiile primite</strong>, cu link-uri dacă e posibil."
msgid " Suggest <strong>where else</strong> the requester might find the information. "
-msgstr " Sugerati <strong>unde altundeva</strong> solicitantul ar putea gasi aceasta informatie. "
+msgstr " Sugerează <strong>un alt loc</strong> în care solicitantul ar putea găsi această informaţie. "
msgid " What are you investigating using Freedom of Information? "
-msgstr "De ce investigati utilizare Libertatii de Informare?"
+msgstr "Ce urmăreşti să afli prin solicitările de acces la informaţii?"
msgid " You are already being emailed updates about the request."
-msgstr "Vi s-au trimis deja prin e-mail actualizari referitoare la cerere "
+msgstr "Ţi s-au trimis deja prin e-mail actualizări referitoare la solicitare."
msgid " You will also be emailed updates about the request."
-msgstr "Vei primi prin email informări cu noutăți cu privire la cererea ta."
+msgstr "Vei primi prin email noutăți legate de cererea ta."
msgid " made by "
msgstr "făcut de"
@@ -91,25 +101,7 @@ msgid " when you send this message."
msgstr "când trimiți acest mesaj."
msgid "\"Hello! We have an <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">important message</a> for visitors outside {{country_name}}\""
-msgstr ""
-
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
-msgstr[0] "%dcerere Libertatea de Informare pana la %s"
-msgstr[1] "%d cereri Libertatea de Informare pana la %s"
-msgstr[2] "%d cereri Libertatea de Informare pana la %s "
-
-msgid "%d request"
-msgid_plural "%d requests"
-msgstr[0] "%d cerere"
-msgstr[1] "%d cereri"
-msgstr[2] "%d cereri"
-
-msgid "%d request made."
-msgid_plural "%d requests made."
-msgstr[0] "%d cerere facuta."
-msgstr[1] "%d cereri facute."
-msgstr[2] "%d cereri facute."
+msgstr "\"Salut! Avem un <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">mesaj important</a> pentru vizitatorii din afara {{country_name}}\""
msgid "'Crime statistics by ward level for Wales'"
msgstr "'Crime statistics by ward level for Wales'"
@@ -121,11 +113,14 @@ msgid "'{{link_to_authority}}', a public authority"
msgstr "'{{link_to_authority}}', o autoritate publică"
msgid "'{{link_to_request}}', a request"
-msgstr "'{{link_to_request}}', o cerere"
+msgstr "'{{link_to_request}}', o solicitare"
msgid "'{{link_to_user}}', a person"
msgstr "'{{link_to_user}}', o persoană"
+msgid "*unknown*"
+msgstr "*necunoscut*"
+
msgid ",\\n\\n\\n\\nYours,\\n\\n{{user_name}}"
msgstr " , Al dvs., {{user_name}}"
@@ -136,194 +131,170 @@ msgid "1. Select an authority"
msgstr "1. Selectează o autoritate"
msgid "2. Ask for Information"
-msgstr "2. Cere o informație"
+msgstr "2. Solicită o informație"
msgid "3. Now check your request"
-msgstr "3. Verifică cererea făcută"
-
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
-msgstr "<a href=\"%s\">Adaugă o notă</a> (pentru a ajuta petentul sau pe alții)"
-
-msgid "<a href=\"%s\">Are we missing a public authority?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Are you the owner of\\n any commercial copyright on this page?</a>"
-msgstr "<a href=\"%s\">Ai un drept de Proprietate Intelectuală asupra vreunei mărci de pe pagina aceasta?</a>"
-
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
-msgstr "<a href=\"%s\">Caută toate</a> sau <a href=\"%s\">cere-ne nouă să adăugăm una</a>."
+msgstr "3. Verifică solicitarea făcută"
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
-msgstr "<a href=\"%s\">Nu găsești persoana căutată?</a>"
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
+msgstr "<a href=\"{{browse_url}}\">Caută în toată arhiva</a> sau <a href=\"{{add_url}}\">cere-ne nouă să adăugăm una</a>."
-msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
-msgstr "<a href=\"%s\">Loghează-te</a> pentru schimbarea parolei, abonării și altele ({{user_name}} only)"
+msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)"
+msgstr "<a href=\"{{url}}\">Adaugă o notă</a> (pentru a ajuta petentul sau pe alții)"
-msgid "<a href=\"%s\">details</a>"
-msgstr "<a href=\"%s\">detalii</a>"
-
-msgid "<a href=\"%s\">what's that?</a>"
-msgstr "<a href=\"%s\">ce este aceasta?</a>"
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
+msgstr "<a href=\"{{url}}\">Autentifică-te</a> pentru a-ţi schimba parola şi alte setări, inclusiv cele legate de abonare ({{user_name}} only)"
msgid "<p>All done! Thank you very much for your help.</p><p>There are <a href=\"{{helpus_url}}\">more things you can do</a> to help {{site_name}}.</p>"
-msgstr "<p>Gata! Mulțumesc pentru ajutorul tău.</p><p>Sunt aici <a href=\"{{helpus_url}}\">mai multe lucruri pe care le poți face</a> pentru a ajuta {{site_name}}.</p>"
+msgstr "<p>Gata! Mulţumim de ajutor.</p><p>Apropo, sunt <a href=\"{{helpus_url}}\">o sumedenie de alte lucruri pe care le poţi face</a> pentru a ajuta {{site_name}}.</p>"
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=\"{{find_authority_url}}\">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=\"{{complain_url}}\">how to complain</a>.\\n </li>\\n <li>We have <a href=\"{{other_means_url}}\">suggestions</a>\\n on other means to answer your question.\\n </li>\\n </ul>"
-msgstr ""
+msgstr "<p>Mulțumim! Iată câteva idei despre ce ai putea face în continuare:</p>\\n <ul>\\n <li>Pentru a trimite solicitarea către o altă autoritate, copiază întâi textul solicitării tale mai jos, apoi <a href=\"{{find_authority_url}}\">găsește cealaltă autoritate</a>.</li>\\n <li>Dacă ai vrea să contești susținerea autorității că nu ar avea respectivele informații, aici găsești\\n <a href=\"{{complain_url}}\">cum să faci o plângere</a>.\\n </li>\\n <li>Avem <a href=\"{{other_means_url}}\">sugestii</a>\\n cu privire la alte mijloace pentru a primi răspuns la întrebarea ta.\\n </li>\\n </ul>"
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 "<p>Va mulţumim! Sperăm ca nu ati avut de asteptat prea mult.</p> <p>Conform legii, ar trebui sa primiti un raspuns prompt, in mod normal pana la sfarsitul<strong>{{date_response_required_by}}</strong>.</p>"
+msgstr "<p>Îţi mulţumim! Sperăm ca nu ai avut de aşteptat prea mult.</p> <p>Conform legii, ar trebui să primeşti un răspuns prompt, în mod normal până la <strong>{{date_response_required_by}}</strong>.</p>"
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 ""
+msgstr "<p>Mulțumim! Sperăm că nu vei aștepta prea mult.</p> <p>Potrivit legii, ar trebui să primești un răspuns prompt, în mod normal până la <strong>\\n{{date_response_required_by}}</strong>.</p>"
msgid "<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>"
-msgstr "<p>Va mulţumim! Sperăm ca asteptale dvs. nu a fost prea lungă</p><p>Ar trebui sa primiti un raspuns in {{late_number_of_days}} zile, sau sa vi se comunice daca va dura mai mult (<a href=\"{{review_url}}\">details</a>).</p>"
-
-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 "<p>Va mulţumim! Vom verifica ce s-a intamplat si vom increca sa o rezolvam.</p><p> Daca eroarea era referitoare la livrare, si ne puteti oferi o alta adreasa actualiyata pentru FOI pentru acesta autoritatem ve rugan sa comunicati utilizand formularul de mai jos.</p>"
+msgstr "<p>Îţi mulţumim! Sperăm că nu ai aşteptat prea mult. </p><p>Ar trebui să primeşti un răspuns în {{late_number_of_days}} zile, sau să ţi se comunice dacă va dura mai mult (<a href=\"{{review_url}}\">details</a>).</p>"
msgid "<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>"
-msgstr "<p>Va multumim! Cererea dvs este peste termen ciu mai mult de {{very_late_number_of_days}} zile lucratoare. Majoritatea cerelilor ar trebui sa fie satisfacute in decursul a{{late_number_of_days}}zile lucratoare. Ati putea sa formulati o plangere in acest sens, vedeti mai jos.</p>"
+msgstr "<p>Îţi multumim! Solicitarea ta se întinde peste termen cu mai mult de {{very_late_number_of_days}} zile lucrătoare. Majoritatea solicitărilor ar trebui să primească răspuns în decurs de a{{late_number_of_days}}zile lucrătoare. Ai putea să formulezi o plângere în acest sens, vezi mai jos cum.</p>"
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 ""
+msgstr "<p>Vă mulţumim pentru modificarea textului referitor la dvs. din profil.</p>\\n <p><strong>În continuare...</strong> puteţi încărca o poză de profil deasemenea.</p>"
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 ""
+msgstr "<p>Vă mulţumim pentru actualizarea pozei dvs. de profil.</p>\\n <p><strong>În continuare...</strong> puteţi adăuga un text despre dvs. şi despre căutările dvs. în profilul dvs..</p>"
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 ""
+msgstr "<p>Îți recomandăm să îți editezi solicitarea și să ștergi adresa de email.\\n Dacă o lași, adresa de email va fi trimisă către autoritate, dar nu va fi afișată pe site.</p>"
msgid "<p>We're glad you got all the information that you wanted. If you write about or make use of the information, please come back and add an annotation below saying what you did.</p><p>If you found {{site_name}} useful, <a href=\"{{donation_url}}\">make a donation</a> to the charity which runs it.</p>"
-msgstr "<p>Ne bucuram ca ati obtinut informatiile pe care le doreati. Daca veti scrie despre acetea sau despre utilizarea lor, va rugam reveniti si completati mai jos, comunicand ce ati facut. </p><p> Daca ati gasit acest site {{site_name}} util puteti face , <a href=\"{{donation_url}}\"> o donatie</a> organizatiei care il intretine.</p>"
+msgstr "<p>Ne bucurăm tare mult că ai obţinut informaţiile pe care le doreai! Dacă vei scrie despre cum ţi-au folosit aceste informaţii, te rugăm să completezi mai jos un scurt istoric care va fi util celor ce vor face solicitări similare. </p><p> Dacă ai găsit {{site_name}} util, poţi face , <a href=\"{{donation_url}}\"> o mică donaţie</a> pentru a atenua din costurile de întreţinere pe care le avem cu serverele.</p>"
msgid "<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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 "<p>Ne bucuram ca ati obtinut informatiile pe care le doreati. Daca ati gasit acest site {{site_name}} util puteti face , <a href=\"{{donation_url}}\"> o donatie</a> organizatiei care il intretine.</p><p> Daca vreti sa obtineti si retul de informatii, utitati aici ce mai aveti de facut acum .</p>"
+msgstr "<p>Ne bucurăm că aţi obţinut informaţiile pe care le doreaţi. Dacă aţi găsit acest site {{site_name}} util puteţi face , <a href=\"{{donation_url}}\"> o donaţie</a> organizaţiei care îl întreţine.</p><p> Daca vreţi să încercaţi şi să obţineti şi restul de informaţii, utitaţi aici ce mai aveţi de făcut acum .</p>"
-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 "<p>Nu e nevoie sa includeti emailul dvs. in cerere pentru a obtine un raspuns (<a href=\"%s\">details</a>).</p>"
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
+msgstr "<p>Nu e nevoie să incluzi emailul tău în solicitare pentru a primi răspuns (<a href=\"{{url}}\">details</a>).</p>"
-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 "<p>Nu e nevoie sa includeti emailul dvs. in cerere pentru a obtine un raspuns, deoarece vi-l solicitaim in pagina urmatoare (<a href=\"%s\">details</a>).</p>"
+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=\"{{url}}\">details</a>).</p>"
+msgstr "<p>Nu e nevoie să-ţi laşi emailul în solicitare pentru a obţine un răspuns. Îţi vei lăsa adresa de email în pagina următoare (<a href=\"{{url}}\">details</a>).</p>"
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 "<p>Cererea dvs contine <strong>postcode</strong>. Daca nu este legata in mod direct de subiectul cererii dvs. va rugam sa ilaturati oricea adresa intrucat aceasta <strong> va aparea public pe Internet </strong>.</p>"
+msgstr "<p>Solicitarea ta conţine un <strong>cod poştal</strong>. Dacă nu e legat în mod direct de subiectul solicităarii tale. te rugăm să nu incluzi nicio adresă din motive de confidenţialitate, întrucât <strong> va fi afişată public pe Internet </strong>.</p>"
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 {{late_number_of_days}} 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 ""
+msgstr "<p>Solicitarea ta {{law_used_full}} a fost <strong>transmisă</strong>!</p>\\n <p><strong>Vei primi un email</strong> când există un răspuns sau după {{late_number_of_days}} zile lucrătoare dacă autoritatea \\n încă nu a răspuns până atunci.</p>\\n <p>Dacă scrii despre această solicitare (de exemplu pe un forum sau pe un blog) te rugăm să faci referință către această pagină și adaugă o\\n adnotare mai jos pentru a spune oamenilor despre ce ai scris.</p>"
msgid "<p>{{site_name}} is currently in maintenance. You can only view existing requests. You cannot make new ones, add followups or annotations, or otherwise change the database.</p> <p>{{read_only}}</p>"
-msgstr "<p>{{site_name}} este in reparatie momentan. Puteti vedea odar cererile deja existente. Nu puteti adauga cereri noi, nici comentarii, adnotari sau alte modificari asupra bazei de date.</p> <p>{{read_only}}</p>"
+msgstr "<p>{{site_name}} este momentan în mentenanţă. Poţi vedea numai solicitările deja existente. Nu poţi adăuga solicitări noi, nici comentarii, adnotări sau alte modificări asupra bazei de date.</p> <p>{{read_only}}</p>"
msgid "<small>If you use web-based email or have \"junk mail\" filters, also check your\\nbulk/spam mail folders. Sometimes, our messages are marked that way.</small>\\n</p>"
-msgstr ""
+msgstr "<small>Dacă utilizaţi un serviciu email de tip web sau dacă aveţi filtre pentru poşta nedorită, verificaţi deasemenea şi folderele \\nbulk/spam de email . Uneori mesajele noastre sunt marcate astfel.</small>\\n</p>"
-msgid "<span id='follow_count'>%d</span> person is following this authority"
-msgid_plural "<span id='follow_count'>%d</span> people are following this authority"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
-msgstr ""
+msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
+msgstr "<strong> Pot să solicit informaţii despre mine însumi?</strong>\\n\t\t\t<a href=\"{{url}}\">Nu! (Click aici pentur detalii)</a>"
msgid "<strong><code>commented_by:tony_bowden</code></strong> to search annotations made by Tony Bowden, typing the name as in the URL."
-msgstr "<strong><code>comentariu_de:tony_bowden</code></strong> pentru a cauta admotari facute de Tony Bowden, tastati numele asa ca in URL."
+msgstr "<strong><code>comentariu_de:tony_bowden</code></strong> pentru a cauta adnotări făcute de Tony Bowden, tastaţi numele aşa cum apare în URL."
msgid "<strong><code>filetype:pdf</code></strong> to find all responses with PDF attachments. Or try these: <code>{{list_of_file_extensions}}</code>"
-msgstr "<strong><code>filetype:pdf</code></strong>pentru a gasi toate raspunsurile cu atasament PDF. Sau incercati astfel: <code>{{list_of_file_extensions}}</code>"
+msgstr "<strong><code>filetype:pdf</code></strong>pentru a găsi toate răspunsurile care au un fişier PDF ataşat. Sau încearcă astfel: <code>{{list_of_file_extensions}}</code>"
msgid "<strong><code>request:</code></strong> to restrict to a specific request, typing the title as in the URL."
-msgstr "<strong><code>cerere:</code></strong> pentru a restrictiona la o cerere specifica, tatstand titlul asa ca in URL."
+msgstr "<strong><code>solicitare:</code></strong> pentru a limita la o cerere anume, tastând titlul asa cum apare în URL."
msgid "<strong><code>requested_by:julian_todd</code></strong> to search requests made by Julian Todd, typing the name as in the URL."
-msgstr "<strong><code>solicitat_de:julian_todd</code></strong> pentru a cauta cererile facute de Julian Todd, tastand numele asa ca in URL."
+msgstr "<strong><code>solicitat_de:julian_todd</code></strong> pentru a căuta solicitările făcute de Julian Todd, tastând numele aşa cum apare în URL."
msgid "<strong><code>requested_from:home_office</code></strong> to search requests from the Home Office, typing the name as in the URL."
-msgstr "<strong><code>solicitat_de la:home_office</code></strong> pentru a cauta cererile facute de la Home Office, tastand numele asa ca in URL."
+msgstr "<strong><code>solicitat_de:home_office</code></strong> pentru a căuta prin solicitările făcute de Home Office, tastând numele aşa cum apare în URL."
msgid "<strong><code>status:</code></strong> to select based on the status or historical status of the request, see the <a href=\"{{statuses_url}}\">table of statuses</a> below."
-msgstr "<strong><code>status:</code></strong> pentru a selecta pe baza statutului unei cereri, vedeti <a href=\"{{statuses_url}}\">tabelul statutelor </a> below."
+msgstr "<strong><code>status:</code></strong> pentru a selecta pe baza statutului unei cereri, vedeţi <a href=\"{{statuses_url}}\">tabelul statutelor </a> below."
msgid "<strong><code>tag:charity</code></strong> to find all public authorities 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 ""
+msgstr "<strong><code>etichetă:fundații</code></strong> pentru a găsi toate autoritățile publice sau solicitările cu o etichetă dată. Poți include etichete multiple, \\n și etichete cu valori, i.e. <code>etichetă:deschislocal AND etichetă:tranzacții_financiare:335633</code>. Ia în calcul că din oficiu orice etichetă \\n poate exista, trebuie să scrii <code>AND</code> explicit dacă vrei doar rezultatele care au toate respectivele etichete."
msgid "<strong><code>variety:</code></strong> to select type of thing to search for, see the <a href=\"{{varieties_url}}\">table of varieties</a> below."
-msgstr "<strong><code>variety:</code></strong> pentru a selecta tipul obiectului cautat, vedeti <a href=\"{{varieties_url}}\">tabelul cu tipurile</a> below."
+msgstr "<strong><code>variety:</code></strong> pentru a selecta tipul obiectului căutat, vedeţi <a href=\"{{varieties_url}}\">tabelul cu tipurile</a> below."
msgid "<strong>Advice</strong> on how to get a response that will satisfy the requester. </li>"
-msgstr "<strong>Sfat </strong> despre cum sa primiti un raspuns care sa satisfaca cererea. </li>"
+msgstr "<strong>Sfat </strong> despre cum să primiţi un răspuns care să satisfacă cererea. </li>"
msgid "<strong>All the information</strong> has been sent"
-msgstr "<strong>Toate informatiile</strong> au fost trimise"
+msgstr "<strong>Toate informaţiile</strong> au fost trimise"
msgid "<strong>Anything else</strong>, such as clarifying, prompting, thanking"
-msgstr "<strong>Orice altceva</strong>, cuma ar fi: clarificari, precizari, multumiri "
+msgstr "<strong>Orice altceva</strong>, cum ar fi: clarificări, precizări, mulţumiri "
msgid "<strong>Caveat emptor!</strong> To use this data in an honourable way, you will need \\na good internal knowledge of user behaviour on {{site_name}}. How, \\nwhy and by whom requests are categorised is not straightforward, and there will\\nbe user error and ambiguity. You will also need to understand FOI law, and the\\nway authorities use it. Plus you'll need to be an elite statistician. Please\\n<a href=\"{{contact_path}}\">contact us</a> with questions."
-msgstr ""
+msgstr "<strong>Caveat emptor!</strong> Pentru a folosi aceste date corect, vei avea nevoie de \\na o bună cunoaștere a comportamentului utilizatorului pe {{site_name}}. Modul de împărțire a solicitărilor pe categorii este complicat și pot exista\\n erori sau ambiguități. De asemenea, va trebui să înțelegi legea accesului la informații și \\nmodul în care autoritățile o folosesc. În plus, trebuie să fii un bun statistician. Te rugăm\\n<a href=\"{{contact_path}}\">să ne contactezi</a> pentru întrebări."
msgid "<strong>Clarification</strong> has been requested"
-msgstr "<strong>Clarificarea</strong> a fost solicitata."
+msgstr "<strong>Clarificarea</strong> a fost solicitată."
msgid "<strong>No response</strong> has been received\\n <small>(maybe there's just an acknowledgement)</small>"
-msgstr ""
+msgstr "<strong>Niciun răspuns</strong> nu a fost primit\\n <small>(poate există doar o confirmare)</small>"
msgid "<strong>Note:</strong> Because we're testing, requests are being sent to {{email}} rather than to the actual authority."
-msgstr ""
+msgstr "<strong>Notă:</strong> Deoarece acum testăm, cererile sunt trimise către {{email}} în loc de autoritatea efectivă."
msgid "<strong>Note:</strong> You're sending a message to yourself, presumably\\n to try out how it works."
-msgstr ""
+msgstr "<strong>Notă:</strong> Ți-ai trimis un mesaj, probabil\\n pentru a afla cum funcționează."
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 ""
+msgstr "<strong>Notă:</strong>\\n Vă vom trimite un email către noua dvs. adresă de email. Urmaţi instrucţiunile \\n din acesta pentru a confirma schimbarea emailului dvs."
-msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"%s\">click here</a>."
-msgstr ""
+msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"{{url}}\">click here</a>."
+msgstr "<strong>Notă de confidențialitate:</strong> Dacă dorești să soliciți informații personale despre\\n tine atunci <a href=\"{{url}}\">apasă aici</a>."
msgid "<strong>Privacy note:</strong> Your photo will be shown in public on the Internet,\\n wherever you do something on {{site_name}}."
-msgstr ""
+msgstr "<strong>Notă de confidențialitate:</strong> Poza ta va fi făcută publică pe Internet,\\n oriunde vei posta ceva pe {{site_name}}."
msgid "<strong>Privacy warning:</strong> Your message, and any response\\n to it, will be displayed publicly on this website."
-msgstr ""
+msgstr "<strong>Alertă de confidențialitate:</strong> Mesajul tău și orice răspuns\\n la acesta, vor fi publicate pe website."
msgid "<strong>Some of the information</strong> has been sent "
-msgstr "<strong>Unele dintre informatii</strong> au fost trimise."
+msgstr "<strong>Unele dintre informaţii</strong> au fost trimise."
msgid "<strong>Thank</strong> the public authority or "
-msgstr "<strong>Multumiri </strong> autoritatii publice sau "
+msgstr "<strong>Mulţumiri </strong> autorităţii publice sau "
msgid "<strong>did not have</strong> the information requested."
-msgstr "<strong>nu au avut</strong> informatia solicitata."
+msgstr "<strong>nu au avut</strong> informaţia solicitată."
msgid "A <a href=\"{{request_url}}\">follow up</a> to <em>{{request_title}}</em> was sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
-msgstr ""
+msgstr "O <a href=\"{{request_url}}\">urmărire </a> către <em>{{request_title}}</em> a fost trimisă către {{public_body_name}} de către {{info_request_user}} la {{date}}."
msgid "A <a href=\"{{request_url}}\">response</a> to <em>{{request_title}}</em> was sent by {{public_body_name}} to {{info_request_user}} on {{date}}. The request status is: {{request_status}}"
-msgstr ""
+msgstr "Un <a href=\"{{request_url}}\">răspuns</a> to <em>{{request_title}}</em> a fost trimis de către {{public_body_name}} către {{info_request_user}} la {{date}}. Starea cererii este: {{request_status}}"
msgid "A <strong>summary</strong> of the response if you have received it by post. "
-msgstr "<strong>Un rezumat</strong> al raspunsului, daca l-ati primit prin posta."
+msgstr "<strong>Un rezumat</strong> al răspunsului, daca l-aţi primit prin poştă."
msgid "A Freedom of Information request"
msgstr "O cerere Libertatea de Informare"
msgid "A new request, <em><a href=\"{{request_url}}\">{{request_title}}</a></em>, was sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
-msgstr ""
+msgstr "O nouă cerere <em><a href=\"{{request_url}}\">{{request_title}}</a></em>, a fost trimisă către {{public_body_name}} de către{{info_request_user}} la {{date}}."
msgid "A public authority"
-msgstr "O autoritate publica"
+msgstr "O autoritate publică"
msgid "A response will be sent <strong>by post</strong>"
-msgstr "Un raspuns va fi trimis<strong> prin posta</strong>"
+msgstr "Un răspuns va fi trimis<strong> prin poşta</strong>"
msgid "A strange reponse, required attention by the {{site_name}} team"
msgstr "Un raspuns ciudat, care necesita analiza din partea echipei {{site_name}} "
+msgid "A vexatious request"
+msgstr "Solicitare jignitoare"
+
msgid "A {{site_name}} user"
msgstr "Un utilizator al {{site_name}} "
@@ -331,58 +302,67 @@ msgid "About you:"
msgstr "Despre dvs:"
msgid "Act on what you've learnt"
-msgstr "Actioneaza conform a ceea ce ai invatat."
+msgstr "Actţonează conform a ceea ce ai învăţat."
+
+msgid "Acts as xapian/acts as xapian job"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Action"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Model"
+msgstr ""
msgid "Add an annotation"
-msgstr "Adauga o adnotare."
+msgstr "Adaugă o adnotare."
msgid "Add an annotation to your request with choice quotes, or\\n a <strong>summary of the response</strong>."
-msgstr ""
+msgstr "Adaugă o adnotaţie la solicitarea ta cu citatele alese de tine sau \\n un <strong>rezumat al răspunsului</strong>."
msgid "Added on {{date}}"
-msgstr "Adaugat la {{date}}"
+msgstr "Adăugat la {{date}}"
msgid "Admin level is not included in list"
-msgstr "Nivelul Admin nu este inclus in lista"
+msgstr "Nivelul Admin nu este inclus în listă"
msgid "Administration URL:"
msgstr "URL administrare:"
msgid "Advanced search"
-msgstr "Cautare avansata:"
+msgstr "Căutare avansată:"
msgid "Advanced search tips"
-msgstr "Trucuri pentru cautare avansata"
+msgstr "Trucuri pentru căutare avansată"
msgid "Advise on whether the <strong>refusal is legal</strong>, and how to complain about it if not."
-msgstr "Sfaturi cu privire la <strong>refuzul legal</strong>, si cum se poate face plangere in cazul in care nu este legal."
+msgstr "Sfaturi cu privire la <strong>refuzul legal</strong>şi cum se poate face plângere în cazul în care nu este legal."
msgid "Air, water, soil, land, flora and fauna (including how these effect\\n human beings)"
-msgstr ""
+msgstr "Aer, apă, sol, pământ, floră și faună (inclusiv modul în care acestea afectează\\n oamenii)"
msgid "All of the information requested has been received"
-msgstr "Toate informatiile cerute au fost primite."
+msgstr "Toate informaţiile cerute au fost primite."
msgid "All the options below can use <strong>status</strong> or <strong>latest_status</strong> before the colon. For example, <strong>status:not_held</strong> will match requests which have <em>ever</em> been marked as not held; <strong>latest_status:not_held</strong> will match only requests that are <em>currently</em> marked as not held."
-msgstr "Toate optiunile de mai jos pot utiliza <strong>statut</strong> sau <strong>ultimul_statut</strong> inainte de doua puncte :. De exemplu, <strong>statut: ne_retinut</strong> va intruni toate cererile care <em>ever</em> au fost marcate ca neretinute; <strong>ultimul_statut:ne_retinut</strong>va intruni numai cererile care sunt <em>in acest moment</em> marcate ca neretinute."
+msgstr "Toate opţiunile de mai jos pot utiliza <strong>statut</strong> sau <strong>ultimul_statut</strong> înainte de două puncte :. De exemplu, <strong>statut: ne_retinut</strong> va întruni toate cererile care <em>ever</em> au fost marcate ca nereţinute; <strong>ultimul_statut:ne_reţinut</strong>va întruni numai cererile care sunt <em>în acest moment</em> marcate ca nereţinute."
msgid "All the options below can use <strong>variety</strong> or <strong>latest_variety</strong> before the colon. For example, <strong>variety:sent</strong> will match requests which have <em>ever</em> been sent; <strong>latest_variety:sent</strong> will match only requests that are <em>currently</em> marked as sent."
-msgstr "Toate optiunile de mai jos pot utiliza <strong>varietatea </strong> sau de doua puncte :. De exemplu, <strong>varietate:trimis</strong> a intruni toate cererile care <em>ever</em> au fost trimis; <strong>ultima_varietate:trimis</strong> va intruni numai cererile care sunt <em>in acest moment</em> marcate ca trimise."
+msgstr "Toate opţiunile de mai jos pot utiliza <strong>varietatea </strong> sau de doua puncte :. De exemplu, <strong>varietate:trimis</strong> va întruni toate cererile care <em>ever</em> au fost trimise; <strong>ultima_varietate:trimis</strong> va întruni numai cererile care sunt <em>în acest moment</em> marcate ca trimise."
msgid "Also called {{other_name}}."
-msgstr "Deasemenea numit si {{other_name}}."
+msgstr "Deasemenea numit şi {{other_name}}."
msgid "Also send me alerts by email"
-msgstr ""
+msgstr "Deasemenea trimiteţi-mi alerte prin email"
msgid "Alter your subscription"
-msgstr "Modificati subscriptia dvs. "
+msgstr "Modificaţi subscripţia dvs. "
msgid "Although all responses are automatically published, we depend on\\nyou, the original requester, to evaluate them."
-msgstr ""
+msgstr "Deși toate răspunsurile sunt publicate automat, depindem de \\ntine, ca solicitant, pentru a le putea evalua."
msgid "An <a href=\"{{request_url}}\">annotation</a> to <em>{{request_title}}</em> was made by {{event_comment_user}} on {{date}}"
-msgstr ""
+msgstr "O <a href=\"{{request_url}}\">adnotare</a> către <em>{{request_title}}</em> a fost făcută de către {{event_comment_user}} la {{date}}"
msgid "An <strong>error message</strong> has been received"
msgstr "Un <strong>mesaj de eroare </strong> a fost primit"
@@ -391,76 +371,91 @@ msgid "An Environmental Information Regulations request"
msgstr "O cerere de informare referitoare la Mediu"
msgid "An anonymous user"
-msgstr ""
+msgstr "Utilizator anonim"
msgid "Annotation added to request"
-msgstr "Adnotare adaugata la cerere"
+msgstr "Adnotare adaugată la cerere"
msgid "Annotations"
-msgstr "Adnotari"
+msgstr "Adnotări"
msgid "Annotations are so anyone, including you, can help the requester with their request. For example:"
-msgstr "Adnotarile sunt astfle facute incat oricine, incusiv dvs. , sa poate cere ajutor cu privire la cererile lor. De exemplu:"
+msgstr "Adnotările sunt astfel făcute încât oricine, incusiv dvs. , să poată ajuta solicitantul cu privire la cererea sa. De exemplu:"
msgid "Annotations will be posted publicly here, and are\\n <strong>not</strong> sent to {{public_body_name}}."
-msgstr ""
+msgstr "Adnotările vor fi făcute publice aici și\\n <strong>nu</strong> sunt trimise către {{public_body_name}}."
msgid "Anonymous user"
-msgstr ""
+msgstr "Utilizator anonim"
msgid "Anyone:"
msgstr "Oricine:"
+msgid "Applies to"
+msgstr "Se aplică la"
+
+msgid "Are we missing a public authority?"
+msgstr "Ne lipseşte o autoritate publică?"
+
+msgid "Are you the owner of any commercial copyright on this page?"
+msgstr "Ai un drept de Proprietate Intelectuală asupra vreunei mărci de pe pagina aceasta?"
+
msgid "Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries."
-msgstr "Cereti documente sau informatii <strong> precise </strong>, acest site nu este potrivit pentru cereri generale."
+msgstr "Cereţi documente sau informaţii <strong> precise </strong>, acest site nu este potrivit pentru cereri generale."
-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 ""
+msgid "At the bottom of this page, write a reply to them trying to persuade them to scan it in\\n (<a href=\"{{url}}\">more details</a>)."
+msgstr "În josul acestei pagini, scrie un răspuns către aceștia, prin care să îi convingi să scaneze (<a href=\"{{url}}\">mai multe detalii</a>)."
msgid "Attachment (optional):"
-msgstr "Atasamente (optional):"
+msgstr "Ataşamente (optional):"
msgid "Attachment:"
-msgstr "Atasament:"
+msgstr "Ataşament:"
msgid "Awaiting classification."
-msgstr "Asteapta clasificarea."
+msgstr "Aşteaptă clasificarea."
msgid "Awaiting internal review."
-msgstr "Asteapta revizuirea interna."
+msgstr "Aşteaptă revizuirea interna."
msgid "Awaiting response."
-msgstr "Asteapta raspunsul."
+msgstr "Aşteaptă răspunsul."
msgid "Beginning with"
-msgstr "Incepand cu"
+msgstr "Începând cu"
msgid "Browse <a href='{{url}}'>other requests</a> for examples of how to word your request."
-msgstr "Consultati <a href='{{url}}'> si alte cereri </a> pentru exemple asupra modului in care sa formulati cererea."
+msgstr "Consultaţi <a href='{{url}}'> şi alte cereri </a> pentru exemple asupra modului în care să formulaţi cererea."
msgid "Browse <a href='{{url}}'>other requests</a> to '{{public_body_name}}' for examples of how to word your request."
-msgstr "Consultati <a href='{{url}}'> si alte cereri </a> catre '{{public_body_name}}' pentru exemple asupra modului in care sa formulati cererea."
+msgstr "Consultaţi <a href='{{url}}'> şi alte cereri </a> catre '{{public_body_name}}' pentru exemple asupra modului în care să formulaţi cererea."
msgid "Browse all authorities..."
-msgstr "Consultati toate autoritatile ..."
+msgstr "Consultaţi toate autoritaţile ..."
msgid "By law, under all circumstances, {{public_body_link}} should have responded by now"
-msgstr "Conform legii, in oricare circumstante, {{public_body_link}} ar fi trebuit sa va raspunda pana acum"
+msgstr "Conform legii, în oricare circumstanţe, {{public_body_link}} ar fi trebuit să vă răspundă până acum"
msgid "By law, {{public_body_link}} should normally have responded <strong>promptly</strong> and"
-msgstr "Conform legii {{public_body_link}} ar fi trebuit sa va raspunda <strong>propmt </strong> si "
+msgstr "Conform legii {{public_body_link}} ar fi trebuit să vă răspundă <strong>propmt </strong> si "
+
+msgid "Calculated home page"
+msgstr "Calculated home page"
+
+msgid "Can't find the one you want?"
+msgstr "Nu găsești persoana căutată?"
msgid "Cancel a {{site_name}} alert"
-msgstr "Anulati o alerta {{site_name}} "
+msgstr "Anulaţi o alerta {{site_name}} "
msgid "Cancel some {{site_name}} alerts"
-msgstr "Anulati niste alerte {{site_name}} "
+msgstr "Anulaţi niste alerte {{site_name}} "
msgid "Cancel, return to your profile page"
-msgstr "Anulati si reveniti la pagina dvs de profil"
+msgstr "Anulaţi şi reveniti la pagina dvs. de profil"
msgid "Censor rule"
-msgstr ""
+msgstr "Regula cenzorului"
msgid "CensorRule|Last edit comment"
msgstr "RegulaCenzor|Ultima editare comentariu"
@@ -469,7 +464,7 @@ msgid "CensorRule|Last edit editor"
msgstr "RegulaCenzor|Ultima editare editor"
msgid "CensorRule|Regexp"
-msgstr ""
+msgstr "CensorRule|Regexp"
msgid "CensorRule|Replacement"
msgstr "RegulaCenzor|Inlocuire"
@@ -478,13 +473,13 @@ msgid "CensorRule|Text"
msgstr "RegulaCenzor|Text"
msgid "Change email on {{site_name}}"
-msgstr "Modificati emailul pe {{site_name}}"
+msgstr "Modificaţi emailul pe {{site_name}}"
msgid "Change password on {{site_name}}"
-msgstr "Modificati parola pe {{site_name}}"
+msgstr "Modificaţi parola pe {{site_name}}"
msgid "Change profile photo"
-msgstr "Modificati poza de profil"
+msgstr "Modificaţi poza de profil"
msgid "Change the text about you on your profile at {{site_name}}"
msgstr "Modificati textul referitor la profilul dvs. pe {{site_name}}"
@@ -493,25 +488,25 @@ msgid "Change your email"
msgstr "Modificati emailul"
msgid "Change your email address used on {{site_name}}"
-msgstr "Modificati emailul dvs utilizat pe {{site_name}}"
+msgstr "Modificaţi emailul dvs utilizat pe {{site_name}}"
msgid "Change your password"
-msgstr "Modificati parola"
+msgstr "Modificaţi parola"
msgid "Change your password on {{site_name}}"
-msgstr "Modificati parola dvs. pe {{site_name}}"
+msgstr "Modificaţi parola dvs. pe {{site_name}}"
msgid "Change your password {{site_name}}"
-msgstr "Modificati parola dvs. pe {{site_name}}"
+msgstr "Modificaţi parola dvs. pe {{site_name}}"
msgid "Charity registration"
-msgstr "Inregistrare ONG"
+msgstr "Înregistrare ONG"
msgid "Check for mistakes if you typed or copied the address."
-msgstr "Verificati greseli, daca ati tatsta sau ati copiat adresa."
+msgstr "Verificaţi greşeli, dacă aţi tastat sau aţi copiat adresa."
msgid "Check you haven't included any <strong>personal information</strong>."
-msgstr "Verificati, nu ati inclus nici un fel de <strong> informatii personale</strong>."
+msgstr "Verificaţ că nu aţi inclus nici un fel de <strong> informaţii personale</strong>."
msgid "Choose your profile photo"
msgstr "Alegeti poza de profil"
@@ -520,25 +515,25 @@ msgid "Clarification"
msgstr "Clarificare"
msgid "Clarify your FOI request - "
-msgstr ""
+msgstr "Clarificaţi cererea dvs. FOI - "
msgid "Classify an FOI response from "
-msgstr "Clasificati un formular de raspuns FOI"
+msgstr "Clasificaţi un formular de răspuns FOI"
msgid "Clear photo"
-msgstr ""
+msgstr "Şterge poza"
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\\nreview, asking them to find out why response to the request has been so slow."
-msgstr ""
+msgstr "Apasă pe link-ul de mai jos pentru a trimite un mesaj către {{public_body_name}} prin care să ceri un răspuns la solicitarea ta. Poți cere și o evaluare\\ninternă, pentru a afla de ce răspunsul la solicitare a ajuns atât de greu."
msgid "Click on the link below to send a message to {{public_body}} reminding them to reply to your request."
-msgstr "Faceti click pe link-ul de mai jos pentru a trimite un mesaj catre {{public_body}} pentru a-i reaminti sa raspunda la cererea dvs."
+msgstr "Faceţi click pe link-ul de mai jos pentru a trimite un mesaj către {{public_body}} pentru a-i reaminti să răspunda la cererea dvs."
msgid "Close"
-msgstr ""
+msgstr "Închide"
msgid "Comment"
-msgstr ""
+msgstr "Comentariu"
msgid "Comment|Body"
msgstr "Comentariu |Text"
@@ -553,148 +548,160 @@ msgid "Comment|Visible"
msgstr "Comentariu |Vizibil"
msgid "Confirm you want to follow all successful FOI requests"
-msgstr ""
+msgstr "Confirmaţi că doriţi să urmăriţi toate cererile FOI reuşite"
msgid "Confirm you want to follow new requests"
-msgstr ""
+msgstr "Confirmaţi că doriţi să urmăriţi noi cereri"
msgid "Confirm you want to follow new requests or responses matching your search"
-msgstr ""
+msgstr "Confirmați că doriți să urmăriți noi cereri sau răspunsuri care corespund căutării dvs."
msgid "Confirm you want to follow requests by '{{user_name}}'"
-msgstr ""
+msgstr "Confirmați că doriți să urmăriți cererile făcute de '{{user_name}}'"
msgid "Confirm you want to follow requests to '{{public_body_name}}'"
-msgstr ""
+msgstr "Confirmă că dorești să urmărești solicitările către '{{public_body_name}}'"
msgid "Confirm you want to follow the request '{{request_title}}'"
-msgstr ""
+msgstr "Confirmă că dorești să urmărești solicitarea '{{request_title}}'"
msgid "Confirm your FOI request to "
-msgstr "Confirmati cererea dvs. FOI"
+msgstr "Confirmaţi cererea dvs. FOI"
msgid "Confirm your account on {{site_name}}"
msgstr "Confirmati contul dvs pe {{site_name}}"
msgid "Confirm your annotation to {{info_request_title}}"
-msgstr "Confirmati adnotarea de de la {{info_request_title}}"
+msgstr "Confirmaţi adnotarea dvs. la {{info_request_title}}"
msgid "Confirm your email address"
-msgstr "Confirmati adresa dvs. de email"
+msgstr "Confirmaţi adresa dvs. de email"
msgid "Confirm your new email address on {{site_name}}"
-msgstr "Confirmati noua dvs adresa de email pe {{site_name}}"
+msgstr "Confirmaţi noua dvs. adresă de email pe {{site_name}}"
msgid "Considered by administrators as not an FOI request and hidden from site."
-msgstr ""
+msgstr "Considerat de către administratori ca nefiind o solicitare de acces la informații și ascuns de pe site."
msgid "Considered by administrators as vexatious and hidden from site."
-msgstr ""
+msgstr "Considerat de către administrator ca fiind ofensator şi şters de pe site."
msgid "Contact {{recipient}}"
-msgstr ""
+msgstr "Contactaţi {{recipient}}"
msgid "Contact {{site_name}}"
msgstr "Contact {{site_name}}"
msgid "Could not identify the request from the email address"
-msgstr "Nu se poate identifica cererea de la aceasta adresa de email"
+msgstr "Nu se poate identifica cererea de la această adresă de email"
msgid "Couldn't understand the image file that you uploaded. PNG, JPEG, GIF and many other common image file formats are supported."
-msgstr "Nu se poate prelua inaginea pe care ait incarcat-o. PNG, JPEG, GIF si multe alte formate de imagini sunt acceptate."
+msgstr "Nu se poate prelua imaginea pe care aţi încarcat-o. PNG, JPEG, GIF și multe alte formate de imagini sunt acceptate."
msgid "Crop your profile photo"
-msgstr "Decupati poza dvs. de profil"
+msgstr "Decupaţi poza dvs. de profil"
msgid "Cultural sites and built structures (as they may be affected by the\\n environmental factors listed above)"
-msgstr ""
+msgstr "Situri culturale şi structuri construite (pentru că ar putea fi afectate de\\nfactorii de mediu listaţi mai sus)"
msgid "Currently <strong>waiting for a response</strong> from {{public_body_link}}, they must respond promptly and"
-msgstr "In acest moment <strong>asteptam un raspuns</strong> de la {{public_body_link}}, ei ar trebui sa raspuns prompt si"
+msgstr "În acest moment <strong>asteptăm un răspuns</strong> de la {{public_body_link}}, ei ar trebui să raspundă prompt şi"
msgid "Date:"
msgstr "Data:"
+msgid "Dear {{name}},"
+msgstr ""
+
msgid "Dear {{public_body_name}},"
msgstr "Stimate {{public_body_name}},"
+msgid "Default locale"
+msgstr "Default locale"
+
msgid "Delayed response to your FOI request - "
-msgstr "Amanare raspuns la cererea dvs. FOI"
+msgstr "Amânare răspuns la cererea dvs. FOI"
msgid "Delayed."
-msgstr "Amanat."
+msgstr "Amânat."
msgid "Delivery error"
msgstr "Eroare de livrare"
+msgid "Destroy {{name}}"
+msgstr "Distruge {{name}}"
+
msgid "Details of request '"
msgstr "Detaliile cererii"
msgid "Did you mean: {{correction}}"
-msgstr "Ati vrut sa spuneti: {{correction}}"
+msgstr "Aţi vrut să spuneţi: {{correction}}"
msgid "Disclaimer: This message and any reply that you make will be published on the internet. Our privacy and copyright policies:"
-msgstr "Disclaimer: Acest mesaj si orice raspuns pe care il primit va fi publicat pe Internet. Politicile noastre privind confidentialitatea:"
+msgstr "Disclaimer: Acest mesaj şi orice răspuns pe care îl primiţi va fi publicat pe Internet. Politicile noastre privind confidenţialitatea:"
msgid "Disclosure log"
-msgstr ""
+msgstr "Disclosure log"
+
+msgid "Disclosure log URL"
+msgstr "Disclosure log URL"
msgid "Don't want to address your message to {{person_or_body}}? You can also write to:"
-msgstr "Nu doriti sa adresati mesajul dvs lui {{person_or_body}}? Puteti de asemena sa-i scrieti lui:"
+msgstr "Nu doriţi să adresati mesajul dvs. lui {{person_or_body}}? Puteţi de asemenea să-i scrieţi lui:"
msgid "Done"
msgstr "Efectuat"
msgid "Done &gt;&gt;"
-msgstr ""
+msgstr "Făcut &gt;&gt;"
msgid "Download a zip file of all correspondence"
-msgstr "Descarcati un fisier zip cu toata corespondenta"
+msgstr "Descărcaţi un fisier .zip cu toată corespondenţa"
msgid "Download original attachment"
-msgstr "Descarcare atasamentul original"
+msgstr "Descărcare ataşamentul original"
msgid "EIR"
msgstr "EIR"
-msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
-msgstr ""
+msgid "Edit"
+msgstr "Editare"
-msgid "Edit language version:"
-msgstr "Editati versiunea de limba:"
+msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
+msgstr "Editează și adaugă <strong>mai multe detalii</strong> la mesajul de mai sus, \\n explicând de ce nu ești mulțumit de răspunsul lor."
msgid "Edit text about you"
msgstr "E"
msgid "Edit this request"
-msgstr "Editati acesta cerere"
+msgstr "Editaţi acesta cerere"
msgid "Either the email or password was not recognised, please try again."
-msgstr "Emailul sau parola nu sunt recunoscute, va rugam incercati din nou"
+msgstr "Emailul sau parola nu sunt recunoscute, vă rugăm încercați din nou"
msgid "Either the email or password was not recognised, please try again. Or create a new account using the form on the right."
-msgstr "Emailul sau parola nu sunt recunoscute, va rugam incercati din nou. Sau creati un cont nou utilizand form-ul din dreapta."
+msgstr "Emailul sau parola nu sunt recunoscute, va rugîm încercaţi din nou. Sau creaţi un cont nou utilizând form-ul din dreapta."
msgid "Email doesn't look like a valid address"
-msgstr "Emailul nu este o adresa valabila"
+msgstr "Emailul nu este o adresă valabilă"
msgid "Email me future updates to this request"
-msgstr "Trimiteti-mi un email cu privire la actualizari ale acestei cereri."
+msgstr "Trimiteţi-mi un email cu privire la actualizări ale acestei cereri."
msgid "Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>"
-msgstr "Intorductei cuvintele pe care doriti sa le gasiti separatae de spatii, de ex. <strong>pista urcare</strong>"
+msgstr "Introduceţi cuvintele pe care doriti să le găsiţi separate de spaţii, de ex. <strong>pista de urcare</strong>"
-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 ""
+msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"{{url}}\">contact us</a> if you need more)."
+msgstr "Introdu mai jos răspunsul tău. Poți atașa un fișier (folosește email-ul sau\\n <a href=\"{{url}}\">contactează-ne</a> dacă vrei să atașezi mai multe)."
msgid "Environmental Information Regulations"
-msgstr "Reglementari Informatii de Mediu"
+msgstr "Reglementări Informaţii de Mediu"
msgid "Environmental Information Regulations requests made"
-msgstr "Cerere Reglementari Informatii de Mediu facuta"
+msgstr "Cerere Reglementări Informaţii de Mediu efectuată"
msgid "Environmental Information Regulations requests made using this site"
-msgstr "Cerere Reglementari Informatii de Mediu facuta utilizand acest site"
+msgstr "Cerere Reglementări Informaţii de Mediu făcută utilizând acest site"
msgid "Event history"
msgstr "Istoric evenimente"
@@ -702,47 +709,53 @@ msgstr "Istoric evenimente"
msgid "Event history details"
msgstr "Istoric evenimente detaliat"
-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 ""
+msgid "Event {{id}}"
+msgstr "Eveniment {{id}}"
-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 ""
+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=\"{{url}}\">why?</a>)."
+msgstr "Tot ce introduci pe această pagină, inclusiv <strong>numele tău</strong>, \\n va fi <strong>făcut public</strong> pe\\n acest website permanent (<a href=\"{{url}}\">de ce?</a>)."
+
+msgid "Everything that you enter on this page\\n will be <strong>displayed publicly</strong> on\\n this website forever (<a href=\"{{url}}\">why?</a>)."
+msgstr "Tot ceea ce postezi pe această pagină \\n va fi <strong>făcut public</strong> pe\\n acest website permanent (<a href=\"{{url}}\">de ce?</a>)."
msgid "FOI"
msgstr "FOI"
msgid "FOI email address for {{public_body}}"
-msgstr "FOI adresa de email pentru {{public_body}}"
+msgstr "Adresa de email pentru solicitare {{public_body}}"
+
+msgid "FOI request – {{title}}"
+msgstr "Solicitare de informații – {{title}}"
msgid "FOI requests"
-msgstr "Cerere FOI"
+msgstr "Solicitare de informații"
msgid "FOI requests by '{{user_name}}'"
-msgstr "Cerere FOI de catre '{{user_name}}'"
+msgstr "Solicitare de informații de către '{{user_name}}'"
msgid "FOI requests {{start_count}} to {{end_count}} of {{total_count}}"
-msgstr "Cererile FOI de la {{start_count}} la {{end_count}} din {{total_count}}"
+msgstr "Solicitări de informații de la {{start_count}} la {{end_count}} din {{total_count}}"
msgid "FOI response requires admin ({{reason}}) - {{title}}"
-msgstr ""
+msgstr "Răspunsul FOI necesită ({{reason}}) - {{title}} administratorului"
msgid "Failed to convert image to a PNG"
-msgstr "Eroare la convertirea imaginii in PNG"
+msgstr "Eroare la convertirea imaginii în PNG"
-msgid "Failed to convert image to the correct size: at %{cols}x%{rows}, need %{width}x%{height}"
-msgstr "Eroare la conversia imaginii la marimea corectă: la %{cols}x%{rows}, trebuie %{width}x%{height}"
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
+msgstr "Eroare la conversia imaginii la mărimea corectă: la {{cols}}x{{rows}}, trebuie {{width}}x{{height}}"
msgid "Filter"
msgstr "Filtrare"
-msgid "First, type in the <strong>name of the UK public authority</strong> you'd \\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"%s#%s\">why?</a>)."
-msgstr ""
+msgid "First, type in the <strong>name of the UK public authority</strong> you'd\\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"{{url}}\">why?</a>)."
+msgstr "Mai întâi, introdu <strong>numele autorității publice</strong> de la care ai \\n avea nevoie de informații. <strong>Potrivit legii, trebuie să îți răspundă</strong>\\n (<a href=\"{{url}}\">de ce?</a>)."
msgid "Foi attachment"
-msgstr ""
+msgstr "Ataşament FOI"
msgid "FoiAttachment|Charset"
-msgstr "Ataşament FOI|Setul de caractere"
+msgstr "Ataşament solicitare de informații|Setul de caractere"
msgid "FoiAttachment|Content type"
msgstr "Ataşament FOI|Conţinut"
@@ -763,22 +776,22 @@ msgid "FoiAttachment|Within rfc822 subject"
msgstr "Ataşament FOI|In cadrul rfc822 "
msgid "Follow"
-msgstr ""
+msgstr "Urmăreşte"
msgid "Follow all new requests"
-msgstr ""
+msgstr "Urmăriţi toate cererile noi"
msgid "Follow new successful responses"
-msgstr ""
+msgstr "Urmăriţi cererile noi reuşite"
msgid "Follow requests to {{public_body_name}}"
-msgstr ""
+msgstr "Urmăriţi cererile către {{public_body_name}}"
msgid "Follow these requests"
-msgstr "Urmăriţ aceste cereri"
+msgstr "Urmăriţi aceste cereri"
msgid "Follow things matching this search"
-msgstr ""
+msgstr "Urmărește chestiuni relevante pentru această căutare"
msgid "Follow this authority"
msgstr "Urmăriţi această autoritate"
@@ -787,10 +800,10 @@ msgid "Follow this link to see the request:"
msgstr "Urmăriţi acest link pentru a vedea cererea:"
msgid "Follow this person"
-msgstr ""
+msgstr "Urmăriţi această persoană"
msgid "Follow this request"
-msgstr "Urmăriţi această cerere"
+msgstr "Urmăriţi această solicitare"
msgid "Follow up"
msgstr "Urmăriţi"
@@ -799,28 +812,28 @@ msgid "Follow up message sent by requester"
msgstr "Urmăriţi mesajul trimis de solicitant"
msgid "Follow up messages to existing requests are sent to "
-msgstr "Urmăriţi mesajele trimis de solicitant"
+msgstr "Urmăriţi mesajele trimise de solicitant"
msgid "Follow ups and new responses to this request have been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you are {{user_link}} and need to send a follow up."
-msgstr "Urmăririle si noile răspunsuri la aceasta cerere au fost stopate pentru a preveni spam-ul. Va rugam <a href=\"{{url}}\"> să ne contactaţi</a> dacă sunteţi {{user_link}} şi aveţi nevoie să trimiteţi o urmărire."
+msgstr "Urmăririle si noile răspunsuri la această cerere au fost stopate pentru a preveni spam-ul. Vă rugăm <a href=\"{{url}}\"> să ne contactaţi</a> dacă sunteţi {{user_link}} şi aveţi nevoie să trimiteţi follw up."
msgid "Follow us on twitter"
msgstr "Urmăriţi-ne pe Twitter"
msgid "Followups cannot be sent for this request, as it was made externally, and published here by {{public_body_name}} on the requester's behalf."
-msgstr ""
+msgstr "Follow up-urile nu pot fi trimise pentru această solicitare, pentru că a fost făcută extern și publicată aici de către {{public_body_name}} din partea celui care a făcut solicitarea."
msgid "For an unknown reason, it is not possible to make a request to this authority."
-msgstr "Pentru motive neconoscute, nu este posibil să facem c cerere către această autoritate."
+msgstr "Pentru motive necunoscute, nu este posibil să facem o cerere către această autoritate."
msgid "Forgotten your password?"
msgstr "Aţi uitat parola ?"
-msgid "Found %d public authority %s"
-msgid_plural "Found %d public authorities %s"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgid "Found {{count}} public authority {{description}}"
+msgid_plural "Found {{count}} public authorities {{description}}"
+msgstr[0] "Găsit {{count}} autoritate publică {{description}}"
+msgstr[1] "Găsit {{count}} autorităţi publice {{description}}"
+msgstr[2] "Găsit autorităţi publice {{description}}"
msgid "Freedom of Information"
msgstr "Libertatea de Informare"
@@ -829,7 +842,7 @@ msgid "Freedom of Information Act"
msgstr "Actul \"Libertatea de Informare\""
msgid "Freedom of Information law does not apply to this authority, so you cannot make\\n a request to it."
-msgstr ""
+msgstr "Legea accesului la informații de interes public nu se aplică acestei autorități, prin urmare nu poți face\\n o solicitare în acest sens."
msgid "Freedom of Information law no longer applies to"
msgstr "Legislaţia Libertăţii de Informare nu se mai aplică la "
@@ -853,22 +866,34 @@ msgid "Freedom of information requests to"
msgstr "Cereri \"Libertatea de informare\" făcute către"
msgid "From"
-msgstr ""
+msgstr "De la"
-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 ""
+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=\"{{url}}\">send it to us</a>."
+msgstr "De la pagina solicitării, încearcă să răspunzi unui mesaj particular, mai curând decât să trimiţi\\n un follow up general. Dacă ai nevoie să faci un follow up general şi ştii\\n un email care ar merge în locul potrivit, te rugăm <a href=\"{{url}}\">să ni-l trimiţi</a>."
msgid "From:"
msgstr "De la:"
msgid "GIVE DETAILS ABOUT YOUR COMPLAINT HERE"
-msgstr "DATI DETALII DESPRE PLÂNGEREA DVS. AICI"
+msgstr "DAŢI DETALII DESPRE PLÂNGEREA DVS. AICI"
msgid "Handled by post."
msgstr "Înmânat prin poştă"
+msgid "Has tag string/has tag string tag"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Model"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Name"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Value"
+msgstr ""
+
msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
-msgstr "Hello! Puteşi face cereri \"Libertatea de informare\" in {{country_name}} la {{link_to_website}}"
+msgstr "Hello! Puteţi face cereri \"Libertatea de informare\" în {{country_name}} la {{link_to_website}}"
msgid "Hello, {{username}}!"
msgstr "Hello, {{username}}!"
@@ -877,16 +902,21 @@ msgid "Help"
msgstr "Ajutor"
msgid "Here <strong>described</strong> means when a user selected a status for the request, and\\nthe most recent event had its status updated to that value. <strong>calculated</strong> is then inferred by\\n{{site_name}} for intermediate events, which weren't given an explicit\\ndescription by a user. See the <a href=\"{{search_path}}\">search tips</a> for description of the states."
-msgstr ""
+msgstr "Aici <strong>descris</strong> înseamnă când un utilizator selectează un status pentru solicitare, iar \\ncel mai recent eveniment şi-a actualizat statusul la acea valoare. <strong>calculated</strong> is then inferred by\\n{{site_name}} pentru evenimente intermediare, cărora nu li s-a dat o descriere\\nexplicită de către un utilizator. Vezi <a href=\"{{search_path}}\">search tips</a> pentru o descriere a stadiilor."
msgid "Here is the message you wrote, in case you would like to copy the text and save it for later."
msgstr "Aici este mesajul pe care l-aţi scris, pentru cazul în care vreţi să copiaţi textul şi să îl salvaţi pentru mai târziu."
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 ""
+"Salut! Avem nevoie de ajutorul vostru. Persoana care a făcut următoarea solicitare\\n nu ne-a transmis dacă a primit sau nu un răspuns. \n"
+"Aveți\\n un moment să o citiți și să ne ajutați astfel să ținem lucrurile în ordine pentru toată lumea?\\n Mulțumim."
+
+msgid "Hide request"
+msgstr "Ascunde cererea"
msgid "Holiday"
-msgstr ""
+msgstr "Vacanţă"
msgid "Holiday|Day"
msgstr "Sărbătoare|Zi"
@@ -897,11 +927,14 @@ msgstr "Sărbătoare|Descriere"
msgid "Home"
msgstr "Acasă"
+msgid "Home page"
+msgstr "Pagina principală"
+
msgid "Home page of authority"
-msgstr "Pagina de bază a autorităţii"
+msgstr "Website instituție"
msgid "However, you have the right to request environmental\\n information under a different law"
-msgstr ""
+msgstr "Cu toate acestea, ai dreptul de a solicita informaţii \\nprivind mediul în cadrul unei legi diferite"
msgid "Human health and safety"
msgstr "Sănătate şi asigurări"
@@ -910,7 +943,7 @@ msgid "I am asking for <strong>new information</strong>"
msgstr "Solicit <strong>noi informaţii</strong>"
msgid "I am requesting an <strong>internal review</strong>"
-msgstr "Soliciti <strong> o verificare internă</strong>"
+msgstr "Soliciți <strong> o verificare internă</strong>"
msgid "I don't like these ones &mdash; give me some more!"
msgstr "Nu îmi plac acestea &mdash; daţi-mi mai multe!"
@@ -919,19 +952,19 @@ msgid "I don't want to do any more tidying now!"
msgstr "Nu vreau să mai fac curăţenie acum!"
msgid "I like this request"
-msgstr ""
+msgstr "Îmi place această cerere"
msgid "I would like to <strong>withdraw this request</strong>"
msgstr "Aş dori să <strong>retrag această cerere</strong>"
msgid "I'm still <strong>waiting</strong> for my information\\n <small>(maybe you got an acknowledgement)</small>"
-msgstr ""
+msgstr "Încă <strong>aștept</strong> să primesc informațiile solicitate\\n <small>(poate ai primit o confirmare)</small>"
msgid "I'm still <strong>waiting</strong> for the internal review"
msgstr "Încă <strong> aştept </strong> verificarea internă"
msgid "I'm waiting for an <strong>internal review</strong> response"
-msgstr "Aştept un răspuns la <strong> verificarea internă </strong> "
+msgstr "Aştept un răspuns la <strong> verificarea internă </strong> "
msgid "I've been asked to <strong>clarify</strong> my request"
msgstr "Am fost rugat să <strong> clarific </strong> cererea mea."
@@ -945,2306 +978,2440 @@ msgstr "Am primit <strong>câteva dintre informaţii</strong>"
msgid "I've received an <strong>error message</strong>"
msgstr "Am primit <strong>un mesaj de eroare</strong>"
-msgid "If the address is wrong, or you know a better address, please <a href=\"%s\">contact us</a>."
-msgstr "Dacă adresa este greşită, sau dacă cunoaşteţi o altă adresă, vă rugăm <a href=\"%s\">să ne contactaţi</a>."
+msgid "I've received an error message"
+msgstr "Am primit un mesaj de eroare"
+
+msgid "Id"
+msgstr "Id"
+
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Dacă adresa este greşită sau dacă cunoaşteţi o altă adresă, vă rugăm <a href=\"{{url}}\">să ne contactaţi</a>."
+
+msgid "If the error was a delivery failure, and you can find an up to date FOI email address for the authority, please tell us using the form below."
+msgstr "Dacă eroarea a fost una determinată de eșecul livrării și poți să găsești o adresă pentru solicitări de informații pentru această autoritate, te rugăm să ne transmiți utilizând formularul de mai jos."
msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
-msgstr ""
+msgstr "Dacă acesta este inexact sau dacă dorești să trimiți un răspuns cu întârziere la solicitare \\nsau un email legat de un alt subiect către {{user}}, te rugăm\\n să ne trimiți un email {{contact_email}} pentru asistență."
-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 ""
+msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"{{url}}\">details</a>)."
+msgstr "Dacă ești nemulțumit de răspunsul primit de la\\n instituția publică, ai dreptul de a\\n face o plângere (<a href=\"{{url}}\">detalii</a>)."
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
-msgstr "Dacă aveţi în continuare probleme vă rugăm <a href=\"%s\"> să ne contactaţi</a>."
+msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Dacă aveţi în continuare probleme, vă rugăm <a href=\"{{url}}\"> să ne contactaţi</a>."
-msgid "If you are the requester, then you may <a href=\"%s\">sign in</a> to view the request."
-msgstr "Dacă sunteţi solicitantul, atunci trebuie să <a href=\"%s\">vă logaţi</a> pentru a vedea cererea."
+msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request."
+msgstr "Dacă sunteţi solicitantul, atunci trebuie să <a href=\"{{url}}\">vă logaţi</a> pentru a vedea cererea."
-msgid "If you are thinking of using a pseudonym,\\n please <a href=\"%s\">read this first</a>."
-msgstr ""
+msgid "If you are thinking of using a pseudonym,\\n please <a href=\"{{url}}\">read this first</a>."
+msgstr "Dacă dorești să folosești un pseudonim,\\n te rugăm <a href=\"{{url}}\">să citești întâi asta</a>."
msgid "If you are {{user_link}}, please"
msgstr "Dacă sunteţi{{user_link}}, vă rugăm"
msgid "If you believe this request is not suitable, you can report it for attention by the site administrators"
-msgstr ""
+msgstr "Dacă dvs. consideraţi ca această cerere nu este potrivită, puteţi să o raportaţi spre atenţia administratorilor"
msgid "If you can't click on it in the email, you'll have to <strong>select and copy\\nit</strong> from the email. Then <strong>paste it into your browser</strong>, into the place\\nyou would type the address of any other webpage."
-msgstr ""
+msgstr "Dacă nu îl poți accesa direct din email, va trebui să <strong>îl selectezi și să îl copiezi\\n</strong> direct în browser."
msgid "If you can, scan in or photograph the response, and <strong>send us\\n a copy to upload</strong>."
-msgstr ""
+msgstr "Dacă poți, <strong>trimite-ne\\n răspunsul scanat sau fotografiat, pentru a-l pune pe website</strong>."
msgid "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."
-msgstr ""
+msgstr "Dacă găsiti acest serviciu util ca responsabil în cadrul instituției pe Legea 544/2001, vă rugăm să solicitaţi departamentului IT să creeze un link, de la sectiunea web pentru informaţii publice a site-ului instituției/organizaţiei, către noi. "
msgid "If you got the email <strong>more than six months ago</strong>, then this login link won't work any\\nmore. Please try doing what you were doing from the beginning."
-msgstr ""
+msgstr "Dacă au trecut <strong>mai mult de șase luni</strong> de la primirea acestui email, atunci acest link de autentificare nu va mai funcționa. Te rugăm să refaci pasii de la început."
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 ""
+msgstr "Dacă nu aţi făcut deja asta, vă rugăm să transmiteți un mesaj, mai jos, autoritaţii comunicându-le că v-aţi retras cererea. În caz contrar, ei nu vor şti că aceasta a fost retrasă."
msgid "If you reply to this message it will go directly to {{user_name}}, who will\\nlearn your email address. Only reply if that is okay."
-msgstr ""
+msgstr "Răspunsul tău la acest mesaj va fi trimis direct către {{user_name}}, care îți va\\nvedea adresa de email. Trimite răspunsul doar dacă ești de acord cu acest lucru."
msgid "If you use web-based email or have \"junk mail\" filters, also check your\\nbulk/spam mail folders. Sometimes, our messages are marked that way."
-msgstr ""
+msgstr "Verifică și folderul de \\nspam/bulk. Se întâmplă uneori ca mesajele noastre să ajungă acolo."
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 ""
+msgstr "Dacă vrei să ridicăm această interdicţie, ne poţi\\n<a href=\"/help/contact\">contacta</a> explicându-ne motivele.\\n"
msgid "If you're new to {{site_name}}"
-msgstr ""
+msgstr "Dacă sunteţi nou pe {{site_name}}"
msgid "If you've used {{site_name}} before"
-msgstr ""
+msgstr "Dacă aţi mai utilizat {{site_name}} înainte"
msgid "If your browser is set to accept cookies and you are seeing this message,\\nthen there is probably a fault with our server."
-msgstr ""
+msgstr "Dacă browser-ul tău este setat să accepte cookies și poți vedea acest mesaj, \\natunci probabil există o defecțiune la serverul nostru."
+
+msgid "Incoming email address"
+msgstr "Adresă de email pentru intrare"
msgid "Incoming message"
-msgstr ""
+msgstr "Mesaj primit"
msgid "IncomingMessage|Cached attachment text clipped"
-msgstr ""
+msgstr "Mesaj primit |In cache text ataşat tăiat"
msgid "IncomingMessage|Cached main body text folded"
-msgstr ""
+msgstr "Mesaj primit |In cache textul principal pliat"
msgid "IncomingMessage|Cached main body text unfolded"
-msgstr ""
+msgstr "Mesaj primit |In cache textul principal nepliat"
msgid "IncomingMessage|Last parsed"
-msgstr ""
+msgstr "Mesaj primit |Ultimul analizat"
msgid "IncomingMessage|Mail from"
-msgstr ""
+msgstr "Mesaj primit |Mail de la "
msgid "IncomingMessage|Mail from domain"
-msgstr ""
+msgstr "Mesaj primit |Mail de la domeniul "
msgid "IncomingMessage|Sent at"
-msgstr ""
+msgstr "Mesaj primit | Trimis la"
msgid "IncomingMessage|Subject"
-msgstr ""
+msgstr "Mesaj primit | Subiect"
msgid "IncomingMessage|Valid to reply to"
-msgstr ""
+msgstr "Mesaj primit |Valid pentru răspuns la"
msgid "Individual requests"
-msgstr ""
+msgstr "Cereri individuale"
msgid "Info request"
-msgstr ""
+msgstr "Cerere info"
msgid "Info request event"
-msgstr ""
+msgstr "Eveniment cerere info"
msgid "InfoRequestEvent|Calculated state"
-msgstr ""
+msgstr "EvenimentCerereInfo | Stare calculat"
msgid "InfoRequestEvent|Described state"
-msgstr ""
+msgstr "EvenimentCerereInfo | Stare descrisă"
msgid "InfoRequestEvent|Event type"
-msgstr ""
+msgstr "EvenimentCerereInfo | Tip eveniment"
msgid "InfoRequestEvent|Last described at"
-msgstr ""
+msgstr "EvenimentCerereInfo | Ultima descriere la"
msgid "InfoRequestEvent|Params yaml"
-msgstr ""
+msgstr "EvenimentCerereInfo | Parametri yaml"
msgid "InfoRequestEvent|Prominence"
-msgstr ""
+msgstr "EvenimentCerereInfo | Proeminenţă"
msgid "InfoRequest|Allow new responses from"
-msgstr ""
+msgstr "CerereInfo | Permite noi răspunsuri de la"
msgid "InfoRequest|Attention requested"
-msgstr ""
+msgstr "CerereInfo|Necesită atenţie"
msgid "InfoRequest|Awaiting description"
-msgstr ""
+msgstr "CerereInfo | Aşteaptă descriere "
msgid "InfoRequest|Comments allowed"
-msgstr ""
+msgstr "CerereInfo|Comentarii permise"
msgid "InfoRequest|Described state"
-msgstr ""
+msgstr "CerereInfo | Stare descrisă "
msgid "InfoRequest|External url"
-msgstr ""
+msgstr "InfoRequest|External url"
msgid "InfoRequest|External user name"
-msgstr ""
+msgstr "InfoRequest|External user name"
msgid "InfoRequest|Handle rejected responses"
-msgstr ""
+msgstr "CerereInfo | Prelucrare răspunsuri respinse"
msgid "InfoRequest|Idhash"
-msgstr ""
+msgstr "CerereInfo | ldhash"
msgid "InfoRequest|Law used"
-msgstr ""
+msgstr "CerereInfo | Lege utilizată"
msgid "InfoRequest|Prominence"
-msgstr ""
+msgstr "CerereInfo | Proeminenţă"
msgid "InfoRequest|Title"
-msgstr ""
+msgstr "CerereInfo | Titlu"
msgid "InfoRequest|Url title"
-msgstr ""
+msgstr "CerereInfo | Titlu Url"
msgid "Information not held."
-msgstr ""
+msgstr "Informaţie nedeţinută"
msgid "Information on emissions and discharges (e.g. noise, energy,\\n radiation, waste materials)"
-msgstr ""
+msgstr "Informații legate de emisii și deversări (ex. zgomot, energie, \\n radiații, deșeuri)"
msgid "Internal review request"
-msgstr ""
+msgstr "Solicitare revizie intrenă"
msgid "Is {{email_address}} the wrong address for {{type_of_request}} requests to {{public_body_name}}? If so, please contact us using this form:"
-msgstr ""
+msgstr "Este {{email_address}} o adresă greşită pentru o {{type_of_request}} cerere adresată {{public_body_name}}? Dacă da, vă rugăm să ne contactaţi utilizând acest formular :"
msgid "It may be that your browser is not set to accept a thing called \"cookies\",\\nor cannot do so. If you can, please enable cookies, or try using a different\\nbrowser. Then press refresh to have another go."
-msgstr ""
+msgstr "Este posibil ca browser-ul tău să nu fie setat să accepte \"cookies\",\\nsau să nu poată face asta. Poți modifica setările sau să încerci să folosești un alt\\nbrowser. Apasă refresh pentru a încerca din nou."
msgid "Items matching the following conditions are currently displayed on your wall."
-msgstr ""
+msgstr "Subiectele care corespund următoarelor condiții sunt afișate pe pagina ta"
+
+msgid "Items sent in last month"
+msgstr "Itemi transmiși în ultima lună"
msgid "Joined in"
-msgstr ""
+msgstr "Înscris în"
msgid "Joined {{site_name}} in"
-msgstr ""
+msgstr "Înscris în {{site_name}} în"
-msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)."
-msgstr ""
+msgid "Just one more thing"
+msgstr "Încă un singur lucru"
+
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
+msgstr "Rămâneţi <strong> atent</strong>, este foarte probabil să obţineţi ceea ce doriţi (<a href=\"{{url}}\">why?</a>)."
msgid "Keywords"
-msgstr ""
+msgstr "Cuvinte cheie"
msgid "Last authority viewed: "
-msgstr ""
+msgstr "Ultima autoritate vizionată"
msgid "Last request viewed: "
-msgstr ""
+msgstr "Ultima cerere vizionată"
msgid "Let us know what you were doing when this message\\nappeared and your browser and operating system type and version."
-msgstr ""
+msgstr "Spune-ne ce făceai atunci când ți-a apărut\\nacest mesaj și ce tip și versiune de browser și sistem de operare folosești."
msgid "Link to this"
-msgstr ""
+msgstr "Link către aceasta"
+
+msgid "List all"
+msgstr "Listează tot"
msgid "List of all authorities (CSV)"
-msgstr ""
+msgstr "Lista tuturor autorităţilor (CSV)"
+
+msgid "Listing FOI requests"
+msgstr "Afişare cereri FOI"
+
+msgid "Listing public authorities"
+msgstr "Afişare autorităţi publice"
+
+msgid "Listing public authorities matching '{{query}}'"
+msgstr "Lista autorităților publice care corespund '{{query}}'"
+
+msgid "Listing tracks"
+msgstr "Lista înregistrărilor"
+
+msgid "Listing users"
+msgstr "Lista utilizatorilor"
msgid "Log in to download a zip file of {{info_request_title}}"
-msgstr ""
+msgstr "Logaţi-vă pentru a descărca un fişier .zip al {{info_request_title}}"
msgid "Log into the admin interface"
-msgstr ""
+msgstr "Conectare la interfaţa de administrare"
msgid "Long overdue."
-msgstr ""
+msgstr "Aşteptat de mult timp"
msgid "Made between"
-msgstr ""
+msgstr "Făcut între"
msgid "Mail server log"
-msgstr ""
+msgstr "Mail server log"
msgid "Mail server log done"
-msgstr ""
+msgstr "Mail server log done"
msgid "MailServerLogDone|Filename"
-msgstr ""
+msgstr "MailServerLogDone|Filename"
msgid "MailServerLogDone|Last stat"
-msgstr ""
+msgstr "MailServerLogDone|Last stat"
msgid "MailServerLog|Line"
-msgstr ""
+msgstr "MailServerLog|Line"
msgid "MailServerLog|Order"
-msgstr ""
+msgstr "MailServerLog|Order"
msgid "Make a new <strong>Environmental Information</strong> request"
-msgstr ""
+msgstr "Faceţi o nouă cerere de <strong> Informaţii de Mediu</strong> "
msgid "Make a new <strong>Freedom of Information</strong> request to {{public_body}}"
-msgstr ""
+msgstr "Faceţi o nouă cerere de <strong> Informaţii FOI</strong> către {{public_body}}"
msgid "Make a new<br/>\\n <strong>Freedom <span>of</span><br/>\\n Information<br/>\\n request</strong>"
-msgstr ""
+msgstr "Faceți o nouă<br/>\\n <strong>solicitare <span>de</span><br/>\\n informații<br/>\\de interes public</strong>"
msgid "Make a request"
-msgstr ""
+msgstr "Faceţi o cerere"
msgid "Make an {{law_used_short}} request to '{{public_body_name}}'"
-msgstr ""
+msgstr "Faceţi o nouă cerere {{law_used_short}} către '{{public_body_name}}'"
msgid "Make and browse Freedom of Information (FOI) requests"
-msgstr ""
+msgstr "Faceţi şi vizualizaţi cereri de Informaţii (FOI) requests"
msgid "Make your own request"
-msgstr ""
+msgstr "Faceţi cererea dvs. proprie"
msgid "Many requests"
-msgstr ""
+msgstr "Multe cereri"
msgid "Message"
-msgstr ""
+msgstr "Mesaj"
msgid "Message sent using {{site_name}} contact form, "
-msgstr ""
+msgstr "Mesaj trimis utilizând formularul de contact al {{site_name}} "
msgid "Missing contact details for '"
-msgstr ""
+msgstr "Lipsă detalii contact pentru '"
msgid "More about this authority"
-msgstr ""
+msgstr "Mai multe despre această autoritate"
msgid "More requests..."
-msgstr ""
+msgstr "Mai multe cereri"
msgid "More similar requests"
-msgstr ""
+msgstr "Mai multe cereri similare"
msgid "More successful requests..."
-msgstr ""
+msgstr "Mai multe cereri finalizate cu succes..."
msgid "My profile"
-msgstr ""
+msgstr "Profilul meu"
msgid "My request has been <strong>refused</strong>"
-msgstr ""
+msgstr "Cererea mea a fost <strong>refuzată</strong>"
msgid "My requests"
-msgstr ""
+msgstr "Cererile mele"
msgid "My wall"
-msgstr ""
+msgstr "Peretele meu"
msgid "Name can't be blank"
-msgstr ""
+msgstr "Campul Nume nu poate fi necompletat"
msgid "Name is already taken"
-msgstr ""
+msgstr "Numele este deja folosit"
msgid "New Freedom of Information requests"
-msgstr ""
+msgstr "O nouă cerere FOI"
+
+msgid "New censor rule"
+msgstr "Nouă regulă de cenzurare"
msgid "New e-mail:"
-msgstr ""
+msgstr "E-mail nou:"
msgid "New email doesn't look like a valid address"
-msgstr ""
+msgstr "Noul e-mail nu pare a fi o adresă validă"
msgid "New password:"
-msgstr ""
+msgstr "Parola nouă:"
msgid "New password: (again)"
-msgstr ""
+msgstr "Parola nouă (din nou) :"
msgid "New response to '{{title}}'"
-msgstr ""
+msgstr "Răspuns nou la '{{title}}'"
msgid "New response to your FOI request - "
-msgstr ""
+msgstr "Răspuns nou la cererea dvs FOI -"
msgid "New response to your request"
-msgstr ""
+msgstr "Răspuns nou la cererea dvs."
msgid "New response to {{law_used_short}} request"
-msgstr ""
+msgstr "Răspuns nou la cererea {{law_used_short}} "
msgid "New updates for the request '{{request_title}}'"
-msgstr ""
+msgstr "Actualizări noi la cererea '{{request_title}}'"
msgid "Newest results first"
-msgstr ""
+msgstr "Cele mai noi rezultate prima dată"
msgid "Next"
-msgstr ""
+msgstr "Următorul"
msgid "Next, crop your photo &gt;&gt;"
-msgstr ""
+msgstr "În continuare, decupaţi poza dvs. &gt;&gt;"
msgid "No requests of this sort yet."
-msgstr ""
+msgstr "Nici o cerere de acest tip încă."
msgid "No results found."
-msgstr ""
+msgstr "Nu s-au găsit rezultate."
msgid "No similar requests found."
-msgstr ""
+msgstr "Nu s-au găsit cereri similare."
+
+msgid "No tracked things found."
+msgstr "Nu au fost găsite înregistrări."
msgid "Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet."
-msgstr ""
+msgstr "Nimeni nu a făcut încă o cerere FOI către {{public_body_name}} utilizând acest site"
msgid "None found."
-msgstr ""
+msgstr "Nimic găsit."
msgid "None made."
-msgstr ""
+msgstr "Nimic făcut."
+
+msgid "Not a valid FOI request"
+msgstr "Nu este o solicitare de informații validă"
msgid "Note that the requester will not be notified about your annotation, because the request was published by {{public_body_name}} on their behalf."
-msgstr ""
+msgstr "Reţineți că solicitantul nu va fi notificat cu privire la adnotarea dvs deoarece cerere a fost publictă de către {{public_body_name}} în numele lor."
msgid "Now check your email!"
-msgstr ""
+msgstr "Verificati-vă email-ul !"
msgid "Now preview your annotation"
-msgstr ""
+msgstr "Acum previzualizaţi adnotările dvs."
msgid "Now preview your follow up"
-msgstr ""
+msgstr "Acum previzualizaţi urmăririle dvs."
msgid "Now preview your message asking for an internal review"
-msgstr ""
+msgstr "Acum previzualizaţi mesajul dvs. cerând o revizuire internă."
msgid "OR remove the existing photo"
-msgstr ""
+msgstr "SAU înlocuiţi poza existentă"
msgid "Offensive? Unsuitable?"
-msgstr ""
+msgstr "Ofensator ? Nepotrivit ?"
msgid "Oh no! Sorry to hear that your request was refused. Here is what to do now."
-msgstr ""
+msgstr "Oh nu! Ne pare rău că cererea dvs. a fost refuzată. Iată ce e de făcut acum."
msgid "Old e-mail:"
-msgstr ""
+msgstr "Emailul vechi:"
msgid "Old email address isn't the same as the address of the account you are logged in with"
-msgstr ""
+msgstr "Emailul vechi nu este acelaşi cu adresa contului în care sunteţi logat."
msgid "Old email doesn't look like a valid address"
-msgstr ""
+msgstr "Emailul vechi nu pare a fi o adresă validă"
msgid "On this page"
-msgstr ""
+msgstr "Pe această pagină"
msgid "One FOI request found"
-msgstr ""
+msgstr "O cerere FOI găsită"
msgid "One person found"
-msgstr ""
+msgstr "O persoană găsită"
msgid "One public authority found"
-msgstr ""
+msgstr "O autoritate publică găsită"
+
+msgid "Only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL – don't worry about breaking URLs through renaming, as the history is used to redirect"
+msgstr "Utilizează doar abrevieri care sunt foarte utilizate, altfel lasă câmpul necompletat. Numele scurt sau lung este utilizat în URL - nu îți face griji de ruperea URL-urilor prin redenumire, întrucât istoricul este utilizat pentru redirecționări"
msgid "Only requests made using {{site_name}} are shown."
-msgstr ""
+msgstr "Numai cererile facute utilizând {{site_name}} sunt afişate."
msgid "Only the authority can reply to this request, and I don't recognise the address this reply was sent from"
-msgstr ""
+msgstr "Numai autoritatea poate să răspundă la această cerere. Nu recunoaștem adresa de la care a fost trimisă"
msgid "Only the authority can reply to this request, but there is no \"From\" address to check against"
-msgstr ""
+msgstr "Numai autoritatea poate să răspundă la această cerere. Nu există o adresă \"de la\" pentru verificare."
msgid "Or search in their website for this information."
-msgstr ""
+msgstr "Sau căutaţi în site-ul lor această informaţie."
msgid "Original request sent"
-msgstr ""
+msgstr "Cererea originală trimisă"
msgid "Other:"
-msgstr ""
+msgstr "Altele:"
msgid "Outgoing message"
-msgstr ""
+msgstr "Mesaj in curs de trimitere"
msgid "OutgoingMessage|Body"
-msgstr ""
+msgstr "MesajTrimis|Conţinut"
msgid "OutgoingMessage|Last sent at"
-msgstr ""
+msgstr "MesajTrimis|Ultimul trimis la"
msgid "OutgoingMessage|Message type"
-msgstr ""
+msgstr "MesajTrimis|Tip mesaj"
msgid "OutgoingMessage|Status"
-msgstr ""
+msgstr "MesajTrimis|Status"
msgid "OutgoingMessage|What doing"
-msgstr ""
+msgstr "MesajTrimis|Ce se întamplă"
msgid "Partially successful."
-msgstr ""
+msgstr "Parţial succes."
msgid "Password is not correct"
-msgstr ""
+msgstr "Parola nu e corectă"
msgid "Password:"
-msgstr ""
+msgstr "Parola:"
msgid "Password: (again)"
-msgstr ""
+msgstr "Parola (din nou):"
msgid "Paste this link into emails, tweets, and anywhere else:"
-msgstr ""
+msgstr "Copiaţi acest link în email-uri, tweets şi oriunde altundeva:"
msgid "People"
-msgstr ""
+msgstr "Persoane"
msgid "People {{start_count}} to {{end_count}} of {{total_count}}"
-msgstr ""
+msgstr "Oameni de la {{start_count}} la {{end_count}} din {{total_count}}"
msgid "Photo of you:"
-msgstr ""
+msgstr "Poza dvs. :"
msgid "Plans and administrative measures that affect these matters"
-msgstr ""
+msgstr "Planuri şi măsuri administrative care afectează aceste probleme"
msgid "Play the request categorisation game"
-msgstr ""
+msgstr "Jucaţi categorisirea cerută"
msgid "Play the request categorisation game!"
-msgstr ""
+msgstr "Jucaţi categorisirea cerută!"
msgid "Please"
-msgstr ""
+msgstr "Vă rugăm"
-msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
-msgstr ""
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
+msgstr "Vă rugăm <a href=\"{{url}}\"> staţi în legătură</a> cu noi, ca să o rezolvăm."
msgid "Please <strong>answer the question above</strong> so we know whether the "
-msgstr ""
+msgstr "Vă rugăm <strong>răspundeţi la întrebarea de mai sus</strong> asftel încât să ştim dacă "
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 ""
+msgstr "Te rugăm <strong>accesează aceste solicitări</strong>, și anunță-ne\\n dacă au fost transmise informații prin ultimele răspunsuri la acestea."
msgid "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=\"{{new_request_link}}\">file a new request</a>."
-msgstr ""
+msgstr "Vă rugăm scrieţi <strong>numai</strong> mesaje direct legate de cererea dvs. {{request_link}}. Dacă doriţi să cereţi informaţii care nu au fost în cererea dvs originală, atunci <a href=\"{{new_request_link}}\"> emiteţi o nouă cerere</a>."
msgid "Please ask for environmental information only"
-msgstr ""
+msgstr "Vă rugăm cereţi doar informaţii de mediu"
msgid "Please check the URL (i.e. the long code of letters and numbers) is copied\\ncorrectly from your email."
-msgstr ""
+msgstr "Te rugăm să verifici dacă URL-ul a fost copiat\\n corect din email-ul tău."
msgid "Please choose a file containing your photo."
-msgstr ""
+msgstr "Vă rugăm alegeţi un fisier care conţine poza dvs."
msgid "Please choose what sort of reply you are making."
-msgstr ""
+msgstr "Vă rugăm alegeţi ce tip de răspuns faceţi."
msgid "Please choose whether or not you got some of the information that you wanted."
-msgstr ""
+msgstr "Vă rugăm alegeţi dacă aţi primit sau nu informaţia pe care aţi dorit-o."
msgid "Please click on the link below to cancel or alter these emails."
-msgstr ""
+msgstr "Vă rugăm daţi click pe link-ul de mai jos pentru a anula sau a modifica aceste emailuri."
msgid "Please click on the link below to confirm that you want to \\nchange the email address that you use for {{site_name}}\\nfrom {{old_email}} to {{new_email}}"
-msgstr ""
+msgstr "Te rugăm să accesezi link-ul de mai jos pentru a confirma \\nschimbarea adresei de email folosită pentru {{site_name}}\\ndin {{old_email}} în {{new_email}}"
msgid "Please click on the link below to confirm your email address."
-msgstr ""
+msgstr "Vă rugăm daţi click pe link-ul de mai jos pentru a confirma adresa dvs. de email."
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 ""
+msgstr "Vă rugăm descrieţi mai pe larg despre ce este vorba în cerere. Nu este necesar să spuneţi ca este o cerere FOI, vom adăuga aceasta oricum."
msgid "Please don't upload offensive pictures. We will take down images\\n that we consider inappropriate."
-msgstr ""
+msgstr "Te rugăm să nu încarci pe site poze ofensatoare. Vom șterge imaginile\\n pe care le considerăm neadecvate."
msgid "Please enable \"cookies\" to carry on"
-msgstr ""
+msgstr "Vă rugăm activaţi \"cookies\" pentru a funcţiona."
msgid "Please enter a password"
-msgstr ""
+msgstr "Vă rugăm introduceţi parola"
msgid "Please enter a subject"
-msgstr ""
+msgstr "Vă rugăm introduceţi un subiect"
msgid "Please enter a summary of your request"
-msgstr ""
+msgstr "Vă rugăm introduceţi un rezumat al cererii dvs."
msgid "Please enter a valid email address"
-msgstr ""
+msgstr "Vă rugăm introduceţi o adresă de email validă"
msgid "Please enter the message you want to send"
-msgstr ""
+msgstr "Vă rugăm introduceţi mesajul pe care vreţi să îl transmiteţi"
msgid "Please enter the same password twice"
-msgstr ""
+msgstr "Vă rugăm introduceţi aceeaşi parolă de două ori"
msgid "Please enter your annotation"
-msgstr ""
+msgstr "Vă rugăm introduceţi adnotările dvs."
msgid "Please enter your email address"
-msgstr ""
+msgstr "Vă rugăm introduceţi adresa dvs. de email"
msgid "Please enter your follow up message"
-msgstr ""
+msgstr "Vă rugăm introduceţi mesajele de tip follow up"
msgid "Please enter your letter requesting information"
-msgstr ""
+msgstr "Vă rugăm introduceţi scrisoarea dvs. de cerere de informaţii"
msgid "Please enter your name"
-msgstr ""
+msgstr "Vă rugăm introduceţi numele dvs."
msgid "Please enter your name, not your email address, in the name field."
-msgstr ""
+msgstr "Vă rugăm introduceţi numele dvs., nu adresa dvs. de email în câmpul nume"
msgid "Please enter your new email address"
-msgstr ""
+msgstr "Vă rugăm introduceţi noua dvs. adresă de email"
msgid "Please enter your old email address"
-msgstr ""
+msgstr "Vă rugăm introduceţi vechea dvs. adresă de email"
msgid "Please enter your password"
-msgstr ""
+msgstr "Vă rugăm introduceţi parola dvs."
msgid "Please give details explaining why you want a review"
-msgstr ""
+msgstr "Vă rugăm să ne oferiţi detalii, explicând de ce doriţi o revizuire."
msgid "Please keep it shorter than 500 characters"
-msgstr ""
+msgstr "Vă rugăm să îl menţineţi mai scurt de 500 de caractere"
msgid "Please keep the summary short, like in the subject of an email. You can use a phrase, rather than a full sentence."
-msgstr ""
+msgstr "Vă rugăm păstraţi rezumatul cât mai scurt, ca în subiectul unui email. "
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 ""
+msgstr "Te rugăm să soliciți numai informațiile ce se regăsesc în una din aceste categorii, <strong>nu pierde timpul\\n tău</strong> sau pe cel al instituțiilor solicitând informații irelevante."
msgid "Please select each of these requests in turn, and <strong>let everyone know</strong>\\nif they are successful yet or not."
-msgstr ""
+msgstr "Te rugăm să selectezi fiecare solicitare pe rând și <strong>să spui</strong>\\ndacă au primit răspuns sau nu."
-msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature"
-msgstr ""
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
+msgstr "Vă rugăm să vă semnaţi la finalul paginii cu numele dvs. sau modificaţi semnătura \"{{signoff}}\" "
msgid "Please sign in as "
-msgstr ""
+msgstr "Vă rugăm înscrieţi-vă ca"
msgid "Please sign in or make a new account."
-msgstr ""
+msgstr "Te rugăm să te autentifici sau să te înregistrezi."
msgid "Please type a message and/or choose a file containing your response."
-msgstr ""
-
-msgid "Please use the form below to tell us more."
-msgstr ""
+msgstr "Vă rugăm scrieţi un mesaj şi/sau alegeţi un fişier care conţine răspunsul dvs."
msgid "Please use this email address for all replies to this request:"
-msgstr ""
+msgstr "Vă rugăm utilizaţi aceasta adresă de email pentru toate răspunsurile la aceasta cerere."
msgid "Please write a summary with some text in it"
-msgstr ""
+msgstr "Vă rugăm scrieţi un rezumat cu ceva text în el"
msgid "Please write the summary using a mixture of capital and lower case letters. This makes it easier for others to read."
-msgstr ""
+msgstr "Vă rugăm scrieţi rezumatul utilizând atât litere mici cât şi litere mari. Astfel va fi mai uşor de citit."
msgid "Please write your annotation using a mixture of capital and lower case letters. This makes it easier for others to read."
-msgstr ""
+msgstr "Vă rugăm scrieţi adnotarile utilizând atât litere mici cât şi litere mari. Astfel va fi mai uşor de citit."
msgid "Please write your follow up message containing the necessary clarifications below."
-msgstr ""
+msgstr "Vă rugăm scrieţi mesajul dvs de urmărire conţinând clarificările necesare de mai jos"
msgid "Please write your message using a mixture of capital and lower case letters. This makes it easier for others to read."
-msgstr ""
+msgstr "Vă rugăm scrieţi mesajul dvs. utilizând atât litere mici cât şi litere mari. Astfel va fi mai uşor de citit."
msgid "Point to <strong>related information</strong>, campaigns or forums which may be useful."
-msgstr ""
+msgstr "Îndrumaţi către <strong>informaţii în legătură cu</strong>, campanii sau forumuri care ar putea fi utile."
msgid "Possibly related requests:"
-msgstr ""
+msgstr "Posibile cereri asemănătoare:"
msgid "Post annotation"
-msgstr ""
+msgstr "Postaţi o adnotare"
msgid "Post redirect"
-msgstr ""
+msgstr "Redirecţionare postare"
msgid "PostRedirect|Circumstance"
-msgstr ""
+msgstr "RedirecţionarePostare|Circumstanţe"
msgid "PostRedirect|Email token"
-msgstr ""
+msgstr "RedirecţionarePostare|Email token"
msgid "PostRedirect|Post params yaml"
-msgstr ""
+msgstr "RedirecţionarePostare|Parametrii postare yaml"
msgid "PostRedirect|Reason params yaml"
-msgstr ""
+msgstr "RedirecţionarePostare|Paramentrii motiv yaml"
msgid "PostRedirect|Token"
-msgstr ""
+msgstr "RedirecţionarePostare|Token"
msgid "PostRedirect|Uri"
-msgstr ""
+msgstr "RedirecţionarePostare|Url"
msgid "Posted on {{date}} by {{author}}"
-msgstr ""
+msgstr "Postat la {{date}} de către {{author}}"
msgid "Powered by <a href=\"http://www.alaveteli.org/\">Alaveteli</a>"
-msgstr ""
+msgstr "Oferit de <a href=\"http://www.alaveteli.org/\">Alaveteli</a>"
msgid "Prev"
-msgstr ""
+msgstr "Precedent"
msgid "Preview follow up to '"
-msgstr ""
+msgstr "Previzualizaţi urmare la "
msgid "Preview new annotation on '{{info_request_title}}'"
-msgstr ""
+msgstr "Previzualizaţi noi adnotări la '{{info_request_title}}'"
msgid "Preview your annotation"
-msgstr ""
+msgstr "Previzualizaţi adnotarea dvs."
msgid "Preview your message"
-msgstr ""
+msgstr "Previzualizaţi mesajul dvs."
msgid "Preview your public request"
-msgstr ""
+msgstr "Previzualizaţi cererea dvs."
msgid "Profile photo"
-msgstr ""
+msgstr "Poza profil"
msgid "ProfilePhoto|Data"
-msgstr ""
+msgstr "Poza de profil|Data"
msgid "ProfilePhoto|Draft"
-msgstr ""
+msgstr "Poza de profil|Ciornă"
msgid "Public authorities"
-msgstr ""
+msgstr "Instituții publice"
msgid "Public authorities - {{description}}"
-msgstr ""
+msgstr "Autorităţi publice - {{description}}"
msgid "Public authorities {{start_count}} to {{end_count}} of {{total_count}}"
-msgstr ""
-
-msgid "Public body"
-msgstr ""
+msgstr "Instituții publice de la {{start_count}} la {{end_count}} din {{total_count}}"
-msgid "Public body/translation"
-msgstr ""
-
-msgid "PublicBody::Translation|Disclosure log"
-msgstr ""
+msgid "Public authority – {{name}}"
+msgstr "Autoritatea publică – {{name}}"
-msgid "PublicBody::Translation|First letter"
-msgstr ""
-
-msgid "PublicBody::Translation|Locale"
-msgstr ""
-
-msgid "PublicBody::Translation|Name"
-msgstr ""
-
-msgid "PublicBody::Translation|Notes"
-msgstr ""
+msgid "Public body"
+msgstr "Autoritate publică"
-msgid "PublicBody::Translation|Publication scheme"
-msgstr ""
+msgid "Public notes"
+msgstr "Note publice"
-msgid "PublicBody::Translation|Request email"
-msgstr ""
+msgid "Public page"
+msgstr "Pagina publică"
-msgid "PublicBody::Translation|Short name"
-msgstr ""
-
-msgid "PublicBody::Translation|Url name"
-msgstr ""
+msgid "Public page not available"
+msgstr "Pagină publica indisponibilă"
msgid "PublicBody|Api key"
-msgstr ""
+msgstr "InstituţiePublică|Api key"
msgid "PublicBody|Disclosure log"
-msgstr ""
+msgstr "PublicBody|Disclosure log"
msgid "PublicBody|First letter"
-msgstr ""
+msgstr "Instituţie publică|Prima literă"
msgid "PublicBody|Home page"
-msgstr ""
+msgstr "Instituţie publică|Pagina principală"
msgid "PublicBody|Info requests count"
-msgstr ""
+msgstr "InstituţiePublică|Info număr de cereri "
msgid "PublicBody|Last edit comment"
-msgstr ""
+msgstr "Instituţie publică| Ultimul comentariu editat"
msgid "PublicBody|Last edit editor"
-msgstr ""
+msgstr "Instituţie publică| Ultimul editor"
msgid "PublicBody|Name"
-msgstr ""
+msgstr "Instituţie publică| Numele"
msgid "PublicBody|Notes"
-msgstr ""
+msgstr "Instituţie publică| Note"
msgid "PublicBody|Publication scheme"
-msgstr ""
+msgstr "Instituţie publică| Schema publicaţiilor"
msgid "PublicBody|Request email"
-msgstr ""
+msgstr "Instituţie publică| Cerere email"
msgid "PublicBody|Short name"
-msgstr ""
+msgstr "Instituţie publică| Nume scurt"
msgid "PublicBody|Url name"
-msgstr ""
+msgstr "Instituţie publică| Nume Url"
msgid "PublicBody|Version"
-msgstr ""
+msgstr "Instituţie publică| Versiune"
msgid "Publication scheme"
-msgstr ""
+msgstr "Schema publicaţiilor"
+
+msgid "Publication scheme URL"
+msgstr "Publication scheme URL"
msgid "Purge request"
-msgstr ""
+msgstr "Eliminare cerere"
msgid "PurgeRequest|Model"
-msgstr ""
+msgstr "EliminareCerere|Model"
msgid "PurgeRequest|Url"
-msgstr ""
+msgstr "EliminareCerere|Url"
msgid "RSS feed"
-msgstr ""
+msgstr "RSS feed"
msgid "RSS feed of updates"
-msgstr ""
+msgstr "RSS feed pentru actualizări"
msgid "Re-edit this annotation"
-msgstr ""
+msgstr "Re-editaţi această adnotare"
msgid "Re-edit this message"
-msgstr ""
+msgstr "Re-editaţi acest mesaj"
msgid "Read about <a href=\"{{advanced_search_url}}\">advanced search operators</a>, such as proximity and wildcards."
-msgstr ""
+msgstr "Citiţi despre <a href=\"{{advanced_search_url}}\"> operatori de căutare avansată</a>, cum ar fi asemănarea sau caractere \"joker\"."
msgid "Read blog"
-msgstr ""
+msgstr "Citește blog"
msgid "Received an error message, such as delivery failure."
-msgstr ""
+msgstr "S-a primit un mesaj de eroare, cum ar fi eroarea de livarare."
msgid "Recently described results first"
-msgstr ""
+msgstr "Prima dată rezultatele recent descrise"
msgid "Refused."
-msgstr ""
+msgstr "Refuzat"
msgid "Remember me</label> (keeps you signed in longer;\\n do not use on a public computer) "
-msgstr ""
+msgstr "Ține-mă minte</label> (rămâi înregistrat pentru mai mult timp;\\n nu folosi atunci când accesezi de la un computer public)"
msgid "Report abuse"
-msgstr ""
+msgstr "Raportare abuz"
msgid "Report an offensive or unsuitable request"
-msgstr ""
+msgstr "Raportaţi o cerere ofensatoare sau nepotrivită"
msgid "Report this request"
-msgstr ""
+msgstr "Raportaţi această cerere"
msgid "Reported for administrator attention."
-msgstr ""
+msgstr "Raportaţi în atenţia administratorului"
msgid "Request an internal review"
-msgstr ""
+msgstr "Solicitați o evaluare internă"
msgid "Request an internal review from {{person_or_body}}"
-msgstr ""
+msgstr "Solicitați o evaluare internă de la {{person_or_body}}"
+
+msgid "Request email"
+msgstr "Cere email"
msgid "Request has been removed"
-msgstr ""
+msgstr "Cererea a fost ştearsă"
msgid "Request sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
-msgstr ""
+msgstr "Cerere trimisă la {{public_body_name}} de către {{info_request_user}} la {{date}}."
msgid "Request to {{public_body_name}} by {{info_request_user}}. Annotated by {{event_comment_user}} on {{date}}."
-msgstr ""
+msgstr "Cerere către {{public_body_name}} de către {{info_request_user}}. Adnotată de către {{event_comment_user}} la {{date}}."
msgid "Requested from {{public_body_name}} by {{info_request_user}} on {{date}}"
-msgstr ""
+msgstr "Cerere de la {{public_body_name}} de către {{info_request_user}} la {{date}}"
msgid "Requested on {{date}}"
-msgstr ""
+msgstr "Cerere la data {{date}}"
msgid "Requests for personal information and vexatious requests are not considered valid for FOI purposes (<a href=\"/help/about\">read more</a>)."
-msgstr ""
+msgstr "Solicitările de informații personale și solicitările ofensatoare nu sunt considerate valide pentru scopurile solicitărilor de acces la informații (<a href=\"/help/about\">citește mai multe</a>)."
msgid "Requests or responses matching your saved search"
-msgstr ""
+msgstr "Cereri sau răspunsuri care întrunesc căutarea dvs."
msgid "Respond by email"
-msgstr ""
+msgstr "Răspuns prin email"
msgid "Respond to request"
-msgstr ""
+msgstr "Răspuns la cerere"
msgid "Respond to the FOI request"
-msgstr ""
+msgstr "Răspuns la cererea FOI"
msgid "Respond using the web"
-msgstr ""
+msgstr "Răspuns utilizând Internetul"
msgid "Response"
-msgstr ""
+msgstr "Răspuns"
msgid "Response from a public authority"
-msgstr ""
+msgstr "Răspuns de la o autoritate publică"
msgid "Response to '{{title}}'"
-msgstr ""
+msgstr "Răspuns la '{{title}}'"
msgid "Response to this request is <strong>delayed</strong>."
-msgstr ""
+msgstr "Răspunsul la această cerere este <strong> amânat</strong>."
msgid "Response to this request is <strong>long overdue</strong>."
-msgstr ""
+msgstr "Răspunsul la această cerere este <strong> mult peste termen</strong>."
msgid "Response to your request"
-msgstr ""
+msgstr "Răspuns la cererea dvs."
msgid "Response:"
-msgstr ""
+msgstr "Răspuns:"
msgid "Restrict to"
-msgstr ""
+msgstr "Resticţionat la"
msgid "Results page {{page_number}}"
-msgstr ""
+msgstr "Pagini rezultate {{page_number}}"
msgid "Save"
-msgstr ""
+msgstr "Salvează"
msgid "Search"
-msgstr ""
+msgstr "Caută"
msgid "Search Freedom of Information requests, public authorities and users"
-msgstr ""
+msgstr "Caută cerei FOI, autorităţi publice și utilizatori"
msgid "Search contributions by this person"
-msgstr ""
+msgstr "Caută contribuţii de la această persoană"
msgid "Search for words in:"
-msgstr ""
+msgstr "Caută cuvinte în:"
msgid "Search in"
-msgstr ""
+msgstr "Caută în"
msgid "Search over<br/>\\n <strong>{{number_of_requests}} requests</strong> <span>and</span><br/>\\n <strong>{{number_of_authorities}} authorities</strong>"
-msgstr ""
+msgstr "Caută prin<br/>\\n <strong>{{number_of_requests}} solicitări</strong> <span>şi</span><br/>\\n <strong>{{number_of_authorities}} autorităţi</strong>"
msgid "Search queries"
-msgstr ""
+msgstr "Caută interogări"
msgid "Search results"
-msgstr ""
+msgstr "Rezultate căutare"
msgid "Search the site to find what you were looking for."
-msgstr ""
+msgstr "Caută în site pentru a găsi informaţia dorită"
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests made to {{public_body_name}}"
+msgstr[0] "Caută printre cele {{count}} până la {{public_body_name}} cereri FOI"
+msgstr[1] "Caută printre cele {{count}} până la {{public_body_name}} cereri FOI făcute"
+msgstr[2] "Caută printre cele {{count}} cereri FOI {{public_body_name}} "
msgid "Search your contributions"
-msgstr ""
+msgstr "Caută contribuţia ta"
+
+msgid "See bounce message"
+msgstr "Vezi mesajul întors"
msgid "Select one to see more information about the authority."
-msgstr ""
+msgstr "Selectaţi una pentru a vedea informaţii despre această autoritate"
msgid "Select the authority to write to"
-msgstr ""
+msgstr "Selectaţi autoritatea căreia să îi scrieţi"
msgid "Send a followup"
-msgstr ""
+msgstr "Trimiteţi o urmărire"
msgid "Send a message to "
-msgstr ""
+msgstr "Trimite un mesaj"
msgid "Send a public follow up message to {{person_or_body}}"
-msgstr ""
+msgstr "Trimite un mesaj de urmărire public către {{person_or_body}}"
msgid "Send a public reply to {{person_or_body}}"
-msgstr ""
+msgstr "Trimite un răspuns public către {{person_or_body}}"
msgid "Send follow up to '{{title}}'"
-msgstr ""
+msgstr "Trimite follow up la '{{title}}'"
msgid "Send message"
-msgstr ""
+msgstr "Trimite un mesaj"
msgid "Send message to "
-msgstr ""
+msgstr "Trimite un mesaj către"
msgid "Send request"
-msgstr ""
+msgstr "Trimite cerere"
msgid "Set your profile photo"
-msgstr ""
+msgstr "Alege poza de profil"
+
+msgid "Short name"
+msgstr "Nume scurt"
msgid "Short name is already taken"
-msgstr ""
+msgstr "Numele scurt este deja folosit"
msgid "Show most relevant results first"
-msgstr ""
+msgstr "Arată mesajele relevante mai întâi"
msgid "Show only..."
-msgstr ""
+msgstr "Arată numai ..."
msgid "Showing"
-msgstr ""
+msgstr "Afşare"
msgid "Sign in"
-msgstr ""
+msgstr "Intrare in cont"
msgid "Sign in or make a new account"
-msgstr ""
+msgstr "Intrare in cont sau creare un cont nou"
msgid "Sign in or sign up"
-msgstr ""
+msgstr "Intrare în cont sau ieșire din cont"
msgid "Sign out"
-msgstr ""
+msgstr "Ieşire din cont"
msgid "Sign up"
-msgstr ""
+msgstr "Înscriere "
msgid "Similar requests"
-msgstr ""
+msgstr "Cereri similare"
msgid "Simple search"
-msgstr ""
+msgstr "Căutare simplă"
msgid "Some notes have been added to your FOI request - "
-msgstr ""
+msgstr "Au fost adăugate câteva note la cererea dvs. FOI"
msgid "Some of the information requested has been received"
-msgstr ""
+msgstr "Câteva informaţii solicitate au fost primite"
msgid "Some people who've made requests haven't let us know whether they were\\nsuccessful or not. We need <strong>your</strong> help &ndash;\\nchoose one of these requests, read it, and let everyone know whether or not the\\ninformation has been provided. Everyone'll be exceedingly grateful."
-msgstr ""
+msgstr "O parte din cei ce au trimis solicitări nu ne-au anunțat dacă acestea au avut sau nu succes. Avem nevoie de <strong>ajutorul și de contribuția</strong> ta;\\nalege un dintre aceste solicitări, citește-o, și spune-ne dacă \\ninformațiile au fost furnizate sau nu. Toată lumea va fi recunoascătoare."
msgid "Somebody added a note to your FOI request - "
-msgstr ""
+msgstr "Cineva a adăugat o notă la cererea dvs. FOI"
msgid "Someone has updated the status of your request"
-msgstr ""
+msgstr "Cineva a actualizat starea cererii dvs."
msgid "Someone, perhaps you, just tried to change their email address on\\n{{site_name}} from {{old_email}} to {{new_email}}."
-msgstr ""
+msgstr "Cineva, probabil tu, tocmai a încercat să schimbe adresa de email de pe \\n{{site_name}} din {{old_email}} în {{new_email}}."
msgid "Sorry - you cannot respond to this request via {{site_name}}, because this is a copy of the request originally at {{link_to_original_request}}."
-msgstr ""
+msgstr "Ne pare rău - nu poți răspunde acestei solicitări via {{site_name}}, pentru că aceasta este o copie a solicitării transmise la {{link_to_original_request}}."
msgid "Sorry, but only {{user_name}} is allowed to do that."
-msgstr ""
+msgstr "Scuze, dar numai {{user_name}} este abilitat să facă asta."
msgid "Sorry, there was a problem processing this page"
-msgstr ""
+msgstr "Scuze, este o problemă cu accesarea acestei pagini."
msgid "Sorry, we couldn't find that page"
-msgstr ""
+msgstr "Scuze, nu am găsit pagina"
msgid "Special note for this authority!"
-msgstr ""
+msgstr "O notă specială pentru această autoritate!"
msgid "Start"
-msgstr ""
+msgstr "Start"
msgid "Start now &raquo;"
-msgstr ""
+msgstr "Start acum &raquo;"
msgid "Start your own blog"
-msgstr ""
+msgstr "Incepeţi propriul jurnal"
msgid "Stay up to date"
-msgstr ""
+msgstr "Rămaneţi la curent"
msgid "Still awaiting an <strong>internal review</strong>"
-msgstr ""
+msgstr "Încă în aşteptarea unei <strong>revizii interne</strong>"
msgid "Subject"
-msgstr ""
+msgstr "Subiect"
msgid "Subject:"
-msgstr ""
+msgstr "Subiect:"
msgid "Submit"
-msgstr ""
+msgstr "Trimite"
msgid "Submit status"
-msgstr ""
+msgstr "Trimite starea"
+
+msgid "Submit status and send message"
+msgstr "Transmite statusul și trimite mesaj"
msgid "Subscribe to blog"
-msgstr ""
+msgstr "Înscriere pentru blog"
msgid "Successful Freedom of Information requests"
-msgstr ""
+msgstr "Cereri FOI cu succes"
msgid "Successful."
-msgstr ""
+msgstr "Succes"
msgid "Suggest how the requester can find the <strong>rest of the information</strong>."
-msgstr ""
+msgstr "Sugeraţi cum ar putea găsi solicitantul <strong>restul informaţiilior</strong>."
msgid "Summary:"
-msgstr ""
+msgstr "Rezumat:"
msgid "Table of statuses"
-msgstr ""
+msgstr "Tabelul stărilor"
msgid "Table of varieties"
-msgstr ""
+msgstr "Tabelul varietăţilor"
+
+msgid "Tags"
+msgstr "Etichete"
msgid "Tags (separated by a space):"
-msgstr ""
+msgstr "Etichete (separate de spatiu):"
msgid "Tags:"
-msgstr ""
+msgstr "Etichete"
msgid "Technical details"
-msgstr ""
+msgstr "Detalii tehnice"
msgid "Thank you for helping us keep the site tidy!"
-msgstr ""
+msgstr "Vă mulţumim pentru că ne ajutaţi să menţinem acest site îngrijit !"
msgid "Thank you for making an annotation!"
-msgstr ""
+msgstr "Vă mulţumim pentru adnotarea făcută!"
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 ""
+msgstr "Vă mulţumim pentru răspunsul la această cerere FOI! Răspunsul dvs. a fost publicat mai jos şi un link către răspunsul dvs. a fost trimis prin email către"
msgid "Thank you for updating the status of the request '<a href=\"{{url}}\">{{info_request_title}}</a>'. There are some more requests below for you to classify."
-msgstr ""
+msgstr "Vă mulţumim pentru actualizarea stării pentru cererea '<a href=\"{{url}}\">{{info_request_title}}</a>'. Mai există câteva cereri mai jos pe care ar trebui să le clasificaţi."
msgid "Thank you for updating this request!"
-msgstr ""
+msgstr "Mulţumim pentru actualizarea cererii!"
msgid "Thank you for updating your profile photo"
-msgstr ""
+msgstr "Mulţumim pentru actualizarea pozei de profil"
+
+msgid "Thank you! We'll look into what happened and try and fix it up."
+msgstr "Mulțumim! Vom verifica ce s-a întâmplat și vom încerca să reparăm eroarea."
msgid "Thanks for helping - your work will make it easier for everyone to find successful\\nresponses, and maybe even let us make league tables..."
-msgstr ""
+msgstr "Îți mulțumim pentru ajutor - acțiunile tale vor ușura obținerea unor răspunsuri bune pentru toată lumea"
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 ""
+msgstr "Mulțumim - asta îi va ajuta și pe alții să găsească informații utile. De \\nasemenea, daca ai nevoie, te putem sfătui cu privire la ce poți face în continuare legat de solicitarea ta."
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 ""
+msgstr "Mulțumim că ne ajuți să ținem lucrurile în ordine. Dacă ai nevoie, te putem sfătui cu privire la ce poți face în continuare legat de solicitarea ta."
msgid "That doesn't look like a valid email address. Please check you have typed it correctly."
-msgstr ""
+msgstr "Aceasta nu pare a fi o adresa de email validă. Vă rugăm verificaţi că aţi tastat corect."
msgid "The <strong>review has finished</strong> and overall:"
-msgstr ""
+msgstr "<strong>Revizia s-a finalizat</strong> şi per ansamblu:"
msgid "The Freedom of Information Act <strong>does not apply</strong> to"
-msgstr ""
+msgstr "Legea liberului acces la informaţii <strong>nu se aplică</strong> la"
msgid "The accounts have been left as they previously were."
-msgstr ""
+msgstr "Contuile au rămas aşa cum erau înainte."
msgid "The authority do <strong>not have</strong> the information <small>(maybe they say who does)"
-msgstr ""
+msgstr "Autoritatea <strong>nu are</strong> informatiile <small>(probabil vor spune cine le are)"
msgid "The authority only has a <strong>paper copy</strong> of the information."
-msgstr ""
+msgstr "Autoritatea are doar <strong>o copie tipărită</strong> a informaţiilor."
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 ""
+msgstr "Instituția <strong>solicită o adresă\\n poștală</strong>, pe lângă adresa de email, pentru a considera solicitarea validă."
msgid "The authority would like to / has <strong>responded by post</strong> to this request."
-msgstr ""
+msgstr "Autoritatea ar <strong>vrea să răspundă / a răspuns prin postarea</strong> la această cerere."
msgid "The email that you, on behalf of {{public_body}}, sent to\\n{{user}} to reply to an {{law_used_short}}\\nrequest has not been delivered."
-msgstr ""
+msgstr "Email-ul trimis din partea {{public_body}}, către\\n{{user}} ca răspuns la {{law_used_short}}\\nsolicitare nu a fost transmis."
msgid "The page doesn't exist. Things you can try now:"
-msgstr ""
+msgstr "Pagina nu există. Ceea ce puteţi încerca acum:"
msgid "The public authority does not have the information requested"
-msgstr ""
+msgstr "Autritatea publică nu deţine informaţiile solicitate"
msgid "The public authority would like part of the request explained"
-msgstr ""
+msgstr "Autritatea publică ar dori explicarea unei părţi a cererii"
msgid "The public authority would like to / has responded by post"
-msgstr ""
+msgstr "Autoritatea ar vrea să răspundă/a răspuns prin postare"
msgid "The request has been <strong>refused</strong>"
-msgstr ""
+msgstr "Cererea a fost <strong>refuzată</strong>"
msgid "The request has been updated since you originally loaded this page. Please check for any new incoming messages below, and try again."
-msgstr ""
+msgstr "Cererea a fost actualizată de când aţi încarcat iniţial această pagină. Vă rugăm verificaţi mai jos alte mesaje nou sosite, şi încercaţi din nou."
msgid "The request is <strong>waiting for clarification</strong>."
-msgstr ""
+msgstr "Cererea <strong>aşteapă clarificare</strong>."
msgid "The request was <strong>partially successful</strong>."
-msgstr ""
+msgstr "Cererea a fost <strong> parţial reuşită</strong>."
msgid "The request was <strong>refused</strong> by"
-msgstr ""
+msgstr "Cererea a fost <strong>refuzată</strong> de către"
msgid "The request was <strong>successful</strong>."
-msgstr ""
+msgstr "Cererea a fost <strong>reuşită</strong>"
msgid "The request was refused by the public authority"
-msgstr ""
+msgstr "Cererea a fost refuzată de către autoritatea publică"
-msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"%s\">contact us</a> if you have any questions."
-msgstr ""
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
+msgstr "Solicitarea pe care ai încercat să o vizualizezi a fost ștearsă. Există \\ndiverse motive pentru care am fi ales să faem asta, ne cerem scuze că nu putem oferi detalii exacte. Te rugăm <a\\n href=\"{{url}}\">să ne contactezi</a> dacă ai întrebări."
msgid "The requester has abandoned this request for some reason"
-msgstr ""
+msgstr "Solicitantul şi-a abandonat cererea din anumite motive"
-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 ""
+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 "Răspunsul la solicitarea ta a fost <strong>întârziat</strong>. Poţi spune că, \\n potrivit legii, autoritatea ar fi trebuit să răspundă în mod normal\\n <strong>prompt</strong> şi"
-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 ""
+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 "Răspunsul la solicitarea ta este <strong>mult întârziat</strong>. Poţi spune că, potrivit \\n legii, în oricare circumstanţe, autoritatea ar fi trebuit să răspundă \\n până acum"
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 ""
+msgstr "Acest index de căutare este în acest moment off-line, aşa ca nu putem afişa cererile FOI făcute către această autoritate."
msgid "The search index is currently offline, so we can't show the Freedom of Information requests this person has made."
+msgstr "Acest index de căutare este în acest moment off-line, aşa ca nu putem afişa cererile FOI pe care această persoană le-a făcut."
+
+msgid "The {{site_name}} team."
msgstr ""
msgid "Then you can cancel the alert."
-msgstr ""
+msgstr "Apoi puteţi anula alerta."
msgid "Then you can cancel the alerts."
-msgstr ""
+msgstr "Apoi puteţi anula alertele."
msgid "Then you can change your email address used on {{site_name}}"
-msgstr ""
+msgstr "Apoi puteţi modifica adresa dvs. de email utilizată pe {{site_name}}"
msgid "Then you can change your password on {{site_name}}"
-msgstr ""
+msgstr "Apoi puteţi modifica parola dvs. pe {{site_name}}"
msgid "Then you can classify the FOI response you have got from "
-msgstr ""
+msgstr "Apoi puteţi clasifica răspunsul FOI pe care l-aţi primit de la "
msgid "Then you can download a zip file of {{info_request_title}}."
-msgstr ""
+msgstr "Apoi puteţi descărca un fişier zip cu {{info_request_title}}."
msgid "Then you can log into the administrative interface"
-msgstr ""
+msgstr "Apoi vă puteţi conecta la interfaţa administrativă"
msgid "Then you can play the request categorisation game."
-msgstr ""
+msgstr "Apoi puteţi să jucaţi jocul de categorisire a cererii."
msgid "Then you can report the request '{{title}}'"
-msgstr ""
+msgstr "Apoi puteţi raporta cererea '{{title}}'"
msgid "Then you can send a message to "
-msgstr ""
+msgstr "Apoi puteţi trimite un mesaj către "
msgid "Then you can sign in to {{site_name}}"
-msgstr ""
+msgstr "Apoi puteţi să intraţi in contul dvs de pe {{site_name}}"
msgid "Then you can update the status of your request to "
-msgstr ""
+msgstr "Apoi puteţi să actualizaşi starea cererii dvs."
msgid "Then you can upload an FOI response. "
-msgstr ""
+msgstr "Apoi puteţi să încărcaţi un răspuns FOI"
msgid "Then you can write follow up message to "
-msgstr ""
+msgstr "Apoi puteţi să scrieţi un mesaj de urmărire către"
msgid "Then you can write your reply to "
-msgstr ""
+msgstr "Apoi puteţi să scrieţi răspunsul către"
msgid "Then you will be following all new FOI requests."
-msgstr ""
+msgstr "După aceea vei urmări toate solicitările de acces la informații noi."
msgid "Then you will be notified whenever '{{user_name}}' requests something or gets a response."
-msgstr ""
+msgstr "După aceea vei fi notificat de fiecare dată când '{{user_name}}' solicită ceva sau primește răspuns."
msgid "Then you will be notified whenever a new request or response matches your search."
-msgstr ""
+msgstr "Apoi veţi fi notificat de câte ori un răspuns sau o cerere corespunde căutării dvs."
msgid "Then you will be notified whenever an FOI request succeeds."
-msgstr ""
+msgstr "Apoi veţi fi notificat de câte ori o cerere FOI este reuşită."
msgid "Then you will be notified whenever someone requests something or gets a response from '{{public_body_name}}'."
-msgstr ""
+msgstr "Apoi veţi fi notificat de câte ori cineva solicită sau primeşte un răspuns de la '{{public_body_name}}'."
msgid "Then you will be updated whenever the request '{{request_title}}' is updated."
-msgstr ""
+msgstr "Apoi veţi fi informfat de câte cererea '{{request_title}}' este actualizată."
msgid "Then you'll be allowed to send FOI requests."
-msgstr ""
+msgstr "Apoi veţi putea să trimiteţi cereri FOI"
msgid "Then your FOI request to {{public_body_name}} will be sent."
-msgstr ""
+msgstr "Apoi cerere dvs. FOI către {{public_body_name}} va fi trimisă."
msgid "Then your annotation to {{info_request_title}} will be posted."
-msgstr ""
+msgstr "Apoi adnotarea dvs. către {{info_request_title}} va fi postată."
msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
-msgstr ""
-
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr "Sunt {{count}} adnotări noi la cererea dvs. {{info_request}}. Urmaţi acest link pentru a vedea ce au scris."
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 ""
+msgstr "Există <strong>mai mult de o persoană</strong> care utilizează acest site şi are acest nume.\\n Una dintre ele este afişată mai jos, în cazul în care cauţi pe altcineva:"
msgid "There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>."
-msgstr ""
+msgstr "Există o limită a numărului de cereri pe care le puteţi face într-o zi, deoarece nu dorim ca autorităţile publice să fie bombardate cu un mare număr de cereri inadecvate. Dacă consideraţi că aveţi un motiv întemeiat pentru a cere mărirea acestei limite, vă rugăm <a href='{{help_contact_path}}'>contactaţi</a>."
+
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
+msgstr[0] "Sunt {{count}} persoane care urmăresc această cerere."
+msgstr[1] "Sunt {{count}} persoane care urmăresc această cerere."
+msgstr[2] "Sunt {{count}} persoane care urmăresc această cerere."
msgid "There was a <strong>delivery error</strong> or similar, which needs fixing by the {{site_name}} team."
-msgstr ""
+msgstr "A apărut o <strong>eroare de transmitere</strong> sau similară ce va trebui să fie rezolvată de către echipa {{site_name}}."
msgid "There was an error with the words you entered, please try again."
-msgstr ""
+msgstr "Există o eroare printre cuvintele pe care le-aţi introdus, vă rugăm încercaţi din nou."
msgid "There were no requests matching your query."
-msgstr ""
+msgstr "Nu sunt cereri care satisfac interogarea dvs."
msgid "There were no results matching your query."
-msgstr ""
+msgstr "Nu sunt rezultate care satisfac interogarea dvs."
msgid "They are going to reply <strong>by post</strong>"
-msgstr ""
+msgstr "Ei vor răspunde <strong>prin postarea </strong>"
msgid "They do <strong>not have</strong> the information <small>(maybe they say who does)</small>"
-msgstr ""
+msgstr "Ei <strong>nu au</strong> informaţiile <small>(probabil vor spune cine le deţine)</small>"
msgid "They have been given the following explanation:"
-msgstr ""
+msgstr "Ei au oferit următoarea explicaţie"
msgid "They have not replied to your {{law_used_short}} request {{title}} promptly, as normally required by law"
-msgstr ""
+msgstr "Ei nu au răspuns prompt lacererea dvs {{title}} {{law_used_short}} aşa cum este prevăzut in mod normal prin lege"
msgid "They have not replied to your {{law_used_short}} request {{title}}, \\nas required by law"
-msgstr ""
+msgstr "Nu ţi-au răspuns la {{law_used_short}} solicitarea {{title}}, \\naşa cum specifică legea"
msgid "Things to do with this request"
-msgstr ""
+msgstr "Lucruri de făcut cu această cerere"
msgid "Things you're following"
-msgstr ""
+msgstr "Lucruri pe care le urmăriţi"
msgid "This authority no longer exists, so you cannot make a request to it."
-msgstr ""
+msgstr "Această autoritate nu mai există, deci nu puteţi face o cerere către aceasta."
-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 ""
+msgid "This comment has been hidden. See annotations to\\n find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
+msgstr "Acest comentariu a fost ascuns. Vezi adnotaţiile pentru\\n a afla de ce. Dacă eşti solicitantul, atunci te poţi <a href=\"{{url}}\">autentifica</a> pentru a vedea răspunsul."
msgid "This covers a very wide spectrum of information about the state of\\n the <strong>natural and built environment</strong>, such as:"
-msgstr ""
+msgstr "Aceasta acoperă un spectru foarte larg de informaţii despre stadiul\\n <strong>mediului natural şi construit</strong>, precum:"
msgid "This external request has been hidden"
-msgstr ""
+msgstr "Această cerere externăa fost ascunsă"
msgid "This is a plain-text version of the Freedom of Information request \"{{request_title}}\". The latest, full version is available online at {{full_url}}"
-msgstr ""
+msgstr "Aceasta este o versiune text-simplu a cererii FOI \"{{request_title}}\". Ultima versiune, completă, este disponibila online la {{full_url}}"
msgid "This is an HTML version of an attachment to the Freedom of Information request"
-msgstr ""
+msgstr "Aceasta este o versiune HTML a ataşamentului la cererea FOI."
msgid "This is because {{title}} is an old request that has been\\nmarked to no longer receive responses."
-msgstr ""
+msgstr "Aceasta este din cauză că {{title}} este o solicitare veche ce a fost \\nmarcată pentru a nu mai primi răspunsuri."
+
+msgid "This is the first version."
+msgstr "Aceasta este prima versiune."
msgid "This is your own request, so you will be automatically emailed when new responses arrive."
-msgstr ""
+msgstr "Acesata este cererea dvs proprie, aşa ca vi se va comunica automat prin când va sosi un răspuns."
-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 ""
+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=\"{{url}}\">sign in</a> to view the response."
+msgstr "Acest mesaj în curs de expediere a fost ascuns. Vezi adnotaţiile pentru\\n»»»»»»a afla de ce. Dacă eşti solicitantul, atunci te poţi <a href=\"{{url}}\">autentifica</a> pentru a vedea răspunsul."
msgid "This particular request is finished:"
-msgstr ""
+msgstr "Acesată cerere anume este finalizată:"
msgid "This person has made no Freedom of Information requests using this site."
-msgstr ""
+msgstr "Acestă persoană nu a făcut nici o cerere FOI utilizând acest site"
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgid "This person's annotations"
+msgstr "Adnotările acestei persoane"
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
+msgstr[0] "A {{count}} -a cerere FOI a acestei persoane"
+msgstr[1] "A {{count}} -a cerere FOI a acestei persoane"
+msgstr[2] "A {{count}} -a cerere FOI a acestei persoane"
-msgid "This person's annotations"
-msgstr ""
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
+msgstr[0] "A {{count}} -a adnotare a acestei persoane"
+msgstr[1] "A {{count}} -a adnotare a acestei persoane"
+msgstr[2] "A {{count}} -a adnotare a acestei persoane"
msgid "This request <strong>requires administrator attention</strong>"
-msgstr ""
+msgstr "Acestă cerere <strong>necesită atenţia administratorului</strong>"
msgid "This request has already been reported for administrator attention"
-msgstr ""
+msgstr "Această cerere a fost deja raportată spre atenţia administratorului"
msgid "This request has an <strong>unknown status</strong>."
-msgstr ""
+msgstr "Aceasta cerere are un status <strong>necunoscut</strong>."
msgid "This request has been <strong>hidden</strong> from the site, because an administrator considers it not to be an FOI request"
-msgstr ""
+msgstr "Această cerere a fost <strong>ascunsă </strong> de pe site deoarece un administrator consideră că nu poate fi o cerere FOI"
msgid "This request has been <strong>hidden</strong> from the site, because an administrator considers it vexatious"
-msgstr ""
+msgstr "Această cerere a fost <strong>ascunsă </strong> de pe site deoarece un administrator o consideră ofensatoare"
msgid "This request has been <strong>reported</strong> as needing administrator attention (perhaps because it is vexatious, or a request for personal information)"
-msgstr ""
+msgstr "Această cerere a fost <strong>raportată </strong> ca având nevoie de atenţia administratorului (probabil pentru că este ofensatoare sau solicită informaţii personale)"
msgid "This request has been <strong>withdrawn</strong> by the person who made it.\\n There may be an explanation in the correspondence below."
-msgstr ""
+msgstr "Această solicitare a fost <strong>retrasă</strong> de către persoana care a făcut-o. \\n S-ar putea să fie o explicaţie în corespondenţa de mai jos."
-msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"%s\">contact us</a>."
-msgstr ""
+msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Această solicitare a fost marcată pentru analizare de către administratorii siteului, nefiind ascunsă în acest moment. Dacă crezi că ar trebui ascunsă, te rugăm <a href=\"{{url}}\">contactează-ne</a>."
msgid "This request has been reported for administrator attention"
-msgstr ""
+msgstr "Această cerere a fost raportată spre atenţia administratorului"
msgid "This request has been set by an administrator to \"allow new responses from nobody\""
-msgstr ""
+msgstr "Această cerere a fost setată de către administrator să \" nu permită noi răspunsuri de la nimeni\""
msgid "This request has had an unusual response, and <strong>requires attention</strong> from the {{site_name}} team."
-msgstr ""
+msgstr "Această cerere are un raăspuns neobişnuit şi <strong> necesită atenţie </strong> din partea echipei {{site_name}} ."
msgid "This request has prominence 'hidden'. You can only see it because you are logged\\n in as a super user."
-msgstr ""
+msgstr "Această solicitare este evidenţiată ca \"ascunsă\". O poţi vedea doar pentru că eşti autentificat \\n ca super user."
-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 ""
+msgid "This request is hidden, so that only you the requester can see it. Please\\n <a href=\"{{url}}\">contact us</a> if you are not sure why."
+msgstr "Acest răspuns este ascuns, astfel încât doar solicitantul poate avea acces la el. Te rugăm\\n <a href=\"{{url}}\">să ne contactezi</a> dacă nu eşti sigur de ce."
msgid "This request is still in progress:"
-msgstr ""
+msgstr "Cerere este încă în derulare:"
+
+msgid "This request requires administrator attention"
+msgstr "Această solicitare are nevoie de intervenția administratorului"
msgid "This request was not made via {{site_name}}"
-msgstr ""
+msgstr "Cererea nu a fost făcută prin {{site_name}}"
-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 ""
+msgid "This response has been hidden. See annotations to find out why.\\n If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
+msgstr "Acest răspuns a fost ascuns. Vezi adnotările pentru a afla de ce.\\n Dacă eşti solicitantul, atunci te poţi <a href=\"{{url}}\">autentifica</a> pentru a vedea răspunsul."
msgid "This table shows the technical details of the internal events that happened\\nto this request on {{site_name}}. This could be used to generate information about\\nthe speed with which authorities respond to requests, the number of requests\\nwhich require a postal response and much more."
-msgstr ""
+msgstr "Acest tabel arată detaliile tehnice ale evenimentelor interne care au avut loc\\n cu această solicitare pe {{site_name}}. Acesta poate fi utilizat pentru a genera informaţii cu privire la\\nviteza cu care autorităţile răspund la solicitări, la numărul de solicitări\\ncare au nevoie de un răspuns scris şi multe altele."
msgid "This user has been banned from {{site_name}} "
-msgstr ""
+msgstr "Acest utilizator a fost blocat pentru {{site_name}} "
msgid "This was not possible because there is already an account using \\nthe email address {{email}}."
-msgstr ""
+msgstr "Acest lucru nu a fost posibil pentru că există deja un cont care utilizează\\nadresa de email {{email}}."
msgid "To cancel these alerts"
-msgstr ""
+msgstr "Pentru a anula aceste alerte"
msgid "To cancel this alert"
-msgstr ""
+msgstr "Pentru a anula această alertă"
msgid "To carry on, you need to sign in or make an account. Unfortunately, there\\nwas a technical problem trying to do this."
-msgstr ""
+msgstr "Pentru a continua, trebuie să te autentifici sau să te înregistrezi. Din păcate, a fost\\no problemă tehnică în încercarea de a face acest lucru."
msgid "To change your email address used on {{site_name}}"
-msgstr ""
+msgstr "Pentru a modifica adresa dvs. de email utilizată pe {{site_name}}"
msgid "To classify the response to this FOI request"
-msgstr ""
+msgstr "Pentru a clasifica răspunsul la această cerere FOI"
msgid "To do that please send a private email to "
-msgstr ""
+msgstr "Pentru a face aceasta, vă rugăm trimiteţi un email privat la"
msgid "To do this, first click on the link below."
-msgstr ""
+msgstr "Pentru a face aceasta, mai întâi daţi click pe linkul de mai jos"
msgid "To download the zip file"
-msgstr ""
+msgstr "Pentru a descărca fişierul zip"
msgid "To follow all successful requests"
-msgstr ""
+msgstr "Pentru a urmări toate solicitările la care s-a răspuns"
msgid "To follow new requests"
-msgstr ""
+msgstr "Pentru a urmări solicitările noi"
msgid "To follow requests and responses matching your search"
-msgstr ""
+msgstr "Pentru a urmări cererile şi răspunsurile care corespund căutării dvs."
msgid "To follow requests by '{{user_name}}'"
-msgstr ""
+msgstr "Pentru a urmări solicitările făcute de '{{user_name}}'"
msgid "To follow requests made using {{site_name}} to the public authority '{{public_body_name}}'"
-msgstr ""
+msgstr "Pentru a urmări solicitările făcute utilizând {{site_name}} către autoritatea publică '{{public_body_name}}'"
msgid "To follow the request '{{request_title}}'"
-msgstr ""
+msgstr "Pentru a urmări solicitarea '{{request_title}}'"
msgid "To help us keep the site tidy, someone else has updated the status of the \\n{{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."
-msgstr ""
+msgstr "Pentru a ne ajuta să ţinem site-ul curat, altcineva a actualizat statusul \\n{{law_used_full}}solicitării{{title}} pe care ai făcut-o către {{public_body}}, în \"{{display_status}}\". Dacă nu eşti de acord cu această categorisire, te rugăm să actualizezi statusul din nou în ceea ce consideri că este mai potrivit."
msgid "To let everyone know, follow this link and then select the appropriate box."
-msgstr ""
+msgstr "Pentru a afla orişicine, urmaţi acest link şi selectaţi căsuţa corespunzătoare"
msgid "To log into the administrative interface"
-msgstr ""
+msgstr "Pentru a vă conecta la interfaţa administrativă"
msgid "To play the request categorisation game"
-msgstr ""
+msgstr "Pentru a juca jocu categorisirea cererii"
msgid "To post your annotation"
-msgstr ""
+msgstr "Pentru a posta adnotarea dvs"
msgid "To reply to "
-msgstr ""
+msgstr "Pentru a răspunde la"
msgid "To report this FOI request"
-msgstr ""
+msgstr "Pentru a raporta acestă cerere FOI"
msgid "To send a follow up message to "
-msgstr ""
+msgstr "Pentu a trimite un mesaj de urmărire la"
msgid "To send a message to "
-msgstr ""
+msgstr "Pentru a trimite un mesaj la"
msgid "To send your FOI request"
-msgstr ""
+msgstr "Pentru a trimite cererea dvs. FOI"
msgid "To update the status of this FOI request"
-msgstr ""
+msgstr "Pentru a actualiza starea acestei cereri FOI"
msgid "To upload a response, you must be logged in using an email address from "
-msgstr ""
+msgstr "Pentru a încărca un răspuns trebuie să fiţi intrat în cont, folosind o adresă de email de la"
msgid "To use the advanced search, combine phrases and labels as described in the search tips below."
-msgstr ""
+msgstr "Pentru a utiliza căutarea avansată, combinaţi fraze şi etichete după cum este descris în trucurile de căutare de mai jos"
msgid "To view the email address that we use to send FOI requests to {{public_body_name}}, please enter these words."
-msgstr ""
+msgstr "Pentru a vedea adresa de email pe care noi o utilizăm pentru a trimite cereri FOI către {{public_body_name}}, vă rugăm introduceti aceste cuvinte."
msgid "To view the response, click on the link below."
-msgstr ""
+msgstr "Pentru a vedea răspunsul, daţi click pe linkul de mai jos."
msgid "To {{public_body_link_absolute}}"
-msgstr ""
+msgstr "Către {{public_body_link_absolute}}"
msgid "To:"
-msgstr ""
+msgstr "Către:"
msgid "Today"
-msgstr ""
+msgstr "Azi"
msgid "Too many requests"
-msgstr ""
+msgstr "Prea multe cereri"
msgid "Top search results:"
-msgstr ""
+msgstr "Top rezultate căutare:"
msgid "Track thing"
-msgstr ""
+msgstr "Urmărește acest lucru"
msgid "Track this person"
-msgstr ""
+msgstr "Urmăreşte această persoană"
msgid "Track this search"
-msgstr ""
+msgstr "Urmăreşte această căutare"
msgid "TrackThing|Track medium"
-msgstr ""
+msgstr "TrackThing|Track medium"
msgid "TrackThing|Track query"
-msgstr ""
+msgstr "TrackThing|Track query"
msgid "TrackThing|Track type"
-msgstr ""
+msgstr "TrackThing|Track type"
msgid "Turn off email alerts"
-msgstr ""
+msgstr "Opriţi alertele prin email"
msgid "Tweet this request"
-msgstr ""
+msgstr "Plasează pe Tweet acestă cerere"
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 ""
+msgstr "Tastaţi <strong><code>01/01/2008..14/01/2008</code></strong> pentru a arăta numai lucruri care s-au întâmplat în primele două saăpămâni din ianuarie."
msgid "URL name can't be blank"
-msgstr ""
+msgstr "Numele URL nu poate fi gol"
msgid "Unable to change email address on {{site_name}}"
-msgstr ""
+msgstr "Nu se poate modifica adresa de email pe {{site_name}}"
msgid "Unable to send a reply to {{username}}"
-msgstr ""
+msgstr "Nu se poate trimite un răspuns către {{username}}"
msgid "Unable to send follow up message to {{username}}"
-msgstr ""
+msgstr "Nu se poate trimite un mesaj de urmărire către {{username}}"
msgid "Unexpected search result type"
-msgstr ""
+msgstr "Tip neaşteptat de rezultat la căutare"
msgid "Unexpected search result type "
-msgstr ""
+msgstr "Tip neaşteptat de rezultat la căutare"
-msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"%s\">contact us</a> to sort it out."
-msgstr ""
+msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"{{url}}\">contact us</a> to sort it out."
+msgstr "Din păcate, nu ştim adresa de email pentru solicitări de acces la informaţii pentru respectiva autoritate, deci nu putem valida această solicitare. \\nTe rugăm <a href=\"{{url}}\">să ne contactezi</a> pentru a vedea cum putem rezolva situaţia."
msgid "Unfortunately, we do not have a working {{info_request_law_used_full}}\\naddress for"
-msgstr ""
+msgstr "Din păcate, nu avem o adresă funcţională {{info_request_law_used_full}}\\npentru"
msgid "Unknown"
-msgstr ""
+msgstr "Necunoscut"
msgid "Unsubscribe"
-msgstr ""
+msgstr "Dezabonare"
msgid "Unusual response."
-msgstr ""
+msgstr "Răspuns neobişnuit."
msgid "Update the status of this request"
-msgstr ""
+msgstr "Actualizaţi starea acestei cereri"
msgid "Update the status of your request to "
-msgstr ""
+msgstr "Actualizaţi starea cereri dvs."
msgid "Upload FOI response"
-msgstr ""
+msgstr "Încarcă răspuns FOI"
msgid "Use OR (in capital letters) where you don't mind which word, e.g. <strong><code>commons OR lords</code></strong>"
-msgstr ""
+msgstr "Utilizaţi SAU (cu litere mari) când contează oricare dintre cuvinte, de exemplu d, e.g. <strong><code> ministri SAU parlamentari </code></strong>"
msgid "Use quotes when you want to find an exact phrase, e.g. <strong><code>\"Liverpool City Council\"</code></strong>"
-msgstr ""
+msgstr "Utilizaţi ghilimele când doriţi să găsiţi o frază exactă, de exemplu <strong><code>\"Primăria oraşului Oradea\"</code></strong>"
msgid "User"
-msgstr ""
+msgstr "Utilizator"
msgid "User info request sent alert"
-msgstr ""
+msgstr "User info request sent alert"
+
+msgid "User – {{name}}"
+msgstr "Utilizator– {{name}}"
msgid "UserInfoRequestSentAlert|Alert type"
-msgstr ""
+msgstr "UserInfoRequestSentAlert|Tip Alerta"
msgid "User|About me"
-msgstr ""
+msgstr "Utilizator|Despre mine"
msgid "User|Address"
-msgstr ""
+msgstr "Utilizator|Adresă"
msgid "User|Admin level"
-msgstr ""
+msgstr "Utilizator|Nivel administrator"
msgid "User|Ban text"
-msgstr ""
+msgstr "Utilizator|Text interzis"
msgid "User|Dob"
-msgstr ""
+msgstr "Utilizator|Dob"
msgid "User|Email"
-msgstr ""
+msgstr "Utilizator|Email"
msgid "User|Email bounce message"
-msgstr ""
+msgstr "Utilizator|Mesaj de respingere email "
msgid "User|Email bounced at"
-msgstr ""
+msgstr "Utilizator|Email respins la"
msgid "User|Email confirmed"
-msgstr ""
+msgstr "Utilizator|Email confirmat"
msgid "User|Hashed password"
-msgstr ""
+msgstr "Utilizator|Parola criptată"
msgid "User|Last daily track email"
-msgstr ""
+msgstr "Utilizator|Ultima urmărire zilnica email"
msgid "User|Locale"
-msgstr ""
+msgstr "Utilizator|Local"
msgid "User|Name"
-msgstr ""
+msgstr "Utilizator|Nume"
msgid "User|No limit"
-msgstr ""
+msgstr "Utilizator|Fără limită"
msgid "User|Receive email alerts"
-msgstr ""
+msgstr "Utilizator|Primește alerte prin email"
msgid "User|Salt"
-msgstr ""
+msgstr "Utilizator|Sare"
msgid "User|Url name"
-msgstr ""
+msgstr "Utilizator|Nume URL"
+
+msgid "Version {{version}}"
+msgstr "Versiunea {{version}}"
msgid "View FOI email address"
-msgstr ""
+msgstr "Vezi adresa de email FOI"
msgid "View FOI email address for '{{public_body_name}}'"
-msgstr ""
+msgstr "Vezi adresa de email FOI pentru '{{public_body_name}}'"
msgid "View FOI email address for {{public_body_name}}"
-msgstr ""
+msgstr "Vezi adresa de email FOI pentru '{{public_body_name}}'"
msgid "View Freedom of Information requests made by {{user_name}}:"
-msgstr ""
+msgstr "Vezi cererile FOI făcute de {{user_name}}:"
msgid "View and search requests"
-msgstr ""
+msgstr "Vezi şi caută cereri"
msgid "View authorities"
-msgstr ""
+msgstr "Vezi autorităţi"
msgid "View email"
-msgstr ""
+msgstr "Vezi email"
msgid "View requests"
-msgstr ""
+msgstr "Vezi cereri"
msgid "Waiting clarification."
-msgstr ""
+msgstr "Aşteaptă clarificare"
msgid "Waiting for an <strong>internal review</strong> by {{public_body_link}} of their handling of this request."
-msgstr ""
+msgstr "Aşteaptă o <strong>revizuire internă</strong> de către {{public_body_link}} a prelucrării acestei cereri."
msgid "Waiting for the public authority to complete an internal review of their handling of the request"
-msgstr ""
+msgstr "Aşteaptă autoritatea publică să finalizeze o reviuire internă a prelucrării acestei cereri."
msgid "Waiting for the public authority to reply"
-msgstr ""
+msgstr "Aşteaptă răspunsul autorităţii publice"
msgid "Was the response you got to your FOI request any good?"
+msgstr "Răspunsul pe care l-aţi primit la cererea dvs. FOI vi-a fost de folos?"
+
+msgid "We consider it is not a valid FOI request, and have therefore hidden it from other users."
msgstr ""
-msgid "We do not have a working request email address for this authority."
+msgid "We consider it to be vexatious, and have therefore hidden it from other users."
msgstr ""
+msgid "We do not have a working request email address for this authority."
+msgstr "Nu avem o adresă de email valabilă pentru cererile adresate acestei autoritate."
+
msgid "We do not have a working {{law_used_full}} address for {{public_body_name}}."
-msgstr ""
+msgstr "Nu avem o adresă {{law_used_full}} valabilă pentru {{public_body_name}}."
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=\"{{url}}\">sign in</a> and let everyone know."
-msgstr ""
+msgstr "Nu ştim dacă cel mai recent răspuns la această solicitare conţine\\ninformaţie sau nu\\n &ndash;\\n»dacă ştii{{user_link}} te rugăm<a href=\"{{url}}\">autentifică-te</a>şi permite accesul tuturor."
-msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"%s\">details</a>). "
-msgstr ""
+msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"{{url}}\">details</a>). "
+msgstr "Nu îţi vom dezvălui adresa de email nimănui în afara cazurilor în care tu\\nsau legislaţia specificaţi altfel(<a href=\"{{url}}\">details</a>)."
msgid "We will not reveal your email address to anybody unless you\\nor the law tell us to."
-msgstr ""
+msgstr "Nu îţi vom dezvălui adresa de email nimănui în afara cazurilor în care tu\\nsau legislaţia specificaţi altfel."
msgid "We will not reveal your email addresses to anybody unless you\\nor the law tell us to."
-msgstr ""
+msgstr "Nu îţi vom dezvălui adresa de email nimănui în afara cazurilor în care tu\\nsau legislaţia specificaţi altfel."
msgid "We're waiting for"
-msgstr ""
+msgstr "Aşteptăm"
msgid "We're waiting for someone to read"
-msgstr ""
+msgstr "Aşteptăm ca cineva să citească"
msgid "We've sent an email to your new email address. You'll need to click the link in\\nit before your email address will be changed."
-msgstr ""
+msgstr "Ţi-am trimis un email la noua ta adresă de email. Va trebui să accesezi link-ul din el\\nînainte pentru ca adresa de email să îţi fie schimbată."
msgid "We've sent you an email, and you'll need to click the link in it before you can\\ncontinue."
-msgstr ""
+msgstr "Ţi-am trimis un email şi va trebui să accesezi link-ul din el înainte de a putea\\ncontinua."
msgid "We've sent you an email, click the link in it, then you can change your password."
-msgstr ""
+msgstr "Vi-am trimis un email, daţi clik pe link-ul din el, apoi puteţi să schimbaţi parola."
msgid "What are you doing?"
-msgstr ""
+msgstr "Ce faceţi ?"
msgid "What best describes the status of this request now?"
-msgstr ""
+msgstr "Ce ar descrie cel mai bine stare aceste cereri acum ?"
msgid "What information has been released?"
-msgstr ""
+msgstr "Ce informaţii au fost oferite ?"
msgid "What information has been requested?"
-msgstr ""
+msgstr "Ce informaţii au fost solicitate?"
msgid "When you get there, please update the status to say if the response \\ncontains any useful information."
-msgstr ""
+msgstr "Când ajungi acolo, te rugăm să îţi actualizezi statusul pentru a şti dacă răspunsul\\nconţine vreo informaţie utilă."
msgid "When you receive the paper response, please help\\n others find out what it says:"
-msgstr ""
+msgstr "Când primeşti răspunsul scris, ajută-i\\n pe ceilalţi să afle ce ţi s-a răspuns:"
-msgid "When you're done, <strong>come back here</strong>, <a href=\"%s\">reload this page</a> and file your new request."
-msgstr ""
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
+msgstr "Când aţi terminat, <strong>întoarceţi-vă aici</strong>, <a href=\"{{url}}\">reîncărcaţi acestă pagină</a> şi depuneţi noua dvs. cerere."
msgid "Which of these is happening?"
-msgstr ""
+msgstr "Care dintre acestea se întâmplă?"
msgid "Who can I request information from?"
-msgstr ""
+msgstr "De la cine aş puea cere informaţiile ?"
msgid "Withdrawn by the requester."
-msgstr ""
+msgstr "Retras de către solicitant."
msgid "Wk"
-msgstr ""
+msgstr "Wk"
msgid "Would you like to see a website like this in your country?"
-msgstr ""
+msgstr "Aţi dori să vedeţi un web-site ca acesta în ţara dvs. ?"
msgid "Write a reply"
-msgstr ""
+msgstr "Scrie un răspuns"
msgid "Write a reply to "
-msgstr ""
+msgstr "Scrie un răspuns către"
msgid "Write your FOI follow up message to "
-msgstr ""
+msgstr "Scrieţi mesajul dvs FOI de urmărire către"
msgid "Write your request in <strong>simple, precise language</strong>."
-msgstr ""
+msgstr "Fromulaţi cererea dvs. într-nm <strong>limbaj precis, simplu</strong>."
msgid "You"
-msgstr ""
+msgstr "Dvs."
msgid "You are already following new requests"
-msgstr ""
+msgstr "Deja urmărești solicitările noi"
msgid "You are already following requests to {{public_body_name}}"
-msgstr ""
+msgstr "Deja urmărești solicitările către {{public_body_name}}"
msgid "You are already following things matching this search"
-msgstr ""
+msgstr "Deja urmărești subiectele care corespund acestei căutări"
msgid "You are already following this person"
-msgstr ""
+msgstr "Deja urmărești această persoană"
msgid "You are already following this request"
-msgstr ""
+msgstr "Deja urmărești această solicitare"
msgid "You are already following updates about {{track_description}}"
-msgstr ""
+msgstr "Deja urmărești următoarele actualizări despre {{track_description}}"
msgid "You are currently receiving notification of new activity on your wall by email."
-msgstr ""
+msgstr "Primiţi în mod curent notificări pentru activităţi noi pe peretele dvs. sau prin email."
msgid "You are following all new successful responses"
-msgstr ""
+msgstr "Urmărești toate solicitările noi la care s-a răspuns"
msgid "You are no longer following {{track_description}}."
-msgstr ""
+msgstr "Nu mai urmăreşti {{track_description}}."
msgid "You are now <a href=\"{{wall_url_user}}\">following</a> updates about {{track_description}}"
-msgstr ""
+msgstr "Acum <a href=\"{{wall_url_user}}\">urmărești</a> actualizările despre {{track_description}}"
msgid "You can <strong>complain</strong> by"
-msgstr ""
+msgstr "Vă puteţi <strong> plânge </strong> către"
msgid "You can change the requests and users you are following on <a href=\"{{profile_url}}\">your profile page</a>."
-msgstr ""
+msgstr "Poți schimba solicitările și utilizatorii pe care îi urmărești <a href=\"{{profile_url}}\">pe pagina ta de profil</a>."
msgid "You can get this page in computer-readable format as part of the main JSON\\npage for the request. See the <a href=\"{{api_path}}\">API documentation</a>."
-msgstr ""
+msgstr "Poţi obţine această pagină într-un format computer-readable ca parte a paginii principale JSON\\n pentru solicitare. Vezi <a href=\"{{api_path}}\">documentaţia API</a>. "
msgid "You can only request information about the environment from this authority."
-msgstr ""
+msgstr "Puteţi solicita doar informaţii despre mediu acestei autorităţi"
msgid "You have a new response to the {{law_used_full}} request "
-msgstr ""
+msgstr "Aveţi un nou răspuns la cererea {{law_used_full}} "
msgid "You have found a bug. Please <a href=\"{{contact_url}}\">contact us</a> to tell us about the problem"
-msgstr ""
+msgstr "Aveţi o problema tehnică. Vă rugăm <a href=\"{{contact_url}}\">să ne contactaţi</a> pentru a ne spune despre problemă"
msgid "You have hit the rate limit on new requests. Users are ordinarily limited to {{max_requests_per_user_per_day}} requests in any rolling 24-hour period. You will be able to make another request in {{can_make_another_request}}."
-msgstr ""
+msgstr "Aţi atins limita maximă pentru cereri. Utilizatorii sunt de obicei limitaţi la {{max_requests_per_user_per_day}} cereri într-un interval de 24 de ore. Veţi putea face o nouă cerere în {{can_make_another_request}}."
msgid "You have made no Freedom of Information requests using this site."
-msgstr ""
+msgstr "Nu aţi făcut nici o cerere FOI utilizând acest site."
msgid "You have now changed the text about you on your profile."
-msgstr ""
+msgstr "Nu aţi schimbat textul referitor la profilul dvs."
msgid "You have now changed your email address used on {{site_name}}"
-msgstr ""
+msgstr "Acum aţi schimbat adresa dvs. de email utilizată pe {{site_name}}"
msgid "You just tried to sign up to {{site_name}}, when you\\nalready have an account. Your name and password have been\\nleft as they previously were.\\n\\nPlease click on the link below."
-msgstr ""
+msgstr "Tocmai ai încercat să te înregistrezi la {{site_name}}, când ai \\ndeja un cont. Numele şi parola ta au fost \\nlăsate aşa cum erau înainte.\\n\\nTe rugăm să accesezi link-ul de mai jos."
msgid "You know what caused the error, and can <strong>suggest a solution</strong>, such as a working email address."
-msgstr ""
+msgstr "Ştiţi ce a cauzat eroarea şi puteţi <strong>sugera o soluţie</strong>, cum ar fi o adresă de email valabilă."
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 ""
+msgstr "Poți <strong>include atașamente</strong>. Dacă vrei să atașezi un\\n fișier prea mare pentru email, utilizează formularul de mai jos."
-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 ""
+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=\"{{url}}\">send it to us</a>."
+msgstr "S-ar putea să găsești\\nunul pe website-ul lor sau telefonându-le și întrebând. Dacă reușești\\nsă găsești unul, atunci te rugăm<a href=\"{{url}}\">să ni-l trimiți și nouă</a>."
msgid "You may be able to find\\none on their website, or by phoning them up and asking. If you manage\\nto find one, then please <a href=\"{{help_url}}\">send it to us</a>."
-msgstr ""
+msgstr "S-ar putea să găsești\\nunul pe website-ul lor sau telefonându-le și întrebând. Dacă reușești\\nsă găsești unul, atunci te rugăm<a href=\"{{help_url}}\">să ni-l trimiți și nouă</a>."
msgid "You need to be logged in to change the text about you on your profile."
-msgstr ""
+msgstr "Trebuie să fiţi logat pentru a schimba textul referitor la profilul dvs."
msgid "You need to be logged in to change your profile photo."
-msgstr ""
+msgstr "Trebuie să fiţi logat pentru a schimba poza dvs. de profil."
msgid "You need to be logged in to clear your profile photo."
-msgstr ""
+msgstr "Trebuie să fiţi logat pentru a şterge poza dvs. de profil."
msgid "You need to be logged in to edit your profile."
-msgstr ""
+msgstr "Trebuie să fiţi conectat pentru a vă edita profilul"
msgid "You previously submitted that exact follow up message for this request."
-msgstr ""
+msgstr "Aţi trimis anterior exact acelaşi mesaj de urmărire pentru această cerere."
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 ""
+msgstr "Ar fi trebuit să primești o copie a solicitării tale prin email și poți răspunde\\n <strong>răspunzând</strong> la acel email. Pentru conveniență, adresa este:"
msgid "You want to <strong>give your postal address</strong> to the authority in private."
-msgstr ""
+msgstr "Vreţi să <strong>vă daţi adresa dvs. poştală</strong> către autoritate în privat."
msgid "You will be unable to make new requests, send follow ups, add annotations or\\nsend messages to other users. You may continue to view other requests, and set\\nup\\nemail alerts."
-msgstr ""
+msgstr "Nu vei mai putea face noi solicitări, trimite follow up-uri, adăuga adnotări sau\\ntrimite mesaje altor utilizatori. Poți continua să vizualizezi alte solicitări și să setezi\\n alerte prin email."
msgid "You will no longer be emailed updates for those alerts"
-msgstr ""
+msgstr "Nu vi se vor mai trimite actualizări pentru acele alerte."
msgid "You will now be emailed updates about {{track_description}}. <a href=\"{{change_email_alerts_url}}\">Prefer not to receive emails?</a>"
-msgstr ""
+msgstr "Acum veţi fi primi prin email actualizări referitoare la {{track_description}}. <a href=\"{{change_email_alerts_url}}\">Preferaţi să nu primiţi emailuri?</a>"
msgid "You will only get an answer to your request if you follow up\\nwith the clarification."
+msgstr "Vei primi un răspuns la solicitarea ta numai dacă revii\\ncu clarificări."
+
+msgid "You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further."
msgstr ""
msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
-msgstr ""
+msgstr "Ești autentificat.<a href=\"#\" id=\"send-request\">Continuă pentru transmiterea solicitării tale</a>"
msgid "You're long overdue a response to your FOI request - "
-msgstr ""
+msgstr "Sunteţi mult peste termen cu răspunsul la cererea dvs. FOI"
msgid "You're not following anything."
-msgstr ""
+msgstr "Nu urmărești nimic."
msgid "You've now cleared your profile photo"
-msgstr ""
-
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr "Acum aţi şters poza dvs. de profil"
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-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 ""
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
+msgstr "Numele tău <strong>va apărea public</strong> \\n (<a href=\"{{why_url}}\">de ce?</a>)\\n pe acest website și în motoarele de căutare. Dacă te\\n gândești să utilizezi un pseudonim, te rugăm \\n <a href=\"{{help_url}}\">să citești aceasta înainte</a>."
msgid "Your annotations"
-msgstr ""
+msgstr "Adnotările dvs."
msgid "Your details, including your email address, have not been given to anyone."
-msgstr ""
+msgstr "Detaliile dvs. inclusv adresa dvs. de email, nu au fost ofertite nimănui."
msgid "Your e-mail:"
-msgstr ""
+msgstr "Emailul dvs:"
-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 ""
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
+msgstr "Urmărirea dvs. nu a fost rimisă deoarece acest mesaj a fost stopat de protecţia anti-spam. Vă rugăm <a href=\"{{url}}\">să ne contactaţi</a> dacă doriţi cu adevărat să trimiteţi un mesaj de urmărire."
msgid "Your follow up message has been sent on its way."
-msgstr ""
+msgstr "Mesjaul dvs. de urmărire a fost trimis unde trebuie."
msgid "Your internal review request has been sent on its way."
-msgstr ""
+msgstr "Cererea dvs. de revizuire internă a fost trimisă unde trebuie."
msgid "Your message has been sent. Thank you for getting in touch! We'll get back to you soon."
-msgstr ""
+msgstr "Mesajul dvs. fost trimis. Vă mulţumim pentru informare. Vă vom contacta în curând."
msgid "Your message to {{recipient_user_name}} has been sent"
-msgstr ""
+msgstr "Mesajul dvs. către {{recipient_user_name}} a fost trimis"
msgid "Your message to {{recipient_user_name}} has been sent!"
-msgstr ""
+msgstr "Mesajul dvs către {{recipient_user_name}}a fost trimis!"
msgid "Your message will appear in <strong>search engines</strong>"
-msgstr ""
+msgstr "Mesajul dvs. va apărea în <strong>motoarele de căutare</strong>"
msgid "Your name and annotation will appear in <strong>search engines</strong>."
-msgstr ""
+msgstr "Numele şi adnotarea dvs. vor apărea în <strong>motoarele de căutare</strong>"
-msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"%s\">details</a>)."
-msgstr ""
+msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"{{url}}\">details</a>)."
+msgstr "Numele tău, solicitările tale şi orice răspunsuri vei primi vor apărea în <strong>motoare de căutare </strong>\\n (<a href=\"{{url}}\">details</a>)."
msgid "Your name:"
-msgstr ""
+msgstr "Numele dvs:"
msgid "Your original message is attached."
-msgstr ""
+msgstr "Mesajul dvs. original este ataşat."
msgid "Your password has been changed."
-msgstr ""
+msgstr "Parola dvs. a fost modificată."
msgid "Your password:"
-msgstr ""
+msgstr "Parola dvs.:"
msgid "Your photo will be shown in public <strong>on the Internet</strong>,\\n wherever you do something on {{site_name}}."
+msgstr "Fotografia ta va fi făcută publică <strong>pe Internet</strong>,\\n oriunde faci ceva pe {{site_name}}."
+
+msgid "Your request '{{request}}' at {{url}} has been reviewed by moderators."
msgstr ""
-msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
+msgid "Your request on {{site_name}} hidden"
msgstr ""
+msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
+msgstr "Cererea dvs. a fost numită {{info_request}}. Permiţând tuturor să afle dacă aţi obţinut informaţiile, ne ajutaţi să menţinem o evidenţă"
+
msgid "Your request:"
-msgstr ""
+msgstr "Cererea dvs:"
msgid "Your response to an FOI request was not delivered"
-msgstr ""
+msgstr "Răspunsul dvs. la o cerere FOI nu a fost livrat"
-msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"%s\">read why</a> and answers to other questions."
-msgstr ""
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
+msgstr "Răspunsul dvs. <strong>va apărea pe Internet</strong>, <a href=\"{{url}}\">read why</a> şi răspunsurile la alte întrebări."
msgid "Your thoughts on what the {{site_name}} <strong>administrators</strong> should do about the request."
-msgstr ""
+msgstr "Consideraţiile dvs. cu privire la ceea ce <strong>administratorii</strong> {{site_name}} ar trebui să facă în legătură cu cererea."
+
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
+msgstr[0] "A {{count}} -a cerere FOI a dvs."
+msgstr[1] "A {{count}} -a cerere FOI a dvs."
+msgstr[2] "A {{count}} -a cerere FOI a dvs."
+
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
+msgstr[0] "A {{count}} -a adnotare a dvs."
+msgstr[1] "A {{count}} -a adnotare a dvs."
+msgstr[2] "A {{count}} -a adnotare a dvs."
msgid "Your {{site_name}} email alert"
-msgstr ""
+msgstr "Alerta dvs. prin email {{site_name}}"
msgid "Yours faithfully,"
-msgstr ""
+msgstr "Cu respect,"
msgid "Yours sincerely,"
+msgstr "Cu stimă,"
+
+msgid "Yours,"
msgstr ""
msgid "[FOI #{{request}} email]"
-msgstr ""
+msgstr "[FOI #{{request}} email]"
msgid "[{{public_body}} request email]"
-msgstr ""
+msgstr "[{{public_body}} email cerere]"
msgid "[{{site_name}} contact email]"
-msgstr ""
+msgstr "[{{site_name}} email contact]"
msgid "\\n\\n[ {{site_name}} note: The above text was badly encoded, and has had strange characters removed. ]"
msgstr "\\n\\n[ {{site_name}} notă: Codul de mai sus este encodat greșit și i-au fost scoase caracterele greșite. ]"
msgid "a one line summary of the information you are requesting, \\n\t\t\te.g."
-msgstr ""
+msgstr "un sumar de un rând al informației pe care o soliciți, \\n»»»i.e"
msgid "admin"
-msgstr ""
+msgstr "administrator"
+
+msgid "alaveteli_foi:The software that runs {{site_name}}"
+msgstr "alaveteli_foi:Software-ul utilizat pentru {{site_name}}"
msgid "all requests"
-msgstr ""
+msgstr "toate cererile"
msgid "also called {{public_body_short_name}}"
-msgstr ""
+msgstr "deasemenea numit şi {{public_body_short_name}}"
msgid "an anonymous user"
-msgstr ""
+msgstr "un utilizator anonim"
msgid "and"
-msgstr ""
+msgstr "şi"
msgid "and update the status accordingly. Perhaps <strong>you</strong> might like to help out by doing that?"
-msgstr ""
+msgstr "şi actualizaţi corespunzător starea. Poate <strong>aţi dori</strong> un ajutor în acest scop?"
msgid "and update the status."
-msgstr ""
+msgstr "şi actualizaţi starea"
msgid "and we'll suggest <strong>what to do next</strong>"
-msgstr ""
+msgstr "şi noi vă vom sugera <strong>ce să faceţi în continuare</strong>"
msgid "any <a href=\"/list\">new requests</a>"
-msgstr ""
+msgstr "orice <a href=\"/list\">noi cereri </a>"
msgid "any <a href=\"/list/successful\">successful requests</a>"
-msgstr ""
+msgstr "orice<a href=\"/list/successful\"> cereri reuşite</a>"
msgid "anything"
-msgstr ""
+msgstr "orice"
msgid "are long overdue."
-msgstr ""
+msgstr "sunt mult peste termen"
+
+msgid "at"
+msgstr "la"
msgid "authorities"
-msgstr ""
+msgstr "autorităţi"
msgid "awaiting a response"
-msgstr ""
+msgstr "aşteptînd un răspuns"
msgid "beginning with ‘{{first_letter}}’"
-msgstr ""
+msgstr "începând cu ‘{{first_letter}}’"
msgid "between two dates"
-msgstr ""
+msgstr "între două date"
+
+msgid "but followupable"
+msgstr "dar care poate fi urmărit"
msgid "by"
-msgstr ""
+msgstr "către"
msgid "by <strong>{{date}}</strong>"
-msgstr ""
+msgstr "până la <strong>{{date}}</strong>"
msgid "by {{public_body_name}} to {{info_request_user}} on {{date}}."
-msgstr ""
+msgstr "de către{{public_body_name}} către {{info_request_user}} la {{date}}."
msgid "by {{user_link_absolute}}"
-msgstr ""
+msgstr "de către {{user_link_absolute}}"
msgid "comments"
-msgstr ""
+msgstr "comentarii"
msgid "containing your postal address, and asking them to reply to this request.\\n Or you could phone them."
-msgstr ""
+msgstr "conținând adresa ta poștală și cerându-le să îți răspundă la această solicitare.\\n Sau le-ai putea telefona."
msgid "details"
-msgstr ""
+msgstr "detalii"
msgid "display_status only works for incoming and outgoing messages right now"
-msgstr ""
+msgstr "afişarea stării funcţionează numai pentru mesajele primite sau trimise chiar acum"
msgid "during term time"
-msgstr ""
+msgstr "pe perioada termenului"
msgid "edit text about you"
-msgstr ""
+msgstr "editati textul despre dvs-"
msgid "even during holidays"
-msgstr ""
+msgstr "chiar şi pe perioada vacanţelor"
msgid "everything"
-msgstr ""
+msgstr "orice"
msgid "external"
-msgstr ""
+msgstr "extern"
msgid "has reported an"
-msgstr ""
+msgstr "a fost raportat un"
msgid "have delayed."
-msgstr ""
+msgstr "a fost amânata"
msgid "hide quoted sections"
-msgstr ""
+msgstr "ascunde secţiunile citate"
msgid "in term time"
-msgstr ""
+msgstr "în termen"
msgid "in the category ‘{{category_name}}’"
-msgstr ""
+msgstr "în categoria ‘{{category_name}}’"
msgid "internal error"
-msgstr ""
+msgstr "eroare internă"
msgid "internal reviews"
-msgstr ""
+msgstr "revizuire internă"
msgid "is <strong>waiting for your clarification</strong>."
-msgstr ""
+msgstr " <strong>aşteaptă clarificarea dvs.</strong>."
msgid "just to see how it works"
-msgstr ""
+msgstr "doar să vedeţi cum funcţionează"
msgid "left an annotation"
-msgstr ""
+msgstr "lăsaţi o adnotare"
msgid "made."
-msgstr ""
+msgstr "efectuat."
msgid "matching the tag ‘{{tag_name}}’"
-msgstr ""
+msgstr "corespunzător etichetei ‘{{tag_name}}’"
msgid "messages from authorities"
-msgstr ""
+msgstr "mesaje de la autorităţi"
msgid "messages from users"
-msgstr ""
+msgstr "mesaje de la utilizatori"
+
+msgid "move..."
+msgstr "treci..."
msgid "no later than"
-msgstr ""
+msgstr "nu mai târziu de"
-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 ""
+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=\"{{url}}\">send it to us</a>."
+msgstr "nu mai există. Dacă încerci să faci\\n De la pagina solicitării, încearcă să răspunzi unui mesaj particular, mai curând decât să trimiți\\n un follow up general. Dacă vrei să trimiți un follow up general și știi\\n un email care va duce către locul potrivit, te rugăm<a href=\"{{url}}\">trimite-ni-l</a>."
msgid "normally"
-msgstr ""
+msgstr "în mod normal"
+
+msgid "not requestable due to: {{reason}}"
+msgstr "nu poate fi solicitat pentru că: {{reason}}"
msgid "please sign in as "
-msgstr ""
+msgstr "vă rugăm să vă înscrieţi ca"
msgid "requesting an internal review"
-msgstr ""
+msgstr "cerând o revizuire internă"
msgid "requests"
-msgstr ""
+msgstr "cereri"
msgid "requests which are {{list_of_statuses}}"
-msgstr ""
+msgstr "cereri care sunt {{list_of_statuses}}"
msgid "response as needing administrator attention. Take a look, and reply to this\\nemail to let them know what you are going to do about it."
-msgstr ""
+msgstr "răspuns ca având nevoie de atenția administratorului. Uită-te pe el și răspunde la acest\\nemail pentru a-i anunța cu privire la ce vei face în legătură cu aceasta."
msgid "send a follow up message"
-msgstr ""
+msgstr "timiteţi un mesaj de urmărire"
msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
-msgstr ""
+msgstr "trimis către {{public_body_name}} de către {{info_request_user}} la {{date}}."
+
+msgid "set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA"
+msgstr "setat pe <strong>gol</strong> (empty string) dacp nu poate găsi o adresă; aceste emailuri sunt <strong>publice</strong> pentru că oricine le poate vizualiza prin introducerea CAPTCHA"
msgid "show quoted sections"
-msgstr ""
+msgstr "arată secţiunile citate"
msgid "sign in"
-msgstr ""
+msgstr "conectare"
msgid "simple_date_format"
-msgstr ""
+msgstr "simple_date_format"
msgid "successful"
-msgstr ""
+msgstr "reuşit"
msgid "successful requests"
-msgstr ""
+msgstr "cereri reuşite"
msgid "that you made to"
-msgstr ""
+msgstr "pe care aţi făcut-o către"
msgid "the main FOI contact address for {{public_body}}"
-msgstr ""
+msgstr "principala adresă de contact FOI pentru {{public_body}}"
+#. This phrase completes the following sentences:
+#. Request an internal review from...
+#. Send a public follow up message to...
+#. Send a public reply to...
+#. Don't want to address your message to... ?
msgid "the main FOI contact at {{public_body}}"
-msgstr ""
+msgstr "Principalul contact FOI la {{public_body}}"
msgid "the requester"
-msgstr ""
+msgstr "solicitantul"
msgid "the {{site_name}} team"
-msgstr ""
+msgstr "echipa {{site_name}}"
msgid "to read"
-msgstr ""
+msgstr "a citi"
msgid "to send a follow up message."
-msgstr ""
+msgstr "a transmite un mesaj de urmărire"
msgid "to {{public_body}}"
-msgstr ""
+msgstr "către {{public_body}}"
msgid "unexpected prominence on request event"
-msgstr ""
+msgstr "proeminenţă neaşteptată la un eveniment cerere"
msgid "unknown reason "
-msgstr ""
+msgstr "motiv necunoscut"
msgid "unknown status "
-msgstr ""
+msgstr "stare necunocută"
msgid "unresolved requests"
-msgstr ""
+msgstr "cereri nesoluţionate"
msgid "unsubscribe"
-msgstr ""
+msgstr "dezabonare"
msgid "unsubscribe all"
-msgstr ""
+msgstr "dezabonare totală"
msgid "unsuccessful"
-msgstr ""
+msgstr "nereuşit"
msgid "unsuccessful requests"
-msgstr ""
+msgstr "cereri nereuşite"
msgid "useful information."
-msgstr ""
+msgstr "informaţii utile"
msgid "users"
-msgstr ""
+msgstr "utilizatori"
+
+msgid "what's that?"
+msgstr "ce este aceasta?"
msgid "{{count}} FOI requests found"
-msgstr ""
+msgstr "{{count}} cereri FOI găsite"
+
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] "{{count}} cereri FOI până la {{public_body_name}}"
+msgstr[1] "{{count}} cereri FOI până {{public_body_name}}"
+msgstr[2] "{{count}} solicitări de acces la informaţie până la {{public_body_name}} "
+
+msgid "{{count}} person is following this authority"
+msgid_plural "{{count}} people are following this authority"
+msgstr[0] "{{count}} persoană urmăreşte această autoritate"
+msgstr[1] "{{count}} persoane urmăresc această autoritate"
+msgstr[2] "{{count}} persoane urmăresc această autoritate"
+
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
+msgstr[0] "{{count}} cerere"
+msgstr[1] "{{count}} cereri"
+msgstr[2] "{{count}} solicitări"
+
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
+msgstr[0] "{{count}} cerere făcută."
+msgstr[1] "{{count}} cereri făcute."
+msgstr[2] "{{count}} cereri făcute."
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 ""
+msgstr "{{existing_request_user}}a creat\\n deja aceeași solicitare pe {{date}}. Poți fie vizualiza <a href=\"{{existing_request}}\"> solicitarea existentă </a>,\\n fie edita detaliile de mai jos pentru a face o solicitare nouă, dar similară."
msgid "{{info_request_user_name}} only:"
-msgstr ""
+msgstr "numai {{info_request_user_name}} :"
msgid "{{law_used_full}} request - {{title}}"
-msgstr ""
+msgstr "cerere {{law_used_full}} - {{title}}"
msgid "{{law_used_full}} request GQ - {{title}}"
-msgstr ""
+msgstr "cerere GQ {{law_used_full}} - {{title}}"
msgid "{{law_used}} requests at {{public_body}}"
-msgstr ""
+msgstr "{{law_used}} cereri către {{public_body}}"
msgid "{{length_of_time}} ago"
-msgstr ""
+msgstr "{{length_of_time}} înainte"
msgid "{{list_of_things}} matching text '{{search_query}}'"
-msgstr ""
+msgstr "{{list_of_things}} corespunzătoare textului '{{search_query}}'"
msgid "{{number_of_comments}} comments"
-msgstr ""
+msgstr "{{number_of_comments}} comentarii"
msgid "{{public_body_link}} answered a request about"
-msgstr ""
+msgstr "{{public_body_link}} a răspuns la o solicitare despre"
msgid "{{public_body_link}} was sent a request about"
-msgstr ""
+msgstr "{{public_body_link}} a primit o solicitare despre"
msgid "{{public_body_name}} only:"
-msgstr ""
+msgstr "numai {{public_body_name}} :"
msgid "{{public_body}} has asked you to explain part of your {{law_used}} request."
-msgstr ""
+msgstr "{{public_body}} vi-a cerut să explicaţi o parte a cererii dvs. {{law_used}} "
msgid "{{public_body}} sent a response to {{user_name}}"
-msgstr ""
+msgstr "{{public_body}} trimite un răspuns către {{user_name}}"
msgid "{{reason}}, please sign in or make a new account."
-msgstr ""
+msgstr "{{reason}}, te rugăm să te autentifici sau să te înregistrezi."
msgid "{{search_results}} matching '{{query}}'"
-msgstr ""
+msgstr "{{search_results}} corespunzătoare '{{query}}'"
msgid "{{site_name}} blog and tweets"
-msgstr ""
+msgstr "{{site_name}} blog şi tweets"
msgid "{{site_name}} covers requests to {{number_of_authorities}} authorities, including:"
-msgstr ""
+msgstr "{{site_name}} acoperă cererile către {{number_of_authorities}} autorităţi, inclusiv: "
msgid "{{site_name}} sends new requests to <strong>{{request_email}}</strong> for this authority."
-msgstr ""
+msgstr "{{site_name}} trimite noi cereri către <strong>{{request_email}}</strong> pentru această autoritate."
msgid "{{site_name}} users have made {{number_of_requests}} requests, including:"
-msgstr ""
+msgstr "utilizatorii {{site_name}} au făcut {{number_of_requests}} cereri, inclusiv:"
+
+msgid "{{thing_changed}} was changed from <code>{{from_value}}</code> to <code>{{to_value}}</code>"
+msgstr "{{thing_changed}} a fost schimbat din <code>{{from_value}}</code> în <code>{{to_value}}</code>"
msgid "{{title}} - a Freedom of Information request to {{public_body}}"
-msgstr ""
+msgstr "{{title}} - o cerere FOI către {{public_body}}"
msgid "{{user_name}} (Account suspended)"
-msgstr ""
+msgstr "{{user_name}} (Cont suspendat)"
msgid "{{user_name}} - Freedom of Information requests"
-msgstr ""
+msgstr "{{user_name}} - cereri FOI"
msgid "{{user_name}} - user profile"
-msgstr ""
+msgstr "{{user_name}} - profil utilizator"
msgid "{{user_name}} added an annotation"
-msgstr ""
+msgstr "{{user_name}} a adăugat o adnotare"
msgid "{{user_name}} has annotated your {{law_used_short}} \\nrequest. Follow this link to see what they wrote."
-msgstr ""
+msgstr "{{user_name}} a adnotat solicitarea {{law_used_short}} \\n. Utilizează acest link pentru a vedea ce au scris."
msgid "{{user_name}} has used {{site_name}} to send you the message below."
-msgstr ""
+msgstr "{{user_name}} a utilizat {{site_name}} pentru a vă trimite mesajul de mai jos"
msgid "{{user_name}} sent a follow up message to {{public_body}}"
-msgstr ""
+msgstr "{{user_name}} a trimis un mesaj de urmărire către{{public_body}}"
msgid "{{user_name}} sent a request to {{public_body}}"
-msgstr ""
+msgstr "{{user_name}} a trimis o cerere către {{public_body}}"
msgid "{{username}} left an annotation:"
-msgstr ""
+msgstr "{{username}} a lăsat o adnotare:"
msgid "{{user}} ({{user_admin_link}}) made this {{law_used_full}} request (<a href=\"{{request_admin_url}}\">admin</a>) to {{public_body_link}} (<a href=\"{{public_body_admin_url}}\">admin</a>)"
-msgstr ""
+msgstr "{{user}} ({{user_admin_link}}) a făcut această cerere {{law_used_full}} (<a href=\"{{request_admin_url}}\">administrator </a>) către {{public_body_link}} (<a href=\"{{public_body_admin_url}}\">admin</a>)"
msgid "{{user}} made this {{law_used_full}} request"
-msgstr ""
+msgstr "{{user}} a făcut această cerere {{law_used_full}} "
diff --git a/locale/sl/app.po b/locale/sl/app.po
index 7b4ff68a5..8a49de3f4 100644
--- a/locale/sl/app.po
+++ b/locale/sl/app.po
@@ -7,10 +7,10 @@ msgid ""
msgstr ""
"Project-Id-Version: alaveteli\n"
"Report-Msgid-Bugs-To: http://github.com/sebbacon/alaveteli/issues\n"
-"POT-Creation-Date: 2012-12-18 10:11+0000\n"
+"POT-Creation-Date: 2013-05-30 09:46+0100\n"
"PO-Revision-Date: 2011-03-09 17:48+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language-Team: Slovenian (http://www.transifex.com/projects/p/alaveteli/language/sl/)\n"
"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -20,7 +20,7 @@ msgstr ""
msgid " This will appear on your {{site_name}} profile, to make it\\n easier for others to get involved with what you're doing."
msgstr ""
-msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)"
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
msgstr ""
msgid " (<strong>patience</strong>, especially for large files, it may take a while!)"
@@ -50,7 +50,7 @@ msgstr ""
msgid " Ideas on what <strong>other documents to request</strong> which the authority may hold. "
msgstr ""
-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."
+msgid " If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\\n You may be able to find the address on their website, or by phoning them up and asking."
msgstr ""
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."
@@ -89,27 +89,6 @@ msgstr ""
msgid "\"Hello! We have an <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">important message</a> for visitors outside {{country_name}}\""
msgstr ""
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "%d request"
-msgid_plural "%d requests"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "%d request made."
-msgid_plural "%d requests made."
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "'Crime statistics by ward level for Wales'"
msgstr ""
@@ -125,6 +104,9 @@ msgstr ""
msgid "'{{link_to_user}}', a person"
msgstr ""
+msgid "*unknown*"
+msgstr ""
+
msgid ",\\n\\n\\n\\nYours,\\n\\n{{user_name}}"
msgstr ""
@@ -140,31 +122,13 @@ msgstr ""
msgid "3. Now check your request"
msgstr ""
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
-msgstr ""
-
-msgid "<a href=\"%s\">Are we missing a public authority?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Are you the owner of\\n any commercial copyright on this page?</a>"
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
msgstr ""
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
+msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)"
msgstr ""
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
-msgstr ""
-
-msgid "<a href=\"%s\">details</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">what's that?</a>"
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
msgstr ""
msgid "<p>All done! Thank you very much for your help.</p><p>There are <a href=\"{{helpus_url}}\">more things you can do</a> to help {{site_name}}.</p>"
@@ -182,9 +146,6 @@ msgstr ""
msgid "<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>"
msgstr ""
-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 ""
-
msgid "<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>"
msgstr ""
@@ -203,10 +164,10 @@ msgstr ""
msgid "<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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 ""
-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>"
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
msgstr ""
-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>"
+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=\"{{url}}\">details</a>).</p>"
msgstr ""
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>"
@@ -221,14 +182,7 @@ msgstr ""
msgid "<small>If you use web-based email or have \"junk mail\" filters, also check your\\nbulk/spam mail folders. Sometimes, our messages are marked that way.</small>\\n</p>"
msgstr ""
-msgid "<span id='follow_count'>%d</span> person is following this authority"
-msgid_plural "<span id='follow_count'>%d</span> people are following this authority"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
+msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
msgstr ""
msgid "<strong><code>commented_by:tony_bowden</code></strong> to search annotations made by Tony Bowden, typing the name as in the URL."
@@ -282,7 +236,7 @@ msgstr ""
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 ""
-msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"%s\">click here</a>."
+msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"{{url}}\">click here</a>."
msgstr ""
msgid "<strong>Privacy note:</strong> Your photo will be shown in public on the Internet,\\n wherever you do something on {{site_name}}."
@@ -324,6 +278,9 @@ msgstr ""
msgid "A strange reponse, required attention by the {{site_name}} team"
msgstr ""
+msgid "A vexatious request"
+msgstr ""
+
msgid "A {{site_name}} user"
msgstr ""
@@ -333,6 +290,15 @@ msgstr ""
msgid "Act on what you've learnt"
msgstr ""
+msgid "Acts as xapian/acts as xapian job"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Action"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Model"
+msgstr ""
+
msgid "Add an annotation"
msgstr ""
@@ -411,10 +377,19 @@ msgstr ""
msgid "Anyone:"
msgstr ""
+msgid "Applies to"
+msgstr ""
+
+msgid "Are we missing a public authority?"
+msgstr ""
+
+msgid "Are you the owner of any commercial copyright on this page?"
+msgstr ""
+
msgid "Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries."
msgstr ""
-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>)."
+msgid "At the bottom of this page, write a reply to them trying to persuade them to scan it in\\n (<a href=\"{{url}}\">more details</a>)."
msgstr ""
msgid "Attachment (optional):"
@@ -450,6 +425,12 @@ msgstr ""
msgid "By law, {{public_body_link}} should normally have responded <strong>promptly</strong> and"
msgstr ""
+msgid "Calculated home page"
+msgstr ""
+
+msgid "Can't find the one you want?"
+msgstr ""
+
msgid "Cancel a {{site_name}} alert"
msgstr ""
@@ -615,9 +596,15 @@ msgstr ""
msgid "Date:"
msgstr ""
+msgid "Dear {{name}},"
+msgstr ""
+
msgid "Dear {{public_body_name}},"
msgstr ""
+msgid "Default locale"
+msgstr ""
+
msgid "Delayed response to your FOI request - "
msgstr ""
@@ -627,6 +614,9 @@ msgstr ""
msgid "Delivery error"
msgstr ""
+msgid "Destroy {{name}}"
+msgstr ""
+
msgid "Details of request '"
msgstr ""
@@ -639,6 +629,9 @@ msgstr ""
msgid "Disclosure log"
msgstr ""
+msgid "Disclosure log URL"
+msgstr ""
+
msgid "Don't want to address your message to {{person_or_body}}? You can also write to:"
msgstr ""
@@ -657,10 +650,10 @@ msgstr ""
msgid "EIR"
msgstr ""
-msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
+msgid "Edit"
msgstr ""
-msgid "Edit language version:"
+msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
msgstr ""
msgid "Edit text about you"
@@ -684,7 +677,7 @@ msgstr ""
msgid "Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>"
msgstr ""
-msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"%s\">contact us</a> if you need more)."
+msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"{{url}}\">contact us</a> if you need more)."
msgstr ""
msgid "Environmental Information Regulations"
@@ -702,10 +695,13 @@ msgstr ""
msgid "Event history details"
msgstr ""
-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>)."
+msgid "Event {{id}}"
+msgstr ""
+
+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=\"{{url}}\">why?</a>)."
msgstr ""
-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>)."
+msgid "Everything that you enter on this page\\n will be <strong>displayed publicly</strong> on\\n this website forever (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "FOI"
@@ -714,6 +710,9 @@ msgstr ""
msgid "FOI email address for {{public_body}}"
msgstr ""
+msgid "FOI request – {{title}}"
+msgstr ""
+
msgid "FOI requests"
msgstr ""
@@ -729,13 +728,13 @@ msgstr ""
msgid "Failed to convert image to a PNG"
msgstr ""
-msgid "Failed to convert image to the correct size: at %{cols}x%{rows}, need %{width}x%{height}"
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
msgstr ""
msgid "Filter"
msgstr ""
-msgid "First, type in the <strong>name of the UK public authority</strong> you'd \\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"%s#%s\">why?</a>)."
+msgid "First, type in the <strong>name of the UK public authority</strong> you'd\\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "Foi attachment"
@@ -816,8 +815,8 @@ msgstr ""
msgid "Forgotten your password?"
msgstr ""
-msgid "Found %d public authority %s"
-msgid_plural "Found %d public authorities %s"
+msgid "Found {{count}} public authority {{description}}"
+msgid_plural "Found {{count}} public authorities {{description}}"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
@@ -856,7 +855,7 @@ msgstr ""
msgid "From"
msgstr ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "From:"
@@ -868,6 +867,18 @@ msgstr ""
msgid "Handled by post."
msgstr ""
+msgid "Has tag string/has tag string tag"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Model"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Name"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Value"
+msgstr ""
+
msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
msgstr ""
@@ -886,6 +897,9 @@ msgstr ""
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 ""
+msgid "Hide request"
+msgstr ""
+
msgid "Holiday"
msgstr ""
@@ -898,6 +912,9 @@ msgstr ""
msgid "Home"
msgstr ""
+msgid "Home page"
+msgstr ""
+
msgid "Home page of authority"
msgstr ""
@@ -946,22 +963,31 @@ msgstr ""
msgid "I've received an <strong>error message</strong>"
msgstr ""
-msgid "If the address is wrong, or you know a better address, please <a href=\"%s\">contact us</a>."
+msgid "I've received an error message"
+msgstr ""
+
+msgid "Id"
+msgstr ""
+
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
+msgstr ""
+
+msgid "If the error was a delivery failure, and you can find an up to date FOI email address for the authority, please tell us using the form below."
msgstr ""
msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
msgstr ""
-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>)."
+msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"{{url}}\">details</a>)."
msgstr ""
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
+msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
-msgid "If you are the requester, then you may <a href=\"%s\">sign in</a> to view the request."
+msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request."
msgstr ""
-msgid "If you are thinking of using a pseudonym,\\n please <a href=\"%s\">read this first</a>."
+msgid "If you are thinking of using a pseudonym,\\n please <a href=\"{{url}}\">read this first</a>."
msgstr ""
msgid "If you are {{user_link}}, please"
@@ -1003,6 +1029,9 @@ msgstr ""
msgid "If your browser is set to accept cookies and you are seeing this message,\\nthen there is probably a fault with our server."
msgstr ""
+msgid "Incoming email address"
+msgstr ""
+
msgid "Incoming message"
msgstr ""
@@ -1117,13 +1146,19 @@ msgstr ""
msgid "Items matching the following conditions are currently displayed on your wall."
msgstr ""
+msgid "Items sent in last month"
+msgstr ""
+
msgid "Joined in"
msgstr ""
msgid "Joined {{site_name}} in"
msgstr ""
-msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)."
+msgid "Just one more thing"
+msgstr ""
+
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "Keywords"
@@ -1141,9 +1176,27 @@ msgstr ""
msgid "Link to this"
msgstr ""
+msgid "List all"
+msgstr ""
+
msgid "List of all authorities (CSV)"
msgstr ""
+msgid "Listing FOI requests"
+msgstr ""
+
+msgid "Listing public authorities"
+msgstr ""
+
+msgid "Listing public authorities matching '{{query}}'"
+msgstr ""
+
+msgid "Listing tracks"
+msgstr ""
+
+msgid "Listing users"
+msgstr ""
+
msgid "Log in to download a zip file of {{info_request_title}}"
msgstr ""
@@ -1240,6 +1293,9 @@ msgstr ""
msgid "New Freedom of Information requests"
msgstr ""
+msgid "New censor rule"
+msgstr ""
+
msgid "New e-mail:"
msgstr ""
@@ -1285,6 +1341,9 @@ msgstr ""
msgid "No similar requests found."
msgstr ""
+msgid "No tracked things found."
+msgstr ""
+
msgid "Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet."
msgstr ""
@@ -1294,6 +1353,9 @@ msgstr ""
msgid "None made."
msgstr ""
+msgid "Not a valid FOI request"
+msgstr ""
+
msgid "Note that the requester will not be notified about your annotation, because the request was published by {{public_body_name}} on their behalf."
msgstr ""
@@ -1339,6 +1401,9 @@ msgstr ""
msgid "One public authority found"
msgstr ""
+msgid "Only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL – don't worry about breaking URLs through renaming, as the history is used to redirect"
+msgstr ""
+
msgid "Only requests made using {{site_name}} are shown."
msgstr ""
@@ -1411,7 +1476,7 @@ msgstr ""
msgid "Please"
msgstr ""
-msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
msgstr ""
msgid "Please <strong>answer the question above</strong> so we know whether the "
@@ -1516,7 +1581,7 @@ msgstr ""
msgid "Please select each of these requests in turn, and <strong>let everyone know</strong>\\nif they are successful yet or not."
msgstr ""
-msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature"
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
msgstr ""
msgid "Please sign in as "
@@ -1528,9 +1593,6 @@ msgstr ""
msgid "Please type a message and/or choose a file containing your response."
msgstr ""
-msgid "Please use the form below to tell us more."
-msgstr ""
-
msgid "Please use this email address for all replies to this request:"
msgstr ""
@@ -1621,37 +1683,19 @@ msgstr ""
msgid "Public authorities {{start_count}} to {{end_count}} of {{total_count}}"
msgstr ""
-msgid "Public body"
-msgstr ""
-
-msgid "Public body/translation"
-msgstr ""
-
-msgid "PublicBody::Translation|Disclosure log"
-msgstr ""
-
-msgid "PublicBody::Translation|First letter"
-msgstr ""
-
-msgid "PublicBody::Translation|Locale"
-msgstr ""
-
-msgid "PublicBody::Translation|Name"
+msgid "Public authority – {{name}}"
msgstr ""
-msgid "PublicBody::Translation|Notes"
-msgstr ""
-
-msgid "PublicBody::Translation|Publication scheme"
+msgid "Public body"
msgstr ""
-msgid "PublicBody::Translation|Request email"
+msgid "Public notes"
msgstr ""
-msgid "PublicBody::Translation|Short name"
+msgid "Public page"
msgstr ""
-msgid "PublicBody::Translation|Url name"
+msgid "Public page not available"
msgstr ""
msgid "PublicBody|Api key"
@@ -1699,6 +1743,9 @@ msgstr ""
msgid "Publication scheme"
msgstr ""
+msgid "Publication scheme URL"
+msgstr ""
+
msgid "Purge request"
msgstr ""
@@ -1756,6 +1803,9 @@ msgstr ""
msgid "Request an internal review from {{person_or_body}}"
msgstr ""
+msgid "Request email"
+msgstr ""
+
msgid "Request has been removed"
msgstr ""
@@ -1846,8 +1896,8 @@ msgstr ""
msgid "Search the site to find what you were looking for."
msgstr ""
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests made to {{public_body_name}}"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
@@ -1856,6 +1906,9 @@ msgstr[3] ""
msgid "Search your contributions"
msgstr ""
+msgid "See bounce message"
+msgstr ""
+
msgid "Select one to see more information about the authority."
msgstr ""
@@ -1889,6 +1942,9 @@ msgstr ""
msgid "Set your profile photo"
msgstr ""
+msgid "Short name"
+msgstr ""
+
msgid "Short name is already taken"
msgstr ""
@@ -1982,6 +2038,9 @@ msgstr ""
msgid "Submit status"
msgstr ""
+msgid "Submit status and send message"
+msgstr ""
+
msgid "Subscribe to blog"
msgstr ""
@@ -2003,6 +2062,9 @@ msgstr ""
msgid "Table of varieties"
msgstr ""
+msgid "Tags"
+msgstr ""
+
msgid "Tags (separated by a space):"
msgstr ""
@@ -2030,6 +2092,9 @@ msgstr ""
msgid "Thank you for updating your profile photo"
msgstr ""
+msgid "Thank you! We'll look into what happened and try and fix it up."
+msgstr ""
+
msgid "Thanks for helping - your work will make it easier for everyone to find successful\\nresponses, and maybe even let us make league tables..."
msgstr ""
@@ -2099,16 +2164,16 @@ msgstr ""
msgid "The request was refused by the public authority"
msgstr ""
-msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"%s\">contact us</a> if you have any questions."
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
msgstr ""
msgid "The requester has abandoned this request for some reason"
msgstr ""
-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"
+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 ""
-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"
+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 ""
msgid "The search index is currently offline, so we can't show the Freedom of Information requests that have been made to this authority."
@@ -2117,6 +2182,9 @@ msgstr ""
msgid "The search index is currently offline, so we can't show the Freedom of Information requests this person has made."
msgstr ""
+msgid "The {{site_name}} team."
+msgstr ""
+
msgid "Then you can cancel the alert."
msgstr ""
@@ -2192,19 +2260,19 @@ msgstr ""
msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
msgstr ""
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
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 ""
msgid "There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>."
msgstr ""
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "There was a <strong>delivery error</strong> or similar, which needs fixing by the {{site_name}} team."
msgstr ""
@@ -2241,7 +2309,7 @@ msgstr ""
msgid "This authority no longer exists, so you cannot make a request to it."
msgstr ""
-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."
+msgid "This comment has been hidden. See annotations to\\n find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This covers a very wide spectrum of information about the state of\\n the <strong>natural and built environment</strong>, such as:"
@@ -2259,10 +2327,13 @@ msgstr ""
msgid "This is because {{title}} is an old request that has been\\nmarked to no longer receive responses."
msgstr ""
+msgid "This is the first version."
+msgstr ""
+
msgid "This is your own request, so you will be automatically emailed when new responses arrive."
msgstr ""
-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."
+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=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This particular request is finished:"
@@ -2271,23 +2342,23 @@ msgstr ""
msgid "This person has made no Freedom of Information requests using this site."
msgstr ""
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
+msgid "This person's annotations"
+msgstr ""
+
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-msgid "This person's annotations"
-msgstr ""
-
msgid "This request <strong>requires administrator attention</strong>"
msgstr ""
@@ -2309,7 +2380,7 @@ msgstr ""
msgid "This request has been <strong>withdrawn</strong> by the person who made it.\\n There may be an explanation in the correspondence below."
msgstr ""
-msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"%s\">contact us</a>."
+msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
msgid "This request has been reported for administrator attention"
@@ -2324,16 +2395,19 @@ msgstr ""
msgid "This request has prominence 'hidden'. You can only see it because you are logged\\n in as a super user."
msgstr ""
-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."
+msgid "This request is hidden, so that only you the requester can see it. Please\\n <a href=\"{{url}}\">contact us</a> if you are not sure why."
msgstr ""
msgid "This request is still in progress:"
msgstr ""
+msgid "This request requires administrator attention"
+msgstr ""
+
msgid "This request was not made via {{site_name}}"
msgstr ""
-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."
+msgid "This response has been hidden. See annotations to find out why.\\n If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This table shows the technical details of the internal events that happened\\nto this request on {{site_name}}. This could be used to generate information about\\nthe speed with which authorities respond to requests, the number of requests\\nwhich require a postal response and much more."
@@ -2492,7 +2566,7 @@ msgstr ""
msgid "Unexpected search result type "
msgstr ""
-msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"%s\">contact us</a> to sort it out."
+msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"{{url}}\">contact us</a> to sort it out."
msgstr ""
msgid "Unfortunately, we do not have a working {{info_request_law_used_full}}\\naddress for"
@@ -2528,6 +2602,9 @@ msgstr ""
msgid "User info request sent alert"
msgstr ""
+msgid "User – {{name}}"
+msgstr ""
+
msgid "UserInfoRequestSentAlert|Alert type"
msgstr ""
@@ -2582,6 +2659,9 @@ msgstr ""
msgid "User|Url name"
msgstr ""
+msgid "Version {{version}}"
+msgstr ""
+
msgid "View FOI email address"
msgstr ""
@@ -2621,6 +2701,12 @@ msgstr ""
msgid "Was the response you got to your FOI request any good?"
msgstr ""
+msgid "We consider it is not a valid FOI request, and have therefore hidden it from other users."
+msgstr ""
+
+msgid "We consider it to be vexatious, and have therefore hidden it from other users."
+msgstr ""
+
msgid "We do not have a working request email address for this authority."
msgstr ""
@@ -2630,7 +2716,7 @@ msgstr ""
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=\"{{url}}\">sign in</a> and let everyone know."
msgstr ""
-msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"%s\">details</a>). "
+msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"{{url}}\">details</a>). "
msgstr ""
msgid "We will not reveal your email address to anybody unless you\\nor the law tell us to."
@@ -2672,7 +2758,7 @@ msgstr ""
msgid "When you receive the paper response, please help\\n others find out what it says:"
msgstr ""
-msgid "When you're done, <strong>come back here</strong>, <a href=\"%s\">reload this page</a> and file your new request."
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
msgstr ""
msgid "Which of these is happening?"
@@ -2774,7 +2860,7 @@ msgstr ""
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 ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "You may be able to find\\none on their website, or by phoning them up and asking. If you manage\\nto find one, then please <a href=\"{{help_url}}\">send it to us</a>."
@@ -2813,6 +2899,9 @@ msgstr ""
msgid "You will only get an answer to your request if you follow up\\nwith the clarification."
msgstr ""
+msgid "You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further."
+msgstr ""
+
msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
msgstr ""
@@ -2825,21 +2914,7 @@ msgstr ""
msgid "You've now cleared your profile photo"
msgstr ""
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-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>."
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
msgstr ""
msgid "Your annotations"
@@ -2851,7 +2926,7 @@ msgstr ""
msgid "Your e-mail:"
msgstr ""
-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."
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
msgstr ""
msgid "Your follow up message has been sent on its way."
@@ -2875,7 +2950,7 @@ msgstr ""
msgid "Your name and annotation will appear in <strong>search engines</strong>."
msgstr ""
-msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"%s\">details</a>)."
+msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"{{url}}\">details</a>)."
msgstr ""
msgid "Your name:"
@@ -2893,6 +2968,12 @@ msgstr ""
msgid "Your photo will be shown in public <strong>on the Internet</strong>,\\n wherever you do something on {{site_name}}."
msgstr ""
+msgid "Your request '{{request}}' at {{url}} has been reviewed by moderators."
+msgstr ""
+
+msgid "Your request on {{site_name}} hidden"
+msgstr ""
+
msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
msgstr ""
@@ -2902,12 +2983,26 @@ msgstr ""
msgid "Your response to an FOI request was not delivered"
msgstr ""
-msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"%s\">read why</a> and answers to other questions."
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
msgstr ""
msgid "Your thoughts on what the {{site_name}} <strong>administrators</strong> should do about the request."
msgstr ""
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
msgid "Your {{site_name}} email alert"
msgstr ""
@@ -2917,6 +3012,9 @@ msgstr ""
msgid "Yours sincerely,"
msgstr ""
+msgid "Yours,"
+msgstr ""
+
msgid "[FOI #{{request}} email]"
msgstr ""
@@ -2935,6 +3033,9 @@ msgstr ""
msgid "admin"
msgstr ""
+msgid "alaveteli_foi:The software that runs {{site_name}}"
+msgstr ""
+
msgid "all requests"
msgstr ""
@@ -2968,6 +3069,9 @@ msgstr ""
msgid "are long overdue."
msgstr ""
+msgid "at"
+msgstr ""
+
msgid "authorities"
msgstr ""
@@ -2980,6 +3084,9 @@ msgstr ""
msgid "between two dates"
msgstr ""
+msgid "but followupable"
+msgstr ""
+
msgid "by"
msgstr ""
@@ -3061,15 +3168,21 @@ msgstr ""
msgid "messages from users"
msgstr ""
+msgid "move..."
+msgstr ""
+
msgid "no later than"
msgstr ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "normally"
msgstr ""
+msgid "not requestable due to: {{reason}}"
+msgstr ""
+
msgid "please sign in as "
msgstr ""
@@ -3091,6 +3204,9 @@ msgstr ""
msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
msgstr ""
+msgid "set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA"
+msgstr ""
+
msgid "show quoted sections"
msgstr ""
@@ -3112,6 +3228,11 @@ msgstr ""
msgid "the main FOI contact address for {{public_body}}"
msgstr ""
+#. This phrase completes the following sentences:
+#. Request an internal review from...
+#. Send a public follow up message to...
+#. Send a public reply to...
+#. Don't want to address your message to... ?
msgid "the main FOI contact at {{public_body}}"
msgstr ""
@@ -3160,9 +3281,40 @@ msgstr ""
msgid "users"
msgstr ""
+msgid "what's that?"
+msgstr ""
+
msgid "{{count}} FOI requests found"
msgstr ""
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "{{count}} person is following this authority"
+msgid_plural "{{count}} people are following this authority"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
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 ""
@@ -3220,6 +3372,9 @@ msgstr ""
msgid "{{site_name}} users have made {{number_of_requests}} requests, including:"
msgstr ""
+msgid "{{thing_changed}} was changed from <code>{{from_value}}</code> to <code>{{to_value}}</code>"
+msgstr ""
+
msgid "{{title}} - a Freedom of Information request to {{public_body}}"
msgstr ""
diff --git a/locale/sq/app.po b/locale/sq/app.po
index b20efcabf..e2a01666d 100644
--- a/locale/sq/app.po
+++ b/locale/sq/app.po
@@ -3,21 +3,21 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# <ardob11@gmail.com>, 2012.
-# <bresta@gmail.com>, 2011.
-# driton <dritoni.h@gmail.com>, 2011.
-# Hana Huntova <>, 2012.
-# Valon <vbrestovci@gmail.com>, 2011-2012.
-# <vbrestovci@gmail.com>, 2011.
-# vbrestovci <vbrestovci@gmail.com>, 2011.
+# arianit <ardob11@gmail.com>, 2012
+# bresta <bresta@gmail.com>, 2011
+# driton <dritoni.h@gmail.com>, 2011
+# Hana Huntova <>, 2012
+# Valon <vbrestovci@gmail.com>, 2011-2012
+# Valon <vbrestovci@gmail.com>, 2011
+# Valon <vbrestovci@gmail.com>, 2011
msgid ""
msgstr ""
"Project-Id-Version: alaveteli\n"
"Report-Msgid-Bugs-To: http://github.com/sebbacon/alaveteli/issues\n"
-"POT-Creation-Date: 2012-12-18 10:11+0000\n"
-"PO-Revision-Date: 2012-12-18 10:14+0000\n"
+"POT-Creation-Date: 2013-05-30 09:46+0100\n"
+"PO-Revision-Date: 2013-05-30 08:54+0000\n"
"Last-Translator: louisecrow <louise@mysociety.org>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language-Team: Albanian (http://www.transifex.com/projects/p/alaveteli/language/sq/)\n"
"Language: sq\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -29,8 +29,8 @@ msgstr ""
"Kjo do të shfaqet në profilin tënd në {{site_name}}, për ta bërë më të\n"
"lehtë për të tjerët që të involvohen me çfarë jeni duke bërë."
-msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)"
-msgstr " (pa politikë <strong>llafazane</strong>, lexo <a href=\"%s\">politikat e moderimit</a>)"
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
+msgstr " (pa politikë <strong>llafazane</strong>, lexo <a href=\"{{url}}\">politikat e moderimit</a>)"
msgid " (<strong>patience</strong>, especially for large files, it may take a while!)"
msgstr "<strong>(Durim,</strong> sidomos për fotografi të mëdha, mund të marrë më shum kohë!)"
@@ -62,9 +62,9 @@ msgstr " Këshillo se si <strong>më së miri të sqarohet</strong> një kërkes
msgid " Ideas on what <strong>other documents to request</strong> which the authority may hold. "
msgstr " Ide se çfarë <strong>dokumentesh tjera të kërkohen</strong> që mund t'i posedojë institucioni. "
-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."
+msgid " If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\\n You may be able to find the address on their website, or by phoning them up and asking."
msgstr ""
-" Nëse e din adresën e emailit për ta përdorur, atëherë të lutem <a href=\"%s\">na e dërgon</a>. \n"
+" Nëse e din adresën e emailit për ta përdorur, atëherë të lutem <a href=\"{{url}}\">na e dërgon</a>. \n"
"Ti mund ta gjen adresën e emailit në ueb sajtin e tyre ose duke ju telefonuar dhe pyetur."
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."
@@ -106,21 +106,6 @@ msgstr " kur e dërgoni këtë mesazh."
msgid "\"Hello! We have an <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">important message</a> for visitors outside {{country_name}}\""
msgstr ""
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
-msgstr[0] "%d Kërkesë për informata zyrtare për %s"
-msgstr[1] "%d Kërkesa për informata zyrtare për %s"
-
-msgid "%d request"
-msgid_plural "%d requests"
-msgstr[0] "%d kërkesë"
-msgstr[1] "%d kërkesa"
-
-msgid "%d request made."
-msgid_plural "%d requests made."
-msgstr[0] "%d kërkesë e bërë."
-msgstr[1] "%d kërkesa të bëra."
-
msgid "'Crime statistics by ward level for Wales'"
msgstr "'Statistikat e krimit në nivel komune'"
@@ -136,6 +121,9 @@ msgstr "'{{link_to_request}}', një kërkesë"
msgid "'{{link_to_user}}', a person"
msgstr "'{{link_to_user}}', një person"
+msgid "*unknown*"
+msgstr ""
+
msgid ",\\n\\n\\n\\nYours,\\n\\n{{user_name}}"
msgstr ""
",\n"
@@ -158,34 +146,14 @@ msgstr "2. Kërko informata"
msgid "3. Now check your request"
msgstr "3. Kontrollo kërkesën tënde"
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
-msgstr "<a href=\"%s\">Shto një shënim</a> (për të ndihmuar kërkuesin ose përdoruesit e tjerë)"
-
-msgid "<a href=\"%s\">Are we missing a public authority?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Are you the owner of\\n any commercial copyright on this page?</a>"
-msgstr ""
-"<a href=\"%s\">A je pronar i\n"
-" ndonjë të drejte autoriale komerciale në këtë faqe? </a>"
-
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
-msgstr "<a href=\"%s\">Shfletoni të gjitha</a> ose <a href=\"%s\">kërkoni nga ne që të shtojmë një</a>."
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
+msgstr "<a href=\"{{browse_url}}\">Shfletoni të gjitha</a> ose <a href=\"{{add_url}}\">kërkoni nga ne që të shtojmë një</a>."
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
-msgstr "<a href=\"%s\">Nuk mund të gjen autoritetin që dëshiron?</a>"
+msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)"
+msgstr "<a href=\"{{url}}\">Shto një shënim</a> (për të ndihmuar kërkuesin ose përdoruesit e tjerë)"
-msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
-msgstr "<a href=\"%s\">Kyçu</a> për të ndryshuar fjalëkalimin, abonimet dhe të tjera (vetëm për {{user_name}})"
-
-msgid "<a href=\"%s\">details</a>"
-msgstr "<a href=\"%s\">detajet</a>"
-
-msgid "<a href=\"%s\">what's that?</a>"
-msgstr "<a href=\"%s\">Çfarë është ajo?</a>"
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
+msgstr "<a href=\"{{url}}\">Kyçu</a> për të ndryshuar fjalëkalimin, abonimet dhe të tjera (vetëm për {{user_name}})"
msgid "<p>All done! Thank you very much for your help.</p><p>There are <a href=\"{{helpus_url}}\">more things you can do</a> to help {{site_name}}.</p>"
msgstr "<p>Të gjitha u bënë! Shumë faleminderit për ndihmën tënde. </p><p>Ka <a href=\"{{helpus_url}}\">shumë gjëra që ti mund të bësh</a> për të ndihmuar {{site_name}}. </p>"
@@ -204,9 +172,6 @@ msgstr ""
msgid "<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>"
msgstr "<p>Faleminderit! Shpresojmë që pritja yte nuk do të jetë shumë e gjatë.</p><p> Ti duhet të marrë një përgjigje brenda {{late_number_of_days}} ditë pune, ose të njoftohesh se do të marrë kohë më të gjatë (<a href={{review_url}}\">detajet</a>).</p>"
-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 "<p> Faleminderit! Ne do të shohim çfarë ka ndodhur dhe të përpiqemi që ta rregullojmë atë. </p><p> Nëse gabimi ishte në dorëzimin e kërkesës në email adresën e autoritetit, dhe ti mund të gjesh email adresën aktuale të autoritetit, të lutem na e trego duke përdorur formularin e mëposhtëm.</p>"
-
msgid "<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>"
msgstr "<p>Faleminderit! Përgjigja në kërkesën tënde është vonuar, për më tepër se {{very_late_number_of_days}} ditë pune. Shumica e kërkesave duhet të përgjigjen jo më vonë se për {{late_number_of_days}} ditë pune. Ti mund të ankohesh për këtë, shih më poshtë.</p>"
@@ -227,11 +192,11 @@ msgstr "<p>Na vjen mirë që keni marrë të gjitha informatat e kërkuara. Nës
msgid "<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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 "<p>Na vjen mirë që keni marrë disa prej informatave të kërkuara. Nëse e ke gjetë {{site_name}} të dobishëm, <a href=\"{{donation_url}}\">bëj një donacion</a> për organizatat që qëndrojnë mbrapa sajë.</p><p>Nëse dëshiron të tentosh që të marrësh edhe pjesën e mbetur të informatave, këtu është se çfarë duhet të bësh.</p>"
-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 "<p> Ti nuk duhet të inkludosh adresën e emailit tënd në këtë kërkesë qe të marrësh përgjigje (<a href=\"%s\">detaje</a> ). </p>"
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
+msgstr "<p> Ti nuk duhet të inkludosh adresën e emailit tënd në këtë kërkesë qe të marrësh përgjigje (<a href=\"{{url}}\">detaje</a> ). </p>"
-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 "<p> Ti nuk duhet të inkludosh adresën e emailit tënd në këtë kërkesë qe të marrësh përgjigje, sepse ne do ta kërkojme atë ne faqen vijuese (<a href=\"%s\">detaje</a> )."
+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=\"{{url}}\">details</a>).</p>"
+msgstr "<p> Ti nuk duhet të inkludosh adresën e emailit tënd në këtë kërkesë qe të marrësh përgjigje, sepse ne do ta kërkojme atë ne faqen vijuese (<a href=\"{{url}}\">detaje</a> )."
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 "<p> Kërkesa yte përmban <strong>kodin postar</strong>. Nëse nuk lidhet direkt me temën e kërkesës tënde, të lutem largo çdo adresë sepse do të jetë <strong> publike në internet</strong>. </p>"
@@ -245,15 +210,10 @@ msgstr "<p>{{site_name}} është aktualisht në mirëmbajtje teknike. Ti vetëm
msgid "<small>If you use web-based email or have \"junk mail\" filters, also check your\\nbulk/spam mail folders. Sometimes, our messages are marked that way.</small>\\n</p>"
msgstr "<small>Nëse ti përdor \"web-based\" email klient (p.sh. hotmail.com) ose ke \"junk mail\" filtra, kontrollo edhe bulk/spam folderët. Ndonjëherë, mesazhet tona janë të shenjuara në këtë mënyrë.</small> </p>"
-msgid "<span id='follow_count'>%d</span> person is following this authority"
-msgid_plural "<span id='follow_count'>%d</span> people are following this authority"
-msgstr[0] "<span id='follow_count'>%d</span>person po përcjell këtë autoritet"
-msgstr[1] "<span id='follow_count'>%d</span>persona po përcjellin këtë autoritet"
-
-msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
+msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
msgstr ""
"<strong> A mund të kërkoj informatë për veten time?</strong>\n"
-"<span class=\"whitespace other\" title=\"Tab\">»</span><span class=\"whitespace other\" title=\"Tab\">»</span><span class=\"whitespace other\" title=\"Tab\">»</span><a href=\"%s\">Jo! (Kliko këtu për detaje)</a>"
+"<span class=\"whitespace other\" title=\"Tab\">»</span><span class=\"whitespace other\" title=\"Tab\">»</span><span class=\"whitespace other\" title=\"Tab\">»</span><a href=\"{{url}}\">Jo! (Kliko këtu për detaje)</a>"
msgid "<strong><code>commented_by:tony_bowden</code></strong> to search annotations made by Tony Bowden, typing the name as in the URL."
msgstr "<strong><code>komentuar_nga:filan_fisteku</code></strong> për të kërkuar shenimet nga Filan Fisteku, shtypeni emrin si në URL."
@@ -317,10 +277,10 @@ msgstr ""
" Do të dërgojmë email në adresën tënde të re. Përcjelli\n"
" udhëzimet për të konfirmuar ndërrimin e emailit."
-msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"%s\">click here</a>."
+msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"{{url}}\">click here</a>."
msgstr ""
"<strong>Shënim privatësie:</strong> Nëse do të kërkosh informatë private për\n"
-" vetën tënde <a href=\"%s\">kliko këtu</a>."
+" vetën tënde <a href=\"{{url}}\">kliko këtu</a>."
msgid "<strong>Privacy note:</strong> Your photo will be shown in public on the Internet,\\n wherever you do something on {{site_name}}."
msgstr ""
@@ -363,6 +323,9 @@ msgstr "Përgjigja do të dërgohet <strong>me postë</strong>"
msgid "A strange reponse, required attention by the {{site_name}} team"
msgstr "Një përgjigje e çuditshme, kërkohet vëmendje e ekipit të {{site_name}}"
+msgid "A vexatious request"
+msgstr ""
+
msgid "A {{site_name}} user"
msgstr "Përdorues i {{site_name}}"
@@ -372,6 +335,15 @@ msgstr "Për ty:"
msgid "Act on what you've learnt"
msgstr "Vepro sipas asaj që ke marrë vesh"
+msgid "Acts as xapian/acts as xapian job"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Action"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Model"
+msgstr ""
+
msgid "Add an annotation"
msgstr "Shto një shënim"
@@ -456,13 +428,22 @@ msgstr "Përdorues anonim"
msgid "Anyone:"
msgstr "Çdokush:"
+msgid "Applies to"
+msgstr ""
+
+msgid "Are we missing a public authority?"
+msgstr ""
+
+msgid "Are you the owner of any commercial copyright on this page?"
+msgstr "A je pronar i ndonjë të drejte autoriale komerciale në këtë faqe?"
+
msgid "Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries."
msgstr "Kërko dokumente apo informata <strong>specifike</strong>, kjo faqe nuk është e përshtatshme për pyetje të përgjithshme."
-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>)."
+msgid "At the bottom of this page, write a reply to them trying to persuade them to scan it in\\n (<a href=\"{{url}}\">more details</a>)."
msgstr ""
"Në fund të kësaj faqeje, shkruaji atyre për të kërkuar nga ata që t'i scannojnë\n"
-" (<a href=\"%s\">më shumë detaje</a>)."
+" (<a href=\"{{url}}\">më shumë detaje</a>)."
msgid "Attachment (optional):"
msgstr "Shtojca - attachment (opcionale):"
@@ -497,6 +478,12 @@ msgstr "Sipas ligjit, në të gjitha rrethanat, {{public_body_link}} është duh
msgid "By law, {{public_body_link}} should normally have responded <strong>promptly</strong> and"
msgstr "Sipas ligjit, {{public_body_link}} do të duhej të ishte përgjigjur <strong>menjëherë</strong> dhe"
+msgid "Calculated home page"
+msgstr ""
+
+msgid "Can't find the one you want?"
+msgstr "Nuk mund të gjen autoritetin që dëshiron?"
+
msgid "Cancel a {{site_name}} alert"
msgstr "Anulo njoftimet për {{site_name}}"
@@ -662,9 +649,15 @@ msgstr "Momentalisht <strong>duke pritur përgjigje</strong> nga {{public_body_l
msgid "Date:"
msgstr "Data:"
+msgid "Dear {{name}},"
+msgstr ""
+
msgid "Dear {{public_body_name}},"
msgstr "Të nderuar {{public_body_name}},"
+msgid "Default locale"
+msgstr ""
+
msgid "Delayed response to your FOI request - "
msgstr "Përgjigje e vonuar në kërkesën tënde - "
@@ -674,6 +667,9 @@ msgstr "Vonuar."
msgid "Delivery error"
msgstr "Gabim gjatë dorëzimit"
+msgid "Destroy {{name}}"
+msgstr ""
+
msgid "Details of request '"
msgstr "Detajet e kërkesës"
@@ -686,6 +682,9 @@ msgstr "Shfajësim: Ky mesazh dhe çdo përgjigje që ti i jep atij do të publi
msgid "Disclosure log"
msgstr ""
+msgid "Disclosure log URL"
+msgstr ""
+
msgid "Don't want to address your message to {{person_or_body}}? You can also write to:"
msgstr "Nuk dëshiron t'ja adresosh mesazhin tënd {{person_or_body}}? Ti gjithashtu mund ti shkruash:"
@@ -704,14 +703,14 @@ msgstr "Shkarko shtojcën (attachment) origjinale"
msgid "EIR"
msgstr "EIR"
+msgid "Edit"
+msgstr ""
+
msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
msgstr ""
"Redakto dhe shto <strong>më shumë detaje</strong> në mesazhin e mësipërm,\n"
" duke shpjeguar se pse nuk je i kënaqur me përgjigjen e tyre."
-msgid "Edit language version:"
-msgstr "Edito versionin e gjuhës:"
-
msgid "Edit text about you"
msgstr "Edito tekstin për vetën tënde"
@@ -733,7 +732,7 @@ msgstr "Dërgom aktualizime me email në lidhje me këtë kërkesë"
msgid "Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>"
msgstr "Shkuraj fjalët që do t'i gjesh të ndara me hapësirë, psh. <strong>asfaltim rruge</strong>"
-msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"%s\">contact us</a> if you need more)."
+msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"{{url}}\">contact us</a> if you need more)."
msgstr ""
msgid "Environmental Information Regulations"
@@ -751,17 +750,20 @@ msgstr "Historiku i ngjarjeve"
msgid "Event history details"
msgstr "Detajet e historikut të ngjarjeve"
-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>)."
+msgid "Event {{id}}"
msgstr ""
-"Çdo gjë që ke shkruar në këtë faqe \n"
-" do të <strong>tregohet publikisht</strong> në\n"
-" këtë faqe përgjithmonë (<a href=\"%s\">pse?</a>)."
-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>)."
+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=\"{{url}}\">why?</a>)."
msgstr ""
"Çdo gjë që ke shkruar në këtë faqe, përfshi edhe <strong>emrin tënd</strong>, \n"
" do të <strong>tregohet publikisht</strong> në\n"
-" këtë faqe përgjithmonë (<a href=\"%s\">pse?</a>)."
+" këtë faqe përgjithmonë (<a href=\"{{url}}\">pse?</a>)."
+
+msgid "Everything that you enter on this page\\n will be <strong>displayed publicly</strong> on\\n this website forever (<a href=\"{{url}}\">why?</a>)."
+msgstr ""
+"Çdo gjë që ke shkruar në këtë faqe \n"
+" do të <strong>tregohet publikisht</strong> në\n"
+" këtë faqe përgjithmonë (<a href=\"{{url}}\">pse?</a>)."
msgid "FOI"
msgstr "QDP"
@@ -769,6 +771,9 @@ msgstr "QDP"
msgid "FOI email address for {{public_body}}"
msgstr "Adresa e emailit për Informatë Zyrtare për {{public_body}}"
+msgid "FOI request – {{title}}"
+msgstr ""
+
msgid "FOI requests"
msgstr "Kërkesat për Informata Zyrtare"
@@ -784,17 +789,17 @@ msgstr ""
msgid "Failed to convert image to a PNG"
msgstr "Konvertimi i imazhit në PNG dështoi"
-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}"
+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}}"
msgid "Filter"
msgstr "Filtro"
-msgid "First, type in the <strong>name of the UK public authority</strong> you'd \\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"%s#%s\">why?</a>)."
+msgid "First, type in the <strong>name of the UK public authority</strong> you'd\\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"{{url}}\">why?</a>)."
msgstr ""
"Së pari, shkruaj <strong>emrin e autoritetit publik</strong> prej të\n"
" <br>cilit kërkon informata. <strong>Sipas ligjit, ata duhet të\"\n"
-" përgjigjen</strong> (<a href=\"%s#%s\">pse?</a>)."
+" përgjigjen</strong> (<a href=\"{{url}}\">pse?</a>)."
msgid "Foi attachment"
msgstr "Shtojca QDP"
@@ -874,10 +879,10 @@ msgstr "Për një arsye të panjohur, nuk është e mundur për të bërë një
msgid "Forgotten your password?"
msgstr "Ke harru fjalëkalimin?"
-msgid "Found %d public authority %s"
-msgid_plural "Found %d public authorities %s"
-msgstr[0] "Gjeti %d autoritet publik %s"
-msgstr[1] "Gjeti %d autoriteti publike %s"
+msgid "Found {{count}} public authority {{description}}"
+msgid_plural "Found {{count}} public authorities {{description}}"
+msgstr[0] "Gjeti {{count}} autoritet publik {{description}}"
+msgstr[1] "Gjeti {{count}} autoriteti publike {{description}}"
msgid "Freedom of Information"
msgstr "Informata Zyrtare"
@@ -914,11 +919,11 @@ msgstr "Kërkesa për informata zyrtare për"
msgid "From"
msgstr "Nga"
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
"Nga faqja e kërkesës, provo të përgjigjesh në një mesazh të caktuar, më parë se të\n"
" shkruash një përgjigje të përgjithshme. Nëse të duhet të shkruash përgjigje të përgjithshme, dhe e di\n"
-" emailin ku duhet ta drejtosh, atëherë të lutem <a href=\"%s\">dërgoje te ne</a>."
+" emailin ku duhet ta drejtosh, atëherë të lutem <a href=\"{{url}}\">dërgoje te ne</a>."
msgid "From:"
msgstr "Prej:"
@@ -929,6 +934,18 @@ msgstr "JEPI DETAJET PËR ANKESËN TËNDE KËTU"
msgid "Handled by post."
msgstr "Do të trajtohet me postë."
+msgid "Has tag string/has tag string tag"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Model"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Name"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Value"
+msgstr ""
+
msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
msgstr "Përshëndetje! Ti mund të bën kërkesa për informata zyrtare për autoritetet e {{country_name}} në {{link_to_website}}"
@@ -955,6 +972,9 @@ msgstr ""
" moment për ta lexuar dhe klasifikuar atë që ta mbajme ueb faqen të rregullt dhe të organizuar?\n"
" Faleminderit."
+msgid "Hide request"
+msgstr ""
+
msgid "Holiday"
msgstr "Festë"
@@ -967,6 +987,9 @@ msgstr "Festa | Përshkrimi"
msgid "Home"
msgstr "Ballina"
+msgid "Home page"
+msgstr ""
+
msgid "Home page of authority"
msgstr "Ueb sajti i autoritetit"
@@ -1017,8 +1040,17 @@ msgstr "Kam marrë <strong>disa prej informatave</strong>"
msgid "I've received an <strong>error message</strong>"
msgstr "Kam marrë një <strong>mesazh gabimi</strong>"
-msgid "If the address is wrong, or you know a better address, please <a href=\"%s\">contact us</a>."
-msgstr "Nëse adresa është e gabuar, ose ti e din një adresë më të mirë, të lutem <a href=\"%s\">na kontakto</a> ."
+msgid "I've received an error message"
+msgstr ""
+
+msgid "Id"
+msgstr ""
+
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Nëse adresa është e gabuar, ose ti e din një adresë më të mirë, të lutem <a href=\"{{url}}\">na kontakto</a> ."
+
+msgid "If the error was a delivery failure, and you can find an up to date FOI email address for the authority, please tell us using the form below."
+msgstr ""
msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
msgstr ""
@@ -1026,20 +1058,20 @@ msgstr ""
"apo një email me një temë tjetër te {{user}}, atëherë \n"
"dërgo email në {{contact_email}} për ndihmë."
-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>)."
+msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"{{url}}\">details</a>)."
msgstr ""
"Nëse je i pakënaqur me përgjigjen nga\n"
" institucioni publik, ke të drejtën të\n"
-" ankohesh (<a href=\"%s\">detajet</a>)."
+" ankohesh (<a href=\"{{url}}\">detajet</a>)."
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
-msgstr "Nëse ende po ka probleme, të lutem <a href=\"%s\">na kontakto</a> ."
+msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Nëse ende po ka probleme, të lutem <a href=\"{{url}}\">na kontakto</a> ."
-msgid "If you are the requester, then you may <a href=\"%s\">sign in</a> to view the request."
-msgstr "Nëse ti je kërkuesi, atëherë ti mund të <a href=\"%s\">kyçesh</a> për të parë kërkesën."
+msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request."
+msgstr "Nëse ti je kërkuesi, atëherë ti mund të <a href=\"{{url}}\">kyçesh</a> për të parë kërkesën."
-msgid "If you are thinking of using a pseudonym,\\n please <a href=\"%s\">read this first</a>."
-msgstr "Nëse je duke mendu me përdor pseudonim, të lutem <a href=\"%s\">lexo këtë së pari</a>."
+msgid "If you are thinking of using a pseudonym,\\n please <a href=\"{{url}}\">read this first</a>."
+msgstr "Nëse je duke mendu me përdor pseudonim, të lutem <a href=\"{{url}}\">lexo këtë së pari</a>."
msgid "If you are {{user_link}}, please"
msgstr "Nëse ti je {{user_link}}, të lutem"
@@ -1084,6 +1116,9 @@ msgstr "Nëse e ke përdorë {{site_name}} më parë"
msgid "If your browser is set to accept cookies and you are seeing this message,\\nthen there is probably a fault with our server."
msgstr "Nëse shfletuesi yt është vendosur për të pranuar \"cookies\" dhe ju jeni duke parë këtë mesazh, atëherë me sa duket ka gabim në serverin tonë."
+msgid "Incoming email address"
+msgstr ""
+
msgid "Incoming message"
msgstr "Porosi ardhëse"
@@ -1198,14 +1233,20 @@ msgstr "Kjo mund të jetë sepse shfletuesi yt nuk është i vendosur të prano
msgid "Items matching the following conditions are currently displayed on your wall."
msgstr ""
+msgid "Items sent in last month"
+msgstr ""
+
msgid "Joined in"
msgstr "Bashkangjitur më"
msgid "Joined {{site_name}} in"
msgstr "Bashkangjitur {{site_name}} më"
-msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)."
-msgstr "Mbaje <strong>të fokusuar</strong>, gjasat janë më të mëdha që të marrësh përgjigjen e dëshiruar (<a href=\"%s\">pse?</a>)."
+msgid "Just one more thing"
+msgstr ""
+
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
+msgstr "Mbaje <strong>të fokusuar</strong>, gjasat janë më të mëdha që të marrësh përgjigjen e dëshiruar (<a href=\"{{url}}\">pse?</a>)."
msgid "Keywords"
msgstr "Fjalët kyçe"
@@ -1222,9 +1263,27 @@ msgstr "Na trego se çfarë ke qenë duke bërë kur ky mesazh u shfaq si dhe em
msgid "Link to this"
msgstr "Vegza e kësaj kërkese"
+msgid "List all"
+msgstr ""
+
msgid "List of all authorities (CSV)"
msgstr "Listo të gjitha autoritetet (CSV)"
+msgid "Listing FOI requests"
+msgstr ""
+
+msgid "Listing public authorities"
+msgstr ""
+
+msgid "Listing public authorities matching '{{query}}'"
+msgstr ""
+
+msgid "Listing tracks"
+msgstr ""
+
+msgid "Listing users"
+msgstr ""
+
msgid "Log in to download a zip file of {{info_request_title}}"
msgstr "Kyçu për të shkarkuar zip fajllin e {{info_request_title}}"
@@ -1325,6 +1384,9 @@ msgstr "Emri është i zënë"
msgid "New Freedom of Information requests"
msgstr "Kërkesat e reja për informata zyrtare "
+msgid "New censor rule"
+msgstr ""
+
msgid "New e-mail:"
msgstr "Email i ri:"
@@ -1370,6 +1432,9 @@ msgstr "Asnjë rezultat nuk u gjet."
msgid "No similar requests found."
msgstr "Nuk gjetëm kërkesa të ngjashme."
+msgid "No tracked things found."
+msgstr ""
+
msgid "Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet."
msgstr "Ende askush nuk ka bërë ndonjë kërkesë te {{public_body_name}} duke përdorur këtë faqe."
@@ -1379,6 +1444,9 @@ msgstr "Asnjë nuk u gjet."
msgid "None made."
msgstr "Asnjë e bërë."
+msgid "Not a valid FOI request"
+msgstr ""
+
msgid "Note that the requester will not be notified about your annotation, because the request was published by {{public_body_name}} on their behalf."
msgstr ""
@@ -1424,6 +1492,9 @@ msgstr "U gjet një person"
msgid "One public authority found"
msgstr "U gjet një autoritet publik"
+msgid "Only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL – don't worry about breaking URLs through renaming, as the history is used to redirect"
+msgstr ""
+
msgid "Only requests made using {{site_name}} are shown."
msgstr "Vetëm kërkesat që janë bërë me {{site_name}} janë të shfaqura."
@@ -1496,8 +1567,8 @@ msgstr "Luaj lojën e kategorizimit të kërkesave!"
msgid "Please"
msgstr "Të lutem"
-msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
-msgstr "Të lutem <a href=\"%s\">na kontakto</a> që neve ta rregullojme ate."
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
+msgstr "Të lutem <a href=\"{{url}}\">na kontakto</a> që neve ta rregullojme ate."
msgid "Please <strong>answer the question above</strong> so we know whether the "
msgstr "Të lutem <strong> përgjigju pyetjes së mësipërme</strong> që ne të dimë nëse"
@@ -1610,8 +1681,8 @@ msgstr ""
"Të lutem selektoi të gjitha kërkesat një pas një, dhe <strong>bëje të njohur për të gjithë</strong>\n"
"nëse kanë qenë të suksesshme deri tash apo jo."
-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"
+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"
msgid "Please sign in as "
msgstr "Të lutem kyçu si "
@@ -1622,9 +1693,6 @@ msgstr ""
msgid "Please type a message and/or choose a file containing your response."
msgstr "Të lutem shkruaj një mesazh dhe/ose zgjedh një fajll që përmban përgjigjen tënde."
-msgid "Please use the form below to tell us more."
-msgstr "Të lutem përdor formularin e mëposhtëm për të na treguar më shumë."
-
msgid "Please use this email address for all replies to this request:"
msgstr "Të lutem përdor këtë adresë të emailit për të gjitha përgjigjet në këtë kërkesë:"
@@ -1715,37 +1783,19 @@ msgstr "Autoritetet publike - {{description}}"
msgid "Public authorities {{start_count}} to {{end_count}} of {{total_count}}"
msgstr "Autoritetet publike {{start_count}} deri {{end_count}} prej {{total_count}}"
-msgid "Public body"
-msgstr "Institucion publik"
-
-msgid "Public body/translation"
-msgstr ""
-
-msgid "PublicBody::Translation|Disclosure log"
-msgstr ""
-
-msgid "PublicBody::Translation|First letter"
+msgid "Public authority – {{name}}"
msgstr ""
-msgid "PublicBody::Translation|Locale"
-msgstr ""
-
-msgid "PublicBody::Translation|Name"
-msgstr ""
-
-msgid "PublicBody::Translation|Notes"
-msgstr ""
-
-msgid "PublicBody::Translation|Publication scheme"
-msgstr ""
+msgid "Public body"
+msgstr "Institucion publik"
-msgid "PublicBody::Translation|Request email"
+msgid "Public notes"
msgstr ""
-msgid "PublicBody::Translation|Short name"
+msgid "Public page"
msgstr ""
-msgid "PublicBody::Translation|Url name"
+msgid "Public page not available"
msgstr ""
msgid "PublicBody|Api key"
@@ -1793,6 +1843,9 @@ msgstr "PublicBody |Versioni"
msgid "Publication scheme"
msgstr "Skema e publikimit"
+msgid "Publication scheme URL"
+msgstr ""
+
msgid "Purge request"
msgstr "Fshij kërkesën"
@@ -1852,6 +1905,9 @@ msgstr "Kërko një rishqyrtim intern"
msgid "Request an internal review from {{person_or_body}}"
msgstr "Kërko një rishikim intern nga {{person_or_body}}"
+msgid "Request email"
+msgstr ""
+
msgid "Request has been removed"
msgstr "Kërkesa është larguar (fshirë)"
@@ -1945,14 +2001,17 @@ msgstr "Rezultatet e kërkimit"
msgid "Search the site to find what you were looking for."
msgstr "Kërko në këtë ueb sajt për të gjetur atë që ti po kërkon."
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
-msgstr[0] "Kërko brenda %d kërkesave për informata zyrtare në %s"
-msgstr[1] "Kërko brenda %d kërkesave për informata zyrtare të bëra në %s"
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests made to {{public_body_name}}"
+msgstr[0] "Kërko brenda {{count}} kërkesave për informata zyrtare në {{public_body_name}}"
+msgstr[1] "Kërko brenda {{count}} kërkesave për informata zyrtare të bëra në {{public_body_name}}"
msgid "Search your contributions"
msgstr "Kërko në kontributet tua"
+msgid "See bounce message"
+msgstr ""
+
msgid "Select one to see more information about the authority."
msgstr "Zgjedh një për të parë më shumë informacion në lidhje me autoritetin."
@@ -1986,6 +2045,9 @@ msgstr "Dërgo kërkesën"
msgid "Set your profile photo"
msgstr "Vendos fotografinë e profilit tënd"
+msgid "Short name"
+msgstr ""
+
msgid "Short name is already taken"
msgstr "Emri i shkurtë është i zënë"
@@ -2081,6 +2143,9 @@ msgstr "Dërgo"
msgid "Submit status"
msgstr "Dërgo statusin"
+msgid "Submit status and send message"
+msgstr ""
+
msgid "Subscribe to blog"
msgstr "Abonohu në blog"
@@ -2102,6 +2167,9 @@ msgstr "Tabela e statuseve"
msgid "Table of varieties"
msgstr "Tabela e varianteve"
+msgid "Tags"
+msgstr ""
+
msgid "Tags (separated by a space):"
msgstr "Etiketat (të ndara me një hapësirë):"
@@ -2129,6 +2197,9 @@ msgstr "Faleminderit për aktualizimin e kësaj kërkese!"
msgid "Thank you for updating your profile photo"
msgstr "Faleminderit për aktualizimin e fotografisë e profilit tënd"
+msgid "Thank you! We'll look into what happened and try and fix it up."
+msgstr ""
+
msgid "Thanks for helping - your work will make it easier for everyone to find successful\\nresponses, and maybe even let us make league tables..."
msgstr ""
"Faleminderit për ndihmë - ndihma yte do ta bëjë më të lehtë që të tjerët të gjejnë kërkesat e suksesshme, \n"
@@ -2202,19 +2273,19 @@ msgstr "Kërkesa ishte e <strong>suksesshme</strong>."
msgid "The request was refused by the public authority"
msgstr "Kërkesa u refuzua nga autoriteti publik"
-msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"%s\">contact us</a> if you have any questions."
-msgstr "Kërkesa që ti je përpjek për të parë është hequr (larguar). Ka arsye të ndryshme pse ne kemi mund për të bërë këtë, na vie keq që nuk mund të jemi më specifik. Të lutem të <a href=\"%s\">na kontakton</a> nëse ke ndonjë pyetje."
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
+msgstr "Kërkesa që ti je përpjek për të parë është hequr (larguar). Ka arsye të ndryshme pse ne kemi mund për të bërë këtë, na vie keq që nuk mund të jemi më specifik. Të lutem të <a href=\"{{url}}\">na kontakton</a> nëse ke ndonjë pyetje."
msgid "The requester has abandoned this request for some reason"
msgstr "Për ndonjë arsye, përdoruesi e ka braktisur kërkesën"
-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"
+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 ""
"Përgjigja në kërkesën tënde është e <strong>vonuar</strong>. Mund të thuhet që,\n"
"sipas ligjit, autoriteti ishte dashtë të përgjigjet në \n"
"<strong>afat</strong> të paraparë dhe "
-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"
+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 ""
"Përgjigja në kërkesën tënde është <strong>vonuar për së tepërmi</strong>. Mund të thuhet që,\n"
"sipas ligjit, duke i patur parasyesh të gjitha rrethanat, autoriteti ishte dashtë të përgjigjet \n"
@@ -2226,6 +2297,9 @@ msgstr "Indeksi i kërkimit aktualisht është i shkëputur, kështu që nuk mun
msgid "The search index is currently offline, so we can't show the Freedom of Information requests this person has made."
msgstr "Indeksi i kërkimit është jashtë funksioni, kështu që ne nuk mund t'i tregojmë kërkesat për informata zyrtare që ky person ka bërë."
+msgid "The {{site_name}} team."
+msgstr ""
+
msgid "Then you can cancel the alert."
msgstr "Pastaj ti mund të anulon njoftimin."
@@ -2301,17 +2375,17 @@ msgstr "Pastaj shënimi yt për {{info_request_title}} do të postohet."
msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
msgstr "Ka {{count}} shënime të reja në kërkesën tënde {{info_request}}. Ndiqni këtë vegzë për t'i parë ato."
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
-msgstr[0] "Një person %d është duke e përcjell këtë kërkesë"
-msgstr[1] "Janë %d persona duke e përcjell këtë autoritet"
-
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 ""
msgid "There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>."
msgstr ""
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
+msgstr[0] "Një person {{count}} është duke e përcjell këtë kërkesë"
+msgstr[1] "Janë {{count}} persona duke e përcjell këtë autoritet"
+
msgid "There was a <strong>delivery error</strong> or similar, which needs fixing by the {{site_name}} team."
msgstr "Kishte një <strong>dështim gjatë dorëzimit.</strong> apo diç e ngjajshme, e cila ka nevojë për përmirsim nga ekipi i {{site_name}}."
@@ -2348,8 +2422,8 @@ msgstr "Gjërat që po i ndiqni"
msgid "This authority no longer exists, so you cannot make a request to it."
msgstr "Ky autoritet nuk ekziston më, kështu që ju nuk mund të bëni një kërkesë për të."
-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 "Ky koment është fshehur. Shih shënimet për të gjetur pse. Nëse ti je kërkuesi, atëherë ti mund të <a href=\"%s\">kyçesh </a> për të parë përgjigjen."
+msgid "This comment has been hidden. See annotations to\\n find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
+msgstr "Ky koment është fshehur. Shih shënimet për të gjetur pse. Nëse ti je kërkuesi, atëherë ti mund të <a href=\"{{url}}\">kyçesh </a> për të parë përgjigjen."
msgid "This covers a very wide spectrum of information about the state of\\n the <strong>natural and built environment</strong>, such as:"
msgstr ""
@@ -2366,13 +2440,16 @@ msgstr "Ky është version HTML i shtojcës (attachment) ndaj kërkesës për in
msgid "This is because {{title}} is an old request that has been\\nmarked to no longer receive responses."
msgstr "Kjo është për shkak se {{title}} është një kërkesë e vjetër që ka qenë e shenjuar të mos marrë më përgjigje."
+msgid "This is the first version."
+msgstr ""
+
msgid "This is your own request, so you will be automatically emailed when new responses arrive."
msgstr "Kjo është kërkesa yte, kështu që ti do të merr email automatikisht kur përgjigjet e reja arrijnë."
-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."
+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=\"{{url}}\">sign in</a> to view the response."
msgstr ""
"Mesazhi në largim është fshehur. Shih shënimet në \n"
-" »» »» »» për të kuptuar arsyen. Nëse ti je kërkuesi, atëherë ti mund të <a href=\"%s\">kyçesh</a> për të parë përgjigjen."
+" »» »» »» për të kuptuar arsyen. Nëse ti je kërkuesi, atëherë ti mund të <a href=\"{{url}}\">kyçesh</a> për të parë përgjigjen."
msgid "This particular request is finished:"
msgstr "Kjo kërkesë është përmbyllur:"
@@ -2380,19 +2457,19 @@ msgstr "Kjo kërkesë është përmbyllur:"
msgid "This person has made no Freedom of Information requests using this site."
msgstr "Ky person nuk ka bërë kërkesa për informata zyrtare duke përdorur këtë ueb faqe."
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
-msgstr[0] "%d kërkesë për informatë zyrtare të këtij personi"
-msgstr[1] "%d kërkesa për informata zyrtare të këtij personi"
-
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
-msgstr[0] "%d shënim i këtij personi"
-msgstr[1] "%d shënime të këtij personi"
-
msgid "This person's annotations"
msgstr "Shënimet që i ka bërë ky person"
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
+msgstr[0] "{{count}} kërkesë për informatë zyrtare të këtij personi"
+msgstr[1] "{{count}} kërkesa për informata zyrtare të këtij personi"
+
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
+msgstr[0] "{{count}} shënim i këtij personi"
+msgstr[1] "{{count}} shënime të këtij personi"
+
msgid "This request <strong>requires administrator attention</strong>"
msgstr "Kjo kërkesë <strong>kërkon vëmendje të administratorit</strong>"
@@ -2414,7 +2491,7 @@ msgstr ""
msgid "This request has been <strong>withdrawn</strong> by the person who made it.\\n There may be an explanation in the correspondence below."
msgstr "Kjo kërkesë është <strong>tërhequr</strong> nga personi që e bëri atë. » Mund të ketë një shpjegim në korrespondencën më poshtë."
-msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"%s\">contact us</a>."
+msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
msgid "This request has been reported for administrator attention"
@@ -2431,17 +2508,20 @@ msgstr ""
msgid "This request has prominence 'hidden'. You can only see it because you are logged\\n in as a super user."
msgstr "Kjo kërkesë ka klasifikim 'fshehur'. Ti mund të shohësh atë, vetëm sepse je kyçur 'super user'."
-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 "Kjo kërkesë është e fshehur, kështu që vetëm ti - kërkuesi mund ta shoh ate. Të lutem <a href=\"%s\">na kontakto</a> nëse nuk je i sigurt pse kjo po ndodhë."
+msgid "This request is hidden, so that only you the requester can see it. Please\\n <a href=\"{{url}}\">contact us</a> if you are not sure why."
+msgstr "Kjo kërkesë është e fshehur, kështu që vetëm ti - kërkuesi mund ta shoh ate. Të lutem <a href=\"{{url}}\">na kontakto</a> nëse nuk je i sigurt pse kjo po ndodhë."
msgid "This request is still in progress:"
msgstr "Kjo kërkesë është ende në përpunim:"
+msgid "This request requires administrator attention"
+msgstr ""
+
msgid "This request was not made via {{site_name}}"
msgstr "Kjo kërkesë nuk është bërë nëpërmjet {{site_name}}"
-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 "Kjo përgjigje është fshehur. Shih shënimet për të kuptuar pse. Nëse ti je kërkuesi, atëherë ti mund të <a href=\"%s\">kyçesh</a> për të parë përgjigjen."
+msgid "This response has been hidden. See annotations to find out why.\\n If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
+msgstr "Kjo përgjigje është fshehur. Shih shënimet për të kuptuar pse. Nëse ti je kërkuesi, atëherë ti mund të <a href=\"{{url}}\">kyçesh</a> për të parë përgjigjen."
msgid "This table shows the technical details of the internal events that happened\\nto this request on {{site_name}}. This could be used to generate information about\\nthe speed with which authorities respond to requests, the number of requests\\nwhich require a postal response and much more."
msgstr ""
@@ -2607,8 +2687,8 @@ msgstr "Lloji i papritur i rezultatit të kërkuar"
msgid "Unexpected search result type "
msgstr "Lloji i papritur i rezultatit të kërkuar "
-msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"%s\">contact us</a> to sort it out."
-msgstr "Për fat të keq ne nuk e dimë adresën emailit për kërkesa zyrtare për këtë autoritet, kështu që ne nuk mund ta vërtetojmë këtë. Të lutem të <a href=\"%s\">na kontakton</a> për ta rregulluar atë."
+msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"{{url}}\">contact us</a> to sort it out."
+msgstr "Për fat të keq ne nuk e dimë adresën emailit për kërkesa zyrtare për këtë autoritet, kështu që ne nuk mund ta vërtetojmë këtë. Të lutem të <a href=\"{{url}}\">na kontakton</a> për ta rregulluar atë."
msgid "Unfortunately, we do not have a working {{info_request_law_used_full}}\\naddress for"
msgstr "Për fat të keq, ne nuk kemi një adresë funksionale {{info_request_law_used_full}} për"
@@ -2643,6 +2723,9 @@ msgstr "Përdoruesi"
msgid "User info request sent alert"
msgstr ""
+msgid "User – {{name}}"
+msgstr ""
+
msgid "UserInfoRequestSentAlert|Alert type"
msgstr "UserInfoRequestSentAlert|Alert type"
@@ -2697,6 +2780,9 @@ msgstr "User|Salt"
msgid "User|Url name"
msgstr "Përdoruesi | Emri Url"
+msgid "Version {{version}}"
+msgstr ""
+
msgid "View FOI email address"
msgstr "Shiko adresën e emailit për Informata Zyrtare"
@@ -2736,6 +2822,12 @@ msgstr "Duke pritur që autoriteti publik të përgjigjet"
msgid "Was the response you got to your FOI request any good?"
msgstr "A ishte kërkesa e juaj për QDP e mirë?"
+msgid "We consider it is not a valid FOI request, and have therefore hidden it from other users."
+msgstr ""
+
+msgid "We consider it to be vexatious, and have therefore hidden it from other users."
+msgstr ""
+
msgid "We do not have a working request email address for this authority."
msgstr "Për fat të keq, ne nuk kemi një email adresë funksionale për këtë autoritet"
@@ -2749,10 +2841,10 @@ msgstr ""
" &ndash;\n"
" nëse ti je {{user_link}}, të lutem <a href=\"{{url}}\">kyçu </a> dhe bëje këtë të ditur për të tjerët."
-msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"%s\">details</a>). "
+msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"{{url}}\">details</a>). "
msgstr ""
"Ne nuk do t'ja zbulojmë adresën e emailit tënd askujt, përveç nëse ti\n"
-" e lejon këtë. (<a href=\"%s\">detajet</a>). "
+" e lejon këtë. (<a href=\"{{url}}\">detajet</a>). "
msgid "We will not reveal your email address to anybody unless you\\nor the law tell us to."
msgstr "Ne nuk do ta zbulojmë adresën e emailit tënd askujt, përveç nëse ju e lejoni këtë."
@@ -2795,8 +2887,8 @@ msgstr ""
msgid "When you receive the paper response, please help\\n others find out what it says:"
msgstr "Kur të marrësh përgjigjen në letër, të lutem i ndihmoni të tjerët të gjejnë se çfarë thotë në te:"
-msgid "When you're done, <strong>come back here</strong>, <a href=\"%s\">reload this page</a> and file your new request."
-msgstr "Kur të kesh mbaruar, <strong>kthehu këtu,</strong> <a href=\"%s\">rifresko këtë faqe</a> dhe bëj kërkesën tënde të re."
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
+msgstr "Kur të kesh mbaruar, <strong>kthehu këtu,</strong> <a href=\"{{url}}\">rifresko këtë faqe</a> dhe bëj kërkesën tënde të re."
msgid "Which of these is happening?"
msgstr "Cila nga këto po ndodh?"
@@ -2903,11 +2995,11 @@ msgstr "Ti e di se çfarë e shkaktoi gabim, dhe mund të <strong>sugjerosh një
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 ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
"Ti ke mundësi të gjejsh atë\n"
" në ueb sajtin e tyre, ose duke iu telefonuar. Nëse keni arritur të gjeni adresën,\n"
-" atëherë të lutem <a href=\"%s\">na e dërgo të njejtën</a>."
+" atëherë të lutem <a href=\"{{url}}\">na e dërgo të njejtën</a>."
msgid "You may be able to find\\none on their website, or by phoning them up and asking. If you manage\\nto find one, then please <a href=\"{{help_url}}\">send it to us</a>."
msgstr ""
@@ -2950,6 +3042,9 @@ msgstr ""
msgid "You will only get an answer to your request if you follow up\\nwith the clarification."
msgstr "Ti do të merr përgjigje në kërkesën tënde vetëm në qoftë se e sqaroni atë."
+msgid "You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further."
+msgstr ""
+
msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
msgstr ""
@@ -2962,23 +3057,13 @@ msgstr "Nuk po ndiqni ndonjë gjë."
msgid "You've now cleared your profile photo"
msgstr "Ke pastruar fotografinë e profilit tënd"
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
-msgstr[0] "%d kërkesë e yte për informatë zyrtare"
-msgstr[1] "%d kërkesa tua për informata zyrtare"
-
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
-msgstr[0] "%d shënim i yti"
-msgstr[1] "%d shënimet e tua"
-
-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>."
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
msgstr ""
"<strong>Emri yt do të shfaqet publikisht </strong>\n"
-" (<a href=\"%s\">pse?</a>)\n"
+" (<a href=\"{{why_url}}\">pse?</a>)\n"
" në këtë ueb faqe dhe në këruesit e internetit (p.sh. Google). \n"
" Nëse mendon ta përdorësh një pseudonim, të lutem\n"
-" <a href=\"%s\">së pari lexoje këtë</a>."
+" <a href=\"{{help_url}}\">së pari lexoje këtë</a>."
msgid "Your annotations"
msgstr "Shënimet tua"
@@ -2989,8 +3074,8 @@ msgstr "Të dhënat tuaja, duke përfshirë adresën tuaj të e-mailit, nuk jan
msgid "Your e-mail:"
msgstr "Emaili yt:"
-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 "Mesazhi yt vazhdues nuk është dërguar përshkak se kërkesa ështe stopuar për të parandaluar spam emailat. Të lutem <a href=\"%s\">na kontakto</a> nëse vërtet dëshiron të dërgosh mesazh vazhdues."
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
+msgstr "Mesazhi yt vazhdues nuk është dërguar përshkak se kërkesa ështe stopuar për të parandaluar spam emailat. Të lutem <a href=\"{{url}}\">na kontakto</a> nëse vërtet dëshiron të dërgosh mesazh vazhdues."
msgid "Your follow up message has been sent on its way."
msgstr "Mesazhi yt vazhdues është derguar."
@@ -3013,10 +3098,10 @@ msgstr "Mesazhi yt do të shfaqet në <strong>kërkuesit e internetit (p.sh. Goo
msgid "Your name and annotation will appear in <strong>search engines</strong>."
msgstr "Emri yt dhe shënimi do të shfaqen në <strong>kërkuesit e internetit (p.sh. Google).</strong>"
-msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"%s\">details</a>)."
+msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"{{url}}\">details</a>)."
msgstr ""
"Emri yt, kërkesa dhe çdo përgjigje që do të mirret, do të shfaqen në\n"
-"<strong>kërkuesit e internetit (p.sh. Google)</strong> (<a href=\"%s\">detajet</a>)."
+"<strong>kërkuesit e internetit (p.sh. Google)</strong> (<a href=\"{{url}}\">detajet</a>)."
msgid "Your name:"
msgstr "Emri yt:"
@@ -3033,6 +3118,12 @@ msgstr "Fjalëkalimi yt:"
msgid "Your photo will be shown in public <strong>on the Internet</strong>,\\n wherever you do something on {{site_name}}."
msgstr ""
+msgid "Your request '{{request}}' at {{url}} has been reviewed by moderators."
+msgstr ""
+
+msgid "Your request on {{site_name}} hidden"
+msgstr ""
+
msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
msgstr "Kërkesa yte qe emëruar {{info_request}}. Nëse i lejoni të tjerër ta dijnë a i keni marrë informatat në pergjigje, do të na mundësoni ta mbikqyrim "
@@ -3042,14 +3133,24 @@ msgstr "Kërkesa yte:"
msgid "Your response to an FOI request was not delivered"
msgstr "Përgjigja juaj në kërkesën për QDP nuk është dorëzuar"
-msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"%s\">read why</a> and answers to other questions."
-msgstr "Përgjigja yte do të <strong>shfaqet në internet,</strong> <a href=\"%s\">lexoni pse</a> dhe përgjigjet për pyetje të tjera."
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
+msgstr "Përgjigja yte do të <strong>shfaqet në internet,</strong> <a href=\"{{url}}\">lexoni pse</a> dhe përgjigjet për pyetje të tjera."
msgid "Your thoughts on what the {{site_name}} <strong>administrators</strong> should do about the request."
msgstr ""
"Mendimet tua se çfare duhet <strong>administratorët e</strong> \n"
"{{site_name}} të bëjnë me kërkesën."
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
+msgstr[0] "{{count}} kërkesë e yte për informatë zyrtare"
+msgstr[1] "{{count}} kërkesa tua për informata zyrtare"
+
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
+msgstr[0] "{{count}} shënim i yti"
+msgstr[1] "{{count}} shënimet e tua"
+
msgid "Your {{site_name}} email alert"
msgstr "Njoftimet tuaja me email në {{site_name}}"
@@ -3059,6 +3160,9 @@ msgstr "Me nderime,"
msgid "Yours sincerely,"
msgstr "Sinqerisht,"
+msgid "Yours,"
+msgstr ""
+
msgid "[FOI #{{request}} email]"
msgstr ""
@@ -3079,6 +3183,9 @@ msgstr ""
msgid "admin"
msgstr "admin"
+msgid "alaveteli_foi:The software that runs {{site_name}}"
+msgstr ""
+
msgid "all requests"
msgstr "të gjitha kërkesat"
@@ -3112,6 +3219,9 @@ msgstr "çkado"
msgid "are long overdue."
msgstr "janë vonuar së tepërmi."
+msgid "at"
+msgstr ""
+
msgid "authorities"
msgstr "autoritetet"
@@ -3124,6 +3234,9 @@ msgstr "duke filluar me ‘{{first_letter}}’"
msgid "between two dates"
msgstr "në mes të dy datave"
+msgid "but followupable"
+msgstr ""
+
msgid "by"
msgstr "nga"
@@ -3207,17 +3320,23 @@ msgstr "mesazhe nga autoritetet"
msgid "messages from users"
msgstr "mesazhe nga përdoruesit"
+msgid "move..."
+msgstr ""
+
msgid "no later than"
msgstr "jo më vonë se"
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
"nuk ekziston më. Nëse je duke u përpjekur për të bërë\n"
-" Prej faqes së kërkesës, provo ti përgjigjesh një mesazhi të veçant, në vend se të dërgosh një mesazh vazhdues. Nëse keni nevojë të bëni një mesazh prëcjellës të përgjithshëm dhe e di një adresë të emailit që do të shkon ne vendin e duhur, të lutem <a href=\"%s\">na e dërgo</a>."
+" Prej faqes së kërkesës, provo ti përgjigjesh një mesazhi të veçant, në vend se të dërgosh një mesazh vazhdues. Nëse keni nevojë të bëni një mesazh prëcjellës të përgjithshëm dhe e di një adresë të emailit që do të shkon ne vendin e duhur, të lutem <a href=\"{{url}}\">na e dërgo</a>."
msgid "normally"
msgstr "normalisht"
+msgid "not requestable due to: {{reason}}"
+msgstr ""
+
msgid "please sign in as "
msgstr "Të lutem kyçu si "
@@ -3241,6 +3360,9 @@ msgstr "Dërgo një mesazh përcjellës"
msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
msgstr "dërguar {{public_body_name}} nga {{info_request_user}} me {{date}}."
+msgid "set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA"
+msgstr ""
+
msgid "show quoted sections"
msgstr "shfaq pjesët e cituara"
@@ -3262,6 +3384,11 @@ msgstr "që ti ke bërë për"
msgid "the main FOI contact address for {{public_body}}"
msgstr "adresa kryesore kontaktuese për dërgimin e kërkesave te {{public_body}}"
+#. This phrase completes the following sentences:
+#. Request an internal review from...
+#. Send a public follow up message to...
+#. Send a public reply to...
+#. Don't want to address your message to... ?
msgid "the main FOI contact at {{public_body}}"
msgstr "kontakti kryesor për kërkesa te {{public_body}}"
@@ -3310,9 +3437,32 @@ msgstr "informata të dobishëme."
msgid "users"
msgstr "përdoruesit"
+msgid "what's that?"
+msgstr "Çfarë është ajo?"
+
msgid "{{count}} FOI requests found"
msgstr "{{count}} Kërkesa për informata zyrtare u gjetën"
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] "{{count}} Kërkesë për informata zyrtare për {{public_body_name}}"
+msgstr[1] "{{count}} Kërkesa për informata zyrtare për {{public_body_name}}"
+
+msgid "{{count}} person is following this authority"
+msgid_plural "{{count}} people are following this authority"
+msgstr[0] "{{count}}person po përcjell këtë autoritet"
+msgstr[1] "{{count}}persona po përcjellin këtë autoritet"
+
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
+msgstr[0] "{{count}} kërkesë"
+msgstr[1] "{{count}} kërkesa"
+
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
+msgstr[0] "{{count}} kërkesë e bërë."
+msgstr[1] "{{count}} kërkesa të bëra."
+
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 ""
"{{existing_request_user}} tashmë\n"
@@ -3373,6 +3523,9 @@ msgstr "{{site_name}} dërgon kërkesa të reja për <strong>{{request_email}}</
msgid "{{site_name}} users have made {{number_of_requests}} requests, including:"
msgstr "Përdoruesit e {{site_name}} kanë bërë {{number_of_requests}} kërkesa, duke përfshirë:"
+msgid "{{thing_changed}} was changed from <code>{{from_value}}</code> to <code>{{to_value}}</code>"
+msgstr ""
+
msgid "{{title}} - a Freedom of Information request to {{public_body}}"
msgstr "{{title}} - një kërkesë për qasje në dokument publik nga {{public_body}}"
diff --git a/locale/sr@latin/app.po b/locale/sr@latin/app.po
index 4cf2de2a7..8b9022d83 100644
--- a/locale/sr@latin/app.po
+++ b/locale/sr@latin/app.po
@@ -3,16 +3,17 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# Valon <vbrestovci@gmail.com>, 2012.
-# vbrestovci <vbrestovci@gmail.com>, 2011.
+# krledmno1 <krledmno1@gmail.com>, 2013
+# Valon <vbrestovci@gmail.com>, 2012
+# Valon <vbrestovci@gmail.com>, 2011
msgid ""
msgstr ""
"Project-Id-Version: alaveteli\n"
"Report-Msgid-Bugs-To: http://github.com/sebbacon/alaveteli/issues\n"
-"POT-Creation-Date: 2012-12-18 10:11+0000\n"
-"PO-Revision-Date: 2012-12-18 10:14+0000\n"
+"POT-Creation-Date: 2013-05-30 09:46+0100\n"
+"PO-Revision-Date: 2013-05-30 08:54+0000\n"
"Last-Translator: louisecrow <louise@mysociety.org>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/alaveteli/language/sr@latin/)\n"
"Language: sr@latin\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -22,7 +23,7 @@ msgstr ""
msgid " This will appear on your {{site_name}} profile, to make it\\n easier for others to get involved with what you're doing."
msgstr "<a href=\"%s\">Da li nam nedostaje javna ustanova?</a>"
-msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)"
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
msgstr ""
msgid " (<strong>patience</strong>, especially for large files, it may take a while!)"
@@ -55,9 +56,9 @@ msgstr " Savetuj kako<strong>najbolje objasniti</strong> zahjev."
msgid " Ideas on what <strong>other documents to request</strong> which the authority may hold. "
msgstr " Ideje za <strong>zahteve drugih dokumenata</strong> koje ustanova može posjedovati. "
-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."
+msgid " If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\\n You may be able to find the address on their website, or by phoning them up and asking."
msgstr ""
-" Ako znate koju adresu treba koristiti, molimo Vas <a href=\"%s\">pošaljite je nama</a>.\n"
+" Ako znate koju adresu treba koristiti, molimo Vas <a href=\"{{url}}\">pošaljite je nama</a>.\n"
" Moguće je da možete naći adresu na njihovoj web stranici, ili putem telefona."
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."
@@ -76,7 +77,7 @@ msgid " Say how you've <strong>used the information</strong>, with links if poss
msgstr " Recite nam kako ste<strong>iskoristili informaciju</strong>, sa linkovima ako je moguće."
msgid " Suggest <strong>where else</strong> the requester might find the information. "
-msgstr ""
+msgstr "Predložite <strong>gde sve</strong> podnosilac zahteva može pronaći informacije."
msgid " What are you investigating using Freedom of Information? "
msgstr " Šta istražujete koristeći Zakon o slobodnom pristupu informacijama ? "
@@ -99,24 +100,6 @@ msgstr " kada pošaljete ovu poruku."
msgid "\"Hello! We have an <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">important message</a> for visitors outside {{country_name}}\""
msgstr ""
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
-msgstr[0] "%d Freedom of Information requests to %s"
-msgstr[1] "%d Freedom of Information requests to %s"
-msgstr[2] "%d Freedom of Information requests to %s"
-
-msgid "%d request"
-msgid_plural "%d requests"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-msgid "%d request made."
-msgid_plural "%d requests made."
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
msgid "'Crime statistics by ward level for Wales'"
msgstr "'Statistika krivičnih dela na opštinskom nivou'"
@@ -132,6 +115,9 @@ msgstr "'{{link_to_request}}', zahtev"
msgid "'{{link_to_user}}', a person"
msgstr "'{{link_to_user}}', osoba"
+msgid "*unknown*"
+msgstr ""
+
msgid ",\\n\\n\\n\\nYours,\\n\\n{{user_name}}"
msgstr ""
",\n"
@@ -154,32 +140,14 @@ msgstr "2. Tražite informacije"
msgid "3. Now check your request"
msgstr "3. Sada provjerite Vaš zahtev"
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
+msgstr "<a href=\"{{browse_url}}\">Pretraži sve</a> ili <a href=\"{{add_url}}\"> zamolite nas da dodamo </a>."
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
-msgstr "<a href=\"%s\">Dodaj napomenu</a> (da bi se pomoglo podnosiocu zahteva ili drugima)"
+msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)"
+msgstr "<a href=\"{{url}}\">Dodaj napomenu</a> (da bi se pomoglo podnosiocu zahteva ili drugima)"
-msgid "<a href=\"%s\">Are we missing a public authority?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Are you the owner of\\n any commercial copyright on this page?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
-msgstr "<a href=\"%s\">Pretraži sve</a> ili <a href=\"%s\"> zamolite nas da dodamo </a>."
-
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
-msgstr "<a href=\"%s\">Ne možete naći onaj koji želite?</a>"
-
-msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
-msgstr "<a href=\"%s\">Prijavite se</a> da biste promijenili password, pretplatu ili drugo ({{user_name}} only)"
-
-msgid "<a href=\"%s\">details</a>"
-msgstr "<a href=\"%s\">detalji</a>"
-
-msgid "<a href=\"%s\">what's that?</a>"
-msgstr "<a href=\"%s\">šta je to?</a>"
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
+msgstr "<a href=\"{{url}}\">Prijavite se</a> da biste promijenili password, pretplatu ili drugo ({{user_name}} only)"
msgid "<p>All done! Thank you very much for your help.</p><p>There are <a href=\"{{helpus_url}}\">more things you can do</a> to help {{site_name}}.</p>"
msgstr "<p>Završeno! Hvala Vam na pomoći.</p><p>Postoji <a href=\"{{helpus_url}}\">više stvari koje možete uradite</a> da biste pomogli {{site_name}}.</p>"
@@ -196,9 +164,6 @@ msgstr ""
msgid "<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>"
msgstr "<p>Hvala! Nadamo se da nećete čekati predugo.</p><p>Trebali biste dobiti odgovor za {{late_number_of_days}} dana, ili obavešteni da će trajati duže. (<a href=\"{{review_url}}\">Više informacija</a>)</p>"
-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 "<p>Hvala! Proveriti ćemo šta se dogodilo i pokušati to popraviti.</p><p>Ako je došlo do greške prilikom isporuke, i možete naći ažuriranu ZOSPI e-mail adresu za ustanovu molimo obavestite nas koristeći formular ispod.</p>"
-
msgid "<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>"
msgstr ""
@@ -219,11 +184,11 @@ msgstr "<p>Drago nam je da ste dobili sve željene informacije. Ako ih budete ko
msgid "<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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 "<p>Drago nam je da ste dobili dio željenih informacija. Ako mislite da je {{site_name}} bio koristan, <a href=\"{{donation_url}}\">donirajte</a> nevladinoj organizaciji koja ga vodi.</p>"
-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 "<p>Nije potrebno da uključite Vašu e-mail adresu u zahtev da biste dobili odgovor (<a href=\"%s\">Više informacija</a>).</p>"
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
+msgstr "<p>Nije potrebno da uključite Vašu e-mail adresu u zahtev da biste dobili odgovor (<a href=\"{{url}}\">Više informacija</a>).</p>"
-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 "<p>Nije potrebno da uključite Vašu e-mail adresu u zahtev da biste dobili odgovor, pitati ćemo vas u vezi toga u sledećem koraku (<a href=\"%s\">Više informacija</a>).</p>"
+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=\"{{url}}\">details</a>).</p>"
+msgstr "<p>Nije potrebno da uključite Vašu e-mail adresu u zahtev da biste dobili odgovor, pitati ćemo vas u vezi toga u sledećem koraku (<a href=\"{{url}}\">Više informacija</a>).</p>"
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 ""
@@ -239,16 +204,10 @@ msgstr ""
"<small>Ako koristite neke od web mail servisa ili imate filtere za \"junk mail\", provjerite u Vašim bulk/spam folderima. Ponekad su naše poruke označene tako</small>\n"
"</p>"
-msgid "<span id='follow_count'>%d</span> person is following this authority"
-msgid_plural "<span id='follow_count'>%d</span> people are following this authority"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
+msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
msgstr ""
"<strong> Da li mogu zahtijevati informacije o sebi?</strong>\n"
-"<span class=\"whitespace other\" title=\"Tab\">»</span><span class=\"whitespace other\" title=\"Tab\">»</span><span class=\"whitespace other\" title=\"Tab\">»</span><a href=\"%s\">Ne! (Kliknite za detalje)</a>"
+"<span class=\"whitespace other\" title=\"Tab\">»</span><span class=\"whitespace other\" title=\"Tab\">»</span><span class=\"whitespace other\" title=\"Tab\">»</span><a href=\"{{url}}\">Ne! (Kliknite za detalje)</a>"
msgid "<strong><code>commented_by:tony_bowden</code></strong> to search annotations made by Tony Bowden, typing the name as in the URL."
msgstr "<strong><code>komentar_od:tony_bowden</code></strong> da pretražujete komentare Tony Bowden-a, ime unesite kao u URL-u."
@@ -306,10 +265,10 @@ msgstr ""
" Poslati ćemo e-mail na Vašu novu adresu. Pratite\n"
" upute u njemu da bi potvrdili promjenu vašeg e-maila."
-msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"%s\">click here</a>."
+msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"{{url}}\">click here</a>."
msgstr ""
"<strong>Napomena o privatnosti:</strong> Ako želite da zahtevate privatne informacije o\n"
-" Vama onda <a href=\"%s\">kliknite ovde</a>."
+" Vama onda <a href=\"{{url}}\">kliknite ovde</a>."
msgid "<strong>Privacy note:</strong> Your photo will be shown in public on the Internet,\\n wherever you do something on {{site_name}}."
msgstr ""
@@ -352,6 +311,9 @@ msgstr "Odgovor će biti poslan <strong>poštom</strong>"
msgid "A strange reponse, required attention by the {{site_name}} team"
msgstr "Neobičan odgovor, potreban pregled od strane {{site_name}} tima"
+msgid "A vexatious request"
+msgstr ""
+
msgid "A {{site_name}} user"
msgstr "Korisnik stranice {{site_name}}"
@@ -361,6 +323,15 @@ msgstr "O Vama:"
msgid "Act on what you've learnt"
msgstr "Radite na osnovu onoga što ste naučili"
+msgid "Acts as xapian/acts as xapian job"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Action"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Model"
+msgstr ""
+
msgid "Add an annotation"
msgstr "Dodati napomenu"
@@ -447,13 +418,22 @@ msgstr ""
msgid "Anyone:"
msgstr "Bilo ko:"
+msgid "Applies to"
+msgstr ""
+
+msgid "Are we missing a public authority?"
+msgstr ""
+
+msgid "Are you the owner of any commercial copyright on this page?"
+msgstr ""
+
msgid "Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries."
msgstr "Tražite <strong>konkretne</strong> dokumente ili informacije, ova stranica nije pogodna za opće pretrage."
-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>)."
+msgid "At the bottom of this page, write a reply to them trying to persuade them to scan it in\\n (<a href=\"{{url}}\">more details</a>)."
msgstr ""
"Na dnu ove stranice, napišite im odgovor pokušavajući da ih ubjedite da ga pregledaju\n"
-" (<a href=\"%s\">Više informacija</a>)."
+" (<a href=\"{{url}}\">Više informacija</a>)."
msgid "Attachment (optional):"
msgstr "Prilog (neobavezno):"
@@ -488,6 +468,12 @@ msgstr "Po zakonu, pod svim uvjetima, {{public_body_link}} je trebala odgovoriti
msgid "By law, {{public_body_link}} should normally have responded <strong>promptly</strong> and"
msgstr "Po zakonu, {{public_body_link}} je trebala odgovoriti <strong>brzo</strong> i"
+msgid "Calculated home page"
+msgstr ""
+
+msgid "Can't find the one you want?"
+msgstr "Ne možete naći onaj koji želite?"
+
msgid "Cancel a {{site_name}} alert"
msgstr "Poništi {{site_name}} upozorenje"
@@ -655,9 +641,15 @@ msgstr "Trenutno <strong>čeka odgovor</strong> od {{public_body_link}}, moraju
msgid "Date:"
msgstr "Datum:"
+msgid "Dear {{name}},"
+msgstr ""
+
msgid "Dear {{public_body_name}},"
msgstr "Poštovani {{public_body_name}},"
+msgid "Default locale"
+msgstr ""
+
msgid "Delayed response to your FOI request - "
msgstr "Odgođen odgovor na Vaš Zahtev o slobodnom pristupu informacijama - "
@@ -667,6 +659,9 @@ msgstr "Odgođen"
msgid "Delivery error"
msgstr "Greška u isporuci"
+msgid "Destroy {{name}}"
+msgstr ""
+
msgid "Details of request '"
msgstr "Detalji zahteva '"
@@ -679,6 +674,9 @@ msgstr ""
msgid "Disclosure log"
msgstr ""
+msgid "Disclosure log URL"
+msgstr ""
+
msgid "Don't want to address your message to {{person_or_body}}? You can also write to:"
msgstr ""
@@ -697,14 +695,14 @@ msgstr "Preuzeti originalni prilog"
msgid "EIR"
msgstr ""
+msgid "Edit"
+msgstr ""
+
msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
msgstr ""
"Uredite i dodajte <strong>više detalja</strong> na poruku iznad,\n"
" objašnjavajući zašto niste zadovoljni njihovim odgovorom."
-msgid "Edit language version:"
-msgstr "Uređuj verziju jezika:"
-
msgid "Edit text about you"
msgstr "Uredite tekst o Vama"
@@ -726,7 +724,7 @@ msgstr "Buduća ažuriranja šaljite na moj e-mail"
msgid "Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>"
msgstr "Sa razmacima unesite reči koje želite naći, npr. <strong>climbing lane</strong"
-msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"%s\">contact us</a> if you need more)."
+msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"{{url}}\">contact us</a> if you need more)."
msgstr ""
msgid "Environmental Information Regulations"
@@ -744,17 +742,20 @@ msgstr "Prikaz prošlih događanja"
msgid "Event history details"
msgstr "Detalji prikaza prošlih događanja"
-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>)."
+msgid "Event {{id}}"
msgstr ""
-"Sve što unesete na ovu stranicu \n"
-" će biti <strong>javno prikazano</strong> na\n"
-" ovoj web stranici trajno. (<a href=\"%s\">Više informacija</a>)."
-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>)."
+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=\"{{url}}\">why?</a>)."
msgstr ""
"Sve što unesete na ovu stranicu, uključujući <strong>Vaše ime</strong>, \n"
" će biti <strong>javno prikazano</strong> na\n"
-" ovoj web stranici zauvek (<a href=\"%s\">Više informacija</a>)."
+" ovoj web stranici zauvek (<a href=\"{{url}}\">Više informacija</a>)."
+
+msgid "Everything that you enter on this page\\n will be <strong>displayed publicly</strong> on\\n this website forever (<a href=\"{{url}}\">why?</a>)."
+msgstr ""
+"Sve što unesete na ovu stranicu \n"
+" će biti <strong>javno prikazano</strong> na\n"
+" ovoj web stranici trajno. (<a href=\"{{url}}\">Više informacija</a>)."
msgid "FOI"
msgstr ""
@@ -762,6 +763,9 @@ msgstr ""
msgid "FOI email address for {{public_body}}"
msgstr "ZOSPI e-mail adresa za {{public_body}}"
+msgid "FOI request – {{title}}"
+msgstr ""
+
msgid "FOI requests"
msgstr "Zahtevi za slobodan pristup informacijama"
@@ -777,13 +781,13 @@ msgstr ""
msgid "Failed to convert image to a PNG"
msgstr "Nismo uspeli konvertovati sliku u PNG format"
-msgid "Failed to convert image to the correct size: at %{cols}x%{rows}, need %{width}x%{height}"
-msgstr "Nismo uspeli konvertovati sliku u odgovarajuću veličinu: %{cols}x%{rows}, potrebno %{width}x%{height}"
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
+msgstr "Nismo uspeli konvertovati sliku u odgovarajuću veličinu: {{cols}}x{{rows}}, potrebno {{width}}x{{height}}"
msgid "Filter"
msgstr "Filtriraj"
-msgid "First, type in the <strong>name of the UK public authority</strong> you'd \\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"%s#%s\">why?</a>)."
+msgid "First, type in the <strong>name of the UK public authority</strong> you'd\\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "Foi attachment"
@@ -864,8 +868,8 @@ msgstr "Iz nepoznatog razloga, nije moguće podneti zahtev ovoj ustanovi."
msgid "Forgotten your password?"
msgstr "Zaboravili ste Vaš password?"
-msgid "Found %d public authority %s"
-msgid_plural "Found %d public authorities %s"
+msgid "Found {{count}} public authority {{description}}"
+msgid_plural "Found {{count}} public authorities {{description}}"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
@@ -903,7 +907,7 @@ msgstr ""
msgid "From"
msgstr ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "From:"
@@ -915,6 +919,18 @@ msgstr "OVDE IZNESITE DETALJE VAŠE ŽALBE"
msgid "Handled by post."
msgstr ""
+msgid "Has tag string/has tag string tag"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Model"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Name"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Value"
+msgstr ""
+
msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
msgstr "Dobrodošli! Možete podnositi Zahteve za slobodan pristup informacijama u {{country_name}} na ovom linku: {{link_to_website}}"
@@ -937,6 +953,9 @@ msgstr ""
" malo vremena da ga pročitate i da nam pomognete da održimo ovo mjesto urednim za sve?\n"
" Hvala."
+msgid "Hide request"
+msgstr ""
+
msgid "Holiday"
msgstr ""
@@ -949,6 +968,9 @@ msgstr "Praznik|Opis"
msgid "Home"
msgstr "Naslovna"
+msgid "Home page"
+msgstr ""
+
msgid "Home page of authority"
msgstr "Početna stranica ustanove"
@@ -1001,8 +1023,17 @@ msgstr "Dobio/la sam <strong>dio informacija</strong>"
msgid "I've received an <strong>error message</strong>"
msgstr "Dobio/la sam <strong>poruku o pogrešci</strong>"
-msgid "If the address is wrong, or you know a better address, please <a href=\"%s\">contact us</a>."
-msgstr "Ako je adresa pogrešna, ili znate bolju adresu, molimo Vas <a href=\"%s\">da nas kontaktirate</a>."
+msgid "I've received an error message"
+msgstr ""
+
+msgid "Id"
+msgstr ""
+
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Ako je adresa pogrešna, ili znate bolju adresu, molimo Vas <a href=\"{{url}}\">da nas kontaktirate</a>."
+
+msgid "If the error was a delivery failure, and you can find an up to date FOI email address for the authority, please tell us using the form below."
+msgstr ""
msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
msgstr ""
@@ -1010,22 +1041,22 @@ msgstr ""
"ili e-mail o nečemu drugome {{user}}, onda molimo\n"
"pošaljite nam e-mail {{contact_email}} za pomoć."
-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>)."
+msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"{{url}}\">details</a>)."
msgstr ""
"Ako niste zadovoljni odgovorom koji ste dobili od\n"
" javne ustanove, imate pravo na\n"
-" žalbu (<a href=\"%s\">Više informacija</a>)."
+" žalbu (<a href=\"{{url}}\">Više informacija</a>)."
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
-msgstr "Ako i dalje imate problema, molimo <a href=\"%s\">kontaktirajte nas</a>."
+msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Ako i dalje imate problema, molimo <a href=\"{{url}}\">kontaktirajte nas</a>."
-msgid "If you are the requester, then you may <a href=\"%s\">sign in</a> to view the request."
-msgstr "Ako ste podnosioc zahteva, možete se <a href=\"%s\">prijaviti</a> da biste pogledali zahtev."
+msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request."
+msgstr "Ako ste podnosioc zahteva, možete se <a href=\"{{url}}\">prijaviti</a> da biste pogledali zahtev."
-msgid "If you are thinking of using a pseudonym,\\n please <a href=\"%s\">read this first</a>."
+msgid "If you are thinking of using a pseudonym,\\n please <a href=\"{{url}}\">read this first</a>."
msgstr ""
"Ako razmišljate o korištenju pseudonima,\n"
-" molimo da<a href=\"%s\">pročitajte prvo ovo</a>."
+" molimo da<a href=\"{{url}}\">pročitajte prvo ovo</a>."
msgid "If you are {{user_link}}, please"
msgstr "Ako ste {{user_link}}, molimo"
@@ -1079,6 +1110,9 @@ msgstr ""
"Ako je Vaš pretraživač namješten da prihvata cookies-e i vidite ovu poruku,\n"
"onda vjerovatno postoji problem sa našim serverom."
+msgid "Incoming email address"
+msgstr ""
+
msgid "Incoming message"
msgstr ""
@@ -1198,14 +1232,20 @@ msgstr ""
msgid "Items matching the following conditions are currently displayed on your wall."
msgstr ""
+msgid "Items sent in last month"
+msgstr ""
+
msgid "Joined in"
msgstr "Pridružio se u"
msgid "Joined {{site_name}} in"
msgstr "Pridružio se na {{site_name}} u"
-msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)."
-msgstr "Držite se <strong>suštine</strong>, lakše ćete dobiti ono što tražite(<a href=\"%s\">Više informacija</a>)."
+msgid "Just one more thing"
+msgstr ""
+
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
+msgstr "Držite se <strong>suštine</strong>, lakše ćete dobiti ono što tražite(<a href=\"{{url}}\">Više informacija</a>)."
msgid "Keywords"
msgstr "Ključne reči"
@@ -1224,9 +1264,27 @@ msgstr ""
msgid "Link to this"
msgstr "Spojite sa ovim"
+msgid "List all"
+msgstr ""
+
msgid "List of all authorities (CSV)"
msgstr "Popis svih ustanova (CSV)"
+msgid "Listing FOI requests"
+msgstr ""
+
+msgid "Listing public authorities"
+msgstr ""
+
+msgid "Listing public authorities matching '{{query}}'"
+msgstr ""
+
+msgid "Listing tracks"
+msgstr ""
+
+msgid "Listing users"
+msgstr ""
+
msgid "Log in to download a zip file of {{info_request_title}}"
msgstr "Prijavite se da preuzmete zipovano {{info_request_title}}"
@@ -1327,6 +1385,9 @@ msgstr "Ime se već koristi"
msgid "New Freedom of Information requests"
msgstr "Novi Zahtevi za slobodan pristup informacijama"
+msgid "New censor rule"
+msgstr ""
+
msgid "New e-mail:"
msgstr "Novi e-mail:"
@@ -1372,6 +1433,9 @@ msgstr "Nema rezultata pretrage"
msgid "No similar requests found."
msgstr "Nisu nađeni slični zahtevi."
+msgid "No tracked things found."
+msgstr ""
+
msgid "Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet."
msgstr "Niko nije podnio Zahtev za slobodan pristup informacijama {{public_body_name}} koristeći ovu stranicu."
@@ -1381,6 +1445,9 @@ msgstr "Ništa nije nađeno."
msgid "None made."
msgstr "Ništa podneseno."
+msgid "Not a valid FOI request"
+msgstr ""
+
msgid "Note that the requester will not be notified about your annotation, because the request was published by {{public_body_name}} on their behalf."
msgstr ""
@@ -1426,6 +1493,9 @@ msgstr "Jedna osoba pronađena"
msgid "One public authority found"
msgstr "Jedna javna ustanova pronađena"
+msgid "Only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL – don't worry about breaking URLs through renaming, as the history is used to redirect"
+msgstr ""
+
msgid "Only requests made using {{site_name}} are shown."
msgstr "Samo zahtevi koji koriste {{site_name}} su prikazani."
@@ -1498,8 +1568,8 @@ msgstr "Igrajte igru kategorizacije zahteva!"
msgid "Please"
msgstr "Molimo"
-msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
-msgstr "Molimo <a href=\"%s\">kontaktirajte</a> nas kako bi to mogli popraviti."
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
+msgstr "Molimo <a href=\"{{url}}\">kontaktirajte</a> nas kako bi to mogli popraviti."
msgid "Please <strong>answer the question above</strong> so we know whether the "
msgstr "Molimo <strong>odgovorite na pitanje iznad</strong> kako bi znali da li"
@@ -1614,8 +1684,8 @@ msgstr ""
"Molimo odaberite svaki od ovih zahteva naizmjenice, i <strong>obavestite sve</strong>\n"
"da li su bili uspešni ili ne."
-msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature"
-msgstr "Molimo da se na dnu potpišete, ili izmijenite \"%{signoff}\" potpis"
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
+msgstr "Molimo da se na dnu potpišete, ili izmijenite \"{{signoff}}\" potpis"
msgid "Please sign in as "
msgstr "Molimo prijavite se kao "
@@ -1626,9 +1696,6 @@ msgstr ""
msgid "Please type a message and/or choose a file containing your response."
msgstr "Molimo upišite poruku i/ili odaberite fajl koji sadrži vaš odgovor."
-msgid "Please use the form below to tell us more."
-msgstr "Molimo koristite formular ispod da biste nam rekli više."
-
msgid "Please use this email address for all replies to this request:"
msgstr "Molimo koristite ovu e-mail adresu za odgovore na ovaj zahtev:"
@@ -1719,37 +1786,19 @@ msgstr "Javne ustanove - {{description}}"
msgid "Public authorities {{start_count}} to {{end_count}} of {{total_count}}"
msgstr ""
-msgid "Public body"
-msgstr ""
-
-msgid "Public body/translation"
-msgstr ""
-
-msgid "PublicBody::Translation|Disclosure log"
-msgstr ""
-
-msgid "PublicBody::Translation|First letter"
-msgstr ""
-
-msgid "PublicBody::Translation|Locale"
-msgstr ""
-
-msgid "PublicBody::Translation|Name"
+msgid "Public authority – {{name}}"
msgstr ""
-msgid "PublicBody::Translation|Notes"
-msgstr ""
-
-msgid "PublicBody::Translation|Publication scheme"
+msgid "Public body"
msgstr ""
-msgid "PublicBody::Translation|Request email"
+msgid "Public notes"
msgstr ""
-msgid "PublicBody::Translation|Short name"
+msgid "Public page"
msgstr ""
-msgid "PublicBody::Translation|Url name"
+msgid "Public page not available"
msgstr ""
msgid "PublicBody|Api key"
@@ -1797,6 +1846,9 @@ msgstr "Javno tijelo|Verzija"
msgid "Publication scheme"
msgstr "Nacrt publikacije"
+msgid "Publication scheme URL"
+msgstr ""
+
msgid "Purge request"
msgstr ""
@@ -1856,6 +1908,9 @@ msgstr ""
msgid "Request an internal review from {{person_or_body}}"
msgstr "Zatražiti urgenciju od strane {{person_or_body}}"
+msgid "Request email"
+msgstr ""
+
msgid "Request has been removed"
msgstr "Zahtev je uklonjen"
@@ -1949,8 +2004,8 @@ msgstr "Rezultati pretrage"
msgid "Search the site to find what you were looking for."
msgstr "Pretražite web stranicu da pronađete što ste tražili."
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests made to {{public_body_name}}"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
@@ -1958,6 +2013,9 @@ msgstr[2] ""
msgid "Search your contributions"
msgstr "Pretražite Vaše doprinose"
+msgid "See bounce message"
+msgstr ""
+
msgid "Select one to see more information about the authority."
msgstr "Odaberite jedan da biste videli više informacija o ustanovi."
@@ -1991,6 +2049,9 @@ msgstr "Pošalji zahtev"
msgid "Set your profile photo"
msgstr "Podesiti sliku na Vašem profilu"
+msgid "Short name"
+msgstr ""
+
msgid "Short name is already taken"
msgstr "Nadimak se već koristi"
@@ -2090,6 +2151,9 @@ msgstr "Predaj"
msgid "Submit status"
msgstr "Pošalji status"
+msgid "Submit status and send message"
+msgstr ""
+
msgid "Subscribe to blog"
msgstr "Pretplatiti se na blog"
@@ -2111,6 +2175,9 @@ msgstr "Pregled statusa"
msgid "Table of varieties"
msgstr "Tabela vrsta"
+msgid "Tags"
+msgstr ""
+
msgid "Tags (separated by a space):"
msgstr ""
@@ -2138,6 +2205,9 @@ msgstr "Hvala na ažuriranju zahteva!"
msgid "Thank you for updating your profile photo"
msgstr "Hvala što ste ažurirali sliku na Vašem profilu"
+msgid "Thank you! We'll look into what happened and try and fix it up."
+msgstr ""
+
msgid "Thanks for helping - your work will make it easier for everyone to find successful\\nresponses, and maybe even let us make league tables..."
msgstr ""
"Hvala na pomoći - Vaš rad će svima olakšati pronalaženje pozitivnih\n"
@@ -2217,22 +2287,22 @@ msgstr "Zahtev je <strong>uspešan</strong>."
msgid "The request was refused by the public authority"
msgstr "Zahtev je odbijen od strane javne ustanove"
-msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"%s\">contact us</a> if you have any questions."
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
msgstr ""
"Zahtev koji ste pokušali pregledati je uklonjen. Postoje\n"
"razni razlozi radi kojih smo to mogli uraditi, žao nam je ali ne možemo biti precizniji po tom pitanju. Molimo <a\n"
-" href=\"%s\">kontaktirajte nas</a> ako imate pitanja."
+" href=\"{{url}}\">kontaktirajte nas</a> ako imate pitanja."
msgid "The requester has abandoned this request for some reason"
msgstr "Podnosioc je odustao od ovog zahteva iz nekog razloga"
-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"
+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 ""
"Odgovor na Vaš zahtev je <strong>odgođen</strong>. Možete reći da je, \n"
" po zakonu, ustanova trebala odgovoriti\n"
" <strong>brzo</strong> i"
-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"
+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 ""
"Odgovor na Vaš zahtev <strong>kasni</strong>. Možete reći da po \n"
" zakonu, u svakom slučaju, ustanova je trebala odgovoriti\n"
@@ -2244,6 +2314,9 @@ msgstr "Indeks za pretragu je trenutno isključen, ne možemo prikazati Zahteve
msgid "The search index is currently offline, so we can't show the Freedom of Information requests this person has made."
msgstr "Indeks za pretragu je trenutno isključen, radi toga ne možemo prikazati Zahteve za slobodan pristup informacijama koje je ova osoba napravila."
+msgid "The {{site_name}} team."
+msgstr ""
+
msgid "Then you can cancel the alert."
msgstr "Tada možete poništiti upozorenje."
@@ -2319,18 +2392,18 @@ msgstr "Tada će Vaša napomena za {{info_request_title}} biti postavljena."
msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
msgstr "Postoje {{count}} nove napomene na Vašem {{info_request}} zahtevu. Pratite ovaj link da pogledate šta je napisano."
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
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 ""
msgid "There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>."
msgstr ""
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
msgid "There was a <strong>delivery error</strong> or similar, which needs fixing by the {{site_name}} team."
msgstr "Došlo je do <strong>greške u isporuci</strong> ili nečega sličnog što treba popravku od strane {{site_name}} tima."
@@ -2369,7 +2442,7 @@ msgstr ""
msgid "This authority no longer exists, so you cannot make a request to it."
msgstr "Ova ustanova više ne postoji, zato joj nije moguće podnijeti zahtev. "
-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."
+msgid "This comment has been hidden. See annotations to\\n find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This covers a very wide spectrum of information about the state of\\n the <strong>natural and built environment</strong>, such as:"
@@ -2389,10 +2462,13 @@ msgstr ""
"To je zato što je {{title}} stari zahtev koji je\n"
"označen da više ne prima odgovore."
+msgid "This is the first version."
+msgstr ""
+
msgid "This is your own request, so you will be automatically emailed when new responses arrive."
msgstr "Ovo je Vaš zahtev, biti ćete automatski obavešteni e-mailom kada novi odgovori budu stizali."
-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."
+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=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This particular request is finished:"
@@ -2401,21 +2477,21 @@ msgstr "Ovaj zahtev je završen:"
msgid "This person has made no Freedom of Information requests using this site."
msgstr "Ova osoba nije podnela nijedan Zahtev za slobodan pristup informacijama koristeći ovu web stranicu."
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
+msgid "This person's annotations"
+msgstr "Napomene ove osobe"
+
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-msgid "This person's annotations"
-msgstr "Napomene ove osobe"
-
msgid "This request <strong>requires administrator attention</strong>"
msgstr "Ovaj zahtev <strong>treba provjeru administratora</strong>"
@@ -2439,7 +2515,7 @@ msgstr ""
"Ovaj zahtev je <strong>povučen</strong> od strane osobe koja ga je napravila. \n"
" <span class=\"whitespace other\" title=\"Tab\">»</span> Obijašnjenje može biti u dopisima ispod."
-msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"%s\">contact us</a>."
+msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
msgid "This request has been reported for administrator attention"
@@ -2456,18 +2532,21 @@ msgstr ""
"Ovaj zahtev je inače skriven. Možete ga videti jer ste prijavljeni \n"
" kao super korisnik."
-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."
+msgid "This request is hidden, so that only you the requester can see it. Please\\n <a href=\"{{url}}\">contact us</a> if you are not sure why."
msgstr ""
"Ovaj zahtev je skriven tako da ga samo Vi podnosioc možete videti. Molimo\n"
-" <a href=\"%s\">kontaktirajte nas</a> ako niste sigurni zašto."
+" <a href=\"{{url}}\">kontaktirajte nas</a> ako niste sigurni zašto."
msgid "This request is still in progress:"
msgstr "Ovaj zahtev je još u toku:"
+msgid "This request requires administrator attention"
+msgstr ""
+
msgid "This request was not made via {{site_name}}"
msgstr ""
-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."
+msgid "This response has been hidden. See annotations to find out why.\\n If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This table shows the technical details of the internal events that happened\\nto this request on {{site_name}}. This could be used to generate information about\\nthe speed with which authorities respond to requests, the number of requests\\nwhich require a postal response and much more."
@@ -2628,11 +2707,11 @@ msgstr ""
msgid "Unexpected search result type "
msgstr ""
-msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"%s\">contact us</a> to sort it out."
+msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"{{url}}\">contact us</a> to sort it out."
msgstr ""
"Nažalost nismo u posjedu e-mail adrese za ZOSPI\n"
"te ustanove, tako da nismo u mogućnosti validirati ovo.\n"
-"Molimo <a href=\"%s\">kontaktirajte nas</a> da to razjasnimo."
+"Molimo <a href=\"{{url}}\">kontaktirajte nas</a> da to razjasnimo."
msgid "Unfortunately, we do not have a working {{info_request_law_used_full}}\\naddress for"
msgstr ""
@@ -2669,6 +2748,9 @@ msgstr ""
msgid "User info request sent alert"
msgstr ""
+msgid "User – {{name}}"
+msgstr ""
+
msgid "UserInfoRequestSentAlert|Alert type"
msgstr ""
@@ -2723,6 +2805,9 @@ msgstr ""
msgid "User|Url name"
msgstr "Korisnik|Url ime"
+msgid "Version {{version}}"
+msgstr ""
+
msgid "View FOI email address"
msgstr "Videti adresu za Zahteve za slobodan pristup informacijama."
@@ -2762,6 +2847,12 @@ msgstr "Čekamo na odgovor javne ustanove"
msgid "Was the response you got to your FOI request any good?"
msgstr "Da li je odgovor koji ste dobili na Vaš Zahtev o slobodnom pristupu informacijama bio od ikakve koristi?"
+msgid "We consider it is not a valid FOI request, and have therefore hidden it from other users."
+msgstr ""
+
+msgid "We consider it to be vexatious, and have therefore hidden it from other users."
+msgstr ""
+
msgid "We do not have a working request email address for this authority."
msgstr "Ne posedujemo ispravnu e-mail adresu za zahteve ove ustanove."
@@ -2775,7 +2866,7 @@ msgstr ""
" &ndash;\n"
"<span class=\"whitespace other\" title=\"Tab\">»</span>ako ste {{user_link}} molimo <a href=\"{{url}}\">prijavite se</a> i obavestite sve."
-msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"%s\">details</a>). "
+msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"{{url}}\">details</a>). "
msgstr ""
msgid "We will not reveal your email address to anybody unless you\\nor the law tell us to."
@@ -2829,8 +2920,8 @@ msgstr ""
"Kada dobijete printanu kopiju, molimo pomozite\n"
" drugima da saznaju njen sadržaj:"
-msgid "When you're done, <strong>come back here</strong>, <a href=\"%s\">reload this page</a> and file your new request."
-msgstr "Kada završite, <strong>vratite se ovde</strong>, <a href=\"%s\">učitajte ponovo ovu stranicu</a> i spremite Vaš novi zahtev."
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
+msgstr "Kada završite, <strong>vratite se ovde</strong>, <a href=\"{{url}}\">učitajte ponovo ovu stranicu</a> i spremite Vaš novi zahtev."
msgid "Which of these is happening?"
msgstr "Šta se od ovoga događa?"
@@ -2936,11 +3027,11 @@ msgstr "Znate šta je uzrok greške i možete <strong>predložiti rešenje</stro
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 ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
"Moguće je da je nađete\n"
" na njihovoj web stranici, ili putem telefonskog poziva. Ako uspete\n"
-" da je nađete, onda molimo <a href=\"%s\">da nam je pošaljete</a>."
+" da je nađete, onda molimo <a href=\"{{url}}\">da nam je pošaljete</a>."
msgid "You may be able to find\\none on their website, or by phoning them up and asking. If you manage\\nto find one, then please <a href=\"{{help_url}}\">send it to us</a>."
msgstr ""
@@ -2981,6 +3072,9 @@ msgstr ""
msgid "You will only get an answer to your request if you follow up\\nwith the clarification."
msgstr ""
+msgid "You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further."
+msgstr ""
+
msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
msgstr ""
@@ -2993,19 +3087,7 @@ msgstr ""
msgid "You've now cleared your profile photo"
msgstr "Sada ste izbrisali sliku na Vašem profilu"
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-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>."
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
msgstr ""
msgid "Your annotations"
@@ -3017,7 +3099,7 @@ msgstr ""
msgid "Your e-mail:"
msgstr "Vaš e-mail:"
-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."
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
msgstr ""
msgid "Your follow up message has been sent on its way."
@@ -3041,10 +3123,10 @@ msgstr "Vaša poruka će se pojaviti u <strong>pretraživačima</strong>"
msgid "Your name and annotation will appear in <strong>search engines</strong>."
msgstr "Vaše ime i napomena će se pojaviti u <strong>pretraživačima</strong>."
-msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"%s\">details</a>)."
+msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"{{url}}\">details</a>)."
msgstr ""
"Vaše ime, zahtev i sve poruke će se pojaviti u <strong>pretraživačima</strong>\n"
-" (<a href=\"%s\">Više informacija</a>)."
+" (<a href=\"{{url}}\">Više informacija</a>)."
msgid "Your name:"
msgstr "Vaše ime:"
@@ -3061,6 +3143,12 @@ msgstr "Vaš password:"
msgid "Your photo will be shown in public <strong>on the Internet</strong>,\\n wherever you do something on {{site_name}}."
msgstr ""
+msgid "Your request '{{request}}' at {{url}} has been reviewed by moderators."
+msgstr ""
+
+msgid "Your request on {{site_name}} hidden"
+msgstr ""
+
msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
msgstr "Naziv Vašeg zahteva je {{info_request}}. Obavest o tome da li ste dobili odgovor će nam pomoći da bolje pratimo."
@@ -3070,12 +3158,24 @@ msgstr "Vaš zahtev:"
msgid "Your response to an FOI request was not delivered"
msgstr ""
-msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"%s\">read why</a> and answers to other questions."
-msgstr "Vaš odgovor će se <strong>pojaviti na Internetu</strong>, <a href=\"%s\">pročitajte zašto</a> i odgovore na druga pitanja."
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
+msgstr "Vaš odgovor će se <strong>pojaviti na Internetu</strong>, <a href=\"{{url}}\">pročitajte zašto</a> i odgovore na druga pitanja."
msgid "Your thoughts on what the {{site_name}} <strong>administrators</strong> should do about the request."
msgstr "Vaše mišljenje o tome šta administratori {{site_name}} trebaju da rade po pitanju zahteva."
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
msgid "Your {{site_name}} email alert"
msgstr "Vaše {{site_name}} e-mail upozorenje"
@@ -3085,6 +3185,9 @@ msgstr "S poštovanjem,"
msgid "Yours sincerely,"
msgstr "S poštovanjem,"
+msgid "Yours,"
+msgstr ""
+
msgid "[FOI #{{request}} email]"
msgstr ""
@@ -3105,6 +3208,9 @@ msgstr ""
msgid "admin"
msgstr "administrator"
+msgid "alaveteli_foi:The software that runs {{site_name}}"
+msgstr ""
+
msgid "all requests"
msgstr "svi zahtevi"
@@ -3138,6 +3244,9 @@ msgstr "bilo šta"
msgid "are long overdue."
msgstr ""
+msgid "at"
+msgstr ""
+
msgid "authorities"
msgstr "ustanove"
@@ -3150,6 +3259,9 @@ msgstr ""
msgid "between two dates"
msgstr "između dva datuma"
+msgid "but followupable"
+msgstr ""
+
msgid "by"
msgstr "od strane"
@@ -3171,7 +3283,7 @@ msgstr ""
" Ili ih možete kontaktirati putem telefona."
msgid "details"
-msgstr ""
+msgstr "detalji"
msgid "display_status only works for incoming and outgoing messages right now"
msgstr ""
@@ -3233,15 +3345,21 @@ msgstr "poruke od ustanova"
msgid "messages from users"
msgstr "poruke od korisnika"
+msgid "move..."
+msgstr ""
+
msgid "no later than"
msgstr "ne kasnije od"
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "normally"
msgstr ""
+msgid "not requestable due to: {{reason}}"
+msgstr ""
+
msgid "please sign in as "
msgstr "molimo prijavite se kao "
@@ -3263,6 +3381,9 @@ msgstr "pošaljite prateću poruku"
msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
msgstr "poslano za {{public_body_name}} od strane {{info_request_user}} na datum {{date}}."
+msgid "set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA"
+msgstr ""
+
msgid "show quoted sections"
msgstr ""
@@ -3284,6 +3405,11 @@ msgstr ""
msgid "the main FOI contact address for {{public_body}}"
msgstr "glavne kontakt adrese za Zahteve o slobodnom pristupu informacijama za {{public_body}}"
+#. This phrase completes the following sentences:
+#. Request an internal review from...
+#. Send a public follow up message to...
+#. Send a public reply to...
+#. Don't want to address your message to... ?
msgid "the main FOI contact at {{public_body}}"
msgstr "glavni kontakt za Zahteve o slobodnom pristupu informacijama u ustanovi {{public_body}}"
@@ -3332,9 +3458,36 @@ msgstr "korisna informacija"
msgid "users"
msgstr "korisnici"
+msgid "what's that?"
+msgstr "šta je to?"
+
msgid "{{count}} FOI requests found"
msgstr "{{count}} Zahteva za slobodan pristup informacijama pronađeno"
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[1] "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[2] "{{count}} Freedom of Information requests to {{public_body_name}}"
+
+msgid "{{count}} person is following this authority"
+msgid_plural "{{count}} people are following this authority"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
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 ""
@@ -3392,6 +3545,9 @@ msgstr "{{site_name}} šalje nove zahteve <strong>{{request_email}}</strong> za
msgid "{{site_name}} users have made {{number_of_requests}} requests, including:"
msgstr "korisnici {{site_name}} su podneli {{number_of_requests}} zahteva, uključujući:"
+msgid "{{thing_changed}} was changed from <code>{{from_value}}</code> to <code>{{to_value}}</code>"
+msgstr ""
+
msgid "{{title}} - a Freedom of Information request to {{public_body}}"
msgstr ""
diff --git a/locale/tr/app.po b/locale/tr/app.po
index b19419b39..83eca28b7 100644
--- a/locale/tr/app.po
+++ b/locale/tr/app.po
@@ -3,26 +3,26 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# <baran@ozgul.net>, 2012.
+# baranozgul <baran@ozgul.net>, 2012
msgid ""
msgstr ""
"Project-Id-Version: alaveteli\n"
"Report-Msgid-Bugs-To: http://github.com/sebbacon/alaveteli/issues\n"
-"POT-Creation-Date: 2012-12-18 10:11+0000\n"
-"PO-Revision-Date: 2012-12-18 10:14+0000\n"
+"POT-Creation-Date: 2013-05-30 09:46+0100\n"
+"PO-Revision-Date: 2013-05-30 08:54+0000\n"
"Last-Translator: louisecrow <louise@mysociety.org>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language-Team: Turkish (http://www.transifex.com/projects/p/alaveteli/language/tr/)\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
msgid " This will appear on your {{site_name}} profile, to make it\\n easier for others to get involved with what you're doing."
msgstr ""
-msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)"
-msgstr "(<strong>ağız kalabalığı</strong> politikaya yer yok, <a href=\"%s\">moderasyon kurallarımızı</a> okuyun.)"
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
+msgstr "(<strong>ağız kalabalığı</strong> politikaya yer yok, <a href=\"{{url}}\">moderasyon kurallarımızı</a> okuyun.)"
msgid " (<strong>patience</strong>, especially for large files, it may take a while!)"
msgstr "(<strong>sabır</strong>, özellikle büyük dosyalar için, biraz zaman alabilir)"
@@ -51,7 +51,7 @@ msgstr ""
msgid " Ideas on what <strong>other documents to request</strong> which the authority may hold. "
msgstr ""
-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."
+msgid " If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\\n You may be able to find the address on their website, or by phoning them up and asking."
msgstr ""
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."
@@ -90,18 +90,6 @@ msgstr ""
msgid "\"Hello! We have an <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">important message</a> for visitors outside {{country_name}}\""
msgstr ""
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
-msgstr[0] ""
-
-msgid "%d request"
-msgid_plural "%d requests"
-msgstr[0] ""
-
-msgid "%d request made."
-msgid_plural "%d requests made."
-msgstr[0] ""
-
msgid "'Crime statistics by ward level for Wales'"
msgstr ""
@@ -117,6 +105,9 @@ msgstr ""
msgid "'{{link_to_user}}', a person"
msgstr ""
+msgid "*unknown*"
+msgstr ""
+
msgid ",\\n\\n\\n\\nYours,\\n\\n{{user_name}}"
msgstr ""
@@ -132,31 +123,13 @@ msgstr ""
msgid "3. Now check your request"
msgstr ""
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
msgstr ""
-msgid "<a href=\"%s\">Are we missing a public authority?</a>"
+msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)"
msgstr ""
-msgid "<a href=\"%s\">Are you the owner of\\n any commercial copyright on this page?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
-msgstr ""
-
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
-msgstr ""
-
-msgid "<a href=\"%s\">details</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">what's that?</a>"
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
msgstr ""
msgid "<p>All done! Thank you very much for your help.</p><p>There are <a href=\"{{helpus_url}}\">more things you can do</a> to help {{site_name}}.</p>"
@@ -174,9 +147,6 @@ msgstr ""
msgid "<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>"
msgstr ""
-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 ""
-
msgid "<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>"
msgstr ""
@@ -195,10 +165,10 @@ msgstr ""
msgid "<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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 ""
-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>"
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
msgstr ""
-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>"
+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=\"{{url}}\">details</a>).</p>"
msgstr ""
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>"
@@ -213,11 +183,7 @@ msgstr ""
msgid "<small>If you use web-based email or have \"junk mail\" filters, also check your\\nbulk/spam mail folders. Sometimes, our messages are marked that way.</small>\\n</p>"
msgstr ""
-msgid "<span id='follow_count'>%d</span> person is following this authority"
-msgid_plural "<span id='follow_count'>%d</span> people are following this authority"
-msgstr[0] ""
-
-msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
+msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
msgstr ""
msgid "<strong><code>commented_by:tony_bowden</code></strong> to search annotations made by Tony Bowden, typing the name as in the URL."
@@ -271,7 +237,7 @@ msgstr ""
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 ""
-msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"%s\">click here</a>."
+msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"{{url}}\">click here</a>."
msgstr ""
msgid "<strong>Privacy note:</strong> Your photo will be shown in public on the Internet,\\n wherever you do something on {{site_name}}."
@@ -313,6 +279,9 @@ msgstr ""
msgid "A strange reponse, required attention by the {{site_name}} team"
msgstr ""
+msgid "A vexatious request"
+msgstr ""
+
msgid "A {{site_name}} user"
msgstr ""
@@ -322,6 +291,15 @@ msgstr ""
msgid "Act on what you've learnt"
msgstr ""
+msgid "Acts as xapian/acts as xapian job"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Action"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Model"
+msgstr ""
+
msgid "Add an annotation"
msgstr ""
@@ -400,10 +378,19 @@ msgstr ""
msgid "Anyone:"
msgstr ""
+msgid "Applies to"
+msgstr ""
+
+msgid "Are we missing a public authority?"
+msgstr ""
+
+msgid "Are you the owner of any commercial copyright on this page?"
+msgstr ""
+
msgid "Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries."
msgstr ""
-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>)."
+msgid "At the bottom of this page, write a reply to them trying to persuade them to scan it in\\n (<a href=\"{{url}}\">more details</a>)."
msgstr ""
msgid "Attachment (optional):"
@@ -439,6 +426,12 @@ msgstr ""
msgid "By law, {{public_body_link}} should normally have responded <strong>promptly</strong> and"
msgstr ""
+msgid "Calculated home page"
+msgstr ""
+
+msgid "Can't find the one you want?"
+msgstr ""
+
msgid "Cancel a {{site_name}} alert"
msgstr ""
@@ -604,9 +597,15 @@ msgstr ""
msgid "Date:"
msgstr ""
+msgid "Dear {{name}},"
+msgstr ""
+
msgid "Dear {{public_body_name}},"
msgstr ""
+msgid "Default locale"
+msgstr ""
+
msgid "Delayed response to your FOI request - "
msgstr ""
@@ -616,6 +615,9 @@ msgstr ""
msgid "Delivery error"
msgstr ""
+msgid "Destroy {{name}}"
+msgstr ""
+
msgid "Details of request '"
msgstr ""
@@ -628,6 +630,9 @@ msgstr ""
msgid "Disclosure log"
msgstr ""
+msgid "Disclosure log URL"
+msgstr ""
+
msgid "Don't want to address your message to {{person_or_body}}? You can also write to:"
msgstr ""
@@ -646,10 +651,10 @@ msgstr ""
msgid "EIR"
msgstr ""
-msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
+msgid "Edit"
msgstr ""
-msgid "Edit language version:"
+msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
msgstr ""
msgid "Edit text about you"
@@ -673,7 +678,7 @@ msgstr ""
msgid "Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>"
msgstr ""
-msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"%s\">contact us</a> if you need more)."
+msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"{{url}}\">contact us</a> if you need more)."
msgstr ""
msgid "Environmental Information Regulations"
@@ -691,10 +696,13 @@ msgstr ""
msgid "Event history details"
msgstr ""
-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>)."
+msgid "Event {{id}}"
msgstr ""
-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>)."
+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=\"{{url}}\">why?</a>)."
+msgstr ""
+
+msgid "Everything that you enter on this page\\n will be <strong>displayed publicly</strong> on\\n this website forever (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "FOI"
@@ -703,6 +711,9 @@ msgstr ""
msgid "FOI email address for {{public_body}}"
msgstr ""
+msgid "FOI request – {{title}}"
+msgstr ""
+
msgid "FOI requests"
msgstr ""
@@ -718,13 +729,13 @@ msgstr ""
msgid "Failed to convert image to a PNG"
msgstr ""
-msgid "Failed to convert image to the correct size: at %{cols}x%{rows}, need %{width}x%{height}"
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
msgstr ""
msgid "Filter"
msgstr ""
-msgid "First, type in the <strong>name of the UK public authority</strong> you'd \\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"%s#%s\">why?</a>)."
+msgid "First, type in the <strong>name of the UK public authority</strong> you'd\\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "Foi attachment"
@@ -805,9 +816,10 @@ msgstr ""
msgid "Forgotten your password?"
msgstr ""
-msgid "Found %d public authority %s"
-msgid_plural "Found %d public authorities %s"
+msgid "Found {{count}} public authority {{description}}"
+msgid_plural "Found {{count}} public authorities {{description}}"
msgstr[0] ""
+msgstr[1] ""
msgid "Freedom of Information"
msgstr ""
@@ -842,7 +854,7 @@ msgstr ""
msgid "From"
msgstr ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "From:"
@@ -854,6 +866,18 @@ msgstr ""
msgid "Handled by post."
msgstr ""
+msgid "Has tag string/has tag string tag"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Model"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Name"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Value"
+msgstr ""
+
msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
msgstr ""
@@ -872,6 +896,9 @@ msgstr ""
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 ""
+msgid "Hide request"
+msgstr ""
+
msgid "Holiday"
msgstr ""
@@ -884,6 +911,9 @@ msgstr ""
msgid "Home"
msgstr ""
+msgid "Home page"
+msgstr ""
+
msgid "Home page of authority"
msgstr ""
@@ -932,22 +962,31 @@ msgstr ""
msgid "I've received an <strong>error message</strong>"
msgstr ""
-msgid "If the address is wrong, or you know a better address, please <a href=\"%s\">contact us</a>."
+msgid "I've received an error message"
+msgstr ""
+
+msgid "Id"
+msgstr ""
+
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
+msgstr ""
+
+msgid "If the error was a delivery failure, and you can find an up to date FOI email address for the authority, please tell us using the form below."
msgstr ""
msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
msgstr ""
-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>)."
+msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"{{url}}\">details</a>)."
msgstr ""
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
+msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
-msgid "If you are the requester, then you may <a href=\"%s\">sign in</a> to view the request."
+msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request."
msgstr ""
-msgid "If you are thinking of using a pseudonym,\\n please <a href=\"%s\">read this first</a>."
+msgid "If you are thinking of using a pseudonym,\\n please <a href=\"{{url}}\">read this first</a>."
msgstr ""
msgid "If you are {{user_link}}, please"
@@ -989,6 +1028,9 @@ msgstr ""
msgid "If your browser is set to accept cookies and you are seeing this message,\\nthen there is probably a fault with our server."
msgstr ""
+msgid "Incoming email address"
+msgstr ""
+
msgid "Incoming message"
msgstr ""
@@ -1103,13 +1145,19 @@ msgstr ""
msgid "Items matching the following conditions are currently displayed on your wall."
msgstr ""
+msgid "Items sent in last month"
+msgstr ""
+
msgid "Joined in"
msgstr ""
msgid "Joined {{site_name}} in"
msgstr ""
-msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)."
+msgid "Just one more thing"
+msgstr ""
+
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
msgstr ""
msgid "Keywords"
@@ -1127,9 +1175,27 @@ msgstr ""
msgid "Link to this"
msgstr ""
+msgid "List all"
+msgstr ""
+
msgid "List of all authorities (CSV)"
msgstr ""
+msgid "Listing FOI requests"
+msgstr ""
+
+msgid "Listing public authorities"
+msgstr ""
+
+msgid "Listing public authorities matching '{{query}}'"
+msgstr ""
+
+msgid "Listing tracks"
+msgstr ""
+
+msgid "Listing users"
+msgstr ""
+
msgid "Log in to download a zip file of {{info_request_title}}"
msgstr ""
@@ -1226,6 +1292,9 @@ msgstr ""
msgid "New Freedom of Information requests"
msgstr ""
+msgid "New censor rule"
+msgstr ""
+
msgid "New e-mail:"
msgstr ""
@@ -1271,6 +1340,9 @@ msgstr ""
msgid "No similar requests found."
msgstr ""
+msgid "No tracked things found."
+msgstr ""
+
msgid "Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet."
msgstr ""
@@ -1280,6 +1352,9 @@ msgstr ""
msgid "None made."
msgstr ""
+msgid "Not a valid FOI request"
+msgstr ""
+
msgid "Note that the requester will not be notified about your annotation, because the request was published by {{public_body_name}} on their behalf."
msgstr ""
@@ -1325,6 +1400,9 @@ msgstr ""
msgid "One public authority found"
msgstr ""
+msgid "Only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL – don't worry about breaking URLs through renaming, as the history is used to redirect"
+msgstr ""
+
msgid "Only requests made using {{site_name}} are shown."
msgstr ""
@@ -1397,7 +1475,7 @@ msgstr ""
msgid "Please"
msgstr ""
-msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
msgstr ""
msgid "Please <strong>answer the question above</strong> so we know whether the "
@@ -1502,7 +1580,7 @@ msgstr ""
msgid "Please select each of these requests in turn, and <strong>let everyone know</strong>\\nif they are successful yet or not."
msgstr ""
-msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature"
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
msgstr ""
msgid "Please sign in as "
@@ -1514,9 +1592,6 @@ msgstr ""
msgid "Please type a message and/or choose a file containing your response."
msgstr ""
-msgid "Please use the form below to tell us more."
-msgstr ""
-
msgid "Please use this email address for all replies to this request:"
msgstr ""
@@ -1607,37 +1682,19 @@ msgstr ""
msgid "Public authorities {{start_count}} to {{end_count}} of {{total_count}}"
msgstr ""
-msgid "Public body"
+msgid "Public authority – {{name}}"
msgstr ""
-msgid "Public body/translation"
-msgstr ""
-
-msgid "PublicBody::Translation|Disclosure log"
-msgstr ""
-
-msgid "PublicBody::Translation|First letter"
-msgstr ""
-
-msgid "PublicBody::Translation|Locale"
-msgstr ""
-
-msgid "PublicBody::Translation|Name"
-msgstr ""
-
-msgid "PublicBody::Translation|Notes"
-msgstr ""
-
-msgid "PublicBody::Translation|Publication scheme"
+msgid "Public body"
msgstr ""
-msgid "PublicBody::Translation|Request email"
+msgid "Public notes"
msgstr ""
-msgid "PublicBody::Translation|Short name"
+msgid "Public page"
msgstr ""
-msgid "PublicBody::Translation|Url name"
+msgid "Public page not available"
msgstr ""
msgid "PublicBody|Api key"
@@ -1685,6 +1742,9 @@ msgstr ""
msgid "Publication scheme"
msgstr ""
+msgid "Publication scheme URL"
+msgstr ""
+
msgid "Purge request"
msgstr ""
@@ -1742,6 +1802,9 @@ msgstr ""
msgid "Request an internal review from {{person_or_body}}"
msgstr ""
+msgid "Request email"
+msgstr ""
+
msgid "Request has been removed"
msgstr ""
@@ -1832,13 +1895,17 @@ msgstr ""
msgid "Search the site to find what you were looking for."
msgstr ""
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests made to {{public_body_name}}"
msgstr[0] ""
+msgstr[1] ""
msgid "Search your contributions"
msgstr ""
+msgid "See bounce message"
+msgstr ""
+
msgid "Select one to see more information about the authority."
msgstr ""
@@ -1872,6 +1939,9 @@ msgstr ""
msgid "Set your profile photo"
msgstr ""
+msgid "Short name"
+msgstr ""
+
msgid "Short name is already taken"
msgstr ""
@@ -1965,6 +2035,9 @@ msgstr ""
msgid "Submit status"
msgstr ""
+msgid "Submit status and send message"
+msgstr ""
+
msgid "Subscribe to blog"
msgstr ""
@@ -1986,6 +2059,9 @@ msgstr ""
msgid "Table of varieties"
msgstr ""
+msgid "Tags"
+msgstr ""
+
msgid "Tags (separated by a space):"
msgstr ""
@@ -2013,6 +2089,9 @@ msgstr ""
msgid "Thank you for updating your profile photo"
msgstr ""
+msgid "Thank you! We'll look into what happened and try and fix it up."
+msgstr ""
+
msgid "Thanks for helping - your work will make it easier for everyone to find successful\\nresponses, and maybe even let us make league tables..."
msgstr ""
@@ -2082,16 +2161,16 @@ msgstr ""
msgid "The request was refused by the public authority"
msgstr ""
-msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"%s\">contact us</a> if you have any questions."
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
msgstr ""
msgid "The requester has abandoned this request for some reason"
msgstr ""
-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"
+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 ""
-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"
+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 ""
msgid "The search index is currently offline, so we can't show the Freedom of Information requests that have been made to this authority."
@@ -2100,6 +2179,9 @@ msgstr ""
msgid "The search index is currently offline, so we can't show the Freedom of Information requests this person has made."
msgstr ""
+msgid "The {{site_name}} team."
+msgstr ""
+
msgid "Then you can cancel the alert."
msgstr ""
@@ -2175,16 +2257,17 @@ msgstr ""
msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
msgstr ""
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
-msgstr[0] ""
-
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 ""
msgid "There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>."
msgstr ""
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "There was a <strong>delivery error</strong> or similar, which needs fixing by the {{site_name}} team."
msgstr ""
@@ -2221,7 +2304,7 @@ msgstr ""
msgid "This authority no longer exists, so you cannot make a request to it."
msgstr ""
-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."
+msgid "This comment has been hidden. See annotations to\\n find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This covers a very wide spectrum of information about the state of\\n the <strong>natural and built environment</strong>, such as:"
@@ -2239,10 +2322,13 @@ msgstr ""
msgid "This is because {{title}} is an old request that has been\\nmarked to no longer receive responses."
msgstr ""
+msgid "This is the first version."
+msgstr ""
+
msgid "This is your own request, so you will be automatically emailed when new responses arrive."
msgstr ""
-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."
+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=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This particular request is finished:"
@@ -2251,16 +2337,18 @@ msgstr ""
msgid "This person has made no Freedom of Information requests using this site."
msgstr ""
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
-msgstr[0] ""
+msgid "This person's annotations"
+msgstr ""
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
msgstr[0] ""
+msgstr[1] ""
-msgid "This person's annotations"
-msgstr ""
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
+msgstr[0] ""
+msgstr[1] ""
msgid "This request <strong>requires administrator attention</strong>"
msgstr ""
@@ -2283,7 +2371,7 @@ msgstr ""
msgid "This request has been <strong>withdrawn</strong> by the person who made it.\\n There may be an explanation in the correspondence below."
msgstr ""
-msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"%s\">contact us</a>."
+msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
msgid "This request has been reported for administrator attention"
@@ -2298,16 +2386,19 @@ msgstr ""
msgid "This request has prominence 'hidden'. You can only see it because you are logged\\n in as a super user."
msgstr ""
-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."
+msgid "This request is hidden, so that only you the requester can see it. Please\\n <a href=\"{{url}}\">contact us</a> if you are not sure why."
msgstr ""
msgid "This request is still in progress:"
msgstr ""
+msgid "This request requires administrator attention"
+msgstr ""
+
msgid "This request was not made via {{site_name}}"
msgstr ""
-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."
+msgid "This response has been hidden. See annotations to find out why.\\n If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This table shows the technical details of the internal events that happened\\nto this request on {{site_name}}. This could be used to generate information about\\nthe speed with which authorities respond to requests, the number of requests\\nwhich require a postal response and much more."
@@ -2466,7 +2557,7 @@ msgstr ""
msgid "Unexpected search result type "
msgstr ""
-msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"%s\">contact us</a> to sort it out."
+msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"{{url}}\">contact us</a> to sort it out."
msgstr ""
msgid "Unfortunately, we do not have a working {{info_request_law_used_full}}\\naddress for"
@@ -2502,6 +2593,9 @@ msgstr ""
msgid "User info request sent alert"
msgstr ""
+msgid "User – {{name}}"
+msgstr ""
+
msgid "UserInfoRequestSentAlert|Alert type"
msgstr ""
@@ -2556,6 +2650,9 @@ msgstr ""
msgid "User|Url name"
msgstr ""
+msgid "Version {{version}}"
+msgstr ""
+
msgid "View FOI email address"
msgstr ""
@@ -2595,6 +2692,12 @@ msgstr ""
msgid "Was the response you got to your FOI request any good?"
msgstr ""
+msgid "We consider it is not a valid FOI request, and have therefore hidden it from other users."
+msgstr ""
+
+msgid "We consider it to be vexatious, and have therefore hidden it from other users."
+msgstr ""
+
msgid "We do not have a working request email address for this authority."
msgstr ""
@@ -2604,7 +2707,7 @@ msgstr ""
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=\"{{url}}\">sign in</a> and let everyone know."
msgstr ""
-msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"%s\">details</a>). "
+msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"{{url}}\">details</a>). "
msgstr ""
msgid "We will not reveal your email address to anybody unless you\\nor the law tell us to."
@@ -2646,7 +2749,7 @@ msgstr ""
msgid "When you receive the paper response, please help\\n others find out what it says:"
msgstr ""
-msgid "When you're done, <strong>come back here</strong>, <a href=\"%s\">reload this page</a> and file your new request."
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
msgstr ""
msgid "Which of these is happening?"
@@ -2748,7 +2851,7 @@ msgstr ""
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 ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "You may be able to find\\none on their website, or by phoning them up and asking. If you manage\\nto find one, then please <a href=\"{{help_url}}\">send it to us</a>."
@@ -2787,6 +2890,9 @@ msgstr ""
msgid "You will only get an answer to your request if you follow up\\nwith the clarification."
msgstr ""
+msgid "You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further."
+msgstr ""
+
msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
msgstr ""
@@ -2799,15 +2905,7 @@ msgstr ""
msgid "You've now cleared your profile photo"
msgstr ""
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
-msgstr[0] ""
-
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
-msgstr[0] ""
-
-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>."
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
msgstr ""
msgid "Your annotations"
@@ -2819,7 +2917,7 @@ msgstr ""
msgid "Your e-mail:"
msgstr ""
-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."
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
msgstr ""
msgid "Your follow up message has been sent on its way."
@@ -2843,7 +2941,7 @@ msgstr ""
msgid "Your name and annotation will appear in <strong>search engines</strong>."
msgstr ""
-msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"%s\">details</a>)."
+msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"{{url}}\">details</a>)."
msgstr ""
msgid "Your name:"
@@ -2861,6 +2959,12 @@ msgstr ""
msgid "Your photo will be shown in public <strong>on the Internet</strong>,\\n wherever you do something on {{site_name}}."
msgstr ""
+msgid "Your request '{{request}}' at {{url}} has been reviewed by moderators."
+msgstr ""
+
+msgid "Your request on {{site_name}} hidden"
+msgstr ""
+
msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
msgstr ""
@@ -2870,12 +2974,22 @@ msgstr ""
msgid "Your response to an FOI request was not delivered"
msgstr ""
-msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"%s\">read why</a> and answers to other questions."
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
msgstr ""
msgid "Your thoughts on what the {{site_name}} <strong>administrators</strong> should do about the request."
msgstr ""
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Your {{site_name}} email alert"
msgstr ""
@@ -2885,6 +2999,9 @@ msgstr ""
msgid "Yours sincerely,"
msgstr ""
+msgid "Yours,"
+msgstr ""
+
msgid "[FOI #{{request}} email]"
msgstr ""
@@ -2903,6 +3020,9 @@ msgstr ""
msgid "admin"
msgstr ""
+msgid "alaveteli_foi:The software that runs {{site_name}}"
+msgstr ""
+
msgid "all requests"
msgstr ""
@@ -2936,6 +3056,9 @@ msgstr ""
msgid "are long overdue."
msgstr ""
+msgid "at"
+msgstr ""
+
msgid "authorities"
msgstr ""
@@ -2948,6 +3071,9 @@ msgstr ""
msgid "between two dates"
msgstr ""
+msgid "but followupable"
+msgstr ""
+
msgid "by"
msgstr ""
@@ -3029,15 +3155,21 @@ msgstr ""
msgid "messages from users"
msgstr ""
+msgid "move..."
+msgstr ""
+
msgid "no later than"
msgstr ""
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "normally"
msgstr ""
+msgid "not requestable due to: {{reason}}"
+msgstr ""
+
msgid "please sign in as "
msgstr ""
@@ -3059,6 +3191,9 @@ msgstr ""
msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
msgstr ""
+msgid "set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA"
+msgstr ""
+
msgid "show quoted sections"
msgstr ""
@@ -3080,6 +3215,11 @@ msgstr ""
msgid "the main FOI contact address for {{public_body}}"
msgstr ""
+#. This phrase completes the following sentences:
+#. Request an internal review from...
+#. Send a public follow up message to...
+#. Send a public reply to...
+#. Don't want to address your message to... ?
msgid "the main FOI contact at {{public_body}}"
msgstr ""
@@ -3128,9 +3268,32 @@ msgstr ""
msgid "users"
msgstr ""
+msgid "what's that?"
+msgstr ""
+
msgid "{{count}} FOI requests found"
msgstr ""
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "{{count}} person is following this authority"
+msgid_plural "{{count}} people are following this authority"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
+msgstr[0] ""
+msgstr[1] ""
+
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 ""
@@ -3188,6 +3351,9 @@ msgstr ""
msgid "{{site_name}} users have made {{number_of_requests}} requests, including:"
msgstr ""
+msgid "{{thing_changed}} was changed from <code>{{from_value}}</code> to <code>{{to_value}}</code>"
+msgstr ""
+
msgid "{{title}} - a Freedom of Information request to {{public_body}}"
msgstr ""
diff --git a/locale/uk/app.po b/locale/uk/app.po
index 50803a419..50a66ce7a 100644
--- a/locale/uk/app.po
+++ b/locale/uk/app.po
@@ -3,16 +3,18 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# <murahoid@gmail.com>, 2012.
-# Natalie "Mouse" Onyshchenko <murahoid@gmail.com>, 2012.
+# hiiri <murahoid@gmail.com>, 2012
+# louisecrow <louise@mysociety.org>, 2013
+# hiiri <murahoid@gmail.com>, 2012
+# hiiri <murahoid@gmail.com>, 2012
msgid ""
msgstr ""
"Project-Id-Version: alaveteli\n"
"Report-Msgid-Bugs-To: http://github.com/sebbacon/alaveteli/issues\n"
-"POT-Creation-Date: 2012-12-18 10:11+0000\n"
-"PO-Revision-Date: 2012-12-18 10:14+0000\n"
+"POT-Creation-Date: 2013-05-30 09:46+0100\n"
+"PO-Revision-Date: 2013-05-30 08:54+0000\n"
"Last-Translator: louisecrow <louise@mysociety.org>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language-Team: Ukrainian (http://www.transifex.com/projects/p/alaveteli/language/uk/)\n"
"Language: uk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -22,8 +24,8 @@ msgstr ""
msgid " This will appear on your {{site_name}} profile, to make it\\n easier for others to get involved with what you're doing."
msgstr "Це з’явиться у вашому профілі для ознайомлення інших людей."
-msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)"
-msgstr "(Тут не місце для політичних сварок, ознайомтесь, будь ласка, з <a href=\"%s\">правилами ведення дискусій</a>)"
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
+msgstr "(звертаємо вашу увагу на те, що Тут не місце для політичних сварок)"
msgid " (<strong>patience</strong>, especially for large files, it may take a while!)"
msgstr "(<strong>Наберіться терпіння</strong>, це може тривати досить довго, особливо якщо файл великий!)"
@@ -52,13 +54,13 @@ msgstr " Порадьте, як зробити запит <strong>більш з
msgid " Ideas on what <strong>other documents to request</strong> which the authority may hold. "
msgstr "Ідеї щодо того, які ще документи можна вимагати у розпорядника інформації."
-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."
+msgid " If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\\n You may be able to find the address on their website, or by phoning them up and asking."
msgstr ""
-"Якщо вам відома адреса, яку можна використати, <a href=\"%s\">надішліть її нам</a>.\n"
+"Якщо вам відома адреса, яку можна використати, <a href=\"{{url}}\">надішліть її нам</a>.\n"
" Ви можете знайти адресу на їхньому вебсайті або ж подзвонити і запитати."
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 "Включіть доречні посилання (наприклад, на сторінку кампанії, ваш блог чи твіттер-акаунт). На них можна буде клікнути."
+msgstr "Включіть доречні посилання (наприклад, на сторінку кампанії, ваш блог чи твіттер-акаунт). Вони будуть активними."
msgid " Link to the information requested, if it is <strong>already available</strong> on the Internet. "
msgstr "Посилання на запитану інформацію, якщо вона <strong>вже доступна</strong> в інтернеті."
@@ -93,24 +95,6 @@ msgstr " коли ви відправите повідомлення."
msgid "\"Hello! We have an <a href=\\\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\\\">important message</a> for visitors outside {{country_name}}\""
msgstr ""
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
-msgstr[0] "%d інформаційний запит до %s"
-msgstr[1] "%d інформаційні запити до %s"
-msgstr[2] "%d інформаційних запитів до %s"
-
-msgid "%d request"
-msgid_plural "%d requests"
-msgstr[0] "%d запит"
-msgstr[1] "%d запити"
-msgstr[2] "%d запитів"
-
-msgid "%d request made."
-msgid_plural "%d requests made."
-msgstr[0] "%d запит зроблено"
-msgstr[1] "%d запити зроблено"
-msgstr[2] "%d запитів зроблено"
-
msgid "'Crime statistics by ward level for Wales'"
msgstr "Статистика злочинності для Вінницької області"
@@ -126,6 +110,9 @@ msgstr "'{{link_to_request}}', запит"
msgid "'{{link_to_user}}', a person"
msgstr "'{{link_to_user}}'"
+msgid "*unknown*"
+msgstr ""
+
msgid ",\\n\\n\\n\\nYours,\\n\\n{{user_name}}"
msgstr ""
",\n"
@@ -148,34 +135,14 @@ msgstr "2. Зробіть інформаційний запит"
msgid "3. Now check your request"
msgstr "3. Перевірте ваш запит"
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
+msgstr "<a href=\"{{browse_url}}\">Переглянути всі</a> або <a href=\"{{add_url}}\">попросити нас додати</a>."
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
-msgstr "<a href=\"%s\">Додайте коментар</a> (щоб допомогти авторам цього та інших запитів)"
-
-msgid "<a href=\"%s\">Are we missing a public authority?</a>"
-msgstr ""
-
-msgid "<a href=\"%s\">Are you the owner of\\n any commercial copyright on this page?</a>"
-msgstr ""
-"<a href=\"%s\">Вам належить авторське право\n"
-" на будь-що на цій сторінці?</a>"
+msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)"
+msgstr "<a href=\"{{url}}\">Додайте коментар</a> (щоб допомогти авторам цього та інших запитів)"
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
-msgstr "<a href=\"%s\">Переглянути всі</a> або <a href=\"%s\">попросити нас додати</a>."
-
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
-msgstr "<a href=\"%s\">Не можете знайти?</a>"
-
-msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
-msgstr "<a href=\"%s\">Увійдіть</a>, щоб змінити пароль, підписку тощо (це стосується тільки користувача {{user_name}})"
-
-msgid "<a href=\"%s\">details</a>"
-msgstr "<a href=\"%s\">деталі</a>"
-
-msgid "<a href=\"%s\">what's that?</a>"
-msgstr "<a href=\"%s\">що це?</a>"
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
+msgstr "<a href=\"{{url}}\">Увійдіть</a>, щоб змінити пароль, підписку тощо (це стосується тільки користувача {{user_name}})"
msgid "<p>All done! Thank you very much for your help.</p><p>There are <a href=\"{{helpus_url}}\">more things you can do</a> to help {{site_name}}.</p>"
msgstr "<p>Готово! Дякуємо за вашу допомогу.</p><p>За бажання ви можете <a href=\"{{helpus_url}}\">зробити більше</a>, щоб допомогти сайту.</p>"
@@ -204,9 +171,6 @@ msgstr ""
msgid "<p>Thank you! Hopefully your wait isn't too long.</p><p>You should get a response within {{late_number_of_days}} days, or be told if it will take longer (<a href=\"{{review_url}}\">details</a>).</p>"
msgstr "<p>Дякуємо! Сподіваємось, вам не доведеться довго чекати.</p><p>Ви маєте отримати відповідь в межах {{late_number_of_days}} днів, або ж вам повідомлять, що це займе більше часу (<a href=\"{{review_url}}\">details</a>).</p>"
-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 "<p>Дякуємо! Ми спробуємо це виправити.</p><p>Якщо помилка пов’язана з неможливістю доставки і ви можете знайти чинну електронну адресу розпорядника інформації, на яку можна відправляти запити, повідомте нас, скориставшись формою внизу.</p>"
-
msgid "<p>Thank you! Your request is long overdue, by more than {{very_late_number_of_days}} working days. Most requests should be answered within {{late_number_of_days}} working days. You might like to complain about this, see below.</p>"
msgstr "<p>Дякуємо! Ваш запит давно прострочений, більш ніж {{very_late_number_of_days}} робочих днів. Більшість запитів отримують відповідь в межах {{late_number_of_days}} робочих днів. Якщо ви хочете поскаржитись щодо цього, див. нижче.</p>"
@@ -231,18 +195,18 @@ msgstr "<p>Ми раді, що ви отримали всю потрібну і
msgid "<p>We're glad you got some of the information that you wanted. If you found {{site_name}} useful, <a href=\"{{donation_url}}\">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 "<p>Ми раді, що ви отримали дещо з потрібної вам інформації. Якщо ви напишете про це або використаєте цю інформацію в будь-який спосіб, поверніться та додайте коментар про це внизу.</p><p>Якщо {{site_name}} видався вам корисним, <a href=\"{{donation_url}}\">ви можете допомогти фінансово</a> громадській організації, що займається його підтримкою.</p><p>Якщо ви хочете спробувати отримати решту інформацію, вам слід зробити наступне.</p>"
-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 "<p>Вам не потрібно включати свою електронну адресу в запит, щоб отримати відповідь (<a href=\"%s\">деталі</a>).</p>"
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
+msgstr "<p>Вам не потрібно включати свою електронну адресу в запит, щоб отримати відповідь (<a href=\"{{url}}\">деталі</a>).</p>"
-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 "<p>Вам не потрібно включати свою електронну адресу в запит, щоб отримати відповідь, оскільки ми попросимо надати її пізніше (<a href=\"%s\">деталі</a>).</p>"
+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=\"{{url}}\">details</a>).</p>"
+msgstr "<p>Вам не потрібно включати свою електронну адресу в запит, щоб отримати відповідь, оскільки ми попросимо надати її пізніше (<a href=\"{{url}}\">деталі</a>).</p>"
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 "<p>Ваша адреса містить <strong>поштовий індекс</strong>. Якщо це не стосується безпосередньо теми запиту, будь ласка, не включайте будь-чию адресу, оскільки вона <strong>з’явиться у відкритому доступі в інтернеті</strong>.</p>"
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 {{late_number_of_days}} 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 ""
-"<p>Ваш {{law_used_full}} запит <strong>було відправлено</strong>!</p>\n"
+"<p>Ваш запит <strong>було відправлено</strong>!</p>\n"
"<p><strong>Ми повідомимо вам</strong> коли з’явиться відповідь або якщо розпорядник інформації не надасть її в межах {{late_number_of_days}} робочих днів.</p>\n"
"<p>Якщо ви збираєтесь написати про цей запит (наприклад, у форумі або в блозі), будь ласка, дайте посилання на цю сторінку та додайте коментар про це внизу.</p>"
@@ -254,16 +218,10 @@ msgstr ""
"<small>Перевірте, чи не потрапило наше повідомлення в спам. Іноді таке трапляється.</small>\n"
"</p>"
-msgid "<span id='follow_count'>%d</span> person is following this authority"
-msgid_plural "<span id='follow_count'>%d</span> people are following this authority"
-msgstr[0] "<span id='follow_count'>%d</span> осіб відслідковує цього розпорядника"
-msgstr[1] "<span id='follow_count'>%d</span> особа відслідковує цього розпорядника"
-msgstr[2] "<span id='follow_count'>%d</span> особи (осіб) відслідковують цього розпорядника"
-
-msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"%s\">No! (Click here for details)</a>"
+msgid "<strong> Can I request information about myself?</strong>\\n\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
msgstr ""
"<strong> Чи можу я запитати інформацію про себе?</strong>\n"
-"\t\t\t<a href=\"%s\">Ні! (Деталі тут)</a>"
+"\t\t\t<a href=\"{{url}}\">Ні! (Деталі тут)</a>"
msgid "<strong><code>commented_by:tony_bowden</code></strong> to search annotations made by Tony Bowden, typing the name as in the URL."
msgstr ""
@@ -325,11 +283,11 @@ msgstr ""
" Ми надішлемо на нову адресу листа\n"
" з інструкціями щодо підтвердження зміни адреси."
-msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"%s\">click here</a>."
+msgid "<strong>Privacy note:</strong> If you want to request private information about\\n yourself then <a href=\"{{url}}\">click here</a>."
msgstr ""
"<strong>Заувага щодо приватності:</strong> Якщо ви хочете зробити запит \n"
"про приватну інформацію щодо себе, \n"
-"<a href=\"%s\">натисніть сюди</a>."
+"<a href=\"{{url}}\">натисніть сюди</a>."
msgid "<strong>Privacy note:</strong> Your photo will be shown in public on the Internet,\\n wherever you do something on {{site_name}}."
msgstr "<strong>Заувага щодо приватності:</strong> Ваше фото з’явиться в публічному доступі."
@@ -355,7 +313,7 @@ msgid "A <a href=\"{{request_url}}\">response</a> to <em>{{request_title}}</em>
msgstr "<a href=\"{{request_url}}\">Відповідь</a> на <em>{{request_title}}</em> була надіслана розпорядником {{public_body_name}} до користувача {{info_request_user}} {{date}}. Статус запиту: {{request_status}}"
msgid "A <strong>summary</strong> of the response if you have received it by post. "
-msgstr ""
+msgstr "Короткий виклад відповіді, якщо ви отримали її звичайною поштою."
msgid "A Freedom of Information request"
msgstr "Інформаційний запит"
@@ -367,11 +325,14 @@ msgid "A public authority"
msgstr "Орган влади або місцевого самоврядування"
msgid "A response will be sent <strong>by post</strong>"
-msgstr "Відповідь буде надіслана поштою"
+msgstr "Відповідь буде надіслана звичайною поштою"
msgid "A strange reponse, required attention by the {{site_name}} team"
msgstr "Дивна відповідь, вимагає уваги з боку команди сайту"
+msgid "A vexatious request"
+msgstr ""
+
msgid "A {{site_name}} user"
msgstr "Користувач сайту {{site_name}}"
@@ -381,11 +342,20 @@ msgstr "Про вас:"
msgid "Act on what you've learnt"
msgstr "Дійте, спираючись на отриману інформацію"
+msgid "Acts as xapian/acts as xapian job"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Action"
+msgstr ""
+
+msgid "ActsAsXapian::ActsAsXapianJob|Model"
+msgstr ""
+
msgid "Add an annotation"
msgstr "Додайте коментар"
msgid "Add an annotation to your request with choice quotes, or\\n a <strong>summary of the response</strong>."
-msgstr ""
+msgstr "Додайте коментар до свого запиту або короткий виклад відповіді."
msgid "Added on {{date}}"
msgstr "Дата додання: {{date}}"
@@ -403,10 +373,10 @@ msgid "Advanced search tips"
msgstr "Поради щодо розширеного пошуку"
msgid "Advise on whether the <strong>refusal is legal</strong>, and how to complain about it if not."
-msgstr ""
+msgstr "Дайте пораду щодо законності відмови. "
msgid "Air, water, soil, land, flora and fauna (including how these effect\\n human beings)"
-msgstr ""
+msgstr "Повітря, вода, грунт, флора і фауна (та їх вплив на людину)."
msgid "All of the information requested has been received"
msgstr "Уся запитана інформація була отримана"
@@ -463,11 +433,20 @@ msgstr "Анонімний користувач"
msgid "Anyone:"
msgstr "Будь-хто з користувачів:"
+msgid "Applies to"
+msgstr "Можна застосувати до"
+
+msgid "Are we missing a public authority?"
+msgstr "Ми когось забули?"
+
+msgid "Are you the owner of any commercial copyright on this page?"
+msgstr "Вам належить авторське право на будь-що на цій сторінці?"
+
msgid "Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries."
msgstr "Запитуйте про <strong>конкретні</strong> документи або інформацію, цей сайт не призначений для загальних питань."
-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 ""
+msgid "At the bottom of this page, write a reply to them trying to persuade them to scan it in\\n (<a href=\"{{url}}\">more details</a>)."
+msgstr "Внизу сторінки напишіть відповідь зі спробою переконати їх відсканувати її."
msgid "Attachment (optional):"
msgstr "Додаток (необов’язково)"
@@ -476,7 +455,7 @@ msgid "Attachment:"
msgstr "Додаток:"
msgid "Awaiting classification."
-msgstr "Очікує на класифікацію"
+msgstr "Статус не визначено."
msgid "Awaiting internal review."
msgstr "Очікує на внутрішню перевірку."
@@ -502,6 +481,12 @@ msgstr "Згідно з законодавством, за будь-яких у
msgid "By law, {{public_body_link}} should normally have responded <strong>promptly</strong> and"
msgstr "Згідно з законодавством, {{public_body_link}} мав би відповісти <strong>швидко</strong> і"
+msgid "Calculated home page"
+msgstr ""
+
+msgid "Can't find the one you want?"
+msgstr "Не можете знайти?"
+
msgid "Cancel a {{site_name}} alert"
msgstr "Скасувати повідомлення сайту"
@@ -512,22 +497,22 @@ msgid "Cancel, return to your profile page"
msgstr "Скасувати, повернутися на сторінку профілю"
msgid "Censor rule"
-msgstr ""
+msgstr "Censor rule"
msgid "CensorRule|Last edit comment"
-msgstr ""
+msgstr "CensorRule|Last edit comment"
msgid "CensorRule|Last edit editor"
-msgstr ""
+msgstr "CensorRule|Last edit editor"
msgid "CensorRule|Regexp"
-msgstr ""
+msgstr "CensorRule|Regexp"
msgid "CensorRule|Replacement"
-msgstr ""
+msgstr "CensorRule|Replacement"
msgid "CensorRule|Text"
-msgstr ""
+msgstr "CensorRule|Text"
msgid "Change email on {{site_name}}"
msgstr "Змінити електронну адресу на сайті"
@@ -557,7 +542,7 @@ msgid "Change your password {{site_name}}"
msgstr "Змініть свій пароль"
msgid "Charity registration"
-msgstr ""
+msgstr "Реєстрація благодійної організації"
msgid "Check for mistakes if you typed or copied the address."
msgstr "Перевірте на наявність помилок, якщо ви набрали чи скопіювали адресу"
@@ -578,7 +563,7 @@ msgid "Classify an FOI response from "
msgstr "Класифікуйте відповідь від "
msgid "Clear photo"
-msgstr ""
+msgstr "Видалити фото"
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\\nreview, asking them to find out why response to the request has been so slow."
msgstr ""
@@ -595,16 +580,16 @@ msgid "Comment"
msgstr ""
msgid "Comment|Body"
-msgstr ""
+msgstr "Comment|Body"
msgid "Comment|Comment type"
-msgstr ""
+msgstr "Comment|Comment type"
msgid "Comment|Locale"
-msgstr ""
+msgstr "Comment|Locale"
msgid "Comment|Visible"
-msgstr ""
+msgstr "Comment|Visible"
msgid "Confirm you want to follow all successful FOI requests"
msgstr "Підтвердіть, що ви хочете відслідковувати всі успішні запити"
@@ -671,9 +656,15 @@ msgstr "На даний момент відповідь від {{public_body_lin
msgid "Date:"
msgstr "Дата:"
+msgid "Dear {{name}},"
+msgstr ""
+
msgid "Dear {{public_body_name}},"
msgstr "Шановний {{public_body_name}},"
+msgid "Default locale"
+msgstr ""
+
msgid "Delayed response to your FOI request - "
msgstr "Відстрочена відповідь на ваш запит - "
@@ -683,6 +674,9 @@ msgstr "Затримується"
msgid "Delivery error"
msgstr "Помилка доставки"
+msgid "Destroy {{name}}"
+msgstr ""
+
msgid "Details of request '"
msgstr "Деталі запиту '"
@@ -690,11 +684,14 @@ msgid "Did you mean: {{correction}}"
msgstr "Можливо, ви мали на увазі: {{correction}}"
msgid "Disclaimer: This message and any reply that you make will be published on the internet. Our privacy and copyright policies:"
-msgstr "Увага! Це повідомлення та будь-яка відповідь будуть опубліковані в інтернеті. Наша політика щодо приватності та авторського права:"
+msgstr "Увага! Це повідомлення та будь-яка відповідь на нього будуть опубліковані на сайті {{site_name}}"
msgid "Disclosure log"
msgstr ""
+msgid "Disclosure log URL"
+msgstr ""
+
msgid "Don't want to address your message to {{person_or_body}}? You can also write to:"
msgstr "Не хочете надсилати повідомлення на адресу {{person_or_body}}? Ви можете також написати за цією адресою:"
@@ -702,7 +699,7 @@ msgid "Done"
msgstr "Зроблено"
msgid "Done &gt;&gt;"
-msgstr "Зроблено &gt;&gt;"
+msgstr "Зроблено "
msgid "Download a zip file of all correspondence"
msgstr "Завантажити zip-архів усієї переписки"
@@ -713,14 +710,14 @@ msgstr "Завантажити початкове вкладення"
msgid "EIR"
msgstr "EIR"
+msgid "Edit"
+msgstr ""
+
msgid "Edit and add <strong>more details</strong> to the message above,\\n explaining why you are dissatisfied with their response."
msgstr ""
"Відредагуйте та додайте <strong>більше деталей</strong> до повідомлення,\n"
"пояснивши, чому саме ви незадоволені відповіддю."
-msgid "Edit language version:"
-msgstr ""
-
msgid "Edit text about you"
msgstr "Відредагувати інформацію про себе"
@@ -740,9 +737,9 @@ msgid "Email me future updates to this request"
msgstr "Надішліть мені майбутні оновлення щодо цього запиту"
msgid "Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>"
-msgstr ""
+msgstr "Введіть слова, які хочете знайти, розділені пробілами"
-msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"%s\">contact us</a> if you need more)."
+msgid "Enter your response below. You may attach one file (use email, or\\n <a href=\"{{url}}\">contact us</a> if you need more)."
msgstr ""
"Введіть вашу відповідь нижче. Ви можете приєднати один файл (скористайтеся\n"
"електронною поштою, якщо вам треба прикріпити більше файлів)."
@@ -762,17 +759,20 @@ msgstr "Історія"
msgid "Event history details"
msgstr "Історія (деталі)"
-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>)."
+msgid "Event {{id}}"
msgstr ""
-"Усе, що ви введете на цій сторінці, \n"
-"буде <strong>опубліковано у вільному доступі</strong> на\n"
-" цьому вебсайті назавжди (<a href=\"%s\">чому?</a>)."
-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>)."
+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=\"{{url}}\">why?</a>)."
msgstr ""
"Усе, що ви введете на цій сторінці (включно з вашим іменем), \n"
"буде <strong>опубліковано у вільному доступі</strong> на\n"
-" цьому вебсайті назавжди (<a href=\"%s\">чому?</a>)."
+" цьому вебсайті назавжди (<a href=\"{{url}}\">чому?</a>)."
+
+msgid "Everything that you enter on this page\\n will be <strong>displayed publicly</strong> on\\n this website forever (<a href=\"{{url}}\">why?</a>)."
+msgstr ""
+"Усе, що ви введете на цій сторінці, \n"
+"буде <strong>опубліковано у вільному доступі</strong> на\n"
+" цьому вебсайті назавжди (<a href=\"{{url}}\">чому?</a>)."
msgid "FOI"
msgstr ""
@@ -780,6 +780,9 @@ msgstr ""
msgid "FOI email address for {{public_body}}"
msgstr "Електронна адреса розпорядника '{public_body}}'"
+msgid "FOI request – {{title}}"
+msgstr "Інформаційний запит - {{title}}"
+
msgid "FOI requests"
msgstr "Інформаційні запити"
@@ -795,41 +798,41 @@ msgstr ""
msgid "Failed to convert image to a PNG"
msgstr "Не вдалося конвертувати зображення в PNG"
-msgid "Failed to convert image to the correct size: at %{cols}x%{rows}, need %{width}x%{height}"
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
msgstr ""
msgid "Filter"
msgstr "Фільтр"
-msgid "First, type in the <strong>name of the UK public authority</strong> you'd \\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"%s#%s\">why?</a>)."
+msgid "First, type in the <strong>name of the UK public authority</strong> you'd\\n like information from. <strong>By law, they have to respond</strong>\\n (<a href=\"{{url}}\">why?</a>)."
msgstr ""
"Для початку, ввдеіть <strong>назву розпорядника інформації</strong>, від якого \n"
"ви хотіли б щось дізнатись. <strong>Відповідно до законодавства, вони зобов’язані вам відповісти</strong>\n"
-"(<a href=\"%s#%s\">чому?</a>)."
+"(<a href=\"{{url}}\">чому?</a>)."
msgid "Foi attachment"
msgstr ""
msgid "FoiAttachment|Charset"
-msgstr ""
+msgstr "FoiAttachment|Charset"
msgid "FoiAttachment|Content type"
-msgstr ""
+msgstr "FoiAttachment|Content type"
msgid "FoiAttachment|Display size"
-msgstr ""
+msgstr "FoiAttachment|Display size"
msgid "FoiAttachment|Filename"
-msgstr ""
+msgstr "FoiAttachment|Filename"
msgid "FoiAttachment|Hexdigest"
-msgstr ""
+msgstr "FoiAttachment|Hexdigest"
msgid "FoiAttachment|Url part number"
-msgstr ""
+msgstr "FoiAttachment|Url part number"
msgid "FoiAttachment|Within rfc822 subject"
-msgstr ""
+msgstr "FoiAttachment|Within rfc822 subject"
msgid "Follow"
msgstr "Відслідковувати"
@@ -877,7 +880,7 @@ msgid "Follow us on twitter"
msgstr "Ми в твіттері"
msgid "Followups cannot be sent for this request, as it was made externally, and published here by {{public_body_name}} on the requester's behalf."
-msgstr ""
+msgstr "Додаткові повідомлення щодо цього запиту не можуть бути надійслані"
msgid "For an unknown reason, it is not possible to make a request to this authority."
msgstr "З невідомих причин, зробити запит до цього розпорядника інформації неможливо"
@@ -885,11 +888,11 @@ msgstr "З невідомих причин, зробити запит до ць
msgid "Forgotten your password?"
msgstr "Забули пароль?"
-msgid "Found %d public authority %s"
-msgid_plural "Found %d public authorities %s"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgid "Found {{count}} public authority {{description}}"
+msgid_plural "Found {{count}} public authorities {{description}}"
+msgstr[0] "Знайдено одного розпорядника інформації"
+msgstr[1] "Знайдено {{count}} розпорядників інформації"
+msgstr[2] "Знайдено {{count}} розпорядників інформації"
msgid "Freedom of Information"
msgstr ""
@@ -926,7 +929,7 @@ msgstr "Запити до"
msgid "From"
msgstr "Від"
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "From:"
@@ -936,6 +939,18 @@ msgid "GIVE DETAILS ABOUT YOUR COMPLAINT HERE"
msgstr "НАДАЙТЕ ДЕТАЛІ ЩОДО ВАШОЇ СКАРГИ ТУТ"
msgid "Handled by post."
+msgstr "Надіслано звичайною поштою"
+
+msgid "Has tag string/has tag string tag"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Model"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Name"
+msgstr ""
+
+msgid "HasTagString::HasTagStringTag|Value"
msgstr ""
msgid "Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}"
@@ -960,18 +975,24 @@ msgstr ""
" щоб прочитати його і допомогти нам у впорядкуванні цього сайту?\n"
" Спасибі."
+msgid "Hide request"
+msgstr ""
+
msgid "Holiday"
msgstr ""
msgid "Holiday|Day"
-msgstr ""
+msgstr "Holiday|Day"
msgid "Holiday|Description"
-msgstr ""
+msgstr "Holiday|Description"
msgid "Home"
msgstr ""
+msgid "Home page"
+msgstr "Домашня сторінка"
+
msgid "Home page of authority"
msgstr "Домашня сторінка розпорядника інформації"
@@ -1022,8 +1043,17 @@ msgstr "Я отримав/отримала <strong>деяку інформаці
msgid "I've received an <strong>error message</strong>"
msgstr "Я отримав/отримала <strong>повідомлення про помилку</strong>"
-msgid "If the address is wrong, or you know a better address, please <a href=\"%s\">contact us</a>."
-msgstr "Якщо адреса неправиильна або якщо ви знаєте кращу, будь ласка, <a href=\"%s\">повідомте нам про це</a>."
+msgid "I've received an error message"
+msgstr "Я отримав повідомлення про помилку"
+
+msgid "Id"
+msgstr ""
+
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Якщо адреса неправиильна або якщо ви знаєте кращу, будь ласка, <a href=\"{{url}}\">повідомте нам про це</a>."
+
+msgid "If the error was a delivery failure, and you can find an up to date FOI email address for the authority, please tell us using the form below."
+msgstr "Якщо це була помилка доставки і вам відома актуальна адреса розпорядника інформації, повідомте нас."
msgid "If this is incorrect, or you would like to send a late response to the request\\nor an email on another subject to {{user}}, then please\\nemail {{contact_email}} for help."
msgstr ""
@@ -1031,22 +1061,22 @@ msgstr ""
"або повідомлення з іншою темою користувачу {{user}}, зверніться за допомогою\n"
"за адресою {{contact_email}}."
-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>)."
+msgid "If you are dissatisfied by the response you got from\\n the public authority, you have the right to\\n complain (<a href=\"{{url}}\">details</a>)."
msgstr ""
"Якщо ви не задоволені відповіддю, отриману від\n"
" розпорядника інформації, ви маєте право на \n"
-"скаргу (<a href=\"%s\">деталі</a>)."
+"скаргу (<a href=\"{{url}}\">деталі</a>)."
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
-msgstr "Якщо у вас все ще виникають проблеми, <a href=\"%s\">зверніться до нас</a>."
+msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Якщо у вас все ще виникають проблеми, <a href=\"{{url}}\">зверніться до нас</a>."
-msgid "If you are the requester, then you may <a href=\"%s\">sign in</a> to view the request."
-msgstr "Якщо ви автор запиту, ви можете <a href=\"%s\">увійти</a>, щоб його переглянути."
+msgid "If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the request."
+msgstr "Якщо ви автор запиту, ви можете <a href=\"{{url}}\">увійти</a>, щоб його переглянути."
-msgid "If you are thinking of using a pseudonym,\\n please <a href=\"%s\">read this first</a>."
+msgid "If you are thinking of using a pseudonym,\\n please <a href=\"{{url}}\">read this first</a>."
msgstr ""
"Якщо ви збираєтесь використати псевдонім,\n"
-" <a href=\"%s\">прочитайте спершу це</a>."
+" <a href=\"{{url}}\">прочитайте спершу це</a>."
msgid "If you are {{user_link}}, please"
msgstr "Якщо ви {{user_link}}, будь ласка"
@@ -1076,7 +1106,7 @@ msgid "If you have not done so already, please write a message below telling the
msgstr "Якщо ви ще цього не зробили, напишіть, будь ласка, розпоряднику інформації повідомлення (нижче), про те, що ви відмовились від запиту. Інакше вони не знатимуть, що відповідати на нього вже не потрібно."
msgid "If you reply to this message it will go directly to {{user_name}}, who will\\nlearn your email address. Only reply if that is okay."
-msgstr ""
+msgstr "Попередження: якщо ви відповісте на це повідомлення, воно надійде прямо до користувача {{user_name}},\\n який дізнається вашу електронну адресу."
msgid "If you use web-based email or have \"junk mail\" filters, also check your\\nbulk/spam mail folders. Sometimes, our messages are marked that way."
msgstr "Перевірте папку \"Спам\", наші повідомлення іноді потрапляють туди."
@@ -1097,38 +1127,41 @@ msgstr ""
"Якщо ваш браузер приймає пряники (cookies) і ви бачите це повідомлення,\n"
"значить, щось не так із вашим сервером."
+msgid "Incoming email address"
+msgstr ""
+
msgid "Incoming message"
msgstr "Вхідне повідомлення"
msgid "IncomingMessage|Cached attachment text clipped"
-msgstr ""
+msgstr "IncomingMessage|Cached attachment text clipped"
msgid "IncomingMessage|Cached main body text folded"
-msgstr ""
+msgstr "IncomingMessage|Cached main body text folded"
msgid "IncomingMessage|Cached main body text unfolded"
-msgstr ""
+msgstr "IncomingMessage|Cached main body text unfolded"
msgid "IncomingMessage|Last parsed"
-msgstr ""
+msgstr "IncomingMessage|Last parsed"
msgid "IncomingMessage|Mail from"
-msgstr ""
+msgstr "IncomingMessage|Mail from"
msgid "IncomingMessage|Mail from domain"
-msgstr ""
+msgstr "IncomingMessage|Mail from domain"
msgid "IncomingMessage|Sent at"
-msgstr ""
+msgstr "IncomingMessage|Sent at"
msgid "IncomingMessage|Subject"
-msgstr ""
+msgstr "IncomingMessage|Subject"
msgid "IncomingMessage|Valid to reply to"
-msgstr ""
+msgstr "IncomingMessage|Valid to reply to"
msgid "Individual requests"
-msgstr ""
+msgstr "Individual requests"
msgid "Info request"
msgstr ""
@@ -1137,64 +1170,64 @@ msgid "Info request event"
msgstr ""
msgid "InfoRequestEvent|Calculated state"
-msgstr ""
+msgstr "InfoRequestEvent|Calculated state"
msgid "InfoRequestEvent|Described state"
-msgstr ""
+msgstr "InfoRequestEvent|Described state"
msgid "InfoRequestEvent|Event type"
-msgstr ""
+msgstr "InfoRequestEvent|Event type"
msgid "InfoRequestEvent|Last described at"
-msgstr ""
+msgstr "InfoRequestEvent|Last described at"
msgid "InfoRequestEvent|Params yaml"
-msgstr ""
+msgstr "InfoRequestEvent|Params yaml"
msgid "InfoRequestEvent|Prominence"
-msgstr ""
+msgstr "InfoRequestEvent|Prominence"
msgid "InfoRequest|Allow new responses from"
-msgstr ""
+msgstr "InfoRequest|Allow new responses from"
msgid "InfoRequest|Attention requested"
-msgstr ""
+msgstr "InfoRequest|Attention requested"
msgid "InfoRequest|Awaiting description"
-msgstr ""
+msgstr "InfoRequest|Awaiting description"
msgid "InfoRequest|Comments allowed"
-msgstr ""
+msgstr "InfoRequest|Comments allowed"
msgid "InfoRequest|Described state"
-msgstr ""
+msgstr "InfoRequest|Described state"
msgid "InfoRequest|External url"
-msgstr ""
+msgstr "InfoRequest|External url"
msgid "InfoRequest|External user name"
-msgstr ""
+msgstr "InfoRequest|External user name"
msgid "InfoRequest|Handle rejected responses"
-msgstr ""
+msgstr "InfoRequest|Handle rejected responses"
msgid "InfoRequest|Idhash"
-msgstr ""
+msgstr "InfoRequest|Idhash"
msgid "InfoRequest|Law used"
-msgstr ""
+msgstr "InfoRequest|Law used"
msgid "InfoRequest|Prominence"
-msgstr ""
+msgstr "InfoRequest|Prominence"
msgid "InfoRequest|Title"
-msgstr ""
+msgstr "InfoRequest|Title"
msgid "InfoRequest|Url title"
-msgstr ""
+msgstr "InfoRequest|Url title"
msgid "Information not held."
-msgstr ""
+msgstr "Інформація не надана."
msgid "Information on emissions and discharges (e.g. noise, energy,\\n radiation, waste materials)"
msgstr ""
@@ -1216,14 +1249,20 @@ msgstr ""
msgid "Items matching the following conditions are currently displayed on your wall."
msgstr ""
+msgid "Items sent in last month"
+msgstr ""
+
msgid "Joined in"
msgstr "Приєднався у"
msgid "Joined {{site_name}} in"
msgstr "Користувач долучився до {{site_name}} у"
-msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)."
-msgstr "Конкретизуйте ваш запит, так ви маєте більше шансів отримати потрібну інформацію (<a href=\"%s\">чому?</a>)."
+msgid "Just one more thing"
+msgstr ""
+
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
+msgstr "Конкретизуйте ваш запит, так ви маєте більше шансів отримати потрібну інформацію (<a href=\"{{url}}\">чому?</a>)."
msgid "Keywords"
msgstr "Ключові слова"
@@ -1240,10 +1279,28 @@ msgstr ""
"а також якими браузером та операційною системою ви користуєтесь."
msgid "Link to this"
+msgstr "Посилання"
+
+msgid "List all"
msgstr ""
msgid "List of all authorities (CSV)"
-msgstr "Повний перелік (CSV)"
+msgstr "Повний перелік розпорядників (CSV)"
+
+msgid "Listing FOI requests"
+msgstr ""
+
+msgid "Listing public authorities"
+msgstr ""
+
+msgid "Listing public authorities matching '{{query}}'"
+msgstr ""
+
+msgid "Listing tracks"
+msgstr ""
+
+msgid "Listing users"
+msgstr ""
msgid "Log in to download a zip file of {{info_request_title}}"
msgstr "Увійдіть в систему, щоб завантажити заархівований запит {{info_request_title}}"
@@ -1314,7 +1371,7 @@ msgid "More about this authority"
msgstr "Більше про цього розпорядника інформації"
msgid "More requests..."
-msgstr ""
+msgstr "Більше запитів..."
msgid "More similar requests"
msgstr "Більше подібних запитів"
@@ -1343,6 +1400,9 @@ msgstr "Це ім’я/назва вже використано"
msgid "New Freedom of Information requests"
msgstr "Нові запити"
+msgid "New censor rule"
+msgstr ""
+
msgid "New e-mail:"
msgstr "Нова адреса:"
@@ -1388,8 +1448,11 @@ msgstr "Нічого не знайдено"
msgid "No similar requests found."
msgstr "Подібних запитів не знайдено"
+msgid "No tracked things found."
+msgstr ""
+
msgid "Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet."
-msgstr "Ще ніхто не робив запитів до {{public_body_name}} через цей сайт"
+msgstr "Ще ніхто не робив запитів до цього розпорядника інформації"
msgid "None found."
msgstr "Нічого не знайдено."
@@ -1397,6 +1460,9 @@ msgstr "Нічого не знайдено."
msgid "None made."
msgstr "Не зроблено жодного."
+msgid "Not a valid FOI request"
+msgstr ""
+
msgid "Note that the requester will not be notified about your annotation, because the request was published by {{public_body_name}} on their behalf."
msgstr ""
@@ -1442,6 +1508,9 @@ msgstr "Знайдено одну людину"
msgid "One public authority found"
msgstr "Знайдено один державний орган"
+msgid "Only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL – don't worry about breaking URLs through renaming, as the history is used to redirect"
+msgstr ""
+
msgid "Only requests made using {{site_name}} are shown."
msgstr "Відображаються тільки запити, зроблені через цей сайт."
@@ -1479,7 +1548,7 @@ msgid "OutgoingMessage|What doing"
msgstr ""
msgid "Partially successful."
-msgstr "Частково успішно"
+msgstr "Частково успішний."
msgid "Password is not correct"
msgstr "Неправильний пароль"
@@ -1500,7 +1569,7 @@ msgid "People {{start_count}} to {{end_count}} of {{total_count}}"
msgstr "Люди починаючи з {{start_count}} до {{end_count}} з {{total_count}}"
msgid "Photo of you:"
-msgstr "Ваша фотографія:"
+msgstr "Оберіть фото:"
msgid "Plans and administrative measures that affect these matters"
msgstr ""
@@ -1514,14 +1583,14 @@ msgstr ""
msgid "Please"
msgstr "Будь ласка"
-msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
-msgstr "Будь ласа, <a href=\"%s\">дайте нам знати</a>, щоб ми могли це виправити."
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
+msgstr "Будь ласа, <a href=\"{{url}}\">дайте нам знати</a>, щоб ми могли це виправити."
msgid "Please <strong>answer the question above</strong> so we know whether the "
msgstr "Будь ласка, <strong>дайте відповідь на питання вгорі</strong>, щоб ми знали, чи "
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 ""
+msgstr "Будь ласка, подивіться на ці запити та дайте нам знати,\\n чи містилась інформація в останніх відповідях на ці запити."
msgid "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=\"{{new_request_link}}\">file a new request</a>."
msgstr "Будь ласка, включайте в своє повідомлення <strong>тільки</strong> інформацію,що безпосередньо стосується запиту {{request_link}}. Якщо вам потрібна інформація, що не була включена в початковий запит, <a href=\"{{new_request_link}}\">зробіть новий</a>."
@@ -1590,7 +1659,7 @@ msgid "Please enter your follow up message"
msgstr "Будь ласка, введіть повідомлення"
msgid "Please enter your letter requesting information"
-msgstr ""
+msgstr "Будь ласка, введіть текст повідомлення"
msgid "Please enter your name"
msgstr "Будь ласка, введіть ваше ім’я"
@@ -1608,7 +1677,7 @@ msgid "Please enter your password"
msgstr "Будь ласка, введіть ваш пароль"
msgid "Please give details explaining why you want a review"
-msgstr ""
+msgstr "Будь ласка, поясніть, чому ви просите про перевірку"
msgid "Please keep it shorter than 500 characters"
msgstr "Будь ласка, дотримуйтесь обмеження на 500 знаків."
@@ -1620,23 +1689,20 @@ msgid "Please only request information that comes under those categories, <stron
msgstr ""
msgid "Please select each of these requests in turn, and <strong>let everyone know</strong>\\nif they are successful yet or not."
-msgstr ""
+msgstr "Будь ласка, оберіть кожен з цих запитів та визначте, чи були вони успішними."
-msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature"
-msgstr ""
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
+msgstr "Будь ласка, зазначте своє ім’я внизу"
msgid "Please sign in as "
msgstr "Будь ласка, увійдіть як "
msgid "Please sign in or make a new account."
-msgstr ""
+msgstr "Будь ласка, увійдіть або зареєструйтесь"
msgid "Please type a message and/or choose a file containing your response."
msgstr "Будь ласка, введіть повідомлення або оберіть файл, що містить вашу відповідь."
-msgid "Please use the form below to tell us more."
-msgstr "Скористайтесь формою внизу, щоб написати нам"
-
msgid "Please use this email address for all replies to this request:"
msgstr "Будь ласка, використовуйте цю електронну адресу для всіх відповідей на цей запит."
@@ -1659,7 +1725,7 @@ msgid "Point to <strong>related information</strong>, campaigns or forums which
msgstr "Вкажіть на дотичну інформацію, корисні форуми, кампанії тощо."
msgid "Possibly related requests:"
-msgstr ""
+msgstr "Подібні запити:"
msgid "Post annotation"
msgstr "Опублікувати коментар"
@@ -1695,10 +1761,10 @@ msgid "Prev"
msgstr ""
msgid "Preview follow up to '"
-msgstr ""
+msgstr "Попередній перегляд уточнення щодо запиту '"
msgid "Preview new annotation on '{{info_request_title}}'"
-msgstr ""
+msgstr "Попередній перегляд коментаря на запит '{{info_request_title}}'"
msgid "Preview your annotation"
msgstr "Попередній перегляд коментаря"
@@ -1719,45 +1785,27 @@ msgid "ProfilePhoto|Draft"
msgstr ""
msgid "Public authorities"
-msgstr ""
+msgstr "Розпорядники інформації"
msgid "Public authorities - {{description}}"
-msgstr ""
+msgstr "Розпорядники інформації - {{description}}"
msgid "Public authorities {{start_count}} to {{end_count}} of {{total_count}}"
msgstr ""
-msgid "Public body"
-msgstr ""
-
-msgid "Public body/translation"
-msgstr ""
-
-msgid "PublicBody::Translation|Disclosure log"
-msgstr ""
-
-msgid "PublicBody::Translation|First letter"
-msgstr ""
+msgid "Public authority – {{name}}"
+msgstr "Розпорядник інформації – {{name}}"
-msgid "PublicBody::Translation|Locale"
-msgstr ""
-
-msgid "PublicBody::Translation|Name"
-msgstr ""
-
-msgid "PublicBody::Translation|Notes"
-msgstr ""
-
-msgid "PublicBody::Translation|Publication scheme"
+msgid "Public body"
msgstr ""
-msgid "PublicBody::Translation|Request email"
+msgid "Public notes"
msgstr ""
-msgid "PublicBody::Translation|Short name"
+msgid "Public page"
msgstr ""
-msgid "PublicBody::Translation|Url name"
+msgid "Public page not available"
msgstr ""
msgid "PublicBody|Api key"
@@ -1805,6 +1853,9 @@ msgstr ""
msgid "Publication scheme"
msgstr ""
+msgid "Publication scheme URL"
+msgstr ""
+
msgid "Purge request"
msgstr "Видалити запит"
@@ -1864,6 +1915,9 @@ msgstr "Зробити запит на внутрішню перевірку"
msgid "Request an internal review from {{person_or_body}}"
msgstr "Зробити запит на внутрішню перевірку від {{person_or_body}}"
+msgid "Request email"
+msgstr ""
+
msgid "Request has been removed"
msgstr "Запит було видалено"
@@ -1943,7 +1997,7 @@ msgid "Search in"
msgstr "Пошук в"
msgid "Search over<br/>\\n <strong>{{number_of_requests}} requests</strong> <span>and</span><br/>\\n <strong>{{number_of_authorities}} authorities</strong>"
-msgstr ""
+msgstr "Кількість зареєстрованих запитів: <strong>{{number_of_requests}}</strong><br/>\\n Кількість розпорядників інформації: <strong>{{number_of_authorities}}</strong>"
msgid "Search queries"
msgstr ""
@@ -1954,14 +2008,17 @@ msgstr "Результати пошуку"
msgid "Search the site to find what you were looking for."
msgstr "Шукайте на сайті те, що вам потрібною."
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
-msgstr[0] "Шукати серед %d запитів зроблених до %s"
-msgstr[1] "Шукати серед %d запитів зроблених до %s"
-msgstr[2] "Шукати серед %d запитів зроблених до %s"
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests made to {{public_body_name}}"
+msgstr[0] "Шукати серед {{count}} запитів зроблених до {{public_body_name}}"
+msgstr[1] "Шукати серед {{count}} запитів зроблених до {{public_body_name}}"
+msgstr[2] "Шукати серед {{count}} запитів зроблених до {{public_body_name}}"
msgid "Search your contributions"
-msgstr "Пошук у вашій діяльності на сайті"
+msgstr "Пошук у вашій активності на сайті"
+
+msgid "See bounce message"
+msgstr ""
msgid "Select one to see more information about the authority."
msgstr "Оберіть щоб дізнатися більше про розпорядника інформації"
@@ -1996,6 +2053,9 @@ msgstr "Надіслати запит"
msgid "Set your profile photo"
msgstr "Встановити фото в профілі"
+msgid "Short name"
+msgstr ""
+
msgid "Short name is already taken"
msgstr ""
@@ -2089,6 +2149,9 @@ msgstr "Відправити"
msgid "Submit status"
msgstr "Оновити статус"
+msgid "Submit status and send message"
+msgstr ""
+
msgid "Subscribe to blog"
msgstr ""
@@ -2096,7 +2159,7 @@ msgid "Successful Freedom of Information requests"
msgstr "Успішні запити"
msgid "Successful."
-msgstr "Успішно."
+msgstr "Успішний."
msgid "Suggest how the requester can find the <strong>rest of the information</strong>."
msgstr "Підкажіть, де автор запиту може знайти <strong>більше інформації</strong>."
@@ -2110,6 +2173,9 @@ msgstr "Таблиця статусів"
msgid "Table of varieties"
msgstr ""
+msgid "Tags"
+msgstr ""
+
msgid "Tags (separated by a space):"
msgstr ""
@@ -2137,6 +2203,9 @@ msgstr "Дякуємо, що оновили свій запит!"
msgid "Thank you for updating your profile photo"
msgstr "Дякуємо, що оновили фотографію в профілі"
+msgid "Thank you! We'll look into what happened and try and fix it up."
+msgstr ""
+
msgid "Thanks for helping - your work will make it easier for everyone to find successful\\nresponses, and maybe even let us make league tables..."
msgstr ""
@@ -2189,7 +2258,7 @@ msgid "The request has been <strong>refused</strong>"
msgstr "Запит відхилено"
msgid "The request has been updated since you originally loaded this page. Please check for any new incoming messages below, and try again."
-msgstr ""
+msgstr "Запит було оновленно після того, як ви востаннє завантажували сторінку. Перевірте наявність нових вхідних повідомлень і спробуйте ще раз."
msgid "The request is <strong>waiting for clarification</strong>."
msgstr "Запит чекає на уточнення"
@@ -2206,18 +2275,18 @@ msgstr "Запит був успішним."
msgid "The request was refused by the public authority"
msgstr "Запит було відхилено розпорядником інформації"
-msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"%s\">contact us</a> if you have any questions."
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
msgstr "Запит, який ви хотіли переглянути, було видалено."
msgid "The requester has abandoned this request for some reason"
msgstr ""
-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"
+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 ""
"Відповідь на ваш запит затримується. Згідно з законодавством, ви маєте \n"
" отримати відповідь швидко і"
-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"
+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 "Відповідь на ваш запит прострочена. За будь-яких умов вона вже мала б надійти до цього часу."
msgid "The search index is currently offline, so we can't show the Freedom of Information requests that have been made to this authority."
@@ -2226,6 +2295,9 @@ msgstr ""
msgid "The search index is currently offline, so we can't show the Freedom of Information requests this person has made."
msgstr ""
+msgid "The {{site_name}} team."
+msgstr ""
+
msgid "Then you can cancel the alert."
msgstr ""
@@ -2287,7 +2359,7 @@ msgid "Then you will be notified whenever someone requests something or gets a r
msgstr "Далі ви будете повідомлені про всі запити до '{{public_body_name}}' та відповіді на ці запити."
msgid "Then you will be updated whenever the request '{{request_title}}' is updated."
-msgstr ""
+msgstr "Ви будете сповіщені коли запит '{{request_title}}' буде оновлено."
msgid "Then you'll be allowed to send FOI requests."
msgstr "Після цього ви зможете відсилати запити."
@@ -2301,17 +2373,17 @@ msgstr "Після цього ваш коментар до запиту '{{info_
msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
msgstr "Надійшли нові коментарі на ваш запит {{info_request}}. Пройдіть запосиланням, щоб ознайомитись з ними."
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
-msgstr[0] "Цей запит ніхто не відслідковує"
-msgstr[1] "Цей запит відслідковує 1 людина"
-msgstr[2] "Цей запит відслідковує така кількість людей: %d"
-
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 ""
msgid "There is a limit on the number of requests you can make in a day, because we don’t want public authorities to be bombarded with large numbers of inappropriate requests. If you feel you have a good reason to ask for the limit to be lifted in your case, please <a href='{{help_contact_path}}'>get in touch</a>."
-msgstr "Ми встановили обмеження на кількість запитів, які можна відправитипротягом одного дня. Ви можете попросити про зняття цього обмеження, <a href='{{help_contact_path}}'>написавши нам</a>. Ваше прохання має бутиобґрунтованим"
+msgstr "Ми встановили обмеження на кількість запитів, які можна відправитипротягом одного дня. Ви можете попросити про зняття цього обмеження, <a href='{{help_contact_path}}'>написавши нам</a>. Ваше прохання має бути обґрунтованим"
+
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
+msgstr[0] "Цей запит ніхто не відслідковує"
+msgstr[1] "Цей запит відслідковує 1 людина"
+msgstr[2] "Цей запит відслідковує така кількість людей: {{count}}"
msgid "There was a <strong>delivery error</strong> or similar, which needs fixing by the {{site_name}} team."
msgstr "Зафіксовано <strong>помилку доставки</strong> або щось подібне. Команда сайту має виправити її."
@@ -2349,8 +2421,8 @@ msgstr "Відслідковуване вами"
msgid "This authority no longer exists, so you cannot make a request to it."
msgstr "Цього органу більше не існує, тож ви не можете зробити запит."
-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 ""
+msgid "This comment has been hidden. See annotations to\\n find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
+msgstr "Цей коментар було приховано. Якщо ви автор запиту, ви можете <a href=\"{{url}}\">sign in</a>,щоб переглянути відповідь."
msgid "This covers a very wide spectrum of information about the state of\\n the <strong>natural and built environment</strong>, such as:"
msgstr ""
@@ -2369,10 +2441,13 @@ msgstr "Це HTML-версія додатку до запита"
msgid "This is because {{title}} is an old request that has been\\nmarked to no longer receive responses."
msgstr ""
+msgid "This is the first version."
+msgstr "Це перша версія."
+
msgid "This is your own request, so you will be automatically emailed when new responses arrive."
msgstr "Це ваш власний запит, тому вас буде автоматично повідомлено, коли прибуде відповідь."
-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."
+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=\"{{url}}\">sign in</a> to view the response."
msgstr ""
msgid "This particular request is finished:"
@@ -2381,21 +2456,21 @@ msgstr "Переписка щодо цього запиту завершена:"
msgid "This person has made no Freedom of Information requests using this site."
msgstr "Ця людина не зробила жодного запиту через цей сайт."
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
-msgstr[0] "Ця людина має %d запитів"
-msgstr[1] "Ця людина має %d запит"
-msgstr[2] "Ця людина має %d запитів (запити)"
-
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
-msgstr[0] "Ця людина має %d коментарів"
-msgstr[1] "Ця людина має %d коментар"
-msgstr[2] "Ця людина має %d коментарів"
-
msgid "This person's annotations"
msgstr "Коментарі цієї людини"
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
+msgstr[0] "Ця людина має {{count}} запитів"
+msgstr[1] "Ця людина має {{count}} запит"
+msgstr[2] "Ця людина має {{count}} запитів (запити)"
+
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
+msgstr[0] "Ця людина має {{count}} коментарів"
+msgstr[1] "Ця людина має {{count}} коментар"
+msgstr[2] "Ця людина має {{count}} коментарів"
+
msgid "This request <strong>requires administrator attention</strong>"
msgstr "Цей запит потребує уваги адміністрації сайту"
@@ -2419,7 +2494,7 @@ msgstr ""
"Людина, що зробила цей запит, відмовилась від нього.\n"
" У переписці нижче може бути пояснення цьому."
-msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"%s\">contact us</a>."
+msgid "This request has been marked for review by the site administrators, who have not hidden it at this time. If you believe it should be hidden, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
msgid "This request has been reported for administrator attention"
@@ -2434,19 +2509,22 @@ msgstr "Цей запит отримав незвичайну відповідь
msgid "This request has prominence 'hidden'. You can only see it because you are logged\\n in as a super user."
msgstr ""
-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 ""
+msgid "This request is hidden, so that only you the requester can see it. Please\\n <a href=\"{{url}}\">contact us</a> if you are not sure why."
+msgstr "Цей запит приховано, тому його може бачити тільки автор. Якщо вам не зрозуміла причина приховання,ви можете \\n <a href=\"{{url}}\">написати нам</a>."
msgid "This request is still in progress:"
msgstr "Переписка з розпорядником інформації триває:"
+msgid "This request requires administrator attention"
+msgstr "Цей запит вимагає уваги адміністратора"
+
msgid "This request was not made via {{site_name}}"
msgstr "Цей запит не було зроблено через сайт {{site_name}}"
-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."
+msgid "This response has been hidden. See annotations to find out why.\\n If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
"Цю відповідь було приховано. Ознайомтесь з коментарями, щоб з’ясувати, чому це сталось.\n"
-" Якщо ви автор запиту, <a href=\"%s\">увійдіть в систему</a>, щоб переглянути відповідь."
+" Якщо ви автор запиту, <a href=\"{{url}}\">увійдіть в систему</a>, щоб переглянути відповідь."
msgid "This table shows the technical details of the internal events that happened\\nto this request on {{site_name}}. This could be used to generate information about\\nthe speed with which authorities respond to requests, the number of requests\\nwhich require a postal response and much more."
msgstr ""
@@ -2505,7 +2583,7 @@ msgid "To help us keep the site tidy, someone else has updated the status of the
msgstr "Для впорядкування сайту хтось інший змінив статус вашого запиту {{title}} на \"{{display_status}}\". Якщо ви не погоджуєтесь з таким рішенням, змініть статус ще раз самостійно на більш підходящий. "
msgid "To let everyone know, follow this link and then select the appropriate box."
-msgstr ""
+msgstr "Щоб повідомити всіх, пройдіть за цим посиланням."
msgid "To log into the administrative interface"
msgstr "Щоб залогінитись в адміністративний інтерфейс"
@@ -2520,7 +2598,7 @@ msgid "To reply to "
msgstr "Щоб відповісти розпоряднику інформації "
msgid "To report this FOI request"
-msgstr ""
+msgstr "Щоб повідомити адміністратору про цей запит"
msgid "To send a follow up message to "
msgstr "Щоб надіслати додаткове повідомлення до "
@@ -2583,7 +2661,7 @@ msgid "Turn off email alerts"
msgstr "Відключити сповіщення на електронну пошту"
msgid "Tweet this request"
-msgstr ""
+msgstr "Твітніть цей запит"
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 ""
@@ -2606,7 +2684,7 @@ msgstr "Неочікуваний результат пошуку"
msgid "Unexpected search result type "
msgstr "Неочікуваний результат пошуку"
-msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"%s\">contact us</a> to sort it out."
+msgid "Unfortunately we don't know the FOI\\nemail address for that authority, so we can't validate this.\\nPlease <a href=\"{{url}}\">contact us</a> to sort it out."
msgstr ""
msgid "Unfortunately, we do not have a working {{info_request_law_used_full}}\\naddress for"
@@ -2616,7 +2694,7 @@ msgid "Unknown"
msgstr ""
msgid "Unsubscribe"
-msgstr ""
+msgstr "Відписатися"
msgid "Unusual response."
msgstr "Незвичайна відповідь."
@@ -2642,14 +2720,17 @@ msgstr "Користувач"
msgid "User info request sent alert"
msgstr ""
+msgid "User – {{name}}"
+msgstr "Користувач - {{name}}"
+
msgid "UserInfoRequestSentAlert|Alert type"
msgstr ""
msgid "User|About me"
-msgstr ""
+msgstr "Користувач|Про мене"
msgid "User|Address"
-msgstr ""
+msgstr "Користувач|Адреса"
msgid "User|Admin level"
msgstr ""
@@ -2661,7 +2742,7 @@ msgid "User|Dob"
msgstr ""
msgid "User|Email"
-msgstr ""
+msgstr "Користувач|Мейл"
msgid "User|Email bounce message"
msgstr ""
@@ -2696,6 +2777,9 @@ msgstr ""
msgid "User|Url name"
msgstr ""
+msgid "Version {{version}}"
+msgstr "Версія {{version}}"
+
msgid "View FOI email address"
msgstr ""
@@ -2727,7 +2811,7 @@ msgid "Waiting for an <strong>internal review</strong> by {{public_body_link}} o
msgstr ""
msgid "Waiting for the public authority to complete an internal review of their handling of the request"
-msgstr "В очікування завершення внутрішньої перевірки."
+msgstr "В очікуванні завершення внутрішньої перевірки."
msgid "Waiting for the public authority to reply"
msgstr "В очікуванні відповіді від розпорядника інформації"
@@ -2735,6 +2819,12 @@ msgstr "В очікуванні відповіді від розпорядник
msgid "Was the response you got to your FOI request any good?"
msgstr "Чи була відповідь на ваш запит корисною для вас?"
+msgid "We consider it is not a valid FOI request, and have therefore hidden it from other users."
+msgstr ""
+
+msgid "We consider it to be vexatious, and have therefore hidden it from other users."
+msgstr ""
+
msgid "We do not have a working request email address for this authority."
msgstr "У нас нема електронної адреси цього органу."
@@ -2742,12 +2832,12 @@ msgid "We do not have a working {{law_used_full}} address for {{public_body_name
msgstr "У нас нема адреси цього розпорядника інформації."
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=\"{{url}}\">sign in</a> and let everyone know."
-msgstr ""
+msgstr "Нам невідомо, чи відповідь на цей запит була інформативною.\\nЯкщо ви {{user_link}}, будь ласка, <a href=\"{{url}}\">авторизуйтесь</a> і вкажіть, наскільки успішним був запит."
-msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"%s\">details</a>). "
+msgid "We will not reveal your email address to anybody unless you or\\n the law tell us to (<a href=\"{{url}}\">details</a>). "
msgstr ""
"Ми не передамо вашу адресу нікому, якщо нас до цього не спонукаєте\n"
-"ви або законодавство (<a href=\"%s\">деталі</a>)."
+"ви або законодавство (<a href=\"{{url}}\">деталі</a>)."
msgid "We will not reveal your email address to anybody unless you\\nor the law tell us to."
msgstr ""
@@ -2766,7 +2856,7 @@ msgid "We're waiting for someone to read"
msgstr "Ми очікуємо, що хтось прочитає"
msgid "We've sent an email to your new email address. You'll need to click the link in\\nit before your email address will be changed."
-msgstr ""
+msgstr "Ми відправили листа на вашу нову адресу. Ви повинні пройти за посиланням в ньому,щоб змінити адресу."
msgid "We've sent you an email, and you'll need to click the link in it before you can\\ncontinue."
msgstr "Ми відправили вам листа і ви маєте натиснути посилання в ньому, щоб закінчити реєстрацію."
@@ -2781,10 +2871,10 @@ msgid "What best describes the status of this request now?"
msgstr "Яким є стан цього запиту зараз?"
msgid "What information has been released?"
-msgstr "Яку інформацію було оприлюднено?"
+msgstr "Яку інформацію було оприлюднено завдяки запитам?"
msgid "What information has been requested?"
-msgstr ""
+msgstr "Приклади запитів, надісланих через цей сайт"
msgid "When you get there, please update the status to say if the response \\ncontains any useful information."
msgstr ""
@@ -2794,8 +2884,8 @@ msgstr ""
msgid "When you receive the paper response, please help\\n others find out what it says:"
msgstr ""
-msgid "When you're done, <strong>come back here</strong>, <a href=\"%s\">reload this page</a> and file your new request."
-msgstr ""
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
+msgstr "Коли ви закінчите, <strong>поверніться сюди</strong>, <a href=\"{{url}}\">перезавантажте сторінку</a> та зробіть новий запит."
msgid "Which of these is happening?"
msgstr "Що відбувається?"
@@ -2876,7 +2966,7 @@ msgid "You have found a bug. Please <a href=\"{{contact_url}}\">contact us</a>
msgstr "Ви натрапили на баг. Будь ласка, <a href=\"{{contact_url}}\">напишіть нам</a> про цю проблему"
msgid "You have hit the rate limit on new requests. Users are ordinarily limited to {{max_requests_per_user_per_day}} requests in any rolling 24-hour period. You will be able to make another request in {{can_make_another_request}}."
-msgstr ""
+msgstr "Ви перевищили кількість дозволених запитів. Користувачі не можуть надсилати більш ніж{{max_requests_per_user_per_day}} запитів протягом 24 годин."
msgid "You have made no Freedom of Information requests using this site."
msgstr "Ви не зробили жодного запиту через цей сайт."
@@ -2903,11 +2993,11 @@ msgstr ""
"Ви можете прикріпити до листа файл. Якщо він надто великий для електронної пошти,\n"
" скористайтеся формою нижче."
-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 ""
+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=\"{{url}}\">send it to us</a>."
+msgstr "Якщо вона вам відома, <a href=\"{{url}}\">повідомте її нам</a>, будь ласка."
msgid "You may be able to find\\none on their website, or by phoning them up and asking. If you manage\\nto find one, then please <a href=\"{{help_url}}\">send it to us</a>."
-msgstr ""
+msgstr "Якщо вона вам відома, <a href=\"%s\">повідомте її нам</a>, будь ласка."
msgid "You need to be logged in to change the text about you on your profile."
msgstr "Ви маєте увійти в систему, щоб мати можливість змінити інформацію про себе в профілі."
@@ -2916,13 +3006,13 @@ msgid "You need to be logged in to change your profile photo."
msgstr "Ви маєте увійти в систему, щоб мати можливість змінити фото в профілі."
msgid "You need to be logged in to clear your profile photo."
-msgstr ""
+msgstr "Ви маєте бути авторизовані для цього."
msgid "You need to be logged in to edit your profile."
msgstr "Ви маєте увійти в систему, щоб мати можливість редагувати свій профіль."
msgid "You previously submitted that exact follow up message for this request."
-msgstr "Ви вже надіслали точно таке саме додаткове повідомлення для цього запиту."
+msgstr "Ви вже надіслали точно таке ж додаткове повідомлення для цього запиту."
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 ""
@@ -2940,7 +3030,7 @@ msgstr ""
"встановлювати сповіщення."
msgid "You will no longer be emailed updates for those alerts"
-msgstr ""
+msgstr "Ви більше не отримуватимете цих сповіщень"
msgid "You will now be emailed updates about {{track_description}}. <a href=\"{{change_email_alerts_url}}\">Prefer not to receive emails?</a>"
msgstr "Ви отримуватимете листи з оновленнями щодо {{track_description}}.<a href=\"{{change_email_alerts_url}}\">Натисніть тут, якщо не хочете їх отримувати.</a>"
@@ -2950,6 +3040,9 @@ msgstr ""
"Ви отримаєте відповідь на свій запит, тільки якщо надішлете\n"
"уточнення щодо нього."
+msgid "You will still be able to view it while logged in to the site. Please reply to this email if you would like to discuss this decision further."
+msgstr ""
+
msgid "You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>"
msgstr ""
@@ -2960,39 +3053,27 @@ msgid "You're not following anything."
msgstr "Ви нічого не відслідковуєте"
msgid "You've now cleared your profile photo"
-msgstr ""
-
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr "Ви видалили свою фотографію"
-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>."
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
msgstr ""
"Ваше <strong>ім’я з’явиться в публічному доступі</strong> \n"
-" (<a href=\"%s\">чому?</a>)\n"
+" (<a href=\"{{why_url}}\">чому?</a>)\n"
" на цьому сайті та в пошукових системах. Якщо ви\n"
" збираєтесь використати псевдонім, \n"
-" <a href=\"%s\">прочитайте спершу це</a>."
+" <a href=\"{{help_url}}\">прочитайте спершу це</a>."
msgid "Your annotations"
msgstr "Ваші коментарі"
msgid "Your details, including your email address, have not been given to anyone."
-msgstr ""
+msgstr "Інформація про вас не була передана нікому."
msgid "Your e-mail:"
msgstr "Електронна адреса:"
-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 ""
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
+msgstr "Ваше повідомлення не було надіслано, тому що цей запит не пройшов спам-фільтр."
msgid "Your follow up message has been sent on its way."
msgstr "Ваш додатковий лист надіслано."
@@ -3015,10 +3096,10 @@ msgstr "Ваше повідомлення з’явиться в пошуков
msgid "Your name and annotation will appear in <strong>search engines</strong>."
msgstr "Ваше ім’я та коментарі з’являться у <strong>пошукових системах</strong>."
-msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"%s\">details</a>)."
+msgid "Your name, request and any responses will appear in <strong>search engines</strong>\\n (<a href=\"{{url}}\">details</a>)."
msgstr ""
"Ваше ім’я, запит та будь-які відповіді з’являться в пошукових системах\n"
-" (<a href=\"%s\">деталі</a>)."
+" (<a href=\"{{url}}\">деталі</a>)."
msgid "Your name:"
msgstr "Ваше ім’я:"
@@ -3035,6 +3116,12 @@ msgstr "Ваш пароль:"
msgid "Your photo will be shown in public <strong>on the Internet</strong>,\\n wherever you do something on {{site_name}}."
msgstr "Ваше фото з’явиться в загальному доступі в інтернеті."
+msgid "Your request '{{request}}' at {{url}} has been reviewed by moderators."
+msgstr ""
+
+msgid "Your request on {{site_name}} hidden"
+msgstr ""
+
msgid "Your request was called {{info_request}}. Letting everyone know whether you got the information will help us keep tabs on"
msgstr ""
@@ -3042,13 +3129,25 @@ msgid "Your request:"
msgstr "Ваш запит"
msgid "Your response to an FOI request was not delivered"
-msgstr ""
+msgstr "Ваша відповідь на запит не була доставлена"
-msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"%s\">read why</a> and answers to other questions."
-msgstr "Ваша відповідь <strong>з’явиться в інтернеті</strong> <a href=\"%s\">(чому?)</a>"
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
+msgstr "Ваша відповідь <strong>з’явиться в інтернеті</strong> <a href=\"{{url}}\">(чому?)</a>"
msgid "Your thoughts on what the {{site_name}} <strong>administrators</strong> should do about the request."
-msgstr ""
+msgstr "Ваші міркування щодо того, що адміністратори сайту мають зробити з цим запитом."
+
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
+msgstr[0] "Ваш запит"
+msgstr[1] "Ваші {{count}} запити"
+msgstr[2] "Ваші {{count}} запитів"
+
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
+msgstr[0] "Ваш коментар"
+msgstr[1] "Ваші {{count}} коментарі"
+msgstr[2] "Ваші {{count}} коментарів"
msgid "Your {{site_name}} email alert"
msgstr ""
@@ -3059,6 +3158,9 @@ msgstr "З повагою,"
msgid "Yours sincerely,"
msgstr "З повагою,"
+msgid "Yours,"
+msgstr ""
+
msgid "[FOI #{{request}} email]"
msgstr ""
@@ -3079,6 +3181,9 @@ msgstr ""
msgid "admin"
msgstr ""
+msgid "alaveteli_foi:The software that runs {{site_name}}"
+msgstr ""
+
msgid "all requests"
msgstr "усі запити"
@@ -3092,7 +3197,7 @@ msgid "and"
msgstr "і"
msgid "and update the status accordingly. Perhaps <strong>you</strong> might like to help out by doing that?"
-msgstr ""
+msgstr "та оновить статус запиту. Можливо, це зробите ви?"
msgid "and update the status."
msgstr ""
@@ -3112,6 +3217,9 @@ msgstr ""
msgid "are long overdue."
msgstr "прострочені."
+msgid "at"
+msgstr ""
+
msgid "authorities"
msgstr ""
@@ -3124,6 +3232,9 @@ msgstr ""
msgid "between two dates"
msgstr "між двома датами"
+msgid "but followupable"
+msgstr ""
+
msgid "by"
msgstr ""
@@ -3205,15 +3316,21 @@ msgstr "повідомлення від органів влади"
msgid "messages from users"
msgstr "повідомлення від користувачів"
+msgid "move..."
+msgstr ""
+
msgid "no later than"
msgstr "не пізніше, ніж"
-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>."
+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=\"{{url}}\">send it to us</a>."
msgstr ""
msgid "normally"
msgstr "зазвичай"
+msgid "not requestable due to: {{reason}}"
+msgstr ""
+
msgid "please sign in as "
msgstr "будь ласка, увійдіть як "
@@ -3235,6 +3352,9 @@ msgstr ""
msgid "sent to {{public_body_name}} by {{info_request_user}} on {{date}}."
msgstr ""
+msgid "set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA"
+msgstr ""
+
msgid "show quoted sections"
msgstr ""
@@ -3256,8 +3376,13 @@ msgstr "зроблений вам до такого розпорядника і
msgid "the main FOI contact address for {{public_body}}"
msgstr "основна адреса для інформаційних запитів до розпорядника '{{public_body}}'"
+#. This phrase completes the following sentences:
+#. Request an internal review from...
+#. Send a public follow up message to...
+#. Send a public reply to...
+#. Don't want to address your message to... ?
msgid "the main FOI contact at {{public_body}}"
-msgstr "на адресу {{public_body}}"
+msgstr "{{public_body}}"
msgid "the requester"
msgstr "автор запиту"
@@ -3304,11 +3429,38 @@ msgstr ""
msgid "users"
msgstr ""
+msgid "what's that?"
+msgstr "що це?"
+
msgid "{{count}} FOI requests found"
msgstr "Знайдено таку кількість запитів: {{count}}"
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] "{{count}} інформаційний запит до {{public_body_name}}"
+msgstr[1] "{{count}} інформаційні запити до {{public_body_name}}"
+msgstr[2] "{{count}} інформаційних запитів до {{public_body_name}}"
+
+msgid "{{count}} person is following this authority"
+msgid_plural "{{count}} people are following this authority"
+msgstr[0] "{{count}} одна особа відслідковує цього розпорядника"
+msgstr[1] "{{count}} особи відслідковують цього розпорядника"
+msgstr[2] "{{count}} осіб відслідковують цього розпорядника"
+
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
+msgstr[0] "{{count}} запит"
+msgstr[1] "{{count}} запити"
+msgstr[2] "{{count}} запитів"
+
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
+msgstr[0] "{{count}} запит зроблено"
+msgstr[1] "{{count}} запити зроблено"
+msgstr[2] "{{count}} запитів зроблено"
+
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 ""
+msgstr "Точно такий самий запит вже створено ({{date}}). Ви можете <a href=\"{{existing_request}}\">переглянути його</a> або створити подібний."
msgid "{{info_request_user_name}} only:"
msgstr "Тільки {{info_request_user_name}}:"
@@ -3335,7 +3487,7 @@ msgid "{{public_body_link}} answered a request about"
msgstr ""
msgid "{{public_body_link}} was sent a request about"
-msgstr ""
+msgstr "Розпоряднику інформації {{public_body_link}} було надіслано запит "
msgid "{{public_body_name}} only:"
msgstr "Тільки {{public_body_name}}:"
@@ -3347,13 +3499,13 @@ msgid "{{public_body}} sent a response to {{user_name}}"
msgstr "{{public_body}} відповів(-ла) користувачу {{user_name}}"
msgid "{{reason}}, please sign in or make a new account."
-msgstr ""
+msgstr "{{reason}}, будь ласка, увійдіть або авторизуйтесь."
msgid "{{search_results}} matching '{{query}}'"
msgstr "{{search_results}}, що відповідають пошуку '{{query}}'"
msgid "{{site_name}} blog and tweets"
-msgstr ""
+msgstr "блог та твіти сайту {{site_name}}"
msgid "{{site_name}} covers requests to {{number_of_authorities}} authorities, including:"
msgstr ""
@@ -3364,6 +3516,9 @@ msgstr ""
msgid "{{site_name}} users have made {{number_of_requests}} requests, including:"
msgstr "Користувачі сайту {{site_name}} зробили таку кількість запитів: {{number_of_requests}}, зокрема:"
+msgid "{{thing_changed}} was changed from <code>{{from_value}}</code> to <code>{{to_value}}</code>"
+msgstr ""
+
msgid "{{title}} - a Freedom of Information request to {{public_body}}"
msgstr "{{title}} - запит до: {{public_body}}"
diff --git a/public/404.html b/public/404.html
index eff660b90..9a48320a5 100644
--- a/public/404.html
+++ b/public/404.html
@@ -1,23 +1,19 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-
+<!DOCTYPE html>
+<html>
<head>
- <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>The page you were looking for doesn't exist (404)</title>
- <style type="text/css">
- body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
- div.dialog {
- width: 25em;
- padding: 0 4em;
- margin: 4em auto 0 auto;
- border: 1px solid #ccc;
- border-right-color: #999;
- border-bottom-color: #999;
- }
- h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
- </style>
+ <style type="text/css">
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
+ div.dialog {
+ width: 25em;
+ padding: 0 4em;
+ margin: 4em auto 0 auto;
+ border: 1px solid #ccc;
+ border-right-color: #999;
+ border-bottom-color: #999;
+ }
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
+ </style>
</head>
<body>
@@ -27,4 +23,4 @@
<p>You may have mistyped the address or the page may have moved.</p>
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/public/422.html b/public/422.html
new file mode 100644
index 000000000..83660ab18
--- /dev/null
+++ b/public/422.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>The change you wanted was rejected (422)</title>
+ <style type="text/css">
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
+ div.dialog {
+ width: 25em;
+ padding: 0 4em;
+ margin: 4em auto 0 auto;
+ border: 1px solid #ccc;
+ border-right-color: #999;
+ border-bottom-color: #999;
+ }
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
+ </style>
+</head>
+
+<body>
+ <!-- This file lives in public/422.html -->
+ <div class="dialog">
+ <h1>The change you wanted was rejected.</h1>
+ <p>Maybe you tried to change something you didn't have access to.</p>
+ </div>
+</body>
+</html>
diff --git a/public/500.html b/public/500.html
index f0aee0e9f..b80307fc1 100644
--- a/public/500.html
+++ b/public/500.html
@@ -1,23 +1,19 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-
+<!DOCTYPE html>
+<html>
<head>
- <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
- <title>We're sorry, but something went wrong</title>
- <style type="text/css">
- body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
- div.dialog {
- width: 25em;
- padding: 0 4em;
- margin: 4em auto 0 auto;
- border: 1px solid #ccc;
- border-right-color: #999;
- border-bottom-color: #999;
- }
- h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
- </style>
+ <title>We're sorry, but something went wrong (500)</title>
+ <style type="text/css">
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
+ div.dialog {
+ width: 25em;
+ padding: 0 4em;
+ margin: 4em auto 0 auto;
+ border: 1px solid #ccc;
+ border-right-color: #999;
+ border-bottom-color: #999;
+ }
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
+ </style>
</head>
<body>
@@ -27,4 +23,4 @@
<p>We've been notified about this issue and we'll take a look at it shortly.</p>
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/public/dispatch.cgi b/public/dispatch.cgi
deleted file mode 100755
index 3848806db..000000000
--- a/public/dispatch.cgi
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/ruby1.8
-
-require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT)
-
-# If you're using RubyGems and mod_ruby, this require should be changed to an absolute path one, like:
-# "/usr/local/lib/ruby/gems/1.8/gems/rails-0.8.0/lib/dispatcher" -- otherwise performance is severely impaired
-require "dispatcher"
-
-ADDITIONAL_LOAD_PATHS.reverse.each { |dir| $:.unshift(dir) if File.directory?(dir) } if defined?(Apache::RubyRun)
-Dispatcher.dispatch \ No newline at end of file
diff --git a/public/dispatch.fcgi b/public/dispatch.fcgi
deleted file mode 100755
index ad34d90e4..000000000
--- a/public/dispatch.fcgi
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/ruby1.8
-#
-# You may specify the path to the FastCGI crash log (a log of unhandled
-# exceptions which forced the FastCGI instance to exit, great for debugging)
-# and the number of requests to process before running garbage collection.
-#
-# By default, the FastCGI crash log is Rails.root/log/fastcgi.crash.log
-# and the GC period is nil (turned off). A reasonable number of requests
-# could range from 10-100 depending on the memory footprint of your app.
-#
-# Example:
-# # Default log path, normal GC behavior.
-# RailsFCGIHandler.process!
-#
-# # Default log path, 50 requests between GC.
-# RailsFCGIHandler.process! nil, 50
-#
-# # Custom log path, normal GC behavior.
-# RailsFCGIHandler.process! '/var/log/myapp_fcgi_crash.log'
-#
-require File.dirname(__FILE__) + "/../config/environment"
-require 'fcgi_handler'
-
-RailsFCGIHandler.process!
diff --git a/public/dispatch.rb b/public/dispatch.rb
deleted file mode 100755
index 3848806db..000000000
--- a/public/dispatch.rb
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/ruby1.8
-
-require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT)
-
-# If you're using RubyGems and mod_ruby, this require should be changed to an absolute path one, like:
-# "/usr/local/lib/ruby/gems/1.8/gems/rails-0.8.0/lib/dispatcher" -- otherwise performance is severely impaired
-require "dispatcher"
-
-ADDITIONAL_LOAD_PATHS.reverse.each { |dir| $:.unshift(dir) if File.directory?(dir) } if defined?(Apache::RubyRun)
-Dispatcher.dispatch \ No newline at end of file
diff --git a/public/javascripts/controls.js b/public/javascripts/controls.js
index 5aaf0bb2b..7392fb664 100644
--- a/public/javascripts/controls.js
+++ b/public/javascripts/controls.js
@@ -1,22 +1,24 @@
-// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
-// (c) 2005-2007 Ivan Krstic (http://blogs.law.harvard.edu/ivan)
-// (c) 2005-2007 Jon Tirsen (http://www.tirsen.com)
+// script.aculo.us controls.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009
+
+// Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
+// (c) 2005-2009 Ivan Krstic (http://blogs.law.harvard.edu/ivan)
+// (c) 2005-2009 Jon Tirsen (http://www.tirsen.com)
// Contributors:
// Richard Livsey
// Rahul Bhargava
// Rob Wills
-//
+//
// script.aculo.us is freely distributable under the terms of an MIT-style license.
// For details, see the script.aculo.us web site: http://script.aculo.us/
-// Autocompleter.Base handles all the autocompletion functionality
+// Autocompleter.Base handles all the autocompletion functionality
// that's independent of the data source for autocompletion. This
// includes drawing the autocompletion menu, observing keyboard
// and mouse events, and similar.
//
-// Specific autocompleters need to provide, at the very least,
+// Specific autocompleters need to provide, at the very least,
// a getUpdatedChoices function that will be invoked every time
-// the text inside the monitored textbox changes. This method
+// the text inside the monitored textbox changes. This method
// should get the text for which to provide autocompletion by
// invoking this.getToken(), NOT by directly accessing
// this.element.value. This is to allow incremental tokenized
@@ -30,23 +32,23 @@
// will incrementally autocomplete with a comma as the token.
// Additionally, ',' in the above example can be replaced with
// a token array, e.g. { tokens: [',', '\n'] } which
-// enables autocompletion on multiple tokens. This is most
-// useful when one of the tokens is \n (a newline), as it
+// enables autocompletion on multiple tokens. This is most
+// useful when one of the tokens is \n (a newline), as it
// allows smart autocompletion after linebreaks.
if(typeof Effect == 'undefined')
throw("controls.js requires including script.aculo.us' effects.js library");
-var Autocompleter = { }
+var Autocompleter = { };
Autocompleter.Base = Class.create({
baseInitialize: function(element, update, options) {
- element = $(element)
- this.element = element;
- this.update = $(update);
- this.hasFocus = false;
- this.changed = false;
- this.active = false;
- this.index = 0;
+ element = $(element);
+ this.element = element;
+ this.update = $(update);
+ this.hasFocus = false;
+ this.changed = false;
+ this.active = false;
+ this.index = 0;
this.entryCount = 0;
this.oldElementValue = this.element.value;
@@ -59,28 +61,28 @@ Autocompleter.Base = Class.create({
this.options.tokens = this.options.tokens || [];
this.options.frequency = this.options.frequency || 0.4;
this.options.minChars = this.options.minChars || 1;
- this.options.onShow = this.options.onShow ||
- function(element, update){
+ this.options.onShow = this.options.onShow ||
+ function(element, update){
if(!update.style.position || update.style.position=='absolute') {
update.style.position = 'absolute';
Position.clone(element, update, {
- setHeight: false,
+ setHeight: false,
offsetTop: element.offsetHeight
});
}
Effect.Appear(update,{duration:0.15});
};
- this.options.onHide = this.options.onHide ||
+ this.options.onHide = this.options.onHide ||
function(element, update){ new Effect.Fade(update,{duration:0.15}) };
- if(typeof(this.options.tokens) == 'string')
+ if(typeof(this.options.tokens) == 'string')
this.options.tokens = new Array(this.options.tokens);
// Force carriage returns as token delimiters anyway
if (!this.options.tokens.include('\n'))
this.options.tokens.push('\n');
this.observer = null;
-
+
this.element.setAttribute('autocomplete','off');
Element.hide(this.update);
@@ -91,10 +93,10 @@ Autocompleter.Base = Class.create({
show: function() {
if(Element.getStyle(this.update, 'display')=='none') this.options.onShow(this.element, this.update);
- if(!this.iefix &&
+ if(!this.iefix &&
(Prototype.Browser.IE) &&
(Element.getStyle(this.update, 'position')=='absolute')) {
- new Insertion.After(this.update,
+ new Insertion.After(this.update,
'<iframe id="' + this.update.id + '_iefix" '+
'style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" ' +
'src="javascript:false;" frameborder="0" scrolling="no"></iframe>');
@@ -102,7 +104,7 @@ Autocompleter.Base = Class.create({
}
if(this.iefix) setTimeout(this.fixIEOverlapping.bind(this), 50);
},
-
+
fixIEOverlapping: function() {
Position.clone(this.update, this.iefix, {setTop:(!this.update.style.height)});
this.iefix.style.zIndex = 1;
@@ -150,15 +152,15 @@ Autocompleter.Base = Class.create({
Event.stop(event);
return;
}
- else
- if(event.keyCode==Event.KEY_TAB || event.keyCode==Event.KEY_RETURN ||
+ else
+ if(event.keyCode==Event.KEY_TAB || event.keyCode==Event.KEY_RETURN ||
(Prototype.Browser.WebKit > 0 && event.keyCode == 0)) return;
this.changed = true;
this.hasFocus = true;
if(this.observer) clearTimeout(this.observer);
- this.observer =
+ this.observer =
setTimeout(this.onObserverEvent.bind(this), this.options.frequency*1000);
},
@@ -170,35 +172,35 @@ Autocompleter.Base = Class.create({
onHover: function(event) {
var element = Event.findElement(event, 'LI');
- if(this.index != element.autocompleteIndex)
+ if(this.index != element.autocompleteIndex)
{
this.index = element.autocompleteIndex;
this.render();
}
Event.stop(event);
},
-
+
onClick: function(event) {
var element = Event.findElement(event, 'LI');
this.index = element.autocompleteIndex;
this.selectEntry();
this.hide();
},
-
+
onBlur: function(event) {
// needed to make click events working
setTimeout(this.hide.bind(this), 250);
this.hasFocus = false;
- this.active = false;
- },
-
+ this.active = false;
+ },
+
render: function() {
if(this.entryCount > 0) {
for (var i = 0; i < this.entryCount; i++)
- this.index==i ?
- Element.addClassName(this.getEntry(i),"selected") :
+ this.index==i ?
+ Element.addClassName(this.getEntry(i),"selected") :
Element.removeClassName(this.getEntry(i),"selected");
- if(this.hasFocus) {
+ if(this.hasFocus) {
this.show();
this.active = true;
}
@@ -207,27 +209,27 @@ Autocompleter.Base = Class.create({
this.hide();
}
},
-
+
markPrevious: function() {
- if(this.index > 0) this.index--
+ if(this.index > 0) this.index--;
else this.index = this.entryCount-1;
this.getEntry(this.index).scrollIntoView(true);
},
-
+
markNext: function() {
- if(this.index < this.entryCount-1) this.index++
+ if(this.index < this.entryCount-1) this.index++;
else this.index = 0;
this.getEntry(this.index).scrollIntoView(false);
},
-
+
getEntry: function(index) {
return this.update.firstChild.childNodes[index];
},
-
+
getCurrentEntry: function() {
return this.getEntry(this.index);
},
-
+
selectEntry: function() {
this.active = false;
this.updateElement(this.getCurrentEntry());
@@ -244,7 +246,7 @@ Autocompleter.Base = Class.create({
if(nodes.length>0) value = Element.collectTextNodes(nodes[0], this.options.select);
} else
value = Element.collectTextNodesIgnoreClass(selectedElement, 'informal');
-
+
var bounds = this.getTokenBounds();
if (bounds[0] != -1) {
var newValue = this.element.value.substr(0, bounds[0]);
@@ -257,7 +259,7 @@ Autocompleter.Base = Class.create({
}
this.oldElementValue = this.element.value;
this.element.focus();
-
+
if (this.options.afterUpdateElement)
this.options.afterUpdateElement(this.element, selectedElement);
},
@@ -269,20 +271,20 @@ Autocompleter.Base = Class.create({
Element.cleanWhitespace(this.update.down());
if(this.update.firstChild && this.update.down().childNodes) {
- this.entryCount =
+ this.entryCount =
this.update.down().childNodes.length;
for (var i = 0; i < this.entryCount; i++) {
var entry = this.getEntry(i);
entry.autocompleteIndex = i;
this.addObservers(entry);
}
- } else {
+ } else {
this.entryCount = 0;
}
this.stopIndicator();
this.index = 0;
-
+
if(this.entryCount==1 && this.options.autoSelect) {
this.selectEntry();
this.hide();
@@ -298,7 +300,7 @@ Autocompleter.Base = Class.create({
},
onObserverEvent: function() {
- this.changed = false;
+ this.changed = false;
this.tokenBounds = null;
if(this.getToken().length>=this.options.minChars) {
this.getUpdatedChoices();
@@ -351,16 +353,16 @@ Ajax.Autocompleter = Class.create(Autocompleter.Base, {
getUpdatedChoices: function() {
this.startIndicator();
-
- var entry = encodeURIComponent(this.options.paramName) + '=' +
+
+ var entry = encodeURIComponent(this.options.paramName) + '=' +
encodeURIComponent(this.getToken());
this.options.parameters = this.options.callback ?
this.options.callback(this.element, entry) : entry;
- if(this.options.defaultParams)
+ if(this.options.defaultParams)
this.options.parameters += '&' + this.options.defaultParams;
-
+
new Ajax.Request(this.url, this.options);
},
@@ -382,7 +384,7 @@ Ajax.Autocompleter = Class.create(Autocompleter.Base, {
// - choices - How many autocompletion choices to offer
//
// - partialSearch - If false, the autocompleter will match entered
-// text only at the beginning of strings in the
+// text only at the beginning of strings in the
// autocomplete array. Defaults to true, which will
// match text at the beginning of any *word* in the
// strings in the autocomplete array. If you want to
@@ -399,7 +401,7 @@ Ajax.Autocompleter = Class.create(Autocompleter.Base, {
// - ignoreCase - Whether to ignore case when autocompleting.
// Defaults to true.
//
-// It's possible to pass in a custom function as the 'selector'
+// It's possible to pass in a custom function as the 'selector'
// option, if you prefer to write your own autocompletion logic.
// In that case, the other options above will not apply unless
// you support them.
@@ -427,20 +429,20 @@ Autocompleter.Local = Class.create(Autocompleter.Base, {
var entry = instance.getToken();
var count = 0;
- for (var i = 0; i < instance.options.array.length &&
- ret.length < instance.options.choices ; i++) {
+ for (var i = 0; i < instance.options.array.length &&
+ ret.length < instance.options.choices ; i++) {
var elem = instance.options.array[i];
- var foundPos = instance.options.ignoreCase ?
- elem.toLowerCase().indexOf(entry.toLowerCase()) :
+ var foundPos = instance.options.ignoreCase ?
+ elem.toLowerCase().indexOf(entry.toLowerCase()) :
elem.indexOf(entry);
while (foundPos != -1) {
- if (foundPos == 0 && elem.length != entry.length) {
- ret.push("<li><strong>" + elem.substr(0, entry.length) + "</strong>" +
+ if (foundPos == 0 && elem.length != entry.length) {
+ ret.push("<li><strong>" + elem.substr(0, entry.length) + "</strong>" +
elem.substr(entry.length) + "</li>");
break;
- } else if (entry.length >= instance.options.partialChars &&
+ } else if (entry.length >= instance.options.partialChars &&
instance.options.partialSearch && foundPos != -1) {
if (instance.options.fullSearch || /\s/.test(elem.substr(foundPos-1,1))) {
partial.push("<li>" + elem.substr(0, foundPos) + "<strong>" +
@@ -450,14 +452,14 @@ Autocompleter.Local = Class.create(Autocompleter.Base, {
}
}
- foundPos = instance.options.ignoreCase ?
- elem.toLowerCase().indexOf(entry.toLowerCase(), foundPos + 1) :
+ foundPos = instance.options.ignoreCase ?
+ elem.toLowerCase().indexOf(entry.toLowerCase(), foundPos + 1) :
elem.indexOf(entry, foundPos + 1);
}
}
if (partial.length)
- ret = ret.concat(partial.slice(0, instance.options.choices - ret.length))
+ ret = ret.concat(partial.slice(0, instance.options.choices - ret.length));
return "<ul>" + ret.join('') + "</ul>";
}
}, options || { });
@@ -474,7 +476,7 @@ Field.scrollFreeActivate = function(field) {
setTimeout(function() {
Field.activate(field);
}, 1);
-}
+};
Ajax.InPlaceEditor = Class.create({
initialize: function(element, url, options) {
@@ -604,7 +606,7 @@ Ajax.InPlaceEditor = Class.create({
this.triggerCallback('onEnterHover');
},
getText: function() {
- return this.element.innerHTML;
+ return this.element.innerHTML.unescapeHTML();
},
handleAJAXFailure: function(transport) {
this.triggerCallback('onFailure', transport);
@@ -780,7 +782,7 @@ Ajax.InPlaceCollectionEditor = Class.create(Ajax.InPlaceEditor, {
onSuccess: function(transport) {
var js = transport.responseText.strip();
if (!/^\[.*\]$/.test(js)) // TODO: improve sanity check
- throw 'Server returned an invalid collection representation.';
+ throw('Server returned an invalid collection representation.');
this._collection = eval(js);
this.checkForExternalText();
}.bind(this),
@@ -937,7 +939,7 @@ Ajax.InPlaceCollectionEditor.DefaultOptions = {
loadingCollectionText: 'Loading options...'
};
-// Delayed observer, like Form.Element.Observer,
+// Delayed observer, like Form.Element.Observer,
// but waits for delay after last key input
// Ideal for live-search fields
@@ -947,7 +949,7 @@ Form.Element.DelayedObserver = Class.create({
this.element = $(element);
this.callback = callback;
this.timer = null;
- this.lastValue = $F(this.element);
+ this.lastValue = $F(this.element);
Event.observe(this.element,'keyup',this.delayedListener.bindAsEventListener(this));
},
delayedListener: function(event) {
@@ -960,4 +962,4 @@ Form.Element.DelayedObserver = Class.create({
this.timer = null;
this.callback(this.element, $F(this.element));
}
-});
+}); \ No newline at end of file
diff --git a/public/javascripts/dragdrop.js b/public/javascripts/dragdrop.js
index bf5cfea66..15c6dbca6 100644
--- a/public/javascripts/dragdrop.js
+++ b/public/javascripts/dragdrop.js
@@ -1,6 +1,7 @@
-// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
-// (c) 2005-2007 Sammi Williams (http://www.oriontransfer.co.nz, sammi@oriontransfer.co.nz)
-//
+// script.aculo.us dragdrop.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009
+
+// Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
+//
// script.aculo.us is freely distributable under the terms of an MIT-style license.
// For details, see the script.aculo.us web site: http://script.aculo.us/
@@ -32,7 +33,7 @@ var Droppables = {
options._containers.push($(containment));
}
}
-
+
if(options.accept) options.accept = [options.accept].flatten();
Element.makePositioned(element); // fix IE
@@ -40,34 +41,34 @@ var Droppables = {
this.drops.push(options);
},
-
+
findDeepestChild: function(drops) {
deepest = drops[0];
-
+
for (i = 1; i < drops.length; ++i)
if (Element.isParent(drops[i].element, deepest.element))
deepest = drops[i];
-
+
return deepest;
},
isContained: function(element, drop) {
var containmentNode;
if(drop.tree) {
- containmentNode = element.treeNode;
+ containmentNode = element.treeNode;
} else {
containmentNode = element.parentNode;
}
return drop._containers.detect(function(c) { return containmentNode == c });
},
-
+
isAffected: function(point, element, drop) {
return (
(drop.element!=element) &&
((!drop._containers) ||
this.isContained(element, drop)) &&
((!drop.accept) ||
- (Element.classNames(element).detect(
+ (Element.classNames(element).detect(
function(v) { return drop.accept.include(v) } ) )) &&
Position.within(drop.element, point[0], point[1]) );
},
@@ -87,12 +88,12 @@ var Droppables = {
show: function(point, element) {
if(!this.drops.length) return;
var drop, affected = [];
-
+
this.drops.each( function(drop) {
if(Droppables.isAffected(point, element, drop))
affected.push(drop);
});
-
+
if(affected.length>0)
drop = Droppables.findDeepestChild(affected);
@@ -101,7 +102,7 @@ var Droppables = {
Position.within(drop.element, point[0], point[1]);
if(drop.onHover)
drop.onHover(element, drop.element, Position.overlap(drop.overlap, drop.element));
-
+
if (drop != this.last_active) Droppables.activate(drop);
}
},
@@ -112,8 +113,8 @@ var Droppables = {
if (this.isAffected([Event.pointerX(event), Event.pointerY(event)], element, this.last_active))
if (this.last_active.onDrop) {
- this.last_active.onDrop(element, this.last_active.element, event);
- return true;
+ this.last_active.onDrop(element, this.last_active.element, event);
+ return true;
}
},
@@ -121,25 +122,25 @@ var Droppables = {
if(this.last_active)
this.deactivate(this.last_active);
}
-}
+};
var Draggables = {
drags: [],
observers: [],
-
+
register: function(draggable) {
if(this.drags.length == 0) {
this.eventMouseUp = this.endDrag.bindAsEventListener(this);
this.eventMouseMove = this.updateDrag.bindAsEventListener(this);
this.eventKeypress = this.keyPress.bindAsEventListener(this);
-
+
Event.observe(document, "mouseup", this.eventMouseUp);
Event.observe(document, "mousemove", this.eventMouseMove);
Event.observe(document, "keypress", this.eventKeypress);
}
this.drags.push(draggable);
},
-
+
unregister: function(draggable) {
this.drags = this.drags.reject(function(d) { return d==draggable });
if(this.drags.length == 0) {
@@ -148,24 +149,24 @@ var Draggables = {
Event.stopObserving(document, "keypress", this.eventKeypress);
}
},
-
+
activate: function(draggable) {
- if(draggable.options.delay) {
- this._timeout = setTimeout(function() {
- Draggables._timeout = null;
- window.focus();
- Draggables.activeDraggable = draggable;
- }.bind(this), draggable.options.delay);
+ if(draggable.options.delay) {
+ this._timeout = setTimeout(function() {
+ Draggables._timeout = null;
+ window.focus();
+ Draggables.activeDraggable = draggable;
+ }.bind(this), draggable.options.delay);
} else {
window.focus(); // allows keypress events if window isn't currently focused, fails for Safari
this.activeDraggable = draggable;
}
},
-
+
deactivate: function() {
this.activeDraggable = null;
},
-
+
updateDrag: function(event) {
if(!this.activeDraggable) return;
var pointer = [Event.pointerX(event), Event.pointerY(event)];
@@ -173,36 +174,36 @@ var Draggables = {
// the same coordinates, prevent needless redrawing (moz bug?)
if(this._lastPointer && (this._lastPointer.inspect() == pointer.inspect())) return;
this._lastPointer = pointer;
-
+
this.activeDraggable.updateDrag(event, pointer);
},
-
+
endDrag: function(event) {
- if(this._timeout) {
- clearTimeout(this._timeout);
- this._timeout = null;
+ if(this._timeout) {
+ clearTimeout(this._timeout);
+ this._timeout = null;
}
if(!this.activeDraggable) return;
this._lastPointer = null;
this.activeDraggable.endDrag(event);
this.activeDraggable = null;
},
-
+
keyPress: function(event) {
if(this.activeDraggable)
this.activeDraggable.keyPress(event);
},
-
+
addObserver: function(observer) {
this.observers.push(observer);
this._cacheObserverCallbacks();
},
-
+
removeObserver: function(element) { // element instead of observer fixes mem leaks
this.observers = this.observers.reject( function(o) { return o.element==element });
this._cacheObserverCallbacks();
},
-
+
notify: function(eventName, draggable, event) { // 'onStart', 'onEnd', 'onDrag'
if(this[eventName+'Count'] > 0)
this.observers.each( function(o) {
@@ -210,7 +211,7 @@ var Draggables = {
});
if(draggable.options[eventName]) draggable.options[eventName](draggable, event);
},
-
+
_cacheObserverCallbacks: function() {
['onStart','onEnd','onDrag'].each( function(eventName) {
Draggables[eventName+'Count'] = Draggables.observers.select(
@@ -218,7 +219,7 @@ var Draggables = {
).length;
});
}
-}
+};
/*--------------------------------------------------------------------------*/
@@ -234,12 +235,12 @@ var Draggable = Class.create({
},
endeffect: function(element) {
var toOpacity = Object.isNumber(element._opacity) ? element._opacity : 1.0;
- new Effect.Opacity(element, {duration:0.2, from:0.7, to:toOpacity,
+ new Effect.Opacity(element, {duration:0.2, from:0.7, to:toOpacity,
queue: {scope:'_draggable', position:'end'},
- afterFinish: function(){
- Draggable._dragging[element] = false
+ afterFinish: function(){
+ Draggable._dragging[element] = false
}
- });
+ });
},
zindex: 1000,
revert: false,
@@ -250,57 +251,57 @@ var Draggable = Class.create({
snap: false, // false, or xy or [x,y] or function(x,y){ return [x,y] }
delay: 0
};
-
+
if(!arguments[1] || Object.isUndefined(arguments[1].endeffect))
Object.extend(defaults, {
starteffect: function(element) {
element._opacity = Element.getOpacity(element);
Draggable._dragging[element] = true;
- new Effect.Opacity(element, {duration:0.2, from:element._opacity, to:0.7});
+ new Effect.Opacity(element, {duration:0.2, from:element._opacity, to:0.7});
}
});
-
+
var options = Object.extend(defaults, arguments[1] || { });
this.element = $(element);
-
+
if(options.handle && Object.isString(options.handle))
this.handle = this.element.down('.'+options.handle, 0);
-
+
if(!this.handle) this.handle = $(options.handle);
if(!this.handle) this.handle = this.element;
-
+
if(options.scroll && !options.scroll.scrollTo && !options.scroll.outerHTML) {
options.scroll = $(options.scroll);
this._isScrollChild = Element.childOf(this.element, options.scroll);
}
- Element.makePositioned(this.element); // fix IE
+ Element.makePositioned(this.element); // fix IE
this.options = options;
- this.dragging = false;
+ this.dragging = false;
this.eventMouseDown = this.initDrag.bindAsEventListener(this);
Event.observe(this.handle, "mousedown", this.eventMouseDown);
-
+
Draggables.register(this);
},
-
+
destroy: function() {
Event.stopObserving(this.handle, "mousedown", this.eventMouseDown);
Draggables.unregister(this);
},
-
+
currentDelta: function() {
return([
parseInt(Element.getStyle(this.element,'left') || '0'),
parseInt(Element.getStyle(this.element,'top') || '0')]);
},
-
+
initDrag: function(event) {
if(!Object.isUndefined(Draggable._dragging[this.element]) &&
Draggable._dragging[this.element]) return;
- if(Event.isLeftClick(event)) {
+ if(Event.isLeftClick(event)) {
// abort on form elements, fixes a Firefox issue
var src = Event.element(event);
if((tag_name = src.tagName.toUpperCase()) && (
@@ -309,34 +310,34 @@ var Draggable = Class.create({
tag_name=='OPTION' ||
tag_name=='BUTTON' ||
tag_name=='TEXTAREA')) return;
-
+
var pointer = [Event.pointerX(event), Event.pointerY(event)];
- var pos = Position.cumulativeOffset(this.element);
+ var pos = this.element.cumulativeOffset();
this.offset = [0,1].map( function(i) { return (pointer[i] - pos[i]) });
-
+
Draggables.activate(this);
Event.stop(event);
}
},
-
+
startDrag: function(event) {
this.dragging = true;
if(!this.delta)
this.delta = this.currentDelta();
-
+
if(this.options.zindex) {
this.originalZ = parseInt(Element.getStyle(this.element,'z-index') || 0);
this.element.style.zIndex = this.options.zindex;
}
-
+
if(this.options.ghosting) {
this._clone = this.element.cloneNode(true);
- this.element._originallyAbsolute = (this.element.getStyle('position') == 'absolute');
- if (!this.element._originallyAbsolute)
+ this._originallyAbsolute = (this.element.getStyle('position') == 'absolute');
+ if (!this._originallyAbsolute)
Position.absolutize(this.element);
this.element.parentNode.insertBefore(this._clone, this.element);
}
-
+
if(this.options.scroll) {
if (this.options.scroll == window) {
var where = this._getWindowScroll(this.options.scroll);
@@ -347,28 +348,28 @@ var Draggable = Class.create({
this.originalScrollTop = this.options.scroll.scrollTop;
}
}
-
+
Draggables.notify('onStart', this, event);
-
+
if(this.options.starteffect) this.options.starteffect(this.element);
},
-
+
updateDrag: function(event, pointer) {
if(!this.dragging) this.startDrag(event);
-
+
if(!this.options.quiet){
Position.prepare();
Droppables.show(pointer, this.element);
}
-
+
Draggables.notify('onDrag', this, event);
-
+
this.draw(pointer);
if(this.options.change) this.options.change(this);
-
+
if(this.options.scroll) {
this.stopScrolling();
-
+
var p;
if (this.options.scroll == window) {
with(this._getWindowScroll(this.options.scroll)) { p = [ left, top, left+width, top+height ]; }
@@ -386,16 +387,16 @@ var Draggable = Class.create({
if(pointer[1] > (p[3]-this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[3]-this.options.scrollSensitivity);
this.startScrolling(speed);
}
-
+
// fix AppleWebKit rendering
if(Prototype.Browser.WebKit) window.scrollBy(0,0);
-
+
Event.stop(event);
},
-
+
finishDrag: function(event, success) {
this.dragging = false;
-
+
if(this.options.quiet){
Position.prepare();
var pointer = [Event.pointerX(event), Event.pointerY(event)];
@@ -403,24 +404,24 @@ var Draggable = Class.create({
}
if(this.options.ghosting) {
- if (!this.element._originallyAbsolute)
+ if (!this._originallyAbsolute)
Position.relativize(this.element);
- delete this.element._originallyAbsolute;
+ delete this._originallyAbsolute;
Element.remove(this._clone);
this._clone = null;
}
- var dropped = false;
- if(success) {
- dropped = Droppables.fire(event, this.element);
- if (!dropped) dropped = false;
+ var dropped = false;
+ if(success) {
+ dropped = Droppables.fire(event, this.element);
+ if (!dropped) dropped = false;
}
if(dropped && this.options.onDropped) this.options.onDropped(this.element);
Draggables.notify('onEnd', this, event);
var revert = this.options.revert;
if(revert && Object.isFunction(revert)) revert = revert(this.element);
-
+
var d = this.currentDelta();
if(revert && this.options.reverteffect) {
if (dropped == 0 || revert != 'failure')
@@ -433,67 +434,67 @@ var Draggable = Class.create({
if(this.options.zindex)
this.element.style.zIndex = this.originalZ;
- if(this.options.endeffect)
+ if(this.options.endeffect)
this.options.endeffect(this.element);
-
+
Draggables.deactivate(this);
Droppables.reset();
},
-
+
keyPress: function(event) {
if(event.keyCode!=Event.KEY_ESC) return;
this.finishDrag(event, false);
Event.stop(event);
},
-
+
endDrag: function(event) {
if(!this.dragging) return;
this.stopScrolling();
this.finishDrag(event, true);
Event.stop(event);
},
-
+
draw: function(point) {
- var pos = Position.cumulativeOffset(this.element);
+ var pos = this.element.cumulativeOffset();
if(this.options.ghosting) {
var r = Position.realOffset(this.element);
pos[0] += r[0] - Position.deltaX; pos[1] += r[1] - Position.deltaY;
}
-
+
var d = this.currentDelta();
pos[0] -= d[0]; pos[1] -= d[1];
-
+
if(this.options.scroll && (this.options.scroll != window && this._isScrollChild)) {
pos[0] -= this.options.scroll.scrollLeft-this.originalScrollLeft;
pos[1] -= this.options.scroll.scrollTop-this.originalScrollTop;
}
-
- var p = [0,1].map(function(i){
- return (point[i]-pos[i]-this.offset[i])
+
+ var p = [0,1].map(function(i){
+ return (point[i]-pos[i]-this.offset[i])
}.bind(this));
-
+
if(this.options.snap) {
if(Object.isFunction(this.options.snap)) {
p = this.options.snap(p[0],p[1],this);
} else {
if(Object.isArray(this.options.snap)) {
p = p.map( function(v, i) {
- return (v/this.options.snap[i]).round()*this.options.snap[i] }.bind(this))
+ return (v/this.options.snap[i]).round()*this.options.snap[i] }.bind(this));
} else {
p = p.map( function(v) {
- return (v/this.options.snap).round()*this.options.snap }.bind(this))
+ return (v/this.options.snap).round()*this.options.snap }.bind(this));
}
}}
-
+
var style = this.element.style;
if((!this.options.constraint) || (this.options.constraint=='horizontal'))
style.left = p[0] + "px";
if((!this.options.constraint) || (this.options.constraint=='vertical'))
style.top = p[1] + "px";
-
+
if(style.visibility=="hidden") style.visibility = ""; // fix gecko rendering
},
-
+
stopScrolling: function() {
if(this.scrollInterval) {
clearInterval(this.scrollInterval);
@@ -501,14 +502,14 @@ var Draggable = Class.create({
Draggables._lastScrollPointer = null;
}
},
-
+
startScrolling: function(speed) {
if(!(speed[0] || speed[1])) return;
this.scrollSpeed = [speed[0]*this.options.scrollSpeed,speed[1]*this.options.scrollSpeed];
this.lastScrolled = new Date();
this.scrollInterval = setInterval(this.scroll.bind(this), 10);
},
-
+
scroll: function() {
var current = new Date();
var delta = current - this.lastScrolled;
@@ -524,7 +525,7 @@ var Draggable = Class.create({
this.options.scroll.scrollLeft += this.scrollSpeed[0] * delta / 1000;
this.options.scroll.scrollTop += this.scrollSpeed[1] * delta / 1000;
}
-
+
Position.prepare();
Droppables.show(Draggables._lastPointer, this.element);
Draggables.notify('onDrag', this);
@@ -538,10 +539,10 @@ var Draggable = Class.create({
Draggables._lastScrollPointer[1] = 0;
this.draw(Draggables._lastScrollPointer);
}
-
+
if(this.options.change) this.options.change(this);
},
-
+
_getWindowScroll: function(w) {
var T, L, W, H;
with (w.document) {
@@ -560,7 +561,7 @@ var Draggable = Class.create({
H = documentElement.clientHeight;
} else {
W = body.offsetWidth;
- H = body.offsetHeight
+ H = body.offsetHeight;
}
}
return { top: T, left: L, width: W, height: H };
@@ -577,11 +578,11 @@ var SortableObserver = Class.create({
this.observer = observer;
this.lastValue = Sortable.serialize(this.element);
},
-
+
onStart: function() {
this.lastValue = Sortable.serialize(this.element);
},
-
+
onEnd: function() {
Sortable.unmark();
if(this.lastValue != Sortable.serialize(this.element))
@@ -591,11 +592,11 @@ var SortableObserver = Class.create({
var Sortable = {
SERIALIZE_RULE: /^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/,
-
+
sortables: { },
-
+
_findRootElement: function(element) {
- while (element.tagName.toUpperCase() != "BODY") {
+ while (element.tagName.toUpperCase() != "BODY") {
if(element.id && Sortable.sortables[element.id]) return element;
element = element.parentNode;
}
@@ -606,22 +607,23 @@ var Sortable = {
if(!element) return;
return Sortable.sortables[element.id];
},
-
+
destroy: function(element){
- var s = Sortable.options(element);
-
+ element = $(element);
+ var s = Sortable.sortables[element.id];
+
if(s) {
Draggables.removeObserver(s.element);
s.droppables.each(function(d){ Droppables.remove(d) });
s.draggables.invoke('destroy');
-
+
delete Sortable.sortables[s.element.id];
}
},
create: function(element) {
element = $(element);
- var options = Object.extend({
+ var options = Object.extend({
element: element,
tag: 'li', // assumes li children, override with tag: 'tagname'
dropOnEmpty: false,
@@ -635,17 +637,17 @@ var Sortable = {
delay: 0,
hoverclass: null,
ghosting: false,
- quiet: false,
+ quiet: false,
scroll: false,
scrollSensitivity: 20,
scrollSpeed: 15,
format: this.SERIALIZE_RULE,
-
- // these take arrays of elements or ids and can be
+
+ // these take arrays of elements or ids and can be
// used for better initialization performance
elements: false,
handles: false,
-
+
onChange: Prototype.emptyFunction,
onUpdate: Prototype.emptyFunction
}, arguments[1] || { });
@@ -682,24 +684,24 @@ var Sortable = {
if(options.zindex)
options_for_draggable.zindex = options.zindex;
- // build options for the droppables
+ // build options for the droppables
var options_for_droppable = {
overlap: options.overlap,
containment: options.containment,
tree: options.tree,
hoverclass: options.hoverclass,
onHover: Sortable.onHover
- }
-
+ };
+
var options_for_tree = {
onHover: Sortable.onEmptyHover,
overlap: options.overlap,
containment: options.containment,
hoverclass: options.hoverclass
- }
+ };
// fix for gecko engine
- Element.cleanWhitespace(element);
+ Element.cleanWhitespace(element);
options.draggables = [];
options.droppables = [];
@@ -712,14 +714,14 @@ var Sortable = {
(options.elements || this.findElements(element, options) || []).each( function(e,i) {
var handle = options.handles ? $(options.handles[i]) :
- (options.handle ? $(e).select('.' + options.handle)[0] : e);
+ (options.handle ? $(e).select('.' + options.handle)[0] : e);
options.draggables.push(
new Draggable(e, Object.extend(options_for_draggable, { handle: handle })));
Droppables.add(e, options_for_droppable);
if(options.tree) e.treeNode = element;
- options.droppables.push(e);
+ options.droppables.push(e);
});
-
+
if(options.tree) {
(Sortable.findTreeElements(element, options) || []).each( function(e) {
Droppables.add(e, options_for_tree);
@@ -729,7 +731,7 @@ var Sortable = {
}
// keep reference
- this.sortables[element.id] = options;
+ this.sortables[element.identify()] = options;
// for onupdate
Draggables.addObserver(new SortableObserver(element, options.onUpdate));
@@ -741,7 +743,7 @@ var Sortable = {
return Element.findChildren(
element, options.only, options.tree ? true : false, options.tag);
},
-
+
findTreeElements: function(element, options) {
return Element.findChildren(
element, options.only, options.tree ? true : false, options.treeTag);
@@ -758,7 +760,7 @@ var Sortable = {
var oldParentNode = element.parentNode;
element.style.visibility = "hidden"; // fix gecko rendering
dropon.parentNode.insertBefore(element, dropon);
- if(dropon.parentNode!=oldParentNode)
+ if(dropon.parentNode!=oldParentNode)
Sortable.options(oldParentNode).onChange(element);
Sortable.options(dropon.parentNode).onChange(element);
}
@@ -769,26 +771,26 @@ var Sortable = {
var oldParentNode = element.parentNode;
element.style.visibility = "hidden"; // fix gecko rendering
dropon.parentNode.insertBefore(element, nextElement);
- if(dropon.parentNode!=oldParentNode)
+ if(dropon.parentNode!=oldParentNode)
Sortable.options(oldParentNode).onChange(element);
Sortable.options(dropon.parentNode).onChange(element);
}
}
},
-
+
onEmptyHover: function(element, dropon, overlap) {
var oldParentNode = element.parentNode;
var droponOptions = Sortable.options(dropon);
-
+
if(!Element.isParent(dropon, element)) {
var index;
-
+
var children = Sortable.findElements(dropon, {tag: droponOptions.tag, only: droponOptions.only});
var child = null;
-
+
if(children) {
var offset = Element.offsetSize(dropon, droponOptions.overlap) * (1.0 - overlap);
-
+
for (index = 0; index < children.length; index += 1) {
if (offset - Element.offsetSize (children[index], droponOptions.overlap) >= 0) {
offset -= Element.offsetSize (children[index], droponOptions.overlap);
@@ -801,9 +803,9 @@ var Sortable = {
}
}
}
-
+
dropon.insertBefore(element, child);
-
+
Sortable.options(oldParentNode).onChange(element);
droponOptions.onChange(element);
}
@@ -816,34 +818,34 @@ var Sortable = {
mark: function(dropon, position) {
// mark on ghosting only
var sortable = Sortable.options(dropon.parentNode);
- if(sortable && !sortable.ghosting) return;
+ if(sortable && !sortable.ghosting) return;
if(!Sortable._marker) {
- Sortable._marker =
+ Sortable._marker =
($('dropmarker') || Element.extend(document.createElement('DIV'))).
hide().addClassName('dropmarker').setStyle({position:'absolute'});
document.getElementsByTagName("body").item(0).appendChild(Sortable._marker);
- }
- var offsets = Position.cumulativeOffset(dropon);
+ }
+ var offsets = dropon.cumulativeOffset();
Sortable._marker.setStyle({left: offsets[0]+'px', top: offsets[1] + 'px'});
-
+
if(position=='after')
- if(sortable.overlap == 'horizontal')
+ if(sortable.overlap == 'horizontal')
Sortable._marker.setStyle({left: (offsets[0]+dropon.clientWidth) + 'px'});
else
Sortable._marker.setStyle({top: (offsets[1]+dropon.clientHeight) + 'px'});
-
+
Sortable._marker.show();
},
-
+
_tree: function(element, options, parent) {
var children = Sortable.findElements(element, options) || [];
-
+
for (var i = 0; i < children.length; ++i) {
var match = children[i].id.match(options.format);
if (!match) continue;
-
+
var child = {
id: encodeURIComponent(match ? match[1] : null),
element: element,
@@ -851,16 +853,16 @@ var Sortable = {
children: [],
position: parent.children.length,
container: $(children[i]).down(options.treeTag)
- }
-
+ };
+
/* Get the element containing the children and recurse over it */
if (child.container)
- this._tree(child.container, options, child)
-
+ this._tree(child.container, options, child);
+
parent.children.push (child);
}
- return parent;
+ return parent;
},
tree: function(element) {
@@ -873,15 +875,15 @@ var Sortable = {
name: element.id,
format: sortableOptions.format
}, arguments[1] || { });
-
+
var root = {
id: null,
parent: null,
children: [],
container: element,
position: 0
- }
-
+ };
+
return Sortable._tree(element, options, root);
},
@@ -897,7 +899,7 @@ var Sortable = {
sequence: function(element) {
element = $(element);
var options = Object.extend(this.options(element), arguments[1] || { });
-
+
return $(this.findElements(element, options) || []).map( function(item) {
return item.id.match(options.format) ? item.id.match(options.format)[1] : '';
});
@@ -906,14 +908,14 @@ var Sortable = {
setSequence: function(element, new_sequence) {
element = $(element);
var options = Object.extend(this.options(element), arguments[2] || { });
-
+
var nodeMap = { };
this.findElements(element, options).each( function(n) {
if (n.id.match(options.format))
nodeMap[n.id.match(options.format)[1]] = [n, n.parentNode];
n.parentNode.removeChild(n);
});
-
+
new_sequence.each(function(ident) {
var n = nodeMap[ident];
if (n) {
@@ -922,16 +924,16 @@ var Sortable = {
}
});
},
-
+
serialize: function(element) {
element = $(element);
var options = Object.extend(Sortable.options(element), arguments[1] || { });
var name = encodeURIComponent(
(arguments[1] && arguments[1].name) ? arguments[1].name : element.id);
-
+
if (options.tree) {
return Sortable.tree(element, arguments[1]).children.map( function (item) {
- return [name + Sortable._constructIndex(item) + "[id]=" +
+ return [name + Sortable._constructIndex(item) + "[id]=" +
encodeURIComponent(item.id)].concat(item.children.map(arguments.callee));
}).flatten().join('&');
} else {
@@ -940,16 +942,16 @@ var Sortable = {
}).join('&');
}
}
-}
+};
// Returns true if child is contained within element
Element.isParent = function(child, element) {
if (!child.parentNode || child == element) return false;
if (child.parentNode == element) return true;
return Element.isParent(child.parentNode, element);
-}
+};
-Element.findChildren = function(element, only, recursive, tagName) {
+Element.findChildren = function(element, only, recursive, tagName) {
if(!element.hasChildNodes()) return null;
tagName = tagName.toUpperCase();
if(only) only = [only].flatten();
@@ -965,8 +967,8 @@ Element.findChildren = function(element, only, recursive, tagName) {
});
return (elements.length>0 ? elements.flatten() : []);
-}
+};
Element.offsetSize = function (element, type) {
return element['offset' + ((type=='vertical' || type=='height') ? 'Height' : 'Width')];
-}
+}; \ No newline at end of file
diff --git a/public/javascripts/effects.js b/public/javascripts/effects.js
index f030b5dbe..c81e6c7d5 100644
--- a/public/javascripts/effects.js
+++ b/public/javascripts/effects.js
@@ -1,48 +1,50 @@
-// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
+// script.aculo.us effects.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009
+
+// Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
// Contributors:
// Justin Palmer (http://encytemedia.com/)
// Mark Pilgrim (http://diveintomark.org/)
// Martin Bialasinki
-//
+//
// script.aculo.us is freely distributable under the terms of an MIT-style license.
-// For details, see the script.aculo.us web site: http://script.aculo.us/
+// For details, see the script.aculo.us web site: http://script.aculo.us/
-// converts rgb() and #xxx to #xxxxxx format,
-// returns self (or first argument) if not convertable
-String.prototype.parseColor = function() {
+// converts rgb() and #xxx to #xxxxxx format,
+// returns self (or first argument) if not convertable
+String.prototype.parseColor = function() {
var color = '#';
- if (this.slice(0,4) == 'rgb(') {
- var cols = this.slice(4,this.length-1).split(',');
- var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3);
- } else {
- if (this.slice(0,1) == '#') {
- if (this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase();
- if (this.length==7) color = this.toLowerCase();
- }
- }
- return (color.length==7 ? color : (arguments[0] || this));
+ if (this.slice(0,4) == 'rgb(') {
+ var cols = this.slice(4,this.length-1).split(',');
+ var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3);
+ } else {
+ if (this.slice(0,1) == '#') {
+ if (this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase();
+ if (this.length==7) color = this.toLowerCase();
+ }
+ }
+ return (color.length==7 ? color : (arguments[0] || this));
};
/*--------------------------------------------------------------------------*/
-Element.collectTextNodes = function(element) {
+Element.collectTextNodes = function(element) {
return $A($(element).childNodes).collect( function(node) {
- return (node.nodeType==3 ? node.nodeValue :
+ return (node.nodeType==3 ? node.nodeValue :
(node.hasChildNodes() ? Element.collectTextNodes(node) : ''));
}).flatten().join('');
};
-Element.collectTextNodesIgnoreClass = function(element, className) {
+Element.collectTextNodesIgnoreClass = function(element, className) {
return $A($(element).childNodes).collect( function(node) {
- return (node.nodeType==3 ? node.nodeValue :
- ((node.hasChildNodes() && !Element.hasClassName(node,className)) ?
+ return (node.nodeType==3 ? node.nodeValue :
+ ((node.hasChildNodes() && !Element.hasClassName(node,className)) ?
Element.collectTextNodesIgnoreClass(node, className) : ''));
}).flatten().join('');
};
Element.setContentZoom = function(element, percent) {
- element = $(element);
- element.setStyle({fontSize: (percent/100) + 'em'});
+ element = $(element);
+ element.setStyle({fontSize: (percent/100) + 'em'});
if (Prototype.Browser.WebKit) window.scrollBy(0,0);
return element;
};
@@ -70,28 +72,23 @@ var Effect = {
Transitions: {
linear: Prototype.K,
sinoidal: function(pos) {
- return (-Math.cos(pos*Math.PI)/2) + 0.5;
+ return (-Math.cos(pos*Math.PI)/2) + .5;
},
reverse: function(pos) {
return 1-pos;
},
flicker: function(pos) {
- var pos = ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random()/4;
+ var pos = ((-Math.cos(pos*Math.PI)/4) + .75) + Math.random()/4;
return pos > 1 ? 1 : pos;
},
wobble: function(pos) {
- return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5;
+ return (-Math.cos(pos*Math.PI*(9*pos))/2) + .5;
},
- pulse: function(pos, pulses) {
- pulses = pulses || 5;
- return (
- ((pos % (1/pulses)) * pulses).round() == 0 ?
- ((pos * pulses * 2) - (pos * pulses * 2).floor()) :
- 1 - ((pos * pulses * 2) - (pos * pulses * 2).floor())
- );
+ pulse: function(pos, pulses) {
+ return (-Math.cos((pos*((pulses||5)-.5)*2)*Math.PI)/2) + .5;
},
- spring: function(pos) {
- return 1 - (Math.cos(pos * 4.5 * Math.PI) * Math.exp(-pos * 6));
+ spring: function(pos) {
+ return 1 - (Math.cos(pos * 4.5 * Math.PI) * Math.exp(-pos * 6));
},
none: function(pos) {
return 0;
@@ -112,14 +109,14 @@ var Effect = {
tagifyText: function(element) {
var tagifyStyle = 'position:relative';
if (Prototype.Browser.IE) tagifyStyle += ';zoom:1';
-
+
element = $(element);
$A(element.childNodes).each( function(child) {
if (child.nodeType==3) {
child.nodeValue.toArray().each( function(character) {
element.insertBefore(
new Element('span', {style: tagifyStyle}).update(
- character == ' ' ? String.fromCharCode(160) : character),
+ character == ' ' ? String.fromCharCode(160) : character),
child);
});
Element.remove(child);
@@ -128,13 +125,13 @@ var Effect = {
},
multiple: function(element, effect) {
var elements;
- if (((typeof element == 'object') ||
- Object.isFunction(element)) &&
+ if (((typeof element == 'object') ||
+ Object.isFunction(element)) &&
(element.length))
elements = element;
else
elements = $(element).childNodes;
-
+
var options = Object.extend({
speed: 0.1,
delay: 0.0
@@ -150,14 +147,13 @@ var Effect = {
'blind': ['BlindDown','BlindUp'],
'appear': ['Appear','Fade']
},
- toggle: function(element, effect) {
+ toggle: function(element, effect, options) {
element = $(element);
- effect = (effect || 'appear').toLowerCase();
- var options = Object.extend({
+ effect = (effect || 'appear').toLowerCase();
+
+ return Effect[ Effect.PAIRS[ effect ][ element.visible() ? 1 : 0 ] ](element, Object.extend({
queue: { position:'end', scope:(element.id || 'global'), limit: 1 }
- }, arguments[2] || { });
- Effect[element.visible() ?
- Effect.PAIRS[effect][1] : Effect.PAIRS[effect][0]](element, options);
+ }, options || {}));
}
};
@@ -168,20 +164,20 @@ Effect.DefaultOptions.transition = Effect.Transitions.sinoidal;
Effect.ScopedQueue = Class.create(Enumerable, {
initialize: function() {
this.effects = [];
- this.interval = null;
+ this.interval = null;
},
_each: function(iterator) {
this.effects._each(iterator);
},
add: function(effect) {
var timestamp = new Date().getTime();
-
- var position = Object.isString(effect.options.queue) ?
+
+ var position = Object.isString(effect.options.queue) ?
effect.options.queue : effect.options.queue.position;
-
+
switch(position) {
case 'front':
- // move unstarted effects after this effect
+ // move unstarted effects after this effect
this.effects.findAll(function(e){ return e.state=='idle' }).each( function(e) {
e.startOn += effect.finishOn;
e.finishOn += effect.finishOn;
@@ -195,13 +191,13 @@ Effect.ScopedQueue = Class.create(Enumerable, {
timestamp = this.effects.pluck('finishOn').max() || timestamp;
break;
}
-
+
effect.startOn += timestamp;
effect.finishOn += timestamp;
if (!effect.options.queue.limit || (this.effects.length < effect.options.queue.limit))
this.effects.push(effect);
-
+
if (!this.interval)
this.interval = setInterval(this.loop.bind(this), 15);
},
@@ -214,7 +210,7 @@ Effect.ScopedQueue = Class.create(Enumerable, {
},
loop: function() {
var timePos = new Date().getTime();
- for(var i=0, len=this.effects.length;i<len;i++)
+ for(var i=0, len=this.effects.length;i<len;i++)
this.effects[i] && this.effects[i].loop(timePos);
}
});
@@ -223,7 +219,7 @@ Effect.Queues = {
instances: $H(),
get: function(queueName) {
if (!Object.isString(queueName)) return queueName;
-
+
return this.instances.get(queueName) ||
this.instances.set(queueName, new Effect.ScopedQueue());
}
@@ -233,12 +229,6 @@ Effect.Queue = Effect.Queues.get('global');
Effect.Base = Class.create({
position: null,
start: function(options) {
- function codeForEvent(options,eventName){
- return (
- (options[eventName+'Internal'] ? 'this.options.'+eventName+'Internal(this);' : '') +
- (options[eventName] ? 'this.options.'+eventName+'(this);' : '')
- );
- }
if (options && options.transition === false) options.transition = Effect.Transitions.linear;
this.options = Object.extend(Object.extend({ },Effect.DefaultOptions), options || { });
this.currentFrame = 0;
@@ -248,23 +238,35 @@ Effect.Base = Class.create({
this.fromToDelta = this.options.to-this.options.from;
this.totalTime = this.finishOn-this.startOn;
this.totalFrames = this.options.fps*this.options.duration;
-
- eval('this.render = function(pos){ '+
- 'if (this.state=="idle"){this.state="running";'+
- codeForEvent(this.options,'beforeSetup')+
- (this.setup ? 'this.setup();':'')+
- codeForEvent(this.options,'afterSetup')+
- '};if (this.state=="running"){'+
- 'pos=this.options.transition(pos)*'+this.fromToDelta+'+'+this.options.from+';'+
- 'this.position=pos;'+
- codeForEvent(this.options,'beforeUpdate')+
- (this.update ? 'this.update(pos);':'')+
- codeForEvent(this.options,'afterUpdate')+
- '}}');
-
+
+ this.render = (function() {
+ function dispatch(effect, eventName) {
+ if (effect.options[eventName + 'Internal'])
+ effect.options[eventName + 'Internal'](effect);
+ if (effect.options[eventName])
+ effect.options[eventName](effect);
+ }
+
+ return function(pos) {
+ if (this.state === "idle") {
+ this.state = "running";
+ dispatch(this, 'beforeSetup');
+ if (this.setup) this.setup();
+ dispatch(this, 'afterSetup');
+ }
+ if (this.state === "running") {
+ pos = (this.options.transition(pos) * this.fromToDelta) + this.options.from;
+ this.position = pos;
+ dispatch(this, 'beforeUpdate');
+ if (this.update) this.update(pos);
+ dispatch(this, 'afterUpdate');
+ }
+ };
+ })();
+
this.event('beforeStart');
if (!this.options.sync)
- Effect.Queues.get(Object.isString(this.options.queue) ?
+ Effect.Queues.get(Object.isString(this.options.queue) ?
'global' : this.options.queue.scope).add(this);
},
loop: function(timePos) {
@@ -273,9 +275,9 @@ Effect.Base = Class.create({
this.render(1.0);
this.cancel();
this.event('beforeFinish');
- if (this.finish) this.finish();
+ if (this.finish) this.finish();
this.event('afterFinish');
- return;
+ return;
}
var pos = (timePos - this.startOn) / this.totalTime,
frame = (pos * this.totalFrames).round();
@@ -287,7 +289,7 @@ Effect.Base = Class.create({
},
cancel: function() {
if (!this.options.sync)
- Effect.Queues.get(Object.isString(this.options.queue) ?
+ Effect.Queues.get(Object.isString(this.options.queue) ?
'global' : this.options.queue.scope).remove(this);
this.state = 'finished';
},
@@ -325,10 +327,10 @@ Effect.Parallel = Class.create(Effect.Base, {
Effect.Tween = Class.create(Effect.Base, {
initialize: function(object, from, to) {
object = Object.isString(object) ? $(object) : object;
- var args = $A(arguments), method = args.last(),
+ var args = $A(arguments), method = args.last(),
options = args.length == 5 ? args[3] : null;
this.method = Object.isFunction(method) ? method.bind(object) :
- Object.isFunction(object[method]) ? object[method].bind(object) :
+ Object.isFunction(object[method]) ? object[method].bind(object) :
function(value) { object[method] = value };
this.start(Object.extend({ from: from, to: to }, options || { }));
},
@@ -392,7 +394,7 @@ Effect.Move = Class.create(Effect.Base, {
// for backwards compatibility
Effect.MoveBy = function(element, toTop, toLeft) {
- return new Effect.Move(element,
+ return new Effect.Move(element,
Object.extend({ x: toLeft, y: toTop }, arguments[3] || { }));
};
@@ -414,15 +416,15 @@ Effect.Scale = Class.create(Effect.Base, {
setup: function() {
this.restoreAfterFinish = this.options.restoreAfterFinish || false;
this.elementPositioning = this.element.getStyle('position');
-
+
this.originalStyle = { };
['top','left','width','height','fontSize'].each( function(k) {
this.originalStyle[k] = this.element.style[k];
}.bind(this));
-
+
this.originalTop = this.element.offsetTop;
this.originalLeft = this.element.offsetLeft;
-
+
var fontSize = this.element.getStyle('font-size') || '100%';
['em','px','%','pt'].each( function(fontSizeType) {
if (fontSize.indexOf(fontSizeType)>0) {
@@ -430,9 +432,9 @@ Effect.Scale = Class.create(Effect.Base, {
this.fontSizeType = fontSizeType;
}
}.bind(this));
-
+
this.factor = (this.options.scaleTo - this.options.scaleFrom)/100;
-
+
this.dims = null;
if (this.options.scaleMode=='box')
this.dims = [this.element.offsetHeight, this.element.offsetWidth];
@@ -507,17 +509,16 @@ Effect.Highlight = Class.create(Effect.Base, {
Effect.ScrollTo = function(element) {
var options = arguments[1] || { },
- scrollOffsets = document.viewport.getScrollOffsets(),
- elementOffsets = $(element).cumulativeOffset(),
- max = (window.height || document.body.scrollHeight) - document.viewport.getHeight();
+ scrollOffsets = document.viewport.getScrollOffsets(),
+ elementOffsets = $(element).cumulativeOffset();
if (options.offset) elementOffsets[1] += options.offset;
return new Effect.Tween(null,
scrollOffsets.top,
- elementOffsets[1] > max ? max : elementOffsets[1],
+ elementOffsets[1],
options,
- function(p){ scrollTo(scrollOffsets.left, p.round()) }
+ function(p){ scrollTo(scrollOffsets.left, p.round()); }
);
};
@@ -529,9 +530,9 @@ Effect.Fade = function(element) {
var options = Object.extend({
from: element.getOpacity() || 1.0,
to: 0.0,
- afterFinishInternal: function(effect) {
+ afterFinishInternal: function(effect) {
if (effect.options.to!=0) return;
- effect.element.hide().setStyle({opacity: oldOpacity});
+ effect.element.hide().setStyle({opacity: oldOpacity});
}
}, arguments[1] || { });
return new Effect.Opacity(element,options);
@@ -547,15 +548,15 @@ Effect.Appear = function(element) {
effect.element.forceRerendering();
},
beforeSetup: function(effect) {
- effect.element.setOpacity(effect.options.from).show();
+ effect.element.setOpacity(effect.options.from).show();
}}, arguments[1] || { });
return new Effect.Opacity(element,options);
};
Effect.Puff = function(element) {
element = $(element);
- var oldStyle = {
- opacity: element.getInlineOpacity(),
+ var oldStyle = {
+ opacity: element.getInlineOpacity(),
position: element.getStyle('position'),
top: element.style.top,
left: element.style.left,
@@ -563,12 +564,12 @@ Effect.Puff = function(element) {
height: element.style.height
};
return new Effect.Parallel(
- [ new Effect.Scale(element, 200,
- { sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }),
- new Effect.Opacity(element, { sync: true, to: 0.0 } ) ],
- Object.extend({ duration: 1.0,
+ [ new Effect.Scale(element, 200,
+ { sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }),
+ new Effect.Opacity(element, { sync: true, to: 0.0 } ) ],
+ Object.extend({ duration: 1.0,
beforeSetupInternal: function(effect) {
- Position.absolutize(effect.effects[0].element)
+ Position.absolutize(effect.effects[0].element);
},
afterFinishInternal: function(effect) {
effect.effects[0].element.hide().setStyle(oldStyle); }
@@ -580,12 +581,12 @@ Effect.BlindUp = function(element) {
element = $(element);
element.makeClipping();
return new Effect.Scale(element, 0,
- Object.extend({ scaleContent: false,
- scaleX: false,
+ Object.extend({ scaleContent: false,
+ scaleX: false,
restoreAfterFinish: true,
afterFinishInternal: function(effect) {
effect.element.hide().undoClipping();
- }
+ }
}, arguments[1] || { })
);
};
@@ -593,15 +594,15 @@ Effect.BlindUp = function(element) {
Effect.BlindDown = function(element) {
element = $(element);
var elementDimensions = element.getDimensions();
- return new Effect.Scale(element, 100, Object.extend({
- scaleContent: false,
+ return new Effect.Scale(element, 100, Object.extend({
+ scaleContent: false,
scaleX: false,
scaleFrom: 0,
scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
restoreAfterFinish: true,
afterSetup: function(effect) {
- effect.element.makeClipping().setStyle({height: '0px'}).show();
- },
+ effect.element.makeClipping().setStyle({height: '0px'}).show();
+ },
afterFinishInternal: function(effect) {
effect.element.undoClipping();
}
@@ -616,16 +617,16 @@ Effect.SwitchOff = function(element) {
from: 0,
transition: Effect.Transitions.flicker,
afterFinishInternal: function(effect) {
- new Effect.Scale(effect.element, 1, {
+ new Effect.Scale(effect.element, 1, {
duration: 0.3, scaleFromCenter: true,
scaleX: false, scaleContent: false, restoreAfterFinish: true,
- beforeSetup: function(effect) {
+ beforeSetup: function(effect) {
effect.element.makePositioned().makeClipping();
},
afterFinishInternal: function(effect) {
effect.element.hide().undoClipping().undoPositioned().setStyle({opacity: oldOpacity});
}
- })
+ });
}
}, arguments[1] || { }));
};
@@ -637,16 +638,16 @@ Effect.DropOut = function(element) {
left: element.getStyle('left'),
opacity: element.getInlineOpacity() };
return new Effect.Parallel(
- [ new Effect.Move(element, {x: 0, y: 100, sync: true }),
+ [ new Effect.Move(element, {x: 0, y: 100, sync: true }),
new Effect.Opacity(element, { sync: true, to: 0.0 }) ],
Object.extend(
{ duration: 0.5,
beforeSetup: function(effect) {
- effect.effects[0].element.makePositioned();
+ effect.effects[0].element.makePositioned();
},
afterFinishInternal: function(effect) {
effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle);
- }
+ }
}, arguments[1] || { }));
};
@@ -674,7 +675,7 @@ Effect.Shake = function(element) {
new Effect.Move(effect.element,
{ x: -distance, y: 0, duration: split, afterFinishInternal: function(effect) {
effect.element.undoPositioned().setStyle(oldStyle);
- }}) }}) }}) }}) }}) }});
+ }}); }}); }}); }}); }}); }});
};
Effect.SlideDown = function(element) {
@@ -682,9 +683,9 @@ Effect.SlideDown = function(element) {
// SlideDown need to have the content of the element wrapped in a container element with fixed height!
var oldInnerBottom = element.down().getStyle('bottom');
var elementDimensions = element.getDimensions();
- return new Effect.Scale(element, 100, Object.extend({
- scaleContent: false,
- scaleX: false,
+ return new Effect.Scale(element, 100, Object.extend({
+ scaleContent: false,
+ scaleX: false,
scaleFrom: window.opera ? 0 : 1,
scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
restoreAfterFinish: true,
@@ -692,11 +693,11 @@ Effect.SlideDown = function(element) {
effect.element.makePositioned();
effect.element.down().makePositioned();
if (window.opera) effect.element.setStyle({top: ''});
- effect.element.makeClipping().setStyle({height: '0px'}).show();
+ effect.element.makeClipping().setStyle({height: '0px'}).show();
},
afterUpdateInternal: function(effect) {
effect.element.down().setStyle({bottom:
- (effect.dims[0] - effect.element.clientHeight) + 'px' });
+ (effect.dims[0] - effect.element.clientHeight) + 'px' });
},
afterFinishInternal: function(effect) {
effect.element.undoClipping().undoPositioned();
@@ -710,8 +711,8 @@ Effect.SlideUp = function(element) {
var oldInnerBottom = element.down().getStyle('bottom');
var elementDimensions = element.getDimensions();
return new Effect.Scale(element, window.opera ? 0 : 1,
- Object.extend({ scaleContent: false,
- scaleX: false,
+ Object.extend({ scaleContent: false,
+ scaleX: false,
scaleMode: 'box',
scaleFrom: 100,
scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
@@ -721,7 +722,7 @@ Effect.SlideUp = function(element) {
effect.element.down().makePositioned();
if (window.opera) effect.element.setStyle({top: ''});
effect.element.makeClipping().show();
- },
+ },
afterUpdateInternal: function(effect) {
effect.element.down().setStyle({bottom:
(effect.dims[0] - effect.element.clientHeight) + 'px' });
@@ -734,15 +735,15 @@ Effect.SlideUp = function(element) {
);
};
-// Bug in opera makes the TD containing this element expand for a instance after finish
+// Bug in opera makes the TD containing this element expand for a instance after finish
Effect.Squish = function(element) {
- return new Effect.Scale(element, window.opera ? 1 : 0, {
+ return new Effect.Scale(element, window.opera ? 1 : 0, {
restoreAfterFinish: true,
beforeSetup: function(effect) {
- effect.element.makeClipping();
- },
+ effect.element.makeClipping();
+ },
afterFinishInternal: function(effect) {
- effect.element.hide().undoClipping();
+ effect.element.hide().undoClipping();
}
});
};
@@ -762,13 +763,13 @@ Effect.Grow = function(element) {
width: element.style.width,
opacity: element.getInlineOpacity() };
- var dims = element.getDimensions();
+ var dims = element.getDimensions();
var initialMoveX, initialMoveY;
var moveX, moveY;
-
+
switch (options.direction) {
case 'top-left':
- initialMoveX = initialMoveY = moveX = moveY = 0;
+ initialMoveX = initialMoveY = moveX = moveY = 0;
break;
case 'top-right':
initialMoveX = dims.width;
@@ -793,11 +794,11 @@ Effect.Grow = function(element) {
moveY = -dims.height / 2;
break;
}
-
+
return new Effect.Move(element, {
x: initialMoveX,
y: initialMoveY,
- duration: 0.01,
+ duration: 0.01,
beforeSetup: function(effect) {
effect.element.hide().makeClipping().makePositioned();
},
@@ -806,17 +807,17 @@ Effect.Grow = function(element) {
[ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: options.opacityTransition }),
new Effect.Move(effect.element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }),
new Effect.Scale(effect.element, 100, {
- scaleMode: { originalHeight: dims.height, originalWidth: dims.width },
+ scaleMode: { originalHeight: dims.height, originalWidth: dims.width },
sync: true, scaleFrom: window.opera ? 1 : 0, transition: options.scaleTransition, restoreAfterFinish: true})
], Object.extend({
beforeSetup: function(effect) {
- effect.effects[0].element.setStyle({height: '0px'}).show();
+ effect.effects[0].element.setStyle({height: '0px'}).show();
},
afterFinishInternal: function(effect) {
- effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle);
+ effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle);
}
}, options)
- )
+ );
}
});
};
@@ -838,7 +839,7 @@ Effect.Shrink = function(element) {
var dims = element.getDimensions();
var moveX, moveY;
-
+
switch (options.direction) {
case 'top-left':
moveX = moveY = 0;
@@ -855,19 +856,19 @@ Effect.Shrink = function(element) {
moveX = dims.width;
moveY = dims.height;
break;
- case 'center':
+ case 'center':
moveX = dims.width / 2;
moveY = dims.height / 2;
break;
}
-
+
return new Effect.Parallel(
[ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: options.opacityTransition }),
new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, transition: options.scaleTransition, restoreAfterFinish: true}),
new Effect.Move(element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition })
- ], Object.extend({
+ ], Object.extend({
beforeStartInternal: function(effect) {
- effect.effects[0].element.makePositioned().makeClipping();
+ effect.effects[0].element.makePositioned().makeClipping();
},
afterFinishInternal: function(effect) {
effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle); }
@@ -877,12 +878,14 @@ Effect.Shrink = function(element) {
Effect.Pulsate = function(element) {
element = $(element);
- var options = arguments[1] || { };
- var oldOpacity = element.getInlineOpacity();
- var transition = options.transition || Effect.Transitions.sinoidal;
- var reverser = function(pos){ return transition(1-Effect.Transitions.pulse(pos, options.pulses)) };
- reverser.bind(transition);
- return new Effect.Opacity(element,
+ var options = arguments[1] || { },
+ oldOpacity = element.getInlineOpacity(),
+ transition = options.transition || Effect.Transitions.linear,
+ reverser = function(pos){
+ return 1 - transition((-Math.cos((pos*(options.pulses||5)*2)*Math.PI)/2) + .5);
+ };
+
+ return new Effect.Opacity(element,
Object.extend(Object.extend({ duration: 2.0, from: 0,
afterFinishInternal: function(effect) { effect.element.setStyle({opacity: oldOpacity}); }
}, options), {transition: reverser}));
@@ -896,12 +899,12 @@ Effect.Fold = function(element) {
width: element.style.width,
height: element.style.height };
element.makeClipping();
- return new Effect.Scale(element, 5, Object.extend({
+ return new Effect.Scale(element, 5, Object.extend({
scaleContent: false,
scaleX: false,
afterFinishInternal: function(effect) {
- new Effect.Scale(element, 1, {
- scaleContent: false,
+ new Effect.Scale(element, 1, {
+ scaleContent: false,
scaleY: false,
afterFinishInternal: function(effect) {
effect.element.hide().undoClipping().setStyle(oldStyle);
@@ -916,7 +919,7 @@ Effect.Morph = Class.create(Effect.Base, {
var options = Object.extend({
style: { }
}, arguments[1] || { });
-
+
if (!Object.isString(options.style)) this.style = $H(options.style);
else {
if (options.style.include(':'))
@@ -934,18 +937,18 @@ Effect.Morph = Class.create(Effect.Base, {
effect.transforms.each(function(transform) {
effect.element.style[transform.style] = '';
});
- }
+ };
}
}
this.start(options);
},
-
+
setup: function(){
function parseColor(color){
if (!color || ['rgba(0, 0, 0, 0)','transparent'].include(color)) color = '#ffffff';
color = color.parseColor();
return $R(0,2).map(function(i){
- return parseInt( color.slice(i*2+1,i*2+3), 16 )
+ return parseInt( color.slice(i*2+1,i*2+3), 16 );
});
}
this.transforms = this.style.map(function(pair){
@@ -965,9 +968,9 @@ Effect.Morph = Class.create(Effect.Base, {
}
var originalValue = this.element.getStyle(property);
- return {
- style: property.camelize(),
- originalValue: unit=='color' ? parseColor(originalValue) : parseFloat(originalValue || 0),
+ return {
+ style: property.camelize(),
+ originalValue: unit=='color' ? parseColor(originalValue) : parseFloat(originalValue || 0),
targetValue: unit=='color' ? parseColor(value) : value,
unit: unit
};
@@ -978,13 +981,13 @@ Effect.Morph = Class.create(Effect.Base, {
transform.unit != 'color' &&
(isNaN(transform.originalValue) || isNaN(transform.targetValue))
)
- )
+ );
});
},
update: function(position) {
var style = { }, transform, i = this.transforms.length;
while(i--)
- style[(transform = this.transforms[i]).style] =
+ style[(transform = this.transforms[i]).style] =
transform.unit=='color' ? '#'+
(Math.round(transform.originalValue[0]+
(transform.targetValue[0]-transform.originalValue[0])*position)).toColorPart() +
@@ -993,7 +996,7 @@ Effect.Morph = Class.create(Effect.Base, {
(Math.round(transform.originalValue[2]+
(transform.targetValue[2]-transform.originalValue[2])*position)).toColorPart() :
(transform.originalValue +
- (transform.targetValue - transform.originalValue) * position).toFixed(3) +
+ (transform.targetValue - transform.originalValue) * position).toFixed(3) +
(transform.unit === null ? '' : transform.unit);
this.element.setStyle(style, true);
}
@@ -1030,7 +1033,7 @@ Effect.Transform = Class.create({
});
Element.CSS_PROPERTIES = $w(
- 'backgroundColor backgroundPosition borderBottomColor borderBottomStyle ' +
+ 'backgroundColor backgroundPosition borderBottomColor borderBottomStyle ' +
'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth ' +
'borderRightColor borderRightStyle borderRightWidth borderSpacing ' +
'borderTopColor borderTopStyle borderTopWidth bottom clip color ' +
@@ -1039,7 +1042,7 @@ Element.CSS_PROPERTIES = $w(
'maxWidth minHeight minWidth opacity outlineColor outlineOffset ' +
'outlineWidth paddingBottom paddingLeft paddingRight paddingTop ' +
'right textIndent top width wordSpacing zIndex');
-
+
Element.CSS_LENGTH = /^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;
String.__parseStyleElement = document.createElement('div');
@@ -1051,11 +1054,11 @@ String.prototype.parseStyle = function(){
String.__parseStyleElement.innerHTML = '<div style="' + this + '"></div>';
style = String.__parseStyleElement.childNodes[0].style;
}
-
+
Element.CSS_PROPERTIES.each(function(property){
- if (style[property]) styleRules.set(property, style[property]);
+ if (style[property]) styleRules.set(property, style[property]);
});
-
+
if (Prototype.Browser.IE && this.include('opacity'))
styleRules.set('opacity', this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]);
@@ -1074,14 +1077,14 @@ if (document.defaultView && document.defaultView.getComputedStyle) {
Element.getStyles = function(element) {
element = $(element);
var css = element.currentStyle, styles;
- styles = Element.CSS_PROPERTIES.inject({ }, function(hash, property) {
- hash.set(property, css[property]);
- return hash;
+ styles = Element.CSS_PROPERTIES.inject({ }, function(results, property) {
+ results[property] = css[property];
+ return results;
});
- if (!styles.opacity) styles.set('opacity', element.getOpacity());
+ if (!styles.opacity) styles.opacity = element.getOpacity();
return styles;
};
-};
+}
Effect.Methods = {
morph: function(element, style) {
@@ -1090,7 +1093,7 @@ Effect.Methods = {
return element;
},
visualEffect: function(element, effect, options) {
- element = $(element)
+ element = $(element);
var s = effect.dasherize().camelize(), klass = s.charAt(0).toUpperCase() + s.substring(1);
new Effect[klass](element, options);
return element;
@@ -1104,17 +1107,17 @@ Effect.Methods = {
$w('fade appear grow shrink fold blindUp blindDown slideUp slideDown '+
'pulsate shake puff squish switchOff dropOut').each(
- function(effect) {
+ function(effect) {
Effect.Methods[effect] = function(element, options){
element = $(element);
Effect[effect.charAt(0).toUpperCase() + effect.substring(1)](element, options);
return element;
- }
+ };
}
);
-$w('getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles').each(
+$w('getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles').each(
function(f) { Effect.Methods[f] = Element[f]; }
);
-Element.addMethods(Effect.Methods);
+Element.addMethods(Effect.Methods); \ No newline at end of file
diff --git a/public/javascripts/prototype.js b/public/javascripts/prototype.js
index 546f9fe44..06249a6ae 100644
--- a/public/javascripts/prototype.js
+++ b/public/javascripts/prototype.js
@@ -1,5 +1,5 @@
-/* Prototype JavaScript framework, version 1.6.0.1
- * (c) 2005-2007 Sam Stephenson
+/* Prototype JavaScript framework, version 1.7_rc2
+ * (c) 2005-2010 Sam Stephenson
*
* Prototype is freely distributable under the terms of an MIT-style license.
* For details, see the Prototype web site: http://www.prototypejs.org/
@@ -7,29 +7,53 @@
*--------------------------------------------------------------------------*/
var Prototype = {
- Version: '1.6.0.1',
- Browser: {
- IE: !!(window.attachEvent && !window.opera),
- Opera: !!window.opera,
- WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
- Gecko: navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1,
- MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
- },
+ Version: '1.7_rc2',
+
+ Browser: (function(){
+ var ua = navigator.userAgent;
+ var isOpera = Object.prototype.toString.call(window.opera) == '[object Opera]';
+ return {
+ IE: !!window.attachEvent && !isOpera,
+ Opera: isOpera,
+ WebKit: ua.indexOf('AppleWebKit/') > -1,
+ Gecko: ua.indexOf('Gecko') > -1 && ua.indexOf('KHTML') === -1,
+ MobileSafari: /Apple.*Mobile/.test(ua)
+ }
+ })(),
BrowserFeatures: {
XPath: !!document.evaluate,
- ElementExtensions: !!window.HTMLElement,
- SpecificElementExtensions:
- document.createElement('div').__proto__ &&
- document.createElement('div').__proto__ !==
- document.createElement('form').__proto__
+
+ SelectorsAPI: !!document.querySelector,
+
+ ElementExtensions: (function() {
+ var constructor = window.Element || window.HTMLElement;
+ return !!(constructor && constructor.prototype);
+ })(),
+ SpecificElementExtensions: (function() {
+ if (typeof window.HTMLDivElement !== 'undefined')
+ return true;
+
+ var div = document.createElement('div'),
+ form = document.createElement('form'),
+ isSupported = false;
+
+ if (div['__proto__'] && (div['__proto__'] !== form['__proto__'])) {
+ isSupported = true;
+ }
+
+ div = form = null;
+
+ return isSupported;
+ })()
},
ScriptFragment: '<script[^>]*>([\\S\\s]*?)<\/script>',
JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/,
emptyFunction: function() { },
+
K: function(x) { return x }
};
@@ -37,9 +61,38 @@ if (Prototype.Browser.MobileSafari)
Prototype.BrowserFeatures.SpecificElementExtensions = false;
+var Abstract = { };
+
+
+var Try = {
+ these: function() {
+ var returnValue;
+
+ for (var i = 0, length = arguments.length; i < length; i++) {
+ var lambda = arguments[i];
+ try {
+ returnValue = lambda();
+ break;
+ } catch (e) { }
+ }
+
+ return returnValue;
+ }
+};
+
/* Based on Alex Arnell's inheritance implementation. */
-var Class = {
- create: function() {
+
+var Class = (function() {
+
+ var IS_DONTENUM_BUGGY = (function(){
+ for (var p in { toString: 1 }) {
+ if (p === 'toString') return false;
+ }
+ return true;
+ })();
+
+ function subclass() {};
+ function create() {
var parent = null, properties = $A(arguments);
if (Object.isFunction(properties[0]))
parent = properties.shift();
@@ -53,235 +106,374 @@ var Class = {
klass.subclasses = [];
if (parent) {
- var subclass = function() { };
subclass.prototype = parent.prototype;
klass.prototype = new subclass;
parent.subclasses.push(klass);
}
- for (var i = 0; i < properties.length; i++)
+ for (var i = 0, length = properties.length; i < length; i++)
klass.addMethods(properties[i]);
if (!klass.prototype.initialize)
klass.prototype.initialize = Prototype.emptyFunction;
klass.prototype.constructor = klass;
-
return klass;
}
-};
-Class.Methods = {
- addMethods: function(source) {
- var ancestor = this.superclass && this.superclass.prototype;
- var properties = Object.keys(source);
+ function addMethods(source) {
+ var ancestor = this.superclass && this.superclass.prototype,
+ properties = Object.keys(source);
- if (!Object.keys({ toString: true }).length)
- properties.push("toString", "valueOf");
+ if (IS_DONTENUM_BUGGY) {
+ if (source.toString != Object.prototype.toString)
+ properties.push("toString");
+ if (source.valueOf != Object.prototype.valueOf)
+ properties.push("valueOf");
+ }
for (var i = 0, length = properties.length; i < length; i++) {
var property = properties[i], value = source[property];
if (ancestor && Object.isFunction(value) &&
- value.argumentNames().first() == "$super") {
- var method = value, value = Object.extend((function(m) {
- return function() { return ancestor[m].apply(this, arguments) };
- })(property).wrap(method), {
- valueOf: function() { return method },
- toString: function() { return method.toString() }
- });
+ value.argumentNames()[0] == "$super") {
+ var method = value;
+ value = (function(m) {
+ return function() { return ancestor[m].apply(this, arguments); };
+ })(property).wrap(method);
+
+ value.valueOf = method.valueOf.bind(method);
+ value.toString = method.toString.bind(method);
}
this.prototype[property] = value;
}
return this;
}
-};
-var Abstract = { };
+ return {
+ create: create,
+ Methods: {
+ addMethods: addMethods
+ }
+ };
+})();
+(function() {
-Object.extend = function(destination, source) {
- for (var property in source)
- destination[property] = source[property];
- return destination;
-};
+ var _toString = Object.prototype.toString,
+ NULL_TYPE = 'Null',
+ UNDEFINED_TYPE = 'Undefined',
+ BOOLEAN_TYPE = 'Boolean',
+ NUMBER_TYPE = 'Number',
+ STRING_TYPE = 'String',
+ OBJECT_TYPE = 'Object',
+ BOOLEAN_CLASS = '[object Boolean]',
+ NUMBER_CLASS = '[object Number]',
+ STRING_CLASS = '[object String]',
+ ARRAY_CLASS = '[object Array]',
+ NATIVE_JSON_STRINGIFY_SUPPORT = window.JSON &&
+ typeof JSON.stringify === 'function' &&
+ JSON.stringify(0) === '0' &&
+ typeof JSON.stringify(Prototype.K) === 'undefined';
+
+ function Type(o) {
+ switch(o) {
+ case null: return NULL_TYPE;
+ case (void 0): return UNDEFINED_TYPE;
+ }
+ var type = typeof o;
+ switch(type) {
+ case 'boolean': return BOOLEAN_TYPE;
+ case 'number': return NUMBER_TYPE;
+ case 'string': return STRING_TYPE;
+ }
+ return OBJECT_TYPE;
+ }
-Object.extend(Object, {
- inspect: function(object) {
+ function extend(destination, source) {
+ for (var property in source)
+ destination[property] = source[property];
+ return destination;
+ }
+
+ function inspect(object) {
try {
- if (Object.isUndefined(object)) return 'undefined';
+ if (isUndefined(object)) return 'undefined';
if (object === null) return 'null';
- return object.inspect ? object.inspect() : object.toString();
+ return object.inspect ? object.inspect() : String(object);
} catch (e) {
if (e instanceof RangeError) return '...';
throw e;
}
- },
+ }
- toJSON: function(object) {
- var type = typeof object;
- switch (type) {
- case 'undefined':
- case 'function':
- case 'unknown': return;
- case 'boolean': return object.toString();
+ function toJSON(value) {
+ return Str('', { '': value }, []);
+ }
+
+ function Str(key, holder, stack) {
+ var value = holder[key],
+ type = typeof value;
+
+ if (Type(value) === OBJECT_TYPE && typeof value.toJSON === 'function') {
+ value = value.toJSON(key);
}
- if (object === null) return 'null';
- if (object.toJSON) return object.toJSON();
- if (Object.isElement(object)) return;
+ var _class = _toString.call(value);
- var results = [];
- for (var property in object) {
- var value = Object.toJSON(object[property]);
- if (!Object.isUndefined(value))
- results.push(property.toJSON() + ': ' + value);
+ switch (_class) {
+ case NUMBER_CLASS:
+ case BOOLEAN_CLASS:
+ case STRING_CLASS:
+ value = value.valueOf();
}
- return '{' + results.join(', ') + '}';
- },
+ switch (value) {
+ case null: return 'null';
+ case true: return 'true';
+ case false: return 'false';
+ }
+
+ type = typeof value;
+ switch (type) {
+ case 'string':
+ return value.inspect(true);
+ case 'number':
+ return isFinite(value) ? String(value) : 'null';
+ case 'object':
+
+ for (var i = 0, length = stack.length; i < length; i++) {
+ if (stack[i] === value) { throw new TypeError(); }
+ }
+ stack.push(value);
- toQueryString: function(object) {
+ var partial = [];
+ if (_class === ARRAY_CLASS) {
+ for (var i = 0, length = value.length; i < length; i++) {
+ var str = Str(i, value, stack);
+ partial.push(typeof str === 'undefined' ? 'null' : str);
+ }
+ partial = '[' + partial.join(',') + ']';
+ } else {
+ var keys = Object.keys(value);
+ for (var i = 0, length = keys.length; i < length; i++) {
+ var key = keys[i], str = Str(key, value, stack);
+ if (typeof str !== "undefined") {
+ partial.push(key.inspect(true)+ ':' + str);
+ }
+ }
+ partial = '{' + partial.join(',') + '}';
+ }
+ stack.pop();
+ return partial;
+ }
+ }
+
+ function stringify(object) {
+ return JSON.stringify(object);
+ }
+
+ function toQueryString(object) {
return $H(object).toQueryString();
- },
+ }
- toHTML: function(object) {
+ function toHTML(object) {
return object && object.toHTML ? object.toHTML() : String.interpret(object);
- },
+ }
- keys: function(object) {
- var keys = [];
- for (var property in object)
- keys.push(property);
- return keys;
- },
+ function keys(object) {
+ if (Type(object) !== OBJECT_TYPE) { throw new TypeError(); }
+ var results = [];
+ for (var property in object) {
+ if (object.hasOwnProperty(property)) {
+ results.push(property);
+ }
+ }
+ return results;
+ }
- values: function(object) {
- var values = [];
+ function values(object) {
+ var results = [];
for (var property in object)
- values.push(object[property]);
- return values;
- },
+ results.push(object[property]);
+ return results;
+ }
- clone: function(object) {
- return Object.extend({ }, object);
- },
+ function clone(object) {
+ return extend({ }, object);
+ }
- isElement: function(object) {
- return object && object.nodeType == 1;
- },
+ function isElement(object) {
+ return !!(object && object.nodeType == 1);
+ }
- isArray: function(object) {
- return object && object.constructor === Array;
- },
+ function isArray(object) {
+ return _toString.call(object) === ARRAY_CLASS;
+ }
+
+ var hasNativeIsArray = (typeof Array.isArray == 'function')
+ && Array.isArray([]) && !Array.isArray({});
- isHash: function(object) {
+ if (hasNativeIsArray) {
+ isArray = Array.isArray;
+ }
+
+ function isHash(object) {
return object instanceof Hash;
- },
+ }
- isFunction: function(object) {
- return typeof object == "function";
- },
+ function isFunction(object) {
+ return typeof object === "function";
+ }
- isString: function(object) {
- return typeof object == "string";
- },
+ function isString(object) {
+ return _toString.call(object) === STRING_CLASS;
+ }
- isNumber: function(object) {
- return typeof object == "number";
- },
+ function isNumber(object) {
+ return _toString.call(object) === NUMBER_CLASS;
+ }
- isUndefined: function(object) {
- return typeof object == "undefined";
+ function isUndefined(object) {
+ return typeof object === "undefined";
}
-});
-Object.extend(Function.prototype, {
- argumentNames: function() {
- var names = this.toString().match(/^[\s\(]*function[^(]*\((.*?)\)/)[1].split(",").invoke("strip");
+ extend(Object, {
+ extend: extend,
+ inspect: inspect,
+ toJSON: NATIVE_JSON_STRINGIFY_SUPPORT ? stringify : toJSON,
+ toQueryString: toQueryString,
+ toHTML: toHTML,
+ keys: Object.keys || keys,
+ values: values,
+ clone: clone,
+ isElement: isElement,
+ isArray: isArray,
+ isHash: isHash,
+ isFunction: isFunction,
+ isString: isString,
+ isNumber: isNumber,
+ isUndefined: isUndefined
+ });
+})();
+Object.extend(Function.prototype, (function() {
+ var slice = Array.prototype.slice;
+
+ function update(array, args) {
+ var arrayLength = array.length, length = args.length;
+ while (length--) array[arrayLength + length] = args[length];
+ return array;
+ }
+
+ function merge(array, args) {
+ array = slice.call(array, 0);
+ return update(array, args);
+ }
+
+ function argumentNames() {
+ var names = this.toString().match(/^[\s\(]*function[^(]*\(([^)]*)\)/)[1]
+ .replace(/\/\/.*?[\r\n]|\/\*(?:.|[\r\n])*?\*\//g, '')
+ .replace(/\s+/g, '').split(',');
return names.length == 1 && !names[0] ? [] : names;
- },
+ }
- bind: function() {
+ function bind(context) {
if (arguments.length < 2 && Object.isUndefined(arguments[0])) return this;
- var __method = this, args = $A(arguments), object = args.shift();
+ var __method = this, args = slice.call(arguments, 1);
return function() {
- return __method.apply(object, args.concat($A(arguments)));
+ var a = merge(args, arguments);
+ return __method.apply(context, a);
}
- },
+ }
- bindAsEventListener: function() {
- var __method = this, args = $A(arguments), object = args.shift();
+ function bindAsEventListener(context) {
+ var __method = this, args = slice.call(arguments, 1);
return function(event) {
- return __method.apply(object, [event || window.event].concat(args));
+ var a = update([event || window.event], args);
+ return __method.apply(context, a);
}
- },
+ }
- curry: function() {
+ function curry() {
if (!arguments.length) return this;
- var __method = this, args = $A(arguments);
+ var __method = this, args = slice.call(arguments, 0);
return function() {
- return __method.apply(this, args.concat($A(arguments)));
+ var a = merge(args, arguments);
+ return __method.apply(this, a);
}
- },
+ }
- delay: function() {
- var __method = this, args = $A(arguments), timeout = args.shift() * 1000;
+ function delay(timeout) {
+ var __method = this, args = slice.call(arguments, 1);
+ timeout = timeout * 1000;
return window.setTimeout(function() {
return __method.apply(__method, args);
}, timeout);
- },
+ }
+
+ function defer() {
+ var args = update([0.01], arguments);
+ return this.delay.apply(this, args);
+ }
- wrap: function(wrapper) {
+ function wrap(wrapper) {
var __method = this;
return function() {
- return wrapper.apply(this, [__method.bind(this)].concat($A(arguments)));
+ var a = update([__method.bind(this)], arguments);
+ return wrapper.apply(this, a);
}
- },
+ }
- methodize: function() {
+ function methodize() {
if (this._methodized) return this._methodized;
var __method = this;
return this._methodized = function() {
- return __method.apply(null, [this].concat($A(arguments)));
+ var a = update([this], arguments);
+ return __method.apply(null, a);
};
}
-});
-Function.prototype.defer = Function.prototype.delay.curry(0.01);
+ return {
+ argumentNames: argumentNames,
+ bind: bind,
+ bindAsEventListener: bindAsEventListener,
+ curry: curry,
+ delay: delay,
+ defer: defer,
+ wrap: wrap,
+ methodize: methodize
+ }
+})());
-Date.prototype.toJSON = function() {
- return '"' + this.getUTCFullYear() + '-' +
- (this.getUTCMonth() + 1).toPaddedString(2) + '-' +
- this.getUTCDate().toPaddedString(2) + 'T' +
- this.getUTCHours().toPaddedString(2) + ':' +
- this.getUTCMinutes().toPaddedString(2) + ':' +
- this.getUTCSeconds().toPaddedString(2) + 'Z"';
-};
-var Try = {
- these: function() {
- var returnValue;
- for (var i = 0, length = arguments.length; i < length; i++) {
- var lambda = arguments[i];
- try {
- returnValue = lambda();
- break;
- } catch (e) { }
- }
+(function(proto) {
- return returnValue;
+
+ function toISOString() {
+ return this.getUTCFullYear() + '-' +
+ (this.getUTCMonth() + 1).toPaddedString(2) + '-' +
+ this.getUTCDate().toPaddedString(2) + 'T' +
+ this.getUTCHours().toPaddedString(2) + ':' +
+ this.getUTCMinutes().toPaddedString(2) + ':' +
+ this.getUTCSeconds().toPaddedString(2) + 'Z';
}
-};
+
+
+ function toJSON() {
+ return this.toISOString();
+ }
+
+ if (!proto.toISOString) proto.toISOString = toISOString;
+ if (!proto.toJSON) proto.toJSON = toJSON;
+
+})(Date.prototype);
+
RegExp.prototype.match = RegExp.prototype.test;
RegExp.escape = function(str) {
return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
};
-
-/*--------------------------------------------------------------------------*/
-
var PeriodicalExecuter = Class.create({
initialize: function(callback, frequency) {
this.callback = callback;
@@ -310,8 +502,10 @@ var PeriodicalExecuter = Class.create({
try {
this.currentlyExecuting = true;
this.execute();
- } finally {
this.currentlyExecuting = false;
+ } catch(e) {
+ this.currentlyExecuting = false;
+ throw e;
}
}
}
@@ -330,10 +524,28 @@ Object.extend(String, {
}
});
-Object.extend(String.prototype, {
- gsub: function(pattern, replacement) {
+Object.extend(String.prototype, (function() {
+ var NATIVE_JSON_PARSE_SUPPORT = window.JSON &&
+ typeof JSON.parse === 'function' &&
+ JSON.parse('{"test": true}').test;
+
+ function prepareReplacement(replacement) {
+ if (Object.isFunction(replacement)) return replacement;
+ var template = new Template(replacement);
+ return function(match) { return template.evaluate(match) };
+ }
+
+ function gsub(pattern, replacement) {
var result = '', source = this, match;
- replacement = arguments.callee.prepareReplacement(replacement);
+ replacement = prepareReplacement(replacement);
+
+ if (Object.isString(pattern))
+ pattern = RegExp.escape(pattern);
+
+ if (!(pattern.length || pattern.source)) {
+ replacement = replacement('');
+ return replacement + source.split('').join(replacement) + replacement;
+ }
while (source.length > 0) {
if (match = source.match(pattern)) {
@@ -345,76 +557,72 @@ Object.extend(String.prototype, {
}
}
return result;
- },
+ }
- sub: function(pattern, replacement, count) {
- replacement = this.gsub.prepareReplacement(replacement);
+ function sub(pattern, replacement, count) {
+ replacement = prepareReplacement(replacement);
count = Object.isUndefined(count) ? 1 : count;
return this.gsub(pattern, function(match) {
if (--count < 0) return match[0];
return replacement(match);
});
- },
+ }
- scan: function(pattern, iterator) {
+ function scan(pattern, iterator) {
this.gsub(pattern, iterator);
return String(this);
- },
+ }
- truncate: function(length, truncation) {
+ function truncate(length, truncation) {
length = length || 30;
truncation = Object.isUndefined(truncation) ? '...' : truncation;
return this.length > length ?
this.slice(0, length - truncation.length) + truncation : String(this);
- },
+ }
- strip: function() {
+ function strip() {
return this.replace(/^\s+/, '').replace(/\s+$/, '');
- },
+ }
- stripTags: function() {
- return this.replace(/<\/?[^>]+>/gi, '');
- },
+ function stripTags() {
+ return this.replace(/<\w+(\s+("[^"]*"|'[^']*'|[^>])+)?>|<\/\w+>/gi, '');
+ }
- stripScripts: function() {
+ function stripScripts() {
return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');
- },
+ }
- extractScripts: function() {
- var matchAll = new RegExp(Prototype.ScriptFragment, 'img');
- var matchOne = new RegExp(Prototype.ScriptFragment, 'im');
+ function extractScripts() {
+ var matchAll = new RegExp(Prototype.ScriptFragment, 'img'),
+ matchOne = new RegExp(Prototype.ScriptFragment, 'im');
return (this.match(matchAll) || []).map(function(scriptTag) {
return (scriptTag.match(matchOne) || ['', ''])[1];
});
- },
+ }
- evalScripts: function() {
+ function evalScripts() {
return this.extractScripts().map(function(script) { return eval(script) });
- },
+ }
- escapeHTML: function() {
- var self = arguments.callee;
- self.text.data = this;
- return self.div.innerHTML;
- },
+ function escapeHTML() {
+ return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
+ }
+
+ function unescapeHTML() {
+ return this.stripTags().replace(/&lt;/g,'<').replace(/&gt;/g,'>').replace(/&amp;/g,'&');
+ }
- unescapeHTML: function() {
- var div = new Element('div');
- div.innerHTML = this.stripTags();
- return div.childNodes[0] ? (div.childNodes.length > 1 ?
- $A(div.childNodes).inject('', function(memo, node) { return memo+node.nodeValue }) :
- div.childNodes[0].nodeValue) : '';
- },
- toQueryParams: function(separator) {
+ function toQueryParams(separator) {
var match = this.strip().match(/([^?#]*)(#.*)?$/);
if (!match) return { };
return match[1].split(separator || '&').inject({ }, function(hash, pair) {
if ((pair = pair.split('='))[0]) {
- var key = decodeURIComponent(pair.shift());
- var value = pair.length > 1 ? pair.join('=') : pair[0];
+ var key = decodeURIComponent(pair.shift()),
+ value = pair.length > 1 ? pair.join('=') : pair[0];
+
if (value != undefined) value = decodeURIComponent(value);
if (key in hash) {
@@ -425,128 +633,144 @@ Object.extend(String.prototype, {
}
return hash;
});
- },
+ }
- toArray: function() {
+ function toArray() {
return this.split('');
- },
+ }
- succ: function() {
+ function succ() {
return this.slice(0, this.length - 1) +
String.fromCharCode(this.charCodeAt(this.length - 1) + 1);
- },
+ }
- times: function(count) {
+ function times(count) {
return count < 1 ? '' : new Array(count + 1).join(this);
- },
-
- camelize: function() {
- var parts = this.split('-'), len = parts.length;
- if (len == 1) return parts[0];
-
- var camelized = this.charAt(0) == '-'
- ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1)
- : parts[0];
-
- for (var i = 1; i < len; i++)
- camelized += parts[i].charAt(0).toUpperCase() + parts[i].substring(1);
+ }
- return camelized;
- },
+ function camelize() {
+ return this.replace(/-+(.)?/g, function(match, chr) {
+ return chr ? chr.toUpperCase() : '';
+ });
+ }
- capitalize: function() {
+ function capitalize() {
return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase();
- },
+ }
- underscore: function() {
- return this.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{1}_#{2}').gsub(/-/,'_').toLowerCase();
- },
+ function underscore() {
+ return this.replace(/::/g, '/')
+ .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')
+ .replace(/([a-z\d])([A-Z])/g, '$1_$2')
+ .replace(/-/g, '_')
+ .toLowerCase();
+ }
- dasherize: function() {
- return this.gsub(/_/,'-');
- },
+ function dasherize() {
+ return this.replace(/_/g, '-');
+ }
- inspect: function(useDoubleQuotes) {
- var escapedString = this.gsub(/[\x00-\x1f\\]/, function(match) {
- var character = String.specialChar[match[0]];
- return character ? character : '\\u00' + match[0].charCodeAt().toPaddedString(2, 16);
+ function inspect(useDoubleQuotes) {
+ var escapedString = this.replace(/[\x00-\x1f\\]/g, function(character) {
+ if (character in String.specialChar) {
+ return String.specialChar[character];
+ }
+ return '\\u00' + character.charCodeAt().toPaddedString(2, 16);
});
if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') + '"';
return "'" + escapedString.replace(/'/g, '\\\'') + "'";
- },
-
- toJSON: function() {
- return this.inspect(true);
- },
+ }
- unfilterJSON: function(filter) {
- return this.sub(filter || Prototype.JSONFilter, '#{1}');
- },
+ function unfilterJSON(filter) {
+ return this.replace(filter || Prototype.JSONFilter, '$1');
+ }
- isJSON: function() {
+ function isJSON() {
var str = this;
if (str.blank()) return false;
- str = this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, '');
- return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str);
- },
+ str = str.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@');
+ str = str.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']');
+ str = str.replace(/(?:^|:|,)(?:\s*\[)+/g, '');
+ return (/^[\],:{}\s]*$/).test(str);
+ }
- evalJSON: function(sanitize) {
- var json = this.unfilterJSON();
+ function evalJSON(sanitize) {
+ var json = this.unfilterJSON(),
+ cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
+ if (cx.test(json)) {
+ json = json.replace(cx, function (a) {
+ return '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
+ });
+ }
try {
if (!sanitize || json.isJSON()) return eval('(' + json + ')');
} catch (e) { }
throw new SyntaxError('Badly formed JSON string: ' + this.inspect());
- },
+ }
- include: function(pattern) {
+ function parseJSON() {
+ var json = this.unfilterJSON();
+ return JSON.parse(json);
+ }
+
+ function include(pattern) {
return this.indexOf(pattern) > -1;
- },
+ }
- startsWith: function(pattern) {
- return this.indexOf(pattern) === 0;
- },
+ function startsWith(pattern) {
+ return this.lastIndexOf(pattern, 0) === 0;
+ }
- endsWith: function(pattern) {
+ function endsWith(pattern) {
var d = this.length - pattern.length;
- return d >= 0 && this.lastIndexOf(pattern) === d;
- },
+ return d >= 0 && this.indexOf(pattern, d) === d;
+ }
- empty: function() {
+ function empty() {
return this == '';
- },
+ }
- blank: function() {
+ function blank() {
return /^\s*$/.test(this);
- },
-
- interpolate: function(object, pattern) {
- return new Template(this, pattern).evaluate(object);
}
-});
-if (Prototype.Browser.WebKit || Prototype.Browser.IE) Object.extend(String.prototype, {
- escapeHTML: function() {
- return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
- },
- unescapeHTML: function() {
- return this.replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>');
+ function interpolate(object, pattern) {
+ return new Template(this, pattern).evaluate(object);
}
-});
-
-String.prototype.gsub.prepareReplacement = function(replacement) {
- if (Object.isFunction(replacement)) return replacement;
- var template = new Template(replacement);
- return function(match) { return template.evaluate(match) };
-};
-String.prototype.parseQuery = String.prototype.toQueryParams;
-
-Object.extend(String.prototype.escapeHTML, {
- div: document.createElement('div'),
- text: document.createTextNode('')
-});
-
-with (String.prototype.escapeHTML) div.appendChild(text);
+ return {
+ gsub: gsub,
+ sub: sub,
+ scan: scan,
+ truncate: truncate,
+ strip: String.prototype.trim || strip,
+ stripTags: stripTags,
+ stripScripts: stripScripts,
+ extractScripts: extractScripts,
+ evalScripts: evalScripts,
+ escapeHTML: escapeHTML,
+ unescapeHTML: unescapeHTML,
+ toQueryParams: toQueryParams,
+ parseQuery: toQueryParams,
+ toArray: toArray,
+ succ: succ,
+ times: times,
+ camelize: camelize,
+ capitalize: capitalize,
+ underscore: underscore,
+ dasherize: dasherize,
+ inspect: inspect,
+ unfilterJSON: unfilterJSON,
+ isJSON: isJSON,
+ evalJSON: NATIVE_JSON_PARSE_SUPPORT ? parseJSON : evalJSON,
+ include: include,
+ startsWith: startsWith,
+ endsWith: endsWith,
+ empty: empty,
+ blank: blank,
+ interpolate: interpolate
+ };
+})());
var Template = Class.create({
initialize: function(template, pattern) {
@@ -555,22 +779,23 @@ var Template = Class.create({
},
evaluate: function(object) {
- if (Object.isFunction(object.toTemplateReplacements))
+ if (object && Object.isFunction(object.toTemplateReplacements))
object = object.toTemplateReplacements();
return this.template.gsub(this.pattern, function(match) {
- if (object == null) return '';
+ if (object == null) return (match[1] + '');
var before = match[1] || '';
if (before == '\\') return match[2];
- var ctx = object, expr = match[3];
- var pattern = /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;
+ var ctx = object, expr = match[3],
+ pattern = /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;
+
match = pattern.exec(expr);
if (match == null) return before;
while (match != null) {
- var comp = match[1].startsWith('[') ? match[2].gsub('\\\\]', ']') : match[1];
+ var comp = match[1].startsWith('[') ? match[2].replace(/\\\\]/g, ']') : match[1];
ctx = ctx[comp];
if (null == ctx || '' == match[3]) break;
expr = expr.substring('[' == match[3] ? match[1].length : match[0].length);
@@ -578,101 +803,98 @@ var Template = Class.create({
}
return before + String.interpret(ctx);
- }.bind(this));
+ });
}
});
Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/;
var $break = { };
-var Enumerable = {
- each: function(iterator, context) {
+var Enumerable = (function() {
+ function each(iterator, context) {
var index = 0;
- iterator = iterator.bind(context);
try {
this._each(function(value) {
- iterator(value, index++);
+ iterator.call(context, value, index++);
});
} catch (e) {
if (e != $break) throw e;
}
return this;
- },
+ }
- eachSlice: function(number, iterator, context) {
- iterator = iterator ? iterator.bind(context) : Prototype.K;
+ function eachSlice(number, iterator, context) {
var index = -number, slices = [], array = this.toArray();
+ if (number < 1) return array;
while ((index += number) < array.length)
slices.push(array.slice(index, index+number));
return slices.collect(iterator, context);
- },
+ }
- all: function(iterator, context) {
- iterator = iterator ? iterator.bind(context) : Prototype.K;
+ function all(iterator, context) {
+ iterator = iterator || Prototype.K;
var result = true;
this.each(function(value, index) {
- result = result && !!iterator(value, index);
+ result = result && !!iterator.call(context, value, index);
if (!result) throw $break;
});
return result;
- },
+ }
- any: function(iterator, context) {
- iterator = iterator ? iterator.bind(context) : Prototype.K;
+ function any(iterator, context) {
+ iterator = iterator || Prototype.K;
var result = false;
this.each(function(value, index) {
- if (result = !!iterator(value, index))
+ if (result = !!iterator.call(context, value, index))
throw $break;
});
return result;
- },
+ }
- collect: function(iterator, context) {
- iterator = iterator ? iterator.bind(context) : Prototype.K;
+ function collect(iterator, context) {
+ iterator = iterator || Prototype.K;
var results = [];
this.each(function(value, index) {
- results.push(iterator(value, index));
+ results.push(iterator.call(context, value, index));
});
return results;
- },
+ }
- detect: function(iterator, context) {
- iterator = iterator.bind(context);
+ function detect(iterator, context) {
var result;
this.each(function(value, index) {
- if (iterator(value, index)) {
+ if (iterator.call(context, value, index)) {
result = value;
throw $break;
}
});
return result;
- },
+ }
- findAll: function(iterator, context) {
- iterator = iterator.bind(context);
+ function findAll(iterator, context) {
var results = [];
this.each(function(value, index) {
- if (iterator(value, index))
+ if (iterator.call(context, value, index))
results.push(value);
});
return results;
- },
+ }
- grep: function(filter, iterator, context) {
- iterator = iterator ? iterator.bind(context) : Prototype.K;
+ function grep(filter, iterator, context) {
+ iterator = iterator || Prototype.K;
var results = [];
if (Object.isString(filter))
- filter = new RegExp(filter);
+ filter = new RegExp(RegExp.escape(filter));
this.each(function(value, index) {
if (filter.match(value))
- results.push(iterator(value, index));
+ results.push(iterator.call(context, value, index));
});
return results;
- },
+ }
- include: function(object) {
+ function include(object) {
if (Object.isFunction(this.indexOf))
if (this.indexOf(object) != -1) return true;
@@ -684,96 +906,96 @@ var Enumerable = {
}
});
return found;
- },
+ }
- inGroupsOf: function(number, fillWith) {
+ function inGroupsOf(number, fillWith) {
fillWith = Object.isUndefined(fillWith) ? null : fillWith;
return this.eachSlice(number, function(slice) {
while(slice.length < number) slice.push(fillWith);
return slice;
});
- },
+ }
- inject: function(memo, iterator, context) {
- iterator = iterator.bind(context);
+ function inject(memo, iterator, context) {
this.each(function(value, index) {
- memo = iterator(memo, value, index);
+ memo = iterator.call(context, memo, value, index);
});
return memo;
- },
+ }
- invoke: function(method) {
+ function invoke(method) {
var args = $A(arguments).slice(1);
return this.map(function(value) {
return value[method].apply(value, args);
});
- },
+ }
- max: function(iterator, context) {
- iterator = iterator ? iterator.bind(context) : Prototype.K;
+ function max(iterator, context) {
+ iterator = iterator || Prototype.K;
var result;
this.each(function(value, index) {
- value = iterator(value, index);
+ value = iterator.call(context, value, index);
if (result == null || value >= result)
result = value;
});
return result;
- },
+ }
- min: function(iterator, context) {
- iterator = iterator ? iterator.bind(context) : Prototype.K;
+ function min(iterator, context) {
+ iterator = iterator || Prototype.K;
var result;
this.each(function(value, index) {
- value = iterator(value, index);
+ value = iterator.call(context, value, index);
if (result == null || value < result)
result = value;
});
return result;
- },
+ }
- partition: function(iterator, context) {
- iterator = iterator ? iterator.bind(context) : Prototype.K;
+ function partition(iterator, context) {
+ iterator = iterator || Prototype.K;
var trues = [], falses = [];
this.each(function(value, index) {
- (iterator(value, index) ?
+ (iterator.call(context, value, index) ?
trues : falses).push(value);
});
return [trues, falses];
- },
+ }
- pluck: function(property) {
+ function pluck(property) {
var results = [];
this.each(function(value) {
results.push(value[property]);
});
return results;
- },
+ }
- reject: function(iterator, context) {
- iterator = iterator.bind(context);
+ function reject(iterator, context) {
var results = [];
this.each(function(value, index) {
- if (!iterator(value, index))
+ if (!iterator.call(context, value, index))
results.push(value);
});
return results;
- },
+ }
- sortBy: function(iterator, context) {
- iterator = iterator.bind(context);
+ function sortBy(iterator, context) {
return this.map(function(value, index) {
- return {value: value, criteria: iterator(value, index)};
+ return {
+ value: value,
+ criteria: iterator.call(context, value, index)
+ };
}).sort(function(left, right) {
var a = left.criteria, b = right.criteria;
return a < b ? -1 : a > b ? 1 : 0;
}).pluck('value');
- },
+ }
- toArray: function() {
+ function toArray() {
return this.map();
- },
+ }
- zip: function() {
+ function zip() {
var iterator = Prototype.K, args = $A(arguments);
if (Object.isFunction(args.last()))
iterator = args.pop();
@@ -782,330 +1004,409 @@ var Enumerable = {
return this.map(function(value, index) {
return iterator(collections.pluck(index));
});
- },
+ }
- size: function() {
+ function size() {
return this.toArray().length;
- },
+ }
- inspect: function() {
+ function inspect() {
return '#<Enumerable:' + this.toArray().inspect() + '>';
}
-};
-Object.extend(Enumerable, {
- map: Enumerable.collect,
- find: Enumerable.detect,
- select: Enumerable.findAll,
- filter: Enumerable.findAll,
- member: Enumerable.include,
- entries: Enumerable.toArray,
- every: Enumerable.all,
- some: Enumerable.any
-});
+
+
+
+
+
+
+
+
+ return {
+ each: each,
+ eachSlice: eachSlice,
+ all: all,
+ every: all,
+ any: any,
+ some: any,
+ collect: collect,
+ map: collect,
+ detect: detect,
+ findAll: findAll,
+ select: findAll,
+ filter: findAll,
+ grep: grep,
+ include: include,
+ member: include,
+ inGroupsOf: inGroupsOf,
+ inject: inject,
+ invoke: invoke,
+ max: max,
+ min: min,
+ partition: partition,
+ pluck: pluck,
+ reject: reject,
+ sortBy: sortBy,
+ toArray: toArray,
+ entries: toArray,
+ zip: zip,
+ size: size,
+ inspect: inspect,
+ find: detect
+ };
+})();
+
function $A(iterable) {
if (!iterable) return [];
- if (iterable.toArray) return iterable.toArray();
- var length = iterable.length, results = new Array(length);
+ if ('toArray' in Object(iterable)) return iterable.toArray();
+ var length = iterable.length || 0, results = new Array(length);
while (length--) results[length] = iterable[length];
return results;
}
-if (Prototype.Browser.WebKit) {
- function $A(iterable) {
- if (!iterable) return [];
- if (!(Object.isFunction(iterable) && iterable == '[object NodeList]') &&
- iterable.toArray) return iterable.toArray();
- var length = iterable.length, results = new Array(length);
- while (length--) results[length] = iterable[length];
- return results;
- }
+
+function $w(string) {
+ if (!Object.isString(string)) return [];
+ string = string.strip();
+ return string ? string.split(/\s+/) : [];
}
Array.from = $A;
-Object.extend(Array.prototype, Enumerable);
-if (!Array.prototype._reverse) Array.prototype._reverse = Array.prototype.reverse;
+(function() {
+ var arrayProto = Array.prototype,
+ slice = arrayProto.slice,
+ _each = arrayProto.forEach; // use native browser JS 1.6 implementation if available
-Object.extend(Array.prototype, {
- _each: function(iterator) {
+ function each(iterator) {
for (var i = 0, length = this.length; i < length; i++)
iterator(this[i]);
- },
+ }
+ if (!_each) _each = each;
- clear: function() {
+ function clear() {
this.length = 0;
return this;
- },
+ }
- first: function() {
+ function first() {
return this[0];
- },
+ }
- last: function() {
+ function last() {
return this[this.length - 1];
- },
+ }
- compact: function() {
+ function compact() {
return this.select(function(value) {
return value != null;
});
- },
+ }
- flatten: function() {
+ function flatten() {
return this.inject([], function(array, value) {
- return array.concat(Object.isArray(value) ?
- value.flatten() : [value]);
+ if (Object.isArray(value))
+ return array.concat(value.flatten());
+ array.push(value);
+ return array;
});
- },
+ }
- without: function() {
- var values = $A(arguments);
+ function without() {
+ var values = slice.call(arguments, 0);
return this.select(function(value) {
return !values.include(value);
});
- },
-
- reverse: function(inline) {
- return (inline !== false ? this : this.toArray())._reverse();
- },
+ }
- reduce: function() {
- return this.length > 1 ? this : this[0];
- },
+ function reverse(inline) {
+ return (inline === false ? this.toArray() : this)._reverse();
+ }
- uniq: function(sorted) {
+ function uniq(sorted) {
return this.inject([], function(array, value, index) {
if (0 == index || (sorted ? array.last() != value : !array.include(value)))
array.push(value);
return array;
});
- },
+ }
- intersect: function(array) {
+ function intersect(array) {
return this.uniq().findAll(function(item) {
return array.detect(function(value) { return item === value });
});
- },
+ }
- clone: function() {
- return [].concat(this);
- },
- size: function() {
+ function clone() {
+ return slice.call(this, 0);
+ }
+
+ function size() {
return this.length;
- },
+ }
- inspect: function() {
+ function inspect() {
return '[' + this.map(Object.inspect).join(', ') + ']';
- },
-
- toJSON: function() {
- var results = [];
- this.each(function(object) {
- var value = Object.toJSON(object);
- if (!Object.isUndefined(value)) results.push(value);
- });
- return '[' + results.join(', ') + ']';
}
-});
-
-// use native browser JS 1.6 implementation if available
-if (Object.isFunction(Array.prototype.forEach))
- Array.prototype._each = Array.prototype.forEach;
-
-if (!Array.prototype.indexOf) Array.prototype.indexOf = function(item, i) {
- i || (i = 0);
- var length = this.length;
- if (i < 0) i = length + i;
- for (; i < length; i++)
- if (this[i] === item) return i;
- return -1;
-};
-
-if (!Array.prototype.lastIndexOf) Array.prototype.lastIndexOf = function(item, i) {
- i = isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1;
- var n = this.slice(0, i).reverse().indexOf(item);
- return (n < 0) ? n : i - n - 1;
-};
-Array.prototype.toArray = Array.prototype.clone;
+ function indexOf(item, i) {
+ i || (i = 0);
+ var length = this.length;
+ if (i < 0) i = length + i;
+ for (; i < length; i++)
+ if (this[i] === item) return i;
+ return -1;
+ }
-function $w(string) {
- if (!Object.isString(string)) return [];
- string = string.strip();
- return string ? string.split(/\s+/) : [];
-}
+ function lastIndexOf(item, i) {
+ i = isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1;
+ var n = this.slice(0, i).reverse().indexOf(item);
+ return (n < 0) ? n : i - n - 1;
+ }
-if (Prototype.Browser.Opera){
- Array.prototype.concat = function() {
- var array = [];
- for (var i = 0, length = this.length; i < length; i++) array.push(this[i]);
+ function concat() {
+ var array = slice.call(this, 0), item;
for (var i = 0, length = arguments.length; i < length; i++) {
- if (Object.isArray(arguments[i])) {
- for (var j = 0, arrayLength = arguments[i].length; j < arrayLength; j++)
- array.push(arguments[i][j]);
+ item = arguments[i];
+ if (Object.isArray(item) && !('callee' in item)) {
+ for (var j = 0, arrayLength = item.length; j < arrayLength; j++)
+ array.push(item[j]);
} else {
- array.push(arguments[i]);
+ array.push(item);
}
}
return array;
- };
-}
-Object.extend(Number.prototype, {
- toColorPart: function() {
- return this.toPaddedString(2, 16);
- },
-
- succ: function() {
- return this + 1;
- },
+ }
- times: function(iterator) {
- $R(0, this, true).each(iterator);
- return this;
- },
+ Object.extend(arrayProto, Enumerable);
+
+ if (!arrayProto._reverse)
+ arrayProto._reverse = arrayProto.reverse;
+
+ Object.extend(arrayProto, {
+ _each: _each,
+ clear: clear,
+ first: first,
+ last: last,
+ compact: compact,
+ flatten: flatten,
+ without: without,
+ reverse: reverse,
+ uniq: uniq,
+ intersect: intersect,
+ clone: clone,
+ toArray: clone,
+ size: size,
+ inspect: inspect
+ });
- toPaddedString: function(length, radix) {
- var string = this.toString(radix || 10);
- return '0'.times(length - string.length) + string;
- },
+ var CONCAT_ARGUMENTS_BUGGY = (function() {
+ return [].concat(arguments)[0][0] !== 1;
+ })(1,2)
- toJSON: function() {
- return isFinite(this) ? this.toString() : 'null';
- }
-});
+ if (CONCAT_ARGUMENTS_BUGGY) arrayProto.concat = concat;
-$w('abs round ceil floor').each(function(method){
- Number.prototype[method] = Math[method].methodize();
-});
+ if (!arrayProto.indexOf) arrayProto.indexOf = indexOf;
+ if (!arrayProto.lastIndexOf) arrayProto.lastIndexOf = lastIndexOf;
+})();
function $H(object) {
return new Hash(object);
};
var Hash = Class.create(Enumerable, (function() {
-
- function toQueryPair(key, value) {
- if (Object.isUndefined(value)) return key;
- return key + '=' + encodeURIComponent(String.interpret(value));
+ function initialize(object) {
+ this._object = Object.isHash(object) ? object.toObject() : Object.clone(object);
}
- return {
- initialize: function(object) {
- this._object = Object.isHash(object) ? object.toObject() : Object.clone(object);
- },
- _each: function(iterator) {
- for (var key in this._object) {
- var value = this._object[key], pair = [key, value];
- pair.key = key;
- pair.value = value;
- iterator(pair);
- }
- },
+ function _each(iterator) {
+ for (var key in this._object) {
+ var value = this._object[key], pair = [key, value];
+ pair.key = key;
+ pair.value = value;
+ iterator(pair);
+ }
+ }
- set: function(key, value) {
- return this._object[key] = value;
- },
+ function set(key, value) {
+ return this._object[key] = value;
+ }
- get: function(key) {
+ function get(key) {
+ if (this._object[key] !== Object.prototype[key])
return this._object[key];
- },
+ }
- unset: function(key) {
- var value = this._object[key];
- delete this._object[key];
- return value;
- },
+ function unset(key) {
+ var value = this._object[key];
+ delete this._object[key];
+ return value;
+ }
- toObject: function() {
- return Object.clone(this._object);
- },
+ function toObject() {
+ return Object.clone(this._object);
+ }
- keys: function() {
- return this.pluck('key');
- },
- values: function() {
- return this.pluck('value');
- },
- index: function(value) {
- var match = this.detect(function(pair) {
- return pair.value === value;
- });
- return match && match.key;
- },
+ function keys() {
+ return this.pluck('key');
+ }
- merge: function(object) {
- return this.clone().update(object);
- },
+ function values() {
+ return this.pluck('value');
+ }
- update: function(object) {
- return new Hash(object).inject(this, function(result, pair) {
- result.set(pair.key, pair.value);
- return result;
- });
- },
+ function index(value) {
+ var match = this.detect(function(pair) {
+ return pair.value === value;
+ });
+ return match && match.key;
+ }
- toQueryString: function() {
- return this.map(function(pair) {
- var key = encodeURIComponent(pair.key), values = pair.value;
+ function merge(object) {
+ return this.clone().update(object);
+ }
- if (values && typeof values == 'object') {
- if (Object.isArray(values))
- return values.map(toQueryPair.curry(key)).join('&');
- }
- return toQueryPair(key, values);
- }).join('&');
- },
+ function update(object) {
+ return new Hash(object).inject(this, function(result, pair) {
+ result.set(pair.key, pair.value);
+ return result;
+ });
+ }
- inspect: function() {
- return '#<Hash:{' + this.map(function(pair) {
- return pair.map(Object.inspect).join(': ');
- }).join(', ') + '}>';
- },
+ function toQueryPair(key, value) {
+ if (Object.isUndefined(value)) return key;
+ return key + '=' + encodeURIComponent(String.interpret(value));
+ }
- toJSON: function() {
- return Object.toJSON(this.toObject());
- },
+ function toQueryString() {
+ return this.inject([], function(results, pair) {
+ var key = encodeURIComponent(pair.key), values = pair.value;
- clone: function() {
- return new Hash(this);
- }
+ if (values && typeof values == 'object') {
+ if (Object.isArray(values))
+ return results.concat(values.map(toQueryPair.curry(key)));
+ } else results.push(toQueryPair(key, values));
+ return results;
+ }).join('&');
+ }
+
+ function inspect() {
+ return '#<Hash:{' + this.map(function(pair) {
+ return pair.map(Object.inspect).join(': ');
+ }).join(', ') + '}>';
+ }
+
+ function clone() {
+ return new Hash(this);
}
+
+ return {
+ initialize: initialize,
+ _each: _each,
+ set: set,
+ get: get,
+ unset: unset,
+ toObject: toObject,
+ toTemplateReplacements: toObject,
+ keys: keys,
+ values: values,
+ index: index,
+ merge: merge,
+ update: update,
+ toQueryString: toQueryString,
+ inspect: inspect,
+ toJSON: toObject,
+ clone: clone
+ };
})());
-Hash.prototype.toTemplateReplacements = Hash.prototype.toObject;
Hash.from = $H;
-var ObjectRange = Class.create(Enumerable, {
- initialize: function(start, end, exclusive) {
+Object.extend(Number.prototype, (function() {
+ function toColorPart() {
+ return this.toPaddedString(2, 16);
+ }
+
+ function succ() {
+ return this + 1;
+ }
+
+ function times(iterator, context) {
+ $R(0, this, true).each(iterator, context);
+ return this;
+ }
+
+ function toPaddedString(length, radix) {
+ var string = this.toString(radix || 10);
+ return '0'.times(length - string.length) + string;
+ }
+
+ function abs() {
+ return Math.abs(this);
+ }
+
+ function round() {
+ return Math.round(this);
+ }
+
+ function ceil() {
+ return Math.ceil(this);
+ }
+
+ function floor() {
+ return Math.floor(this);
+ }
+
+ return {
+ toColorPart: toColorPart,
+ succ: succ,
+ times: times,
+ toPaddedString: toPaddedString,
+ abs: abs,
+ round: round,
+ ceil: ceil,
+ floor: floor
+ };
+})());
+
+function $R(start, end, exclusive) {
+ return new ObjectRange(start, end, exclusive);
+}
+
+var ObjectRange = Class.create(Enumerable, (function() {
+ function initialize(start, end, exclusive) {
this.start = start;
this.end = end;
this.exclusive = exclusive;
- },
+ }
- _each: function(iterator) {
+ function _each(iterator) {
var value = this.start;
while (this.include(value)) {
iterator(value);
value = value.succ();
}
- },
+ }
- include: function(value) {
+ function include(value) {
if (value < this.start)
return false;
if (this.exclusive)
return value < this.end;
return value <= this.end;
}
-});
-var $R = function(start, end, exclusive) {
- return new ObjectRange(start, end, exclusive);
-};
+ return {
+ initialize: initialize,
+ _each: _each,
+ include: include
+ };
+})());
+
+
var Ajax = {
getTransport: function() {
@@ -1152,7 +1453,6 @@ Ajax.Responders.register({
onCreate: function() { Ajax.activeRequestCount++ },
onComplete: function() { Ajax.activeRequestCount-- }
});
-
Ajax.Base = Class.create({
initialize: function(options) {
this.options = {
@@ -1174,7 +1474,6 @@ Ajax.Base = Class.create({
this.options.parameters = this.options.parameters.toObject();
}
});
-
Ajax.Request = Class.create(Ajax.Base, {
_complete: false,
@@ -1190,7 +1489,6 @@ Ajax.Request = Class.create(Ajax.Base, {
var params = Object.clone(this.options.parameters);
if (!['get', 'post'].include(this.method)) {
- // simulate other verbs over post
params['_method'] = this.method;
this.method = 'post';
}
@@ -1198,7 +1496,6 @@ Ajax.Request = Class.create(Ajax.Base, {
this.parameters = params;
if (params = Object.toQueryString(params)) {
- // when GET, append parameters to URL
if (this.method == 'get')
this.url += (this.url.include('?') ? '&' : '?') + params;
else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent))
@@ -1257,7 +1554,6 @@ Ajax.Request = Class.create(Ajax.Base, {
headers['Connection'] = 'close';
}
- // user-defined headers
if (typeof this.options.requestHeaders == 'object') {
var extras = this.options.requestHeaders;
@@ -1298,7 +1594,7 @@ Ajax.Request = Class.create(Ajax.Base, {
var contentType = response.getHeader('Content-type');
if (this.options.evalJS == 'force'
- || (this.options.evalJS && contentType
+ || (this.options.evalJS && this.isSameOrigin() && contentType
&& contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i)))
this.evalResponse();
}
@@ -1311,15 +1607,23 @@ Ajax.Request = Class.create(Ajax.Base, {
}
if (state == 'Complete') {
- // avoid memory leak in MSIE: clean up
this.transport.onreadystatechange = Prototype.emptyFunction;
}
},
+ isSameOrigin: function() {
+ var m = this.url.match(/^\s*https?:\/\/[^\/]*/);
+ return !m || (m[0] == '#{protocol}//#{domain}#{port}'.interpolate({
+ protocol: location.protocol,
+ domain: document.domain,
+ port: location.port ? ':' + location.port : ''
+ }));
+ },
+
getHeader: function(name) {
try {
- return this.transport.getResponseHeader(name);
- } catch (e) { return null }
+ return this.transport.getResponseHeader(name) || null;
+ } catch (e) { return null; }
},
evalResponse: function() {
@@ -1339,20 +1643,27 @@ Ajax.Request = Class.create(Ajax.Base, {
Ajax.Request.Events =
['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];
+
+
+
+
+
+
+
Ajax.Response = Class.create({
initialize: function(request){
this.request = request;
var transport = this.transport = request.transport,
readyState = this.readyState = transport.readyState;
- if((readyState > 2 && !Prototype.Browser.IE) || readyState == 4) {
+ if ((readyState > 2 && !Prototype.Browser.IE) || readyState == 4) {
this.status = this.getStatus();
this.statusText = this.getStatusText();
this.responseText = String.interpret(transport.responseText);
this.headerJSON = this._getHeaderJSON();
}
- if(readyState == 4) {
+ if (readyState == 4) {
var xml = transport.responseXML;
this.responseXML = Object.isUndefined(xml) ? null : xml;
this.responseJSON = this._getResponseJSON();
@@ -1360,6 +1671,7 @@ Ajax.Response = Class.create({
},
status: 0,
+
statusText: '',
getStatus: Ajax.Request.prototype.getStatus,
@@ -1391,7 +1703,8 @@ Ajax.Response = Class.create({
if (!json) return null;
json = decodeURIComponent(escape(json));
try {
- return json.evalJSON(this.request.options.sanitizeJSON);
+ return json.evalJSON(this.request.options.sanitizeJSON ||
+ !this.request.isSameOrigin());
} catch (e) {
this.request.dispatchException(e);
}
@@ -1404,7 +1717,8 @@ Ajax.Response = Class.create({
this.responseText.blank())
return null;
try {
- return this.responseText.evalJSON(options.sanitizeJSON);
+ return this.responseText.evalJSON(options.sanitizeJSON ||
+ !this.request.isSameOrigin());
} catch (e) {
this.request.dispatchException(e);
}
@@ -1487,6 +1801,8 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
this.updater = new Ajax.Updater(this.container, this.url, this.options);
}
});
+
+
function $(element) {
if (arguments.length > 1) {
for (var i = 0, elements = [], length = arguments.length; i < length; i++)
@@ -1511,10 +1827,9 @@ if (Prototype.BrowserFeatures.XPath) {
/*--------------------------------------------------------------------------*/
-if (!window.Node) var Node = { };
+if (!Node) var Node = { };
if (!Node.ELEMENT_NODE) {
- // DOM level 2 ECMAScript Language Binding
Object.extend(Node, {
ELEMENT_NODE: 1,
ATTRIBUTE_NODE: 2,
@@ -1531,13 +1846,27 @@ if (!Node.ELEMENT_NODE) {
});
}
-(function() {
- var element = this.Element;
- this.Element = function(tagName, attributes) {
+
+
+(function(global) {
+
+ var HAS_EXTENDED_CREATE_ELEMENT_SYNTAX = (function(){
+ try {
+ var el = document.createElement('<input name="x">');
+ return el.tagName.toLowerCase() === 'input' && el.name === 'x';
+ }
+ catch(err) {
+ return false;
+ }
+ })();
+
+ var element = global.Element;
+
+ global.Element = function(tagName, attributes) {
attributes = attributes || { };
tagName = tagName.toLowerCase();
var cache = Element.cache;
- if (Prototype.Browser.IE && attributes.name) {
+ if (HAS_EXTENDED_CREATE_ELEMENT_SYNTAX && attributes.name) {
tagName = '<' + tagName + ' name="' + attributes.name + '">';
delete attributes.name;
return Element.writeAttribute(document.createElement(tagName), attributes);
@@ -1545,11 +1874,24 @@ if (!Node.ELEMENT_NODE) {
if (!cache[tagName]) cache[tagName] = Element.extend(document.createElement(tagName));
return Element.writeAttribute(cache[tagName].cloneNode(false), attributes);
};
- Object.extend(this.Element, element || { });
-}).call(window);
+ Object.extend(global.Element, element || { });
+ if (element) global.Element.prototype = element.prototype;
+
+})(this);
+
+Element.idCounter = 1;
Element.cache = { };
+function purgeElement(element) {
+ var uid = element._prototypeUID;
+ if (uid) {
+ Element.stopObserving(element);
+ element._prototypeUID = void 0;
+ delete Element.Storage[uid];
+ }
+}
+
Element.Methods = {
visible: function(element) {
return $(element).style.display != 'none';
@@ -1562,12 +1904,14 @@ Element.Methods = {
},
hide: function(element) {
- $(element).style.display = 'none';
+ element = $(element);
+ element.style.display = 'none';
return element;
},
show: function(element) {
- $(element).style.display = '';
+ element = $(element);
+ element.style.display = '';
return element;
},
@@ -1577,15 +1921,93 @@ Element.Methods = {
return element;
},
- update: function(element, content) {
- element = $(element);
- if (content && content.toElement) content = content.toElement();
- if (Object.isElement(content)) return element.update().insert(content);
- content = Object.toHTML(content);
- element.innerHTML = content.stripScripts();
- content.evalScripts.bind(content).defer();
- return element;
- },
+ update: (function(){
+
+ var SELECT_ELEMENT_INNERHTML_BUGGY = (function(){
+ var el = document.createElement("select"),
+ isBuggy = true;
+ el.innerHTML = "<option value=\"test\">test</option>";
+ if (el.options && el.options[0]) {
+ isBuggy = el.options[0].nodeName.toUpperCase() !== "OPTION";
+ }
+ el = null;
+ return isBuggy;
+ })();
+
+ var TABLE_ELEMENT_INNERHTML_BUGGY = (function(){
+ try {
+ var el = document.createElement("table");
+ if (el && el.tBodies) {
+ el.innerHTML = "<tbody><tr><td>test</td></tr></tbody>";
+ var isBuggy = typeof el.tBodies[0] == "undefined";
+ el = null;
+ return isBuggy;
+ }
+ } catch (e) {
+ return true;
+ }
+ })();
+
+ var SCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING = (function () {
+ var s = document.createElement("script"),
+ isBuggy = false;
+ try {
+ s.appendChild(document.createTextNode(""));
+ isBuggy = !s.firstChild ||
+ s.firstChild && s.firstChild.nodeType !== 3;
+ } catch (e) {
+ isBuggy = true;
+ }
+ s = null;
+ return isBuggy;
+ })();
+
+ function update(element, content) {
+ element = $(element);
+
+ var descendants = element.getElementsByTagName('*'),
+ i = descendants.length;
+ while (i--) purgeElement(descendants[i]);
+
+ if (content && content.toElement)
+ content = content.toElement();
+
+ if (Object.isElement(content))
+ return element.update().insert(content);
+
+ content = Object.toHTML(content);
+
+ var tagName = element.tagName.toUpperCase();
+
+ if (tagName === 'SCRIPT' && SCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING) {
+ element.text = content;
+ return element;
+ }
+
+ if (SELECT_ELEMENT_INNERHTML_BUGGY || TABLE_ELEMENT_INNERHTML_BUGGY) {
+ if (tagName in Element._insertionTranslations.tags) {
+ while (element.firstChild) {
+ element.removeChild(element.firstChild);
+ }
+ Element._getContentFromAnonymousElement(tagName, content.stripScripts())
+ .each(function(node) {
+ element.appendChild(node)
+ });
+ }
+ else {
+ element.innerHTML = content.stripScripts();
+ }
+ }
+ else {
+ element.innerHTML = content.stripScripts();
+ }
+
+ content.evalScripts.bind(content).defer();
+ return element;
+ }
+
+ return update;
+ })(),
replace: function(element, content) {
element = $(element);
@@ -1608,24 +2030,28 @@ Element.Methods = {
Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML)))
insertions = {bottom:insertions};
- var content, t, range;
+ var content, insert, tagName, childNodes;
- for (position in insertions) {
+ for (var position in insertions) {
content = insertions[position];
position = position.toLowerCase();
- t = Element._insertionTranslations[position];
+ insert = Element._insertionTranslations[position];
if (content && content.toElement) content = content.toElement();
if (Object.isElement(content)) {
- t.insert(element, content);
+ insert(element, content);
continue;
}
content = Object.toHTML(content);
- range = element.ownerDocument.createRange();
- t.initializeRange(element, range);
- t.insert(element, range.createContextualFragment(content.stripScripts()));
+ tagName = ((position == 'before' || position == 'after')
+ ? element.parentNode : element).tagName.toUpperCase();
+
+ childNodes = Element._getContentFromAnonymousElement(tagName, content.stripScripts());
+
+ if (position == 'top' || position == 'after') childNodes.reverse();
+ childNodes.each(insert.curry(element));
content.evalScripts.bind(content).defer();
}
@@ -1649,28 +2075,35 @@ Element.Methods = {
element = $(element);
var result = '<' + element.tagName.toLowerCase();
$H({'id': 'id', 'className': 'class'}).each(function(pair) {
- var property = pair.first(), attribute = pair.last();
- var value = (element[property] || '').toString();
+ var property = pair.first(),
+ attribute = pair.last(),
+ value = (element[property] || '').toString();
if (value) result += ' ' + attribute + '=' + value.inspect(true);
});
return result + '>';
},
- recursivelyCollect: function(element, property) {
+ recursivelyCollect: function(element, property, maximumLength) {
element = $(element);
+ maximumLength = maximumLength || -1;
var elements = [];
- while (element = element[property])
+
+ while (element = element[property]) {
if (element.nodeType == 1)
elements.push(Element.extend(element));
+ if (elements.length == maximumLength)
+ break;
+ }
+
return elements;
},
ancestors: function(element) {
- return $(element).recursivelyCollect('parentNode');
+ return Element.recursivelyCollect(element, 'parentNode');
},
descendants: function(element) {
- return $(element).getElementsBySelector("*");
+ return Element.select(element, "*");
},
firstDescendant: function(element) {
@@ -1680,79 +2113,96 @@ Element.Methods = {
},
immediateDescendants: function(element) {
- if (!(element = $(element).firstChild)) return [];
- while (element && element.nodeType != 1) element = element.nextSibling;
- if (element) return [element].concat($(element).nextSiblings());
- return [];
+ var results = [], child = $(element).firstChild;
+ while (child) {
+ if (child.nodeType === 1) {
+ results.push(Element.extend(child));
+ }
+ child = child.nextSibling;
+ }
+ return results;
},
- previousSiblings: function(element) {
- return $(element).recursivelyCollect('previousSibling');
+ previousSiblings: function(element, maximumLength) {
+ return Element.recursivelyCollect(element, 'previousSibling');
},
nextSiblings: function(element) {
- return $(element).recursivelyCollect('nextSibling');
+ return Element.recursivelyCollect(element, 'nextSibling');
},
siblings: function(element) {
element = $(element);
- return element.previousSiblings().reverse().concat(element.nextSiblings());
+ return Element.previousSiblings(element).reverse()
+ .concat(Element.nextSiblings(element));
},
match: function(element, selector) {
+ element = $(element);
if (Object.isString(selector))
- selector = new Selector(selector);
- return selector.match($(element));
+ return Prototype.Selector.match(element, selector);
+ return selector.match(element);
},
up: function(element, expression, index) {
element = $(element);
if (arguments.length == 1) return $(element.parentNode);
- var ancestors = element.ancestors();
- return expression ? Selector.findElement(ancestors, expression, index) :
- ancestors[index || 0];
+ var ancestors = Element.ancestors(element);
+ return Object.isNumber(expression) ? ancestors[expression] :
+ Prototype.Selector.find(ancestors, expression, index);
},
down: function(element, expression, index) {
element = $(element);
- if (arguments.length == 1) return element.firstDescendant();
- var descendants = element.descendants();
- return expression ? Selector.findElement(descendants, expression, index) :
- descendants[index || 0];
+ if (arguments.length == 1) return Element.firstDescendant(element);
+ return Object.isNumber(expression) ? Element.descendants(element)[expression] :
+ Element.select(element, expression)[index || 0];
},
previous: function(element, expression, index) {
element = $(element);
- if (arguments.length == 1) return $(Selector.handlers.previousElementSibling(element));
- var previousSiblings = element.previousSiblings();
- return expression ? Selector.findElement(previousSiblings, expression, index) :
- previousSiblings[index || 0];
+ if (Object.isNumber(expression)) index = expression, expression = false;
+ if (!Object.isNumber(index)) index = 0;
+
+ if (expression) {
+ return Prototype.Selector.find(element.previousSiblings(), expression, index);
+ } else {
+ return element.recursivelyCollect("previousSibling", index + 1)[index];
+ }
},
next: function(element, expression, index) {
element = $(element);
- if (arguments.length == 1) return $(Selector.handlers.nextElementSibling(element));
- var nextSiblings = element.nextSiblings();
- return expression ? Selector.findElement(nextSiblings, expression, index) :
- nextSiblings[index || 0];
+ if (Object.isNumber(expression)) index = expression, expression = false;
+ if (!Object.isNumber(index)) index = 0;
+
+ if (expression) {
+ return Prototype.Selector.find(element.nextSiblings(), expression, index);
+ } else {
+ var maximumLength = Object.isNumber(index) ? index + 1 : 1;
+ return element.recursivelyCollect("nextSibling", index + 1)[index];
+ }
},
- select: function() {
- var args = $A(arguments), element = $(args.shift());
- return Selector.findChildElements(element, args);
+
+ select: function(element) {
+ element = $(element);
+ var expressions = Array.prototype.slice.call(arguments, 1).join(', ');
+ return Prototype.Selector.select(expressions, element);
},
- adjacent: function() {
- var args = $A(arguments), element = $(args.shift());
- return Selector.findChildElements(element.parentNode, args).without(element);
+ adjacent: function(element) {
+ element = $(element);
+ var expressions = Array.prototype.slice.call(arguments, 1).join(', ');
+ return Prototype.Selector.select(expressions, element.parentNode).without(element);
},
identify: function(element) {
element = $(element);
- var id = element.readAttribute('id'), self = arguments.callee;
+ var id = Element.readAttribute(element, 'id');
if (id) return id;
- do { id = 'anonymous_element_' + self.counter++ } while ($(id));
- element.writeAttribute('id', id);
+ do { id = 'anonymous_element_' + Element.idCounter++ } while ($(id));
+ Element.writeAttribute(element, 'id', id);
return id;
},
@@ -1791,11 +2241,11 @@ Element.Methods = {
},
getHeight: function(element) {
- return $(element).getDimensions().height;
+ return Element.getDimensions(element).height;
},
getWidth: function(element) {
- return $(element).getDimensions().width;
+ return Element.getDimensions(element).width;
},
classNames: function(element) {
@@ -1811,7 +2261,7 @@ Element.Methods = {
addClassName: function(element, className) {
if (!(element = $(element))) return;
- if (!element.hasClassName(className))
+ if (!Element.hasClassName(element, className))
element.className += (element.className ? ' ' : '') + className;
return element;
},
@@ -1825,11 +2275,10 @@ Element.Methods = {
toggleClassName: function(element, className) {
if (!(element = $(element))) return;
- return element[element.hasClassName(className) ?
- 'removeClassName' : 'addClassName'](className);
+ return Element[Element.hasClassName(element, className) ?
+ 'removeClassName' : 'addClassName'](element, className);
},
- // removes whitespace-only text node children
cleanWhitespace: function(element) {
element = $(element);
var node = element.firstChild;
@@ -1848,29 +2297,22 @@ Element.Methods = {
descendantOf: function(element, ancestor) {
element = $(element), ancestor = $(ancestor);
- var originalAncestor = ancestor;
if (element.compareDocumentPosition)
return (element.compareDocumentPosition(ancestor) & 8) === 8;
- if (element.sourceIndex && !Prototype.Browser.Opera) {
- var e = element.sourceIndex, a = ancestor.sourceIndex,
- nextAncestor = ancestor.nextSibling;
- if (!nextAncestor) {
- do { ancestor = ancestor.parentNode; }
- while (!(nextAncestor = ancestor.nextSibling) && ancestor.parentNode);
- }
- if (nextAncestor) return (e > a && e < nextAncestor.sourceIndex);
- }
+ if (ancestor.contains)
+ return ancestor.contains(element) && ancestor !== element;
while (element = element.parentNode)
- if (element == originalAncestor) return true;
+ if (element == ancestor) return true;
+
return false;
},
scrollTo: function(element) {
element = $(element);
- var pos = element.cumulativeOffset();
+ var pos = Element.cumulativeOffset(element);
window.scrollTo(pos[0], pos[1]);
return element;
},
@@ -1879,7 +2321,7 @@ Element.Methods = {
element = $(element);
style = style == 'float' ? 'cssFloat' : style.camelize();
var value = element.style[style];
- if (!value) {
+ if (!value || value == 'auto') {
var css = document.defaultView.getComputedStyle(element, null);
value = css ? css[style] : null;
}
@@ -1916,38 +2358,13 @@ Element.Methods = {
return element;
},
- getDimensions: function(element) {
- element = $(element);
- var display = $(element).getStyle('display');
- if (display != 'none' && display != null) // Safari bug
- return {width: element.offsetWidth, height: element.offsetHeight};
-
- // All *Width and *Height properties give 0 on elements with display none,
- // so enable the element temporarily
- var els = element.style;
- var originalVisibility = els.visibility;
- var originalPosition = els.position;
- var originalDisplay = els.display;
- els.visibility = 'hidden';
- els.position = 'absolute';
- els.display = 'block';
- var originalWidth = element.clientWidth;
- var originalHeight = element.clientHeight;
- els.display = originalDisplay;
- els.position = originalPosition;
- els.visibility = originalVisibility;
- return {width: originalWidth, height: originalHeight};
- },
-
makePositioned: function(element) {
element = $(element);
var pos = Element.getStyle(element, 'position');
if (pos == 'static' || !pos) {
element._madePositioned = true;
element.style.position = 'relative';
- // Opera returns the offset relative to the positioning context, when an
- // element is position relative but top and left have not been defined
- if (window.opera) {
+ if (Prototype.Browser.Opera) {
element.style.top = 0;
element.style.left = 0;
}
@@ -1987,11 +2404,13 @@ Element.Methods = {
cumulativeOffset: function(element) {
var valueT = 0, valueL = 0;
- do {
- valueT += element.offsetTop || 0;
- valueL += element.offsetLeft || 0;
- element = element.offsetParent;
- } while (element);
+ if (element.parentNode) {
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+ element = element.offsetParent;
+ } while (element);
+ }
return Element._returnOffset(valueL, valueT);
},
@@ -2002,9 +2421,9 @@ Element.Methods = {
valueL += element.offsetLeft || 0;
element = element.offsetParent;
if (element) {
- if (element.tagName == 'BODY') break;
+ if (element.tagName.toUpperCase() == 'BODY') break;
var p = Element.getStyle(element, 'position');
- if (p == 'relative' || p == 'absolute') break;
+ if (p !== 'static') break;
}
} while (element);
return Element._returnOffset(valueL, valueT);
@@ -2012,14 +2431,13 @@ Element.Methods = {
absolutize: function(element) {
element = $(element);
- if (element.getStyle('position') == 'absolute') return;
- // Position.prepare(); // To be done manually by Scripty when it needs it.
+ if (Element.getStyle(element, 'position') == 'absolute') return element;
- var offsets = element.positionedOffset();
- var top = offsets[1];
- var left = offsets[0];
- var width = element.clientWidth;
- var height = element.clientHeight;
+ var offsets = Element.positionedOffset(element),
+ top = offsets[1],
+ left = offsets[0],
+ width = element.clientWidth,
+ height = element.clientHeight;
element._originalLeft = left - parseFloat(element.style.left || 0);
element._originalTop = top - parseFloat(element.style.top || 0);
@@ -2036,12 +2454,11 @@ Element.Methods = {
relativize: function(element) {
element = $(element);
- if (element.getStyle('position') == 'relative') return;
- // Position.prepare(); // To be done manually by Scripty when it needs it.
+ if (Element.getStyle(element, 'position') == 'relative') return element;
element.style.position = 'relative';
- var top = parseFloat(element.style.top || 0) - (element._originalTop || 0);
- var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0);
+ var top = parseFloat(element.style.top || 0) - (element._originalTop || 0),
+ left = parseFloat(element.style.left || 0) - (element._originalLeft || 0);
element.style.top = top + 'px';
element.style.left = left + 'px';
@@ -2072,14 +2489,14 @@ Element.Methods = {
},
viewportOffset: function(forElement) {
- var valueT = 0, valueL = 0;
+ var valueT = 0,
+ valueL = 0,
+ element = forElement;
- var element = forElement;
do {
valueT += element.offsetTop || 0;
valueL += element.offsetLeft || 0;
- // Safari fix
if (element.offsetParent == document.body &&
Element.getStyle(element, 'position') == 'absolute') break;
@@ -2087,7 +2504,7 @@ Element.Methods = {
element = forElement;
do {
- if (!Prototype.Browser.Opera || element.tagName == 'BODY') {
+ if (!Prototype.Browser.Opera || (element.tagName && (element.tagName.toUpperCase() == 'BODY'))) {
valueT -= element.scrollTop || 0;
valueL -= element.scrollLeft || 0;
}
@@ -2106,28 +2523,21 @@ Element.Methods = {
offsetLeft: 0
}, arguments[2] || { });
- // find page position of source
source = $(source);
- var p = source.viewportOffset();
+ var p = Element.viewportOffset(source), delta = [0, 0], parent = null;
- // find coordinate system to use
element = $(element);
- var delta = [0, 0];
- var parent = null;
- // delta [0,0] will do fine with position: fixed elements,
- // position:absolute needs offsetParent deltas
+
if (Element.getStyle(element, 'position') == 'absolute') {
- parent = element.getOffsetParent();
- delta = parent.viewportOffset();
+ parent = Element.getOffsetParent(element);
+ delta = Element.viewportOffset(parent);
}
- // correct by body offsets (fixes Safari)
if (parent == document.body) {
delta[0] -= document.body.offsetLeft;
delta[1] -= document.body.offsetTop;
}
- // set position
if (options.setLeft) element.style.left = (p[0] - delta[0] + options.offsetLeft) + 'px';
if (options.setTop) element.style.top = (p[1] - delta[1] + options.offsetTop) + 'px';
if (options.setWidth) element.style.width = source.offsetWidth + 'px';
@@ -2136,10 +2546,9 @@ Element.Methods = {
}
};
-Element.Methods.identify.counter = 1;
-
Object.extend(Element.Methods, {
getElementsBySelector: Element.Methods.select,
+
childElements: Element.Methods.immediateDescendants
});
@@ -2153,46 +2562,6 @@ Element._attributeTranslations = {
}
};
-
-if (!document.createRange || Prototype.Browser.Opera) {
- Element.Methods.insert = function(element, insertions) {
- element = $(element);
-
- if (Object.isString(insertions) || Object.isNumber(insertions) ||
- Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML)))
- insertions = { bottom: insertions };
-
- var t = Element._insertionTranslations, content, position, pos, tagName;
-
- for (position in insertions) {
- content = insertions[position];
- position = position.toLowerCase();
- pos = t[position];
-
- if (content && content.toElement) content = content.toElement();
- if (Object.isElement(content)) {
- pos.insert(element, content);
- continue;
- }
-
- content = Object.toHTML(content);
- tagName = ((position == 'before' || position == 'after')
- ? element.parentNode : element).tagName.toUpperCase();
-
- if (t.tags[tagName]) {
- var fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts());
- if (position == 'top' || position == 'after') fragments.reverse();
- fragments.each(pos.insert.curry(element));
- }
- else element.insertAdjacentHTML(pos.adjacency, content.stripScripts());
-
- content.evalScripts.bind(content).defer();
- }
-
- return element;
- };
-}
-
if (Prototype.Browser.Opera) {
Element.Methods.getStyle = Element.Methods.getStyle.wrap(
function(proceed, element, style) {
@@ -2200,11 +2569,8 @@ if (Prototype.Browser.Opera) {
case 'left': case 'top': case 'right': case 'bottom':
if (proceed(element, 'position') === 'static') return null;
case 'height': case 'width':
- // returns '0px' for hidden elements; we want it to return null
if (!Element.visible(element)) return null;
- // returns the border-box dimensions rather than the content-box
- // dimensions, so we subtract padding and borders from the value
var dim = parseInt(proceed(element, style), 10);
if (dim !== element['offset' + style.capitalize()])
@@ -2237,12 +2603,29 @@ if (Prototype.Browser.Opera) {
}
else if (Prototype.Browser.IE) {
- $w('positionedOffset getOffsetParent viewportOffset').each(function(method) {
+ Element.Methods.getOffsetParent = Element.Methods.getOffsetParent.wrap(
+ function(proceed, element) {
+ element = $(element);
+ if (!element.parentNode) return $(document.body);
+ var position = element.getStyle('position');
+ if (position !== 'static') return proceed(element);
+ element.setStyle({ position: 'relative' });
+ var value = proceed(element);
+ element.setStyle({ position: position });
+ return value;
+ }
+ );
+
+ $w('positionedOffset viewportOffset').each(function(method) {
Element.Methods[method] = Element.Methods[method].wrap(
function(proceed, element) {
element = $(element);
+ if (!element.parentNode) return Element._returnOffset(0, 0);
var position = element.getStyle('position');
- if (position != 'static') return proceed(element);
+ if (position !== 'static') return proceed(element);
+ var offsetParent = element.getOffsetParent();
+ if (offsetParent && offsetParent.getStyle('position') === 'fixed')
+ offsetParent.setStyle({ zoom: 1 });
element.setStyle({ position: 'relative' });
var value = proceed(element);
element.setStyle({ position: position });
@@ -2292,39 +2675,96 @@ else if (Prototype.Browser.IE) {
return element;
};
- Element._attributeTranslations = {
- read: {
- names: {
- 'class': 'className',
- 'for': 'htmlFor'
- },
- values: {
- _getAttr: function(element, attribute) {
- return element.getAttribute(attribute, 2);
- },
- _getAttrNode: function(element, attribute) {
- var node = element.getAttributeNode(attribute);
- return node ? node.value : "";
- },
- _getEv: function(element, attribute) {
- attribute = element.getAttribute(attribute);
- return attribute ? attribute.toString().slice(23, -2) : null;
- },
- _flag: function(element, attribute) {
- return $(element).hasAttribute(attribute) ? attribute : null;
- },
- style: function(element) {
- return element.style.cssText.toLowerCase();
+ Element._attributeTranslations = (function(){
+
+ var classProp = 'className',
+ forProp = 'for',
+ el = document.createElement('div');
+
+ el.setAttribute(classProp, 'x');
+
+ if (el.className !== 'x') {
+ el.setAttribute('class', 'x');
+ if (el.className === 'x') {
+ classProp = 'class';
+ }
+ }
+ el = null;
+
+ el = document.createElement('label');
+ el.setAttribute(forProp, 'x');
+ if (el.htmlFor !== 'x') {
+ el.setAttribute('htmlFor', 'x');
+ if (el.htmlFor === 'x') {
+ forProp = 'htmlFor';
+ }
+ }
+ el = null;
+
+ return {
+ read: {
+ names: {
+ 'class': classProp,
+ 'className': classProp,
+ 'for': forProp,
+ 'htmlFor': forProp
},
- title: function(element) {
- return element.title;
+ values: {
+ _getAttr: function(element, attribute) {
+ return element.getAttribute(attribute);
+ },
+ _getAttr2: function(element, attribute) {
+ return element.getAttribute(attribute, 2);
+ },
+ _getAttrNode: function(element, attribute) {
+ var node = element.getAttributeNode(attribute);
+ return node ? node.value : "";
+ },
+ _getEv: (function(){
+
+ var el = document.createElement('div'), f;
+ el.onclick = Prototype.emptyFunction;
+ var value = el.getAttribute('onclick');
+
+ if (String(value).indexOf('{') > -1) {
+ f = function(element, attribute) {
+ attribute = element.getAttribute(attribute);
+ if (!attribute) return null;
+ attribute = attribute.toString();
+ attribute = attribute.split('{')[1];
+ attribute = attribute.split('}')[0];
+ return attribute.strip();
+ };
+ }
+ else if (value === '') {
+ f = function(element, attribute) {
+ attribute = element.getAttribute(attribute);
+ if (!attribute) return null;
+ return attribute.strip();
+ };
+ }
+ el = null;
+ return f;
+ })(),
+ _flag: function(element, attribute) {
+ return $(element).hasAttribute(attribute) ? attribute : null;
+ },
+ style: function(element) {
+ return element.style.cssText.toLowerCase();
+ },
+ title: function(element) {
+ return element.title;
+ }
}
}
}
- };
+ })();
Element._attributeTranslations.write = {
- names: Object.clone(Element._attributeTranslations.read.names),
+ names: Object.extend({
+ cellpadding: 'cellPadding',
+ cellspacing: 'cellSpacing'
+ }, Element._attributeTranslations.read.names),
values: {
checked: function(element, value) {
element.checked = !!value;
@@ -2339,15 +2779,15 @@ else if (Prototype.Browser.IE) {
Element._attributeTranslations.has = {};
$w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' +
- 'encType maxLength readOnly longDesc').each(function(attr) {
+ 'encType maxLength readOnly longDesc frameBorder').each(function(attr) {
Element._attributeTranslations.write.names[attr.toLowerCase()] = attr;
Element._attributeTranslations.has[attr.toLowerCase()] = attr;
});
(function(v) {
Object.extend(v, {
- href: v._getAttr,
- src: v._getAttr,
+ href: v._getAttr2,
+ src: v._getAttr2,
type: v._getAttr,
action: v._getAttrNode,
disabled: v._flag,
@@ -2374,6 +2814,26 @@ else if (Prototype.Browser.IE) {
onchange: v._getEv
});
})(Element._attributeTranslations.read.values);
+
+ if (Prototype.BrowserFeatures.ElementExtensions) {
+ (function() {
+ function _descendants(element) {
+ var nodes = element.getElementsByTagName('*'), results = [];
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (node.tagName !== "!") // Filter out comment nodes.
+ results.push(node);
+ return results;
+ }
+
+ Element.Methods.down = function(element, expression, index) {
+ element = $(element);
+ if (arguments.length == 1) return element.firstDescendant();
+ return Object.isNumber(expression) ? _descendants(element)[expression] :
+ Element.select(element, expression)[index || 0];
+ }
+ })();
+ }
+
}
else if (Prototype.Browser.Gecko && /rv:1\.8\.0/.test(navigator.userAgent)) {
@@ -2392,7 +2852,7 @@ else if (Prototype.Browser.WebKit) {
(value < 0.00001) ? 0 : value;
if (value == 1)
- if(element.tagName == 'IMG' && element.width) {
+ if (element.tagName.toUpperCase() == 'IMG' && element.width) {
element.width++; element.width--;
} else try {
var n = document.createTextNode(' ');
@@ -2403,9 +2863,6 @@ else if (Prototype.Browser.WebKit) {
return element;
};
- // Safari returns margins on body which is incorrect if the child is absolutely
- // positioned. For performance reasons, redefine Element#cumulativeOffset for
- // KHTML/WebKit only.
Element.Methods.cumulativeOffset = function(element) {
var valueT = 0, valueL = 0;
do {
@@ -2421,30 +2878,7 @@ else if (Prototype.Browser.WebKit) {
};
}
-if (Prototype.Browser.IE || Prototype.Browser.Opera) {
- // IE and Opera are missing .innerHTML support for TABLE-related and SELECT elements
- Element.Methods.update = function(element, content) {
- element = $(element);
-
- if (content && content.toElement) content = content.toElement();
- if (Object.isElement(content)) return element.update().insert(content);
-
- content = Object.toHTML(content);
- var tagName = element.tagName.toUpperCase();
-
- if (tagName in Element._insertionTranslations.tags) {
- $A(element.childNodes).each(function(node) { element.removeChild(node) });
- Element._getContentFromAnonymousElement(tagName, content.stripScripts())
- .each(function(node) { element.appendChild(node) });
- }
- else element.innerHTML = content.stripScripts();
-
- content.evalScripts.bind(content).defer();
- return element;
- };
-}
-
-if (document.createElement('div').outerHTML) {
+if ('outerHTML' in document.documentElement) {
Element.Methods.replace = function(element, content) {
element = $(element);
@@ -2458,8 +2892,8 @@ if (document.createElement('div').outerHTML) {
var parent = element.parentNode, tagName = parent.tagName.toUpperCase();
if (Element._insertionTranslations.tags[tagName]) {
- var nextSibling = element.next();
- var fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts());
+ var nextSibling = element.next(),
+ fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts());
parent.removeChild(element);
if (nextSibling)
fragments.each(function(node) { parent.insertBefore(node, nextSibling) });
@@ -2481,46 +2915,32 @@ Element._returnOffset = function(l, t) {
};
Element._getContentFromAnonymousElement = function(tagName, html) {
- var div = new Element('div'), t = Element._insertionTranslations.tags[tagName];
- div.innerHTML = t[0] + html + t[1];
- t[2].times(function() { div = div.firstChild });
+ var div = new Element('div'),
+ t = Element._insertionTranslations.tags[tagName];
+ if (t) {
+ div.innerHTML = t[0] + html + t[1];
+ for (var i = t[2]; i--; ) {
+ div = div.firstChild;
+ }
+ }
+ else {
+ div.innerHTML = html;
+ }
return $A(div.childNodes);
};
Element._insertionTranslations = {
- before: {
- adjacency: 'beforeBegin',
- insert: function(element, node) {
- element.parentNode.insertBefore(node, element);
- },
- initializeRange: function(element, range) {
- range.setStartBefore(element);
- }
+ before: function(element, node) {
+ element.parentNode.insertBefore(node, element);
},
- top: {
- adjacency: 'afterBegin',
- insert: function(element, node) {
- element.insertBefore(node, element.firstChild);
- },
- initializeRange: function(element, range) {
- range.selectNodeContents(element);
- range.collapse(true);
- }
+ top: function(element, node) {
+ element.insertBefore(node, element.firstChild);
},
- bottom: {
- adjacency: 'beforeEnd',
- insert: function(element, node) {
- element.appendChild(node);
- }
+ bottom: function(element, node) {
+ element.appendChild(node);
},
- after: {
- adjacency: 'afterEnd',
- insert: function(element, node) {
- element.parentNode.insertBefore(node, element.nextSibling);
- },
- initializeRange: function(element, range) {
- range.setStartAfter(element);
- }
+ after: function(element, node) {
+ element.parentNode.insertBefore(node, element.nextSibling);
},
tags: {
TABLE: ['<table>', '</table>', 1],
@@ -2532,19 +2952,19 @@ Element._insertionTranslations = {
};
(function() {
- this.bottom.initializeRange = this.top.initializeRange;
- Object.extend(this.tags, {
- THEAD: this.tags.TBODY,
- TFOOT: this.tags.TBODY,
- TH: this.tags.TD
+ var tags = Element._insertionTranslations.tags;
+ Object.extend(tags, {
+ THEAD: tags.TBODY,
+ TFOOT: tags.TBODY,
+ TH: tags.TD
});
-}).call(Element._insertionTranslations);
+})();
Element.Methods.Simulated = {
hasAttribute: function(element, attribute) {
attribute = Element._attributeTranslations.has[attribute] || attribute;
var node = $(element).getAttributeNode(attribute);
- return node && node.specified;
+ return !!(node && node.specified);
}
};
@@ -2552,41 +2972,81 @@ Element.Methods.ByTag = { };
Object.extend(Element, Element.Methods);
-if (!Prototype.BrowserFeatures.ElementExtensions &&
- document.createElement('div').__proto__) {
- window.HTMLElement = { };
- window.HTMLElement.prototype = document.createElement('div').__proto__;
- Prototype.BrowserFeatures.ElementExtensions = true;
-}
+(function(div) {
+
+ if (!Prototype.BrowserFeatures.ElementExtensions && div['__proto__']) {
+ window.HTMLElement = { };
+ window.HTMLElement.prototype = div['__proto__'];
+ Prototype.BrowserFeatures.ElementExtensions = true;
+ }
+
+ div = null;
+
+})(document.createElement('div'));
Element.extend = (function() {
- if (Prototype.BrowserFeatures.SpecificElementExtensions)
+
+ function checkDeficiency(tagName) {
+ if (typeof window.Element != 'undefined') {
+ var proto = window.Element.prototype;
+ if (proto) {
+ var id = '_' + (Math.random()+'').slice(2),
+ el = document.createElement(tagName);
+ proto[id] = 'x';
+ var isBuggy = (el[id] !== 'x');
+ delete proto[id];
+ el = null;
+ return isBuggy;
+ }
+ }
+ return false;
+ }
+
+ function extendElementWith(element, methods) {
+ for (var property in methods) {
+ var value = methods[property];
+ if (Object.isFunction(value) && !(property in element))
+ element[property] = value.methodize();
+ }
+ }
+
+ var HTMLOBJECTELEMENT_PROTOTYPE_BUGGY = checkDeficiency('object');
+
+ if (Prototype.BrowserFeatures.SpecificElementExtensions) {
+ if (HTMLOBJECTELEMENT_PROTOTYPE_BUGGY) {
+ return function(element) {
+ if (element && typeof element._extendedByPrototype == 'undefined') {
+ var t = element.tagName;
+ if (t && (/^(?:object|applet|embed)$/i.test(t))) {
+ extendElementWith(element, Element.Methods);
+ extendElementWith(element, Element.Methods.Simulated);
+ extendElementWith(element, Element.Methods.ByTag[t.toUpperCase()]);
+ }
+ }
+ return element;
+ }
+ }
return Prototype.K;
+ }
var Methods = { }, ByTag = Element.Methods.ByTag;
var extend = Object.extend(function(element) {
- if (!element || element._extendedByPrototype ||
+ if (!element || typeof element._extendedByPrototype != 'undefined' ||
element.nodeType != 1 || element == window) return element;
var methods = Object.clone(Methods),
- tagName = element.tagName, property, value;
+ tagName = element.tagName.toUpperCase();
- // extend methods for specific tags
if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]);
- for (property in methods) {
- value = methods[property];
- if (Object.isFunction(value) && !(property in element))
- element[property] = value.methodize();
- }
+ extendElementWith(element, methods);
element._extendedByPrototype = Prototype.emptyFunction;
return element;
}, {
refresh: function() {
- // extend methods for all tags (Safari doesn't need this)
if (!Prototype.BrowserFeatures.ElementExtensions) {
Object.extend(Methods, Element.Methods);
Object.extend(Methods, Element.Methods.Simulated);
@@ -2598,10 +3058,14 @@ Element.extend = (function() {
return extend;
})();
-Element.hasAttribute = function(element, attribute) {
- if (element.hasAttribute) return element.hasAttribute(attribute);
- return Element.Methods.Simulated.hasAttribute(element, attribute);
-};
+if (document.documentElement.hasAttribute) {
+ Element.hasAttribute = function(element, attribute) {
+ return element.hasAttribute(attribute);
+ };
+}
+else {
+ Element.hasAttribute = Element.Methods.Simulated.hasAttribute;
+}
Element.addMethods = function(methods) {
var F = Prototype.BrowserFeatures, T = Element.Methods.ByTag;
@@ -2665,14 +3129,19 @@ Element.addMethods = function(methods) {
klass = 'HTML' + tagName.capitalize() + 'Element';
if (window[klass]) return window[klass];
- window[klass] = { };
- window[klass].prototype = document.createElement(tagName).__proto__;
- return window[klass];
+ var element = document.createElement(tagName),
+ proto = element['__proto__'] || element.constructor.prototype;
+
+ element = null;
+ return proto;
}
+ var elementPrototype = window.HTMLElement ? HTMLElement.prototype :
+ Element.prototype;
+
if (F.ElementExtensions) {
- copy(Element.Methods, HTMLElement.prototype);
- copy(Element.Methods.Simulated, HTMLElement.prototype, true);
+ copy(Element.Methods, elementPrototype);
+ copy(Element.Methods.Simulated, elementPrototype, true);
}
if (F.SpecificElementExtensions) {
@@ -2690,697 +3159,1803 @@ Element.addMethods = function(methods) {
Element.cache = { };
};
-document.viewport = {
- getDimensions: function() {
- var dimensions = { };
- var B = Prototype.Browser;
- $w('width height').each(function(d) {
- var D = d.capitalize();
- dimensions[d] = (B.WebKit && !document.evaluate) ? self['inner' + D] :
- (B.Opera) ? document.body['client' + D] : document.documentElement['client' + D];
- });
- return dimensions;
- },
- getWidth: function() {
- return this.getDimensions().width;
- },
+document.viewport = {
- getHeight: function() {
- return this.getDimensions().height;
+ getDimensions: function() {
+ return { width: this.getWidth(), height: this.getHeight() };
},
getScrollOffsets: function() {
return Element._returnOffset(
window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft,
- window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop);
+ window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop);
}
};
-/* Portions of the Selector class are derived from Jack Slocum’s DomQuery,
- * part of YUI-Ext version 0.40, distributed under the terms of an MIT-style
- * license. Please see http://www.yui-ext.com/ for more information. */
-var Selector = Class.create({
- initialize: function(expression) {
- this.expression = expression.strip();
- this.compileMatcher();
- },
+(function(viewport) {
+ var B = Prototype.Browser, doc = document, element, property = {};
- shouldUseXPath: function() {
- if (!Prototype.BrowserFeatures.XPath) return false;
+ function getRootElement() {
+ if (B.WebKit && !doc.evaluate)
+ return document;
- var e = this.expression;
+ if (B.Opera && window.parseFloat(window.opera.version()) < 9.5)
+ return document.body;
- // Safari 3 chokes on :*-of-type and :empty
- if (Prototype.Browser.WebKit &&
- (e.include("-of-type") || e.include(":empty")))
- return false;
+ return document.documentElement;
+ }
- // XPath can't do namespaced attributes, nor can it read
- // the "checked" property from DOM nodes
- if ((/(\[[\w-]*?:|:checked)/).test(this.expression))
- return false;
+ function define(D) {
+ if (!element) element = getRootElement();
- return true;
- },
+ property[D] = 'client' + D;
- compileMatcher: function() {
- if (this.shouldUseXPath())
- return this.compileXPathMatcher();
+ viewport['get' + D] = function() { return element[property[D]] };
+ return viewport['get' + D]();
+ }
- var e = this.expression, ps = Selector.patterns, h = Selector.handlers,
- c = Selector.criteria, le, p, m;
+ viewport.getWidth = define.curry('Width');
- if (Selector._cache[e]) {
- this.matcher = Selector._cache[e];
- return;
- }
+ viewport.getHeight = define.curry('Height');
+})(document.viewport);
- this.matcher = ["this.matcher = function(root) {",
- "var r = root, h = Selector.handlers, c = false, n;"];
- while (e && le != e && (/\S/).test(e)) {
- le = e;
- for (var i in ps) {
- p = ps[i];
- if (m = e.match(p)) {
- this.matcher.push(Object.isFunction(c[i]) ? c[i](m) :
- new Template(c[i]).evaluate(m));
- e = e.replace(m[0], '');
- break;
- }
- }
+Element.Storage = {
+ UID: 1
+};
+
+Element.addMethods({
+ getStorage: function(element) {
+ if (!(element = $(element))) return;
+
+ var uid;
+ if (element === window) {
+ uid = 0;
+ } else {
+ if (typeof element._prototypeUID === "undefined")
+ element._prototypeUID = Element.Storage.UID++;
+ uid = element._prototypeUID;
}
- this.matcher.push("return h.unique(n);\n}");
- eval(this.matcher.join('\n'));
- Selector._cache[this.expression] = this.matcher;
+ if (!Element.Storage[uid])
+ Element.Storage[uid] = $H();
+
+ return Element.Storage[uid];
},
- compileXPathMatcher: function() {
- var e = this.expression, ps = Selector.patterns,
- x = Selector.xpath, le, m;
+ store: function(element, key, value) {
+ if (!(element = $(element))) return;
- if (Selector._cache[e]) {
- this.xpath = Selector._cache[e]; return;
+ if (arguments.length === 2) {
+ Element.getStorage(element).update(key);
+ } else {
+ Element.getStorage(element).set(key, value);
}
- this.matcher = ['.//*'];
- while (e && le != e && (/\S/).test(e)) {
- le = e;
- for (var i in ps) {
- if (m = e.match(ps[i])) {
- this.matcher.push(Object.isFunction(x[i]) ? x[i](m) :
- new Template(x[i]).evaluate(m));
- e = e.replace(m[0], '');
- break;
- }
- }
+ return element;
+ },
+
+ retrieve: function(element, key, defaultValue) {
+ if (!(element = $(element))) return;
+ var hash = Element.getStorage(element), value = hash.get(key);
+
+ if (Object.isUndefined(value)) {
+ hash.set(key, defaultValue);
+ value = defaultValue;
}
- this.xpath = this.matcher.join('');
- Selector._cache[this.expression] = this.xpath;
+ return value;
},
- findElements: function(root) {
- root = root || document;
- if (this.xpath) return document._getElementsByXPath(this.xpath, root);
- return this.matcher(root);
+ clone: function(element, deep) {
+ if (!(element = $(element))) return;
+ var clone = element.cloneNode(deep);
+ clone._prototypeUID = void 0;
+ if (deep) {
+ var descendants = Element.select(clone, '*'),
+ i = descendants.length;
+ while (i--) {
+ descendants[i]._prototypeUID = void 0;
+ }
+ }
+ return Element.extend(clone);
},
- match: function(element) {
- this.tokens = [];
+ purge: function(element) {
+ if (!(element = $(element))) return;
+ purgeElement(element);
- var e = this.expression, ps = Selector.patterns, as = Selector.assertions;
- var le, p, m;
+ var descendants = element.getElementsByTagName('*'),
+ i = descendants.length;
- while (e && le !== e && (/\S/).test(e)) {
- le = e;
- for (var i in ps) {
- p = ps[i];
- if (m = e.match(p)) {
- // use the Selector.assertions methods unless the selector
- // is too complex.
- if (as[i]) {
- this.tokens.push([i, Object.clone(m)]);
- e = e.replace(m[0], '');
- } else {
- // reluctantly do a document-wide search
- // and look for a match in the array
- return this.findElements(document).include(element);
- }
- }
- }
+ while (i--) purgeElement(descendants[i]);
+
+ return null;
+ }
+});
+
+(function() {
+
+ function toDecimal(pctString) {
+ var match = pctString.match(/^(\d+)%?$/i);
+ if (!match) return null;
+ return (Number(match[1]) / 100);
+ }
+
+ function getPixelValue(value, property) {
+ if (Object.isElement(value)) {
+ element = value;
+ value = element.getStyle(property);
+ }
+ if (value === null) {
+ return null;
+ }
+
+ if ((/^(?:-)?\d+(\.\d+)?(px)?$/i).test(value)) {
+ return window.parseFloat(value);
}
- var match = true, name, matches;
- for (var i = 0, token; token = this.tokens[i]; i++) {
- name = token[0], matches = token[1];
- if (!Selector.assertions[name](element, matches)) {
- match = false; break;
+ if (/\d/.test(value) && element.runtimeStyle) {
+ var style = element.style.left, rStyle = element.runtimeStyle.left;
+ element.runtimeStyle.left = element.currentStyle.left;
+ element.style.left = value || 0;
+ value = element.style.pixelLeft;
+ element.style.left = style;
+ element.runtimeStyle.left = rStyle;
+
+ return value;
+ }
+
+ if (value.include('%')) {
+ var decimal = toDecimal(value);
+ var whole;
+ if (property.include('left') || property.include('right') ||
+ property.include('width')) {
+ whole = $(element.parentNode).measure('width');
+ } else if (property.include('top') || property.include('bottom') ||
+ property.include('height')) {
+ whole = $(element.parentNode).measure('height');
}
+
+ return whole * decimal;
}
- return match;
- },
+ return 0;
+ }
- toString: function() {
- return this.expression;
- },
+ function toCSSPixels(number) {
+ if (Object.isString(number) && number.endsWith('px')) {
+ return number;
+ }
+ return number + 'px';
+ }
- inspect: function() {
- return "#<Selector:" + this.expression.inspect() + ">";
+ function isDisplayed(element) {
+ var originalElement = element;
+ while (element && element.parentNode) {
+ var display = element.getStyle('display');
+ if (display === 'none') {
+ return false;
+ }
+ element = $(element.parentNode);
+ }
+ return true;
}
-});
-Object.extend(Selector, {
- _cache: { },
-
- xpath: {
- descendant: "//*",
- child: "/*",
- adjacent: "/following-sibling::*[1]",
- laterSibling: '/following-sibling::*',
- tagName: function(m) {
- if (m[1] == '*') return '';
- return "[local-name()='" + m[1].toLowerCase() +
- "' or local-name()='" + m[1].toUpperCase() + "']";
+ var hasLayout = Prototype.K;
+ if ('currentStyle' in document.documentElement) {
+ hasLayout = function(element) {
+ if (!element.currentStyle.hasLayout) {
+ element.style.zoom = 1;
+ }
+ return element;
+ };
+ }
+
+ function cssNameFor(key) {
+ if (key.include('border')) key = key + '-width';
+ return key.camelize();
+ }
+
+ Element.Layout = Class.create(Hash, {
+ initialize: function($super, element, preCompute) {
+ $super();
+ this.element = $(element);
+
+ Element.Layout.PROPERTIES.each( function(property) {
+ this._set(property, null);
+ }, this);
+
+ if (preCompute) {
+ this._preComputing = true;
+ this._begin();
+ Element.Layout.PROPERTIES.each( this._compute, this );
+ this._end();
+ this._preComputing = false;
+ }
+ },
+
+ _set: function(property, value) {
+ return Hash.prototype.set.call(this, property, value);
+ },
+
+ set: function(property, value) {
+ throw "Properties of Element.Layout are read-only.";
+ },
+
+ get: function($super, property) {
+ var value = $super(property);
+ return value === null ? this._compute(property) : value;
+ },
+
+ _begin: function() {
+ if (this._prepared) return;
+
+ var element = this.element;
+ if (isDisplayed(element)) {
+ this._prepared = true;
+ return;
+ }
+
+ var originalStyles = {
+ position: element.style.position || '',
+ width: element.style.width || '',
+ visibility: element.style.visibility || '',
+ display: element.style.display || ''
+ };
+
+ element.store('prototype_original_styles', originalStyles);
+
+ var position = element.getStyle('position'),
+ width = element.getStyle('width');
+
+ element.setStyle({
+ position: 'absolute',
+ visibility: 'hidden',
+ display: 'block'
+ });
+
+ var positionedWidth = element.getStyle('width');
+
+ var newWidth;
+ if (width && (positionedWidth === width)) {
+ newWidth = getPixelValue(width);
+ } else if (width && (position === 'absolute' || position === 'fixed')) {
+ newWidth = getPixelValue(width);
+ } else {
+ var parent = element.parentNode, pLayout = $(parent).getLayout();
+
+ newWidth = pLayout.get('width') -
+ this.get('margin-left') -
+ this.get('border-left') -
+ this.get('padding-left') -
+ this.get('padding-right') -
+ this.get('border-right') -
+ this.get('margin-right');
+ }
+
+ element.setStyle({ width: newWidth + 'px' });
+
+ this._prepared = true;
},
- className: "[contains(concat(' ', @class, ' '), ' #{1} ')]",
- id: "[@id='#{1}']",
- attrPresence: function(m) {
- m[1] = m[1].toLowerCase();
- return new Template("[@#{1}]").evaluate(m);
+
+ _end: function() {
+ var element = this.element;
+ var originalStyles = element.retrieve('prototype_original_styles');
+ element.store('prototype_original_styles', null);
+ element.setStyle(originalStyles);
+ this._prepared = false;
},
- attr: function(m) {
- m[1] = m[1].toLowerCase();
- m[3] = m[5] || m[6];
- return new Template(Selector.xpath.operators[m[2]]).evaluate(m);
+
+ _compute: function(property) {
+ var COMPUTATIONS = Element.Layout.COMPUTATIONS;
+ if (!(property in COMPUTATIONS)) {
+ throw "Property not found.";
+ }
+ return this._set(property, COMPUTATIONS[property].call(this, this.element));
},
- pseudo: function(m) {
- var h = Selector.xpath.pseudos[m[1]];
- if (!h) return '';
- if (Object.isFunction(h)) return h(m);
- return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m);
+
+ toObject: function() {
+ var args = $A(arguments);
+ var keys = (args.length === 0) ? Element.Layout.PROPERTIES :
+ args.join(' ').split(' ');
+ var obj = {};
+ keys.each( function(key) {
+ if (!Element.Layout.PROPERTIES.include(key)) return;
+ var value = this.get(key);
+ if (value != null) obj[key] = value;
+ }, this);
+ return obj;
},
- operators: {
- '=': "[@#{1}='#{3}']",
- '!=': "[@#{1}!='#{3}']",
- '^=': "[starts-with(@#{1}, '#{3}')]",
- '$=': "[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']",
- '*=': "[contains(@#{1}, '#{3}')]",
- '~=': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]",
- '|=': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]"
+
+ toHash: function() {
+ var obj = this.toObject.apply(this, arguments);
+ return new Hash(obj);
},
- pseudos: {
- 'first-child': '[not(preceding-sibling::*)]',
- 'last-child': '[not(following-sibling::*)]',
- 'only-child': '[not(preceding-sibling::* or following-sibling::*)]',
- 'empty': "[count(*) = 0 and (count(text()) = 0 or translate(text(), ' \t\r\n', '') = '')]",
- 'checked': "[@checked]",
- 'disabled': "[@disabled]",
- 'enabled': "[not(@disabled)]",
- 'not': function(m) {
- var e = m[6], p = Selector.patterns,
- x = Selector.xpath, le, v;
-
- var exclusion = [];
- while (e && le != e && (/\S/).test(e)) {
- le = e;
- for (var i in p) {
- if (m = e.match(p[i])) {
- v = Object.isFunction(x[i]) ? x[i](m) : new Template(x[i]).evaluate(m);
- exclusion.push("(" + v.substring(1, v.length - 1) + ")");
- e = e.replace(m[0], '');
- break;
- }
- }
- }
- return "[not(" + exclusion.join(" and ") + ")]";
+
+ toCSS: function() {
+ var args = $A(arguments);
+ var keys = (args.length === 0) ? Element.Layout.PROPERTIES :
+ args.join(' ').split(' ');
+ var css = {};
+
+ keys.each( function(key) {
+ if (!Element.Layout.PROPERTIES.include(key)) return;
+ if (Element.Layout.COMPOSITE_PROPERTIES.include(key)) return;
+
+ var value = this.get(key);
+ if (value != null) css[cssNameFor(key)] = value + 'px';
+ }, this);
+ return css;
+ },
+
+ inspect: function() {
+ return "#<Element.Layout>";
+ }
+ });
+
+ Object.extend(Element.Layout, {
+ PROPERTIES: $w('height width top left right bottom border-left border-right border-top border-bottom padding-left padding-right padding-top padding-bottom margin-top margin-bottom margin-left margin-right padding-box-width padding-box-height border-box-width border-box-height margin-box-width margin-box-height'),
+
+ COMPOSITE_PROPERTIES: $w('padding-box-width padding-box-height margin-box-width margin-box-height border-box-width border-box-height'),
+
+ COMPUTATIONS: {
+ 'height': function(element) {
+ if (!this._preComputing) this._begin();
+
+ var bHeight = this.get('border-box-height');
+ if (bHeight <= 0) return 0;
+
+ var bTop = this.get('border-top'),
+ bBottom = this.get('border-bottom');
+
+ var pTop = this.get('padding-top'),
+ pBottom = this.get('padding-bottom');
+
+ if (!this._preComputing) this._end();
+
+ return bHeight - bTop - bBottom - pTop - pBottom;
},
- 'nth-child': function(m) {
- return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ", m);
+
+ 'width': function(element) {
+ if (!this._preComputing) this._begin();
+
+ var bWidth = this.get('border-box-width');
+ if (bWidth <= 0) return 0;
+
+ var bLeft = this.get('border-left'),
+ bRight = this.get('border-right');
+
+ var pLeft = this.get('padding-left'),
+ pRight = this.get('padding-right');
+
+ if (!this._preComputing) this._end();
+
+ return bWidth - bLeft - bRight - pLeft - pRight;
},
- 'nth-last-child': function(m) {
- return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ", m);
+
+ 'padding-box-height': function(element) {
+ var height = this.get('height'),
+ pTop = this.get('padding-top'),
+ pBottom = this.get('padding-bottom');
+
+ return height + pTop + pBottom;
},
- 'nth-of-type': function(m) {
- return Selector.xpath.pseudos.nth("position() ", m);
+
+ 'padding-box-width': function(element) {
+ var width = this.get('width'),
+ pLeft = this.get('padding-left'),
+ pRight = this.get('padding-right');
+
+ return width + pLeft + pRight;
},
- 'nth-last-of-type': function(m) {
- return Selector.xpath.pseudos.nth("(last() + 1 - position()) ", m);
+
+ 'border-box-height': function(element) {
+ return element.offsetHeight;
},
- 'first-of-type': function(m) {
- m[6] = "1"; return Selector.xpath.pseudos['nth-of-type'](m);
+
+ 'border-box-width': function(element) {
+ return element.offsetWidth;
},
- 'last-of-type': function(m) {
- m[6] = "1"; return Selector.xpath.pseudos['nth-last-of-type'](m);
+
+ 'margin-box-height': function(element) {
+ var bHeight = this.get('border-box-height'),
+ mTop = this.get('margin-top'),
+ mBottom = this.get('margin-bottom');
+
+ if (bHeight <= 0) return 0;
+
+ return bHeight + mTop + mBottom;
},
- 'only-of-type': function(m) {
- var p = Selector.xpath.pseudos; return p['first-of-type'](m) + p['last-of-type'](m);
+
+ 'margin-box-width': function(element) {
+ var bWidth = this.get('border-box-width'),
+ mLeft = this.get('margin-left'),
+ mRight = this.get('margin-right');
+
+ if (bWidth <= 0) return 0;
+
+ return bWidth + mLeft + mRight;
},
- nth: function(fragment, m) {
- var mm, formula = m[6], predicate;
- if (formula == 'even') formula = '2n+0';
- if (formula == 'odd') formula = '2n+1';
- if (mm = formula.match(/^(\d+)$/)) // digit only
- return '[' + fragment + "= " + mm[1] + ']';
- if (mm = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b
- if (mm[1] == "-") mm[1] = -1;
- var a = mm[1] ? Number(mm[1]) : 1;
- var b = mm[2] ? Number(mm[2]) : 0;
- predicate = "[((#{fragment} - #{b}) mod #{a} = 0) and " +
- "((#{fragment} - #{b}) div #{a} >= 0)]";
- return new Template(predicate).evaluate({
- fragment: fragment, a: a, b: b });
- }
+
+ 'top': function(element) {
+ var offset = element.positionedOffset();
+ return offset.top;
+ },
+
+ 'bottom': function(element) {
+ var offset = element.positionedOffset(),
+ parent = element.getOffsetParent(),
+ pHeight = parent.measure('height');
+
+ var mHeight = this.get('border-box-height');
+
+ return pHeight - mHeight - offset.top;
+ },
+
+ 'left': function(element) {
+ var offset = element.positionedOffset();
+ return offset.left;
+ },
+
+ 'right': function(element) {
+ var offset = element.positionedOffset(),
+ parent = element.getOffsetParent(),
+ pWidth = parent.measure('width');
+
+ var mWidth = this.get('border-box-width');
+
+ return pWidth - mWidth - offset.left;
+ },
+
+ 'padding-top': function(element) {
+ return getPixelValue(element, 'paddingTop');
+ },
+
+ 'padding-bottom': function(element) {
+ return getPixelValue(element, 'paddingBottom');
+ },
+
+ 'padding-left': function(element) {
+ return getPixelValue(element, 'paddingLeft');
+ },
+
+ 'padding-right': function(element) {
+ return getPixelValue(element, 'paddingRight');
+ },
+
+ 'border-top': function(element) {
+ return Object.isNumber(element.clientTop) ? element.clientTop :
+ getPixelValue(element, 'borderTopWidth');
+ },
+
+ 'border-bottom': function(element) {
+ return Object.isNumber(element.clientBottom) ? element.clientBottom :
+ getPixelValue(element, 'borderBottomWidth');
+ },
+
+ 'border-left': function(element) {
+ return Object.isNumber(element.clientLeft) ? element.clientLeft :
+ getPixelValue(element, 'borderLeftWidth');
+ },
+
+ 'border-right': function(element) {
+ return Object.isNumber(element.clientRight) ? element.clientRight :
+ getPixelValue(element, 'borderRightWidth');
+ },
+
+ 'margin-top': function(element) {
+ return getPixelValue(element, 'marginTop');
+ },
+
+ 'margin-bottom': function(element) {
+ return getPixelValue(element, 'marginBottom');
+ },
+
+ 'margin-left': function(element) {
+ return getPixelValue(element, 'marginLeft');
+ },
+
+ 'margin-right': function(element) {
+ return getPixelValue(element, 'marginRight');
}
}
- },
+ });
- criteria: {
- tagName: 'n = h.tagName(n, r, "#{1}", c); c = false;',
- className: 'n = h.className(n, r, "#{1}", c); c = false;',
- id: 'n = h.id(n, r, "#{1}", c); c = false;',
- attrPresence: 'n = h.attrPresence(n, r, "#{1}"); c = false;',
- attr: function(m) {
- m[3] = (m[5] || m[6]);
- return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}"); c = false;').evaluate(m);
- },
- pseudo: function(m) {
- if (m[6]) m[6] = m[6].replace(/"/g, '\\"');
- return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m);
- },
- descendant: 'c = "descendant";',
- child: 'c = "child";',
- adjacent: 'c = "adjacent";',
- laterSibling: 'c = "laterSibling";'
- },
-
- patterns: {
- // combinators must be listed first
- // (and descendant needs to be last combinator)
- laterSibling: /^\s*~\s*/,
- child: /^\s*>\s*/,
- adjacent: /^\s*\+\s*/,
- descendant: /^\s/,
-
- // selectors follow
- tagName: /^\s*(\*|[\w\-]+)(\b|$)?/,
- id: /^#([\w\-\*]+)(\b|$)/,
- className: /^\.([\w\-\*]+)(\b|$)/,
- pseudo: /^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s)|(?=:))/,
- attrPresence: /^\[([\w]+)\]/,
- attr: /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/
- },
-
- // for Selector.match and Element#match
- assertions: {
- tagName: function(element, matches) {
- return matches[1].toUpperCase() == element.tagName.toUpperCase();
+ if ('getBoundingClientRect' in document.documentElement) {
+ Object.extend(Element.Layout.COMPUTATIONS, {
+ 'right': function(element) {
+ var parent = hasLayout(element.getOffsetParent());
+ var rect = element.getBoundingClientRect(),
+ pRect = parent.getBoundingClientRect();
+
+ return (pRect.right - rect.right).round();
+ },
+
+ 'bottom': function(element) {
+ var parent = hasLayout(element.getOffsetParent());
+ var rect = element.getBoundingClientRect(),
+ pRect = parent.getBoundingClientRect();
+
+ return (pRect.bottom - rect.bottom).round();
+ }
+ });
+ }
+
+ Element.Offset = Class.create({
+ initialize: function(left, top) {
+ this.left = left.round();
+ this.top = top.round();
+
+ this[0] = this.left;
+ this[1] = this.top;
},
- className: function(element, matches) {
- return Element.hasClassName(element, matches[1]);
+ relativeTo: function(offset) {
+ return new Element.Offset(
+ this.left - offset.left,
+ this.top - offset.top
+ );
},
- id: function(element, matches) {
- return element.id === matches[1];
+ inspect: function() {
+ return "#<Element.Offset left: #{left} top: #{top}>".interpolate(this);
},
- attrPresence: function(element, matches) {
- return Element.hasAttribute(element, matches[1]);
+ toString: function() {
+ return "[#{left}, #{top}]".interpolate(this);
},
- attr: function(element, matches) {
- var nodeValue = Element.readAttribute(element, matches[1]);
- return Selector.operators[matches[2]](nodeValue, matches[3]);
+ toArray: function() {
+ return [this.left, this.top];
}
- },
+ });
- handlers: {
- // UTILITY FUNCTIONS
- // joins two collections
- concat: function(a, b) {
- for (var i = 0, node; node = b[i]; i++)
- a.push(node);
- return a;
- },
+ function getLayout(element, preCompute) {
+ return new Element.Layout(element, preCompute);
+ }
- // marks an array of nodes for counting
- mark: function(nodes) {
- for (var i = 0, node; node = nodes[i]; i++)
- node._counted = true;
- return nodes;
- },
+ function measure(element, property) {
+ return $(element).getLayout().get(property);
+ }
- unmark: function(nodes) {
- for (var i = 0, node; node = nodes[i]; i++)
- node._counted = undefined;
- return nodes;
- },
+ function getDimensions(element) {
+ var layout = $(element).getLayout();
+ return {
+ width: layout.get('width'),
+ height: layout.get('height')
+ };
+ }
- // mark each child node with its position (for nth calls)
- // "ofType" flag indicates whether we're indexing for nth-of-type
- // rather than nth-child
- index: function(parentNode, reverse, ofType) {
- parentNode._counted = true;
- if (reverse) {
- for (var nodes = parentNode.childNodes, i = nodes.length - 1, j = 1; i >= 0; i--) {
- var node = nodes[i];
- if (node.nodeType == 1 && (!ofType || node._counted)) node.nodeIndex = j++;
- }
- } else {
- for (var i = 0, j = 1, nodes = parentNode.childNodes; node = nodes[i]; i++)
- if (node.nodeType == 1 && (!ofType || node._counted)) node.nodeIndex = j++;
+ function getOffsetParent(element) {
+ if (isDetached(element)) return $(document.body);
+
+ var isInline = (Element.getStyle(element, 'display') === 'inline');
+ if (!isInline && element.offsetParent) return $(element.offsetParent);
+ if (element === document.body) return $(element);
+
+ while ((element = element.parentNode) && element !== document.body) {
+ if (Element.getStyle(element, 'position') !== 'static') {
+ return (element.nodeName === 'HTML') ? $(document.body) : $(element);
}
- },
+ }
- // filters out duplicates and extends all nodes
- unique: function(nodes) {
- if (nodes.length == 0) return nodes;
- var results = [], n;
- for (var i = 0, l = nodes.length; i < l; i++)
- if (!(n = nodes[i])._counted) {
- n._counted = true;
- results.push(Element.extend(n));
- }
- return Selector.handlers.unmark(results);
- },
+ return $(document.body);
+ }
- // COMBINATOR FUNCTIONS
- descendant: function(nodes) {
- var h = Selector.handlers;
- for (var i = 0, results = [], node; node = nodes[i]; i++)
- h.concat(results, node.getElementsByTagName('*'));
- return results;
- },
- child: function(nodes) {
- var h = Selector.handlers;
- for (var i = 0, results = [], node; node = nodes[i]; i++) {
- for (var j = 0, child; child = node.childNodes[j]; j++)
- if (child.nodeType == 1 && child.tagName != '!') results.push(child);
- }
- return results;
- },
+ function cumulativeOffset(element) {
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+ element = element.offsetParent;
+ } while (element);
+ return new Element.Offset(valueL, valueT);
+ }
+
+ function positionedOffset(element) {
+ var layout = element.getLayout();
- adjacent: function(nodes) {
- for (var i = 0, results = [], node; node = nodes[i]; i++) {
- var next = this.nextElementSibling(node);
- if (next) results.push(next);
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+ element = element.offsetParent;
+ if (element) {
+ if (isBody(element)) break;
+ var p = Element.getStyle(element, 'position');
+ if (p !== 'static') break;
}
- return results;
- },
+ } while (element);
- laterSibling: function(nodes) {
- var h = Selector.handlers;
- for (var i = 0, results = [], node; node = nodes[i]; i++)
- h.concat(results, Element.nextSiblings(node));
- return results;
- },
+ valueL -= layout.get('margin-top');
+ valueT -= layout.get('margin-left');
- nextElementSibling: function(node) {
- while (node = node.nextSibling)
- if (node.nodeType == 1) return node;
- return null;
- },
+ return new Element.Offset(valueL, valueT);
+ }
- previousElementSibling: function(node) {
- while (node = node.previousSibling)
- if (node.nodeType == 1) return node;
- return null;
- },
+ function cumulativeScrollOffset(element) {
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.scrollTop || 0;
+ valueL += element.scrollLeft || 0;
+ element = element.parentNode;
+ } while (element);
+ return new Element.Offset(valueL, valueT);
+ }
- // TOKEN FUNCTIONS
- tagName: function(nodes, root, tagName, combinator) {
- tagName = tagName.toUpperCase();
- var results = [], h = Selector.handlers;
- if (nodes) {
- if (combinator) {
- // fastlane for ordinary descendant combinators
- if (combinator == "descendant") {
- for (var i = 0, node; node = nodes[i]; i++)
- h.concat(results, node.getElementsByTagName(tagName));
- return results;
- } else nodes = this[combinator](nodes);
- if (tagName == "*") return nodes;
- }
- for (var i = 0, node; node = nodes[i]; i++)
- if (node.tagName.toUpperCase() == tagName) results.push(node);
- return results;
- } else return root.getElementsByTagName(tagName);
- },
+ function viewportOffset(forElement) {
+ var valueT = 0, valueL = 0, docBody = document.body;
- id: function(nodes, root, id, combinator) {
- var targetNode = $(id), h = Selector.handlers;
- if (!targetNode) return [];
- if (!nodes && root == document) return [targetNode];
- if (nodes) {
- if (combinator) {
- if (combinator == 'child') {
- for (var i = 0, node; node = nodes[i]; i++)
- if (targetNode.parentNode == node) return [targetNode];
- } else if (combinator == 'descendant') {
- for (var i = 0, node; node = nodes[i]; i++)
- if (Element.descendantOf(targetNode, node)) return [targetNode];
- } else if (combinator == 'adjacent') {
- for (var i = 0, node; node = nodes[i]; i++)
- if (Selector.handlers.previousElementSibling(targetNode) == node)
- return [targetNode];
- } else nodes = h[combinator](nodes);
- }
- for (var i = 0, node; node = nodes[i]; i++)
- if (node == targetNode) return [targetNode];
- return [];
+ var element = forElement;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+ if (element.offsetParent == docBody &&
+ Element.getStyle(element, 'position') == 'absolute') break;
+ } while (element = element.offsetParent);
+
+ element = forElement;
+ do {
+ if (element != docBody) {
+ valueT -= element.scrollTop || 0;
+ valueL -= element.scrollLeft || 0;
}
- return (targetNode && Element.descendantOf(targetNode, root)) ? [targetNode] : [];
- },
+ } while (element = element.parentNode);
+ return new Element.Offset(valueL, valueT);
+ }
- className: function(nodes, root, className, combinator) {
- if (nodes && combinator) nodes = this[combinator](nodes);
- return Selector.handlers.byClassName(nodes, root, className);
- },
+ function absolutize(element) {
+ element = $(element);
- byClassName: function(nodes, root, className) {
- if (!nodes) nodes = Selector.handlers.descendant([root]);
- var needle = ' ' + className + ' ';
- for (var i = 0, results = [], node, nodeClassName; node = nodes[i]; i++) {
- nodeClassName = node.className;
- if (nodeClassName.length == 0) continue;
- if (nodeClassName == className || (' ' + nodeClassName + ' ').include(needle))
- results.push(node);
- }
- return results;
- },
+ if (Element.getStyle(element, 'position') === 'absolute') {
+ return element;
+ }
- attrPresence: function(nodes, root, attr) {
- if (!nodes) nodes = root.getElementsByTagName("*");
- var results = [];
- for (var i = 0, node; node = nodes[i]; i++)
- if (Element.hasAttribute(node, attr)) results.push(node);
- return results;
- },
+ var offsetParent = getOffsetParent(element);
+ var eOffset = element.viewportOffset(),
+ pOffset = offsetParent.viewportOffset();
- attr: function(nodes, root, attr, value, operator) {
- if (!nodes) nodes = root.getElementsByTagName("*");
- var handler = Selector.operators[operator], results = [];
- for (var i = 0, node; node = nodes[i]; i++) {
- var nodeValue = Element.readAttribute(node, attr);
- if (nodeValue === null) continue;
- if (handler(nodeValue, value)) results.push(node);
- }
- return results;
- },
+ var offset = eOffset.relativeTo(pOffset);
+ var layout = element.getLayout();
- pseudo: function(nodes, name, value, root, combinator) {
- if (nodes && combinator) nodes = this[combinator](nodes);
- if (!nodes) nodes = root.getElementsByTagName("*");
- return Selector.pseudos[name](nodes, value, root);
+ element.store('prototype_absolutize_original_styles', {
+ left: element.getStyle('left'),
+ top: element.getStyle('top'),
+ width: element.getStyle('width'),
+ height: element.getStyle('height')
+ });
+
+ element.setStyle({
+ position: 'absolute',
+ top: offset.top + 'px',
+ left: offset.left + 'px',
+ width: layout.get('width') + 'px',
+ height: layout.get('height') + 'px'
+ });
+
+ return element;
+ }
+
+ function relativize(element) {
+ element = $(element);
+ if (Element.getStyle(element, 'position') === 'relative') {
+ return element;
}
- },
- pseudos: {
- 'first-child': function(nodes, value, root) {
- for (var i = 0, results = [], node; node = nodes[i]; i++) {
- if (Selector.handlers.previousElementSibling(node)) continue;
- results.push(node);
- }
- return results;
- },
- 'last-child': function(nodes, value, root) {
- for (var i = 0, results = [], node; node = nodes[i]; i++) {
- if (Selector.handlers.nextElementSibling(node)) continue;
- results.push(node);
- }
- return results;
- },
- 'only-child': function(nodes, value, root) {
- var h = Selector.handlers;
- for (var i = 0, results = [], node; node = nodes[i]; i++)
- if (!h.previousElementSibling(node) && !h.nextElementSibling(node))
- results.push(node);
- return results;
- },
- 'nth-child': function(nodes, formula, root) {
- return Selector.pseudos.nth(nodes, formula, root);
- },
- 'nth-last-child': function(nodes, formula, root) {
- return Selector.pseudos.nth(nodes, formula, root, true);
- },
- 'nth-of-type': function(nodes, formula, root) {
- return Selector.pseudos.nth(nodes, formula, root, false, true);
- },
- 'nth-last-of-type': function(nodes, formula, root) {
- return Selector.pseudos.nth(nodes, formula, root, true, true);
- },
- 'first-of-type': function(nodes, formula, root) {
- return Selector.pseudos.nth(nodes, "1", root, false, true);
- },
- 'last-of-type': function(nodes, formula, root) {
- return Selector.pseudos.nth(nodes, "1", root, true, true);
- },
- 'only-of-type': function(nodes, formula, root) {
- var p = Selector.pseudos;
- return p['last-of-type'](p['first-of-type'](nodes, formula, root), formula, root);
- },
+ var originalStyles =
+ element.retrieve('prototype_absolutize_original_styles');
- // handles the an+b logic
- getIndices: function(a, b, total) {
- if (a == 0) return b > 0 ? [b] : [];
- return $R(1, total).inject([], function(memo, i) {
- if (0 == (i - b) % a && (i - b) / a >= 0) memo.push(i);
- return memo;
- });
- },
+ if (originalStyles) element.setStyle(originalStyles);
+ return element;
+ }
- // handles nth(-last)-child, nth(-last)-of-type, and (first|last)-of-type
- nth: function(nodes, formula, root, reverse, ofType) {
- if (nodes.length == 0) return [];
- if (formula == 'even') formula = '2n+0';
- if (formula == 'odd') formula = '2n+1';
- var h = Selector.handlers, results = [], indexed = [], m;
- h.mark(nodes);
- for (var i = 0, node; node = nodes[i]; i++) {
- if (!node.parentNode._counted) {
- h.index(node.parentNode, reverse, ofType);
- indexed.push(node.parentNode);
- }
- }
- if (formula.match(/^\d+$/)) { // just a number
- formula = Number(formula);
- for (var i = 0, node; node = nodes[i]; i++)
- if (node.nodeIndex == formula) results.push(node);
- } else if (m = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b
- if (m[1] == "-") m[1] = -1;
- var a = m[1] ? Number(m[1]) : 1;
- var b = m[2] ? Number(m[2]) : 0;
- var indices = Selector.pseudos.getIndices(a, b, nodes.length);
- for (var i = 0, node, l = indices.length; node = nodes[i]; i++) {
- for (var j = 0; j < l; j++)
- if (node.nodeIndex == indices[j]) results.push(node);
+ Element.addMethods({
+ getLayout: getLayout,
+ measure: measure,
+ getDimensions: getDimensions,
+ getOffsetParent: getOffsetParent,
+ cumulativeOffset: cumulativeOffset,
+ positionedOffset: positionedOffset,
+ cumulativeScrollOffset: cumulativeScrollOffset,
+ viewportOffset: viewportOffset,
+ absolutize: absolutize,
+ relativize: relativize
+ });
+
+ function isBody(element) {
+ return element.nodeName.toUpperCase() === 'BODY';
+ }
+
+ function isDetached(element) {
+ return element !== document.body &&
+ !Element.descendantOf(element, document.body);
+ }
+
+ if ('getBoundingClientRect' in document.documentElement) {
+ Element.addMethods({
+ viewportOffset: function(element) {
+ element = $(element);
+ if (isDetached(element)) return new Element.Offset(0, 0);
+
+ var rect = element.getBoundingClientRect(),
+ docEl = document.documentElement;
+ return new Element.Offset(rect.left - docEl.clientLeft,
+ rect.top - docEl.clientTop);
+ },
+
+ positionedOffset: function(element) {
+ element = $(element);
+ var parent = element.getOffsetParent();
+ if (isDetached(element)) return new Element.Offset(0, 0);
+
+ if (element.offsetParent &&
+ element.offsetParent.nodeName.toUpperCase() === 'HTML') {
+ return positionedOffset(element);
}
- }
- h.unmark(nodes);
- h.unmark(indexed);
- return results;
- },
- 'empty': function(nodes, value, root) {
- for (var i = 0, results = [], node; node = nodes[i]; i++) {
- // IE treats comments as element nodes
- if (node.tagName == '!' || (node.firstChild && !node.innerHTML.match(/^\s*$/))) continue;
- results.push(node);
- }
- return results;
- },
+ var eOffset = element.viewportOffset(),
+ pOffset = isBody(parent) ? viewportOffset(parent) :
+ parent.viewportOffset();
+ var retOffset = eOffset.relativeTo(pOffset);
- 'not': function(nodes, selector, root) {
- var h = Selector.handlers, selectorType, m;
- var exclusions = new Selector(selector).findElements(root);
- h.mark(exclusions);
- for (var i = 0, results = [], node; node = nodes[i]; i++)
- if (!node._counted) results.push(node);
- h.unmark(exclusions);
- return results;
- },
+ var layout = element.getLayout();
+ var top = retOffset.top - layout.get('margin-top');
+ var left = retOffset.left - layout.get('margin-left');
- 'enabled': function(nodes, value, root) {
- for (var i = 0, results = [], node; node = nodes[i]; i++)
- if (!node.disabled) results.push(node);
- return results;
- },
+ return new Element.Offset(left, top);
+ }
+ });
+ }
+})();
+window.$$ = function() {
+ var expression = $A(arguments).join(', ');
+ return Prototype.Selector.select(expression, document);
+};
- 'disabled': function(nodes, value, root) {
- for (var i = 0, results = [], node; node = nodes[i]; i++)
- if (node.disabled) results.push(node);
- return results;
- },
+Prototype.Selector = (function() {
- 'checked': function(nodes, value, root) {
- for (var i = 0, results = [], node; node = nodes[i]; i++)
- if (node.checked) results.push(node);
- return results;
- }
- },
+ function select() {
+ throw new Error('Method "Prototype.Selector.select" must be defined.');
+ }
- operators: {
- '=': function(nv, v) { return nv == v; },
- '!=': function(nv, v) { return nv != v; },
- '^=': function(nv, v) { return nv.startsWith(v); },
- '$=': function(nv, v) { return nv.endsWith(v); },
- '*=': function(nv, v) { return nv.include(v); },
- '~=': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + ' '); },
- '|=': function(nv, v) { return ('-' + nv.toUpperCase() + '-').include('-' + v.toUpperCase() + '-'); }
- },
+ function match() {
+ throw new Error('Method "Prototype.Selector.match" must be defined.');
+ }
- matchElements: function(elements, expression) {
- var matches = new Selector(expression).findElements(), h = Selector.handlers;
- h.mark(matches);
- for (var i = 0, results = [], element; element = elements[i]; i++)
- if (element._counted) results.push(element);
- h.unmark(matches);
- return results;
- },
+ function find(elements, expression, index) {
+ index = index || 0;
+ var match = Prototype.Selector.match, length = elements.length, matchIndex = 0, i;
- findElement: function(elements, expression, index) {
- if (Object.isNumber(expression)) {
- index = expression; expression = false;
+ for (i = 0; i < length; i++) {
+ if (match(elements[i], expression) && index == matchIndex++) {
+ return Element.extend(elements[i]);
+ }
}
- return Selector.matchElements(elements, expression || '*')[index || 0];
- },
+ }
- findChildElements: function(element, expressions) {
- var exprs = expressions.join(',');
- expressions = [];
- exprs.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) {
- expressions.push(m[1].strip());
- });
- var results = [], h = Selector.handlers;
- for (var i = 0, l = expressions.length, selector; i < l; i++) {
- selector = new Selector(expressions[i].strip());
- h.concat(results, selector.findElements(element));
+ function extendElements(elements) {
+ for (var i = 0, length = elements.length; i < length; i++) {
+ Element.extend(elements[i]);
}
- return (l > 1) ? h.unique(results) : results;
+ return elements;
}
-});
-if (Prototype.Browser.IE) {
- // IE returns comment nodes on getElementsByTagName("*").
- // Filter them out.
- Selector.handlers.concat = function(a, b) {
- for (var i = 0, node; node = b[i]; i++)
- if (node.tagName !== "!") a.push(node);
- return a;
+
+ var K = Prototype.K;
+
+ return {
+ select: select,
+ match: match,
+ find: find,
+ extendElements: (Element.extend === K) ? K : extendElements,
+ extendElement: Element.extend
};
+})();
+Prototype._original_property = window.Sizzle;
+/*!
+ * Sizzle CSS Selector Engine - v1.0
+ * Copyright 2009, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ * More information: http://sizzlejs.com/
+ */
+(function(){
+
+var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
+ done = 0,
+ toString = Object.prototype.toString,
+ hasDuplicate = false,
+ baseHasDuplicate = true;
+
+[0, 0].sort(function(){
+ baseHasDuplicate = false;
+ return 0;
+});
+
+var Sizzle = function(selector, context, results, seed) {
+ results = results || [];
+ var origContext = context = context || document;
+
+ if ( context.nodeType !== 1 && context.nodeType !== 9 ) {
+ return [];
+ }
+
+ if ( !selector || typeof selector !== "string" ) {
+ return results;
+ }
+
+ var parts = [], m, set, checkSet, check, mode, extra, prune = true, contextXML = isXML(context),
+ soFar = selector;
+
+ while ( (chunker.exec(""), m = chunker.exec(soFar)) !== null ) {
+ soFar = m[3];
+
+ parts.push( m[1] );
+
+ if ( m[2] ) {
+ extra = m[3];
+ break;
+ }
+ }
+
+ if ( parts.length > 1 && origPOS.exec( selector ) ) {
+ if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {
+ set = posProcess( parts[0] + parts[1], context );
+ } else {
+ set = Expr.relative[ parts[0] ] ?
+ [ context ] :
+ Sizzle( parts.shift(), context );
+
+ while ( parts.length ) {
+ selector = parts.shift();
+
+ if ( Expr.relative[ selector ] )
+ selector += parts.shift();
+
+ set = posProcess( selector, set );
+ }
+ }
+ } else {
+ if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML &&
+ Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) {
+ var ret = Sizzle.find( parts.shift(), context, contextXML );
+ context = ret.expr ? Sizzle.filter( ret.expr, ret.set )[0] : ret.set[0];
+ }
+
+ if ( context ) {
+ var ret = seed ?
+ { expr: parts.pop(), set: makeArray(seed) } :
+ Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML );
+ set = ret.expr ? Sizzle.filter( ret.expr, ret.set ) : ret.set;
+
+ if ( parts.length > 0 ) {
+ checkSet = makeArray(set);
+ } else {
+ prune = false;
+ }
+
+ while ( parts.length ) {
+ var cur = parts.pop(), pop = cur;
+
+ if ( !Expr.relative[ cur ] ) {
+ cur = "";
+ } else {
+ pop = parts.pop();
+ }
+
+ if ( pop == null ) {
+ pop = context;
+ }
+
+ Expr.relative[ cur ]( checkSet, pop, contextXML );
+ }
+ } else {
+ checkSet = parts = [];
+ }
+ }
+
+ if ( !checkSet ) {
+ checkSet = set;
+ }
+
+ if ( !checkSet ) {
+ throw "Syntax error, unrecognized expression: " + (cur || selector);
+ }
+
+ if ( toString.call(checkSet) === "[object Array]" ) {
+ if ( !prune ) {
+ results.push.apply( results, checkSet );
+ } else if ( context && context.nodeType === 1 ) {
+ for ( var i = 0; checkSet[i] != null; i++ ) {
+ if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && contains(context, checkSet[i])) ) {
+ results.push( set[i] );
+ }
+ }
+ } else {
+ for ( var i = 0; checkSet[i] != null; i++ ) {
+ if ( checkSet[i] && checkSet[i].nodeType === 1 ) {
+ results.push( set[i] );
+ }
+ }
+ }
+ } else {
+ makeArray( checkSet, results );
+ }
+
+ if ( extra ) {
+ Sizzle( extra, origContext, results, seed );
+ Sizzle.uniqueSort( results );
+ }
+
+ return results;
+};
+
+Sizzle.uniqueSort = function(results){
+ if ( sortOrder ) {
+ hasDuplicate = baseHasDuplicate;
+ results.sort(sortOrder);
+
+ if ( hasDuplicate ) {
+ for ( var i = 1; i < results.length; i++ ) {
+ if ( results[i] === results[i-1] ) {
+ results.splice(i--, 1);
+ }
+ }
+ }
+ }
+
+ return results;
+};
+
+Sizzle.matches = function(expr, set){
+ return Sizzle(expr, null, null, set);
+};
+
+Sizzle.find = function(expr, context, isXML){
+ var set, match;
+
+ if ( !expr ) {
+ return [];
+ }
+
+ for ( var i = 0, l = Expr.order.length; i < l; i++ ) {
+ var type = Expr.order[i], match;
+
+ if ( (match = Expr.leftMatch[ type ].exec( expr )) ) {
+ var left = match[1];
+ match.splice(1,1);
+
+ if ( left.substr( left.length - 1 ) !== "\\" ) {
+ match[1] = (match[1] || "").replace(/\\/g, "");
+ set = Expr.find[ type ]( match, context, isXML );
+ if ( set != null ) {
+ expr = expr.replace( Expr.match[ type ], "" );
+ break;
+ }
+ }
+ }
+ }
+
+ if ( !set ) {
+ set = context.getElementsByTagName("*");
+ }
+
+ return {set: set, expr: expr};
+};
+
+Sizzle.filter = function(expr, set, inplace, not){
+ var old = expr, result = [], curLoop = set, match, anyFound,
+ isXMLFilter = set && set[0] && isXML(set[0]);
+
+ while ( expr && set.length ) {
+ for ( var type in Expr.filter ) {
+ if ( (match = Expr.match[ type ].exec( expr )) != null ) {
+ var filter = Expr.filter[ type ], found, item;
+ anyFound = false;
+
+ if ( curLoop == result ) {
+ result = [];
+ }
+
+ if ( Expr.preFilter[ type ] ) {
+ match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter );
+
+ if ( !match ) {
+ anyFound = found = true;
+ } else if ( match === true ) {
+ continue;
+ }
+ }
+
+ if ( match ) {
+ for ( var i = 0; (item = curLoop[i]) != null; i++ ) {
+ if ( item ) {
+ found = filter( item, match, i, curLoop );
+ var pass = not ^ !!found;
+
+ if ( inplace && found != null ) {
+ if ( pass ) {
+ anyFound = true;
+ } else {
+ curLoop[i] = false;
+ }
+ } else if ( pass ) {
+ result.push( item );
+ anyFound = true;
+ }
+ }
+ }
+ }
+
+ if ( found !== undefined ) {
+ if ( !inplace ) {
+ curLoop = result;
+ }
+
+ expr = expr.replace( Expr.match[ type ], "" );
+
+ if ( !anyFound ) {
+ return [];
+ }
+
+ break;
+ }
+ }
+ }
+
+ if ( expr == old ) {
+ if ( anyFound == null ) {
+ throw "Syntax error, unrecognized expression: " + expr;
+ } else {
+ break;
+ }
+ }
+
+ old = expr;
+ }
+
+ return curLoop;
+};
+
+var Expr = Sizzle.selectors = {
+ order: [ "ID", "NAME", "TAG" ],
+ match: {
+ ID: /#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
+ CLASS: /\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
+ NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,
+ ATTR: /\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
+ TAG: /^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,
+ CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,
+ POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,
+ PSEUDO: /:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/
+ },
+ leftMatch: {},
+ attrMap: {
+ "class": "className",
+ "for": "htmlFor"
+ },
+ attrHandle: {
+ href: function(elem){
+ return elem.getAttribute("href");
+ }
+ },
+ relative: {
+ "+": function(checkSet, part, isXML){
+ var isPartStr = typeof part === "string",
+ isTag = isPartStr && !/\W/.test(part),
+ isPartStrNotTag = isPartStr && !isTag;
+
+ if ( isTag && !isXML ) {
+ part = part.toUpperCase();
+ }
+
+ for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) {
+ if ( (elem = checkSet[i]) ) {
+ while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {}
+
+ checkSet[i] = isPartStrNotTag || elem && elem.nodeName === part ?
+ elem || false :
+ elem === part;
+ }
+ }
+
+ if ( isPartStrNotTag ) {
+ Sizzle.filter( part, checkSet, true );
+ }
+ },
+ ">": function(checkSet, part, isXML){
+ var isPartStr = typeof part === "string";
+
+ if ( isPartStr && !/\W/.test(part) ) {
+ part = isXML ? part : part.toUpperCase();
+
+ for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+ var elem = checkSet[i];
+ if ( elem ) {
+ var parent = elem.parentNode;
+ checkSet[i] = parent.nodeName === part ? parent : false;
+ }
+ }
+ } else {
+ for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+ var elem = checkSet[i];
+ if ( elem ) {
+ checkSet[i] = isPartStr ?
+ elem.parentNode :
+ elem.parentNode === part;
+ }
+ }
+
+ if ( isPartStr ) {
+ Sizzle.filter( part, checkSet, true );
+ }
+ }
+ },
+ "": function(checkSet, part, isXML){
+ var doneName = done++, checkFn = dirCheck;
+
+ if ( !/\W/.test(part) ) {
+ var nodeCheck = part = isXML ? part : part.toUpperCase();
+ checkFn = dirNodeCheck;
+ }
+
+ checkFn("parentNode", part, doneName, checkSet, nodeCheck, isXML);
+ },
+ "~": function(checkSet, part, isXML){
+ var doneName = done++, checkFn = dirCheck;
+
+ if ( typeof part === "string" && !/\W/.test(part) ) {
+ var nodeCheck = part = isXML ? part : part.toUpperCase();
+ checkFn = dirNodeCheck;
+ }
+
+ checkFn("previousSibling", part, doneName, checkSet, nodeCheck, isXML);
+ }
+ },
+ find: {
+ ID: function(match, context, isXML){
+ if ( typeof context.getElementById !== "undefined" && !isXML ) {
+ var m = context.getElementById(match[1]);
+ return m ? [m] : [];
+ }
+ },
+ NAME: function(match, context, isXML){
+ if ( typeof context.getElementsByName !== "undefined" ) {
+ var ret = [], results = context.getElementsByName(match[1]);
+
+ for ( var i = 0, l = results.length; i < l; i++ ) {
+ if ( results[i].getAttribute("name") === match[1] ) {
+ ret.push( results[i] );
+ }
+ }
+
+ return ret.length === 0 ? null : ret;
+ }
+ },
+ TAG: function(match, context){
+ return context.getElementsByTagName(match[1]);
+ }
+ },
+ preFilter: {
+ CLASS: function(match, curLoop, inplace, result, not, isXML){
+ match = " " + match[1].replace(/\\/g, "") + " ";
+
+ if ( isXML ) {
+ return match;
+ }
+
+ for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {
+ if ( elem ) {
+ if ( not ^ (elem.className && (" " + elem.className + " ").indexOf(match) >= 0) ) {
+ if ( !inplace )
+ result.push( elem );
+ } else if ( inplace ) {
+ curLoop[i] = false;
+ }
+ }
+ }
+
+ return false;
+ },
+ ID: function(match){
+ return match[1].replace(/\\/g, "");
+ },
+ TAG: function(match, curLoop){
+ for ( var i = 0; curLoop[i] === false; i++ ){}
+ return curLoop[i] && isXML(curLoop[i]) ? match[1] : match[1].toUpperCase();
+ },
+ CHILD: function(match){
+ if ( match[1] == "nth" ) {
+ var test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(
+ match[2] == "even" && "2n" || match[2] == "odd" && "2n+1" ||
+ !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);
+
+ match[2] = (test[1] + (test[2] || 1)) - 0;
+ match[3] = test[3] - 0;
+ }
+
+ match[0] = done++;
+
+ return match;
+ },
+ ATTR: function(match, curLoop, inplace, result, not, isXML){
+ var name = match[1].replace(/\\/g, "");
+
+ if ( !isXML && Expr.attrMap[name] ) {
+ match[1] = Expr.attrMap[name];
+ }
+
+ if ( match[2] === "~=" ) {
+ match[4] = " " + match[4] + " ";
+ }
+
+ return match;
+ },
+ PSEUDO: function(match, curLoop, inplace, result, not){
+ if ( match[1] === "not" ) {
+ if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) {
+ match[3] = Sizzle(match[3], null, null, curLoop);
+ } else {
+ var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
+ if ( !inplace ) {
+ result.push.apply( result, ret );
+ }
+ return false;
+ }
+ } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
+ return true;
+ }
+
+ return match;
+ },
+ POS: function(match){
+ match.unshift( true );
+ return match;
+ }
+ },
+ filters: {
+ enabled: function(elem){
+ return elem.disabled === false && elem.type !== "hidden";
+ },
+ disabled: function(elem){
+ return elem.disabled === true;
+ },
+ checked: function(elem){
+ return elem.checked === true;
+ },
+ selected: function(elem){
+ elem.parentNode.selectedIndex;
+ return elem.selected === true;
+ },
+ parent: function(elem){
+ return !!elem.firstChild;
+ },
+ empty: function(elem){
+ return !elem.firstChild;
+ },
+ has: function(elem, i, match){
+ return !!Sizzle( match[3], elem ).length;
+ },
+ header: function(elem){
+ return /h\d/i.test( elem.nodeName );
+ },
+ text: function(elem){
+ return "text" === elem.type;
+ },
+ radio: function(elem){
+ return "radio" === elem.type;
+ },
+ checkbox: function(elem){
+ return "checkbox" === elem.type;
+ },
+ file: function(elem){
+ return "file" === elem.type;
+ },
+ password: function(elem){
+ return "password" === elem.type;
+ },
+ submit: function(elem){
+ return "submit" === elem.type;
+ },
+ image: function(elem){
+ return "image" === elem.type;
+ },
+ reset: function(elem){
+ return "reset" === elem.type;
+ },
+ button: function(elem){
+ return "button" === elem.type || elem.nodeName.toUpperCase() === "BUTTON";
+ },
+ input: function(elem){
+ return /input|select|textarea|button/i.test(elem.nodeName);
+ }
+ },
+ setFilters: {
+ first: function(elem, i){
+ return i === 0;
+ },
+ last: function(elem, i, match, array){
+ return i === array.length - 1;
+ },
+ even: function(elem, i){
+ return i % 2 === 0;
+ },
+ odd: function(elem, i){
+ return i % 2 === 1;
+ },
+ lt: function(elem, i, match){
+ return i < match[3] - 0;
+ },
+ gt: function(elem, i, match){
+ return i > match[3] - 0;
+ },
+ nth: function(elem, i, match){
+ return match[3] - 0 == i;
+ },
+ eq: function(elem, i, match){
+ return match[3] - 0 == i;
+ }
+ },
+ filter: {
+ PSEUDO: function(elem, match, i, array){
+ var name = match[1], filter = Expr.filters[ name ];
+
+ if ( filter ) {
+ return filter( elem, i, match, array );
+ } else if ( name === "contains" ) {
+ return (elem.textContent || elem.innerText || "").indexOf(match[3]) >= 0;
+ } else if ( name === "not" ) {
+ var not = match[3];
+
+ for ( var i = 0, l = not.length; i < l; i++ ) {
+ if ( not[i] === elem ) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+ },
+ CHILD: function(elem, match){
+ var type = match[1], node = elem;
+ switch (type) {
+ case 'only':
+ case 'first':
+ while ( (node = node.previousSibling) ) {
+ if ( node.nodeType === 1 ) return false;
+ }
+ if ( type == 'first') return true;
+ node = elem;
+ case 'last':
+ while ( (node = node.nextSibling) ) {
+ if ( node.nodeType === 1 ) return false;
+ }
+ return true;
+ case 'nth':
+ var first = match[2], last = match[3];
+
+ if ( first == 1 && last == 0 ) {
+ return true;
+ }
+
+ var doneName = match[0],
+ parent = elem.parentNode;
+
+ if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) {
+ var count = 0;
+ for ( node = parent.firstChild; node; node = node.nextSibling ) {
+ if ( node.nodeType === 1 ) {
+ node.nodeIndex = ++count;
+ }
+ }
+ parent.sizcache = doneName;
+ }
+
+ var diff = elem.nodeIndex - last;
+ if ( first == 0 ) {
+ return diff == 0;
+ } else {
+ return ( diff % first == 0 && diff / first >= 0 );
+ }
+ }
+ },
+ ID: function(elem, match){
+ return elem.nodeType === 1 && elem.getAttribute("id") === match;
+ },
+ TAG: function(elem, match){
+ return (match === "*" && elem.nodeType === 1) || elem.nodeName === match;
+ },
+ CLASS: function(elem, match){
+ return (" " + (elem.className || elem.getAttribute("class")) + " ")
+ .indexOf( match ) > -1;
+ },
+ ATTR: function(elem, match){
+ var name = match[1],
+ result = Expr.attrHandle[ name ] ?
+ Expr.attrHandle[ name ]( elem ) :
+ elem[ name ] != null ?
+ elem[ name ] :
+ elem.getAttribute( name ),
+ value = result + "",
+ type = match[2],
+ check = match[4];
+
+ return result == null ?
+ type === "!=" :
+ type === "=" ?
+ value === check :
+ type === "*=" ?
+ value.indexOf(check) >= 0 :
+ type === "~=" ?
+ (" " + value + " ").indexOf(check) >= 0 :
+ !check ?
+ value && result !== false :
+ type === "!=" ?
+ value != check :
+ type === "^=" ?
+ value.indexOf(check) === 0 :
+ type === "$=" ?
+ value.substr(value.length - check.length) === check :
+ type === "|=" ?
+ value === check || value.substr(0, check.length + 1) === check + "-" :
+ false;
+ },
+ POS: function(elem, match, i, array){
+ var name = match[2], filter = Expr.setFilters[ name ];
+
+ if ( filter ) {
+ return filter( elem, i, match, array );
+ }
+ }
+ }
+};
+
+var origPOS = Expr.match.POS;
+
+for ( var type in Expr.match ) {
+ Expr.match[ type ] = new RegExp( Expr.match[ type ].source + /(?![^\[]*\])(?![^\(]*\))/.source );
+ Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source );
+}
+
+var makeArray = function(array, results) {
+ array = Array.prototype.slice.call( array, 0 );
+
+ if ( results ) {
+ results.push.apply( results, array );
+ return results;
+ }
+
+ return array;
+};
+
+try {
+ Array.prototype.slice.call( document.documentElement.childNodes, 0 );
+
+} catch(e){
+ makeArray = function(array, results) {
+ var ret = results || [];
+
+ if ( toString.call(array) === "[object Array]" ) {
+ Array.prototype.push.apply( ret, array );
+ } else {
+ if ( typeof array.length === "number" ) {
+ for ( var i = 0, l = array.length; i < l; i++ ) {
+ ret.push( array[i] );
+ }
+ } else {
+ for ( var i = 0; array[i]; i++ ) {
+ ret.push( array[i] );
+ }
+ }
+ }
+
+ return ret;
+ };
+}
+
+var sortOrder;
+
+if ( document.documentElement.compareDocumentPosition ) {
+ sortOrder = function( a, b ) {
+ if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) {
+ if ( a == b ) {
+ hasDuplicate = true;
+ }
+ return 0;
+ }
+
+ var ret = a.compareDocumentPosition(b) & 4 ? -1 : a === b ? 0 : 1;
+ if ( ret === 0 ) {
+ hasDuplicate = true;
+ }
+ return ret;
+ };
+} else if ( "sourceIndex" in document.documentElement ) {
+ sortOrder = function( a, b ) {
+ if ( !a.sourceIndex || !b.sourceIndex ) {
+ if ( a == b ) {
+ hasDuplicate = true;
+ }
+ return 0;
+ }
+
+ var ret = a.sourceIndex - b.sourceIndex;
+ if ( ret === 0 ) {
+ hasDuplicate = true;
+ }
+ return ret;
+ };
+} else if ( document.createRange ) {
+ sortOrder = function( a, b ) {
+ if ( !a.ownerDocument || !b.ownerDocument ) {
+ if ( a == b ) {
+ hasDuplicate = true;
+ }
+ return 0;
+ }
+
+ var aRange = a.ownerDocument.createRange(), bRange = b.ownerDocument.createRange();
+ aRange.setStart(a, 0);
+ aRange.setEnd(a, 0);
+ bRange.setStart(b, 0);
+ bRange.setEnd(b, 0);
+ var ret = aRange.compareBoundaryPoints(Range.START_TO_END, bRange);
+ if ( ret === 0 ) {
+ hasDuplicate = true;
+ }
+ return ret;
+ };
+}
+
+(function(){
+ var form = document.createElement("div"),
+ id = "script" + (new Date).getTime();
+ form.innerHTML = "<a name='" + id + "'/>";
+
+ var root = document.documentElement;
+ root.insertBefore( form, root.firstChild );
+
+ if ( !!document.getElementById( id ) ) {
+ Expr.find.ID = function(match, context, isXML){
+ if ( typeof context.getElementById !== "undefined" && !isXML ) {
+ var m = context.getElementById(match[1]);
+ return m ? m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? [m] : undefined : [];
+ }
+ };
+
+ Expr.filter.ID = function(elem, match){
+ var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
+ return elem.nodeType === 1 && node && node.nodeValue === match;
+ };
+ }
+
+ root.removeChild( form );
+ root = form = null; // release memory in IE
+})();
+
+(function(){
+
+ var div = document.createElement("div");
+ div.appendChild( document.createComment("") );
+
+ if ( div.getElementsByTagName("*").length > 0 ) {
+ Expr.find.TAG = function(match, context){
+ var results = context.getElementsByTagName(match[1]);
+
+ if ( match[1] === "*" ) {
+ var tmp = [];
+
+ for ( var i = 0; results[i]; i++ ) {
+ if ( results[i].nodeType === 1 ) {
+ tmp.push( results[i] );
+ }
+ }
+
+ results = tmp;
+ }
+
+ return results;
+ };
+ }
+
+ div.innerHTML = "<a href='#'></a>";
+ if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&
+ div.firstChild.getAttribute("href") !== "#" ) {
+ Expr.attrHandle.href = function(elem){
+ return elem.getAttribute("href", 2);
+ };
+ }
+
+ div = null; // release memory in IE
+})();
+
+if ( document.querySelectorAll ) (function(){
+ var oldSizzle = Sizzle, div = document.createElement("div");
+ div.innerHTML = "<p class='TEST'></p>";
+
+ if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
+ return;
+ }
+
+ Sizzle = function(query, context, extra, seed){
+ context = context || document;
+
+ if ( !seed && context.nodeType === 9 && !isXML(context) ) {
+ try {
+ return makeArray( context.querySelectorAll(query), extra );
+ } catch(e){}
+ }
+
+ return oldSizzle(query, context, extra, seed);
+ };
+
+ for ( var prop in oldSizzle ) {
+ Sizzle[ prop ] = oldSizzle[ prop ];
+ }
+
+ div = null; // release memory in IE
+})();
+
+if ( document.getElementsByClassName && document.documentElement.getElementsByClassName ) (function(){
+ var div = document.createElement("div");
+ div.innerHTML = "<div class='test e'></div><div class='test'></div>";
+
+ if ( div.getElementsByClassName("e").length === 0 )
+ return;
+
+ div.lastChild.className = "e";
+
+ if ( div.getElementsByClassName("e").length === 1 )
+ return;
+
+ Expr.order.splice(1, 0, "CLASS");
+ Expr.find.CLASS = function(match, context, isXML) {
+ if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {
+ return context.getElementsByClassName(match[1]);
+ }
+ };
+
+ div = null; // release memory in IE
+})();
+
+function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+ var sibDir = dir == "previousSibling" && !isXML;
+ for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+ var elem = checkSet[i];
+ if ( elem ) {
+ if ( sibDir && elem.nodeType === 1 ){
+ elem.sizcache = doneName;
+ elem.sizset = i;
+ }
+ elem = elem[dir];
+ var match = false;
+
+ while ( elem ) {
+ if ( elem.sizcache === doneName ) {
+ match = checkSet[elem.sizset];
+ break;
+ }
+
+ if ( elem.nodeType === 1 && !isXML ){
+ elem.sizcache = doneName;
+ elem.sizset = i;
+ }
+
+ if ( elem.nodeName === cur ) {
+ match = elem;
+ break;
+ }
+
+ elem = elem[dir];
+ }
+
+ checkSet[i] = match;
+ }
+ }
}
-function $$() {
- return Selector.findChildElements(document, $A(arguments));
+function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+ var sibDir = dir == "previousSibling" && !isXML;
+ for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+ var elem = checkSet[i];
+ if ( elem ) {
+ if ( sibDir && elem.nodeType === 1 ) {
+ elem.sizcache = doneName;
+ elem.sizset = i;
+ }
+ elem = elem[dir];
+ var match = false;
+
+ while ( elem ) {
+ if ( elem.sizcache === doneName ) {
+ match = checkSet[elem.sizset];
+ break;
+ }
+
+ if ( elem.nodeType === 1 ) {
+ if ( !isXML ) {
+ elem.sizcache = doneName;
+ elem.sizset = i;
+ }
+ if ( typeof cur !== "string" ) {
+ if ( elem === cur ) {
+ match = true;
+ break;
+ }
+
+ } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {
+ match = elem;
+ break;
+ }
+ }
+
+ elem = elem[dir];
+ }
+
+ checkSet[i] = match;
+ }
+ }
}
+
+var contains = document.compareDocumentPosition ? function(a, b){
+ return a.compareDocumentPosition(b) & 16;
+} : function(a, b){
+ return a !== b && (a.contains ? a.contains(b) : true);
+};
+
+var isXML = function(elem){
+ return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" ||
+ !!elem.ownerDocument && elem.ownerDocument.documentElement.nodeName !== "HTML";
+};
+
+var posProcess = function(selector, context){
+ var tmpSet = [], later = "", match,
+ root = context.nodeType ? [context] : context;
+
+ while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
+ later += match[0];
+ selector = selector.replace( Expr.match.PSEUDO, "" );
+ }
+
+ selector = Expr.relative[selector] ? selector + "*" : selector;
+
+ for ( var i = 0, l = root.length; i < l; i++ ) {
+ Sizzle( selector, root[i], tmpSet );
+ }
+
+ return Sizzle.filter( later, tmpSet );
+};
+
+
+window.Sizzle = Sizzle;
+
+})();
+
+;(function(engine) {
+ var extendElements = Prototype.Selector.extendElements;
+
+ function select(selector, scope) {
+ return extendElements(engine(selector, scope || document));
+ }
+
+ function match(element, selector) {
+ return engine.matches(selector, [element]).length == 1;
+ }
+
+ Prototype.Selector.engine = engine;
+ Prototype.Selector.select = select;
+ Prototype.Selector.match = match;
+})(Sizzle);
+
+window.Sizzle = Prototype._original_property;
+delete Prototype._original_property;
+
var Form = {
reset: function(form) {
- $(form).reset();
+ form = $(form);
+ form.reset();
return form;
},
@@ -3392,10 +4967,9 @@ var Form = {
var data = elements.inject({ }, function(result, element) {
if (!element.disabled && element.name) {
key = element.name; value = $(element).getValue();
- if (value != null && (element.type != 'submit' || (!submitted &&
+ if (value != null && element.type != 'file' && (element.type != 'submit' || (!submitted &&
submit !== false && (!submit || key == submit) && (submitted = true)))) {
if (key in result) {
- // a key is already present; construct an array of values
if (!Object.isArray(result[key])) result[key] = [result[key]];
result[key].push(value);
}
@@ -3415,13 +4989,18 @@ Form.Methods = {
},
getElements: function(form) {
- return $A($(form).getElementsByTagName('*')).inject([],
- function(elements, child) {
- if (Form.Element.Serializers[child.tagName.toLowerCase()])
- elements.push(Element.extend(child));
- return elements;
- }
- );
+ var elements = $(form).getElementsByTagName('*'),
+ element,
+ arr = [ ],
+ serializers = Form.Element.Serializers;
+ for (var i = 0; element = elements[i]; i++) {
+ arr.push(element);
+ }
+ return arr.inject([], function(elements, child) {
+ if (serializers[child.tagName.toLowerCase()])
+ elements.push(Element.extend(child));
+ return elements;
+ })
},
getInputs: function(form, typeName, name) {
@@ -3461,7 +5040,7 @@ Form.Methods = {
}).sortBy(function(element) { return element.tabIndex }).first();
return firstByIndex ? firstByIndex : elements.find(function(element) {
- return ['input', 'select', 'textarea'].include(element.tagName.toLowerCase());
+ return /^(?:input|select|textarea)$/i.test(element.tagName);
});
},
@@ -3492,6 +5071,7 @@ Form.Methods = {
/*--------------------------------------------------------------------------*/
+
Form.Element = {
focus: function(element) {
$(element).focus();
@@ -3505,6 +5085,7 @@ Form.Element = {
};
Form.Element.Methods = {
+
serialize: function(element) {
element = $(element);
if (!element.disabled && element.name) {
@@ -3545,7 +5126,7 @@ Form.Element.Methods = {
try {
element.focus();
if (element.select && (element.tagName.toLowerCase() != 'input' ||
- !['button', 'reset', 'submit'].include(element.type)))
+ !(/^(?:button|reset|submit)$/i.test(element.type))))
element.select();
} catch (e) { }
return element;
@@ -3553,7 +5134,6 @@ Form.Element.Methods = {
disable: function(element) {
element = $(element);
- element.blur();
element.disabled = true;
return element;
},
@@ -3568,6 +5148,7 @@ Form.Element.Methods = {
/*--------------------------------------------------------------------------*/
var Field = Form.Element;
+
var $F = Form.Element.Methods.getValue;
/*--------------------------------------------------------------------------*/
@@ -3593,22 +5174,22 @@ Form.Element.Serializers = {
else element.value = value;
},
- select: function(element, index) {
- if (Object.isUndefined(index))
+ select: function(element, value) {
+ if (Object.isUndefined(value))
return this[element.type == 'select-one' ?
'selectOne' : 'selectMany'](element);
else {
- var opt, value, single = !Object.isArray(index);
+ var opt, currentValue, single = !Object.isArray(value);
for (var i = 0, length = element.length; i < length; i++) {
opt = element.options[i];
- value = this.optionValue(opt);
+ currentValue = this.optionValue(opt);
if (single) {
- if (value == index) {
+ if (currentValue == value) {
opt.selected = true;
return;
}
}
- else opt.selected = index.include(value);
+ else opt.selected = value.include(currentValue);
}
}
},
@@ -3630,13 +5211,13 @@ Form.Element.Serializers = {
},
optionValue: function(opt) {
- // extend element because hasAttribute may not be native
return Element.extend(opt).hasAttribute('value') ? opt.value : opt.text;
}
};
/*--------------------------------------------------------------------------*/
+
Abstract.TimedObserver = Class.create(PeriodicalExecuter, {
initialize: function($super, element, frequency, callback) {
$super(callback, frequency);
@@ -3718,323 +5299,475 @@ Form.EventObserver = Class.create(Abstract.EventObserver, {
return Form.serialize(this.element);
}
});
-if (!window.Event) var Event = { };
-
-Object.extend(Event, {
- KEY_BACKSPACE: 8,
- KEY_TAB: 9,
- KEY_RETURN: 13,
- KEY_ESC: 27,
- KEY_LEFT: 37,
- KEY_UP: 38,
- KEY_RIGHT: 39,
- KEY_DOWN: 40,
- KEY_DELETE: 46,
- KEY_HOME: 36,
- KEY_END: 35,
- KEY_PAGEUP: 33,
- KEY_PAGEDOWN: 34,
- KEY_INSERT: 45,
-
- cache: { },
-
- relatedTarget: function(event) {
- var element;
- switch(event.type) {
- case 'mouseover': element = event.fromElement; break;
- case 'mouseout': element = event.toElement; break;
- default: return null;
- }
- return Element.extend(element);
- }
-});
+(function() {
-Event.Methods = (function() {
- var isButton;
+ var Event = {
+ KEY_BACKSPACE: 8,
+ KEY_TAB: 9,
+ KEY_RETURN: 13,
+ KEY_ESC: 27,
+ KEY_LEFT: 37,
+ KEY_UP: 38,
+ KEY_RIGHT: 39,
+ KEY_DOWN: 40,
+ KEY_DELETE: 46,
+ KEY_HOME: 36,
+ KEY_END: 35,
+ KEY_PAGEUP: 33,
+ KEY_PAGEDOWN: 34,
+ KEY_INSERT: 45,
+
+ cache: {}
+ };
+
+ var docEl = document.documentElement;
+ var MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED = 'onmouseenter' in docEl
+ && 'onmouseleave' in docEl;
+ var _isButton;
if (Prototype.Browser.IE) {
var buttonMap = { 0: 1, 1: 4, 2: 2 };
- isButton = function(event, code) {
- return event.button == buttonMap[code];
+ _isButton = function(event, code) {
+ return event.button === buttonMap[code];
};
-
} else if (Prototype.Browser.WebKit) {
- isButton = function(event, code) {
+ _isButton = function(event, code) {
switch (code) {
case 0: return event.which == 1 && !event.metaKey;
case 1: return event.which == 1 && event.metaKey;
default: return false;
}
};
-
} else {
- isButton = function(event, code) {
+ _isButton = function(event, code) {
return event.which ? (event.which === code + 1) : (event.button === code);
};
}
- return {
- isLeftClick: function(event) { return isButton(event, 0) },
- isMiddleClick: function(event) { return isButton(event, 1) },
- isRightClick: function(event) { return isButton(event, 2) },
+ function isLeftClick(event) { return _isButton(event, 0) }
- element: function(event) {
- var node = Event.extend(event).target;
- return Element.extend(node.nodeType == Node.TEXT_NODE ? node.parentNode : node);
- },
+ function isMiddleClick(event) { return _isButton(event, 1) }
- findElement: function(event, expression) {
- var element = Event.element(event);
- if (!expression) return element;
- var elements = [element].concat(element.ancestors());
- return Selector.findElement(elements, expression, 0);
- },
+ function isRightClick(event) { return _isButton(event, 2) }
- pointer: function(event) {
- return {
- x: event.pageX || (event.clientX +
- (document.documentElement.scrollLeft || document.body.scrollLeft)),
- y: event.pageY || (event.clientY +
- (document.documentElement.scrollTop || document.body.scrollTop))
- };
- },
+ function element(event) {
+ event = Event.extend(event);
+
+ var node = event.target, type = event.type,
+ currentTarget = event.currentTarget;
+
+ if (currentTarget && currentTarget.tagName) {
+ if (type === 'load' || type === 'error' ||
+ (type === 'click' && currentTarget.tagName.toLowerCase() === 'input'
+ && currentTarget.type === 'radio'))
+ node = currentTarget;
+ }
- pointerX: function(event) { return Event.pointer(event).x },
- pointerY: function(event) { return Event.pointer(event).y },
+ if (node.nodeType == Node.TEXT_NODE)
+ node = node.parentNode;
- stop: function(event) {
- Event.extend(event);
- event.preventDefault();
- event.stopPropagation();
- event.stopped = true;
+ return Element.extend(node);
+ }
+
+ function findElement(event, expression) {
+ var element = Event.element(event);
+ if (!expression) return element;
+ while (element) {
+ if (Object.isElement(element) && Prototype.Selector.match(element, expression)) {
+ return Element.extend(element);
+ }
+ element = element.parentNode;
}
+ }
+
+ function pointer(event) {
+ return { x: pointerX(event), y: pointerY(event) };
+ }
+
+ function pointerX(event) {
+ var docElement = document.documentElement,
+ body = document.body || { scrollLeft: 0 };
+
+ return event.pageX || (event.clientX +
+ (docElement.scrollLeft || body.scrollLeft) -
+ (docElement.clientLeft || 0));
+ }
+
+ function pointerY(event) {
+ var docElement = document.documentElement,
+ body = document.body || { scrollTop: 0 };
+
+ return event.pageY || (event.clientY +
+ (docElement.scrollTop || body.scrollTop) -
+ (docElement.clientTop || 0));
+ }
+
+
+ function stop(event) {
+ Event.extend(event);
+ event.preventDefault();
+ event.stopPropagation();
+
+ event.stopped = true;
+ }
+
+ Event.Methods = {
+ isLeftClick: isLeftClick,
+ isMiddleClick: isMiddleClick,
+ isRightClick: isRightClick,
+
+ element: element,
+ findElement: findElement,
+
+ pointer: pointer,
+ pointerX: pointerX,
+ pointerY: pointerY,
+
+ stop: stop
};
-})();
-Event.extend = (function() {
+
var methods = Object.keys(Event.Methods).inject({ }, function(m, name) {
m[name] = Event.Methods[name].methodize();
return m;
});
if (Prototype.Browser.IE) {
+ function _relatedTarget(event) {
+ var element;
+ switch (event.type) {
+ case 'mouseover': element = event.fromElement; break;
+ case 'mouseout': element = event.toElement; break;
+ default: return null;
+ }
+ return Element.extend(element);
+ }
+
Object.extend(methods, {
stopPropagation: function() { this.cancelBubble = true },
preventDefault: function() { this.returnValue = false },
- inspect: function() { return "[object Event]" }
+ inspect: function() { return '[object Event]' }
});
- return function(event) {
+ Event.extend = function(event, element) {
if (!event) return false;
if (event._extendedByPrototype) return event;
event._extendedByPrototype = Prototype.emptyFunction;
var pointer = Event.pointer(event);
+
Object.extend(event, {
- target: event.srcElement,
- relatedTarget: Event.relatedTarget(event),
+ target: event.srcElement || element,
+ relatedTarget: _relatedTarget(event),
pageX: pointer.x,
pageY: pointer.y
});
+
return Object.extend(event, methods);
};
-
} else {
- Event.prototype = Event.prototype || document.createEvent("HTMLEvents").__proto__;
+ Event.prototype = window.Event.prototype || document.createEvent('HTMLEvents').__proto__;
Object.extend(Event.prototype, methods);
- return Prototype.K;
+ Event.extend = Prototype.K;
}
-})();
-Object.extend(Event, (function() {
- var cache = Event.cache;
+ function _createResponder(element, eventName, handler) {
+ var registry = Element.retrieve(element, 'prototype_event_registry');
- function getEventID(element) {
- if (element._eventID) return element._eventID;
- arguments.callee.id = arguments.callee.id || 1;
- return element._eventID = ++arguments.callee.id;
- }
-
- function getDOMEventName(eventName) {
- if (eventName && eventName.include(':')) return "dataavailable";
- return eventName;
- }
+ if (Object.isUndefined(registry)) {
+ CACHE.push(element);
+ registry = Element.retrieve(element, 'prototype_event_registry', $H());
+ }
- function getCacheForID(id) {
- return cache[id] = cache[id] || { };
- }
+ var respondersForEvent = registry.get(eventName);
+ if (Object.isUndefined(respondersForEvent)) {
+ respondersForEvent = [];
+ registry.set(eventName, respondersForEvent);
+ }
- function getWrappersForEventName(id, eventName) {
- var c = getCacheForID(id);
- return c[eventName] = c[eventName] || [];
- }
+ if (respondersForEvent.pluck('handler').include(handler)) return false;
- function createWrapper(element, eventName, handler) {
- var id = getEventID(element);
- var c = getWrappersForEventName(id, eventName);
- if (c.pluck("handler").include(handler)) return false;
+ var responder;
+ if (eventName.include(":")) {
+ responder = function(event) {
+ if (Object.isUndefined(event.eventName))
+ return false;
- var wrapper = function(event) {
- if (!Event || !Event.extend ||
- (event.eventName && event.eventName != eventName))
+ if (event.eventName !== eventName)
return false;
- Event.extend(event);
- handler.call(element, event)
- };
+ Event.extend(event, element);
+ handler.call(element, event);
+ };
+ } else {
+ if (!MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED &&
+ (eventName === "mouseenter" || eventName === "mouseleave")) {
+ if (eventName === "mouseenter" || eventName === "mouseleave") {
+ responder = function(event) {
+ Event.extend(event, element);
+
+ var parent = event.relatedTarget;
+ while (parent && parent !== element) {
+ try { parent = parent.parentNode; }
+ catch(e) { parent = element; }
+ }
- wrapper.handler = handler;
- c.push(wrapper);
- return wrapper;
- }
+ if (parent === element) return;
- function findWrapper(id, eventName, handler) {
- var c = getWrappersForEventName(id, eventName);
- return c.find(function(wrapper) { return wrapper.handler == handler });
- }
+ handler.call(element, event);
+ };
+ }
+ } else {
+ responder = function(event) {
+ Event.extend(event, element);
+ handler.call(element, event);
+ };
+ }
+ }
- function destroyWrapper(id, eventName, handler) {
- var c = getCacheForID(id);
- if (!c[eventName]) return false;
- c[eventName] = c[eventName].without(findWrapper(id, eventName, handler));
+ responder.handler = handler;
+ respondersForEvent.push(responder);
+ return responder;
}
- function destroyCache() {
- for (var id in cache)
- for (var eventName in cache[id])
- cache[id][eventName] = null;
+ function _destroyCache() {
+ for (var i = 0, length = CACHE.length; i < length; i++) {
+ Event.stopObserving(CACHE[i]);
+ CACHE[i] = null;
+ }
}
- if (window.attachEvent) {
- window.attachEvent("onunload", destroyCache);
+ var CACHE = [];
+
+ if (Prototype.Browser.IE)
+ window.attachEvent('onunload', _destroyCache);
+
+ if (Prototype.Browser.WebKit)
+ window.addEventListener('unload', Prototype.emptyFunction, false);
+
+
+ var _getDOMEventName = Prototype.K,
+ translations = { mouseenter: "mouseover", mouseleave: "mouseout" };
+
+ if (!MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED) {
+ _getDOMEventName = function(eventName) {
+ return (translations[eventName] || eventName);
+ };
}
- return {
- observe: function(element, eventName, handler) {
- element = $(element);
- var name = getDOMEventName(eventName);
+ function observe(element, eventName, handler) {
+ element = $(element);
- var wrapper = createWrapper(element, eventName, handler);
- if (!wrapper) return element;
+ var responder = _createResponder(element, eventName, handler);
- if (element.addEventListener) {
- element.addEventListener(name, wrapper, false);
- } else {
- element.attachEvent("on" + name, wrapper);
+ if (!responder) return element;
+
+ if (eventName.include(':')) {
+ if (element.addEventListener)
+ element.addEventListener("dataavailable", responder, false);
+ else {
+ element.attachEvent("ondataavailable", responder);
+ element.attachEvent("onfilterchange", responder);
}
+ } else {
+ var actualEventName = _getDOMEventName(eventName);
+
+ if (element.addEventListener)
+ element.addEventListener(actualEventName, responder, false);
+ else
+ element.attachEvent("on" + actualEventName, responder);
+ }
+
+ return element;
+ }
+
+ function stopObserving(element, eventName, handler) {
+ element = $(element);
+
+ var registry = Element.retrieve(element, 'prototype_event_registry');
+ if (!registry) return element;
+ if (!eventName) {
+ registry.each( function(pair) {
+ var eventName = pair.key;
+ stopObserving(element, eventName);
+ });
return element;
- },
+ }
- stopObserving: function(element, eventName, handler) {
- element = $(element);
- var id = getEventID(element), name = getDOMEventName(eventName);
+ var responders = registry.get(eventName);
+ if (!responders) return element;
- if (!handler && eventName) {
- getWrappersForEventName(id, eventName).each(function(wrapper) {
- element.stopObserving(eventName, wrapper.handler);
- });
- return element;
+ if (!handler) {
+ responders.each(function(r) {
+ stopObserving(element, eventName, r.handler);
+ });
+ return element;
+ }
- } else if (!eventName) {
- Object.keys(getCacheForID(id)).each(function(eventName) {
- element.stopObserving(eventName);
- });
- return element;
+ var responder = responders.find( function(r) { return r.handler === handler; });
+ if (!responder) return element;
+
+ if (eventName.include(':')) {
+ if (element.removeEventListener)
+ element.removeEventListener("dataavailable", responder, false);
+ else {
+ element.detachEvent("ondataavailable", responder);
+ element.detachEvent("onfilterchange", responder);
}
+ } else {
+ var actualEventName = _getDOMEventName(eventName);
+ if (element.removeEventListener)
+ element.removeEventListener(actualEventName, responder, false);
+ else
+ element.detachEvent('on' + actualEventName, responder);
+ }
- var wrapper = findWrapper(id, eventName, handler);
- if (!wrapper) return element;
+ registry.set(eventName, responders.without(responder));
- if (element.removeEventListener) {
- element.removeEventListener(name, wrapper, false);
- } else {
- element.detachEvent("on" + name, wrapper);
- }
+ return element;
+ }
- destroyWrapper(id, eventName, handler);
+ function fire(element, eventName, memo, bubble) {
+ element = $(element);
- return element;
- },
+ if (Object.isUndefined(bubble))
+ bubble = true;
- fire: function(element, eventName, memo) {
- element = $(element);
- if (element == document && document.createEvent && !element.dispatchEvent)
- element = document.documentElement;
+ if (element == document && document.createEvent && !element.dispatchEvent)
+ element = document.documentElement;
- if (document.createEvent) {
- var event = document.createEvent("HTMLEvents");
- event.initEvent("dataavailable", true, true);
- } else {
- var event = document.createEventObject();
- event.eventType = "ondataavailable";
- }
+ var event;
+ if (document.createEvent) {
+ event = document.createEvent('HTMLEvents');
+ event.initEvent('dataavailable', true, true);
+ } else {
+ event = document.createEventObject();
+ event.eventType = bubble ? 'ondataavailable' : 'onfilterchange';
+ }
- event.eventName = eventName;
- event.memo = memo || { };
+ event.eventName = eventName;
+ event.memo = memo || { };
- if (document.createEvent) {
- element.dispatchEvent(event);
- } else {
- element.fireEvent(event.eventType, event);
- }
+ if (document.createEvent)
+ element.dispatchEvent(event);
+ else
+ element.fireEvent(event.eventType, event);
+
+ return Event.extend(event);
+ }
+
+ Event.Handler = Class.create({
+ initialize: function(element, eventName, selector, callback) {
+ this.element = $(element);
+ this.eventName = eventName;
+ this.selector = selector;
+ this.callback = callback;
+ this.handler = this.handleEvent.bind(this);
+ },
- return Event.extend(event);
+ start: function() {
+ Event.observe(this.element, this.eventName, this.handler);
+ return this;
+ },
+
+ stop: function() {
+ Event.stopObserving(this.element, this.eventName, this.handler);
+ return this;
+ },
+
+ handleEvent: function(event) {
+ var element = event.findElement(this.selector);
+ if (element) this.callback.call(this.element, event, element);
}
- };
-})());
+ });
-Object.extend(Event, Event.Methods);
+ function on(element, eventName, selector, callback) {
+ element = $(element);
+ if (Object.isFunction(selector) && Object.isUndefined(callback)) {
+ callback = selector, selector = null;
+ }
-Element.addMethods({
- fire: Event.fire,
- observe: Event.observe,
- stopObserving: Event.stopObserving
-});
+ return new Event.Handler(element, eventName, selector, callback).start();
+ }
-Object.extend(document, {
- fire: Element.Methods.fire.methodize(),
- observe: Element.Methods.observe.methodize(),
- stopObserving: Element.Methods.stopObserving.methodize()
-});
+ Object.extend(Event, Event.Methods);
+
+ Object.extend(Event, {
+ fire: fire,
+ observe: observe,
+ stopObserving: stopObserving,
+ on: on
+ });
+
+ Element.addMethods({
+ fire: fire,
+
+ observe: observe,
+
+ stopObserving: stopObserving,
+
+ on: on
+ });
+
+ Object.extend(document, {
+ fire: fire.methodize(),
+
+ observe: observe.methodize(),
+
+ stopObserving: stopObserving.methodize(),
+
+ on: on.methodize(),
+
+ loaded: false
+ });
+
+ if (window.Event) Object.extend(window.Event, Event);
+ else window.Event = Event;
+})();
(function() {
/* Support for the DOMContentLoaded event is based on work by Dan Webb,
- Matthias Miller, Dean Edwards and John Resig. */
+ Matthias Miller, Dean Edwards, John Resig, and Diego Perini. */
- var timer, fired = false;
+ var timer;
function fireContentLoadedEvent() {
- if (fired) return;
- if (timer) window.clearInterval(timer);
- document.fire("dom:loaded");
- fired = true;
+ if (document.loaded) return;
+ if (timer) window.clearTimeout(timer);
+ document.loaded = true;
+ document.fire('dom:loaded');
}
- if (document.addEventListener) {
- if (Prototype.Browser.WebKit) {
- timer = window.setInterval(function() {
- if (/loaded|complete/.test(document.readyState))
- fireContentLoadedEvent();
- }, 0);
-
- Event.observe(window, "load", fireContentLoadedEvent);
+ function checkReadyState() {
+ if (document.readyState === 'complete') {
+ document.stopObserving('readystatechange', checkReadyState);
+ fireContentLoadedEvent();
+ }
+ }
- } else {
- document.addEventListener("DOMContentLoaded",
- fireContentLoadedEvent, false);
+ function pollDoScroll() {
+ try { document.documentElement.doScroll('left'); }
+ catch(e) {
+ timer = pollDoScroll.defer();
+ return;
}
+ fireContentLoadedEvent();
+ }
+ if (document.addEventListener) {
+ document.addEventListener('DOMContentLoaded', fireContentLoadedEvent, false);
} else {
- document.write("<script id=__onDOMContentLoaded defer src=//:><\/script>");
- $("__onDOMContentLoaded").onreadystatechange = function() {
- if (this.readyState == "complete") {
- this.onreadystatechange = null;
- fireContentLoadedEvent();
- }
- };
+ document.observe('readystatechange', checkReadyState);
+ if (window == top)
+ timer = pollDoScroll.defer();
}
+
+ Event.observe(window, 'load', fireContentLoadedEvent);
})();
+
+Element.addMethods();
+
/*------------------------------- DEPRECATED -------------------------------*/
Hash.toQueryString = Object.toQueryString;
@@ -4063,16 +5796,9 @@ var Insertion = {
var $continue = new Error('"throw $continue" is deprecated, use "return" instead');
-// This should be moved to script.aculo.us; notice the deprecated methods
-// further below, that map to the newer Element methods.
var Position = {
- // set to true if needed, warning: firefox performance problems
- // NOT neeeded for page scrolling, only if draggable contained in
- // scrollable elements
includeScrollOffsets: false,
- // must be called before calling withinIncludingScrolloffset, every time the
- // page is scrolled
prepare: function() {
this.deltaX = window.pageXOffset
|| document.documentElement.scrollLeft
@@ -4084,7 +5810,6 @@ var Position = {
|| 0;
},
- // caches x/y coordinate pair to use with overlap
within: function(element, x, y) {
if (this.includeScrollOffsets)
return this.withinIncludingScrolloffsets(element, x, y);
@@ -4111,7 +5836,6 @@ var Position = {
this.xcomp < this.offset[0] + element.offsetWidth);
},
- // within must be called directly before
overlap: function(mode, element) {
if (!mode) return 0;
if (mode == 'vertical')
@@ -4122,7 +5846,6 @@ var Position = {
element.offsetWidth;
},
- // Deprecation layer -- use newer Element methods now (1.5.2).
cumulativeOffset: Element.Methods.cumulativeOffset,
@@ -4222,4 +5945,57 @@ Object.extend(Element.ClassNames.prototype, Enumerable);
/*--------------------------------------------------------------------------*/
-Element.addMethods(); \ No newline at end of file
+(function() {
+ window.Selector = Class.create({
+ initialize: function(expression) {
+ this.expression = expression.strip();
+ },
+
+ findElements: function(rootElement) {
+ return Prototype.Selector.select(this.expression, rootElement);
+ },
+
+ match: function(element) {
+ return Prototype.Selector.match(element, this.expression);
+ },
+
+ toString: function() {
+ return this.expression;
+ },
+
+ inspect: function() {
+ return "#<Selector: " + this.expression + ">";
+ }
+ });
+
+ Object.extend(Selector, {
+ matchElements: function(elements, expression) {
+ var match = Prototype.Selector.match,
+ results = [];
+
+ for (var i = 0, length = elements.length; i < length; i++) {
+ var element = elements[i];
+ if (match(element, expression)) {
+ results.push(Element.extend(element));
+ }
+ }
+ return results;
+ },
+
+ findElement: function(elements, expression, index) {
+ index = index || 0;
+ var matchIndex = 0, element;
+ for (var i = 0, length = elements.length; i < length; i++) {
+ element = elements[i];
+ if (Prototype.Selector.match(element, expression) && index === matchIndex++) {
+ return Element.extend(element);
+ }
+ }
+ },
+
+ findChildElements: function(element, expressions) {
+ var selector = expressions.toArray().join(', ');
+ return Prototype.Selector.select(selector, element || document);
+ }
+ });
+})();
diff --git a/public/javascripts/rails.js b/public/javascripts/rails.js
new file mode 100644
index 000000000..5cea13c15
--- /dev/null
+++ b/public/javascripts/rails.js
@@ -0,0 +1,202 @@
+(function() {
+ Ajax.Responders.register({
+ onCreate: function(request) {
+ var token = $$('meta[name=csrf-token]')[0];
+ if (token) {
+ if (!request.options.requestHeaders) request.options.requestHeaders = {};
+ request.options.requestHeaders['X-CSRF-Token'] = token.readAttribute('content');
+ }
+ }
+ });
+
+ // Technique from Juriy Zaytsev
+ // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/
+ function isEventSupported(eventName) {
+ var el = document.createElement('div');
+ eventName = 'on' + eventName;
+ var isSupported = (eventName in el);
+ if (!isSupported) {
+ el.setAttribute(eventName, 'return;');
+ isSupported = typeof el[eventName] == 'function';
+ }
+ el = null;
+ return isSupported;
+ }
+
+ function isForm(element) {
+ return Object.isElement(element) && element.nodeName.toUpperCase() == 'FORM';
+ }
+
+ function isInput(element) {
+ if (Object.isElement(element)) {
+ var name = element.nodeName.toUpperCase();
+ return name == 'INPUT' || name == 'SELECT' || name == 'TEXTAREA';
+ }
+ else return false;
+ }
+
+ var submitBubbles = isEventSupported('submit'),
+ changeBubbles = isEventSupported('change');
+
+ if (!submitBubbles || !changeBubbles) {
+ // augment the Event.Handler class to observe custom events when needed
+ Event.Handler.prototype.initialize = Event.Handler.prototype.initialize.wrap(
+ function(init, element, eventName, selector, callback) {
+ init(element, eventName, selector, callback);
+ // is the handler being attached to an element that doesn't support this event?
+ if ( (!submitBubbles && this.eventName == 'submit' && !isForm(this.element)) ||
+ (!changeBubbles && this.eventName == 'change' && !isInput(this.element)) ) {
+ // "submit" => "emulated:submit"
+ this.eventName = 'emulated:' + this.eventName;
+ }
+ }
+ );
+ }
+
+ if (!submitBubbles) {
+ // discover forms on the page by observing focus events which always bubble
+ document.on('focusin', 'form', function(focusEvent, form) {
+ // special handler for the real "submit" event (one-time operation)
+ if (!form.retrieve('emulated:submit')) {
+ form.on('submit', function(submitEvent) {
+ var emulated = form.fire('emulated:submit', submitEvent, true);
+ // if custom event received preventDefault, cancel the real one too
+ if (emulated.returnValue === false) submitEvent.preventDefault();
+ });
+ form.store('emulated:submit', true);
+ }
+ });
+ }
+
+ if (!changeBubbles) {
+ // discover form inputs on the page
+ document.on('focusin', 'input, select, textarea', function(focusEvent, input) {
+ // special handler for real "change" events
+ if (!input.retrieve('emulated:change')) {
+ input.on('change', function(changeEvent) {
+ input.fire('emulated:change', changeEvent, true);
+ });
+ input.store('emulated:change', true);
+ }
+ });
+ }
+
+ function handleRemote(element) {
+ var method, url, params;
+
+ var event = element.fire("ajax:before");
+ if (event.stopped) return false;
+
+ if (element.tagName.toLowerCase() === 'form') {
+ method = element.readAttribute('method') || 'post';
+ url = element.readAttribute('action');
+ // serialize the form with respect to the submit button that was pressed
+ params = element.serialize({ submit: element.retrieve('rails:submit-button') });
+ // clear the pressed submit button information
+ element.store('rails:submit-button', null);
+ } else {
+ method = element.readAttribute('data-method') || 'get';
+ url = element.readAttribute('href');
+ params = {};
+ }
+
+ new Ajax.Request(url, {
+ method: method,
+ parameters: params,
+ evalScripts: true,
+
+ onCreate: function(response) { element.fire("ajax:create", response); },
+ onComplete: function(response) { element.fire("ajax:complete", response); },
+ onSuccess: function(response) { element.fire("ajax:success", response); },
+ onFailure: function(response) { element.fire("ajax:failure", response); }
+ });
+
+ element.fire("ajax:after");
+ }
+
+ function insertHiddenField(form, name, value) {
+ form.insert(new Element('input', { type: 'hidden', name: name, value: value }));
+ }
+
+ function handleMethod(element) {
+ var method = element.readAttribute('data-method'),
+ url = element.readAttribute('href'),
+ csrf_param = $$('meta[name=csrf-param]')[0],
+ csrf_token = $$('meta[name=csrf-token]')[0];
+
+ var form = new Element('form', { method: "POST", action: url, style: "display: none;" });
+ $(element.parentNode).insert(form);
+
+ if (method !== 'post') {
+ insertHiddenField(form, '_method', method);
+ }
+
+ if (csrf_param) {
+ insertHiddenField(form, csrf_param.readAttribute('content'), csrf_token.readAttribute('content'));
+ }
+
+ form.submit();
+ }
+
+ function disableFormElements(form) {
+ form.select('input[type=submit][data-disable-with]').each(function(input) {
+ input.store('rails:original-value', input.getValue());
+ input.setValue(input.readAttribute('data-disable-with')).disable();
+ });
+ }
+
+ function enableFormElements(form) {
+ form.select('input[type=submit][data-disable-with]').each(function(input) {
+ input.setValue(input.retrieve('rails:original-value')).enable();
+ });
+ }
+
+ function allowAction(element) {
+ var message = element.readAttribute('data-confirm');
+ return !message || confirm(message);
+ }
+
+ document.on('click', 'a[data-confirm], a[data-remote], a[data-method]', function(event, link) {
+ if (!allowAction(link)) {
+ event.stop();
+ return false;
+ }
+
+ if (link.readAttribute('data-remote')) {
+ handleRemote(link);
+ event.stop();
+ } else if (link.readAttribute('data-method')) {
+ handleMethod(link);
+ event.stop();
+ }
+ });
+
+ document.on("click", "form input[type=submit], form button[type=submit], form button:not([type])", function(event, button) {
+ // register the pressed submit button
+ event.findElement('form').store('rails:submit-button', button.name || false);
+ });
+
+ document.on("submit", function(event) {
+ var form = event.findElement();
+
+ if (!allowAction(form)) {
+ event.stop();
+ return false;
+ }
+
+ if (form.readAttribute('data-remote')) {
+ handleRemote(form);
+ event.stop();
+ } else {
+ disableFormElements(form);
+ }
+ });
+
+ document.on('ajax:create', 'form', function(event, form) {
+ if (form == event.findElement()) disableFormElements(form);
+ });
+
+ document.on('ajax:complete', 'form', function(event, form) {
+ if (form == event.findElement()) enableFormElements(form);
+ });
+})();
diff --git a/public/stylesheets/main.css b/public/stylesheets/main.css
index 2823f3978..6f6d7b365 100644
--- a/public/stylesheets/main.css
+++ b/public/stylesheets/main.css
@@ -183,16 +183,11 @@ margin:18px 0 36px;
}
#stepwise_make_request {
-background-color:#BBB;
-border:1px solid #222;
-border-radius:5px;
--moz-border-radius:5px;
color:#222;
font-size:1.1em;
text-align:left;
width:412px;
margin:0 14em 40px 0;
-padding:10px 12px;
}
#stepwise_make_request_view_email {
diff --git a/script/about b/script/about
deleted file mode 100755
index 49a7c2609..000000000
--- a/script/about
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env ruby
-require File.expand_path(File.dirname(__FILE__) + '/../config/boot.rb')
-require 'commands/about'
diff --git a/script/alert-comment-on-request b/script/alert-comment-on-request
index 74782aa13..849f4a8d8 100755
--- a/script/alert-comment-on-request
+++ b/script/alert-comment-on-request
@@ -1,7 +1,4 @@
#!/bin/bash
-
-cd "`dirname "$0"`"
-
-bundle exec ./runner 'RequestMailer.alert_comment_on_request'
-
-
+TOP_DIR="$(dirname "$BASH_SOURCE")/.."
+cd "$TOP_DIR"
+bundle exec rails runner 'RequestMailer.alert_comment_on_request'
diff --git a/script/alert-new-response-reminders b/script/alert-new-response-reminders
index 59fa76df1..148706d49 100755
--- a/script/alert-new-response-reminders
+++ b/script/alert-new-response-reminders
@@ -1,7 +1,4 @@
#!/bin/bash
-
-cd "`dirname "$0"`"
-
-bundle exec ./runner 'RequestMailer.alert_new_response_reminders'
-
-
+TOP_DIR="$(dirname "$BASH_SOURCE")/.."
+cd "$TOP_DIR"
+bundle exec rails runner 'RequestMailer.alert_new_response_reminders'
diff --git a/script/alert-not-clarified-request b/script/alert-not-clarified-request
index a38fbc70e..8d61c1800 100755
--- a/script/alert-not-clarified-request
+++ b/script/alert-not-clarified-request
@@ -1,7 +1,4 @@
#!/bin/bash
-
-cd "`dirname "$0"`"
-
-bundle exec ./runner 'RequestMailer.alert_not_clarified_request'
-
-
+TOP_DIR="$(dirname "$BASH_SOURCE")/.."
+cd "$TOP_DIR"
+bundle exec rails runner 'RequestMailer.alert_not_clarified_request'
diff --git a/script/alert-overdue-requests b/script/alert-overdue-requests
index 46450f1f2..ebc2897a0 100755
--- a/script/alert-overdue-requests
+++ b/script/alert-overdue-requests
@@ -1,5 +1,4 @@
#!/bin/bash
-
-cd "`dirname "$0"`"
-
-bundle exec ./runner 'RequestMailer.alert_overdue_requests()'
+TOP_DIR="$(dirname "$BASH_SOURCE")/.."
+cd "$TOP_DIR"
+bundle exec rails runner 'RequestMailer.alert_overdue_requests'
diff --git a/script/alert-tracks b/script/alert-tracks
index 117f7a406..17426b4e0 100755
--- a/script/alert-tracks
+++ b/script/alert-tracks
@@ -1,11 +1,9 @@
#!/bin/bash
-
-LOC=`dirname $0`
-
+TOP_DIR="$(dirname "$BASH_SOURCE")/.."
+cd "$TOP_DIR"
if [ "$1" == "--loop" ]
then
- "$LOC/runner" 'TrackMailer.alert_tracks_loop'
+ bundle exec rails runner 'TrackMailer.alert_tracks_loop'
else
- "$LOC/runner" 'TrackMailer.alert_tracks'
+ bundle exec rails runner 'TrackMailer.alert_tracks'
fi
-
diff --git a/script/annotate-models b/script/annotate-models
index b6e01c010..7b6daa3c5 100755
--- a/script/annotate-models
+++ b/script/annotate-models
@@ -2,4 +2,4 @@
#
# annotates the models in app/ with schema information
-bundle exec annotate -m -p before --exclude tests,fixtures
+bundle exec annotate --show-migration --position before --exclude tests,fixtures
diff --git a/script/autospec b/script/autospec
deleted file mode 100755
index 837bbd7f4..000000000
--- a/script/autospec
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/env ruby
-gem 'test-unit', '1.2.3' if RUBY_VERSION.to_f >= 1.9
-ENV['RSPEC'] = 'true' # allows autotest to discover rspec
-ENV['AUTOTEST'] = 'true' # allows autotest to run w/ color on linux
-system((RUBY_PLATFORM =~ /mswin|mingw/ ? 'autotest.bat' : 'autotest'), *ARGV) ||
- $stderr.puts("Unable to find autotest. Please install ZenTest or fix your PATH")
diff --git a/script/breakpointer b/script/breakpointer
deleted file mode 100755
index 46a01d1b2..000000000
--- a/script/breakpointer
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env ruby
-require File.expand_path(File.dirname(__FILE__) + '/../config/boot.rb')
-require 'commands/breakpointer'
diff --git a/script/cache-incoming-emails b/script/cache-incoming-emails
index 0b3069bd7..b13efbd8c 100644..100755
--- a/script/cache-incoming-emails
+++ b/script/cache-incoming-emails
@@ -4,6 +4,4 @@
# Will take a while to run! Can use after clear-caches to refresh the database
# level caches if you like.
-cd "`dirname "$0"`"
-
-bundle exec ./runner 'IncomingMessage.find_each() { |im| print "info request " + im.info_request.id.to_s + ", incoming message " + im.id.to_s + ": " + im.extract_attachments!.count.to_s + " attachments extracted to " + im.foi_attachments[0].directory + "; main body folded: " + im.get_main_body_text_folded.size.to_s + " attachment clipped:" + im.get_attachment_text_clipped.size.to_s + "\n" }'
+bundle exec rails runner 'IncomingMessage.find_each { |im| print "info request " + im.info_request.id.to_s + ", incoming message " + im.id.to_s + ": " + im.extract_attachments!.count.to_s + " attachments extracted to " + im.foi_attachments[0].directory + "; main body folded: " + im.get_main_body_text_folded.size.to_s + " attachment clipped:" + im.get_attachment_text_clipped.size.to_s + "\n" }'
diff --git a/script/check-recent-requests-sent b/script/check-recent-requests-sent
index 7840dba4a..8f21fb6e7 100755
--- a/script/check-recent-requests-sent
+++ b/script/check-recent-requests-sent
@@ -1,8 +1,4 @@
#!/bin/bash
-
-cd "`dirname "$0"`"
-
-bundle exec ./runner 'MailServerLog.check_recent_requests_have_been_sent'
-
-
-
+TOP_DIR="$(dirname "$BASH_SOURCE")/.."
+cd "$TOP_DIR"
+bundle exec rails runner 'MailServerLog.check_recent_requests_have_been_sent'
diff --git a/script/clear-caches b/script/clear-caches
index 43fec2811..20ee3df19 100755
--- a/script/clear-caches
+++ b/script/clear-caches
@@ -1,13 +1,11 @@
#!/bin/bash
-
+TOP_DIR="$(dirname "$BASH_SOURCE")/.."
+cd "$TOP_DIR"
# Clear the cache of attachment and body text.
-cd "`dirname "$0"`"
-
-bundle exec ./runner "ActiveRecord::Base.connection.execute(\"update incoming_messages set cached_attachment_text_clipped = null, cached_main_body_text_unfolded = null, cached_main_body_text_folded = null, sent_at = null, subject = null, mail_from = null, mail_from_domain = null, valid_to_reply_to = null, last_parsed = null\")"
+bundle exec rails runner "ActiveRecord::Base.connection.execute(\"update incoming_messages set cached_attachment_text_clipped = null, cached_main_body_text_unfolded = null, cached_main_body_text_folded = null, sent_at = null, subject = null, mail_from = null, mail_from_domain = null, valid_to_reply_to = null, last_parsed = null\")"
# Remove page cache (do it in two stages so live site gets cache cleared faster)
-rm -fr $LOC/../old-cache
-mv $LOC/../cache $LOC/../old-cache
-rm -fr $LOC/../old-cache
-
+rm -fr $TOP_DIR/old-cache
+mv $TOP_DIR/cache $TOP_DIR/old-cache
+rm -fr $TOP_DIR/old-cache
diff --git a/script/console b/script/console
deleted file mode 100755
index 83386647f..000000000
--- a/script/console
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env ruby
-require File.expand_path(File.dirname(__FILE__) + '/../config/boot.rb')
-require 'commands/console'
diff --git a/script/dbconsole b/script/dbconsole
deleted file mode 100755
index 39042fad3..000000000
--- a/script/dbconsole
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env ruby
-require File.expand_path(File.dirname(__FILE__) + '/../config/boot.rb')
-require 'commands/dbconsole'
diff --git a/script/delete-old-things b/script/delete-old-things
index 063d85e1f..a97ba4869 100755
--- a/script/delete-old-things
+++ b/script/delete-old-things
@@ -1,6 +1,5 @@
#!/bin/bash
-
-cd "`dirname "$0"`"
-
-bundle exec ./runner 'PostRedirect.delete_old_post_redirects()'
-bundle exec ./runner 'TrackThingsSentEmail.delete_old_track_things_sent_email()'
+TOP_DIR="$(dirname "$BASH_SOURCE")/.."
+cd "$TOP_DIR"
+bundle exec rails runner 'PostRedirect.delete_old_post_redirects'
+bundle exec rails runner 'TrackThingsSentEmail.delete_old_track_things_sent_email'
diff --git a/script/destroy b/script/destroy
deleted file mode 100755
index fddc5160d..000000000
--- a/script/destroy
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env ruby
-require File.expand_path(File.dirname(__FILE__) + '/../config/boot.rb')
-require 'commands/destroy'
diff --git a/script/direct-rspec b/script/direct-rspec
deleted file mode 100755
index 50a1daba1..000000000
--- a/script/direct-rspec
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-
-./vendor/plugins/rspec/bin/spec $1
-
-# spec/controllers/request_controller_spec.rb
-
-#ruby -I/home/francis/keep/devel/mysociety/foi/vendor/plugins/rspec/lib /home/francis/keep/devel/mysociety/foi/vendor/plugins/rspec/bin/spec spec/controllers/admin_public_body_controller_spec.rb spec/controllers/application_spec.rb spec/controllers/request_controller_spec.rb spec/controllers/user_controller_spec.rb spec/controllers/admin_controller_spec.rb spec/controllers/body_controller_spec.rb spec/models/incoming_message_spec.rb spec/models/user_spec.rb spec/models/request_mailer_spec.rb spec/models/post_redirect_spec.rb spec/models/public_body_spec.rb spec/models/info_request_spec.rb spec/models/user_mailer_spec.rb spec/models/outgoing_message_spec.rb --options /home/francis/keep/devel/mysociety/foi/spec/spec.opts
-
diff --git a/script/generate b/script/generate
deleted file mode 100755
index fb8139d12..000000000
--- a/script/generate
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env ruby
-require File.expand_path(File.dirname(__FILE__) + '/../config/boot.rb')
-require 'commands/generate'
diff --git a/script/handle-mail-replies.rb b/script/handle-mail-replies.rb
index 4e35ee0cf..da0fc8e96 100755
--- a/script/handle-mail-replies.rb
+++ b/script/handle-mail-replies.rb
@@ -14,10 +14,10 @@
# config file ourselves.
$alaveteli_dir = File.expand_path(File.join(File.dirname(__FILE__), '..'))
$:.push(File.join($alaveteli_dir, "commonlib", "rblib"))
-load "config.rb"
+load 'config.rb'
$:.push(File.join($alaveteli_dir, "lib"))
$:.push(File.join($alaveteli_dir, "lib", "mail_handler"))
-require "configuration"
+load 'configuration.rb'
MySociety::Config.set_file(File.join($alaveteli_dir, 'config', 'general'), true)
MySociety::Config.load_default
require 'mail_handler'
@@ -165,7 +165,7 @@ def is_oof?(message)
end
def forward_on(raw_message)
- IO.popen("/usr/sbin/sendmail -i #{Configuration::forward_nonbounce_responses_to}", "w") do |f|
+ IO.popen("/usr/sbin/sendmail -i #{AlaveteliConfiguration::forward_nonbounce_responses_to}", "w") do |f|
f.write(raw_message);
f.close;
end
diff --git a/script/load-mail-server-logs b/script/load-mail-server-logs
index 9ff7a1401..770bf7026 100755
--- a/script/load-mail-server-logs
+++ b/script/load-mail-server-logs
@@ -14,7 +14,7 @@ then
*) f=$(pwd)/$1 ;;
esac
cd "$LOC"
- bundle exec ./runner 'MailServerLog.load_file("'$f'")'
+ bundle exec rails runner 'MailServerLog.load_file("'$f'")'
exit
fi
@@ -23,5 +23,5 @@ cd "$LOC"
LATEST=$( ls $OPTION_MTA_LOG_PATH 2>/dev/null | sort | tail -3 )
for X in $LATEST
do
- bundle exec ./runner 'MailServerLog.load_file("'$X'")'
+ bundle exec rails runner 'MailServerLog.load_file("'$X'")'
done
diff --git a/script/load-sample-data b/script/load-sample-data
index 86e1af128..e91516886 100755
--- a/script/load-sample-data
+++ b/script/load-sample-data
@@ -4,16 +4,28 @@
# the fact that the fixtures aren't aware of the fact that RawEmails
# have a filesystem representation of their contents
-LOC=`dirname "$0"`
+export LOC=`dirname "$0"`
-bundle exec rake --silent spec:db:fixtures:load
+bundle exec rails runner /dev/stdin <<END
+require 'rspec/rails'
+require "#{ENV['LOC']}/../spec/support/load_file_fixtures.rb"
+require "#{ENV['LOC']}/../spec/support/email_helpers.rb"
-"$LOC/runner" /dev/stdin <<END
-env = ENV["RAILS_ENV"]
-require "spec/spec_helper.rb" # this sets RAILS_ENV to 'test'
-ENV["RAILS_ENV"] = env # so restore to what it was before
+RSpec.configure do |config|
+ config.fixture_path = "#{::Rails.root}/spec/fixtures"
+end
+
+# HACK: Normally to load fixtures you'd run `rake db:fixtures:load` but since we
+# have .csv files in the fixtures folder Rails tries to load those too. Therefore
+# we've pinched some code to load the fixtures:
+# https://github.com/rails/rails/blob/v3.1.11/activerecord/lib/active_record/railties/databases.rake#L311
+fixtures_dir = "#{ENV['LOC']}/../spec/fixtures"
+
+Dir["#{fixtures_dir}/**/*.yml"].each do |fixture_file|
+ ActiveRecord::Fixtures.create_fixtures(fixtures_dir, fixture_file[(fixtures_dir.size + 1)..-5])
+end
load_raw_emails_data
END
-echo "Loaded fixtures. You may now wish to run $LOC/update-xapian-index"
+echo "Loaded fixtures. You may now wish to run $LOC/update-xapian-index"
diff --git a/script/mailin b/script/mailin
index b4d77f7a4..f782df215 100755
--- a/script/mailin
+++ b/script/mailin
@@ -13,7 +13,7 @@ source commonlib/shlib/deployfns
read_conf config/general
-script/runner 'RequestMailer.receive(STDIN.read)' <"$INPUT" >"$OUTPUT" 2>&1
+bundle exec rails runner 'RequestMailer.receive(STDIN.read)' <"$INPUT" >"$OUTPUT" 2>&1
ERROR_CODE=$?
if [ ! "$ERROR_CODE" = "0" ]
then
diff --git a/script/performance/benchmarker b/script/performance/benchmarker
deleted file mode 100755
index 28bfceea0..000000000
--- a/script/performance/benchmarker
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env ruby
-require File.expand_path(File.dirname(__FILE__) + '/../config/boot.rb')
-require 'commands/performance/benchmarker'
diff --git a/script/performance/profiler b/script/performance/profiler
deleted file mode 100755
index 11baf44f2..000000000
--- a/script/performance/profiler
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env ruby
-require File.expand_path(File.dirname(__FILE__) + '/../config/boot.rb')
-require 'commands/performance/profiler'
diff --git a/script/performance/request b/script/performance/request
deleted file mode 100755
index fff6fe660..000000000
--- a/script/performance/request
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env ruby
-require File.expand_path(File.dirname(__FILE__) + '/../config/boot.rb')
-require 'commands/performance/request'
diff --git a/script/plugin b/script/plugin
deleted file mode 100755
index 49f5c441f..000000000
--- a/script/plugin
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env ruby
-require File.expand_path(File.dirname(__FILE__) + '/../config/boot.rb')
-require 'commands/plugin'
diff --git a/script/process/inspector b/script/process/inspector
deleted file mode 100755
index 467962602..000000000
--- a/script/process/inspector
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env ruby
-require File.expand_path(File.dirname(__FILE__) + '/../config/boot.rb')
-require 'commands/process/inspector'
diff --git a/script/process/reaper b/script/process/reaper
deleted file mode 100755
index 2eea898db..000000000
--- a/script/process/reaper
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env ruby
-require File.expand_path(File.dirname(__FILE__) + '/../config/boot.rb')
-require 'commands/process/reaper'
diff --git a/script/process/spawner b/script/process/spawner
deleted file mode 100755
index ac417c3a7..000000000
--- a/script/process/spawner
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env ruby
-require File.expand_path(File.dirname(__FILE__) + '/../config/boot.rb')
-require 'commands/process/spawner'
diff --git a/script/purge-varnish b/script/purge-varnish
index 932cf6635..abc6daeaf 100755
--- a/script/purge-varnish
+++ b/script/purge-varnish
@@ -1,11 +1,12 @@
#!/bin/bash
-LOC=`dirname $0`
+TOP_DIR="$(dirname "$BASH_SOURCE")/.."
+cd "$TOP_DIR"
if [ "$1" == "--loop" ]
then
- "$LOC/runner" 'PurgeRequest.purge_all_loop'
+ bundle exec rails runner 'PurgeRequest.purge_all_loop'
else
- "$LOC/runner" 'PurgeRequest.purge_all'
+ bundle exec rails runner 'PurgeRequest.purge_all'
fi
diff --git a/script/rails b/script/rails
new file mode 100755
index 000000000..f8da2cffd
--- /dev/null
+++ b/script/rails
@@ -0,0 +1,6 @@
+#!/usr/bin/env ruby
+# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
+
+APP_PATH = File.expand_path('../../config/application', __FILE__)
+require File.expand_path('../../config/boot', __FILE__)
+require 'rails/commands'
diff --git a/script/rails-post-deploy b/script/rails-post-deploy
index a1c613312..4048c852f 100755
--- a/script/rails-post-deploy
+++ b/script/rails-post-deploy
@@ -6,15 +6,20 @@
# recent version.
#
# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
set -e
#set -x # debug
-APP_DIR=`pwd`
+TOP_DIR="$(dirname "$BASH_SOURCE")/.."
+cd "$TOP_DIR"
# make sure that there is an app directory, so are in a rails app tree
-cd app/..
+if ! [ -d app ]
+then
+ echo "Error: the 'app' directory didn't exist"
+ exit 1
+fi
# read config file in for later (STAGING_SITE)
if [ -e "config/general" ] || [ -e "config/general.yml" ]
@@ -27,11 +32,11 @@ else
fi
# create initial log files
-if [ -e $APP_DIR/../logs ]
+if [ -e $TOP_DIR/../logs ]
then
# mySociety servers have logs dir in level above
rm -f log
- ln -s $APP_DIR/../logs log
+ ln -s $TOP_DIR/../logs log
else
# otherwise just make the directory
if [ -h log ]
@@ -42,10 +47,10 @@ else
mkdir -p log
fi
# link the "downloads" directory in the cache to somewhere it can be served
-if [ ! -e "$APP_DIR/public/download" ]
+if [ ! -e "$TOP_DIR/public/download" ]
then
- mkdir -p "$APP_DIR/cache/zips/download"
- ln -s "$APP_DIR/cache/zips/download" "$APP_DIR/public/"
+ mkdir -p "$TOP_DIR/cache/zips/download"
+ ln -s "$TOP_DIR/cache/zips/download" "$TOP_DIR/public/"
fi
cd log
diff --git a/script/request-creation-graph b/script/request-creation-graph
index d49a361b8..ef1d2cf73 100755
--- a/script/request-creation-graph
+++ b/script/request-creation-graph
@@ -3,7 +3,7 @@
# Plot graph of rate of request creation
#
# Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org. WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org. WWW: http://www.mysociety.org/
GPLOT_OUTPUT="set terminal png font 'Vera.ttf' 9 size 1600,600"
EXTENSION=".png"
diff --git a/script/runner b/script/runner
index 1575848de..73b03847d 100755
--- a/script/runner
+++ b/script/runner
@@ -6,7 +6,6 @@ script_dir = File.dirname(__FILE__)
alaveteli_dir = File.expand_path(File.join(script_dir, ".."))
Dir.chdir(alaveteli_dir) do
- require File.join(alaveteli_dir, 'config', 'boot')
if daemon_mode
# Run in daemon mode.
@@ -20,7 +19,7 @@ Dir.chdir(alaveteli_dir) do
# Load the runner in a subprocess
pid = fork do
- require 'commands/runner'
+ `bundle exec rails runner #{ARGV[1]}`
exit 0
end
@@ -35,6 +34,6 @@ Dir.chdir(alaveteli_dir) do
Process.detach(pid)
else
# Not daemon mode
- require 'commands/runner'
+ `bundle exec rails runner #{ARGV[1]}`
end
end
diff --git a/script/server b/script/server
deleted file mode 100755
index dc3edabd5..000000000
--- a/script/server
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env ruby
-require File.expand_path(File.dirname(__FILE__) + '/../config/boot.rb')
-require 'commands/server'
diff --git a/script/spec b/script/spec
deleted file mode 100755
index 46fdbe6e4..000000000
--- a/script/spec
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/env ruby
-if ARGV.any? {|arg| %w[--drb -X --generate-options -G --help -h --version -v].include?(arg)}
- require 'rubygems' unless ENV['NO_RUBYGEMS']
-else
- gem 'test-unit', '1.2.3' if RUBY_VERSION.to_f >= 1.9
- ENV["RAILS_ENV"] ||= 'test'
- require File.expand_path(File.dirname(__FILE__) + "/../config/environment") unless defined?(RAILS_ROOT)
-end
-require 'spec/autorun'
-exit ::Spec::Runner::CommandLine.run
diff --git a/script/spec-all-pairs b/script/spec-all-pairs
deleted file mode 100755
index 6d7bb17c4..000000000
--- a/script/spec-all-pairs
+++ /dev/null
@@ -1,81 +0,0 @@
-#!/bin/bash
-
-# Try all ordered pairs of spec files,
-# to winkle out order-dependent failures.
-
-log_file=/dev/null
-
-test_pair () {
- bundle exec rake db:test:prepare > /dev/null 2>&1
- output=$(script/spec "$1" "$2" 2>&1)
- if [ $? -eq 0 ]
- then
- echo "OK: $1 $2"
- return 0
- else
- echo >> "$log_file" "FAILED: $1 $2"
- echo >> "$log_file" "======================================="
- echo >> "$log_file" "$output"
- echo >> "$log_file"
-
- echo "FAILED: $1 $2"
- return 1
- fi
-}
-
-all_pairs() {
- specs=spec/*/*.rb
-
- for spec1 in $specs
- do
- all_okay=true
- for spec2 in $specs
- do
- if ! test_pair "$spec1" "$spec2"
- then
- all_okay=false
- fi
- done
- done
-
- $all_okay
- return $?
-}
-
-pairs_from_stdin() {
- all_okay=true
- while read line
- do
- case "$line" in
- \*\ FAILED:\ *|\
- spec/*.rb\ spec/*.rb)
- line=${line#\* FAILED: }
- if ! test_pair $line
- then
- all_okay=false
- fi
- ;;
- *)
- echo "No match: $line"
- ;;
- esac
- done
-
- $all_okay
- return $?
-}
-
-if [ "$1" = --log ]
-then
- shift
- log_file=$1
- shift
- cp /dev/null "$log_file"
-fi
-if [ "$1" = "-" ]
-then
- pairs_from_stdin
-else
- all_pairs
-fi
-exit $?
diff --git a/script/spec_server b/script/spec_server
deleted file mode 100755
index dfdf8ff6c..000000000
--- a/script/spec_server
+++ /dev/null
@@ -1,116 +0,0 @@
-#!/usr/bin/env ruby
-$LOAD_PATH.unshift File.dirname(__FILE__) + '/../vendor/plugins/rspec/lib' # For rspec installed as plugin
-require 'rubygems'
-require 'drb/drb'
-require 'rbconfig'
-require 'spec'
-require 'optparse'
-
-# This is based on Florian Weber's TDDMate
-module Spec
- module Runner
- class RailsSpecServer
- def run(argv, stderr, stdout)
- $stdout = stdout
- $stderr = stderr
-
- base = ActiveRecord::Base
- def base.clear_reloadable_connections!
- active_connections.each do |name, conn|
- if conn.requires_reloading?
- conn.disconnect!
- active_connections.delete(name)
- end
- end
- end
-
- if ActionController.const_defined?(:Dispatcher)
- dispatcher = ::ActionController::Dispatcher.new($stdout)
- dispatcher.cleanup_application
- elsif ::Dispatcher.respond_to?(:reset_application!)
- ::Dispatcher.reset_application!
- else
- raise "Application reloading failed"
- end
- if Object.const_defined?(:Fixtures) && Fixtures.respond_to?(:reset_cache)
- Fixtures.reset_cache
- end
-
- ::Dependencies.mechanism = :load
- require_dependency('application.rb') unless Object.const_defined?(:ApplicationController)
- load File.dirname(__FILE__) + '/../spec/spec_helper.rb'
-
- if in_memory_database?
- load "#{Rails.root}/db/schema.rb" # use db agnostic schema by default
- ActiveRecord::Migrator.up('db/migrate') # use migrations
- end
-
- ::Spec::Runner::CommandLine.run(
- ::Spec::Runner::OptionParser.parse(
- argv,
- $stderr,
- $stdout
- )
- )
- end
-
- def in_memory_database?
- ENV["RAILS_ENV"] == "test" and
- ::ActiveRecord::Base.connection.class.to_s == "ActiveRecord::ConnectionAdapters::SQLite3Adapter" and
- ::Rails::Configuration.new.database_configuration['test']['database'] == ':memory:'
- end
- end
- end
-end
-puts "Loading Rails environment"
-
-ENV["RAILS_ENV"] = "test"
-require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
-require 'dispatcher'
-
-def restart_test_server
- puts "restarting"
- config = ::Config::CONFIG
- ruby = File::join(config['bindir'], config['ruby_install_name']) + config['EXEEXT']
- command_line = [ruby, $0, ARGV].flatten.join(' ')
- exec(command_line)
-end
-
-def daemonize(pid_file = nil)
- return yield if $DEBUG
- pid = Process.fork{
- Process.setsid
- Dir.chdir(Rails.root)
- trap("SIGINT"){ exit! 0 }
- trap("SIGTERM"){ exit! 0 }
- trap("SIGHUP"){ restart_test_server }
- File.open("/dev/null"){|f|
- STDERR.reopen f
- STDIN.reopen f
- STDOUT.reopen f
- }
- yield
- }
- puts "spec_server launched. (PID: %d)" % pid
- File.open(pid_file,"w"){|f| f.puts pid } if pid_file
- exit! 0
-end
-
-options = Hash.new
-opts = OptionParser.new
-opts.on("-d", "--daemon"){|v| options[:daemon] = true }
-opts.on("-p", "--pid PIDFILE"){|v| options[:pid] = v }
-opts.parse!(ARGV)
-
-puts "Ready"
-exec_server = lambda {
- trap("USR2") { restart_test_server } if Signal.list.has_key?("USR2")
- DRb.start_service("druby://localhost:8989", Spec::Runner::RailsSpecServer.new)
- DRb.thread.join
-}
-
-if options[:daemon]
- daemonize(options[:pid], &exec_server)
-else
- exec_server.call
-end
diff --git a/script/stop-new-responses-on-old-requests b/script/stop-new-responses-on-old-requests
index 1e325403e..07257d6b2 100755
--- a/script/stop-new-responses-on-old-requests
+++ b/script/stop-new-responses-on-old-requests
@@ -1,7 +1,4 @@
#!/bin/bash
-
-cd "`dirname "$0"`"
-
-bundle exec ./runner 'InfoRequest.stop_new_responses_on_old_requests()'
-
-
+TOP_DIR="$(dirname "$BASH_SOURCE")/.."
+cd "$TOP_DIR"
+bundle exec rails runner 'InfoRequest.stop_new_responses_on_old_requests'
diff --git a/script/test-run b/script/test-run
deleted file mode 100755
index 7810b57d5..000000000
--- a/script/test-run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-
-cd ../
-bundle exec rake spec
-
diff --git a/script/user-use-graph b/script/user-use-graph
index 205e02416..f508c9cb6 100755
--- a/script/user-use-graph
+++ b/script/user-use-graph
@@ -3,7 +3,7 @@
# Plot graph of user use of site.
#
# Copyright (c) 2009 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org. WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org. WWW: http://www.mysociety.org/
GPLOT_OUTPUT="set terminal png font 'Vera.ttf' 9 size 1200,400"
EXTENSION=".png"
diff --git a/script/wraptest b/script/wraptest
deleted file mode 100755
index 780c9b4a2..000000000
--- a/script/wraptest
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/usr/bin/env ruby
-#
-# wraptest:
-# Test email wrapping function
-#
-# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
-#
-
-$:.push(File.join(File.dirname(__FILE__), '../../rblib'))
-load "format.rb"
-
-test_email = '''Dear Sir or Madam,
-
-Again and again I extend this sentence and yet again I extend this sentence and yet again I extend this sentence and yet again I extend this sentence and yet again I extend this sentence and yet again I extend this sentence and yet again I extend this sentence and yet again I extend this sentence and yet again I extend this sentence and yet again I extend this sentence and yet again I extend this sentence and yet again I extend this sentence and yet again I extend this sentence and yet again I extend this sentence and yet again I extend this sentence and yet again I extend this sentence and yet again I extend this sentence and yet again I extend this sentence and yet
-
-Hey you.
-
-Yours faithfully,
-
-Boo!
-
---
-
-Sent using GovernmentSpy, a project of UKCOD, registered charity number
-1076346. Is frabcus@fastmail.fm the wrong
-address for Freedom of Information requests to The Geraldine Quango? If so please let us know by emailing
-team@governmentspy quoting reference PB2.
-We\'ll make sure future ones go to the right place.
-'''
-
-test_email.gsub!(/\n/, "\r\n")
-
-puts MySociety::Format.wrap_email_body(test_email)
-
-#puts MySociety::Format.wrap_email_body("Hello this is a string.
-#
-#And another.
-#And a third.")
-
-
-
-
diff --git a/spec/controllers/admin_censor_rule_controller_spec.rb b/spec/controllers/admin_censor_rule_controller_spec.rb
index fb9ddf594..37ffd9764 100644
--- a/spec/controllers/admin_censor_rule_controller_spec.rb
+++ b/spec/controllers/admin_censor_rule_controller_spec.rb
@@ -1,20 +1,16 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe AdminCensorRuleController, "when making censor rules from the admin interface" do
- integrate_views
- before do
- basic_auth_login @request
- PurgeRequest.destroy_all
- end
-
-
+ render_views
+ before { basic_auth_login @request }
+
it "should create a censor rule and purge the corresponding request from varnish" do
- ir = info_requests(:fancy_dog_request)
+ ir = info_requests(:fancy_dog_request)
post :create, :censor_rule => {
:text => "meat",
:replacement => "tofu",
:last_edit_comment => "none",
- :info_request => ir
+ :info_request_id => ir
}
PurgeRequest.all().first.model_id.should == ir.id
end
diff --git a/spec/controllers/admin_general_controller_spec.rb b/spec/controllers/admin_general_controller_spec.rb
index dc1eb0d97..971960762 100644
--- a/spec/controllers/admin_general_controller_spec.rb
+++ b/spec/controllers/admin_general_controller_spec.rb
@@ -4,7 +4,7 @@ describe AdminGeneralController do
describe "when viewing front page of admin interface" do
- integrate_views
+ render_views
before { basic_auth_login @request }
it "should render the front page" do
@@ -14,8 +14,7 @@ describe AdminGeneralController do
it "should redirect to include trailing slash" do
get :index
- response.should redirect_to(:controller => 'admin_general',
- :action => 'index')
+ response.should redirect_to admin_general_index_url(:trailing_slash => true)
end
end
diff --git a/spec/controllers/admin_public_body_controller_spec.rb b/spec/controllers/admin_public_body_controller_spec.rb
index 504ddc5cc..8a72db724 100644
--- a/spec/controllers/admin_public_body_controller_spec.rb
+++ b/spec/controllers/admin_public_body_controller_spec.rb
@@ -1,16 +1,7 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe AdminPublicBodyController, "when administering public bodies" do
- integrate_views
-
- before do
- @old_filters = ActionController::Routing::Routes.filters
- ActionController::Routing::Routes.filters = RoutingFilter::Chain.new
- end
-
- after do
- ActionController::Routing::Routes.filters = @old_filters
- end
+ render_views
it "shows the index page" do
get :index
@@ -38,7 +29,7 @@ describe AdminPublicBodyController, "when administering public bodies" do
it "saves edits to a public body" do
public_bodies(:humpadink_public_body).name.should == "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')
+ request.flash[:notice].should include('successful')
pb = PublicBody.find(public_bodies(:humpadink_public_body).id)
pb.name.should == "Renamed"
end
@@ -66,7 +57,7 @@ describe AdminPublicBodyController, "when administering public bodies" do
it "mass assigns tags" do
n = PublicBody.count
post :mass_tag_add, { :new_tag => "department", :table_name => "substring" }
- response.flash[:notice].should == "Added tag to table of bodies."
+ request.flash[:notice].should == "Added tag to table of bodies."
response.should redirect_to(:action=>'list')
PublicBody.find_by_tag("department").count.should == n
end
@@ -86,8 +77,7 @@ describe AdminPublicBodyController, "when administering public bodies" do
before do
PublicBody.stub!(:import_csv).and_return([[],[]])
- @file_object = mock("a file upload", :read => 'some contents',
- :original_filename => 'contents.txt')
+ @file_object = fixture_file_upload('/files/fake-authority-type.csv')
end
it 'should handle a nil csv file param' do
@@ -106,7 +96,7 @@ describe AdminPublicBodyController, "when administering public bodies" do
it 'should assign the original filename to the view' do
post :import_csv, { :csv_file => @file_object,
:commit => 'Dry run'}
- assigns[:original_csv_file].should == 'contents.txt'
+ assigns[:original_csv_file].should == 'fake-authority-type.csv'
end
end
@@ -154,7 +144,7 @@ end
describe AdminPublicBodyController, "when administering public bodies and paying attention to authentication" do
- integrate_views
+ render_views
before do
config = MySociety::Config.load_default()
@@ -215,6 +205,19 @@ describe AdminPublicBodyController, "when administering public bodies and paying
PublicBody.count.should == n - 1
end
+ it "doesn't let people with good emergency account credentials log in if the emergency user is disabled" do
+ setup_emergency_credentials('biz', 'fuz')
+ AlaveteliConfiguration.stub!(:disable_emergency_user).and_return(true)
+ n = PublicBody.count
+ basic_auth_login(@request, "biz", "fuz")
+ post :show, { :id => public_bodies(:humpadink_public_body).id, :emergency => 1}
+ session[:using_admin].should == nil
+ n = PublicBody.count
+ post :destroy, { :id => public_bodies(:forlorn_public_body).id }
+ session[:using_admin].should == nil
+ PublicBody.count.should == n
+ end
+
it "allows superusers to do stuff" do
session[:user_id] = users(:admin_user).id
@request.env["HTTP_AUTHORIZATION"] = ""
@@ -263,7 +266,7 @@ describe AdminPublicBodyController, "when administering public bodies and paying
end
describe AdminPublicBodyController, "when administering public bodies with i18n" do
- integrate_views
+ render_views
it "shows the index page" do
get :index
@@ -282,13 +285,13 @@ describe AdminPublicBodyController, "when administering public bodies with i18n"
get :edit, {:id => 3, :locale => :en}
# When editing a body, the controller returns all available translations
- assigns[:public_body].translation("es").name.should == 'El Department for Humpadinking'
+ assigns[:public_body].find_translation_by_locale("es").name.should == 'El Department for Humpadinking'
assigns[:public_body].name.should == 'Department for Humpadinking'
response.should render_template('edit')
end
it "saves edits to a public body" do
- PublicBody.with_locale(:es) do
+ I18n.with_locale(:es) do
pb = PublicBody.find(id=3)
pb.name.should == "El Department for Humpadinking"
post :update, {
@@ -304,14 +307,14 @@ describe AdminPublicBodyController, "when administering public bodies with i18n"
}
}
}
- response.flash[:notice].should include('successful')
+ request.flash[:notice].should include('successful')
end
pb = PublicBody.find(public_bodies(:humpadink_public_body).id)
- PublicBody.with_locale(:es) do
+ I18n.with_locale(:es) do
pb.name.should == "Renamed"
end
- PublicBody.with_locale(:en) do
+ I18n.with_locale(:en) do
pb.name.should == "Department for Humpadinking"
end
end
@@ -325,16 +328,7 @@ describe AdminPublicBodyController, "when administering public bodies with i18n"
end
describe AdminPublicBodyController, "when creating public bodies with i18n" do
- integrate_views
-
- before do
- @old_filters = ActionController::Routing::Routes.filters
- ActionController::Routing::Routes.filters = RoutingFilter::Chain.new
- end
-
- after do
- ActionController::Routing::Routes.filters = @old_filters
- end
+ render_views
it "creates a new public body in one locale" do
n = PublicBody.count
@@ -357,12 +351,12 @@ describe AdminPublicBodyController, "when creating public bodies with i18n" do
body = PublicBody.find_by_name("New Quango")
body.translations.map {|t| t.locale.to_s}.sort.should == ["en", "es"]
- PublicBody.with_locale(:en) do
+ I18n.with_locale(:en) do
body.name.should == "New Quango"
body.url_name.should == "new_quango"
body.first_letter.should == "N"
end
- PublicBody.with_locale(:es) do
+ I18n.with_locale(:es) do
body.name.should == "Mi Nuevo Quango"
body.url_name.should == "mi_nuevo_quango"
body.first_letter.should == "M"
diff --git a/spec/controllers/admin_request_controller_spec.rb b/spec/controllers/admin_request_controller_spec.rb
index 8a3934685..b7b726507 100644
--- a/spec/controllers/admin_request_controller_spec.rb
+++ b/spec/controllers/admin_request_controller_spec.rb
@@ -1,16 +1,11 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe AdminRequestController, "when administering requests" do
- integrate_views
+ render_views
before { basic_auth_login @request }
before(:each) do
load_raw_emails_data
- @old_filters = ActionController::Routing::Routes.filters
- ActionController::Routing::Routes.filters = RoutingFilter::Chain.new
- end
- after do
- ActionController::Routing::Routes.filters = @old_filters
end
it "shows the index/list page" do
@@ -39,7 +34,7 @@ describe AdminRequestController, "when administering requests" do
:awaiting_description => false,
:allow_new_responses_from => 'anybody',
:handle_rejected_responses => 'bounce' } }
- response.flash[:notice].should include('successful')
+ request.flash[:notice].should include('successful')
ir = InfoRequest.find(info_requests(:fancy_dog_request).id)
ir.title.should == "Renamed"
end
@@ -64,7 +59,7 @@ describe AdminRequestController, "when administering requests" do
it "saves edits to an outgoing_message" do
outgoing_messages(:useless_outgoing_message).body.should include("fancy dog")
post :update_outgoing, { :id => outgoing_messages(:useless_outgoing_message), :outgoing_message => { :body => "Why do you have such a delicious cat?" } }
- response.flash[:notice].should include('successful')
+ request.flash[:notice].should include('successful')
ir = OutgoingMessage.find(outgoing_messages(:useless_outgoing_message).id)
ir.body.should include("delicious cat")
end
@@ -82,15 +77,10 @@ describe AdminRequestController, "when administering requests" do
end
describe AdminRequestController, "when administering the holding pen" do
- integrate_views
+ render_views
before(:each) do
basic_auth_login @request
load_raw_emails_data
- @old_filters = ActionController::Routing::Routes.filters
- ActionController::Routing::Routes.filters = RoutingFilter::Chain.new
- end
- after do
- ActionController::Routing::Routes.filters = @old_filters
end
it "shows a rejection reason for an incoming message from an invalid address" do
@@ -100,7 +90,7 @@ describe AdminRequestController, "when administering the holding pen" do
ir.save!
receive_incoming_mail('incoming-request-plain.email', ir.incoming_email, "frob@nowhere.com")
get :show_raw_email, :id => InfoRequest.holding_pen_request.get_last_response.raw_email.id
- response.should have_text(/Only the authority can reply to this request/)
+ response.should contain "Only the authority can reply to this request"
end
it "allows redelivery even to a closed request" do
@@ -164,7 +154,7 @@ describe AdminRequestController, "when administering the holding pen" do
receive_incoming_mail('incoming-request-plain.email', ir.incoming_email, "")
InfoRequest.holding_pen_request.incoming_messages.length.should == 2
get :show_raw_email, :id => interesting_email
- response.should have_text(/Could not identify the request/)
+ response.should contain "Could not identify the request"
assigns[:info_requests][0].should == ir
end
@@ -260,13 +250,13 @@ describe AdminRequestController, "when administering the holding pen" do
end
it 'should not send a notification email' do
- ContactMailer.should_not_receive(:deliver_from_admin_message)
+ ContactMailer.should_not_receive(:from_admin_message)
make_request
end
it 'should add a notice to the flash saying that the request has been hidden' do
make_request
- response.flash[:notice].should == "This external request has been hidden"
+ request.flash[:notice].should == "This external request has been hidden"
end
it 'should expire the file cache for the request' do
diff --git a/spec/controllers/admin_track_controller_spec.rb b/spec/controllers/admin_track_controller_spec.rb
index 728c79f1f..f2de6c0d3 100644
--- a/spec/controllers/admin_track_controller_spec.rb
+++ b/spec/controllers/admin_track_controller_spec.rb
@@ -1,7 +1,7 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe AdminTrackController, "when administering tracks" do
- integrate_views
+ render_views
it "shows the list page" do
get :list
diff --git a/spec/controllers/admin_user_controller_spec.rb b/spec/controllers/admin_user_controller_spec.rb
index cf3665c9f..a6e5a0d7e 100644
--- a/spec/controllers/admin_user_controller_spec.rb
+++ b/spec/controllers/admin_user_controller_spec.rb
@@ -1,7 +1,7 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe AdminUserController, "when administering users" do
- integrate_views
+ render_views
it "shows the index/list page" do
get :index
diff --git a/spec/controllers/api_controller_spec.rb b/spec/controllers/api_controller_spec.rb
index 1c320f85c..66b8e33f0 100644
--- a/spec/controllers/api_controller_spec.rb
+++ b/spec/controllers/api_controller_spec.rb
@@ -7,7 +7,7 @@ def normalise_whitespace(s)
return s
end
-Spec::Matchers.define :be_equal_modulo_whitespace_to do |expected|
+RSpec::Matchers.define :be_equal_modulo_whitespace_to do |expected|
match do |actual|
normalise_whitespace(actual) == normalise_whitespace(expected)
end
@@ -173,7 +173,7 @@ describe ApiController, "when using the API" do
"body" => "xxx"
}.to_json
- response.status.should == "500 Internal Server Error"
+ response.status.should == 500
ActiveSupport::JSON.decode(response.body)["errors"].should == [
"Request #{request_id} cannot be updated using the API"]
@@ -195,7 +195,7 @@ describe ApiController, "when using the API" do
"body" => "xxx"
}.to_json
- response.status.should == "500 Internal Server Error"
+ response.status.should == 500
ActiveSupport::JSON.decode(response.body)["errors"].should == [
"You do not own request #{request_id}"]
@@ -213,12 +213,12 @@ describe ApiController, "when using the API" do
"body" => "Are you joking, or are you serious?"
}.to_json,
:attachments => [
- fixture_file_upload("files/tfl.pdf")
+ fixture_file_upload("/files/tfl.pdf")
]
# Make sure it worked
- response.status.to_i.should == 500
+ response.status.should == 500
errors = ActiveSupport::JSON.decode(response.body)["errors"]
errors.should == ["You cannot attach files to messages in the 'request' direction"]
end
@@ -242,7 +242,7 @@ describe ApiController, "when using the API" do
"body" => response_body
}.to_json,
:attachments => [
- fixture_file_upload("files/tfl.pdf")
+ fixture_file_upload("/files/tfl.pdf")
]
# And make sure it worked
@@ -259,7 +259,7 @@ describe ApiController, "when using the API" do
attachments.size.should == 1
attachment = attachments[0]
attachment.filename.should == "tfl.pdf"
- attachment.body.should == load_file_fixture("tfl.pdf", as_binary=true)
+ attachment.body.should == load_file_fixture("tfl.pdf")
end
it "should show information about a request" do
@@ -286,7 +286,7 @@ describe ApiController, "when using the API" do
:feed_type => "atom"
response.should be_success
- response.should render_template("api/request_events.atom")
+ response.should render_template("api/request_events")
assigns[:events].size.should > 0
assigns[:events].each do |event|
event.info_request.public_body.should == public_bodies(:geraldine_public_body)
@@ -341,7 +341,7 @@ describe ApiController, "when using the API" do
:feed_type => "atom"
response.should be_success
- response.should render_template("api/request_events.atom")
+ response.should render_template("api/request_events")
assigns[:events].size.should > 0
assigns[:events].each do |event|
event.created_at.should >= Date.new(2010, 1, 1)
@@ -360,7 +360,7 @@ describe ApiController, "when using the API" do
"sent_at" => sent_at,
"body" => response_body
}.to_json
- response.status.should == "404 Not Found"
+ response.status.should == 404
ActiveSupport::JSON.decode(response.body)["errors"].should == ["Could not find request 123459876"]
end
@@ -376,7 +376,7 @@ describe ApiController, "when using the API" do
"sent_at" => sent_at,
"body" => response_body
}.to_json
- response.status.should == "500 Internal Server Error"
+ response.status.should == 500
ActiveSupport::JSON.decode(response.body)["errors"].should == ["Request #{request_id} cannot be updated using the API"]
end
end
diff --git a/spec/controllers/comment_controller_spec.rb b/spec/controllers/comment_controller_spec.rb
index 4a7acee23..c03615ce2 100644
--- a/spec/controllers/comment_controller_spec.rb
+++ b/spec/controllers/comment_controller_spec.rb
@@ -1,7 +1,7 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe CommentController, "when commenting on a request" do
- integrate_views
+ render_views
it "should give an error and render 'new' template when body text is just some whitespace" do
post :new, :url_title => info_requests(:naughty_chicken_request).url_title,
diff --git a/spec/controllers/general_controller_spec.rb b/spec/controllers/general_controller_spec.rb
index 642ed0e05..4a1c8b134 100644
--- a/spec/controllers/general_controller_spec.rb
+++ b/spec/controllers/general_controller_spec.rb
@@ -12,30 +12,39 @@ describe GeneralController, "when trying to show the blog" do
it "should fail silently if the blog is returning an error" do
FakeWeb.register_uri(:get, %r|.*|, :body => "Error", :status => ["500", "Error"])
get :blog
- response.status.should == "200 OK"
+ response.status.should == 200
assigns[:blog_items].count.should == 0
end
end
describe GeneralController, 'when getting the blog feed' do
+ before do
+ AlaveteliConfiguration.stub!(:blog_feed).and_return("http://blog.example.com")
+ end
+
it 'should add a lang param correctly to a url with no querystring' do
- Configuration.stub!(:blog_feed).and_return("http://blog.example.com")
get :blog
assigns[:feed_url].should == "http://blog.example.com?lang=en"
end
it 'should add a lang param correctly to a url with an existing querystring' do
- Configuration.stub!(:blog_feed).and_return("http://blog.example.com?alt=rss")
+ AlaveteliConfiguration.stub!(:blog_feed).and_return("http://blog.example.com?alt=rss")
get :blog
assigns[:feed_url].should == "http://blog.example.com?alt=rss&lang=en"
end
+ it 'should parse an item from an example feed' do
+ controller.stub!(:quietly_try_to_open).and_return(load_file_fixture("blog_feed.atom"))
+ get :blog
+ assigns[:blog_items].count.should == 1
+ end
+
end
describe GeneralController, "when showing the frontpage" do
- integrate_views
+ render_views
before do
public_body = mock_model(PublicBody, :name => "Example Public Body",
@@ -58,14 +67,14 @@ describe GeneralController, "when showing the frontpage" do
it "should render the front page with default language" do
get :frontpage
- response.should have_tag('html[lang="en"]')
+ response.should have_selector('html[lang="en"]')
end
it "should render the front page with default language" do
old_default_locale = I18n.default_locale
I18n.default_locale = "es"
get :frontpage
- response.should have_tag('html[lang="es"]')
+ response.should have_selector('html[lang="es"]')
I18n.default_locale = old_default_locale
end
@@ -77,7 +86,7 @@ describe GeneralController, "when showing the frontpage" do
old_default_locale = I18n.default_locale
I18n.default_locale = "es"
get :frontpage
- response.should have_tag('html[lang="es"]')
+ response.should have_selector('html[lang="es"]')
I18n.default_locale = old_default_locale
end
@@ -87,7 +96,7 @@ describe GeneralController, "when showing the frontpage" do
accept_language = "es-ES,en-GB,en-US;q=0.8,en;q=0.6"
request.env['HTTP_ACCEPT_LANGUAGE'] = accept_language
get :frontpage
- response.should have_tag('html[lang="es"]')
+ response.should have_selector('html[lang="es"]')
request.env['HTTP_ACCEPT_LANGUAGE'] = nil
end
@@ -104,11 +113,11 @@ describe GeneralController, "when showing the frontpage" do
before do
@default_lang_home_link = /href=".*\/en\//
@other_lang_home_link = /href=".*\/es\//
- @old_include_default_locale_in_urls = Configuration::include_default_locale_in_urls
+ @old_include_default_locale_in_urls = AlaveteliConfiguration::include_default_locale_in_urls
end
def set_default_locale_in_urls(value)
- Configuration.stub!(:include_default_locale_in_urls).and_return(value)
+ AlaveteliConfiguration.stub!(:include_default_locale_in_urls).and_return(value)
load Rails.root.join("config/initializers/fast_gettext.rb")
end
@@ -120,13 +129,13 @@ describe GeneralController, "when showing the frontpage" do
it 'should generate URLs without a locale prepended' do
get :frontpage
- response.should_not have_text(@default_lang_home_link)
+ response.should_not contain @default_lang_home_link
end
it 'should render the front page in the default language when no locale param
is present and the session locale is not the default' do
get(:frontpage, {}, {:locale => 'es'})
- response.should_not have_text(@other_lang_home_link)
+ response.should_not contain @other_lang_home_link
end
end
@@ -134,7 +143,7 @@ describe GeneralController, "when showing the frontpage" do
INCLUDE_DEFAULT_LOCALE_IN_URLS is true' do
set_default_locale_in_urls(true)
get :frontpage
- response.should have_text(@default_lang_home_link)
+ response.body.should match /#{@default_lang_home_link}/
end
after do
@@ -150,28 +159,28 @@ describe GeneralController, "when showing the frontpage" do
it "should generate URLs with a locale prepended when there's more than one locale set" do
get :frontpage
- response.should have_text(home_link_regex)
+ response.body.should match home_link_regex
end
it "should use our test PO files rather than the application one" do
I18n.default_locale = :es
get :frontpage
- response.should have_text(/XOXO/)
+ response.body.should match /XOXO/
I18n.default_locale = :en
end
it "should generate URLs that include the locale when using one that includes an underscore" do
I18n.default_locale = :"en_GB"
get :frontpage
- response.should have_text(/href="\/en_GB\//)
+ response.body.should match /href="\/en_GB\//
I18n.default_locale = :en
end
it "should fall back to the language if the territory is unknown" do
I18n.default_locale = :"en_US"
get :frontpage
- response.should have_text(/href="\/en\//)
- response.should_not have_text(/href="\/en_US\//)
+ response.body.should match /href="\/en\//
+ response.body.should_not match /href="\/en_US\//
I18n.default_locale = :en
end
@@ -181,7 +190,7 @@ describe GeneralController, "when showing the frontpage" do
FastGettext.default_available_locales = I18n.available_locales = ['en']
get :frontpage
- response.should_not have_text(home_link_regex)
+ response.should_not contain home_link_regex
FastGettext.default_available_locales = old_fgt_available_locales
I18n.available_locales = old_i18n_available_locales
@@ -235,7 +244,7 @@ end
describe GeneralController, 'when using xapian search' do
- integrate_views
+ render_views
# rebuild xapian index after fixtures loaded
before(:each) do
@@ -249,7 +258,7 @@ describe GeneralController, 'when using xapian search' do
end
it "should find info request when searching for '\"fancy dog\"'" do
- get :search, :combined => ['"fancy dog"']
+ get :search, :combined => '"fancy dog"'
response.should render_template('search')
assigns[:xapian_requests].matches_estimated.should == 1
assigns[:xapian_requests].results.size.should == 1
@@ -259,7 +268,7 @@ describe GeneralController, 'when using xapian search' do
end
it "should find public body and incoming message when searching for 'geraldine quango'" do
- get :search, :combined => ['geraldine quango']
+ get :search, :combined => 'geraldine quango'
response.should render_template('search')
assigns[:xapian_requests].matches_estimated.should == 1
@@ -272,7 +281,7 @@ describe GeneralController, 'when using xapian search' do
end
it "should filter results based on end of URL being 'all'" do
- get :search, :combined => ['"bob"', "all"]
+ get :search, :combined => "bob/all"
assigns[:xapian_requests].results.map{|x| x[:model]}.should =~ [
info_request_events(:useless_outgoing_message_event),
info_request_events(:silly_outgoing_message_event),
@@ -284,14 +293,14 @@ describe GeneralController, 'when using xapian search' do
end
it "should filter results based on end of URL being 'users'" do
- get :search, :combined => ['"bob"', "users"]
+ get :search, :combined => "bob/users"
assigns[:xapian_requests].should == nil
assigns[:xapian_users].results.map{|x| x[:model]}.should == [users(:bob_smith_user)]
assigns[:xapian_bodies].should == nil
end
it "should filter results based on end of URL being 'requests'" do
- get :search, :combined => ['"bob"', "requests"]
+ get :search, :combined => "bob/requests"
assigns[:xapian_requests].results.map{|x|x[:model]}.should =~ [
info_request_events(:useless_outgoing_message_event),
info_request_events(:silly_outgoing_message_event),
@@ -303,7 +312,7 @@ describe GeneralController, 'when using xapian search' do
end
it "should filter results based on end of URL being 'bodies'" do
- get :search, :combined => ['"quango"', "bodies"]
+ get :search, :combined => "quango/bodies"
assigns[:xapian_requests].should == nil
assigns[:xapian_users].should == nil
assigns[:xapian_bodies].results.map{|x|x[:model]}.should == [public_bodies(:geraldine_public_body)]
@@ -317,7 +326,7 @@ describe GeneralController, 'when using xapian search' do
end
it "should not show unconfirmed users" do
- get :search, :combined => ["unconfirmed", "users"]
+ get :search, :combined => "unconfirmed/users"
response.should render_template('search')
assigns[:xapian_users].results.map{|x|x[:model]}.should == []
end
@@ -328,13 +337,13 @@ describe GeneralController, 'when using xapian search' do
u.save!
update_xapian_index
- get :search, :combined => ["unconfirmed", "users"]
+ get :search, :combined => "unconfirmed/users"
response.should render_template('search')
assigns[:xapian_users].results.map{|x|x[:model]}.should == [u]
end
it "should show tracking links for requests-only searches" do
- get :search, :combined => ['"bob"', "requests"]
+ get :search, :combined => "bob/requests"
response.body.should include('Track this search')
end
diff --git a/spec/controllers/help_controller_spec.rb b/spec/controllers/help_controller_spec.rb
index 28fd08c80..0f6f75eb9 100644
--- a/spec/controllers/help_controller_spec.rb
+++ b/spec/controllers/help_controller_spec.rb
@@ -1,7 +1,7 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe HelpController, "when using help" do
- integrate_views
+ render_views
it "shows the about page" do
get :about
diff --git a/spec/controllers/public_body_controller_spec.rb b/spec/controllers/public_body_controller_spec.rb
index 5f4012737..22d8418c9 100644
--- a/spec/controllers/public_body_controller_spec.rb
+++ b/spec/controllers/public_body_controller_spec.rb
@@ -2,7 +2,7 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe PublicBodyController, "when showing a body" do
- integrate_views
+ render_views
before(:each) do
load_raw_emails_data
@@ -43,33 +43,28 @@ describe PublicBodyController, "when showing a body" do
:conditions => ["public_body_id = ?", public_bodies(:humpadink_public_body).id])
end
- it "should assign the body using different locale from that used for url_name" do
- PublicBody.with_locale(:es) do
- get :show, {:url_name => "dfh", :view => 'all'}
- assigns[:public_body].notes.should == "Baguette"
- end
+ it "should redirect to the canonical name in the chosen locale" do
+ get :show, {:url_name => "dfh", :view => 'all', :show_locale => "es"}
+ response.should redirect_to "http://test.host/es/body/edfh"
end
it "should assign the body using same locale as that used in url_name" do
- PublicBody.with_locale(:es) do
- get :show, {:url_name => "edfh", :view => 'all'}
- assigns[:public_body].notes.should == "Baguette"
- end
+ get :show, {:url_name => "edfh", :view => 'all', :show_locale => "es"}
+ response.should contain("Baguette")
end
it "should redirect use to the relevant locale even when url_name is for a different locale" do
- old_filters = ActionController::Routing::Routes.filters
- ActionController::Routing::Routes.filters = RoutingFilter::Chain.new
+ RoutingFilter.active = false
get :show, {:url_name => "edfh", :view => 'all'}
response.should redirect_to "http://test.host/body/dfh"
- ActionController::Routing::Routes.filters = old_filters
+ RoutingFilter.active = true
end
it "should remember the filter (view) setting on redirecting" do
get :show, :show_locale => "es", :url_name => "tgq", :view => 'successful'
- response.should redirect_to show_public_body_successful_url(:url_name => "etgq")
+ response.should redirect_to 'http://test.host/es/body/etgq/successful'
end
it "should redirect to newest name if you use historic name of public body in URL" do
@@ -84,7 +79,7 @@ describe PublicBodyController, "when showing a body" do
end
describe PublicBodyController, "when listing bodies" do
- integrate_views
+ render_views
it "should be successful" do
get :list
@@ -92,7 +87,7 @@ describe PublicBodyController, "when listing bodies" do
end
it "should list all bodies from default locale, even when there are no translations for selected locale" do
- PublicBody.with_locale(:en) do
+ I18n.with_locale(:en) do
@english_only = PublicBody.new(:name => 'English only',
:short_name => 'EO',
:request_email => 'english@flourish.org',
@@ -100,7 +95,7 @@ describe PublicBodyController, "when listing bodies" do
:last_edit_comment => '')
@english_only.save
end
- PublicBody.with_locale(:es) do
+ I18n.with_locale(:es) do
get :list
assigns[:public_bodies].include?(@english_only).should == true
end
@@ -112,9 +107,12 @@ describe PublicBodyController, "when listing bodies" do
response.should render_template('list')
- assigns[:public_bodies].should == PublicBody.all(
- :conditions => "id <> #{PublicBody.internal_admin_body.id}",
- :order => "(select name from public_body_translations where public_body_id=public_bodies.id and locale='en')")
+ assigns[:public_bodies].should == [ public_bodies(:other_public_body),
+ public_bodies(:humpadink_public_body),
+ public_bodies(:forlorn_public_body),
+ public_bodies(:geraldine_public_body),
+ public_bodies(:sensible_walks_public_body),
+ public_bodies(:silly_walks_public_body) ]
assigns[:tag].should == "all"
assigns[:description].should == ""
end
@@ -152,11 +150,20 @@ describe PublicBodyController, "when listing bodies" do
get :list, :tag => "other"
response.should render_template('list')
- assigns[:public_bodies].should =~ PublicBody.all(:conditions => "id not in (#{public_bodies(:humpadink_public_body).id}, #{PublicBody.internal_admin_body.id})")
+ assigns[:public_bodies].should == [ public_bodies(:other_public_body),
+ public_bodies(:forlorn_public_body),
+ public_bodies(:geraldine_public_body),
+ public_bodies(:sensible_walks_public_body),
+ public_bodies(:silly_walks_public_body) ]
get :list
response.should render_template('list')
- assigns[:public_bodies].should =~ PublicBody.all(:conditions => "id <> #{PublicBody.internal_admin_body.id}")
+ assigns[:public_bodies].should == [ public_bodies(:other_public_body),
+ public_bodies(:humpadink_public_body),
+ public_bodies(:forlorn_public_body),
+ public_bodies(:geraldine_public_body),
+ public_bodies(:sensible_walks_public_body),
+ public_bodies(:silly_walks_public_body) ]
end
it "should list a machine tagged thing, should get it in both ways" do
@@ -198,7 +205,7 @@ end
describe PublicBodyController, "when doing type ahead searches" do
- integrate_views
+ render_views
before(:each) do
load_raw_emails_data
diff --git a/spec/controllers/reports_controller_spec.rb b/spec/controllers/reports_controller_spec.rb
new file mode 100644
index 000000000..fa8c72eaa
--- /dev/null
+++ b/spec/controllers/reports_controller_spec.rb
@@ -0,0 +1,104 @@
+require 'spec_helper'
+
+describe ReportsController, "when reporting a request when not logged in" do
+ it "should only allow logged-in users to report requests" do
+ post :create, :request_id => info_requests(:badger_request).url_title, :reason => "my reason"
+
+ flash[:notice].should =~ /You need to be logged in/
+ response.should redirect_to show_request_path(:url_title => info_requests(:badger_request).url_title)
+ end
+end
+
+describe ReportsController, "when reporting a request (logged in)" do
+ render_views
+
+ before do
+ @user = users(:robin_user)
+ session[:user_id] = @user.id
+ end
+
+ it "should 404 for non-existent requests" do
+ lambda {
+ post :create, :request_id => "hjksfdhjk_louytu_qqxxx"
+ }.should raise_error(ActiveRecord::RecordNotFound)
+ end
+
+ it "should mark a request as having been reported" do
+ ir = info_requests(:badger_request)
+ title = ir.url_title
+ ir.attention_requested.should == false
+
+ post :create, :request_id => title, :reason => "my reason"
+ response.should redirect_to show_request_path(:url_title => title)
+
+ ir.reload
+ ir.attention_requested.should == true
+ ir.described_state.should == "attention_requested"
+ end
+
+ it "should pass on the reason and message" do
+ info_request = mock_model(InfoRequest, :url_title => "foo", :attention_requested= => nil, :save! => nil)
+ InfoRequest.should_receive(:find_by_url_title!).with("foo").and_return(info_request)
+ info_request.should_receive(:report!).with("Not valid request", "It's just not", @user)
+ post :create, :request_id => "foo", :reason => "Not valid request", :message => "It's just not"
+ end
+
+ it "should not allow a request to be reported twice" do
+ title = info_requests(:badger_request).url_title
+
+ post :create, :request_id => title, :reason => "my reason"
+ response.should redirect_to show_request_url(:url_title => title)
+
+ post :create, :request_id => title, :reason => "my reason"
+ response.should redirect_to show_request_url(:url_title => title)
+ flash[:notice].should =~ /has already been reported/
+ end
+
+ it "should send an email from the reporter to admins" do
+ ir = info_requests(:badger_request)
+ title = ir.url_title
+ post :create, :request_id => title, :reason => "my reason"
+ deliveries = ActionMailer::Base.deliveries
+ deliveries.size.should == 1
+ mail = deliveries[0]
+ mail.subject.should =~ /attention_requested/
+ mail.from.should include(@user.email)
+ mail.body.should include(@user.name)
+ end
+
+ it "should force the user to pick a reason" do
+ info_request = mock_model(InfoRequest, :report! => nil, :url_title => "foo",
+ :report_reasons => ["Not FOIish enough"])
+ InfoRequest.should_receive(:find_by_url_title!).with("foo").and_return(info_request)
+
+ post :create, :request_id => "foo", :reason => ""
+ response.should render_template("new")
+ flash[:error].should == "Please choose a reason"
+ end
+end
+
+describe ReportsController, "#new_report_request" do
+ let(:info_request) { mock_model(InfoRequest, :url_title => "foo") }
+ before :each do
+ InfoRequest.should_receive(:find_by_url_title!).with("foo").and_return(info_request)
+ end
+
+ context "not logged in" do
+ it "should require the user to be logged in" do
+ get :new, :request_id => "foo"
+ response.should_not render_template("new")
+ end
+ end
+
+ context "logged in" do
+ before :each do
+ session[:user_id] = users(:bob_smith_user).id
+ end
+ it "should show the form" do
+ get :new, :request_id => "foo"
+ response.should render_template("new")
+ end
+ end
+end
+
+
diff --git a/spec/controllers/request_controller_spec.rb b/spec/controllers/request_controller_spec.rb
index 21dd0853a..5d10c88ad 100644
--- a/spec/controllers/request_controller_spec.rb
+++ b/spec/controllers/request_controller_spec.rb
@@ -2,7 +2,6 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe RequestController, "when listing recent requests" do
-
before(:each) do
load_raw_emails_data
get_fixtures_xapian_index
@@ -90,12 +89,14 @@ describe RequestController, "when listing recent requests" do
end
it "should assign the first page of results" do
- xap_results = mock_model(ActsAsXapian::Search,
+ xap_results = mock(ActsAsXapian::Search,
:results => (1..25).to_a.map { |m| { :model => m } },
:matches_estimated => 1000000)
- InfoRequest.should_receive(:full_search).
- with([InfoRequestEvent]," (variety:sent OR variety:followup_sent OR variety:response OR variety:comment)", "created_at", anything, anything, anything, anything).
+ ActsAsXapian::Search.should_receive(:new).
+ with([InfoRequestEvent]," (variety:sent OR variety:followup_sent OR variety:response OR variety:comment)",
+ :sort_by_prefix => "created_at", :offset => 0, :limit => 25, :sort_by_ascending => true,
+ :collapse_by_prefix => "request_collapse").
and_return(xap_results)
get :list, :view => 'all'
assigns[:list_results].size.should == 25
@@ -103,7 +104,7 @@ describe RequestController, "when listing recent requests" do
end
it "should return 404 for pages we don't want to serve up" do
- xap_results = mock_model(ActsAsXapian::Search,
+ xap_results = mock(ActsAsXapian::Search,
:results => (1..25).to_a.map { |m| { :model => m } },
:matches_estimated => 1000000)
lambda {
@@ -120,10 +121,7 @@ describe RequestController, "when listing recent requests" do
end
describe RequestController, "when changing things that appear on the request page" do
-
- before do
- PurgeRequest.destroy_all
- end
+ render_views
it "should purge the downstream cache when mail is received" do
ir = info_requests(:fancy_dog_request)
@@ -189,7 +187,7 @@ describe RequestController, "when changing things that appear on the request pag
end
describe RequestController, "when showing one request" do
- integrate_views
+ render_views
before(:each) do
load_raw_emails_data
@@ -218,20 +216,20 @@ describe RequestController, "when showing one request" do
end
it "should redirect from a numeric URL to pretty one" do
- get :show, :url_title => info_requests(:naughty_chicken_request).id
+ get :show, :url_title => info_requests(:naughty_chicken_request).id.to_s
response.should redirect_to(:action => 'show', :url_title => info_requests(:naughty_chicken_request).url_title)
end
it 'should show actions the request owner can take' do
get :show, :url_title => 'why_do_you_have_such_a_fancy_dog'
- response.should have_tag('div#owner_actions')
+ response.should have_selector('div#owner_actions')
end
describe 'when the request does allow comments' do
it 'should have a comment link' do
get :show, { :url_title => 'why_do_you_have_such_a_fancy_dog' },
{ :user_id => users(:admin_user).id }
- response.should have_tag('#anyone_actions', /Add an annotation/)
+ response.should have_selector('#anyone_actions', :content => "Add an annotation")
end
end
@@ -239,10 +237,40 @@ describe RequestController, "when showing one request" do
it 'should not have a comment link' do
get :show, { :url_title => 'spam_1' },
{ :user_id => users(:admin_user).id }
- response.should_not have_tag('#anyone_actions', /Add an annotation/)
+ response.should_not have_selector('#anyone_actions', :content => "Add an annotation")
end
end
+ context "when the request has not yet been reported" do
+ it "should allow the user to report" do
+ title = info_requests(:badger_request).url_title
+ get :show, :url_title => title
+ response.should_not contain("This request has been reported")
+ response.should contain("Offensive?")
+ end
+ end
+
+ context "when the request has been reported for admin attention" do
+ before :each do
+ info_requests(:fancy_dog_request).report!("", "", nil)
+ end
+ it "should inform the user" do
+ get :show, :url_title => 'why_do_you_have_such_a_fancy_dog'
+ response.should contain("This request has been reported")
+ response.should_not contain("Offensive?")
+ end
+
+ context "and then deemed okay and left to complete" do
+ before :each do
+ info_requests(:fancy_dog_request).set_described_state("successful")
+ end
+ it "should let the user know that the administrators have not hidden this request" do
+ get :show, :url_title => 'why_do_you_have_such_a_fancy_dog'
+ response.body.should =~ (/the site administrators.*have not hidden it/)
+ end
+ end
+ end
+
describe 'when the request is being viewed by an admin' do
describe 'if the request is awaiting description' do
@@ -256,13 +284,13 @@ describe RequestController, "when showing one request" do
it 'should show the describe state form' do
get :show, { :url_title => 'why_do_you_have_such_a_fancy_dog' },
{ :user_id => users(:admin_user).id }
- response.should have_tag('div.describe_state_form')
+ response.should have_selector('div.describe_state_form')
end
it 'should ask the user to use the describe state from' do
get :show, { :url_title => 'why_do_you_have_such_a_fancy_dog' },
{ :user_id => users(:admin_user).id }
- response.should have_tag('p#request_status', :text => /answer the question above/)
+ response.should have_selector('p#request_status', :content => "answer the question above")
end
end
@@ -280,7 +308,7 @@ describe RequestController, "when showing one request" do
it 'should give a link to requesting an internal review' do
get :show, { :url_title => 'why_do_you_have_such_a_fancy_dog' },
{ :user_id => users(:admin_user).id }
- response.should have_tag('p#request_status', :text =>/requesting an internal review/)
+ response.should have_selector('p#request_status', :content => "requesting an internal review")
end
end
@@ -298,7 +326,7 @@ describe RequestController, "when showing one request" do
it 'should give a link to make a followup' do
get :show, { :url_title => 'why_do_you_have_such_a_fancy_dog' },
{ :user_id => users(:admin_user).id }
- response.should have_tag('p#request_status a', :text =>/send a follow up message/)
+ response.should have_selector('p#request_status a', :content => "send a follow up message")
end
end
@@ -315,7 +343,7 @@ describe RequestController, "when showing one request" do
it 'should not display actions the request owner can take' do
get :show, :url_title => 'balalas'
- response.should_not have_tag('div#owner_actions')
+ response.should_not have_selector('div#owner_actions')
end
end
@@ -341,12 +369,12 @@ describe RequestController, "when showing one request" do
it 'should not show the describe state form' do
make_request
- response.should_not have_tag('div.describe_state_form')
+ response.should_not have_selector('div.describe_state_form')
end
it 'should not ask the user to use the describe state form' do
make_request
- response.should_not have_tag('p#request_status', :text => /answer the question above/)
+ response.should_not have_selector('p#request_status', :content => "answer the question above")
end
end
@@ -363,7 +391,7 @@ describe RequestController, "when showing one request" do
it 'should not give a link to requesting an internal review' do
make_request
- response.should_not have_tag('p#request_status', :text =>/requesting an internal review/)
+ response.should_not have_selector('p#request_status', :content => "requesting an internal review")
end
end
@@ -379,12 +407,12 @@ describe RequestController, "when showing one request" do
it 'should not give a link to make a followup' do
make_request
- response.should_not have_tag('p#request_status a', :text =>/send a follow up message/)
+ response.should_not have_selector('p#request_status a', :content => "send a follow up message")
end
it 'should not give a link to sign in (in the request status paragraph)' do
make_request
- response.should_not have_tag('p#request_status a', :text => /sign in/)
+ response.should_not have_selector('p#request_status a', :content => "sign in")
end
end
@@ -447,7 +475,7 @@ describe RequestController, "when showing one request" do
describe 'when handling incoming mail' do
- integrate_views
+ render_views
it "should receive incoming messages, send email to creator, and show them" do
ir = info_requests(:fancy_dog_request)
@@ -481,13 +509,13 @@ describe RequestController, "when showing one request" do
(assigns[:info_request_events].size - size_before).should == 1
ir.reload
- get :get_attachment, :incoming_message_id => ir.incoming_messages[1].id, :id => ir.id, :part => 2, :file_name => ['hello.txt'], :skip_cache => 1
+ get :get_attachment, :incoming_message_id => ir.incoming_messages[1].id, :id => ir.id, :part => 2, :file_name => 'hello world.txt', :skip_cache => 1
response.content_type.should == "text/plain"
- response.should have_text(/Second hello/)
+ response.should contain "Second hello"
- get :get_attachment, :incoming_message_id => ir.incoming_messages[1].id, :id => ir.id, :part => 3, :file_name => ['hello.txt'], :skip_cache => 1
+ get :get_attachment, :incoming_message_id => ir.incoming_messages[1].id, :id => ir.id, :part => 3, :file_name => 'hello world.txt', :skip_cache => 1
response.content_type.should == "text/plain"
- response.should have_text(/First hello/)
+ response.should contain "First hello"
end
it 'should cache an attachment on a request with normal prominence' do
@@ -498,24 +526,23 @@ describe RequestController, "when showing one request" do
get :get_attachment, :incoming_message_id => ir.incoming_messages[1].id,
:id => ir.id,
:part => 2,
- :file_name => ['hello.txt']
-
+ :file_name => 'hello world.txt'
end
it "should convert message body to UTF8" do
ir = info_requests(:fancy_dog_request)
receive_incoming_mail('iso8859_2_raw_email.email', ir.incoming_email)
get :show, :url_title => 'why_do_you_have_such_a_fancy_dog'
- response.should have_text(/tënde/u)
+ response.should contain "tënde"
end
it "should generate valid HTML verson of plain text attachments" do
ir = info_requests(:fancy_dog_request)
receive_incoming_mail('incoming-request-two-same-name.email', ir.incoming_email)
ir.reload
- get :get_attachment_as_html, :incoming_message_id => ir.incoming_messages[1].id, :id => ir.id, :part => 2, :file_name => ['hello.txt.html'], :skip_cache => 1
+ get :get_attachment_as_html, :incoming_message_id => ir.incoming_messages[1].id, :id => ir.id, :part => 2, :file_name => 'hello world.txt.html', :skip_cache => 1
response.content_type.should == "text/html"
- response.should have_text(/Second hello/)
+ response.should contain "Second hello"
end
# This is a regression test for a bug where URLs of this form were causing 500 errors
@@ -534,11 +561,11 @@ describe RequestController, "when showing one request" do
ir.reload
ugly_id = "55195"
lambda {
- get :get_attachment, :incoming_message_id => ir.incoming_messages[1].id, :id => ugly_id, :part => 2, :file_name => ['hello.txt.html'], :skip_cache => 1
+ get :get_attachment, :incoming_message_id => ir.incoming_messages[1].id, :id => ugly_id, :part => 2, :file_name => 'hello world.txt.html', :skip_cache => 1
}.should raise_error(ActiveRecord::RecordNotFound)
lambda {
- get :get_attachment_as_html, :incoming_message_id => ir.incoming_messages[1].id, :id => ugly_id, :part => 2, :file_name => ['hello.txt'], :skip_cache => 1
+ get :get_attachment_as_html, :incoming_message_id => ir.incoming_messages[1].id, :id => ugly_id, :part => 2, :file_name => 'hello world.txt', :skip_cache => 1
}.should raise_error(ActiveRecord::RecordNotFound)
end
it "should return 404 when incoming message and request ids don't match" do
@@ -547,7 +574,7 @@ describe RequestController, "when showing one request" do
receive_incoming_mail('incoming-request-two-same-name.email', ir.incoming_email)
ir.reload
lambda {
- get :get_attachment_as_html, :incoming_message_id => ir.incoming_messages[1].id, :id => wrong_id, :part => 2, :file_name => ['hello.txt.html'], :skip_cache => 1
+ get :get_attachment_as_html, :incoming_message_id => ir.incoming_messages[1].id, :id => wrong_id, :part => 2, :file_name => 'hello world.txt.html', :skip_cache => 1
}.should raise_error(ActiveRecord::RecordNotFound)
end
it "should return 404 for ugly URLs contain a request id that isn't an integer, even if the integer prefix refers to an actual request" do
@@ -557,11 +584,11 @@ describe RequestController, "when showing one request" do
ugly_id = "%d95" % [info_requests(:naughty_chicken_request).id]
lambda {
- get :get_attachment, :incoming_message_id => ir.incoming_messages[1].id, :id => ugly_id, :part => 2, :file_name => ['hello.txt.html'], :skip_cache => 1
+ get :get_attachment, :incoming_message_id => ir.incoming_messages[1].id, :id => ugly_id, :part => 2, :file_name => 'hello world.txt.html', :skip_cache => 1
}.should raise_error(ActiveRecord::RecordNotFound)
lambda {
- get :get_attachment_as_html, :incoming_message_id => ir.incoming_messages[1].id, :id => ugly_id, :part => 2, :file_name => ['hello.txt'], :skip_cache => 1
+ get :get_attachment_as_html, :incoming_message_id => ir.incoming_messages[1].id, :id => ugly_id, :part => 2, :file_name => 'hello world.txt', :skip_cache => 1
}.should raise_error(ActiveRecord::RecordNotFound)
end
it "should return 404 when incoming message and request ids don't match" do
@@ -570,7 +597,7 @@ describe RequestController, "when showing one request" do
receive_incoming_mail('incoming-request-two-same-name.email', ir.incoming_email)
ir.reload
lambda {
- get :get_attachment_as_html, :incoming_message_id => ir.incoming_messages[1].id, :id => wrong_id, :part => 2, :file_name => ['hello.txt.html'], :skip_cache => 1
+ get :get_attachment_as_html, :incoming_message_id => ir.incoming_messages[1].id, :id => wrong_id, :part => 2, :file_name => 'hello world.txt.html', :skip_cache => 1
}.should raise_error(ActiveRecord::RecordNotFound)
end
@@ -578,41 +605,64 @@ describe RequestController, "when showing one request" do
ir = info_requests(:fancy_dog_request)
receive_incoming_mail('incoming-request-pdf-attachment.email', ir.incoming_email)
ir.reload
- get :get_attachment_as_html, :incoming_message_id => ir.incoming_messages[1].id, :id => ir.id, :part => 2, :file_name => ['fs_50379341.pdf.html'], :skip_cache => 1
+ get :get_attachment_as_html, :incoming_message_id => ir.incoming_messages[1].id, :id => ir.id, :part => 2, :file_name => 'fs 50379341.pdf.html', :skip_cache => 1
response.content_type.should == "text/html"
- response.should have_text(/Walberswick Parish Council/)
+ response.should contain "Walberswick Parish Council"
end
- it "should not cause a reparsing of the raw email, even when the result would be a 404" do
+ it "should not cause a reparsing of the raw email, even when the attachment can't be found" do
ir = info_requests(:fancy_dog_request)
receive_incoming_mail('incoming-request-two-same-name.email', ir.incoming_email)
ir.reload
- attachment = IncomingMessage.get_attachment_by_url_part_number(ir.incoming_messages[1].get_attachments_for_display, 2)
- attachment.body.should have_text(/Second hello/)
+ attachment = IncomingMessage.get_attachment_by_url_part_number_and_filename(ir.incoming_messages[1].get_attachments_for_display, 2, 'hello world.txt')
+ attachment.body.should contain "Second hello"
# change the raw_email associated with the message; this only be reparsed when explicitly asked for
ir.incoming_messages[1].raw_email.data = ir.incoming_messages[1].raw_email.data.sub("Second", "Third")
- # asking for an attachment by the wrong filename results
- # in a 404 for browsing users. This shouldn't cause a
- # re-parse...
- lambda {
- get :get_attachment_as_html, :incoming_message_id => ir.incoming_messages[1].id, :id => ir.id, :part => 2, :file_name => ['hello.txt.baz.html'], :skip_cache => 1
- }.should raise_error(ActiveRecord::RecordNotFound)
+ # asking for an attachment by the wrong filename should result in redirecting
+ # back to the incoming message, but shouldn't cause a reparse:
+ get :get_attachment_as_html, :incoming_message_id => ir.incoming_messages[1].id, :id => ir.id, :part => 2, :file_name => 'hello world.txt.baz.html', :skip_cache => 1
+ response.status.should == 303
- attachment = IncomingMessage.get_attachment_by_url_part_number(ir.incoming_messages[1].get_attachments_for_display, 2)
- attachment.body.should have_text(/Second hello/)
+ attachment = IncomingMessage.get_attachment_by_url_part_number_and_filename(ir.incoming_messages[1].get_attachments_for_display, 2, 'hello world.txt')
+ attachment.body.should contain "Second hello"
# ...nor should asking for it by its correct filename...
- get :get_attachment_as_html, :incoming_message_id => ir.incoming_messages[1].id, :id => ir.id, :part => 2, :file_name => ['hello.txt.html'], :skip_cache => 1
- response.should_not have_text(/Third hello/)
+ get :get_attachment_as_html, :incoming_message_id => ir.incoming_messages[1].id, :id => ir.id, :part => 2, :file_name => 'hello world.txt.html', :skip_cache => 1
+ response.should_not contain "Third hello"
# ...but if we explicitly ask for attachments to be extracted, then they should be
force = true
ir.incoming_messages[1].parse_raw_email!(force)
- attachment = IncomingMessage.get_attachment_by_url_part_number(ir.incoming_messages[1].get_attachments_for_display, 2)
- attachment.body.should have_text(/Second hello/)
- get :get_attachment_as_html, :incoming_message_id => ir.incoming_messages[1].id, :id => ir.id, :part => 2, :file_name => ['hello.txt.html'], :skip_cache => 1
- response.should have_text(/Third hello/)
+ ir.reload
+ attachment = IncomingMessage.get_attachment_by_url_part_number_and_filename(ir.incoming_messages[1].get_attachments_for_display, 2, 'hello world.txt')
+ attachment.body.should contain "Third hello"
+ get :get_attachment_as_html, :incoming_message_id => ir.incoming_messages[1].id, :id => ir.id, :part => 2, :file_name => 'hello world.txt.html', :skip_cache => 1
+ response.should contain "Third hello"
+ end
+
+ it "should redirect to the incoming message if there's a wrong part number and an ambiguous filename" do
+ ir = info_requests(:fancy_dog_request)
+ receive_incoming_mail('incoming-request-two-same-name.email', ir.incoming_email)
+ ir.reload
+
+ im = ir.incoming_messages[1]
+
+ attachment = IncomingMessage.get_attachment_by_url_part_number_and_filename(im.get_attachments_for_display, 5, 'hello world.txt')
+ attachment.should be_nil
+
+ get :get_attachment_as_html, :incoming_message_id => im.id, :id => ir.id, :part => 5, :file_name => 'hello world.txt', :skip_cache => 1
+ response.status.should == 303
+ new_location = response.header['Location']
+ new_location.should match(/request\/#{ir.url_title}#incoming-#{im.id}/)
+ end
+
+ it "should find a uniquely named filename even if the URL part number was wrong" do
+ ir = info_requests(:fancy_dog_request)
+ receive_incoming_mail('incoming-request-pdf-attachment.email', ir.incoming_email)
+ ir.reload
+ get :get_attachment, :incoming_message_id => ir.incoming_messages[1].id, :id => ir.id, :part => 5, :file_name => 'fs 50379341.pdf', :skip_cache => 1
+ response.content_type.should == "application/pdf"
end
it "should treat attachments with unknown extensions as binary" do
@@ -620,19 +670,17 @@ describe RequestController, "when showing one request" do
receive_incoming_mail('incoming-request-attachment-unknown-extension.email', ir.incoming_email)
ir.reload
- get :get_attachment, :incoming_message_id => ir.incoming_messages[1].id, :id => ir.id, :part => 2, :file_name => ['hello.qwglhm'], :skip_cache => 1
+ get :get_attachment, :incoming_message_id => ir.incoming_messages[1].id, :id => ir.id, :part => 2, :file_name => 'hello.qwglhm', :skip_cache => 1
response.content_type.should == "application/octet-stream"
- response.should have_text(/an unusual sort of file/)
+ response.should contain "an unusual sort of file"
end
it "should not download attachments with wrong file name" do
ir = info_requests(:fancy_dog_request)
receive_incoming_mail('incoming-request-two-same-name.email', ir.incoming_email)
- lambda {
- get :get_attachment, :incoming_message_id => ir.incoming_messages[1].id, :id => ir.id, :part => 2,
- :file_name => ['http://trying.to.hack']
- }.should raise_error(ActiveRecord::RecordNotFound)
+ get :get_attachment, :incoming_message_id => ir.incoming_messages[1].id, :id => ir.id, :part => 2, :file_name => 'http://trying.to.hack'
+ response.status.should == 303
end
it "should censor attachments downloaded as binary" do
@@ -648,9 +696,9 @@ describe RequestController, "when showing one request" do
begin
receive_incoming_mail('incoming-request-two-same-name.email', ir.incoming_email)
- get :get_attachment, :incoming_message_id => ir.incoming_messages[1].id, :id => ir.id, :part => 2, :file_name => ['hello.txt'], :skip_cache => 1
+ get :get_attachment, :incoming_message_id => ir.incoming_messages[1].id, :id => ir.id, :part => 2, :file_name => 'hello world.txt', :skip_cache => 1
response.content_type.should == "text/plain"
- response.should have_text(/xxxxxx hello/)
+ response.should contain "xxxxxx hello"
ensure
ir.censor_rules.clear
end
@@ -670,9 +718,9 @@ describe RequestController, "when showing one request" do
receive_incoming_mail('incoming-request-two-same-name.email', ir.incoming_email)
ir.reload
- get :get_attachment, :incoming_message_id => ir.incoming_messages[1].id, :id => ir.id, :part => 2, :file_name => ['hello.txt'], :skip_cache => 1
+ get :get_attachment, :incoming_message_id => ir.incoming_messages[1].id, :id => ir.id, :part => 2, :file_name => 'hello world.txt', :skip_cache => 1
response.content_type.should == "text/plain"
- response.should have_text(/xxxxxx hello/)
+ response.should contain "xxxxxx hello"
ensure
ir.user.censor_rules.clear
end
@@ -694,21 +742,27 @@ describe RequestController, "when showing one request" do
get :show, :url_title => 'why_do_you_have_such_a_fancy_dog'
assert assigns[:info_request].info_request_events[3].incoming_message.get_attachments_for_display.count == 2
# the issue is that the info_request_events have got cached on them the old info_requests.
- # where i'm at: trying to replace those fields that got re-read from the raw email. however tests are failing in very strange ways. currently I don't appear to be getting any attachments parsed in at all when in the template (see "*****" in _correspondence.rhtml) but do when I'm in the code.
+ # where i'm at: trying to replace those fields that got re-read from the raw email. however tests are failing in very strange ways. currently I don't appear to be getting any attachments parsed in at all when in the template (see "*****" in _correspondence.html.erb) but do when I'm in the code.
# so at this point, assigns[:info_request].incoming_messages[1].get_attachments_for_display is returning stuff, but the equivalent thing in the template isn't.
# but something odd is that the above is return a whole load of attachments which aren't there in the controller
- response.body.should have_tag("p.attachment strong", /hello.txt/m)
+ response.body.should have_selector("p.attachment strong") do |s|
+ s.should contain /hello world.txt/m
+ end
censor_rule = CensorRule.new()
- censor_rule.text = "hello.txt"
+ # Note that the censor rule applies to the original filename,
+ # not the display_filename:
+ censor_rule.text = "hello-world.txt"
censor_rule.replacement = "goodbye.txt"
censor_rule.last_edit_editor = "unknown"
censor_rule.last_edit_comment = "none"
ir.censor_rules << censor_rule
begin
get :show, :url_title => 'why_do_you_have_such_a_fancy_dog'
- response.body.should have_tag("p.attachment strong", /goodbye.txt/m)
+ response.body.should have_selector("p.attachment strong") do |s|
+ s.should contain /goodbye.txt/m
+ end
ensure
ir.censor_rules.clear
end
@@ -731,19 +785,19 @@ describe RequestController, "when showing one request" do
ir = info_requests(:fancy_dog_request)
session[:user_id] = ir.user.id # bob_smith_user
get :download_entire_request, :url_title => title
- assigns[:url_path].should have_text(/#{title}.zip$/)
+ assigns[:url_path].should contain /#{title}.zip$/
old_path = assigns[:url_path]
- response.location.should have_text(/#{assigns[:url_path]}$/)
+ response.location.should contain /#{assigns[:url_path]}$/
zipfile = Zip::ZipFile.open(File.join(File.dirname(__FILE__), "../../cache/zips", old_path)) { |zipfile|
zipfile.count.should == 1 # just the message
}
receive_incoming_mail('incoming-request-two-same-name.email', ir.incoming_email)
get :download_entire_request, :url_title => title
- assigns[:url_path].should have_text(/#{title}.zip$/)
+ assigns[:url_path].should contain /#{title}.zip$/
old_path = assigns[:url_path]
- response.location.should have_text(/#{assigns[:url_path]}$/)
+ response.location.should contain /#{assigns[:url_path]}$/
zipfile = Zip::ZipFile.open(File.join(File.dirname(__FILE__), "../../cache/zips", old_path)) { |zipfile|
- zipfile.count.should == 3 # the message plus two "hello.txt" files
+ zipfile.count.should == 3 # the message plus two "hello-world.txt" files
}
# The path of the zip file is based on the hash of the timestamp of the last request
@@ -752,11 +806,11 @@ describe RequestController, "when showing one request" do
sleep 1
receive_incoming_mail('incoming-request-attachment-unknown-extension.email', ir.incoming_email)
get :download_entire_request, :url_title => title
- assigns[:url_path].should have_text(/#{title}.zip$/)
+ assigns[:url_path].should contain /#{title}.zip$/
assigns[:url_path].should_not == old_path
- response.location.should have_text(/#{assigns[:url_path]}/)
+ response.location.should contain assigns[:url_path]
zipfile = Zip::ZipFile.open(File.join(File.dirname(__FILE__), "../../cache/zips", assigns[:url_path])) { |zipfile|
- zipfile.count.should == 4 # the message, two hello.txt plus the unknown attachment
+ zipfile.count.should == 4 # the message, two hello-world.txt plus the unknown attachment
}
end
@@ -764,14 +818,13 @@ describe RequestController, "when showing one request" do
info_request = info_requests(:external_request)
get :download_entire_request, { :url_title => info_request.url_title },
{ :user_id => users(:bob_smith_user) }
- response.location.should have_text(/#{assigns[:url_path]}$/)
+ response.location.should contain /#{assigns[:url_path]}$/
end
end
end
end
describe RequestController, "when changing prominence of a request" do
-
before(:each) do
load_raw_emails_data
end
@@ -853,14 +906,14 @@ describe RequestController, "when changing prominence of a request" do
:part => 2,
:skip_cache => 1
response.content_type.should == "text/html"
- response.should_not have_text(/Second hello/)
+ response.should_not contain "Second hello"
response.should render_template('request/hidden')
get :get_attachment, :incoming_message_id => ir.incoming_messages[1].id,
:id => ir.id,
:part => 3,
:skip_cache => 1
response.content_type.should == "text/html"
- response.should_not have_text(/First hello/)
+ response.should_not contain "First hello"
response.should render_template('request/hidden')
response.code.should == '410'
end
@@ -876,7 +929,7 @@ describe RequestController, "when changing prominence of a request" do
get :get_attachment_as_html, :incoming_message_id => ir.incoming_messages[1].id,
:id => ir.id,
:part => 2,
- :file_name => ['hello.txt']
+ :file_name => 'hello world.txt'
end.should raise_error(ActiveRecord::RecordNotFound)
end
@@ -891,7 +944,7 @@ describe RequestController, "when changing prominence of a request" do
get :get_attachment_as_html, :incoming_message_id => ir.incoming_messages[1].id,
:id => ir.id,
:part => 2,
- :file_name => ['hello.txt']
+ :file_name => 'hello world.txt'
end.should raise_error(ActiveRecord::RecordNotFound)
end
@@ -904,11 +957,11 @@ end
# end
describe RequestController, "when searching for an authority" do
-
# Whether or not sign-in is required for this step is configurable,
# so we make sure we're logged in, just in case
before do
@user = users(:bob_smith_user)
+ get_fixtures_xapian_index
end
it "should return nothing for the empty query string" do
@@ -920,6 +973,7 @@ describe RequestController, "when searching for an authority" do
end
it "should return matching bodies" do
+
session[:user_id] = @user.id
get :select_authority, :query => "Quango"
@@ -944,7 +998,7 @@ describe RequestController, "when searching for an authority" do
end
describe RequestController, "when creating a new request" do
- integrate_views
+ render_views
before do
@user = users(:bob_smith_user)
@@ -1036,7 +1090,7 @@ describe RequestController, "when creating a new request" do
response.should redirect_to show_new_request_url(:url_title => ir.url_title)
# This test uses an explicit path because it's relied in
# Google Analytics goals:
- response.redirected_to.should =~ /request\/why_is_your_quango_called_gerald\/new$/
+ response.redirect_url.should =~ /request\/why_is_your_quango_called_gerald\/new$/
end
it "should give an error if the same request is submitted twice" do
@@ -1180,7 +1234,7 @@ describe RequestController, "when making a new request" do
end
describe RequestController, "when viewing an individual response for reply/followup" do
- integrate_views
+ render_views
before(:each) do
load_raw_emails_data
@@ -1201,7 +1255,7 @@ describe RequestController, "when viewing an individual response for reply/follo
it "should offer the opportunity to reply to the main address" do
session[:user_id] = users(:bob_smith_user).id
get :show_response, :id => info_requests(:fancy_dog_request).id, :incoming_message_id => incoming_messages(:useless_incoming_message)
- response.body.should have_tag("div#other_recipients ul li", /the main FOI contact address for/)
+ response.body.should have_selector("div#other_recipients ul li", :content => "the main FOI contact address for")
end
it "should offer an opportunity to reply to another address" do
@@ -1211,7 +1265,7 @@ describe RequestController, "when viewing an individual response for reply/follo
ir.save!
receive_incoming_mail('incoming-request-plain.email', ir.incoming_email, "Frob <frob@bonce.com>")
get :show_response, :id => ir.id, :incoming_message_id => incoming_messages(:useless_incoming_message)
- response.body.should have_tag("div#other_recipients ul li", /Frob/)
+ response.body.should have_selector("div#other_recipients ul li", :content => "Frob")
end
it "should not show individual responses if request hidden, even if request owner" do
@@ -1250,8 +1304,7 @@ describe RequestController, "when classifying an information request" do
end
it 'should redirect to the request page' do
- post :describe_state, :id => @external_request.id,
- :submitted_describe_state => 1
+ post :describe_state, :id => @external_request.id
response.should redirect_to(:action => 'show',
:controller => 'request',
:url_title => @external_request.url_title)
@@ -1271,8 +1324,7 @@ describe RequestController, "when classifying an information request" do
def post_status(status)
post :describe_state, :incoming_message => { :described_state => status },
:id => @dog_request.id,
- :last_info_request_event_id => @dog_request.last_event_id_needing_description,
- :submitted_describe_state => 1
+ :last_info_request_event_id => @dog_request.last_event_id_needing_description
end
it "should require login" do
@@ -1282,6 +1334,7 @@ describe RequestController, "when classifying an information request" do
end
it 'should ask whether the request is old and unclassified' do
+ session[:user_id] = users(:silly_name_user).id
@dog_request.should_receive(:is_old_unclassified?)
post_status('rejected')
end
@@ -1296,7 +1349,9 @@ describe RequestController, "when classifying an information request" do
before do
@dog_request.stub!(:is_old_unclassified?).and_return(true)
- RequestMailer.stub!(:deliver_old_unclassified_updated)
+ mail_mock = mock("mail")
+ mail_mock.stub(:deliver)
+ RequestMailer.stub!(:old_unclassified_updated).and_return(mail_mock)
end
describe 'when the user is not logged in' do
@@ -1319,7 +1374,7 @@ describe RequestController, "when classifying an information request" do
it 'should classify the request' do
@dog_request.stub!(:calculate_status).and_return('rejected')
- @dog_request.should_receive(:set_described_state).with('rejected')
+ @dog_request.should_receive(:set_described_state).with('rejected', users(:silly_name_user), nil)
post_status('rejected')
end
@@ -1333,7 +1388,7 @@ describe RequestController, "when classifying an information request" do
end
it 'should send an email to the requester letting them know someone has updated the status of their request' do
- RequestMailer.should_receive(:deliver_old_unclassified_updated)
+ RequestMailer.should_receive(:old_unclassified_updated)
post_status('rejected')
end
@@ -1347,6 +1402,26 @@ describe RequestController, "when classifying an information request" do
flash[:notice].should == 'Thank you for updating this request!'
end
+ context "playing the classification game" do
+ before :each do
+ session[:request_game] = true
+ end
+
+ it "should continue the game after classifying a request" do
+ post_status("rejected")
+ flash[:notice].should =~ /There are some more requests below for you to classify/
+ response.should redirect_to categorise_play_url
+ end
+ end
+
+ it "should send a mail from the user who changed the state to requires_admin" do
+ post :describe_state, :incoming_message => { :described_state => "requires_admin", :message => "a message" }, :id => @dog_request.id, :incoming_message_id => incoming_messages(:useless_incoming_message), :last_info_request_event_id => @dog_request.last_event_id_needing_description
+
+ deliveries = ActionMailer::Base.deliveries
+ deliveries.size.should == 1
+ mail = deliveries[0]
+ mail.from_addrs.first.to_s.should == users(:silly_name_user).email
+ end
end
end
@@ -1362,7 +1437,7 @@ describe RequestController, "when classifying an information request" do
it 'should update the status of the request' do
@dog_request.stub!(:calculate_status).and_return('rejected')
- @dog_request.should_receive(:set_described_state).with('rejected')
+ @dog_request.should_receive(:set_described_state).with('rejected', @admin_user, nil)
post_status('rejected')
end
@@ -1384,7 +1459,9 @@ describe RequestController, "when classifying an information request" do
end
it 'should send an email to the requester letting them know someone has updated the status of their request' do
- RequestMailer.should_receive(:deliver_old_unclassified_updated)
+ mail_mock = mock("mail")
+ mail_mock.stub :deliver
+ RequestMailer.should_receive(:old_unclassified_updated).and_return(mail_mock)
post_status('rejected')
end
@@ -1413,7 +1490,7 @@ describe RequestController, "when classifying an information request" do
it 'should update the status of the request' do
@dog_request.stub!(:calculate_status).and_return('rejected')
- @dog_request.should_receive(:set_described_state).with('rejected')
+ @dog_request.should_receive(:set_described_state).with('rejected', @admin_user, nil)
post_status('rejected')
end
@@ -1423,7 +1500,7 @@ describe RequestController, "when classifying an information request" do
end
it 'should not send an email to the requester letting them know someone has updated the status of their request' do
- RequestMailer.should_not_receive(:deliver_old_unclassified_updated)
+ RequestMailer.should_not_receive(:old_unclassified_updated)
post_status('rejected')
end
@@ -1448,6 +1525,22 @@ describe RequestController, "when classifying an information request" do
@dog_request.stub!(:each).and_return([@dog_request])
end
+ it "should let you know when you forget to select a status" do
+ post :describe_state, :id => @dog_request.id,
+ :last_info_request_event_id => @dog_request.last_event_id_needing_description
+ response.should redirect_to show_request_url(:url_title => @dog_request.url_title)
+ flash[:error].should == _("Please choose whether or not you got some of the information that you wanted.")
+ end
+
+ it "should not change the status if the request has changed while viewing it" do
+ @dog_request.stub!(:last_event_id_needing_description).and_return(2)
+
+ post :describe_state, :incoming_message => { :described_state => "rejected" },
+ :id => @dog_request.id, :last_info_request_event_id => 1
+ response.should redirect_to show_request_url(:url_title => @dog_request.url_title)
+ flash[:error].should =~ /The request has been updated since you originally loaded this page/
+ end
+
it "should successfully classify response if logged in as user controlling request" do
post_status('rejected')
response.should redirect_to(:controller => 'help', :action => 'unhappy', :url_title => @dog_request.url_title)
@@ -1464,26 +1557,38 @@ describe RequestController, "when classifying an information request" do
end
it 'should not send an email to the requester letting them know someone has updated the status of their request' do
- RequestMailer.should_not_receive(:deliver_old_unclassified_updated)
+ RequestMailer.should_not_receive(:old_unclassified_updated)
post_status('rejected')
end
- it "should send email when classified as requires_admin" do
- post :describe_state, :incoming_message => { :described_state => "requires_admin" }, :id => @dog_request.id, :incoming_message_id => incoming_messages(:useless_incoming_message), :last_info_request_event_id => @dog_request.last_event_id_needing_description, :submitted_describe_state => 1
- response.should redirect_to(:controller => 'help', :action => 'contact')
+ it "should go to the page asking for more information when classified as requires_admin" do
+ post :describe_state, :incoming_message => { :described_state => "requires_admin" }, :id => @dog_request.id, :incoming_message_id => incoming_messages(:useless_incoming_message), :last_info_request_event_id => @dog_request.last_event_id_needing_description
+ response.should redirect_to describe_state_message_url(:url_title => @dog_request.url_title, :described_state => "requires_admin")
@dog_request.reload
- @dog_request.awaiting_description.should == false
- @dog_request.described_state.should == 'requires_admin'
- @dog_request.get_last_response_event.calculated_state.should == 'requires_admin'
+ @dog_request.described_state.should_not == 'requires_admin'
- deliveries = ActionMailer::Base.deliveries
- deliveries.size.should == 1
- mail = deliveries[0]
- mail.body.should =~ /as needing admin/
- mail.from_addrs.first.to_s.should == @request_owner.name_and_email
+ ActionMailer::Base.deliveries.should be_empty
end
+ context "message is included when classifying as requires_admin" do
+ it "should send an email including the message" do
+ post :describe_state,
+ :incoming_message => {
+ :described_state => "requires_admin",
+ :message => "Something weird happened" },
+ :id => @dog_request.id,
+ :last_info_request_event_id => @dog_request.last_event_id_needing_description
+
+ deliveries = ActionMailer::Base.deliveries
+ deliveries.size.should == 1
+ mail = deliveries[0]
+ mail.body.should =~ /as needing admin/
+ mail.body.should =~ /Something weird happened/
+ end
+ end
+
+
it 'should say it is showing advice as to what to do next' do
post_status('rejected')
flash[:notice].should match(/Here is what to do now/)
@@ -1515,11 +1620,10 @@ describe RequestController, "when classifying an information request" do
@dog_request = info_requests(:fancy_dog_request)
@dog_request.stub!(:each).and_return([@dog_request])
InfoRequest.stub!(:find).and_return(@dog_request)
- @old_filters = ActionController::Routing::Routes.filters
- ActionController::Routing::Routes.filters = RoutingFilter::Chain.new
+ RoutingFilter.active = false
end
after do
- ActionController::Routing::Routes.filters = @old_filters
+ RoutingFilter.active = true
end
def request_url
@@ -1594,12 +1698,22 @@ describe RequestController, "when classifying an information request" do
expect_redirect('internal_review', request_url)
end
- it 'should redirect to the "help general url" when status is updated to "requires admin"' do
- expect_redirect('requires_admin', "help/contact")
+ it 'should redirect to the "request url" when status is updated to "requires admin"' do
+ post :describe_state, :incoming_message => {
+ :described_state => 'requires_admin',
+ :message => "A message" },
+ :id => @dog_request.id,
+ :last_info_request_event_id => @dog_request.last_event_id_needing_description
+ response.should redirect_to show_request_url(:url_title => @dog_request.url_title)
end
- it 'should redirect to the "help general url" when status is updated to "error message"' do
- expect_redirect('error_message', "help/contact")
+ it 'should redirect to the "request url" when status is updated to "error message"' do
+ post :describe_state, :incoming_message => {
+ :described_state => 'error_message',
+ :message => "A message" },
+ :id => @dog_request.id,
+ :last_info_request_event_id => @dog_request.last_event_id_needing_description
+ response.should redirect_to show_request_url(:url_title => @dog_request.url_title)
end
it 'should redirect to the "respond to last url url" when status is updated to "user_withdrawn"' do
@@ -1613,7 +1727,7 @@ describe RequestController, "when classifying an information request" do
end
describe RequestController, "when sending a followup message" do
- integrate_views
+ render_views
before(:each) do
load_raw_emails_data
@@ -1666,7 +1780,7 @@ describe RequestController, "when sending a followup message" do
deliveries.size.should == 1
mail = deliveries[0]
mail.body.should =~ /What a useless response! You suck./
- mail.to_addrs.first.to_s.should == "FOI Person <foiperson@localhost>"
+ mail.to_addrs.first.to_s.should == "foiperson@localhost"
response.should redirect_to(:action => 'show', :url_title => info_requests(:fancy_dog_request).url_title)
@@ -1695,7 +1809,7 @@ end
# it can't check the URLs in the emails I don't think, ugh.
describe RequestController, "sending overdue request alerts" do
- integrate_views
+ render_views
before(:each) do
load_raw_emails_data
@@ -1713,9 +1827,9 @@ describe RequestController, "sending overdue request alerts" do
mail = chicken_mails[0]
mail.body.should =~ /promptly, as normally/
- mail.to_addrs.first.to_s.should == info_requests(:naughty_chicken_request).user.name_and_email
+ mail.to_addrs.first.to_s.should == info_requests(:naughty_chicken_request).user.email
- mail.body =~ /(http:\/\/.*\/c\/(.*))/
+ mail.body.to_s =~ /(http:\/\/.*\/c\/(.*))/
mail_url = $1
mail_token = $2
@@ -1742,7 +1856,7 @@ describe RequestController, "sending overdue request alerts" do
mail = chicken_mails[0]
mail.body.should =~ /promptly, as normally/
- mail.to_addrs.first.to_s.should == info_requests(:naughty_chicken_request).user.name_and_email
+ mail.to_addrs.first.to_s.should == info_requests(:naughty_chicken_request).user.email
end
it "should send not actually send the overdue alert if the user is banned but should
@@ -1770,9 +1884,9 @@ describe RequestController, "sending overdue request alerts" do
mail = chicken_mails[0]
mail.body.should =~ /required by law/
- mail.to_addrs.first.to_s.should == info_requests(:naughty_chicken_request).user.name_and_email
+ mail.to_addrs.first.to_s.should == info_requests(:naughty_chicken_request).user.email
- mail.body =~ /(http:\/\/.*\/c\/(.*))/
+ mail.body.to_s =~ /(http:\/\/.*\/c\/(.*))/
mail_url = $1
mail_token = $2
@@ -1840,7 +1954,7 @@ describe RequestController, "sending overdue request alerts" do
end
describe RequestController, "sending unclassified new response reminder alerts" do
- integrate_views
+ render_views
before(:each) do
load_raw_emails_data
@@ -1853,8 +1967,8 @@ describe RequestController, "sending unclassified new response reminder alerts"
deliveries.size.should == 3 # sufficiently late it sends reminders too
mail = deliveries[0]
mail.body.should =~ /To let everyone know/
- mail.to_addrs.first.to_s.should == info_requests(:fancy_dog_request).user.name_and_email
- mail.body =~ /(http:\/\/.*\/c\/(.*))/
+ mail.to_addrs.first.to_s.should == info_requests(:fancy_dog_request).user.email
+ mail.body.to_s =~ /(http:\/\/.*\/c\/(.*))/
mail_url = $1
mail_token = $2
@@ -1870,7 +1984,7 @@ describe RequestController, "sending unclassified new response reminder alerts"
end
describe RequestController, "clarification required alerts" do
- integrate_views
+ render_views
before(:each) do
load_raw_emails_data
end
@@ -1889,8 +2003,8 @@ describe RequestController, "clarification required alerts" do
deliveries.size.should == 1
mail = deliveries[0]
mail.body.should =~ /asked you to explain/
- mail.to_addrs.first.to_s.should == info_requests(:fancy_dog_request).user.name_and_email
- mail.body =~ /(http:\/\/.*\/c\/(.*))/
+ mail.to_addrs.first.to_s.should == info_requests(:fancy_dog_request).user.email
+ mail.body.to_s =~ /(http:\/\/.*\/c\/(.*))/
mail_url = $1
mail_token = $2
@@ -1923,7 +2037,7 @@ describe RequestController, "clarification required alerts" do
end
describe RequestController, "comment alerts" do
- integrate_views
+ render_views
before(:each) do
load_raw_emails_data
end
@@ -1942,8 +2056,8 @@ describe RequestController, "comment alerts" do
deliveries = ActionMailer::Base.deliveries
mail = deliveries[0]
mail.body.should =~ /has annotated your/
- mail.to_addrs.first.to_s.should == info_requests(:fancy_dog_request).user.name_and_email
- mail.body =~ /(http:\/\/.*)/
+ mail.to_addrs.first.to_s.should == info_requests(:fancy_dog_request).user.email
+ mail.body.to_s =~ /(http:\/\/.*)/
mail_url = $1
mail_url.should match("/request/why_do_you_have_such_a_fancy_dog#comment-#{new_comment.id}")
@@ -1992,8 +2106,8 @@ describe RequestController, "comment alerts" do
deliveries.size.should == 1
mail = deliveries[0]
mail.body.should =~ /There are 2 new annotations/
- mail.to_addrs.first.to_s.should == info_requests(:fancy_dog_request).user.name_and_email
- mail.body =~ /(http:\/\/.*)/
+ mail.to_addrs.first.to_s.should == info_requests(:fancy_dog_request).user.email
+ mail.body.to_s =~ /(http:\/\/.*)/
mail_url = $1
mail_url.should match("/request/why_do_you_have_such_a_fancy_dog#comment-#{comments(:silly_comment).id}")
@@ -2002,7 +2116,7 @@ describe RequestController, "comment alerts" do
end
describe RequestController, "when viewing comments" do
- integrate_views
+ render_views
before(:each) do
load_raw_emails_data
end
@@ -2010,22 +2124,26 @@ describe RequestController, "when viewing comments" do
it "should link to the user who submitted it" do
session[:user_id] = users(:bob_smith_user).id
get :show, :url_title => 'why_do_you_have_such_a_fancy_dog'
- response.body.should have_tag("div#comment-1 h2", /Silly.*left an annotation/m)
- response.body.should_not have_tag("div#comment-1 h2", /You.*left an annotation/m)
+ response.body.should have_selector("div#comment-1 h2") do |s|
+ s.should contain /Silly.*left an annotation/m
+ s.should_not contain /You.*left an annotation/m
+ end
end
it "should link to the user who submitted to it, even if it is you" do
session[:user_id] = users(:silly_name_user).id
get :show, :url_title => 'why_do_you_have_such_a_fancy_dog'
- response.body.should have_tag("div#comment-1 h2", /Silly.*left an annotation/m)
- response.body.should_not have_tag("div#comment-1 h2", /You.*left an annotation/m)
+ response.body.should have_selector("div#comment-1 h2") do |s|
+ s.should contain /Silly.*left an annotation/m
+ s.should_not contain /You.*left an annotation/m
+ end
end
end
describe RequestController, "authority uploads a response from the web interface" do
- integrate_views
+ render_views
before(:each) do
# domain after the @ is used for authentication of FOI officers, so to test it
@@ -2063,7 +2181,7 @@ describe RequestController, "authority uploads a response from the web interface
session[:user_id] = @normal_user.id
# post up a photo of the parrot
- parrot_upload = fixture_file_upload('files/parrot.png','image/png')
+ parrot_upload = fixture_file_upload('/files/parrot.png','image/png')
post :upload_response, :url_title => 'why_do_you_have_such_a_fancy_dog',
:body => "Find attached a picture of a parrot",
:file_1 => parrot_upload,
@@ -2091,7 +2209,7 @@ describe RequestController, "authority uploads a response from the web interface
session[:user_id] = @foi_officer_user.id
# post up a photo of the parrot
- parrot_upload = fixture_file_upload('files/parrot.png','image/png')
+ parrot_upload = fixture_file_upload('/files/parrot.png','image/png')
post :upload_response, :url_title => 'why_do_you_have_such_a_fancy_dog',
:body => "Find attached a picture of a parrot",
:file_1 => parrot_upload,
@@ -2115,7 +2233,6 @@ describe RequestController, "authority uploads a response from the web interface
end
describe RequestController, "when showing JSON version for API" do
-
before(:each) do
load_raw_emails_data
end
@@ -2134,25 +2251,28 @@ describe RequestController, "when showing JSON version for API" do
end
describe RequestController, "when doing type ahead searches" do
+ render_views
- integrate_views
+ before :each do
+ get_fixtures_xapian_index
+ end
it "should return nothing for the empty query string" do
get :search_typeahead, :q => ""
- response.should render_template('request/_search_ahead.rhtml')
+ response.should render_template('request/_search_ahead')
assigns[:xapian_requests].should be_nil
end
it "should return a request matching the given keyword, but not users with a matching description" do
get :search_typeahead, :q => "chicken"
- response.should render_template('request/_search_ahead.rhtml')
+ response.should render_template('request/_search_ahead')
assigns[:xapian_requests].results.size.should == 1
assigns[:xapian_requests].results[0][:model].title.should == info_requests(:naughty_chicken_request).title
end
it "should return all requests matching any of the given keywords" do
get :search_typeahead, :q => "money dog"
- response.should render_template('request/_search_ahead.rhtml')
+ response.should render_template('request/_search_ahead')
assigns[:xapian_requests].results.map{|x|x[:model].info_request}.should =~ [
info_requests(:fancy_dog_request),
info_requests(:naughty_chicken_request),
@@ -2162,13 +2282,13 @@ describe RequestController, "when doing type ahead searches" do
it "should not return matches for short words" do
get :search_typeahead, :q => "a"
- response.should render_template('request/_search_ahead.rhtml')
+ response.should render_template('request/_search_ahead')
assigns[:xapian_requests].should be_nil
end
it "should do partial matches for longer words" do
get :search_typeahead, :q => "chick"
- response.should render_template('request/_search_ahead.rhtml')
+ response.should render_template('request/_search_ahead')
assigns[:xapian_requests].results.size.should ==1
end
@@ -2193,7 +2313,11 @@ describe RequestController, "when doing type ahead searches" do
end
describe RequestController, "when showing similar requests" do
- integrate_views
+ render_views
+
+ before do
+ get_fixtures_xapian_index
+ end
it "should work" do
get :similar, :url_title => info_requests(:badger_request).url_title
@@ -2225,93 +2349,7 @@ describe RequestController, "when showing similar requests" do
end
-
-describe RequestController, "when reporting a request when not logged in" do
- it "should only allow logged-in users to report requests" do
- get :report_request, :url_title => info_requests(:badger_request).url_title
- post_redirect = PostRedirect.get_last_post_redirect
- response.should redirect_to(:controller => 'user', :action => 'signin', :token => post_redirect.token)
- end
-end
-
-describe RequestController, "when reporting a request (logged in)" do
- integrate_views
-
- before do
- @user = users(:robin_user)
- session[:user_id] = @user.id
- end
-
- it "should 404 for non-existent requests" do
- lambda {
- post :report_request, :url_title => "hjksfdhjk_louytu_qqxxx"
- }.should raise_error(ActiveRecord::RecordNotFound)
- end
-
- it "should mark a request as having been reported" do
- ir = info_requests(:badger_request)
- title = ir.url_title
- get :show, :url_title => title
- assigns[:info_request].attention_requested.should == false
-
- post :report_request, :url_title => title
- response.should redirect_to(:action => :show, :url_title => title)
-
- get :show, :url_title => title
- response.should be_success
- assigns[:info_request].attention_requested.should == true
- assigns[:info_request].described_state.should == "attention_requested"
- end
-
- it "should not allow a request to be reported twice" do
- title = info_requests(:badger_request).url_title
-
- post :report_request, :url_title => title
- response.should redirect_to(:action => :show, :url_title => title)
- get :show, :url_title => title
- response.should be_success
- response.body.should include("has been reported")
-
- post :report_request, :url_title => title
- response.should redirect_to(:action => :show, :url_title => title)
- get :show, :url_title => title
- response.should be_success
- response.body.should include("has already been reported")
- end
-
- it "should let users know a request has been reported" do
- title = info_requests(:badger_request).url_title
- get :show, :url_title => title
- response.body.should include("Offensive?")
-
- post :report_request, :url_title => title
- response.should redirect_to(:action => :show, :url_title => title)
-
- get :show, :url_title => title
- response.body.should_not include("Offensive?")
- response.body.should include("This request has been reported")
-
- info_requests(:badger_request).set_described_state("successful")
- get :show, :url_title => title
- response.body.should_not include("This request has been reported")
- response.body.should =~ (/the site administrators.*have not hidden it/)
- end
-
- it "should send an email from the reporter to admins" do
- ir = info_requests(:badger_request)
- title = ir.url_title
- post :report_request, :url_title => title
- deliveries = ActionMailer::Base.deliveries
- deliveries.size.should == 1
- mail = deliveries[0]
- mail.subject.should =~ /attention_requested/
- mail.from.should include(@user.email)
- mail.body.should include(@user.name)
- end
-end
-
describe RequestController, "when caching fragments" do
-
it "should not fail with long filenames" do
long_name = "blahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblah.txt"
info_request = mock(InfoRequest, :user_can_view? => true,
@@ -2325,9 +2363,9 @@ describe RequestController, "when caching fragments" do
attachment = mock(FoiAttachment, :display_filename => long_name,
:body_as_html => ['some text', 'wrapper'])
IncomingMessage.stub!(:find).with("44").and_return(incoming_message)
- IncomingMessage.stub!(:get_attachment_by_url_part_number).and_return(attachment)
+ IncomingMessage.stub!(:get_attachment_by_url_part_number_and_filename).and_return(attachment)
InfoRequest.stub!(:find).with("132").and_return(info_request)
- params = { :file_name => [long_name],
+ params = { :file_name => long_name,
:controller => "request",
:action => "get_attachment_as_html",
:id => "132",
@@ -2338,4 +2376,3 @@ describe RequestController, "when caching fragments" do
end
-
diff --git a/spec/controllers/services_controller_spec.rb b/spec/controllers/services_controller_spec.rb
index a9950d520..399f48acb 100644
--- a/spec/controllers/services_controller_spec.rb
+++ b/spec/controllers/services_controller_spec.rb
@@ -4,7 +4,7 @@ require 'fakeweb'
describe ServicesController, "when returning a message for people in other countries" do
- integrate_views
+ render_views
# store and restore the locale in the context of the test suite to isolate
# changes made in these tests
@@ -54,27 +54,27 @@ describe ServicesController, "when returning a message for people in other count
it "should return the 'another country' message if the service responds OK" do
config = MySociety::Config.load_default()
config['ISO_COUNTRY_CODE'] = "DE"
- Configuration.stub!(:gaze_url).and_return('http://denmark.com')
+ AlaveteliConfiguration.stub!(:gaze_url).and_return('http://denmark.com')
FakeWeb.register_uri(:get, %r|denmark.com|, :body => "DK")
get :other_country_message
response.should be_success
response.body.should == 'Hello! We have an <a href="/help/alaveteli?country_name=Deutschland">important message</a> for visitors outside Deutschland <span class="close-button">X</span>'
end
it "should default to no message if the country_from_ip domain doesn't exist" do
- Configuration.stub!(:gaze_url).and_return('http://12123sdf14qsd.com')
+ AlaveteliConfiguration.stub!(:gaze_url).and_return('http://12123sdf14qsd.com')
get :other_country_message
response.should be_success
response.body.should == ''
end
it "should default to no message if the country_from_ip service doesn't exist" do
- Configuration.stub!(:gaze_url).and_return('http://www.google.com')
+ AlaveteliConfiguration.stub!(:gaze_url).and_return('http://www.google.com')
get :other_country_message
response.should be_success
response.body.should == ''
end
it "should default to no message if the country_from_ip service returns an error" do
FakeWeb.register_uri(:get, %r|500.com|, :body => "Error", :status => ["500", "Error"])
- Configuration.stub!(:gaze_url).and_return('http://500.com')
+ AlaveteliConfiguration.stub!(:gaze_url).and_return('http://500.com')
get :other_country_message
response.should be_success
response.body.should == ''
diff --git a/spec/controllers/track_controller_spec.rb b/spec/controllers/track_controller_spec.rb
index 5505afe59..5a766b1e1 100644
--- a/spec/controllers/track_controller_spec.rb
+++ b/spec/controllers/track_controller_spec.rb
@@ -49,14 +49,14 @@ describe TrackController, "when making a new track on a request" do
it "should save a search track and redirect to the right place" do
session[:user_id] = @user.id
@track_thing.should_receive(:save!)
- get :track_search_query, :query_array => ["bob variety:sent"], :feed => 'track'
+ get :track_search_query, :query_array => "bob variety:sent", :feed => 'track'
response.should redirect_to(:controller => 'general', :action => 'search', :combined => ["bob", "requests"])
end
end
describe TrackController, "when sending alerts for a track" do
- integrate_views
+ render_views
before(:each) do
load_raw_emails_data
@@ -65,8 +65,7 @@ describe TrackController, "when sending alerts for a track" do
it "should send alerts" do
# Don't do clever locale-insertion-unto-URL stuff
- old_filters = ActionController::Routing::Routes.filters
- ActionController::Routing::Routes.filters = RoutingFilter::Chain.new
+ RoutingFilter.active = false
# set the time the comment event happened at to within the last week
ire = info_request_events(:silly_comment_event)
@@ -80,7 +79,7 @@ describe TrackController, "when sending alerts for a track" do
mail = deliveries[0]
mail.body.should =~ /Alter your subscription/
mail.to_addrs.first.to_s.should include(users(:silly_name_user).email)
- mail.body =~ /(http:\/\/.*\/c\/(.*))/
+ mail.body.to_s =~ /(http:\/\/.*\/c\/(.*))/
mail_url = $1
mail_token = $2
@@ -114,7 +113,7 @@ describe TrackController, "when sending alerts for a track" do
deliveries.size.should == 0
# Restore the routing filters
- ActionController::Routing::Routes.filters = old_filters
+ RoutingFilter.active = true
end
it "should send localised alerts" do
@@ -133,7 +132,7 @@ describe TrackController, "when sending alerts for a track" do
end
describe TrackController, "when viewing RSS feed for a track" do
- integrate_views
+ render_views
before(:each) do
load_raw_emails_data
@@ -145,6 +144,7 @@ describe TrackController, "when viewing RSS feed for a track" do
get :track_request, :feed => 'feed', :url_title => track_thing.info_request.url_title
response.should render_template('track/atom_feed')
+ response.content_type.should == 'application/atom+xml'
# XXX should check it is an atom.builder type being rendered, not sure how to
assigns[:xapian_object].matches_estimated.should == 3
@@ -163,7 +163,7 @@ end
describe TrackController, "when viewing JSON version of a track feed" do
- integrate_views
+ render_views
before(:each) do
load_raw_emails_data
@@ -205,7 +205,7 @@ end
describe TrackController, "when tracking a public body" do
- integrate_views
+ render_views
before(:each) do
load_raw_emails_data
diff --git a/spec/controllers/user_controller_spec.rb b/spec/controllers/user_controller_spec.rb
index 23006803b..1d8e3dcc3 100644
--- a/spec/controllers/user_controller_spec.rb
+++ b/spec/controllers/user_controller_spec.rb
@@ -5,7 +5,7 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
# http://rspec.rubyforge.org/rspec-rails/1.1.12/classes/Spec/Rails/Example/ControllerExampleGroup.html
describe UserController, "when showing a user" do
- integrate_views
+ render_views
before(:each) do
load_raw_emails_data
get_fixtures_xapian_index
@@ -64,7 +64,7 @@ describe UserController, "when showing a user" do
end
describe UserController, "when signing in" do
- integrate_views
+ render_views
def get_last_postredirect
post_redirects = PostRedirect.find_by_sql("select * from post_redirects order by id desc limit 1")
@@ -74,7 +74,7 @@ describe UserController, "when signing in" do
it "should show sign in / sign up page" do
get :signin
- response.should have_tag("input#signin_token")
+ response.should have_selector("input#signin_token")
end
it "should create post redirect to / when you just go to /signin" do
@@ -100,8 +100,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
- old_filters = ActionController::Routing::Routes.filters
- ActionController::Routing::Routes.filters = RoutingFilter::Chain.new
+ RoutingFilter.active = false
get :signin, :r => "/list"
response.should render_template('sign')
@@ -112,14 +111,13 @@ describe UserController, "when signing in" do
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
+ ActionMailer::Base.deliveries.should be_empty
- ActionController::Routing::Routes.filters = old_filters
+ RoutingFilter.active = true
end
it "should not log you in if you use an invalid PostRedirect token, and shouldn't give 500 error either" do
- old_filters = ActionController::Routing::Routes.filters
- ActionController::Routing::Routes.filters = RoutingFilter::Chain.new
+ RoutingFilter.active = false
post_redirect = "something invalid"
lambda {
@@ -132,7 +130,7 @@ describe UserController, "when signing in" do
response.should render_template('sign')
assigns[:post_redirect].should == nil
- ActionController::Routing::Routes.filters = old_filters
+ RoutingFilter.active = true
end
# No idea how to test this in the test framework :(
@@ -152,12 +150,11 @@ describe UserController, "when signing in" do
:token => post_redirect.token
}
response.should render_template('confirm')
- response.should send_email
+ ActionMailer::Base.deliveries.should_not be_empty
end
it "should confirm your email, log you in and redirect you to where you were after you click an email link" do
- old_filters = ActionController::Routing::Routes.filters
- ActionController::Routing::Routes.filters = RoutingFilter::Chain.new
+ RoutingFilter.active = false
get :signin, :r => "/list"
post_redirect = get_last_postredirect
@@ -165,19 +162,19 @@ describe UserController, "when signing in" do
post :signin, { :user_signin => { :email => 'unconfirmed@localhost', :password => 'jonespassword' },
:token => post_redirect.token
}
- response.should send_email
+ ActionMailer::Base.deliveries.should_not be_empty
deliveries = ActionMailer::Base.deliveries
deliveries.size.should == 1
mail = deliveries[0]
- mail.body =~ /(http:\/\/.*(\/c\/(.*)))/
+ mail.body.to_s =~ /(http:\/\/.*(\/c\/(.*)))/
mail_url = $1
mail_path = $2
mail_token = $3
# check is right confirmation URL
mail_token.should == post_redirect.email_token
- params_from(:get, mail_path).should == { :controller => 'user', :action => 'confirm', :email_token => mail_token }
+ Rails.application.routes.recognize_path(mail_path).should == { :controller => 'user', :action => 'confirm', :email_token => mail_token }
# check confirmation URL works
session[:user_id].should be_nil
@@ -185,12 +182,11 @@ describe UserController, "when signing in" do
session[:user_id].should == users(:unconfirmed_user).id
response.should redirect_to(:controller => 'request', :action => 'list', :post_redirect => 1)
- ActionController::Routing::Routes.filters = old_filters
+ RoutingFilter.active = true
end
it "should keep you logged in if you click a confirmation link and are already logged in as an admin" do
- old_filters = ActionController::Routing::Routes.filters
- ActionController::Routing::Routes.filters = RoutingFilter::Chain.new
+ RoutingFilter.active = false
get :signin, :r => "/list"
post_redirect = get_last_postredirect
@@ -198,19 +194,19 @@ describe UserController, "when signing in" do
post :signin, { :user_signin => { :email => 'unconfirmed@localhost', :password => 'jonespassword' },
:token => post_redirect.token
}
- response.should send_email
+ ActionMailer::Base.deliveries.should_not be_empty
deliveries = ActionMailer::Base.deliveries
deliveries.size.should == 1
mail = deliveries[0]
- mail.body =~ /(http:\/\/.*(\/c\/(.*)))/
+ mail.body.to_s =~ /(http:\/\/.*(\/c\/(.*)))/
mail_url = $1
mail_path = $2
mail_token = $3
# check is right confirmation URL
mail_token.should == post_redirect.email_token
- params_from(:get, mail_path).should == { :controller => 'user', :action => 'confirm', :email_token => mail_token }
+ Rails.application.routes.recognize_path(mail_path).should == { :controller => 'user', :action => 'confirm', :email_token => mail_token }
# Log in as an admin
session[:user_id] = users(:admin_user).id
@@ -222,19 +218,19 @@ describe UserController, "when signing in" do
# And the redirect should still work, of course
response.should redirect_to(:controller => 'request', :action => 'list', :post_redirect => 1)
- ActionController::Routing::Routes.filters = old_filters
+ RoutingFilter.active = true
end
end
describe UserController, "when signing up" do
- integrate_views
+ render_views
it "should be an error if you type the password differently each time" do
post :signup, { :user_signup => { :email => 'new@localhost', :name => 'New Person',
:password => 'sillypassword', :password_confirmation => 'sillypasswordtwo' }
}
- assigns[:user_signup].errors[:password].should == 'Please enter the same password twice'
+ assigns[:user_signup].errors[:password].should == ['Please enter the same password twice']
end
it "should be an error to sign up with a misformatted email" do
@@ -285,7 +281,7 @@ describe UserController, "when signing up" do
end
describe UserController, "when signing out" do
- integrate_views
+ render_views
it "should log you out and redirect to the home page" do
session[:user_id] = users(:bob_smith_user).id
@@ -295,21 +291,20 @@ describe UserController, "when signing out" do
end
it "should log you out and redirect you to where you were" do
- old_filters = ActionController::Routing::Routes.filters
- ActionController::Routing::Routes.filters = RoutingFilter::Chain.new
+ RoutingFilter.active = false
session[:user_id] = users(:bob_smith_user).id
get :signout, :r => '/list'
session[:user_id].should be_nil
response.should redirect_to(:controller => 'request', :action => 'list')
- ActionController::Routing::Routes.filters = old_filters
+ RoutingFilter.active = true
end
end
describe UserController, "when sending another user a message" do
- integrate_views
+ render_views
it "should redirect to signin page if you go to the contact form and aren't signed in" do
get :contact, :id => users(:silly_name_user)
@@ -337,16 +332,16 @@ describe UserController, "when sending another user a message" do
deliveries = ActionMailer::Base.deliveries
deliveries.size.should == 1
mail = deliveries[0]
- mail.body.should include("Bob Smith has used #{Configuration::site_name} to send you the message below")
+ mail.body.should include("Bob Smith has used #{AlaveteliConfiguration::site_name} to send you the message below")
mail.body.should include("Just a test!")
#mail.to_addrs.first.to_s.should == users(:silly_name_user).name_and_email # XXX fix some nastiness with quoting name_and_email
- mail.from_addrs.first.to_s.should == users(:bob_smith_user).name_and_email
+ mail.from_addrs.first.to_s.should == users(:bob_smith_user).email
end
end
describe UserController, "when changing password" do
- integrate_views
+ render_views
it "should show the email form when not logged in" do
get :signchangepassword
@@ -386,7 +381,7 @@ describe UserController, "when changing password" do
post :signchangepassword, { :user => { :password => 'ooo', :password_confirmation => 'ooo' },
:submitted_signchangepassword_do => 1
}
- users(:bob_smith_user).hashed_password.should != old_hash
+ users(:bob_smith_user).reload.hashed_password.should_not == old_hash
response.should redirect_to(:controller => 'user', :action => 'show', :url_name => users(:bob_smith_user).url_name)
end
@@ -416,7 +411,7 @@ describe UserController, "when changing password" do
end
describe UserController, "when changing email address" do
- integrate_views
+ render_views
it "should require login" do
get :signchangeemail
@@ -500,10 +495,10 @@ describe UserController, "when changing email address" do
deliveries = ActionMailer::Base.deliveries
deliveries.size.should == 1
mail = deliveries[0]
- mail.body.should include("confirm that you want to change")
+ mail.body.should include("confirm that you want to \nchange")
mail.to.should == [ 'newbob@localhost' ]
- mail.body =~ /(http:\/\/.*(\/c\/(.*)))/
+ mail.body.to_s =~ /(http:\/\/.*(\/c\/(.*)))/
mail_url = $1
mail_path = $2
mail_token = $3
@@ -561,16 +556,13 @@ describe UserController, "when changing email address" do
end
describe UserController, "when using profile photos" do
- integrate_views
+ render_views
before do
@user = users(:bob_smith_user)
- @uploadedfile = File.open(file_fixture_name("parrot.png"))
- @uploadedfile.stub!(:original_filename).and_return('parrot.png')
-
- @uploadedfile_2 = File.open(file_fixture_name("parrot.jpg"))
- @uploadedfile_2.stub!(:original_filename).and_return('parrot.jpg')
+ @uploadedfile = fixture_file_upload("/files/parrot.png")
+ @uploadedfile_2 = fixture_file_upload("/files/parrot.jpg")
end
it "should not let you change profile photo if you're not logged in as the user" do
@@ -631,9 +623,10 @@ describe UserController, "when showing JSON version for API" do
end
describe UserController, "when viewing the wall" do
- integrate_views
+ render_views
before(:each) do
+ load_raw_emails_data
get_fixtures_xapian_index
end
diff --git a/spec/fixtures/files/blog_feed.atom b/spec/fixtures/files/blog_feed.atom
new file mode 100644
index 000000000..f49693938
--- /dev/null
+++ b/spec/fixtures/files/blog_feed.atom
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<rss version="2.0"
+ xmlns:content="http://purl.org/rss/1.0/modules/content/"
+ xmlns:wfw="http://wellformedweb.org/CommentAPI/"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:atom="http://www.w3.org/2005/Atom"
+ xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
+ xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
+ >
+
+<channel>
+ <title>A Blog Feed</title>
+ <atom:link href="http://example.com/feed/" rel="self" type="application/rss+xml" />
+ <link>http://www.example.com</link>
+ <description>Stuff</description>
+ <lastBuildDate>Tue, 30 Apr 2013 14:34:15 +0000</lastBuildDate>
+ <language>en</language>
+ <sy:updatePeriod>hourly</sy:updatePeriod>
+ <sy:updateFrequency>1</sy:updateFrequency>
+ <generator>http://wordpress.org/?v=3.3.2</generator>
+ <item>
+ <title>Example Post</title>
+ <link>http://www.example.com/example-post</link>
+ <comments>http://www.example.com/example-post#comments</comments>
+ <pubDate>Mon, 01 Apr 2013 19:26:08 +0000</pubDate>
+ <dc:creator>Example Blogger</dc:creator>
+ <category><![CDATA[FOI]]></category>
+
+ <guid isPermaLink="false">http://www.example.com/?id=333</guid>
+ <description><![CDATA[An example post [...]]]></description>
+ <content:encoded><![CDATA[<h3>A blog post</h3>
+<p>Example post</p>
+]]></content:encoded>
+ <wfw:commentRss>http://www.example.com/feed/</wfw:commentRss>
+ <slash:comments>2</slash:comments>
+ </item>
+
+ </channel>
+</rss>
diff --git a/spec/fixtures/files/incoming-request-two-same-name.email b/spec/fixtures/files/incoming-request-two-same-name.email
index f1024d607..ecd322fe4 100644
--- a/spec/fixtures/files/incoming-request-two-same-name.email
+++ b/spec/fixtures/files/incoming-request-two-same-name.email
@@ -13,13 +13,13 @@ Content-Disposition: inline
--Q68bSM7Ycu6FN28Q
Content-Type: text/plain; charset=us-ascii
-Content-Disposition: attachment; filename="hello.txt"
+Content-Disposition: attachment; filename="hello-world.txt"
Second hello
--Q68bSM7Ycu6FN28Q
Content-Type: text/plain; charset=us-ascii
-Content-Disposition: attachment; filename="hello.txt"
+Content-Disposition: attachment; filename="hello-world.txt"
First hello
diff --git a/spec/fixtures/files/inline-uuencode.email b/spec/fixtures/files/inline-uuencode.email
new file mode 100644
index 000000000..3134ba3ad
--- /dev/null
+++ b/spec/fixtures/files/inline-uuencode.email
@@ -0,0 +1,27 @@
+From foo@bar Mon Jun 01 17:14:44 2009
+Return-path: <foo@bar>
+Envelope-to: foi@quux
+Delivery-date: Mon, 01 Jun 2009 17:14:44 +0100
+From: <foo@bar>
+To: <request-whatever@quux>
+Subject: something or other
+Date: Mon, 1 Jun 2009 17:14:37 +0100
+X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.181
+Message-ID: <baz@xyzzy>
+
+Thanks for your email - here's a truncated attachment
+for you:
+
+**********************************************************************
+
+begin 666 ResponseT7363 9.doc
+MT,\1X*&Q&N$`````````````````````/@`#`/[_"0`&```````````````"
+M````) ``````````$ ``+@````$```#^____`````",```!L````________
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+#````
+`
+end
+
+The original of this email was scanned for viruses or something
+like that.
diff --git a/spec/fixtures/files/malformed-to-and-cc.email b/spec/fixtures/files/malformed-to-and-cc.email
new file mode 100644
index 000000000..4fbb6e21e
--- /dev/null
+++ b/spec/fixtures/files/malformed-to-and-cc.email
@@ -0,0 +1,11 @@
+From foo@bar Wed Mar 12 14:58:26 2008
+Return-path: <foo@bar>
+Subject: example email
+To: <bar@example.org
+Cc: baz@example.org>
+From: quux@example.org
+Date: Mon, 7 May 2012 12:47:06 +0100
+Mime-Version: 1.0
+Content-Type: text/plain; charset=utf-8
+
+A very basic email, but with malformed To: and Cc: lines
diff --git a/spec/fixtures/files/mislabelled-as-iso-8859-1.email b/spec/fixtures/files/mislabelled-as-iso-8859-1.email
new file mode 100644
index 000000000..6c8e6109e
--- /dev/null
+++ b/spec/fixtures/files/mislabelled-as-iso-8859-1.email
@@ -0,0 +1,20 @@
+From foo@bar Thu Mar 01 15:02:33 2012
+Return-path: <foo@bar>
+Envelope-to: foi@quux
+Delivery-date: Thu, 01 Mar 2012 15:02:33 +0000
+Date: Thu, 01 Mar 2012 15:01:58 +0000
+Subject: some FOI request
+To: foi@quux
+From: foo@bar
+MIME-Version: 1.0
+Content-Type: text/plain; charset="iso-8859-1"
+Content-Transfer-Encoding: 7bit
+Message-Id: <2468@bar.local>
+
+Dear Whoever,
+
+THERE'S A DASH NEXT REQUEST FOR INFORMATION
+
+Best regards,
+Other Person
+
diff --git a/spec/fixtures/files/multipart-no-final-boundary.email b/spec/fixtures/files/multipart-no-final-boundary.email
new file mode 100644
index 000000000..9c16dad52
--- /dev/null
+++ b/spec/fixtures/files/multipart-no-final-boundary.email
@@ -0,0 +1,21 @@
+From foo@bar Thu Sep 13 10:34:44 2012
+Return-path: <foo@bar>
+Envelope-to: foi@example.org
+Delivery-date: Thu, 13 Sep 2012 10:34:44 +0100
+From: foo@bar
+To: foi@example.org
+Subject: an acknowledgement email
+Date: Thu, 13 Sep 2012 10:08:03 +0100
+Message-ID: <987654@foo.local>
+Content-Type: multipart/mixed; boundary="-----7D81B75CCC90D2974F7A1CBD"
+
+This is a multi-part message in MIME format.
+-------7D81B75CCC90D2974F7A1CBD
+Content-Type: text/html
+
+<div>
+ <p>
+ This is an acknowledgement of your email, that irritatingly
+ leaves out the final MIME boundary.
+ </p>
+<div>
diff --git a/spec/fixtures/files/nested-attachments-premature-end.email b/spec/fixtures/files/nested-attachments-premature-end.email
new file mode 100644
index 000000000..6b13808dc
--- /dev/null
+++ b/spec/fixtures/files/nested-attachments-premature-end.email
@@ -0,0 +1,110 @@
+From someone@example.org Mon May 15 13:10:29 2012
+Return-path: <someone@example.org>
+Envelope-to: foi@example.org
+Delivery-date: Mon, 15 May 2012 13:10:29 +0100
+Message-Id: <abcde@baz.local>
+Date: Mon, 15 May 2012 09:48:48 +0100
+From: "Example Person" <someone@example.org>
+To: <request@example.org>
+Subject: some FOI request or other
+Mime-Version: 1.0
+Content-Type: multipart/mixed; boundary="=__outer__="
+
+This is a MIME message. If you are reading this text, you may want to
+consider changing to a mail reader or gateway that understands how to
+properly handle MIME multipart messages.
+
+--=__outer__=
+Content-Type: multipart/alternative; boundary="=__inner__="
+
+--=__inner__=
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: quoted-printable
+X-MIME-Autoconverted: from 8bit to quoted-printable by something
+
+Hello
+=20
+Please find some information attached.
+=20
+
+--=__inner__=
+Content-Description: HTML
+Content-Type: text/html; charset="utf-8"
+Content-Transfer-Encoding: quoted-printable
+
+<html>
+ <head>
+ <title>some title text</title>
+ </head>
+ <body>
+ <p>blah blah blah</p>
+ </body>
+</html>
+
+--=__inner__=--
+
+--=__outer__=
+Content-Type: message/rfc822
+
+Return-path: <foo@bar>
+Date: Mon, 7 May 2012 12:47:06 +0100
+From: someone-else@example.org
+To: foi@example.org
+Message-Id: <56789@quux.local>
+Subject: a freedom of information requests
+Mime-Version: 1.0
+Content-Type: text/plain; charset=utf-8
+
+ Dear Whoever,
+
+ Please could you let me know, um, whatever ...
+
+ Yours faithfully,
+
+ Whoever I Am
+
+--=__outer__=
+Content-Type: text/plain; charset=US-ASCII
+Content-Disposition: inline
+Content-Transfer-Encoding: quoted-printable
+
+ Dear Whowever,
+ =20
+ Please could you let me know, um, whatever ...
+ =20
+ Yours faithfully,
+ =20
+ Whoever I Am
+ =20
+
+--=__outer__=--
+
+--=__outer__=
+Content-Type: application/png; name="maroon-square.png"
+Content-Transfer-Encoding: base64
+Content-Disposition: attachment; filename="maroon-square.png"
+
+iVBORw0KGgoAAAANSUhEUgAAAEEAAABCCAYAAAAIY7vrAAAABmJLR0QA/wD/AP+g
+vaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QQeDSEx8qultwAAABl0
+RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAMzSURBVHja7VtL2psw
+DNS4rPv1Gj1Kt71Az9ZT9F7dN9MFGGThB/YfKDX2Kp8DRBpLowcKvn/5ShERiAgl
+srh8aT93tJzWdae8XR0CEICwUx59K54H4QFKp0Eg5alrAwEYIDx5DRAGCAOEAcIA
+QaUFfDoIHJawpEbOPd0dRPjJDWIUiEwt933+8es2Ovz++a3dCkREXmwD4ZbsVln6
+cLkef14duAMqAGCkY0A+jBNgXGFZU/eKa3fhZjlQqLhHKF9oFbpulE2Z/oFrXTd+
+nlOWkn1dMHXrAiWguq0iG9uk/REjBggPtgQOED781my4wwBhgDBAmPmUAwR0X0UO
+dxggnA8CO5xocU8HoAoEDwA6nOyCH+ZMKQ4zy+QbNBoUirquMPBJcgPyJkOi+c7S
+ohhn6ZctzDIrcFalIspYILG1et9WABUtt6WztLq+/0Amp9sCnsCBUhfvK4FLiRCA
+QwC7JABGTngrIIPnIjf6R5We0uxz3j+FbCvdy2nlY/IgcfrMRQuFHIC9Sap3AW8n
+2gZ+cZYCVn4LzBxxnykNgJpWN8lt7yw+QCMxan2s8lQXcNlDlpAW7YmIXMszTgoH
+rU91+8OFYXN9ikz/LyLgExSCDlaO+cdGsIEQkyUAIgFMKRTEn3vDjFFHwWSIzEQC
+cmN4IHVNGG2PQXhhsuRl3jihwQyB6H1274gV1BhKLKNt4ZEpkygeeoC+xytdK1cr
+oX0EACphnTZXbbLMmL/YBGo9lSU1OmBONMnTlQUqTa4y1VgAddg0hdTR04lyT0Xq
+8RYAyHVyBX6ET/9wTBD6TWVCMH5Qo3yhXju3bNY/BBMdsoLYBMmnzQdOP56O36s5
+40r1D7UWYV5dNT2nbxVBAHb43Y36CdbXfTii6isU/U7ZXLQ4w/V/wotFoilVF2kl
+w7YCDrIPkj4/G9fao7q0rYSSJdgeSqmQrCU+r/j8rOv/gpuKPm5Lffen5eN+ljeo
+rcfW0Om2Enm9KwDZAgrG98txX9cMe6X2E5SGU29VTE17lFAUkMybsXclndu31BGX
+hcgWv8oxonYtkf/jhc10WPGgm2IZncKlu+sg8vLm7hDSwk3f2/wFEzN3v6aAXQ0A
+AAAASUVORK5CYII=
+
+--=__outer__=--
+
diff --git a/spec/fixtures/files/no-part-charset-random-data.email b/spec/fixtures/files/no-part-charset-random-data.email
new file mode 100644
index 000000000..d51fd3f38
--- /dev/null
+++ b/spec/fixtures/files/no-part-charset-random-data.email
@@ -0,0 +1,30 @@
+From xxxx@yahoo.cn Mon Oct 08 14:01:34 2012
+Return-path: <xxxx@yahoo.cn>
+Envelope-to: foi@atlas.ukcod.org.uk
+Delivery-date: Mon, 08 Oct 2012 14:01:34 +0100
+Received: (qmail 63864 invoked from network); 8 Oct 2012 13:01:12 -0000
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.cn; s=s1024; t=1349701272; bh=T/mtlIYvhB/L5RO+CvTazeAdGf1n1zsGXBoA8EKGT9M=; h=Message-ID:X-Yahoo-Newman-Property:X-YMail-OSG:X-Yahoo-SMTP:Received:X-mailer:From:Subject:To:Content-Transfer-Encoding:Content-Type:Date; b=LYI/PXvA7DA746bmyprChUg7N8YDvN9XE/bhfTt5MW7siOmxHHzn1w+s5X33PvLI0x0UfJLo+MCkTnGPKnG5BYY38US8PkocJYyphrvF/eaUl3ALf8UvxHBOJX1iIi89Xp2NnfbS8lz9kZAWifb9GOnOA5/kLDcL5/WJXliit2k=
+Message-ID: <xxxx@xxxx.yahoo.com>
+X-Yahoo-Newman-Property: ymail-5
+X-YMail-OSG: nPs5jgsVM1myUoKjeEPTxxalz4BM6BZMEUYu.E8NPMPQyo_
+ Yej8T2WCTurn767NOwhuDIqNxC2QGZINqfjmKcdyW7a1P_Zxqr9GsjgxODci
+ ihwr7qYAGDDbcsrB.PX4epnJZHl3yAwoGW.1ReEZnXQANFcNep7.zNEbZ_2k
+ RU1IhI9aHYvxPxt5RWugwOoFRh9P8Ym35A88IMazNtVaBiBEXF6Vk8Aqr9XP
+ 3Vh9xOT9Pn6X8qOUjNXkdb3xB4S5AAIRSE9mqhL1KzHBwdVQs25IoM_2FV2b
+ gPsQGgL4_mwBH0WcEMhdj7Kn6Nfb44L.50E_V3DH.8P7KzDK8zNVXSbAqohX
+ Qi6MzUK2frr8IyZyYzHb.ekff7kAcJgUoHvhnyPar8tRYxhQT3_xsUTzsx8N
+ oWckVPh_i3OT7U4ObgekqgtteMoYqPH2eF1SZXamGBAs-
+X-Yahoo-SMTP: YUQHwRWswBDjbw_M.D6EP4KpT9khlJErDRBQi4ySZQ--
+X-mailer: MIME::Lite 3.027 (F2.74; T1.31; A2.07; B3.13; Q3.13)
+From: =?GB2312?B?zsJKaWFu?= Bing <xxxx@yahoo.cn>
+Subject: =?GB2312?B?yM7A1svJ?=
+To: FOI Person <EMAIL_TO>
+Content-Transfer-Encoding: base64
+Content-Type: text/plain
+Date: Tue, 9 Oct 2012 20:53:06 +0800
+
+HPBSqsndNBX+ER4hyBoPhhnclcWKVFgbevdD5cJvfI/ARbxRYqA28hZ49Pf6A/ks
+NdVh4N5VPgRs/7SHYPfw5625pZJYTLj6nVdYk76sxnjiiAmwCJWGjPoWvO7nHUBv
+fuLXtNVq5HmD0bWWjAbSk2n74PW7v5izbNO2fjHyiyX2CIof0rriXDmOldJqoebO
+ejybrjG+Tahpu3FF1Mw98HfswzkdB46u/izLCzdUQVM=
+
diff --git a/spec/fixtures/files/part-without-charset-in-content-type.email b/spec/fixtures/files/part-without-charset-in-content-type.email
new file mode 100644
index 000000000..439d52cc3
--- /dev/null
+++ b/spec/fixtures/files/part-without-charset-in-content-type.email
@@ -0,0 +1,38 @@
+From example@example.com Wed Sep 15 17:55:40 2010
+Return-path: <example@example.com>
+Envelope-to: example@example.com
+Delivery-date: Wed, 15 Sep 2010 17:55:40 +0100
+From: <example@example.com>
+To: <request-xxxxx@whatdotheyknow.com>
+Date: Wed, 15 Sep 2010 17:56:03 +0100
+Subject: FOI Internal Review response
+Thread-Topic: FOI Internal Review response
+Thread-Index: xxxxx
+Message-ID: <xxxxxx>
+Accept-Language: en-US, en-GB
+Content-Language: en-US
+X-MS-Has-Attach: yes
+X-MS-TNEF-Correlator:
+acceptlanguage: en-US, en-GB
+Content-Type: multipart/mixed;
+ boundary="_002_E6527350F565F54A88C36C23F6C2B86702618AD0DF95SDCCPMSXMB5_"
+MIME-Version: 1.0
+
+--_002_E6527350F565F54A88C36C23F6C2B86702618AD0DF95SDCCPMSXMB5_
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: base64
+
+someencodedtext=
+
+--_002_E6527350F565F54A88C36C23F6C2B86702618AD0DF95SDCCPMSXMB5_
+Content-Type: document/pdf; name="document.pdf"
+Content-Description: document.pdf
+Content-Disposition: attachment; filename="document.pdf";
+ size=62103; creation-date="Wed, 15 Sep 2010 17:54:27 GMT";
+ modification-date="Wed, 15 Sep 2010 17:54:27 GMT"
+Content-Transfer-Encoding: base64
+
+somemoreencodedtext=
+
+--_002_E6527350F565F54A88C36C23F6C2B86702618AD0DF95SDCCPMSXMB5_--
+
diff --git a/spec/fixtures/files/tnef-attachment-empty.email b/spec/fixtures/files/tnef-attachment-empty.email
new file mode 100644
index 000000000..7967aa95b
--- /dev/null
+++ b/spec/fixtures/files/tnef-attachment-empty.email
@@ -0,0 +1,196 @@
+From hello@blah.local Fri Feb 21 16:23:14 2013
+Return-path: <bar@example.org>
+Envelope-to: foo@example.org
+Delivery-date: Fri, 21 Feb 2013 16:23:14 +0000
+Content-Type: multipart/mixed;
+ boundary="_000_553468B23EE29B4F8836CBD0E1B2A15A275C3AA855POLNIEXMBV2po_"
+From: <bar@example.org>
+To: <foo@example.org>
+Sender: <hello@blah.local>
+Date: Fri, 21 Feb 2013 16:23:04 +0000
+Subject: here's a useless email
+Message-ID: <12345@blah.local>
+Accept-Language: en-US, en-GB
+Content-Language: en-US
+X-MS-Has-Attach:
+X-MS-TNEF-Correlator: <12345@blah.local>
+acceptlanguage: en-US, en-GB
+MIME-Version: 1.0
+
+--_000_553468B23EE29B4F8836CBD0E1B2A15A275C3AA855POLNIEXMBV2po_
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: quoted-printable
+
+This attachment just has a body from one of the tests
+in the tnef package in Debian.
+
+--_000_553468B23EE29B4F8836CBD0E1B2A15A275C3AA855POLNIEXMBV2po_
+Content-Disposition: attachment; filename="winmail.dat"
+Content-Transfer-Encoding: base64
+Content-Type: application/ms-tnef; name="winmail.dat"
+
+eJ8+IiURAQaQCAAEAAAAAAABAAEAAQeQBgAIAAAA5AQAAAAAAADoAAENgAQAAgAA
+AAIAAgABBYADAA4AAADVBwQAGQAKAA8AIwABADYBASCAAwAOAAAA1QcEABkACgAP
+ACQAAQA3AQEJgAEAIQAAADBEREEwRkNCQ0MwN0MxNDE5MkVFODZGQzQyRDE1Qjk1
+AGYHAQSQBgBkAgAAAQAAAA8AAAAfAAEwAQAAABAAAAAzAGsAdQBzAGUAcgAyAAAA
+HwACMAEAAAAGAAAARQBYAAAAAAAfAAMwAQAAAI4AAAAvAE8APQBCAFIALQBFAFgA
+QwBIAC0AVABFAFMAVAAvAE8AVQA9AEYASQBSAFMAVAAgAEEARABNAEkATgBJAFMA
+VABSAEEAVABJAFYARQAgAEcAUgBPAFUAUAAvAEMATgA9AFIARQBDAEkAUABJAEUA
+TgBUAFMALwBDAE4APQAzAGsAdQBzAGUAcgAyAAAAAAADAAAwAAAAAAMA/18AAAAA
+AwAVDAEAAAACAQswAQAAAEoAAABFWDovTz1CUi1FWENILVRFU1QvT1U9RklSU1Qg
+QURNSU5JU1RSQVRJVkUgR1JPVVAvQ049UkVDSVBJRU5UUy9DTj0zS1VTRVIyAAAA
+HwAgOgEAAAAQAAAAMwBrAHUAcwBlAHIAMgAAAAMA/V8BAAAACwBAOgAA+T8CAfdf
+AQAAAGMAAAAAAAAA3KdAyMBCEBq0uQgAKy/hggEAAAAAAAAAL289QlItRVhDSC1U
+RVNUL291PUZpcnN0IEFkbWluaXN0cmF0aXZlIEdyb3VwL2NuPVJlY2lwaWVudHMv
+Y249M2t1c2VyMgAAAwAAOQAAAAAfAP45AQAAAEoAAAAzAGsAdQBzAGUAcgAyAEAA
+YgByAGUAeABjAGgAYQBuAGcAZQAuAGQAbwBsAHAAaABpAG4AcwBlAGEAcgBjAGgA
+LgBjAG8AbQAAAAAAAwBxOgAAAAAfAPZfAQAAABAAAAAzAGsAdQBzAGUAcgAyAAAA
+m2sBA5AGAEwbAAAzAAAACwACAAEAAAAfABoAAQAAABIAAABJAFAATQAuAE4AbwB0
+AGUAAAAAAAMAJgAAAAAAAwA2AAAAAAAfADcAAQAAAB4AAABCAGkAbABsACAAbwBm
+ACAAUgBpAGcAaAB0AHMAAAAAAEAAOQBgQvtkuknFAR8APQABAAAAAgAAAAAAAAAC
+AUcAAQAAADgAAABjPXVzO2E9IDtwPUJSLUVYQ0gtVEVTVDtsPUJSLUVYQ0gtREVW
+MS0wNTA0MjUxNzE1MzZaLTE0AB8AcAABAAAAHgAAAEIAaQBsAGwAIABvAGYAIABS
+AGkAZwBoAHQAcwAAAAAAAgFxAAEAAAAWAAAAAcVJumT7yarjal9+TnmqsNvwaipi
+/QAAHwAaDAEAAAAQAAAAMwBrAHIAZQBsAGEAeQAAAB8AHQ4BAAAAHgAAAEIAaQBs
+AGwAIABvAGYAIABSAGkAZwBoAHQAcwAAAAAAAgETEAEAAADuFAAAPCFET0NUWVBF
+IEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwv
+L0VOIj4NCjxIVE1MPjxIRUFEPg0KPE1FVEEgaHR0cC1lcXVpdj1Db250ZW50LVR5
+cGUgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXVzLWFzY2lpIj4NCjxNRVRB
+IGNvbnRlbnQ9Ik1TSFRNTCA2LjAwLjM3OTAuMTgzMCIgbmFtZT1HRU5FUkFUT1I+
+PC9IRUFEPg0KPEJPRFk+DQo8RElWPg0KPERJVj48Rk9OVCBmYWNlPUFyaWFsIHNp
+emU9Mj5USEUgQklMTCBPRiBSSUdIVFM8QlI+QW1lbmRtZW50cyAxLTEwIG9mIHRo
+ZSANCkNvbnN0aXR1dGlvbjwvRk9OVD48L0RJVj4NCjxESVY+Jm5ic3A7PC9ESVY+
+DQo8RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPlRoZSBDb252ZW50aW9ucyBv
+ZiBhIG51bWJlciBvZiB0aGUgU3RhdGVzIGhhdmluZywgDQphdCB0aGUgdGltZSBv
+ZiBhZG9wdGluZyB0aGUgQ29uc3RpdHV0aW9uLCBleHByZXNzZWQgYSBkZXNpcmUs
+IGluIG9yZGVyIHRvIA0KcHJldmVudCBtaXNjb25zdHJ1Y3Rpb24gb3IgYWJ1c2Ug
+b2YgaXRzIHBvd2VycywgdGhhdCBmdXJ0aGVyIGRlY2xhcmF0b3J5IGFuZCANCnJl
+c3RyaWN0aXZlIGNsYXVzZXMgc2hvdWxkIGJlIGFkZGVkLCBhbmQgYXMgZXh0ZW5k
+aW5nIHRoZSBncm91bmQgb2YgcHVibGljIA0KY29uZmlkZW5jZSBpbiB0aGUgR292
+ZXJubWVudCB3aWxsIGJlc3QgaW5zdXJlIHRoZSBiZW5lZmljZW50IGVuZHMgb2Yg
+aXRzIA0KaW5zdGl0dXRpb247IDxCUj5SZXNvbHZlZCwgYnkgdGhlIFNlbmF0ZSBh
+bmQgSG91c2Ugb2YgUmVwcmVzZW50YXRpdmVzIG9mIHRoZSANClVuaXRlZCBTdGF0
+ZXMgb2YgQW1lcmljYSwgaW4gQ29uZ3Jlc3MgYXNzZW1ibGVkLCB0d28tdGhpcmRz
+IG9mIGJvdGggSG91c2VzIA0KY29uY3VycmluZywgdGhhdCB0aGUgZm9sbG93aW5n
+IGFydGljbGVzIGJlIHByb3Bvc2VkIHRvIHRoZSBMZWdpc2xhdHVyZXMgb2YgdGhl
+IA0Kc2V2ZXJhbCBTdGF0ZXMsIGFzIGFtZW5kbWVudHMgdG8gdGhlIENvbnN0aXR1
+dGlvbiBvZiB0aGUgVW5pdGVkIFN0YXRlczsgYWxsIG9yIA0KYW55IG9mIHdoaWNo
+IGFydGljbGVzLCB3aGVuIHJhdGlmaWVkIGJ5IHRocmVlLWZvdXJ0aHMgb2YgdGhl
+IHNhaWQgTGVnaXNsYXR1cmVzLCANCnRvIGJlIHZhbGlkIHRvIGFsbCBpbnRlbnRz
+IGFuZCBwdXJwb3NlcyBhcyBwYXJ0IG9mIHRoZSBzYWlkIENvbnN0aXR1dGlvbiwg
+DQpuYW1lbHk6IDwvRk9OVD48L0RJVj4NCjxESVY+Jm5ic3A7PC9ESVY+DQo8RElW
+PjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPkFtZW5kbWVudCBJPC9GT05UPjwvRElW
+Pg0KPERJVj4mbmJzcDs8L0RJVj4NCjxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXpl
+PTI+Q29uZ3Jlc3Mgc2hhbGwgbWFrZSBubyBsYXcgcmVzcGVjdGluZyBhbiANCmVz
+dGFibGlzaG1lbnQgb2YgcmVsaWdpb24sIG9yIHByb2hpYml0aW5nIHRoZSBmcmVl
+IGV4ZXJjaXNlIHRoZXJlb2Y7IG9yIA0KYWJyaWRnaW5nIHRoZSBmcmVlZG9tIG9m
+IHNwZWVjaCwgb3Igb2YgdGhlIHByZXNzOyBvciB0aGUgcmlnaHQgb2YgdGhlIHBl
+b3BsZSANCnBlYWNlYWJseSB0byBhc3NlbWJsZSwgYW5kIHRvIHBldGl0aW9uIHRo
+ZSBnb3Zlcm5tZW50IGZvciBhIHJlZHJlc3Mgb2YgDQpncmlldmFuY2VzLiA8L0ZP
+TlQ+PC9ESVY+DQo8RElWPiZuYnNwOzwvRElWPg0KPERJVj48Rk9OVCBmYWNlPUFy
+aWFsIHNpemU9Mj5BbWVuZG1lbnQgSUk8L0ZPTlQ+PC9ESVY+DQo8RElWPiZuYnNw
+OzwvRElWPg0KPERJVj48Rk9OVCBmYWNlPUFyaWFsIHNpemU9Mj5BIHdlbGwgcmVn
+dWxhdGVkIG1pbGl0aWEsIGJlaW5nIG5lY2Vzc2FyeSB0byB0aGUgDQpzZWN1cml0
+eSBvZiBhIGZyZWUgc3RhdGUsIHRoZSByaWdodCBvZiB0aGUgcGVvcGxlIHRvIGtl
+ZXAgYW5kIGJlYXIgYXJtcywgc2hhbGwgDQpub3QgYmUgaW5mcmluZ2VkLiA8L0ZP
+TlQ+PC9ESVY+DQo8RElWPiZuYnNwOzwvRElWPg0KPERJVj48Rk9OVCBmYWNlPUFy
+aWFsIHNpemU9Mj5BbWVuZG1lbnQgSUlJPC9GT05UPjwvRElWPg0KPERJVj4mbmJz
+cDs8L0RJVj4NCjxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXplPTI+Tm8gc29sZGll
+ciBzaGFsbCwgaW4gdGltZSBvZiBwZWFjZSBiZSBxdWFydGVyZWQgaW4gDQphbnkg
+aG91c2UsIHdpdGhvdXQgdGhlIGNvbnNlbnQgb2YgdGhlIG93bmVyLCBub3IgaW4g
+dGltZSBvZiB3YXIsIGJ1dCBpbiBhIG1hbm5lciANCnRvIGJlIHByZXNjcmliZWQg
+YnkgbGF3LiA8L0ZPTlQ+PC9ESVY+DQo8RElWPiZuYnNwOzwvRElWPg0KPERJVj48
+Rk9OVCBmYWNlPUFyaWFsIHNpemU9Mj5BbWVuZG1lbnQgSVY8L0ZPTlQ+PC9ESVY+
+DQo8RElWPiZuYnNwOzwvRElWPg0KPERJVj48Rk9OVCBmYWNlPUFyaWFsIHNpemU9
+Mj5UaGUgcmlnaHQgb2YgdGhlIHBlb3BsZSB0byBiZSBzZWN1cmUgaW4gdGhlaXIg
+DQpwZXJzb25zLCBob3VzZXMsIHBhcGVycywgYW5kIGVmZmVjdHMsIGFnYWluc3Qg
+dW5yZWFzb25hYmxlIHNlYXJjaGVzIGFuZCANCnNlaXp1cmVzLCBzaGFsbCBub3Qg
+YmUgdmlvbGF0ZWQsIGFuZCBubyB3YXJyYW50cyBzaGFsbCBpc3N1ZSwgYnV0IHVw
+b24gcHJvYmFibGUgDQpjYXVzZSwgc3VwcG9ydGVkIGJ5IG9hdGggb3IgYWZmaXJt
+YXRpb24sIGFuZCBwYXJ0aWN1bGFybHkgZGVzY3JpYmluZyB0aGUgcGxhY2UgDQp0
+byBiZSBzZWFyY2hlZCwgYW5kIHRoZSBwZXJzb25zIG9yIHRoaW5ncyB0byBiZSBz
+ZWl6ZWQuIDwvRk9OVD48L0RJVj4NCjxESVY+Jm5ic3A7PC9ESVY+DQo8RElWPjxG
+T05UIGZhY2U9QXJpYWwgc2l6ZT0yPkFtZW5kbWVudCBWPC9GT05UPjwvRElWPg0K
+PERJVj4mbmJzcDs8L0RJVj4NCjxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXplPTI+
+Tm8gcGVyc29uIHNoYWxsIGJlIGhlbGQgdG8gYW5zd2VyIGZvciBhIGNhcGl0YWws
+IG9yIA0Kb3RoZXJ3aXNlIGluZmFtb3VzIGNyaW1lLCB1bmxlc3Mgb24gYSBwcmVz
+ZW50bWVudCBvciBpbmRpY3RtZW50IG9mIGEgZ3JhbmQganVyeSwgDQpleGNlcHQg
+aW4gY2FzZXMgYXJpc2luZyBpbiB0aGUgbGFuZCBvciBuYXZhbCBmb3JjZXMsIG9y
+IGluIHRoZSBtaWxpdGlhLCB3aGVuIGluIA0KYWN0dWFsIHNlcnZpY2UgaW4gdGlt
+ZSBvZiB3YXIgb3IgcHVibGljIGRhbmdlcjsgbm9yIHNoYWxsIGFueSBwZXJzb24g
+YmUgc3ViamVjdCANCmZvciB0aGUgc2FtZSBvZmZlbnNlIHRvIGJlIHR3aWNlIHB1
+dCBpbiBqZW9wYXJkeSBvZiBsaWZlIG9yIGxpbWI7IG5vciBzaGFsbCBiZSANCmNv
+bXBlbGxlZCBpbiBhbnkgY3JpbWluYWwgY2FzZSB0byBiZSBhIHdpdG5lc3MgYWdh
+aW5zdCBoaW1zZWxmLCBub3IgYmUgZGVwcml2ZWQgDQpvZiBsaWZlLCBsaWJlcnR5
+LCBvciBwcm9wZXJ0eSwgd2l0aG91dCBkdWUgcHJvY2VzcyBvZiBsYXc7IG5vciBz
+aGFsbCBwcml2YXRlIA0KcHJvcGVydHkgYmUgdGFrZW4gZm9yIHB1YmxpYyB1c2Us
+IHdpdGhvdXQganVzdCBjb21wZW5zYXRpb24uIDwvRk9OVD48L0RJVj4NCjxESVY+
+Jm5ic3A7PC9ESVY+DQo8RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPkFtZW5k
+bWVudCBWSTwvRk9OVD48L0RJVj4NCjxESVY+Jm5ic3A7PC9ESVY+DQo8RElWPjxG
+T05UIGZhY2U9QXJpYWwgc2l6ZT0yPkluIGFsbCBjcmltaW5hbCBwcm9zZWN1dGlv
+bnMsIHRoZSBhY2N1c2VkIHNoYWxsIA0KZW5qb3kgdGhlIHJpZ2h0IHRvIGEgc3Bl
+ZWR5IGFuZCBwdWJsaWMgdHJpYWwsIGJ5IGFuIGltcGFydGlhbCBqdXJ5IG9mIHRo
+ZSBzdGF0ZSANCmFuZCBkaXN0cmljdCB3aGVyZWluIHRoZSBjcmltZSBzaGFsbCBo
+YXZlIGJlZW4gY29tbWl0dGVkLCB3aGljaCBkaXN0cmljdCBzaGFsbCANCmhhdmUg
+YmVlbiBwcmV2aW91c2x5IGFzY2VydGFpbmVkIGJ5IGxhdywgYW5kIHRvIGJlIGlu
+Zm9ybWVkIG9mIHRoZSBuYXR1cmUgYW5kIA0KY2F1c2Ugb2YgdGhlIGFjY3VzYXRp
+b247IHRvIGJlIGNvbmZyb250ZWQgd2l0aCB0aGUgd2l0bmVzc2VzIGFnYWluc3Qg
+aGltOyB0byANCmhhdmUgY29tcHVsc29yeSBwcm9jZXNzIGZvciBvYnRhaW5pbmcg
+d2l0bmVzc2VzIGluIGhpcyBmYXZvciwgYW5kIHRvIGhhdmUgdGhlIA0KYXNzaXN0
+YW5jZSBvZiBjb3Vuc2VsIGZvciBoaXMgZGVmZW5zZS4gPC9GT05UPjwvRElWPg0K
+PERJVj4mbmJzcDs8L0RJVj4NCjxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXplPTI+
+QW1lbmRtZW50IFZJSTwvRk9OVD48L0RJVj4NCjxESVY+Jm5ic3A7PC9ESVY+DQo8
+RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPkluIHN1aXRzIGF0IGNvbW1vbiBs
+YXcsIHdoZXJlIHRoZSB2YWx1ZSBpbiANCmNvbnRyb3ZlcnN5IHNoYWxsIGV4Y2Vl
+ZCB0d2VudHkgZG9sbGFycywgdGhlIHJpZ2h0IG9mIHRyaWFsIGJ5IGp1cnkgc2hh
+bGwgYmUgDQpwcmVzZXJ2ZWQsIGFuZCBubyBmYWN0IHRyaWVkIGJ5IGEganVyeSwg
+c2hhbGwgYmUgb3RoZXJ3aXNlIHJlZXhhbWluZWQgaW4gYW55IA0KY291cnQgb2Yg
+dGhlIFVuaXRlZCBTdGF0ZXMsIHRoYW4gYWNjb3JkaW5nIHRvIHRoZSBydWxlcyBv
+ZiB0aGUgY29tbW9uIGxhdy4gDQo8L0ZPTlQ+PC9ESVY+DQo8RElWPiZuYnNwOzwv
+RElWPg0KPERJVj48Rk9OVCBmYWNlPUFyaWFsIHNpemU9Mj5BbWVuZG1lbnQgVklJ
+STwvRk9OVD48L0RJVj4NCjxESVY+Jm5ic3A7PC9ESVY+DQo8RElWPjxGT05UIGZh
+Y2U9QXJpYWwgc2l6ZT0yPkV4Y2Vzc2l2ZSBiYWlsIHNoYWxsIG5vdCBiZSByZXF1
+aXJlZCwgbm9yIGV4Y2Vzc2l2ZSANCmZpbmVzIGltcG9zZWQsIG5vciBjcnVlbCBh
+bmQgdW51c3VhbCBwdW5pc2htZW50cyBpbmZsaWN0ZWQuIDwvRk9OVD48L0RJVj4N
+CjxESVY+Jm5ic3A7PC9ESVY+DQo8RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0y
+PkFtZW5kbWVudCBJWDwvRk9OVD48L0RJVj4NCjxESVY+Jm5ic3A7PC9ESVY+DQo8
+RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPlRoZSBlbnVtZXJhdGlvbiBpbiB0
+aGUgQ29uc3RpdHV0aW9uLCBvZiBjZXJ0YWluIA0KcmlnaHRzLCBzaGFsbCBub3Qg
+YmUgY29uc3RydWVkIHRvIGRlbnkgb3IgZGlzcGFyYWdlIG90aGVycyByZXRhaW5l
+ZCBieSB0aGUgDQpwZW9wbGUuIDwvRk9OVD48L0RJVj4NCjxESVY+Jm5ic3A7PC9E
+SVY+DQo8RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPkFtZW5kbWVudCBYPC9G
+T05UPjwvRElWPg0KPERJVj4mbmJzcDs8L0RJVj4NCjxESVY+PEZPTlQgZmFjZT1B
+cmlhbCBzaXplPTI+VGhlIHBvd2VycyBub3QgZGVsZWdhdGVkIHRvIHRoZSBVbml0
+ZWQgU3RhdGVzIGJ5IA0KdGhlIENvbnN0aXR1dGlvbiwgbm9yIHByb2hpYml0ZWQg
+YnkgaXQgdG8gdGhlIHN0YXRlcywgYXJlIHJlc2VydmVkIHRvIHRoZSBzdGF0ZXMg
+DQpyZXNwZWN0aXZlbHksIG9yIHRvIHRoZSBwZW9wbGUuIDwvRk9OVD48L0RJVj48
+L0RJVj48L0JPRFk+PC9IVE1MPg0KAAAfADUQAQAAAKIAAAA8ADQANQAyADAARgA2
+ADEANQAxAEQAQQBGADIAQQA0ADQAQgBBADgANwA4AEIARgAyAEYAMwA4ADAAMwA0
+ADgARQAyADYARQA1AEAAYgByAC0AZQB4AGMAaAAtAGQAZQB2ADEALgBiAHIAZQB4
+AGMAaABhAG4AZwBlAC4AZABvAGwAcABoAGkAbgBzAGUAYQByAGMAaAAuAGMAbwBt
+AD4AAAAAAAMAgBD/////HwDzEAEAAAAmAAAAQgBpAGwAbAAgAG8AZgAgAFIAaQBn
+AGgAdABzAC4ARQBNAEwAAAAAAAsA9BAAAAAACwD1EAAAAAALAPYQAAAAAEAABzBR
+lpFluknFAUAACDBRlpFluknFAQMA3j+fTgAAAwDxPwkEAAAfAPg/AQAAABAAAAAz
+AGsAcgBlAGwAYQB5AAAAAgH5PwEAAABjAAAAAAAAANynQMjAQhAatLkIACsv4YIB
+AAAAAAAAAC9PPUJSLUVYQ0gtVEVTVC9PVT1GSVJTVCBBRE1JTklTVFJBVElWRSBH
+Uk9VUC9DTj1SRUNJUElFTlRTL0NOPTNLUkVMQVkAAB8A+j8BAAAAEAAAADMAawBy
+AGUAbABhAHkAAAACAfs/AQAAAGMAAAAAAAAA3KdAyMBCEBq0uQgAKy/hggEAAAAA
+AAAAL089QlItRVhDSC1URVNUL09VPUZJUlNUIEFETUlOSVNUUkFUSVZFIEdST1VQ
+L0NOPVJFQ0lQSUVOVFMvQ049M0tSRUxBWQAAAwD9P+QEAAADABlAAAAAAAMAGkAA
+AAAAHwAwQAEAAAAQAAAAMwBLAFIARQBMAEEAWQAAAB8AMUABAAAAEAAAADMASwBS
+AEUATABBAFkAAAAfADhAAQAAABAAAAAzAEsAUgBFAEwAQQBZAAAAHwA5QAEAAAAQ
+AAAAMwBLAFIARQBMAEEAWQAAAAMAdkD/////AwACWQAAFgADAAlZAgAAAAsAhYEI
+IAYAAAAAAMAAAAAAAABGAAAAAA6FAAAAAAAAAwCdgQggBgAAAAAAwAAAAAAAAEYA
+AAAAUoUAAJjDAQAfAJ6BCCAGAAAAAADAAAAAAAAARgAAAABUhQAAAQAAAAoAAAAx
+ADEALgAwAAAAAAADAOmBCCAGAAAAAADAAAAAAAAARgAAAAABhQAAAAAAAAsA7oEI
+IAYAAAAAAMAAAAAAAABGAAAAAAOFAAAAAAAAAwD4gQggBgAAAAAAwAAAAAAAAEYA
+AAAAEIUAAAAAAAADAP+BCCAGAAAAAADAAAAAAAAARgAAAAAYhQAAAAAAAAsAIIII
+IAYAAAAAAMAAAAAAAABGAAAAAAaFAAAAAAAACwAkggggBgAAAAAAwAAAAAAAAEYA
+AAAAgoUAAAAAAAAfACaCCCAGAAAAAADAAAAAAAAARgAAAACDhQAAAQAAACYAAAA0
+ADAANQAxADMAMQA1ADEANwAtADIANQAwADQAMgAwADAANQAAAAAAAwBxggggBgAA
+AAAAwAAAAAAAAEYAAAAAk4UAAAAAAAALACkAAAAAAAsAIwAAAAAAAgF/AAEAAABR
+AAAAPDQ1MjBGNjE1MURBRjJBNDRCQTg3OEJGMkYzODAzNDhFMjZFNUBici1leGNo
+LWRldjEuYnJleGNoYW5nZS5kb2xwaGluc2VhcmNoLmNvbT4AAAAAC/o=
+
+--_000_553468B23EE29B4F8836CBD0E1B2A15A275C3AA855POLNIEXMBV2po_--
+
diff --git a/spec/fixtures/files/tnef-attachment-truncated.email b/spec/fixtures/files/tnef-attachment-truncated.email
new file mode 100644
index 000000000..365a5a442
--- /dev/null
+++ b/spec/fixtures/files/tnef-attachment-truncated.email
@@ -0,0 +1,34 @@
+From hello@blah.local Fri Feb 21 16:23:14 2013
+Return-path: <bar@example.org>
+Envelope-to: foo@example.org
+Delivery-date: Fri, 21 Feb 2013 16:23:14 +0000
+Content-Type: multipart/mixed;
+ boundary="_000_553468B23EE29B4F8836CBD0E1B2A15A275C3AA855POLNIEXMBV2po_"
+From: <bar@example.org>
+To: <foo@example.org>
+Sender: <hello@blah.local>
+Date: Fri, 21 Feb 2013 16:23:04 +0000
+Subject: here's a useless email
+Message-ID: <12345@blah.local>
+Accept-Language: en-US, en-GB
+Content-Language: en-US
+X-MS-Has-Attach:
+X-MS-TNEF-Correlator: <12345@blah.local>
+acceptlanguage: en-US, en-GB
+MIME-Version: 1.0
+
+--_000_553468B23EE29B4F8836CBD0E1B2A15A275C3AA855POLNIEXMBV2po_
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: quoted-printable
+
+Some introductory text here, before the malformed TNEF attachment.
+
+--_000_553468B23EE29B4F8836CBD0E1B2A15A275C3AA855POLNIEXMBV2po_
+Content-Disposition: attachment; filename="winmail.dat"
+Content-Transfer-Encoding: base64
+Content-Type: application/ms-tnef; name="winmail.dat"
+
+eJ8+IkV9AQaQCAAEAAAAAAABAAEAAQeQBgAIAAAA5AQAAAAAAADoAAEJgAEAIQAAAEMyRUUzRUYx
+
+--_000_553468B23EE29B4F8836CBD0E1B2A15A275C3AA855POLNIEXMBV2po_--
+
diff --git a/spec/fixtures/foi_attachments.yml b/spec/fixtures/foi_attachments.yml
deleted file mode 100644
index 8b1378917..000000000
--- a/spec/fixtures/foi_attachments.yml
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/spec/fixtures/info_request_events.yml b/spec/fixtures/info_request_events.yml
index c1a00ad47..3907703d8 100644
--- a/spec/fixtures/info_request_events.yml
+++ b/spec/fixtures/info_request_events.yml
@@ -171,3 +171,14 @@ anonymous_external_outgoing_message_event:
created_at: 2009-01-03 02:23:45.6789100
described_state: waiting_response
calculated_state: waiting_response
+
+other_request_outgoing_message_event:
+ id: 916
+ params_yaml: "--- \n\
+ :outgoing_message_id: 10\n"
+ outgoing_message_id: 10
+ info_request_id: 111
+ event_type: sent
+ created_at: <%= Time.now %>
+ described_state: waiting_response
+ calculated_state: waiting_response
diff --git a/spec/fixtures/info_requests.yml b/spec/fixtures/info_requests.yml
index 9361ec486..97effd036 100644
--- a/spec/fixtures/info_requests.yml
+++ b/spec/fixtures/info_requests.yml
@@ -107,3 +107,15 @@ anonymous_external_request:
awaiting_description: false
comments_allowed: true
idhash: 7654321a
+other_request:
+ id: 111
+ title: Another request
+ url_title: another_request
+ created_at: 2010-01-01 02:23:45.6789100
+ updated_at: 2010-01-01 02:23:45.6789100
+ public_body_id: 7
+ user_id: 6
+ described_state: waiting_response
+ awaiting_description: false
+ comments_allowed: true
+ idhash: b234567
diff --git a/spec/fixtures/locale/en/app.po b/spec/fixtures/locale/en/app.po
index 91af9b72b..ee5c8d9c8 100644
--- a/spec/fixtures/locale/en/app.po
+++ b/spec/fixtures/locale/en/app.po
@@ -31,7 +31,7 @@ msgid ""
msgstr ""
#: app/views/comment/_comment_form.rhtml:16
-msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)"
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
msgstr ""
#: app/views/request/upload_response.rhtml:40
@@ -71,7 +71,7 @@ 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"
+" If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\n"
" You may be able to find the address on their website, or by phoning them up and asking."
msgstr ""
@@ -123,20 +123,20 @@ msgid " when you send this message."
msgstr ""
#: app/views/public_body/show.rhtml:87
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
msgstr[0] ""
msgstr[1] ""
#: app/views/general/frontpage.rhtml:43
-msgid "%d request"
-msgid_plural "%d requests"
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
msgstr[0] ""
msgstr[1] ""
#: app/views/public_body/_body_listing_single.rhtml:21
-msgid "%d request made."
-msgid_plural "%d requests made."
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
msgstr[0] ""
msgstr[1] ""
@@ -187,43 +187,37 @@ msgstr ""
msgid "3. Now check your request"
msgstr ""
-#: app/views/public_body/show.rhtml:56
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr ""
-
#: app/views/request/_after_actions.rhtml:9
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
+msgid "<a href=\"{{url}}\">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>."
+msgid "Are we missing a public authority?"
msgstr ""
#: app/views/request/_sidebar.rhtml:39
-msgid ""
-"<a href=\"%s\">Are you the owner of\n"
-" any commercial copyright on this page?</a>"
+msgid "Are you the owner of any commercial copyright on this page?"
msgstr ""
#: app/views/general/search.rhtml:168
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
msgstr ""
#: app/views/public_body/list.rhtml:51
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
+msgid "Can't find the one you want?"
msgstr ""
#: app/views/user/show.rhtml:118
-msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
msgstr ""
#: app/views/request/_followup.rhtml:66 app/views/request/_followup.rhtml:73
#: app/views/request/show.rhtml:83 app/views/request/show.rhtml:87
-msgid "<a href=\"%s\">details</a>"
+msgid "details"
msgstr ""
#: app/views/request/_followup.rhtml:101
-msgid "<a href=\"%s\">what's that?</a>"
+msgid "what's that?"
msgstr ""
#: app/controllers/request_game_controller.rb:23
@@ -293,11 +287,11 @@ msgid "<p>We're glad you got some of the information that you wanted. If you fou
msgstr ""
#: app/controllers/request_controller.rb:318
-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>"
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
msgstr ""
#: app/controllers/request_controller.rb:316
-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>"
+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=\"{{url}}\">details</a>).</p>"
msgstr ""
#: app/controllers/request_controller.rb:324
@@ -327,7 +321,7 @@ 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>"
+"\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
msgstr ""
#: app/views/general/_advanced_search_tips.rhtml:12
@@ -413,7 +407,7 @@ 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>."
+" yourself then <a href=\"{{url}}\">click here</a>."
msgstr ""
#: app/views/user/set_crop_profile_photo.rhtml:35
@@ -576,7 +570,7 @@ msgstr ""
#: app/views/request/show_response.rhtml:29
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>)."
+" (<a href=\"{{url}}\">more details</a>)."
msgstr ""
#: app/views/request/upload_response.rhtml:33
@@ -921,7 +915,7 @@ 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)."
+"<a href=\"{{url}}\">contact us</a> if you need more)."
msgstr ""
#: app/models/info_request.rb:259 app/models/info_request.rb:277
@@ -950,16 +944,16 @@ msgstr ""
#: app/views/request/new.rhtml:128
msgid ""
-"Everything that you enter on this page \n"
+"Everything that you enter on this page\n"
" will be <strong>displayed publicly</strong> on\n"
-" this website forever (<a href=\"%s\">why?</a>)."
+" this website forever (<a href=\"{{url}}\">why?</a>)."
msgstr ""
#: app/views/request/new.rhtml:120
msgid ""
-"Everything that you enter on this page, including <strong>your name</strong>, \n"
+"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>)."
+" this website forever (<a href=\"{{url}}\">why?</a>)."
msgstr ""
#: locale/model_attributes.rb:68
@@ -1007,7 +1001,7 @@ 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}"
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
msgstr ""
#: app/views/general/search.rhtml:117
@@ -1018,7 +1012,7 @@ msgstr ""
msgid ""
"First, type in the <strong>name of the UK public authority</strong> you'd \n"
" like information from. <strong>By law, they have to respond</strong>\n"
-" (<a href=\"%s#%s\">why?</a>)."
+" (<a href=\"{{url}}\">why?</a>)."
msgstr ""
#: locale/model_attributes.rb:88
@@ -1147,7 +1141,7 @@ msgstr ""
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>."
+" an email which will go to the right place, please <a href=\"{{url}}\">send it to us</a>."
msgstr ""
#: app/views/request/_correspondence.rhtml:12
@@ -1278,7 +1272,7 @@ 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>."
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
#: app/views/request_mailer/stopped_responses.rhtml:10
@@ -1292,21 +1286,21 @@ msgstr ""
msgid ""
"If you are dissatisfied by the response you got from\n"
" the public authority, you have the right to\n"
-" complain (<a href=\"%s\">details</a>)."
+" complain (<a href=\"{{url}}\">details</a>)."
msgstr ""
#: app/views/user/no_cookies.rhtml:20
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
+msgid "If you are still having trouble, please <a href=\"{{url}}\">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."
+msgid "If you are the requester, then you may <a href=\"{{url}}\">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>."
+" please <a href=\"{{url}}\">read this first</a>."
msgstr ""
#: app/views/request/show.rhtml:105
@@ -1497,7 +1491,7 @@ msgid "Joined {{site_name}} in"
msgstr ""
#: app/views/request/new.rhtml:106
-msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)."
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
msgstr ""
#: app/views/request/_request_filter_form.rhtml:6
@@ -1837,7 +1831,7 @@ 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."
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
msgstr ""
#: app/views/request/show.rhtml:52
@@ -1990,7 +1984,7 @@ msgid ""
msgstr ""
#: app/models/outgoing_message.rb:157
-msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature"
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
msgstr ""
#: app/views/user/sign.rhtml:8
@@ -2337,8 +2331,9 @@ msgid "Search the site to find what you were looking for."
msgstr ""
#: app/views/public_body/show.rhtml:85
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+
msgstr[0] ""
msgstr[1] ""
@@ -2680,10 +2675,7 @@ msgid "The request was refused by the public authority"
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."
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
msgstr ""
#: app/views/general/_advanced_search_tips.rhtml:36
@@ -2692,14 +2684,14 @@ msgstr ""
#: app/views/request/_followup.rhtml:59
msgid ""
-"The response to your request has been <strong>delayed</strong>. You can say that, \n"
+"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:71
msgid ""
-"The response to your request is <strong>long overdue</strong>. You can say that, by \n"
+"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 ""
@@ -2804,15 +2796,9 @@ msgstr ""
msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
msgstr ""
-#: app/views/public_body/show.rhtml:7
-msgid "There is %d person following this authority"
-msgid_plural "There are %d people following this authority"
-msgstr[0] ""
-msgstr[1] ""
-
#: app/views/request/_sidebar.rhtml:5
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
msgstr[0] ""
msgstr[1] ""
@@ -2876,7 +2862,7 @@ 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."
+" find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
#: app/views/request/new.rhtml:63
@@ -2906,7 +2892,7 @@ 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."
+"\t\t\t\t\t\tfind out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
#: app/views/request/_describe_state.rhtml:44
@@ -2919,14 +2905,14 @@ msgid "This person has made no Freedom of Information requests using this site."
msgstr ""
#: app/views/user/show.rhtml:149
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
msgstr[0] ""
msgstr[1] ""
#: app/views/user/show.rhtml:179
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
msgstr[0] ""
msgstr[1] ""
@@ -2965,7 +2951,7 @@ 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."
+" <a href=\"{{url}}\">contact us</a> if you are not sure why."
msgstr ""
#: app/views/request/_describe_state.rhtml:7
@@ -2976,7 +2962,7 @@ 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."
+" If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
#: app/views/request/details.rhtml:6
@@ -3202,7 +3188,7 @@ msgstr ""
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."
+"Please <a href=\"{{url}}\">contact us</a> to sort it out."
msgstr ""
#: app/views/request/new_bad_contact.rhtml:5
@@ -3439,7 +3425,7 @@ msgid ""
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."
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
msgstr ""
#: app/views/request/show_response.rhtml:13
@@ -3571,7 +3557,7 @@ msgstr ""
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>."
+" to find one, then please <a href=\"{{url}}\">send it to us</a>."
msgstr ""
#: app/views/request/new_bad_contact.rhtml:6
@@ -3642,24 +3628,19 @@ msgid "You've now cleared your profile photo"
msgstr ""
#: app/views/user/show.rhtml:149
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
msgstr[0] ""
msgstr[1] ""
#: app/views/user/show.rhtml:179
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
msgstr[0] ""
msgstr[1] ""
#: 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>."
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
msgstr ""
#: app/views/user/show.rhtml:172
@@ -3682,7 +3663,7 @@ msgid "Your email subscriptions"
msgstr ""
#: app/controllers/request_controller.rb:598
-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."
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
msgstr ""
#: app/controllers/request_controller.rb:626
@@ -3712,7 +3693,7 @@ 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>)."
+" (<a href=\"{{url}}\">details</a>)."
msgstr ""
#: app/views/user/_signup.rhtml:18
@@ -3746,7 +3727,7 @@ 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."
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
msgstr ""
#: app/views/comment/new.rhtml:63
@@ -3990,7 +3971,7 @@ 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>."
+" an email which will go to the right place, please <a href=\"{{url}}\">send it to us</a>."
msgstr ""
#: app/views/request/show.rhtml:72
diff --git a/spec/fixtures/locale/en_GB/app.po b/spec/fixtures/locale/en_GB/app.po
index 91af9b72b..84997a319 100644
--- a/spec/fixtures/locale/en_GB/app.po
+++ b/spec/fixtures/locale/en_GB/app.po
@@ -31,7 +31,7 @@ msgid ""
msgstr ""
#: app/views/comment/_comment_form.rhtml:16
-msgid " (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation policy</a>)"
+msgid " (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation policy</a>)"
msgstr ""
#: app/views/request/upload_response.rhtml:40
@@ -71,7 +71,7 @@ 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"
+" If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\n"
" You may be able to find the address on their website, or by phoning them up and asking."
msgstr ""
@@ -123,20 +123,20 @@ msgid " when you send this message."
msgstr ""
#: app/views/public_body/show.rhtml:87
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
msgstr[0] ""
msgstr[1] ""
#: app/views/general/frontpage.rhtml:43
-msgid "%d request"
-msgid_plural "%d requests"
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
msgstr[0] ""
msgstr[1] ""
#: app/views/public_body/_body_listing_single.rhtml:21
-msgid "%d request made."
-msgid_plural "%d requests made."
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
msgstr[0] ""
msgstr[1] ""
@@ -187,43 +187,37 @@ msgstr ""
msgid "3. Now check your request"
msgstr ""
-#: app/views/public_body/show.rhtml:56
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr ""
-
#: app/views/request/_after_actions.rhtml:9
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
+msgid "<a href=\"{{url}}\">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>."
+msgid "Are we missing a public authority?"
msgstr ""
#: app/views/request/_sidebar.rhtml:39
-msgid ""
-"<a href=\"%s\">Are you the owner of\n"
-" any commercial copyright on this page?</a>"
+msgid "Are you the owner of any commercial copyright on this page?"
msgstr ""
#: app/views/general/search.rhtml:168
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
msgstr ""
#: app/views/public_body/list.rhtml:51
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
+msgid "Can't find the one you want?"
msgstr ""
#: app/views/user/show.rhtml:118
-msgid "<a href=\"%s\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
+msgid "<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more ({{user_name}} only)"
msgstr ""
#: app/views/request/_followup.rhtml:66 app/views/request/_followup.rhtml:73
#: app/views/request/show.rhtml:83 app/views/request/show.rhtml:87
-msgid "<a href=\"%s\">details</a>"
+msgid "details"
msgstr ""
#: app/views/request/_followup.rhtml:101
-msgid "<a href=\"%s\">what's that?</a>"
+msgid "what's that?"
msgstr ""
#: app/controllers/request_game_controller.rb:23
@@ -293,11 +287,11 @@ msgid "<p>We're glad you got some of the information that you wanted. If you fou
msgstr ""
#: app/controllers/request_controller.rb:318
-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>"
+msgid "<p>You do not need to include your email in the request in order to get a reply (<a href=\"{{url}}\">details</a>).</p>"
msgstr ""
#: app/controllers/request_controller.rb:316
-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>"
+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=\"{{url}}\">details</a>).</p>"
msgstr ""
#: app/controllers/request_controller.rb:324
@@ -327,7 +321,7 @@ 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>"
+"\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
msgstr ""
#: app/views/general/_advanced_search_tips.rhtml:12
@@ -413,7 +407,7 @@ 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>."
+" yourself then <a href=\"{{url}}\">click here</a>."
msgstr ""
#: app/views/user/set_crop_profile_photo.rhtml:35
@@ -576,7 +570,7 @@ msgstr ""
#: app/views/request/show_response.rhtml:29
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>)."
+" (<a href=\"{{url}}\">more details</a>)."
msgstr ""
#: app/views/request/upload_response.rhtml:33
@@ -921,7 +915,7 @@ 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)."
+"<a href=\"{{url}}\">contact us</a> if you need more)."
msgstr ""
#: app/models/info_request.rb:259 app/models/info_request.rb:277
@@ -950,16 +944,16 @@ msgstr ""
#: app/views/request/new.rhtml:128
msgid ""
-"Everything that you enter on this page \n"
+"Everything that you enter on this page\n"
" will be <strong>displayed publicly</strong> on\n"
-" this website forever (<a href=\"%s\">why?</a>)."
+" this website forever (<a href=\"{{url}}\">why?</a>)."
msgstr ""
#: app/views/request/new.rhtml:120
msgid ""
-"Everything that you enter on this page, including <strong>your name</strong>, \n"
+"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>)."
+" this website forever (<a href=\"{{url}}\">why?</a>)."
msgstr ""
#: locale/model_attributes.rb:68
@@ -1007,7 +1001,7 @@ 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}"
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
msgstr ""
#: app/views/general/search.rhtml:117
@@ -1018,7 +1012,7 @@ msgstr ""
msgid ""
"First, type in the <strong>name of the UK public authority</strong> you'd \n"
" like information from. <strong>By law, they have to respond</strong>\n"
-" (<a href=\"%s#%s\">why?</a>)."
+" (<a href=\"{{url}}\">why?</a>)."
msgstr ""
#: locale/model_attributes.rb:88
@@ -1147,7 +1141,7 @@ msgstr ""
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>."
+" an email which will go to the right place, please <a href=\"{{url}}\">send it to us</a>."
msgstr ""
#: app/views/request/_correspondence.rhtml:12
@@ -1278,7 +1272,7 @@ 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>."
+msgid "If the address is wrong, or you know a better address, please <a href=\"{{url}}\">contact us</a>."
msgstr ""
#: app/views/request_mailer/stopped_responses.rhtml:10
@@ -1292,21 +1286,21 @@ msgstr ""
msgid ""
"If you are dissatisfied by the response you got from\n"
" the public authority, you have the right to\n"
-" complain (<a href=\"%s\">details</a>)."
+" complain (<a href=\"{{url}}\">details</a>)."
msgstr ""
#: app/views/user/no_cookies.rhtml:20
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
+msgid "If you are still having trouble, please <a href=\"{{url}}\">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."
+msgid "If you are the requester, then you may <a href=\"{{url}}\">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>."
+" please <a href=\"{{url}}\">read this first</a>."
msgstr ""
#: app/views/request/show.rhtml:105
@@ -1497,7 +1491,7 @@ msgid "Joined {{site_name}} in"
msgstr ""
#: app/views/request/new.rhtml:106
-msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"%s\">why?</a>)."
+msgid "Keep it <strong>focused</strong>, you'll be more likely to get what you want (<a href=\"{{url}}\">why?</a>)."
msgstr ""
#: app/views/request/_request_filter_form.rhtml:6
@@ -1837,7 +1831,7 @@ 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."
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
msgstr ""
#: app/views/request/show.rhtml:52
@@ -1990,7 +1984,7 @@ msgid ""
msgstr ""
#: app/models/outgoing_message.rb:157
-msgid "Please sign at the bottom with your name, or alter the \"%{signoff}\" signature"
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
msgstr ""
#: app/views/user/sign.rhtml:8
@@ -2337,8 +2331,8 @@ msgid "Search the site to find what you were looking for."
msgstr ""
#: app/views/public_body/show.rhtml:85
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
msgstr[0] ""
msgstr[1] ""
@@ -2680,10 +2674,7 @@ msgid "The request was refused by the public authority"
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."
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
msgstr ""
#: app/views/general/_advanced_search_tips.rhtml:36
@@ -2692,14 +2683,14 @@ msgstr ""
#: app/views/request/_followup.rhtml:59
msgid ""
-"The response to your request has been <strong>delayed</strong>. You can say that, \n"
+"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:71
msgid ""
-"The response to your request is <strong>long overdue</strong>. You can say that, by \n"
+"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 ""
@@ -2804,15 +2795,9 @@ msgstr ""
msgid "There are {{count}} new annotations on your {{info_request}} request. Follow this link to see what they wrote."
msgstr ""
-#: app/views/public_body/show.rhtml:7
-msgid "There is %d person following this authority"
-msgid_plural "There are %d people following this authority"
-msgstr[0] ""
-msgstr[1] ""
-
#: app/views/request/_sidebar.rhtml:5
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
msgstr[0] ""
msgstr[1] ""
@@ -2876,7 +2861,7 @@ 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."
+" find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
#: app/views/request/new.rhtml:63
@@ -2906,7 +2891,7 @@ 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."
+"\t\t\t\t\t\tfind out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
#: app/views/request/_describe_state.rhtml:44
@@ -2919,14 +2904,14 @@ msgid "This person has made no Freedom of Information requests using this site."
msgstr ""
#: app/views/user/show.rhtml:149
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
msgstr[0] ""
msgstr[1] ""
#: app/views/user/show.rhtml:179
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
msgstr[0] ""
msgstr[1] ""
@@ -2965,7 +2950,7 @@ 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."
+" <a href=\"{{url}}\">contact us</a> if you are not sure why."
msgstr ""
#: app/views/request/_describe_state.rhtml:7
@@ -2976,7 +2961,7 @@ 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."
+" If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
msgstr ""
#: app/views/request/details.rhtml:6
@@ -3202,7 +3187,7 @@ msgstr ""
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."
+"Please <a href=\"{{url}}\">contact us</a> to sort it out."
msgstr ""
#: app/views/request/new_bad_contact.rhtml:5
@@ -3439,7 +3424,7 @@ msgid ""
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."
+msgid "When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload this page</a> and file your new request."
msgstr ""
#: app/views/request/show_response.rhtml:13
@@ -3571,7 +3556,7 @@ msgstr ""
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>."
+" to find one, then please <a href=\"{{url}}\">send it to us</a>."
msgstr ""
#: app/views/request/new_bad_contact.rhtml:6
@@ -3642,24 +3627,19 @@ msgid "You've now cleared your profile photo"
msgstr ""
#: app/views/user/show.rhtml:149
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
msgstr[0] ""
msgstr[1] ""
#: app/views/user/show.rhtml:179
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
msgstr[0] ""
msgstr[1] ""
#: 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>."
+msgid "Your <strong>name will appear publicly</strong>\\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please\\n <a href=\"{{help_url}}\">read this first</a>."
msgstr ""
#: app/views/user/show.rhtml:172
@@ -3682,7 +3662,7 @@ msgid "Your email subscriptions"
msgstr ""
#: app/controllers/request_controller.rb:598
-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."
+msgid "Your follow up has not been sent because this request has been stopped to prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to send a follow up message."
msgstr ""
#: app/controllers/request_controller.rb:626
@@ -3712,7 +3692,7 @@ 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>)."
+" (<a href=\"{{url}}\">details</a>)."
msgstr ""
#: app/views/user/_signup.rhtml:18
@@ -3746,7 +3726,7 @@ 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."
+msgid "Your response will <strong>appear on the Internet</strong>, <a href=\"{{url}}\">read why</a> and answers to other questions."
msgstr ""
#: app/views/comment/new.rhtml:63
@@ -3990,7 +3970,7 @@ 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>."
+" an email which will go to the right place, please <a href=\"{{url}}\">send it to us</a>."
msgstr ""
#: app/views/request/show.rhtml:72
diff --git a/spec/fixtures/locale/es/app.po b/spec/fixtures/locale/es/app.po
index 4e54a1d40..d45d9b3b1 100644
--- a/spec/fixtures/locale/es/app.po
+++ b/spec/fixtures/locale/es/app.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# David Cabo <david.cabo@gmail.com>, 2011, 2012.
# skenaja <alex@alexskene.com>, 2011.
@@ -35,9 +35,9 @@ msgstr " Esto aparecerá en tu perfil de {{site_name}}, para facilitar\n
#: app/views/comment/_comment_form.rhtml:16
msgid ""
-" (<strong>no ranty</strong> politics, read our <a href=\"%s\">moderation "
+" (<strong>no ranty</strong> politics, read our <a href=\"{{url}}\">moderation "
"policy</a>)"
-msgstr " (<strong>sin ataques políticos</strong>, lea nuestra <a href=\"%s\">política de moderación</a>)"
+msgstr " (<strong>sin ataques políticos</strong>, lea nuestra <a href=\"{{url}}\">política de moderación</a>)"
#: app/views/request/upload_response.rhtml:40
msgid ""
@@ -80,9 +80,9 @@ msgstr " Ideas sobre <strong>qué otra información pedir</strong> que el organi
#: 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"
+" If you know the address to use, then please <a href=\"{{url}}\">send it to us</a>.\n"
" You may be able to find the address on their website, or by phoning them up and asking."
-msgstr " Si conoces la dirección a utilizar, entonces por favor <a href=\"%s\">envíanosla</a>.\n Puede que la encuentres en su página web, o llamándoles por teléfono y preguntando."
+msgstr " Si conoces la dirección a utilizar, entonces por favor <a href=\"{{url}}\">envíanosla</a>.\n Puede que la encuentres en su página web, o llamándoles por teléfono y preguntando."
#: app/views/user/set_profile_about_me.rhtml:26
msgid ""
@@ -140,22 +140,22 @@ msgid " when you send this message."
msgstr " cuando envió este mensaje."
#: app/views/public_body/show.rhtml:87
-msgid "%d Freedom of Information request to %s"
-msgid_plural "%d Freedom of Information requests to %s"
-msgstr[0] "%d solicitud de información a %s"
-msgstr[1] "%d solicitudes de información a %s"
+msgid "{{count}} Freedom of Information request to {{public_body_name}}"
+msgid_plural "{{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] "{{count}} solicitud de información a {{public_body_name}}"
+msgstr[1] "{{count}} solicitudes de información a {{public_body_name}}"
#: app/views/general/frontpage.rhtml:43
-msgid "%d request"
-msgid_plural "%d requests"
-msgstr[0] "%d solicitud"
-msgstr[1] "%d solicitudes"
+msgid "{{count}} request"
+msgid_plural "{{count}} requests"
+msgstr[0] "{{count}} solicitud"
+msgstr[1] "{{count}} solicitudes"
#: app/views/public_body/_body_listing_single.rhtml:21
-msgid "%d request made."
-msgid_plural "%d requests made."
-msgstr[0] "%d solicitud enviada."
-msgstr[1] "%d solicitudes enviadas."
+msgid "{{count}} request made."
+msgid_plural "{{count}} requests made."
+msgstr[0] "{{count}} solicitud enviada."
+msgstr[1] "{{count}} solicitudes enviadas."
#: app/views/request/new.rhtml:92
msgid "'Crime statistics by ward level for Wales'"
@@ -204,46 +204,40 @@ msgstr "2. Solicite información"
msgid "3. Now check your request"
msgstr "3. Revisa tu solicitud"
-#: app/views/public_body/show.rhtml:56
-msgid "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-msgstr "<a class=\"link_button_green\" href=\"{{url}}\">{{text}}</a>"
-
#: app/views/request/_after_actions.rhtml:9
-msgid "<a href=\"%s\">Add an annotation</a> (to help the requester or others)"
-msgstr "<a href=\"%s\">Añade un comentario</a> (para ayudar al solicitante o a otros)"
+msgid "<a href=\"{{url}}\">Add an annotation</a> (to help the requester or others)"
+msgstr "<a href=\"{{url}}\">Añade un comentario</a> (para ayudar al solicitante o a otros)"
#: app/views/public_body/list.rhtml:29
-msgid "<a href=\"%s\">Are we missing a public authority?</a>."
-msgstr "<a href=\"%s\">¿Nos falta algún organismo público?</a>."
+msgid "Are we missing a public authority?"
+msgstr "¿Nos falta algún organismo público?."
#: app/views/request/_sidebar.rhtml:39
-msgid ""
-"<a href=\"%s\">Are you the owner of\n"
-" any commercial copyright on this page?</a>"
-msgstr "<a href=\"%s\">¿Posee el copyright\n de alguna información de esta página?</a>"
+msgid "Are you the owner of any commercial copyright on this page?"
+msgstr "¿Posee el copyright de alguna información de esta página?"
#: app/views/general/search.rhtml:168
-msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
-msgstr "<a href=\"%s\">Ver todas</a> o <a href=\"%s\">pídanos que añadamos una</a>."
+msgid "<a href=\"{{browse_url}}\">Browse all</a> or <a href=\"{{add_url}}\">ask us to add one</a>."
+msgstr "<a href=\"{{browse_url}}\">Ver todas</a> o <a href=\"{{add_url}}\">pídanos que añadamos una</a>."
#: app/views/public_body/list.rhtml:51
-msgid "<a href=\"%s\">Can't find the one you want?</a>"
-msgstr "<a href=\"%s\">¿No encuentra el que busca?</a>"
+msgid "Can't find the one you want?"
+msgstr "¿No encuentra el que busca?"
#: app/views/user/show.rhtml:118
msgid ""
-"<a href=\"%s\">Sign in</a> to change password, subscriptions and more "
+"<a href=\"{{url}}\">Sign in</a> to change password, subscriptions and more "
"({{user_name}} only)"
-msgstr "<a href=\"%s\">Abre una sesión</a> para cambiar tu contraseña, suscripciones... (sólo {{user_name}})"
+msgstr "<a href=\"{{url}}\">Abre una sesión</a> para cambiar tu contraseña, suscripciones... (sólo {{user_name}})"
#: app/views/request/_followup.rhtml:66 app/views/request/_followup.rhtml:73
#: app/views/request/show.rhtml:83 app/views/request/show.rhtml:87
-msgid "<a href=\"%s\">details</a>"
-msgstr "<a href=\"%s\">detalles</a>"
+msgid "details"
+msgstr "detalles"
#: app/views/request/_followup.rhtml:101
-msgid "<a href=\"%s\">what's that?</a>"
-msgstr "<a href=\"%s\">¿Qué es eso?</a>"
+msgid "what's that?"
+msgstr "¿Qué es eso?"
#: app/controllers/request_game_controller.rb:23
msgid ""
@@ -382,8 +376,8 @@ msgstr "<small>Si usas correo web o tiene filtros \"anti spam\", por favor compr
#: 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 "<strong> ¿Puedo pedir información sobre mí?</strong>\n\t\t\t<a href=\"%s\">¡No! (Pulse aquí para más detalles)</a>"
+"\t\t\t<a href=\"{{url}}\">No! (Click here for details)</a>"
+msgstr "<strong> ¿Puedo pedir información sobre mí?</strong>\n\t\t\t<a href=\"{{url}}\">¡No! (Pulse aquí para más detalles)</a>"
#: app/views/general/_advanced_search_tips.rhtml:12
msgid ""
@@ -486,8 +480,8 @@ msgstr "<strong>Nota:</strong> Te estás enviando un mensaje a ti mismo, suponem
#: 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 "<strong>Nota sobre privacidad:</strong> Si quiere solicitar información privada\n sobre sí mismo entonces <a href=\"%s\">siga este enlace</a>."
+" yourself then <a href=\"{{url}}\">click here</a>."
+msgstr "<strong>Nota sobre privacidad:</strong> Si quiere solicitar información privada\n sobre sí mismo entonces <a href=\"{{url}}\">siga este enlace</a>."
#: app/views/user/set_crop_profile_photo.rhtml:35
msgid ""
@@ -667,8 +661,8 @@ msgstr "Pide documentos o información <strong>específica</strong>, esta web no
#: app/views/request/show_response.rhtml:29
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 "Al final de esta página, escribe una respuesta intentando convencerles de que lo escaneen\n (<a href=\"%s\">más detalles</a>)."
+" (<a href=\"{{url}}\">more details</a>)."
+msgstr "Al final de esta página, escribe una respuesta intentando convencerles de que lo escaneen\n (<a href=\"{{url}}\">más detalles</a>)."
#: app/views/request/upload_response.rhtml:33
msgid "Attachment (optional):"
@@ -1037,8 +1031,8 @@ msgstr "Introduzca las palabras que desee separadas por espacio, es decir <stron
#: 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 "Escribe tu solicitud a continuación. Puedes adjuntar un fichero (manda un correo,\n o <a href=\"%s\">contáctanos</a>, si necesita más)."
+"<a href=\"{{url}}\">contact us</a> if you need more)."
+msgstr "Escribe tu solicitud a continuación. Puedes adjuntar un fichero (manda un correo,\n o <a href=\"{{url}}\">contáctanos</a>, si necesita más)."
#: app/models/info_request.rb:259 app/models/info_request.rb:277
msgid "Environmental Information Regulations"
@@ -1066,17 +1060,17 @@ msgstr "Historial de eventos"
#: app/views/request/new.rhtml:128
msgid ""
-"Everything that you enter on this page \n"
+"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 "Todo lo que escriba en esta página \n estará <strong>disponible públicamente</strong> en\n está web para siempre (<a href=\"%s\">¿por qué?</a>)."
+" this website forever (<a href=\"{{url}}\">why?</a>)."
+msgstr "Todo lo que escriba en esta página \n estará <strong>disponible públicamente</strong> en\n está web para siempre (<a href=\"{{url}}\">¿por qué?</a>)."
#: app/views/request/new.rhtml:120
msgid ""
-"Everything that you enter on this page, including <strong>your name</strong>, \n"
+"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 "Todo lo que escribas en esta página, incluyendo <strong>tu nombre</strong>, \n estará <strong>disponible públicamente</strong> en\n está web para siempre (<a href=\"%s\">¿por qué?</a>)."
+" this website forever (<a href=\"{{url}}\">why?</a>)."
+msgstr "Todo lo que escribas en esta página, incluyendo <strong>tu nombre</strong>, \n estará <strong>disponible públicamente</strong> en\n está web para siempre (<a href=\"{{url}}\">¿por qué?</a>)."
#: locale/model_attributes.rb:68
msgid "EximLogDone|Filename"
@@ -1123,10 +1117,8 @@ msgid "Failed to convert image to a PNG"
msgstr "Error al convertir la imagen a PNG"
#: app/models/profile_photo.rb:105
-msgid ""
-"Failed to convert image to the correct size: at %{cols}x%{rows}, need "
-"%{width}x%{height}"
-msgstr "Error al convertir la imagen al tamaño adecuado: es %{cols}x%{rows}, debería ser %{width}x%{height}"
+msgid "Failed to convert image to the correct size: at {{cols}}x{{rows}}, need {{width}}x{{height}}"
+msgstr "Error al convertir la imagen al tamaño adecuado: es {{cols}}x{{rows}}, debería ser {{width}}x{{height}}"
#: app/views/general/search.rhtml:117
msgid "Filter"
@@ -1136,8 +1128,8 @@ msgstr "Filtrar"
msgid ""
"First, type in the <strong>name of the UK public authority</strong> you'd \n"
" like information from. <strong>By law, they have to respond</strong>\n"
-" (<a href=\"%s#%s\">why?</a>)."
-msgstr "Primero, escribe el <strong>nombre de la institución</strong> a la que quieres pedir información. <strong>Están obligados a responder</strong> (<a href=\"%s#%s\">¿por qué?</a>)."
+" (<a href=\"{{url}}\">why?</a>)."
+msgstr "Primero, escribe el <strong>nombre de la institución</strong> a la que quieres pedir información. <strong>Están obligados a responder</strong> (<a href=\"{{url}}\">¿por qué?</a>)."
#: locale/model_attributes.rb:88
msgid "FoiAttachment|Charset"
@@ -1272,8 +1264,8 @@ msgstr "Solicitudes de información a"
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 "Desde la página de la solicitud, intenta responder a un mensaje en concreto, en vez de\n responder a la solicitud en general. Si necesitas hacerlo y tienes una dirección de\n correo válida, por favor <a href=\"%s\">mándanosla</a>."
+" an email which will go to the right place, please <a href=\"{{url}}\">send it to us</a>."
+msgstr "Desde la página de la solicitud, intenta responder a un mensaje en concreto, en vez de\n responder a la solicitud en general. Si necesitas hacerlo y tienes una dirección de\n correo válida, por favor <a href=\"{{url}}\">mándanosla</a>."
#: app/views/request/_correspondence.rhtml:12
#: app/views/request/_correspondence.rhtml:36
@@ -1409,8 +1401,8 @@ msgstr "He recibido un <strong>mensaje de error</strong>"
#: 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 "Si la dirección es incorrecta, o conoce una más actualizada, por favor <a href=\"%s\">contáctenos</a>."
+"href=\"{{url}}\">contact us</a>."
+msgstr "Si la dirección es incorrecta, o conoce una más actualizada, por favor <a href=\"{{url}}\">contáctenos</a>."
#: app/views/request_mailer/stopped_responses.rhtml:10
msgid ""
@@ -1423,24 +1415,24 @@ msgstr "Si no es correcto, o te gustaría enviar una respuesta a la solicitud\no
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 "Si no estás satisfecho con la respuesta que has recibido del\n organismo público, tienes derecho a\n apelar (<a href=\"%s\">detalles</a>)."
+" complain (<a href=\"{{url}}\">details</a>)."
+msgstr "Si no estás satisfecho con la respuesta que has recibido del\n organismo público, tienes derecho a\n apelar (<a href=\"{{url}}\">detalles</a>)."
#: app/views/user/no_cookies.rhtml:20
-msgid "If you are still having trouble, please <a href=\"%s\">contact us</a>."
-msgstr "Si aún tienes problemas, por favor <a href=\"%s\">contáctanos</a>."
+msgid "If you are still having trouble, please <a href=\"{{url}}\">contact us</a>."
+msgstr "Si aún tienes problemas, por favor <a href=\"{{url}}\">contáctanos</a>."
#: app/views/request/hidden.rhtml:15
msgid ""
-"If you are the requester, then you may <a href=\"%s\">sign in</a> to view "
+"If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view "
"the request."
-msgstr "Si la solicitud es tuya, puedes <a href=\"%s\">abrir una sesión</a> para verla."
+msgstr "Si la solicitud es tuya, puedes <a href=\"{{url}}\">abrir una sesión</a> para verla."
#: 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 "Si está pensando en utilizar un pseudónimo,\n por favor <a href=\"%s\">lea esto primero</a>."
+" please <a href=\"{{url}}\">read this first</a>."
+msgstr "Si está pensando en utilizar un pseudónimo,\n por favor <a href=\"{{url}}\">lea esto primero</a>."
#: app/views/request/show.rhtml:105
msgid "If you are {{user_link}}, please"
@@ -1639,8 +1631,8 @@ msgstr "Registrado en {{site_name}} el"
#: app/views/request/new.rhtml:106
msgid ""
"Keep it <strong>focused</strong>, you'll be more likely to get what you want"
-" (<a href=\"%s\">why?</a>)."
-msgstr "Sea <strong>específico</strong>, tendrá más probabilidades de conseguir lo que quiere (<a href=\"%s\">¿por qué?</a>)."
+" (<a href=\"{{url}}\">why?</a>)."
+msgstr "Sea <strong>específico</strong>, tendrá más probabilidades de conseguir lo que quiere (<a href=\"{{url}}\">¿por qué?</a>)."
#: app/views/request/_request_filter_form.rhtml:6
msgid "Keywords"
@@ -1990,8 +1982,8 @@ msgid "Please"
msgstr "Por favor"
#: app/views/user/no_cookies.rhtml:15
-msgid "Please <a href=\"%s\">get in touch</a> with us so we can fix it."
-msgstr "Por favor <a href=\"%s\">contacta</a> con nosotros para que podamos arreglarlo."
+msgid "Please <a href=\"{{url}}\">get in touch</a> with us so we can fix it."
+msgstr "Por favor <a href=\"{{url}}\">contacta</a> con nosotros para que podamos arreglarlo."
#: app/views/request/show.rhtml:52
msgid ""
@@ -2154,10 +2146,8 @@ msgid ""
msgstr "Por favor elije estas solicitudes una a una, y <strong>haz que se sepa</strong>\nsi han tenido éxito o no."
#: app/models/outgoing_message.rb:157
-msgid ""
-"Please sign at the bottom with your name, or alter the \"%{signoff}\" "
-"signature"
-msgstr "Por favor, firma con tu nombre en la parte inferior, o cambia la firma \"%{signoff}\""
+msgid "Please sign at the bottom with your name, or alter the \"{{signoff}}\" signature"
+msgstr "Por favor, firma con tu nombre en la parte inferior, o cambia la firma \"{{signoff}}\""
#: app/views/user/sign.rhtml:8
msgid "Please sign in as "
@@ -2519,10 +2509,10 @@ msgid "Search the site to find what you were looking for."
msgstr "Buscar en esta web para encontrar lo que busca."
#: app/views/public_body/show.rhtml:85
-msgid "Search within the %d Freedom of Information requests to %s"
-msgid_plural "Search within the %d Freedom of Information requests made to %s"
-msgstr[0] "Busca en la %d solicitud de información hecha a %s"
-msgstr[1] "Busca en las %d solicitudes de información hechas a %s"
+msgid "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgid_plural "Search within the {{count}} Freedom of Information requests to {{public_body_name}}"
+msgstr[0] "Busca en la {{count}} solicitud de información hecha a {{public_body_name}}"
+msgstr[1] "Busca en las {{count}} solicitudes de información hechas a {{public_body_name}}"
#: app/views/user/show.rhtml:132
msgid "Search your contributions"
@@ -2878,11 +2868,8 @@ msgid "The request was refused by the public authority"
msgstr "La solicitud ha sido rechazada por el organismo"
#: 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 "La solicitud que has intentado ver ha sido eliminada. Hay\nvarios posibles motivos para esto, pero no podemos ser más específicos aquí. Por favor <a\n href=\"%s\">contáctanos</a> si tiene cualquier pregunta."
+msgid "The request you have tried to view has been removed. There are\\nvarious reasons why we might have done this, sorry we can't be more specific here. Please <a\\n href=\"{{url}}\">contact us</a> if you have any questions."
+msgstr "La solicitud que has intentado ver ha sido eliminada. Hay\nvarios posibles motivos para esto, pero no podemos ser más específicos aquí. Por favor <a\n href=\"{{url}}\">contáctanos</a> si tiene cualquier pregunta."
#: app/views/general/_advanced_search_tips.rhtml:36
msgid "The requester has abandoned this request for some reason"
@@ -2890,14 +2877,14 @@ msgstr "El creador de la solicitud la ha cancelado por algún motivo"
#: app/views/request/_followup.rhtml:59
msgid ""
-"The response to your request has been <strong>delayed</strong>. You can say that, \n"
+"The response to your request has been <strong>delayed</strong>. You can say that,\n"
" by law, the authority should normally have responded\n"
" <strong>promptly</strong> and"
msgstr "La respuesta a tu solicitud ha sido <strong>retrasada</strong>.\n Por ley, el organismo debería normalmente haber respondido\n <strong>rápidamente</strong> y"
#: app/views/request/_followup.rhtml:71
msgid ""
-"The response to your request is <strong>long overdue</strong>. You can say that, by \n"
+"The response to your request is <strong>long overdue</strong>. You can say that, by\n"
" law, under all circumstances, the authority should have responded\n"
" by now"
msgstr "La respuesta a tu solicitud ha sido <strong>muy retrasada</strong>.\n Por ley, bajo cualquier circunstancia, el organismo ya debería\n haber respondido"
@@ -3016,17 +3003,11 @@ msgid ""
" this link to see what they wrote."
msgstr "Hay {{count}} comentarios en tu solicitud {{info_request}}. Sigue este enlace para leer lo que dicen."
-#: app/views/public_body/show.rhtml:7
-msgid "There is %d person following this authority"
-msgid_plural "There are %d people following this authority"
-msgstr[0] "Hay %d persona siguiendo a este organismo."
-msgstr[1] "Hay %d personas siguiendo a este organismo."
-
#: app/views/request/_sidebar.rhtml:5
-msgid "There is %d person following this request"
-msgid_plural "There are %d people following this request"
-msgstr[0] "Hay %d persona siguiendo esta solicitud."
-msgstr[1] "Hay %d personas siguiendo esta solicitud."
+msgid "There is {{count}} person following this request"
+msgid_plural "There are {{count}} people following this request"
+msgstr[0] "Hay {{count}} persona siguiendo esta solicitud."
+msgstr[1] "Hay {{count}} personas siguiendo esta solicitud."
#: app/views/user/show.rhtml:8
msgid ""
@@ -3099,8 +3080,8 @@ msgstr "Este organismo ya no existe, no pueden realizarse solicitudes de informa
#: 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 "Este respuesta está oculta. Revisa los comentarios\n para descubrir por qué. Si es tu solicitud, <a href=\"%s\">abre una sesión</a> para ver la respuesta."
+" find out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
+msgstr "Este respuesta está oculta. Revisa los comentarios\n para descubrir por qué. Si es tu solicitud, <a href=\"{{url}}\">abre una sesión</a> para ver la respuesta."
#: app/views/request/new.rhtml:63
msgid ""
@@ -3140,8 +3121,8 @@ msgstr "Esta es tu solicitud, por lo que recibirás correos automáticamente cua
#: 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 "Este mensaje está oculto. Lee los comentarios\n\t\t\t\t\t\tpara descubrir por qué. Si es tu solicitud, <a href=\"%s\">abra una sesión</a> para ver la respuesta."
+"\t\t\t\t\t\tfind out why. If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
+msgstr "Este mensaje está oculto. Lee los comentarios\n\t\t\t\t\t\tpara descubrir por qué. Si es tu solicitud, <a href=\"{{url}}\">abra una sesión</a> para ver la respuesta."
#: app/views/request/_describe_state.rhtml:44
#: app/views/request/_other_describe_state.rhtml:40
@@ -3154,16 +3135,16 @@ msgid ""
msgstr "Esta persona no ha realizado solicitudes de información usando esta web."
#: app/views/user/show.rhtml:149
-msgid "This person's %d Freedom of Information request"
-msgid_plural "This person's %d Freedom of Information requests"
-msgstr[0] "Tu %d solicitud de información"
-msgstr[1] "Tus %d solicitudes de información"
+msgid "This person's {{count}} Freedom of Information request"
+msgid_plural "This person's {{count}} Freedom of Information requests"
+msgstr[0] "Tu {{count}} solicitud de información"
+msgstr[1] "Tus {{count}} solicitudes de información"
#: app/views/user/show.rhtml:179
-msgid "This person's %d annotation"
-msgid_plural "This person's %d annotations"
-msgstr[0] "Tu %d comentario"
-msgstr[1] "Tus %d comentarios"
+msgid "This person's {{count}} annotation"
+msgid_plural "This person's {{count}} annotations"
+msgstr[0] "Tu {{count}} comentario"
+msgstr[1] "Tus {{count}} comentarios"
#: app/views/user/show.rhtml:172
msgid "This person's annotations"
@@ -3204,8 +3185,8 @@ msgstr "Esta solicitud tiene visibilidad 'oculta'. Puedes verla sólo porque est
#: 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 "Esta solicitud está oculta, por lo que sólo tú como creador puedes verla. Por favor\n <a href=\"%s\">contáctanos</a> si no estás seguro de por qué."
+" <a href=\"{{url}}\">contact us</a> if you are not sure why."
+msgstr "Esta solicitud está oculta, por lo que sólo tú como creador puedes verla. Por favor\n <a href=\"{{url}}\">contáctanos</a> si no estás seguro de por qué."
#: app/views/request/_describe_state.rhtml:7
#: app/views/request/_other_describe_state.rhtml:10
@@ -3215,8 +3196,8 @@ msgstr "Esta solicitud está todavía en proceso:"
#: 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 "Este respuesta está oculta. Revisa los comentarios\n para descubrir por qué. Si es tu solicitud, <a href=\"%s\">abre una sesión</a> para ver la respuesta."
+" If you are the requester, then you may <a href=\"{{url}}\">sign in</a> to view the response."
+msgstr "Este respuesta está oculta. Revisa los comentarios\n para descubrir por qué. Si es tu solicitud, <a href=\"{{url}}\">abre una sesión</a> para ver la respuesta."
#: app/views/request/details.rhtml:6
msgid ""
@@ -3450,8 +3431,8 @@ msgstr "Se encontró un tipo de resultado inesperado "
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 "Desgraciadamente no tenemos la dirección\nde correo para este organismo, así que no podemos validarlo.\nPor favor <a href=\"%s\">contáctenos</a> para arreglarlo."
+"Please <a href=\"{{url}}\">contact us</a> to sort it out."
+msgstr "Desgraciadamente no tenemos la dirección\nde correo para este organismo, así que no podemos validarlo.\nPor favor <a href=\"{{url}}\">contáctenos</a> para arreglarlo."
#: app/views/request/new_bad_contact.rhtml:5
msgid ""
@@ -3699,9 +3680,9 @@ msgstr "Cuando reciba la respuesta en papel, por favor ayude\n a que
#: app/views/request/new_please_describe.rhtml:16
msgid ""
-"When you're done, <strong>come back here</strong>, <a href=\"%s\">reload "
+"When you're done, <strong>come back here</strong>, <a href=\"{{url}}\">reload "
"this page</a> and file your new request."
-msgstr "Cuando esté listo, <strong>vuelva aquí</strong>, <a href=\"%s\">recargue esta página</a> y cree una nueva solicitud."
+msgstr "Cuando esté listo, <strong>vuelva aquí</strong>, <a href=\"{{url}}\">recargue esta página</a> y cree una nueva solicitud."
#: app/views/request/show_response.rhtml:13
msgid "Which of these is happening?"
@@ -3840,8 +3821,8 @@ msgstr "Puede <strong>adjuntar ficheros</strong>. Si quiere adjuntar un fichero\
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 "Puede que encuentres una\n en su página web, o preguntando por teléfono. Si la consigues\n por favor <a href=\"%s\">envíanosla</a>."
+" to find one, then please <a href=\"{{url}}\">send it to us</a>."
+msgstr "Puede que encuentres una\n en su página web, o preguntando por teléfono. Si la consigues\n por favor <a href=\"{{url}}\">envíanosla</a>."
#: app/views/request/new_bad_contact.rhtml:6
msgid ""
@@ -3914,25 +3895,20 @@ msgid "You've now cleared your profile photo"
msgstr "Has borrado la foto de tu perfil"
#: app/views/user/show.rhtml:149
-msgid "Your %d Freedom of Information request"
-msgid_plural "Your %d Freedom of Information requests"
-msgstr[0] "Tu %d solicitud de información"
-msgstr[1] "Tus %d solicitudes de información"
+msgid "Your {{count}} Freedom of Information request"
+msgid_plural "Your {{count}} Freedom of Information requests"
+msgstr[0] "Tu {{count}} solicitud de información"
+msgstr[1] "Tus {{count}} solicitudes de información"
#: app/views/user/show.rhtml:179
-msgid "Your %d annotation"
-msgid_plural "Your %d annotations"
-msgstr[0] "Tu %d comentario"
-msgstr[1] "Tus %d comentarios"
+msgid "Your {{count}} annotation"
+msgid_plural "Your {{count}} annotations"
+msgstr[0] "Tu {{count}} comentario"
+msgstr[1] "Tus {{count}} comentarios"
#: 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 "<strong>Tu nombre aparecerá públicamente</strong> \n (<a href=\"%s\">¿por qué?</a>)\n en esta web y en motores de búsqueda. Si estás\n pensando en utilizar un seudónimo, por favor \n <a href=\"%s\">lee esto primero</a>."
+msgid "Your <strong>name will appear publicly</strong> \\n (<a href=\"{{why_url}}\">why?</a>)\\n on this website and in search engines. If you\\n are thinking of using a pseudonym, please \\n <a href=\"{{help_url}}\">read this first</a>."
+msgstr "<strong>Tu nombre aparecerá públicamente</strong> \n (<a href=\"{{why_url}}\">¿por qué?</a>)\n en esta web y en motores de búsqueda. Si estás\n pensando en utilizar un seudónimo, por favor \n <a href=\"{{help_url}}\">lee esto primero</a>."
#: app/views/user/show.rhtml:172
msgid "Your annotations"
@@ -3956,9 +3932,9 @@ msgstr "Tus suscripciones de correo"
#: app/controllers/request_controller.rb:598
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 "
+"prevent spam. Please <a href=\"{{url}}\">contact us</a> if you really want to "
"send a follow up message."
-msgstr "Tu respuesta no ha sido enviada porque esta solicitud ha sido bloqueada para evitar spam. Por favor <a href=\"%s\">contáctanos</a> si realmente quieres enviar una respuesta."
+msgstr "Tu respuesta no ha sido enviada porque esta solicitud ha sido bloqueada para evitar spam. Por favor <a href=\"{{url}}\">contáctanos</a> si realmente quieres enviar una respuesta."
#: app/controllers/request_controller.rb:626
msgid "Your follow up message has been sent on its way."
@@ -3990,8 +3966,8 @@ msgstr "Tu nombre y su comentario aparecerán en los <strong>motores de búsqued
#: 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 "Tu nombre, tu solicitud y cualquier respuesta aparecerán en los <strong>motores de búsqueda</strong>\n (<a href=\"%s\">detalles</a>)."
+" (<a href=\"{{url}}\">details</a>)."
+msgstr "Tu nombre, tu solicitud y cualquier respuesta aparecerán en los <strong>motores de búsqueda</strong>\n (<a href=\"{{url}}\">detalles</a>)."
#: app/views/user/_signup.rhtml:18
msgid "Your name:"
@@ -4028,8 +4004,8 @@ msgstr "Tu solicitud:"
#: 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 "Tu respuesta <strong>aparecerá en Internet</strong>, <a href=\"%s\">lee por qué</a> y respuestas a otras preguntas."
+"href=\"{{url}}\">read why</a> and answers to other questions."
+msgstr "Tu respuesta <strong>aparecerá en Internet</strong>, <a href=\"{{url}}\">lee por qué</a> y respuestas a otras preguntas."
#: app/views/comment/new.rhtml:63
msgid ""
@@ -4276,8 +4252,8 @@ 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 "ya no existe. \nDesde la página de la solicitud, intenta responder a un mensaje en concreto, en vez de\n responder a la solicitud en general. Si necesitas hacerlo y tienes una dirección de\n correo válida, por favor <a href=\"%s\">mándanosla</a>."
+" an email which will go to the right place, please <a href=\"{{url}}\">send it to us</a>."
+msgstr "ya no existe. \nDesde la página de la solicitud, intenta responder a un mensaje en concreto, en vez de\n responder a la solicitud en general. Si necesitas hacerlo y tienes una dirección de\n correo válida, por favor <a href=\"{{url}}\">mándanosla</a>."
#: app/views/request/show.rhtml:72
msgid "normally"
diff --git a/spec/fixtures/outgoing_messages.yml b/spec/fixtures/outgoing_messages.yml
index 55df8473e..c71ee08bf 100644
--- a/spec/fixtures/outgoing_messages.yml
+++ b/spec/fixtures/outgoing_messages.yml
@@ -108,3 +108,14 @@ anonymous_external_outgoing_message:
updated_at: 2009-01-12 01:56:58.586598
what_doing: normal_sort
+other_outgoing_message:
+ id: 10
+ info_request_id: 111
+ message_type: initial_request
+ status: sent
+ body: "Just another request"
+ last_sent_at: <%= Time.now %>
+ created_at: 2009-01-12 01:56:58.586598
+ updated_at: 2009-01-12 01:56:58.586598
+ what_doing: normal_sort
+
diff --git a/spec/fixtures/public_bodies.yml b/spec/fixtures/public_bodies.yml
index 615c4bcb6..65cba4b28 100644
--- a/spec/fixtures/public_bodies.yml
+++ b/spec/fixtures/public_bodies.yml
@@ -72,3 +72,18 @@ sensible_walks_public_body:
created_at: 2008-10-25 10:51:01.161639
api_key: 5
info_requests_count: 1
+other_public_body:
+ id: 7
+ version: 1
+ name: 'Another Public Body'
+ first_letter: A
+ request_email: other@localhost
+ short_name: Another Public Body
+ url_name: another_public_body
+ notes: More notes
+ updated_at: 2008-10-25 10:51:01.161639
+ last_edit_comment: Another edit
+ last_edit_editor: louise
+ created_at: 2008-10-25 10:51:01.161639
+ api_key: 6
+ info_requests_count: 0
diff --git a/spec/fixtures/public_body_translations.yml b/spec/fixtures/public_body_translations.yml
index 24b14c470..61e07fb5b 100644
--- a/spec/fixtures/public_body_translations.yml
+++ b/spec/fixtures/public_body_translations.yml
@@ -88,3 +88,16 @@ sensible_walks_en_public_body_translation:
notes: I bet you’ve never heard of it.
publication_scheme: ""
disclosure_log: ""
+
+other_public_body_translation:
+ id: 8
+ public_body_id: 7
+ locale: en
+ name: "Another Public Body"
+ first_letter: A
+ request_email: other@localhost
+ short_name: Another Public Body
+ url_name: another_public_body
+ notes: More notes
+ publication_scheme: ""
+ disclosure_log: ""
diff --git a/spec/fixtures/theme_views/core/application_mailer/core_only.rhtml b/spec/fixtures/theme_views/core/application_mailer/core_only.html.erb
index 53b7798ec..53b7798ec 100644
--- a/spec/fixtures/theme_views/core/application_mailer/core_only.rhtml
+++ b/spec/fixtures/theme_views/core/application_mailer/core_only.html.erb
diff --git a/spec/fixtures/theme_views/core/application_mailer/multipart_core_only.rhtml b/spec/fixtures/theme_views/core/application_mailer/multipart_core_only.html.erb
index 646a349f8..646a349f8 100644
--- a/spec/fixtures/theme_views/core/application_mailer/multipart_core_only.rhtml
+++ b/spec/fixtures/theme_views/core/application_mailer/multipart_core_only.html.erb
diff --git a/spec/fixtures/theme_views/core/application_mailer/simple.rhtml b/spec/fixtures/theme_views/core/application_mailer/simple.html.erb
index a3937c940..a3937c940 100644
--- a/spec/fixtures/theme_views/core/application_mailer/simple.rhtml
+++ b/spec/fixtures/theme_views/core/application_mailer/simple.html.erb
diff --git a/spec/fixtures/theme_views/theme_one/application_mailer/multipart_theme_only.rhtml b/spec/fixtures/theme_views/theme_one/application_mailer/multipart_theme_only.html.erb
index d6423fbb4..d6423fbb4 100644
--- a/spec/fixtures/theme_views/theme_one/application_mailer/multipart_theme_only.rhtml
+++ b/spec/fixtures/theme_views/theme_one/application_mailer/multipart_theme_only.html.erb
diff --git a/spec/fixtures/theme_views/theme_one/application_mailer/simple.rhtml b/spec/fixtures/theme_views/theme_one/application_mailer/simple.html.erb
index ad43e0c87..ad43e0c87 100644
--- a/spec/fixtures/theme_views/theme_one/application_mailer/simple.rhtml
+++ b/spec/fixtures/theme_views/theme_one/application_mailer/simple.html.erb
diff --git a/spec/fixtures/theme_views/theme_one/application_mailer/theme_only.rhtml b/spec/fixtures/theme_views/theme_one/application_mailer/theme_only.html.erb
index 865445815..865445815 100644
--- a/spec/fixtures/theme_views/theme_one/application_mailer/theme_only.rhtml
+++ b/spec/fixtures/theme_views/theme_one/application_mailer/theme_only.html.erb
diff --git a/spec/fixtures/users.yml b/spec/fixtures/users.yml
index d6391c5e8..c9730d855 100644
--- a/spec/fixtures/users.yml
+++ b/spec/fixtures/users.yml
@@ -1,4 +1,4 @@
-bob_smith_user:
+bob_smith_user:
id: "1"
name: Bob Smith
url_name: bob_smith
@@ -13,7 +13,7 @@ bob_smith_user:
locale: 'en'
about_me: 'I like making requests about fancy dogs and naughty chickens and stuff.'
receive_email_alerts: true
-silly_name_user:
+silly_name_user:
id: "2"
name: "Silly <em>Name</em>"
url_name: silly_emnameem
@@ -28,7 +28,7 @@ silly_name_user:
locale: 'en'
about_me: ''
receive_email_alerts: true
-admin_user:
+admin_user:
id: "3"
name: Joe Admin
url_name: joe_admin
@@ -43,7 +43,7 @@ admin_user:
locale: ''
about_me: ''
receive_email_alerts: true
-unconfirmed_user:
+unconfirmed_user:
id: "4"
name: "Unconfirmed"
url_name: unconfirmed
@@ -71,3 +71,17 @@ robin_user:
ban_text: ''
about_me: 'I am the best'
receive_email_alerts: true
+another_user:
+ id: 6
+ name: Another User
+ url_name: another_user
+ email: another@localhost
+ salt: "-6116981980.392287733335677"
+ hashed_password: 6b7cd45a5f35fd83febc0452a799530398bfb6e8 # jonespassword
+ updated_at: 2012-01-01 10:39:15.491593
+ created_at: 2012-01-01 10:39:15.491593
+ email_confirmed: true
+ admin_level: 'none'
+ ban_text: ''
+ about_me: 'Just another user'
+ receive_email_alerts: true
diff --git a/spec/helpers/link_to_helper_spec.rb b/spec/helpers/link_to_helper_spec.rb
index 3e997f9f9..4cc1d415b 100644
--- a/spec/helpers/link_to_helper_spec.rb
+++ b/spec/helpers/link_to_helper_spec.rb
@@ -8,11 +8,10 @@ describe LinkToHelper do
before do
@mock_request = mock_model(InfoRequest, :url_title => 'test_title')
- @old_filters = ActionController::Routing::Routes.filters
- ActionController::Routing::Routes.filters = RoutingFilter::Chain.new
+ RoutingFilter.active = false
end
after do
- ActionController::Routing::Routes.filters = @old_filters
+ RoutingFilter.active = true
end
diff --git a/spec/integration/admin_spec.rb b/spec/integration/admin_spec.rb
index e148ea3ca..8a5e59ba2 100644
--- a/spec/integration/admin_spec.rb
+++ b/spec/integration/admin_spec.rb
@@ -13,7 +13,7 @@ describe "When administering the site" do
# Now fetch the "log in as" link to log in as Bob
get_via_redirect "/admin/user/login_as/#{users(:bob_smith_user).id}", nil, {
- "Authorization" => "Basic " + Base64.encode64("#{Configuration::admin_username}:#{Configuration::admin_password}").strip
+ "Authorization" => "Basic " + Base64.encode64("#{AlaveteliConfiguration::admin_username}:#{AlaveteliConfiguration::admin_password}").strip
}
response.should be_success
session[:user_id].should == users(:bob_smith_user).id
diff --git a/spec/integration/errors_spec.rb b/spec/integration/errors_spec.rb
index a44ed7051..ed0d7bfec 100644
--- a/spec/integration/errors_spec.rb
+++ b/spec/integration/errors_spec.rb
@@ -1,53 +1,113 @@
+# -*- coding: utf-8 -*-
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
-describe "When rendering errors" do
+describe "When errors occur" do
- before(:each) do
- load_raw_emails_data
- ActionController::Base.consider_all_requests_local = false
+ def set_consider_all_requests_local(value)
+ @requests_local = Rails.application.config.consider_all_requests_local
+ Rails.application.config.consider_all_requests_local = value
end
- after(:each) do
- ActionController::Base.consider_all_requests_local = true
+ def restore_consider_all_requests_local
+ Rails.application.config.consider_all_requests_local = @requests_local
end
- it "should render a 404 for unrouteable URLs" do
- get("/frobsnasm")
- response.body.should include("The page doesn't exist")
- response.code.should == "404"
- end
- it "should render a 404 for users that don't exist" do
- get("/user/wobsnasm")
- response.body.should include("The page doesn't exist")
- response.code.should == "404"
- end
- it "should render a 404 for bodies that don't exist" do
- get("/body/wobsnasm")
- response.body.should include("The page doesn't exist")
- response.code.should == "404"
+ before(:each) do
+ # This should happen automatically before each test but doesn't with these integration
+ # tests for some reason.
+ ActionMailer::Base.deliveries = []
end
- it "should render a 500 for general errors" do
- ir = info_requests(:naughty_chicken_request)
- # Set an invalid state for the request. Note that update_attribute doesn't run the validations
- ir.update_attribute(:described_state, "crotchety")
- get("/request/#{ir.url_title}")
- response.code.should == "500"
+
+ after(:each) do
+ restore_consider_all_requests_local
end
- it "should render a 403 for attempts at directory listing for attachments" do
- # make a fake cache
- foi_cache_path = File.expand_path(File.join(File.dirname(__FILE__), '../../cache'))
- FileUtils.mkdir_p(File.join(foi_cache_path, "views/en/request/101/101/response/1/attach/html/1"))
- get("/request/101/response/1/attach/html/1/" )
- response.body.should include("Directory listing not allowed")
- response.code.should == "403"
- get("/request/101/response/1/attach/html" )
- response.body.should include("Directory listing not allowed")
- response.code.should == "403"
+
+ context 'when considering all requests local (by default all in development)' do
+
+ before(:each) { set_consider_all_requests_local(true) }
+
+ it 'should show a full trace for general errors' do
+ InfoRequest.stub!(:find_by_url_title!).and_raise("An example error")
+ get("/request/example")
+ response.body.should have_selector('div[id=traces]')
+ response.body.should match('An example error')
+ end
+
end
- it "should render a 404 for non-existent 'details' pages for requests" do
- get("/details/request/wobble" )
- response.body.should include("The page doesn't exist")
- response.code.should == "404"
+
+ context 'when not considering all requests local' do
+
+ before(:each) { set_consider_all_requests_local(false) }
+
+ it "should render a 404 for unrouteable URLs using the general/exception_caught template" do
+ get("/frobsnasm")
+ response.should render_template('general/exception_caught')
+ response.code.should == "404"
+ end
+
+ it "should render a 404 for users or bodies that don't exist using the general/exception_caught
+ template" do
+ ['/user/wobsnasm', '/body/wobsnasm'].each do |non_existent_url|
+ get(non_existent_url)
+ response.should render_template('general/exception_caught')
+ response.code.should == "404"
+ end
+ end
+
+ it "should render a 500 for general errors using the general/exception_caught template" do
+ InfoRequest.stub!(:find_by_url_title!).and_raise("An example error")
+ get("/request/example")
+ response.should render_template('general/exception_caught')
+ response.body.should match('An example error')
+ response.code.should == "500"
+ end
+
+ it 'should notify of a general error' do
+ InfoRequest.stub!(:find_by_url_title!).and_raise("An example error")
+ get("/request/example")
+ deliveries = ActionMailer::Base.deliveries
+ deliveries.size.should == 1
+ mail = deliveries[0]
+ mail.body.should =~ /An example error/
+ end
+
+ it 'should log a general error' do
+ Rails.logger.should_receive(:fatal)
+ InfoRequest.stub!(:find_by_url_title!).and_raise("An example error")
+ get("/request/example")
+ end
+
+ it 'should assign the locale for the general/exception_caught template' do
+ InfoRequest.stub!(:find_by_url_title!).and_raise("An example error")
+ get("/es/request/example")
+ response.should render_template('general/exception_caught')
+ response.body.should match('Lo sentimos, hubo un problema procesando esta página')
+ response.body.should match('An example error')
+ end
+
+ it "should render a 403 with text body for attempts at directory listing for attachments" do
+ # make a fake cache
+ foi_cache_path = File.expand_path(File.join(File.dirname(__FILE__), '../../cache'))
+ FileUtils.mkdir_p(File.join(foi_cache_path, "views/en/request/101/101/response/1/attach/html/1"))
+ get("/request/101/response/1/attach/html/1/" )
+ response.body.should include("Directory listing not allowed")
+ response.code.should == "403"
+ get("/request/101/response/1/attach/html" )
+ response.body.should include("Directory listing not allowed")
+ response.code.should == "403"
+ end
+
+ context "in the admin interface" do
+
+ it 'should show a full trace for general errors' do
+ InfoRequest.stub!(:find).and_raise("An example error")
+ get("/admin/request/show/333")
+ response.body.should have_selector('div[id=traces]')
+ response.body.should match('An example error')
+ end
+
+ end
+
end
-end
+end
diff --git a/spec/integration/request_controller_spec.rb b/spec/integration/request_controller_spec.rb
new file mode 100644
index 000000000..9e585448b
--- /dev/null
+++ b/spec/integration/request_controller_spec.rb
@@ -0,0 +1,42 @@
+# -*- coding: utf-8 -*-
+require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
+
+describe RequestController, "when classifying an information request" do
+
+ describe 'when the request is internal' do
+
+ before(:each) do
+ load_raw_emails_data
+ @dog_request = info_requests(:fancy_dog_request)
+ # This should happen automatically before each test but doesn't with these integration
+ # tests for some reason.
+ ActionMailer::Base.deliveries = []
+ end
+
+ describe 'when logged in as the requestor' do
+
+ before :each do
+ @request_owner = @dog_request.user
+ visit signin_path
+ fill_in "Your e-mail:", :with => @request_owner.email
+ fill_in "Password:", :with => "jonespassword"
+ click_button "Sign in"
+ end
+
+ it "should send an email including the message" do
+ visit describe_state_message_path(:url_title => @dog_request.url_title,
+ :described_state => "requires_admin")
+ fill_in "Please tell us more:", :with => "Okay. I don't quite understand."
+ click_button "Submit status and send message"
+
+ response.should contain "Thank you! We'll look into what happened and try and fix it up."
+
+ deliveries = ActionMailer::Base.deliveries
+ deliveries.size.should == 1
+ mail = deliveries[0]
+ mail.body.should =~ /as needing admin/
+ mail.body.should =~ /Okay. I don't quite understand./
+ end
+ end
+ end
+end
diff --git a/spec/integration/search_request_spec.rb b/spec/integration/search_request_spec.rb
index c564032a6..23a62e97b 100644
--- a/spec/integration/search_request_spec.rb
+++ b/spec/integration/search_request_spec.rb
@@ -13,10 +13,8 @@ describe "When searching" do
end
it "should redirect requests with search in query string to URL-based page" do
- url = '/search/all?query=bob'
- request_via_redirect("post", url)
- response.request.url.should_not include(url)
- response.request.url.should include("/search/bob/all")
+ post '/search/all?query=bob'
+ response.should redirect_to "/en/search/bob/all"
end
it "should correctly execute simple search" do
diff --git a/spec/lib/ability_spec.rb b/spec/lib/ability_spec.rb
new file mode 100644
index 000000000..f075d0f32
--- /dev/null
+++ b/spec/lib/ability_spec.rb
@@ -0,0 +1,51 @@
+require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
+
+describe Ability do
+ describe ".can_update_request_state?" do
+ context "old and unclassified request" do
+ let(:request) { mock_model(InfoRequest, :is_old_unclassified? => true) }
+
+ context "logged out" do
+ let(:user) { nil }
+ before(:each) { request.stub!(:is_owning_user?).and_return(false) }
+ it { Ability::can_update_request_state?(user, request).should be_false }
+ end
+
+ context "logged in but not owner of request" do
+ let(:user) { mock_model(User) }
+ before(:each) { request.stub!(:is_owning_user?).and_return(false) }
+
+ it { Ability::can_update_request_state?(user, request).should be_true }
+ end
+ end
+
+ context "new request" do
+ let(:request) { mock_model(InfoRequest, :is_old_unclassified? => false) }
+
+ context "logged out" do
+ let(:user) { nil }
+ before(:each) { request.stub!(:is_owning_user?).and_return(false) }
+
+ it { Ability::can_update_request_state?(user, request).should be_false }
+ end
+
+ context "logged in" do
+ let(:user) { mock_model(User) }
+
+ # An owner of a request can also be someone with admin powers
+ context "as owner of request" do
+ before(:each) { request.stub!(:is_owning_user?).and_return(true) }
+
+ it { Ability::can_update_request_state?(user, request).should be_true }
+ end
+
+ context "but not owner of request" do
+ before(:each) { request.stub!(:is_owning_user?).and_return(false) }
+
+ it { Ability::can_update_request_state?(user, request).should be_false }
+ end
+ end
+ end
+ end
+end
+
diff --git a/spec/lib/basic_encoding_tests.rb b/spec/lib/basic_encoding_tests.rb
new file mode 100644
index 000000000..35d35fd4a
--- /dev/null
+++ b/spec/lib/basic_encoding_tests.rb
@@ -0,0 +1,157 @@
+# -*- coding: utf-8 -*-
+require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
+
+def bytes_to_binary_string( bytes, claimed_encoding = nil )
+ claimed_encoding ||= 'ASCII-8BIT'
+ bytes_string = bytes.pack('c*')
+ if RUBY_VERSION.to_f >= 1.9
+ bytes_string.force_encoding! claimed_encoding
+ end
+ bytes_string
+end
+
+random_string = bytes_to_binary_string [ 0x0f, 0x58, 0x1c, 0x8f, 0xa4, 0xcf,
+ 0xf6, 0x8c, 0x9d, 0xa7, 0x06, 0xd9,
+ 0xf7, 0x90, 0x6c, 0x6f]
+
+windows_1252_string = bytes_to_binary_string [ 0x44, 0x41, 0x53, 0x48, 0x20,
+ 0x96, 0x20, 0x44, 0x41, 0x53,
+ 0x48 ]
+
+# It's a shame this example is so long, but if we don't take enough it
+# gets misinterpreted as Shift_JIS
+
+gb_18030_bytes = [ 0xb9, 0xf3, 0xb9, 0xab, 0xcb, 0xbe, 0xb8, 0xba, 0xd4, 0xf0,
+ 0xc8, 0xcb, 0x28, 0xbe, 0xad, 0xc0, 0xed, 0x2f, 0xb2, 0xc6,
+ 0xce, 0xf1, 0x29, 0xc4, 0xfa, 0xba, 0xc3, 0xa3, 0xba, 0x0d,
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0xb1, 0xbe, 0xb9, 0xab, 0xcb, 0xbe, 0xd4,
+ 0xda, 0x31, 0x39, 0x39, 0x37, 0xc4, 0xea, 0xb3, 0xc9, 0xc1,
+ 0xa2, 0xb9, 0xfa, 0xbc, 0xd2, 0xb9, 0xa4, 0xc9, 0xcc, 0xd7,
+ 0xa2, 0xb2, 0xe1, 0x2e, 0xca, 0xb5, 0xc1, 0xa6, 0xd0, 0xdb,
+ 0xba, 0xf1, 0xa1, 0xa3, 0xd3, 0xd0, 0xb6, 0xc0, 0xc1, 0xa2,
+ 0xcb, 0xb0, 0xce, 0xf1, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xd7, 0xa8, 0xd2, 0xb5,
+ 0xc8, 0xcb, 0xd4, 0xb1, 0x3b, 0xd4, 0xda, 0xc8, 0xab, 0xb9,
+ 0xfa, 0xb8, 0xf7, 0xb3, 0xc7, 0xca, 0xd0, 0xc9, 0xe8, 0xc1,
+ 0xa2, 0xb7, 0xd6, 0xb9, 0xab, 0xcb, 0xbe, 0xa3, 0xa8, 0xd5,
+ 0xe3, 0xbd, 0xad, 0xa1, 0xa2, 0xc9, 0xcf, 0xba, 0xa3, 0xa1,
+ 0xa2, 0xb9, 0xe3, 0xd6, 0xdd, 0xa1, 0xa2, 0xbd, 0xad, 0xcb,
+ 0xd5, 0xb5, 0xc8, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0xb5, 0xd8, 0xb7, 0xbd, 0xa3,
+ 0xa9, 0xd2, 0xf2, 0xbd, 0xf8, 0xcf, 0xee, 0xbd, 0xcf, 0xb6,
+ 0xe0, 0xcf, 0xd6, 0xcd, 0xea, 0xb3, 0xc9, 0xb2, 0xbb, 0xc1,
+ 0xcb, 0xc3, 0xbf, 0xd4, 0xc2, 0xcf, 0xfa, 0xca, 0xdb, 0xb6,
+ 0xee, 0xb6, 0xc8, 0xa1, 0xa3, 0xc3, 0xbf, 0xd4, 0xc2, 0xd3,
+ 0xd0, 0xd2, 0xbb, 0xb2, 0xbf, 0xb7, 0xd6, 0x0d, 0x0a, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xd4,
+ 0xf6, 0xd6, 0xb5, 0xb6, 0x90, 0xa3, 0xa8, 0x36, 0x2d, 0x37,
+ 0x25, 0xd7, 0xf3, 0xd3, 0xd2, 0x29, 0xba, 0xcd, 0xc6, 0xd5,
+ 0xc6, 0xb1, 0xa3, 0xa8, 0x30, 0x2e, 0x35, 0x25, 0x2d, 0x32,
+ 0x25, 0x20, 0xd7, 0xf3, 0xd3, 0xd2, 0xa3, 0xa9, 0xd3, 0xc5,
+ 0xbb, 0xdd, 0xb4, 0xfa, 0xbf, 0xaa, 0xbb, 0xf2, 0xba, 0xcf,
+ 0xd7, 0xf7, 0xa3, 0xac, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xb5, 0xe3, 0xca, 0xfd,
+ 0xbd, 0xcf, 0xb5, 0xcd, 0xa1, 0xa3, 0xb4, 0xfa, 0xc0, 0xed,
+ 0xb7, 0xb6, 0xce, 0xa7, 0xc8, 0xe7, 0xcf, 0xc2, 0xa3, 0xba,
+ 0x0d, 0x0a ]
+
+gb_18030_spam_string = bytes_to_binary_string gb_18030_bytes
+
+describe "normalize_string_to_utf8" do
+
+ describe "when passed uniterpretable character data" do
+
+ it "should reject it as invalid" do
+
+ expect {
+ normalize_string_to_utf8 random_string
+ }.to raise_error(EncodingNormalizationError)
+
+ expect {
+ normalize_string_to_utf8 random_string, 'UTF-8'
+ }.to raise_error(EncodingNormalizationError)
+
+ end
+ end
+
+ describe "when passed unlabelled Windows 1252 data" do
+
+ it "should correctly convert it to UTF-8" do
+
+ normalized = normalize_string_to_utf8 windows_1252_string
+
+ normalized.should == "DASH – DASH"
+
+ end
+
+ end
+
+ describe "when passed GB 18030 data" do
+
+ it "should correctly convert it to UTF-8 if unlabelled" do
+
+ normalized = normalize_string_to_utf8 gb_18030_spam_string
+
+ normalized.should start_with("贵公司负责人")
+
+ end
+
+ end
+
+end
+
+describe "convert_string_to_utf8_or_binary" do
+
+ describe "when passed uniterpretable character data" do
+
+ it "should return it as a binary string" do
+
+ converted = convert_string_to_utf8_or_binary random_string
+ converted.should == random_string
+
+ if RUBY_VERSION.to_f >= 1.9
+ converted.encoding.should == 'ASCII-8BIT'
+ end
+
+ converted = convert_string_to_utf8_or_binary random_string,'UTF-8'
+ converted.should == random_string
+
+ if RUBY_VERSION.to_f >= 1.9
+ converted.encoding.should == 'ASCII-8BIT'
+ end
+
+ end
+ end
+
+ describe "when passed unlabelled Windows 1252 data" do
+
+ it "should correctly convert it to UTF-8" do
+
+ converted = convert_string_to_utf8_or_binary windows_1252_string
+
+ converted.should == "DASH – DASH"
+
+ if RUBY_VERSION.to_f >= 1.9
+ converted.encoding.should == 'UTF-8'
+ end
+ end
+
+ end
+
+ describe "when passed GB 18030 data" do
+
+ it "should correctly convert it to UTF-8 if unlabelled" do
+
+ converted = convert_string_to_utf8_or_binary gb_18030_spam_string
+
+ converted.should start_with("贵公司负责人")
+
+ if RUBY_VERSION.to_f >= 1.9
+ converted.encoding.should == 'UTF-8'
+ end
+ end
+
+ end
+
+end
diff --git a/spec/lib/i18n_interpolation.rb b/spec/lib/i18n_interpolation.rb
index e8d046757..b07cf1e9a 100644
--- a/spec/lib/i18n_interpolation.rb
+++ b/spec/lib/i18n_interpolation.rb
@@ -12,7 +12,35 @@ describe "when using i18n" do
it "should assume that simple translations are always html safe" do
_("Hello").should be_html_safe
end
+end
+
+describe "n_" do
+ it "should return the translated singular" do
+ FastGettext.should_receive(:n_).with("Apple", "Apples", 1).and_return("Apfel")
+ n_("Apple", "Apples", 1).should == "Apfel"
+ end
+
+ it "should return the translated plural" do
+ FastGettext.should_receive(:n_).with("Apple", "Apples", 3).and_return("Äpfel")
+ n_("Apple", "Apples", 3).should == "Äpfel"
+ end
+ it "should return the translated singular interpolated" do
+ FastGettext.should_receive(:n_).with("I eat {{count}} apple", "I eat {{count}} apples", 1).
+ and_return("Ich esse {{count}} Apfel")
+ n_("I eat {{count}} apple", "I eat {{count}} apples", 1, :count => 1).should == "Ich esse 1 Apfel"
+ end
+
+ it "should return the translated plural interpolated" do
+ FastGettext.should_receive(:n_).with("I eat {{count}} apple", "I eat {{count}} apples", 3).
+ and_return("Ich esse {{count}} Äpfel")
+ n_("I eat {{count}} apple", "I eat {{count}} apples", 3, :count => 3).should == "Ich esse 3 Äpfel"
+ end
+
+ it "should always be html safe when there is no interpolation" do
+ FastGettext.should_receive(:n_).with("Apple", "Apples", 1).and_return("Apfel")
+ n_("Apple", "Apples", 1).should be_html_safe
+ end
end
describe "gettext_interpolate" do
diff --git a/spec/lib/mail_handler/mail_handler_spec.rb b/spec/lib/mail_handler/mail_handler_spec.rb
index 48c32e2bc..01bf179f8 100644
--- a/spec/lib/mail_handler/mail_handler_spec.rb
+++ b/spec/lib/mail_handler/mail_handler_spec.rb
@@ -20,12 +20,33 @@ describe 'when creating a mail object from raw data' do
mail.to.should == ["request-66666-caa77777@whatdotheyknow.com", "foi@example.com"]
end
+ it 'should return nil for malformed To: and Cc: lines' do
+ mail = get_fixture_mail('malformed-to-and-cc.email')
+ mail.to.should == nil
+ mail.cc.should == nil
+ end
+
it 'should convert an iso8859 email to utf8' do
mail = get_fixture_mail('iso8859_2_raw_email.email')
- mail.subject.should have_text(/gjatë/u)
+ mail.subject.should match /gjatë/u
MailHandler.get_part_body(mail).is_utf8?.should == true
end
+ it 'should convert a Windows-1252 body mislabelled as ISO-8859-1 to UTF-8' do
+ mail = get_fixture_mail('mislabelled-as-iso-8859-1.email')
+ body = MailHandler.get_part_body(mail)
+ body.is_utf8?.should == true
+ # This email is broken in at least these two ways:
+ # 1. It contains a top bit set character (0x96) despite the
+ # "Content-Transfer-Encoding: 7bit"
+ # 2. The charset in the Content-Type header is "iso-8859-1"
+ # but 0x96 is actually a Windows-1252 en dash, which would
+ # be Unicode codepoint 2013. It should be possible to
+ # spot the mislabelling, since 0x96 isn't a valid
+ # ISO-8859-1 character.
+ body.should match(/ \xe2\x80\x93 /)
+ end
+
end
describe 'when asked for the from name' do
@@ -275,6 +296,12 @@ end
describe 'when getting attachment attributes' do
+ it 'should handle a mail with a non-multipart part with no charset in the Content-Type header' do
+ mail = get_fixture_mail('part-without-charset-in-content-type.email')
+ attributes = MailHandler.get_attachment_attributes(mail)
+ attributes.size.should == 2
+ end
+
it 'should get two attachment parts from a multipart mail with text and html alternatives
and an image' do
mail = get_fixture_mail('quoted-subject-iso8859-1.email')
@@ -282,6 +309,13 @@ describe 'when getting attachment attributes' do
attributes.size.should == 2
end
+ it 'should get one attachment from a multipart mail with text and HTML alternatives, which should be UTF-8' do
+ mail = get_fixture_mail('iso8859_2_raw_email.email')
+ attributes = MailHandler.get_attachment_attributes(mail)
+ attributes.length.should == 1
+ attributes[0][:body].is_utf8?.should == true
+ end
+
it 'should expand a mail attached as text' do
# Note that this spec will only pass using Tmail in the timezone set as datetime headers
# are rendered out in the local time - using the Mail gem this is not necessary
@@ -304,6 +338,52 @@ describe 'when getting attachment attributes' do
attributes = MailHandler.get_attachment_attributes(mail)
end
+ it 'should ignore truncated TNEF attachment' do
+ mail = get_fixture_mail('tnef-attachment-truncated.email')
+ attributes = MailHandler.get_attachment_attributes(mail)
+ attributes.length.should == 2
+ end
+
+ it 'should ignore anything beyond the final MIME boundary' do
+ pending do
+ # This example raw email has a premature closing boundary for
+ # the outer multipart/mixed - my reading of RFC 1521 is that
+ # the "epilogue" beyond that should be ignored.
+ # See https://github.com/mysociety/alaveteli/issues/922 for
+ # more discussion.
+ mail = get_fixture_mail('nested-attachments-premature-end.email')
+ attributes = MailHandler.get_attachment_attributes(mail)
+ attributes.length.should == 3
+ end
+ end
+
+ it 'should cope with a missing final MIME boundary' do
+ mail = get_fixture_mail('multipart-no-final-boundary.email')
+ attributes = MailHandler.get_attachment_attributes(mail)
+ attributes.length.should == 1
+ attributes[0][:body].should match(/This is an acknowledgement of your email/)
+ attributes[0][:content_type].should == "text/plain"
+ attributes[0][:url_part_number].should == 1
+ end
+
+ it 'should ignore a TNEF attachment with no usable contents' do
+ # FIXME: "no usable contents" is slightly misleading. The
+ # attachment in this example email does have usable content in
+ # the body of the TNEF attachment, but the invocation of tnef
+ # historically used to unpack these attachments doesn't add
+ # the --save-body parameter, so that they have been ignored so
+ # far. We probably should include the body from such
+ # attachments, but, at the moment, with the pending upgrade to
+ # Rails 3, we just want to check that the behaviour is the
+ # same as before.
+ mail = get_fixture_mail('tnef-attachment-empty.email')
+ attributes = MailHandler.get_attachment_attributes(mail)
+ attributes.length.should == 2
+ # This is the size of the TNEF-encoded attachment; currently,
+ # we expect the code just to return this without decoding:
+ attributes[1][:body].length.should == 7769
+ end
+
it 'should produce a consistent set of url_part_numbers, content_types, within_rfc822_subjects
and filenames from an example mail with lots of attachments' do
mail = get_fixture_mail('many-attachments-date-header.email')
diff --git a/spec/lib/sendmail_return_path_spec.rb b/spec/lib/sendmail_return_path_spec.rb
index 137869b6e..83436c2bd 100644
--- a/spec/lib/sendmail_return_path_spec.rb
+++ b/spec/lib/sendmail_return_path_spec.rb
@@ -1,5 +1,10 @@
# This is a test of the monkey patches in sendmail_return_path.rb
+# In Rails 3 the monkeypatches are not needed anymore because sendmail now has the "-f" flag
+# set correctly. So, strictly these tests are testing the Rails internals. So, that means we really
+# should delete them. Let's do that later when things have settled down. For the time being leave
+# them in
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe "when sending email with an altered return path" do
@@ -28,10 +33,10 @@ describe "when sending email with an altered return path" do
Net::SMTP.stub!(:new).and_return(mock_smtp)
with_delivery_method :smtp do
- ContactMailer.deliver_to_admin_message(
+ ContactMailer.to_admin_message(
"Mr. Test", "test@localhost", "Test script spec/lib/sendmail_return_path_spec.rb",
"This is just a test for a test script", nil, nil, nil
- )
+ ).deliver
end
deliveries = ActionMailer::Base.deliveries
@@ -40,12 +45,12 @@ describe "when sending email with an altered return path" do
it "should set the return path when sending email using sendmail" do
with_stub_popen do
- IO.should_receive(:popen).once.with('/usr/sbin/sendmail -i -t -f "test@localhost"', "w+")
+ IO.should_receive(:popen).once.with('/usr/sbin/sendmail -i -t -f "test@localhost" postmaster@localhost', "w+")
with_delivery_method :sendmail do
- ContactMailer.deliver_to_admin_message(
+ ContactMailer.to_admin_message(
"Mr. Test", "test@localhost", "Test script spec/lib/sendmail_return_path_spec.rb",
"This is just a test for a test script", nil, nil, nil
- )
+ ).deliver
end
end
diff --git a/spec/lib/timezone_fixes_spec.rb b/spec/lib/timezone_fixes_spec.rb
index 9d6ade526..8a9a3bf31 100644
--- a/spec/lib/timezone_fixes_spec.rb
+++ b/spec/lib/timezone_fixes_spec.rb
@@ -3,6 +3,11 @@
# We use MailServerLogDone here just as a totally random model that has a datetime type.
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
+# In Rails 3 the monkeypatch that these tests are testing is not necessary. So,
+# since these tests are testing the Rails internals you could argue that they shouldn't
+# be here. Well, you're right. But let's leave them in for the time being until the upgrade is finished.
+# Then, we should probably delete this whole file
+
describe "when doing things with timezones" do
it "should preserve time objects with local time conversion to default timezone UTC
diff --git a/spec/models/application_mailer_spec.rb b/spec/mailers/application_mailer_spec.rb
index acf5f43bc..d8993f78f 100644
--- a/spec/models/application_mailer_spec.rb
+++ b/spec/mailers/application_mailer_spec.rb
@@ -8,8 +8,7 @@ describe ApplicationMailer do
def set_base_views
ApplicationMailer.class_eval do
@previous_view_paths = self.view_paths.dup
- self.view_paths.clear
- self.view_paths << File.join(Rails.root, 'spec', 'fixtures', 'theme_views', 'core')
+ self.view_paths = [File.join(Rails.root, 'spec', 'fixtures', 'theme_views', 'core')]
end
end
@@ -27,13 +26,13 @@ describe ApplicationMailer do
def prepend_theme_views(theme_name)
ApplicationMailer.class_eval do
- view_paths.unshift File.join(Rails.root, 'spec', 'fixtures', 'theme_views', theme_name)
+ prepend_view_path File.join(Rails.root, 'spec', 'fixtures', 'theme_views', theme_name)
end
end
def append_theme_views(theme_name)
ApplicationMailer.class_eval do
- view_paths << File.join(Rails.root, 'spec', 'fixtures', 'theme_views', theme_name)
+ append_view_path File.join(Rails.root, 'spec', 'fixtures', 'theme_views', theme_name)
end
end
@@ -45,11 +44,8 @@ describe ApplicationMailer do
def create_multipart_method(method_name)
ApplicationMailer.send(:define_method, method_name) do
- attachment :content_type => 'message/rfc822',
- :body => 'xxx',
- :filename => "original.eml",
- :transfer_encoding => '7bit',
- :content_disposition => 'inline'
+ attachments['original.eml'] = 'xxx'
+ mail
end
end
@@ -62,32 +58,32 @@ describe ApplicationMailer do
it 'should render a theme template in preference to a core template' do
prepend_theme_views('theme_one')
- @mail = ApplicationMailer.create_simple()
+ @mail = ApplicationMailer.simple
@mail.body.should match('Theme simple')
end
it 'should render the template provided by the theme if no template is available in core' do
prepend_theme_views('theme_one')
- @mail = ApplicationMailer.create_theme_only()
+ @mail = ApplicationMailer.theme_only
@mail.body.should match('Theme only')
end
it 'should render the template provided by core if there is no theme template' do
prepend_theme_views('theme_one')
- @mail = ApplicationMailer.create_core_only()
+ @mail = ApplicationMailer.core_only
@mail.body.should match('Core only')
end
- it 'should raise an error if the template is in neither core nor theme' do
+ it 'should render an empty body if the template is in neither core nor theme' do
prepend_theme_views('theme_one')
- expected_error = 'Missing template application_mailer/neither.erb in view path'
- lambda{ ApplicationMailer.create_neither() }.should raise_error(/#{expected_error}/)
+ @mail = ApplicationMailer.neither
+ @mail.body.should be_empty
end
it 'should render a multipart email using a theme template' do
prepend_theme_views('theme_one')
create_multipart_method('multipart_theme_only')
- @mail = ApplicationMailer.create_multipart_theme_only()
+ @mail = ApplicationMailer.multipart_theme_only
@mail.parts.size.should == 2
message_part = @mail.parts[0].to_s
message_part.should match("Theme multipart")
@@ -96,7 +92,7 @@ describe ApplicationMailer do
it 'should render a multipart email using a core template' do
prepend_theme_views('theme_one')
create_multipart_method('multipart_core_only')
- @mail = ApplicationMailer.create_multipart_core_only()
+ @mail = ApplicationMailer.multipart_core_only
@mail.parts.size.should == 2
message_part = @mail.parts[0].to_s
message_part.should match("Core multipart")
@@ -108,32 +104,32 @@ describe ApplicationMailer do
it 'should render a core template in preference to a theme template' do
append_theme_views('theme_one')
- @mail = ApplicationMailer.create_simple()
+ @mail = ApplicationMailer.simple
@mail.body.should match('Core simple')
end
it 'should render the template provided by the theme if no template is available in core' do
append_theme_views('theme_one')
- @mail = ApplicationMailer.create_theme_only()
+ @mail = ApplicationMailer.theme_only
@mail.body.should match('Theme only')
end
it 'should render the template provided by core if there is no theme template' do
append_theme_views('theme_one')
- @mail = ApplicationMailer.create_core_only()
+ @mail = ApplicationMailer.core_only
@mail.body.should match('Core only')
end
- it 'should raise an error if the template is in neither core nor theme' do
+ it 'should render an empty body if the template is in neither core nor theme' do
append_theme_views('theme_one')
- expected_error = 'Missing template application_mailer/neither.erb in view path'
- lambda{ ApplicationMailer.create_neither() }.should raise_error(/#{expected_error}/)
+ @mail = ApplicationMailer.neither
+ @mail.body.should be_empty
end
it 'should render a multipart email using a core template' do
append_theme_views('theme_one')
create_multipart_method('multipart_core_only')
- @mail = ApplicationMailer.create_multipart_core_only()
+ @mail = ApplicationMailer.multipart_core_only
@mail.parts.size.should == 2
message_part = @mail.parts[0].to_s
message_part.should match("Core multipart")
@@ -142,7 +138,7 @@ describe ApplicationMailer do
it 'should render a multipart email using a theme template' do
append_theme_views('theme_one')
create_multipart_method('multipart_theme_only')
- @mail = ApplicationMailer.create_multipart_theme_only()
+ @mail = ApplicationMailer.multipart_theme_only
@mail.parts.size.should == 2
message_part = @mail.parts[0].to_s
message_part.should match("Theme multipart")
diff --git a/spec/models/outgoing_mailer_spec.rb b/spec/mailers/outgoing_mailer_spec.rb
index 5d1ea2dfb..5d1ea2dfb 100644
--- a/spec/models/outgoing_mailer_spec.rb
+++ b/spec/mailers/outgoing_mailer_spec.rb
diff --git a/spec/models/request_mailer_spec.rb b/spec/mailers/request_mailer_spec.rb
index dd5a322fb..23806b35b 100644
--- a/spec/models/request_mailer_spec.rb
+++ b/spec/mailers/request_mailer_spec.rb
@@ -28,13 +28,13 @@ describe RequestMailer, " when receiving incoming mail" do
receive_incoming_mail('incoming-request-plain.email', 'dummy@localhost')
ir.incoming_messages.size.should == 1
InfoRequest.holding_pen_request.incoming_messages.size.should == 1
- last_event = InfoRequest.holding_pen_request.incoming_messages[0].info_request.get_last_event
+ last_event = InfoRequest.holding_pen_request.incoming_messages[0].info_request.info_request_events.last
last_event.params[:rejected_reason].should == "Could not identify the request from the email address"
deliveries = ActionMailer::Base.deliveries
deliveries.size.should == 1
mail = deliveries[0]
- mail.to.should == [ Configuration::contact_email ]
+ mail.to.should == [ AlaveteliConfiguration::contact_email ]
deliveries.clear
end
@@ -48,13 +48,13 @@ describe RequestMailer, " when receiving incoming mail" do
receive_incoming_mail('incoming-request-plain.email', ir.incoming_email, "")
ir.incoming_messages.size.should == 1
InfoRequest.holding_pen_request.incoming_messages.size.should == 1
- last_event = InfoRequest.holding_pen_request.incoming_messages[0].info_request.get_last_event
+ last_event = InfoRequest.holding_pen_request.incoming_messages[0].info_request.info_request_events.last
last_event.params[:rejected_reason].should =~ /there is no "From" address/
deliveries = ActionMailer::Base.deliveries
deliveries.size.should == 1
mail = deliveries[0]
- mail.to.should == [ Configuration::contact_email ]
+ mail.to.should == [ AlaveteliConfiguration::contact_email ]
deliveries.clear
end
@@ -68,13 +68,13 @@ describe RequestMailer, " when receiving incoming mail" do
receive_incoming_mail('incoming-request-plain.email', ir.incoming_email, "frob@nowhere.com")
ir.incoming_messages.size.should == 1
InfoRequest.holding_pen_request.incoming_messages.size.should == 1
- last_event = InfoRequest.holding_pen_request.incoming_messages[0].info_request.get_last_event
+ last_event = InfoRequest.holding_pen_request.incoming_messages[0].info_request.info_request_events.last
last_event.params[:rejected_reason].should =~ /Only the authority can reply/
deliveries = ActionMailer::Base.deliveries
deliveries.size.should == 1
mail = deliveries[0]
- mail.to.should == [ Configuration::contact_email ]
+ mail.to.should == [ AlaveteliConfiguration::contact_email ]
deliveries.clear
end
@@ -99,7 +99,7 @@ describe RequestMailer, " when receiving incoming mail" do
mail.multipart?.should == true
mail.parts.size.should == 2
message_part = mail.parts[0].to_s
- bounced_mail = MailHandler.mail_from_raw_email(mail.parts[1].body)
+ bounced_mail = MailHandler.mail_from_raw_email(mail.parts[1].body.to_s)
bounced_mail.to.should == [ ir.incoming_email ]
bounced_mail.from.should == [ 'geraldinequango@localhost' ]
bounced_mail.body.include?("That's so totally a rubbish question").should be_true
@@ -153,14 +153,14 @@ describe RequestMailer, " when receiving incoming mail" do
receive_incoming_mail('incoming-request-plain.email', ir.incoming_email)
ir.incoming_messages.size.should == 1
InfoRequest.holding_pen_request.incoming_messages.size.should == 1 # arrives in holding pen
- last_event = InfoRequest.holding_pen_request.incoming_messages[0].info_request.get_last_event
+ last_event = InfoRequest.holding_pen_request.incoming_messages[0].info_request.info_request_events.last
last_event.params[:rejected_reason].should =~ /allow new responses from nobody/
# should be a message to admin regarding holding pen
deliveries = ActionMailer::Base.deliveries
deliveries.size.should == 1
mail = deliveries[0]
- mail.to.should == [ Configuration::contact_email ]
+ mail.to.should == [ AlaveteliConfiguration::contact_email ]
deliveries.clear
end
@@ -212,7 +212,9 @@ describe RequestMailer, "when sending reminders to requesters to classify a resp
:url_title => 'test_title',
:user => @mock_user)
InfoRequest.stub!(:find).and_return([@mock_request])
- RequestMailer.stub!(:deliver_new_response_reminder_alert)
+ mail_mock = mock("mail")
+ mail_mock.stub(:deliver)
+ RequestMailer.stub(:new_response_reminder_alert).and_return(mail_mock)
@sent_alert = mock_model(UserInfoRequestSentAlert, :user= =>nil,
:info_request= => nil,
:alert_type= => nil,
@@ -244,7 +246,7 @@ describe RequestMailer, "when sending reminders to requesters to classify a resp
query_params[:conditions].should == expected_conditions
query_params[:include].should == [ :user ]
query_params[:order].should == 'info_requests.id'
- end
+ end.and_return [@mock_request]
send_alerts
end
@@ -269,7 +271,7 @@ describe RequestMailer, "when sending reminders to requesters to classify a resp
end
it 'should not send the reminder' do
- RequestMailer.should_not_receive(:deliver_new_response_reminder_alert)
+ RequestMailer.should_not_receive(:new_response_reminder_alert)
send_alerts
end
@@ -293,7 +295,7 @@ describe RequestMailer, "when sending reminders to requesters to classify a resp
end
it 'should send the reminder' do
- RequestMailer.should_receive(:deliver_new_response_reminder_alert)
+ RequestMailer.should_receive(:new_response_reminder_alert)
send_alerts
end
end
@@ -311,7 +313,7 @@ describe RequestMailer, 'when sending mail when someone has updated an old uncla
:public_body => @public_body,
:display_status => 'Refused.',
:url_title => 'test_request')
- @mail = RequestMailer.create_old_unclassified_updated(@info_request)
+ @mail = RequestMailer.old_unclassified_updated(@info_request)
end
it 'should have the subject "Someone has updated the status of your request"' do
@@ -344,7 +346,7 @@ describe RequestMailer, 'when sending a new response email' do
end
it 'should not error when sending mails requests with characters requiring quoting in the subject' do
- @mail = RequestMailer.create_new_response(@info_request, @incoming_message)
+ @mail = RequestMailer.new_response(@info_request, @incoming_message)
end
end
@@ -362,8 +364,14 @@ describe RequestMailer, 'requires_admin' do
end
it 'body should contain the full admin URL' do
- mail = RequestMailer.deliver_requires_admin(@info_request)
+ mail = RequestMailer.requires_admin(@info_request).deliver
mail.body.should include('http://test.host/en/admin/request/show/123')
end
+
+ it "body should contain the message from the user" do
+ mail = RequestMailer.requires_admin(@info_request, nil, "Something has gone wrong").deliver
+ mail.body.should include 'Something has gone wrong'
+ end
+
end
diff --git a/spec/models/track_mailer_spec.rb b/spec/mailers/track_mailer_spec.rb
index 9bf03c3d0..509d08331 100644
--- a/spec/models/track_mailer_spec.rb
+++ b/spec/mailers/track_mailer_spec.rb
@@ -5,7 +5,9 @@ describe TrackMailer do
describe 'when sending email alerts for tracked things' do
before do
- TrackMailer.stub!(:deliver_event_digest)
+ mail_mock = mock("mail")
+ mail_mock.stub(:deliver)
+ TrackMailer.stub!(:event_digest).and_return(mail_mock)
Time.stub!(:now).and_return(Time.utc(2007, 11, 12, 23, 59))
end
@@ -67,11 +69,15 @@ describe TrackMailer do
@xapian_search = mock('xapian search', :results => [])
@found_event = mock_model(InfoRequestEvent, :described_at => @track_thing.created_at + 1.day)
@search_result = {:model => @found_event}
- InfoRequest.stub!(:full_search).and_return(@xapian_search)
+ ActsAsXapian::Search.stub!(:new).and_return(@xapian_search)
end
it 'should ask for the events returned by the tracking query' do
- InfoRequest.should_receive(:full_search).with([InfoRequestEvent], 'test query', 'described_at', true, nil, 100, 1).and_return(@xapian_search)
+ ActsAsXapian::Search.should_receive(:new).with([InfoRequestEvent], 'test query',
+ :sort_by_prefix => 'described_at',
+ :sort_by_ascending => true,
+ :collapse_by_prefix => nil,
+ :limit => 100).and_return(@xapian_search)
TrackMailer.alert_tracks
end
@@ -79,21 +85,21 @@ describe TrackMailer do
sent_email = mock_model(TrackThingsSentEmail, :info_request_event_id => @found_event.id)
@track_things_sent_emails_array.stub!(:find).and_return([sent_email]) # this is for the date range find (created in last 14 days)
@xapian_search.stub!(:results).and_return([@search_result])
- TrackMailer.should_not_receive(:deliver_event_digest)
+ TrackMailer.should_not_receive(:event_digest)
TrackMailer.alert_tracks
end
it 'should not include in the email any events not sent in a previous tracking email that were described before the track was set up' do
@found_event.stub!(:described_at).and_return(@track_thing.created_at - 1.day)
@xapian_search.stub!(:results).and_return([@search_result])
- TrackMailer.should_not_receive(:deliver_event_digest)
+ TrackMailer.should_not_receive(:event_digest)
TrackMailer.alert_tracks
end
it 'should include in the email any events that the user has not been sent a tracking email on that have been described since the track was set up' do
@found_event.stub!(:described_at).and_return(@track_thing.created_at + 1.day)
@xapian_search.stub!(:results).and_return([@search_result])
- TrackMailer.should_receive(:deliver_event_digest)
+ TrackMailer.should_receive(:event_digest)
TrackMailer.alert_tracks
end
@@ -129,7 +135,7 @@ describe TrackMailer do
it 'should not ask for any daily track things for the user' do
expected_conditions = [ "tracking_user_id = ? and track_medium = ?", @user.id, 'email_daily' ]
- TrackThing.should_not_receive(:find).with(:all, :conditions => expected_conditions).and_return([])
+ TrackThing.should_not_receive(:find).with(:all, :conditions => expected_conditions)
TrackMailer.alert_tracks
end
@@ -137,7 +143,7 @@ describe TrackMailer do
@user.stub(:should_be_emailed?).and_return(true)
@user.stub(:receive_email_alerts).and_return(false)
expected_conditions = [ "tracking_user_id = ? and track_medium = ?", @user.id, 'email_daily' ]
- TrackThing.should_not_receive(:find).with(:all, :conditions => expected_conditions).and_return([])
+ TrackThing.should_not_receive(:find).with(:all, :conditions => expected_conditions)
TrackMailer.alert_tracks
end
@@ -160,20 +166,19 @@ describe TrackMailer do
describe 'delivering the email' do
- before do
+ before :each do
@post_redirect = mock_model(PostRedirect, :save! => true,
:email_token => "token")
PostRedirect.stub!(:new).and_return(@post_redirect)
ActionMailer::Base.deliveries = []
+ @user = mock_model(User,
+ :name_and_email => MailHandler.address_from_name_and_email('Tippy Test', 'tippy@localhost'),
+ :url_name => 'tippy_test'
+ )
+ TrackMailer.event_digest(@user, []).deliver # no items in it email for minimal test
end
it 'should deliver one email, with right headers' do
- @user = mock_model(User,
- :name_and_email => MailHandler.address_from_name_and_email('Tippy Test', 'tippy@localhost'),
- :url_name => 'tippy_test'
- )
-
- TrackMailer.deliver_event_digest(@user, []) # no items in it email for minimal test
deliveries = ActionMailer::Base.deliveries
if deliveries.size > 1 # debugging if there is an error
deliveries.each do |d|
@@ -190,6 +195,22 @@ describe TrackMailer do
deliveries.clear
end
+
+ context "force ssl is off" do
+ # Force SSL is off in the tests. Since the code that selectively switches the protocols
+ # is in the initialiser for Rails it's hard to test. Hmmm...
+ # We could AlaveteliConfiguration.stub!(:force_ssl).and_return(true) but the config/environment.rb
+ # wouldn't get reloaded
+
+ it "should have http links in the email" do
+ deliveries = ActionMailer::Base.deliveries
+ deliveries.size.should == 1
+ mail = deliveries[0]
+
+ mail.body.should include("http://")
+ mail.body.should_not include("https://")
+ end
+ end
end
end
diff --git a/spec/models/censor_rule_spec.rb b/spec/models/censor_rule_spec.rb
index c11b05a03..3782cc630 100644
--- a/spec/models/censor_rule_spec.rb
+++ b/spec/models/censor_rule_spec.rb
@@ -73,10 +73,10 @@ end
describe 'when validating rules' do
- describe 'should be invalid without text' do
+ it 'should be invalid without text' do
censor_rule = CensorRule.new
censor_rule.valid?.should == false
- censor_rule.errors.on(:text).should == "can't be blank"
+ censor_rule.errors[:text].should == ["can't be blank"]
end
describe 'when validating a regexp rule' do
@@ -96,7 +96,7 @@ describe 'when validating rules' do
it 'should add an error message to the text field with the regexp error message' do
Regexp.stub!(:new).and_raise(RegexpError.new("very bad regexp"))
@censor_rule.valid?.should == false
- @censor_rule.errors.on(:text).should == "very bad regexp"
+ @censor_rule.errors[:text].should == ["very bad regexp"]
end
end
@@ -106,7 +106,7 @@ describe 'when validating rules' do
it 'should not add any error message to the text field' do
Regexp.stub!(:new)
@censor_rule.valid?
- @censor_rule.errors.on(:text).should == nil
+ @censor_rule.errors[:text].should == []
end
end
@@ -134,15 +134,21 @@ describe 'when validating rules' do
it 'should not allow a global text censor rule (without user_id, request_id or public_body_id)' do
@censor_rule.valid?.should == false
- @expected_error = 'Censor must apply to an info request a user or a body; is invalid'
- @censor_rule.errors.full_messages.should == [@expected_error]
+
+ expected_error = ["Rule must apply to an info request, a user or a body"]
+ @censor_rule.errors[:user].should == expected_error
+ @censor_rule.errors[:info_request].should == expected_error
+ @censor_rule.errors[:public_body].should == expected_error
end
it 'should not allow a global regex censor rule (without user_id, request_id or public_body_id)' do
@censor_rule.regexp = true
@censor_rule.valid?.should == false
- @expected_error = 'Censor must apply to an info request a user or a body; is invalid'
- @censor_rule.errors.full_messages.should == [@expected_error]
+
+ expected_error = ["Rule must apply to an info request, a user or a body"]
+ @censor_rule.errors[:user].should == expected_error
+ @censor_rule.errors[:info_request].should == expected_error
+ @censor_rule.errors[:public_body].should == expected_error
end
end
diff --git a/spec/models/contact_mailer_spec.rb b/spec/models/contact_mailer_spec.rb
deleted file mode 100644
index 202e45758..000000000
--- a/spec/models/contact_mailer_spec.rb
+++ /dev/null
@@ -1,8 +0,0 @@
-require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
-
-describe ContactMailer, " when blah" do
- before do
- end
-end
-
-
diff --git a/spec/models/foi_attachment_spec.rb b/spec/models/foi_attachment_spec.rb
index 537a3363c..9b0115c44 100644
--- a/spec/models/foi_attachment_spec.rb
+++ b/spec/models/foi_attachment_spec.rb
@@ -1,6 +1,6 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
-describe FoiAttachment, " when calculating due date" do
+describe FoiAttachment do
before(:each) do
load_raw_emails_data
diff --git a/spec/models/incoming_message_spec.rb b/spec/models/incoming_message_spec.rb
index f53a5856a..03152f5ff 100644
--- a/spec/models/incoming_message_spec.rb
+++ b/spec/models/incoming_message_spec.rb
@@ -27,7 +27,7 @@ describe IncomingMessage, " when dealing with incoming mail" do
end
it "should correctly fold various types of footer" do
- Dir.glob(File.join(Spec::Runner.configuration.fixture_path, "files", "email-folding-example-*.txt")).each do |file|
+ Dir.glob(File.join(RSpec.configuration.fixture_path, "files", "email-folding-example-*.txt")).each do |file|
message = File.read(file)
parsed = IncomingMessage.remove_quoted_sections(message)
expected = File.read("#{file}.expected")
@@ -59,12 +59,19 @@ describe IncomingMessage, " when dealing with incoming mail" do
message.subject.should == "Câmara Responde: Banco de ideias"
end
- it 'should not error on display of a message which has no charset set on the body part and
- is not good utf-8' do
+ it 'should deal with GB18030 text even if the charset is missing' do
ir = info_requests(:fancy_dog_request)
receive_incoming_mail('no-part-charset-bad-utf8.email', ir.incoming_email)
message = ir.incoming_messages[1]
message.parse_raw_email!
+ message.get_main_body_text_internal.should include("贵公司负责人")
+ end
+
+ it 'should not error on display of a message which has no charset set on the body part and is not good UTF-8' do
+ ir = info_requests(:fancy_dog_request)
+ receive_incoming_mail('no-part-charset-random-data.email', ir.incoming_email)
+ message = ir.incoming_messages[1]
+ message.parse_raw_email!
message.get_main_body_text_internal.should include("The above text was badly encoded")
end
@@ -353,7 +360,7 @@ describe IncomingMessage, " when censoring data" do
end
it "should apply hard-coded privacy rules to HTML files" do
- data = "http://#{Configuration::domain}/c/cheese"
+ data = "http://#{AlaveteliConfiguration::domain}/c/cheese"
@im.html_mask_stuff!(data)
data.should == "[WDTK login link]"
end
@@ -405,12 +412,24 @@ describe IncomingMessage, " when uudecoding bad messages" do
im.stub!(:mail).and_return(mail)
im.extract_attachments!
+ im.reload
attachments = im.foi_attachments
attachments.size.should == 2
attachments[1].filename.should == 'moo.txt'
im.get_attachments_for_display.size.should == 1
end
+ it "should still work when parsed from the raw email" do
+ raw_email = load_file_fixture 'inline-uuencode.email'
+ mail = MailHandler.mail_from_raw_email(raw_email)
+ im = incoming_messages :useless_incoming_message
+ im.stub!(:raw_email).and_return(raw_email)
+ im.stub!(:mail).and_return(mail)
+ im.parse_raw_email!
+ attachments = im.foi_attachments
+ attachments.size.should == 2
+ end
+
it "should apply censor rules" do
mail = get_fixture_mail('incoming-request-bad-uuencoding.email')
@@ -523,3 +542,46 @@ describe IncomingMessage, "when TNEF attachments are attached to messages" do
end
end
+describe IncomingMessage, "when extracting attachments" do
+
+ it 'handles the case where reparsing changes the body of the main part
+ and the cached attachment has been deleted' do
+ # original set of attachment attributes
+ attachment_attributes = { :url_part_number => 1,
+ :within_rfc822_subject => nil,
+ :content_type => "text/plain",
+ :charset => nil,
+ :body => "No way!\n",
+ :hexdigest => "0c8b1b0f5cb9c94ed15a180e73b5c7d1",
+ :filename => nil }
+
+ # Make a small change in the body returned for the attachment
+ new_attachment_attributes = attachment_attributes.merge(:body => "No way!",
+ :hexdigest => "74d2c0a41e074f9cebe49324d5b47414")
+
+
+ # Simulate parsing with the original attachments
+ MailHandler.stub!(:get_attachment_attributes).and_return([attachment_attributes])
+ incoming_message = incoming_messages(:useless_incoming_message)
+
+ # Extract the attachments
+ incoming_message.extract_attachments!
+
+ # delete the cached file for the main body part
+ main = incoming_message.get_main_body_text_part
+ main.delete_cached_file!
+
+ # Simulate reparsing with the slightly changed body
+ MailHandler.stub!(:get_attachment_attributes).and_return([new_attachment_attributes])
+
+ # Re-extract the attachments
+ incoming_message.extract_attachments!
+
+ attachments = incoming_message.foi_attachments
+ attachments.size.should == 1
+ attachments.first.hexdigest.should == "74d2c0a41e074f9cebe49324d5b47414"
+ attachments.first.body.should == 'No way!'
+ end
+
+end
+
diff --git a/spec/models/info_request_event_spec.rb b/spec/models/info_request_event_spec.rb
index 796f8b840..842246fd8 100644
--- a/spec/models/info_request_event_spec.rb
+++ b/spec/models/info_request_event_spec.rb
@@ -21,7 +21,7 @@ describe InfoRequestEvent do
:event_type => 'sent',
:params => {})
event.should_receive(:xapian_mark_needs_index)
- event.run_callbacks(:after_save)
+ event.run_callbacks(:save)
end
end
diff --git a/spec/models/info_request_spec.rb b/spec/models/info_request_spec.rb
index 544852f91..3eb88b2bb 100644
--- a/spec/models/info_request_spec.rb
+++ b/spec/models/info_request_spec.rb
@@ -426,8 +426,8 @@ describe InfoRequest do
before do
Time.stub!(:now).and_return(Time.utc(2007, 11, 9, 23, 59))
- @mock_comment_event = safe_mock_model(InfoRequestEvent, :created_at => Time.now - 23.days, :event_type => 'comment')
- @mock_response_event = safe_mock_model(InfoRequestEvent, :created_at => Time.now - 22.days, :event_type => 'response')
+ @mock_comment_event = mock_model(InfoRequestEvent, :created_at => Time.now - 23.days, :event_type => 'comment', :response? => false)
+ @mock_response_event = mock_model(InfoRequestEvent, :created_at => Time.now - 22.days, :event_type => 'response', :response? => true)
@info_request = InfoRequest.new(:prominence => 'normal',
:awaiting_description => true,
:info_request_events => [@mock_response_event, @mock_comment_event])
@@ -457,16 +457,16 @@ describe InfoRequest do
describe 'when applying censor rules' do
before do
- @global_rule = safe_mock_model(CensorRule, :apply_to_text! => nil,
+ @global_rule = mock_model(CensorRule, :apply_to_text! => nil,
:apply_to_binary! => nil)
- @user_rule = safe_mock_model(CensorRule, :apply_to_text! => nil,
+ @user_rule = mock_model(CensorRule, :apply_to_text! => nil,
:apply_to_binary! => nil)
- @request_rule = safe_mock_model(CensorRule, :apply_to_text! => nil,
+ @request_rule = mock_model(CensorRule, :apply_to_text! => nil,
:apply_to_binary! => nil)
- @body_rule = safe_mock_model(CensorRule, :apply_to_text! => nil,
+ @body_rule = mock_model(CensorRule, :apply_to_text! => nil,
:apply_to_binary! => nil)
- @user = safe_mock_model(User, :censor_rules => [@user_rule])
- @body = safe_mock_model(PublicBody, :censor_rules => [@body_rule])
+ @user = mock_model(User, :censor_rules => [@user_rule])
+ @body = mock_model(PublicBody, :censor_rules => [@body_rule])
@info_request = InfoRequest.new(:prominence => 'normal',
:awaiting_description => true,
:title => 'title')
diff --git a/spec/models/mail_server_log_spec.rb b/spec/models/mail_server_log_spec.rb
index d0a1d202f..2b44a4559 100644
--- a/spec/models/mail_server_log_spec.rb
+++ b/spec/models/mail_server_log_spec.rb
@@ -3,7 +3,7 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe MailServerLog do
describe ".load_file" do
before :each do
- Configuration.stub!(:incoming_email_domain).and_return("example.com")
+ AlaveteliConfiguration.stub!(:incoming_email_domain).and_return("example.com")
File.stub_chain(:stat, :mtime).and_return(DateTime.new(2012, 10, 10))
end
@@ -64,8 +64,8 @@ describe MailServerLog do
describe ".email_addresses_on_line" do
before :each do
- Configuration.stub!(:incoming_email_domain).and_return("example.com")
- Configuration.stub!(:incoming_email_prefix).and_return("foi+")
+ AlaveteliConfiguration.stub!(:incoming_email_domain).and_return("example.com")
+ AlaveteliConfiguration.stub!(:incoming_email_prefix).and_return("foi+")
end
it "recognises a single incoming email" do
@@ -106,7 +106,7 @@ describe MailServerLog do
# Postfix logs for a single email go over multiple lines. They are all tied together with the Queue ID.
# See http://onlamp.com/onlamp/2004/01/22/postfix.html
it "loads the postfix log and untangles seperate email transactions using the queue ID" do
- Configuration.stub!(:incoming_email_domain).and_return("example.com")
+ AlaveteliConfiguration.stub!(:incoming_email_domain).and_return("example.com")
log.stub!(:rewind)
ir1 = info_requests(:fancy_dog_request)
ir2 = info_requests(:naughty_chicken_request)
@@ -135,7 +135,7 @@ describe MailServerLog do
describe ".scan_for_postfix_queue_ids" do
it "returns the queue ids of interest with the connected email addresses" do
- Configuration.stub!(:incoming_email_domain).and_return("example.com")
+ AlaveteliConfiguration.stub!(:incoming_email_domain).and_return("example.com")
MailServerLog.scan_for_postfix_queue_ids(log).should == {
"CB55836EE58C" => ["request-14-e0e09f97@example.com"],
"9634B16F7F7" => ["request-10-1234@example.com"]
diff --git a/spec/models/outgoing_message_spec.rb b/spec/models/outgoing_message_spec.rb
index 51bb6fdf5..60164fb31 100644
--- a/spec/models/outgoing_message_spec.rb
+++ b/spec/models/outgoing_message_spec.rb
@@ -16,7 +16,7 @@ describe OutgoingMessage, " when making an outgoing message" do
it "should not index the email addresses" do
# also used for track emails
@outgoing_message.get_text_for_indexing.should_not include("foo@bar.com")
- end
+ end
it "should not display email addresses on page" do
@outgoing_message.get_body_for_html_display.should_not include("foo@bar.com")
@@ -33,6 +33,23 @@ describe OutgoingMessage, " when making an outgoing message" do
it "should work out a salutation" do
@om.get_salutation.should == "Dear Geraldine Quango,"
end
+
+ it 'should produce the expected text for an internal review request' do
+ public_body = mock_model(PublicBody, :name => 'A test public body')
+ info_request = mock_model(InfoRequest, :public_body => public_body,
+ :url_title => 'a_test_title',
+ :title => 'A test title',
+ :apply_censor_rules_to_text! => nil)
+ outgoing_message = OutgoingMessage.new({
+ :status => 'ready',
+ :message_type => 'followup',
+ :what_doing => 'internal_review',
+ :info_request => info_request
+ })
+ expected_text = "I am writing to request an internal review of A test public body's handling of my FOI request 'A test title'."
+ outgoing_message.body.should include(expected_text)
+ end
+
end
diff --git a/spec/models/public_body_spec.rb b/spec/models/public_body_spec.rb
index c2e0a6353..bc693b4da 100644
--- a/spec/models/public_body_spec.rb
+++ b/spec/models/public_body_spec.rb
@@ -169,6 +169,14 @@ describe PublicBody, " when saving" do
@public_body.save!
@public_body.first_letter.should == 'T'
end
+
+ it "should save the name when renaming an existing public body" do
+ public_body = public_bodies(:geraldine_public_body)
+ public_body.name = "Mark's Public Body"
+ public_body.save!
+
+ public_body.name.should == "Mark's Public Body"
+ end
end
describe PublicBody, "when searching" do
@@ -210,7 +218,7 @@ describe PublicBody, "when searching" do
end
it "should cope with same url_name across multiple locales" do
- PublicBody.with_locale(:es) do
+ I18n.with_locale(:es) do
# use the unique spanish name to retrieve and edit
body = PublicBody.find_by_url_name_with_historic('etgq')
body.short_name = 'tgq' # Same as english version
@@ -231,7 +239,7 @@ end
describe PublicBody, " when dealing public body locales" do
it "shouldn't fail if it internal_admin_body was created in a locale other than the default" do
# first time, do it with the non-default locale
- PublicBody.with_locale(:es) do
+ I18n.with_locale(:es) do
PublicBody.internal_admin_body
end
@@ -378,7 +386,7 @@ describe PublicBody, " when loading CSV files" do
PublicBody.count.should == original_count + 3
- # XXX Not sure why trying to do a PublicBody.with_locale fails here. Seems related to
+ # XXX Not sure why trying to do a I18n.with_locale fails here. Seems related to
# the way categories are loaded every time from the PublicBody class. For now we just
# test some translation was done.
body = PublicBody.find_by_name('North West Fake Authority')
diff --git a/spec/models/user_mailer_spec.rb b/spec/models/user_mailer_spec.rb
deleted file mode 100644
index 0792aaab2..000000000
--- a/spec/models/user_mailer_spec.rb
+++ /dev/null
@@ -1,8 +0,0 @@
-require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
-
-describe UserMailer, " when blah" do
- before do
- end
-end
-
-
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index e31c3f1b5..651ba4b65 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -152,10 +152,10 @@ end
describe User, "when reindexing referencing models" do
before do
- @request_event = safe_mock_model(InfoRequestEvent, :xapian_mark_needs_index => true)
- @request = safe_mock_model(InfoRequest, :info_request_events => [@request_event])
- @comment_event = safe_mock_model(InfoRequestEvent, :xapian_mark_needs_index => true)
- @comment = safe_mock_model(Comment, :info_request_events => [@comment_event])
+ @request_event = mock_model(InfoRequestEvent, :xapian_mark_needs_index => true)
+ @request = mock_model(InfoRequest, :info_request_events => [@request_event])
+ @comment_event = mock_model(InfoRequestEvent, :xapian_mark_needs_index => true)
+ @comment = mock_model(Comment, :info_request_events => [@comment_event])
@user = User.new(:comments => [@comment], :info_requests => [@request])
end
diff --git a/spec/models/xapian_spec.rb b/spec/models/xapian_spec.rb
index 8c99d550f..c40334142 100644
--- a/spec/models/xapian_spec.rb
+++ b/spec/models/xapian_spec.rb
@@ -1,3 +1,4 @@
+# encoding: utf-8
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe User, " when indexing users with Xapian" do
@@ -8,8 +9,7 @@ describe User, " when indexing users with Xapian" do
end
it "should search by name" do
- # def InfoRequest.full_search(models, query, order, ascending, collapse, per_page, page)
- xapian_object = InfoRequest.full_search([User], "Silly", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([User], "Silly", :limit => 100)
xapian_object.results.size.should == 1
xapian_object.results[0][:model].should == users(:silly_name_user)
end
@@ -17,8 +17,7 @@ describe User, " when indexing users with Xapian" do
it "should search by 'about me' text" do
user = users(:bob_smith_user)
- # def InfoRequest.full_search(models, query, order, ascending, collapse, per_page, page)
- xapian_object = InfoRequest.full_search([User], "stuff", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([User], "stuff", :limit => 100)
xapian_object.results.size.should == 1
xapian_object.results[0][:model].should == user
@@ -26,10 +25,10 @@ describe User, " when indexing users with Xapian" do
user.save!
update_xapian_index
- xapian_object = InfoRequest.full_search([User], "stuff", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([User], "stuff", :limit => 100)
xapian_object.results.size.should == 0
- xapian_object = InfoRequest.full_search([User], "aardvark", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([User], "aardvark", :limit => 100)
xapian_object.results.size.should == 1
xapian_object.results[0][:model].should == user
end
@@ -42,26 +41,26 @@ describe PublicBody, " when indexing public bodies with Xapian" do
end
it "should search index the main name field" do
- xapian_object = InfoRequest.full_search([PublicBody], "humpadinking", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([PublicBody], "humpadinking", :limit => 100)
xapian_object.results.size.should == 1
xapian_object.results[0][:model].should == public_bodies(:humpadink_public_body)
end
it "should search index the notes field" do
- xapian_object = InfoRequest.full_search([PublicBody], "albatross", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([PublicBody], "albatross", :limit => 100)
xapian_object.results.size.should == 1
xapian_object.results[0][:model].should == public_bodies(:humpadink_public_body)
end
it "should delete public bodies from the index when they are destroyed" do
- xapian_object = InfoRequest.full_search([PublicBody], "albatross", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([PublicBody], "albatross", :limit => 100)
xapian_object.results.size.should == 1
xapian_object.results[0][:model].should == public_bodies(:humpadink_public_body)
public_bodies(:forlorn_public_body).destroy
update_xapian_index
- xapian_object = InfoRequest.full_search([PublicBody], "lonely", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([PublicBody], "lonely", :limit => 100)
xapian_object.results.should == []
end
@@ -75,13 +74,13 @@ describe PublicBody, " when indexing requests by body they are to" do
end
it "should find requests to the body" do
- xapian_object = InfoRequest.full_search([InfoRequestEvent], "requested_from:tgq", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([InfoRequestEvent], "requested_from:tgq", :limit => 100)
xapian_object.results.size.should == PublicBody.find_by_url_name("tgq").info_requests.map(&:info_request_events).flatten.size
end
it "should update index correctly when URL name of body changes" do
# initial search
- xapian_object = InfoRequest.full_search([InfoRequestEvent], "requested_from:tgq", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([InfoRequestEvent], "requested_from:tgq", :limit => 100)
xapian_object.results.size.should == PublicBody.find_by_url_name("tgq").info_requests.map(&:info_request_events).flatten.size
models_found_before = xapian_object.results.map { |x| x[:model] }
@@ -93,9 +92,9 @@ describe PublicBody, " when indexing requests by body they are to" do
update_xapian_index
# check we get results expected
- xapian_object = InfoRequest.full_search([InfoRequestEvent], "requested_from:tgq", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([InfoRequestEvent], "requested_from:tgq", :limit => 100)
xapian_object.results.size.should == 0
- xapian_object = InfoRequest.full_search([InfoRequestEvent], "requested_from:gq", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([InfoRequestEvent], "requested_from:gq", :limit => 100)
xapian_object.results.size.should == PublicBody.find_by_url_name("gq").info_requests.map(&:info_request_events).flatten.size
models_found_after = xapian_object.results.map { |x| x[:model] }
@@ -113,11 +112,11 @@ describe PublicBody, " when indexing requests by body they are to" do
update_xapian_index
# check we get results expected
- xapian_object = InfoRequest.full_search([InfoRequestEvent], "requested_from:tgq", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([InfoRequestEvent], "requested_from:tgq", :limit => 100)
xapian_object.results.size.should == 0
- xapian_object = InfoRequest.full_search([InfoRequestEvent], "requested_from:gq", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([InfoRequestEvent], "requested_from:gq", :limit => 100)
xapian_object.results.size.should == 0
- xapian_object = InfoRequest.full_search([InfoRequestEvent], "requested_from:" + body.url_name, 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([InfoRequestEvent], "requested_from:#{body.url_name}", :limit => 100)
xapian_object.results.size.should == public_bodies(:geraldine_public_body).info_requests.map(&:info_request_events).flatten.size
models_found_after = xapian_object.results.map { |x| x[:model] }
end
@@ -130,13 +129,14 @@ describe User, " when indexing requests by user they are from" do
end
it "should find requests from the user" do
- xapian_object = InfoRequest.full_search([InfoRequestEvent], "requested_by:bob_smith", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([InfoRequestEvent], "requested_by:bob_smith",
+ :sort_by_prefix => 'created_at', :sort_by_ascending => true, :limit => 100)
xapian_object.results.map{|x|x[:model]}.should =~ InfoRequestEvent.all(:conditions => "info_request_id in (select id from info_requests where user_id = #{users(:bob_smith_user).id})")
end
it "should find just the sent message events from a particular user" do
- # def InfoRequest.full_search(models, query, order, ascending, collapse, per_page, page)
- xapian_object = InfoRequest.full_search([InfoRequestEvent], "requested_by:bob_smith variety:sent", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([InfoRequestEvent], "requested_by:bob_smith variety:sent",
+ :sort_by_prefix => 'created_at', :sort_by_ascending => true, :limit => 100)
xapian_object.results.map{|x|x[:model]}.should =~ InfoRequestEvent.all(:conditions => "info_request_id in (select id from info_requests where user_id = #{users(:bob_smith_user).id}) and event_type = 'sent'")
xapian_object.results[2][:model].should == info_request_events(:useless_outgoing_message_event)
xapian_object.results[1][:model].should == info_request_events(:silly_outgoing_message_event)
@@ -150,8 +150,9 @@ describe User, " when indexing requests by user they are from" do
update_xapian_index
- # def InfoRequest.full_search(models, query, order, ascending, collapse, per_page, page)
- xapian_object = InfoRequest.full_search([InfoRequestEvent], "requested_by:bob_smith", 'created_at', true, 'request_collapse', 100, 1)
+ xapian_object = ActsAsXapian::Search.new([InfoRequestEvent], "requested_by:bob_smith",
+ :sort_by_prefix => 'created_at', :sort_by_ascending => true,
+ :collapse_by_prefix => 'request_collapse', :limit => 100)
xapian_object.results.map{|x|x[:model].info_request}.should =~ InfoRequest.all(:conditions => "user_id = #{users(:bob_smith_user).id}")
end
@@ -172,8 +173,7 @@ describe User, " when indexing requests by user they are from" do
update_xapian_index
- # def InfoRequest.full_search(models, query, order, ascending, collapse, per_page, page)
- xapian_object = InfoRequest.full_search([InfoRequestEvent], "requested_by:john_k", 'created_at', true, 'request_collapse', 100, 1)
+ xapian_object = ActsAsXapian::Search.new([InfoRequestEvent], "requested_by:john_k", :limit => 100)
xapian_object.results.size.should == 1
xapian_object.results[0][:model].should == info_request_events(:silly_outgoing_message_event)
end
@@ -181,7 +181,8 @@ describe User, " when indexing requests by user they are from" do
it "should update index correctly when URL name of user changes" do
# initial search
- xapian_object = InfoRequest.full_search([InfoRequestEvent], "requested_by:bob_smith", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([InfoRequestEvent], "requested_by:bob_smith",
+ :sort_by_prefix => 'created_at', :sort_by_ascending => true, :limit => 100)
xapian_object.results.map{|x|x[:model]}.should =~ InfoRequestEvent.all(:conditions => "info_request_id in (select id from info_requests where user_id = #{users(:bob_smith_user).id})")
models_found_before = xapian_object.results.map { |x| x[:model] }
@@ -193,9 +194,10 @@ describe User, " when indexing requests by user they are from" do
update_xapian_index
# check we get results expected
- xapian_object = InfoRequest.full_search([InfoRequestEvent], "requested_by:bob_smith", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([InfoRequestEvent], "requested_by:bob_smith", :limit => 100)
xapian_object.results.size.should == 0
- xapian_object = InfoRequest.full_search([InfoRequestEvent], "requested_by:robert_smith", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([InfoRequestEvent], "requested_by:robert_smith",
+ :sort_by_prefix => 'created_at', :sort_by_ascending => true, :limit => 100)
models_found_after = xapian_object.results.map { |x| x[:model] }
models_found_before.should == models_found_after
end
@@ -208,13 +210,13 @@ describe User, " when indexing comments by user they are by" do
end
it "should find requests from the user" do
- xapian_object = InfoRequest.full_search([InfoRequestEvent], "commented_by:silly_emnameem", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([InfoRequestEvent], "commented_by:silly_emnameem", :limit => 100)
xapian_object.results.size.should == 1
end
it "should update index correctly when URL name of user changes" do
# initial search
- xapian_object = InfoRequest.full_search([InfoRequestEvent], "commented_by:silly_emnameem", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([InfoRequestEvent], "commented_by:silly_emnameem", :limit => 100)
xapian_object.results.size.should == 1
models_found_before = xapian_object.results.map { |x| x[:model] }
@@ -226,9 +228,9 @@ describe User, " when indexing comments by user they are by" do
update_xapian_index
# check we get results expected
- xapian_object = InfoRequest.full_search([InfoRequestEvent], "commented_by:silly_emnameem", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([InfoRequestEvent], "commented_by:silly_emnameem", :limit => 100)
xapian_object.results.size.should == 0
- xapian_object = InfoRequest.full_search([InfoRequestEvent], "commented_by:silly_name", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([InfoRequestEvent], "commented_by:silly_name", :limit => 100)
xapian_object.results.size.should == 1
models_found_after = xapian_object.results.map { |x| x[:model] }
@@ -243,7 +245,7 @@ describe InfoRequest, " when indexing requests by their title" do
end
it "should find events for the request" do
- xapian_object = InfoRequest.full_search([InfoRequestEvent], "request:how_much_public_money_is_wasted_o", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([InfoRequestEvent], "request:how_much_public_money_is_wasted_o", :limit => 100)
xapian_object.results.size.should == 1
xapian_object.results[0][:model] == info_request_events(:silly_outgoing_message_event)
end
@@ -257,9 +259,9 @@ describe InfoRequest, " when indexing requests by their title" do
update_xapian_index
# check we get results expected
- xapian_object = InfoRequest.full_search([InfoRequestEvent], "request:how_much_public_money_is_wasted_o", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([InfoRequestEvent], "request:how_much_public_money_is_wasted_o", :limit => 100)
xapian_object.results.size.should == 0
- xapian_object = InfoRequest.full_search([InfoRequestEvent], "request:really_naughty", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([InfoRequestEvent], "request:really_naughty", :limit => 100)
xapian_object.results.size.should == 1
xapian_object.results[0][:model] == info_request_events(:silly_outgoing_message_event)
end
@@ -277,11 +279,11 @@ describe InfoRequest, " when indexing requests by tag" do
ir.save!
update_xapian_index
- xapian_object = InfoRequest.full_search([InfoRequestEvent], "tag:bunnyrabbit", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([InfoRequestEvent], "tag:bunnyrabbit", :limit => 100)
xapian_object.results.size.should == 1
xapian_object.results[0][:model] == info_request_events(:silly_outgoing_message_event)
- xapian_object = InfoRequest.full_search([InfoRequestEvent], "tag:orangeaardvark", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([InfoRequestEvent], "tag:orangeaardvark", :limit => 100)
xapian_object.results.size.should == 0
end
end
@@ -298,14 +300,14 @@ describe PublicBody, " when indexing authorities by tag" do
body.save!
update_xapian_index
- xapian_object = InfoRequest.full_search([PublicBody], "tag:mice", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([PublicBody], "tag:mice", :limit => 100)
xapian_object.results.size.should == 1
xapian_object.results[0][:model] == public_bodies(:geraldine_public_body)
- xapian_object = InfoRequest.full_search([PublicBody], "tag:mice:3", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([PublicBody], "tag:mice:3", :limit => 100)
xapian_object.results.size.should == 1
xapian_object.results[0][:model] == public_bodies(:geraldine_public_body)
- xapian_object = InfoRequest.full_search([PublicBody], "tag:orangeaardvark", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([PublicBody], "tag:orangeaardvark", :limit => 100)
xapian_object.results.size.should == 0
end
end
@@ -327,11 +329,11 @@ describe PublicBody, " when only indexing selected things on a rebuild" do
values = false
texts = false
rebuild_xapian_index(terms, values, texts, dropfirst)
- xapian_object = InfoRequest.full_search([PublicBody], "tag:mice", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([PublicBody], "tag:mice", :limit => 100)
xapian_object.results.size.should == 0
- xapian_object = InfoRequest.full_search([PublicBody], "frobzn", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([PublicBody], "frobzn", :limit => 100)
xapian_object.results.size.should == 0
- xapian_object = InfoRequest.full_search([PublicBody], "variety:authority", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([PublicBody], "variety:authority", :limit => 100)
xapian_object.results.map{|x|x[:model]}.should =~ PublicBody.all
# only reindex 'tag' and text
dropfirst = true
@@ -339,32 +341,57 @@ describe PublicBody, " when only indexing selected things on a rebuild" do
values = false
texts = true
rebuild_xapian_index(terms, values, texts, dropfirst)
- xapian_object = InfoRequest.full_search([PublicBody], "tag:mice", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([PublicBody], "tag:mice", :limit => 100)
xapian_object.results.size.should == 1
- xapian_object = InfoRequest.full_search([PublicBody], "frobzn", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([PublicBody], "frobzn", :limit => 100)
xapian_object.results.size.should == 1
- xapian_object = InfoRequest.full_search([PublicBody], "variety:authority", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([PublicBody], "variety:authority", :limit => 100)
xapian_object.results.size.should == 0
# only reindex 'variety' term, but keeping the existing data in-place
dropfirst = false
terms = "V"
texts = false
rebuild_xapian_index(terms, values, texts, dropfirst)
- xapian_object = InfoRequest.full_search([PublicBody], "tag:mice", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([PublicBody], "tag:mice", :limit => 100)
xapian_object.results.size.should == 1
- xapian_object = InfoRequest.full_search([PublicBody], "frobzn", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([PublicBody], "frobzn", :limit => 100)
xapian_object.results.size.should == 1
- xapian_object = InfoRequest.full_search([PublicBody], "variety:authority", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([PublicBody], "variety:authority", :limit => 100)
xapian_object.results.map{|x|x[:model]}.should =~ PublicBody.all
# only reindex 'variety' term, blowing away existing data
dropfirst = true
rebuild_xapian_index(terms, values, texts, dropfirst)
- xapian_object = InfoRequest.full_search([PublicBody], "tag:mice", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([PublicBody], "tag:mice", :limit => 100)
xapian_object.results.size.should == 0
- xapian_object = InfoRequest.full_search([PublicBody], "frobzn", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([PublicBody], "frobzn", :limit => 100)
xapian_object.results.size.should == 0
- xapian_object = InfoRequest.full_search([PublicBody], "variety:authority", 'created_at', true, nil, 100, 1)
+ xapian_object = ActsAsXapian::Search.new([PublicBody], "variety:authority", :limit => 100)
xapian_object.results.map{|x|x[:model]}.should =~ PublicBody.all
end
end
+# I would expect ActsAsXapian to have some tests under vendor/plugins/acts_as_xapian, but
+# it looks like this is not the case. Putting a test here instead.
+describe ActsAsXapian::Search, "#words_to_highlight" do
+ it "should return a list of words used in the search" do
+ s = ActsAsXapian::Search.new([PublicBody], "albatross words", :limit => 100)
+ s.words_to_highlight.should == ["albatross", "words"]
+ end
+
+ it "should remove any operators" do
+ s = ActsAsXapian::Search.new([PublicBody], "albatross words tag:mice", :limit => 100)
+ s.words_to_highlight.should == ["albatross", "words"]
+ end
+
+ # This is the current behaviour but it seems a little simplistic to me
+ it "should separate punctuation" do
+ s = ActsAsXapian::Search.new([PublicBody], "The doctor's patient", :limit => 100)
+ s.words_to_highlight.should == ["The", "doctor", "s", "patient"]
+ end
+
+ it "should handle non-ascii characters" do
+ s = ActsAsXapian::Search.new([PublicBody], "adatigénylés words tag:mice", :limit => 100)
+ s.words_to_highlight.should == ["adatigénylés", "words"]
+ end
+
+end
diff --git a/spec/script/mailin_spec.rb b/spec/script/mailin_spec.rb
index f0bca2297..46ad39f7f 100644
--- a/spec/script/mailin_spec.rb
+++ b/spec/script/mailin_spec.rb
@@ -5,7 +5,7 @@ def mailin_test(email_filename)
Dir.chdir Rails.root do
xc = ExternalCommand.new("script/mailin")
mail = load_file_fixture(email_filename)
- ir = info_requests(:boring_request)
+ ir = info_requests(:other_request)
mail.gsub!('EMAIL_TO', ir.incoming_email)
mail.gsub!('EMAIL_FROM', 'responder@localhost')
xc.run(mail)
@@ -16,10 +16,24 @@ end
describe "When importing mail into the application" do
+ # Turn off transactional fixtures for this suite - incoming message is imported
+ # outside the transaction via ExternalCommand, so needs to be destroyed outside the
+ # transaction
+ self.use_transactional_fixtures = false
+
it "should not produce any output and should return a 0 code on importing a plain email" do
r = mailin_test("incoming-request-empty.email")
r.status.should == 0
r.out.should == ""
end
+ # Destroy the incoming message so that it doesn't affect other tests
+ after do
+ ir = info_requests(:other_request)
+ incoming_message = ir.incoming_messages[0]
+ incoming_message.fully_destroy
+ # And get rid of any remaining purge requests
+ PurgeRequest.destroy_all
+ end
+
end
diff --git a/spec/spec.opts b/spec/spec.opts
deleted file mode 100644
index ff5051c37..000000000
--- a/spec/spec.opts
+++ /dev/null
@@ -1,3 +0,0 @@
---colour
---format
-specdoc
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index e05ef75dd..57ab88da2 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -1,241 +1,141 @@
-require 'simplecov'
-require 'coveralls'
-
-# Generate coverage locally in html as well as in coveralls.io
-SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
- SimpleCov::Formatter::HTMLFormatter,
- Coveralls::SimpleCov::Formatter
-]
-SimpleCov.start('rails') do
- add_filter 'commonlib'
- add_filter 'vendor/plugins'
-end
-
-# This file is copied to ~/spec when you run 'ruby script/generate rspec'
-# from the project root directory.
-ENV["RAILS_ENV"] = 'test'
-require File.expand_path(File.join('..', '..', 'config', 'environment'), __FILE__)
-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'
-
-# tests assume 20 days
-config['REPLY_LATE_AFTER_DAYS'] = 20
-
-# register a fake Varnish server
-require 'fakeweb'
-FakeWeb.register_uri(:purge, %r|varnish.localdomain|, :body => "OK")
-
-# Uncomment the next line to use webrat's matchers
-#require 'webrat/integrations/rspec-rails'
-
-# Use test-specific translations
-FastGettext.add_text_domain 'app', :path => File.join(File.dirname(__FILE__), 'fixtures', 'locale'), :type => :po
-FastGettext.default_text_domain = 'app'
-Spec::Runner.configure do |config|
- # If you're not using ActiveRecord you should remove these
- # lines, delete config/database.yml and disable :active_record
- # in your config/boot.rb
-
- # fixture_path must end in a separator
- config.fixture_path = File.join(Rails.root, 'spec', 'fixtures') + File::SEPARATOR
- config.global_fixtures = :users,
- :public_bodies,
- :public_body_translations,
- :public_body_versions,
- :info_requests,
- :raw_emails,
- :incoming_messages,
- :outgoing_messages,
- :comments,
- :info_request_events,
- :track_things,
- :foi_attachments,
- :has_tag_string_tags,
- :holidays,
- :track_things_sent_emails
-
- # This section makes the garbage collector run less often to speed up tests
- last_gc_run = Time.now
-
- config.before(:each) do
- GC.disable
- end
-
- config.after(:each) do
- if Time.now - last_gc_run > 4
- GC.enable
- GC.start
- last_gc_run = Time.now
+require 'rubygems'
+require 'spork'
+#uncomment the following line to use spork with the debugger
+#require 'spork/ext/ruby-debug'
+
+Spork.prefork do
+ # Loading more in this block will cause your tests to run faster. However,
+ # if you change any configuration or code from libraries loaded here, you'll
+ # need to restart spork for it take effect.
+
+ # This file is copied to spec/ when you run 'rails generate rspec:install'
+ ENV["RAILS_ENV"] ||= 'test'
+ require File.expand_path("../../config/environment", __FILE__)
+ require 'rspec/rails'
+ require 'rspec/autorun'
+
+ # Requires supporting ruby files with custom matchers and macros, etc,
+ # in spec/support/ and its subdirectories.
+ Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
+
+ # Use test-specific translations
+ FastGettext.add_text_domain 'app', :path => File.join(File.dirname(__FILE__), 'fixtures', 'locale'), :type => :po
+ FastGettext.default_text_domain = 'app'
+
+ RSpec.configure do |config|
+ # ## Mock Framework
+ #
+ # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
+ #
+ # config.mock_with :mocha
+ # config.mock_with :flexmock
+ # config.mock_with :rr
+
+ # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
+ config.fixture_path = "#{::Rails.root}/spec/fixtures"
+
+ # The order (!) of this is important thanks to foreign keys
+ config.global_fixtures = :users,
+ :public_bodies,
+ :public_body_translations,
+ :public_body_versions,
+ :info_requests,
+ :raw_emails,
+ :incoming_messages,
+ :outgoing_messages,
+ :comments,
+ :info_request_events,
+ :track_things,
+ :has_tag_string_tags,
+ :holidays
+
+ # If you're not using ActiveRecord, or you'd prefer not to run each of your
+ # examples within a transaction, remove the following line or assign false
+ # instead of true.
+ config.use_transactional_fixtures = true
+
+ # If true, the base class of anonymous controllers will be inferred
+ # automatically. This will be the default behavior in future versions of
+ # rspec-rails.
+ config.infer_base_class_for_anonymous_controllers = false
+
+ # Run specs in random order to surface order dependencies. If you find an
+ # order dependency and want to debug it, you can fix the order by providing
+ # the seed, which is printed after each run.
+ # --seed 1234
+ config.order = "random"
+
+ # This is a workaround for a strange thing where ActionMailer::Base.deliveries isn't being
+ # cleared out correctly in controller specs. So, do it here for everything.
+ config.before(:each) do
+ ActionMailer::Base.deliveries = []
end
- end
- # == Fixtures
- #
- # You can declare fixtures for each example_group like this:
- # describe "...." do
- # fixtures :table_a, :table_b
- #
- # Alternatively, if you prefer to declare them only once, you can
- # do so right here. Just uncomment the next line and replace the fixture
- # names with your fixtures.
- #
- # config.global_fixtures = :table_a, :table_b
- #
- # If you declare global fixtures, be aware that they will be declared
- # for all of your examples, even those that don't use them.
- #
- # You can also declare which fixtures to use (for example fixtures for test/fixtures):
- #
- # config.fixture_path = Rails.root + '/spec/fixtures/'
- #
- # == Mock Framework
- #
- # RSpec uses its own mocking framework by default. If you prefer to
- # use mocha, flexmock or RR, uncomment the appropriate line:
- #
- # config.mock_with :mocha
- # config.mock_with :flexmock
- # config.mock_with :rr
- #
- # == Notes
- #
- # For more information take a look at Spec::Runner::Configuration and Spec::Runner
-end
-
-# XXX No idea what namespace/class/module to put this in
-def receive_incoming_mail(email_name, email_to, email_from = 'geraldinequango@localhost')
- email_name = file_fixture_name(email_name)
- content = File.read(email_name)
- content.gsub!('EMAIL_TO', email_to)
- content.gsub!('EMAIL_FROM', email_from)
- RequestMailer.receive(content)
-end
-
-def file_fixture_name(file_name)
- return File.join(Spec::Runner.configuration.fixture_path, "files", file_name)
-end
+ # Any test that messes with the locale needs to restore the state afterwards so that it
+ # doesn't interfere with any subsequent tests. This is made more complicated by the
+ # ApplicationController#set_gettext_locale which sets the locale and so you may be setting
+ # the locale in your tests and not even realising it. So, let's make things easier for
+ # ourselves and just always restore the locale for all tests.
+ config.before(:each) do
+ @save_i18n_locale = I18n.locale
+ end
-def load_file_fixture(file_name, as_binary=false)
- file_name = file_fixture_name(file_name)
- content = File.open(file_name, 'r') do |file|
- if as_binary
- file.set_encoding(Encoding::BINARY) if file.respond_to?(:set_encoding)
- end
- file.read
+ config.after(:each) do
+ I18n.locale = @save_i18n_locale
end
- return content
-end
-def parse_all_incoming_messages
- IncomingMessage.find(:all).each{ |x| x.parse_raw_email! }
-end
+ # This section makes the garbage collector run less often to speed up tests
+ last_gc_run = Time.now
-def load_raw_emails_data
- raw_emails_yml = File.join(Spec::Runner.configuration.fixture_path, "raw_emails.yml")
- for raw_email_id in YAML::load_file(raw_emails_yml).map{|k,v| v["id"]} do
- raw_email = RawEmail.find(raw_email_id)
- raw_email.data = load_file_fixture("raw_emails/%d.email" % [raw_email_id])
+ config.before(:each) do
+ GC.disable
end
-end
-# Rebuild the current xapian index
-def rebuild_xapian_index(terms = true, values = true, texts = true, dropfirst = true)
- if dropfirst
- begin
- ActsAsXapian.readable_init
- FileUtils.rm_r(ActsAsXapian.db_path)
- rescue RuntimeError
- end
- ActsAsXapian.writable_init
- ActsAsXapian.writable_db.close
+ config.after(:each) do
+ if Time.now - last_gc_run > 4
+ GC.enable
+ GC.start
+ last_gc_run = Time.now
+ end
end
- parse_all_incoming_messages
- # safe_rebuild=true, which involves forking to avoid memory leaks, doesn't work well with rspec.
- # unsafe is significantly faster, and we can afford possible memory leaks while testing.
- models = [PublicBody, User, InfoRequestEvent]
- ActsAsXapian.rebuild_index(models, verbose=false, terms, values, texts, safe_rebuild=false)
-end
-
-# Create a clean xapian index based on the fixture files and the raw_email data.
-def create_fixtures_xapian_index
- load_raw_emails_data
- rebuild_xapian_index
-end
-
-def update_xapian_index
- ActsAsXapian.update_index(flush_to_disk=false, verbose=false)
-end
-
-# Copy the xapian index created in create_fixtures_xapian_index to a temporary
-# copy at the same level and point xapian at the copy
-def get_fixtures_xapian_index()
- # Create a base index for the fixtures if not already created
- $existing_xapian_db ||= create_fixtures_xapian_index
- # Store whatever the xapian db path is originally
- $original_xapian_path ||= ActsAsXapian.db_path
- path_array = $original_xapian_path.split(File::Separator)
- path_array.pop
- temp_path = File.join(path_array, 'test.temp')
- FileUtils.remove_entry_secure(temp_path, force=true)
- FileUtils.cp_r($original_xapian_path, temp_path)
- ActsAsXapian.db_path = temp_path
-end
-
-def basic_auth_login(request, username = nil, password = nil)
- username = Configuration::admin_username if username.nil?
- password = Configuration::admin_password if password.nil?
- request.env["HTTP_AUTHORIZATION"] = "Basic " + Base64::encode64("#{username}:#{password}")
-end
-
-# to_ary differs in Ruby 1.8 and 1.9
-# @see http://yehudakatz.com/2010/01/02/the-craziest-fing-bug-ive-ever-seen/
-def safe_mock_model(model, args = {})
- mock = mock_model(model, args)
- mock.should_receive(:to_ary).any_number_of_times
- mock
-end
-
-def get_fixture_mail(filename)
- MailHandler.mail_from_raw_email(load_file_fixture(filename))
-end
-
-def load_test_categories
- PublicBodyCategories.add(:en, [
- "Local and regional",
- [ "local_council", "Local councils", "a local council" ],
- "Miscellaneous",
- [ "other", "Miscellaneous", "miscellaneous" ],])
-end
+ end
+ # XXX No idea what namespace/class/module to put this in
+ # Create a clean xapian index based on the fixture files and the raw_email data.
+ def create_fixtures_xapian_index
+ load_raw_emails_data
+ rebuild_xapian_index
+ end
-# Monkeypatch applicationcontroller because the `render_to_string`
-# method in the original breaks all the rspec test assertions such as
-# `should render_template('foo')`. Same problem as
-# http://stackoverflow.com/questions/8174415/is-it-possible-to-assert-template-or-render-template-against-the-same-partial-wi
-# - a bug in either Rails or Rspec I don't have the time to fix :(
+ def with_env_tz(new_tz = 'US/Eastern')
+ old_tz, ENV['TZ'] = ENV['TZ'], new_tz
+ yield
+ ensure
+ old_tz ? ENV['TZ'] = old_tz : ENV.delete('TZ')
+ end
-class ApplicationController < ActionController::Base
- def set_popup_banner
- @popup_banner = nil
- end
-end
+ def with_active_record_default_timezone(zone)
+ old_zone, ActiveRecord::Base.default_timezone = ActiveRecord::Base.default_timezone, zone
+ yield
+ ensure
+ ActiveRecord::Base.default_timezone = old_zone
+ end
+ def load_test_categories
+ PublicBodyCategories.add(:en, [
+ "Local and regional",
+ [ "local_council", "Local councils", "a local council" ],
+ "Miscellaneous",
+ [ "other", "Miscellaneous", "miscellaneous" ],])
+ end
-def with_env_tz(new_tz = 'US/Eastern')
- old_tz, ENV['TZ'] = ENV['TZ'], new_tz
- yield
-ensure
- old_tz ? ENV['TZ'] = old_tz : ENV.delete('TZ')
+ def basic_auth_login(request, username = nil, password = nil)
+ username = AlaveteliConfiguration::admin_username if username.nil?
+ password = AlaveteliConfiguration::admin_password if password.nil?
+ request.env["HTTP_AUTHORIZATION"] = "Basic " + Base64::encode64("#{username}:#{password}")
+ end
end
-def with_active_record_default_timezone(zone)
- old_zone, ActiveRecord::Base.default_timezone = ActiveRecord::Base.default_timezone, zone
- yield
-ensure
- ActiveRecord::Base.default_timezone = old_zone
+Spork.each_run do
+ # This code will be run each time you run your specs.
end
diff --git a/spec/support/email_helpers.rb b/spec/support/email_helpers.rb
new file mode 100644
index 000000000..252b1f137
--- /dev/null
+++ b/spec/support/email_helpers.rb
@@ -0,0 +1,23 @@
+def load_raw_emails_data
+ raw_emails_yml = File.join(RSpec.configuration.fixture_path, "raw_emails.yml")
+ for raw_email_id in YAML::load_file(raw_emails_yml).map{|k,v| v["id"]} do
+ raw_email = RawEmail.find(raw_email_id)
+ raw_email.data = load_file_fixture("raw_emails/%d.email" % [raw_email_id])
+ end
+end
+
+def receive_incoming_mail(email_name, email_to, email_from = 'geraldinequango@localhost')
+ email_name = file_fixture_name(email_name)
+ content = File.open(email_name, 'rb') { |f| f.read }
+ content.gsub!('EMAIL_TO', email_to)
+ content.gsub!('EMAIL_FROM', email_from)
+ RequestMailer.receive(content)
+end
+
+def get_fixture_mail(filename)
+ MailHandler.mail_from_raw_email(load_file_fixture(filename))
+end
+
+def parse_all_incoming_messages
+ IncomingMessage.find(:all).each{ |x| x.parse_raw_email! }
+end
diff --git a/spec/support/load_file_fixtures.rb b/spec/support/load_file_fixtures.rb
new file mode 100644
index 000000000..a54505e99
--- /dev/null
+++ b/spec/support/load_file_fixtures.rb
@@ -0,0 +1,8 @@
+def file_fixture_name(file_name)
+ return File.join(RSpec.configuration.fixture_path, "files", file_name)
+end
+
+def load_file_fixture(file_name)
+ file_name = file_fixture_name(file_name)
+ return File.open(file_name, 'rb') { |f| f.read }
+end
diff --git a/spec/support/xapian_index.rb b/spec/support/xapian_index.rb
new file mode 100644
index 000000000..344c28ebb
--- /dev/null
+++ b/spec/support/xapian_index.rb
@@ -0,0 +1,42 @@
+# Rebuild the current xapian index
+def rebuild_xapian_index(terms = true, values = true, texts = true, dropfirst = true)
+ if dropfirst
+ begin
+ ActsAsXapian.readable_init
+ FileUtils.rm_r(ActsAsXapian.db_path)
+ rescue RuntimeError
+ end
+ ActsAsXapian.writable_init
+ ActsAsXapian.writable_db.close
+ end
+ parse_all_incoming_messages
+ # safe_rebuild=true, which involves forking to avoid memory leaks, doesn't work well with rspec.
+ # unsafe is significantly faster, and we can afford possible memory leaks while testing.
+ models = [PublicBody, User, InfoRequestEvent]
+ ActsAsXapian.rebuild_index(models, verbose=false, terms, values, texts, safe_rebuild=false)
+end
+
+def update_xapian_index
+ ActsAsXapian.update_index(flush_to_disk=false, verbose=false)
+end
+
+# Copy the xapian index created in create_fixtures_xapian_index to a temporary
+# copy at the same level and point xapian at the copy
+def get_fixtures_xapian_index()
+ # Create a base index for the fixtures if not already created
+ $existing_xapian_db ||= create_fixtures_xapian_index
+ # Store whatever the xapian db path is originally
+ $original_xapian_path ||= ActsAsXapian.db_path
+ path_array = $original_xapian_path.split(File::Separator)
+ path_array.pop
+ temp_path = File.join(path_array, 'test.temp')
+ FileUtils.remove_entry_secure(temp_path, force=true)
+ FileUtils.cp_r($original_xapian_path, temp_path)
+ ActsAsXapian.db_path = temp_path
+end
+
+# Create a clean xapian index based on the fixture files and the raw_email data.
+def create_fixtures_xapian_index
+ load_raw_emails_data
+ rebuild_xapian_index
+end
diff --git a/spec/views/public_body/show.rhtml_spec.rb b/spec/views/public_body/show.html.erb_spec.rb
index 23e92dedd..0559fc8ef 100644
--- a/spec/views/public_body/show.rhtml_spec.rb
+++ b/spec/views/public_body/show.html.erb_spec.rb
@@ -1,6 +1,6 @@
require File.expand_path(File.join('..', '..', '..', 'spec_helper'), __FILE__)
-describe "when viewing a body" do
+describe "public_body/show" do
before do
@pb = mock_model(PublicBody,
:name => 'Test Quango',
@@ -17,59 +17,57 @@ describe "when viewing a body" do
@pb.stub!(:is_requestable?).and_return(true)
@pb.stub!(:has_notes?).and_return(false)
@pb.stub!(:has_tag?).and_return(false)
- @xap = mock_model(ActsAsXapian::Search, :matches_estimated => 2)
+ @xap = mock(ActsAsXapian::Search, :matches_estimated => 2)
@xap.stub!(:results).and_return([
{ :model => mock_event },
{ :model => mock_event }
])
- assigns[:public_body] = @pb
- assigns[:track_thing] = mock_model(TrackThing,
- :track_type => 'public_body_updates', :public_body => @pb, :params => {})
- assigns[:xapian_requests] = @xap
- assigns[:page] = 1
- assigns[:per_page] = 10
- # work round a bug in ActionController::TestRequest; allows request.query_string to work in the template
- request.env["REQUEST_URI"] = ""
+ assign(:public_body, @pb)
+ assign(:track_thing, mock_model(TrackThing,
+ :track_type => 'public_body_updates', :public_body => @pb, :params => {}))
+ assign(:xapian_requests, @xap)
+ assign(:page, 1)
+ assign(:per_page, 10)
end
it "should be successful" do
- render "public_body/show"
- response.should be_success
+ render
+ controller.response.should be_success
end
it "should show the body's name" do
- render "public_body/show"
- response.should have_tag("h1", "Test Quango")
+ render
+ response.should have_selector('h1', :content => "Test Quango")
end
it "should tell total number of requests" do
- render "public_body/show"
- response.should include_text("4 Freedom of Information requests")
+ render
+ response.should match "4 Freedom of Information requests"
end
it "should cope with no results" do
@pb.stub!(:info_requests).and_return([])
- render "public_body/show"
- response.should have_tag("p", /Nobody has made any Freedom of Information requests/m)
+ render
+ response.should have_selector('p', :content => "Nobody has made any Freedom of Information requests")
end
it "should cope with Xapian being down" do
- assigns[:xapian_requests] = nil
- render "public_body/show"
- response.should have_tag("p", /The search index is currently offline/m)
+ assign(:xapian_requests, nil)
+ render
+ response.should match "The search index is currently offline"
end
it "should link to Charity Commission site if we have numbers to do so" do
@pb.stub!(:has_tag?).and_return(true)
@pb.stub!(:get_tag_values).and_return(['98765', '12345'])
- render "public_body/show"
- response.should have_tag("div#header_right") do
- with_tag("a[href*=?]", /charity-commission.gov.uk.*RegisteredCharityNumber=98765$/)
+ render
+ response.should have_selector("div#header_right") do
+ have_selector "a", :href => /charity-commission.gov.uk.*RegisteredCharityNumber=98765$/
end
- response.should have_tag("div#header_right") do
- with_tag("a[href*=?]", /charity-commission.gov.uk.*RegisteredCharityNumber=12345$/)
+ response.should have_selector("div#header_right") do
+ have_selector "a", :href => /www.charity-commission.gov.uk.*RegisteredCharityNumber=12345$/
end
end
@@ -77,17 +75,17 @@ describe "when viewing a body" do
@pb.stub!(:has_tag?).and_return(true)
@pb.stub!(:get_tag_values).and_return(['SC1234'])
- render "public_body/show"
- response.should have_tag("div#header_right") do
- with_tag("a[href*=?]", /www.oscr.org.uk.*id=SC1234$/)
+ render
+ response.should have_selector("div#header_right") do
+ have_selector "a", :href => /www.oscr.org.uk.*id=SC1234$/
end
end
it "should not link to Charity Commission site if we don't have number" do
- render "public_body/show"
- response.should have_tag("div#header_right") do
- without_tag("a[href*=?]", /charity-commission.gov.uk/)
+ render
+ response.should have_selector("div#header_right") do
+ have_selector "a", :href => /charity-commission.gov.uk/
end
end
diff --git a/spec/views/reports/new.erb_spec.rb b/spec/views/reports/new.erb_spec.rb
new file mode 100644
index 000000000..66b738261
--- /dev/null
+++ b/spec/views/reports/new.erb_spec.rb
@@ -0,0 +1,29 @@
+require File.expand_path(File.join('..', '..', '..', 'spec_helper'), __FILE__)
+
+describe 'reports/new.html.erb' do
+ let(:info_request) { mock_model(InfoRequest, :url_title => "foo", :report_reasons => ["Weird"]) }
+ before :each do
+ assign(:info_request, info_request)
+ end
+
+ it "should show a form" do
+ render
+ rendered.should have_selector("form")
+ end
+
+ context "request has already been reported" do
+ before :each do
+ info_request.stub!(:attention_requested).and_return(true)
+ end
+
+ it "should not show a form" do
+ render
+ rendered.should_not have_selector("form")
+ end
+
+ it "should say it's already been reported" do
+ render
+ rendered.should contain("This request has already been reported")
+ end
+ end
+end
diff --git a/spec/views/request/_after_actions.rhtml_spec.rb b/spec/views/request/_after_actions.html.erb_spec.rb
index 548990c9f..ae398f4ce 100644
--- a/spec/views/request/_after_actions.rhtml_spec.rb
+++ b/spec/views/request/_after_actions.html.erb_spec.rb
@@ -15,51 +15,27 @@ describe 'when displaying actions that can be taken with regard to a request' do
:comments_allowed? => true,
:url_title => 'test_request',
:all_can_view? => true)
- assigns[:info_request] = @mock_request
- end
-
- def do_render
- render :partial => 'request/after_actions'
- end
-
- def expect_owner_div
- do_render
- response.should have_tag('div#owner_actions'){ yield }
- end
-
- def expect_anyone_div
- do_render
- response.should have_tag('div#anyone_actions'){ yield }
- end
-
- def expect_owner_link(text)
- expect_owner_div{ with_tag('a', :text => text) }
- end
-
- def expect_no_owner_link(text)
- expect_owner_div{ without_tag('a', :text => text) }
- end
-
- def expect_anyone_link(text)
- expect_anyone_div{ with_tag('a', :text => text) }
- end
-
- def expect_no_anyone_link(text)
- expect_anyone_div{ without_tag('a', :text => text) }
+ assign :info_request, @mock_request
end
describe 'if the request is old and unclassified' do
before do
- assigns[:old_unclassified] = true
+ assign :old_unclassified, true
end
it 'should not display a link for the request owner to update the status of the request' do
- expect_no_owner_link('Update the status of this request')
+ render :partial => 'request/after_actions'
+ response.should have_selector('div#owner_actions') do |div|
+ div.should_not have_selector('a', :content => 'Update the status of this request')
+ end
end
it 'should display a link for anyone to update the status of the request' do
- expect_anyone_link('Update the status of this request')
+ render :partial => 'request/after_actions'
+ response.should have_selector('div#anyone_actions') do |div|
+ div.should have_selector('a', :content => 'Update the status of this request')
+ end
end
end
@@ -67,27 +43,39 @@ describe 'when displaying actions that can be taken with regard to a request' do
describe 'if the request is not old and unclassified' do
before do
- assigns[:old_unclassified] = false
+ assign :old_unclassified, false
end
it 'should display a link for the request owner to update the status of the request' do
- expect_owner_link('Update the status of this request')
+ render :partial => 'request/after_actions'
+ response.should have_selector('div#owner_actions') do |div|
+ div.should have_selector('a', :content => 'Update the status of this request')
+ end
end
it 'should not display a link for anyone to update the status of the request' do
- expect_no_anyone_link('Update the status of this request')
+ render :partial => 'request/after_actions'
+ response.should have_selector('div#anyone_actions') do |div|
+ div.should_not have_selector('a', :content => 'Update the status of this request')
+ end
end
end
it 'should display a link for the request owner to request a review' do
- expect_owner_link('Request an internal review')
+ render :partial => 'request/after_actions'
+ response.should have_selector('div#owner_actions') do |div|
+ div.should have_selector('a', :content => 'Request an internal review')
+ end
end
describe 'if the request is viewable by all' do
it 'should display the link to download the entire request' do
- expect_anyone_link('Download a zip file of all correspondence')
+ render :partial => 'request/after_actions'
+ response.should have_selector('div#anyone_actions') do |div|
+ div.should have_selector('a', :content => 'Download a zip file of all correspondence')
+ end
end
end
@@ -95,7 +83,10 @@ describe 'when displaying actions that can be taken with regard to a request' do
it 'should not display the link to download the entire request' do
@mock_request.stub!(:all_can_view?).and_return(false)
- expect_no_anyone_link('Download a zip file of all correspondence')
+ render :partial => 'request/after_actions'
+ response.should have_selector('div#anyone_actions') do |div|
+ div.should_not have_selector('a', :content => 'Download a zip file of all correspondence')
+ end
end
end
diff --git a/spec/views/request/_describe_state.rhtml_spec.rb b/spec/views/request/_describe_state.html.erb_spec.rb
index 18778d5d2..88dea53c5 100644
--- a/spec/views/request/_describe_state.rhtml_spec.rb
+++ b/spec/views/request/_describe_state.html.erb_spec.rb
@@ -4,12 +4,12 @@ describe 'when showing the form for describing the state of a request' do
def expect_radio_button(value)
do_render
- response.should have_tag("input[type=radio][value=#{value}]")
+ response.should have_selector('input', :type => 'radio', :value => value)
end
def expect_no_radio_button(value)
do_render
- response.should_not have_tag("input[type=radio][value=#{value}]")
+ response.should_not have_selector('input', :type => 'radio', :value => value)
end
def do_render
@@ -24,25 +24,25 @@ describe 'when showing the form for describing the state of a request' do
:user_name => @mock_user.name,
:is_external? => false
)
- assigns[:info_request] = @mock_request
+ assign :info_request, @mock_request
end
describe 'if the user is a regular user (not the request owner)' do
before do
- assigns[:is_owning_user] = false
+ assign :is_owning_user, false
end
describe 'if the request is not old and unclassified' do
it 'should not show the form' do
do_render
- response.should_not have_tag('h2', :text => 'What best describes the status of this request now?')
+ response.should_not have_selector('h2', :content => 'What best describes the status of this request now?')
end
it 'should give a link to login' do
do_render
- response.should have_tag('a', :text => 'sign in')
+ response.should have_selector('a', :content => 'sign in')
end
end
@@ -50,22 +50,22 @@ describe 'when showing the form for describing the state of a request' do
describe 'if the request is old and unclassified' do
before do
- assigns[:old_unclassified] = true
+ assign :old_unclassified, true
end
it 'should not show the form' do
do_render
- response.should_not have_tag('h2', :text => 'What best describes the status of this request now?')
+ response.should_not have_selector('h2', :content => 'What best describes the status of this request now?')
end
it 'should show the form for someone else to classify the request' do
do_render
- response.should have_tag('h2', :text => /We need your help/)
+ response.should have_selector('h2', :content => 'We need your help')
end
it 'should not give a link to login' do
do_render
- response.should_not have_tag('a', :text => 'sign in')
+ response.should_not have_selector('a', :content => 'sign in')
end
end
@@ -74,7 +74,7 @@ describe 'when showing the form for describing the state of a request' do
describe 'if showing the form to the user owning the request' do
before do
- assigns[:is_owning_user] = true
+ assign :is_owning_user, true
end
describe 'when the request is not in internal review' do
@@ -100,7 +100,7 @@ describe 'when showing the form for describing the state of a request' do
describe 'when the user has asked to update the status of the request' do
before do
- assigns[:update_status] = true
+ assign :update_status, true
end
it 'should show a radio button to set the status to "internal_review"' do
@@ -129,7 +129,7 @@ describe 'when showing the form for describing the state of a request' do
it 'should show the text "The review has finished and overall:"' do
do_render
- response.should have_tag('p', :text => 'The review has finished and overall:')
+ response.should have_selector('p', :content => 'The review has finished and overall:')
end
end
@@ -170,4 +170,4 @@ describe 'when showing the form for describing the state of a request' do
end
end
-end \ No newline at end of file
+end
diff --git a/spec/views/request/list.rhtml_spec.rb b/spec/views/request/list.html.erb_spec.rb
index 137bc359d..521d946bc 100644
--- a/spec/views/request/list.rhtml_spec.rb
+++ b/spec/views/request/list.html.erb_spec.rb
@@ -1,12 +1,10 @@
require File.expand_path(File.join('..', '..', '..', 'spec_helper'), __FILE__)
-describe "when listing recent requests" do
+describe "request/list" do
before do
- assigns[:page] = 1
- assigns[:per_page] = 10
- # work round a bug in ActionController::TestRequest; allows request.query_string to work in the template
- request.env["REQUEST_URI"] = ""
+ assign :page, 1
+ assign :per_page, 10
end
def make_mock_event
@@ -30,21 +28,21 @@ describe "when listing recent requests" do
end
it "should be successful" do
- assigns[:list_results] = [ make_mock_event, make_mock_event ]
- assigns[:matches_estimated] = 2
- assigns[:show_no_more_than] = 100
- render "request/list"
- response.should have_tag("div.request_listing")
- response.should_not have_tag("p", /No requests of this sort yet/m)
+ assign :list_results, [ make_mock_event, make_mock_event ]
+ assign :matches_estimated, 2
+ assign :show_no_more_than, 100
+ render
+ response.should have_selector("div.request_listing")
+ response.should_not have_selector("p", :content => "No requests of this sort yet")
end
it "should cope with no results" do
- assigns[:list_results] = [ ]
- assigns[:matches_estimated] = 0
- assigns[:show_no_more_than] = 0
- render "request/list"
- response.should have_tag("p", /No requests of this sort yet/m)
- response.should_not have_tag("div.request_listing")
+ assign :list_results, [ ]
+ assign :matches_estimated, 0
+ assign :show_no_more_than, 0
+ render
+ response.should have_selector("p", :content => "No requests of this sort yet")
+ response.should_not have_selector("div.request_listing")
end
end
diff --git a/spec/views/request/show.rhtml_spec.rb b/spec/views/request/show.html.erb_spec.rb
index a22f29951..4578268b2 100644
--- a/spec/views/request/show.rhtml_spec.rb
+++ b/spec/views/request/show.html.erb_spec.rb
@@ -1,6 +1,6 @@
require File.expand_path(File.join('..', '..', '..', 'spec_helper'), __FILE__)
-describe 'when viewing an information request' do
+describe 'request/show' do
before do
@mock_body = mock_model(PublicBody, :name => 'test body',
@@ -19,36 +19,28 @@ describe 'when viewing an information request' do
:is_external? => false,
:calculate_status => 'waiting_response',
:date_response_required_by => Date.today,
- :prominence => 'normal')
+ :prominence => 'normal',
+ :comments_allowed? => true,
+ :all_can_view? => true,
+ :url_title => 'test_request')
end
def request_page
- assigns[:info_request] = @mock_request
- assigns[:info_request_events] = []
- assigns[:status] = @mock_request.calculate_status
- template.stub!(:render_partial)
- render 'request/show'
- end
-
- it 'should show the sidebar' do
- template.should_receive(:render_partial).with(:partial => 'sidebar', :locals => {})
- request_page
- end
-
- it 'should show the actions people can take' do
- template.should_receive(:render_partial).with(:partial => 'after_actions', :locals => {})
- request_page
+ assign :info_request, @mock_request
+ assign :info_request_events, []
+ assign :status, @mock_request.calculate_status
+ render
end
describe 'when a status update has been requested' do
before do
- assigns[:update_status] = true
+ assign :update_status, true
end
it 'should show the first form for describing the state of the request' do
request_page
- response.should have_tag("div.describe_state_form#describe_state_form_1")
+ response.should have_selector("div.describe_state_form#describe_state_form_1")
end
end
@@ -61,12 +53,12 @@ describe 'when viewing an information request' do
it 'should show the first form for describing the state of the request' do
request_page
- response.should have_tag("div.describe_state_form#describe_state_form_1")
+ response.should have_selector("div.describe_state_form#describe_state_form_1")
end
it 'should show the second form for describing the state of the request' do
request_page
- response.should have_tag("div.describe_state_form#describe_state_form_2")
+ response.should have_selector("div.describe_state_form#describe_state_form_2")
end
end
@@ -74,7 +66,7 @@ describe 'when viewing an information request' do
describe 'when the user is the request owner' do
before do
- assigns[:is_owning_user] = true
+ assign :is_owning_user, true
end
describe 'when the request status is "waiting clarification"' do
@@ -88,18 +80,13 @@ describe 'when viewing an information request' do
before do
@mock_response = mock_model(IncomingMessage)
@mock_request.stub!(:get_last_response).and_return(@mock_response)
- @old_filters = ActionController::Routing::Routes.filters
- ActionController::Routing::Routes.filters = RoutingFilter::Chain.new
- end
- after do
- ActionController::Routing::Routes.filters = @old_filters
end
it 'should show a link to follow up the last response with clarification' do
request_page
- expected_url = "/request/#{@mock_request.id}/response/#{@mock_response.id}#followup"
- response.should have_tag("a[href=#{expected_url}]", :text => 'send a follow up message')
+ expected_url = "/en/request/#{@mock_request.id}/response/#{@mock_response.id}#followup"
+ response.should have_selector("a", :href => expected_url, :content => 'send a follow up message')
end
end
@@ -108,18 +95,13 @@ describe 'when viewing an information request' do
before do
@mock_request.stub!(:get_last_response).and_return(nil)
- @old_filters = ActionController::Routing::Routes.filters
- ActionController::Routing::Routes.filters = RoutingFilter::Chain.new
- end
- after do
- ActionController::Routing::Routes.filters = @old_filters
end
it 'should show a link to follow up the request without reference to a specific response' do
request_page
- expected_url = "/request/#{@mock_request.id}/response#followup"
- response.should have_tag("a[href=#{expected_url}]", :text => 'send a follow up message')
+ expected_url = "/en/request/#{@mock_request.id}/response#followup"
+ response.should have_selector("a", :href => expected_url, :content => 'send a follow up message')
end
end
end
diff --git a/spec/views/request_game/play.rhtml_spec.rb b/spec/views/request_game/play.html.erb_spec.rb
index 24fb6d75d..b5cf57c23 100644
--- a/spec/views/request_game/play.rhtml_spec.rb
+++ b/spec/views/request_game/play.html.erb_spec.rb
@@ -1,6 +1,6 @@
require File.expand_path(File.join('..', '..', '..', 'spec_helper'), __FILE__)
-describe 'when viewing the request game' do
+describe 'request_game/play' do
before do
@mock_body = mock_model(PublicBody, :name => 'test body',
@@ -22,15 +22,15 @@ describe 'when viewing the request game' do
:initial_request_text => 'hi there',
:display_status => 'Awaiting categorisation',
:created_at => Time.now)
- assigns[:league_table_28_days] = []
- assigns[:league_table_all_time] = []
- assigns[:requests] = [@mock_request]
- assigns[:play_urls] = true
+ assign :league_table_28_days, []
+ assign :league_table_all_time, []
+ assign :requests, [@mock_request]
+ assign :play_urls, true
end
it 'should show the correct url for a request' do
- render "request_game/play"
- response.should include_text("/categorise/request/a_test_request")
+ render
+ response.should include("/categorise/request/a_test_request")
end
diff --git a/vendor/plugins/active_record_base_without_table/CHANGELOG b/vendor/plugins/active_record_base_without_table/CHANGELOG
deleted file mode 100644
index c74809532..000000000
--- a/vendor/plugins/active_record_base_without_table/CHANGELOG
+++ /dev/null
@@ -1,3 +0,0 @@
-[27 April 2007]
-
-* Correctly cache class instance variables containing column information [Reported by Nils Jonsson]
diff --git a/vendor/plugins/active_record_base_without_table/MIT-LICENSE b/vendor/plugins/active_record_base_without_table/MIT-LICENSE
deleted file mode 100644
index 602bda208..000000000
--- a/vendor/plugins/active_record_base_without_table/MIT-LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright (c) 2006 Jonathan Viney
-
-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.
diff --git a/vendor/plugins/active_record_base_without_table/README b/vendor/plugins/active_record_base_without_table/README
deleted file mode 100644
index 8200d7ad6..000000000
--- a/vendor/plugins/active_record_base_without_table/README
+++ /dev/null
@@ -1,29 +0,0 @@
-= ActiveRecordBaseWithoutTable
-
-If you find this plugin useful, please consider a donation to show your support!
-
- http://www.paypal.com/cgi-bin/webscr?cmd=_send-money
-
- Email address: jonathan.viney@gmail.com
-
-== Instructions
-
-* For edge Rails r7315 or above use http://svn.viney.net.nz/things/branches/active_record_base_without_table
-
-Get the power of ActiveRecord models, including validation, without having a table in the database.
-
- class Contact < ActiveRecord::BaseWithoutTable
- column :name, :string
- column :email_address, :string
- column :message, :text
-
- validates_presence_of :name, :email_address, :string
- end
-
-This model can be used just like a regular model based on a table, except it will never be saved to the database.
-
-There is a good blog post available on the plugin:
-
- http://www.kangarooit.com/developer_blog/2007/02/email-form-validation-in-ruby-on-rails.php
-
-Any bugs, questions, comments please feel free to email me: jonathan.viney@gmail.com
diff --git a/vendor/plugins/active_record_base_without_table/Rakefile b/vendor/plugins/active_record_base_without_table/Rakefile
deleted file mode 100644
index ac9244515..000000000
--- a/vendor/plugins/active_record_base_without_table/Rakefile
+++ /dev/null
@@ -1,22 +0,0 @@
-require 'rake'
-require 'rake/testtask'
-require 'rake/rdoctask'
-
-desc 'Default: run unit tests.'
-task :default => :test
-
-desc 'Test the active_record_base_without_table plugin.'
-Rake::TestTask.new(:test) do |t|
- t.libs << 'lib'
- t.pattern = 'test/**/*_test.rb'
- t.verbose = true
-end
-
-desc 'Generate documentation for the active_record_base_without_table plugin.'
-Rake::RDocTask.new(:rdoc) do |rdoc|
- rdoc.rdoc_dir = 'rdoc'
- rdoc.title = 'ActiveRecordBaseWithoutTable'
- rdoc.options << '--line-numbers' << '--inline-source'
- rdoc.rdoc_files.include('README')
- rdoc.rdoc_files.include('lib/**/*.rb')
-end
diff --git a/vendor/plugins/active_record_base_without_table/lib/active_record/base_without_table.rb b/vendor/plugins/active_record_base_without_table/lib/active_record/base_without_table.rb
deleted file mode 100644
index 12cb05e02..000000000
--- a/vendor/plugins/active_record_base_without_table/lib/active_record/base_without_table.rb
+++ /dev/null
@@ -1,26 +0,0 @@
-module ActiveRecord
- class BaseWithoutTable < Base
- self.abstract_class = true
-
- def create_or_update
- errors.empty?
- end
-
- class << self
- def columns()
- @columns ||= []
- end
-
- def column(name, sql_type = nil, default = nil, null = true)
- columns << ActiveRecord::ConnectionAdapters::Column.new(name.to_s, default, sql_type.to_s, null)
- reset_column_information
- end
-
- # Do not reset @columns
- def reset_column_information
- generated_methods.each { |name| undef_method(name) }
- @column_names = @columns_hash = @content_columns = @dynamic_methods_hash = @read_methods = nil
- end
- end
- end
-end
diff --git a/vendor/plugins/active_record_base_without_table/test/abstract_unit.rb b/vendor/plugins/active_record_base_without_table/test/abstract_unit.rb
deleted file mode 100644
index f72a8785b..000000000
--- a/vendor/plugins/active_record_base_without_table/test/abstract_unit.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-require 'test/unit'
-
-begin
- require File.dirname(__FILE__) + '/../../../../config/boot'
- require 'active_record'
-rescue LoadError
- require 'rubygems'
- require_gem 'activerecord'
-end
-
-require File.dirname(__FILE__) + '/../lib/active_record/base_without_table'
-
-config = YAML::load(IO.read(File.dirname(__FILE__) + '/database.yml'))
-ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + '/debug.log')
-ActiveRecord::Base.establish_connection(config[ENV['DB'] || 'mysql'])
diff --git a/vendor/plugins/active_record_base_without_table/test/active_record_base_without_table_test.rb b/vendor/plugins/active_record_base_without_table/test/active_record_base_without_table_test.rb
deleted file mode 100644
index 8d4bd4115..000000000
--- a/vendor/plugins/active_record_base_without_table/test/active_record_base_without_table_test.rb
+++ /dev/null
@@ -1,41 +0,0 @@
-require File.dirname(__FILE__) + '/abstract_unit'
-
-class Person < ActiveRecord::BaseWithoutTable
- column :name, :string
- column :lucky_number, :integer, 4
-
- validates_presence_of :name
-end
-
-class ActiveRecordBaseWithoutTableTest < Test::Unit::TestCase
- def test_default_value
- assert_equal 4, Person.new.lucky_number
- end
-
- def test_validation
- p = Person.new
-
- assert !p.save
- assert p.errors[:name]
-
- assert p.update_attributes(:name => 'Name')
- end
-
- def test_typecast
- assert_equal 1, Person.new(:lucky_number => "1").lucky_number
- end
-
- def test_cached_column_variables_reset_when_column_defined
- cached_variables = %w(column_names columns_hash content_columns dynamic_methods_hash read_methods)
-
- Person.column_names
- Person.columns_hash
- Person.content_columns
- Person.column_methods_hash
- Person.read_methods
-
- cached_variables.each { |v| assert_not_nil Person.instance_variable_get("@#{v}") }
- Person.column :new_column, :string
- cached_variables.each { |v| assert_nil Person.instance_variable_get("@#{v}") }
- end
-end
diff --git a/vendor/plugins/active_record_base_without_table/test/database.yml b/vendor/plugins/active_record_base_without_table/test/database.yml
deleted file mode 100644
index b952dac55..000000000
--- a/vendor/plugins/active_record_base_without_table/test/database.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-mysql:
- :adapter: mysql
- :host: localhost
- :username: rails
- :password:
- :database: rails_plugin_test
diff --git a/vendor/plugins/acts_as_versioned/CHANGELOG b/vendor/plugins/acts_as_versioned/CHANGELOG
deleted file mode 100644
index 01882d767..000000000
--- a/vendor/plugins/acts_as_versioned/CHANGELOG
+++ /dev/null
@@ -1,82 +0,0 @@
-*GIT* (version numbers are overrated)
-
-* (16 Jun 2008) Backwards Compatibility is overrated (big updates for rails 2.1)
-
- * Use ActiveRecord 2.1's dirty attribute checking instead [Asa Calow]
- * Remove last traces of #non_versioned_fields
- * Remove AR::Base.find_version and AR::Base.find_versions, rely on AR association proxies and named_scope
- * Remove #versions_count, rely on AR association counter caching.
- * Remove #versioned_attributes, basically the same as AR::Base.versioned_columns
-
-* (5 Oct 2006) Allow customization of #versions association options [Dan Peterson]
-
-*0.5.1*
-
-* (8 Aug 2006) Versioned models now belong to the unversioned model. @article_version.article.class => Article [Aslak Hellesoy]
-
-*0.5* # do versions even matter for plugins?
-
-* (21 Apr 2006) Added without_locking and without_revision methods.
-
- Foo.without_revision do
- @foo.update_attributes ...
- end
-
-*0.4*
-
-* (28 March 2006) Rename non_versioned_fields to non_versioned_columns (old one is kept for compatibility).
-* (28 March 2006) Made explicit documentation note that string column names are required for non_versioned_columns.
-
-*0.3.1*
-
-* (7 Jan 2006) explicitly set :foreign_key option for the versioned model's belongs_to assocation for STI [Caged]
-* (7 Jan 2006) added tests to prove has_many :through joins work
-
-*0.3*
-
-* (2 Jan 2006) added ability to share a mixin with versioned class
-* (2 Jan 2006) changed the dynamic version model to MyModel::Version
-
-*0.2.4*
-
-* (27 Nov 2005) added note about possible destructive behavior of if_changed? [Michael Schuerig]
-
-*0.2.3*
-
-* (12 Nov 2005) fixed bug with old behavior of #blank? [Michael Schuerig]
-* (12 Nov 2005) updated tests to use ActiveRecord Schema
-
-*0.2.2*
-
-* (3 Nov 2005) added documentation note to #acts_as_versioned [Martin Jul]
-
-*0.2.1*
-
-* (6 Oct 2005) renamed dirty? to changed? to keep it uniform. it was aliased to keep it backwards compatible.
-
-*0.2*
-
-* (6 Oct 2005) added find_versions and find_version class methods.
-
-* (6 Oct 2005) removed transaction from create_versioned_table().
- this way you can specify your own transaction around a group of operations.
-
-* (30 Sep 2005) fixed bug where find_versions() would order by 'version' twice. (found by Joe Clark)
-
-* (26 Sep 2005) added :sequence_name option to acts_as_versioned to set the sequence name on the versioned model
-
-*0.1.3* (18 Sep 2005)
-
-* First RubyForge release
-
-*0.1.2*
-
-* check if module is already included when acts_as_versioned is called
-
-*0.1.1*
-
-* Adding tests and rdocs
-
-*0.1*
-
-* Initial transfer from Rails ticket: http://dev.rubyonrails.com/ticket/1974 \ No newline at end of file
diff --git a/vendor/plugins/acts_as_versioned/MIT-LICENSE b/vendor/plugins/acts_as_versioned/MIT-LICENSE
deleted file mode 100644
index 5851fdae1..000000000
--- a/vendor/plugins/acts_as_versioned/MIT-LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright (c) 2005 Rick Olson
-
-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/plugins/acts_as_versioned/README b/vendor/plugins/acts_as_versioned/README
deleted file mode 100644
index 8961f0522..000000000
--- a/vendor/plugins/acts_as_versioned/README
+++ /dev/null
@@ -1,28 +0,0 @@
-= acts_as_versioned
-
-This library adds simple versioning to an ActiveRecord module. ActiveRecord is required.
-
-== Resources
-
-Install
-
-* gem install acts_as_versioned
-
-Rubyforge project
-
-* http://rubyforge.org/projects/ar-versioned
-
-RDocs
-
-* http://ar-versioned.rubyforge.org
-
-Subversion
-
-* http://techno-weenie.net/svn/projects/acts_as_versioned
-
-Collaboa
-
-* http://collaboa.techno-weenie.net/repository/browse/acts_as_versioned
-
-Special thanks to Dreamer on ##rubyonrails for help in early testing. His ServerSideWiki (http://serversidewiki.com)
-was the first project to use acts_as_versioned <em>in the wild</em>. \ No newline at end of file
diff --git a/vendor/plugins/acts_as_versioned/RUNNING_UNIT_TESTS b/vendor/plugins/acts_as_versioned/RUNNING_UNIT_TESTS
deleted file mode 100644
index a6e55b841..000000000
--- a/vendor/plugins/acts_as_versioned/RUNNING_UNIT_TESTS
+++ /dev/null
@@ -1,41 +0,0 @@
-== Creating the test database
-
-The default name for the test databases is "activerecord_versioned". If you
-want to use another database name then be sure to update the connection
-adapter setups you want to test with in test/connections/<your database>/connection.rb.
-When you have the database online, you can import the fixture tables with
-the test/fixtures/db_definitions/*.sql files.
-
-Make sure that you create database objects with the same user that you specified in i
-connection.rb otherwise (on Postgres, at least) tests for default values will fail.
-
-== Running with Rake
-
-The easiest way to run the unit tests is through Rake. The default task runs
-the entire test suite for all the adapters. You can also run the suite on just
-one adapter by using the tasks test_mysql_ruby, test_ruby_mysql, test_sqlite,
-or test_postresql. For more information, checkout the full array of rake tasks with "rake -T"
-
-Rake can be found at http://rake.rubyforge.org
-
-== Running by hand
-
-Unit tests are located in test directory. If you only want to run a single test suite,
-or don't want to bother with Rake, you can do so with something like:
-
- cd test; ruby -I "connections/native_mysql" base_test.rb
-
-That'll run the base suite using the MySQL-Ruby adapter. Change the adapter
-and test suite name as needed.
-
-== Faster tests
-
-If you are using a database that supports transactions, you can set the
-"AR_TX_FIXTURES" environment variable to "yes" to use transactional fixtures.
-This gives a very large speed boost. With rake:
-
- rake AR_TX_FIXTURES=yes
-
-Or, by hand:
-
- AR_TX_FIXTURES=yes ruby -I connections/native_sqlite3 base_test.rb
diff --git a/vendor/plugins/acts_as_versioned/Rakefile b/vendor/plugins/acts_as_versioned/Rakefile
deleted file mode 100644
index 3ae69e961..000000000
--- a/vendor/plugins/acts_as_versioned/Rakefile
+++ /dev/null
@@ -1,182 +0,0 @@
-require 'rubygems'
-
-Gem::manage_gems
-
-require 'rake/rdoctask'
-require 'rake/packagetask'
-require 'rake/gempackagetask'
-require 'rake/testtask'
-require 'rake/contrib/rubyforgepublisher'
-
-PKG_NAME = 'acts_as_versioned'
-PKG_VERSION = '0.3.1'
-PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
-PROD_HOST = "technoweenie@bidwell.textdrive.com"
-RUBY_FORGE_PROJECT = 'ar-versioned'
-RUBY_FORGE_USER = 'technoweenie'
-
-desc 'Default: run unit tests.'
-task :default => :test
-
-desc 'Test the calculations plugin.'
-Rake::TestTask.new(:test) do |t|
- t.libs << 'lib'
- t.pattern = 'test/**/*_test.rb'
- t.verbose = true
-end
-
-desc 'Generate documentation for the calculations plugin.'
-Rake::RDocTask.new(:rdoc) do |rdoc|
- rdoc.rdoc_dir = 'rdoc'
- rdoc.title = "#{PKG_NAME} -- Simple versioning with active record models"
- rdoc.options << '--line-numbers --inline-source'
- rdoc.rdoc_files.include('README', 'CHANGELOG', 'RUNNING_UNIT_TESTS')
- rdoc.rdoc_files.include('lib/**/*.rb')
-end
-
-spec = Gem::Specification.new do |s|
- s.name = PKG_NAME
- s.version = PKG_VERSION
- s.platform = Gem::Platform::RUBY
- s.summary = "Simple versioning with active record models"
- s.files = FileList["{lib,test}/**/*"].to_a + %w(README MIT-LICENSE CHANGELOG RUNNING_UNIT_TESTS)
- s.files.delete "acts_as_versioned_plugin.sqlite.db"
- s.files.delete "acts_as_versioned_plugin.sqlite3.db"
- s.files.delete "test/debug.log"
- s.require_path = 'lib'
- s.autorequire = 'acts_as_versioned'
- s.has_rdoc = true
- s.test_files = Dir['test/**/*_test.rb']
- s.add_dependency 'activerecord', '>= 1.10.1'
- s.add_dependency 'activesupport', '>= 1.1.1'
- s.author = "Rick Olson"
- s.email = "technoweenie@gmail.com"
- s.homepage = "http://techno-weenie.net"
-end
-
-Rake::GemPackageTask.new(spec) do |pkg|
- pkg.need_tar = true
-end
-
-desc "Publish the API documentation"
-task :pdoc => [:rdoc] do
- Rake::RubyForgePublisher.new(RUBY_FORGE_PROJECT, RUBY_FORGE_USER).upload
-end
-
-desc 'Publish the gem and API docs'
-task :publish => [:pdoc, :rubyforge_upload]
-
-desc "Publish the release files to RubyForge."
-task :rubyforge_upload => :package do
- files = %w(gem tgz).map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
-
- if RUBY_FORGE_PROJECT then
- require 'net/http'
- require 'open-uri'
-
- project_uri = "http://rubyforge.org/projects/#{RUBY_FORGE_PROJECT}/"
- project_data = open(project_uri) { |data| data.read }
- group_id = project_data[/[?&]group_id=(\d+)/, 1]
- raise "Couldn't get group id" unless group_id
-
- # This echos password to shell which is a bit sucky
- if ENV["RUBY_FORGE_PASSWORD"]
- password = ENV["RUBY_FORGE_PASSWORD"]
- else
- print "#{RUBY_FORGE_USER}@rubyforge.org's password: "
- password = STDIN.gets.chomp
- end
-
- login_response = Net::HTTP.start("rubyforge.org", 80) do |http|
- data = [
- "login=1",
- "form_loginname=#{RUBY_FORGE_USER}",
- "form_pw=#{password}"
- ].join("&")
- http.post("/account/login.php", data)
- end
-
- cookie = login_response["set-cookie"]
- raise "Login failed" unless cookie
- headers = { "Cookie" => cookie }
-
- release_uri = "http://rubyforge.org/frs/admin/?group_id=#{group_id}"
- release_data = open(release_uri, headers) { |data| data.read }
- package_id = release_data[/[?&]package_id=(\d+)/, 1]
- raise "Couldn't get package id" unless package_id
-
- first_file = true
- release_id = ""
-
- files.each do |filename|
- basename = File.basename(filename)
- file_ext = File.extname(filename)
- file_data = File.open(filename, "rb") { |file| file.read }
-
- puts "Releasing #{basename}..."
-
- release_response = Net::HTTP.start("rubyforge.org", 80) do |http|
- release_date = Time.now.strftime("%Y-%m-%d %H:%M")
- type_map = {
- ".zip" => "3000",
- ".tgz" => "3110",
- ".gz" => "3110",
- ".gem" => "1400"
- }; type_map.default = "9999"
- type = type_map[file_ext]
- boundary = "rubyqMY6QN9bp6e4kS21H4y0zxcvoor"
-
- query_hash = if first_file then
- {
- "group_id" => group_id,
- "package_id" => package_id,
- "release_name" => PKG_FILE_NAME,
- "release_date" => release_date,
- "type_id" => type,
- "processor_id" => "8000", # Any
- "release_notes" => "",
- "release_changes" => "",
- "preformatted" => "1",
- "submit" => "1"
- }
- else
- {
- "group_id" => group_id,
- "release_id" => release_id,
- "package_id" => package_id,
- "step2" => "1",
- "type_id" => type,
- "processor_id" => "8000", # Any
- "submit" => "Add This File"
- }
- end
-
- query = "?" + query_hash.map do |(name, value)|
- [name, URI.encode(value)].join("=")
- end.join("&")
-
- data = [
- "--" + boundary,
- "Content-Disposition: form-data; name=\"userfile\"; filename=\"#{basename}\"",
- "Content-Type: application/octet-stream",
- "Content-Transfer-Encoding: binary",
- "", file_data, ""
- ].join("\x0D\x0A")
-
- release_headers = headers.merge(
- "Content-Type" => "multipart/form-data; boundary=#{boundary}"
- )
-
- target = first_file ? "/frs/admin/qrs.php" : "/frs/admin/editrelease.php"
- http.post(target + query, data, release_headers)
- end
-
- if first_file then
- release_id = release_response.body[/release_id=(\d+)/, 1]
- raise("Couldn't get release id") unless release_id
- end
-
- first_file = false
- end
- end
-end \ No newline at end of file
diff --git a/vendor/plugins/acts_as_versioned/init.rb b/vendor/plugins/acts_as_versioned/init.rb
deleted file mode 100644
index 5937bbc7c..000000000
--- a/vendor/plugins/acts_as_versioned/init.rb
+++ /dev/null
@@ -1 +0,0 @@
-require 'acts_as_versioned' \ No newline at end of file
diff --git a/vendor/plugins/acts_as_versioned/lib/acts_as_versioned.rb b/vendor/plugins/acts_as_versioned/lib/acts_as_versioned.rb
deleted file mode 100644
index 5299e0dc7..000000000
--- a/vendor/plugins/acts_as_versioned/lib/acts_as_versioned.rb
+++ /dev/null
@@ -1,490 +0,0 @@
-# Copyright (c) 2005 Rick Olson
-#
-# 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.
-
-module ActiveRecord #:nodoc:
- module Acts #:nodoc:
- # Specify this act if you want to save a copy of the row in a versioned table. This assumes there is a
- # versioned table ready and that your model has a version field. This works with optimistic locking if the lock_version
- # column is present as well.
- #
- # The class for the versioned model is derived the first time it is seen. Therefore, if you change your database schema you have to restart
- # your container for the changes to be reflected. In development mode this usually means restarting WEBrick.
- #
- # class Page < ActiveRecord::Base
- # # assumes pages_versions table
- # acts_as_versioned
- # end
- #
- # Example:
- #
- # page = Page.create(:title => 'hello world!')
- # page.version # => 1
- #
- # page.title = 'hello world'
- # page.save
- # page.version # => 2
- # page.versions.size # => 2
- #
- # page.revert_to(1) # using version number
- # page.title # => 'hello world!'
- #
- # page.revert_to(page.versions.last) # using versioned instance
- # page.title # => 'hello world'
- #
- # page.versions.earliest # efficient query to find the first version
- # page.versions.latest # efficient query to find the most recently created version
- #
- #
- # Simple Queries to page between versions
- #
- # page.versions.before(version)
- # page.versions.after(version)
- #
- # Access the previous/next versions from the versioned model itself
- #
- # version = page.versions.latest
- # version.previous # go back one version
- # version.next # go forward one version
- #
- # See ActiveRecord::Acts::Versioned::ClassMethods#acts_as_versioned for configuration options
- module Versioned
- CALLBACKS = [:set_new_version, :save_version, :save_version?]
- def self.included(base) # :nodoc:
- base.extend ClassMethods
- end
-
- module ClassMethods
- # == Configuration options
- #
- # * <tt>class_name</tt> - versioned model class name (default: PageVersion in the above example)
- # * <tt>table_name</tt> - versioned model table name (default: page_versions in the above example)
- # * <tt>foreign_key</tt> - foreign key used to relate the versioned model to the original model (default: page_id in the above example)
- # * <tt>inheritance_column</tt> - name of the column to save the model's inheritance_column value for STI. (default: versioned_type)
- # * <tt>version_column</tt> - name of the column in the model that keeps the version number (default: version)
- # * <tt>sequence_name</tt> - name of the custom sequence to be used by the versioned model.
- # * <tt>limit</tt> - number of revisions to keep, defaults to unlimited
- # * <tt>if</tt> - symbol of method to check before saving a new version. If this method returns false, a new version is not saved.
- # For finer control, pass either a Proc or modify Model#version_condition_met?
- #
- # acts_as_versioned :if => Proc.new { |auction| !auction.expired? }
- #
- # or...
- #
- # class Auction
- # def version_condition_met? # totally bypasses the <tt>:if</tt> option
- # !expired?
- # end
- # end
- #
- # * <tt>if_changed</tt> - Simple way of specifying attributes that are required to be changed before saving a model. This takes
- # either a symbol or array of symbols. WARNING - This will attempt to overwrite any attribute setters you may have.
- # Use this instead if you want to write your own attribute setters (and ignore if_changed):
- #
- # def name=(new_name)
- # write_changed_attribute :name, new_name
- # end
- #
- # * <tt>extend</tt> - Lets you specify a module to be mixed in both the original and versioned models. You can also just pass a block
- # to create an anonymous mixin:
- #
- # class Auction
- # acts_as_versioned do
- # def started?
- # !started_at.nil?
- # end
- # end
- # end
- #
- # or...
- #
- # module AuctionExtension
- # def started?
- # !started_at.nil?
- # end
- # end
- # class Auction
- # acts_as_versioned :extend => AuctionExtension
- # end
- #
- # Example code:
- #
- # @auction = Auction.find(1)
- # @auction.started?
- # @auction.versions.first.started?
- #
- # == Database Schema
- #
- # The model that you're versioning needs to have a 'version' attribute. The model is versioned
- # into a table called #{model}_versions where the model name is singlular. The _versions table should
- # contain all the fields you want versioned, the same version column, and a #{model}_id foreign key field.
- #
- # A lock_version field is also accepted if your model uses Optimistic Locking. If your table uses Single Table inheritance,
- # then that field is reflected in the versioned model as 'versioned_type' by default.
- #
- # Acts_as_versioned comes prepared with the ActiveRecord::Acts::Versioned::ActMethods::ClassMethods#create_versioned_table
- # method, perfect for a migration. It will also create the version column if the main model does not already have it.
- #
- # class AddVersions < ActiveRecord::Migration
- # def self.up
- # # create_versioned_table takes the same options hash
- # # that create_table does
- # Post.create_versioned_table
- # end
- #
- # def self.down
- # Post.drop_versioned_table
- # end
- # end
- #
- # == Changing What Fields Are Versioned
- #
- # By default, acts_as_versioned will version all but these fields:
- #
- # [self.primary_key, inheritance_column, 'version', 'lock_version', versioned_inheritance_column]
- #
- # You can add or change those by modifying #non_versioned_columns. Note that this takes strings and not symbols.
- #
- # class Post < ActiveRecord::Base
- # acts_as_versioned
- # self.non_versioned_columns << 'comments_count'
- # end
- #
- def acts_as_versioned(options = {}, &extension)
- # don't allow multiple calls
- return if self.included_modules.include?(ActiveRecord::Acts::Versioned::ActMethods)
-
- send :include, ActiveRecord::Acts::Versioned::ActMethods
-
- cattr_accessor :versioned_class_name, :versioned_foreign_key, :versioned_table_name, :versioned_inheritance_column,
- :version_column, :max_version_limit, :track_altered_attributes, :version_condition, :version_sequence_name, :non_versioned_columns,
- :version_association_options, :version_if_changed
-
- self.versioned_class_name = options[:class_name] || "Version"
- self.versioned_foreign_key = options[:foreign_key] || self.to_s.foreign_key
- self.versioned_table_name = options[:table_name] || "#{table_name_prefix}#{base_class.name.demodulize.underscore}_versions#{table_name_suffix}"
- self.versioned_inheritance_column = options[:inheritance_column] || "versioned_#{inheritance_column}"
- self.version_column = options[:version_column] || 'version'
- self.version_sequence_name = options[:sequence_name]
- self.max_version_limit = options[:limit].to_i
- self.version_condition = options[:if] || true
- self.non_versioned_columns = [self.primary_key, inheritance_column, 'version', 'lock_version', versioned_inheritance_column, 'created_at', 'created_on']
- self.version_association_options = {
- :class_name => "#{self.to_s}::#{versioned_class_name}",
- :foreign_key => versioned_foreign_key,
- :dependent => :delete_all
- }.merge(options[:association_options] || {})
-
- if block_given?
- extension_module_name = "#{versioned_class_name}Extension"
- silence_warnings do
- self.const_set(extension_module_name, Module.new(&extension))
- end
-
- options[:extend] = self.const_get(extension_module_name)
- end
-
- class_eval do
- has_many :versions, version_association_options do
- # finds earliest version of this record
- def earliest
- @earliest ||= find(:first, :order => 'version')
- end
-
- # find latest version of this record
- def latest
- @latest ||= find(:first, :order => 'version desc')
- end
- end
- before_save :set_new_version
- after_save :save_version
- after_save :clear_old_versions
-
- unless options[:if_changed].nil?
- self.track_altered_attributes = true
- options[:if_changed] = [options[:if_changed]] unless options[:if_changed].is_a?(Array)
- self.version_if_changed = options[:if_changed]
- end
-
- include options[:extend] if options[:extend].is_a?(Module)
- end
-
- # create the dynamic versioned model
- const_set(versioned_class_name, Class.new(ActiveRecord::Base)).class_eval do
- def self.reloadable? ; false ; end
- # find first version before the given version
- def self.before(version)
- find :first, :order => 'version desc',
- :conditions => ["#{original_class.versioned_foreign_key} = ? and version < ?", version.send(original_class.versioned_foreign_key), version.version]
- end
-
- # find first version after the given version.
- def self.after(version)
- find :first, :order => 'version',
- :conditions => ["#{original_class.versioned_foreign_key} = ? and version > ?", version.send(original_class.versioned_foreign_key), version.version]
- end
-
- def previous
- self.class.before(self)
- end
-
- def next
- self.class.after(self)
- end
-
- def versions_count
- page.version
- end
- end
-
- versioned_class.cattr_accessor :original_class
- versioned_class.original_class = self
- versioned_class.set_table_name versioned_table_name
- versioned_class.belongs_to self.to_s.demodulize.underscore.to_sym,
- :class_name => "::#{self.to_s}",
- :foreign_key => versioned_foreign_key
- versioned_class.send :include, options[:extend] if options[:extend].is_a?(Module)
- versioned_class.set_sequence_name version_sequence_name if version_sequence_name
- end
- end
-
- module ActMethods
- def self.included(base) # :nodoc:
- base.extend ClassMethods
- end
-
- # Saves a version of the model in the versioned table. This is called in the after_save callback by default
- def save_version
- if @saving_version
- @saving_version = nil
- rev = self.class.versioned_class.new
- clone_versioned_model(self, rev)
- rev.version = send(self.class.version_column)
- rev.send("#{self.class.versioned_foreign_key}=", id)
- rev.save
- end
- end
-
- # Clears old revisions if a limit is set with the :limit option in <tt>acts_as_versioned</tt>.
- # Override this method to set your own criteria for clearing old versions.
- def clear_old_versions
- return if self.class.max_version_limit == 0
- excess_baggage = send(self.class.version_column).to_i - self.class.max_version_limit
- if excess_baggage > 0
- self.class.versioned_class.delete_all ["version <= ? and #{self.class.versioned_foreign_key} = ?", excess_baggage, id]
- end
- end
-
- # Reverts a model to a given version. Takes either a version number or an instance of the versioned model
- def revert_to(version)
- if version.is_a?(self.class.versioned_class)
- return false unless version.send(self.class.versioned_foreign_key) == id and !version.new_record?
- else
- return false unless version = versions.find_by_version(version)
- end
- self.clone_versioned_model(version, self)
- send("#{self.class.version_column}=", version.version)
- true
- end
-
- # Reverts a model to a given version and saves the model.
- # Takes either a version number or an instance of the versioned model
- def revert_to!(version)
- revert_to(version) ? save_without_revision : false
- end
-
- # Temporarily turns off Optimistic Locking while saving. Used when reverting so that a new version is not created.
- def save_without_revision
- save_without_revision!
- true
- rescue
- false
- end
-
- def save_without_revision!
- without_locking do
- without_revision do
- save!
- end
- end
- end
-
- def altered?
- track_altered_attributes ? (version_if_changed.map(&:to_s) - changed).length < version_if_changed.length : changed?
- end
-
- # Clones a model. Used when saving a new version or reverting a model's version.
- def clone_versioned_model(orig_model, new_model)
- self.class.versioned_columns.each do |col|
- new_model.send("#{col.name}=", orig_model.send(col.name)) if orig_model.has_attribute?(col.name)
- end
-
- if orig_model.is_a?(self.class.versioned_class)
- new_model[new_model.class.inheritance_column] = orig_model[self.class.versioned_inheritance_column]
- elsif new_model.is_a?(self.class.versioned_class)
- new_model[self.class.versioned_inheritance_column] = orig_model[orig_model.class.inheritance_column]
- end
- end
-
- # Checks whether a new version shall be saved or not. Calls <tt>version_condition_met?</tt> and <tt>changed?</tt>.
- def save_version?
- version_condition_met? && altered?
- end
-
- # Checks condition set in the :if option to check whether a revision should be created or not. Override this for
- # custom version condition checking.
- def version_condition_met?
- case
- when version_condition.is_a?(Symbol)
- send(version_condition)
- when version_condition.respond_to?(:call) && (version_condition.arity == 1 || version_condition.arity == -1)
- version_condition.call(self)
- else
- version_condition
- end
- end
-
- # Executes the block with the versioning callbacks disabled.
- #
- # @foo.without_revision do
- # @foo.save
- # end
- #
- def without_revision(&block)
- self.class.without_revision(&block)
- end
-
- # Turns off optimistic locking for the duration of the block
- #
- # @foo.without_locking do
- # @foo.save
- # end
- #
- def without_locking(&block)
- self.class.without_locking(&block)
- end
-
- def empty_callback() end #:nodoc:
-
- protected
- # sets the new version before saving, unless you're using optimistic locking. In that case, let it take care of the version.
- def set_new_version
- @saving_version = new_record? || save_version?
- self.send("#{self.class.version_column}=", next_version) if new_record? || (!locking_enabled? && save_version?)
- end
-
- # Gets the next available version for the current record, or 1 for a new record
- def next_version
- (new_record? ? 0 : versions.calculate(:max, :version).to_i) + 1
- end
-
- module ClassMethods
- # Returns an array of columns that are versioned. See non_versioned_columns
- def versioned_columns
- @versioned_columns ||= columns.select { |c| !non_versioned_columns.include?(c.name) }
- end
-
- # Returns an instance of the dynamic versioned model
- def versioned_class
- const_get versioned_class_name
- end
-
- # Rake migration task to create the versioned table using options passed to acts_as_versioned
- def create_versioned_table(create_table_options = {})
- # create version column in main table if it does not exist
- if !self.content_columns.find { |c| %w(version lock_version).include? c.name }
- self.connection.add_column table_name, :version, :integer
- end
-
- self.connection.create_table(versioned_table_name, create_table_options) do |t|
- t.column versioned_foreign_key, :integer
- t.column :version, :integer
- end
-
- updated_col = nil
- self.versioned_columns.each do |col|
- updated_col = col if !updated_col && %(updated_at updated_on).include?(col.name)
- self.connection.add_column versioned_table_name, col.name, col.type,
- :limit => col.limit,
- :default => col.default,
- :scale => col.scale,
- :precision => col.precision
- end
-
- if type_col = self.columns_hash[inheritance_column]
- self.connection.add_column versioned_table_name, versioned_inheritance_column, type_col.type,
- :limit => type_col.limit,
- :default => type_col.default,
- :scale => type_col.scale,
- :precision => type_col.precision
- end
-
- if updated_col.nil?
- self.connection.add_column versioned_table_name, :updated_at, :timestamp
- end
- end
-
- # Rake migration task to drop the versioned table
- def drop_versioned_table
- self.connection.drop_table versioned_table_name
- end
-
- # Executes the block with the versioning callbacks disabled.
- #
- # Foo.without_revision do
- # @foo.save
- # end
- #
- def without_revision(&block)
- class_eval do
- CALLBACKS.each do |attr_name|
- alias_method "orig_#{attr_name}".to_sym, attr_name
- alias_method attr_name, :empty_callback
- end
- end
- block.call
- ensure
- class_eval do
- CALLBACKS.each do |attr_name|
- alias_method attr_name, "orig_#{attr_name}".to_sym
- end
- end
- end
-
- # Turns off optimistic locking for the duration of the block
- #
- # Foo.without_locking do
- # @foo.save
- # end
- #
- def without_locking(&block)
- current = ActiveRecord::Base.lock_optimistically
- ActiveRecord::Base.lock_optimistically = false if current
- result = block.call
- ActiveRecord::Base.lock_optimistically = true if current
- result
- end
- end
- end
- end
- end
-end
-
-ActiveRecord::Base.send :include, ActiveRecord::Acts::Versioned \ No newline at end of file
diff --git a/vendor/plugins/acts_as_versioned/test/abstract_unit.rb b/vendor/plugins/acts_as_versioned/test/abstract_unit.rb
deleted file mode 100644
index 269667ad0..000000000
--- a/vendor/plugins/acts_as_versioned/test/abstract_unit.rb
+++ /dev/null
@@ -1,48 +0,0 @@
-$:.unshift(File.dirname(__FILE__) + '/../../../rails/activesupport/lib')
-$:.unshift(File.dirname(__FILE__) + '/../../../rails/activerecord/lib')
-$:.unshift(File.dirname(__FILE__) + '/../lib')
-require 'test/unit'
-begin
- require 'active_support'
- require 'active_record'
- require 'active_record/fixtures'
-rescue LoadError
- require 'rubygems'
- retry
-end
-
-begin
- require 'ruby-debug'
- Debugger.start
-rescue LoadError
-end
-
-require 'acts_as_versioned'
-
-config = YAML::load(IO.read(File.dirname(__FILE__) + '/database.yml'))
-ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + "/debug.log")
-ActiveRecord::Base.configurations = {'test' => config[ENV['DB'] || 'sqlite3']}
-ActiveRecord::Base.establish_connection(ActiveRecord::Base.configurations['test'])
-
-load(File.dirname(__FILE__) + "/schema.rb")
-
-# set up custom sequence on widget_versions for DBs that support sequences
-if ENV['DB'] == 'postgresql'
- ActiveRecord::Base.connection.execute "DROP SEQUENCE widgets_seq;" rescue nil
- ActiveRecord::Base.connection.remove_column :widget_versions, :id
- ActiveRecord::Base.connection.execute "CREATE SEQUENCE widgets_seq START 101;"
- ActiveRecord::Base.connection.execute "ALTER TABLE widget_versions ADD COLUMN id INTEGER PRIMARY KEY DEFAULT nextval('widgets_seq');"
-end
-
-Test::Unit::TestCase.fixture_path = File.dirname(__FILE__) + "/fixtures/"
-$:.unshift(Test::Unit::TestCase.fixture_path)
-
-class Test::Unit::TestCase #:nodoc:
- # Turn off transactional fixtures if you're working with MyISAM tables in MySQL
- self.use_transactional_fixtures = true
-
- # Instantiated fixtures are slow, but give you @david where you otherwise would need people(:david)
- self.use_instantiated_fixtures = false
-
- # Add more helper methods to be used by all tests here...
-end \ No newline at end of file
diff --git a/vendor/plugins/acts_as_versioned/test/database.yml b/vendor/plugins/acts_as_versioned/test/database.yml
deleted file mode 100644
index 506e6bd37..000000000
--- a/vendor/plugins/acts_as_versioned/test/database.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-sqlite:
- :adapter: sqlite
- :dbfile: acts_as_versioned_plugin.sqlite.db
-sqlite3:
- :adapter: sqlite3
- :dbfile: acts_as_versioned_plugin.sqlite3.db
-postgresql:
- :adapter: postgresql
- :username: postgres
- :password: postgres
- :database: acts_as_versioned_plugin_test
- :min_messages: ERROR
-mysql:
- :adapter: mysql
- :host: localhost
- :username: rails
- :password:
- :database: acts_as_versioned_plugin_test \ No newline at end of file
diff --git a/vendor/plugins/acts_as_versioned/test/fixtures/authors.yml b/vendor/plugins/acts_as_versioned/test/fixtures/authors.yml
deleted file mode 100644
index bd7a5aed6..000000000
--- a/vendor/plugins/acts_as_versioned/test/fixtures/authors.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-caged:
- id: 1
- name: caged
-mly:
- id: 2
- name: mly \ No newline at end of file
diff --git a/vendor/plugins/acts_as_versioned/test/fixtures/landmark.rb b/vendor/plugins/acts_as_versioned/test/fixtures/landmark.rb
deleted file mode 100644
index cb9b93057..000000000
--- a/vendor/plugins/acts_as_versioned/test/fixtures/landmark.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-class Landmark < ActiveRecord::Base
- acts_as_versioned :if_changed => [ :name, :longitude, :latitude ]
-end
diff --git a/vendor/plugins/acts_as_versioned/test/fixtures/landmark_versions.yml b/vendor/plugins/acts_as_versioned/test/fixtures/landmark_versions.yml
deleted file mode 100644
index 2dbd54ed2..000000000
--- a/vendor/plugins/acts_as_versioned/test/fixtures/landmark_versions.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-washington:
- id: 1
- landmark_id: 1
- version: 1
- name: Washington, D.C.
- latitude: 38.895
- longitude: -77.036667
diff --git a/vendor/plugins/acts_as_versioned/test/fixtures/landmarks.yml b/vendor/plugins/acts_as_versioned/test/fixtures/landmarks.yml
deleted file mode 100644
index cf0639006..000000000
--- a/vendor/plugins/acts_as_versioned/test/fixtures/landmarks.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-washington:
- id: 1
- name: Washington, D.C.
- latitude: 38.895
- longitude: -77.036667
- doesnt_trigger_version: This is not important
- version: 1
diff --git a/vendor/plugins/acts_as_versioned/test/fixtures/locked_pages.yml b/vendor/plugins/acts_as_versioned/test/fixtures/locked_pages.yml
deleted file mode 100644
index 318e776cb..000000000
--- a/vendor/plugins/acts_as_versioned/test/fixtures/locked_pages.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-welcome:
- id: 1
- title: Welcome to the weblog
- lock_version: 24
- type: LockedPage
-thinking:
- id: 2
- title: So I was thinking
- lock_version: 24
- type: SpecialLockedPage
diff --git a/vendor/plugins/acts_as_versioned/test/fixtures/locked_pages_revisions.yml b/vendor/plugins/acts_as_versioned/test/fixtures/locked_pages_revisions.yml
deleted file mode 100644
index 5c978e629..000000000
--- a/vendor/plugins/acts_as_versioned/test/fixtures/locked_pages_revisions.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-welcome_1:
- id: 1
- page_id: 1
- title: Welcome to the weblg
- version: 23
- version_type: LockedPage
-
-welcome_2:
- id: 2
- page_id: 1
- title: Welcome to the weblog
- version: 24
- version_type: LockedPage
-
-thinking_1:
- id: 3
- page_id: 2
- title: So I was thinking!!!
- version: 23
- version_type: SpecialLockedPage
-
-thinking_2:
- id: 4
- page_id: 2
- title: So I was thinking
- version: 24
- version_type: SpecialLockedPage
diff --git a/vendor/plugins/acts_as_versioned/test/fixtures/migrations/1_add_versioned_tables.rb b/vendor/plugins/acts_as_versioned/test/fixtures/migrations/1_add_versioned_tables.rb
deleted file mode 100644
index 5007b16ad..000000000
--- a/vendor/plugins/acts_as_versioned/test/fixtures/migrations/1_add_versioned_tables.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-class AddVersionedTables < ActiveRecord::Migration
- def self.up
- create_table("things") do |t|
- t.column :title, :text
- t.column :price, :decimal, :precision => 7, :scale => 2
- t.column :type, :string
- end
- Thing.create_versioned_table
- end
-
- def self.down
- Thing.drop_versioned_table
- drop_table "things" rescue nil
- end
-end \ No newline at end of file
diff --git a/vendor/plugins/acts_as_versioned/test/fixtures/page.rb b/vendor/plugins/acts_as_versioned/test/fixtures/page.rb
deleted file mode 100644
index f133e351a..000000000
--- a/vendor/plugins/acts_as_versioned/test/fixtures/page.rb
+++ /dev/null
@@ -1,43 +0,0 @@
-class Page < ActiveRecord::Base
- belongs_to :author
- has_many :authors, :through => :versions, :order => 'name'
- belongs_to :revisor, :class_name => 'Author'
- has_many :revisors, :class_name => 'Author', :through => :versions, :order => 'name'
- acts_as_versioned :if => :feeling_good? do
- def self.included(base)
- base.cattr_accessor :feeling_good
- base.feeling_good = true
- base.belongs_to :author
- base.belongs_to :revisor, :class_name => 'Author'
- end
-
- def feeling_good?
- @@feeling_good == true
- end
- end
-end
-
-module LockedPageExtension
- def hello_world
- 'hello_world'
- end
-end
-
-class LockedPage < ActiveRecord::Base
- acts_as_versioned \
- :inheritance_column => :version_type,
- :foreign_key => :page_id,
- :table_name => :locked_pages_revisions,
- :class_name => 'LockedPageRevision',
- :version_column => :lock_version,
- :limit => 2,
- :if_changed => :title,
- :extend => LockedPageExtension
-end
-
-class SpecialLockedPage < LockedPage
-end
-
-class Author < ActiveRecord::Base
- has_many :pages
-end \ No newline at end of file
diff --git a/vendor/plugins/acts_as_versioned/test/fixtures/page_versions.yml b/vendor/plugins/acts_as_versioned/test/fixtures/page_versions.yml
deleted file mode 100644
index ef565fa4f..000000000
--- a/vendor/plugins/acts_as_versioned/test/fixtures/page_versions.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-welcome_2:
- id: 1
- page_id: 1
- title: Welcome to the weblog
- body: Such a lovely day
- version: 24
- author_id: 1
- revisor_id: 1
-welcome_1:
- id: 2
- page_id: 1
- title: Welcome to the weblg
- body: Such a lovely day
- version: 23
- author_id: 2
- revisor_id: 2
diff --git a/vendor/plugins/acts_as_versioned/test/fixtures/pages.yml b/vendor/plugins/acts_as_versioned/test/fixtures/pages.yml
deleted file mode 100644
index 9f4ab546a..000000000
--- a/vendor/plugins/acts_as_versioned/test/fixtures/pages.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-welcome:
- id: 1
- title: Welcome to the weblog
- body: Such a lovely day
- version: 24
- author_id: 1
- revisor_id: 1
- created_on: "2008-01-01 00:00:00" \ No newline at end of file
diff --git a/vendor/plugins/acts_as_versioned/test/fixtures/widget.rb b/vendor/plugins/acts_as_versioned/test/fixtures/widget.rb
deleted file mode 100644
index 086ac2b40..000000000
--- a/vendor/plugins/acts_as_versioned/test/fixtures/widget.rb
+++ /dev/null
@@ -1,6 +0,0 @@
-class Widget < ActiveRecord::Base
- acts_as_versioned :sequence_name => 'widgets_seq', :association_options => {
- :dependent => :nullify, :order => 'version desc'
- }
- non_versioned_columns << 'foo'
-end \ No newline at end of file
diff --git a/vendor/plugins/acts_as_versioned/test/migration_test.rb b/vendor/plugins/acts_as_versioned/test/migration_test.rb
deleted file mode 100644
index 47a7537ce..000000000
--- a/vendor/plugins/acts_as_versioned/test/migration_test.rb
+++ /dev/null
@@ -1,46 +0,0 @@
-require File.join(File.dirname(__FILE__), 'abstract_unit')
-
-if ActiveRecord::Base.connection.supports_migrations?
- class Thing < ActiveRecord::Base
- attr_accessor :version
- acts_as_versioned
- end
-
- class MigrationTest < Test::Unit::TestCase
- self.use_transactional_fixtures = false
- def teardown
- if ActiveRecord::Base.connection.respond_to?(:initialize_schema_information)
- ActiveRecord::Base.connection.initialize_schema_information
- ActiveRecord::Base.connection.update "UPDATE schema_info SET version = 0"
- else
- ActiveRecord::Base.connection.initialize_schema_migrations_table
- ActiveRecord::Base.connection.assume_migrated_upto_version(0)
- end
-
- Thing.connection.drop_table "things" rescue nil
- Thing.connection.drop_table "thing_versions" rescue nil
- Thing.reset_column_information
- end
-
- def test_versioned_migration
- assert_raises(ActiveRecord::StatementInvalid) { Thing.create :title => 'blah blah' }
- # take 'er up
- ActiveRecord::Migrator.up(File.dirname(__FILE__) + '/fixtures/migrations/')
- t = Thing.create :title => 'blah blah', :price => 123.45, :type => 'Thing'
- assert_equal 1, t.versions.size
-
- # check that the price column has remembered its value correctly
- assert_equal t.price, t.versions.first.price
- assert_equal t.title, t.versions.first.title
- assert_equal t[:type], t.versions.first[:type]
-
- # make sure that the precision of the price column has been preserved
- assert_equal 7, Thing::Version.columns.find{|c| c.name == "price"}.precision
- assert_equal 2, Thing::Version.columns.find{|c| c.name == "price"}.scale
-
- # now lets take 'er back down
- ActiveRecord::Migrator.down(File.dirname(__FILE__) + '/fixtures/migrations/')
- assert_raises(ActiveRecord::StatementInvalid) { Thing.create :title => 'blah blah' }
- end
- end
-end
diff --git a/vendor/plugins/acts_as_versioned/test/schema.rb b/vendor/plugins/acts_as_versioned/test/schema.rb
deleted file mode 100644
index 4e7e96319..000000000
--- a/vendor/plugins/acts_as_versioned/test/schema.rb
+++ /dev/null
@@ -1,80 +0,0 @@
-ActiveRecord::Schema.define(:version => 0) do
- create_table :pages, :force => true do |t|
- t.column :version, :integer
- t.column :title, :string, :limit => 255
- t.column :body, :text
- t.column :created_on, :datetime
- t.column :updated_on, :datetime
- t.column :author_id, :integer
- t.column :revisor_id, :integer
- end
-
- create_table :page_versions, :force => true do |t|
- t.column :page_id, :integer
- t.column :version, :integer
- t.column :title, :string, :limit => 255
- t.column :body, :text
- t.column :created_on, :datetime
- t.column :updated_on, :datetime
- t.column :author_id, :integer
- t.column :revisor_id, :integer
- end
-
- add_index :page_versions, [:page_id, :version], :unique => true
-
- create_table :authors, :force => true do |t|
- t.column :page_id, :integer
- t.column :name, :string
- end
-
- create_table :locked_pages, :force => true do |t|
- t.column :lock_version, :integer
- t.column :title, :string, :limit => 255
- t.column :type, :string, :limit => 255
- end
-
- create_table :locked_pages_revisions, :force => true do |t|
- t.column :page_id, :integer
- t.column :version, :integer
- t.column :title, :string, :limit => 255
- t.column :version_type, :string, :limit => 255
- t.column :updated_at, :datetime
- end
-
- add_index :locked_pages_revisions, [:page_id, :version], :unique => true
-
- create_table :widgets, :force => true do |t|
- t.column :name, :string, :limit => 50
- t.column :foo, :string
- t.column :version, :integer
- t.column :updated_at, :datetime
- end
-
- create_table :widget_versions, :force => true do |t|
- t.column :widget_id, :integer
- t.column :name, :string, :limit => 50
- t.column :version, :integer
- t.column :updated_at, :datetime
- end
-
- add_index :widget_versions, [:widget_id, :version], :unique => true
-
- create_table :landmarks, :force => true do |t|
- t.column :name, :string
- t.column :latitude, :float
- t.column :longitude, :float
- t.column :doesnt_trigger_version,:string
- t.column :version, :integer
- end
-
- create_table :landmark_versions, :force => true do |t|
- t.column :landmark_id, :integer
- t.column :name, :string
- t.column :latitude, :float
- t.column :longitude, :float
- t.column :doesnt_trigger_version,:string
- t.column :version, :integer
- end
-
- add_index :landmark_versions, [:landmark_id, :version], :unique => true
-end
diff --git a/vendor/plugins/acts_as_versioned/test/versioned_test.rb b/vendor/plugins/acts_as_versioned/test/versioned_test.rb
deleted file mode 100644
index 6ab9e739c..000000000
--- a/vendor/plugins/acts_as_versioned/test/versioned_test.rb
+++ /dev/null
@@ -1,352 +0,0 @@
-require File.join(File.dirname(__FILE__), 'abstract_unit')
-require File.join(File.dirname(__FILE__), 'fixtures/page')
-require File.join(File.dirname(__FILE__), 'fixtures/widget')
-
-class VersionedTest < Test::Unit::TestCase
- fixtures :pages, :page_versions, :locked_pages, :locked_pages_revisions, :authors, :landmarks, :landmark_versions
- set_fixture_class :page_versions => Page::Version
-
- def test_saves_versioned_copy
- p = Page.create! :title => 'first title', :body => 'first body'
- assert !p.new_record?
- assert_equal 1, p.versions.size
- assert_equal 1, p.version
- assert_instance_of Page.versioned_class, p.versions.first
- end
-
- def test_version_has_unique_created_at
- p = pages(:welcome)
- p.title = 'update me'
- p.save!
- assert_not_equal p.created_on, p.versions.latest.created_on
- end
-
- def test_saves_without_revision
- p = pages(:welcome)
- old_versions = p.versions.count
-
- p.save_without_revision
-
- p.without_revision do
- p.update_attributes :title => 'changed'
- end
-
- assert_equal old_versions, p.versions.count
- end
-
- def test_rollback_with_version_number
- p = pages(:welcome)
- assert_equal 24, p.version
- assert_equal 'Welcome to the weblog', p.title
-
- assert p.revert_to!(23), "Couldn't revert to 23"
- assert_equal 23, p.version
- assert_equal 'Welcome to the weblg', p.title
- end
-
- def test_versioned_class_name
- assert_equal 'Version', Page.versioned_class_name
- assert_equal 'LockedPageRevision', LockedPage.versioned_class_name
- end
-
- def test_versioned_class
- assert_equal Page::Version, Page.versioned_class
- assert_equal LockedPage::LockedPageRevision, LockedPage.versioned_class
- end
-
- def test_special_methods
- assert_nothing_raised { pages(:welcome).feeling_good? }
- assert_nothing_raised { pages(:welcome).versions.first.feeling_good? }
- assert_nothing_raised { locked_pages(:welcome).hello_world }
- assert_nothing_raised { locked_pages(:welcome).versions.first.hello_world }
- end
-
- def test_rollback_with_version_class
- p = pages(:welcome)
- assert_equal 24, p.version
- assert_equal 'Welcome to the weblog', p.title
-
- assert p.revert_to!(p.versions.find_by_version(23)), "Couldn't revert to 23"
- assert_equal 23, p.version
- assert_equal 'Welcome to the weblg', p.title
- end
-
- def test_rollback_fails_with_invalid_revision
- p = locked_pages(:welcome)
- assert !p.revert_to!(locked_pages(:thinking))
- end
-
- def test_saves_versioned_copy_with_options
- p = LockedPage.create! :title => 'first title'
- assert !p.new_record?
- assert_equal 1, p.versions.size
- assert_instance_of LockedPage.versioned_class, p.versions.first
- end
-
- def test_rollback_with_version_number_with_options
- p = locked_pages(:welcome)
- assert_equal 'Welcome to the weblog', p.title
- assert_equal 'LockedPage', p.versions.first.version_type
-
- assert p.revert_to!(p.versions.first.version), "Couldn't revert to 23"
- assert_equal 'Welcome to the weblg', p.title
- assert_equal 'LockedPage', p.versions.first.version_type
- end
-
- def test_rollback_with_version_class_with_options
- p = locked_pages(:welcome)
- assert_equal 'Welcome to the weblog', p.title
- assert_equal 'LockedPage', p.versions.first.version_type
-
- assert p.revert_to!(p.versions.first), "Couldn't revert to 1"
- assert_equal 'Welcome to the weblg', p.title
- assert_equal 'LockedPage', p.versions.first.version_type
- end
-
- def test_saves_versioned_copy_with_sti
- p = SpecialLockedPage.create! :title => 'first title'
- assert !p.new_record?
- assert_equal 1, p.versions.size
- assert_instance_of LockedPage.versioned_class, p.versions.first
- assert_equal 'SpecialLockedPage', p.versions.first.version_type
- end
-
- def test_rollback_with_version_number_with_sti
- p = locked_pages(:thinking)
- assert_equal 'So I was thinking', p.title
-
- assert p.revert_to!(p.versions.first.version), "Couldn't revert to 1"
- assert_equal 'So I was thinking!!!', p.title
- assert_equal 'SpecialLockedPage', p.versions.first.version_type
- end
-
- def test_lock_version_works_with_versioning
- p = locked_pages(:thinking)
- p2 = LockedPage.find(p.id)
-
- p.title = 'fresh title'
- p.save
- assert_equal 2, p.versions.size # limit!
-
- assert_raises(ActiveRecord::StaleObjectError) do
- p2.title = 'stale title'
- p2.save
- end
- end
-
- def test_version_if_condition
- p = Page.create! :title => "title"
- assert_equal 1, p.version
-
- Page.feeling_good = false
- p.save
- assert_equal 1, p.version
- Page.feeling_good = true
- end
-
- def test_version_if_condition2
- # set new if condition
- Page.class_eval do
- def new_feeling_good() title[0..0] == 'a'; end
- alias_method :old_feeling_good, :feeling_good?
- alias_method :feeling_good?, :new_feeling_good
- end
-
- p = Page.create! :title => "title"
- assert_equal 1, p.version # version does not increment
- assert_equal 1, p.versions.count
-
- p.update_attributes(:title => 'new title')
- assert_equal 1, p.version # version does not increment
- assert_equal 1, p.versions.count
-
- p.update_attributes(:title => 'a title')
- assert_equal 2, p.version
- assert_equal 2, p.versions.count
-
- # reset original if condition
- Page.class_eval { alias_method :feeling_good?, :old_feeling_good }
- end
-
- def test_version_if_condition_with_block
- # set new if condition
- old_condition = Page.version_condition
- Page.version_condition = Proc.new { |page| page.title[0..0] == 'b' }
-
- p = Page.create! :title => "title"
- assert_equal 1, p.version # version does not increment
- assert_equal 1, p.versions.count
-
- p.update_attributes(:title => 'a title')
- assert_equal 1, p.version # version does not increment
- assert_equal 1, p.versions.count
-
- p.update_attributes(:title => 'b title')
- assert_equal 2, p.version
- assert_equal 2, p.versions.count
-
- # reset original if condition
- Page.version_condition = old_condition
- end
-
- def test_version_no_limit
- p = Page.create! :title => "title", :body => 'first body'
- p.save
- p.save
- 5.times do |i|
- p.title = "title#{i}"
- p.save
- assert_equal "title#{i}", p.title
- assert_equal (i+2), p.version
- end
- end
-
- def test_version_max_limit
- p = LockedPage.create! :title => "title"
- p.update_attributes(:title => "title1")
- p.update_attributes(:title => "title2")
- 5.times do |i|
- p.title = "title#{i}"
- p.save
- assert_equal "title#{i}", p.title
- assert_equal (i+4), p.lock_version
- assert p.versions(true).size <= 2, "locked version can only store 2 versions"
- end
- end
-
- def test_track_altered_attributes_default_value
- assert !Page.track_altered_attributes
- assert LockedPage.track_altered_attributes
- assert SpecialLockedPage.track_altered_attributes
- end
-
- def test_track_altered_attributes
- p = LockedPage.create! :title => "title"
- assert_equal 1, p.lock_version
- assert_equal 1, p.versions(true).size
-
- p.title = 'title'
- assert !p.save_version?
- p.save
- assert_equal 2, p.lock_version # still increments version because of optimistic locking
- assert_equal 1, p.versions(true).size
-
- p.title = 'updated title'
- assert p.save_version?
- p.save
- assert_equal 3, p.lock_version
- assert_equal 1, p.versions(true).size # version 1 deleted
-
- p.title = 'updated title!'
- assert p.save_version?
- p.save
- assert_equal 4, p.lock_version
- assert_equal 2, p.versions(true).size # version 1 deleted
- end
-
- def test_find_versions
- assert_equal 1, locked_pages(:welcome).versions.find(:all, :conditions => ['title LIKE ?', '%weblog%']).size
- end
-
- def test_find_version
- assert_equal page_versions(:welcome_1), pages(:welcome).versions.find_by_version(23)
- end
-
- def test_with_sequence
- assert_equal 'widgets_seq', Widget.versioned_class.sequence_name
- 3.times { Widget.create! :name => 'new widget' }
- assert_equal 3, Widget.count
- assert_equal 3, Widget.versioned_class.count
- end
-
- def test_has_many_through
- assert_equal [authors(:caged), authors(:mly)], pages(:welcome).authors
- end
-
- def test_has_many_through_with_custom_association
- assert_equal [authors(:caged), authors(:mly)], pages(:welcome).revisors
- end
-
- def test_referential_integrity
- pages(:welcome).destroy
- assert_equal 0, Page.count
- assert_equal 0, Page::Version.count
- end
-
- def test_association_options
- association = Page.reflect_on_association(:versions)
- options = association.options
- assert_equal :delete_all, options[:dependent]
-
- association = Widget.reflect_on_association(:versions)
- options = association.options
- assert_equal :nullify, options[:dependent]
- assert_equal 'version desc', options[:order]
- assert_equal 'widget_id', options[:foreign_key]
-
- widget = Widget.create! :name => 'new widget'
- assert_equal 1, Widget.count
- assert_equal 1, Widget.versioned_class.count
- widget.destroy
- assert_equal 0, Widget.count
- assert_equal 1, Widget.versioned_class.count
- end
-
- def test_versioned_records_should_belong_to_parent
- page = pages(:welcome)
- page_version = page.versions.last
- assert_equal page, page_version.page
- end
-
- def test_unaltered_attributes
- landmarks(:washington).attributes = landmarks(:washington).attributes.except("id")
- assert !landmarks(:washington).changed?
- end
-
- def test_unchanged_string_attributes
- landmarks(:washington).attributes = landmarks(:washington).attributes.except("id").inject({}) { |params, (key, value)| params.update(key => value.to_s) }
- assert !landmarks(:washington).changed?
- end
-
- def test_should_find_earliest_version
- assert_equal page_versions(:welcome_1), pages(:welcome).versions.earliest
- end
-
- def test_should_find_latest_version
- assert_equal page_versions(:welcome_2), pages(:welcome).versions.latest
- end
-
- def test_should_find_previous_version
- assert_equal page_versions(:welcome_1), page_versions(:welcome_2).previous
- assert_equal page_versions(:welcome_1), pages(:welcome).versions.before(page_versions(:welcome_2))
- end
-
- def test_should_find_next_version
- assert_equal page_versions(:welcome_2), page_versions(:welcome_1).next
- assert_equal page_versions(:welcome_2), pages(:welcome).versions.after(page_versions(:welcome_1))
- end
-
- def test_should_find_version_count
- assert_equal 2, pages(:welcome).versions.size
- end
-
- def test_if_changed_creates_version_if_a_listed_column_is_changed
- landmarks(:washington).name = "Washington"
- assert landmarks(:washington).changed?
- assert landmarks(:washington).altered?
- end
-
- def test_if_changed_creates_version_if_all_listed_columns_are_changed
- landmarks(:washington).name = "Washington"
- landmarks(:washington).latitude = 1.0
- landmarks(:washington).longitude = 1.0
- assert landmarks(:washington).changed?
- assert landmarks(:washington).altered?
- end
-
- def test_if_changed_does_not_create_new_version_if_unlisted_column_is_changed
- landmarks(:washington).doesnt_trigger_version = "This should not trigger version"
- assert landmarks(:washington).changed?
- assert !landmarks(:washington).altered?
- end
-end \ No newline at end of file
diff --git a/vendor/plugins/acts_as_xapian/README.txt b/vendor/plugins/acts_as_xapian/README.txt
index 62cef2f24..a1d22ef3f 100644
--- a/vendor/plugins/acts_as_xapian/README.txt
+++ b/vendor/plugins/acts_as_xapian/README.txt
@@ -14,7 +14,7 @@ copied from the README.txt file.
Contents
========
-* a. Introduction to acts_as_xapian
+* a. Introduction to acts_as_xapian
* b. Installation
* c. Comparison to acts_as_solr (as on 24 April 2008)
* d. Documentation - indexing
@@ -33,14 +33,14 @@ alternative to acts_as_solr, acts_as_ferret, Ultrasphinx, acts_as_indexed,
acts_as_searchable or acts_as_tsearch.
acts_as_xapian is deployed in production on these websites.
-* "WhatDoTheyKnow":http://www.whatdotheyknow.com
+* "WhatDoTheyKnow":http://www.whatdotheyknow.com
* "MindBites":http://www.mindbites.com
-The section "c. Comparison to acts_as_solr" below will give you an idea of
+The section "c. Comparison to acts_as_solr" below will give you an idea of
acts_as_xapian's features.
acts_as_xapian was started by Francis Irving in May 2008 for search and email
-alerts in WhatDoTheyKnow, and so was supported by "mySociety":http://www.mysociety.org
+alerts in WhatDoTheyKnow, and so was supported by "mySociety":http://www.mysociety.org
and initially paid for by the "JRSST Charitable Trust":http://www.jrrt.org.uk/jrsstct.htm
@@ -52,11 +52,11 @@ this command within your Rails app.
git clone git://github.com/frabcus/acts_as_xapian.git vendor/plugins/acts_as_xapian
-Xapian 1.0.5 and associated Ruby bindings are also required.
+Xapian 1.0.5 and associated Ruby bindings are also required.
-Debian or Ubuntu - install the packages libxapian15 and libxapian-ruby1.8.
+Debian or Ubuntu - install the packages libxapian15 and libxapian-ruby1.8.
-Mac OSX - follow the instructions for installing from source on
+Mac OSX - follow the instructions for installing from source on
the "Installing Xapian":http://xapian.org/docs/install.html page - you need the
Xapian library and bindings (you don't need Omega).
@@ -102,7 +102,7 @@ Solr getting in the way whenever you want to use a new feature from Lucene.
* No Java - an advantage if you're more used to working in the rest of the
open source world. acts_as_xapian, it's pure Ruby and C++.
-* Xapian's awesome email list - the kids over at
+* Xapian's awesome email list - the kids over at
"xapian-discuss":http://lists.xapian.org/mailman/listinfo/xapian-discuss
are super helpful. Useful if you need to extend and improve acts_as_xapian. The
Ruby bindings are mature and well maintained as part of Xapian.
@@ -131,11 +131,11 @@ Here's how to add indexing to your Rails app:
Options must include:
-* :texts, an array of fields for indexing with full text search.
+* :texts, an array of fields for indexing with full text search.
e.g. :texts => [ :title, :body ]
-* :values, things which have a range of values for sorting, or for collapsing.
-Specify an array quadruple of [ field, identifier, prefix, type ] where
+* :values, things which have a range of values for sorting, or for collapsing.
+Specify an array quadruple of [ field, identifier, prefix, type ] where
** identifier is an arbitary numeric identifier for use in the Xapian database
** prefix is the part to use in search queries that goes before the :
** type can be any of :string, :number or :date
@@ -143,8 +143,8 @@ Specify an array quadruple of [ field, identifier, prefix, type ] where
e.g. :values => [ [ :created_at, 0, "created_at", :date ],
[ :size, 1, "size", :string ] ]
-* :terms, things which come with a prefix (before a :) in search queries.
-Specify an array triple of [ field, char, prefix ] where
+* :terms, things which come with a prefix (before a :) in search queries.
+Specify an array triple of [ field, char, prefix ] where
** char is an arbitary single upper case char used in the Xapian database, just
pick any single uppercase character, but use a different one for each prefix.
** prefix is the part to use in search queries that goes before the :
@@ -152,7 +152,7 @@ For example, if you were making Google and indexing to be able to later do a
query like "site:www.whatdotheyknow.com", then the prefix would be "site".
e.g. :terms => [ [ :variety, 'V', "variety" ] ]
-
+
A 'field' is a symbol referring to either an attribute or a function which
returns the text, date or number to index. Both 'identifier' and 'char' must be
the same for the same prefix in different models.
@@ -170,7 +170,7 @@ object isn't indexed
3. Call 'rake xapian:rebuild_index models="ModelName1 ModelName2"' to build the index
the first time (you must specify all your indexed models). It's put in a
-development/test/production dir in acts_as_xapian/xapiandbs. See f. Configuration
+development/test/production dir in acts_as_xapian/xapiandbs. See f. Configuration
below if you want to change this.
4. Then from a cron job or a daemon, or by hand regularly!, call 'rake xapian:update_index'
@@ -201,10 +201,10 @@ And then a hash of options:
* :sort_by_ascending - Default true (documents with higher values better/earlier), set to false for descending sort
* :collapse_by_prefix - Optionally, prefix of value to collapse by (i.e. only return most relevant result from group)
-Google like query syntax is as described in
+Google like query syntax is as described in
"Xapian::QueryParser Syntax":http://www.xapian.org/docs/queryparser.html
Queries can include prefix:value parts, according to what you indexed in the
-acts_as_xapian part above. You can also say things like model:InfoRequestEvent
+acts_as_xapian part above. You can also say things like model:InfoRequestEvent
to constrain by model in more complex ways than the :model parameter, or
modelid:InfoRequestEvent-100 to only find one specific object.
@@ -236,12 +236,12 @@ f. Configuration
================
If you want to customise the configuration of acts_as_xapian, it will look for
-a file called 'xapian.yml' under RAILS_ROOT/config. As is familiar from the
+a file called 'xapian.yml' under Rails.root/config. As is familiar from the
format of the database.yml file, separate :development, :test and :production
sections are expected.
The following options are available:
-* base_db_path - specifies the directory, relative to RAILS_ROOT, in which
+* base_db_path - specifies the directory, relative to Rails.root, in which
acts_as_xapian stores its search index databases. Default is the directory
xapiandbs within the acts_as_xapian directory.
@@ -264,7 +264,7 @@ temporarily add this to the end of your config/environment.rb
h. Support
==========
-Please ask any questions on the
+Please ask any questions on the
"acts_as_xapian Google Group":http://groups.google.com/group/acts_as_xapian
The official home page and repository for acts_as_xapian are the
diff --git a/vendor/plugins/acts_as_xapian/init.rb b/vendor/plugins/acts_as_xapian/init.rb
index 36b43ac0b..1e5b8557b 100644
--- a/vendor/plugins/acts_as_xapian/init.rb
+++ b/vendor/plugins/acts_as_xapian/init.rb
@@ -1,7 +1,7 @@
# acts_as_xapian/init.rb:
#
# Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
require 'acts_as_xapian'
diff --git a/vendor/plugins/acts_as_xapian/lib/acts_as_xapian.rb b/vendor/plugins/acts_as_xapian/lib/acts_as_xapian.rb
index 374fcd65b..f2cd1075c 100644
--- a/vendor/plugins/acts_as_xapian/lib/acts_as_xapian.rb
+++ b/vendor/plugins/acts_as_xapian/lib/acts_as_xapian.rb
@@ -1,8 +1,9 @@
+# encoding: utf-8
# acts_as_xapian/lib/acts_as_xapian.rb:
# Xapian full text search in Ruby on Rails.
#
# Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
#
# Documentation
# =============
@@ -88,16 +89,16 @@ module ActsAsXapian
return unless @@db_path.nil?
# barf if we can't figure out the environment
- environment = (ENV['RAILS_ENV'] or RAILS_ENV)
+ environment = (ENV['RAILS_ENV'] or Rails.env)
raise "Set RAILS_ENV, so acts_as_xapian can find the right Xapian database" if not environment
# check for a config file
- config_file = RAILS_ROOT + "/config/xapian.yml"
+ config_file = Rails.root.join("config","xapian.yml")
@@config = File.exists?(config_file) ? YAML.load_file(config_file)[environment] : {}
# figure out where the DBs should go
if config['base_db_path']
- db_parent_path = RAILS_ROOT + "/" + config['base_db_path']
+ db_parent_path = Rails.root.join(config['base_db_path'])
else
db_parent_path = File.join(File.dirname(__FILE__), '../xapiandbs/')
end
@@ -472,7 +473,9 @@ module ActsAsXapian
# date ranges or similar. Use this for cheap highlighting with
# TextHelper::highlight, and excerpt.
def words_to_highlight
- query_nopunc = self.query_string.gsub(/[^a-z0-9:\.\/_]/i, " ")
+ # TODO: In Ruby 1.9 we can do matching of any unicode letter with \p{L}
+ # But we still need to support ruby 1.8 for the time being so...
+ query_nopunc = self.query_string.gsub(/[^ёЁа-яА-Яa-zA-Zà-üÀ-Ü0-9:\.\/_]/iu, " ")
query_nopunc = query_nopunc.gsub(/\s+/, " ")
words = query_nopunc.split(" ")
# Remove anything with a :, . or / in it
@@ -711,6 +714,9 @@ module ActsAsXapian
# We fork here, so each batch is run in a different process. This is
# because otherwise we get a memory "leak" and you can't rebuild very
# large databases (however long you have!)
+
+ ActiveRecord::Base.connection.disconnect!
+
pid = Process.fork # XXX this will only work on Unix, tough
if pid
Process.waitpid(pid)
@@ -718,11 +724,10 @@ module ActsAsXapian
raise "batch fork child failed, exiting also"
end
# database connection doesn't survive a fork, rebuild it
- ActiveRecord::Base.connection.reconnect!
else
-
# fully reopen the database each time (with a new object)
# (so doc ids and so on aren't preserved across the fork)
+ ActiveRecord::Base.establish_connection
@@db_path = ActsAsXapian.db_path + ".new"
ActsAsXapian.writable_init
STDOUT.puts("ActsAsXapian.rebuild_index: New batch. #{model_class.to_s} from #{i} to #{i + batch_size} of #{model_class_count} pid #{Process.pid.to_s}") if verbose
@@ -738,6 +743,8 @@ module ActsAsXapian
Kernel.exit! 0
end
+ ActiveRecord::Base.establish_connection
+
end
end
end
@@ -758,7 +765,7 @@ module ActsAsXapian
else
values = []
for locale in self.translations.map{|x| x.locale}
- self.class.with_locale(locale) do
+ I18n.with_locale(locale) do
values << single_xapian_value(field, type=type)
end
end
diff --git a/vendor/plugins/exception_notification/README b/vendor/plugins/exception_notification/README
deleted file mode 100644
index d5e343630..000000000
--- a/vendor/plugins/exception_notification/README
+++ /dev/null
@@ -1,144 +0,0 @@
-= Exception Notifier Plugin for Rails
-
-The Exception Notifier plugin provides a mailer object and a default set of
-templates for sending email notifications when errors occur in a Rails
-application. The plugin is configurable, allowing programmers to specify:
-
-* the sender address of the email
-* the recipient addresses
-* the text used to prefix the subject line
-
-The email includes information about the current request, session, and
-environment, and also gives a backtrace of the exception.
-
-== Usage
-
-First, include the ExceptionNotifiable mixin in whichever controller you want
-to generate error emails (typically ApplicationController):
-
- class ApplicationController < ActionController::Base
- include ExceptionNotification::Notifiable
- ...
- end
-
-Then, specify the email recipients in your environment:
-
- ExceptionNotification::Notifier.exception_recipients = %w(joe@schmoe.com bill@schmoe.com)
-
-And that's it! The defaults take care of the rest.
-
-== Configuration
-
-You can tweak other values to your liking, as well. In your environment file,
-just set any or all of the following values:
-
- # defaults to exception.notifier@default.com
- ExceptionNotification::Notifier.sender_address =
- %("Application Error" <app.error@myapp.com>)
-
- # defaults to "[ERROR] "
- ExceptionNotification::Notifier.email_prefix = "[APP] "
-
-Even if you have mixed into ApplicationController you can skip notification in
-some controllers by
-
- class MyController < ApplicationController
- skip_exception_notifications
- end
-
-== Deprecated local_request? overriding
-
-Email notifications will only occur when the IP address is determined not to
-be local. You can specify certain addresses to always be local so that you'll
-get a detailed error instead of the generic error page. You do this in your
-controller (or even per-controller):
-
- consider_local "64.72.18.143", "14.17.21.25"
-
-You can specify subnet masks as well, so that all matching addresses are
-considered local:
-
- consider_local "64.72.18.143/24"
-
-The address "127.0.0.1" is always considered local. If you want to completely
-reset the list of all addresses (for instance, if you wanted "127.0.0.1" to
-NOT be considered local), you can simply do, somewhere in your controller:
-
- local_addresses.clear
-
-NOTE: The above functionality has has been pulled out to consider_local.rb,
-as interfering with rails local determination is orthogonal to notification,
-unnecessarily clutters backtraces, and even occasionally errs on odd ip or
-requests bugs. To return original functionality add an initializer with:
-
- ActionController::Base.send :include, ConsiderLocal
-
-or just include it per controller that wants it
-
- class MyController < ApplicationController
- include ExceptionNotification::ConsiderLocal
- end
-
-== Customization
-
-By default, the notification email includes four parts: request, session,
-environment, and backtrace (in that order). You can customize how each of those
-sections are rendered by placing a partial named for that part in your
-app/views/exception_notifier directory (e.g., _session.rhtml). Each partial has
-access to the following variables:
-
-* @controller: the controller that caused the error
-* @request: the current request object
-* @exception: the exception that was raised
-* @host: the name of the host that made the request
-* @backtrace: a sanitized version of the exception's backtrace
-* @rails_root: a sanitized version of RAILS_ROOT
-* @data: a hash of optional data values that were passed to the notifier
-* @sections: the array of sections to include in the email
-
-You can reorder the sections, or exclude sections completely, by altering the
-ExceptionNotification::Notifier.sections variable. You can even add new sections that
-describe application-specific data--just add the section's name to the list
-(whereever you'd like), and define the corresponding partial. Then, if your
-new section requires information that isn't available by default, make sure
-it is made available to the email using the exception_data macro:
-
- class ApplicationController < ActionController::Base
- ...
- protected
- exception_data :additional_data
-
- def additional_data
- { :document => @document,
- :person => @person }
- end
- ...
- end
-
-In the above case, @document and @person would be made available to the email
-renderer, allowing your new section(s) to access and display them. See the
-existing sections defined by the plugin for examples of how to write your own.
-
-== 404s errors
-
-Notification is skipped if you return a 404 status, which happens by default
-for an ActiveRecord::RecordNotFound or ActionController::UnknownAction error.
-
-== Manually notifying of error in a rescue block
-
-If your controller action manually handles an error, the notifier will never be
-run. To manually notify of an error call notify_about_exception from within the
-rescue block
-
- def index
- #risky operation here
- rescue StandardError => error
- #custom error handling here
- notify_about_exception(error)
- end
-
-== Support and tickets
-
-https://rails.lighthouseapp.com/projects/8995-rails-plugins
-
-Copyright (c) 2005 Jamis Buck, released under the MIT license \ No newline at end of file
diff --git a/vendor/plugins/exception_notification/exception_notification.gemspec b/vendor/plugins/exception_notification/exception_notification.gemspec
deleted file mode 100644
index b3ff82322..000000000
--- a/vendor/plugins/exception_notification/exception_notification.gemspec
+++ /dev/null
@@ -1,11 +0,0 @@
-Gem::Specification.new do |s|
- s.name = 'exception_notification'
- s.version = '2.3.3.0'
- s.authors = ["Jamis Buck", "Josh Peek", "Tim Connor"]
- s.date = %q{2010-03-13}
- s.summary = "Exception notification by email for Rails apps - 2.3-stable compatible version"
- s.email = "timocratic@gmail.com"
-
- s.files = ['README'] + Dir['lib/**/*'] + Dir['views/**/*']
- s.require_path = 'lib'
-end
diff --git a/vendor/plugins/exception_notification/init.rb b/vendor/plugins/exception_notification/init.rb
deleted file mode 100644
index ef215f809..000000000
--- a/vendor/plugins/exception_notification/init.rb
+++ /dev/null
@@ -1 +0,0 @@
-require "exception_notification"
diff --git a/vendor/plugins/exception_notification/lib/exception_notification.rb b/vendor/plugins/exception_notification/lib/exception_notification.rb
deleted file mode 100644
index bf5975201..000000000
--- a/vendor/plugins/exception_notification/lib/exception_notification.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-require "action_mailer"
-module ExceptionNotification
- autoload :Notifiable, 'exception_notification/notifiable'
- autoload :Notifier, 'exception_notification/notifier'
- #autoload :NotifierHelper, 'exception_notification/notifier_helper'
- autoload :ConsiderLocal, 'exception_notification/consider_local'
-end \ No newline at end of file
diff --git a/vendor/plugins/exception_notification/lib/exception_notification/consider_local.rb b/vendor/plugins/exception_notification/lib/exception_notification/consider_local.rb
deleted file mode 100644
index 6b9e236f7..000000000
--- a/vendor/plugins/exception_notification/lib/exception_notification/consider_local.rb
+++ /dev/null
@@ -1,31 +0,0 @@
-#This didn't belong on ExceptionNotifier and made backtraces worse. To keep original functionality in place
-#'ActionController::Base.send :include, ExceptionNotification::ConsiderLocal' or just include in your controller
-module ExceptionNotification::ConsiderLocal
- def self.included(target)
- require 'ipaddr'
- target.extend(ClassMethods)
- end
-
- module ClassMethods
- def consider_local(*args)
- local_addresses.concat(args.flatten.map { |a| IPAddr.new(a) })
- end
-
- def local_addresses
- addresses = read_inheritable_attribute(:local_addresses)
- unless addresses
- addresses = [IPAddr.new("127.0.0.1")]
- write_inheritable_attribute(:local_addresses, addresses)
- end
- addresses
- end
- end
-
-private
-
- def local_request?
- remote = IPAddr.new(request.remote_ip)
- !self.class.local_addresses.detect { |addr| addr.include?(remote) }.nil?
- end
-
-end
diff --git a/vendor/plugins/exception_notification/lib/exception_notification/notifiable.rb b/vendor/plugins/exception_notification/lib/exception_notification/notifiable.rb
deleted file mode 100644
index 19895e8db..000000000
--- a/vendor/plugins/exception_notification/lib/exception_notification/notifiable.rb
+++ /dev/null
@@ -1,66 +0,0 @@
-# Copyright (c) 2005 Jamis Buck
-#
-# 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.
-module ExceptionNotification::Notifiable
- def self.included(target)
- target.extend(ClassMethods)
- target.skip_exception_notifications false
- end
-
- module ClassMethods
- def exception_data(deliverer=self)
- if deliverer == self
- read_inheritable_attribute(:exception_data)
- else
- write_inheritable_attribute(:exception_data, deliverer)
- end
- end
-
- def skip_exception_notifications(boolean=true)
- write_inheritable_attribute(:skip_exception_notifications, boolean)
- end
-
- def skip_exception_notifications?
- read_inheritable_attribute(:skip_exception_notifications)
- end
- end
-
-private
-
- def rescue_action_in_public(exception)
- super
- notify_about_exception(exception) if deliver_exception_notification?
- end
-
- def deliver_exception_notification?
- !self.class.skip_exception_notifications? && ![404, "404 Not Found"].include?(response.status.to_s)
- end
-
- def notify_about_exception(exception)
- deliverer = self.class.exception_data
- data = case deliverer
- when nil then {}
- when Symbol then send(deliverer)
- when Proc then deliverer.call(self)
- end
-
- ExceptionNotification::Notifier.deliver_exception_notification(exception, self, request, data)
- end
-end
diff --git a/vendor/plugins/exception_notification/lib/exception_notification/notifier.rb b/vendor/plugins/exception_notification/lib/exception_notification/notifier.rb
deleted file mode 100644
index 2cab3f963..000000000
--- a/vendor/plugins/exception_notification/lib/exception_notification/notifier.rb
+++ /dev/null
@@ -1,80 +0,0 @@
-require 'pathname'
-
-# Copyright (c) 2005 Jamis Buck
-#
-# 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.
-class ExceptionNotification::Notifier < ActionMailer::Base
- self.mailer_name = 'exception_notifier'
- self.view_paths << "#{File.dirname(__FILE__)}/../../views"
-
- # next line is a hack to fix
- # undefined method `find_template' for #<Array:0x000001009cd230>
- # after Rails 2.3.8 -> 2.3.11 upgrade
- self.view_paths = ActionView::PathSet.new(self.view_paths) unless self.view_paths.respond_to?(:find_template)
-
- @@sender_address = %("Exception Notifier" <exception.notifier@default.com>)
- cattr_accessor :sender_address
-
- @@exception_recipients = []
- cattr_accessor :exception_recipients
-
- @@email_prefix = "[ERROR] "
- cattr_accessor :email_prefix
-
- @@sections = %w(request session environment backtrace)
- cattr_accessor :sections
-
- def self.reloadable?() false end
-
- def exception_notification(exception, controller, request, data={})
- source = self.class.exception_source(controller)
- content_type "text/plain"
-
- subject "#{email_prefix}#{source} (#{exception.class}) #{exception.message.inspect}"
-
- recipients exception_recipients
- from sender_address
-
- body data.merge({ :controller => controller, :request => request,
- :exception => exception, :exception_source => source, :host => (request.env["HTTP_X_FORWARDED_HOST"] || request.env["HTTP_HOST"]),
- :backtrace => sanitize_backtrace(exception.backtrace),
- :rails_root => rails_root, :data => data,
- :sections => sections })
- end
-
- def self.exception_source(controller)
- if controller.respond_to?(:controller_name)
- "in #{controller.controller_name}##{controller.action_name}"
- else
- "outside of a controller"
- end
- end
-
-private
-
- def sanitize_backtrace(trace)
- re = Regexp.new(/^#{Regexp.escape(rails_root)}/)
- trace.map { |line| Pathname.new(line.gsub(re, "[RAILS_ROOT]")).cleanpath.to_s }
- end
-
- def rails_root
- @rails_root ||= Pathname.new(RAILS_ROOT).cleanpath.to_s
- end
-end
diff --git a/vendor/plugins/exception_notification/lib/exception_notification/notifier_helper.rb b/vendor/plugins/exception_notification/lib/exception_notification/notifier_helper.rb
deleted file mode 100644
index 942e1c527..000000000
--- a/vendor/plugins/exception_notification/lib/exception_notification/notifier_helper.rb
+++ /dev/null
@@ -1,67 +0,0 @@
-require 'pp'
-
-# Copyright (c) 2005 Jamis Buck
-#
-# 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.
-module ExceptionNotification::NotifierHelper
- PARAM_FILTER_REPLACEMENT = "[FILTERED]"
-
- def render_section(section)
- RAILS_DEFAULT_LOGGER.info("rendering section #{section.inspect}")
- summary = render("exception_notifier/#{section}").strip
- unless summary.blank?
- title = render("exception_notifier/title", :locals => { :title => section }).strip
- "#{title}\n\n#{summary.gsub(/^/, " ")}\n\n"
- end
- end
-
- def inspect_model_object(model, locals={})
- render('exception_notifier/inspect_model',
- :locals => { :inspect_model => model,
- :show_instance_variables => true,
- :show_attributes => true }.merge(locals))
- end
-
- def inspect_value(value)
- len = 512
- result = object_to_yaml(value).gsub(/\n/, "\n ").strip
- result = result[0,len] + "... (#{result.length-len} bytes more)" if result.length > len+20
- result
- end
-
- def object_to_yaml(object)
- object.to_yaml.sub(/^---\s*/m, "")
- end
-
- def exclude_raw_post_parameters?
- @controller && @controller.respond_to?(:filter_parameters)
- end
-
- def filter_sensitive_post_data_parameters(parameters)
- exclude_raw_post_parameters? ? @controller.__send__(:filter_parameters, parameters) : parameters
- end
-
- def filter_sensitive_post_data_from_env(env_key, env_value)
- return env_value unless exclude_raw_post_parameters?
- return PARAM_FILTER_REPLACEMENT if (env_key =~ /RAW_POST_DATA/i)
- return @controller.__send__(:filter_parameters, {env_key => env_value}).values[0]
- end
-
-end
diff --git a/vendor/plugins/exception_notification/test/exception_notifier_helper_test.rb b/vendor/plugins/exception_notification/test/exception_notifier_helper_test.rb
deleted file mode 100644
index e077f405b..000000000
--- a/vendor/plugins/exception_notification/test/exception_notifier_helper_test.rb
+++ /dev/null
@@ -1,62 +0,0 @@
-require 'test_helper'
-require 'exception_notification/notifier_helper'
-
-class ExceptionNotifierHelperTest < Test::Unit::TestCase
-
- class ExceptionNotifierHelperIncludeTarget
- include ExceptionNotification::NotifierHelper
- end
-
- def setup
- @helper = ExceptionNotifierHelperIncludeTarget.new
- end
-
- # No controller
-
- def test_should_not_exclude_raw_post_parameters_if_no_controller
- assert !@helper.exclude_raw_post_parameters?
- end
-
- # Controller, no filtering
-
- class ControllerWithoutFilterParameters; end
-
- def test_should_not_filter_env_values_for_raw_post_data_keys_if_controller_can_not_filter_parameters
- stub_controller(ControllerWithoutFilterParameters.new)
- assert @helper.filter_sensitive_post_data_from_env("RAW_POST_DATA", "secret").include?("secret")
- end
- def test_should_not_exclude_raw_post_parameters_if_controller_can_not_filter_parameters
- stub_controller(ControllerWithoutFilterParameters.new)
- assert !@helper.exclude_raw_post_parameters?
- end
- def test_should_return_params_if_controller_can_not_filter_parameters
- stub_controller(ControllerWithoutFilterParameters.new)
- assert_equal :params, @helper.filter_sensitive_post_data_parameters(:params)
- end
-
- # Controller with filtering
-
- class ControllerWithFilterParameters
- def filter_parameters(params)
- { "PARAM" => ExceptionNotification::NotifierHelper::PARAM_FILTER_REPLACEMENT }
- end
- end
-
- def test_should_filter_env_values_for_raw_post_data_keys_if_controller_can_filter_parameters
- stub_controller(ControllerWithFilterParameters.new)
- assert !@helper.filter_sensitive_post_data_from_env("RAW_POST_DATA", "secret").include?("secret")
- end
- def test_should_exclude_raw_post_parameters_if_controller_can_filter_parameters
- stub_controller(ControllerWithFilterParameters.new)
- assert @helper.exclude_raw_post_parameters?
- end
- def test_should_delegate_param_filtering_to_controller_if_controller_can_filter_parameters
- stub_controller(ControllerWithFilterParameters.new)
- assert_equal({"PARAM" => "[FILTERED]" }, @helper.filter_sensitive_post_data_parameters({"PARAM" => 'secret'}))
- end
-
- private
- def stub_controller(controller)
- @helper.instance_variable_set(:@controller, controller)
- end
-end \ No newline at end of file
diff --git a/vendor/plugins/exception_notification/test/test_helper.rb b/vendor/plugins/exception_notification/test/test_helper.rb
deleted file mode 100644
index 5831a1784..000000000
--- a/vendor/plugins/exception_notification/test/test_helper.rb
+++ /dev/null
@@ -1,8 +0,0 @@
-require 'test/unit'
-require 'rubygems'
-require 'active_support'
-
-RAILS_ROOT = '.' unless defined?(RAILS_ROOT)
-
-$:.unshift File.join(File.dirname(__FILE__), '../lib')
-require 'exception_notification' \ No newline at end of file
diff --git a/vendor/plugins/exception_notification/views/exception_notifier/_backtrace.rhtml b/vendor/plugins/exception_notification/views/exception_notifier/_backtrace.rhtml
deleted file mode 100644
index 7d13ba007..000000000
--- a/vendor/plugins/exception_notification/views/exception_notifier/_backtrace.rhtml
+++ /dev/null
@@ -1 +0,0 @@
-<%= @backtrace.join "\n" %>
diff --git a/vendor/plugins/exception_notification/views/exception_notifier/_environment.rhtml b/vendor/plugins/exception_notification/views/exception_notifier/_environment.rhtml
deleted file mode 100644
index 42dd803f1..000000000
--- a/vendor/plugins/exception_notification/views/exception_notifier/_environment.rhtml
+++ /dev/null
@@ -1,7 +0,0 @@
-<% max = @request.env.keys.max { |a,b| a.length <=> b.length } -%>
-<% @request.env.keys.sort.each do |key| -%>
-* <%= "%-*s: %s" % [max.length, key, filter_sensitive_post_data_from_env(key, @request.env[key].to_s.strip)] %>
-<% end -%>
-
-* Process: <%= $$ %>
-* Server : <%= `hostname -s`.chomp %>
diff --git a/vendor/plugins/exception_notification/views/exception_notifier/_inspect_model.rhtml b/vendor/plugins/exception_notification/views/exception_notifier/_inspect_model.rhtml
deleted file mode 100644
index e817847e4..000000000
--- a/vendor/plugins/exception_notification/views/exception_notifier/_inspect_model.rhtml
+++ /dev/null
@@ -1,16 +0,0 @@
-<% if show_attributes -%>
-[attributes]
-<% attrs = inspect_model.attributes -%>
-<% max = attrs.keys.max { |a,b| a.length <=> b.length } -%>
-<% attrs.keys.sort.each do |attr| -%>
-* <%= "%*-s: %s" % [max.length, attr, object_to_yaml(attrs[attr]).gsub(/\n/, "\n ").strip] %>
-<% end -%>
-<% end -%>
-
-<% if show_instance_variables -%>
-[instance variables]
-<% inspect_model.instance_variables.sort.each do |variable| -%>
-<%- next if variable == "@attributes" -%>
-* <%= variable %>: <%= inspect_value(inspect_model.instance_variable_get(variable)) %>
-<% end -%>
-<% end -%>
diff --git a/vendor/plugins/exception_notification/views/exception_notifier/_request.rhtml b/vendor/plugins/exception_notification/views/exception_notifier/_request.rhtml
deleted file mode 100644
index 25423093f..000000000
--- a/vendor/plugins/exception_notification/views/exception_notifier/_request.rhtml
+++ /dev/null
@@ -1,4 +0,0 @@
-* URL : <%= @request.protocol %><%= @host %><%= @request.request_uri %>
-* IP address: <%= @request.env["HTTP_X_FORWARDED_FOR"] || @request.env["REMOTE_ADDR"] %>
-* Parameters: <%= filter_sensitive_post_data_parameters(@request.parameters).inspect %>
-* Rails root: <%= @rails_root %>
diff --git a/vendor/plugins/exception_notification/views/exception_notifier/_session.rhtml b/vendor/plugins/exception_notification/views/exception_notifier/_session.rhtml
deleted file mode 100644
index 308684885..000000000
--- a/vendor/plugins/exception_notification/views/exception_notifier/_session.rhtml
+++ /dev/null
@@ -1,2 +0,0 @@
-* session id: <%= @request.session_options[:id] %>
-* data: <%= @request.session.inspect %> \ No newline at end of file
diff --git a/vendor/plugins/exception_notification/views/exception_notifier/_title.rhtml b/vendor/plugins/exception_notification/views/exception_notifier/_title.rhtml
deleted file mode 100644
index 1ed5a3f2b..000000000
--- a/vendor/plugins/exception_notification/views/exception_notifier/_title.rhtml
+++ /dev/null
@@ -1,3 +0,0 @@
--------------------------------
-<%= title.to_s.humanize %>:
--------------------------------
diff --git a/vendor/plugins/exception_notification/views/exception_notifier/exception_notification.rhtml b/vendor/plugins/exception_notification/views/exception_notifier/exception_notification.rhtml
deleted file mode 100644
index 715c105bf..000000000
--- a/vendor/plugins/exception_notification/views/exception_notifier/exception_notification.rhtml
+++ /dev/null
@@ -1,6 +0,0 @@
-A <%= @exception.class %> occurred <%= @exception_source %>:
-
- <%= @exception.message %>
- <%= @backtrace.first %>
-
-<%= @sections.map { |section| render_section(section) }.join %>
diff --git a/vendor/plugins/globalize2/LICENSE b/vendor/plugins/globalize2/LICENSE
deleted file mode 100644
index 94a6b8160..000000000
--- a/vendor/plugins/globalize2/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License
-
-Copyright (c) 2008, 2009 Joshua Harvey
-
-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/plugins/globalize2/README.textile b/vendor/plugins/globalize2/README.textile
deleted file mode 100644
index e47e9bf37..000000000
--- a/vendor/plugins/globalize2/README.textile
+++ /dev/null
@@ -1,86 +0,0 @@
-h1. Globalize2
-
-Globalize2 is the successor of Globalize for Rails.
-
-It is compatible with and builds on the new "I18n api in Ruby on Rails":http://guides.rubyonrails.org/i18n.html. and adds model translations to ActiveRecord.
-
-Globalize2 is much more lightweight and compatible than its predecessor was. Model translations in Globalize2 use default ActiveRecord features and do not limit any ActiveRecord functionality any more.
-
-h2. Requirements
-
-ActiveRecord
-I18n
-
-(or Rails > 2.2)
-
-h2. Installation
-
-To install Globalize2 with its default setup just use:
-
-<pre><code>
-script/plugin install git://github.com/joshmh/globalize2.git
-</code></pre>
-
-h2. Model translations
-
-Model translations allow you to translate your models' attribute values. E.g.
-
-<pre><code>
-class Post < ActiveRecord::Base
- translates :title, :text
-end
-</code></pre>
-
-Allows you to values for the attributes :title and :text per locale:
-
-<pre><code>
-I18n.locale = :en
-post.title # => Globalize2 rocks!
-
-I18n.locale = :he
-post.title # => גלובאלייז2 שולט!
-</code></pre>
-
-In order to make this work, you'll need to add the appropriate translation tables. Globalize2 comes with a handy helper method to help you do this. It's called @create_translation_table!@. Here's an example:
-
-<pre><code>
-class CreatePosts < ActiveRecord::Migration
- def self.up
- create_table :posts do |t|
- t.timestamps
- end
- Post.create_translation_table! :title => :string, :text => :text
- end
- def self.down
- drop_table :posts
- Post.drop_translation_table!
- end
-end
-</code></pre>
-
-Note that the ActiveRecord model @Post@ must already exist and have a @translates@ directive listing the translated fields.
-
-h2. Migration from Globalize
-
-See this script by Tomasz Stachewicz: http://gist.github.com/120867
-
-h2. Changes since Globalize2 v0.1.0
-
-* The association globalize_translations has been renamed to translations.
-
-h2. Alternative Solutions
-
-* "Veger's fork":http://github.com/veger/globalize2 - uses default AR schema for the default locale, delegates to the translations table for other locales only
-* "TranslatableColumns":http://github.com/iain/translatable_columns - have multiple languages of the same attribute in a model (Iain Hecker)
-* "localized_record":http://github.com/glennpow/localized_record - allows records to have localized attributes without any modifications to the database (Glenn Powell)
-* "model_translations":http://github.com/janne/model_translations - Minimal implementation of Globalize2 style model translations (Jan Andersson)
-
-h2. Related solutions
-
-* "globalize2_versioning":http://github.com/joshmh/globalize2_versioning - acts_as_versioned style versioning for Globalize2 (Joshua Harvey)
-* "i18n_multi_locales_validations":http://github.com/ZenCocoon/i18n_multi_locales_validations - multi-locales attributes validations to validates attributes from Globalize2 translations models (Sébastien Grosjean)
-* "Globalize2 Demo App":http://github.com/svenfuchs/globalize2-demo - demo application for Globalize2 (Sven Fuchs)</li>
-* "migrate_from_globalize1":http://gist.github.com/120867 - migrate model translations from Globalize1 to Globalize2 (Tomasz Stachewicz)</li>
-* "easy_globalize2_accessors":http://github.com/astropanic/easy_globalize2_accessors - easily access (read and write) globalize2-translated fields (astropanic, Tomasz Stachewicz)</li>
-* "globalize2-easy-translate":http://github.com/bsamman/globalize2-easy-translate - adds methods to easily access or set translated attributes to your model (bsamman)</li>
-* "batch_translations":http://github.com/alvarezrilla/batch_translations - allow saving multiple Globalize2 translations in the same request (Jose Alvarez Rilla)</li>
diff --git a/vendor/plugins/globalize2/Rakefile b/vendor/plugins/globalize2/Rakefile
deleted file mode 100644
index bc35dada4..000000000
--- a/vendor/plugins/globalize2/Rakefile
+++ /dev/null
@@ -1,39 +0,0 @@
-require 'rake'
-require 'rake/testtask'
-require 'rake/rdoctask'
-
-desc 'Default: run unit tests.'
-task :default => :test
-
-desc 'Test the globalize2 plugin.'
-Rake::TestTask.new(:test) do |t|
- t.libs << 'lib'
- t.pattern = 'test/**/*_test.rb'
- t.verbose = true
-end
-
-desc 'Generate documentation for the globalize2 plugin.'
-Rake::RDocTask.new(:rdoc) do |rdoc|
- rdoc.rdoc_dir = 'rdoc'
- rdoc.title = 'Globalize2'
- rdoc.options << '--line-numbers' << '--inline-source'
- rdoc.rdoc_files.include('README')
- rdoc.rdoc_files.include('lib/**/*.rb')
-end
-
-begin
- require 'jeweler'
- Jeweler::Tasks.new do |s|
- s.name = "globalize2"
- s.summary = "Rails I18n: de-facto standard library for ActiveRecord data translation"
- s.description = "Rails I18n: de-facto standard library for ActiveRecord data translation"
- s.email = "joshmh@gmail.com"
- s.homepage = "http://github.com/joshmh/globalize2"
- # s.rubyforge_project = ''
- s.authors = ["Sven Fuchs, Joshua Harvey, Clemens Kofler, John-Paul Bader"]
- # s.add_development_dependency ''
- end
- Jeweler::GemcutterTasks.new
-rescue LoadError
- puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
-end
diff --git a/vendor/plugins/globalize2/VERSION b/vendor/plugins/globalize2/VERSION
deleted file mode 100644
index 0c62199f1..000000000
--- a/vendor/plugins/globalize2/VERSION
+++ /dev/null
@@ -1 +0,0 @@
-0.2.1
diff --git a/vendor/plugins/globalize2/generators/db_backend.rb b/vendor/plugins/globalize2/generators/db_backend.rb
deleted file mode 100644
index e69de29bb..000000000
--- a/vendor/plugins/globalize2/generators/db_backend.rb
+++ /dev/null
diff --git a/vendor/plugins/globalize2/generators/templates/db_backend_migration.rb b/vendor/plugins/globalize2/generators/templates/db_backend_migration.rb
deleted file mode 100644
index 0f0261113..000000000
--- a/vendor/plugins/globalize2/generators/templates/db_backend_migration.rb
+++ /dev/null
@@ -1,25 +0,0 @@
-class ActsAsTaggableMigration < ActiveRecord::Migration
- def self.up
- create_table :globalize_translations do |t|
- t.string :locale, :null => false
- t.string :key, :null => false
- t.string :translation
- t.timestamps
- end
-
-# TODO: FINISH DOING MIGRATION -- stopped in the middle
-
- create_table :globalize_translations_map do |t|
- t.string :key, :null => false
- t.integer :translation_id, :null => false
- end
-
- add_index :taggings, :tag_id
- add_index :taggings, [:taggable_id, :taggable_type]
- end
-
- def self.down
- drop_table :globalize_translations
- drop_table :tags
- end
-end
diff --git a/vendor/plugins/globalize2/globalize2.gemspec b/vendor/plugins/globalize2/globalize2.gemspec
deleted file mode 100644
index 89021115e..000000000
--- a/vendor/plugins/globalize2/globalize2.gemspec
+++ /dev/null
@@ -1,81 +0,0 @@
-# Generated by jeweler
-# DO NOT EDIT THIS FILE DIRECTLY
-# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
-# -*- encoding: utf-8 -*-
-
-Gem::Specification.new do |s|
- s.name = %q{globalize2}
- s.version = "0.2.0"
-
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
- s.authors = ["Sven Fuchs, Joshua Harvey, Clemens Kofler, John-Paul Bader"]
- s.date = %q{2010-04-22}
- s.description = %q{Rails I18n: de-facto standard library for ActiveRecord data translation}
- s.email = %q{joshmh@gmail.com}
- s.extra_rdoc_files = [
- "LICENSE",
- "README.textile"
- ]
- s.files = [
- ".gitignore",
- "LICENSE",
- "README.textile",
- "Rakefile",
- "VERSION",
- "generators/db_backend.rb",
- "generators/templates/db_backend_migration.rb",
- "globalize2.gemspec",
- "init.rb",
- "lib/globalize.rb",
- "lib/globalize/active_record.rb",
- "lib/globalize/active_record/adapter.rb",
- "lib/globalize/active_record/attributes.rb",
- "lib/globalize/active_record/migration.rb",
- "lib/i18n/missing_translations_log_handler.rb",
- "lib/i18n/missing_translations_raise_handler.rb",
- "test/active_record/fallbacks_test.rb",
- "test/active_record/migration_test.rb",
- "test/active_record/sti_translated_test.rb",
- "test/active_record/translates_test.rb",
- "test/active_record/translation_class_test.rb",
- "test/active_record/validation_tests.rb",
- "test/active_record_test.rb",
- "test/all.rb",
- "test/data/models.rb",
- "test/data/no_globalize_schema.rb",
- "test/data/schema.rb",
- "test/i18n/missing_translations_test.rb",
- "test/test_helper.rb"
- ]
- s.homepage = %q{http://github.com/joshmh/globalize2}
- s.rdoc_options = ["--charset=UTF-8"]
- s.require_paths = ["lib"]
- s.rubygems_version = %q{1.3.6}
- s.summary = %q{Rails I18n: de-facto standard library for ActiveRecord data translation}
- s.test_files = [
- "test/active_record/fallbacks_test.rb",
- "test/active_record/migration_test.rb",
- "test/active_record/sti_translated_test.rb",
- "test/active_record/translates_test.rb",
- "test/active_record/translation_class_test.rb",
- "test/active_record/validation_tests.rb",
- "test/active_record_test.rb",
- "test/all.rb",
- "test/data/models.rb",
- "test/data/no_globalize_schema.rb",
- "test/data/schema.rb",
- "test/i18n/missing_translations_test.rb",
- "test/test_helper.rb"
- ]
-
- if s.respond_to? :specification_version then
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
- s.specification_version = 3
-
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
- else
- end
- else
- end
-end
-
diff --git a/vendor/plugins/globalize2/init.rb b/vendor/plugins/globalize2/init.rb
deleted file mode 100644
index a4089251b..000000000
--- a/vendor/plugins/globalize2/init.rb
+++ /dev/null
@@ -1 +0,0 @@
-require 'globalize'
diff --git a/vendor/plugins/globalize2/lib/globalize.rb b/vendor/plugins/globalize2/lib/globalize.rb
deleted file mode 100644
index 67c1878ec..000000000
--- a/vendor/plugins/globalize2/lib/globalize.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-module Globalize
- autoload :ActiveRecord, 'globalize/active_record'
-
- class << self
- def fallbacks?
- I18n.respond_to?(:fallbacks)
- end
-
- def fallbacks(locale)
- fallbacks? ? I18n.fallbacks[locale] : [locale.to_sym]
- end
- end
-end
-
-ActiveRecord::Base.send(:include, Globalize::ActiveRecord)
diff --git a/vendor/plugins/globalize2/lib/globalize/active_record.rb b/vendor/plugins/globalize2/lib/globalize/active_record.rb
deleted file mode 100644
index 3095bfe28..000000000
--- a/vendor/plugins/globalize2/lib/globalize/active_record.rb
+++ /dev/null
@@ -1,238 +0,0 @@
-module Globalize
- class MigrationError < StandardError; end
- class MigrationMissingTranslatedField < MigrationError; end
- class BadMigrationFieldType < MigrationError; end
-
- module ActiveRecord
- autoload :Adapter, 'globalize/active_record/adapter'
- autoload :Attributes, 'globalize/active_record/attributes'
- autoload :Migration, 'globalize/active_record/migration'
-
- def self.included(base)
- base.extend ActMacro
- end
-
- class << self
- def build_translation_class(target, options)
- options[:table_name] ||= "#{target.table_name.singularize}_translations"
-
- klass = target.const_defined?(:Translation) ?
- target.const_get(:Translation) :
- target.const_set(:Translation, Class.new(::ActiveRecord::Base))
-
- klass.class_eval do
- set_table_name(options[:table_name])
- belongs_to target.name.underscore.gsub('/', '_')
- def locale; read_attribute(:locale).to_sym; end
- def locale=(locale); write_attribute(:locale, locale.to_s); end
- end
-
- klass
- end
- end
-
- module ActMacro
- def locale
- (defined?(@@locale) && @@locale)
- end
-
- def locale=(locale)
- @@locale = locale
- end
-
- def translates(*attr_names)
- return if translates?
- options = attr_names.extract_options!
-
- class_inheritable_accessor :translation_class, :translated_attribute_names
- class_inheritable_writer :required_attributes
- self.translation_class = ActiveRecord.build_translation_class(self, options)
- self.translated_attribute_names = attr_names.map(&:to_sym)
-
- include InstanceMethods
- extend ClassMethods, Migration
-
- after_save :save_translations!
- ActiveSupport::Deprecation.silence do
- # Silence the warning that :class_name is deprecated and will be
- # removed in Rails 3, since it clutters up e.g. test output, and
- # there is nothing obvious that we can replace it with in Rails 2.
-
- has_many :translations, :class_name => translation_class.name,
- :foreign_key => class_name.foreign_key,
- :dependent => :delete_all,
- :extend => HasManyExtensions
- end
-
- named_scope :with_translations, lambda { |locale|
- conditions = required_attributes.map do |attribute|
- "#{quoted_translation_table_name}.#{attribute} IS NOT NULL"
- end
- conditions << "#{quoted_translation_table_name}.locale = ?"
- { :include => :translations, :conditions => [conditions.join(' AND '), locale] }
- }
-
- attr_names.each { |attr_name| translated_attr_accessor(attr_name) }
- end
-
- def translates?
- included_modules.include?(InstanceMethods)
- end
- end
-
- module HasManyExtensions
- def by_locale(locale)
- first(:conditions => { :locale => locale.to_s })
- end
-
- def by_locales(locales)
- all(:conditions => { :locale => locales.map(&:to_s) })
- end
- end
-
- module ClassMethods
- delegate :set_translation_table_name, :to => :translation_class
-
- def with_locale(locale)
- begin
- previous_locale, self.locale = self.locale, locale
- result = yield
- ensure
- self.locale = previous_locale
- end
- result
- end
-
- def translation_table_name
- translation_class.table_name
- end
-
- def quoted_translation_table_name
- translation_class.quoted_table_name
- end
-
- def required_attributes
- @required_attributes ||= reflect_on_all_validations.select do |validation|
- validation.macro == :validates_presence_of && translated_attribute_names.include?(validation.name)
- end.map(&:name)
- end
-
- def respond_to?(method, *args, &block)
- method.to_s =~ /^find_by_(\w+)$/ && translated_attribute_names.include?($1.to_sym) || super
- end
-
- def method_missing(method, *args)
- if method.to_s =~ /^find_by_(\w+)$/ && translated_attribute_names.include?($1.to_sym)
- find_first_by_translated_attr_and_locales($1, args.first)
- elsif method.to_s =~ /^find_all_by_(\w+)$/ && translated_attribute_names.include?($1.to_sym)
- find_all_by_translated_attr_and_locales($1, args.first)
- else
- super
- end
- end
-
- protected
-
- def find_first_by_translated_attr_and_locales(name, value)
- query = "#{translated_attr_name(name)} = ? AND #{translated_attr_name('locale')} IN (?)"
- locales = Globalize.fallbacks(locale || I18n.locale).map(&:to_s)
- find(
- :first,
- :joins => :translations,
- :conditions => [query, value, locales],
- :readonly => false
- )
- end
-
- def find_all_by_translated_attr_and_locales(name, value)
- query = "#{translated_attr_name(name)} = ? AND #{translated_attr_name('locale')} IN (?)"
- locales = Globalize.fallbacks(locale || I18n.locale).map(&:to_s)
- find(
- :all,
- :joins => :translations,
- :conditions => [query, value, locales],
- :readonly => false
- )
- end
-
- def translated_attr_accessor(name)
- define_method "#{name}=", lambda { |value|
- globalize.write(self.class.locale || I18n.locale, name, value)
- self[name] = value
- }
- define_method name, lambda { |*args|
- globalize.fetch(args.first || self.class.locale || I18n.locale, name)
- }
- alias_method "#{name}_before_type_cast", name
- end
-
- def translated_attr_name(name)
- "#{translation_class.table_name}.#{name}"
- end
- end
-
- module InstanceMethods
- def globalize
- @globalize ||= Adapter.new self
- end
-
- def attributes
- self.attribute_names.inject({}) do |attrs, name|
- attrs[name] = read_attribute(name) ||
- (globalize.fetch(I18n.locale, name) rescue nil)
- attrs
- end
- end
-
- def attributes=(attributes, *args)
- if attributes.respond_to?(:delete) && locale = attributes.delete(:locale)
- self.class.with_locale(locale) { super }
- else
- super
- end
- end
-
- def attribute_names
- translated_attribute_names.map(&:to_s) + super
- end
-
- def available_locales
- translations.scoped(:select => 'DISTINCT locale').map(&:locale)
- end
-
- def translated_locales
- translations.map(&:locale)
- end
-
- def translated_attributes
- translated_attribute_names.inject({}) do |attributes, name|
- attributes.merge(name => send(name))
- end
- end
-
- def set_translations(options)
- options.keys.each do |locale|
- translation = translations.find_by_locale(locale.to_s) ||
- translations.build(:locale => locale.to_s)
- translation.update_attributes!(options[locale])
- end
- end
-
- def reload(options = nil)
- translated_attribute_names.each { |name| @attributes.delete(name.to_s) }
- globalize.reset
- super(options)
- end
-
- protected
-
- def save_translations!
- globalize.save_translations!
- end
- end
- end
-end
-
-def globalize_write(name, value)
- globalize.write(self.class.locale || I18n.locale, name, value)
-end
diff --git a/vendor/plugins/globalize2/lib/globalize/active_record/adapter.rb b/vendor/plugins/globalize2/lib/globalize/active_record/adapter.rb
deleted file mode 100644
index 12f89ec01..000000000
--- a/vendor/plugins/globalize2/lib/globalize/active_record/adapter.rb
+++ /dev/null
@@ -1,80 +0,0 @@
-module Globalize
- module ActiveRecord
- class Adapter
- # The cache caches attributes that already were looked up for read access.
- # The stash keeps track of new or changed values that need to be saved.
- attr_reader :record, :cache, :stash
-
- def initialize(record)
- @record = record
- @cache = Attributes.new
- @stash = Attributes.new
- end
-
- def fetch(locale, attr_name)
- cache.contains?(locale, attr_name) ?
- cache.read(locale, attr_name) :
- cache.write(locale, attr_name, fetch_attribute(locale, attr_name))
- end
-
- def write(locale, attr_name, value)
- stash.write(locale, attr_name, value)
- cache.write(locale, attr_name, value)
- end
-
- def save_translations!
- stash.each do |locale, attrs|
- translation = record.translations.find_or_initialize_by_locale(locale.to_s)
- attrs.each { |attr_name, value| translation[attr_name] = value }
- translation.save!
- end
- stash.clear
- end
-
- def reset
- cache.clear
- # stash.clear
- end
-
- protected
-
- def fetch_translation(locale)
- locale = locale.to_sym
- record.translations.loaded? ? record.translations.detect { |t| t.locale == locale } :
- record.translations.by_locale(locale)
- end
-
- def fetch_translations(locale)
- # only query if not already included with :include => translations
- record.translations.loaded? ? record.translations :
- record.translations.by_locales(Globalize.fallbacks(locale))
- end
-
- def fetch_attribute(locale, attr_name)
- translations = fetch_translations(locale)
- value, requested_locale = nil, locale
-
- Globalize.fallbacks(locale).each do |fallback|
- translation = translations.detect { |t| t.locale == fallback }
- value = translation && translation.send(attr_name)
- locale = fallback && break if value
- end
-
- set_metadata(value, :locale => locale, :requested_locale => requested_locale)
- value
- end
-
- def set_metadata(object, metadata)
- if object.respond_to?(:translation_metadata)
- object.translation_metadata.merge!(meta_data)
- end
- end
-
- def translation_metadata_accessor(object)
- return if obj.respond_to?(:translation_metadata)
- class << object; attr_accessor :translation_metadata end
- object.translation_metadata ||= {}
- end
- end
- end
-end
diff --git a/vendor/plugins/globalize2/lib/globalize/active_record/attributes.rb b/vendor/plugins/globalize2/lib/globalize/active_record/attributes.rb
deleted file mode 100644
index 7bd923ce2..000000000
--- a/vendor/plugins/globalize2/lib/globalize/active_record/attributes.rb
+++ /dev/null
@@ -1,25 +0,0 @@
-# Helper class for storing values per locale. Used by Globalize::Adapter
-# to stash and cache attribute values.
-module Globalize
- module ActiveRecord
- class Attributes < Hash
- def [](locale)
- locale = locale.to_sym
- self[locale] = {} unless has_key?(locale)
- self.fetch(locale)
- end
-
- def contains?(locale, attr_name)
- self[locale].has_key?(attr_name)
- end
-
- def read(locale, attr_name)
- self[locale][attr_name]
- end
-
- def write(locale, attr_name, value)
- self[locale][attr_name] = value
- end
- end
- end
-end
diff --git a/vendor/plugins/globalize2/lib/globalize/active_record/migration.rb b/vendor/plugins/globalize2/lib/globalize/active_record/migration.rb
deleted file mode 100644
index fa63aed8c..000000000
--- a/vendor/plugins/globalize2/lib/globalize/active_record/migration.rb
+++ /dev/null
@@ -1,44 +0,0 @@
-module Globalize
- module ActiveRecord
- module Migration
- def create_translation_table!(fields)
- translated_attribute_names.each do |f|
- raise MigrationMissingTranslatedField, "Missing translated field #{f}" unless fields[f]
- end
-
- fields.each do |name, type|
- if translated_attribute_names.include?(name) && ![:string, :text].include?(type)
- raise BadMigrationFieldType, "Bad field type for #{name}, should be :string or :text"
- end
- end
-
- self.connection.create_table(translation_table_name) do |t|
- t.references table_name.sub(/^#{table_name_prefix}/, "").singularize
- t.string :locale
- fields.each do |name, type|
- t.column name, type
- end
- t.timestamps
- end
-
- self.connection.add_index(
- translation_table_name,
- "#{table_name.sub(/^#{table_name_prefix}/, "").singularize}_id",
- :name => translation_index_name
- )
- end
-
- def translation_index_name
- require 'digest/sha1'
- # FIXME what's the max size of an index name?
- index_name = "index_#{translation_table_name}_on_#{self.table_name.singularize}_id"
- index_name.size < 50 ? index_name : "index_#{Digest::SHA1.hexdigest(index_name)}"
- end
-
- def drop_translation_table!
- self.connection.remove_index(translation_table_name, :name => translation_index_name) rescue nil
- self.connection.drop_table(translation_table_name)
- end
- end
- end
-end
diff --git a/vendor/plugins/globalize2/lib/i18n/missing_translations_log_handler.rb b/vendor/plugins/globalize2/lib/i18n/missing_translations_log_handler.rb
deleted file mode 100644
index 24c10890a..000000000
--- a/vendor/plugins/globalize2/lib/i18n/missing_translations_log_handler.rb
+++ /dev/null
@@ -1,41 +0,0 @@
-# A simple exception handler that behaves like the default exception handler
-# but additionally logs missing translations to a given log.
-#
-# Useful for identifying missing translations during testing.
-#
-# E.g.
-#
-# require 'globalize/i18n/missing_translations_log_handler'
-# I18n.missing_translations_logger = RAILS_DEFAULT_LOGGER
-# I18n.exception_handler = :missing_translations_log_handler
-#
-# To set up a different log file:
-#
-# logger = Logger.new("#{RAILS_ROOT}/log/missing_translations.log")
-# I18n.missing_translations_logger = logger
-
-module I18n
- @@missing_translations_logger = nil
-
- class << self
- def missing_translations_logger
- @@missing_translations_logger ||= begin
- require 'logger' unless defined?(Logger)
- Logger.new(STDOUT)
- end
- end
-
- def missing_translations_logger=(logger)
- @@missing_translations_logger = logger
- end
-
- def missing_translations_log_handler(exception, locale, key, options)
- if MissingTranslationData === exception
- missing_translations_logger.warn(exception.message)
- return exception.message
- else
- raise exception
- end
- end
- end
-end
diff --git a/vendor/plugins/globalize2/lib/i18n/missing_translations_raise_handler.rb b/vendor/plugins/globalize2/lib/i18n/missing_translations_raise_handler.rb
deleted file mode 100644
index 18237b151..000000000
--- a/vendor/plugins/globalize2/lib/i18n/missing_translations_raise_handler.rb
+++ /dev/null
@@ -1,25 +0,0 @@
-# A simple exception handler that behaves like the default exception handler
-# but also raises on missing translations.
-#
-# Useful for identifying missing translations during testing.
-#
-# E.g.
-#
-# require 'globalize/i18n/missing_translations_raise_handler'
-# I18n.exception_handler = :missing_translations_raise_handler
-module I18n
- class << self
- def missing_translations_raise_handler(exception, locale, key, options)
- raise exception
- end
- end
-end
-
-I18n.exception_handler = :missing_translations_raise_handler
-
-ActionView::Helpers::TranslationHelper.module_eval do
- def translate(key, options = {})
- I18n.translate(key, options)
- end
- alias :t :translate
-end
diff --git a/vendor/plugins/globalize2/test/active_record/fallbacks_test.rb b/vendor/plugins/globalize2/test/active_record/fallbacks_test.rb
deleted file mode 100644
index 449ec8b2b..000000000
--- a/vendor/plugins/globalize2/test/active_record/fallbacks_test.rb
+++ /dev/null
@@ -1,102 +0,0 @@
-require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
-require File.expand_path(File.dirname(__FILE__) + '/../data/models')
-
-if I18n.respond_to?(:fallbacks)
- class TranslatedTest < ActiveSupport::TestCase
- def setup
- I18n.locale = :'en-US'
- I18n.fallbacks.clear
- reset_db!
- ActiveRecord::Base.locale = nil
- end
-
- def teardown
- I18n.fallbacks.clear
- end
-
- test "keeping one field in new locale when other field is changed" do
- I18n.fallbacks.map 'de-DE' => [ 'en-US' ]
- post = Post.create :subject => 'foo'
- I18n.locale = 'de-DE'
- post.content = 'bar'
- assert_equal 'foo', post.subject
- end
-
- test "modifying non-required field in a new locale" do
- I18n.fallbacks.map 'de-DE' => [ 'en-US' ]
- post = Post.create :subject => 'foo'
- I18n.locale = 'de-DE'
- post.content = 'bar'
- assert post.save
- end
-
- test "resolves a simple fallback" do
- I18n.locale = 'de-DE'
- post = Post.create :subject => 'foo'
- I18n.locale = 'de'
- post.subject = 'baz'
- post.content = 'bar'
- post.save
- I18n.locale = 'de-DE'
- assert_equal 'foo', post.subject
- assert_equal 'bar', post.content
- end
-
- test "resolves a simple fallback without reloading" do
- I18n.locale = 'de-DE'
- post = Post.new :subject => 'foo'
- I18n.locale = 'de'
- post.subject = 'baz'
- post.content = 'bar'
- I18n.locale = 'de-DE'
- assert_equal 'foo', post.subject
- assert_equal 'bar', post.content
- end
-
- test "resolves a complex fallback without reloading" do
- I18n.fallbacks.map 'de' => %w(en he)
- I18n.locale = 'de'
- post = Post.new
- I18n.locale = 'en'
- post.subject = 'foo'
- I18n.locale = 'he'
- post.subject = 'baz'
- post.content = 'bar'
- I18n.locale = 'de'
- assert_equal 'foo', post.subject
- assert_equal 'bar', post.content
- end
-
- test 'fallbacks with lots of locale switching' do
- I18n.fallbacks.map :'de-DE' => [ :'en-US' ]
- post = Post.create :subject => 'foo'
-
- I18n.locale = :'de-DE'
- assert_equal 'foo', post.subject
-
- I18n.locale = :'en-US'
- post.update_attribute :subject, 'bar'
-
- I18n.locale = :'de-DE'
- assert_equal 'bar', post.subject
- end
-
- test 'fallbacks with lots of locale switching' do
- I18n.fallbacks.map :'de-DE' => [ :'en-US' ]
- child = Child.create :content => 'foo'
-
- I18n.locale = :'de-DE'
- assert_equal 'foo', child.content
-
- I18n.locale = :'en-US'
- child.update_attribute :content, 'bar'
-
- I18n.locale = :'de-DE'
- assert_equal 'bar', child.content
- end
- end
-end
-
-# TODO should validate_presence_of take fallbacks into account? maybe we need
-# an extra validation call, or more options for validate_presence_of.
-
diff --git a/vendor/plugins/globalize2/test/active_record/migration_test.rb b/vendor/plugins/globalize2/test/active_record/migration_test.rb
deleted file mode 100644
index 359d811f0..000000000
--- a/vendor/plugins/globalize2/test/active_record/migration_test.rb
+++ /dev/null
@@ -1,118 +0,0 @@
-require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
-require File.expand_path(File.dirname(__FILE__) + '/../data/models')
-
-class MigrationTest < ActiveSupport::TestCase
- def setup
- reset_db!
- Post.drop_translation_table!
- end
-
- test 'globalize table added' do
- assert !Post.connection.table_exists?(:post_translations)
- assert !Post.connection.index_exists?(:post_translations, :post_id)
-
- Post.create_translation_table!(:subject => :string, :content => :text)
- assert Post.connection.table_exists?(:post_translations)
- assert Post.connection.index_exists?(:post_translations, :post_id)
-
- columns = Post.connection.columns(:post_translations)
- assert locale = columns.detect { |c| c.name == 'locale' }
- assert_equal :string, locale.type
- assert subject = columns.detect { |c| c.name == 'subject' }
- assert_equal :string, subject.type
- assert content = columns.detect { |c| c.name == 'content' }
- assert_equal :text, content.type
- assert post_id = columns.detect { |c| c.name == 'post_id' }
- assert_equal :integer, post_id.type
- assert created_at = columns.detect { |c| c.name == 'created_at' }
- assert_equal :datetime, created_at.type
- assert updated_at = columns.detect { |c| c.name == 'updated_at' }
- assert_equal :datetime, updated_at.type
- end
-
- test 'globalize table dropped' do
- assert !Post.connection.table_exists?( :post_translations )
- assert !Post.connection.index_exists?( :post_translations, :post_id )
- Post.create_translation_table! :subject => :string, :content => :text
- assert Post.connection.table_exists?( :post_translations )
- assert Post.connection.index_exists?( :post_translations, :post_id )
- Post.drop_translation_table!
- assert !Post.connection.table_exists?( :post_translations )
- assert !Post.connection.index_exists?( :post_translations, :post_id )
- end
-
- test 'exception on missing field inputs' do
- assert_raise Globalize::MigrationMissingTranslatedField do
- Post.create_translation_table! :content => :text
- end
- end
-
- test 'exception on bad input type' do
- assert_raise Globalize::BadMigrationFieldType do
- Post.create_translation_table! :subject => :string, :content => :integer
- end
- end
-
- test "exception on bad input type isn't raised for untranslated fields" do
- assert_nothing_raised do
- Post.create_translation_table! :subject => :string, :content => :string, :views_count => :integer
- end
- end
-
- test 'create_translation_table! should not be called on non-translated models' do
- assert_raise NoMethodError do
- Blog.create_translation_table! :name => :string
- end
- end
-
- test 'drop_translation_table! should not be called on non-translated models' do
- assert_raise NoMethodError do
- Blog.drop_translation_table!
- end
- end
-
- test "translation_index_name returns a readable index name when it's not longer than 50 characters" do
- assert_equal 'index_post_translations_on_post_id', Post.send(:translation_index_name)
- end
-
- test "translation_index_name returns a hashed index name when it's longer than 50 characters" do
- class UltraLongModelNameWithoutProper < ActiveRecord::Base
- translates :foo
- end
- name = UltraLongModelNameWithoutProper.send(:translation_index_name)
- assert_match /^index_[a-z0-9]{40}$/, name
- end
-
- test 'globalize table added when table has long name' do
- UltraLongModelNameWithoutProper.create_translation_table!(
- :subject => :string, :content => :text
- )
-
- assert UltraLongModelNameWithoutProper.connection.table_exists?(
- :ultra_long_model_name_without_proper_translations
- )
- assert UltraLongModelNameWithoutProper.connection.index_exists?(
- :ultra_long_model_name_without_proper_translations,
- :name => UltraLongModelNameWithoutProper.send(
- :translation_index_name
- )
- )
- end
-
- test 'globalize table dropped when table has long name' do
- UltraLongModelNameWithoutProper.drop_translation_table!
- UltraLongModelNameWithoutProper.create_translation_table!(
- :subject => :string, :content => :text
- )
- UltraLongModelNameWithoutProper.drop_translation_table!
-
- assert !UltraLongModelNameWithoutProper.connection.table_exists?(
- :ultra_long_model_name_without_proper_translations
- )
- assert !UltraLongModelNameWithoutProper.connection.index_exists?(
- :ultra_long_model_name_without_proper_translations,
- :ultra_long_model_name_without_proper_id
- )
- end
-
-end
diff --git a/vendor/plugins/globalize2/test/active_record/sti_translated_test.rb b/vendor/plugins/globalize2/test/active_record/sti_translated_test.rb
deleted file mode 100644
index f529b8d6e..000000000
--- a/vendor/plugins/globalize2/test/active_record/sti_translated_test.rb
+++ /dev/null
@@ -1,49 +0,0 @@
-require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
-require File.expand_path(File.dirname(__FILE__) + '/../data/models')
-
-class StiTranslatedTest < ActiveSupport::TestCase
- def setup
- I18n.locale = :'en-US'
- reset_db!
- end
-
- test "works with simple dynamic finders" do
- foo = Child.create :content => 'foo'
- Child.create :content => 'bar'
- child = Child.find_by_content('foo')
- assert_equal foo, child
- end
-
- test 'change attribute on globalized model' do
- child = Child.create :content => 'foo'
- assert_equal [], child.changed
- child.content = 'bar'
- assert_equal [ 'content' ], child.changed
- child.content = 'baz'
- assert_member 'content', child.changed
- end
-
- test 'change attribute on globalized model after locale switching' do
- child = Child.create :content => 'foo'
- assert_equal [], child.changed
- child.content = 'bar'
- I18n.locale = :de
- assert_equal [ 'content' ], child.changed
- end
-
- test "saves all locales, even after locale switching" do
- child = Child.new :content => 'foo'
- I18n.locale = 'de-DE'
- child.content = 'bar'
- I18n.locale = 'he-IL'
- child.content = 'baz'
- child.save
- I18n.locale = 'en-US'
- child = Child.first
- assert_equal 'foo', child.content
- I18n.locale = 'de-DE'
- assert_equal 'bar', child.content
- I18n.locale = 'he-IL'
- assert_equal 'baz', child.content
- end
-end
diff --git a/vendor/plugins/globalize2/test/active_record/translates_test.rb b/vendor/plugins/globalize2/test/active_record/translates_test.rb
deleted file mode 100644
index 1831063fb..000000000
--- a/vendor/plugins/globalize2/test/active_record/translates_test.rb
+++ /dev/null
@@ -1,96 +0,0 @@
-require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
-require File.expand_path(File.dirname(__FILE__) + '/../data/models')
-
-class TranslatesTest < ActiveSupport::TestCase
- def setup
- I18n.locale = nil
- ActiveRecord::Base.locale = nil
- reset_db!
- end
-
- test 'defines a :locale accessors on ActiveRecord::Base' do
- ActiveRecord::Base.locale = :de
- assert_equal :de, ActiveRecord::Base.locale
- end
-
- test 'the :locale reader on ActiveRecord::Base does not default to I18n.locale (anymore)' do
- I18n.locale = :en
- assert_nil ActiveRecord::Base.locale
- end
-
- test 'ActiveRecord::Base.with_locale temporarily sets the given locale and yields the block' do
- I18n.locale = :en
- post = Post.with_locale(:de) do
- Post.create!(:subject => 'Titel', :content => 'Inhalt')
- end
- assert_nil Post.locale
- assert_equal :en, I18n.locale
-
- I18n.locale = :de
- assert_equal 'Titel', post.subject
- end
-
- test 'translation_class returns the Translation class' do
- assert_equal Post::Translation, Post.translation_class
- end
-
- test 'defines a has_many association on the model class' do
- assert_has_many Post, :translations
- end
-
- test 'defines a scope for retrieving locales that have complete translations' do
- post = Post.create!(:subject => 'subject', :content => 'content')
- assert_equal [:en], post.translated_locales
- end
-
- test 'sets the given attributes to translated_attribute_names' do
- assert_equal [:subject, :content], Post.translated_attribute_names
- end
-
- test 'defines accessors for the translated attributes' do
- post = Post.new
- assert post.respond_to?(:subject)
- assert post.respond_to?(:subject=)
- end
-
- test 'attribute reader without arguments will use the current locale on ActiveRecord::Base or I18n' do
- post = Post.with_locale(:de) do
- Post.create!(:subject => 'Titel', :content => 'Inhalt')
- end
- I18n.locale = :de
- assert_equal 'Titel', post.subject
-
- I18n.locale = :en
- ActiveRecord::Base.locale = :de
- assert_equal 'Titel', post.subject
- end
-
- test 'attribute reader when passed a locale will use the given locale' do
- post = Post.with_locale(:de) do
- Post.create!(:subject => 'Titel', :content => 'Inhalt')
- end
- assert_equal 'Titel', post.subject(:de)
- end
-
- test 'attribute reader will use the current locale on ActiveRecord::Base or I18n' do
- post = Post.with_locale(:en) do
- Post.create!(:subject => 'title', :content => 'content')
- end
- I18n.locale = :de
- post.subject = 'Titel'
- assert_equal 'Titel', post.subject
-
- ActiveRecord::Base.locale = :en
- post.subject = 'title'
- assert_equal 'title', post.subject
- end
-
- test "find_by_xx records have writable attributes" do
- Post.create :subject => "change me"
- p = Post.find_by_subject("change me")
- p.subject = "changed"
- assert_nothing_raised(ActiveRecord::ReadOnlyRecord) do
- p.save
- end
- end
-end
diff --git a/vendor/plugins/globalize2/test/active_record/translation_class_test.rb b/vendor/plugins/globalize2/test/active_record/translation_class_test.rb
deleted file mode 100644
index 1628416d7..000000000
--- a/vendor/plugins/globalize2/test/active_record/translation_class_test.rb
+++ /dev/null
@@ -1,30 +0,0 @@
-require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
-require File.expand_path(File.dirname(__FILE__) + '/../data/models')
-
-class TranlationClassTest < ActiveSupport::TestCase
- def setup
- reset_db!
- end
-
- test 'defines a Translation class nested in the model class' do
- assert Post.const_defined?(:Translation)
- end
-
- test 'defines a belongs_to association' do
- assert_belongs_to Post::Translation, :post
- end
-
- test 'defines a reader for :locale that always returns a symbol' do
- post = Post::Translation.new
- post.write_attribute('locale', 'de')
- assert_equal :de, post.locale
- end
-
- test 'defines a write for :locale that always writes a string' do
- post = Post::Translation.new
- post.locale = :de
- assert_equal 'de', post.read_attribute('locale')
- end
-end
-
-
diff --git a/vendor/plugins/globalize2/test/active_record/validation_tests.rb b/vendor/plugins/globalize2/test/active_record/validation_tests.rb
deleted file mode 100644
index 0148fa384..000000000
--- a/vendor/plugins/globalize2/test/active_record/validation_tests.rb
+++ /dev/null
@@ -1,75 +0,0 @@
-require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
-require File.expand_path(File.dirname(__FILE__) + '/../data/models')
-
-class ValidationTest < ActiveSupport::TestCase
- def setup
- reset_db!
- end
-
- def teardown
- Validatee.instance_variable_set(:@validate_callbacks, CallbackChain.new)
- end
-
- test "validates_presence_of" do
- Validatee.class_eval { validates_presence_of :string }
- assert !Validatee.new.valid?
- assert Validatee.new(:string => 'foo').valid?
- end
-
- test "validates_confirmation_of" do
- Validatee.class_eval { validates_confirmation_of :string }
- assert !Validatee.new(:string => 'foo', :string_confirmation => 'bar').valid?
- assert Validatee.new(:string => 'foo', :string_confirmation => 'foo').valid?
- end
-
- test "validates_acceptance_of" do
- Validatee.class_eval { validates_acceptance_of :string, :accept => '1' }
- assert !Validatee.new(:string => '0').valid?
- assert Validatee.new(:string => '1').valid?
- end
-
- test "validates_length_of (:is)" do
- Validatee.class_eval { validates_length_of :string, :is => 1 }
- assert !Validatee.new(:string => 'aa').valid?
- assert Validatee.new(:string => 'a').valid?
- end
-
- test "validates_format_of" do
- Validatee.class_eval { validates_format_of :string, :with => /^\d+$/ }
- assert !Validatee.new(:string => 'a').valid?
- assert Validatee.new(:string => '1').valid?
- end
-
- test "validates_inclusion_of" do
- Validatee.class_eval { validates_inclusion_of :string, :in => %(a) }
- assert !Validatee.new(:string => 'b').valid?
- assert Validatee.new(:string => 'a').valid?
- end
-
- test "validates_exclusion_of" do
- Validatee.class_eval { validates_exclusion_of :string, :in => %(b) }
- assert !Validatee.new(:string => 'b').valid?
- assert Validatee.new(:string => 'a').valid?
- end
-
- test "validates_numericality_of" do
- Validatee.class_eval { validates_numericality_of :string }
- assert !Validatee.new(:string => 'a').valid?
- assert Validatee.new(:string => '1').valid?
- end
-
- # This doesn't pass and Rails' validates_uniqueness_of implementation doesn't
- # seem to be extensible easily. One can work around that by either defining
- # a custom validation on the Validatee model itself, or by using validates_uniqueness_of
- # on Validatee::Translation.
- #
- # test "validates_uniqueness_of" do
- # Validatee.class_eval { validates_uniqueness_of :string }
- # Validatee.create!(:string => 'a')
- # assert !Validatee.new(:string => 'a').valid?
- # assert Validatee.new(:string => 'b').valid?
- # end
-
- # test "validates_associated" do
- # end
-end \ No newline at end of file
diff --git a/vendor/plugins/globalize2/test/active_record_test.rb b/vendor/plugins/globalize2/test/active_record_test.rb
deleted file mode 100644
index 38e247e17..000000000
--- a/vendor/plugins/globalize2/test/active_record_test.rb
+++ /dev/null
@@ -1,467 +0,0 @@
-require File.expand_path(File.dirname(__FILE__) + '/test_helper')
-require File.expand_path(File.dirname(__FILE__) + '/data/models')
-
-# Higher level tests.
-
-class ActiveRecordTest < ActiveSupport::TestCase
- def setup
- I18n.locale = :en
- reset_db!
- ActiveRecord::Base.locale = nil
- end
-
- def assert_translated(locale, record, names, expected)
- I18n.locale = locale
- assert_equal Array(expected), Array(names).map { |name| record.send(name) }
- end
-
- test "a translated record has translations" do
- assert_equal [], Post.new.translations
- end
-
- test "saves a translated version of the record for each locale" do
- post = Post.create(:subject => 'title')
- I18n.locale = :de
- post.update_attributes(:subject => 'Titel')
-
- assert_equal 2, post.translations.size
- assert_equal %w(de en), post.translations.map(&:locale).map(&:to_s).sort
- assert_equal %w(Titel title), post.translations.map(&:subject).sort
- end
-
- test "a translated record has German translations" do
- I18n.locale = :de
- post = Post.create(:subject => 'foo')
- assert_equal 1, post.translations.size
- assert_equal [:de], post.translations.map { |t| t.locale }
- end
-
- test "modifiying translated fields while switching locales" do
- post = Post.create(:subject => 'title', :content => 'content')
- assert_equal %w(title content), [post.subject, post.content]
-
- I18n.locale = :de
- post.subject, post.content = 'Titel', 'Inhalt'
-
- assert_translated(:de, post, [:subject, :content], %w(Titel Inhalt))
- assert_translated(:en, post, [:subject, :content], %w(title content))
- assert_translated(:de, post, [:subject, :content], %w(Titel Inhalt))
-
- post.save
- post.reload
-
- assert_translated(:en, post, [:subject, :content], %w(title content))
- assert_translated(:de, post, [:subject, :content], %w(Titel Inhalt))
- end
-
- test "attribute writers do return their argument" do
- value = Post.new.subject = 'foo'
- assert_equal 'foo', value
- end
-
- test "update_attribute succeeds with valid values" do
- post = Post.create(:subject => 'foo', :content => 'bar')
- post.update_attribute(:subject, 'baz')
- assert_equal 'baz', Post.first.subject
- end
-
- test "update_attributes fails with invalid values" do
- post = Post.create(:subject => 'foo', :content => 'bar')
- assert !post.update_attributes(:subject => '')
- assert_not_nil post.reload.attributes['subject']
- assert_equal 'foo', post.subject
- end
-
- test "passing the locale to create uses the given locale" do
- post = Post.create(:subject => 'Titel', :content => 'Inhalt', :locale => :de)
- assert_equal :en, I18n.locale
- assert_nil ActiveRecord::Base.locale
-
- I18n.locale = :de
- assert_equal 'Titel', post.subject
- end
-
- test "passing the locale to attributes= uses the given locale" do
- post = Post.create(:subject => 'title', :content => 'content')
- post.update_attributes(:subject => 'Titel', :content => 'Inhalt', :locale => :de)
- post.reload
-
- assert_equal :en, I18n.locale
- assert_nil ActiveRecord::Base.locale
-
- assert_equal 'title', post.subject
- I18n.locale = :de
- assert_equal 'Titel', post.subject
- end
-
- test 'reload works' do
- post = Post.create(:subject => 'foo', :content => 'bar')
- post.subject = 'baz'
- post.reload
- assert_equal 'foo', post.subject
- end
-
- test "returns nil if no translations are found (unsaved record)" do
- post = Post.new(:subject => 'foo')
- assert_equal 'foo', post.subject
- assert_nil post.content
- end
-
- test "returns nil if no translations are found (saved record)" do
- post = Post.create(:subject => 'foo')
- post.reload
- assert_equal 'foo', post.subject
- assert_nil post.content
- end
-
- test "finds a German post" do
- post = Post.create(:subject => 'foo (en)', :content => 'bar')
- I18n.locale = :de
- post = Post.first
- post.subject = 'baz (de)'
- post.save
- assert_equal 'baz (de)', Post.first.subject
- I18n.locale = :en
- assert_equal 'foo (en)', Post.first.subject
- end
-
- test "saves an English post and loads correctly" do
- post = Post.create(:subject => 'foo', :content => 'bar')
- assert post.save
- post = Post.first
- assert_equal 'foo', post.subject
- assert_equal 'bar', post.content
- end
-
- test "returns the value for the correct locale, after locale switching" do
- post = Post.create(:subject => 'foo')
- I18n.locale = :de
- post.subject = 'bar'
- post.save
- I18n.locale = :en
- post = Post.first
- assert_equal 'foo', post.subject
- I18n.locale = :de
- assert_equal 'bar', post.subject
- end
-
- test "returns the value for the correct locale, after locale switching, without saving" do
- post = Post.create :subject => 'foo'
- I18n.locale = :de
- post.subject = 'bar'
- I18n.locale = :en
- assert_equal 'foo', post.subject
- I18n.locale = :de
- assert_equal 'bar', post.subject
- end
-
- test "saves all locales, even after locale switching" do
- post = Post.new :subject => 'foo'
- I18n.locale = :de
- post.subject = 'bar'
- I18n.locale = :he
- post.subject = 'baz'
- post.save
- I18n.locale = :en
- post = Post.first
- assert_equal 'foo', post.subject
- I18n.locale = :de
- assert_equal 'bar', post.subject
- I18n.locale = :he
- assert_equal 'baz', post.subject
- end
-
- test "works with associations" do
- blog = Blog.create
- post1 = blog.posts.create(:subject => 'foo')
-
- I18n.locale = :de
- post2 = blog.posts.create(:subject => 'bar')
- assert_equal 2, blog.posts.size
-
- I18n.locale = :en
- assert_equal 'foo', blog.posts.first.subject
- assert_nil blog.posts.last.subject
-
- I18n.locale = :de
- assert_equal 'bar', blog.posts.last.subject
- end
-
- test "works with simple dynamic finders" do
- foo = Post.create(:subject => 'foo')
- Post.create(:subject => 'bar')
- post = Post.find_by_subject('foo')
- assert_equal foo, post
- end
-
- test 'change attribute on globalized model' do
- post = Post.create(:subject => 'foo', :content => 'bar')
- assert_equal [], post.changed
- post.subject = 'baz'
- assert_equal ['subject'], post.changed
- post.content = 'quux'
- assert_member 'subject', post.changed
- assert_member 'content', post.changed
- end
-
- test 'change attribute on globalized model after locale switching' do
- post = Post.create(:subject => 'foo', :content => 'bar')
- assert_equal [], post.changed
- post.subject = 'baz'
- I18n.locale = :de
- assert_equal ['subject'], post.changed
- end
-
- test 'complex writing and stashing' do
- post = Post.create(:subject => 'foo', :content => 'bar')
- post.subject = nil
- assert_nil post.subject
- assert !post.valid?
- post.subject = 'stashed_foo'
- assert_equal 'stashed_foo', post.subject
- end
-
- test 'translated class locale setting' do
- assert ActiveRecord::Base.respond_to?(:locale)
- assert_equal :en, I18n.locale
- assert_nil ActiveRecord::Base.locale
-
- I18n.locale = :de
- assert_equal :de, I18n.locale
- assert_nil ActiveRecord::Base.locale
-
- ActiveRecord::Base.locale = :es
- assert_equal :de, I18n.locale
- assert_equal :es, ActiveRecord::Base.locale
-
- I18n.locale = :fr
- assert_equal :fr, I18n.locale
- assert_equal :es, ActiveRecord::Base.locale
- end
-
- test "untranslated class responds to locale" do
- assert Blog.respond_to?(:locale)
- end
-
- test "to ensure locales in different classes are the same" do
- ActiveRecord::Base.locale = :de
- assert_equal :de, ActiveRecord::Base.locale
- assert_equal :de, Parent.locale
-
- Parent.locale = :es
- assert_equal :es, ActiveRecord::Base.locale
- assert_equal :es, Parent.locale
- end
-
- test "attribute saving goes by content locale and not global locale" do
- ActiveRecord::Base.locale = :de
- assert_equal :en, I18n.locale
- Post.create :subject => 'foo'
- assert_equal :de, Post.first.translations.first.locale
- end
-
- test "attribute loading goes by content locale and not global locale" do
- post = Post.create(:subject => 'foo')
- assert_nil ActiveRecord::Base.locale
-
- ActiveRecord::Base.locale = :de
- assert_equal :en, I18n.locale
- post.update_attribute(:subject, 'foo [de]')
- assert_equal 'foo [de]', Post.first.subject
-
- ActiveRecord::Base.locale = :en
- assert_equal 'foo', Post.first.subject
- end
-
- test "access content locale before setting" do
- Globalize::ActiveRecord::ActMacro.class_eval "remove_class_variable(:@@locale)"
- assert_nothing_raised { ActiveRecord::Base.locale }
- end
-
- test "available_locales" do
- Post.locale = :de
- post = Post.create(:subject => 'foo')
- Post.locale = :es
- post.update_attribute(:subject, 'bar')
- Post.locale = :fr
- post.update_attribute(:subject, 'baz')
- assert_equal [:de, :es, :fr], post.available_locales
- assert_equal [:de, :es, :fr], Post.first.available_locales
- end
-
- test "saving record correctly after post-save reload" do
- reloader = Reloader.create(:content => 'foo')
- assert_equal 'foo', reloader.content
- end
-
- test "including translations" do
- I18n.locale = :de
- Post.create(:subject => "Foo1", :content => "Bar1")
- Post.create(:subject => "Foo2", :content => "Bar2")
-
- class << Post
- def translations_included
- self.all(:include => :translations)
- end
- end
-
- default = Post.all.map { |x| [x.subject, x.content] }
- with_include = Post.translations_included.map { |x| [x.subject, x.content] }
- assert_equal default, with_include
- end
-
- test "setting multiple translations at once with options hash" do
- Post.locale = :de
- post = Post.create(:subject => "foo1", :content => "foo1")
- Post.locale = :en
- post.update_attributes(:subject => "bar1", :content => "bar1")
-
- options = { :de => {:subject => "foo2", :content => "foo2"},
- :en => {:subject => "bar2", :content => "bar2"} }
- post.set_translations options
- post.reload
-
- assert ["bar2", "bar2"], [post.subject, post.content]
- Post.locale = :de
- assert ["foo2", "foo2"], [post.subject, post.content]
- end
-
- test "setting only one translation with set_translations" do
- Post.locale = :de
- post = Post.create(:subject => "foo1", :content => "foo1")
- Post.locale = :en
- post.update_attributes(:subject => "bar1", :content => "bar1")
-
- options = { :en => { :subject => "bar2", :content => "bar2" } }
- post.set_translations options
- post.reload
-
- assert ["bar2", "bar2"], [post.subject, post.content]
- Post.locale = :de
- assert ["foo1", "foo1"], [post.subject, post.content]
- end
-
- test "setting only selected attributes with set_translations" do
- Post.locale = :de
- post = Post.create(:subject => "foo1", :content => "foo1")
- Post.locale = :en
- post.update_attributes(:subject => "bar1", :content => "bar1")
-
- options = { :de => { :content => "foo2" }, :en => { :subject => "bar2" } }
- post.set_translations options
- post.reload
-
- assert ["bar2", "bar1"], [post.subject, post.content]
- Post.locale = :de
- assert ["foo1", "foo2"], [post.subject, post.content]
- end
-
- test "setting invalid attributes raises ArgumentError" do
- Post.locale = :de
- post = Post.create(:subject => "foo1", :content => "foo1")
- Post.locale = :en
- post.update_attributes(:subject => "bar1", :content => "bar1")
-
- options = { :de => {:fake => "foo2"} }
- exception = assert_raise(ActiveRecord::UnknownAttributeError) do
- post.set_translations options
- end
- assert_equal "unknown attribute: fake", exception.message
- end
-
- test "reload accepting find options" do
- p = Post.create(:subject => "Foo", :content => "Bar")
- assert p.reload(:readonly => true, :lock => true)
- assert_raise(ArgumentError) { p.reload(:foo => :bar) }
- end
-
- test "dependent destroy of translation" do
- p = Post.create(:subject => "Foo", :content => "Bar")
- assert_equal 1, PostTranslation.count
- p.destroy
- assert_equal 0, PostTranslation.count
- end
-
- test "translating subclass of untranslated comment model" do
- translated_comment = TranslatedComment.create(:post => @post)
- assert_nothing_raised { translated_comment.translations }
- end
-
- test "modifiying translated comments works as expected" do
- I18n.locale = :en
- translated_comment = TranslatedComment.create(:post => @post, :content => 'foo')
- assert_equal 'foo', translated_comment.content
-
- I18n.locale = :de
- translated_comment.content = 'bar'
- assert translated_comment.save
- assert_equal 'bar', translated_comment.content
-
- I18n.locale = :en
- assert_equal 'foo', translated_comment.content
-
- assert_equal 2, translated_comment.translations.size
- end
-
- test "can create a proxy class for a namespaced model" do
- assert_nothing_raised do
- module Foo
- module Bar
- class Baz < ActiveRecord::Base
- translates :bumm
- end
- end
- end
- end
- end
-
- test "attribute translated before type cast" do
- Post.locale = :en
- post = Post.create(:subject => 'foo', :content => 'bar')
- Post.locale = :de
- post.update_attribute(:subject, "German foo")
- assert_equal 'German foo', post.subject_before_type_cast
- Post.locale = :en
- assert_equal 'foo', post.subject_before_type_cast
- end
-
- test "don't override existing translation class" do
- assert PostTranslation.new.respond_to?(:existing_method)
- end
-
- test "has_many and named scopes work with globalize" do
- blog = Blog.create
- assert_nothing_raised { blog.posts.foobar }
- end
-
- test "required_attribuets don't include non-translated attributes" do
- validations = [
- stub(:name => :name, :macro => :validates_presence_of),
- stub(:name => :email, :macro => :validates_presence_of)
- ]
- User.expects(:reflect_on_all_validations => validations)
- assert_equal [:name], User.required_attributes
- end
-
- test "attribute_names returns translated and regular attribute names" do
- Post.create :subject => "foo", :content => "bar"
- assert_equal Post.last.attribute_names.sort, %w[blog_id content id subject]
- end
-
- test "attributes returns translated and regular attributes" do
- Post.create :subject => "foo", :content => "bar"
- assert_equal Post.last.attributes.keys.sort, %w[blog_id content id subject]
- end
-
- test "to_xml includes translated fields" do
- Post.create :subject => "foo", :content => "bar"
- assert Post.last.to_xml =~ /subject/
- assert Post.last.to_xml =~ /content/
- end
-end
-
-# TODO error checking for fields that exist in main table, don't exist in
-# proxy table, aren't strings or text
-#
-# TODO allow finding by translated attributes in conditions?
-# TODO generate advanced dynamic finders?
diff --git a/vendor/plugins/globalize2/test/all.rb b/vendor/plugins/globalize2/test/all.rb
deleted file mode 100644
index ff467a176..000000000
--- a/vendor/plugins/globalize2/test/all.rb
+++ /dev/null
@@ -1,2 +0,0 @@
-files = Dir[File.dirname(__FILE__) + '/**/*_test.rb']
-files.each { |file| require file } \ No newline at end of file
diff --git a/vendor/plugins/globalize2/test/data/models.rb b/vendor/plugins/globalize2/test/data/models.rb
deleted file mode 100644
index 5408d6e23..000000000
--- a/vendor/plugins/globalize2/test/data/models.rb
+++ /dev/null
@@ -1,56 +0,0 @@
-#require 'ruby2ruby'
-#require 'parse_tree'
-#require 'parse_tree_extensions'
-#require 'pp'
-
-class PostTranslation < ActiveRecord::Base
- def existing_method ; end
-end
-
-class Post < ActiveRecord::Base
- translates :subject, :content
- validates_presence_of :subject
- named_scope :foobar, :conditions => { :title => "foobar" }
-end
-
-class Blog < ActiveRecord::Base
- has_many :posts, :order => 'id ASC'
-end
-
-class Parent < ActiveRecord::Base
- translates :content
-end
-
-class Child < Parent
-end
-
-class Comment < ActiveRecord::Base
- validates_presence_of :content
- belongs_to :post
-end
-
-class TranslatedComment < Comment
- translates :content
-end
-
-class UltraLongModelNameWithoutProper < ActiveRecord::Base
- translates :subject, :content
- validates_presence_of :subject
-end
-
-class Reloader < Parent
- after_create :do_reload
-
- def do_reload
- reload
- end
-end
-
-class Validatee < ActiveRecord::Base
- translates :string
-end
-
-class User < ActiveRecord::Base
- translates :name
- validates_presence_of :name, :email
-end
diff --git a/vendor/plugins/globalize2/test/data/no_globalize_schema.rb b/vendor/plugins/globalize2/test/data/no_globalize_schema.rb
deleted file mode 100644
index 379455ddb..000000000
--- a/vendor/plugins/globalize2/test/data/no_globalize_schema.rb
+++ /dev/null
@@ -1,11 +0,0 @@
-# This schema creates tables without columns for the translated fields
-ActiveRecord::Schema.define do
- create_table :blogs, :force => true do |t|
- t.string :name
- end
-
- create_table :posts, :force => true do |t|
- t.references :blog
- end
-end
-
diff --git a/vendor/plugins/globalize2/test/data/schema.rb b/vendor/plugins/globalize2/test/data/schema.rb
deleted file mode 100644
index 910dd0855..000000000
--- a/vendor/plugins/globalize2/test/data/schema.rb
+++ /dev/null
@@ -1,55 +0,0 @@
-ActiveRecord::Schema.define do
- create_table :blogs, :force => true do |t|
- t.string :description
- end
-
- create_table :posts, :force => true do |t|
- t.references :blog
- end
-
- create_table :post_translations, :force => true do |t|
- t.string :locale
- t.references :post
- t.string :subject
- t.text :content
- end
-
- create_table :parents, :force => true do |t|
- end
-
- create_table :parent_translations, :force => true do |t|
- t.string :locale
- t.references :parent
- t.text :content
- t.string :type
- end
-
- create_table :comments, :force => true do |t|
- t.references :post
- end
-
- create_table :comment_translations, :force => true do |t|
- t.string :locale
- t.references :comment
- t.string :subject
- t.text :content
- end
-
- create_table :validatees, :force => true do |t|
- end
-
- create_table :validatee_translations, :force => true do |t|
- t.string :locale
- t.references :validatee
- t.string :string
- end
-
- create_table :users, :force => true do |t|
- t.string :email
- end
-
- create_table :users_translations, :force => true do |t|
- t.references :user
- t.string :name
- end
-end
diff --git a/vendor/plugins/globalize2/test/i18n/missing_translations_test.rb b/vendor/plugins/globalize2/test/i18n/missing_translations_test.rb
deleted file mode 100644
index 5d0ecd6fc..000000000
--- a/vendor/plugins/globalize2/test/i18n/missing_translations_test.rb
+++ /dev/null
@@ -1,36 +0,0 @@
-require File.dirname(__FILE__) + '/../test_helper'
-require 'i18n/missing_translations_log_handler'
-
-class MissingTranslationsTest < ActiveSupport::TestCase
- test "defines I18n.missing_translations_logger accessor" do
- assert I18n.respond_to?(:missing_translations_logger)
- end
-
- test "defines I18n.missing_translations_logger= writer" do
- assert I18n.respond_to?(:missing_translations_logger=)
- end
-end
-
-class TestLogger < String
- def warn(msg) self.concat msg; end
-end
-
-class LogMissingTranslationsTest < ActiveSupport::TestCase
- def setup
- @locale, @key, @options = :en, :foo, {}
- @exception = I18n::MissingTranslationData.new(@locale, @key, @options)
-
- @logger = TestLogger.new
- I18n.missing_translations_logger = @logger
- end
-
- test "still returns the exception message for MissingTranslationData exceptions" do
- result = I18n.send(:missing_translations_log_handler, @exception, @locale, @key, @options)
- assert_equal 'translation missing: en, foo', result
- end
-
- test "logs the missing translation to I18n.missing_translations_logger" do
- I18n.send(:missing_translations_log_handler, @exception, @locale, @key, @options)
- assert_equal 'translation missing: en, foo', @logger
- end
-end
diff --git a/vendor/plugins/globalize2/test/test_helper.rb b/vendor/plugins/globalize2/test/test_helper.rb
deleted file mode 100644
index 99a5d3950..000000000
--- a/vendor/plugins/globalize2/test/test_helper.rb
+++ /dev/null
@@ -1,76 +0,0 @@
-$LOAD_PATH << File.expand_path( File.dirname(__FILE__) + '/../lib' )
-
-require 'rubygems'
-require 'test/unit'
-require 'active_record'
-require 'active_support'
-require 'active_support/test_case'
-require 'mocha'
-require 'globalize'
-# require 'validation_reflection'
-
-config = { :adapter => 'sqlite3', :database => ':memory:' }
-ActiveRecord::Base.establish_connection(config)
-
-class ActiveSupport::TestCase
- def reset_db!(schema_path = nil)
- schema_path ||= File.expand_path(File.dirname(__FILE__) + '/data/schema.rb')
- ActiveRecord::Migration.verbose = false
- ActiveRecord::Base.silence { load(schema_path) }
- end
-
- def assert_member(item, array)
- assert_block "Item #{item} is not in array #{array}" do
- array.member?(item)
- end
- end
-
- def assert_belongs_to(model, associated)
- assert model.reflect_on_all_associations(:belongs_to).detect { |association|
- association.name.to_s == associated.to_s
- }
- end
-
- def assert_has_many(model, associated)
- assert model.reflect_on_all_associations(:has_many).detect { |association|
- association.name.to_s == associated.to_s
- }
- end
-end
-
-module ActiveRecord
- module ConnectionAdapters
- class AbstractAdapter
- def index_exists?(table_name, column_name)
- indexes(table_name).any? { |index| index.name == index_name(table_name, column_name) }
- end
- end
- end
-end
-
-# module ActiveRecord
-# class BaseWithoutTable < Base
-# self.abstract_class = true
-#
-# def create_or_update
-# errors.empty?
-# end
-#
-# class << self
-# def columns()
-# @columns ||= []
-# end
-#
-# def column(name, sql_type = nil, default = nil, null = true)
-# columns << ActiveRecord::ConnectionAdapters::Column.new(name.to_s, default, sql_type.to_s, null)
-# reset_column_information
-# end
-#
-# # Do not reset @columns
-# def reset_column_information
-# read_methods.each { |name| undef_method(name) }
-# @column_names = @columns_hash = @content_columns = @dynamic_methods_hash = @read_methods = nil
-# end
-# end
-# end
-# end \ No newline at end of file
diff --git a/vendor/plugins/has_tag_string/lib/has_tag_string.rb b/vendor/plugins/has_tag_string/lib/has_tag_string.rb
index b982bc3a0..4022faaac 100644
--- a/vendor/plugins/has_tag_string/lib/has_tag_string.rb
+++ b/vendor/plugins/has_tag_string/lib/has_tag_string.rb
@@ -4,7 +4,7 @@
# followed by a colon - e.g. url:http://www.flourish.org
#
# Copyright (c) 2010 UK Citizens Online Democracy. All rights reserved.
-# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
module HasTagString
# Represents one tag of one model.
diff --git a/vendor/plugins/rails_xss/MIT-LICENSE b/vendor/plugins/rails_xss/MIT-LICENSE
deleted file mode 100644
index ed44a7bde..000000000
--- a/vendor/plugins/rails_xss/MIT-LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright (c) 2009 Koziarski Software Ltd.
-
-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.
diff --git a/vendor/plugins/rails_xss/README.markdown b/vendor/plugins/rails_xss/README.markdown
deleted file mode 100644
index 1222ef38d..000000000
--- a/vendor/plugins/rails_xss/README.markdown
+++ /dev/null
@@ -1,91 +0,0 @@
-RailsXss
-========
-
-This plugin replaces the default ERB template handlers with erubis, and switches the behaviour to escape by default rather than requiring you to escape. This is consistent with the behaviour in Rails 3.0.
-
-Strings now have a notion of "html safe", which is false by default. Whenever rails copies a string into the response body it checks whether or not the string is safe, safe strings are copied verbatim into the response body, but unsafe strings are escaped first.
-
-All the XSS-proof helpers like link_to and form_tag now return safe strings, and will continue to work unmodified. If you have your own helpers which return strings you *know* are safe, you will need to explicitly tell rails that they're safe. For an example, take the following helper.
-
-
- def some_helper
- (1..5).map do |i|
- "<li>#{i}</li>"
- end.join("\n")
- end
-
-With this plugin installed, the html will be escaped. So you will need to do one of the following:
-
-1) Use the raw helper in your template. raw will ensure that your string is copied verbatim into the response body.
-
- <%= raw some_helper %>
-
-2) Mark the string as safe in the helper itself:
-
- def some_helper
- (1..5).map do |i|
- "<li>#{i}</li>"
- end.join("\n").html_safe
- end
-
-3) Use the `safe_helper` meta programming method (WARNING: This is not supported by Rails 3, so if you're planning to
-eventually upgrade your app this alternative is not recommended):
-
- module ApplicationHelper
- def some_helper
- #...
- end
- safe_helper :some_helper # not supported by Rails 3
- end
-
-Example
--------
-
-BEFORE:
-
- <%= params[:own_me] %> => XSS attack
- <%=h params[:own_me] %> => No XSS
- <%= @blog_post.content %> => Displays the HTML
-
-AFTER:
-
- <%= params[:own_me] %> => No XSS
- <%=h params[:own_me] %> => No XSS (same result)
- <%= @blog_post.content %> => *escapes* the HTML
- <%= raw @blog_post.content %> => Displays the HTML
-
-
-Gotchas
----
-
-#### textilize and simple_format do *not* return safe strings
-
-Both these methods support arbitrary HTML and are *not* safe to embed directly in your document. You'll need to do something like:
-
- <%= sanitize(textilize(@blog_post.content_textile)) %>
-
-#### Safe strings aren't magic.
-
-Once a string has been marked as safe, the only operations which will maintain that HTML safety are String#<<, String#concat and String#+. All other operations are safety ignorant so it's still probably possible to break your app if you're doing something like
-
- value = something_safe
- value.gsub!(/a/, params[:own_me])
-
-Don't do that.
-
-#### String interpolation won't be safe, even when it 'should' be
-
- value = "#{something_safe}#{something_else_safe}"
- value.html_safe? # => false
-
-This is intended functionality and can't be fixed.
-
-Getting Started
-===============
-
-1. Install rails 2.3.8 or higher, or freeze rails from 2-3-stable.
-2. Install erubis (gem install erubis)
-3. Install this plugin (ruby script/plugin install git://github.com/rails/rails_xss.git)
-4. Report anything that breaks.
-
-Copyright (c) 2009 Koziarski Software Ltd, released under the MIT license. For full details see MIT-LICENSE included in this distribution.
diff --git a/vendor/plugins/rails_xss/Rakefile b/vendor/plugins/rails_xss/Rakefile
deleted file mode 100644
index 929ecbb81..000000000
--- a/vendor/plugins/rails_xss/Rakefile
+++ /dev/null
@@ -1,23 +0,0 @@
-require 'rake'
-require 'rake/testtask'
-require 'rake/rdoctask'
-
-desc 'Default: run unit tests.'
-task :default => :test
-
-desc 'Test the rails_xss plugin.'
-Rake::TestTask.new(:test) do |t|
- t.libs << 'lib'
- t.libs << 'test'
- t.pattern = 'test/**/*_test.rb'
- t.verbose = true
-end
-
-desc 'Generate documentation for the rails_xss plugin.'
-Rake::RDocTask.new(:rdoc) do |rdoc|
- rdoc.rdoc_dir = 'rdoc'
- rdoc.title = 'RailsXss'
- rdoc.options << '--line-numbers' << '--inline-source'
- rdoc.rdoc_files.include('README')
- rdoc.rdoc_files.include('lib/**/*.rb')
-end
diff --git a/vendor/plugins/rails_xss/init.rb b/vendor/plugins/rails_xss/init.rb
deleted file mode 100644
index 533eb1f36..000000000
--- a/vendor/plugins/rails_xss/init.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-unless $gems_rake_task
- if Rails::VERSION::MAJOR >= 3
- $stderr.puts "You don't need to install rails_xss as a plugin for Rails 3 and after."
- elsif Rails::VERSION::MAJOR <= 2 && Rails::VERSION::MINOR <= 3 && Rails::VERSION::TINY <= 7
- $stderr.puts "rails_xss requires Rails 2.3.8 or later. Please upgrade to enable automatic HTML safety."
- else
- require 'rails_xss'
- end
-end
diff --git a/vendor/plugins/rails_xss/lib/rails_xss.rb b/vendor/plugins/rails_xss/lib/rails_xss.rb
deleted file mode 100644
index 46d1b9a4a..000000000
--- a/vendor/plugins/rails_xss/lib/rails_xss.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-require 'rails_xss/erubis'
-require 'rails_xss/action_view'
-require 'rails_xss/string_ext'
diff --git a/vendor/plugins/rails_xss/lib/rails_xss/action_view.rb b/vendor/plugins/rails_xss/lib/rails_xss/action_view.rb
deleted file mode 100644
index c3f5e47df..000000000
--- a/vendor/plugins/rails_xss/lib/rails_xss/action_view.rb
+++ /dev/null
@@ -1,111 +0,0 @@
-module ActionView
- class Base
- def self.xss_safe?
- true
- end
-
- module WithSafeOutputBuffer
- # Rails version of with_output_buffer uses '' as the default buf
- def with_output_buffer(buf = ActiveSupport::SafeBuffer.new) #:nodoc:
- super buf
- end
- end
-
- include WithSafeOutputBuffer
- end
-
- module Helpers
- module CaptureHelper
- def content_for(name, content = nil, &block)
- ivar = "@content_for_#{name}"
- content = capture(&block) if block_given?
- instance_variable_set(ivar, "#{instance_variable_get(ivar)}#{ERB::Util.h(content)}".html_safe)
- nil
- end
- end
-
- module TextHelper
- def concat(string, unused_binding = nil)
- if unused_binding
- ActiveSupport::Deprecation.warn("The binding argument of #concat is no longer needed. Please remove it from your views and helpers.", caller)
- end
-
- output_buffer.concat(string)
- end
-
- def simple_format(text, html_options={})
- start_tag = tag('p', html_options, true)
- text = ERB::Util.h(text).to_str.dup
- text.gsub!(/\r\n?/, "\n") # \r\n and \r -> \n
- text.gsub!(/\n\n+/, "</p>\n\n#{start_tag}") # 2+ newline -> paragraph
- text.gsub!(/([^\n]\n)(?=[^\n])/, '\1<br />') # 1 newline -> br
- text.insert 0, start_tag
- text.html_safe.safe_concat("</p>")
- end
- end
-
- module TagHelper
- private
- def content_tag_string_with_escaping(name, content, options, escape = true)
- content_tag_string_without_escaping(name, escape ? ERB::Util.h(content) : content, options, escape)
- end
- alias_method_chain :content_tag_string, :escaping
- end
-
- module UrlHelper
- def link_to(*args, &block)
- if block_given?
- options = args.first || {}
- html_options = args.second
- concat(link_to(capture(&block), options, html_options))
- else
- name = args.first
- options = args.second || {}
- html_options = args.third
-
- url = url_for(options)
-
- if html_options
- html_options = html_options.stringify_keys
- href = html_options['href']
- convert_options_to_javascript!(html_options, url)
- tag_options = tag_options(html_options)
- else
- tag_options = nil
- end
-
- href_attr = "href=\"#{url}\"" unless href
- "<a #{href_attr}#{tag_options}>#{ERB::Util.h(name || url)}</a>".html_safe
- end
- end
- end
-
- module JavaScriptHelper
- def escape_javascript(javascript)
- if javascript
- javascript.gsub(/(\\|<\/|\r\n|[\n\r"'])/) {|match| JS_ESCAPE_MAP[match] }
- else
- ''
- end
- end
- end
- end
-end
-
-module RailsXss
- module SafeHelpers
- def safe_helper(*names)
- names.each do |helper_method_name|
- aliased_target, punctuation = helper_method_name.to_s.sub(/([?!=])$/, ''), $1
- module_eval <<-END
- def #{aliased_target}_with_xss_safety#{punctuation}(*args, &block)
- raw(#{aliased_target}_without_xss_safety#{punctuation}(*args, &block))
- end
- END
- alias_method_chain helper_method_name, :xss_safety
- end
- end
- end
-end
-
-Module.class_eval { include RailsXss::SafeHelpers }
diff --git a/vendor/plugins/rails_xss/lib/rails_xss/erubis.rb b/vendor/plugins/rails_xss/lib/rails_xss/erubis.rb
deleted file mode 100644
index b8a239483..000000000
--- a/vendor/plugins/rails_xss/lib/rails_xss/erubis.rb
+++ /dev/null
@@ -1,41 +0,0 @@
-# stop erubis from printing it's version number all the time
-old_stdout = $stdout
-File.open("/dev/null", "w") do |f|
- $stdout = f
- require 'erubis/helpers/rails_helper'
- $stdout = old_stdout
-end
-
-module RailsXss
- class Erubis < ::Erubis::Eruby
- def add_preamble(src)
- src << "@output_buffer = ActiveSupport::SafeBuffer.new;"
- end
-
- def add_text(src, text)
- return if text.empty?
- src << "@output_buffer.safe_concat('" << escape_text(text) << "');"
- end
-
- BLOCK_EXPR = /\s+(do|\{)(\s*\|[^|]*\|)?\s*\Z/
-
- def add_expr_literal(src, code)
- if code =~ BLOCK_EXPR
- src << "@output_buffer.safe_concat((" << $1 << ").to_s);"
- else
- src << '@output_buffer << ((' << code << ').to_s);'
- end
- end
-
- def add_expr_escaped(src, code)
- src << '@output_buffer << ' << escaped_expr(code) << ';'
- end
-
- def add_postamble(src)
- src << '@output_buffer.to_s'
- end
- end
-end
-
-Erubis::Helpers::RailsHelper.engine_class = RailsXss::Erubis
-Erubis::Helpers::RailsHelper.show_src = false
diff --git a/vendor/plugins/rails_xss/lib/rails_xss/string_ext.rb b/vendor/plugins/rails_xss/lib/rails_xss/string_ext.rb
deleted file mode 100644
index ee32e47c8..000000000
--- a/vendor/plugins/rails_xss/lib/rails_xss/string_ext.rb
+++ /dev/null
@@ -1,65 +0,0 @@
-require 'active_support/deprecation'
-
-ActiveSupport::SafeBuffer.class_eval do
- def concat(value)
- if value.html_safe?
- super(value)
- else
- super(ERB::Util.h(value))
- end
- end
- alias << concat
- UNSAFE_STRING_METHODS = ["capitalize", "chomp", "chop", "delete", "downcase", "gsub", "lstrip", "next", "reverse", "rstrip", "slice", "squeeze", "strip", "sub", "succ", "swapcase", "tr", "tr_s", "upcase"].freeze
-
- for unsafe_method in UNSAFE_STRING_METHODS
- class_eval <<-EOT, __FILE__, __LINE__ + 1
- def #{unsafe_method}(*args)
- super.to_str
- end
-
- def #{unsafe_method}!(*args)
- raise TypeError, "Cannot modify SafeBuffer in place"
- end
- EOT
- end
-end
-
-class String
- def html_safe?
- defined?(@_rails_html_safe)
- end
-
- def html_safe!
- ActiveSupport::Deprecation.warn("Use html_safe with your strings instead of html_safe! See http://yehudakatz.com/2010/02/01/safebuffers-and-rails-3-0/ for the full story.", caller)
- @_rails_html_safe = true
- self
- end
-
- def add_with_safety(other)
- result = add_without_safety(other)
- if html_safe? && also_html_safe?(other)
- result.html_safe!
- else
- result
- end
- end
- alias_method :add_without_safety, :+
- alias_method :+, :add_with_safety
-
- def concat_with_safety(other_or_fixnum)
- result = concat_without_safety(other_or_fixnum)
- unless html_safe? && also_html_safe?(other_or_fixnum)
- remove_instance_variable(:@_rails_html_safe) if defined?(@_rails_html_safe)
- end
- result
- end
-
- alias_method_chain :concat, :safety
- undef_method :<<
- alias_method :<<, :concat_with_safety
-
- private
- def also_html_safe?(other)
- other.respond_to?(:html_safe?) && other.html_safe?
- end
-end
diff --git a/vendor/plugins/rails_xss/lib/tasks/rails_xss_tasks.rake b/vendor/plugins/rails_xss/lib/tasks/rails_xss_tasks.rake
deleted file mode 100644
index b8659f089..000000000
--- a/vendor/plugins/rails_xss/lib/tasks/rails_xss_tasks.rake
+++ /dev/null
@@ -1,4 +0,0 @@
-# desc "Explaining what the task does"
-# task :rails_xss do
-# # Task goes here
-# end
diff --git a/vendor/plugins/rails_xss/test/active_record_helper_test.rb b/vendor/plugins/rails_xss/test/active_record_helper_test.rb
deleted file mode 100644
index 728ec0ac6..000000000
--- a/vendor/plugins/rails_xss/test/active_record_helper_test.rb
+++ /dev/null
@@ -1,74 +0,0 @@
-require 'test_helper'
-
-class ActiveRecordHelperTest < ActionView::TestCase
- silence_warnings do
- Post = Struct.new("Post", :title, :author_name, :body, :secret, :written_on)
- Post.class_eval do
- alias_method :title_before_type_cast, :title unless respond_to?(:title_before_type_cast)
- alias_method :body_before_type_cast, :body unless respond_to?(:body_before_type_cast)
- alias_method :author_name_before_type_cast, :author_name unless respond_to?(:author_name_before_type_cast)
- end
- end
-
- def setup_post
- @post = Post.new
- def @post.errors
- Class.new {
- def on(field)
- case field.to_s
- when "author_name"
- "can't be empty"
- when "body"
- true
- else
- false
- end
- end
- def empty?() false end
- def count() 1 end
- def full_messages() [ "Author name can't be empty" ] end
- }.new
- end
-
- def @post.new_record?() true end
- def @post.to_param() nil end
-
- def @post.column_for_attribute(attr_name)
- Post.content_columns.select { |column| column.name == attr_name }.first
- end
-
- silence_warnings do
- def Post.content_columns() [ Column.new(:string, "title", "Title"), Column.new(:text, "body", "Body") ] end
- end
-
- @post.title = "Hello World"
- @post.author_name = ""
- @post.body = "Back to the hill and over it again!"
- @post.secret = 1
- @post.written_on = Date.new(2004, 6, 15)
- end
-
- def setup
- setup_post
-
- @response = ActionController::TestResponse.new
-
- @controller = Object.new
- def @controller.url_for(options)
- options = options.symbolize_keys
-
- [options[:action], options[:id].to_param].compact.join('/')
- end
- end
-
- def test_text_field_with_errors_is_safe
- assert text_field("post", "author_name").html_safe?
- end
-
- def test_text_field_with_errors
- assert_dom_equal(
- %(<div class="fieldWithErrors"><input id="post_author_name" name="post[author_name]" size="30" type="text" value="" /></div>),
- text_field("post", "author_name")
- )
- end
-end
diff --git a/vendor/plugins/rails_xss/test/asset_tag_helper_test.rb b/vendor/plugins/rails_xss/test/asset_tag_helper_test.rb
deleted file mode 100644
index f58feda3d..000000000
--- a/vendor/plugins/rails_xss/test/asset_tag_helper_test.rb
+++ /dev/null
@@ -1,49 +0,0 @@
-require 'test_helper'
-
-class AssetTagHelperTest < ActionView::TestCase
- def setup
- @controller = Class.new do
- attr_accessor :request
- def url_for(*args) "http://www.example.com" end
- end.new
- end
-
- def test_auto_discovery_link_tag
- assert_dom_equal(%(<link href="http://www.example.com" rel="Not so alternate" title="ATOM" type="application/atom+xml" />),
- auto_discovery_link_tag(:atom, {}, {:rel => "Not so alternate"}))
- end
-
- def test_javascript_include_tag_with_blank_asset_id
- ENV["RAILS_ASSET_ID"] = ""
- assert_dom_equal(%(<script src="/javascripts/test.js" type="text/javascript"></script>\n<script src="/javascripts/prototype.js" type="text/javascript"></script>\n<script src="/javascripts/effects.js" type="text/javascript"></script>\n<script src="/javascripts/dragdrop.js" type="text/javascript"></script>\n<script src="/javascripts/controls.js" type="text/javascript"></script>\n<script src="/javascripts/application.js" type="text/javascript"></script>),
- javascript_include_tag("test", :defaults))
- end
-
- def test_javascript_include_tag_with_given_asset_id
- ENV["RAILS_ASSET_ID"] = "1"
- assert_dom_equal(%(<script src="/javascripts/prototype.js?1" type="text/javascript"></script>\n<script src="/javascripts/effects.js?1" type="text/javascript"></script>\n<script src="/javascripts/dragdrop.js?1" type="text/javascript"></script>\n<script src="/javascripts/controls.js?1" type="text/javascript"></script>\n<script src="/javascripts/application.js?1" type="text/javascript"></script>),
- javascript_include_tag(:defaults))
- ENV["RAILS_ASSET_ID"] = ""
- end
-
- def test_javascript_include_tag_is_html_safe
- assert javascript_include_tag(:defaults).html_safe?
- assert javascript_include_tag("prototype").html_safe?
- end
-
- def test_stylesheet_link_tag
- assert_dom_equal(%(<link href="http://www.example.com/styles/style.css" media="screen" rel="stylesheet" type="text/css" />),
- stylesheet_link_tag("http://www.example.com/styles/style"))
- end
-
- def test_stylesheet_link_tag_is_html_safe
- assert stylesheet_link_tag('dir/file').html_safe?
- assert stylesheet_link_tag('dir/other/file', 'dir/file2').html_safe?
- assert stylesheet_tag('dir/file', {}).html_safe?
- end
-
- def test_image_tag
- assert_dom_equal(%(<img alt="Mouse" onmouseover="this.src='/images/mouse_over.png'" onmouseout="this.src='/images/mouse.png'" src="/images/mouse.png" />),
- image_tag("mouse.png", :mouseover => image_path("mouse_over.png")))
- end
-end
diff --git a/vendor/plugins/rails_xss/test/caching_test.rb b/vendor/plugins/rails_xss/test/caching_test.rb
deleted file mode 100644
index 3ea41e8b5..000000000
--- a/vendor/plugins/rails_xss/test/caching_test.rb
+++ /dev/null
@@ -1,54 +0,0 @@
-require 'test_helper'
-
-CACHE_DIR = 'test_cache'
-# Don't change '/../temp/' cavalierly or you might hose something you don't want hosed
-FILE_STORE_PATH = File.join(File.dirname(__FILE__), '/../temp/', CACHE_DIR)
-ActionController::Base.page_cache_directory = FILE_STORE_PATH
-ActionController::Base.cache_store = :file_store, FILE_STORE_PATH
-
-class FragmentCachingTestController < ActionController::Base
- def some_action; end;
-end
-
-class FragmentCachingTest < ActionController::TestCase
- def setup
- ActionController::Base.perform_caching = true
- @store = ActiveSupport::Cache::MemoryStore.new
- ActionController::Base.cache_store = @store
- @controller = FragmentCachingTestController.new
- @params = {:controller => 'posts', :action => 'index'}
- @request = ActionController::TestRequest.new
- @response = ActionController::TestResponse.new
- @controller.params = @params
- @controller.request = @request
- @controller.response = @response
- @controller.send(:initialize_current_url)
- @controller.send(:initialize_template_class, @response)
- @controller.send(:assign_shortcuts, @request, @response)
- end
-
- def test_fragment_for
- @store.write('views/expensive', 'fragment content')
- fragment_computed = false
-
- buffer = 'generated till now -> '.html_safe
- @controller.fragment_for(buffer, 'expensive') { fragment_computed = true }
-
- assert !fragment_computed
- assert_equal 'generated till now -> fragment content', buffer
- end
-
- def test_html_safety
- assert_nil @store.read('views/name')
- content = 'value'.html_safe
- assert_equal content, @controller.write_fragment('name', content)
-
- cached = @store.read('views/name')
- assert_equal content, cached
- assert_equal String, cached.class
-
- html_safe = @controller.read_fragment('name')
- assert_equal content, html_safe
- assert html_safe.html_safe?
- end
-end
diff --git a/vendor/plugins/rails_xss/test/content_for_test.rb b/vendor/plugins/rails_xss/test/content_for_test.rb
deleted file mode 100644
index 45ba6762c..000000000
--- a/vendor/plugins/rails_xss/test/content_for_test.rb
+++ /dev/null
@@ -1,39 +0,0 @@
-require 'test_helper'
-
-class ContentForTest < ActionView::TestCase
-
- def test_content_for_should_yield_html_safe_string
- content_for(:testing, "Some <p>html</p>")
- content = instance_variable_get(:"@content_for_testing")
- assert content.html_safe?
- end
-
- def test_content_for_should_escape_content
- content_for(:testing, "Some <p>html</p>")
- content = instance_variable_get(:"@content_for_testing")
- expected = %{Some &lt;p&gt;html&lt;/p&gt;}
- assert_dom_equal expected, content
- end
-
- def test_content_for_should_not_escape_html_safe_content
- content_for(:testing, "Some <p>html</p>".html_safe)
- content = instance_variable_get(:"@content_for_testing")
- expected = %{Some <p>html</p>}
- assert_dom_equal expected, content
- end
-
- def test_content_for_should_escape_content_from_block
- content_for(:testing){ "Some <p>html</p>" }
- content = instance_variable_get(:"@content_for_testing")
- expected = %{Some &lt;p&gt;html&lt;/p&gt;}
- assert_dom_equal expected, content
- end
-
- def test_content_for_should_not_escape_html_safe_content_from_block
- content_for(:testing){ "Some <p>html</p>".html_safe }
- content = instance_variable_get(:"@content_for_testing")
- expected = %{Some <p>html</p>}
- assert_dom_equal expected, content
- end
-
-end
diff --git a/vendor/plugins/rails_xss/test/date_helper_test.rb b/vendor/plugins/rails_xss/test/date_helper_test.rb
deleted file mode 100644
index daf010274..000000000
--- a/vendor/plugins/rails_xss/test/date_helper_test.rb
+++ /dev/null
@@ -1,29 +0,0 @@
-require 'test_helper'
-
-class DateHelperTest < ActionView::TestCase
- silence_warnings do
- Post = Struct.new("Post", :id, :written_on, :updated_at)
- end
-
- def test_select_html_safety
- assert select_day(16).html_safe?
- assert select_month(8).html_safe?
- assert select_year(Time.mktime(2003, 8, 16, 8, 4, 18)).html_safe?
- assert select_minute(Time.mktime(2003, 8, 16, 8, 4, 18)).html_safe?
- assert select_second(Time.mktime(2003, 8, 16, 8, 4, 18)).html_safe?
-
- assert select_minute(8, :use_hidden => true).html_safe?
- assert select_month(8, :prompt => 'Choose month').html_safe?
-
- assert select_time(Time.mktime(2003, 8, 16, 8, 4, 18), {}, :class => 'selector').html_safe?
- assert select_date(Time.mktime(2003, 8, 16), :date_separator => " / ", :start_year => 2003, :end_year => 2005, :prefix => "date[first]").html_safe?
- end
-
- def test_object_select_html_safety
- @post = Post.new
- @post.written_on = Date.new(2004, 6, 15)
-
- assert date_select("post", "written_on", :default => Time.local(2006, 9, 19, 15, 16, 35), :include_blank => true).html_safe?
- assert time_select("post", "written_on", :ignore_date => true).html_safe?
- end
-end
diff --git a/vendor/plugins/rails_xss/test/deprecated_output_safety_test.rb b/vendor/plugins/rails_xss/test/deprecated_output_safety_test.rb
deleted file mode 100644
index e16f7ce0d..000000000
--- a/vendor/plugins/rails_xss/test/deprecated_output_safety_test.rb
+++ /dev/null
@@ -1,112 +0,0 @@
-require 'test_helper'
-
-class DeprecatedOutputSafetyTest < ActiveSupport::TestCase
- def setup
- @string = "hello"
- end
-
- test "A string can be marked safe using html_safe!" do
- assert_deprecated do
- @string.html_safe!
- assert @string.html_safe?
- end
- end
-
- test "Marking a string safe returns the string using html_safe!" do
- assert_deprecated do
- assert_equal @string, @string.html_safe!
- end
- end
-
- test "Adding a safe string to another safe string returns a safe string using html_safe!" do
- assert_deprecated do
- @other_string = "other".html_safe!
- @string.html_safe!
- @combination = @other_string + @string
-
- assert_equal "otherhello", @combination
- assert @combination.html_safe?
- end
- end
-
- test "Adding an unsafe string to a safe string returns an unsafe string using html_safe!" do
- assert_deprecated do
- @other_string = "other".html_safe!
- @combination = @other_string + "<foo>"
- @other_combination = @string + "<foo>"
-
- assert_equal "other<foo>", @combination
- assert_equal "hello<foo>", @other_combination
-
- assert !@combination.html_safe?
- assert !@other_combination.html_safe?
- end
- end
-
- test "Concatting safe onto unsafe yields unsafe using html_safe!" do
- assert_deprecated do
- @other_string = "other"
- @string.html_safe!
-
- @other_string.concat(@string)
- assert !@other_string.html_safe?
- end
- end
-
- test "Concatting unsafe onto safe yields unsafe using html_safe!" do
- assert_deprecated do
- @other_string = "other".html_safe!
- string = @other_string.concat("<foo>")
- assert_equal "other<foo>", string
- assert !string.html_safe?
- end
- end
-
- test "Concatting safe onto safe yields safe using html_safe!" do
- assert_deprecated do
- @other_string = "other".html_safe!
- @string.html_safe!
-
- @other_string.concat(@string)
- assert @other_string.html_safe?
- end
- end
-
- test "Concatting safe onto unsafe with << yields unsafe using html_safe!" do
- assert_deprecated do
- @other_string = "other"
- @string.html_safe!
-
- @other_string << @string
- assert !@other_string.html_safe?
- end
- end
-
- test "Concatting unsafe onto safe with << yields unsafe using html_safe!" do
- assert_deprecated do
- @other_string = "other".html_safe!
- string = @other_string << "<foo>"
- assert_equal "other<foo>", string
- assert !string.html_safe?
- end
- end
-
- test "Concatting safe onto safe with << yields safe using html_safe!" do
- assert_deprecated do
- @other_string = "other".html_safe!
- @string.html_safe!
-
- @other_string << @string
- assert @other_string.html_safe?
- end
- end
-
- test "Concatting a fixnum to safe always yields safe using html_safe!" do
- assert_deprecated do
- @string.html_safe!
- @string.concat(13)
- assert_equal "hello".concat(13), @string
- assert @string.html_safe?
- end
- end
-end
diff --git a/vendor/plugins/rails_xss/test/erb_util_test.rb b/vendor/plugins/rails_xss/test/erb_util_test.rb
deleted file mode 100644
index 9a04d38e6..000000000
--- a/vendor/plugins/rails_xss/test/erb_util_test.rb
+++ /dev/null
@@ -1,36 +0,0 @@
-require 'test_helper'
-
-class ErbUtilTest < Test::Unit::TestCase
- include ERB::Util
-
- ERB::Util::HTML_ESCAPE.each do |given, expected|
- define_method "test_html_escape_#{expected.gsub(/\W/, '')}" do
- assert_equal expected, html_escape(given)
- end
-
- unless given == '"'
- define_method "test_json_escape_#{expected.gsub(/\W/, '')}" do
- assert_equal ERB::Util::JSON_ESCAPE[given], json_escape(given)
- end
- end
- end
-
- def test_html_escape_is_html_safe
- escaped = h("<p>")
- assert_equal "&lt;p&gt;", escaped
- assert escaped.html_safe?
- end
-
- def test_html_escape_passes_html_escpe_unmodified
- escaped = h("<p>".html_safe)
- assert_equal "<p>", escaped
- assert escaped.html_safe?
- end
-
- def test_rest_in_ascii
- (0..127).to_a.map {|int| int.chr }.each do |chr|
- next if %w(& " < >).include?(chr)
- assert_equal chr, html_escape(chr)
- end
- end
-end
diff --git a/vendor/plugins/rails_xss/test/form_helper_test.rb b/vendor/plugins/rails_xss/test/form_helper_test.rb
deleted file mode 100644
index e5580d26c..000000000
--- a/vendor/plugins/rails_xss/test/form_helper_test.rb
+++ /dev/null
@@ -1,1447 +0,0 @@
-require 'test_helper'
-
-silence_warnings do
- Post = Struct.new(:title, :author_name, :body, :secret, :written_on, :cost)
- Post.class_eval do
- alias_method :title_before_type_cast, :title unless respond_to?(:title_before_type_cast)
- alias_method :body_before_type_cast, :body unless respond_to?(:body_before_type_cast)
- alias_method :author_name_before_type_cast, :author_name unless respond_to?(:author_name_before_type_cast)
- alias_method :secret?, :secret
-
- def new_record=(boolean)
- @new_record = boolean
- end
-
- def new_record?
- @new_record
- end
-
- attr_accessor :author
- def author_attributes=(attributes); end
-
- attr_accessor :comments
- def comments_attributes=(attributes); end
-
- attr_accessor :tags
- def tags_attributes=(attributes); end
- end
-
- class Comment
- attr_reader :id
- attr_reader :post_id
- def initialize(id = nil, post_id = nil); @id, @post_id = id, post_id end
- def save; @id = 1; @post_id = 1 end
- def new_record?; @id.nil? end
- def to_param; @id; end
- def name
- @id.nil? ? "new #{self.class.name.downcase}" : "#{self.class.name.downcase} ##{@id}"
- end
-
- attr_accessor :relevances
- def relevances_attributes=(attributes); end
-
- end
-
- class Tag
- attr_reader :id
- attr_reader :post_id
- def initialize(id = nil, post_id = nil); @id, @post_id = id, post_id end
- def save; @id = 1; @post_id = 1 end
- def new_record?; @id.nil? end
- def to_param; @id; end
- def value
- @id.nil? ? "new #{self.class.name.downcase}" : "#{self.class.name.downcase} ##{@id}"
- end
-
- attr_accessor :relevances
- def relevances_attributes=(attributes); end
-
- end
-
- class CommentRelevance
- attr_reader :id
- attr_reader :comment_id
- def initialize(id = nil, comment_id = nil); @id, @comment_id = id, comment_id end
- def save; @id = 1; @comment_id = 1 end
- def new_record?; @id.nil? end
- def to_param; @id; end
- def value
- @id.nil? ? "new #{self.class.name.downcase}" : "#{self.class.name.downcase} ##{@id}"
- end
- end
-
- class TagRelevance
- attr_reader :id
- attr_reader :tag_id
- def initialize(id = nil, tag_id = nil); @id, @tag_id = id, tag_id end
- def save; @id = 1; @tag_id = 1 end
- def new_record?; @id.nil? end
- def to_param; @id; end
- def value
- @id.nil? ? "new #{self.class.name.downcase}" : "#{self.class.name.downcase} ##{@id}"
- end
- end
-
- class Author < Comment
- attr_accessor :post
- def post_attributes=(attributes); end
- end
-end
-
-class FormHelperTest < ActionView::TestCase
- tests ActionView::Helpers::FormHelper
-
- def setup
- super
-
- # Create "label" locale for testing I18n label helpers
- I18n.backend.store_translations 'label', {
- :helpers => {
- :label => {
- :post => {
- :body => "Write entire text here"
- }
- }
- }
- }
-
- @post = Post.new
- @comment = Comment.new
- def @post.errors()
- Class.new{
- def on(field); "can't be empty" if field == "author_name"; end
- def empty?() false end
- def count() 1 end
- def full_messages() [ "Author name can't be empty" ] end
- }.new
- end
- def @post.id; 123; end
- def @post.id_before_type_cast; 123; end
- def @post.to_param; '123'; end
-
- @post.title = "Hello World"
- @post.author_name = ""
- @post.body = "Back to the hill and over it again!"
- @post.secret = 1
- @post.written_on = Date.new(2004, 6, 15)
-
- def Post.human_attribute_name(attribute)
- attribute.to_s == "cost" ? "Total cost" : attribute.to_s.humanize
- end
-
- @controller = Class.new do
- attr_reader :url_for_options
- def url_for(options)
- @url_for_options = options
- "http://www.example.com"
- end
- end
- @controller = @controller.new
- end
-
- def test_label
- assert_dom_equal('<label for="post_title">Title</label>', label("post", "title"))
- assert_dom_equal('<label for="post_title">The title goes here</label>', label("post", "title", "The title goes here"))
- assert_dom_equal(
- '<label class="title_label" for="post_title">Title</label>',
- label("post", "title", nil, :class => 'title_label')
- )
- assert_dom_equal('<label for="post_secret">Secret?</label>', label("post", "secret?"))
- end
-
- def test_label_with_symbols
- assert_dom_equal('<label for="post_title">Title</label>', label(:post, :title))
- assert_dom_equal('<label for="post_secret">Secret?</label>', label(:post, :secret?))
- end
-
- def test_label_with_locales_strings
- old_locale, I18n.locale = I18n.locale, :label
- assert_dom_equal('<label for="post_body">Write entire text here</label>', label("post", "body"))
- ensure
- I18n.locale = old_locale
- end
-
- def test_label_with_human_attribute_name
- old_locale, I18n.locale = I18n.locale, :label
- assert_dom_equal('<label for="post_cost">Total cost</label>', label(:post, :cost))
- ensure
- I18n.locale = old_locale
- end
-
- def test_label_with_locales_symbols
- old_locale, I18n.locale = I18n.locale, :label
- assert_dom_equal('<label for="post_body">Write entire text here</label>', label(:post, :body))
- ensure
- I18n.locale = old_locale
- end
-
- def test_label_with_for_attribute_as_symbol
- assert_dom_equal('<label for="my_for">Title</label>', label(:post, :title, nil, :for => "my_for"))
- end
-
- def test_label_with_for_attribute_as_string
- assert_dom_equal('<label for="my_for">Title</label>', label(:post, :title, nil, "for" => "my_for"))
- end
-
- def test_label_with_id_attribute_as_symbol
- assert_dom_equal('<label for="post_title" id="my_id">Title</label>', label(:post, :title, nil, :id => "my_id"))
- end
-
- def test_label_with_id_attribute_as_string
- assert_dom_equal('<label for="post_title" id="my_id">Title</label>', label(:post, :title, nil, "id" => "my_id"))
- end
-
- def test_label_with_for_and_id_attributes_as_symbol
- assert_dom_equal('<label for="my_for" id="my_id">Title</label>', label(:post, :title, nil, :for => "my_for", :id => "my_id"))
- end
-
- def test_label_with_for_and_id_attributes_as_string
- assert_dom_equal('<label for="my_for" id="my_id">Title</label>', label(:post, :title, nil, "for" => "my_for", "id" => "my_id"))
- end
-
- def test_label_for_radio_buttons_with_value
- assert_dom_equal('<label for="post_title_great_title">The title goes here</label>', label("post", "title", "The title goes here", :value => "great_title"))
- assert_dom_equal('<label for="post_title_great_title">The title goes here</label>', label("post", "title", "The title goes here", :value => "great title"))
- end
-
- def test_text_field
- assert_dom_equal(
- '<input id="post_title" name="post[title]" size="30" type="text" value="Hello World" />', text_field("post", "title")
- )
- assert_dom_equal(
- '<input id="post_title" name="post[title]" size="30" type="password" value="Hello World" />', password_field("post", "title")
- )
- assert_dom_equal(
- '<input id="person_name" name="person[name]" size="30" type="password" />', password_field("person", "name")
- )
- end
-
- def test_text_field_with_escapes
- @post.title = "<b>Hello World</b>"
- assert_dom_equal(
- '<input id="post_title" name="post[title]" size="30" type="text" value="&lt;b&gt;Hello World&lt;/b&gt;" />', text_field("post", "title")
- )
- end
-
- def test_text_field_with_html_entities
- @post.title = "The HTML Entity for & is &amp;"
- assert_dom_equal(
- '<input id="post_title" name="post[title]" size="30" type="text" value="The HTML Entity for &amp; is &amp;amp;" />',
- text_field("post", "title")
- )
- end
-
- def test_text_field_with_options
- expected = '<input id="post_title" name="post[title]" size="35" type="text" value="Hello World" />'
- assert_dom_equal expected, text_field("post", "title", "size" => 35)
- assert_dom_equal expected, text_field("post", "title", :size => 35)
- end
-
- def test_text_field_assuming_size
- expected = '<input id="post_title" maxlength="35" name="post[title]" size="35" type="text" value="Hello World" />'
- assert_dom_equal expected, text_field("post", "title", "maxlength" => 35)
- assert_dom_equal expected, text_field("post", "title", :maxlength => 35)
- end
-
- def test_text_field_removing_size
- expected = '<input id="post_title" maxlength="35" name="post[title]" type="text" value="Hello World" />'
- assert_dom_equal expected, text_field("post", "title", "maxlength" => 35, "size" => nil)
- assert_dom_equal expected, text_field("post", "title", :maxlength => 35, :size => nil)
- end
-
- def test_text_field_doesnt_change_param_values
- object_name = 'post[]'
- expected = '<input id="post_123_title" name="post[123][title]" size="30" type="text" value="Hello World" />'
- assert_equal expected, text_field(object_name, "title")
- assert_equal object_name, "post[]"
- end
-
- def test_hidden_field
- assert_dom_equal '<input id="post_title" name="post[title]" type="hidden" value="Hello World" />',
- hidden_field("post", "title")
- assert_dom_equal '<input id="post_secret" name="post[secret]" type="hidden" value="1" />',
- hidden_field("post", "secret?")
- end
-
- def test_hidden_field_with_escapes
- @post.title = "<b>Hello World</b>"
- assert_dom_equal '<input id="post_title" name="post[title]" type="hidden" value="&lt;b&gt;Hello World&lt;/b&gt;" />',
- hidden_field("post", "title")
- end
-
- def test_hidden_field_with_options
- assert_dom_equal '<input id="post_title" name="post[title]" type="hidden" value="Something Else" />',
- hidden_field("post", "title", :value => "Something Else")
- end
-
- def test_check_box
- assert_dom_equal(
- '<input name="post[secret]" type="hidden" value="0" /><input checked="checked" id="post_secret" name="post[secret]" type="checkbox" value="1" />',
- check_box("post", "secret")
- )
- @post.secret = 0
- assert_dom_equal(
- '<input name="post[secret]" type="hidden" value="0" /><input id="post_secret" name="post[secret]" type="checkbox" value="1" />',
- check_box("post", "secret")
- )
- assert_dom_equal(
- '<input name="post[secret]" type="hidden" value="0" /><input checked="checked" id="post_secret" name="post[secret]" type="checkbox" value="1" />',
- check_box("post", "secret" ,{"checked"=>"checked"})
- )
- @post.secret = true
- assert_dom_equal(
- '<input name="post[secret]" type="hidden" value="0" /><input checked="checked" id="post_secret" name="post[secret]" type="checkbox" value="1" />',
- check_box("post", "secret")
- )
- assert_dom_equal(
- '<input name="post[secret]" type="hidden" value="0" /><input checked="checked" id="post_secret" name="post[secret]" type="checkbox" value="1" />',
- check_box("post", "secret?")
- )
-
- @post.secret = ['0']
- assert_dom_equal(
- '<input name="post[secret]" type="hidden" value="0" /><input id="post_secret" name="post[secret]" type="checkbox" value="1" />',
- check_box("post", "secret")
- )
- @post.secret = ['1']
- assert_dom_equal(
- '<input name="post[secret]" type="hidden" value="0" /><input checked="checked" id="post_secret" name="post[secret]" type="checkbox" value="1" />',
- check_box("post", "secret")
- )
- end
-
- def test_check_box_with_explicit_checked_and_unchecked_values
- @post.secret = "on"
- assert_dom_equal(
- '<input name="post[secret]" type="hidden" value="off" /><input checked="checked" id="post_secret" name="post[secret]" type="checkbox" value="on" />',
- check_box("post", "secret", {}, "on", "off")
- )
- end
-
- def test_checkbox_disabled_still_submits_checked_value
- assert_dom_equal(
- '<input name="post[secret]" type="hidden" value="1" /><input checked="checked" disabled="disabled" id="post_secret" name="post[secret]" type="checkbox" value="1" />',
- check_box("post", "secret", { :disabled => :true })
- )
- end
-
- def test_radio_button
- assert_dom_equal('<input checked="checked" id="post_title_hello_world" name="post[title]" type="radio" value="Hello World" />',
- radio_button("post", "title", "Hello World")
- )
- assert_dom_equal('<input id="post_title_goodbye_world" name="post[title]" type="radio" value="Goodbye World" />',
- radio_button("post", "title", "Goodbye World")
- )
- assert_dom_equal('<input id="item_subobject_title_inside_world" name="item[subobject][title]" type="radio" value="inside world"/>',
- radio_button("item[subobject]", "title", "inside world")
- )
- end
-
- def test_radio_button_is_checked_with_integers
- assert_dom_equal('<input checked="checked" id="post_secret_1" name="post[secret]" type="radio" value="1" />',
- radio_button("post", "secret", "1")
- )
- end
-
- def test_radio_button_respects_passed_in_id
- assert_dom_equal('<input checked="checked" id="foo" name="post[secret]" type="radio" value="1" />',
- radio_button("post", "secret", "1", :id=>"foo")
- )
- end
-
- def test_radio_button_with_booleans
- assert_dom_equal('<input id="post_secret_true" name="post[secret]" type="radio" value="true" />',
- radio_button("post", "secret", true)
- )
-
- assert_dom_equal('<input id="post_secret_false" name="post[secret]" type="radio" value="false" />',
- radio_button("post", "secret", false)
- )
- end
-
- def test_text_area
- assert_dom_equal(
- '<textarea cols="40" id="post_body" name="post[body]" rows="20">Back to the hill and over it again!</textarea>',
- text_area("post", "body")
- )
- end
-
- def test_text_area_with_escapes
- @post.body = "Back to <i>the</i> hill and over it again!"
- assert_dom_equal(
- '<textarea cols="40" id="post_body" name="post[body]" rows="20">Back to &lt;i&gt;the&lt;/i&gt; hill and over it again!</textarea>',
- text_area("post", "body")
- )
- end
-
- def test_text_area_with_alternate_value
- assert_dom_equal(
- '<textarea cols="40" id="post_body" name="post[body]" rows="20">Testing alternate values.</textarea>',
- text_area("post", "body", :value => 'Testing alternate values.')
- )
- end
-
- def test_text_area_with_html_entities
- @post.body = "The HTML Entity for & is &amp;"
- assert_dom_equal(
- '<textarea cols="40" id="post_body" name="post[body]" rows="20">The HTML Entity for &amp; is &amp;amp;</textarea>',
- text_area("post", "body")
- )
- end
-
- def test_text_area_with_size_option
- assert_dom_equal(
- '<textarea cols="183" id="post_body" name="post[body]" rows="820">Back to the hill and over it again!</textarea>',
- text_area("post", "body", :size => "183x820")
- )
- end
-
- def test_explicit_name
- assert_dom_equal(
- '<input id="post_title" name="dont guess" size="30" type="text" value="Hello World" />', text_field("post", "title", "name" => "dont guess")
- )
- assert_dom_equal(
- '<textarea cols="40" id="post_body" name="really!" rows="20">Back to the hill and over it again!</textarea>',
- text_area("post", "body", "name" => "really!")
- )
- assert_dom_equal(
- '<input name="i mean it" type="hidden" value="0" /><input checked="checked" id="post_secret" name="i mean it" type="checkbox" value="1" />',
- check_box("post", "secret", "name" => "i mean it")
- )
- assert_dom_equal text_field("post", "title", "name" => "dont guess"),
- text_field("post", "title", :name => "dont guess")
- assert_dom_equal text_area("post", "body", "name" => "really!"),
- text_area("post", "body", :name => "really!")
- assert_dom_equal check_box("post", "secret", "name" => "i mean it"),
- check_box("post", "secret", :name => "i mean it")
- end
-
- def test_explicit_id
- assert_dom_equal(
- '<input id="dont guess" name="post[title]" size="30" type="text" value="Hello World" />', text_field("post", "title", "id" => "dont guess")
- )
- assert_dom_equal(
- '<textarea cols="40" id="really!" name="post[body]" rows="20">Back to the hill and over it again!</textarea>',
- text_area("post", "body", "id" => "really!")
- )
- assert_dom_equal(
- '<input name="post[secret]" type="hidden" value="0" /><input checked="checked" id="i mean it" name="post[secret]" type="checkbox" value="1" />',
- check_box("post", "secret", "id" => "i mean it")
- )
- assert_dom_equal text_field("post", "title", "id" => "dont guess"),
- text_field("post", "title", :id => "dont guess")
- assert_dom_equal text_area("post", "body", "id" => "really!"),
- text_area("post", "body", :id => "really!")
- assert_dom_equal check_box("post", "secret", "id" => "i mean it"),
- check_box("post", "secret", :id => "i mean it")
- end
-
- def test_auto_index
- pid = @post.id
- assert_dom_equal(
- "<label for=\"post_#{pid}_title\">Title</label>",
- label("post[]", "title")
- )
- assert_dom_equal(
- "<input id=\"post_#{pid}_title\" name=\"post[#{pid}][title]\" size=\"30\" type=\"text\" value=\"Hello World\" />", text_field("post[]","title")
- )
- assert_dom_equal(
- "<textarea cols=\"40\" id=\"post_#{pid}_body\" name=\"post[#{pid}][body]\" rows=\"20\">Back to the hill and over it again!</textarea>",
- text_area("post[]", "body")
- )
- assert_dom_equal(
- "<input name=\"post[#{pid}][secret]\" type=\"hidden\" value=\"0\" /><input checked=\"checked\" id=\"post_#{pid}_secret\" name=\"post[#{pid}][secret]\" type=\"checkbox\" value=\"1\" />",
- check_box("post[]", "secret")
- )
- assert_dom_equal(
-"<input checked=\"checked\" id=\"post_#{pid}_title_hello_world\" name=\"post[#{pid}][title]\" type=\"radio\" value=\"Hello World\" />",
- radio_button("post[]", "title", "Hello World")
- )
- assert_dom_equal("<input id=\"post_#{pid}_title_goodbye_world\" name=\"post[#{pid}][title]\" type=\"radio\" value=\"Goodbye World\" />",
- radio_button("post[]", "title", "Goodbye World")
- )
- end
-
- def test_form_for
- form_for(:post, @post, :html => { :id => 'create-post' }) do |f|
- concat f.label(:title)
- concat f.text_field(:title)
- concat f.text_area(:body)
- concat f.check_box(:secret)
- concat f.submit('Create post')
- end
-
- expected =
- "<form action='http://www.example.com' id='create-post' method='post'>" +
- "<label for='post_title'>Title</label>" +
- "<input name='post[title]' size='30' type='text' id='post_title' value='Hello World' />" +
- "<textarea name='post[body]' id='post_body' rows='20' cols='40'>Back to the hill and over it again!</textarea>" +
- "<input name='post[secret]' type='hidden' value='0' />" +
- "<input name='post[secret]' checked='checked' type='checkbox' id='post_secret' value='1' />" +
- "<input name='commit' id='post_submit' type='submit' value='Create post' />" +
- "</form>"
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_form_for_with_method
- form_for(:post, @post, :html => { :id => 'create-post', :method => :put }) do |f|
- concat f.text_field(:title)
- concat f.text_area(:body)
- concat f.check_box(:secret)
- end
-
- expected =
- "<form action='http://www.example.com' id='create-post' method='post'>" +
- "<div style='margin:0;padding:0;display:inline'><input name='_method' type='hidden' value='put' /></div>" +
- "<input name='post[title]' size='30' type='text' id='post_title' value='Hello World' />" +
- "<textarea name='post[body]' id='post_body' rows='20' cols='40'>Back to the hill and over it again!</textarea>" +
- "<input name='post[secret]' type='hidden' value='0' />" +
- "<input name='post[secret]' checked='checked' type='checkbox' id='post_secret' value='1' />" +
- "</form>"
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_form_for_without_object
- form_for(:post, :html => { :id => 'create-post' }) do |f|
- concat f.text_field(:title)
- concat f.text_area(:body)
- concat f.check_box(:secret)
- end
-
- expected =
- "<form action='http://www.example.com' id='create-post' method='post'>" +
- "<input name='post[title]' size='30' type='text' id='post_title' value='Hello World' />" +
- "<textarea name='post[body]' id='post_body' rows='20' cols='40'>Back to the hill and over it again!</textarea>" +
- "<input name='post[secret]' type='hidden' value='0' />" +
- "<input name='post[secret]' checked='checked' type='checkbox' id='post_secret' value='1' />" +
- "</form>"
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_form_for_with_index
- form_for("post[]", @post) do |f|
- concat f.label(:title)
- concat f.text_field(:title)
- concat f.text_area(:body)
- concat f.check_box(:secret)
- end
-
- expected =
- "<form action='http://www.example.com' method='post'>" +
- "<label for=\"post_123_title\">Title</label>" +
- "<input name='post[123][title]' size='30' type='text' id='post_123_title' value='Hello World' />" +
- "<textarea name='post[123][body]' id='post_123_body' rows='20' cols='40'>Back to the hill and over it again!</textarea>" +
- "<input name='post[123][secret]' type='hidden' value='0' />" +
- "<input name='post[123][secret]' checked='checked' type='checkbox' id='post_123_secret' value='1' />" +
- "</form>"
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_form_for_with_nil_index_option_override
- form_for("post[]", @post, :index => nil) do |f|
- concat f.text_field(:title)
- concat f.text_area(:body)
- concat f.check_box(:secret)
- end
-
- expected =
- "<form action='http://www.example.com' method='post'>" +
- "<input name='post[][title]' size='30' type='text' id='post__title' value='Hello World' />" +
- "<textarea name='post[][body]' id='post__body' rows='20' cols='40'>Back to the hill and over it again!</textarea>" +
- "<input name='post[][secret]' type='hidden' value='0' />" +
- "<input name='post[][secret]' checked='checked' type='checkbox' id='post__secret' value='1' />" +
- "</form>"
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_nested_fields_for
- form_for(:post, @post) do |f|
- f.fields_for(:comment, @post) do |c|
- concat c.text_field(:title)
- end
- end
-
- expected = "<form action='http://www.example.com' method='post'>" +
- "<input name='post[comment][title]' size='30' type='text' id='post_comment_title' value='Hello World' />" +
- "</form>"
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_nested_fields_for_with_nested_collections
- form_for('post[]', @post) do |f|
- concat f.text_field(:title)
- f.fields_for('comment[]', @comment) do |c|
- concat c.text_field(:name)
- end
- end
-
- expected = "<form action='http://www.example.com' method='post'>" +
- "<input name='post[123][title]' size='30' type='text' id='post_123_title' value='Hello World' />" +
- "<input name='post[123][comment][][name]' size='30' type='text' id='post_123_comment__name' value='new comment' />" +
- "</form>"
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_nested_fields_for_with_index_and_parent_fields
- form_for('post', @post, :index => 1) do |c|
- concat c.text_field(:title)
- c.fields_for('comment', @comment, :index => 1) do |r|
- concat r.text_field(:name)
- end
- end
-
- expected = "<form action='http://www.example.com' method='post'>" +
- "<input name='post[1][title]' size='30' type='text' id='post_1_title' value='Hello World' />" +
- "<input name='post[1][comment][1][name]' size='30' type='text' id='post_1_comment_1_name' value='new comment' />" +
- "</form>"
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_form_for_with_index_and_nested_fields_for
- form_for(:post, @post, :index => 1) do |f|
- f.fields_for(:comment, @post) do |c|
- concat c.text_field(:title)
- end
- end
-
- expected = "<form action='http://www.example.com' method='post'>" +
- "<input name='post[1][comment][title]' size='30' type='text' id='post_1_comment_title' value='Hello World' />" +
- "</form>"
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_nested_fields_for_with_index_on_both
- form_for(:post, @post, :index => 1) do |f|
- f.fields_for(:comment, @post, :index => 5) do |c|
- concat c.text_field(:title)
- end
- end
-
- expected = "<form action='http://www.example.com' method='post'>" +
- "<input name='post[1][comment][5][title]' size='30' type='text' id='post_1_comment_5_title' value='Hello World' />" +
- "</form>"
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_nested_fields_for_with_auto_index
- form_for("post[]", @post) do |f|
- f.fields_for(:comment, @post) do |c|
- concat c.text_field(:title)
- end
- end
-
- expected = "<form action='http://www.example.com' method='post'>" +
- "<input name='post[123][comment][title]' size='30' type='text' id='post_123_comment_title' value='Hello World' />" +
- "</form>"
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_nested_fields_for_with_index_radio_button
- form_for(:post, @post) do |f|
- f.fields_for(:comment, @post, :index => 5) do |c|
- concat c.radio_button(:title, "hello")
- end
- end
-
- expected = "<form action='http://www.example.com' method='post'>" +
- "<input name='post[comment][5][title]' type='radio' id='post_comment_5_title_hello' value='hello' />" +
- "</form>"
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_nested_fields_for_with_auto_index_on_both
- form_for("post[]", @post) do |f|
- f.fields_for("comment[]", @post) do |c|
- concat c.text_field(:title)
- end
- end
-
- expected = "<form action='http://www.example.com' method='post'>" +
- "<input name='post[123][comment][123][title]' size='30' type='text' id='post_123_comment_123_title' value='Hello World' />" +
- "</form>"
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_nested_fields_for_with_index_and_auto_index
- form_for("post[]", @post) do |f|
- f.fields_for(:comment, @post, :index => 5) do |c|
- concat c.text_field(:title)
- end
- end
-
- form_for(:post, @post, :index => 1) do |f|
- f.fields_for("comment[]", @post) do |c|
- concat c.text_field(:title)
- end
- end
-
- expected = "<form action='http://www.example.com' method='post'>" +
- "<input name='post[123][comment][5][title]' size='30' type='text' id='post_123_comment_5_title' value='Hello World' />" +
- "</form>" +
- "<form action='http://www.example.com' method='post'>" +
- "<input name='post[1][comment][123][title]' size='30' type='text' id='post_1_comment_123_title' value='Hello World' />" +
- "</form>"
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_nested_fields_for_with_a_new_record_on_a_nested_attributes_one_to_one_association
- @post.author = Author.new
-
- form_for(:post, @post) do |f|
- concat f.text_field(:title)
- f.fields_for(:author) do |af|
- concat af.text_field(:name)
- end
- end
-
- expected = '<form action="http://www.example.com" method="post">' +
- '<input name="post[title]" size="30" type="text" id="post_title" value="Hello World" />' +
- '<input id="post_author_attributes_name" name="post[author_attributes][name]" size="30" type="text" value="new author" />' +
- '</form>'
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_nested_fields_for_with_explicitly_passed_object_on_a_nested_attributes_one_to_one_association
- form_for(:post, @post) do |f|
- f.fields_for(:author, Author.new(123)) do |af|
- assert_not_nil af.object
- assert_equal 123, af.object.id
- end
- end
- end
-
- def test_nested_fields_for_with_an_existing_record_on_a_nested_attributes_one_to_one_association
- @post.author = Author.new(321)
-
- form_for(:post, @post) do |f|
- concat f.text_field(:title)
- f.fields_for(:author) do |af|
- concat af.text_field(:name)
- end
- end
-
- expected = '<form action="http://www.example.com" method="post">' +
- '<input name="post[title]" size="30" type="text" id="post_title" value="Hello World" />' +
- '<input id="post_author_attributes_name" name="post[author_attributes][name]" size="30" type="text" value="author #321" />' +
- '<input id="post_author_attributes_id" name="post[author_attributes][id]" type="hidden" value="321" />' +
- '</form>'
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_nested_fields_for_with_existing_records_on_a_nested_attributes_one_to_one_association_with_explicit_hidden_field_placement
- @post.author = Author.new(321)
-
- form_for(:post, @post) do |f|
- concat f.text_field(:title)
- f.fields_for(:author) do |af|
- concat af.hidden_field(:id)
- concat af.text_field(:name)
- end
- end
-
- expected = '<form action="http://www.example.com" method="post">' +
- '<input name="post[title]" size="30" type="text" id="post_title" value="Hello World" />' +
- '<input id="post_author_attributes_id" name="post[author_attributes][id]" type="hidden" value="321" />' +
- '<input id="post_author_attributes_name" name="post[author_attributes][name]" size="30" type="text" value="author #321" />' +
- '</form>'
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_nested_fields_for_with_existing_records_on_a_nested_attributes_collection_association
- @post.comments = Array.new(2) { |id| Comment.new(id + 1) }
-
- form_for(:post, @post) do |f|
- concat f.text_field(:title)
- @post.comments.each do |comment|
- f.fields_for(:comments, comment) do |cf|
- concat cf.text_field(:name)
- end
- end
- end
-
- expected = '<form action="http://www.example.com" method="post">' +
- '<input name="post[title]" size="30" type="text" id="post_title" value="Hello World" />' +
- '<input id="post_comments_attributes_0_name" name="post[comments_attributes][0][name]" size="30" type="text" value="comment #1" />' +
- '<input id="post_comments_attributes_0_id" name="post[comments_attributes][0][id]" type="hidden" value="1" />' +
- '<input id="post_comments_attributes_1_name" name="post[comments_attributes][1][name]" size="30" type="text" value="comment #2" />' +
- '<input id="post_comments_attributes_1_id" name="post[comments_attributes][1][id]" type="hidden" value="2" />' +
- '</form>'
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_nested_fields_for_with_existing_records_on_a_nested_attributes_collection_association_with_explicit_hidden_field_placement
- @post.comments = Array.new(2) { |id| Comment.new(id + 1) }
-
- form_for(:post, @post) do |f|
- concat f.text_field(:title)
- @post.comments.each do |comment|
- f.fields_for(:comments, comment) do |cf|
- concat cf.hidden_field(:id)
- concat cf.text_field(:name)
- end
- end
- end
-
- expected = '<form action="http://www.example.com" method="post">' +
- '<input name="post[title]" size="30" type="text" id="post_title" value="Hello World" />' +
- '<input id="post_comments_attributes_0_id" name="post[comments_attributes][0][id]" type="hidden" value="1" />' +
- '<input id="post_comments_attributes_0_name" name="post[comments_attributes][0][name]" size="30" type="text" value="comment #1" />' +
- '<input id="post_comments_attributes_1_id" name="post[comments_attributes][1][id]" type="hidden" value="2" />' +
- '<input id="post_comments_attributes_1_name" name="post[comments_attributes][1][name]" size="30" type="text" value="comment #2" />' +
- '</form>'
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_nested_fields_for_with_new_records_on_a_nested_attributes_collection_association
- @post.comments = [Comment.new, Comment.new]
-
- form_for(:post, @post) do |f|
- concat f.text_field(:title)
- @post.comments.each do |comment|
- f.fields_for(:comments, comment) do |cf|
- concat cf.text_field(:name)
- end
- end
- end
-
- expected = '<form action="http://www.example.com" method="post">' +
- '<input name="post[title]" size="30" type="text" id="post_title" value="Hello World" />' +
- '<input id="post_comments_attributes_0_name" name="post[comments_attributes][0][name]" size="30" type="text" value="new comment" />' +
- '<input id="post_comments_attributes_1_name" name="post[comments_attributes][1][name]" size="30" type="text" value="new comment" />' +
- '</form>'
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_nested_fields_for_with_existing_and_new_records_on_a_nested_attributes_collection_association
- @post.comments = [Comment.new(321), Comment.new]
-
- form_for(:post, @post) do |f|
- concat f.text_field(:title)
- @post.comments.each do |comment|
- f.fields_for(:comments, comment) do |cf|
- concat cf.text_field(:name)
- end
- end
- end
-
- expected = '<form action="http://www.example.com" method="post">' +
- '<input name="post[title]" size="30" type="text" id="post_title" value="Hello World" />' +
- '<input id="post_comments_attributes_0_name" name="post[comments_attributes][0][name]" size="30" type="text" value="comment #321" />' +
- '<input id="post_comments_attributes_0_id" name="post[comments_attributes][0][id]" type="hidden" value="321" />' +
- '<input id="post_comments_attributes_1_name" name="post[comments_attributes][1][name]" size="30" type="text" value="new comment" />' +
- '</form>'
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_nested_fields_for_with_an_empty_supplied_attributes_collection
- form_for(:post, @post) do |f|
- concat f.text_field(:title)
- f.fields_for(:comments, []) do |cf|
- concat cf.text_field(:name)
- end
- end
-
- expected = '<form action="http://www.example.com" method="post">' +
- '<input name="post[title]" size="30" type="text" id="post_title" value="Hello World" />' +
- '</form>'
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_nested_fields_for_with_existing_records_on_a_supplied_nested_attributes_collection
- @post.comments = Array.new(2) { |id| Comment.new(id + 1) }
-
- form_for(:post, @post) do |f|
- concat f.text_field(:title)
- f.fields_for(:comments, @post.comments) do |cf|
- concat cf.text_field(:name)
- end
- end
-
- expected = '<form action="http://www.example.com" method="post">' +
- '<input name="post[title]" size="30" type="text" id="post_title" value="Hello World" />' +
- '<input id="post_comments_attributes_0_name" name="post[comments_attributes][0][name]" size="30" type="text" value="comment #1" />' +
- '<input id="post_comments_attributes_0_id" name="post[comments_attributes][0][id]" type="hidden" value="1" />' +
- '<input id="post_comments_attributes_1_name" name="post[comments_attributes][1][name]" size="30" type="text" value="comment #2" />' +
- '<input id="post_comments_attributes_1_id" name="post[comments_attributes][1][id]" type="hidden" value="2" />' +
- '</form>'
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_nested_fields_for_on_a_nested_attributes_collection_association_yields_only_builder
- @post.comments = [Comment.new(321), Comment.new]
- yielded_comments = []
-
- form_for(:post, @post) do |f|
- concat f.text_field(:title)
- f.fields_for(:comments) do |cf|
- concat cf.text_field(:name)
- yielded_comments << cf.object
- end
- end
-
- expected = '<form action="http://www.example.com" method="post">' +
- '<input name="post[title]" size="30" type="text" id="post_title" value="Hello World" />' +
- '<input id="post_comments_attributes_0_name" name="post[comments_attributes][0][name]" size="30" type="text" value="comment #321" />' +
- '<input id="post_comments_attributes_0_id" name="post[comments_attributes][0][id]" type="hidden" value="321" />' +
- '<input id="post_comments_attributes_1_name" name="post[comments_attributes][1][name]" size="30" type="text" value="new comment" />' +
- '</form>'
-
- assert_dom_equal expected, output_buffer
- assert_equal yielded_comments, @post.comments
- end
-
- def test_nested_fields_for_with_child_index_option_override_on_a_nested_attributes_collection_association
- @post.comments = []
-
- form_for(:post, @post) do |f|
- f.fields_for(:comments, Comment.new(321), :child_index => 'abc') do |cf|
- concat cf.text_field(:name)
- end
- end
-
- expected = '<form action="http://www.example.com" method="post">' +
- '<input id="post_comments_attributes_abc_name" name="post[comments_attributes][abc][name]" size="30" type="text" value="comment #321" />' +
- '<input id="post_comments_attributes_abc_id" name="post[comments_attributes][abc][id]" type="hidden" value="321" />' +
- '</form>'
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_nested_fields_uses_unique_indices_for_different_collection_associations
- @post.comments = [Comment.new(321)]
- @post.tags = [Tag.new(123), Tag.new(456)]
- @post.comments[0].relevances = []
- @post.tags[0].relevances = []
- @post.tags[1].relevances = []
- form_for(:post, @post) do |f|
- f.fields_for(:comments, @post.comments[0]) do |cf|
- concat cf.text_field(:name)
- cf.fields_for(:relevances, CommentRelevance.new(314)) do |crf|
- concat crf.text_field(:value)
- end
- end
- f.fields_for(:tags, @post.tags[0]) do |tf|
- concat tf.text_field(:value)
- tf.fields_for(:relevances, TagRelevance.new(3141)) do |trf|
- concat trf.text_field(:value)
- end
- end
- f.fields_for('tags', @post.tags[1]) do |tf|
- concat tf.text_field(:value)
- tf.fields_for(:relevances, TagRelevance.new(31415)) do |trf|
- concat trf.text_field(:value)
- end
- end
- end
-
- expected = '<form action="http://www.example.com" method="post">' +
- '<input id="post_comments_attributes_0_name" name="post[comments_attributes][0][name]" size="30" type="text" value="comment #321" />' +
- '<input id="post_comments_attributes_0_relevances_attributes_0_value" name="post[comments_attributes][0][relevances_attributes][0][value]" size="30" type="text" value="commentrelevance #314" />' +
- '<input id="post_comments_attributes_0_relevances_attributes_0_id" name="post[comments_attributes][0][relevances_attributes][0][id]" type="hidden" value="314" />' +
- '<input id="post_comments_attributes_0_id" name="post[comments_attributes][0][id]" type="hidden" value="321" />' +
- '<input id="post_tags_attributes_0_value" name="post[tags_attributes][0][value]" size="30" type="text" value="tag #123" />' +
- '<input id="post_tags_attributes_0_relevances_attributes_0_value" name="post[tags_attributes][0][relevances_attributes][0][value]" size="30" type="text" value="tagrelevance #3141" />' +
- '<input id="post_tags_attributes_0_relevances_attributes_0_id" name="post[tags_attributes][0][relevances_attributes][0][id]" type="hidden" value="3141" />' +
- '<input id="post_tags_attributes_0_id" name="post[tags_attributes][0][id]" type="hidden" value="123" />' +
- '<input id="post_tags_attributes_1_value" name="post[tags_attributes][1][value]" size="30" type="text" value="tag #456" />' +
- '<input id="post_tags_attributes_1_relevances_attributes_0_value" name="post[tags_attributes][1][relevances_attributes][0][value]" size="30" type="text" value="tagrelevance #31415" />' +
- '<input id="post_tags_attributes_1_relevances_attributes_0_id" name="post[tags_attributes][1][relevances_attributes][0][id]" type="hidden" value="31415" />' +
- '<input id="post_tags_attributes_1_id" name="post[tags_attributes][1][id]" type="hidden" value="456" />' +
- '</form>'
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_fields_for
- fields_for(:post, @post) do |f|
- concat f.text_field(:title)
- concat f.text_area(:body)
- concat f.check_box(:secret)
- end
-
- expected =
- "<input name='post[title]' size='30' type='text' id='post_title' value='Hello World' />" +
- "<textarea name='post[body]' id='post_body' rows='20' cols='40'>Back to the hill and over it again!</textarea>" +
- "<input name='post[secret]' type='hidden' value='0' />" +
- "<input name='post[secret]' checked='checked' type='checkbox' id='post_secret' value='1' />"
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_fields_for_with_index
- fields_for("post[]", @post) do |f|
- concat f.text_field(:title)
- concat f.text_area(:body)
- concat f.check_box(:secret)
- end
-
- expected =
- "<input name='post[123][title]' size='30' type='text' id='post_123_title' value='Hello World' />" +
- "<textarea name='post[123][body]' id='post_123_body' rows='20' cols='40'>Back to the hill and over it again!</textarea>" +
- "<input name='post[123][secret]' type='hidden' value='0' />" +
- "<input name='post[123][secret]' checked='checked' type='checkbox' id='post_123_secret' value='1' />"
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_fields_for_with_nil_index_option_override
- fields_for("post[]", @post, :index => nil) do |f|
- concat f.text_field(:title)
- concat f.text_area(:body)
- concat f.check_box(:secret)
- end
-
- expected =
- "<input name='post[][title]' size='30' type='text' id='post__title' value='Hello World' />" +
- "<textarea name='post[][body]' id='post__body' rows='20' cols='40'>Back to the hill and over it again!</textarea>" +
- "<input name='post[][secret]' type='hidden' value='0' />" +
- "<input name='post[][secret]' checked='checked' type='checkbox' id='post__secret' value='1' />"
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_fields_for_with_index_option_override
- fields_for("post[]", @post, :index => "abc") do |f|
- concat f.text_field(:title)
- concat f.text_area(:body)
- concat f.check_box(:secret)
- end
-
- expected =
- "<input name='post[abc][title]' size='30' type='text' id='post_abc_title' value='Hello World' />" +
- "<textarea name='post[abc][body]' id='post_abc_body' rows='20' cols='40'>Back to the hill and over it again!</textarea>" +
- "<input name='post[abc][secret]' type='hidden' value='0' />" +
- "<input name='post[abc][secret]' checked='checked' type='checkbox' id='post_abc_secret' value='1' />"
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_fields_for_without_object
- fields_for(:post) do |f|
- concat f.text_field(:title)
- concat f.text_area(:body)
- concat f.check_box(:secret)
- end
-
- expected =
- "<input name='post[title]' size='30' type='text' id='post_title' value='Hello World' />" +
- "<textarea name='post[body]' id='post_body' rows='20' cols='40'>Back to the hill and over it again!</textarea>" +
- "<input name='post[secret]' type='hidden' value='0' />" +
- "<input name='post[secret]' checked='checked' type='checkbox' id='post_secret' value='1' />"
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_fields_for_with_only_object
- fields_for(@post) do |f|
- concat f.text_field(:title)
- concat f.text_area(:body)
- concat f.check_box(:secret)
- end
-
- expected =
- "<input name='post[title]' size='30' type='text' id='post_title' value='Hello World' />" +
- "<textarea name='post[body]' id='post_body' rows='20' cols='40'>Back to the hill and over it again!</textarea>" +
- "<input name='post[secret]' type='hidden' value='0' />" +
- "<input name='post[secret]' checked='checked' type='checkbox' id='post_secret' value='1' />"
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_fields_for_object_with_bracketed_name
- fields_for("author[post]", @post) do |f|
- concat f.label(:title)
- concat f.text_field(:title)
- end
-
- assert_dom_equal "<label for=\"author_post_title\">Title</label>" +
- "<input name='author[post][title]' size='30' type='text' id='author_post_title' value='Hello World' />",
- output_buffer
- end
-
- def test_fields_for_object_with_bracketed_name_and_index
- fields_for("author[post]", @post, :index => 1) do |f|
- concat f.label(:title)
- concat f.text_field(:title)
- end
-
- assert_dom_equal "<label for=\"author_post_1_title\">Title</label>" +
- "<input name='author[post][1][title]' size='30' type='text' id='author_post_1_title' value='Hello World' />",
- output_buffer
- end
-
- def test_form_builder_does_not_have_form_for_method
- assert ! ActionView::Helpers::FormBuilder.instance_methods.include?('form_for')
- end
-
- def test_form_for_and_fields_for
- form_for(:post, @post, :html => { :id => 'create-post' }) do |post_form|
- concat post_form.text_field(:title)
- concat post_form.text_area(:body)
-
- fields_for(:parent_post, @post) do |parent_fields|
- concat parent_fields.check_box(:secret)
- end
- end
-
- expected =
- "<form action='http://www.example.com' id='create-post' method='post'>" +
- "<input name='post[title]' size='30' type='text' id='post_title' value='Hello World' />" +
- "<textarea name='post[body]' id='post_body' rows='20' cols='40'>Back to the hill and over it again!</textarea>" +
- "<input name='parent_post[secret]' type='hidden' value='0' />" +
- "<input name='parent_post[secret]' checked='checked' type='checkbox' id='parent_post_secret' value='1' />" +
- "</form>"
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_form_for_and_fields_for_with_object
- form_for(:post, @post, :html => { :id => 'create-post' }) do |post_form|
- concat post_form.text_field(:title)
- concat post_form.text_area(:body)
-
- post_form.fields_for(@comment) do |comment_fields|
- concat comment_fields.text_field(:name)
- end
- end
-
- expected =
- "<form action='http://www.example.com' id='create-post' method='post'>" +
- "<input name='post[title]' size='30' type='text' id='post_title' value='Hello World' />" +
- "<textarea name='post[body]' id='post_body' rows='20' cols='40'>Back to the hill and over it again!</textarea>" +
- "<input name='post[comment][name]' type='text' id='post_comment_name' value='new comment' size='30' />" +
- "</form>"
-
- assert_dom_equal expected, output_buffer
- end
-
- class LabelledFormBuilder < ActionView::Helpers::FormBuilder
- (field_helpers - %w(hidden_field)).each do |selector|
- src, line = <<-END_SRC, __LINE__ + 1
- def #{selector}(field, *args, &proc)
- ("<label for='\#{field}'>\#{field.to_s.humanize}:</label> " + super + "<br/>").html_safe
- end
- END_SRC
- class_eval src, __FILE__, line
- end
- end
-
- def test_form_for_with_labelled_builder
- form_for(:post, @post, :builder => LabelledFormBuilder) do |f|
- concat f.text_field(:title)
- concat f.text_area(:body)
- concat f.check_box(:secret)
- end
-
- expected =
- "<form action='http://www.example.com' method='post'>" +
- "<label for='title'>Title:</label> <input name='post[title]' size='30' type='text' id='post_title' value='Hello World' /><br/>" +
- "<label for='body'>Body:</label> <textarea name='post[body]' id='post_body' rows='20' cols='40'>Back to the hill and over it again!</textarea><br/>" +
- "<label for='secret'>Secret:</label> <input name='post[secret]' type='hidden' value='0' /><input name='post[secret]' checked='checked' type='checkbox' id='post_secret' value='1' /><br/>" +
- "</form>"
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_default_form_builder
- old_default_form_builder, ActionView::Base.default_form_builder =
- ActionView::Base.default_form_builder, LabelledFormBuilder
-
- form_for(:post, @post) do |f|
- concat f.text_field(:title)
- concat f.text_area(:body)
- concat f.check_box(:secret)
- end
-
- expected =
- "<form action='http://www.example.com' method='post'>" +
- "<label for='title'>Title:</label> <input name='post[title]' size='30' type='text' id='post_title' value='Hello World' /><br/>" +
- "<label for='body'>Body:</label> <textarea name='post[body]' id='post_body' rows='20' cols='40'>Back to the hill and over it again!</textarea><br/>" +
- "<label for='secret'>Secret:</label> <input name='post[secret]' type='hidden' value='0' /><input name='post[secret]' checked='checked' type='checkbox' id='post_secret' value='1' /><br/>" +
- "</form>"
-
- assert_dom_equal expected, output_buffer
- ensure
- ActionView::Base.default_form_builder = old_default_form_builder
- end
-
- def test_default_form_builder_with_active_record_helpers
- form_for(:post, @post) do |f|
- concat f.error_message_on('author_name')
- concat f.error_messages
- end
-
- expected = %(<form action='http://www.example.com' method='post'>) +
- %(<div class='formError'>can't be empty</div>) +
- %(<div class="errorExplanation" id="errorExplanation"><h2>1 error prohibited this post from being saved</h2><p>There were problems with the following fields:</p><ul><li>Author name can't be empty</li></ul></div>) +
- %(</form>)
-
- assert_dom_equal expected, output_buffer
-
- end
-
- def test_default_form_builder_no_instance_variable
- post = @post
- @post = nil
-
- form_for(:post, post) do |f|
- concat f.error_message_on('author_name')
- concat f.error_messages
- end
-
- expected = %(<form action='http://www.example.com' method='post'>) +
- %(<div class='formError'>can't be empty</div>) +
- %(<div class="errorExplanation" id="errorExplanation"><h2>1 error prohibited this post from being saved</h2><p>There were problems with the following fields:</p><ul><li>Author name can't be empty</li></ul></div>) +
- %(</form>)
-
- assert_dom_equal expected, output_buffer
-
- end
-
- def test_default_form_builder_without_object
-
- form_for(:post) do |f|
- concat f.error_message_on('author_name')
- concat f.error_messages
- end
-
- expected = %(<form action='http://www.example.com' method='post'>) +
- %(<div class='formError'>can't be empty</div>) +
- %(<div class="errorExplanation" id="errorExplanation"><h2>1 error prohibited this post from being saved</h2><p>There were problems with the following fields:</p><ul><li>Author name can't be empty</li></ul></div>) +
- %(</form>)
-
- assert_dom_equal expected, output_buffer
-
- end
-
- # Perhaps this test should be moved to prototype helper tests.
- def test_remote_form_for_with_labelled_builder
- self.extend ActionView::Helpers::PrototypeHelper
-
- remote_form_for(:post, @post, :builder => LabelledFormBuilder) do |f|
- concat f.text_field(:title)
- concat f.text_area(:body)
- concat f.check_box(:secret)
- end
-
- expected =
- %(<form action="http://www.example.com" onsubmit="new Ajax.Request('http://www.example.com', {asynchronous:true, evalScripts:true, parameters:Form.serialize(this)}); return false;" method="post">) +
- "<label for='title'>Title:</label> <input name='post[title]' size='30' type='text' id='post_title' value='Hello World' /><br/>" +
- "<label for='body'>Body:</label> <textarea name='post[body]' id='post_body' rows='20' cols='40'>Back to the hill and over it again!</textarea><br/>" +
- "<label for='secret'>Secret:</label> <input name='post[secret]' type='hidden' value='0' /><input name='post[secret]' checked='checked' type='checkbox' id='post_secret' value='1' /><br/>" +
- "</form>"
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_fields_for_with_labelled_builder
- fields_for(:post, @post, :builder => LabelledFormBuilder) do |f|
- concat f.text_field(:title)
- concat f.text_area(:body)
- concat f.check_box(:secret)
- end
-
- expected =
- "<label for='title'>Title:</label> <input name='post[title]' size='30' type='text' id='post_title' value='Hello World' /><br/>" +
- "<label for='body'>Body:</label> <textarea name='post[body]' id='post_body' rows='20' cols='40'>Back to the hill and over it again!</textarea><br/>" +
- "<label for='secret'>Secret:</label> <input name='post[secret]' type='hidden' value='0' /><input name='post[secret]' checked='checked' type='checkbox' id='post_secret' value='1' /><br/>"
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_form_for_with_labelled_builder_with_nested_fields_for_without_options_hash
- klass = nil
-
- form_for(:post, @post, :builder => LabelledFormBuilder) do |f|
- f.fields_for(:comments, Comment.new) do |nested_fields|
- klass = nested_fields.class
- ''
- end
- end
-
- assert_equal LabelledFormBuilder, klass
- end
-
- def test_form_for_with_labelled_builder_with_nested_fields_for_with_options_hash
- klass = nil
-
- form_for(:post, @post, :builder => LabelledFormBuilder) do |f|
- f.fields_for(:comments, Comment.new, :index => 'foo') do |nested_fields|
- klass = nested_fields.class
- ''
- end
- end
-
- assert_equal LabelledFormBuilder, klass
- end
-
- class LabelledFormBuilderSubclass < LabelledFormBuilder; end
-
- def test_form_for_with_labelled_builder_with_nested_fields_for_with_custom_builder
- klass = nil
-
- form_for(:post, @post, :builder => LabelledFormBuilder) do |f|
- f.fields_for(:comments, Comment.new, :builder => LabelledFormBuilderSubclass) do |nested_fields|
- klass = nested_fields.class
- ''
- end
- end
-
- assert_equal LabelledFormBuilderSubclass, klass
- end
-
- def test_form_for_with_html_options_adds_options_to_form_tag
- form_for(:post, @post, :html => {:id => 'some_form', :class => 'some_class'}) do |f| end
- expected = "<form action=\"http://www.example.com\" class=\"some_class\" id=\"some_form\" method=\"post\"></form>"
-
- assert_dom_equal expected, output_buffer
- end
-
- def test_form_for_with_string_url_option
- form_for(:post, @post, :url => 'http://www.otherdomain.com') do |f| end
-
- assert_equal '<form action="http://www.otherdomain.com" method="post"></form>', output_buffer
- end
-
- def test_form_for_with_hash_url_option
- form_for(:post, @post, :url => {:controller => 'controller', :action => 'action'}) do |f| end
-
- assert_equal 'controller', @controller.url_for_options[:controller]
- assert_equal 'action', @controller.url_for_options[:action]
- end
-
- def test_form_for_with_record_url_option
- form_for(:post, @post, :url => @post) do |f| end
-
- expected = "<form action=\"/posts/123\" method=\"post\"></form>"
- assert_equal expected, output_buffer
- end
-
- def test_form_for_with_existing_object
- form_for(@post) do |f| end
-
- expected = "<form action=\"/posts/123\" class=\"edit_post\" id=\"edit_post_123\" method=\"post\"><div style=\"margin:0;padding:0;display:inline\"><input name=\"_method\" type=\"hidden\" value=\"put\" /></div></form>"
- assert_equal expected, output_buffer
- end
-
- def test_form_for_with_new_object
- post = Post.new
- post.new_record = true
- def post.id() nil end
-
- form_for(post) do |f| end
-
- expected = "<form action=\"/posts\" class=\"new_post\" id=\"new_post\" method=\"post\"></form>"
- assert_equal expected, output_buffer
- end
-
- def test_form_for_with_existing_object_in_list
- @post.new_record = false
- @comment.save
-
- form_for([@post, @comment]) {}
-
- expected = %(<form action="#{comment_path(@post, @comment)}" class="edit_comment" id="edit_comment_1" method="post"><div style="margin:0;padding:0;display:inline"><input name="_method" type="hidden" value="put" /></div></form>)
- assert_dom_equal expected, output_buffer
- end
-
- def test_form_for_with_new_object_in_list
- @post.new_record = false
-
- form_for([@post, @comment]) {}
-
- expected = %(<form action="#{comments_path(@post)}" class="new_comment" id="new_comment" method="post"></form>)
- assert_dom_equal expected, output_buffer
- end
-
- def test_form_for_with_existing_object_and_namespace_in_list
- @post.new_record = false
- @comment.save
-
- form_for([:admin, @post, @comment]) {}
-
- expected = %(<form action="#{admin_comment_path(@post, @comment)}" class="edit_comment" id="edit_comment_1" method="post"><div style="margin:0;padding:0;display:inline"><input name="_method" type="hidden" value="put" /></div></form>)
- assert_dom_equal expected, output_buffer
- end
-
- def test_form_for_with_new_object_and_namespace_in_list
- @post.new_record = false
-
- form_for([:admin, @post, @comment]) {}
-
- expected = %(<form action="#{admin_comments_path(@post)}" class="new_comment" id="new_comment" method="post"></form>)
- assert_dom_equal expected, output_buffer
- end
-
- def test_form_for_with_existing_object_and_custom_url
- form_for(@post, :url => "/super_posts") do |f| end
-
- expected = "<form action=\"/super_posts\" class=\"edit_post\" id=\"edit_post_123\" method=\"post\"><div style=\"margin:0;padding:0;display:inline\"><input name=\"_method\" type=\"hidden\" value=\"put\" /></div></form>"
- assert_equal expected, output_buffer
- end
-
- def test_remote_form_for_with_html_options_adds_options_to_form_tag
- self.extend ActionView::Helpers::PrototypeHelper
-
- remote_form_for(:post, @post, :html => {:id => 'some_form', :class => 'some_class'}) do |f| end
- expected = "<form action=\"http://www.example.com\" class=\"some_class\" id=\"some_form\" method=\"post\" onsubmit=\"new Ajax.Request('http://www.example.com', {asynchronous:true, evalScripts:true, parameters:Form.serialize(this)}); return false;\"></form>"
-
- assert_dom_equal expected, output_buffer
- end
-
- protected
- def comments_path(post)
- "/posts/#{post.id}/comments"
- end
- alias_method :post_comments_path, :comments_path
-
- def comment_path(post, comment)
- "/posts/#{post.id}/comments/#{comment.id}"
- end
- alias_method :post_comment_path, :comment_path
-
- def admin_comments_path(post)
- "/admin/posts/#{post.id}/comments"
- end
- alias_method :admin_post_comments_path, :admin_comments_path
-
- def admin_comment_path(post, comment)
- "/admin/posts/#{post.id}/comments/#{comment.id}"
- end
- alias_method :admin_post_comment_path, :admin_comment_path
-
- def posts_path
- "/posts"
- end
-
- def post_path(post)
- "/posts/#{post.id}"
- end
-
- def protect_against_forgery?
- false
- end
-end
diff --git a/vendor/plugins/rails_xss/test/form_tag_helper_test.rb b/vendor/plugins/rails_xss/test/form_tag_helper_test.rb
deleted file mode 100644
index 41eeceeb3..000000000
--- a/vendor/plugins/rails_xss/test/form_tag_helper_test.rb
+++ /dev/null
@@ -1,354 +0,0 @@
-require 'test_helper'
-
-class FormTagHelperTest < ActionView::TestCase
- def setup
- @controller = Class.new do
- def url_for(options)
- "http://www.example.com"
- end
- end
- @controller = @controller.new
- end
-
- VALID_HTML_ID = /^[A-Za-z][-_:.A-Za-z0-9]*$/ # see http://www.w3.org/TR/html4/types.html#type-name
-
- def test_check_box_tag
- actual = check_box_tag "admin"
- expected = %(<input id="admin" name="admin" type="checkbox" value="1" />)
- assert_dom_equal expected, actual
- end
-
- def test_check_box_tag_id_sanitized
- label_elem = root_elem(check_box_tag("project[2][admin]"))
- assert_match VALID_HTML_ID, label_elem['id']
- end
-
- def test_form_tag
- actual = form_tag
- expected = %(<form action="http://www.example.com" method="post">)
- assert_dom_equal expected, actual
- end
-
- def test_form_tag_multipart
- actual = form_tag({}, { 'multipart' => true })
- expected = %(<form action="http://www.example.com" enctype="multipart/form-data" method="post">)
- assert_dom_equal expected, actual
- end
-
- def test_form_tag_with_method_put
- actual = form_tag({}, { :method => :put })
- expected = %(<form action="http://www.example.com" method="post"><div style='margin:0;padding:0;display:inline'><input type="hidden" name="_method" value="put" /></div>)
- assert_dom_equal expected, actual
- end
-
- def test_form_tag_with_method_delete
- actual = form_tag({}, { :method => :delete })
- expected = %(<form action="http://www.example.com" method="post"><div style='margin:0;padding:0;display:inline'><input type="hidden" name="_method" value="delete" /></div>)
- assert_dom_equal expected, actual
- end
-
- def test_form_tag_with_block_in_erb
- __in_erb_template = ''
- form_tag("http://example.com") { concat "Hello world!" }
-
- expected = %(<form action="http://example.com" method="post">Hello world!</form>)
- assert_dom_equal expected, output_buffer
- end
-
- def test_form_tag_with_block_and_method_in_erb
- __in_erb_template = ''
- form_tag("http://example.com", :method => :put) { concat "Hello world!" }
-
- expected = %(<form action="http://example.com" method="post"><div style='margin:0;padding:0;display:inline'><input type="hidden" name="_method" value="put" /></div>Hello world!</form>)
- assert_dom_equal expected, output_buffer
- end
-
- def test_hidden_field_tag
- actual = hidden_field_tag "id", 3
- expected = %(<input id="id" name="id" type="hidden" value="3" />)
- assert_dom_equal expected, actual
- end
-
- def test_hidden_field_tag_id_sanitized
- input_elem = root_elem(hidden_field_tag("item[][title]"))
- assert_match VALID_HTML_ID, input_elem['id']
- end
-
- def test_file_field_tag
- assert_dom_equal "<input name=\"picsplz\" type=\"file\" id=\"picsplz\" />", file_field_tag("picsplz")
- end
-
- def test_file_field_tag_with_options
- assert_dom_equal "<input name=\"picsplz\" type=\"file\" id=\"picsplz\" class=\"pix\"/>", file_field_tag("picsplz", :class => "pix")
- end
-
- def test_password_field_tag
- actual = password_field_tag
- expected = %(<input id="password" name="password" type="password" />)
- assert_dom_equal expected, actual
- end
-
- def test_radio_button_tag
- actual = radio_button_tag "people", "david"
- expected = %(<input id="people_david" name="people" type="radio" value="david" />)
- assert_dom_equal expected, actual
-
- actual = radio_button_tag("num_people", 5)
- expected = %(<input id="num_people_5" name="num_people" type="radio" value="5" />)
- assert_dom_equal expected, actual
-
- actual = radio_button_tag("gender", "m") + radio_button_tag("gender", "f")
- expected = %(<input id="gender_m" name="gender" type="radio" value="m" /><input id="gender_f" name="gender" type="radio" value="f" />)
- assert_dom_equal expected, actual
-
- actual = radio_button_tag("opinion", "-1") + radio_button_tag("opinion", "1")
- expected = %(<input id="opinion_-1" name="opinion" type="radio" value="-1" /><input id="opinion_1" name="opinion" type="radio" value="1" />)
- assert_dom_equal expected, actual
-
- actual = radio_button_tag("person[gender]", "m")
- expected = %(<input id="person_gender_m" name="person[gender]" type="radio" value="m" />)
- assert_dom_equal expected, actual
- end
-
- def test_select_tag
- actual = select_tag "people", "<option>david</option>".html_safe
- expected = %(<select id="people" name="people"><option>david</option></select>)
- assert_dom_equal expected, actual
- end
-
- def test_select_tag_with_multiple
- actual = select_tag "colors", "<option>Red</option><option>Blue</option><option>Green</option>".html_safe, :multiple => :true
- expected = %(<select id="colors" multiple="multiple" name="colors"><option>Red</option><option>Blue</option><option>Green</option></select>)
- assert_dom_equal expected, actual
- end
-
- def test_select_tag_disabled
- actual = select_tag "places", "<option>Home</option><option>Work</option><option>Pub</option>".html_safe, :disabled => :true
- expected = %(<select id="places" disabled="disabled" name="places"><option>Home</option><option>Work</option><option>Pub</option></select>)
- assert_dom_equal expected, actual
- end
-
- def test_select_tag_id_sanitized
- input_elem = root_elem(select_tag("project[1]people", "<option>david</option>"))
- assert_match VALID_HTML_ID, input_elem['id']
- end
-
- def test_select_tag_with_array_options
- assert_deprecated /array/ do
- select_tag "people", ["<option>david</option>"]
- end
- end
-
- def test_text_area_tag_size_string
- actual = text_area_tag "body", "hello world", "size" => "20x40"
- expected = %(<textarea cols="20" id="body" name="body" rows="40">hello world</textarea>)
- assert_dom_equal expected, actual
- end
-
- def test_text_area_tag_size_symbol
- actual = text_area_tag "body", "hello world", :size => "20x40"
- expected = %(<textarea cols="20" id="body" name="body" rows="40">hello world</textarea>)
- assert_dom_equal expected, actual
- end
-
- def test_text_area_tag_should_disregard_size_if_its_given_as_an_integer
- actual = text_area_tag "body", "hello world", :size => 20
- expected = %(<textarea id="body" name="body">hello world</textarea>)
- assert_dom_equal expected, actual
- end
-
- def test_text_area_tag_id_sanitized
- input_elem = root_elem(text_area_tag("item[][description]"))
- assert_match VALID_HTML_ID, input_elem['id']
- end
-
- def test_text_area_tag_escape_content
- actual = text_area_tag "body", "<b>hello world</b>", :size => "20x40"
- expected = %(<textarea cols="20" id="body" name="body" rows="40">&lt;b&gt;hello world&lt;/b&gt;</textarea>)
- assert_dom_equal expected, actual
- end
-
- def test_text_area_tag_unescaped_content
- actual = text_area_tag "body", "<b>hello world</b>", :size => "20x40", :escape => false
- expected = %(<textarea cols="20" id="body" name="body" rows="40"><b>hello world</b></textarea>)
- assert_dom_equal expected, actual
- end
-
- def test_text_area_tag_unescaped_nil_content
- actual = text_area_tag "body", nil, :escape => false
- expected = %(<textarea id="body" name="body"></textarea>)
- assert_dom_equal expected, actual
- end
-
- def test_text_field_tag
- actual = text_field_tag "title", "Hello!"
- expected = %(<input id="title" name="title" type="text" value="Hello!" />)
- assert_dom_equal expected, actual
- end
-
- def test_text_field_tag_class_string
- actual = text_field_tag "title", "Hello!", "class" => "admin"
- expected = %(<input class="admin" id="title" name="title" type="text" value="Hello!" />)
- assert_dom_equal expected, actual
- end
-
- def test_text_field_tag_size_symbol
- actual = text_field_tag "title", "Hello!", :size => 75
- expected = %(<input id="title" name="title" size="75" type="text" value="Hello!" />)
- assert_dom_equal expected, actual
- end
-
- def test_text_field_tag_size_string
- actual = text_field_tag "title", "Hello!", "size" => "75"
- expected = %(<input id="title" name="title" size="75" type="text" value="Hello!" />)
- assert_dom_equal expected, actual
- end
-
- def test_text_field_tag_maxlength_symbol
- actual = text_field_tag "title", "Hello!", :maxlength => 75
- expected = %(<input id="title" name="title" maxlength="75" type="text" value="Hello!" />)
- assert_dom_equal expected, actual
- end
-
- def test_text_field_tag_maxlength_string
- actual = text_field_tag "title", "Hello!", "maxlength" => "75"
- expected = %(<input id="title" name="title" maxlength="75" type="text" value="Hello!" />)
- assert_dom_equal expected, actual
- end
-
- def test_text_field_disabled
- actual = text_field_tag "title", "Hello!", :disabled => :true
- expected = %(<input id="title" name="title" disabled="disabled" type="text" value="Hello!" />)
- assert_dom_equal expected, actual
- end
-
- def test_text_field_tag_with_multiple_options
- actual = text_field_tag "title", "Hello!", :size => 70, :maxlength => 80
- expected = %(<input id="title" name="title" size="70" maxlength="80" type="text" value="Hello!" />)
- assert_dom_equal expected, actual
- end
-
- def test_text_field_tag_id_sanitized
- input_elem = root_elem(text_field_tag("item[][title]"))
- assert_match VALID_HTML_ID, input_elem['id']
- end
-
- def test_label_tag_without_text
- actual = label_tag "title"
- expected = %(<label for="title">Title</label>)
- assert_dom_equal expected, actual
- end
-
- def test_label_tag_with_symbol
- actual = label_tag :title
- expected = %(<label for="title">Title</label>)
- assert_dom_equal expected, actual
- end
-
- def test_label_tag_with_text
- actual = label_tag "title", "My Title"
- expected = %(<label for="title">My Title</label>)
- assert_dom_equal expected, actual
- end
-
- def test_label_tag_class_string
- actual = label_tag "title", "My Title", "class" => "small_label"
- expected = %(<label for="title" class="small_label">My Title</label>)
- assert_dom_equal expected, actual
- end
-
- def test_label_tag_id_sanitized
- label_elem = root_elem(label_tag("item[title]"))
- assert_match VALID_HTML_ID, label_elem['for']
- end
-
- def test_boolean_options
- assert_dom_equal %(<input checked="checked" disabled="disabled" id="admin" name="admin" readonly="readonly" type="checkbox" value="1" />), check_box_tag("admin", 1, true, 'disabled' => true, :readonly => "yes")
- assert_dom_equal %(<input checked="checked" id="admin" name="admin" type="checkbox" value="1" />), check_box_tag("admin", 1, true, :disabled => false, :readonly => nil)
- assert_dom_equal %(<input type="checkbox" />), tag(:input, :type => "checkbox", :checked => false)
- assert_dom_equal %(<select id="people" multiple="multiple" name="people[]"><option>david</option></select>), select_tag("people", "<option>david</option>".html_safe, :multiple => true)
- assert_dom_equal %(<select id="people_" multiple="multiple" name="people[]"><option>david</option></select>), select_tag("people[]", "<option>david</option>".html_safe, :multiple => true)
- assert_dom_equal %(<select id="people" name="people"><option>david</option></select>), select_tag("people", "<option>david</option>".html_safe, :multiple => nil)
- end
-
- def test_stringify_symbol_keys
- actual = text_field_tag "title", "Hello!", :id => "admin"
- expected = %(<input id="admin" name="title" type="text" value="Hello!" />)
- assert_dom_equal expected, actual
- end
-
- def test_submit_tag
- assert_dom_equal(
- %(<input name='commit' onclick="if (window.hiddenCommit) { window.hiddenCommit.setAttribute('value', this.value); }else { hiddenCommit = document.createElement('input');hiddenCommit.type = 'hidden';hiddenCommit.value = this.value;hiddenCommit.name = this.name;this.form.appendChild(hiddenCommit); }this.setAttribute('originalValue', this.value);this.disabled = true;this.value='Saving...';alert('hello!');result = (this.form.onsubmit ? (this.form.onsubmit() ? this.form.submit() : false) : this.form.submit());if (result == false) { this.value = this.getAttribute('originalValue');this.disabled = false; }return result;" type="submit" value="Save" />),
- submit_tag("Save", :disable_with => "Saving...", :onclick => "alert('hello!')")
- )
- end
-
- def test_submit_tag_with_no_onclick_options
- assert_dom_equal(
- %(<input name='commit' onclick="if (window.hiddenCommit) { window.hiddenCommit.setAttribute('value', this.value); }else { hiddenCommit = document.createElement('input');hiddenCommit.type = 'hidden';hiddenCommit.value = this.value;hiddenCommit.name = this.name;this.form.appendChild(hiddenCommit); }this.setAttribute('originalValue', this.value);this.disabled = true;this.value='Saving...';result = (this.form.onsubmit ? (this.form.onsubmit() ? this.form.submit() : false) : this.form.submit());if (result == false) { this.value = this.getAttribute('originalValue');this.disabled = false; }return result;" type="submit" value="Save" />),
- submit_tag("Save", :disable_with => "Saving...")
- )
- end
-
- def test_submit_tag_with_confirmation
- assert_dom_equal(
- %(<input name='commit' type='submit' value='Save' onclick="if (!confirm('Are you sure?')) return false; return true;"/>),
- submit_tag("Save", :confirm => "Are you sure?")
- )
- end
-
- def test_submit_tag_with_confirmation_and_with_disable_with
- assert_dom_equal(
- %(<input name="commit" onclick="if (!confirm('Are you sure?')) return false; if (window.hiddenCommit) { window.hiddenCommit.setAttribute('value', this.value); }else { hiddenCommit = document.createElement('input');hiddenCommit.type = 'hidden';hiddenCommit.value = this.value;hiddenCommit.name = this.name;this.form.appendChild(hiddenCommit); }this.setAttribute('originalValue', this.value);this.disabled = true;this.value='Saving...';result = (this.form.onsubmit ? (this.form.onsubmit() ? this.form.submit() : false) : this.form.submit());if (result == false) { this.value = this.getAttribute('originalValue');this.disabled = false; }return result;" type="submit" value="Save" />),
- submit_tag("Save", :disable_with => "Saving...", :confirm => "Are you sure?")
- )
- end
-
- def test_image_submit_tag_with_confirmation
- assert_dom_equal(
- %(<input type="image" src="/images/save.gif" onclick="return confirm('Are you sure?');"/>),
- image_submit_tag("save.gif", :confirm => "Are you sure?")
- )
- end
-
- def test_pass
- assert_equal 1, 1
- end
-
- def test_field_set_tag_in_erb
- __in_erb_template = ''
- field_set_tag("Your details") { concat "Hello world!" }
-
- expected = %(<fieldset><legend>Your details</legend>Hello world!</fieldset>)
- assert_dom_equal expected, output_buffer
-
- self.output_buffer = ''.html_safe
- field_set_tag { concat "Hello world!" }
-
- expected = %(<fieldset>Hello world!</fieldset>)
- assert_dom_equal expected, output_buffer
-
- self.output_buffer = ''.html_safe
- field_set_tag('') { concat "Hello world!" }
-
- expected = %(<fieldset>Hello world!</fieldset>)
- assert_dom_equal expected, output_buffer
-
- self.output_buffer = ''.html_safe
- field_set_tag('', :class => 'format') { concat "Hello world!" }
-
- expected = %(<fieldset class="format">Hello world!</fieldset>)
- assert_dom_equal expected, output_buffer
- end
-
- def protect_against_forgery?
- false
- end
-
- private
-
- def root_elem(rendered_content)
- HTML::Document.new(rendered_content).root.children[0]
- end
-end
diff --git a/vendor/plugins/rails_xss/test/javascript_helper_test.rb b/vendor/plugins/rails_xss/test/javascript_helper_test.rb
deleted file mode 100644
index 691d97a15..000000000
--- a/vendor/plugins/rails_xss/test/javascript_helper_test.rb
+++ /dev/null
@@ -1,10 +0,0 @@
-require 'test_helper'
-
-class JavascriptHelperTest < ActionView::TestCase
- def test_escape_javascript_with_safebuffer
- given = %('quoted' "double-quoted" new-line:\n </closed>)
- expect = %(\\'quoted\\' \\"double-quoted\\" new-line:\\n <\\/closed>)
- assert_equal expect, escape_javascript(given)
- assert_equal expect, escape_javascript(ActiveSupport::SafeBuffer.new(given))
- end
-end
diff --git a/vendor/plugins/rails_xss/test/output_escaping_test.rb b/vendor/plugins/rails_xss/test/output_escaping_test.rb
deleted file mode 100644
index 8b6f8b83c..000000000
--- a/vendor/plugins/rails_xss/test/output_escaping_test.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-require 'test_helper'
-
-class OutputEscapingTest < ActiveSupport::TestCase
-
- test "escape_html shouldn't die when passed nil" do
- assert ERB::Util.h(nil).blank?
- end
-
- test "escapeHTML should escape strings" do
- assert_equal "&lt;&gt;&quot;", ERB::Util.h("<>\"")
- end
-
- test "escapeHTML shouldn't touch explicitly safe strings" do
- # TODO this seems easier to compose and reason about, but
- # this should be verified
- assert_equal "<", ERB::Util.h("<".html_safe)
- end
-
-end
diff --git a/vendor/plugins/rails_xss/test/output_safety_test.rb b/vendor/plugins/rails_xss/test/output_safety_test.rb
deleted file mode 100644
index 2e376477d..000000000
--- a/vendor/plugins/rails_xss/test/output_safety_test.rb
+++ /dev/null
@@ -1,115 +0,0 @@
-require 'test_helper'
-
-class OutputSafetyTest < ActiveSupport::TestCase
- def setup
- @string = "hello"
- @object = Class.new(Object) do
- def to_s
- "other"
- end
- end.new
- end
-
- test "A string is unsafe by default" do
- assert !@string.html_safe?
- end
-
- test "A string can be marked safe" do
- string = @string.html_safe
- assert string.html_safe?
- end
-
- test "Marking a string safe returns the string" do
- assert_equal @string, @string.html_safe
- end
-
- test "A fixnum is safe by default" do
- assert 5.html_safe?
- end
-
- test "An object is unsafe by default" do
- assert !@object.html_safe?
- end
-
- test "Adding an object to a safe string returns a safe string" do
- string = @string.html_safe
- string << @object
-
- assert_equal "helloother", string
- assert string.html_safe?
- end
-
- test "Adding a safe string to another safe string returns a safe string" do
- @other_string = "other".html_safe
- string = @string.html_safe
- @combination = @other_string + string
-
- assert_equal "otherhello", @combination
- assert @combination.html_safe?
- end
-
- test "Adding an unsafe string to a safe string escapes it and returns a safe string" do
- @other_string = "other".html_safe
- @combination = @other_string + "<foo>"
- @other_combination = @string + "<foo>"
-
- assert_equal "other&lt;foo&gt;", @combination
- assert_equal "hello<foo>", @other_combination
-
- assert @combination.html_safe?
- assert !@other_combination.html_safe?
- end
-
- test "Concatting safe onto unsafe yields unsafe" do
- @other_string = "other"
-
- string = @string.html_safe
- @other_string.concat(string)
- assert !@other_string.html_safe?
- end
-
- test "Concatting unsafe onto safe yields escaped safe" do
- @other_string = "other".html_safe
- string = @other_string.concat("<foo>")
- assert_equal "other&lt;foo&gt;", string
- assert string.html_safe?
- end
-
- test "Concatting safe onto safe yields safe" do
- @other_string = "other".html_safe
- string = @string.html_safe
-
- @other_string.concat(string)
- assert @other_string.html_safe?
- end
-
- test "Concatting safe onto unsafe with << yields unsafe" do
- @other_string = "other"
- string = @string.html_safe
-
- @other_string << string
- assert !@other_string.html_safe?
- end
-
- test "Concatting unsafe onto safe with << yields escaped safe" do
- @other_string = "other".html_safe
- string = @other_string << "<foo>"
- assert_equal "other&lt;foo&gt;", string
- assert string.html_safe?
- end
-
- test "Concatting safe onto safe with << yields safe" do
- @other_string = "other".html_safe
- string = @string.html_safe
-
- @other_string << string
- assert @other_string.html_safe?
- end
-
- test "Concatting a fixnum to safe always yields safe" do
- string = @string.html_safe
- string = string.concat(13)
- assert_equal "hello".concat(13), string
- assert string.html_safe?
- end
-end
diff --git a/vendor/plugins/rails_xss/test/rails_xss_test.rb b/vendor/plugins/rails_xss/test/rails_xss_test.rb
deleted file mode 100644
index b6268bafd..000000000
--- a/vendor/plugins/rails_xss/test/rails_xss_test.rb
+++ /dev/null
@@ -1,23 +0,0 @@
-require 'test_helper'
-
-class RailsXssTest < ActiveSupport::TestCase
- test "ERB::Util.h should mark its return value as safe and escape it" do
- escaped = ERB::Util.h("<p>")
- assert_equal "&lt;p&gt;", escaped
- assert escaped.html_safe?
- end
-
- test "ERB::Util.h should leave previously safe strings alone " do
- # TODO this seems easier to compose and reason about, but
- # this should be verified
- escaped = ERB::Util.h("<p>".html_safe)
- assert_equal "<p>", escaped
- assert escaped.html_safe?
- end
-
- test "ERB::Util.h should not implode when passed a non-string" do
- assert_nothing_raised do
- assert_equal "1", ERB::Util.h(1)
- end
- end
-end
diff --git a/vendor/plugins/rails_xss/test/raw_output_helper_test.rb b/vendor/plugins/rails_xss/test/raw_output_helper_test.rb
deleted file mode 100644
index 2a67f976e..000000000
--- a/vendor/plugins/rails_xss/test/raw_output_helper_test.rb
+++ /dev/null
@@ -1,18 +0,0 @@
-require 'test_helper'
-
-class RawOutputHelperTest < ActionView::TestCase
-
- def setup
- @string = "hello"
- end
-
- test "raw returns the safe string" do
- result = raw(@string)
- assert_equal @string, result
- assert result.html_safe?
- end
-
- test "raw handles nil values correctly" do
- assert_equal "", raw(nil)
- end
-end
diff --git a/vendor/plugins/rails_xss/test/safe_buffer_test.rb b/vendor/plugins/rails_xss/test/safe_buffer_test.rb
deleted file mode 100644
index a0a2eccee..000000000
--- a/vendor/plugins/rails_xss/test/safe_buffer_test.rb
+++ /dev/null
@@ -1,51 +0,0 @@
-require 'test_helper'
-
-class SafeBufferTest < ActiveSupport::TestCase
- def setup
- @buffer = ActiveSupport::SafeBuffer.new
- end
-
- test "Should look like a string" do
- assert @buffer.is_a?(String)
- assert_equal "", @buffer
- end
-
- test "Should escape a raw string which is passed to them" do
- @buffer << "<script>"
- assert_equal "&lt;script&gt;", @buffer
- end
-
- test "Should NOT escape a safe value passed to it" do
- @buffer << "<script>".html_safe
- assert_equal "<script>", @buffer
- end
-
- test "Should not mess with an innocuous string" do
- @buffer << "Hello"
- assert_equal "Hello", @buffer
- end
-
- test "Should not mess with a previously escape test" do
- @buffer << ERB::Util.html_escape("<script>")
- assert_equal "&lt;script&gt;", @buffer
- end
-
- test "Should be considered safe" do
- assert @buffer.html_safe?
- end
-
- test "Should return a safe buffer when calling to_s" do
- new_buffer = @buffer.to_s
- assert_equal ActiveSupport::SafeBuffer, new_buffer.class
- end
-
- test "Should not return a safe buffer when using sub" do
- assert !@buffer.sub('', "asdf").html_safe?
- end
-
- test "Should raise argument error when using sub!" do
- assert_raise TypeError do
- @buffer.sub!('', "asdf")
- end
- end
-end
diff --git a/vendor/plugins/rails_xss/test/tag_helper_test.rb b/vendor/plugins/rails_xss/test/tag_helper_test.rb
deleted file mode 100644
index 2a4280943..000000000
--- a/vendor/plugins/rails_xss/test/tag_helper_test.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-require 'test_helper'
-
-class TagHelperTest < ActionView::TestCase
-
- def test_content_tag
- assert_equal "<a href=\"create\">Create</a>", content_tag("a", "Create", "href" => "create")
- assert content_tag("a", "Create", "href" => "create").html_safe?
- assert_equal content_tag("a", "Create", "href" => "create"),
- content_tag("a", "Create", :href => "create")
- assert_equal "<p>&lt;script&gt;evil_js&lt;/script&gt;</p>",
- content_tag(:p, '<script>evil_js</script>')
- assert_equal "<p><script>evil_js</script></p>",
- content_tag(:p, '<script>evil_js</script>', nil, false)
- end
-
- def test_tag_honors_html_safe_for_param_values
- ['1&amp;2', '1 &lt; 2', '&#8220;test&#8220;'].each do |escaped|
- assert_equal %(<a href="#{escaped}" />), tag('a', :href => escaped.html_safe)
- end
- end
-end
diff --git a/vendor/plugins/rails_xss/test/test_helper.rb b/vendor/plugins/rails_xss/test/test_helper.rb
deleted file mode 100644
index d9594e446..000000000
--- a/vendor/plugins/rails_xss/test/test_helper.rb
+++ /dev/null
@@ -1,6 +0,0 @@
-abort 'RAILS_ROOT=/path/to/rails/2.3/app rake test' unless ENV['RAILS_ROOT']
-require File.expand_path('config/environment', ENV['RAILS_ROOT'])
-require File.expand_path('../../init', __FILE__)
-require 'active_support/test_case'
-require 'action_view/test_case'
-require 'test/unit'
diff --git a/vendor/plugins/rails_xss/test/text_helper_test.rb b/vendor/plugins/rails_xss/test/text_helper_test.rb
deleted file mode 100644
index b74ae547c..000000000
--- a/vendor/plugins/rails_xss/test/text_helper_test.rb
+++ /dev/null
@@ -1,30 +0,0 @@
-require 'test_helper'
-
-class TextHelperTest < ActionView::TestCase
-
- def setup
- @controller = Class.new do
- attr_accessor :request
- def url_for(*args) "http://www.example.com" end
- end.new
- end
-
- def test_simple_format_with_escaping_html_options
- assert_dom_equal(%(<p class="intro">It's nice to have options.</p>),
- simple_format("It's nice to have options.", :class=>"intro"))
- end
-
- def test_simple_format_should_not_escape_safe_content
- assert_dom_equal(%(<p>This is <script>safe_js</script>.</p>),
- simple_format('This is <script>safe_js</script>.'.html_safe))
- end
-
- def test_simple_format_escapes_unsafe_content
- assert_dom_equal(%(<p>This is &lt;script&gt;evil_js&lt;/script&gt;.</p>),
- simple_format('This is <script>evil_js</script>.'))
- end
-
- def test_truncate_should_not_be_html_safe
- assert !truncate("Hello World!", :length => 12).html_safe?
- end
-end
diff --git a/vendor/plugins/rails_xss/test/url_for_test.rb b/vendor/plugins/rails_xss/test/url_for_test.rb
deleted file mode 100644
index b13451bfb..000000000
--- a/vendor/plugins/rails_xss/test/url_for_test.rb
+++ /dev/null
@@ -1,39 +0,0 @@
-require 'test_helper'
-
-class UrlHelperTest < ActionView::TestCase
-
- def abcd(hash = {})
- hash_for(:a => :b, :c => :d).merge(hash)
- end
-
- def hash_for(opts = {})
- {:controller => "foo", :action => "bar"}.merge(opts)
- end
-
- def test_url_for_does_not_escape_urls_if_explicitly_stated
- assert_equal "/foo/bar?a=b&c=d", url_for(abcd(:escape => false))
- end
-
- def test_link_tag_with_img
- link = link_to("<img src='/favicon.jpg' />".html_safe, "/")
- expected = %{<a href="/"><img src='/favicon.jpg' /></a>}
- assert_dom_equal expected, link
- end
-
- def test_link_to_should_not_escape_content_for_html_safe
- link = link_to("Some <p>html</p>".html_safe, "/")
- expected = %{<a href="/">Some <p>html</p></a>}
- assert_dom_equal link, expected
- end
-
- def test_link_to_escapes_content_for_non_safe
- link = link_to("Some <p>html</p>", "/")
- expected = %{<a href="/">Some &lt;p&gt;html&lt;/p&gt;</a>}
- assert_dom_equal link, expected
- end
-
- def test_url_for_escaping_is_safety_aware
- assert url_for(abcd(:escape => true)).html_safe?, "escaped urls should be html_safe?"
- assert !url_for(abcd(:escape => false)).html_safe?, "non-escaped urls should not be html_safe?"
- end
-end
diff --git a/vendor/plugins/strip_attributes/lib/strip_attributes.rb b/vendor/plugins/strip_attributes/lib/strip_attributes.rb
index 70f414654..bb93aa9a7 100644
--- a/vendor/plugins/strip_attributes/lib/strip_attributes.rb
+++ b/vendor/plugins/strip_attributes/lib/strip_attributes.rb
@@ -3,10 +3,12 @@ module StripAttributes
# XXX this differs from official StripAttributes, as it doesn't make blank cells null.
def strip_attributes!(options = nil)
before_validation do |record|
- attributes = StripAttributes.narrow(record.attributes, options)
- attributes.each do |attr, value|
+ attribute_names = StripAttributes.narrow(record.attribute_names, options)
+
+ attribute_names.each do |attribute_name|
+ value = record[attribute_name]
if value.respond_to?(:strip)
- record[attr] = (value.nil?) ? nil : value.strip
+ record[attribute_name] = (value.nil?) ? nil : value.strip
end
end
end
@@ -14,16 +16,16 @@ module StripAttributes
# Necessary because Rails has removed the narrowing of attributes using :only
# and :except on Base#attributes
- def self.narrow(attributes, options)
+ def self.narrow(attribute_names, options)
if options.nil?
- attributes
+ attribute_names
else
if except = options[:except]
except = Array(except).collect { |attribute| attribute.to_s }
- attributes.except(*except)
+ attribute_names - except
elsif only = options[:only]
only = Array(only).collect { |attribute| attribute.to_s }
- attributes.slice(*only)
+ attribute_names & only
else
raise ArgumentError, "Options does not specify :except or :only (#{options.keys.inspect})"
end
diff --git a/vendor/plugins/strip_attributes/test/strip_attributes_test.rb b/vendor/plugins/strip_attributes/test/strip_attributes_test.rb
index 95754fca7..8158dc664 100644
--- a/vendor/plugins/strip_attributes/test/strip_attributes_test.rb
+++ b/vendor/plugins/strip_attributes/test/strip_attributes_test.rb
@@ -49,7 +49,7 @@ class StripAttributesTest < Test::Unit::TestCase
assert_equal "foo", record.foo
assert_equal "bar", record.bar
assert_equal "biz", record.biz
- assert_nil record.baz
+ assert_equal "", record.baz
end
def test_should_strip_only_one_field
@@ -76,7 +76,7 @@ class StripAttributesTest < Test::Unit::TestCase
assert_equal "\tfoo", record.foo
assert_equal "bar", record.bar
assert_equal "biz", record.biz
- assert_nil record.baz
+ assert_equal "", record.baz
end
def test_should_strip_all_except_three_fields
@@ -85,6 +85,6 @@ class StripAttributesTest < Test::Unit::TestCase
assert_equal "\tfoo", record.foo
assert_equal "bar \t ", record.bar
assert_equal "\tbiz ", record.biz
- assert_nil record.baz
+ assert_equal "", record.baz
end
end
diff --git a/vendor/rails-locales b/vendor/rails-locales
deleted file mode 160000
-Subproject 7b769690775e9705f82da75aee3435e8dadebec