radiant-reader-extension 0.9.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. data/README.md +15 -11
  2. data/VERSION +1 -1
  3. data/app/controllers/admin/messages_controller.rb +45 -6
  4. data/app/controllers/admin/reader_configuration_controller.rb +3 -0
  5. data/app/controllers/password_resets_controller.rb +8 -10
  6. data/app/controllers/reader_action_controller.rb +2 -2
  7. data/app/controllers/reader_activations_controller.rb +6 -7
  8. data/app/controllers/reader_sessions_controller.rb +3 -3
  9. data/app/controllers/readers_controller.rb +9 -10
  10. data/app/models/message.rb +2 -2
  11. data/app/models/message_function.rb +4 -0
  12. data/app/models/reader_notifier.rb +10 -7
  13. data/app/views/admin/messages/_form.html.haml +3 -1
  14. data/app/views/admin/messages/_list_function.haml +3 -0
  15. data/app/views/admin/messages/index.haml +42 -0
  16. data/app/views/admin/messages/preview.html.haml +1 -0
  17. data/app/views/admin/messages/show.html.haml +72 -0
  18. data/app/views/admin/reader_configuration/edit.html.haml +41 -0
  19. data/app/views/admin/reader_configuration/show.html.haml +46 -0
  20. data/app/views/admin/readers/_form.html.haml +2 -1
  21. data/app/views/admin/readers/index.html.haml +33 -2
  22. data/app/views/password_resets/create.html.haml +6 -9
  23. data/app/views/password_resets/edit.html.haml +26 -30
  24. data/app/views/password_resets/new.html.haml +10 -11
  25. data/app/views/reader_activations/show.html.haml +17 -26
  26. data/app/views/reader_sessions/_login_form.html.haml +19 -25
  27. data/app/views/reader_sessions/new.html.haml +17 -15
  28. data/app/views/readers/_flasher.html.haml +2 -2
  29. data/app/views/readers/_form.html.haml +30 -36
  30. data/app/views/readers/edit.html.haml +17 -19
  31. data/app/views/readers/index.html.haml +5 -7
  32. data/app/views/readers/login.html.haml +6 -5
  33. data/app/views/readers/new.html.haml +21 -20
  34. data/app/views/readers/permission_denied.html.haml +13 -9
  35. data/app/views/readers/show.html.haml +12 -9
  36. data/config/initializers/radiant_config.rb +12 -0
  37. data/config/locales/en.yml +147 -0
  38. data/config/routes.rb +5 -6
  39. data/db/migrate/20101019094714_message_sent_date.rb +11 -0
  40. data/lib/reader_admin_ui.rb +25 -10
  41. data/lib/reader_helper.rb +0 -7
  42. data/lib/reader_tags.rb +15 -10
  43. data/public/images/admin/delta.png +0 -0
  44. data/public/stylesheets/sass/admin/reader.sass +72 -81
  45. data/radiant-reader-extension.gemspec +13 -19
  46. data/reader_extension.rb +6 -7
  47. data/spec/controllers/admin/messages_controller_spec.rb +26 -9
  48. data/spec/controllers/readers_controller_spec.rb +1 -1
  49. data/spec/models/message_spec.rb +1 -2
  50. data/spec/models/reader_notifier_spec.rb +1 -2
  51. metadata +16 -22
  52. data/app/controllers/admin/reader_settings_controller.rb +0 -92
  53. data/app/helpers/admin/reader_settings_helper.rb +0 -36
  54. data/app/views/admin/reader_settings/_setting.html.haml +0 -24
  55. data/app/views/admin/reader_settings/edit.html.haml +0 -10
  56. data/app/views/admin/reader_settings/index.html.haml +0 -35
  57. data/app/views/admin/reader_settings/show.html.haml +0 -1
  58. data/app/views/admin/readers/_list_head.html.haml +0 -9
  59. data/app/views/admin/readers/_listed.html.haml +0 -22
  60. data/app/views/reader_activations/_activation_required.html.haml +0 -34
  61. data/app/views/reader_activations/_on_activation.html.haml +0 -4
  62. data/app/views/readers/create.html.haml +0 -28
  63. data/app/views/wrappers/_field_errors.html.haml +0 -5
  64. data/config/settings.rb +0 -9
  65. data/pkg/radiant-reader-extension-0.9.0.gem +0 -0
  66. data/public/images/admin/new-message.png +0 -0
  67. data/public/images/admin/new-reader.png +0 -0
  68. data/public/javascripts/admin/messages.js +0 -13
@@ -2,37 +2,39 @@
2
2
 
3
3
  - if current_reader
4
4
  %p
5
- You are currently logged in as
5
+ = t('logged_in_as')
6
6
  %strong
7
7
  = current_reader.name
8
8
  - unless current_reader.activated?
9
- but your account is not yet activated. Please check your email for our activation message.
9
+ = t('but_not_active')
10
10
 
11
11
  - if current_reader.activated?
12
12
  %p
13
- If that's not you, or you want to log in with another account, please
14
- = link_to "log out", reader_logout_url
13
+ =t('if_not_you')
14
+ = link_to t("log_out"), reader_logout_url
15
15
  - else
16
16
  %p
17
- If you can't find the message, we can
18
- = link_to("send it again", new_reader_activation_url) + '.'
17
+ =t('if_cant_find')
18
+ = link_to(t("send_it_again"), new_reader_activation_url) + '.'
19
19
  %p
20
- If you're not
21
- = current_reader.name
22
- or you think you might have put the wrong email address in, please
20
+ =t('if_not_you')
21
+ =t('or')
22
+ =t('wrong_email')
23
+ =t('please')
23
24
  = link_to "log out", reader_logout_url
24
- and you will be able to register or log in normally.
25
+ =t('and_try_again')
25
26
 
26
27
  - else
27
28
  - if flash[:explanation]
28
29
  %p
29
- = flash[:explanation]
30
+ = t(flash[:explanation])
30
31
 
31
32
  = render :partial => 'login_form', :locals => {:no_title => true}
32
33
 
33
34
  - content_for :breadcrumbs do
34
- = link_to 'Readers', '/readers'
35
- > Log in
35
+ = link_to t('home').titlecase, '/'
36
+ >
37
+ = t('log_in').titlecase
36
38
 
37
- - content_for :pagetitle do
38
- Log in
39
+ - content_for :title do
40
+ = t('log_in')
@@ -1,6 +1,6 @@
1
1
  - if flash[:notice]
2
2
  .notice
3
- %p= flash[:notice]
3
+ %p= t(flash[:notice])
4
4
  - if flash[:error]
5
5
  .error
6
- %p= flash[:error]
6
+ %p= t(flash[:error])
@@ -1,72 +1,66 @@
1
- - with_error_report(@reader.errors.on(:name)) do
2
- = f.label :name, 'Your name', :class => 'required'
3
- %span.formnote as you would like it to appear
1
+ %p
2
+ = f.label :name, t('your_name'), :class => 'required'
3
+ %span.formnote= t('name_notes')
4
4
  %br
5
5
  = f.text_field :name, :class => 'standard'
6
6
 
7
7
  - if Radiant::Config['reader.use_honorifics?']
8
- - with_error_report(@reader.errors.on(:honorific)) do
9
- = f.label :honorific, 'Title or rank', :class => 'optional'
10
- %span.formnote as you would like us to display it when you are credited
8
+ %p
9
+ = f.label :honorific, t(:honorific), :class => 'optional'
10
+ %span.formnote= t('honorific_notes')
11
11
  %br
12
12
  = f.text_field :honorific, :class => 'standard'
13
13
 
14
14
  - if @reader.new_record? && @email_field
15
15
 
16
- - with_error_report(@reader.errors.on(:email)) do
17
- = f.label @email_field, 'Your email address', :class => 'required'
18
- %span.formnote this has to work
16
+ %p
17
+ = f.label @email_field, t('your_email'), :class => 'required'
18
+ %span.formnote= t('email_notes')
19
19
  %br
20
20
  = text_field_tag @email_field, params[@email_field] || @reader.email, :id => "reader_#{@email_field}", :class => 'standard'
21
21
 
22
22
  .innocuous
23
23
  - with_error_report(@reader.errors.on(:trap)) do
24
24
  %label{ :for => 'reader_email', :class => 'required' }
25
- Don't fill this in!
26
- %span.formnote
27
- it's a spam trap and you weren't supposed to see it
25
+ = t("dont_fill")
26
+ %span.formnote= t('spam_trap')
28
27
  %br
29
28
  = text_field_tag 'reader_email', '', :name => 'reader[email]', :class => 'standard'
30
29
 
31
30
  - else
32
31
 
33
- - with_error_report(@reader.errors.on(:email)) do
34
- = f.label :email, 'Your email address', :class => 'required'
32
+ %p
33
+ = f.label :email, t('your_email'), :class => 'required'
34
+ %span.formnote= t('email_notes')
35
35
  %br
36
36
  = f.text_field :email, :class => 'standard'
37
37
 
38
- - with_error_report(@reader.errors.on(:description)) do
39
- = f.label :description, 'A little about yourself', :class => 'optional'
40
- %span.formnote
41
- you can fill this in later.
42
- Textile formatting
43
- is allowed.
38
+ %p
39
+ = f.label :description, t('your_description'), :class => 'optional'
40
+ %span.formnote= t('description_notes')
44
41
  %br
45
42
  = f.text_area :description, :class => 'standard', :rows => 8
46
43
 
47
- - with_error_report(@reader.errors.on(:login)) do
48
- = f.label :login, 'Login username', :class => 'optional'
49
- %span.formnote leave blank to use your email address
44
+ %p
45
+ = f.label :login, t('login_name'), :class => 'optional'
46
+ %span.formnote= t('login_notes')
50
47
  %br
51
48
  = f.text_field :login, :class => 'standard'
52
49
 
53
- - with_error_report(@reader.errors.on(:password)) do
54
- - label = @reader.new_record? ? 'Password' : 'Change password?'
50
+ %p
51
+ - label = @reader.new_record? ? t('password') : t('change_password')
55
52
  - cssclass = @reader.new_record? ? 'required' : 'optional'
56
- - help = @reader.new_record? ? 'at least four characters, please' : 'leave blank to keep present password. If changing, at least four characters.'
57
-
58
53
  = f.label :password, label, :class => cssclass
59
- %span.formnote
60
- = help
61
- %br
54
+ %span.formnote= @reader.new_record? ? t('password_notes') : t('existing_password_notes')
55
+ %br
62
56
  = f.password_field :password, :class => 'standard', :autocomplete => 'off'
63
57
 
64
- - with_error_report(@reader.errors.on(:password_confirmation)) do
65
- = f.label :password_confirmation, "Confirm #{'new ' unless @reader.new_record?}password", :class => @reader.new_record? ? 'required' : 'optional'
66
- - unless @reader.new_record?
67
- %span.formnote
68
- leave blank to keep present password
69
- %br
58
+ %p
59
+ - label = @reader.new_record? ? t('confirm_password') : t('confirm_new_password')
60
+ - cssclass = @reader.new_record? ? 'required' : 'optional'
61
+ = f.label :password_confirmation, label, :class => cssclass
62
+ %span.formnote= t('existing_password_notes')
63
+ %br
70
64
  = f.password_field :password_confirmation, :class => 'standard', :autocomplete => 'off'
71
65
 
72
66
  - @form_partials.each do |partial|
@@ -2,27 +2,27 @@
2
2
 
3
3
  %div.preferences_form
4
4
  %p
5
- Hello
6
- = link_to "#{@reader.name}.", reader_url(@reader)
7
- You can use this form to change your preferences and enter a bit more information about yourself.
8
- First, just to make sure you're you, please enter your current password:
5
+ = t("hello")
6
+ = link_to(@reader.name, reader_url(@reader)) + '.'
7
+ = t('preferences_intro')
8
+ = t('enter_own_password')
9
9
 
10
10
  - unless @reader.errors.empty?
11
11
  %p.errornote
12
- %strong Sorry: there were problems.
13
- Please check the form. The affected fields will be highlighted.
12
+ %strong
13
+ = t('sorry').titlecase
14
+ = t('form_problem') + '.'
14
15
 
15
16
  - form_for :reader, :url => reader_url(@reader), :html => { :method => "put", :class => 'friendly'} do |f|
16
17
 
17
18
  - with_error_report(@reader.errors.on(:current_password)) do
18
19
  = f.label :current_password, "Current password", :class => 'required'
19
20
  %span.formnote
20
- can't remember?
21
- = link_to "Make a new one", new_password_reset_url
21
+ = link_to t('forgotten_password'), new_password_reset_url
22
22
  = f.password_field :current_password, :class => 'standard', :autocomplete => 'off'
23
23
 
24
24
  %p
25
- Fields with bold headings are required and will cause grumbling if left blank:
25
+ = t('bold_required')
26
26
 
27
27
  = render :partial => 'form', :locals => {:f => f}
28
28
  %p
@@ -31,17 +31,15 @@
31
31
  = link_to 'cancel', request.referer
32
32
 
33
33
  %p
34
- = link_to gravatar_for(@reader, {:size => 60}, {:class => 'gravatar'}), 'http://www.gravatar.com/signup', :target => '_blank'
35
- If you would like a picture to appear next to your messages, give yourself a
36
- = link_to "gravatar.", "http://www.gravatar.com/signup", :target => '_blank'
37
- This is what appears for you at the moment.
38
-
34
+ = link_to gravatar_for(@reader, {:size => 60}, {:class => 'gravatar'}), 'http://gravatar.com/site/login'
35
+ = link_to t('change_gravatar'), "http://gravatar.com/site/login/"
36
+
39
37
  - content_for :breadcrumbs do
40
- = link_to 'Home', '/'
38
+ = link_to t('home').titlecase, '/'
41
39
  >
42
- = link_to 'You', '/readers/me'
40
+ = link_to t('you').titlecase, '/readers/me'
43
41
  >
44
- Revise your account
42
+ = t('account_settings')
45
43
 
46
- - content_for :pagetitle do
47
- Revise your account
44
+ - content_for :title do
45
+ = t('account_settings')
@@ -3,14 +3,12 @@
3
3
  %div
4
4
  #readers
5
5
  - @readers.each do |reader|
6
- = link_to gravatar_for(reader, {:size => 100}, {:class => 'big_gravatar'}), reader_url(reader), {:title => reader.name}
7
- %div.stretcher
8
- %p
6
+ = link_to gravatar_for(reader, {:size => 100}, {:class => 'big gravatar'}), reader_url(reader), {:title => reader.name}
9
7
 
10
8
  - content_for :breadcrumbs do
11
- = link_to 'Home', '/'
9
+ = link_to t('home').titlecase, '/'
12
10
  >
13
- People
11
+ = t('people').titlecase
14
12
 
15
- - content_for :pagetitle do
16
- People
13
+ - content_for :title do
14
+ = t('people').titlecase
@@ -2,14 +2,15 @@
2
2
 
3
3
  %div.login_form
4
4
  %h1
5
- Log in
5
+ = t('log_in').titlecase
6
6
 
7
7
  = render :partial => 'reader_sessions/login_form', :locals => {:backto => @backto}
8
8
 
9
9
  - content_for :breadcrumbs do
10
- = link_to 'Home', '/'
11
- > Log in
10
+ = link_to t('home').titlecase, '/'
11
+ >
12
+ t('log_in').titlecase
12
13
 
13
- - content_for :pagetitle do
14
- Log in
14
+ - content_for :title do
15
+ = t('log_in').titlecase
15
16
 
@@ -2,40 +2,41 @@
2
2
 
3
3
  %div.register_form
4
4
  %p
5
- If you've already done this, you should only need to
6
- = link_to "log in.", reader_login_url
7
- Otherwise, please take a moment to register an account.
8
- Only the fields labelled in bold are required: the rest you can fill in later if you prefer.
5
+ = t('please_register')
6
+ = t('already_registered')
7
+ = link_to t('log_in') + '.', reader_login_url
9
8
 
10
9
  - unless @reader.errors.empty?
11
10
  %p.errornote
12
- %strong Sorry: there were problems.
13
- Please check the form. The affected fields will be highlighted like this.
11
+ %strong
12
+ = t('sorry').titlecase
13
+ = t('form_problem') + '.'
14
14
 
15
15
  - form_for :reader, :url => readers_url, :html => {:class => 'friendly'} do |f|
16
16
  = render :partial => 'form', :locals => {:f => f}
17
17
  %p
18
- = submit_tag "Register"
18
+ = submit_tag t("register")
19
19
  or
20
- = link_to 'cancel', request.referer
20
+ = link_to t('cancel'), request.referer
21
21
 
22
22
  %h3
23
- notes
23
+ = t('notes').titlecase
24
24
 
25
25
  %ul.friendly
26
26
  %li
27
- When you press the 'register' button we will send a confirmation email to the address you enter above.
28
- Click on a link in that message, and you're in.
27
+ = t('confirming_email')
29
28
  %li
30
- If you would like a picture to appear next to your messages, give yourself a
31
- = link_to "gravatar.", "http://www.gravatar.com"
32
- %li
33
- Please make sure you're happy with our
34
- = link_to "terms and conditions", "/terms"
29
+ = t('getting_gravatar')
30
+ = link_to "gravatar.com" + '.', "http://www.gravatar.com"
31
+ - if Radiant::Config['reader.terms_url']
32
+ %li
33
+ = t('please_read_our')
34
+ = link_to t("terms_and_conditions"), Radiant::Config['reader.terms_url']
35
35
 
36
36
  - content_for :breadcrumbs do
37
- = link_to 'Home', '/'
38
- > Register
37
+ = link_to t('home').titlecase, '/'
38
+ >
39
+ = t('register').titlecase
39
40
 
40
- - content_for :pagetitle do
41
- Register here
41
+ - content_for :title do
42
+ = t('new_account').titlecase
@@ -2,22 +2,26 @@
2
2
 
3
3
  %div.apologetic
4
4
  %p.haserror
5
- You don't have permission to see the page you just requested.
5
+ = t('page_permission_denied')
6
+
6
7
  - if current_reader
7
- Please talk to the site administrator about your account.
8
+ = t('if_mistake_see_admin')
9
+
10
+ - content_for :title do
11
+ = t('sorry_access_denied')
12
+
8
13
  - else
9
- Please log in.
14
+ = t('please_log_in') + '.'
15
+
16
+ - content_for :title do
17
+ = t('please_log_in')
10
18
 
11
19
  - unless current_reader
12
20
  = render :partial => 'reader_sessions/login_form'
13
21
 
14
22
  - content_for :breadcrumbs do
15
- = link_to 'Home', '/'
16
- >
17
- = link_to 'Readers', '/readers'
23
+ = link_to t('home').titlecase, '/'
18
24
  >
19
- Permission Denied
25
+ = t('access_denied')
20
26
 
21
- - content_for :pagetitle do
22
- = @title
23
27
 
@@ -4,29 +4,32 @@
4
4
  - if @reader == current_reader
5
5
  %p.system_message
6
6
  %strong
7
- Hello
7
+ =t('hello').titlecase
8
8
  = @reader.name + '.'
9
- This is the page that other (logged-in) site visitors will see when they click on your name. You can change the text that appears here by
10
- = link_to "editing your preferences", edit_reader_url(@reader)
11
- and you can change the picture by
12
- = link_to "giving yourself a gravatar.", "http://gravatar.com/signup"
9
+ = t('this_is_your_page')
10
+ %ul.actions
11
+ %li
12
+ = link_to t('edit_profile'), edit_reader_url(@reader)
13
+ %li
14
+ = link_to t('change_gravatar'), "http://gravatar.com/site/login/"
13
15
 
14
16
  = gravatar_for(@reader, {:size => 128}, {:class => 'big_gravatar'})
15
17
 
16
18
  - if @reader.description.blank?
17
- %p No description available.
19
+ %p
20
+ = t('no_description')
18
21
  - else
19
22
  = clean_textilize @reader.description
20
23
 
21
24
  = render :partial => 'contributions'
22
25
 
23
26
  - content_for :breadhead do
24
- = link_to 'People', '/readers'
27
+ = link_to t('people').titlecase, '/readers'
25
28
 
26
29
  - content_for :breadcrumbs do
27
- = link_to 'Home', '/'
30
+ = link_to t('home').titlecase, '/'
28
31
  >
29
- = link_to 'People', '/readers'
32
+ = link_to t('people').titlecase, '/readers'
30
33
  >
31
34
  = @reader.name
32
35
 
@@ -0,0 +1,12 @@
1
+ Radiant.config do |config|
2
+ config.namespace('reader') do |reader|
3
+ reader.define 'allow_registration?', :default => true
4
+ reader.define 'require_confirmation?', :default => true
5
+ reader.define 'layout', :select_from => lambda { Layout.all.map(&:name) }, :allow_blank => false
6
+ end
7
+ config.namespace('email') do |email|
8
+ email.define 'layout', :select_from => lambda { Layout.all.map(&:name) }, :allow_blank => true
9
+ email.define 'name', :allow_blank => false
10
+ email.define 'address', :allow_blank => false
11
+ end
12
+ end
@@ -0,0 +1,147 @@
1
+ en:
2
+ access_denied: "Access denied"
3
+ account_settings: "Account settings"
4
+ account_updated: "Your account has been updated"
5
+ activate_account: "Activate your account"
6
+ activation_complete: "Thank you very much for persevering with the registration process. Your account is now active."
7
+ activation_message_sent: "Account activation instructions have been emailed to you."
8
+ activation_sent: "Activation message sent"
9
+ already_active: "Your account is already active."
10
+ already_registered: "If you've already registered, you should only need to"
11
+ and_try_again: "and try again."
12
+ bold_required: "Fields with bold headings are required and will cause grumbling if left blank:"
13
+ but_not_active: 'but your account is not yet activated. Please check your email for our activation message.'
14
+ cancel: "cancel"
15
+ cannot_delete_readers: "To delete readers, please log in as an administrator"
16
+ cannot_edit_others: "You are not allowed to edit other people's accounts."
17
+ change_gravatar: "change your gravatar image"
18
+ change_password: "Change my password"
19
+ config:
20
+ reader:
21
+ allow_registration?: "Allow registration"
22
+ require_confirmation?: "Confirm email addresses"
23
+ use_honorifics?: "Use honorifics"
24
+ layout: "Layout for forms"
25
+ email:
26
+ name: "Message sender"
27
+ address: "Message reply-to"
28
+ prefix: "Subject prefix"
29
+ layout: "Layout for messages"
30
+ confirm_new_password: "Confirm new password"
31
+ confirm_password: "Confirm password"
32
+ confirmation_code: "Confirmation code"
33
+ confirming_email: "When you press the 'register' button we will send a confirmation email to the address you enter above. Click on a link in that message, and you're in."
34
+ continue: "Continue"
35
+ create_message: "create message"
36
+ description_notes: "you can fill this in later. Textile formatting is allowed."
37
+ dont_fill: "Don't fill this in!"
38
+ edit_profile: "edit your profile"
39
+ email_notes: "we will send an activation message to this address"
40
+ email_unknown: "Sorry. That email address is not known here."
41
+ enter_code: "Please enter confirmation code"
42
+ enter_email_for_reminder: "enter your email address and we will send the message again"
43
+ enter_own_password: "First, just to make sure you're you, please enter your current password:"
44
+ existing_password_notes: "leave blank to keep present password. If changing, at least four characters."
45
+ forgotten_password: "forgotten password?"
46
+ form_problem: "there was a problem with the form"
47
+ getting_gravatar: "If you would like a picture to appear next to your messages, give yourself a gravatar at"
48
+ hello: "hello"
49
+ honorific: "Title or rank"
50
+ honorific_notes: ""
51
+ invitation_message: "Invitation message"
52
+ if_cant_find: "If you can't find the message, we can"
53
+ if_mistake_see_admin: "If this is a mistake, please talk to the site administrator about your account."
54
+ if_not_you: "If that's not you, or you want to log in with another account"
55
+ is_free_and_quick: " is free and only takes a moment"
56
+ log_in: 'log in'
57
+ log_out: "log out"
58
+ logged_in_as: 'You are currently logged in as'
59
+ login_name: "Login name"
60
+ login_notes: "leave blank to use your email address"
61
+ login_unknown: "Sorry: we don't recognise that combination of username and password."
62
+ logout_message: "You are logged out. Bye!"
63
+ must_be_empty: "must be empty"
64
+ name_notes: "as you would like it to appear on the site"
65
+ new_account: "Register"
66
+ new_password: "New password"
67
+ new_password_instructions: "Please enter and confirm the new password you would like to use. It must be at least four characters long, nothing obvious or typical and ideally a mixture of numbers and letters."
68
+ no: "no"
69
+ no_description: "No description available"
70
+ notes: "notes"
71
+ page_permission_denied: "You don't have permission to see the page that you have requested."
72
+ password: "password"
73
+ password_incorrect: "Sorry. Wrong password."
74
+ password_mismatch: "Passwords don't match! Please try again."
75
+ password_not_yet_changed: "Your password hasn't changed yet, so if you've just remembered it you can still log in as usual."
76
+ password_notes: "at least four characters, please"
77
+ password_reset_instructions: "Please enter your email address below. If we recognise it, we'll send you a message with a confirmation link (or if your account is not yet active, we'll send the activation message again)."
78
+ password_reset_reassurance: "Your password will not change until you fill in that form, so only you can complete this process."
79
+ password_updated_notice: "Thank you. Your password has been updated and you are now logged in."
80
+ people: "people"
81
+ permission_denied: "Permission denied"
82
+ please: "please"
83
+ please_avoid_spam_trap: "Please don't fill in the spam trap field"
84
+ please_check_message: "Sorry: something was wrong in that link. Please check your email message and make sure it is giving you the whole address."
85
+ please_log_in: "Please log in"
86
+ please_log_out: "Please log out"
87
+ please_read_our: "Please read our"
88
+ please_register: "Please take a moment to register an account."
89
+ please_use_form: "Please use the registration form"
90
+ preferences_intro: "You can use this form to change your preferences and enter a bit more information about yourself."
91
+ reader_admin: "Reader administration"
92
+ reader_emails: "Administrative messages"
93
+ reader: 'Reader'
94
+ readers: 'Readers'
95
+ register: "register"
96
+ registration: "registration"
97
+ registration_disallowed: "Sorry. This site does not allow visitors to register"
98
+ remember_me: "remember me"
99
+ resend_activation: "resent activation messages"
100
+ reset_message_instructions: "Thank you. A message has been sent containing the instructions for setting a new password. Remember it hasn't changed yet and won't until you follow the instructions in the message. If you remember your old password, you can just carry on using it and ignore the reset message."
101
+ reset_message_sent: "Password-reset instructions have been emailed to you."
102
+ reset_not_found: "Password-reset code not found"
103
+ sorry_reset_not_found: "Sorry: the system can't find you. That link must have been garbled somewhere along the line. Please paste the 20-character confirmation code into the box below and we'll try again."
104
+ reset_password: "Reset your password"
105
+ restart_password_change: "Send another password-reset message"
106
+ return_to_page: "return to the page you were looking at before you started registering"
107
+ send_it_again: "send it again"
108
+ send_reset_button: "send me instructions"
109
+ sorry: "sorry"
110
+ sorry_access_denied: "Sorry: access denied"
111
+ spam_trap: "it's a spam trap and shouldn't be visible"
112
+ terms_and_conditions: "terms and conditions"
113
+ thanks_activated: "Thank you! Your account has been activated."
114
+ thanks_and_activation_instructions: "Thank you for registering. Now please check your email. We have sent a message containing a link that will automatically activate your account and log you in."
115
+ this_is_your_page: "This is the page that other (logged-in) site visitors will see when they click on your name."
116
+ username: "username"
117
+ welcome_back: "Welcome back"
118
+ welcome_message: "Welcome message"
119
+ wrong_email: "you think you might have put the wrong email address in,"
120
+ yes: "yes"
121
+ your_description: "A little about yourself"
122
+ your_email: "Your email address"
123
+ your_name: "Your name"
124
+ count_people:
125
+ zero: "(nobody)"
126
+ one: "(one person)"
127
+ other: "(%{count} people)"
128
+ send_to: "Send to"
129
+ reader_configuration_page: "reader settings"
130
+ welcome_sent_automatically: "This message is sent automatically when someone completes the registration and email-confirmation process."
131
+ password_reset_sent_automatically: "This message is sent automatically when someone asks to reset their password."
132
+ activation_sent_automatically: "This message is sent automatically when someone begins to register."
133
+ invitation_sent_automatically: "This message is sent automatically when someone is invited to the site."
134
+ everyone_unsent: "anyone who has not received this message"
135
+ everyone_inactive: "anyone who has not activated their account"
136
+ everyone: "Everyone"
137
+ send_message: "Send Message"
138
+ edit_message: "edit message"
139
+ delete_message: "delete message"
140
+ this_message_functional: "This is the %{function} message."
141
+ preview_and_send_message: "Preview and send message"
142
+ really_delete_message: "Are you sure you want to delete the message '%{title}'? This cannot be undone."
143
+ delete_reader: "delete reader"
144
+ really_delete_reader: "Are you sure you want to remove the reader %{name}? This cannot be undone."
145
+ never_sent: 'never sent'
146
+ for: 'for'
147
+ home: 'home'